@carbon/ibm-products
Version:
Carbon for IBM Products
147 lines (146 loc) • 4.88 kB
TypeScript
/**
* Copyright IBM Corp. 2021, 2025
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
*/
import React, { ReactNode } from 'react';
import { StepsContextType } from '../CreateTearsheet/CreateTearsheet';
export declare const StepsContext: React.Context<StepsContextType | null>;
export declare const StepNumberContext: React.Context<number>;
interface HeaderBreadcrumb {
/** breadcrumb item key */
key: string;
/** breadcrumb item label */
label: string;
/** breadcrumb item link */
href?: string;
/** breadcrumb item title tooltip */
title?: string;
/** Provide if this breadcrumb item represents the current page */
isCurrentPage?: boolean;
}
type MaybePromise<T> = Promise<T> | T;
type CreateFullPageBreadcrumbsProps = {
/** The header breadcrumbs */
breadcrumbs?: null | undefined;
/**
* Label for open/close overflow button used for breadcrumb items that do not fit
*/
breadcrumbsOverflowAriaLabel?: never;
breadcrumbOverflowTooltipAlign?: never;
} | {
/** The header breadcrumbs */
breadcrumbs: HeaderBreadcrumb[];
/**
* Label for open/close overflow button used for breadcrumb items that do not fit
*/
breadcrumbsOverflowAriaLabel: string;
breadcrumbOverflowTooltipAlign?: string;
};
type CreateFullPageBaseProps = {
/**
* The back button text
*/
backButtonText?: string;
/**
* The cancel button text
*/
cancelButtonText: string;
/**
* The main content of the full page
*/
children?: ReactNode;
/**
* Provide an optional class to be applied to the containing node.
*/
className?: string;
/**
* Specifies elements to focus on first on render.
*/
firstFocusElement?: string;
/**
* This can be used to open the component to a step other than the first step.
* For example, a create flow was previously in progress, data was saved, and
* is now being completed.
*/
initialStep?: number;
/** Maximum visible breadcrumb-items before overflow is used (values less than 1 are treated as 1) */
maxVisibleBreadcrumbs?: number;
/**
* The primary 'danger' button text in the modal
*/
modalDangerButtonText: string;
/**
* The description located below the title in the modal
*/
modalDescription?: string;
/**
* The secondary button text in the modal
*/
modalSecondaryButtonText: string;
/**
* The title located in the header of the modal
*/
modalTitle: string;
/**
* The next button text
*/
nextButtonText: string;
/**
* A prop to omit the trailing slash for the breadcrumbs
*/
noTrailingSlash?: boolean;
/**
* onChange event for Progress Indicator in the Influencer
* @param data step index
*/
onClickInfluencerStep?: (data: number) => void;
/**
* An optional handler that is called when the user closes the full page (by
* clicking the secondary button, located in the modal, which triggers after
* clicking the ghost button in the modal
*/
onClose?: () => void;
/**
* Specify a handler for submitting the multi step full page (final step).
* This function can _optionally_ return a promise that is either resolved or rejected and the CreateFullPage will handle the submitting state of the create button.
*
* @returns Object - if you want to prevent the modal from closing, return an object with the property preventClose set to true
*/
onRequestSubmit: () => MaybePromise<{
preventClose?: boolean;
} | void>;
/**
* A secondary title of the full page, displayed in the influencer area
*/
secondaryTitle?: string;
/**
* @ignore
* The aria label to be used for the UI Shell SideNav Carbon component
*/
sideNavAriaLabel?: string;
/**
* The submit button text
*/
submitButtonText: string;
/**
* The main title of the full page, displayed in the header area
*/
title?: string;
};
export type CreateFullPageProps = CreateFullPageBaseProps & CreateFullPageBreadcrumbsProps;
/**
* Use with creations that must be completed in order for a service to be usable.
*
* ### Grid
*
* The `CreateFullPage` component utilizes Carbons' grid system in the inner
content of the main section inside of the component. You can read more guidance
on the Carbon's grid system
[here](https://www.carbondesignsystem.com/guidelines/2x-grid/overview). You can
include `<Row>` and `<Column>` components inside of each `CreateFullPageStep`
component to get the desired affect.
*/
export declare let CreateFullPage: React.ForwardRefExoticComponent<CreateFullPageProps & React.RefAttributes<HTMLDivElement>>;
export {};