Files
WRNexusJS/packages/ui/COMPONENTS.md
T
2026-07-31 16:30:13 +05:30

65 KiB

WRNexus UI component reference

This reference is generated from the 108 packaged .wrn component sources. Props marked required have no default; all others show their runtime default.

Advanced-forms

AdvancedSelect

Theme-aware, responsive advanced select component.

  • Mount: data-component="AdvancedSelect"
  • Props: size: string = "default", color: string = "primary", label: string = "Advanced Select", name: string = "", value: string = "", values: string = [], options: string = [], groups: string = [], placeholder: string = "Select an option", placeholderIcon: string = "", searchPlaceholder: string = "Search options…", multiple: boolean = false, searchable: boolean = true, defaultOpen: boolean = false, clearable: boolean = true, allowEmpty: boolean = true, tags: boolean = false, disabled: boolean = false, required: boolean = false, invalid: boolean = false, validationMessage: string = "", helpText: string = "", loading: boolean = false, loadingLabel: string = "Loading options…", emptyLabel: string = "No options found", selectedOptionsLabel: string = "Selected options", clearLabel: string = "Clear selection", createLabel: string = "Create", loadMoreLabel: string = "Load more", searchMode: string = "contains", searchFields: string = "label,description", minSearchLength: number = 0, searchResultLimit: number = 0, maxSelections: number = 0, showCounter: boolean = false, counterTemplate: string = "{selected} selected", optionTemplate: string = "default", selectedTemplate: string = "default", closeOnSelect: boolean = true, scrollToSelected: boolean = true, fixed: boolean = false, placement: string = "bottom", remote: boolean = false, remoteUrl: string = "", remoteQueryParam: string = "q", remoteDebounce: number = 250, remoteAutoLoad: boolean = true, infinite: boolean = false, hasMore: boolean = false, page: number = 1, class: string = ""
  • Slots: None
  • Events: search, select, change, clear, open, close, load, error

ComboBox

Editable autocomplete combobox with local and remote suggestions.

  • Mount: data-component="ComboBox"
  • Props: size: string = "default", color: string = "primary", label: string = "ComboBox", name: string = "", value: string = "", options: string = [], groups: string = [], placeholder: string = "Search or select an option", searchPlaceholder: string = "Start typing…", clearable: boolean = true, allowCustomValue: boolean = false, disabled: boolean = false, required: boolean = false, invalid: boolean = false, validationMessage: string = "", helpText: string = "", loading: boolean = false, loadingLabel: string = "Loading suggestions…", emptyLabel: string = "No matching options", clearLabel: string = "Clear value", toggleLabel: string = "Toggle suggestions", searchMode: string = "contains", searchFields: string = "label,description", minSearchLength: number = 0, searchResultLimit: number = 0, optionTemplate: string = "default", defaultOpen: boolean = false, closeOnSelect: boolean = true, fixed: boolean = false, placement: string = "bottom", autocomplete: string = "off", remote: boolean = false, remoteUrl: string = "", remoteQueryParam: string = "q", remoteDebounce: number = 250, remoteAutoLoad: boolean = true, infinite: boolean = false, hasMore: boolean = false, page: number = 1, loadMoreLabel: string = "Load more", class: string = ""
  • Slots: None
  • Events: search, select, change, clear, open, close, load, error

CopyMarkup

Theme-aware, responsive copy markup component.

  • Mount: data-component="CopyMarkup"
  • Props: size: string = "default", color: string = "primary", label: string = "Copy Markup", name: string = "", value: string = "", placeholder: string = "", type: string = "text", min: string = "", max: string = "", step: string = "", disabled: boolean = false, required: boolean = false, class: string = ""
  • Slots: None
  • Events: copy, success, error

InputNumber

Theme-aware, responsive input number component.

  • Mount: data-component="InputNumber"
  • Props: size: string = "default", color: string = "primary", variant: string = "default", class: string = "", id: string = "", name: string = "quantity", value: number = 0, min: string = "", max: string = "", step: number = 1, precision: string = "auto", label: string = "", description: string = "", helpText: string = "", error: string = "", invalid: boolean = false, prefix: string = "", suffix: string = "", placeholder: string = "", autocomplete: string = "off", inputMode: string = "decimal", ariaLabel: string = "", required: boolean = false, disabled: boolean = false, inputDisabled: boolean = false, buttonsDisabled: boolean = false, readonly: boolean = false, allowInput: boolean = true, keyboard: boolean = true, wheel: boolean = false, clamp: boolean = true, fullWidth: boolean = false, showButtons: boolean = true, showValidationMessage: boolean = true, decrementLabel: string = "Decrease value", incrementLabel: string = "Increase value", controlsLabel: string = "Quantity controls", requiredMessage: string = "A value is required.", minMessage: string = "Value is below the minimum.", maxMessage: string = "Value is above the maximum."
  • Slots: None
  • Events: input, change, increment, decrement

PinInput

Secure multi-cell PIN and verification-code input with regex and paste support.

  • Mount: data-component="PinInput"
  • Props: size: string = "default", color: string = "primary", label: string = "Verification code", name: string = "pin", value: string = "", length: number = 4, pattern: string = "[0-9]", type: string = "text", inputMode: string = "numeric", placeholder: string = "○", autocomplete: string = "one-time-code", masked: boolean = false, disabled: boolean = false, readonly: boolean = false, required: boolean = false, autoFocus: boolean = false, autoSubmit: boolean = false, allowPaste: boolean = true, clearable: boolean = true, clearLabel: string = "Clear code", separator: string = "", groupSize: number = 0, helpText: string = "", invalid: boolean = false, validationMessage: string = "", class: string = ""
  • Slots: None
  • Events: input, change, complete, paste, clear, error

StrongPassword

Theme-aware, responsive strong password component.

  • Mount: data-component="StrongPassword"
  • Props: size: string = "default", color: string = "primary", label: string = "Password", name: string = "password", value: string = "", placeholder: string = "Create a strong password", autocomplete: string = "new-password", minLength: number = 8, specialCharactersSet: string = "!@#$%^&*()_+-=[]{}|;:,.<>?", requireLowercase: boolean = true, requireUppercase: boolean = true, requireNumber: boolean = true, requireSpecialCharacter: boolean = true, showRequirements: boolean = true, presentation: string = "inline", hintText: string = "Use a unique password you do not use elsewhere.", emptyLabel: string = "Enter a password", weakLabel: string = "Weak", fairLabel: string = "Fair", goodLabel: string = "Good", strongLabel: string = "Strong", disabled: boolean = false, readonly: boolean = false, required: boolean = false, invalid: boolean = false, validationMessage: string = "", class: string = ""
  • Slots: None
  • Events: input, change, strength

ToggleCount

Theme-aware, responsive toggle count component.

  • Mount: data-component="ToggleCount"
  • Props: size: string = "default", color: string = "primary", variant: string = "segmented", class: string = "", name: string = "billing-cycle", value: string = "monthly", firstValue: string = "monthly", firstLabel: string = "Monthly", secondValue: string = "annual", secondLabel: string = "Annual", ariaLabel: string = "Billing frequency", items: string = [], currency: string = "$", suffix: string = "", firstValueKey: string = "monthly", secondValueKey: string = "annual", emptyValue: string = "—", align: string = "end", fullWidth: boolean = true, disabled: boolean = false, animate: boolean = true, animationDuration: number = 450, animationSteps: number = 18
  • Slots: None
  • Events: change, toggle

