Schema Documentation

Browse all PageHub component schemas with props, examples, and CSS variable references.

Media

Core

Button

Single button component with optional icon and link

2 required

CartBadge

Shopping cart badge wrapper. Place in navbar/header. Default preset includes a child toggle-cart button.

Children

CartDrawer

Shopping cart slide-out drawer. Place once at site root level. Visibility is driven by the `cart:open` state key — any Button with `action: { type: "toggle-cart" }` flips it (or `action: { type: "set-state", key: "cart:open", value: "shown" }` for explicit open). The optional backdrop reads the same key via `Container.visibilityStateKey: "cart:open"`. Shows cart items with quantity controls, subtotal, and checkout button.

Children

CartItems

Runtime cart line-item list for the CartDrawer. Reads live items from cart context and renders quantity controls in viewer mode.

CartSubtotal

Runtime subtotal row for CartDrawer. Reads total from cart context and shows formatted currency.

CheckoutBanner

Post-checkout notification banner. Place at site root level. Hidden by default — auto-shows after Stripe checkout success or cancellation. Auto-dismisses after configurable delay.

Children

Data

Data-aware container. Same layout as Container — one DOM element, no extra wrapper — but repeats its children per item from a connector (Stripe products, customer orders, nested item arrays). Children act as a template with {{item.*}} variables.

Children1 required

Icon

Standalone decorative or semantic icon. Renders as <span> with inline SVG (react-icons) or media-library image inside. Use this for icons in feature lists, card heroes, inline flourishes, and any icon that is NOT inside a clickable Button/Link. For a clickable icon, use Button with icon.only: true. For an icon next to text in a link/button, use the Button or Link `icon` prop — do NOT add a separate Icon component alongside.

2 required

Link

Text-styled hyperlink. Always renders as <a>. Use this for inline text links, 'read more' patterns, nav links, and any clickable text that is NOT a button. For filled/outlined CTAs use Button instead.

2 required

ProductDisplay

Stripe storefront repeater surface. Use for product grids/lists/cards bound to Stripe data.

Children

Text

Rich text component with Tiptap editor support

3 required

CrmForm

Lead-capture form that maps submissions to a CRM connector collection.