Skip to content

UI Reference

Generated from src/ui.ts.

All exports (alphabetical)
ExportKindSourceDescription
AccordionBasefunctionsrc/ui/components/navigation/accordion/standalone.tsxStandalone Accordion — an expandable/collapsible panel list with plain React children. Works with plain React props.
AccordionBaseIteminterfacesrc/ui/components/navigation/accordion/standalone.tsxType definition exported by the Snapshot UI runtime.
AccordionBasePropsinterfacesrc/ui/components/navigation/accordion/standalone.tsxProps accepted by the AccordionBase standalone component.
ActionConfigtypealiasnode_modules/@lastshotlabs/frontend-contract/dist/actions/index.d.tsConfiguration type for action config.
ActionExecuteFntypealiasnode_modules/@lastshotlabs/frontend-contract/dist/actions/index.d.tsType definition exported by the Snapshot UI runtime.
AlertBasefunctionsrc/ui/components/data/alert/standalone.tsxStandalone Alert — a styled alert/notification box with optional icon, action button, and dismiss. Works with plain React props.
AlertBasePropsinterfacesrc/ui/components/data/alert/standalone.tsxProps accepted by the AlertBase standalone component.
AppContextProviderfunctionsrc/ui/context/providers.tsxProvides persistent global state that survives route changes. Initializes globals from runtime config.
AppContextProviderPropsinterfacesrc/ui/context/types.tsProps for AppContextProvider. Wraps the entire app to provide persistent global state.
AtomRegistryinterfacesrc/ui/state/types.tsRegistry of named state atoms. Backing store is shared per scope (app or route).
AuditLogBasefunctionsrc/ui/components/workflow/audit-log/standalone.tsxStandalone AuditLogBase — renders a filterable, paginated timeline of audit log entries with user avatars, relative timestamps, and expandable detail panels. Works with plain React props.
AuditLogBasePropsinterfacesrc/ui/components/workflow/audit-log/standalone.tsxProps accepted by the AuditLogBase standalone component.
AuditLogFilterEntryinterfacesrc/ui/components/workflow/audit-log/standalone.tsxType definition exported by the Snapshot UI runtime.
AutoFormBasefunctionsrc/ui/components/forms/auto-form/standalone.tsxStandalone AutoFormBase — renders a schema-driven form with fields, sections, validation, and submit/reset actions. Works with plain React props.
AutoFormBasePropsinterfacesrc/ui/components/forms/auto-form/standalone.tsxProps accepted by the AutoFormBase standalone component.
AutoFormFieldConfiginterfacesrc/ui/components/forms/auto-form/standalone.tsxConfiguration type for auto form field config.
AutoFormFieldOptioninterfacesrc/ui/components/forms/auto-form/standalone.tsxType definition exported by the Snapshot UI runtime.
AutoFormFieldValidationinterfacesrc/ui/components/forms/auto-form/standalone.tsxType definition exported by the Snapshot UI runtime.
AutoFormSectionConfiginterfacesrc/ui/components/forms/auto-form/standalone.tsxConfiguration type for auto form section config.
AvatarBasefunctionsrc/ui/components/data/avatar/standalone.tsxStandalone Avatar — image, initials, or icon fallback. Works with plain React props.
AvatarBasePropsinterfacesrc/ui/components/data/avatar/standalone.tsxProps accepted by the AvatarBase standalone component.
AvatarGroupBasefunctionsrc/ui/components/data/avatar-group/standalone.tsxStandalone AvatarGroup — overlapping avatars with +N overflow. Works with plain React props.
AvatarGroupBaseAvatarinterfacesrc/ui/components/data/avatar-group/standalone.tsxType definition exported by the Snapshot UI runtime.
AvatarGroupBasePropsinterfacesrc/ui/components/data/avatar-group/standalone.tsxProps accepted by the AvatarGroupBase standalone component.
BadgeBasefunctionsrc/ui/components/data/badge/standalone.tsxStandalone Badge — a small label with color-coded variants. Works with plain React props.
BadgeBasePropsinterfacesrc/ui/components/data/badge/standalone.tsxProps accepted by the BadgeBase standalone component.
BannerBasefunctionsrc/ui/components/content/banner/standalone.tsxStandalone Banner — a full-width hero section with background, overlay, and content alignment. Works with plain React props.
BannerBasePropsinterfacesrc/ui/components/content/banner/standalone.tsxProps accepted by the BannerBase standalone component.
BoxBasefunctionsrc/ui/components/layout/box/standalone.tsxStandalone Box — a generic container element with configurable HTML tag. Works with plain React props.
BoxBasePropsinterfacesrc/ui/components/layout/box/standalone.tsxProps accepted by the BoxBase standalone component.
BreadcrumbBasefunctionsrc/ui/components/navigation/breadcrumb/standalone.tsxStandalone Breadcrumb — a navigation trail rendered with plain React props. Works with plain React props.
BreadcrumbBaseIteminterfacesrc/ui/components/navigation/breadcrumb/standalone.tsxType definition exported by the Snapshot UI runtime.
BreadcrumbBasePropsinterfacesrc/ui/components/navigation/breadcrumb/standalone.tsxProps accepted by the BreadcrumbBase standalone component.
Breakpointtypealiassrc/ui/hooks/use-breakpoint.tsAll breakpoint names including "default" (below sm).
buildEmojiMapfunctionsrc/ui/components/communication/emoji-picker/custom-emoji.tsBuilds a shortcode lookup map from an array of custom emojis.
buildRequestUrlfunctionnode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsFunction exported by the Snapshot UI runtime.
ButtonBasefunctionsrc/ui/components/forms/button/standalone.tsxStandalone ButtonBase — a styled button that works with plain React props. Works with plain React props.
ButtonBasePropsinterfacesrc/ui/components/forms/button/standalone.tsxProps accepted by the ButtonBase standalone component.
ButtonControlfunctionsrc/ui/components/forms/button/control.tsxLow-level styled button element with surface resolution and accessibility attributes. Used internally by ButtonBase and other components that need a styled <button>. Works with plain React props.
ButtonControlPropsinterfacesrc/ui/components/forms/button/types.tsProps accepted by the ButtonControl component.
CalendarBasefunctionsrc/ui/components/workflow/calendar/standalone.tsxStandalone CalendarBase — renders a month or week calendar grid with event pills, navigation controls, and optional week numbers. Works with plain React props.
CalendarBasePropsinterfacesrc/ui/components/workflow/calendar/standalone.tsxProps accepted by the CalendarBase standalone component.
CalendarEventEntryinterfacesrc/ui/components/workflow/calendar/standalone.tsxType definition exported by the Snapshot UI runtime.
CardBasefunctionsrc/ui/components/layout/card/standalone.tsxStandalone Card — a styled container with optional title/subtitle and standard React children. Works with plain React props.
CardBasePropsinterfacesrc/ui/components/layout/card/standalone.tsxProps accepted by the CardBase standalone component.
CarouselBasefunctionsrc/ui/components/media/carousel/standalone.tsxStandalone CarouselBase — renders a slide carousel with auto-play, arrow navigation, and dot indicators. Pauses on hover. Works with plain React props.
CarouselBasePropsinterfacesrc/ui/components/media/carousel/standalone.tsxProps accepted by the CarouselBase standalone component.
ChartBasefunctionsrc/ui/components/data/chart/standalone.tsxStandalone Chart — renders data-driven charts via recharts. Works with plain React props.
ChartBasePropsinterfacesrc/ui/components/data/chart/standalone.tsxProps accepted by the ChartBase standalone component.
ChartBaseSeriesinterfacesrc/ui/components/data/chart/standalone.tsxType definition exported by the Snapshot UI runtime.
ChatWindowBasefunctionsrc/ui/components/communication/chat-window/standalone.tsxStandalone ChatWindow — composable chat container with header, message thread, typing indicator, and input slots. Works with plain React props.
ChatWindowBasePropsinterfacesrc/ui/components/communication/chat-window/standalone.tsxProps accepted by the ChatWindowBase standalone component.
clearPersistedStatefunctionsrc/ui/state/persist.tsRemove a persisted state value from the selected browser storage area.
CodeBasefunctionsrc/ui/components/content/code/standalone.tsxStandalone Code — an inline code element for displaying code snippets within flowing text. Works with plain React props.
CodeBasePropsinterfacesrc/ui/components/content/code/standalone.tsxProps accepted by the CodeBase standalone component.
CodeBlockBasefunctionsrc/ui/components/content/code-block/standalone.tsxStandalone CodeBlock — displays code with syntax highlighting, optional line numbers, copy button, and title bar. Works with plain React props.
CodeBlockBasePropsinterfacesrc/ui/components/content/code-block/standalone.tsxProps accepted by the CodeBlockBase standalone component.
CollapsibleBasefunctionsrc/ui/components/layout/collapsible/standalone.tsxStandalone Collapsible — an animated expand/collapse container with an optional trigger. Works with plain React props.
CollapsibleBasePropsinterfacesrc/ui/components/layout/collapsible/standalone.tsxProps accepted by the CollapsibleBase standalone component.
collectDependentResourcesfunctionnode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsFunction exported by the Snapshot UI runtime.
ColorPickerBasevariablesrc/ui/components/forms/color-picker/standalone.tsxExported variable from the Snapshot UI runtime.
ColorPickerBasePropstypealiassrc/ui/components/forms/color-picker/standalone.tsxProps accepted by the ColorPickerBase standalone component.
ColorPickerFieldfunctionsrc/ui/components/forms/color-picker/standalone.tsxStandalone ColorPickerField — a color picker with optional swatches, alpha slider, and custom hex input. Works with plain React props.
ColorPickerFieldPropsinterfacesrc/ui/components/forms/color-picker/standalone.tsxProps accepted by the ColorPickerField component.
colorToOklchfunctionsrc/ui/tokens/color.tsConvert any supported color string to OKLCH values. Supports: hex (#rgb, #rrggbb), oklch strings (“L C H”), and oklch() CSS function.
ColumnBasefunctionsrc/ui/components/layout/column/standalone.tsxStandalone Column — a vertical flex container. Works with plain React props.
ColumnBasePropsinterfacesrc/ui/components/layout/column/standalone.tsxProps accepted by the ColumnBase standalone component.
CommandPaletteBasefunctionsrc/ui/components/overlay/command-palette/standalone.tsxStandalone CommandPalette — a search-driven command list with keyboard navigation. Works with plain React props.
CommandPaletteBaseGroupinterfacesrc/ui/components/overlay/command-palette/standalone.tsxType definition exported by the Snapshot UI runtime.
CommandPaletteBaseIteminterfacesrc/ui/components/overlay/command-palette/standalone.tsxType definition exported by the Snapshot UI runtime.
CommandPaletteBasePropsinterfacesrc/ui/components/overlay/command-palette/standalone.tsxProps accepted by the CommandPaletteBase standalone component.
CommentSectionBasefunctionsrc/ui/components/communication/comment-section/standalone.tsxStandalone CommentSection — threaded comment list with avatars, timestamps, optional delete actions, and a composable input slot. Works with plain React props.
CommentSectionBasePropsinterfacesrc/ui/components/communication/comment-section/standalone.tsxProps accepted by the CommentSectionBase standalone component.
CompareViewBasefunctionsrc/ui/components/content/compare-view/standalone.tsxStandalone CompareView — a side-by-side diff viewer for comparing two text blocks. Works with plain React props.
CompareViewBasePropsinterfacesrc/ui/components/content/compare-view/standalone.tsxProps accepted by the CompareViewBase standalone component.
ComponentDataResultinterfacesrc/ui/components/_base/use-component-data.tsResult returned by useComponentData. Provides the fetched data, loading/error states, and a refetch function.
ComponentGroupBasefunctionsrc/ui/components/_base/component-group/standalone.tsxStandalone ComponentGroup — a simple wrapper for pre-rendered group content. Works with plain React props.
ComponentGroupBasePropsinterfacesrc/ui/components/_base/component-group/standalone.tsxProps accepted by the ComponentGroupBase standalone component.
ComponentTokenstypealiasnode_modules/@lastshotlabs/frontend-contract/dist/tokens/index.d.tsType definition exported by the Snapshot UI runtime.
ConfirmDialogfunctionsrc/ui/actions/confirm.tsxRender the global confirmation dialog for requests queued through useConfirmManager.
ConfirmDialogBasefunctionsrc/ui/components/overlay/confirm-dialog/standalone.tsxStandalone ConfirmDialog — a confirmation dialog built on ModalBase with plain React props. Works with plain React props.
ConfirmDialogBasePropsinterfacesrc/ui/components/overlay/confirm-dialog/standalone.tsxProps accepted by the ConfirmDialogBase standalone component.
ConfirmManagerinterfacesrc/ui/actions/confirm.tsxImperative API for opening a confirmation dialog from app actions or custom UI.
ConfirmOptionstypealiassrc/ui/actions/confirm.tsxOptions accepted when opening a confirmation dialog.
ConfirmRequestinterfacesrc/ui/actions/confirm.tsxInternal confirm-dialog request stored in the atom-backed manager queue.
ContainerBasefunctionsrc/ui/components/layout/container/standalone.tsxStandalone Container — a centered, max-width-constrained wrapper. Works with plain React props.
ContainerBasePropsinterfacesrc/ui/components/layout/container/standalone.tsxProps accepted by the ContainerBase standalone component.
ContextMenuBasefunctionsrc/ui/components/overlay/context-menu/standalone.tsxStandalone ContextMenu — a right-click context menu with plain React props. Works with plain React props.
ContextMenuBaseEntrytypealiassrc/ui/components/overlay/context-menu/standalone.tsxType definition exported by the Snapshot UI runtime.
ContextMenuBaseIteminterfacesrc/ui/components/overlay/context-menu/standalone.tsxType definition exported by the Snapshot UI runtime.
ContextMenuBaseLabelinterfacesrc/ui/components/overlay/context-menu/standalone.tsxType definition exported by the Snapshot UI runtime.
ContextMenuBasePropsinterfacesrc/ui/components/overlay/context-menu/standalone.tsxProps accepted by the ContextMenuBase standalone component.
ContextMenuBaseSeparatorinterfacesrc/ui/components/overlay/context-menu/standalone.tsxType definition exported by the Snapshot UI runtime.
contrastRatiofunctionsrc/ui/tokens/color.tsCalculate the WCAG contrast ratio between two supported color values.
CUSTOM_EMOJI_CSSvariablesrc/ui/components/communication/emoji-picker/custom-emoji.tsCSS for custom emoji sizing. Custom emojis render as inline images sized to match surrounding text.
CustomEmojiinterfacesrc/ui/components/communication/emoji-picker/custom-emoji.tsShape of a custom emoji entry.
dataSourceSchemavariablenode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsZod schema for validating data source schema.
DataTableBasefunctionsrc/ui/components/data/data-table/standalone.tsxStandalone DataTable — feature-rich data table with sorting, pagination, selection, and search. Works with plain React props.
DataTableBaseBulkActioninterfacesrc/ui/components/data/data-table/standalone.tsxType definition exported by the Snapshot UI runtime.
DataTableBaseColumninterfacesrc/ui/components/data/data-table/standalone.tsxType definition exported by the Snapshot UI runtime.
DataTableBasePaginationinterfacesrc/ui/components/data/data-table/standalone.tsxType definition exported by the Snapshot UI runtime.
DataTableBasePropsinterfacesrc/ui/components/data/data-table/standalone.tsxProps accepted by the DataTableBase standalone component.
DataTableBaseRowActioninterfacesrc/ui/components/data/data-table/standalone.tsxType definition exported by the Snapshot UI runtime.
DataTableBaseSortinterfacesrc/ui/components/data/data-table/standalone.tsxType definition exported by the Snapshot UI runtime.
DatePickerBasevariablesrc/ui/components/forms/date-picker/standalone.tsxExported variable from the Snapshot UI runtime.
DatePickerBasePropstypealiassrc/ui/components/forms/date-picker/standalone.tsxProps accepted by the DatePickerBase standalone component.
DatePickerDisabledEntryinterfacesrc/ui/components/forms/date-picker/standalone.tsxType definition exported by the Snapshot UI runtime.
DatePickerFieldfunctionsrc/ui/components/forms/date-picker/standalone.tsxStandalone DatePickerField — date picker supporting single, range, and multiple selection modes with presets and disabled dates. Works with plain React props.
DatePickerFieldPropsinterfacesrc/ui/components/forms/date-picker/standalone.tsxProps accepted by the DatePickerField component.
DatePickerPresetinterfacesrc/ui/components/forms/date-picker/standalone.tsxType definition exported by the Snapshot UI runtime.
debounceActionfunctionsrc/ui/actions/timing.tsDebounce async or sync action execution by key and resolve all pending callers with the final invocation result.
DefaultErrorBasefunctionsrc/ui/components/feedback/default-error/standalone.tsxStandalone DefaultError — renders an error feedback card with optional retry button. Works with plain React props.
DefaultErrorBasePropsinterfacesrc/ui/components/feedback/default-error/standalone.tsxProps accepted by the DefaultErrorBase standalone component.
DefaultLoadingBasefunctionsrc/ui/components/feedback/default-loading/standalone.tsxStandalone DefaultLoading — renders a loading spinner with label. Works with plain React props.
DefaultLoadingBasePropsinterfacesrc/ui/components/feedback/default-loading/standalone.tsxProps accepted by the DefaultLoadingBase standalone component.
DefaultNotFoundBasefunctionsrc/ui/components/feedback/default-not-found/standalone.tsxStandalone DefaultNotFound — renders a 404 page with title and description. Works with plain React props.
DefaultNotFoundBasePropsinterfacesrc/ui/components/feedback/default-not-found/standalone.tsxProps accepted by the DefaultNotFoundBase standalone component.
DefaultOfflineBasefunctionsrc/ui/components/feedback/default-offline/standalone.tsxStandalone DefaultOffline — renders an offline status banner. Works with plain React props.
DefaultOfflineBasePropsinterfacesrc/ui/components/feedback/default-offline/standalone.tsxProps accepted by the DefaultOfflineBase standalone component.
defineFlavorfunctionsrc/ui/tokens/flavors.tsDefine and register a new flavor. If a flavor with the same name already exists, it is replaced.
defineFlavorWithExtensionfunctionsrc/ui/tokens/flavors.tsDefine and register a flavor by extending an existing parent flavor. The child flavor inherits unspecified fields from the parent and derives dark color variants from light-color overrides when explicit dark overrides are not provided.
deriveDarkVariantfunctionsrc/ui/tokens/color.tsDerive a dark mode variant of a light color. Adjusts lightness and chroma for dark mode readability: - If the color is light (L > 0.5), reduce lightness moderately - If the color is dark (L <= 0.5), increase lightness for dark backgrounds - Boost chroma slightly for vibrancy in dark mode
deriveForegroundfunctionsrc/ui/tokens/color.tsDerive a foreground color that passes WCAG AA contrast (4.5:1) against the given background color. Returns a light or dark foreground.
DetailCardBasefunctionsrc/ui/components/data/detail-card/standalone.tsxStandalone DetailCard — data-driven detail view with formatted fields and header actions. Works with plain React props.
DetailCardBaseActioninterfacesrc/ui/components/data/detail-card/standalone.tsxType definition exported by the Snapshot UI runtime.
DetailCardBaseFieldinterfacesrc/ui/components/data/detail-card/standalone.tsxType definition exported by the Snapshot UI runtime.
DetailCardBasePropsinterfacesrc/ui/components/data/detail-card/standalone.tsxProps accepted by the DetailCardBase standalone component.
detectPlatformfunctionsrc/ui/components/content/link-embed/platform.tsDetects the platform from a URL and extracts embed info.
DividerBasefunctionsrc/ui/components/primitives/divider/standalone.tsxStandalone Divider — renders a horizontal or vertical separator line, optionally with a centered label. Works with plain React props.
DividerBasePropsinterfacesrc/ui/components/primitives/divider/standalone.tsxProps accepted by the DividerBase standalone component.
DrawerBasefunctionsrc/ui/components/overlay/drawer/standalone.tsxStandalone Drawer — a sliding panel overlay with plain React props. Works with plain React props.
DrawerBaseFooterActioninterfacesrc/ui/components/overlay/drawer/standalone.tsxType definition exported by the Snapshot UI runtime.
DrawerBasePropsinterfacesrc/ui/components/overlay/drawer/standalone.tsxProps accepted by the DrawerBase standalone component.
DropdownMenuBasefunctionsrc/ui/components/overlay/dropdown-menu/standalone.tsxStandalone DropdownMenu — a button-triggered floating menu with plain React props. Works with plain React props.
DropdownMenuBaseEntrytypealiassrc/ui/components/overlay/dropdown-menu/standalone.tsxType definition exported by the Snapshot UI runtime.
DropdownMenuBaseIteminterfacesrc/ui/components/overlay/dropdown-menu/standalone.tsxType definition exported by the Snapshot UI runtime.
DropdownMenuBaseLabelinterfacesrc/ui/components/overlay/dropdown-menu/standalone.tsxType definition exported by the Snapshot UI runtime.
DropdownMenuBasePropsinterfacesrc/ui/components/overlay/dropdown-menu/standalone.tsxProps accepted by the DropdownMenuBase standalone component.
DropdownMenuBaseSeparatorinterfacesrc/ui/components/overlay/dropdown-menu/standalone.tsxType definition exported by the Snapshot UI runtime.
DropdownMenuBaseTriggerinterfacesrc/ui/components/overlay/dropdown-menu/standalone.tsxType definition exported by the Snapshot UI runtime.
EmbedBasefunctionsrc/ui/components/media/embed/standalone.tsxStandalone Embed — a responsive iframe container for embedding external content. Works with plain React props.
EmbedBasePropsinterfacesrc/ui/components/media/embed/standalone.tsxProps accepted by the EmbedBase standalone component.
EmojiPickerBasefunctionsrc/ui/components/communication/emoji-picker/standalone.tsxStandalone EmojiPicker — searchable emoji grid with category tabs and custom emoji support. Works with plain React props.
EmojiPickerBasePropsinterfacesrc/ui/components/communication/emoji-picker/standalone.tsxProps accepted by the EmojiPickerBase standalone component.
EmptyStateBasefunctionsrc/ui/components/data/empty-state/standalone.tsxStandalone EmptyState — a centered message with optional icon and action. Works with plain React props.
EmptyStateBasePropsinterfacesrc/ui/components/data/empty-state/standalone.tsxProps accepted by the EmptyStateBase standalone component.
EndpointTargettypealiasnode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsType definition exported by the Snapshot UI runtime.
endpointTargetSchemavariablenode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsZod schema for validating endpoint target schema.
EntityPickerBasefunctionsrc/ui/components/data/entity-picker/standalone.tsxStandalone EntityPicker — dropdown with search, single/multi select. Works with plain React props.
EntityPickerBasePropsinterfacesrc/ui/components/data/entity-picker/standalone.tsxProps accepted by the EntityPickerBase standalone component.
EntityPickerEntityinterfacesrc/ui/components/data/entity-picker/standalone.tsxType definition exported by the Snapshot UI runtime.
ExprRefinterfacenode_modules/@lastshotlabs/frontend-contract/dist/from-B_VrpLQ5.d.tsType definition exported by the Snapshot UI runtime.
extractResourceRefsfunctionnode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsFunction exported by the Snapshot UI runtime.
FavoriteButtonBasefunctionsrc/ui/components/data/favorite-button/standalone.tsxStandalone FavoriteButton — a toggle button with a star icon. Works with plain React props.
FavoriteButtonBasePropsinterfacesrc/ui/components/data/favorite-button/standalone.tsxProps accepted by the FavoriteButtonBase standalone component.
FeedBasefunctionsrc/ui/components/data/feed/standalone.tsxStandalone Feed — feed/activity list with grouping, pagination, and live updates. Works with plain React props.
FeedBaseIteminterfacesrc/ui/components/data/feed/standalone.tsxType definition exported by the Snapshot UI runtime.
FeedBaseItemActioninterfacesrc/ui/components/data/feed/standalone.tsxType definition exported by the Snapshot UI runtime.
FeedBasePropsinterfacesrc/ui/components/data/feed/standalone.tsxProps accepted by the FeedBase standalone component.
FileUploaderBasefunctionsrc/ui/components/content/file-uploader/standalone.tsxStandalone FileUploader — a file upload component with dropzone, button, and compact variants. Works with plain React props.
FileUploaderBasePropsinterfacesrc/ui/components/content/file-uploader/standalone.tsxProps accepted by the FileUploaderBase standalone component.
FilterBarBasefunctionsrc/ui/components/data/filter-bar/standalone.tsxStandalone FilterBar — search + filter dropdowns + active pills. Works with plain React props.
FilterBarBasePropsinterfacesrc/ui/components/data/filter-bar/standalone.tsxProps accepted by the FilterBarBase standalone component.
FilterBarFilterinterfacesrc/ui/components/data/filter-bar/standalone.tsxType definition exported by the Snapshot UI runtime.
Flavorinterfacenode_modules/@lastshotlabs/frontend-contract/dist/tokens/index.d.tsType definition exported by the Snapshot UI runtime.
FloatingMenuBasefunctionsrc/ui/components/primitives/floating-menu/standalone.tsxStandalone FloatingMenu — a dropdown menu with trigger, keyboard navigation, and pre-resolved items. Works with plain React props.
FloatingMenuBaseEntrytypealiassrc/ui/components/primitives/floating-menu/standalone.tsxType definition exported by the Snapshot UI runtime.
FloatingMenuBaseIteminterfacesrc/ui/components/primitives/floating-menu/standalone.tsxType definition exported by the Snapshot UI runtime.
FloatingMenuBaseLabelinterfacesrc/ui/components/primitives/floating-menu/standalone.tsxType definition exported by the Snapshot UI runtime.
FloatingMenuBasePropsinterfacesrc/ui/components/primitives/floating-menu/standalone.tsxProps accepted by the FloatingMenuBase standalone component.
FloatingMenuBaseSeparatorinterfacesrc/ui/components/primitives/floating-menu/standalone.tsxType definition exported by the Snapshot UI runtime.
FontConfigtypealiasnode_modules/@lastshotlabs/frontend-contract/dist/tokens/index.d.tsConfiguration type for font config.
FromRefinterfacenode_modules/@lastshotlabs/frontend-contract/dist/from-B_VrpLQ5.d.tsType definition exported by the Snapshot UI runtime.
getAllFlavorsfunctionsrc/ui/tokens/flavors.tsGet all registered flavors as a record.
getFlavorfunctionsrc/ui/tokens/flavors.tsRetrieve a registered flavor by name.
getResourceInvalidationTargetsfunctionnode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsFunction exported by the Snapshot UI runtime.
getSortableStylefunctionsrc/ui/hooks/use-drag-drop.tsCSS transform helper for sortable items. Converts the dnd-kit transform into a CSS transform string.
GifPickerBasefunctionsrc/ui/components/communication/gif-picker/standalone.tsxStandalone GifPicker — searchable GIF grid with debounced search, loading states, and optional attribution. Works with plain React props.
GifPickerBasePropsinterfacesrc/ui/components/communication/gif-picker/standalone.tsxProps accepted by the GifPickerBase standalone component.
GlobalConfigtypealiassrc/ui/context/types.tsGlobal state definition for the UI context. This now aliases the shared state config used by the runtime.
GridBasefunctionsrc/ui/components/layout/grid/standalone.tsxStandalone Grid — a CSS grid container. Works with plain React props.
GridBasePropsinterfacesrc/ui/components/layout/grid/standalone.tsxProps accepted by the GridBase standalone component.
HeadingBasefunctionsrc/ui/components/content/heading/standalone.tsxStandalone Heading — a styled heading element (h1-h6) that works with plain React props. Works with plain React props.
HeadingBasePropsinterfacesrc/ui/components/content/heading/standalone.tsxProps accepted by the HeadingBase standalone component.
hexToOklchfunctionsrc/ui/tokens/color.tsConvert a hex color string to OKLCH values.
HighlightedTextBasefunctionsrc/ui/components/data/highlighted-text/standalone.tsxStandalone HighlightedText — renders text with search query highlighting. Works with plain React props.
HighlightedTextBasePropsinterfacesrc/ui/components/data/highlighted-text/standalone.tsxProps accepted by the HighlightedTextBase standalone component.
HoverCardBasefunctionsrc/ui/components/overlay/hover-card/standalone.tsxStandalone HoverCard — a floating panel that appears on hover with plain React props. Works with plain React props.
HoverCardBasePropsinterfacesrc/ui/components/overlay/hover-card/standalone.tsxProps accepted by the HoverCardBase standalone component.
hslToOklchfunctionsrc/ui/tokens/color.tsConvert HSL values to OKLCH.
HttpMethodtypealiasnode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsType definition exported by the Snapshot UI runtime.
httpMethodSchemavariablenode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsZod schema for validating http method schema.
Iconfunctionsrc/ui/icons/icon.tsxRender a Snapshot icon from the built-in icon registry.
ICON_PATHSvariablesrc/ui/icons/paths.tsSVG inner content for Lucide icons. Each entry maps a kebab-case icon name to the SVG child elements (path, circle, line, rect, polyline, etc.) that belong inside a 24x24 stroke="currentColor" SVG container. Source: https://lucide.dev — MIT-licensed.
IconButtonBasefunctionsrc/ui/components/forms/icon-button/standalone.tsxStandalone IconButtonBase — an icon-only button with configurable shape, size, and variant. Works with plain React props.
IconButtonBasePropsinterfacesrc/ui/components/forms/icon-button/standalone.tsxProps accepted by the IconButtonBase standalone component.
IconPropsinterfacesrc/ui/icons/icon.tsxProps for the {@link Icon} component.
InlineEditBasevariablesrc/ui/components/forms/inline-edit/standalone.tsxExported variable from the Snapshot UI runtime.
InlineEditBasePropstypealiassrc/ui/components/forms/inline-edit/standalone.tsxProps accepted by the InlineEditBase standalone component.
InlineEditFieldfunctionsrc/ui/components/forms/inline-edit/standalone.tsxStandalone InlineEditField — a click-to-edit text field that toggles between display and input modes. Works with plain React props.
InlineEditFieldPropsinterfacesrc/ui/components/forms/inline-edit/standalone.tsxProps accepted by the InlineEditField component.
InputBasevariablesrc/ui/components/forms/input/standalone.tsxExported variable from the Snapshot UI runtime.
InputBasePropstypealiassrc/ui/components/forms/input/standalone.tsxProps accepted by the InputBase standalone component.
InputControlfunctionsrc/ui/components/forms/input/control.tsxLow-level styled input element with surface resolution and state management. Used internally by InputField and other components that need a styled <input>. Works with plain React props.
InputControlPropsinterfacesrc/ui/components/forms/input/types.tsProps accepted by the InputControl component.
InputFieldfunctionsrc/ui/components/forms/input/standalone.tsxStandalone InputField — a complete form field (label + input + helper/error) that works with plain React props. Works with plain React props.
InputFieldPropsinterfacesrc/ui/components/forms/input/standalone.tsxProps accepted by the InputField component.
interpolatefunctionsrc/ui/actions/interpolate.tsReplace {key} placeholders with values from context. Supports nested paths: {user.name}, {result.id}. Missing keys are preserved as-is: {unknown} stays {unknown}.
isFromRefvariablesrc/ui/context/utils.tsType guard for Snapshot binding references resolved from page, app, or resource state.
isOptimisticResourceTargetfunctionnode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsFunction exported by the Snapshot UI runtime.
isQueryKeyInvalidationTargetfunctionnode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsFunction exported by the Snapshot UI runtime.
isResourceReffunctionnode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsFunction exported by the Snapshot UI runtime.
KanbanBasefunctionsrc/ui/components/workflow/kanban/standalone.tsxStandalone KanbanBase — renders a multi-column board with cards, WIP limits, assignee avatars, priority indicators, and optional drag-and-drop reordering. Works with plain React props.
KanbanBasePropsinterfacesrc/ui/components/workflow/kanban/standalone.tsxProps accepted by the KanbanBase standalone component.
KanbanColumnEntryinterfacesrc/ui/components/workflow/kanban/standalone.tsxType definition exported by the Snapshot UI runtime.
LayoutBasefunctionsrc/ui/components/layout/layout/standalone.tsxStandalone Layout — a layout shell component that wraps page content. Renders one of six layout variants with plain React props.
LayoutBasePropsinterfacesrc/ui/components/layout/layout/standalone.tsxProps accepted by the LayoutBase standalone component.
LayoutBaseSlotstypealiassrc/ui/components/layout/layout/standalone.tsxNamed slot content map for slot-aware layouts.
LayoutBaseVarianttypealiassrc/ui/components/layout/layout/standalone.tsxType definition exported by the Snapshot UI runtime.
LinkBasefunctionsrc/ui/components/primitives/link/standalone.tsxStandalone Link — renders a styled anchor element with optional icon and badge. Works with plain React props.
LinkBasePropsinterfacesrc/ui/components/primitives/link/standalone.tsxProps accepted by the LinkBase standalone component.
LinkEmbedBasefunctionsrc/ui/components/content/link-embed/standalone.tsxStandalone LinkEmbed — renders rich link previews with platform-specific embeds (YouTube, Instagram, TikTok, Twitter, GIF) or a generic card. Works with plain React props.
LinkEmbedBasePropsinterfacesrc/ui/components/content/link-embed/standalone.tsxProps accepted by the LinkEmbedBase standalone component.
LinkEmbedMetainterfacesrc/ui/components/content/link-embed/standalone.tsxType definition exported by the Snapshot UI runtime.
ListBasefunctionsrc/ui/components/data/list/standalone.tsxStandalone List — renders a vertical list of items with optional icons, descriptions, badges, and click actions. Works with plain React props.
ListBaseIteminterfacesrc/ui/components/data/list/standalone.tsxType definition exported by the Snapshot UI runtime.
ListBasePropsinterfacesrc/ui/components/data/list/standalone.tsxProps accepted by the ListBase standalone component.
LocationInputBasevariablesrc/ui/components/forms/location-input/standalone.tsxExported variable from the Snapshot UI runtime.
LocationInputBasePropstypealiassrc/ui/components/forms/location-input/standalone.tsxProps accepted by the LocationInputBase standalone component.
LocationInputFieldfunctionsrc/ui/components/forms/location-input/standalone.tsxStandalone LocationInputField — a location search input with results dropdown and optional Google Maps link. Works with plain React props.
LocationInputFieldPropsinterfacesrc/ui/components/forms/location-input/standalone.tsxProps accepted by the LocationInputField component.
LocationResultinterfacesrc/ui/components/forms/location-input/standalone.tsxType definition exported by the Snapshot UI runtime.
MarkdownBasefunctionsrc/ui/components/content/markdown/standalone.tsxStandalone Markdown — renders markdown content with syntax highlighting and Snapshot design tokens. Works with plain React props.
MarkdownBasePropsinterfacesrc/ui/components/content/markdown/standalone.tsxProps accepted by the MarkdownBase standalone component.
meetsWcagAAfunctionsrc/ui/tokens/color.tsCheck whether two colors satisfy WCAG AA contrast for normal or large text.
MessageThreadBasefunctionsrc/ui/components/communication/message-thread/standalone.tsxStandalone MessageThread — scrollable message list with avatars, date separators, auto-scroll, embed rendering, and consecutive-message grouping. Works with plain React props.
MessageThreadBasePropsinterfacesrc/ui/components/communication/message-thread/standalone.tsxProps accepted by the MessageThreadBase standalone component.
ModalBasefunctionsrc/ui/components/overlay/modal/standalone.tsxStandalone Modal — a centered overlay dialog with plain React props. Works with plain React props.
ModalBaseFooterActioninterfacesrc/ui/components/overlay/modal/standalone.tsxType definition exported by the Snapshot UI runtime.
ModalBasePropsinterfacesrc/ui/components/overlay/modal/standalone.tsxProps accepted by the ModalBase standalone component.
ModalManagerinterfacesrc/ui/actions/modal-manager.tsReturn type of useModalManager.
MultiSelectBasevariablesrc/ui/components/forms/multi-select/standalone.tsxExported variable from the Snapshot UI runtime.
MultiSelectBasePropstypealiassrc/ui/components/forms/multi-select/standalone.tsxProps accepted by the MultiSelectBase standalone component.
MultiSelectFieldfunctionsrc/ui/components/forms/multi-select/standalone.tsxStandalone MultiSelectField — multi-select dropdown with pill tags, inline search, and configurable max selection. Works with plain React props.
MultiSelectFieldOptioninterfacesrc/ui/components/forms/multi-select/standalone.tsxType definition exported by the Snapshot UI runtime.
MultiSelectFieldPropsinterfacesrc/ui/components/forms/multi-select/standalone.tsxProps accepted by the MultiSelectField component.
NavBasefunctionsrc/ui/components/layout/nav/standalone.tsxStandalone Nav — a navigation component with items, logo, and collapse support. Works with plain React props.
NavBaseIteminterfacesrc/ui/components/layout/nav/standalone.tsxType definition exported by the Snapshot UI runtime.
NavBaseLogointerfacesrc/ui/components/layout/nav/standalone.tsxType definition exported by the Snapshot UI runtime.
NavBasePropsinterfacesrc/ui/components/layout/nav/standalone.tsxProps accepted by the NavBase standalone component.
NavBaseUserinterfacesrc/ui/components/layout/nav/standalone.tsxType definition exported by the Snapshot UI runtime.
NavDropdownBasefunctionsrc/ui/components/layout/nav-dropdown/standalone.tsxStandalone NavDropdown — a navigation dropdown with floating panel. Works with plain React props.
NavDropdownBasePropsinterfacesrc/ui/components/layout/nav-dropdown/standalone.tsxProps accepted by the NavDropdownBase standalone component.
NavLinkBasefunctionsrc/ui/components/layout/nav-link/standalone.tsxStandalone NavLink — a navigation link with optional icon and badge. Works with plain React props.
NavLinkBasePropsinterfacesrc/ui/components/layout/nav-link/standalone.tsxProps accepted by the NavLinkBase standalone component.
NavLogoBasefunctionsrc/ui/components/layout/nav-logo/standalone.tsxStandalone NavLogo — a clickable brand logo/text element for navigation headers. Works with plain React props.
NavLogoBasePropsinterfacesrc/ui/components/layout/nav-logo/standalone.tsxProps accepted by the NavLogoBase standalone component.
NavSearchBasefunctionsrc/ui/components/layout/nav-search/standalone.tsxStandalone NavSearch — a search input with optional keyboard shortcut display. Works with plain React props.
NavSearchBasePropsinterfacesrc/ui/components/layout/nav-search/standalone.tsxProps accepted by the NavSearchBase standalone component.
NavSectionBasefunctionsrc/ui/components/layout/nav-section/standalone.tsxStandalone NavSection — a labeled, optionally collapsible group within navigation. Works with plain React props.
NavSectionBasePropsinterfacesrc/ui/components/layout/nav-section/standalone.tsxProps accepted by the NavSectionBase standalone component.
NavUserMenuBasefunctionsrc/ui/components/layout/nav-user-menu/standalone.tsxStandalone NavUserMenu — a user menu dropdown with avatar trigger. Works with plain React props.
NavUserMenuBaseIteminterfacesrc/ui/components/layout/nav-user-menu/standalone.tsxType definition exported by the Snapshot UI runtime.
NavUserMenuBasePropsinterfacesrc/ui/components/layout/nav-user-menu/standalone.tsxProps accepted by the NavUserMenuBase standalone component.
NotificationBellBasefunctionsrc/ui/components/data/notification-bell/standalone.tsxStandalone NotificationBell — bell icon with unread count badge. Works with plain React props.
NotificationBellBasePropsinterfacesrc/ui/components/data/notification-bell/standalone.tsxProps accepted by the NotificationBellBase standalone component.
NotificationFeedBasefunctionsrc/ui/components/workflow/notification-feed/standalone.tsxStandalone NotificationFeedBase — renders a scrollable notification list with type icons, unread indicators, relative timestamps, and a mark-all-read action. Works with plain React props.
NotificationFeedBasePropsinterfacesrc/ui/components/workflow/notification-feed/standalone.tsxProps accepted by the NotificationFeedBase standalone component.
OAuthButtonsBasefunctionsrc/ui/components/primitives/oauth-buttons/standalone.tsxStandalone OAuthButtons — renders OAuth provider buttons with optional heading and auto-redirect support. Works with plain React props.
OAuthButtonsBasePropsinterfacesrc/ui/components/primitives/oauth-buttons/standalone.tsxProps accepted by the OAuthButtonsBase standalone component.
OAuthProviderinterfacesrc/ui/components/primitives/oauth-buttons/standalone.tsxType definition exported by the Snapshot UI runtime.
oklchToHexfunctionsrc/ui/tokens/color.tsConvert OKLCH values back to a hex color string. Used for serializing runtime overrides.
oklchToStringfunctionsrc/ui/tokens/color.tsFormat OKLCH values as a CSS-compatible string (without the oklch() wrapper). Output format: “L C H” where L, C, H are rounded to 3 decimal places.
OptimisticConfigtypealiasnode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsConfiguration type for optimistic config.
optimisticConfigSchemavariablenode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsZod schema for validating optimistic config schema.
OptimisticTargettypealiasnode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsType definition exported by the Snapshot UI runtime.
optimisticTargetSchemavariablenode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsZod schema for validating optimistic target schema.
OutletBasefunctionsrc/ui/components/layout/outlet/standalone.tsxStandalone OutletBase — a router-agnostic mount point for child routes or manually-supplied content. Works with plain React props. Pass router-rendered content as children. When children is empty, fallback is rendered instead.
OutletBasePropsinterfacesrc/ui/components/layout/outlet/standalone.tsxProps accepted by the OutletBase standalone component.
PageContextProviderfunctionsrc/ui/context/providers.tsxProvides per-page state that is destroyed on route change.
PageContextProviderPropsinterfacesrc/ui/context/types.tsProps for PageContextProvider. Wraps each page/route to provide per-page component state.
parseOklchStringfunctionsrc/ui/tokens/color.tsParse an oklch string (the CSS variable format “L C H”) back to values.
parseShortcodesfunctionsrc/ui/components/communication/emoji-picker/custom-emoji.tsParses shortcodes in text and replaces them with <img> tags.
PasskeyButtonBasefunctionsrc/ui/components/primitives/passkey-button/standalone.tsxStandalone PasskeyButton — renders a passkey authentication button. Works with plain React props.
PasskeyButtonBasePropsinterfacesrc/ui/components/primitives/passkey-button/standalone.tsxProps accepted by the PasskeyButtonBase standalone component.
Platformtypealiassrc/ui/components/content/link-embed/platform.tsPlatform detection and embed URL extraction. Identifies known platforms from URLs and extracts the embed-compatible URL or ID needed to render platform-specific iframes.
PLATFORM_COLORSvariablesrc/ui/components/content/link-embed/platform.tsPlatform accent colors.
PLATFORM_NAMESvariablesrc/ui/components/content/link-embed/platform.tsPlatform display names.
PlatformInfointerfacesrc/ui/components/content/link-embed/platform.tsResolved platform metadata used to render a platform-specific embedded preview.
PopoverBasefunctionsrc/ui/components/overlay/popover/standalone.tsxStandalone Popover — a button-triggered floating panel with plain React props. Works with plain React props.
PopoverBasePropsinterfacesrc/ui/components/overlay/popover/standalone.tsxProps accepted by the PopoverBase standalone component.
PrefetchLinkBasefunctionsrc/ui/components/navigation/prefetch-link/standalone.tsxStandalone PrefetchLink — a plain <a> anchor that fires a prefetch callback based on the configured strategy. Works without SSR context.
PrefetchLinkBasePropsinterfacesrc/ui/components/navigation/prefetch-link/standalone.tsxProps accepted by the PrefetchLinkBase standalone component.
PresenceIndicatorBasefunctionsrc/ui/components/communication/presence-indicator/standalone.tsxStandalone PresenceIndicator — displays online/offline/away/busy/dnd status with a colored dot and optional label. Works with plain React props.
PresenceIndicatorBasePropsinterfacesrc/ui/components/communication/presence-indicator/standalone.tsxProps accepted by the PresenceIndicatorBase standalone component.
PricingFeatureEntryinterfacesrc/ui/components/commerce/pricing-table/standalone.tsxType definition exported by the Snapshot UI runtime.
PricingTableBasefunctionsrc/ui/components/commerce/pricing-table/standalone.tsxStandalone PricingTableBase — renders a responsive pricing comparison as either a card grid or a feature-comparison table with CTA buttons per tier. Works with plain React props.
PricingTableBasePropsinterfacesrc/ui/components/commerce/pricing-table/standalone.tsxProps accepted by the PricingTableBase standalone component.
PricingTierEntryinterfacesrc/ui/components/commerce/pricing-table/standalone.tsxType definition exported by the Snapshot UI runtime.
ProgressBasefunctionsrc/ui/components/data/progress/standalone.tsxStandalone Progress — bar or circular progress indicator. Works with plain React props.
ProgressBasePropsinterfacesrc/ui/components/data/progress/standalone.tsxProps accepted by the ProgressBase standalone component.
QuickAddBasevariablesrc/ui/components/forms/quick-add/standalone.tsxExported variable from the Snapshot UI runtime.
QuickAddBasePropstypealiassrc/ui/components/forms/quick-add/standalone.tsxProps accepted by the QuickAddBase standalone component.
QuickAddFieldfunctionsrc/ui/components/forms/quick-add/standalone.tsxStandalone QuickAddField — a compact input with submit button for quickly adding items to a list. Works with plain React props.
QuickAddFieldPropsinterfacesrc/ui/components/forms/quick-add/standalone.tsxProps accepted by the QuickAddField component.
RadiusScaletypealiasnode_modules/@lastshotlabs/frontend-contract/dist/tokens/index.d.tsType definition exported by the Snapshot UI runtime.
ReactionBarBasefunctionsrc/ui/components/communication/reaction-bar/standalone.tsxStandalone ReactionBar — row of emoji reaction pills with counts and an add-reaction button that opens an inline emoji picker. Works with plain React props.
ReactionBarBasePropsinterfacesrc/ui/components/communication/reaction-bar/standalone.tsxProps accepted by the ReactionBarBase standalone component.
ReactionEntryinterfacesrc/ui/components/communication/reaction-bar/standalone.tsxType definition exported by the Snapshot UI runtime.
readPersistedStatefunctionsrc/ui/state/persist.tsRead and JSON-decode a persisted state value, returning undefined on failure or absence.
relativeLuminancefunctionsrc/ui/tokens/color.tsCompute relative luminance from OKLCH for WCAG contrast calculations. Uses sRGB relative luminance (rec. 709) from the linear RGB values.
ResolvedConfigtypealiassrc/ui/context/types.tsResolves a type where FromRef values are replaced with their resolved types. Used internally — consumers don’t need to use this directly.
ResolvedRequestinterfacenode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsType definition exported by the Snapshot UI runtime.
resolveEmojiRecordsfunctionsrc/ui/components/communication/emoji-picker/custom-emoji.tsResolves emoji records from the API into CustomEmoji entries. Handles the uploadKeyurl resolution using a URL prefix or field mapping.
resolveEndpointTargetfunctionnode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsFunction exported by the Snapshot UI runtime.
resolveFrameworkStylesfunctionsrc/ui/tokens/resolve.tsReturns a CSS string containing framework-level styles: 1. CSS reset (box-sizing, margin, padding, body defaults, font inherit) 2. Component polish CSS — data-attribute-driven styles for page layout, data-table, stat-card, form, detail-card, and focus rings. All values are parameterized via --sn-* token custom properties so the output adapts to whatever theme tokens are active.
resolveResponsiveValuefunctionsrc/ui/hooks/use-breakpoint.tsResolve a responsive value for a given breakpoint. Cascades down: if the active breakpoint isn’t defined, falls back to the next smaller breakpoint, then default. For flat (non-object) values, returns the value directly.
resolveTokensfunctionsrc/ui/tokens/resolve.tsResolve a theme configuration into a complete CSS string. Pipeline: 1. Load base flavor (default: neutral) 2. Deep merge overrides onto flavor defaults 3. Convert all colors to oklch 4. Auto-derive foreground colors (contrast-aware) 5. Auto-derive dark mode colors if not provided 6. Map radius/spacing/font to CSS 7. Generate component-level tokens 8. Output CSS string with :root, .dark, and component selectors
ResourceConfigtypealiasnode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsConfiguration type for resource config.
resourceConfigSchemavariablenode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsZod schema for validating resource config schema.
ResourceInvalidationTargettypealiasnode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsType definition exported by the Snapshot UI runtime.
resourceInvalidationTargetSchemavariablenode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsZod schema for validating resource invalidation target schema.
ResourceMaptypealiasnode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsType definition exported by the Snapshot UI runtime.
resourceParamSchemavariablenode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsZod schema for validating resource param schema.
ResourceReftypealiasnode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsType definition exported by the Snapshot UI runtime.
resourceRefSchemavariablenode_modules/@lastshotlabs/frontend-contract/dist/resources/index.d.tsZod schema for validating resource ref schema.
Responsivetypealiasnode_modules/@lastshotlabs/frontend-contract/dist/tokens/index.d.tsType definition exported by the Snapshot UI runtime.
RichInputBasevariablesrc/ui/components/content/rich-input/standalone.tsxStandalone RichInput — a rich text editor with formatting toolbar, powered by tiptap. Works with plain React props.
RichInputBaseHandleinterfacesrc/ui/components/content/rich-input/standalone.tsxImperative handle exposed via ref. Use this when an external surface (emoji picker, GIF picker, slash-command menu) needs to insert content at the user’s current cursor position without going through the controlled-value path (which clobbers the cursor).
RichInputBasePropsinterfacesrc/ui/components/content/rich-input/standalone.tsxProps accepted by the RichInputBase standalone component.
RichTextEditorBasefunctionsrc/ui/components/content/rich-text-editor/standalone.tsxStandalone RichTextEditor — a markdown editor with live preview, powered by CodeMirror. Works with plain React props.
RichTextEditorBasePropsinterfacesrc/ui/components/content/rich-text-editor/standalone.tsxProps accepted by the RichTextEditorBase standalone component.
RowBasefunctionsrc/ui/components/layout/row/standalone.tsxStandalone Row — a horizontal flex container. Works with plain React props.
RowBasePropsinterfacesrc/ui/components/layout/row/standalone.tsxProps accepted by the RowBase standalone component.
RuntimeStateConfigtypealiassrc/ui/state/types.tsNamed state definition. App-scope state persists for the app lifetime. Route-scope state is recreated whenever the active route changes.
SaveIndicatorBasefunctionsrc/ui/components/data/save-indicator/standalone.tsxStandalone SaveIndicator — shows saving/saved/error status. Works with plain React props.
SaveIndicatorBasePropsinterfacesrc/ui/components/data/save-indicator/standalone.tsxProps accepted by the SaveIndicatorBase standalone component.
ScrollAreaBasefunctionsrc/ui/components/data/scroll-area/standalone.tsxStandalone ScrollArea — a scrollable container with custom-styled thin scrollbars. Works with plain React props.
ScrollAreaBasePropsinterfacesrc/ui/components/data/scroll-area/standalone.tsxProps accepted by the ScrollAreaBase standalone component.
SectionBasefunctionsrc/ui/components/layout/section/standalone.tsxStandalone Section — a full-width vertical section with optional height and alignment. Works with plain React props.
SectionBasePropsinterfacesrc/ui/components/layout/section/standalone.tsxProps accepted by the SectionBase standalone component.
SelectBasevariablesrc/ui/components/forms/select/standalone.tsxExported variable from the Snapshot UI runtime.
SelectBasePropstypealiassrc/ui/components/forms/select/standalone.tsxProps accepted by the SelectBase standalone component.
SelectControlfunctionsrc/ui/components/forms/select/control.tsxLow-level styled select element with surface resolution and state management. Used internally by SelectField and other components that need a styled <select>. Works with plain React props.
SelectControlPropsinterfacesrc/ui/components/forms/select/types.tsProps accepted by the SelectControl component.
SelectFieldfunctionsrc/ui/components/forms/select/standalone.tsxStandalone SelectField — a complete select form field with label, options, helper/error text, and required indicator. Works with plain React props.
SelectFieldPropsinterfacesrc/ui/components/forms/select/standalone.tsxProps accepted by the SelectField component.
SeparatorBasefunctionsrc/ui/components/data/separator/standalone.tsxStandalone Separator — a horizontal or vertical line with optional label. Works with plain React props.
SeparatorBasePropsinterfacesrc/ui/components/data/separator/standalone.tsxProps accepted by the SeparatorBase standalone component.
ShowToastOptionsinterfacesrc/ui/actions/toast.tsxUser-facing toast options accepted by the toast manager.
SkeletonBasefunctionsrc/ui/components/data/skeleton/standalone.tsxStandalone Skeleton — a placeholder loading indicator. Works with plain React props.
SkeletonBasePropsinterfacesrc/ui/components/data/skeleton/standalone.tsxProps accepted by the SkeletonBase standalone component.
SliderBasevariablesrc/ui/components/forms/slider/standalone.tsxExported variable from the Snapshot UI runtime.
SliderBasePropstypealiassrc/ui/components/forms/slider/standalone.tsxProps accepted by the SliderBase standalone component.
SliderFieldfunctionsrc/ui/components/forms/slider/standalone.tsxStandalone SliderField — a range slider with optional label, value display, limit labels, and dual-thumb range mode. Works with plain React props.
SliderFieldPropsinterfacesrc/ui/components/forms/slider/standalone.tsxProps accepted by the SliderField component.
SnapshotApiProviderfunctionsrc/ui/state/api.tsBackward-compatible provider shim for tests and external wrappers. This writes the client into the shared Jotai store instead of React context.
SnapshotImageBasefunctionsrc/ui/components/media/image/standalone.tsxStandalone SnapshotImage — an optimized image component with placeholder support. Works with plain React props.
SnapshotImageBasePropsinterfacesrc/ui/components/media/image/standalone.tsxProps accepted by the SnapshotImageBase standalone component.
SpacerBasefunctionsrc/ui/components/layout/spacer/standalone.tsxStandalone Spacer — an empty element that takes up space along an axis. Works with plain React props.
SpacerBasePropsinterfacesrc/ui/components/layout/spacer/standalone.tsxProps accepted by the SpacerBase standalone component.
SpacingScaletypealiasnode_modules/@lastshotlabs/frontend-contract/dist/tokens/index.d.tsType definition exported by the Snapshot UI runtime.
SplitPaneBasefunctionsrc/ui/components/layout/split-pane/standalone.tsxStandalone SplitPane — a resizable two-pane layout with a draggable divider. Works with plain React props.
SplitPaneBasePropsinterfacesrc/ui/components/layout/split-pane/standalone.tsxProps accepted by the SplitPaneBase standalone component.
StackBasefunctionsrc/ui/components/primitives/stack/standalone.tsxStandalone Stack — a flex-column layout container with token-based spacing. Works with plain React props.
StackBasePropsinterfacesrc/ui/components/primitives/stack/standalone.tsxProps accepted by the StackBase standalone component.
StatCardBasefunctionsrc/ui/components/data/stat-card/standalone.tsxStandalone StatCard — displays a single metric with optional trend indicator. Works with plain React props.
StatCardBasePropsinterfacesrc/ui/components/data/stat-card/standalone.tsxProps accepted by the StatCardBase standalone component.
StatCardTrendinterfacesrc/ui/components/data/stat-card/standalone.tsxType definition exported by the Snapshot UI runtime.
StateConfigMaptypealiassrc/ui/state/types.tsMap of named state definitions.
StateHookScopetypealiassrc/ui/state/hooks.tsHook-level scope override that can force app, route, or auto-discovered state resolution.
StateProviderPropsinterfacesrc/ui/state/types.tsProps accepted by the provider layer that wires named state into a React tree.
StateScopetypealiasnode_modules/@lastshotlabs/frontend-contract/dist/types-xWJCMOrd.d.tsType definition exported by the Snapshot UI runtime.
StepperBasefunctionsrc/ui/components/navigation/stepper/standalone.tsxStandalone Stepper — a multi-step progress indicator with plain React props. Works with plain React props.
StepperBasePropsinterfacesrc/ui/components/navigation/stepper/standalone.tsxProps accepted by the StepperBase standalone component.
StepperBaseStepinterfacesrc/ui/components/navigation/stepper/standalone.tsxType definition exported by the Snapshot UI runtime.
SwitchBasevariablesrc/ui/components/forms/switch/standalone.tsxExported variable from the Snapshot UI runtime.
SwitchBasePropstypealiassrc/ui/components/forms/switch/standalone.tsxProps accepted by the SwitchBase standalone component.
SwitchFieldfunctionsrc/ui/components/forms/switch/standalone.tsxStandalone SwitchField — a toggle switch with label, description, and configurable size and color. Works with plain React props.
SwitchFieldPropsinterfacesrc/ui/components/forms/switch/standalone.tsxProps accepted by the SwitchField component.
TabsBasefunctionsrc/ui/components/navigation/tabs/standalone.tsxStandalone Tabs — tabbed navigation with plain React props. Works with plain React props.
TabsBasePropsinterfacesrc/ui/components/navigation/tabs/standalone.tsxProps accepted by the TabsBase standalone component.
TabsBaseTabinterfacesrc/ui/components/navigation/tabs/standalone.tsxType definition exported by the Snapshot UI runtime.
TagSelectorBasevariablesrc/ui/components/forms/tag-selector/standalone.tsxExported variable from the Snapshot UI runtime.
TagSelectorBasePropstypealiassrc/ui/components/forms/tag-selector/standalone.tsxProps accepted by the TagSelectorBase standalone component.
TagSelectorFieldfunctionsrc/ui/components/forms/tag-selector/standalone.tsxStandalone TagSelectorField — tag pills with dropdown selection, search filtering, and optional tag creation. Works with plain React props.
TagSelectorFieldPropsinterfacesrc/ui/components/forms/tag-selector/standalone.tsxProps accepted by the TagSelectorField component.
TagSelectorTaginterfacesrc/ui/components/forms/tag-selector/standalone.tsxType definition exported by the Snapshot UI runtime.
TextareaBasevariablesrc/ui/components/forms/textarea/standalone.tsxExported variable from the Snapshot UI runtime.
TextareaBasePropstypealiassrc/ui/components/forms/textarea/standalone.tsxProps accepted by the TextareaBase standalone component.
TextareaControlfunctionsrc/ui/components/forms/textarea/control.tsxLow-level styled textarea element with surface resolution and state management. Used internally by TextareaField and other components that need a styled <textarea>. Works with plain React props.
TextareaControlPropsinterfacesrc/ui/components/forms/textarea/types.tsProps accepted by the TextareaControl component.
TextareaFieldfunctionsrc/ui/components/forms/textarea/standalone.tsxStandalone TextareaField — a complete textarea form field with label, character counter, validation, and helper/error text. Works with plain React props.
TextareaFieldPropsinterfacesrc/ui/components/forms/textarea/standalone.tsxProps accepted by the TextareaField component.
TextBasefunctionsrc/ui/components/primitives/text/standalone.tsxStandalone Text — renders a styled paragraph element with token-based typography. Works with plain React props.
TextBasePropsinterfacesrc/ui/components/primitives/text/standalone.tsxProps accepted by the TextBase standalone component.
ThemeColorstypealiasnode_modules/@lastshotlabs/frontend-contract/dist/tokens/index.d.tsType definition exported by the Snapshot UI runtime.
ThemeConfigtypealiasnode_modules/@lastshotlabs/frontend-contract/dist/tokens/index.d.tsConfiguration type for theme config.
throttleActionfunctionsrc/ui/actions/timing.tsThrottle async or sync action execution by key and drop calls inside the active throttle window.
TimelineBasefunctionsrc/ui/components/content/timeline/standalone.tsxStandalone Timeline — vertical event timeline with dot markers, connectors, date labels, and default/compact/alternating layout variants. Works with plain React props.
TimelineBasePropsinterfacesrc/ui/components/content/timeline/standalone.tsxProps accepted by the TimelineBase standalone component.
TimelineItemEntryinterfacesrc/ui/components/content/timeline/standalone.tsxType definition exported by the Snapshot UI runtime.
ToastContainerfunctionsrc/ui/actions/toast.tsxRender the active toast queue.
ToastIteminterfacesrc/ui/actions/toast.tsxResolved toast entry stored in the runtime queue.
ToastManagerinterfacesrc/ui/actions/toast.tsxImperative API for enqueueing and dismissing transient toast messages.
ToggleBasevariablesrc/ui/components/forms/toggle/standalone.tsxExported variable from the Snapshot UI runtime.
ToggleBasePropstypealiassrc/ui/components/forms/toggle/standalone.tsxProps accepted by the ToggleBase standalone component.
ToggleFieldfunctionsrc/ui/components/forms/toggle/standalone.tsxStandalone ToggleField — a pressable toggle button with optional icon and label. Works with plain React props.
ToggleFieldPropsinterfacesrc/ui/components/forms/toggle/standalone.tsxProps accepted by the ToggleField component.
ToggleGroupBasefunctionsrc/ui/components/forms/toggle-group/standalone.tsxStandalone ToggleGroupBase — a group of toggle buttons supporting single or multi-select modes. Works with plain React props.
ToggleGroupBasePropsinterfacesrc/ui/components/forms/toggle-group/standalone.tsxProps accepted by the ToggleGroupBase standalone component.
ToggleGroupIteminterfacesrc/ui/components/forms/toggle-group/standalone.tsxType definition exported by the Snapshot UI runtime.
TokenEditorinterfacenode_modules/@lastshotlabs/frontend-contract/dist/tokens/index.d.tsType definition exported by the Snapshot UI runtime.
TooltipBasefunctionsrc/ui/components/data/tooltip/standalone.tsxStandalone Tooltip — wraps child content and shows informational text on hover with configurable placement and delay. Works with plain React props.
TooltipBasePropsinterfacesrc/ui/components/data/tooltip/standalone.tsxProps accepted by the TooltipBase standalone component.
toPersistedStateKeyfunctionsrc/ui/state/persist.tsBuild the storage key used for persisted Snapshot state entries.
TreeViewBasefunctionsrc/ui/components/navigation/tree-view/standalone.tsxStandalone TreeView — a hierarchical tree with expand/collapse and selection. Works with plain React props.
TreeViewBaseIteminterfacesrc/ui/components/navigation/tree-view/standalone.tsxType definition exported by the Snapshot UI runtime.
TreeViewBasePropsinterfacesrc/ui/components/navigation/tree-view/standalone.tsxProps accepted by the TreeViewBase standalone component.
TypingIndicatorBasefunctionsrc/ui/components/communication/typing-indicator/standalone.tsxStandalone TypingIndicator — shows animated bouncing dots with user names to indicate who is currently typing. Works with plain React props.
TypingIndicatorBasePropsinterfacesrc/ui/components/communication/typing-indicator/standalone.tsxProps accepted by the TypingIndicatorBase standalone component.
TypingUserinterfacesrc/ui/components/communication/typing-indicator/standalone.tsxA user entry for the typing indicator.
UI_BREAKPOINTSvariablesrc/ui/hooks/use-breakpoint.tsBreakpoint pixel thresholds (mobile-first, min-width).
useApiClientfunctionsrc/ui/state/api.tsRead the active API client from the app-scope Jotai store.
useBreakpointfunctionsrc/ui/hooks/use-breakpoint.tsReturns the currently active breakpoint based on window width. Uses matchMedia for efficient, event-driven updates (no resize polling). Returns "default" during SSR.
useComponentDatafunctionsrc/ui/components/_base/use-component-data.tsShared data-fetching hook for Snapshot UI components. Parses a data config string like "GET /api/stats/revenue" into method + endpoint, resolves any FromRef values in params via useSubscribe, and fetches data using the app-scope API client. When the API client is not available (e.g., in tests or before a provider supplies it), the hook returns a loading state without throwing.
useConfirmManagerfunctionsrc/ui/actions/confirm.tsxReturn the shared confirmation manager for the current Snapshot UI tree.
useDndSensorsfunctionsrc/ui/hooks/use-drag-drop.tsPre-configured sensor setup for pointer + keyboard DnD. Pointer requires 5px distance to activate (prevents click hijacking). Keyboard uses standard coordinates for arrow key navigation.
useInfiniteScrollfunctionsrc/ui/hooks/use-infinite-scroll.tsObserve a sentinel element and load the next page when it enters the viewport.
UseInfiniteScrollOptionsinterfacesrc/ui/hooks/use-infinite-scroll.tsOptions for loading additional items when a sentinel approaches the viewport.
useModalManagerfunctionsrc/ui/actions/modal-manager.tsHook to manage modal open/close state via a Jotai atom stack. Provides open, close, isOpen, and the current stack.
usePersistedAtomfunctionsrc/ui/state/use-persisted-atom.tsBind a primitive atom to browser storage so its value survives page reloads.
usePollfunctionsrc/ui/hooks/use-poll.tsInvoke a callback on an interval with optional document-visibility pausing.
UsePollOptionsinterfacesrc/ui/hooks/use-poll.tsOptions controlling interval-based polling from client components.
usePublishfunctionsrc/ui/context/hooks.tsRegisters a component in the page context and returns a setter function to publish values that other components can subscribe to via { from: "id" }.
useResetStateValuefunctionsrc/ui/state/hooks.tsReturn a callback that resets a named state entry to its configured default.
useResolveFromfunctionsrc/ui/context/hooks.tsResolves all FromRef values in a config object at once.
useResolveFromManyfunctionsrc/ui/context/hooks.tsResolves an array of values that may contain FromRefs. Stable across renders regardless of array length — use this when the number of items is dynamic (e.g., a list of nav items, params object) and a per-item useSubscribe would violate the rules of hooks. Internally uses a single subscription to the page registry store and re-evaluates when any subscribed atom changes.
useResponsiveValuefunctionsrc/ui/hooks/use-breakpoint.tsResolve a responsive value to the appropriate value for the current breakpoint. Accepts either a flat value (returned as-is) or a responsive map with breakpoint keys. Falls back to the next smaller defined breakpoint.
useSetStateValuefunctionsrc/ui/state/hooks.tsReturn a setter that writes to a named state entry in the resolved scope.
useStateValuefunctionsrc/ui/state/hooks.tsRead the current value for a named state entry.
useSubscribefunctionsrc/ui/context/hooks.tsSubscribes to a value from the shared binding/state registry system.
useToastManagerfunctionsrc/ui/actions/toast.tsxReturn the toast manager.
useTokenEditorfunctionsrc/ui/tokens/editor.tsReact hook for runtime token editing. Provides setToken/setFlavor/resetTokens/getTokens/subscribe for live theme customization. Changes are applied instantly via inline styles on document.documentElement.
useUrlSyncfunctionsrc/ui/hooks/use-url-sync.tsKeep a slice of local state synchronized with URL query parameters.
validateContrastfunctionsrc/ui/tokens/contrast-checker.tsWarn when theme color pairs fail WCAG AA contrast.
VideoBasefunctionsrc/ui/components/media/video/standalone.tsxStandalone Video — a styled video element that works with plain React props. Works with plain React props.
VideoBasePropsinterfacesrc/ui/components/media/video/standalone.tsxProps accepted by the VideoBase standalone component.
VoteBasefunctionsrc/ui/components/data/vote/standalone.tsxStandalone Vote — upvote/downvote toggle with count display. Works with plain React props.
VoteBasePropsinterfacesrc/ui/components/data/vote/standalone.tsxProps accepted by the VoteBase standalone component.
WizardBasefunctionsrc/ui/components/forms/wizard/standalone.tsxStandalone WizardBase — a multi-step form wizard with progress indicator, step navigation, field validation, and completion state. Works with plain React props.
WizardBasePropsinterfacesrc/ui/components/forms/wizard/standalone.tsxProps accepted by the WizardBase standalone component.
WizardFieldConfiginterfacesrc/ui/components/forms/wizard/standalone.tsxConfiguration type for wizard field config.
WizardStateinterfacesrc/ui/components/forms/wizard/standalone.tsxType definition exported by the Snapshot UI runtime.
WizardStepDefinterfacesrc/ui/components/forms/wizard/standalone.tsxType definition exported by the Snapshot UI runtime.
writePersistedStatefunctionsrc/ui/state/persist.tsSerialize and store a persisted state value, ignoring browser storage failures.
ExportKindDescription
colorToOklchfunctionConvert any supported color string to OKLCH values. Supports: hex (#rgb, #rrggbb), oklch strings (“L C H”), and oklch() CSS function.
contrastRatiofunctionCalculate the WCAG contrast ratio between two supported color values.
defineFlavorfunctionDefine and register a new flavor. If a flavor with the same name already exists, it is replaced.
defineFlavorWithExtensionfunctionDefine and register a flavor by extending an existing parent flavor. The child flavor inherits unspecified fields from the parent and derives dark color variants from light-color overrides when explicit dark overrides are not provided.
deriveDarkVariantfunctionDerive a dark mode variant of a light color. Adjusts lightness and chroma for dark mode readability: - If the color is light (L > 0.5), reduce lightness moderately - If the color is dark (L <= 0.5), increase lightness for dark backgrounds - Boost chroma slightly for vibrancy in dark mode
deriveForegroundfunctionDerive a foreground color that passes WCAG AA contrast (4.5:1) against the given background color. Returns a light or dark foreground.
getAllFlavorsfunctionGet all registered flavors as a record.
getFlavorfunctionRetrieve a registered flavor by name.
hexToOklchfunctionConvert a hex color string to OKLCH values.
hslToOklchfunctionConvert HSL values to OKLCH.
meetsWcagAAfunctionCheck whether two colors satisfy WCAG AA contrast for normal or large text.
oklchToHexfunctionConvert OKLCH values back to a hex color string. Used for serializing runtime overrides.
oklchToStringfunctionFormat OKLCH values as a CSS-compatible string (without the oklch() wrapper). Output format: “L C H” where L, C, H are rounded to 3 decimal places.
parseOklchStringfunctionParse an oklch string (the CSS variable format “L C H”) back to values.
relativeLuminancefunctionCompute relative luminance from OKLCH for WCAG contrast calculations. Uses sRGB relative luminance (rec. 709) from the linear RGB values.
resolveFrameworkStylesfunctionReturns a CSS string containing framework-level styles: 1. CSS reset (box-sizing, margin, padding, body defaults, font inherit) 2. Component polish CSS — data-attribute-driven styles for page layout, data-table, stat-card, form, detail-card, and focus rings. All values are parameterized via --sn-* token custom properties so the output adapts to whatever theme tokens are active.
resolveTokensfunctionResolve a theme configuration into a complete CSS string. Pipeline: 1. Load base flavor (default: neutral) 2. Deep merge overrides onto flavor defaults 3. Convert all colors to oklch 4. Auto-derive foreground colors (contrast-aware) 5. Auto-derive dark mode colors if not provided 6. Map radius/spacing/font to CSS 7. Generate component-level tokens 8. Output CSS string with :root, .dark, and component selectors
useTokenEditorfunctionReact hook for runtime token editing. Provides setToken/setFlavor/resetTokens/getTokens/subscribe for live theme customization. Changes are applied instantly via inline styles on document.documentElement.
validateContrastfunctionWarn when theme color pairs fail WCAG AA contrast.

colorToOklch(color: string) => [number, number, number]

Section titled “colorToOklch(color: string) => [number, number, number]”

Convert any supported color string to OKLCH values. Supports: hex (#rgb, #rrggbb), oklch strings (“L C H”), and oklch() CSS function.

Parameters:

NameDescription
colorColor string in any supported format

Returns: Tuple of [lightness, chroma, hue]


contrastRatio(left: string, right: string) => number

Section titled “contrastRatio(left: string, right: string) => number”

Calculate the WCAG contrast ratio between two supported color values.


defineFlavor(name: string, config: FlavorConfig) => Flavor

Section titled “defineFlavor(name: string, config: FlavorConfig) => Flavor”

Define and register a new flavor. If a flavor with the same name already exists, it is replaced.

Parameters:

NameDescription
nameUnique flavor identifier
configFlavor configuration (colors, radius, spacing, font, components)

Returns: The registered Flavor object


defineFlavorWithExtension(name: string, extendsName: string, overrides: Partial<FlavorConfig>) => Flavor

Section titled “defineFlavorWithExtension(name: string, extendsName: string, overrides: Partial<FlavorConfig>) => Flavor”

Define and register a flavor by extending an existing parent flavor.

The child flavor inherits unspecified fields from the parent and derives dark color variants from light-color overrides when explicit dark overrides are not provided.

Parameters:

NameDescription
nameUnique child flavor identifier
extendsNameParent flavor identifier to inherit from
overridesPartial flavor overrides applied to the parent

Returns: The registered merged flavor


deriveDarkVariant(lightColor: string) => string

Section titled “deriveDarkVariant(lightColor: string) => string”

Derive a dark mode variant of a light color. Adjusts lightness and chroma for dark mode readability:

  • If the color is light (L > 0.5), reduce lightness moderately
  • If the color is dark (L <= 0.5), increase lightness for dark backgrounds
  • Boost chroma slightly for vibrancy in dark mode

Parameters:

NameDescription
lightColorLight mode color in any supported format

Returns: OKLCH string for the dark mode variant


deriveForeground(backgroundColor: string) => string

Section titled “deriveForeground(backgroundColor: string) => string”

Derive a foreground color that passes WCAG AA contrast (4.5:1) against the given background color. Returns a light or dark foreground.

Parameters:

NameDescription
backgroundColorBackground color in any supported format

Returns: OKLCH string for the foreground color


Get all registered flavors as a record.

Returns: Record of flavor name to Flavor object


getFlavor(name: string) => Flavor | undefined

Section titled “getFlavor(name: string) => Flavor | undefined”

Retrieve a registered flavor by name.

Parameters:

NameDescription
nameFlavor identifier

Returns: The Flavor object, or undefined if not found


hexToOklch(hex: string) => [number, number, number]

Section titled “hexToOklch(hex: string) => [number, number, number]”

Convert a hex color string to OKLCH values.

Parameters:

NameDescription
hexCSS hex color (e.g. “#ff0000”, “#f00”)

Returns: Tuple of [lightness, chroma, hue]


hslToOklch(h: number, s: number, l: number) => [number, number, number]

Section titled “hslToOklch(h: number, s: number, l: number) => [number, number, number]”

Convert HSL values to OKLCH.

Parameters:

NameDescription
hHue in degrees [0, 360)
sSaturation [0, 100]
lLightness [0, 100]

Returns: Tuple of [lightness, chroma, hue]


meetsWcagAA(left: string, right: string, largeText?: boolean) => boolean

Section titled “meetsWcagAA(left: string, right: string, largeText?: boolean) => boolean”

Check whether two colors satisfy WCAG AA contrast for normal or large text.


oklchToHex(l: number, c: number, h: number) => string

Section titled “oklchToHex(l: number, c: number, h: number) => string”

Convert OKLCH values back to a hex color string. Used for serializing runtime overrides.

Parameters:

NameDescription
lLightness [0, 1]
cChroma [0, ~0.4]
hHue [0, 360)

Returns: CSS hex color string (e.g. “#ff0000”)


oklchToString(l: number, c: number, h: number) => string

Section titled “oklchToString(l: number, c: number, h: number) => string”

Format OKLCH values as a CSS-compatible string (without the oklch() wrapper). Output format: “L C H” where L, C, H are rounded to 3 decimal places.

Parameters:

NameDescription
lLightness [0, 1]
cChroma [0, ~0.4]
hHue [0, 360)

Returns: Formatted string like “0.637 0.237 25.465”


parseOklchString(str: string) => [number, number, number]

Section titled “parseOklchString(str: string) => [number, number, number]”

Parse an oklch string (the CSS variable format “L C H”) back to values.

Parameters:

NameDescription
strOKLCH string like “0.637 0.237 25.465”

Returns: Tuple of [lightness, chroma, hue]


relativeLuminance(color: string) => number

Section titled “relativeLuminance(color: string) => number”

Compute relative luminance from OKLCH for WCAG contrast calculations. Uses sRGB relative luminance (rec. 709) from the linear RGB values.


resolveFrameworkStyles(options?: { respectReducedMotion?: boolean | undefined; } | undefined) => string

Section titled “resolveFrameworkStyles(options?: { respectReducedMotion?: boolean | undefined; } | undefined) => string”

Returns a CSS string containing framework-level styles:

  1. CSS reset (box-sizing, margin, padding, body defaults, font inherit)
  2. Component polish CSS — data-attribute-driven styles for page layout, data-table, stat-card, form, detail-card, and focus rings.

All values are parameterized via --sn-* token custom properties so the output adapts to whatever theme tokens are active.


resolveTokens(config?: { flavor?: string | undefined; flavors?: Record<string, { extends: string; displayName?: string | undefined; colors?: { primary?: string | undefined; secondary?: string | undefined; muted?: ...

Section titled “resolveTokens(config?: { flavor?: string | undefined; flavors?: Record<string, { extends: string; displayName?: string | undefined; colors?: { primary?: string | undefined; secondary?: string | undefined; muted?: ...”

Resolve a theme configuration into a complete CSS string.

Pipeline:

  1. Load base flavor (default: neutral)
  2. Deep merge overrides onto flavor defaults
  3. Convert all colors to oklch
  4. Auto-derive foreground colors (contrast-aware)
  5. Auto-derive dark mode colors if not provided
  6. Map radius/spacing/font to CSS
  7. Generate component-level tokens
  8. Output CSS string with :root, .dark, and component selectors

Parameters:

NameDescription
configTheme configuration (flavor name + overrides)

Returns: Complete CSS string ready to inject or write to a file


React hook for runtime token editing.

Provides setToken/setFlavor/resetTokens/getTokens/subscribe for live theme customization. Changes are applied instantly via inline styles on document.documentElement.

Returns: TokenEditor interface for runtime token manipulation


validateContrast(theme: { flavor?: string | undefined; flavors?: Record<string, { extends: string; displayName?: string | undefined; colors?: { primary?: string | undefined; secondary?: string | undefined; ... 13 mor...

Section titled “validateContrast(theme: { flavor?: string | undefined; flavors?: Record<string, { extends: string; displayName?: string | undefined; colors?: { primary?: string | undefined; secondary?: string | undefined; ... 13 mor...”

Warn when theme color pairs fail WCAG AA contrast.


ExportKindDescription
AppContextProviderfunctionProvides persistent global state that survives route changes. Initializes globals from runtime config.
AppContextProviderPropsinterfaceProps for AppContextProvider. Wraps the entire app to provide persistent global state.
GlobalConfigtypealiasGlobal state definition for the UI context. This now aliases the shared state config used by the runtime.
isFromRefvariableType guard for Snapshot binding references resolved from page, app, or resource state.
PageContextProviderfunctionProvides per-page state that is destroyed on route change.
PageContextProviderPropsinterfaceProps for PageContextProvider. Wraps each page/route to provide per-page component state.
ResolvedConfigtypealiasResolves a type where FromRef values are replaced with their resolved types. Used internally — consumers don’t need to use this directly.
usePublishfunctionRegisters a component in the page context and returns a setter function to publish values that other components can subscribe to via { from: "id" }.
useResolveFromfunctionResolves all FromRef values in a config object at once.
useResolveFromManyfunctionResolves an array of values that may contain FromRefs. Stable across renders regardless of array length — use this when the number of items is dynamic (e.g., a list of nav items, params object) and a per-item useSubscribe would violate the rules of hooks. Internally uses a single subscription to the page registry store and re-evaluates when any subscribed atom changes.
useSubscribefunctionSubscribes to a value from the shared binding/state registry system.

AppContextProvider({ globals, resources, api, children, }: AppContextProviderProps) => Element

Section titled “AppContextProvider({ globals, resources, api, children, }: AppContextProviderProps) => Element”

Provides persistent global state that survives route changes. Initializes globals from runtime config.


PageContextProvider({ state, resources, api, children, }: PageContextProviderProps) => Element

Section titled “PageContextProvider({ state, resources, api, children, }: PageContextProviderProps) => Element”

Provides per-page state that is destroyed on route change.


usePublish(id: string | undefined) => (value: unknown) => void

Section titled “usePublish(id: string | undefined) => (value: unknown) => void”

Registers a component in the page context and returns a setter function to publish values that other components can subscribe to via { from: "id" }.


useResolveFrom<T extends Record<string, unknown>>(config: T) => ResolvedConfig<T>

Section titled “useResolveFrom<T extends Record<string, unknown>>(config: T) => ResolvedConfig<T>”

Resolves all FromRef values in a config object at once.


useResolveFromMany(values: readonly unknown[]) => unknown[]

Section titled “useResolveFromMany(values: readonly unknown[]) => unknown[]”

Resolves an array of values that may contain FromRefs. Stable across renders regardless of array length — use this when the number of items is dynamic (e.g., a list of nav items, params object) and a per-item useSubscribe would violate the rules of hooks.

Internally uses a single subscription to the page registry store and re-evaluates when any subscribed atom changes.


Subscribes to a value from the shared binding/state registry system.


ExportKindDescription
AtomRegistryinterfaceRegistry of named state atoms. Backing store is shared per scope (app or route).
clearPersistedStatefunctionRemove a persisted state value from the selected browser storage area.
readPersistedStatefunctionRead and JSON-decode a persisted state value, returning undefined on failure or absence.
RuntimeStateConfigtypealiasNamed state definition. App-scope state persists for the app lifetime. Route-scope state is recreated whenever the active route changes.
SnapshotApiProviderfunctionBackward-compatible provider shim for tests and external wrappers. This writes the client into the shared Jotai store instead of React context.
StateConfigMaptypealiasMap of named state definitions.
StateHookScopetypealiasHook-level scope override that can force app, route, or auto-discovered state resolution.
StateProviderPropsinterfaceProps accepted by the provider layer that wires named state into a React tree.
toPersistedStateKeyfunctionBuild the storage key used for persisted Snapshot state entries.
useApiClientfunctionRead the active API client from the app-scope Jotai store.
usePersistedAtomfunctionBind a primitive atom to browser storage so its value survives page reloads.
useResetStateValuefunctionReturn a callback that resets a named state entry to its configured default.
useSetStateValuefunctionReturn a setter that writes to a named state entry in the resolved scope.
useStateValuefunctionRead the current value for a named state entry.
writePersistedStatefunctionSerialize and store a persisted state value, ignoring browser storage failures.

clearPersistedState(key: string, storage: PersistStorage) => void

Section titled “clearPersistedState(key: string, storage: PersistStorage) => void”

Remove a persisted state value from the selected browser storage area.


readPersistedState(key: string, storage: PersistStorage) => unknown

Section titled “readPersistedState(key: string, storage: PersistStorage) => unknown”

Read and JSON-decode a persisted state value, returning undefined on failure or absence.


SnapshotApiProvider({ value, children, }: { value: ApiClient | null; children?: ReactNode; }) => FunctionComponentElement<FragmentProps>

Section titled “SnapshotApiProvider({ value, children, }: { value: ApiClient | null; children?: ReactNode; }) => FunctionComponentElement<FragmentProps>”

Backward-compatible provider shim for tests and external wrappers. This writes the client into the shared Jotai store instead of React context.


toPersistedStateKey(key: string) => string

Section titled “toPersistedStateKey(key: string) => string”

Build the storage key used for persisted Snapshot state entries.


Read the active API client from the app-scope Jotai store.


usePersistedAtom<T>(sourceAtom: PrimitiveAtom<T>, key: string, storage: PersistStorage) => [T, (value: T) => void]

Section titled “usePersistedAtom<T>(sourceAtom: PrimitiveAtom<T>, key: string, storage: PersistStorage) => [T, (value: T) => void]”

Bind a primitive atom to browser storage so its value survives page reloads.


useResetStateValue(id: string, options?: { scope?: StateHookScope | undefined; } | undefined) => () => void

Section titled “useResetStateValue(id: string, options?: { scope?: StateHookScope | undefined; } | undefined) => () => void”

Return a callback that resets a named state entry to its configured default.


useSetStateValue(id: string, options?: { scope?: StateHookScope | undefined; } | undefined) => (value: unknown) => void

Section titled “useSetStateValue(id: string, options?: { scope?: StateHookScope | undefined; } | undefined) => (value: unknown) => void”

Return a setter that writes to a named state entry in the resolved scope.


useStateValue(id: string, options?: { scope?: StateHookScope | undefined; } | undefined) => unknown

Section titled “useStateValue(id: string, options?: { scope?: StateHookScope | undefined; } | undefined) => unknown”

Read the current value for a named state entry.


writePersistedState(key: string, value: unknown, storage: PersistStorage) => void

Section titled “writePersistedState(key: string, value: unknown, storage: PersistStorage) => void”

Serialize and store a persisted state value, ignoring browser storage failures.


ExportKindDescription
ConfirmDialogfunctionRender the global confirmation dialog for requests queued through useConfirmManager.
ConfirmManagerinterfaceImperative API for opening a confirmation dialog from app actions or custom UI.
ConfirmOptionstypealiasOptions accepted when opening a confirmation dialog.
ConfirmRequestinterfaceInternal confirm-dialog request stored in the atom-backed manager queue.
debounceActionfunctionDebounce async or sync action execution by key and resolve all pending callers with the final invocation result.
interpolatefunctionReplace {key} placeholders with values from context. Supports nested paths: {user.name}, {result.id}. Missing keys are preserved as-is: {unknown} stays {unknown}.
ModalManagerinterfaceReturn type of useModalManager.
ShowToastOptionsinterfaceUser-facing toast options accepted by the toast manager.
throttleActionfunctionThrottle async or sync action execution by key and drop calls inside the active throttle window.
ToastContainerfunctionRender the active toast queue.
ToastIteminterfaceResolved toast entry stored in the runtime queue.
ToastManagerinterfaceImperative API for enqueueing and dismissing transient toast messages.
useConfirmManagerfunctionReturn the shared confirmation manager for the current Snapshot UI tree.
useModalManagerfunctionHook to manage modal open/close state via a Jotai atom stack. Provides open, close, isOpen, and the current stack.
useToastManagerfunctionReturn the toast manager.

Render the global confirmation dialog for requests queued through useConfirmManager.


debounceAction<T>(key: string, fn: () => T | Promise<T>, ms: number) => Promise<T>

Section titled “debounceAction<T>(key: string, fn: () => T | Promise<T>, ms: number) => Promise<T>”

Debounce async or sync action execution by key and resolve all pending callers with the final invocation result.


interpolate(template: string, context: Record<string, unknown>) => string

Section titled “interpolate(template: string, context: Record<string, unknown>) => string”

Replace {key} placeholders with values from context. Supports nested paths: {user.name}, {result.id}. Missing keys are preserved as-is: {unknown} stays {unknown}.

Parameters:

NameDescription
templateThe template string with {key} placeholders
contextThe context object to resolve values from

Returns: The interpolated string

Example:

interpolate('/users/{id}', { id: 5 }) // → '/users/5'
interpolate('{user.name}', { user: { name: 'Jo' } }) // → 'Jo'
interpolate('{missing}', {}) // → '{missing}'

throttleAction<T>(key: string, fn: () => T | Promise<T>, ms: number) => Promise<T | undefined>

Section titled “throttleAction<T>(key: string, fn: () => T | Promise<T>, ms: number) => Promise<T | undefined>”

Throttle async or sync action execution by key and drop calls inside the active throttle window.


Render the active toast queue.


Return the shared confirmation manager for the current Snapshot UI tree.


Hook to manage modal open/close state via a Jotai atom stack. Provides open, close, isOpen, and the current stack.

Returns: A ModalManager with methods to control the modal stack

Example:

const { open, close, isOpen, stack } = useModalManager()
open('edit-user')
close('edit-user')
close() // closes topmost

Return the toast manager.


ExportKindDescription
AlertBasefunctionStandalone Alert — a styled alert/notification box with optional icon, action button, and dismiss. Works with plain React props.
AlertBasePropsinterfaceProps accepted by the AlertBase standalone component.
AvatarBasefunctionStandalone Avatar — image, initials, or icon fallback. Works with plain React props.
AvatarBasePropsinterfaceProps accepted by the AvatarBase standalone component.
AvatarGroupBasefunctionStandalone AvatarGroup — overlapping avatars with +N overflow. Works with plain React props.
AvatarGroupBaseAvatarinterfaceType definition exported by the Snapshot UI runtime.
AvatarGroupBasePropsinterfaceProps accepted by the AvatarGroupBase standalone component.
BadgeBasefunctionStandalone Badge — a small label with color-coded variants. Works with plain React props.
BadgeBasePropsinterfaceProps accepted by the BadgeBase standalone component.
ChartBasefunctionStandalone Chart — renders data-driven charts via recharts. Works with plain React props.
ChartBasePropsinterfaceProps accepted by the ChartBase standalone component.
ChartBaseSeriesinterfaceType definition exported by the Snapshot UI runtime.
DataTableBasefunctionStandalone DataTable — feature-rich data table with sorting, pagination, selection, and search. Works with plain React props.
DataTableBaseBulkActioninterfaceType definition exported by the Snapshot UI runtime.
DataTableBaseColumninterfaceType definition exported by the Snapshot UI runtime.
DataTableBasePaginationinterfaceType definition exported by the Snapshot UI runtime.
DataTableBasePropsinterfaceProps accepted by the DataTableBase standalone component.
DataTableBaseRowActioninterfaceType definition exported by the Snapshot UI runtime.
DataTableBaseSortinterfaceType definition exported by the Snapshot UI runtime.
DetailCardBasefunctionStandalone DetailCard — data-driven detail view with formatted fields and header actions. Works with plain React props.
DetailCardBaseActioninterfaceType definition exported by the Snapshot UI runtime.
DetailCardBaseFieldinterfaceType definition exported by the Snapshot UI runtime.
DetailCardBasePropsinterfaceProps accepted by the DetailCardBase standalone component.
EmptyStateBasefunctionStandalone EmptyState — a centered message with optional icon and action. Works with plain React props.
EmptyStateBasePropsinterfaceProps accepted by the EmptyStateBase standalone component.
EntityPickerBasefunctionStandalone EntityPicker — dropdown with search, single/multi select. Works with plain React props.
EntityPickerBasePropsinterfaceProps accepted by the EntityPickerBase standalone component.
EntityPickerEntityinterfaceType definition exported by the Snapshot UI runtime.
FavoriteButtonBasefunctionStandalone FavoriteButton — a toggle button with a star icon. Works with plain React props.
FavoriteButtonBasePropsinterfaceProps accepted by the FavoriteButtonBase standalone component.
FeedBasefunctionStandalone Feed — feed/activity list with grouping, pagination, and live updates. Works with plain React props.
FeedBaseIteminterfaceType definition exported by the Snapshot UI runtime.
FeedBaseItemActioninterfaceType definition exported by the Snapshot UI runtime.
FeedBasePropsinterfaceProps accepted by the FeedBase standalone component.
FilterBarBasefunctionStandalone FilterBar — search + filter dropdowns + active pills. Works with plain React props.
FilterBarBasePropsinterfaceProps accepted by the FilterBarBase standalone component.
FilterBarFilterinterfaceType definition exported by the Snapshot UI runtime.
HighlightedTextBasefunctionStandalone HighlightedText — renders text with search query highlighting. Works with plain React props.
HighlightedTextBasePropsinterfaceProps accepted by the HighlightedTextBase standalone component.
ListBasefunctionStandalone List — renders a vertical list of items with optional icons, descriptions, badges, and click actions. Works with plain React props.
ListBaseIteminterfaceType definition exported by the Snapshot UI runtime.
ListBasePropsinterfaceProps accepted by the ListBase standalone component.
NotificationBellBasefunctionStandalone NotificationBell — bell icon with unread count badge. Works with plain React props.
NotificationBellBasePropsinterfaceProps accepted by the NotificationBellBase standalone component.
ProgressBasefunctionStandalone Progress — bar or circular progress indicator. Works with plain React props.
ProgressBasePropsinterfaceProps accepted by the ProgressBase standalone component.
SaveIndicatorBasefunctionStandalone SaveIndicator — shows saving/saved/error status. Works with plain React props.
SaveIndicatorBasePropsinterfaceProps accepted by the SaveIndicatorBase standalone component.
ScrollAreaBasefunctionStandalone ScrollArea — a scrollable container with custom-styled thin scrollbars. Works with plain React props.
ScrollAreaBasePropsinterfaceProps accepted by the ScrollAreaBase standalone component.
SeparatorBasefunctionStandalone Separator — a horizontal or vertical line with optional label. Works with plain React props.
SeparatorBasePropsinterfaceProps accepted by the SeparatorBase standalone component.
SkeletonBasefunctionStandalone Skeleton — a placeholder loading indicator. Works with plain React props.
SkeletonBasePropsinterfaceProps accepted by the SkeletonBase standalone component.
StatCardBasefunctionStandalone StatCard — displays a single metric with optional trend indicator. Works with plain React props.
StatCardBasePropsinterfaceProps accepted by the StatCardBase standalone component.
StatCardTrendinterfaceType definition exported by the Snapshot UI runtime.
TooltipBasefunctionStandalone Tooltip — wraps child content and shows informational text on hover with configurable placement and delay. Works with plain React props.
TooltipBasePropsinterfaceProps accepted by the TooltipBase standalone component.
VoteBasefunctionStandalone Vote — upvote/downvote toggle with count display. Works with plain React props.
VoteBasePropsinterfaceProps accepted by the VoteBase standalone component.

AlertBase({ id, title, description, variant, icon: iconProp, dismissible, actionLabel, onAction, className, style, slots, children, }: AlertBaseProps) => Element | null

Section titled “AlertBase({ id, title, description, variant, icon: iconProp, dismissible, actionLabel, onAction, className, style, slots, children, }: AlertBaseProps) => Element | null”

Standalone Alert — a styled alert/notification box with optional icon, action button, and dismiss. Works with plain React props.

Example:

<AlertBase
variant="warning"
title="Rate limit reached"
description="You have exceeded the API rate limit. Please wait before retrying."
dismissible
actionLabel="View usage"
onAction={() => navigate("/usage")}
/>

AvatarBase({ id, src, name, alt, size, shape, color, icon, status, className, style, slots, }: AvatarBaseProps) => Element

Section titled “AvatarBase({ id, src, name, alt, size, shape, color, icon, status, className, style, slots, }: AvatarBaseProps) => Element”

Standalone Avatar — image, initials, or icon fallback. Works with plain React props.

Example:

<AvatarBase
src="/avatars/jane.jpg"
name="Jane Doe"
size="lg"
shape="circle"
status="online"
/>

AvatarGroupBase({ id, avatars, size, max, overlap: overlapProp, className, style, slots, }: AvatarGroupBaseProps) => Element

Section titled “AvatarGroupBase({ id, avatars, size, max, overlap: overlapProp, className, style, slots, }: AvatarGroupBaseProps) => Element”

Standalone AvatarGroup — overlapping avatars with +N overflow. Works with plain React props.

Example:

<AvatarGroupBase
avatars={[
{ name: "Alice", src: "/avatars/alice.jpg" },
{ name: "Bob" },
{ name: "Carol", src: "/avatars/carol.jpg" },
]}
size="md"
max={3}
/>

BadgeBase({ id, text, color, variant, size, rounded, icon, className, style, slots, }: BadgeBaseProps) => Element

Section titled “BadgeBase({ id, text, color, variant, size, rounded, icon, className, style, slots, }: BadgeBaseProps) => Element”

Standalone Badge — a small label with color-coded variants. Works with plain React props.

Example:

<BadgeBase
text="Active"
color="success"
variant="soft"
size="sm"
icon="check-circle"
/>

ChartBase({ id, chartType, data: rows, xKey, series, height, aspectRatio, grid: showGrid, legend: showLegend, isLoading, error, emptyMessage, hideWhenEmpty, hasNewData, onRefresh, onPointClick, loadingContent,...

Section titled “ChartBase({ id, chartType, data: rows, xKey, series, height, aspectRatio, grid: showGrid, legend: showLegend, isLoading, error, emptyMessage, hideWhenEmpty, hasNewData, onRefresh, onPointClick, loadingContent,...”

Standalone Chart — renders data-driven charts via recharts. Works with plain React props.

Example:

<ChartBase
chartType="bar"
data={[{ month: "Jan", revenue: 4000 }, { month: "Feb", revenue: 5200 }]}
xKey="month"
series={[{ key: "revenue", label: "Revenue", color: "#2563eb" }]}
height={300}
legend
/>

DataTableBase({ id, columns, rows, sort, onSortChange, pagination, onPageChange, selectable, selection, onToggleRow, onToggleAll, rowIdField, searchable, searchPlaceholder, search, onSearchChange, rowActions, bulk...

Section titled “DataTableBase({ id, columns, rows, sort, onSortChange, pagination, onPageChange, selectable, selection, onToggleRow, onToggleAll, rowIdField, searchable, searchPlaceholder, search, onSearchChange, rowActions, bulk...”

Standalone DataTable — feature-rich data table with sorting, pagination, selection, and search. Works with plain React props.

Example:

<DataTableBase
columns={[
{ field: "name", label: "Name", sortable: true },
{ field: "status", label: "Status", format: "badge", badgeColors: { active: "green", inactive: "gray" } },
{ field: "revenue", label: "Revenue", format: "currency", divisor: 100 },
]}
rows={[{ id: 1, name: "Acme", status: "active", revenue: 150000 }]}
searchable
selectable
/>

DetailCardBase({ id, data, fields, title, actions, isLoading, error, emptyMessage, loadingContent, className, style, slots, }: DetailCardBaseProps) => Element

Section titled “DetailCardBase({ id, data, fields, title, actions, isLoading, error, emptyMessage, loadingContent, className, style, slots, }: DetailCardBaseProps) => Element”

Standalone DetailCard — data-driven detail view with formatted fields and header actions. Works with plain React props.

Example:

<DetailCardBase
title="Order Details"
data={{ id: "ORD-123", status: "shipped", total: 4999 }}
fields={[
{ field: "id", label: "Order ID", value: "ORD-123", copyable: true },
{ field: "status", label: "Status", value: "shipped", format: "badge" },
{ field: "total", label: "Total", value: 4999, format: "currency", divisor: 100 },
]}
actions={[{ label: "Edit", icon: "pencil", onAction: () => {} }]}
/>

EmptyStateBase({ id, title, description, icon, iconColor, size, actionLabel, onAction, className, style, slots, }: EmptyStateBaseProps) => Element

Section titled “EmptyStateBase({ id, title, description, icon, iconColor, size, actionLabel, onAction, className, style, slots, }: EmptyStateBaseProps) => Element”

Standalone EmptyState — a centered message with optional icon and action. Works with plain React props.

Example:

<EmptyStateBase
title="No projects yet"
description="Create your first project to get started."
icon="folder-plus"
actionLabel="Create project"
onAction={() => openCreateDialog()}
/>

EntityPickerBase({ id, entities, value, label: triggerBaseLabel, multiple: isMultiple, searchable, maxHeight, isLoading, error, onChange, className, style, slots, }: EntityPickerBaseProps) => Element

Section titled “EntityPickerBase({ id, entities, value, label: triggerBaseLabel, multiple: isMultiple, searchable, maxHeight, isLoading, error, onChange, className, style, slots, }: EntityPickerBaseProps) => Element”

Standalone EntityPicker — dropdown with search, single/multi select. Works with plain React props.

Example:

<EntityPickerBase
label="Assign to"
entities={[
{ label: "Alice", value: "alice", avatar: "/avatars/alice.jpg" },
{ label: "Bob", value: "bob", icon: "user" },
]}
multiple
searchable
onChange={(selected) => setAssignees(selected)}
/>

FavoriteButtonBase({ id, active: activeProp, size: sizeProp, onToggle, className, style, slots, }: FavoriteButtonBaseProps) => Element

Section titled “FavoriteButtonBase({ id, active: activeProp, size: sizeProp, onToggle, className, style, slots, }: FavoriteButtonBaseProps) => Element”

Standalone FavoriteButton — a toggle button with a star icon. Works with plain React props.

Example:

<FavoriteButtonBase
active={isFavorited}
size="md"
onToggle={(active) => setFavorited(active)}
/>

FeedBase({ id, items, relativeTime, groupBy, pageSize, infinite, itemActions, isLoading, error, emptyMessage, hasNewData, onRefresh, onSelectItem, loadingContent, className, style, slots, }: FeedBaseProps) =>...

Section titled “FeedBase({ id, items, relativeTime, groupBy, pageSize, infinite, itemActions, isLoading, error, emptyMessage, hasNewData, onRefresh, onSelectItem, loadingContent, className, style, slots, }: FeedBaseProps) =>...”

Standalone Feed — feed/activity list with grouping, pagination, and live updates. Works with plain React props.

Example:

<FeedBase
items={[
{ key: 1, title: "New comment", description: "Alice replied to your post", timestamp: "2026-04-23T10:00:00Z", raw: {} },
{ key: 2, title: "Issue closed", badgeValue: "Done", badgeColor: "success", raw: {} },
]}
relativeTime
groupBy="day"
onSelectItem={(item) => openDetail(item)}
/>

FilterBarBase({ id, filters, showSearch, searchPlaceholder, onChange, className, style, slots, }: FilterBarBaseProps) => Element

Section titled “FilterBarBase({ id, filters, showSearch, searchPlaceholder, onChange, className, style, slots, }: FilterBarBaseProps) => Element”

Standalone FilterBar — search + filter dropdowns + active pills. Works with plain React props.

Example:

<FilterBarBase
filters={[
{ key: "status", label: "Status", options: [{ label: "Active", value: "active" }, { label: "Archived", value: "archived" }] },
{ key: "role", label: "Role", multiple: true, options: [{ label: "Admin", value: "admin" }, { label: "User", value: "user" }] },
]}
showSearch
onChange={({ search, filters }) => applyFilters(search, filters)}
/>

HighlightedTextBase({ id, text, highlight, caseSensitive, highlightColor, className, style, slots, }: HighlightedTextBaseProps) => Element

Section titled “HighlightedTextBase({ id, text, highlight, caseSensitive, highlightColor, className, style, slots, }: HighlightedTextBaseProps) => Element”

Standalone HighlightedText — renders text with search query highlighting. Works with plain React props.

Example:

<HighlightedTextBase
text="The quick brown fox jumps over the lazy dog"
highlight="fox"
highlightColor="var(--sn-color-warning)"
/>

ListBase({ id, items, variant, selectable, divider: showDividerProp, limit, isLoading, error, emptyMessage, hasNewData, onRefresh, loadingContent, errorContent, emptyContent, className, style, slots, }: ListB...

Section titled “ListBase({ id, items, variant, selectable, divider: showDividerProp, limit, isLoading, error, emptyMessage, hasNewData, onRefresh, loadingContent, errorContent, emptyContent, className, style, slots, }: ListB...”

Standalone List — renders a vertical list of items with optional icons, descriptions, badges, and click actions. Works with plain React props.

Example:

<ListBase
variant="bordered"
selectable
items={[
{ id: "1", title: "Dashboard", icon: "layout-dashboard", onAction: () => navigate("/dashboard") },
{ id: "2", title: "Settings", icon: "settings", badge: "New", badgeColor: "primary" },
]}
/>

NotificationBellBase({ id, count, size, max, onClick, ariaLive, className, style, slots, }: NotificationBellBaseProps) => Element

Section titled “NotificationBellBase({ id, count, size, max, onClick, ariaLive, className, style, slots, }: NotificationBellBaseProps) => Element”

Standalone NotificationBell — bell icon with unread count badge. Works with plain React props.

Example:

<NotificationBellBase
count={5}
size="md"
max={99}
onClick={() => openNotifications()}
/>

ProgressBase({ id, value: resolvedValue, max, label, size, variant, showValue, color, segments, className, style, slots, }: ProgressBaseProps) => Element

Section titled “ProgressBase({ id, value: resolvedValue, max, label, size, variant, showValue, color, segments, className, style, slots, }: ProgressBaseProps) => Element”

Standalone Progress — bar or circular progress indicator. Works with plain React props.

Example:

<ProgressBase
value={65}
max={100}
label="Upload progress"
showValue
color="primary"
variant="bar"
/>

SaveIndicatorBase({ id, status, showIcon, savingText, savedText, errorText, className, style, slots, }: SaveIndicatorBaseProps) => Element | null

Section titled “SaveIndicatorBase({ id, status, showIcon, savingText, savedText, errorText, className, style, slots, }: SaveIndicatorBaseProps) => Element | null”

Standalone SaveIndicator — shows saving/saved/error status. Works with plain React props.

Example:

<SaveIndicatorBase
status="saving"
showIcon
savingText="Saving changes..."
savedText="All changes saved"
/>

ScrollAreaBase({ id, orientation, maxHeight, maxWidth, showScrollbar, children, className, style, slots, }: ScrollAreaBaseProps) => Element

Section titled “ScrollAreaBase({ id, orientation, maxHeight, maxWidth, showScrollbar, children, className, style, slots, }: ScrollAreaBaseProps) => Element”

Standalone ScrollArea — a scrollable container with custom-styled thin scrollbars. Works with plain React props.

Example:

<ScrollAreaBase maxHeight="300px" showScrollbar="hover">
<ul>
{items.map((item) => (
<li key={item.id}>{item.name}</li>
))}
</ul>
</ScrollAreaBase>

SeparatorBase({ id, orientation, label, className, style, slots, }: SeparatorBaseProps) => Element

Section titled “SeparatorBase({ id, orientation, label, className, style, slots, }: SeparatorBaseProps) => Element”

Standalone Separator — a horizontal or vertical line with optional label. Works with plain React props.

Example:

<SeparatorBase
orientation="horizontal"
label="OR"
/>

SkeletonBase({ id, variant, animated, lines, width, height, className, style, slots, }: SkeletonBaseProps) => Element

Section titled “SkeletonBase({ id, variant, animated, lines, width, height, className, style, slots, }: SkeletonBaseProps) => Element”

Standalone Skeleton — a placeholder loading indicator. Works with plain React props.

Example:

<SkeletonBase
variant="card"
animated
width="100%"
height="200px"
/>

StatCardBase({ id, value, label, isLoading, error, icon, iconColor, loadingVariant, trend, onClick, emptyMessage, className, style, slots, }: StatCardBaseProps) => Element

Section titled “StatCardBase({ id, value, label, isLoading, error, icon, iconColor, loadingVariant, trend, onClick, emptyMessage, className, style, slots, }: StatCardBaseProps) => Element”

Standalone StatCard — displays a single metric with optional trend indicator. Works with plain React props.

Example:

<StatCardBase
label="Monthly Revenue"
value="$12,450"
icon="dollar-sign"
trend={{ direction: "up", value: "+8.2%", percentage: 8.2, sentiment: "positive" }}
onClick={() => navigate("/revenue")}
/>

TooltipBase({ id, text, placement, delay, children, className, style, slots, }: TooltipBaseProps) => Element

Section titled “TooltipBase({ id, text, placement, delay, children, className, style, slots, }: TooltipBaseProps) => Element”

Standalone Tooltip — wraps child content and shows informational text on hover with configurable placement and delay. Works with plain React props.

Example:

<TooltipBase text="Copy to clipboard" placement="top" delay={200}>
<button onClick={handleCopy}>Copy</button>
</TooltipBase>

VoteBase({ id, value, onUpvote, onDownvote, className, style, slots, }: VoteBaseProps) => Element

Section titled “VoteBase({ id, value, onUpvote, onDownvote, className, style, slots, }: VoteBaseProps) => Element”

Standalone Vote — upvote/downvote toggle with count display. Works with plain React props.

Example:

<VoteBase
value={42}
onUpvote={() => api.upvote(postId)}
onDownvote={() => api.downvote(postId)}
/>

ExportKindDescription
AutoFormBasefunctionStandalone AutoFormBase — renders a schema-driven form with fields, sections, validation, and submit/reset actions. Works with plain React props.
AutoFormBasePropsinterfaceProps accepted by the AutoFormBase standalone component.
AutoFormFieldConfiginterfaceConfiguration type for auto form field config.
AutoFormFieldOptioninterfaceType definition exported by the Snapshot UI runtime.
AutoFormFieldValidationinterfaceType definition exported by the Snapshot UI runtime.
AutoFormSectionConfiginterfaceConfiguration type for auto form section config.
ButtonBasefunctionStandalone ButtonBase — a styled button that works with plain React props. Works with plain React props.
ButtonBasePropsinterfaceProps accepted by the ButtonBase standalone component.
ButtonControlfunctionLow-level styled button element with surface resolution and accessibility attributes. Used internally by ButtonBase and other components that need a styled <button>. Works with plain React props.
ButtonControlPropsinterfaceProps accepted by the ButtonControl component.
ColorPickerBasevariableExported variable from the Snapshot UI runtime.
ColorPickerBasePropstypealiasProps accepted by the ColorPickerBase standalone component.
ColorPickerFieldfunctionStandalone ColorPickerField — a color picker with optional swatches, alpha slider, and custom hex input. Works with plain React props.
ColorPickerFieldPropsinterfaceProps accepted by the ColorPickerField component.
DatePickerBasevariableExported variable from the Snapshot UI runtime.
DatePickerBasePropstypealiasProps accepted by the DatePickerBase standalone component.
DatePickerDisabledEntryinterfaceType definition exported by the Snapshot UI runtime.
DatePickerFieldfunctionStandalone DatePickerField — date picker supporting single, range, and multiple selection modes with presets and disabled dates. Works with plain React props.
DatePickerFieldPropsinterfaceProps accepted by the DatePickerField component.
DatePickerPresetinterfaceType definition exported by the Snapshot UI runtime.
IconButtonBasefunctionStandalone IconButtonBase — an icon-only button with configurable shape, size, and variant. Works with plain React props.
IconButtonBasePropsinterfaceProps accepted by the IconButtonBase standalone component.
InlineEditBasevariableExported variable from the Snapshot UI runtime.
InlineEditBasePropstypealiasProps accepted by the InlineEditBase standalone component.
InlineEditFieldfunctionStandalone InlineEditField — a click-to-edit text field that toggles between display and input modes. Works with plain React props.
InlineEditFieldPropsinterfaceProps accepted by the InlineEditField component.
InputBasevariableExported variable from the Snapshot UI runtime.
InputBasePropstypealiasProps accepted by the InputBase standalone component.
InputControlfunctionLow-level styled input element with surface resolution and state management. Used internally by InputField and other components that need a styled <input>. Works with plain React props.
InputControlPropsinterfaceProps accepted by the InputControl component.
InputFieldfunctionStandalone InputField — a complete form field (label + input + helper/error) that works with plain React props. Works with plain React props.
InputFieldPropsinterfaceProps accepted by the InputField component.
LocationInputBasevariableExported variable from the Snapshot UI runtime.
LocationInputBasePropstypealiasProps accepted by the LocationInputBase standalone component.
LocationInputFieldfunctionStandalone LocationInputField — a location search input with results dropdown and optional Google Maps link. Works with plain React props.
LocationInputFieldPropsinterfaceProps accepted by the LocationInputField component.
LocationResultinterfaceType definition exported by the Snapshot UI runtime.
MultiSelectBasevariableExported variable from the Snapshot UI runtime.
MultiSelectBasePropstypealiasProps accepted by the MultiSelectBase standalone component.
MultiSelectFieldfunctionStandalone MultiSelectField — multi-select dropdown with pill tags, inline search, and configurable max selection. Works with plain React props.
MultiSelectFieldOptioninterfaceType definition exported by the Snapshot UI runtime.
MultiSelectFieldPropsinterfaceProps accepted by the MultiSelectField component.
QuickAddBasevariableExported variable from the Snapshot UI runtime.
QuickAddBasePropstypealiasProps accepted by the QuickAddBase standalone component.
QuickAddFieldfunctionStandalone QuickAddField — a compact input with submit button for quickly adding items to a list. Works with plain React props.
QuickAddFieldPropsinterfaceProps accepted by the QuickAddField component.
SelectBasevariableExported variable from the Snapshot UI runtime.
SelectBasePropstypealiasProps accepted by the SelectBase standalone component.
SelectControlfunctionLow-level styled select element with surface resolution and state management. Used internally by SelectField and other components that need a styled <select>. Works with plain React props.
SelectControlPropsinterfaceProps accepted by the SelectControl component.
SelectFieldfunctionStandalone SelectField — a complete select form field with label, options, helper/error text, and required indicator. Works with plain React props.
SelectFieldPropsinterfaceProps accepted by the SelectField component.
SliderBasevariableExported variable from the Snapshot UI runtime.
SliderBasePropstypealiasProps accepted by the SliderBase standalone component.
SliderFieldfunctionStandalone SliderField — a range slider with optional label, value display, limit labels, and dual-thumb range mode. Works with plain React props.
SliderFieldPropsinterfaceProps accepted by the SliderField component.
SwitchBasevariableExported variable from the Snapshot UI runtime.
SwitchBasePropstypealiasProps accepted by the SwitchBase standalone component.
SwitchFieldfunctionStandalone SwitchField — a toggle switch with label, description, and configurable size and color. Works with plain React props.
SwitchFieldPropsinterfaceProps accepted by the SwitchField component.
TagSelectorBasevariableExported variable from the Snapshot UI runtime.
TagSelectorBasePropstypealiasProps accepted by the TagSelectorBase standalone component.
TagSelectorFieldfunctionStandalone TagSelectorField — tag pills with dropdown selection, search filtering, and optional tag creation. Works with plain React props.
TagSelectorFieldPropsinterfaceProps accepted by the TagSelectorField component.
TagSelectorTaginterfaceType definition exported by the Snapshot UI runtime.
TextareaBasevariableExported variable from the Snapshot UI runtime.
TextareaBasePropstypealiasProps accepted by the TextareaBase standalone component.
TextareaControlfunctionLow-level styled textarea element with surface resolution and state management. Used internally by TextareaField and other components that need a styled <textarea>. Works with plain React props.
TextareaControlPropsinterfaceProps accepted by the TextareaControl component.
TextareaFieldfunctionStandalone TextareaField — a complete textarea form field with label, character counter, validation, and helper/error text. Works with plain React props.
TextareaFieldPropsinterfaceProps accepted by the TextareaField component.
ToggleBasevariableExported variable from the Snapshot UI runtime.
ToggleBasePropstypealiasProps accepted by the ToggleBase standalone component.
ToggleFieldfunctionStandalone ToggleField — a pressable toggle button with optional icon and label. Works with plain React props.
ToggleFieldPropsinterfaceProps accepted by the ToggleField component.
ToggleGroupBasefunctionStandalone ToggleGroupBase — a group of toggle buttons supporting single or multi-select modes. Works with plain React props.
ToggleGroupBasePropsinterfaceProps accepted by the ToggleGroupBase standalone component.
ToggleGroupIteminterfaceType definition exported by the Snapshot UI runtime.
WizardBasefunctionStandalone WizardBase — a multi-step form wizard with progress indicator, step navigation, field validation, and completion state. Works with plain React props.
WizardBasePropsinterfaceProps accepted by the WizardBase standalone component.
WizardFieldConfiginterfaceConfiguration type for wizard field config.
WizardStateinterfaceType definition exported by the Snapshot UI runtime.
WizardStepDefinterfaceType definition exported by the Snapshot UI runtime.

AutoFormBase({ id, fields, sections, values, errors, touched, isSubmitting, isDirty, isValid, submitLabel: submitLabelProp, submitLoadingLabel: submitLoadingLabelProp, resetLabel: resetLabelProp, showReset, layou...

Section titled “AutoFormBase({ id, fields, sections, values, errors, touched, isSubmitting, isDirty, isValid, submitLabel: submitLabelProp, submitLoadingLabel: submitLoadingLabelProp, resetLabel: resetLabelProp, showReset, layou...”

Standalone AutoFormBase — renders a schema-driven form with fields, sections, validation, and submit/reset actions. Works with plain React props.

Example:

<AutoFormBase
fields={[
{ name: "email", type: "email", label: "Email", required: true },
{ name: "password", type: "password", label: "Password", required: true },
]}
values={values}
errors={errors}
touched={touched}
onFieldChange={handleChange}
onFieldBlur={handleBlur}
onSubmit={handleSubmit}
/>

ButtonBase({ id, label, icon, variant, size, disabled, fullWidth, onClick, type, ariaLabel, children, className, style, slots, }: ButtonBaseProps) => Element

Section titled “ButtonBase({ id, label, icon, variant, size, disabled, fullWidth, onClick, type, ariaLabel, children, className, style, slots, }: ButtonBaseProps) => Element”

Standalone ButtonBase — a styled button that works with plain React props. Works with plain React props.

Example:

<ButtonBase
label="Save"
icon="check"
variant="default"
onClick={() => save()}
/>

ButtonControl({ id, children, type, variant, size, disabled, fullWidth, onClick, onKeyDown, onFocus, onBlur, onPointerDown, onPointerUp, onPointerEnter, onPointerLeave, onTouchStart, onTouchEnd, className, style, ...

Section titled “ButtonControl({ id, children, type, variant, size, disabled, fullWidth, onClick, onKeyDown, onFocus, onBlur, onPointerDown, onPointerUp, onPointerEnter, onPointerLeave, onTouchStart, onTouchEnd, className, style, ...”

Low-level styled button element with surface resolution and accessibility attributes. Used internally by ButtonBase and other components that need a styled <button>. Works with plain React props.

Example:

<ButtonControl variant="default" size="sm" onClick={handleClick}>
Save
</ButtonControl>

ColorPickerField({ id, label, defaultValue, format, showAlpha, allowCustom, swatches, onChange, className, style, slots, }: ColorPickerFieldProps) => Element

Section titled “ColorPickerField({ id, label, defaultValue, format, showAlpha, allowCustom, swatches, onChange, className, style, slots, }: ColorPickerFieldProps) => Element”

Standalone ColorPickerField — a color picker with optional swatches, alpha slider, and custom hex input. Works with plain React props.

Example:

<ColorPickerField
label="Brand Color"
defaultValue="#2563eb"
format="hex"
swatches={["#ef4444", "#22c55e", "#3b82f6"]}
onChange={(color) => setBrand(color)}
/>

DatePickerField({ id, label, placeholder, mode, format, valueFormat, min, max, presets, disabledDates, onChange, className, style, slots, }: DatePickerFieldProps) => Element

Section titled “DatePickerField({ id, label, placeholder, mode, format, valueFormat, min, max, presets, disabledDates, onChange, className, style, slots, }: DatePickerFieldProps) => Element”

Standalone DatePickerField — date picker supporting single, range, and multiple selection modes with presets and disabled dates. Works with plain React props.

Example:

<DatePickerField
label="Event Date"
mode="range"
valueFormat="iso"
min="2024-01-01"
onChange={(range) => setDateRange(range)}
/>

IconButtonBase({ id, icon, ariaLabel, variant, size: sizeProp, shape, tooltip, disabled, onClick, className, style, slots, }: IconButtonBaseProps) => Element

Section titled “IconButtonBase({ id, icon, ariaLabel, variant, size: sizeProp, shape, tooltip, disabled, onClick, className, style, slots, }: IconButtonBaseProps) => Element”

Standalone IconButtonBase — an icon-only button with configurable shape, size, and variant. Works with plain React props.

Example:

<IconButtonBase
icon="trash"
ariaLabel="Delete item"
variant="destructive"
size="sm"
onClick={handleDelete}
/>

InlineEditField({ id, value: valueProp, placeholder: placeholderProp, inputType, cancelOnEscape: cancelOnEscapeProp, fontSize: fontSizeProp, onSave, className, style, slots, }: InlineEditFieldProps) => Element

Section titled “InlineEditField({ id, value: valueProp, placeholder: placeholderProp, inputType, cancelOnEscape: cancelOnEscapeProp, fontSize: fontSizeProp, onSave, className, style, slots, }: InlineEditFieldProps) => Element”

Standalone InlineEditField — a click-to-edit text field that toggles between display and input modes. Works with plain React props.

Example:

<InlineEditField
value={title}
placeholder="Click to edit"
onSave={(newTitle) => updateTitle(newTitle)}
/>

InputControl({ inputRef, inputId, name, type, value, checked, placeholder, autoComplete, autoFocus, disabled, readOnly, accept, multiple, list, min, max, step, maxLength, pattern, required, ariaInvalid, ariaDescr...

Section titled “InputControl({ inputRef, inputId, name, type, value, checked, placeholder, autoComplete, autoFocus, disabled, readOnly, accept, multiple, list, min, max, step, maxLength, pattern, required, ariaInvalid, ariaDescr...”

Low-level styled input element with surface resolution and state management. Used internally by InputField and other components that need a styled <input>. Works with plain React props.

Example:

<InputControl
surfaceId="email-input"
type="email"
placeholder="you@example.com"
onChangeText={(val) => setEmail(val)}
/>

InputField({ id, label, placeholder, value: controlledValue, type, required, disabled, readOnly, maxLength, pattern, helperText, errorText, icon, onChange, onBlur, onFocus, onClick, onKeyDown, onMouseEnter, onM...

Section titled “InputField({ id, label, placeholder, value: controlledValue, type, required, disabled, readOnly, maxLength, pattern, helperText, errorText, icon, onChange, onBlur, onFocus, onClick, onKeyDown, onMouseEnter, onM...”

Standalone InputField — a complete form field (label + input + helper/error) that works with plain React props. Works with plain React props.

Example:

<InputField
id="email"
label="Email"
type="email"
placeholder="you@example.com"
required
helperText="We'll never share your email"
onChange={(val) => setEmail(val)}
/>

Section titled “LocationInputField({ id, label, placeholder: placeholderProp, helperText, errorText: errorTextProp, required, disabled, value: valueProp, showMapLink, results: resultsProp, loading, onSearch, onSelect, className, style...”

Standalone LocationInputField — a location search input with results dropdown and optional Google Maps link. Works with plain React props.

Example:

<LocationInputField
label="Venue"
placeholder="Search for a location..."
results={searchResults}
onSearch={(query) => fetchLocations(query)}
onSelect={(location) => setVenue(location)}
/>

MultiSelectField({ id, label, placeholder: placeholderProp, options: optionsProp, value: controlledValue, defaultValue, disabled, searchable, maxSelected, loading, error: errorProp, onRetry, onChange, className, styl...

Section titled “MultiSelectField({ id, label, placeholder: placeholderProp, options: optionsProp, value: controlledValue, defaultValue, disabled, searchable, maxSelected, loading, error: errorProp, onRetry, onChange, className, styl...”

Standalone MultiSelectField — multi-select dropdown with pill tags, inline search, and configurable max selection. Works with plain React props.

Example:

<MultiSelectField
label="Tags"
options={[
{ label: "React", value: "react" },
{ label: "Vue", value: "vue" },
{ label: "Svelte", value: "svelte" },
]}
searchable
onChange={(selected) => setTags(selected)}
/>

QuickAddField({ id, placeholder: placeholderProp, icon: iconProp, submitOnEnter: submitOnEnterProp, showButton: showButtonProp, buttonText: buttonTextProp, clearOnSubmit: clearOnSubmitProp, onSubmit, className, st...

Section titled “QuickAddField({ id, placeholder: placeholderProp, icon: iconProp, submitOnEnter: submitOnEnterProp, showButton: showButtonProp, buttonText: buttonTextProp, clearOnSubmit: clearOnSubmitProp, onSubmit, className, st...”

Standalone QuickAddField — a compact input with submit button for quickly adding items to a list. Works with plain React props.

Example:

<QuickAddField
placeholder="Add a task..."
icon="plus"
buttonText="Add"
onSubmit={(value) => addTask(value)}
/>

SelectControl({ selectRef, selectId, name, value, disabled, required, ariaInvalid, ariaDescribedBy, ariaLabel, onChangeValue, onBlur, onFocus, onClick, onKeyDown, onMouseEnter, onMouseLeave, onPointerDown, onPoint...

Section titled “SelectControl({ selectRef, selectId, name, value, disabled, required, ariaInvalid, ariaDescribedBy, ariaLabel, onChangeValue, onBlur, onFocus, onClick, onKeyDown, onMouseEnter, onMouseLeave, onPointerDown, onPoint...”

Low-level styled select element with surface resolution and state management. Used internally by SelectField and other components that need a styled <select>. Works with plain React props.

Example:

<SelectControl surfaceId="role-select" value={role} onChangeValue={setRole}>
<option value="admin">Admin</option>
<option value="member">Member</option>
</SelectControl>

SelectField({ id, label, placeholder, value: controlledValue, defaultValue, required, disabled, helperText, errorText, options, loading, onChange, onBlur, onFocus, onClick, onKeyDown, className, style, slots, }:...

Section titled “SelectField({ id, label, placeholder, value: controlledValue, defaultValue, required, disabled, helperText, errorText, options, loading, onChange, onBlur, onFocus, onClick, onKeyDown, className, style, slots, }:...”

Standalone SelectField — a complete select form field with label, options, helper/error text, and required indicator. Works with plain React props.

Example:

<SelectField
label="Country"
placeholder="Choose a country"
options={[{ label: "USA", value: "us" }, { label: "Canada", value: "ca" }]}
onChange={(val) => setCountry(val)}
/>

SliderField({ id, label, min: minProp, max: maxProp, step, defaultValue, range, showValue, showLimits, suffix, disabled, onChange, className, style, slots, }: SliderFieldProps) => Element

Section titled “SliderField({ id, label, min: minProp, max: maxProp, step, defaultValue, range, showValue, showLimits, suffix, disabled, onChange, className, style, slots, }: SliderFieldProps) => Element”

Standalone SliderField — a range slider with optional label, value display, limit labels, and dual-thumb range mode. Works with plain React props.

Example:

<SliderField
label="Volume"
min={0}
max={100}
showValue
suffix="%"
onChange={(val) => setVolume(val)}
/>

SwitchField({ id, label, description, checked: controlledChecked, defaultChecked, disabled, size: sizeProp, color, onChange, className, style, slots, }: SwitchFieldProps) => Element

Section titled “SwitchField({ id, label, description, checked: controlledChecked, defaultChecked, disabled, size: sizeProp, color, onChange, className, style, slots, }: SwitchFieldProps) => Element”

Standalone SwitchField — a toggle switch with label, description, and configurable size and color. Works with plain React props.

Example:

<SwitchField
label="Dark Mode"
description="Enable dark theme across the app"
checked={isDark}
onChange={(on) => setDark(on)}
/>

TagSelectorField({ id, label, tags: tagsProp, value: controlledValue, defaultValue, allowCreate, maxTags, onChange, onCreate, className, style, slots, }: TagSelectorFieldProps) => Element

Section titled “TagSelectorField({ id, label, tags: tagsProp, value: controlledValue, defaultValue, allowCreate, maxTags, onChange, onCreate, className, style, slots, }: TagSelectorFieldProps) => Element”

Standalone TagSelectorField — tag pills with dropdown selection, search filtering, and optional tag creation. Works with plain React props.

Example:

<TagSelectorField
label="Categories"
tags={[
{ label: "Bug", value: "bug", color: "#ef4444" },
{ label: "Feature", value: "feature", color: "#22c55e" },
]}
allowCreate
onChange={(selected) => setCategories(selected)}
/>

TextareaControl({ textareaRef, textareaId, name, value, rows, placeholder, disabled, readOnly, maxLength, required, resize, ariaInvalid, ariaDescribedBy, ariaLabel, onChangeText, onBlur, onFocus, onClick, onKeyDown,...

Section titled “TextareaControl({ textareaRef, textareaId, name, value, rows, placeholder, disabled, readOnly, maxLength, required, resize, ariaInvalid, ariaDescribedBy, ariaLabel, onChangeText, onBlur, onFocus, onClick, onKeyDown,...”

Low-level styled textarea element with surface resolution and state management. Used internally by TextareaField and other components that need a styled <textarea>. Works with plain React props.

Example:

<TextareaControl
surfaceId="bio-textarea"
rows={4}
placeholder="Tell us about yourself"
onChangeText={(val) => setBio(val)}
/>

TextareaField({ id, label, placeholder, value: controlledValue, required, disabled, readOnly, maxLength, rows, resize, helperText, errorText, onChange, onBlur, onFocus, onClick, onKeyDown, className, style, slots,...

Section titled “TextareaField({ id, label, placeholder, value: controlledValue, required, disabled, readOnly, maxLength, rows, resize, helperText, errorText, onChange, onBlur, onFocus, onClick, onKeyDown, className, style, slots,...”

Standalone TextareaField — a complete textarea form field with label, character counter, validation, and helper/error text. Works with plain React props.

Example:

<TextareaField
label="Bio"
placeholder="Tell us about yourself..."
maxLength={500}
rows={5}
onChange={(text) => setBio(text)}
/>

ToggleField({ id, label, icon, variant: variantProp, size: sizeProp, pressed: controlledPressed, defaultPressed, disabled, onChange, className, style, slots, }: ToggleFieldProps) => Element

Section titled “ToggleField({ id, label, icon, variant: variantProp, size: sizeProp, pressed: controlledPressed, defaultPressed, disabled, onChange, className, style, slots, }: ToggleFieldProps) => Element”

Standalone ToggleField — a pressable toggle button with optional icon and label. Works with plain React props.

Example:

<ToggleField
icon="bold"
label="Bold"
variant="outline"
pressed={isBold}
onChange={(on) => setBold(on)}
/>

ToggleGroupBase({ id, items, mode, value: controlledValue, defaultValue, variant, size, onChange, className, style, slots, }: ToggleGroupBaseProps) => Element

Section titled “ToggleGroupBase({ id, items, mode, value: controlledValue, defaultValue, variant, size, onChange, className, style, slots, }: ToggleGroupBaseProps) => Element”

Standalone ToggleGroupBase — a group of toggle buttons supporting single or multi-select modes. Works with plain React props.

Example:

<ToggleGroupBase
items={[
{ value: "left", icon: "align-left" },
{ value: "center", icon: "align-center" },
{ value: "right", icon: "align-right" },
]}
mode="single"
variant="outline"
onChange={(val) => setAlign(val)}
/>

WizardBase({ id, steps, state: wizard, submitLabel: submitLabelProp, className, style, slots, }: WizardBaseProps) => Element

Section titled “WizardBase({ id, steps, state: wizard, submitLabel: submitLabelProp, className, style, slots, }: WizardBaseProps) => Element”

Standalone WizardBase — a multi-step form wizard with progress indicator, step navigation, field validation, and completion state. Works with plain React props.

Example:

<WizardBase
steps={[
{ title: "Account", fields: [{ name: "email", type: "email", required: true }] },
{ title: "Profile", fields: [{ name: "name", type: "text" }] },
]}
state={wizardState}
submitLabel="Create Account"
/>

ExportKindDescription
buildEmojiMapfunctionBuilds a shortcode lookup map from an array of custom emojis.
ChatWindowBasefunctionStandalone ChatWindow — composable chat container with header, message thread, typing indicator, and input slots. Works with plain React props.
ChatWindowBasePropsinterfaceProps accepted by the ChatWindowBase standalone component.
CommentSectionBasefunctionStandalone CommentSection — threaded comment list with avatars, timestamps, optional delete actions, and a composable input slot. Works with plain React props.
CommentSectionBasePropsinterfaceProps accepted by the CommentSectionBase standalone component.
CUSTOM_EMOJI_CSSvariableCSS for custom emoji sizing. Custom emojis render as inline images sized to match surrounding text.
CustomEmojiinterfaceShape of a custom emoji entry.
EmojiPickerBasefunctionStandalone EmojiPicker — searchable emoji grid with category tabs and custom emoji support. Works with plain React props.
EmojiPickerBasePropsinterfaceProps accepted by the EmojiPickerBase standalone component.
GifPickerBasefunctionStandalone GifPicker — searchable GIF grid with debounced search, loading states, and optional attribution. Works with plain React props.
GifPickerBasePropsinterfaceProps accepted by the GifPickerBase standalone component.
MessageThreadBasefunctionStandalone MessageThread — scrollable message list with avatars, date separators, auto-scroll, embed rendering, and consecutive-message grouping. Works with plain React props.
MessageThreadBasePropsinterfaceProps accepted by the MessageThreadBase standalone component.
parseShortcodesfunctionParses shortcodes in text and replaces them with <img> tags.
PresenceIndicatorBasefunctionStandalone PresenceIndicator — displays online/offline/away/busy/dnd status with a colored dot and optional label. Works with plain React props.
PresenceIndicatorBasePropsinterfaceProps accepted by the PresenceIndicatorBase standalone component.
ReactionBarBasefunctionStandalone ReactionBar — row of emoji reaction pills with counts and an add-reaction button that opens an inline emoji picker. Works with plain React props.
ReactionBarBasePropsinterfaceProps accepted by the ReactionBarBase standalone component.
ReactionEntryinterfaceType definition exported by the Snapshot UI runtime.
resolveEmojiRecordsfunctionResolves emoji records from the API into CustomEmoji entries. Handles the uploadKeyurl resolution using a URL prefix or field mapping.
TypingIndicatorBasefunctionStandalone TypingIndicator — shows animated bouncing dots with user names to indicate who is currently typing. Works with plain React props.
TypingIndicatorBasePropsinterfaceProps accepted by the TypingIndicatorBase standalone component.
TypingUserinterfaceA user entry for the typing indicator.

buildEmojiMap(emojis: CustomEmoji[]) => Map<string, CustomEmoji>

Section titled “buildEmojiMap(emojis: CustomEmoji[]) => Map<string, CustomEmoji>”

Builds a shortcode lookup map from an array of custom emojis.


ChatWindowBase({ id, title, subtitle, showHeader, height, threadSlot, typingSlot, inputSlot, showTypingIndicator, className, style, slots, }: ChatWindowBaseProps) => Element

Section titled “ChatWindowBase({ id, title, subtitle, showHeader, height, threadSlot, typingSlot, inputSlot, showTypingIndicator, className, style, slots, }: ChatWindowBaseProps) => Element”

Standalone ChatWindow — composable chat container with header, message thread, typing indicator, and input slots. Works with plain React props.

Example:

<ChatWindowBase
title="General"
threadSlot={<MessageThreadBase messages={messages} />}
inputSlot={<input placeholder="Type a message..." />}
/>

CommentSectionBase({ id, comments, loading, error, emptyText, authorNameField, authorAvatarField, contentField, timestampField, sortOrder, showDelete, onDelete, inputSlot, className, style, slots, }: CommentSectionBase...

Section titled “CommentSectionBase({ id, comments, loading, error, emptyText, authorNameField, authorAvatarField, contentField, timestampField, sortOrder, showDelete, onDelete, inputSlot, className, style, slots, }: CommentSectionBase...”

Standalone CommentSection — threaded comment list with avatars, timestamps, optional delete actions, and a composable input slot. Works with plain React props.

Example:

<CommentSectionBase
comments={[{ author: { name: "Alice" }, content: "Great work!", timestamp: "2026-01-15T10:00:00Z" }]}
sortOrder="newest"
showDelete
onDelete={(c) => console.log("delete", c)}
/>

EmojiPickerBase({ id, perRow, maxHeight, categories: allowedCategories, customEmojis, onSelect, className, style, slots, }: EmojiPickerBaseProps) => Element

Section titled “EmojiPickerBase({ id, perRow, maxHeight, categories: allowedCategories, customEmojis, onSelect, className, style, slots, }: EmojiPickerBaseProps) => Element”

Standalone EmojiPicker — searchable emoji grid with category tabs and custom emoji support. Works with plain React props.

Example:

<EmojiPickerBase
perRow={8}
onSelect={({ emoji, name }) => console.log(emoji, name)}
/>

GifPickerBase({ id, columns, maxHeight, placeholder, attribution, gifs, loading, onSelect, onSearchChange, className, style, slots, }: GifPickerBaseProps) => Element

Section titled “GifPickerBase({ id, columns, maxHeight, placeholder, attribution, gifs, loading, onSelect, onSearchChange, className, style, slots, }: GifPickerBaseProps) => Element”

Standalone GifPicker — searchable GIF grid with debounced search, loading states, and optional attribution. Works with plain React props.

Example:

<GifPickerBase
gifs={gifResults}
loading={isSearching}
onSearchChange={(q) => searchGifs(q)}
onSelect={(gif) => insertGif(gif.url)}
/>

MessageThreadBase({ id, messages, loading, error, emptyText, contentField, authorNameField, authorAvatarField, timestampField, showTimestamps, embedsField, showEmbeds, groupByDate, maxHeight, onMessageClick, renderEmb...

Section titled “MessageThreadBase({ id, messages, loading, error, emptyText, contentField, authorNameField, authorAvatarField, timestampField, showTimestamps, embedsField, showEmbeds, groupByDate, maxHeight, onMessageClick, renderEmb...”

Standalone MessageThread — scrollable message list with avatars, date separators, auto-scroll, embed rendering, and consecutive-message grouping. Works with plain React props.

Example:

<MessageThreadBase
messages={[
{ id: "1", author: { name: "Alice" }, content: "Hello!", timestamp: "2026-01-15T10:00:00Z" },
{ id: "2", author: { name: "Bob" }, content: "Hi there!", timestamp: "2026-01-15T10:01:00Z" },
]}
showTimestamps
groupByDate
/>

parseShortcodes(text: string, emojis: Map<string, CustomEmoji>) => string

Section titled “parseShortcodes(text: string, emojis: Map<string, CustomEmoji>) => string”

Parses shortcodes in text and replaces them with <img> tags.

Parameters:

NameDescription
textThe text containing shortcodes like :emoji_name:
emojisMap of shortcode → CustomEmoji

Returns: HTML string with shortcodes replaced by img tags

Example:

const emojis = new Map([["wave", { url: "/emojis/wave.gif", ... }]]);
parseShortcodes("Hello :wave:", emojis);
// → 'Hello <img class="sn-custom-emoji" src="/emojis/wave.gif" alt=":wave:" title="wave" />'

PresenceIndicatorBase({ id, status, label, showDot, showLabel, size, className, style, slots, }: PresenceIndicatorBaseProps) => Element

Section titled “PresenceIndicatorBase({ id, status, label, showDot, showLabel, size, className, style, slots, }: PresenceIndicatorBaseProps) => Element”

Standalone PresenceIndicator — displays online/offline/away/busy/dnd status with a colored dot and optional label. Works with plain React props.

Example:

<PresenceIndicatorBase status="online" size="md" />

ReactionBarBase({ id, reactions, showAddButton, onReactionClick, onEmojiSelect, EmojiPickerComponent, className, style, slots, }: ReactionBarBaseProps) => Element

Section titled “ReactionBarBase({ id, reactions, showAddButton, onReactionClick, onEmojiSelect, EmojiPickerComponent, className, style, slots, }: ReactionBarBaseProps) => Element”

Standalone ReactionBar — row of emoji reaction pills with counts and an add-reaction button that opens an inline emoji picker. Works with plain React props.

Example:

<ReactionBarBase
reactions={[
{ emoji: "\ud83d\udc4d", count: 3, active: true },
{ emoji: "\u2764\ufe0f", count: 1 },
]}
onReactionClick={(emoji, wasActive) => toggleReaction(emoji)}
onEmojiSelect={({ emoji }) => addReaction(emoji)}
/>

resolveEmojiRecords(records: Record<string, unknown>[], urlField?: string, urlPrefix?: string | undefined) => CustomEmoji[]

Section titled “resolveEmojiRecords(records: Record<string, unknown>[], urlField?: string, urlPrefix?: string | undefined) => CustomEmoji[]”

Resolves emoji records from the API into CustomEmoji entries. Handles the uploadKeyurl resolution using a URL prefix or field mapping.

Parameters:

NameDescription
recordsRaw API response records
urlFieldField name containing the image URL. Default: “url”
urlPrefixPrefix to prepend to uploadKey for URL resolution

TypingIndicatorBase({ id, users, maxDisplay, className, style, slots, }: TypingIndicatorBaseProps) => Element | null

Section titled “TypingIndicatorBase({ id, users, maxDisplay, className, style, slots, }: TypingIndicatorBaseProps) => Element | null”

Standalone TypingIndicator — shows animated bouncing dots with user names to indicate who is currently typing. Works with plain React props.

Example:

<TypingIndicatorBase users={[{ name: "Alice" }, { name: "Bob" }]} />

ExportKindDescription
BannerBasefunctionStandalone Banner — a full-width hero section with background, overlay, and content alignment. Works with plain React props.
BannerBasePropsinterfaceProps accepted by the BannerBase standalone component.
CodeBasefunctionStandalone Code — an inline code element for displaying code snippets within flowing text. Works with plain React props.
CodeBasePropsinterfaceProps accepted by the CodeBase standalone component.
CodeBlockBasefunctionStandalone CodeBlock — displays code with syntax highlighting, optional line numbers, copy button, and title bar. Works with plain React props.
CodeBlockBasePropsinterfaceProps accepted by the CodeBlockBase standalone component.
CompareViewBasefunctionStandalone CompareView — a side-by-side diff viewer for comparing two text blocks. Works with plain React props.
CompareViewBasePropsinterfaceProps accepted by the CompareViewBase standalone component.
detectPlatformfunctionDetects the platform from a URL and extracts embed info.
FileUploaderBasefunctionStandalone FileUploader — a file upload component with dropzone, button, and compact variants. Works with plain React props.
FileUploaderBasePropsinterfaceProps accepted by the FileUploaderBase standalone component.
HeadingBasefunctionStandalone Heading — a styled heading element (h1-h6) that works with plain React props. Works with plain React props.
HeadingBasePropsinterfaceProps accepted by the HeadingBase standalone component.
LinkEmbedBasefunctionStandalone LinkEmbed — renders rich link previews with platform-specific embeds (YouTube, Instagram, TikTok, Twitter, GIF) or a generic card. Works with plain React props.
LinkEmbedBasePropsinterfaceProps accepted by the LinkEmbedBase standalone component.
LinkEmbedMetainterfaceType definition exported by the Snapshot UI runtime.
MarkdownBasefunctionStandalone Markdown — renders markdown content with syntax highlighting and Snapshot design tokens. Works with plain React props.
MarkdownBasePropsinterfaceProps accepted by the MarkdownBase standalone component.
PlatformtypealiasPlatform detection and embed URL extraction. Identifies known platforms from URLs and extracts the embed-compatible URL or ID needed to render platform-specific iframes.
PLATFORM_COLORSvariablePlatform accent colors.
PLATFORM_NAMESvariablePlatform display names.
PlatformInfointerfaceResolved platform metadata used to render a platform-specific embedded preview.
RichInputBasevariableStandalone RichInput — a rich text editor with formatting toolbar, powered by tiptap. Works with plain React props.
RichInputBaseHandleinterfaceImperative handle exposed via ref. Use this when an external surface (emoji picker, GIF picker, slash-command menu) needs to insert content at the user’s current cursor position without going through the controlled-value path (which clobbers the cursor).
RichInputBasePropsinterfaceProps accepted by the RichInputBase standalone component.
RichTextEditorBasefunctionStandalone RichTextEditor — a markdown editor with live preview, powered by CodeMirror. Works with plain React props.
RichTextEditorBasePropsinterfaceProps accepted by the RichTextEditorBase standalone component.
TimelineBasefunctionStandalone Timeline — vertical event timeline with dot markers, connectors, date labels, and default/compact/alternating layout variants. Works with plain React props.
TimelineBasePropsinterfaceProps accepted by the TimelineBase standalone component.
TimelineItemEntryinterfaceType definition exported by the Snapshot UI runtime.

BannerBase({ id, height, align, background, className, style, slots, children, }: BannerBaseProps) => Element

Section titled “BannerBase({ id, height, align, background, className, style, slots, children, }: BannerBaseProps) => Element”

Standalone Banner — a full-width hero section with background, overlay, and content alignment. Works with plain React props.

Example:

<BannerBase height="60vh" align="center" background={{ color: "#1a1a2e" }}>
<h1>Welcome</h1>
<p>Get started today</p>
</BannerBase>

CodeBase({ id, value, fallback, className, style, slots, }: CodeBaseProps) => Element

Section titled “CodeBase({ id, value, fallback, className, style, slots, }: CodeBaseProps) => Element”

Standalone Code — an inline code element for displaying code snippets within flowing text. Works with plain React props.

Example:

<CodeBase value="npm install snapshot" />

CodeBlockBase({ id, code, language, title, showCopy, showLineNumbers, wrap, highlight: highlightEnabled, maxHeight, className, style, slots, }: CodeBlockBaseProps) => Element

Section titled “CodeBlockBase({ id, code, language, title, showCopy, showLineNumbers, wrap, highlight: highlightEnabled, maxHeight, className, style, slots, }: CodeBlockBaseProps) => Element”

Standalone CodeBlock — displays code with syntax highlighting, optional line numbers, copy button, and title bar. Works with plain React props.

Example:

<CodeBlockBase code="console.log('hello');" language="javascript" title="example.js" showLineNumbers />

CompareViewBase({ id, left, right, leftLabel, rightLabel, maxHeight, showLineNumbers, className, style, slots, }: CompareViewBaseProps) => Element

Section titled “CompareViewBase({ id, left, right, leftLabel, rightLabel, maxHeight, showLineNumbers, className, style, slots, }: CompareViewBaseProps) => Element”

Standalone CompareView — a side-by-side diff viewer for comparing two text blocks. Works with plain React props.

Example:

<CompareViewBase left="original text" right="modified text" leftLabel="Before" rightLabel="After" />

detectPlatform(url: string, options?: { darkMode?: boolean | undefined; } | undefined) => PlatformInfo | null

Section titled “detectPlatform(url: string, options?: { darkMode?: boolean | undefined; } | undefined) => PlatformInfo | null”

Detects the platform from a URL and extracts embed info.

Parameters:

NameDescription
urlThe URL to analyze

Returns: Platform info with embed ID and URL, or null for generic


FileUploaderBase({ id, variant, label, description, maxFiles, maxSize, accept, onFilesAdded, onFileRemoved, onUpload: _onUpload, onProgress: _onProgress, onError: _onError, onComplete: _onComplete, files: controlledF...

Section titled “FileUploaderBase({ id, variant, label, description, maxFiles, maxSize, accept, onFilesAdded, onFileRemoved, onUpload: _onUpload, onProgress: _onProgress, onError: _onError, onComplete: _onComplete, files: controlledF...”

Standalone FileUploader — a file upload component with dropzone, button, and compact variants. Works with plain React props.

Example:

<FileUploaderBase
variant="dropzone"
label="Upload your files"
maxFiles={5}
accept="image/*"
onFilesAdded={(files) => handleUpload(files)}
/>

HeadingBase({ id, text, level, align, className, style, slots, }: HeadingBaseProps) => Element

Section titled “HeadingBase({ id, text, level, align, className, style, slots, }: HeadingBaseProps) => Element”

Standalone Heading — a styled heading element (h1-h6) that works with plain React props. Works with plain React props.

Example:

<HeadingBase text="Welcome" level={1} align="center" />

LinkEmbedBase({ id, url, meta, allowIframe, aspectRatio, maxWidth, className, style, slots, }: LinkEmbedBaseProps) => Element | null

Section titled “LinkEmbedBase({ id, url, meta, allowIframe, aspectRatio, maxWidth, className, style, slots, }: LinkEmbedBaseProps) => Element | null”

Standalone LinkEmbed — renders rich link previews with platform-specific embeds (YouTube, Instagram, TikTok, Twitter, GIF) or a generic card. Works with plain React props.

Example:

<LinkEmbedBase url="https://www.youtube.com/watch?v=xyz" />

MarkdownBase({ id, content, maxHeight, className, style, slots, }: MarkdownBaseProps) => Element

Section titled “MarkdownBase({ id, content, maxHeight, className, style, slots, }: MarkdownBaseProps) => Element”

Standalone Markdown — renders markdown content with syntax highlighting and Snapshot design tokens. Works with plain React props.

Example:

<MarkdownBase content="# Hello\n\nThis is **bold** text." />

Standalone RichInput — a rich text editor with formatting toolbar, powered by tiptap. Works with plain React props.

Example:

<RichInputBase
placeholder="Type a message..."
features={["bold", "italic", "link"]}
onSend={({ html, text }) => sendMessage(html)}
/>

Imperative handle exposed via ref. Use this when an external surface (emoji picker, GIF picker, slash-command menu) needs to insert content at the user’s current cursor position without going through the controlled-value path (which clobbers the cursor).

Example:

const editorRef = useRef<RichInputBaseHandle>(null);
<RichInputBase ref={editorRef} ... />
<button onClick={() => editorRef.current?.insertText('👍')}>👍</button>

RichTextEditorBase({ id, content: initialContent, placeholder: placeholderText, readonly, mode: initialMode, toolbar, minHeight, maxHeight, onChange, renderPreview, className, style, slots, }: RichTextEditorBaseProps) ...

Section titled “RichTextEditorBase({ id, content: initialContent, placeholder: placeholderText, readonly, mode: initialMode, toolbar, minHeight, maxHeight, onChange, renderPreview, className, style, slots, }: RichTextEditorBaseProps) ...”

Standalone RichTextEditor — a markdown editor with live preview, powered by CodeMirror. Works with plain React props.

Example:

<RichTextEditorBase content="# Hello" onChange={(md) => save(md)} />

TimelineBase({ id, items, variant, showConnector, loading, error, emptyText, onItemClick, className, style, slots, }: TimelineBaseProps) => Element

Section titled “TimelineBase({ id, items, variant, showConnector, loading, error, emptyText, onItemClick, className, style, slots, }: TimelineBaseProps) => Element”

Standalone Timeline — vertical event timeline with dot markers, connectors, date labels, and default/compact/alternating layout variants. Works with plain React props.

Example:

<TimelineBase
items={[
{ title: "Project started", date: "Jan 1", icon: "rocket", color: "primary" },
{ title: "First release", date: "Mar 15", description: "v1.0 shipped to production" },
]}
variant="default"
showConnector
/>

ExportKindDescription
CommandPaletteBasefunctionStandalone CommandPalette — a search-driven command list with keyboard navigation. Works with plain React props.
CommandPaletteBaseGroupinterfaceType definition exported by the Snapshot UI runtime.
CommandPaletteBaseIteminterfaceType definition exported by the Snapshot UI runtime.
CommandPaletteBasePropsinterfaceProps accepted by the CommandPaletteBase standalone component.
ConfirmDialogBasefunctionStandalone ConfirmDialog — a confirmation dialog built on ModalBase with plain React props. Works with plain React props.
ConfirmDialogBasePropsinterfaceProps accepted by the ConfirmDialogBase standalone component.
ContextMenuBasefunctionStandalone ContextMenu — a right-click context menu with plain React props. Works with plain React props.
ContextMenuBaseEntrytypealiasType definition exported by the Snapshot UI runtime.
ContextMenuBaseIteminterfaceType definition exported by the Snapshot UI runtime.
ContextMenuBaseLabelinterfaceType definition exported by the Snapshot UI runtime.
ContextMenuBasePropsinterfaceProps accepted by the ContextMenuBase standalone component.
ContextMenuBaseSeparatorinterfaceType definition exported by the Snapshot UI runtime.
DrawerBasefunctionStandalone Drawer — a sliding panel overlay with plain React props. Works with plain React props.
DrawerBaseFooterActioninterfaceType definition exported by the Snapshot UI runtime.
DrawerBasePropsinterfaceProps accepted by the DrawerBase standalone component.
DropdownMenuBasefunctionStandalone DropdownMenu — a button-triggered floating menu with plain React props. Works with plain React props.
DropdownMenuBaseEntrytypealiasType definition exported by the Snapshot UI runtime.
DropdownMenuBaseIteminterfaceType definition exported by the Snapshot UI runtime.
DropdownMenuBaseLabelinterfaceType definition exported by the Snapshot UI runtime.
DropdownMenuBasePropsinterfaceProps accepted by the DropdownMenuBase standalone component.
DropdownMenuBaseSeparatorinterfaceType definition exported by the Snapshot UI runtime.
DropdownMenuBaseTriggerinterfaceType definition exported by the Snapshot UI runtime.
HoverCardBasefunctionStandalone HoverCard — a floating panel that appears on hover with plain React props. Works with plain React props.
HoverCardBasePropsinterfaceProps accepted by the HoverCardBase standalone component.
ModalBasefunctionStandalone Modal — a centered overlay dialog with plain React props. Works with plain React props.
ModalBaseFooterActioninterfaceType definition exported by the Snapshot UI runtime.
ModalBasePropsinterfaceProps accepted by the ModalBase standalone component.
PopoverBasefunctionStandalone Popover — a button-triggered floating panel with plain React props. Works with plain React props.
PopoverBasePropsinterfaceProps accepted by the PopoverBase standalone component.

CommandPaletteBase({ id, open, onClose, onSelect, groups, placeholder, emptyMessage, maxHeight, query: controlledQuery, onQueryChange, shortcutHint, className, style, slots, }: CommandPaletteBaseProps) => Element | nul...

Section titled “CommandPaletteBase({ id, open, onClose, onSelect, groups, placeholder, emptyMessage, maxHeight, query: controlledQuery, onQueryChange, shortcutHint, className, style, slots, }: CommandPaletteBaseProps) => Element | nul...”

Standalone CommandPalette — a search-driven command list with keyboard navigation. Works with plain React props.

Example:

<CommandPaletteBase
open={isOpen}
onClose={() => setIsOpen(false)}
groups={[{ label: "Actions", items: [{ label: "Search..." }] }]}
onSelect={(item) => console.log(item.label)}
/>

ConfirmDialogBase({ id, title, description, confirmLabel, cancelLabel, confirmVariant, cancelVariant, open, onClose, onConfirm, onCancel, size, className, style, slots, }: ConfirmDialogBaseProps) => Element

Section titled “ConfirmDialogBase({ id, title, description, confirmLabel, cancelLabel, confirmVariant, cancelVariant, open, onClose, onConfirm, onCancel, size, className, style, slots, }: ConfirmDialogBaseProps) => Element”

Standalone ConfirmDialog — a confirmation dialog built on ModalBase with plain React props. Works with plain React props.

Example:

<ConfirmDialogBase
open={showConfirm}
onClose={() => setShowConfirm(false)}
title="Delete Item?"
description="This action cannot be undone."
onConfirm={() => deleteItem()}
/>

ContextMenuBase({ id, items, onSelect, onOpenChange, children, className, style, slots, }: ContextMenuBaseProps) => Element

Section titled “ContextMenuBase({ id, items, onSelect, onOpenChange, children, className, style, slots, }: ContextMenuBaseProps) => Element”

Standalone ContextMenu — a right-click context menu with plain React props. Works with plain React props.

Example:

<ContextMenuBase
items={[
{ label: "Copy", icon: "copy" },
{ type: "separator" },
{ label: "Delete", destructive: true },
]}
onSelect={(item) => handleAction(item.label)}
>
<div>Right-click me</div>
</ContextMenuBase>

Section titled “DrawerBase({ id, title, side, size, open, onClose, trapFocus, initialFocus, returnFocus, footer, footerAlign, onOpen, className, style, slots, children, }: DrawerBaseProps) => Element | null”

Standalone Drawer — a sliding panel overlay with plain React props. Works with plain React props.

Example:

<DrawerBase
open={isOpen}
onClose={() => setIsOpen(false)}
title="Settings"
side="right"
>
<p>Drawer content here</p>
</DrawerBase>

Section titled “DropdownMenuBase({ id, trigger, items, onSelect, align, side, className, style, slots, }: DropdownMenuBaseProps) => Element”

Standalone DropdownMenu — a button-triggered floating menu with plain React props. Works with plain React props.

Example:

<DropdownMenuBase
trigger={{ label: "Options", icon: "more-vertical" }}
items={[
{ label: "Edit", icon: "edit" },
{ type: "separator" },
{ label: "Delete", destructive: true },
]}
onSelect={(item) => handleAction(item.label)}
/>

HoverCardBase({ id, trigger, children, openDelay, closeDelay, side, align, width, className, style, slots, }: HoverCardBaseProps) => Element

Section titled “HoverCardBase({ id, trigger, children, openDelay, closeDelay, side, align, width, className, style, slots, }: HoverCardBaseProps) => Element”

Standalone HoverCard — a floating panel that appears on hover with plain React props. Works with plain React props.

Example:

<HoverCardBase
trigger={<span>Hover me</span>}
width="300px"
>
<p>Card content</p>
</HoverCardBase>

Section titled “ModalBase({ id, title, size, open, onClose, trapFocus, initialFocus, returnFocus, footer, footerAlign, onOpen, className, style, slots, children, }: ModalBaseProps) => Element | null”

Standalone Modal — a centered overlay dialog with plain React props. Works with plain React props.

Example:

<ModalBase
open={isOpen}
onClose={() => setIsOpen(false)}
title="Edit Profile"
footer={[
{ label: "Cancel", variant: "secondary", onClick: () => setIsOpen(false) },
{ label: "Save", onClick: handleSave },
]}
>
<form>...</form>
</ModalBase>

Section titled “PopoverBase({ id, triggerLabel, triggerIcon, triggerVariant, title, description, placement, width, onOpenChange, footer, className, style, slots, children, }: PopoverBaseProps) => Element”

Standalone Popover — a button-triggered floating panel with plain React props. Works with plain React props.

Example:

<PopoverBase
triggerLabel="Open"
title="Settings"
description="Configure your preferences"
>
<form>...</form>
</PopoverBase>

ExportKindDescription
AccordionBasefunctionStandalone Accordion — an expandable/collapsible panel list with plain React children. Works with plain React props.
AccordionBaseIteminterfaceType definition exported by the Snapshot UI runtime.
AccordionBasePropsinterfaceProps accepted by the AccordionBase standalone component.
BreadcrumbBasefunctionStandalone Breadcrumb — a navigation trail rendered with plain React props. Works with plain React props.
BreadcrumbBaseIteminterfaceType definition exported by the Snapshot UI runtime.
BreadcrumbBasePropsinterfaceProps accepted by the BreadcrumbBase standalone component.
PrefetchLinkBasefunctionStandalone PrefetchLink — a plain <a> anchor that fires a prefetch callback based on the configured strategy. Works without SSR context.
PrefetchLinkBasePropsinterfaceProps accepted by the PrefetchLinkBase standalone component.
StepperBasefunctionStandalone Stepper — a multi-step progress indicator with plain React props. Works with plain React props.
StepperBasePropsinterfaceProps accepted by the StepperBase standalone component.
StepperBaseStepinterfaceType definition exported by the Snapshot UI runtime.
TabsBasefunctionStandalone Tabs — tabbed navigation with plain React props. Works with plain React props.
TabsBasePropsinterfaceProps accepted by the TabsBase standalone component.
TabsBaseTabinterfaceType definition exported by the Snapshot UI runtime.
TreeViewBasefunctionStandalone TreeView — a hierarchical tree with expand/collapse and selection. Works with plain React props.
TreeViewBaseIteminterfaceType definition exported by the Snapshot UI runtime.
TreeViewBasePropsinterfaceProps accepted by the TreeViewBase standalone component.

AccordionBase({ id, items, mode, variant, iconPosition, defaultOpen, className, style, slots, }: AccordionBaseProps) => Element

Section titled “AccordionBase({ id, items, mode, variant, iconPosition, defaultOpen, className, style, slots, }: AccordionBaseProps) => Element”

Standalone Accordion — an expandable/collapsible panel list with plain React children. Works with plain React props.

Example:

<AccordionBase
items={[
{ title: "Section 1", content: <p>Content 1</p> },
{ title: "Section 2", content: <p>Content 2</p> },
]}
/>

Section titled “BreadcrumbBase({ id, items, separator: separatorProp, maxItems, onNavigate, className, style, slots, }: BreadcrumbBaseProps) => Element”

Standalone Breadcrumb — a navigation trail rendered with plain React props. Works with plain React props.

Example:

<BreadcrumbBase
items={[
{ label: "Home", path: "/" },
{ label: "Settings", path: "/settings" },
{ label: "Profile" },
]}
/>

PrefetchLinkBase({ id, to, prefetch, children, target, rel, onPrefetch, className, style, slots, }: PrefetchLinkBaseProps) => Element

Section titled “PrefetchLinkBase({ id, to, prefetch, children, target, rel, onPrefetch, className, style, slots, }: PrefetchLinkBaseProps) => Element”

Standalone PrefetchLink — a plain <a> anchor that fires a prefetch callback based on the configured strategy. Works without SSR context.

Example:

<PrefetchLinkBase
to="/dashboard"
onPrefetch={(to) => router.prefetch(to)}
>
Dashboard
</PrefetchLinkBase>

StepperBase({ id, steps, activeStep: controlledStep, orientation, variant, clickable, onStepChange, className, style, slots, }: StepperBaseProps) => Element

Section titled “StepperBase({ id, steps, activeStep: controlledStep, orientation, variant, clickable, onStepChange, className, style, slots, }: StepperBaseProps) => Element”

Standalone Stepper — a multi-step progress indicator with plain React props. Works with plain React props.

Example:

<StepperBase
steps={[
{ title: "Account", content: <AccountForm /> },
{ title: "Profile", content: <ProfileForm /> },
{ title: "Review", content: <ReviewPanel /> },
]}
activeStep={1}
/>

TabsBase({ id, tabs, defaultTab, variant, onTabChange, className, style, slots, }: TabsBaseProps) => Element

Section titled “TabsBase({ id, tabs, defaultTab, variant, onTabChange, className, style, slots, }: TabsBaseProps) => Element”

Standalone Tabs — tabbed navigation with plain React props. Works with plain React props.

Example:

<TabsBase
tabs={[
{ label: "Overview", content: <OverviewPanel /> },
{ label: "Details", content: <DetailsPanel /> },
]}
/>

TreeViewBase({ id, items, selectable, multiSelect, showIcon, showConnectors, onSelect: onSelectProp, emptyMessage, isLoading, error, onRetry, className, style, slots, }: TreeViewBaseProps) => Element

Section titled “TreeViewBase({ id, items, selectable, multiSelect, showIcon, showConnectors, onSelect: onSelectProp, emptyMessage, isLoading, error, onRetry, className, style, slots, }: TreeViewBaseProps) => Element”

Standalone TreeView — a hierarchical tree with expand/collapse and selection. Works with plain React props.

Example:

<TreeViewBase
items={[
{ label: "src", children: [
{ label: "index.ts", icon: "file" },
{ label: "utils.ts", icon: "file" },
]},
]}
onSelect={(value) => console.log(value)}
/>

ExportKindDescription
BoxBasefunctionStandalone Box — a generic container element with configurable HTML tag. Works with plain React props.
BoxBasePropsinterfaceProps accepted by the BoxBase standalone component.
CardBasefunctionStandalone Card — a styled container with optional title/subtitle and standard React children. Works with plain React props.
CardBasePropsinterfaceProps accepted by the CardBase standalone component.
CollapsibleBasefunctionStandalone Collapsible — an animated expand/collapse container with an optional trigger. Works with plain React props.
CollapsibleBasePropsinterfaceProps accepted by the CollapsibleBase standalone component.
ColumnBasefunctionStandalone Column — a vertical flex container. Works with plain React props.
ColumnBasePropsinterfaceProps accepted by the ColumnBase standalone component.
ContainerBasefunctionStandalone Container — a centered, max-width-constrained wrapper. Works with plain React props.
ContainerBasePropsinterfaceProps accepted by the ContainerBase standalone component.
GridBasefunctionStandalone Grid — a CSS grid container. Works with plain React props.
GridBasePropsinterfaceProps accepted by the GridBase standalone component.
LayoutBasefunctionStandalone Layout — a layout shell component that wraps page content. Renders one of six layout variants with plain React props.
LayoutBasePropsinterfaceProps accepted by the LayoutBase standalone component.
LayoutBaseSlotstypealiasNamed slot content map for slot-aware layouts.
LayoutBaseVarianttypealiasType definition exported by the Snapshot UI runtime.
NavBasefunctionStandalone Nav — a navigation component with items, logo, and collapse support. Works with plain React props.
NavBaseIteminterfaceType definition exported by the Snapshot UI runtime.
NavBaseLogointerfaceType definition exported by the Snapshot UI runtime.
NavBasePropsinterfaceProps accepted by the NavBase standalone component.
NavBaseUserinterfaceType definition exported by the Snapshot UI runtime.
NavDropdownBasefunctionStandalone NavDropdown — a navigation dropdown with floating panel. Works with plain React props.
NavDropdownBasePropsinterfaceProps accepted by the NavDropdownBase standalone component.
NavLinkBasefunctionStandalone NavLink — a navigation link with optional icon and badge. Works with plain React props.
NavLinkBasePropsinterfaceProps accepted by the NavLinkBase standalone component.
NavLogoBasefunctionStandalone NavLogo — a clickable brand logo/text element for navigation headers. Works with plain React props.
NavLogoBasePropsinterfaceProps accepted by the NavLogoBase standalone component.
NavSearchBasefunctionStandalone NavSearch — a search input with optional keyboard shortcut display. Works with plain React props.
NavSearchBasePropsinterfaceProps accepted by the NavSearchBase standalone component.
NavSectionBasefunctionStandalone NavSection — a labeled, optionally collapsible group within navigation. Works with plain React props.
NavSectionBasePropsinterfaceProps accepted by the NavSectionBase standalone component.
NavUserMenuBasefunctionStandalone NavUserMenu — a user menu dropdown with avatar trigger. Works with plain React props.
NavUserMenuBaseIteminterfaceType definition exported by the Snapshot UI runtime.
NavUserMenuBasePropsinterfaceProps accepted by the NavUserMenuBase standalone component.
OutletBasefunctionStandalone OutletBase — a router-agnostic mount point for child routes or manually-supplied content. Works with plain React props. Pass router-rendered content as children. When children is empty, fallback is rendered instead.
OutletBasePropsinterfaceProps accepted by the OutletBase standalone component.
RowBasefunctionStandalone Row — a horizontal flex container. Works with plain React props.
RowBasePropsinterfaceProps accepted by the RowBase standalone component.
SectionBasefunctionStandalone Section — a full-width vertical section with optional height and alignment. Works with plain React props.
SectionBasePropsinterfaceProps accepted by the SectionBase standalone component.
SpacerBasefunctionStandalone Spacer — an empty element that takes up space along an axis. Works with plain React props.
SpacerBasePropsinterfaceProps accepted by the SpacerBase standalone component.
SplitPaneBasefunctionStandalone SplitPane — a resizable two-pane layout with a draggable divider. Works with plain React props.
SplitPaneBasePropsinterfaceProps accepted by the SplitPaneBase standalone component.

BoxBase({ id, as, className, style, slots, children, }: BoxBaseProps) => Element

Section titled “BoxBase({ id, as, className, style, slots, children, }: BoxBaseProps) => Element”

Standalone Box — a generic container element with configurable HTML tag. Works with plain React props.

Example:

<BoxBase as="section">
<p>Content here</p>
</BoxBase>

CardBase({ id, title, subtitle, gap: gapProp, background, staggerDelay, className, style, slots, children, }: CardBaseProps) => Element

Section titled “CardBase({ id, title, subtitle, gap: gapProp, background, staggerDelay, className, style, slots, children, }: CardBaseProps) => Element”

Standalone Card — a styled container with optional title/subtitle and standard React children. Works with plain React props.

Example:

<CardBase title="User Profile" subtitle="Account details" gap="lg">
<p>Name: Jane Doe</p>
<p>Email: jane@example.com</p>
</CardBase>

CollapsibleBase({ id, open: controlledOpen, defaultOpen, duration: durationProp, onOpenChange, className, style, slots, trigger, children, }: CollapsibleBaseProps) => Element

Section titled “CollapsibleBase({ id, open: controlledOpen, defaultOpen, duration: durationProp, onOpenChange, className, style, slots, trigger, children, }: CollapsibleBaseProps) => Element”

Standalone Collapsible — an animated expand/collapse container with an optional trigger. Works with plain React props.

Example:

<CollapsibleBase
trigger={<button>Toggle</button>}
defaultOpen={false}
duration="fast"
>
<p>Collapsible content here</p>
</CollapsibleBase>

ColumnBase({ id, gap: gapProp, align, justify, overflow, maxHeight, className, style, slots, children, }: ColumnBaseProps) => Element

Section titled “ColumnBase({ id, gap: gapProp, align, justify, overflow, maxHeight, className, style, slots, children, }: ColumnBaseProps) => Element”

Standalone Column — a vertical flex container. Works with plain React props.

Example:

<ColumnBase gap="md" align="center">
<p>Item 1</p>
<p>Item 2</p>
</ColumnBase>

ContainerBase({ id, maxWidth, padding, center, className, style, slots, children, }: ContainerBaseProps) => Element

Section titled “ContainerBase({ id, maxWidth, padding, center, className, style, slots, children, }: ContainerBaseProps) => Element”

Standalone Container — a centered, max-width-constrained wrapper. Works with plain React props.

Example:

<ContainerBase maxWidth="xl" padding="md">
<p>Centered content</p>
</ContainerBase>

GridBase({ id, areas, columns, rows, gap: gapProp, className, style, slots, children, }: GridBaseProps) => Element

Section titled “GridBase({ id, areas, columns, rows, gap: gapProp, className, style, slots, children, }: GridBaseProps) => Element”

Standalone Grid — a CSS grid container. Works with plain React props.

Example:

<GridBase columns={3} gap="md">
<div>Cell 1</div>
<div>Cell 2</div>
<div>Cell 3</div>
</GridBase>

LayoutBase({ variant, className, style, nav, layoutSlots, children, }: LayoutBaseProps) => Element

Section titled “LayoutBase({ variant, className, style, nav, layoutSlots, children, }: LayoutBaseProps) => Element”

Standalone Layout — a layout shell component that wraps page content. Renders one of six layout variants with plain React props.

Example:

<LayoutBase variant="sidebar" nav={<MyNav />}>
<p>Page content</p>
</LayoutBase>

Section titled “NavBase({ id, variant, items, logo, collapsible, pathname, onNavigate, className, style, slots, children, renderItem, renderLogo, footer, collapsed, onToggleCollapse, }: NavBaseProps) => Element”

Standalone Nav — a navigation component with items, logo, and collapse support. Works with plain React props.

Example:

<NavBase
variant="sidebar"
logo={{ text: "My App", path: "/" }}
items={[
{ label: "Home", path: "/", icon: "home" },
{ label: "Settings", path: "/settings", icon: "settings" },
]}
onNavigate={(path) => router.push(path)}
/>

Section titled “NavDropdownBase({ id, label, icon, current, disabled, align, trigger: triggerMode, width, className, style, slots, children, }: NavDropdownBaseProps) => Element”

Standalone NavDropdown — a navigation dropdown with floating panel. Works with plain React props.

Example:

<NavDropdownBase label="Products" icon="box">
<NavLinkBase label="Widget A" path="/products/a" />
<NavLinkBase label="Widget B" path="/products/b" />
</NavDropdownBase>

Section titled “NavLinkBase({ id, label, path, icon, badge, disabled, active, onNavigate, className, style, slots, }: NavLinkBaseProps) => Element”

Standalone NavLink — a navigation link with optional icon and badge. Works with plain React props.

Example:

<NavLinkBase
label="Dashboard"
path="/dashboard"
icon="home"
active
onNavigate={(path) => router.push(path)}
/>

Section titled “NavLogoBase({ id, text, src, path, logoHeight, onNavigate, className, style, slots, }: NavLogoBaseProps) => Element”

Standalone NavLogo — a clickable brand logo/text element for navigation headers. Works with plain React props.

Example:

<NavLogoBase
text="My App"
src="/logo.png"
path="/"
onNavigate={(path) => router.push(path)}
/>

Section titled “NavSearchBase({ id, placeholder, shortcut, onSearch, onValueChange, className, style, slots, }: NavSearchBaseProps) => Element”

Standalone NavSearch — a search input with optional keyboard shortcut display. Works with plain React props.

Example:

<NavSearchBase
placeholder="Search..."
shortcut="Ctrl+K"
onSearch={(value) => console.log(value)}
/>

Section titled “NavSectionBase({ id, label, collapsible, defaultCollapsed, className, style, slots, children, }: NavSectionBaseProps) => Element”

Standalone NavSection — a labeled, optionally collapsible group within navigation. Works with plain React props.

Example:

<NavSectionBase label="Admin" collapsible>
<NavLinkBase label="Users" path="/admin/users" />
<NavLinkBase label="Settings" path="/admin/settings" />
</NavSectionBase>

Section titled “NavUserMenuBase({ id, mode, showAvatar, showName, showEmail, userName, userEmail, userAvatar, items, className, style, slots, }: NavUserMenuBaseProps) => Element”

Standalone NavUserMenu — a user menu dropdown with avatar trigger. Works with plain React props.

Example:

<NavUserMenuBase
userName="Jane Doe"
userEmail="jane@example.com"
userAvatar="/avatar.png"
mode="full"
showEmail
items={[
{ label: "Profile", icon: "user", onClick: () => router.push("/profile") },
{ label: "Sign out", icon: "log-out", onClick: () => signOut() },
]}
/>

OutletBase({ id, children, fallback, className, style, slots, }: OutletBaseProps) => Element

Section titled “OutletBase({ id, children, fallback, className, style, slots, }: OutletBaseProps) => Element”

Standalone OutletBase — a router-agnostic mount point for child routes or manually-supplied content. Works with plain React props.

Pass router-rendered content as children. When children is empty, fallback is rendered instead.

Example:

<OutletBase fallback={<EmptyState title="Pick a section" />}>
{currentRouteContent}
</OutletBase>

RowBase({ id, gap: gapProp, align, justify, wrap, overflow, maxHeight, className, style, slots, children, }: RowBaseProps) => Element

Section titled “RowBase({ id, gap: gapProp, align, justify, wrap, overflow, maxHeight, className, style, slots, children, }: RowBaseProps) => Element”

Standalone Row — a horizontal flex container. Works with plain React props.

Example:

<RowBase gap="md" align="center" justify="between">
<span>Left</span>
<span>Right</span>
</RowBase>

SectionBase({ id, height, align, justify, bleed, className, style, slots, children, }: SectionBaseProps) => Element

Section titled “SectionBase({ id, height, align, justify, bleed, className, style, slots, children, }: SectionBaseProps) => Element”

Standalone Section — a full-width vertical section with optional height and alignment. Works with plain React props.

Example:

<SectionBase height="screen" align="center" justify="center">
<h1>Hero content</h1>
</SectionBase>

SpacerBase({ id, size: sizeProp, axis, flex, className, style, slots, }: SpacerBaseProps) => Element

Section titled “SpacerBase({ id, size: sizeProp, axis, flex, className, style, slots, }: SpacerBaseProps) => Element”

Standalone Spacer — an empty element that takes up space along an axis. Works with plain React props.

Example:

<SpacerBase size="lg" />
<SpacerBase axis="horizontal" size="md" />

SplitPaneBase({ id, direction, defaultSplit, minSize, className, style, slots, first, second, }: SplitPaneBaseProps) => Element

Section titled “SplitPaneBase({ id, direction, defaultSplit, minSize, className, style, slots, first, second, }: SplitPaneBaseProps) => Element”

Standalone SplitPane — a resizable two-pane layout with a draggable divider. Works with plain React props.

Example:

<SplitPaneBase
direction="horizontal"
defaultSplit={40}
first={<div>Left pane</div>}
second={<div>Right pane</div>}
/>

ExportKindDescription
CarouselBasefunctionStandalone CarouselBase — renders a slide carousel with auto-play, arrow navigation, and dot indicators. Pauses on hover. Works with plain React props.
CarouselBasePropsinterfaceProps accepted by the CarouselBase standalone component.
EmbedBasefunctionStandalone Embed — a responsive iframe container for embedding external content. Works with plain React props.
EmbedBasePropsinterfaceProps accepted by the EmbedBase standalone component.
SnapshotImageBasefunctionStandalone SnapshotImage — an optimized image component with placeholder support. Works with plain React props.
SnapshotImageBasePropsinterfaceProps accepted by the SnapshotImageBase standalone component.
VideoBasefunctionStandalone Video — a styled video element that works with plain React props. Works with plain React props.
VideoBasePropsinterfaceProps accepted by the VideoBase standalone component.

CarouselBase({ id, children, autoPlay, interval: intervalMs, showArrows, showDots, className, style, slots, }: CarouselBaseProps) => Element | null

Section titled “CarouselBase({ id, children, autoPlay, interval: intervalMs, showArrows, showDots, className, style, slots, }: CarouselBaseProps) => Element | null”

Standalone CarouselBase — renders a slide carousel with auto-play, arrow navigation, and dot indicators. Pauses on hover. Works with plain React props.

Example:

<CarouselBase autoPlay interval={3000} showArrows showDots>
<img src="/slide1.jpg" alt="Slide 1" />
<img src="/slide2.jpg" alt="Slide 2" />
<img src="/slide3.jpg" alt="Slide 3" />
</CarouselBase>

EmbedBase({ id, url, aspectRatio, title, className, style, slots, }: EmbedBaseProps) => Element

Section titled “EmbedBase({ id, url, aspectRatio, title, className, style, slots, }: EmbedBaseProps) => Element”

Standalone Embed — a responsive iframe container for embedding external content. Works with plain React props.

Example:

<EmbedBase url="https://www.youtube.com/embed/xyz" aspectRatio="16/9" title="Demo Video" />

SnapshotImageBase({ id, src, alt, width, height, quality, format, sizes, priority, placeholder, loading: loadingProp, aspectRatio, className, style, slots, }: SnapshotImageBaseProps) => Element

Section titled “SnapshotImageBase({ id, src, alt, width, height, quality, format, sizes, priority, placeholder, loading: loadingProp, aspectRatio, className, style, slots, }: SnapshotImageBaseProps) => Element”

Standalone SnapshotImage — an optimized image component with placeholder support. Works with plain React props.

Example:

<SnapshotImageBase src="/photo.jpg" alt="Photo" width={800} height={600} placeholder="blur" />

VideoBase({ id, src, poster, controls, autoPlay, loop, muted, className, style, slots, }: VideoBaseProps) => Element

Section titled “VideoBase({ id, src, poster, controls, autoPlay, loop, muted, className, style, slots, }: VideoBaseProps) => Element”

Standalone Video — a styled video element that works with plain React props. Works with plain React props.

Example:

<VideoBase src="/video.mp4" poster="/thumb.jpg" controls />

ExportKindDescription
DividerBasefunctionStandalone Divider — renders a horizontal or vertical separator line, optionally with a centered label. Works with plain React props.
DividerBasePropsinterfaceProps accepted by the DividerBase standalone component.
FloatingMenuBasefunctionStandalone FloatingMenu — a dropdown menu with trigger, keyboard navigation, and pre-resolved items. Works with plain React props.
FloatingMenuBaseEntrytypealiasType definition exported by the Snapshot UI runtime.
FloatingMenuBaseIteminterfaceType definition exported by the Snapshot UI runtime.
FloatingMenuBaseLabelinterfaceType definition exported by the Snapshot UI runtime.
FloatingMenuBasePropsinterfaceProps accepted by the FloatingMenuBase standalone component.
FloatingMenuBaseSeparatorinterfaceType definition exported by the Snapshot UI runtime.
LinkBasefunctionStandalone Link — renders a styled anchor element with optional icon and badge. Works with plain React props.
LinkBasePropsinterfaceProps accepted by the LinkBase standalone component.
OAuthButtonsBasefunctionStandalone OAuthButtons — renders OAuth provider buttons with optional heading and auto-redirect support. Works with plain React props.
OAuthButtonsBasePropsinterfaceProps accepted by the OAuthButtonsBase standalone component.
OAuthProviderinterfaceType definition exported by the Snapshot UI runtime.
PasskeyButtonBasefunctionStandalone PasskeyButton — renders a passkey authentication button. Works with plain React props.
PasskeyButtonBasePropsinterfaceProps accepted by the PasskeyButtonBase standalone component.
StackBasefunctionStandalone Stack — a flex-column layout container with token-based spacing. Works with plain React props.
StackBasePropsinterfaceProps accepted by the StackBase standalone component.
TextBasefunctionStandalone Text — renders a styled paragraph element with token-based typography. Works with plain React props.
TextBasePropsinterfaceProps accepted by the TextBase standalone component.

DividerBase({ label, orientation, id, className, style, slots, }: DividerBaseProps) => Element

Section titled “DividerBase({ label, orientation, id, className, style, slots, }: DividerBaseProps) => Element”

Standalone Divider — renders a horizontal or vertical separator line, optionally with a centered label. Works with plain React props.

Example:

<DividerBase orientation="horizontal" label="OR" />

FloatingMenuBase({ triggerLabel, triggerIcon, items, open: controlledOpen, align, side, id, className, style, slots, }: FloatingMenuBaseProps) => Element

Section titled “FloatingMenuBase({ triggerLabel, triggerIcon, items, open: controlledOpen, align, side, id, className, style, slots, }: FloatingMenuBaseProps) => Element”

Standalone FloatingMenu — a dropdown menu with trigger, keyboard navigation, and pre-resolved items. Works with plain React props.

Example:

<FloatingMenuBase
triggerLabel="Actions"
items={[
{ type: "item", label: "Edit", onAction: () => {} },
{ type: "separator" },
{ type: "item", label: "Delete", destructive: true, onAction: () => {} },
]}
/>

LinkBase({ text, to, icon, badge, external, disabled, current, align, variant, onNavigate, id, className, style, slots, }: LinkBaseProps) => Element

Section titled “LinkBase({ text, to, icon, badge, external, disabled, current, align, variant, onNavigate, id, className, style, slots, }: LinkBaseProps) => Element”

Standalone Link — renders a styled anchor element with optional icon and badge. Works with plain React props.

Example:

<LinkBase text="Documentation" to="/docs" icon="book" variant="default" />

OAuthButtonsBase({ heading, providers, providerMode, onProviderClick, id, className, style, slots, }: OAuthButtonsBaseProps) => Element | null

Section titled “OAuthButtonsBase({ heading, providers, providerMode, onProviderClick, id, className, style, slots, }: OAuthButtonsBaseProps) => Element | null”

Standalone OAuthButtons — renders OAuth provider buttons with optional heading and auto-redirect support. Works with plain React props.

Example:

<OAuthButtonsBase
heading="Sign in with"
providers={[
{ name: "google", label: "Continue with Google", url: "/auth/google" },
{ name: "github", label: "Continue with GitHub", url: "/auth/github" },
]}
/>

PasskeyButtonBase({ label, loadingLabel, loading, visible, autoPrompt, onClick, id, className, style, slots, }: PasskeyButtonBaseProps) => Element | null

Section titled “PasskeyButtonBase({ label, loadingLabel, loading, visible, autoPrompt, onClick, id, className, style, slots, }: PasskeyButtonBaseProps) => Element | null”

Standalone PasskeyButton — renders a passkey authentication button. Works with plain React props.

Example:

<PasskeyButtonBase label="Sign in with passkey" onClick={() => startPasskey()} />

StackBase({ gap, align, justify, maxWidth, overflow, maxHeight, padding, staggerDelay, id, className, style, slots, children, }: StackBaseProps) => Element

Section titled “StackBase({ gap, align, justify, maxWidth, overflow, maxHeight, padding, staggerDelay, id, className, style, slots, children, }: StackBaseProps) => Element”

Standalone Stack — a flex-column layout container with token-based spacing. Works with plain React props.

Example:

<StackBase gap="md" align="center" padding="lg">
<p>First item</p>
<p>Second item</p>
</StackBase>

TextBase({ value, variant, size, weight, align, id, className, style, slots, }: TextBaseProps) => Element

Section titled “TextBase({ value, variant, size, weight, align, id, className, style, slots, }: TextBaseProps) => Element”

Standalone Text — renders a styled paragraph element with token-based typography. Works with plain React props.

Example:

<TextBase value="Hello, world!" variant="muted" size="sm" />

ExportKindDescription
ComponentDataResultinterfaceResult returned by useComponentData. Provides the fetched data, loading/error states, and a refetch function.
ComponentGroupBasefunctionStandalone ComponentGroup — a simple wrapper for pre-rendered group content. Works with plain React props.
ComponentGroupBasePropsinterfaceProps accepted by the ComponentGroupBase standalone component.
useComponentDatafunctionShared data-fetching hook for Snapshot UI components. Parses a data config string like "GET /api/stats/revenue" into method + endpoint, resolves any FromRef values in params via useSubscribe, and fetches data using the app-scope API client. When the API client is not available (e.g., in tests or before a provider supplies it), the hook returns a loading state without throwing.

ComponentGroupBase({ id, className, style, slots, children, }: ComponentGroupBaseProps) => Element

Section titled “ComponentGroupBase({ id, className, style, slots, children, }: ComponentGroupBaseProps) => Element”

Standalone ComponentGroup — a simple wrapper for pre-rendered group content. Works with plain React props.

Example:

<ComponentGroupBase id="my-group">
<MyComponentA />
<MyComponentB />
</ComponentGroupBase>

useComponentData(dataConfig: string | { resource: string; params?: Record<string, unknown> | undefined; } | FromRef, params?: Record<string, unknown> | undefined, options?: ComponentDataOptions | undefined) => Compon...

Section titled “useComponentData(dataConfig: string | { resource: string; params?: Record<string, unknown> | undefined; } | FromRef, params?: Record<string, unknown> | undefined, options?: ComponentDataOptions | undefined) => Compon...”

Shared data-fetching hook for Snapshot UI components.

Parses a data config string like "GET /api/stats/revenue" into method + endpoint, resolves any FromRef values in params via useSubscribe, and fetches data using the app-scope API client.

When the API client is not available (e.g., in tests or before a provider supplies it), the hook returns a loading state without throwing.

Parameters:

NameDescription
dataConfigEndpoint string or FromRef. Example: "GET /api/stats/revenue"
paramsOptional query parameters, may contain FromRef values

Returns: Data, loading state, error, and refetch function


ExportKindDescription
BreakpointtypealiasAll breakpoint names including "default" (below sm).
getSortableStylefunctionCSS transform helper for sortable items. Converts the dnd-kit transform into a CSS transform string.
resolveResponsiveValuefunctionResolve a responsive value for a given breakpoint. Cascades down: if the active breakpoint isn’t defined, falls back to the next smaller breakpoint, then default. For flat (non-object) values, returns the value directly.
UI_BREAKPOINTSvariableBreakpoint pixel thresholds (mobile-first, min-width).
useBreakpointfunctionReturns the currently active breakpoint based on window width. Uses matchMedia for efficient, event-driven updates (no resize polling). Returns "default" during SSR.
useDndSensorsfunctionPre-configured sensor setup for pointer + keyboard DnD. Pointer requires 5px distance to activate (prevents click hijacking). Keyboard uses standard coordinates for arrow key navigation.
useInfiniteScrollfunctionObserve a sentinel element and load the next page when it enters the viewport.
UseInfiniteScrollOptionsinterfaceOptions for loading additional items when a sentinel approaches the viewport.
usePollfunctionInvoke a callback on an interval with optional document-visibility pausing.
UsePollOptionsinterfaceOptions controlling interval-based polling from client components.
useResponsiveValuefunctionResolve a responsive value to the appropriate value for the current breakpoint. Accepts either a flat value (returned as-is) or a responsive map with breakpoint keys. Falls back to the next smaller defined breakpoint.
useUrlSyncfunctionKeep a slice of local state synchronized with URL query parameters.

getSortableStyle(transform: Transform | null, transition: string | undefined, isDragging: boolean) => CSSProperties

Section titled “getSortableStyle(transform: Transform | null, transition: string | undefined, isDragging: boolean) => CSSProperties”

CSS transform helper for sortable items. Converts the dnd-kit transform into a CSS transform string.


resolveResponsiveValue<T>(value: T | { default: T; sm?: T | undefined; md?: T | undefined; lg?: T | undefined; xl?: T | undefined; "2xl"?: T | undefined; }, breakpoint: Breakpoint) => T

Section titled “resolveResponsiveValue<T>(value: T | { default: T; sm?: T | undefined; md?: T | undefined; lg?: T | undefined; xl?: T | undefined; "2xl"?: T | undefined; }, breakpoint: Breakpoint) => T”

Resolve a responsive value for a given breakpoint.

Cascades down: if the active breakpoint isn’t defined, falls back to the next smaller breakpoint, then default. For flat (non-object) values, returns the value directly.

Parameters:

NameDescription
valueA flat value or a responsive breakpoint map
breakpointThe active breakpoint to resolve for

Returns: The resolved value for the given breakpoint


Returns the currently active breakpoint based on window width.

Uses matchMedia for efficient, event-driven updates (no resize polling). Returns "default" during SSR.


useDndSensors() => SensorDescriptor<SensorOptions>[]

Section titled “useDndSensors() => SensorDescriptor<SensorOptions>[]”

Pre-configured sensor setup for pointer + keyboard DnD. Pointer requires 5px distance to activate (prevents click hijacking). Keyboard uses standard coordinates for arrow key navigation.


useInfiniteScroll({ hasNextPage, isLoading, loadNextPage, threshold, }: UseInfiniteScrollOptions) => RefObject<HTMLDivElement | null>

Section titled “useInfiniteScroll({ hasNextPage, isLoading, loadNextPage, threshold, }: UseInfiniteScrollOptions) => RefObject<HTMLDivElement | null>”

Observe a sentinel element and load the next page when it enters the viewport.


usePoll({ interval, pauseWhenHidden, onPoll, enabled, }: UsePollOptions) => void

Section titled “usePoll({ interval, pauseWhenHidden, onPoll, enabled, }: UsePollOptions) => void”

Invoke a callback on an interval with optional document-visibility pausing.


useResponsiveValue<T>(value: T | { default: T; sm?: T | undefined; md?: T | undefined; lg?: T | undefined; xl?: T | undefined; "2xl"?: T | undefined; }) => T

Section titled “useResponsiveValue<T>(value: T | { default: T; sm?: T | undefined; md?: T | undefined; lg?: T | undefined; xl?: T | undefined; "2xl"?: T | undefined; }) => T”

Resolve a responsive value to the appropriate value for the current breakpoint.

Accepts either a flat value (returned as-is) or a responsive map with breakpoint keys. Falls back to the next smaller defined breakpoint.

Parameters:

NameDescription
valueA flat value or responsive breakpoint map

Returns: The resolved value for the current viewport width


useUrlSync(options: UseUrlSyncOptions) => void

Section titled “useUrlSync(options: UseUrlSyncOptions) => void”

Keep a slice of local state synchronized with URL query parameters.


ExportKindDescription
IconfunctionRender a Snapshot icon from the built-in icon registry.
ICON_PATHSvariableSVG inner content for Lucide icons. Each entry maps a kebab-case icon name to the SVG child elements (path, circle, line, rect, polyline, etc.) that belong inside a 24x24 stroke="currentColor" SVG container. Source: https://lucide.dev — MIT-licensed.
IconPropsinterfaceProps for the {@link Icon} component.

Icon({ name, size, color, className, label, }: IconProps) => Element

Section titled “Icon({ name, size, color, className, label, }: IconProps) => Element”

Render a Snapshot icon from the built-in icon registry.


ExportKindDescription
ActionConfigtypealiasConfiguration type for action config.
ActionExecuteFntypealiasType definition exported by the Snapshot UI runtime.
AuditLogBasefunctionStandalone AuditLogBase — renders a filterable, paginated timeline of audit log entries with user avatars, relative timestamps, and expandable detail panels. Works with plain React props.
AuditLogBasePropsinterfaceProps accepted by the AuditLogBase standalone component.
AuditLogFilterEntryinterfaceType definition exported by the Snapshot UI runtime.
buildRequestUrlfunctionFunction exported by the Snapshot UI runtime.
CalendarBasefunctionStandalone CalendarBase — renders a month or week calendar grid with event pills, navigation controls, and optional week numbers. Works with plain React props.
CalendarBasePropsinterfaceProps accepted by the CalendarBase standalone component.
CalendarEventEntryinterfaceType definition exported by the Snapshot UI runtime.
collectDependentResourcesfunctionFunction exported by the Snapshot UI runtime.
ComponentTokenstypealiasType definition exported by the Snapshot UI runtime.
dataSourceSchemavariableZod schema for validating data source schema.
DefaultErrorBasefunctionStandalone DefaultError — renders an error feedback card with optional retry button. Works with plain React props.
DefaultErrorBasePropsinterfaceProps accepted by the DefaultErrorBase standalone component.
DefaultLoadingBasefunctionStandalone DefaultLoading — renders a loading spinner with label. Works with plain React props.
DefaultLoadingBasePropsinterfaceProps accepted by the DefaultLoadingBase standalone component.
DefaultNotFoundBasefunctionStandalone DefaultNotFound — renders a 404 page with title and description. Works with plain React props.
DefaultNotFoundBasePropsinterfaceProps accepted by the DefaultNotFoundBase standalone component.
DefaultOfflineBasefunctionStandalone DefaultOffline — renders an offline status banner. Works with plain React props.
DefaultOfflineBasePropsinterfaceProps accepted by the DefaultOfflineBase standalone component.
EndpointTargettypealiasType definition exported by the Snapshot UI runtime.
endpointTargetSchemavariableZod schema for validating endpoint target schema.
ExprRefinterfaceType definition exported by the Snapshot UI runtime.
extractResourceRefsfunctionFunction exported by the Snapshot UI runtime.
FlavorinterfaceType definition exported by the Snapshot UI runtime.
FontConfigtypealiasConfiguration type for font config.
FromRefinterfaceType definition exported by the Snapshot UI runtime.
getResourceInvalidationTargetsfunctionFunction exported by the Snapshot UI runtime.
HttpMethodtypealiasType definition exported by the Snapshot UI runtime.
httpMethodSchemavariableZod schema for validating http method schema.
isOptimisticResourceTargetfunctionFunction exported by the Snapshot UI runtime.
isQueryKeyInvalidationTargetfunctionFunction exported by the Snapshot UI runtime.
isResourceReffunctionFunction exported by the Snapshot UI runtime.
KanbanBasefunctionStandalone KanbanBase — renders a multi-column board with cards, WIP limits, assignee avatars, priority indicators, and optional drag-and-drop reordering. Works with plain React props.
KanbanBasePropsinterfaceProps accepted by the KanbanBase standalone component.
KanbanColumnEntryinterfaceType definition exported by the Snapshot UI runtime.
NotificationFeedBasefunctionStandalone NotificationFeedBase — renders a scrollable notification list with type icons, unread indicators, relative timestamps, and a mark-all-read action. Works with plain React props.
NotificationFeedBasePropsinterfaceProps accepted by the NotificationFeedBase standalone component.
OptimisticConfigtypealiasConfiguration type for optimistic config.
optimisticConfigSchemavariableZod schema for validating optimistic config schema.
OptimisticTargettypealiasType definition exported by the Snapshot UI runtime.
optimisticTargetSchemavariableZod schema for validating optimistic target schema.
PricingFeatureEntryinterfaceType definition exported by the Snapshot UI runtime.
PricingTableBasefunctionStandalone PricingTableBase — renders a responsive pricing comparison as either a card grid or a feature-comparison table with CTA buttons per tier. Works with plain React props.
PricingTableBasePropsinterfaceProps accepted by the PricingTableBase standalone component.
PricingTierEntryinterfaceType definition exported by the Snapshot UI runtime.
RadiusScaletypealiasType definition exported by the Snapshot UI runtime.
ResolvedRequestinterfaceType definition exported by the Snapshot UI runtime.
resolveEndpointTargetfunctionFunction exported by the Snapshot UI runtime.
ResourceConfigtypealiasConfiguration type for resource config.
resourceConfigSchemavariableZod schema for validating resource config schema.
ResourceInvalidationTargettypealiasType definition exported by the Snapshot UI runtime.
resourceInvalidationTargetSchemavariableZod schema for validating resource invalidation target schema.
ResourceMaptypealiasType definition exported by the Snapshot UI runtime.
resourceParamSchemavariableZod schema for validating resource param schema.
ResourceReftypealiasType definition exported by the Snapshot UI runtime.
resourceRefSchemavariableZod schema for validating resource ref schema.
ResponsivetypealiasType definition exported by the Snapshot UI runtime.
SpacingScaletypealiasType definition exported by the Snapshot UI runtime.
StateScopetypealiasType definition exported by the Snapshot UI runtime.
ThemeColorstypealiasType definition exported by the Snapshot UI runtime.
ThemeConfigtypealiasConfiguration type for theme config.
TokenEditorinterfaceType definition exported by the Snapshot UI runtime.

AuditLogBase({ id, items: allItems, loading, error, userField, actionField, timestampField, detailsField, filters, pagination, className, style, slots, }: AuditLogBaseProps) => Element

Section titled “AuditLogBase({ id, items: allItems, loading, error, userField, actionField, timestampField, detailsField, filters, pagination, className, style, slots, }: AuditLogBaseProps) => Element”

Standalone AuditLogBase — renders a filterable, paginated timeline of audit log entries with user avatars, relative timestamps, and expandable detail panels. Works with plain React props.

Example:

<AuditLogBase
items={[{ user: "Jane", action: "updated record", timestamp: "2026-04-01T12:00:00Z" }]}
filters={[{ field: "action", label: "Action", options: ["created", "updated", "deleted"] }]}
detailsField="changes"
pagination={10}
/>

buildRequestUrl(endpoint: string, params?: Record<string, unknown> | undefined, pathParams?: Record<string, unknown> | undefined) => string

Section titled “buildRequestUrl(endpoint: string, params?: Record<string, unknown> | undefined, pathParams?: Record<string, unknown> | undefined) => string”

Function exported by the Snapshot UI runtime.


CalendarBase({ id, view, events, initialDate, loading, error, todayLabel, showWeekNumbers, onDateClick, onEventClick, className, style, slots, }: CalendarBaseProps) => Element

Section titled “CalendarBase({ id, view, events, initialDate, loading, error, todayLabel, showWeekNumbers, onDateClick, onEventClick, className, style, slots, }: CalendarBaseProps) => Element”

Standalone CalendarBase — renders a month or week calendar grid with event pills, navigation controls, and optional week numbers. Works with plain React props.

Example:

<CalendarBase
view="month"
events={[{ title: "Standup", date: new Date(), color: "primary", allDay: false, raw: {} }]}
showWeekNumbers
onDateClick={(date) => console.log(date)}
onEventClick={(event) => console.log(event.title)}
/>

collectDependentResources(resourceName: string, resources?: ResourceMap | undefined, visited?: Set<string> | undefined) => string[]

Section titled “collectDependentResources(resourceName: string, resources?: ResourceMap | undefined, visited?: Set<string> | undefined) => string[]”

Function exported by the Snapshot UI runtime.


DefaultErrorBase({ title, description, showRetry, retryLabel, onRetry, id, className, style, slots, }: DefaultErrorBaseProps) => Element

Section titled “DefaultErrorBase({ title, description, showRetry, retryLabel, onRetry, id, className, style, slots, }: DefaultErrorBaseProps) => Element”

Standalone DefaultError — renders an error feedback card with optional retry button. Works with plain React props.

Example:

<DefaultErrorBase
title="Something went wrong"
description="Please try again later."
showRetry
onRetry={() => window.location.reload()}
/>

DefaultLoadingBase({ label, size, id, className, style, slots, }: DefaultLoadingBaseProps) => Element

Section titled “DefaultLoadingBase({ label, size, id, className, style, slots, }: DefaultLoadingBaseProps) => Element”

Standalone DefaultLoading — renders a loading spinner with label. Works with plain React props.

Example:

<DefaultLoadingBase label="Loading your data..." size="md" />

DefaultNotFoundBase({ title, description, id, className, style, slots, }: DefaultNotFoundBaseProps) => Element

Section titled “DefaultNotFoundBase({ title, description, id, className, style, slots, }: DefaultNotFoundBaseProps) => Element”

Standalone DefaultNotFound — renders a 404 page with title and description. Works with plain React props.

Example:

<DefaultNotFoundBase
title="Page not found"
description="The page you are looking for does not exist."
/>

DefaultOfflineBase({ title, description, id, className, style, slots, }: DefaultOfflineBaseProps) => Element

Section titled “DefaultOfflineBase({ title, description, id, className, style, slots, }: DefaultOfflineBaseProps) => Element”

Standalone DefaultOffline — renders an offline status banner. Works with plain React props.

Example:

<DefaultOfflineBase
title="You're offline"
description="Reconnect to continue working."
/>

extractResourceRefs(value: unknown, results?: { resource: string; params?: Record<string, unknown> | undefined; }[] | undefined) => { resource: string; params?: Record<string, unknown> | undefined; }[]

Section titled “extractResourceRefs(value: unknown, results?: { resource: string; params?: Record<string, unknown> | undefined; }[] | undefined) => { resource: string; params?: Record<string, unknown> | undefined; }[]”

Function exported by the Snapshot UI runtime.


getResourceInvalidationTargets(resourceName: string, resources?: ResourceMap | undefined) => string[]

Section titled “getResourceInvalidationTargets(resourceName: string, resources?: ResourceMap | undefined) => string[]”

Function exported by the Snapshot UI runtime.


isOptimisticResourceTarget(value: string | { resource: string; params?: Record<string, unknown> | undefined; }) => value is { resource: string; params?: Record<string, unknown> | undefined; }

Section titled “isOptimisticResourceTarget(value: string | { resource: string; params?: Record<string, unknown> | undefined; }) => value is { resource: string; params?: Record<string, unknown> | undefined; }”

Function exported by the Snapshot UI runtime.


isQueryKeyInvalidationTarget(value: string | { key: string[]; }) => value is { key: string[]; }

Section titled “isQueryKeyInvalidationTarget(value: string | { key: string[]; }) => value is { key: string[]; }”

Function exported by the Snapshot UI runtime.


isResourceRef(value: unknown) => value is { resource: string; params?: Record<string, unknown> | undefined; }

Section titled “isResourceRef(value: unknown) => value is { resource: string; params?: Record<string, unknown> | undefined; }”

Function exported by the Snapshot UI runtime.


KanbanBase({ id, columns, items: rawItems, loading, error, columnField, titleField, descriptionField, assigneeField, priorityField, sortable, emptyMessage, onCardClick, onReorder, onDndChange, className, style,...

Section titled “KanbanBase({ id, columns, items: rawItems, loading, error, columnField, titleField, descriptionField, assigneeField, priorityField, sortable, emptyMessage, onCardClick, onReorder, onDndChange, className, style,...”

Standalone KanbanBase — renders a multi-column board with cards, WIP limits, assignee avatars, priority indicators, and optional drag-and-drop reordering. Works with plain React props.

Example:

<KanbanBase
columns={[
{ key: "todo", title: "To Do", color: "info" },
{ key: "in-progress", title: "In Progress", color: "warning", limit: 3 },
{ key: "done", title: "Done", color: "success" },
]}
items={[{ id: "1", title: "Task A", status: "todo", assignee: "Jane" }]}
sortable
onCardClick={(item) => console.log(item)}
/>

NotificationFeedBase({ id, items, loading, error, titleField, messageField, timestampField, readField, typeField, showMarkAllRead, maxHeight, emptyMessage, clickable, onItemClick, onMarkAllRead, className, style, slots, ...

Section titled “NotificationFeedBase({ id, items, loading, error, titleField, messageField, timestampField, readField, typeField, showMarkAllRead, maxHeight, emptyMessage, clickable, onItemClick, onMarkAllRead, className, style, slots, ...”

Standalone NotificationFeedBase — renders a scrollable notification list with type icons, unread indicators, relative timestamps, and a mark-all-read action. Works with plain React props.

Example:

<NotificationFeedBase
items={[
{ id: 1, title: "Deploy succeeded", message: "v2.4.0 is live", type: "success", read: false, timestamp: "2026-04-23T10:00:00Z" },
]}
clickable
maxHeight="400px"
onItemClick={(item) => console.log(item)}
onMarkAllRead={() => markAllRead()}
/>

PricingTableBase({ id, tiers, variant, currency, columns, className, style, slots, }: PricingTableBaseProps) => Element

Section titled “PricingTableBase({ id, tiers, variant, currency, columns, className, style, slots, }: PricingTableBaseProps) => Element”

Standalone PricingTableBase — renders a responsive pricing comparison as either a card grid or a feature-comparison table with CTA buttons per tier. Works with plain React props.

Example:

<PricingTableBase
variant="cards"
currency="$"
tiers={[
{ name: "Free", price: 0, period: "/month", features: [{ text: "1 project" }], onAction: () => signup("free") },
{ name: "Pro", price: 29, period: "/month", highlighted: true, badge: "Popular", features: [{ text: "Unlimited projects" }], onAction: () => signup("pro") },
]}
/>

resolveEndpointTarget(target: string | { resource: string; params?: Record<string, unknown> | undefined; }, resources?: ResourceMap | undefined, params?: Record<string, unknown> | undefined, fallbackMethod?: "GET" | ... 4...

Section titled “resolveEndpointTarget(target: string | { resource: string; params?: Record<string, unknown> | undefined; }, resources?: ResourceMap | undefined, params?: Record<string, unknown> | undefined, fallbackMethod?: "GET" | ... 4...”

Function exported by the Snapshot UI runtime.