@octopusdeploy/design-system-components
Version:
The design systems component library.
38 lines (37 loc) • 1.83 kB
TypeScript
import type React from "react";
import type { ReactElement } from "react";
import type { ButtonBasicProps, ButtonLinkProps } from "../Button";
import type { ErrorInfo } from "../ErrorSummary";
import type { ProgressTrackerProps } from "../ProgressTracker";
import type { DialogWidth } from "./dialogBreakpoints.styles";
import type { MultiStepDialogOptions, MultiStepNeverProps, SingleStepNeverProps } from "./dialogTypes";
type UpsellDialogLimitedButtonProps = Pick<ButtonBasicProps, "label" | "onClick" | "disabled"> | Pick<ButtonLinkProps, "label" | "onClick" | "href" | "external">;
interface UpsellDialogBaseProps {
title: string;
open: boolean;
onClose: () => void;
onClosed?: () => void;
sidePanel: ReactElement;
errors?: ErrorInfo[];
width?: DialogWidth;
isLoading?: boolean;
}
interface SingleStepUpsellDialogProps extends UpsellDialogBaseProps, MultiStepNeverProps {
primaryAction: UpsellDialogLimitedButtonProps;
secondaryAction?: UpsellDialogLimitedButtonProps;
children: React.ReactNode;
progressTracker?: ReactElement<ProgressTrackerProps>;
}
interface MultiStepUpsellDialogProps extends UpsellDialogBaseProps, MultiStepDialogOptions, SingleStepNeverProps {
}
export type UpsellDialogProps = SingleStepUpsellDialogProps | MultiStepUpsellDialogProps;
/**
* UpsellDialog – an upsell-styled dialog with a main content panel and side panel.
*
* The side panel is always visible on desktop (stacks on mobile). The primary action button
* uses "loud" importance. For multi-step flows, pass the `steps` prop.
*
* @remarks Do not implement directly in Octopus Server code. Use Workflows instead. See https://docs.octopushq.com/docs/frontend/workflows
*/
export declare function UpsellDialog(props: UpsellDialogProps): import("react/jsx-runtime").JSX.Element;
export {};