The portable surface
Every name `asheeui` offers on both platforms, generated from `PORTABLE_API`.
The umbrella is the intersection, not the union: a name is on it only when both renderers
publish it under the same name and the same contract. The list is declared once, in
PORTABLE_API in @asheeui/core, and both umbrella entries are generated from it, so the two
branches cannot differ.
There are 182 names (90 from @asheeui/core, 92 from the branch
renderer), plus the platform-specific AsheeConfig alias.
What is not here
A name only one renderer has is not on the umbrella. It stays with the renderer that owns it,
so a shared file that imports it is a compile error on the platform that lacks it — which is
the point. The compatibility matrix (@asheeui/core/dev) records the classification, and the
umbrella guard (pnpm check:umbrella) fails when the list and the matrix disagree.
import { Breadcrumb } from "@asheeui/web"; // web-only
import { RowList, TabBar } from "@asheeui/native"; // native-only
The section kit is on its own subpath, because it is composition vocabulary rather than the
component inventory: ActionGroup and SectionHeading come from asheeui/section-kit. The
web-only SkipLink stays on @asheeui/web/section-kit.
Adding a name
A name becomes portable in three steps: both renderers publish it, the matrix classifies it
shared or shared-api, and the name is added to PORTABLE_API with its kind and source.
The generator writes it into both umbrella entries, and the guard fails until the two agree.
Editing this page is not one of the steps: rerun node scripts/build-portable-surface.mjs.
Components
Render on both platforms under the same name and the same props.
| Name | Published by | Support |
|---|---|---|
Accordion |
the renderer | shared-api |
Alert |
the renderer | shared |
AuthLayout |
the renderer | shared-api |
Autocomplete |
the renderer | shared-api |
Avatar |
the renderer | shared |
Badge |
the renderer | shared |
Button |
the renderer | shared |
CTA |
the renderer | shared-api |
Calendar |
the renderer | shared-api |
Card |
the renderer | shared |
Carousel |
the renderer | shared-api |
Centered |
the renderer | shared-api |
Chip |
the renderer | shared |
Clipboard |
the renderer | shared-api |
Container |
the renderer | shared-api |
CopyButton |
the renderer | shared |
DataTable |
the renderer | shared-api |
DocsLayout |
the renderer | shared-api |
Drawer |
the renderer | shared-api |
Dropdown |
the renderer | shared |
Dropmenu |
the renderer | shared-api |
EmptyState |
the renderer | shared |
ErrorState |
the renderer | shared |
FeatureGrid |
the renderer | shared-api |
FileUpload |
the renderer | shared-api |
Footer |
the renderer | shared-api |
Form |
the renderer | shared |
Grid |
the renderer | shared-api |
HStack |
the renderer | shared |
Hero |
the renderer | shared-api |
Image |
the renderer | shared |
Input |
the renderer | shared |
Link |
the renderer | shared-api |
LoadingState |
the renderer | shared |
MarketingLayout |
the renderer | shared-api |
Marquee |
the renderer | shared-api |
Modal |
the renderer | shared-api |
MultiSelect |
the renderer | shared-api |
Navbar |
the renderer | shared-api |
Page |
the renderer | shared-api |
PageContent |
the renderer | shared |
PageFooter |
the renderer | shared |
PageHeader |
the renderer | shared |
Pagination |
the renderer | shared-api |
PasswordInput |
the renderer | shared |
PinInput |
the renderer | shared |
PricingCard |
the renderer | shared-api |
Radio |
the renderer | shared |
RadioGroup |
the renderer | shared |
SearchInput |
the renderer | shared |
Section |
the renderer | shared |
Sidebar |
the renderer | shared-api |
SidebarLayout |
the renderer | shared-api |
Skeleton |
the renderer | shared |
Spinner |
the renderer | shared |
Split |
the renderer | shared-api |
Stack |
the renderer | shared |
Stepper |
the renderer | shared |
Switch |
the renderer | shared |
Table |
the renderer | shared-api |
Tabs |
the renderer | shared-api |
Testimonials |
the renderer | shared-api |
Text |
the renderer | shared-api |
Textarea |
the renderer | shared |
ToastItem |
the renderer | shared |
Tooltip |
the renderer | shared-api |
Typography |
the renderer | shared-api |
VStack |
the renderer | shared |
Providers
Wrap an application once; both renderers read the same provider.
| Name | Published by | Support |
|---|---|---|
AsheeUIProvider |
the renderer | shared |
ToastProvider |
the renderer | shared-api |
Hooks
Read state the same way on both platforms.
| Name | Published by | Support |
|---|---|---|
useAshee |
the renderer | shared |
useAsheeConfig |
the renderer | shared |
useBreakpoint |
the renderer | shared |
usePrefersReducedMotion |
the renderer | shared |
useReduceMotion |
the renderer | shared |
useSidebarCollapse |
the renderer | shared |
useTheme |
the renderer | shared |
useToast |
the renderer | shared |
Helpers
A pure function both renderers publish.
| Name | Published by | Support |
|---|---|---|
cn |
the renderer | shared |
mergeObject |
@asheeui/core |
shared |
resolveAnimate |
the renderer | shared |
resolveBreakpoint |
@asheeui/core |
shared |
resolveCardVariant |
@asheeui/core |
shared |
resolveCascade |
@asheeui/core |
shared |
resolveClassKey |
@asheeui/core |
shared |
resolveConfigCascade |
@asheeui/core |
shared |
resolveGridColumns |
@asheeui/core |
shared |
resolveRadiusKey |
@asheeui/core |
shared |
Constants
A value both platforms name.
| Name | Published by | Support |
|---|---|---|
AsheeConfigContext |
the renderer | shared |
SidebarCollapseContext |
the renderer | shared |
THEME_STORAGE_KEY |
@asheeui/core |
shared |
ToastContext |
the renderer | shared |
themeController |
the renderer | shared |
Types
The vocabulary a shared file types its props with.
| Name | Published by | Support |
|---|---|---|
AccordionItem |
@asheeui/core |
shared |
AccordionSizeKey |
@asheeui/core |
shared |
AccordionVariant |
@asheeui/core |
shared |
AsheeColorRegistry |
@asheeui/core |
shared |
AsheeUIProviderProps |
the renderer | shared |
AuthLayoutAlign |
@asheeui/core |
shared |
AuthLayoutMediaPosition |
@asheeui/core |
shared |
BreakpointName |
@asheeui/core |
shared |
BreakpointState |
@asheeui/core |
shared |
CardImageLoading |
@asheeui/core |
shared |
CardImagePosition |
@asheeui/core |
shared |
CardVariant |
@asheeui/core |
shared |
CarouselItem |
@asheeui/core |
shared |
CarouselVariant |
@asheeui/core |
shared |
CenteredAxis |
@asheeui/core |
shared |
ClipboardState |
the renderer | shared |
Color |
@asheeui/core |
shared |
ColorVariant |
@asheeui/core |
shared |
ColumnDef |
@asheeui/core |
shared |
ContainerSize |
@asheeui/core |
shared |
CtaPanel |
@asheeui/core |
shared |
DrawerConfigOptions |
@asheeui/core |
shared |
DrawerPlacement |
@asheeui/core |
shared |
DrawerSize |
@asheeui/core |
shared |
ErrorStateRole |
@asheeui/core |
shared |
ExternalConfig |
@asheeui/core |
shared |
FeatureGridLink |
the renderer | shared |
FeatureItem |
@asheeui/core |
shared |
FooterGroup |
@asheeui/core |
shared |
FooterLink |
the renderer | shared |
FooterLinkItem |
@asheeui/core |
shared |
FooterVariant |
@asheeui/core |
shared |
GridAlign |
@asheeui/core |
shared |
GridColumns |
@asheeui/core |
shared |
HeroAlign |
@asheeui/core |
shared |
HeroMediaPosition |
@asheeui/core |
shared |
ImageFit |
@asheeui/core |
shared |
ImageRatioKey |
@asheeui/core |
shared |
LinkSubstitution |
@asheeui/core |
shared |
LinkUnderline |
@asheeui/core |
shared |
LinkVariant |
@asheeui/core |
shared |
MarketingLayoutBackground |
@asheeui/core |
shared |
MarqueeAxis |
@asheeui/core |
shared |
MarqueeDirection |
@asheeui/core |
shared |
MarqueeSpeedPreset |
@asheeui/core |
shared |
ModalPosition |
@asheeui/core |
shared |
ModalSizeKey |
@asheeui/core |
shared |
NavbarAlign |
@asheeui/core |
shared |
NavbarLink |
@asheeui/core |
shared |
NavbarLinkItem |
@asheeui/core |
shared |
NavbarPosition |
@asheeui/core |
shared |
NavbarVariant |
@asheeui/core |
shared |
PaginationLink |
the renderer | shared |
PricingCardVariant |
@asheeui/core |
shared |
PricingFeatureItem |
@asheeui/core |
shared |
Radius |
@asheeui/core |
shared |
SidebarCollapse |
the renderer | shared |
SidebarItem |
@asheeui/core |
shared |
SidebarItems |
@asheeui/core |
shared |
SidebarLayoutSide |
@asheeui/core |
shared |
SidebarLayoutWidth |
@asheeui/core |
shared |
SidebarLinkSubstitution |
@asheeui/core |
shared |
SidebarSection |
@asheeui/core |
shared |
SidebarSizeKey |
@asheeui/core |
shared |
SidebarVariant |
@asheeui/core |
shared |
Size |
@asheeui/core |
shared |
Space |
@asheeui/core |
shared |
SplitAlign |
@asheeui/core |
shared |
SplitRatio |
@asheeui/core |
shared |
SplitStackAt |
@asheeui/core |
shared |
StackAlign |
@asheeui/core |
shared |
StackDirection |
@asheeui/core |
shared |
StackJustify |
@asheeui/core |
shared |
StepperStep |
the renderer | shared |
Substitution |
@asheeui/core |
shared |
TabItem |
@asheeui/core |
shared |
TableVariant |
@asheeui/core |
shared |
TabsVariant |
@asheeui/core |
shared |
TestimonialItem |
@asheeui/core |
shared |
ThemeName |
@asheeui/core |
shared |
ThemeSelection |
@asheeui/core |
shared |
ToastContextType |
the renderer | shared |
ToastItemData |
@asheeui/core |
shared |
ToastPlacement |
@asheeui/core |
shared |
ToastShowOptions |
@asheeui/core |
shared |
ToastType |
@asheeui/core |
shared |
TooltipPlacement |
@asheeui/core |
shared |
TooltipSizeKey |
@asheeui/core |
shared |
Variant |
@asheeui/core |
shared |
Generated from PORTABLE_API by scripts/build-portable-surface.mjs. Do not edit by hand.