TogglePassword

Accessible password field with optional show and hide controls.

  • Mount: data-component="TogglePassword"
  • Props: size: string = "default", color: string = "primary", label: string = "Password", name: string = "password", value: string = "", placeholder: string = "Enter your password", autocomplete: string = "current-password", minlength: string = "", maxlength: string = "", pattern: string = "(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9]).{8,}", fields: string = [], visible: boolean = false, toggleable: boolean = true, toggleMode: string = "button", checkboxLabel: string = "Show password", showLabel: string = "Show password", hideLabel: string = "Hide password", disabled: boolean = false, readonly: boolean = false, required: boolean = false, invalid: boolean = false, helpText: string = "", validationMessage: string = "", class: string = ""
  • Slots: None
  • Events: input, change, toggle

Base

Accordion

Theme-aware, responsive accordion component.

  • Mount: data-component="Accordion"
  • Props: size: string = "default", color: string = "primary", variant: string = "default", class: string = "", id: string = "accordion", items: string = [], defaultOpen: string = [], multiple: boolean = false, alwaysOpen: boolean = false, disabled: boolean = false, indicator: string = "plus", indicatorPosition: string = "start", showIndicator: boolean = true, bordered: boolean = false, separated: boolean = false, flush: boolean = false, contentItalic: boolean = false
  • Slots: None
  • Events: change, open, close

Alert

Theme-aware, responsive alert component.

  • Mount: data-component="Alert"
  • Props: size: string = "default", color: string = "info", variant: string = "soft", class: string = "", radius: string = "md", shadow: string = "sm", title: string = "Alert", description: string = "", items: string = [], actions: string = [], showIcon: boolean = false, icon: string = "", dismissible: boolean = false, dismissLabel: string = "Dismiss alert", role: string = "alert", live: string = "polite", linkLabel: string = "", linkHref: string = "", actionLabel: string = "", actionHref: string = "", compact: boolean = false
  • Slots: None
  • Events: dismiss, action

Avatar

Theme-aware, responsive avatar component.

  • Mount: data-component="Avatar"
  • Props: src: string = "", alt: string = "", initials: string = "", size: string = "md", color: string = "primary", variant: string = "solid", shape: string = "circle", status: string = "", statusLabel: string = "", statusPosition: string = "bottom", badge: string = "", badgeIcon: string = "", badgeLabel: string = "", tooltip: string = "", name: string = "", description: string = "", loading: string = "lazy", class: string = ""
  • Slots: None
  • Events: load, error, click

AvatarGroup

Theme-aware, responsive avatar group component.

  • Mount: data-component="AvatarGroup"
  • Props: items: string = [], size: string = "md", color: string = "primary", variant: string = "solid", shape: string = "circle", layout: string = "stack", maxVisible: number = 4, columns: number = 3, borderColor: string = "", showTooltips: boolean = true, overflowLabel: string = "Show remaining members", class: string = ""
  • Slots: None
  • Events: overflow

Badge

Theme-aware, responsive badge component.

  • Mount: data-component="Badge"
  • Props: label: string = "Badge", size: string = "md", color: string = "primary", variant: string = "solid", shape: string = "pill", class: string = "", icon: string = "", iconPosition: string = "start", dot: boolean = false, dotOnly: boolean = false, dotLabel: string = "Status", animated: boolean = false, avatarSrc: string = "", avatarAlt: string = "", dismissible: boolean = false, dismissLabel: string = "Remove badge", truncate: boolean = false, maxWidth: string = "12rem", anchorLabel: string = "", anchorIcon: string = "", placement: string = "inline", anchorLabelText: string = "Badge anchor"
  • Slots: None
  • Events: dismiss

Blockquote

Theme-aware, responsive blockquote component.

  • Mount: data-component="Blockquote"
  • Props: quote: string = "I just wanted to say that I'm very happy with my purchase so far. The documentation is outstanding - clear and detailed.", citation: string = "", citationTitle: string = "", citationUrl: string = "", avatarSrc: string = "", avatarAlt: string = "", size: string = "md", color: string = "primary", align: string = "left", variant: string = "default", quoteMark: boolean = true, italic: boolean = true, class: string = ""
  • Slots: default
  • Events: None

Button

Theme-aware, responsive button component.

  • Mount: data-component="Button"
  • Props: label: string = "Button", loadingLabel: string = "Loading…", description: string = "", as: string = "", href: string = "", target: string = "", rel: string = "", type: string = "button", variant: string = "default", color: string = "primary", size: string = "default", disabled: boolean = false, loading: boolean = false, pill: boolean = false, fullWidth: boolean = false, icon: string = "", iconPosition: string = "start", ariaLabel: string = "", ariaPressed: string = "", ariaExpanded: string = "", ariaControls: string = "", title: string = "", autofocus: boolean = false, controlClass: string = "", class: string = ""
  • Slots: default
  • Events: click, focus, blur

ButtonGroup

Theme-aware, responsive button group component.

  • Mount: data-component="ButtonGroup"
  • Props: items: string = [], value: string = "", size: string = "md", color: string = "primary", variant: string = "default", orientation: string = "horizontal", responsive: boolean = false, attached: boolean = true, selectable: boolean = false, toolbar: boolean = false, disabled: boolean = false, ariaLabel: string = "Button group", class: string = ""
  • Slots: default
  • Events: click, select, change

Card

Group related content in a responsive themed surface with title, description, content, and supporting slots.

  • Mount: data-component="Card"
  • Props: title: string = "Card title", subtitle: string = "", description: string = "", header: string = "", footer: string = "", imageSrc: string = "", imageAlt: string = "", imagePosition: string = "top", actionLabel: string = "", actionHref: string = "", headerActions: string = [], navigation: string = [], activeNav: string = "", mobileNavigation: boolean = false, alertTitle: string = "", alertDescription: string = "", empty: boolean = false, emptyTitle: string = "No data to show", emptyIcon: string = "icon-[lucide--inbox]", items: string = [], size: string = "md", color: string = "primary", variant: string = "default", layout: string = "vertical", align: string = "left", hover: string = "none", scrollable: boolean = false, maxHeight: string = "18rem", dismissible: boolean = false, ariaLabel: string = "", class: string = ""
  • Slots: default
  • Events: click, action, navigate, dismiss, load, error

Theme-aware, responsive carousel component.

  • Mount: data-component="Carousel"
  • Props: size: string = "default", color: string = "primary", title: string = "", description: string = "", items: string = [], activeIndex: number = 0, slidesPerView: number = 1, gap: string = "0.75rem", showPagination: boolean = false, isAutoPlay: boolean = false, autoplayInterval: number = 4000, isInfiniteLoop: boolean = false, isRTL: boolean = false, isCentered: boolean = false, isDraggable: boolean = false, isAutoHeight: boolean = false, isSnap: boolean = false, showCounter: boolean = false, thumbnails: string = "none", ariaLabel: string = "Content carousel", variant: string = "default", class: string = ""
  • Slots: default
  • Events: initialize, change, previous, next, play, pause, reachStart, reachEnd, dragStart, dragEnd

