alouette
Version:
A modern, customizable design system built on top of NativeWind v5 with configurable defaults
40 lines • 1.85 kB
TypeScript
import type { ReactElement, ReactNode } from "react";
export interface DecisionBarProps {
/**
* The action the bar exists for, always rightmost: an `ActionButton` when it
* runs a promise, a `FormSubmitButton` in a `Form`, a plain `Button` for a
* synchronous one ("Close", "OK").
*/
primary: ReactElement;
/**
* Another way to end the decision, committing differently from `primary`
* ("Save draft" beside "Publish"). Rendered between the dismiss action and
* `primary`. One element: several alternatives belong in a `SplitButton` or
* a `Menu`.
*/
alternative?: ReactElement;
/**
* Ends the decision without committing — Cancel, Discard, Not now. The bar
* renders it, leftmost of the row, so a dismissal always looks the same.
*/
onDismiss?: () => void;
/** Label of the dismiss action. Defaults to "Cancel". */
dismissText?: ReactNode;
/** Disables the dismiss action, e.g. while the primary one is pending. */
dismissDisabled?: boolean;
/**
* Which action carries the button material. "primary" (default) renders
* the dismiss action as a neutral `soft` text button. "dismiss" renders it
* neutral `filled`, for an irreversible decision where backing out is the
* expected answer — pass a `soft` `primary` with it.
*/
emphasis?: "dismiss" | "primary";
className?: string;
}
/**
* The row of actions ending a decision — a dialog's footer, an inline form's
* Cancel and Save. It owns their order and alignment, so every decision reads
* the same: right-aligned, dismiss, alternative, then primary.
*/
export declare function DecisionBar({ primary, alternative, onDismiss, dismissText, dismissDisabled, emphasis, className, }: DecisionBarProps): ReactNode;
//# sourceMappingURL=DecisionBar.d.ts.map