ChatBubble

Theme-aware, responsive chat bubble component.

  • Mount: data-component="ChatBubble"
  • Props: size: string = "default", color: string = "primary", title: string = "", description: string = "", items: string = [], oneSided: boolean = false, showAvatars: boolean = false, showMetadata: boolean = false, ariaLabel: string = "Conversation", variant: string = "default", class: string = ""
  • Slots: default
  • Events: action, messageClick, avatarClick, linkClick

Collapse

Theme-aware, responsive collapse component.

  • Mount: data-component="Collapse"
  • Props: size: string = "default", color: string = "primary", items: string = [], multiple: boolean = false, mode: string = "panel", initialOpenIndexes: string = [], ariaLabel: string = "Collapsible content", class: string = ""
  • Slots: default
  • Events: toggle, open, close

DatePicker

Theme-aware, responsive date picker component.

  • Mount: data-component="DatePicker"
  • Props: size: string = "default", color: string = "primary", label: string = "Date Picker", id: string = "", name: string = "", value: string = "", placeholder: string = "", type: string = "date", locale: string = "en-US", firstDayOfWeek: number = 0, months: string = [{ label: "Jan", value: "01" }, { label: "Feb", value: "02" }, { label: "Mar", value: "03" }, { label: "Apr", value: "04" }, { label: "May", value: "05" }, { label: "Jun", value: "06" }, { label: "Jul", value: "07" }, { label: "Aug", value: "08" }, { label: "Sep", value: "09" }, { label: "Oct", value: "10" }, { label: "Nov", value: "11" }, { label: "Dec", value: "12" }], days: string = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], years: string = [2024, 2025, 2026, 2027, 2028, 2029, 2030], min: string = "", max: string = "", step: string = "", helperText: string = "", cornerHint: string = "", error: string = "", variant: string = "normal", inline: boolean = false, readonly: boolean = false, disabled: boolean = false, required: boolean = false, class: string = ""
  • Slots: None
  • Events: input, change, open, close, focus, blur, invalid

DeviceFrame

Theme-aware, responsive device frame component.

  • Mount: data-component="DeviceFrame"
  • Props: size: string = "default", color: string = "primary", title: string = "Device Frame", description: string = "", items: string = [], variant: string = "default", device: string = "phone", orientation: string = "portrait", src: string = "", srcdoc: string = "", frameTitle: string = "Device preview", showToolbar: boolean = true, allow: string = "", class: string = ""
  • Slots: default
  • Events: change, rotate

FileUploadProgress

Theme-aware, responsive file upload progress component.

  • Mount: data-component="FileUploadProgress"
  • Props: size: string = "default", color: string = "primary", label: string = "Progress", value: number = 50, max: number = 100, showValue: boolean = true, fileName: string = "", fileSize: string = "", uploadedSize: string = "", status: string = "uploading", cancelLabel: string = "Cancel upload", retryLabel: string = "Retry upload", class: string = ""
  • Slots: None
  • Events: cancel, retry, complete

LegendIndicator

Theme-aware, responsive legend indicator component.

  • Mount: data-component="LegendIndicator"
  • Props: size: string = "default", color: string = "primary", title: string = "Legend Indicator", description: string = "", items: string = [], variant: string = "default", class: string = ""
  • Slots: default
  • Events: toggle, select

List

Present structured responsive linked or status items with icons, descriptions, actions, and selection events.

  • Mount: data-component="List"
  • Props: size: string = "default", color: string = "primary", title: string = "List", description: string = "", items: string = [], variant: string = "default", class: string = ""
  • Slots: default
  • Events: None

ListGroup

Theme-aware, responsive list group component.

  • Mount: data-component="ListGroup"
  • Props: size: string = "default", color: string = "primary", title: string = "List Group", description: string = "", items: string = [], variant: string = "default", class: string = ""
  • Slots: default
  • Events: select, change

Marquee

Continuously present responsive labels, partners, notices, or capabilities with pause and resume behavior.

  • Mount: data-component="Marquee"
  • Props: size: string = "default", color: string = "primary", title: string = "Marquee", description: string = "", items: string = [], variant: string = "default", class: string = ""
  • Slots: default
  • Events: None

Progress

Theme-aware, responsive progress component.

  • Mount: data-component="Progress"
  • Props: size: string = "default", color: string = "primary", label: string = "Progress", value: number = 50, max: number = 100, showValue: boolean = true, class: string = ""
  • Slots: None
  • Events: None

Rating

Theme-aware, responsive rating component.

  • Mount: data-component="Rating"
  • Props: size: string = "default", color: string = "primary", title: string = "Rating", description: string = "", items: string = [], variant: string = "default", class: string = ""
  • Slots: default
  • Events: input, change

Skeleton

Theme-aware, responsive skeleton component.

  • Mount: data-component="Skeleton"
  • Props: color: string = "primary", label: string = "Loading", size: string = "md", lines: number = 3, class: string = ""
  • Slots: None
  • Events: None

Spinner

Theme-aware, responsive spinner component.

  • Mount: data-component="Spinner"
  • Props: color: string = "primary", label: string = "Loading", size: string = "md", lines: number = 3, class: string = ""
  • Slots: None
  • Events: None

StyledIcon

Theme-aware, responsive styled icon component.

  • Mount: data-component="StyledIcon"
  • Props: size: string = "default", color: string = "primary", title: string = "Styled Icon", description: string = "", items: string = [], variant: string = "default", class: string = ""
  • Slots: default
  • Events: None

Timeline

Present responsive chronological activity, milestones, or workflow status with rich item metadata.

  • Mount: data-component="Timeline"
  • Props: size: string = "default", color: string = "primary", title: string = "Timeline", description: string = "", items: string = [], variant: string = "default", class: string = ""
  • Slots: default
  • Events: None

Toast

Theme-aware, responsive toast component.

  • Mount: data-component="Toast"
  • Props: size: string = "default", color: string = "primary", title: string = "Toast", description: string = "", items: string = [], variant: string = "default", class: string = ""
  • Slots: default
  • Events: dismiss, action

TreeView

Theme-aware, responsive tree view component.

  • Mount: data-component="TreeView"
  • Props: size: string = "default", color: string = "primary", title: string = "Tree View", description: string = "", items: string = [], variant: string = "default", class: string = ""
  • Slots: default
  • Events: select, toggle, expand, collapse

Core

AuthForm

Reusable auth form component.

  • Mount: data-component="AuthForm"
  • Props: size: string = "default", color: string = "primary", mode: string = "sign-in", action: string = "/api/auth/login", method: string = "post", title: string = "Sign in", description: string = "", returnTo: string = "", schema: string = "", showRemember: boolean = true, showName: boolean = true, submitLabel: string = "Continue", class: string = ""
  • Slots: default
  • Events: submit, change, input, focus, blur

AuthSplitLayout

Reusable auth split layout component.

  • Mount: data-component="AuthSplitLayout"
  • Props: size: string = "default", color: string = "primary", eyebrow: string = "Secure identity", title: string = "Welcome back", description: string = "", brand: string = "Police Management System", features: string = [], class: string = ""
  • Slots: aside-extra, form
  • Events: None

PortalDashboard

Reusable portal dashboard component.

  • Mount: data-component="PortalDashboard"
  • Props: size: string = "default", color: string = "primary", eyebrow: string = "Overview", eyebrowKey: string = "", title: string = "Dashboard", titleKey: string = "", description: string = "", descriptionKey: string = "", userName: string = "", metrics: string = [], actions: string = [], updates: string = [], tasks: string = [], class: string = ""
  • Slots: hero-action
  • Events: action, navigate

PreferenceSwitcher

Reusable preference switcher component.

  • Mount: data-component="PreferenceSwitcher"
  • Props: size: string = "default", color: string = "primary", themeLabel: string = "Theme", colorLabel: string = "Accent color", languageLabel: string = "Language", languages: string = [, colors: string = [, compact: boolean = true, class: string = ""
  • Slots: None
  • Events: theme, color, language

Data

MetricCard

Display one operational metric with value, suffix, description, icon, trend, progress, and optional action.

  • Mount: data-component="MetricCard"
  • Props: label: string = "Metric", value: string = "0", description: string = "", icon: string = "", iconStyle: string = "soft", prefix: string = "", suffix: string = "", badge: string = "", trend: string = "", trendLabel: string = "", trendDirection: string = "neutral", progress: number = -1, progressLabel: string = "", href: string = "", target: string = "", rel: string = "", external: boolean = false, actionLabel: string = "", actionIcon: string = "", showArrow: boolean = true, selectable: boolean = false, disabled: boolean = false, size: string = "default", color: string = "primary", variant: string = "default", hover: string = "lift", align: string = "left", class: string = ""
  • Slots: default, footer
  • Events: select, action

MetricGrid

Arrange operational metrics, KPIs, public statistics, or service indicators in a responsive equal-height grid.

  • Mount: data-component="MetricGrid"
  • Props: items: string = [], columns: number = 4, tabletColumns: number = 2, mobileColumns: number = 1, gap: string = "md", equalHeight: boolean = true, dividers: boolean = false, size: string = "default", color: string = "primary", variant: string = "default", maxWidth: string = "full", minItemWidth: string = "", class: string = ""
  • Slots: default
  • Events: select, action

StatsBar

Present a compact responsive strip of key facts, counts, performance indicators, or trust signals.

  • Mount: data-component="StatsBar"
  • Props: items: string = [], columns: number = 4, compact: boolean = true, dividers: boolean = true, icons: boolean = true, size: string = "default", color: string = "primary", variant: string = "raised", maxWidth: string = "xl", class: string = ""
  • Slots: None
  • Events: None

Forms

Checkbox

Theme-aware, responsive checkbox component.

  • Mount: data-component="Checkbox"
  • Props: size: string = "default", color: string = "primary", id: string = "", name: string = "", label: string = "Checkbox", hiddenLabel: boolean = false, placeholder: string = "", variant: string = "normal", icon: string = "", iconPosition: string = "start", value: string = "on", values: string = [], options: string = [], checked: boolean = false, indeterminate: boolean = false, orientation: string = "vertical", card: boolean = false, rightAligned: boolean = false, list: boolean = false, helperText: string = "", cornerHint: string = "", error: string = "", inline: boolean = false, readonly: boolean = false, disabled: boolean = false, required: boolean = false, class: string = ""
  • Slots: default
  • Events: input, change, focus, blur, invalid

ColorPicker

Theme-aware, responsive color picker component.

  • Mount: data-component="ColorPicker"
  • Props: size: string = "default", color: string = "primary", id: string = "", name: string = "", label: string = "Color", hiddenLabel: boolean = false, placeholder: string = "", value: string = "#2563eb", icon: string = "", iconPosition: string = "start", helperText: string = "", cornerHint: string = "", error: string = "", inline: boolean = false, variant: string = "normal", readonly: boolean = false, disabled: boolean = false, required: boolean = false, class: string = ""
  • Slots: None
  • Events: input, change, focus, blur

FileInput

Theme-aware, responsive file input component.

  • Mount: data-component="FileInput"
  • Props: size: string = "default", color: string = "primary", id: string = "", name: string = "", label: string = "File", hiddenLabel: boolean = false, placeholder: string = "Choose a file", value: string = "", icon: string = "icon-[lucide--upload]", iconPosition: string = "start", accept: string = "", multiple: boolean = false, helperText: string = "", cornerHint: string = "", error: string = "", inline: boolean = false, variant: string = "normal", readonly: boolean = false, disabled: boolean = false, required: boolean = false, class: string = ""
  • Slots: None
  • Events: input, change, focus, blur, select, clear, invalid

Input

Theme-aware, responsive input component.

  • Mount: data-component="Input"
  • Props: size: string = "default", color: string = "primary", id: string = "", name: string = "", label: string = "Input", hiddenLabel: boolean = false, placeholder: string = "", value: string = "", type: string = "text", variant: string = "normal", icon: string = "", iconPosition: string = "start", helperText: string = "", cornerHint: string = "", error: string = "", inline: boolean = false, readonly: boolean = false, disabled: boolean = false, required: boolean = false, autocomplete: string = "", inputmode: string = "", minlength: string = "", maxlength: string = "", pattern: string = "", min: string = "", max: string = "", step: string = "", class: string = ""
  • Slots: None
  • Events: input, change, focus, blur, invalid, keydown, keyup

InputGroup

Theme-aware, responsive input group component.

  • Mount: data-component="InputGroup"
  • Props: size: string = "default", color: string = "primary", id: string = "", name: string = "", label: string = "Input group", hiddenLabel: boolean = false, value: string = "", placeholder: string = "", type: string = "text", startText: string = "", endText: string = "", icon: string = "", iconPosition: string = "start", actionLabel: string = "", helperText: string = "", cornerHint: string = "", error: string = "", inline: boolean = false, variant: string = "normal", readonly: boolean = false, disabled: boolean = false, required: boolean = false, class: string = ""
  • Slots: None
  • Events: input, change, focus, blur, submit, action

Radio

Theme-aware, responsive radio component.

  • Mount: data-component="Radio"
  • Props: size: string = "default", color: string = "primary", id: string = "", name: string = "", label: string = "Radio", hiddenLabel: boolean = false, placeholder: string = "", variant: string = "normal", icon: string = "", iconPosition: string = "start", value: string = "on", options: string = [], checked: boolean = false, orientation: string = "vertical", card: boolean = false, rightAligned: boolean = false, list: boolean = false, helperText: string = "", cornerHint: string = "", error: string = "", inline: boolean = false, readonly: boolean = false, disabled: boolean = false, required: boolean = false, class: string = ""
  • Slots: None
  • Events: input, change, focus, blur, invalid

RangeSlider

Theme-aware, responsive range slider component.

  • Mount: data-component="RangeSlider"
  • Props: size: string = "default", color: string = "primary", id: string = "", name: string = "", label: string = "Range", hiddenLabel: boolean = false, placeholder: string = "", variant: string = "normal", icon: string = "", iconPosition: string = "start", value: number = 50, min: number = 0, max: number = 100, step: number = 1, showValue: boolean = true, showBounds: boolean = true, showSteps: boolean = false, marks: string = [], helperText: string = "", cornerHint: string = "", error: string = "", inline: boolean = false, readonly: boolean = false, disabled: boolean = false, required: boolean = false, class: string = ""
  • Slots: None
  • Events: input, change, focus, blur

Provide an accessible responsive search field with labels, validation states, sizes, and input or change events.

  • Mount: data-component="SearchBox"
  • Props: size: string = "default", color: string = "primary", label: string = "Search Box", name: string = "", value: string = "", placeholder: string = "", type: string = "search", min: string = "", max: string = "", step: string = "", disabled: boolean = false, required: boolean = false, class: string = ""
  • Slots: None
  • Events: None

Select

Theme-aware, responsive select component.

  • Mount: data-component="Select"
  • Props: size: string = "default", color: string = "primary", id: string = "", name: string = "", label: string = "Select", hiddenLabel: boolean = false, value: string = "", values: string = [], options: string = [], placeholder: string = "Select an option", variant: string = "normal", icon: string = "", iconPosition: string = "start", helperText: string = "", cornerHint: string = "", error: string = "", inline: boolean = false, multiple: boolean = false, readonly: boolean = false, disabled: boolean = false, required: boolean = false, class: string = ""
  • Slots: None
  • Events: input, change, focus, blur, open, close, invalid

Switch

Theme-aware, responsive switch component.

  • Mount: data-component="Switch"
  • Props: size: string = "default", color: string = "primary", id: string = "", name: string = "", label: string = "Switch", hiddenLabel: boolean = false, placeholder: string = "", variant: string = "normal", icon: string = "", iconPosition: string = "start", value: string = "on", checked: boolean = false, helperText: string = "", cornerHint: string = "", error: string = "", inline: boolean = false, readonly: boolean = false, disabled: boolean = false, required: boolean = false, class: string = ""
  • Slots: None
  • Events: input, change, focus, blur

Textarea

Theme-aware, responsive textarea component.

  • Mount: data-component="Textarea"
  • Props: size: string = "default", color: string = "primary", id: string = "", name: string = "", label: string = "Textarea", hiddenLabel: boolean = false, placeholder: string = "", value: string = "", variant: string = "normal", icon: string = "", iconPosition: string = "start", helperText: string = "", cornerHint: string = "", error: string = "", inline: boolean = false, rows: number = 5, resize: string = "vertical", readonly: boolean = false, disabled: boolean = false, required: boolean = false, minlength: string = "", maxlength: string = "", class: string = ""
  • Slots: None
  • Events: input, change, focus, blur, invalid

TimePicker

Theme-aware, responsive time picker component.

  • Mount: data-component="TimePicker"
  • Props: size: string = "default", color: string = "primary", id: string = "", name: string = "", label: string = "Time", hiddenLabel: boolean = false, value: string = "", placeholder: string = "", variant: string = "normal", icon: string = "icon-[lucide--clock-3]", iconPosition: string = "end", helperText: string = "", cornerHint: string = "", error: string = "", inline: boolean = false, min: string = "", max: string = "", step: string = "", format: string = "24", minuteStep: number = 5, hours: string = ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23"], minutes: string = ["00", "05", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55"], readonly: boolean = false, disabled: boolean = false, required: boolean = false, class: string = ""
  • Slots: None
  • Events: input, change, focus, blur, open, close, invalid

Integrations

AdvancedDatePicker

Theme-aware, responsive advanced date picker component.

  • Mount: data-component="AdvancedDatePicker"
  • Props: size: string = "default", color: string = "primary", title: string = "Advanced Date Picker", description: string = "", items: string = [], variant: string = "default", class: string = ""
  • Slots: default
  • Events: input, change, open, close, clear

AdvancedRangeSlider

Theme-aware, responsive advanced range slider component.

  • Mount: data-component="AdvancedRangeSlider"
  • Props: size: string = "default", color: string = "primary", title: string = "Advanced Range Slider", description: string = "", items: string = [], variant: string = "default", class: string = ""
  • Slots: default
  • Events: input, change, start, end

Chart

Theme-aware, responsive chart component.

  • Mount: data-component="Chart"
  • Props: size: string = "default", color: string = "primary", title: string = "Chart", description: string = "", items: string = [], variant: string = "default", class: string = ""
  • Slots: default
  • Events: select, dataPointClick, legendToggle

Clipboard

Theme-aware, responsive clipboard component.

  • Mount: data-component="Clipboard"
  • Props: size: string = "default", color: string = "primary", title: string = "Clipboard", description: string = "", items: string = [], variant: string = "default", class: string = ""
  • Slots: default
  • Events: copy, success, error

Confetti

Theme-aware, responsive confetti component.

  • Mount: data-component="Confetti"
  • Props: size: string = "default", color: string = "primary", title: string = "Confetti", description: string = "", items: string = [], variant: string = "default", class: string = ""
  • Slots: default
  • Events: start, complete

DataMap

Theme-aware, responsive data map component.

  • Mount: data-component="DataMap"
  • Props: size: string = "default", color: string = "primary", title: string = "Data Map", description: string = "", items: string = [], variant: string = "default", class: string = ""
  • Slots: default
  • Events: select, change

DataTable

Theme-aware, responsive data table component.

  • Mount: data-component="DataTable"
  • Props: size: string = "default", color: string = "primary", caption: string = "Data Table", columns: string = [], rows: string = [], striped: boolean = true, class: string = ""
  • Slots: default
  • Events: sort, select, change, rowClick, pageChange

DragAndDrop

Theme-aware, responsive drag and drop component.

  • Mount: data-component="DragAndDrop"
  • Props: size: string = "default", color: string = "primary", title: string = "Drag And Drop", description: string = "", items: string = [], variant: string = "default", class: string = ""
  • Slots: default
  • Events: dragStart, dragEnd, dragEnter, dragLeave, drop, change

FileUpload

Theme-aware, responsive file upload component.

  • Mount: data-component="FileUpload"
  • Props: size: string = "default", color: string = "primary", title: string = "File Upload", description: string = "", items: string = [], variant: string = "default", class: string = ""
  • Slots: default
  • Events: select, upload, progress, success, error, cancel, remove

Map

Present responsive location information and markers with map-ready metadata and movement or marker events.

  • Mount: data-component="Map"
  • Props: size: string = "default", color: string = "primary", title: string = "Map", description: string = "", items: string = [], variant: string = "default", class: string = ""
  • Slots: default
  • Events: None

ToastNotifications

Theme-aware, responsive toast notifications component.

  • Mount: data-component="ToastNotifications"
  • Props: size: string = "default", color: string = "primary", title: string = "Toast Notifications", description: string = "", items: string = [], variant: string = "default", class: string = ""
  • Slots: default
  • Events: add, dismiss, clear, action

WysiwygEditor

Theme-aware, responsive wysiwyg editor component.

  • Mount: data-component="WysiwygEditor"
  • Props: size: string = "default", color: string = "primary", title: string = "Wysiwyg Editor", description: string = "", items: string = [], variant: string = "default", class: string = ""
  • Slots: default
  • Events: input, change, focus, blur

Layout

Columns

Create responsive balanced content columns with configurable count, gap, density, and maximum width.

  • Mount: data-component="Columns"
  • Props: size: string = "default", color: string = "primary", columns: number = 2, gap: string = "md", maxWidth: string = "xl", class: string = ""
  • Slots: default
  • Events: None

Container

Constrain and align page content with responsive gutters and compact, wide, or full width options.

  • Mount: data-component="Container"
  • Props: size: string = "default", color: string = "primary", columns: number = 2, gap: string = "md", maxWidth: string = "xl", class: string = ""
  • Slots: default
  • Events: None

CustomScrollbar

Theme-aware, responsive custom scrollbar component.

  • Mount: data-component="CustomScrollbar"
  • Props: size: string = "default", color: string = "primary", columns: number = 2, gap: string = "md", maxWidth: string = "xl", class: string = ""
  • Slots: default
  • Events: scroll

Divider

Separate related horizontal or vertical content with optional labels, sizes, and semantic colors.

  • Mount: data-component="Divider"
  • Props: size: string = "default", color: string = "primary", label: string = "", orientation: string = "horizontal", class: string = ""
  • Slots: None
  • Events: None

FeatureGrid

Arrange feature cards, services, solutions, or benefits in a responsive equal-height grid.

  • Mount: data-component="FeatureGrid"
  • Props: items: string = [], columns: number = 3, tabletColumns: number = 2, mobileColumns: number = 1, gap: string = "md", minItemWidth: string = "", equalHeight: boolean = true, align: string = "stretch", maxWidth: string = "full", variant: string = "default", label: string = "Features", class: string = ""
  • Slots: default
  • Events: None

Render structured responsive footer navigation, pre and post content, copyright content, links, and public events.

  • Mount: data-component="Footer"
  • Props: size: string = "default", color: string = "primary", label: string = "Footer navigation", items: string = [], columns: number = 3, maxWidth: string = "compact", copyright: string = "", class: string = ""
  • Slots: pre-footer, post-footer, copyright-left, copyright-right
  • Events: select, action

Grid

Arrange arbitrary content in a responsive configurable CSS grid with stable columns, gaps, alignment, and width.

  • Mount: data-component="Grid"
  • Props: size: string = "default", color: string = "primary", columns: number = 2, gap: string = "md", maxWidth: string = "xl", class: string = ""
  • Slots: default
  • Events: None

Image

Render a responsive image with explicit dimensions, loading behavior, alternative text, sizing, and rounded treatment.

  • Mount: data-component="Image"
  • Props: size: string = "default", color: string = "primary", src: string = "", alt: string = "", width: string = "", height: string = "", loading: string = "lazy", rounded: boolean = false, class: string = ""
  • Slots: default
  • Events: None

Kbd

Theme-aware, responsive kbd component.

  • Mount: data-component="Kbd"
  • Props: size: string = "default", color: string = "primary", label: string = "⌘ K", class: string = ""
  • Slots: default
  • Events: None

LayoutSplitter

Theme-aware, responsive layout splitter component.

  • Mount: data-component="LayoutSplitter"
  • Props: size: string = "default", color: string = "primary", columns: number = 2, gap: string = "md", maxWidth: string = "xl", class: string = ""
  • Slots: default
  • Events: resizeStart, resize, resizeEnd

Render an accessible internal or external link with target, relation, size, color, and public focus or click events.

  • Mount: data-component="Link"
  • Props: size: string = "default", color: string = "primary", label: string = "Link", href: string = "#", target: string = "", rel: string = "", external: boolean = false, class: string = ""
  • Slots: default
  • Events: None

PublicPageShell

Provide the outer responsive structure, width, background, slots, overflow, and minimum-height behavior for public pages.

  • Mount: data-component="PublicPageShell"
  • Props: maxWidth: string = "full", fullWidth: boolean = true, headerOffset: string = "none", background: string = "default", overflow: string = "clip", minHeight: string = "screen", size: string = "default", color: string = "primary", variant: string = "default", class: string = ""
  • Slots: before, default, after
  • Events: None

Section

Create a responsive themed page section with controlled spacing, width, borders, and surface treatment.

  • Mount: data-component="Section"
  • Props: id: string = "", size: string = "default", color: string = "primary", variant: string = "default", spacing: string = "lg", maxWidth: string = "xl", fullWidth: boolean = false, borderTop: boolean = false, borderBottom: boolean = false, class: string = ""
  • Slots: default
  • Events: None

SectionHeader

Introduce a section with an eyebrow, title, description, alignment, and responsive heading hierarchy.

  • Mount: data-component="SectionHeader"
  • Props: id: string = "", eyebrow: string = "", title: string = "", description: string = "", align: string = "left", size: string = "default", color: string = "primary", headingLevel: number = 2, maxWidth: string = "3xl", class: string = ""
  • Slots: icon, default, actions
  • Events: None

Typography

Apply consistent readable responsive typography, widths, columns, spacing, and editorial hierarchy.

  • Mount: data-component="Typography"
  • Props: size: string = "default", color: string = "primary", columns: number = 2, gap: string = "md", maxWidth: string = "xl", class: string = ""
  • Slots: default
  • Events: None

Marketing

AnnouncementBar

Publish a responsive notice with badge, icon, supporting copy, action, dismiss behavior, and width controls.

  • Mount: data-component="AnnouncementBar"
  • Props: badge: string = "", badgeIcon: string = "", message: string = "Announcement", description: string = "", icon: string = "icon-[lucide--megaphone]", actionLabel: string = "", actionHref: string = "", actionIcon: string = "", dismissible: boolean = false, dismissLabel: string = "Dismiss announcement", sticky: boolean = false, compact: boolean = false, size: string = "default", width: string = "default", color: string = "primary", variant: string = "soft", role: string = "status", live: string = "polite", class: string = ""
  • Slots: None
  • Events: dismiss

CTASection

Close a page or major section with conversion-focused copy, actions, and optional supporting visual content.

  • Mount: data-component="CTASection"
  • Props: eyebrow: string = "", title: string = "Ready to get started?", description: string = "", icon: string = "", align: string = "center", size: string = "default", color: string = "primary", variant: string = "solid", primaryLabel: string = "Get started", primaryHref: string = "#", primaryIcon: string = "", secondaryLabel: string = "", secondaryHref: string = "", secondaryIcon: string = "", backgroundImage: string = "", visualImage: string = "", visualAlt: string = "", visualIcon: string = "", visualTitle: string = "", visualDescription: string = "", visualItems: string = [], visualPosition: string = "right", maxWidth: string = "xl", fullBleed: boolean = false, class: string = ""
  • Slots: default, actions, visual, footer
  • Events: None

FeatureCard

Present one linked feature or service with media, icon, badge, description, and action.

  • Mount: data-component="FeatureCard"
  • Props: icon: string = "", iconStyle: string = "soft", iconSize: string = "default", eyebrow: string = "", title: string = "Feature", description: string = "", image: string = "", imageAlt: string = "", imagePosition: string = "top", imageAspect: string = "wide", imageLoading: string = "lazy", href: string = "", target: string = "", rel: string = "", external: boolean = false, actionLabel: string = "Learn more", actionIcon: string = "", showArrow: boolean = true, stretchedLink: boolean = true, badge: string = "", badgeColor: string = "primary", size: string = "default", color: string = "primary", variant: string = "default", hover: string = "lift", align: string = "left", disabled: boolean = false, class: string = ""
  • Slots: media, icon, default, footer
  • Events: None

FeatureIconCard

Present a compact feature or benefit with a styled icon, title, description, badge, and optional link.

  • Mount: data-component="FeatureIconCard"
  • Props: icon: string = "icon-[lucide--sparkles]", iconSize: string = "md", iconVariant: string = "soft", title: string = "Feature", description: string = "", href: string = "", actionLabel: string = "Explore", badge: string = "", size: string = "default", color: string = "primary", variant: string = "default", align: string = "left", hover: string = "lift", class: string = ""
  • Slots: default, footer
  • Events: None

Hero

Build a full-width responsive hero with constrained content, actions, trust signals, and a structured or custom visual panel.

  • Mount: data-component="Hero"
  • Props: eyebrow: string = "", eyebrowIcon: string = "", icon: string = "", title: string = "Build something remarkable", highlight: string = "", description: string = "", align: string = "left", size: string = "default", color: string = "primary", variant: string = "default", layout: string = "split", visualPosition: string = "right", visualStyle: string = "plain", showDecorations: boolean = true, fullBleed: boolean = true, visualEyebrow: string = "", visualTitle: string = "", visualDescription: string = "", visualIcon: string = "", visualImage: string = "", visualAlt: string = "", visualItems: string = [], primaryLabel: string = "", primaryHref: string = "", primaryIcon: string = "", primaryTarget: string = "", secondaryLabel: string = "", secondaryHref: string = "", secondaryIcon: string = "", secondaryTarget: string = "", tertiaryLabel: string = "", tertiaryHref: string = "", tertiaryIcon: string = "", tertiaryTarget: string = "", badges: string = [], trustItems: string = [], maxWidth: string = "xl", class: string = ""
  • Slots: eyebrow, actions, trust, default, visual, footer
  • Events: None

HeroActions

Group hero and campaign actions with consistent alignment, orientation, sizing, and responsive mobile stacking.

  • Mount: data-component="HeroActions"
  • Props: actions: string = [], align: string = "left", orientation: string = "horizontal", stackOnMobile: boolean = true, fullWidthMobile: boolean = true, size: string = "default", color: string = "primary", class: string = ""
  • Slots: default
  • Events: None

MarketingSectionHeader

Introduce marketing content with an eyebrow, title, description, and optional linked action.

  • Mount: data-component="MarketingSectionHeader"
  • Props: id: string = "", eyebrow: string = "", title: string = "", description: string = "", align: string = "split", size: string = "default", color: string = "primary", actionLabel: string = "", actionHref: string = "", actionIcon: string = "", actionExternal: boolean = false, class: string = ""
  • Slots: icon, actions, default
  • Events: None

PageHeader

Introduce an internal or public page with breadcrumbs, icon, title, description, and primary or secondary actions.

  • Mount: data-component="PageHeader"
  • Props: eyebrow: string = "", title: string = "", description: string = "", icon: string = "", id: string = "page-title", align: string = "left", centered: boolean = false, compact: boolean = false, size: string = "default", maxWidth: string = "xl", showBreadcrumbs: boolean = false, breadcrumbs: string = [], breadcrumbParent: string = "", breadcrumbParentHref: string = "", breadcrumbCurrent: string = "", primaryLabel: string = "", primaryHref: string = "", primaryIcon: string = "", secondaryLabel: string = "", secondaryHref: string = "", secondaryIcon: string = "", color: string = "primary", variant: string = "default", borderBottom: boolean = true, class: string = ""
  • Slots: meta, actions, default
  • Events: None

SplitHero

Build a responsive two-column introduction balancing descriptive content with a visual, image, or structured data panel.

  • Mount: data-component="SplitHero"
  • Props: eyebrow: string = "", eyebrowIcon: string = "icon-[lucide--sparkles]", title: string = "A better digital experience", highlight: string = "", description: string = "", primaryLabel: string = "", primaryHref: string = "", primaryIcon: string = "", secondaryLabel: string = "", secondaryHref: string = "", secondaryIcon: string = "", visualPosition: string = "right", reverse: boolean = false, ratio: string = "balanced", align: string = "left", size: string = "default", color: string = "primary", variant: string = "default", maxWidth: string = "xl", fullBleed: boolean = true, backgroundImage: string = "", visualImage: string = "", visualAlt: string = "", visualIcon: string = "", visualEyebrow: string = "", visualTitle: string = "", visualDescription: string = "", visualItems: string = [], visualStyle: string = "panel", trustItems: string = [], class: string = ""
  • Slots: default, actions, trust, visual
  • Events: None

Render an accessible text action with optional icon, arrow, underline, external state, and semantic styling.

  • Mount: data-component="TextLink"
  • Props: label: string = "Learn more", href: string = "#", target: string = "", rel: string = "", external: boolean = false, icon: string = "", iconPosition: string = "start", showArrow: boolean = true, underline: boolean = false, size: string = "default", color: string = "primary", variant: string = "default", disabled: boolean = false, class: string = ""
  • Slots: None
  • Events: click, focus, blur

Navigation

BackToTop

Provide a responsive floating control that returns long pages to the top and can show scroll progress.

  • Mount: data-component="BackToTop"
  • Props: threshold: number = 500, label: string = "Back to top", ariaLabel: string = "Scroll back to top", icon: string = "icon-[lucide--arrow-up]", position: string = "right", offset: string = "md", behavior: string = "smooth", showProgress: boolean = false, showLabel: boolean = false, alwaysVisible: boolean = false, size: string = "default", color: string = "primary", variant: string = "solid", shape: string = "round", class: string = ""
  • Slots: None
  • Events: None

Breadcrumb

Show responsive hierarchical navigation with home support, separators, current-page state, sizes, and selection events.

  • Mount: data-component="Breadcrumb"
  • Props: label: string = "Breadcrumb", items: string = [], active: string = "", separator: string = "chevron", showHome: boolean = false, homeLabel: string = "Home", homeHref: string = "/", homeIcon: string = "icon-[lucide--house]", size: string = "default", color: string = "primary", variant: string = "minimal", class: string = ""
  • Slots: None
  • Events: select

MegaMenu

Theme-aware, responsive mega menu component.

  • Mount: data-component="MegaMenu"
  • Props: size: string = "default", color: string = "primary", label: string = "Mega Menu", items: string = [], active: string = "", orientation: string = "horizontal", class: string = ""
  • Slots: default
  • Events: open, close, select

Nav

Theme-aware, responsive nav component.

  • Mount: data-component="Nav"
  • Props: size: string = "default", color: string = "primary", label: string = "Nav", items: string = [], active: string = "", orientation: string = "horizontal", class: string = ""
  • Slots: default
  • Events: select, change

Navbar

Theme-aware, responsive navbar component.

  • Mount: data-component="Navbar"
  • Props: size: string = "default", color: string = "primary", label: string = "Primary navigation", topbarLabel: string = "Utility navigation", brand: string = {}, items: string = [], actions: string = [], active: string = "", sticky: boolean = false, openOnHover: boolean = false, maxWidth: string = "full", mobileLabel: string = "Toggle navigation", class: string = ""
  • Slots: topbar, actions
  • Events: toggle, open, close, select, action

Pagination

Theme-aware, responsive pagination component.

  • Mount: data-component="Pagination"
  • Props: size: string = "default", color: string = "primary", label: string = "Pagination", items: string = [], active: string = "", orientation: string = "horizontal", class: string = ""
  • Slots: default
  • Events: change, previous, next

Scrollspy

Theme-aware, responsive scrollspy component.

  • Mount: data-component="Scrollspy"
  • Props: size: string = "default", color: string = "primary", label: string = "Scrollspy", items: string = [], active: string = "", orientation: string = "horizontal", class: string = ""
  • Slots: default
  • Events: change

Sidebar

Theme-aware, responsive sidebar component.

  • Mount: data-component="Sidebar"
  • Props: size: string = "default", color: string = "primary", label: string = "Sidebar", items: string = [], active: string = "", orientation: string = "horizontal", mobileLabel: string = "Open navigation", class: string = ""
  • Slots: default
  • Events: toggle, open, close, select

Stepper

Theme-aware, responsive stepper component.

  • Mount: data-component="Stepper"
  • Props: size: string = "default", color: string = "primary", label: string = "Stepper", items: string = [], active: string = "", orientation: string = "horizontal", class: string = ""
  • Slots: default
  • Events: change, previous, next, complete

Tabs

Switch between related responsive content panels with horizontal or vertical orientation and selection events.

  • Mount: data-component="Tabs"
  • Props: size: string = "default", color: string = "primary", label: string = "Tabs", items: string = [], active: string = "", orientation: string = "horizontal", class: string = ""
  • Slots: default
  • Events: None

Overlays

ContextMenu

Open an accessible keyboard-aware action menu from pointer or keyboard context interactions.

  • Mount: data-component="ContextMenu"
  • Props: items: string = [], open: boolean = false, defaultOpen: boolean = false, trigger: string = "contextmenu", placement: string = "pointer", align: string = "start", size: string = "default", color: string = "primary", variant: string = "raised", title: string = "", description: string = "", label: string = "Context menu", closeOnSelect: boolean = true, closeOnOutside: boolean = true, disabled: boolean = false, minWidth: string = "14rem", maxWidth: string = "20rem", class: string = ""
  • Slots: trigger, header, default, footer
  • Events: open, close, select, action

Drawer

Present responsive modal side or bottom content with focus management, backdrop behavior, slots, and close events.

  • Mount: data-component="Drawer"
  • Props: open: boolean = false, defaultOpen: boolean = false, placement: string = "right", size: string = "md", color: string = "primary", variant: string = "default", title: string = "Drawer", description: string = "", icon: string = "", label: string = "Drawer", closeLabel: string = "Close drawer", showClose: boolean = true, closeOnBackdrop: boolean = true, closeOnEscape: boolean = true, overlay: boolean = true, scrollable: boolean = true, triggerLabel: string = "", triggerIcon: string = "", class: string = ""
  • Slots: trigger, header, default, footer
  • Events: open, close, cancel

Dropdown

Open an accessible anchored menu with keyboard navigation, item selection, actions, and responsive placement.

  • Mount: data-component="Dropdown"
  • Props: items: string = [], open: boolean = false, defaultOpen: boolean = false, label: string = "Open menu", icon: string = "", showChevron: boolean = true, menuLabel: string = "Dropdown menu", placement: string = "bottom-start", width: string = "md", size: string = "default", color: string = "primary", variant: string = "raised", closeOnSelect: boolean = true, closeOnOutside: boolean = true, disabled: boolean = false, emptyLabel: string = "No menu items", class: string = ""
  • Slots: trigger, header, default, footer
  • Events: toggle, open, close, select, action

Modal

Present an accessible modal dialog with focus management, confirmation, cancellation, slots, and responsive sizing.

  • Mount: data-component="Modal"
  • Props: open: boolean = false, defaultOpen: boolean = false, title: string = "Modal", description: string = "", icon: string = "", label: string = "Modal dialog", size: string = "md", placement: string = "center", color: string = "primary", variant: string = "default", showClose: boolean = true, closeLabel: string = "Close modal", closeOnBackdrop: boolean = true, closeOnEscape: boolean = true, closeOnCancel: boolean = true, closeOnConfirm: boolean = false, showFooter: boolean = true, cancelLabel: string = "Cancel", cancelIcon: string = "", confirmLabel: string = "Confirm", confirmIcon: string = "", confirmDisabled: boolean = false, confirmLoading: boolean = false, destructive: boolean = false, triggerLabel: string = "", triggerIcon: string = "", scrollable: boolean = true, class: string = ""
  • Slots: trigger, header, default, footer
  • Events: open, close, cancel, confirm

Popover

Display anchored supporting content with configurable trigger, placement, responsive sizing, and open or close events.

  • Mount: data-component="Popover"
  • Props: open: boolean = false, defaultOpen: boolean = false, triggerLabel: string = "Open popover", triggerIcon: string = "", title: string = "", description: string = "", icon: string = "", placement: string = "bottom-start", width: string = "md", size: string = "default", color: string = "primary", variant: string = "raised", showArrow: boolean = true, showClose: boolean = false, closeLabel: string = "Close popover", closeOnOutside: boolean = true, closeOnEscape: boolean = true, actionLabel: string = "", actionHref: string = "", actionIcon: string = "", closeOnAction: boolean = true, disabled: boolean = false, class: string = ""
  • Slots: trigger, header, default, footer
  • Events: toggle, open, close, action

Tooltip

Show concise accessible contextual help on hover, focus, click, or controlled open state.

  • Mount: data-component="Tooltip"
  • Props: id: string = "", open: boolean = false, defaultOpen: boolean = false, title: string = "", description: string = "", content: string = "Tooltip", trigger: string = "hover", placement: string = "top", size: string = "default", color: string = "primary", variant: string = "dark", maxWidth: string = "18rem", offset: number = 10, showArrow: boolean = true, interactive: boolean = false, disabled: boolean = false, class: string = ""
  • Slots: trigger, default
  • Events: toggle, open, close

Tables

Table

Theme-aware, responsive table component.

  • Mount: data-component="Table"
  • Props: size: string = "default", color: string = "primary", caption: string = "Table", columns: string = [], rows: string = [], striped: boolean = true, class: string = ""
  • Slots: default
  • Events: sort, select, rowClick