@gfazioli/mantine-onboarding-tour
Version:
A Mantine 9 onboarding tour component with focus-reveal overlays, cutout highlights, step-by-step popover navigation, and compound components for guided user experiences.
45 lines (44 loc) • 2.41 kB
TypeScript
import { BoxProps, Factory, StylesApiProps } from '@mantine/core';
import React from 'react';
import { OnboardingTourController, type OnboardingTourOptions, type OnboardingTourStep } from './hooks/use-onboarding-tour/use-onboarding-tour';
import { OnboardingTourFocusReveal, OnboardingTourFocusRevealProps } from './OnboardingTourFocusReveal/OnboardingTourFocusReveal';
import { OnboardingTourPopoverContent, type OnboardingTourPopoverContentBaseProps } from './OnboardingTourPopoverContent';
import { OnboardingTourPopoverContentStylesNames } from './OnboardingTourPopoverContent/OnboardingTourPopoverContent';
import { OnboardingTourTarget } from './OnboardingTourTarget/OnboardingTourTarget';
export type OnboardingTourStylesNames = OnboardingTourPopoverContentStylesNames;
export interface OnboardingTourBaseProps extends OnboardingTourOptions, Omit<OnboardingTourPopoverContentBaseProps, 'tourController'> {
tour: OnboardingTourStep[];
/** Controlled started state */
started: boolean;
/** Props passed to FocusReveal */
focusRevealProps?: OnboardingTourFocusRevealProps | ((tourController: OnboardingTourController) => OnboardingTourFocusRevealProps);
/** Padding around the cutout highlight area in pixels. Default: `8` */
cutoutPadding?: number;
/** Border radius of the cutout highlight area in pixels. Use a large value (e.g. `9999`) for circular elements. Default: `8` */
cutoutRadius?: number;
/** Child elements */
children: React.ReactNode;
}
export interface OnboardingTourProps extends BoxProps, OnboardingTourBaseProps, StylesApiProps<OnboardingTourFactory> {
}
export type OnboardingTourFactory = Factory<{
props: OnboardingTourProps;
ref: HTMLDivElement;
stylesNames: OnboardingTourStylesNames;
staticComponents: {
FocusReveal: typeof OnboardingTourFocusReveal;
PopoverContent: typeof OnboardingTourPopoverContent;
Target: typeof OnboardingTourTarget;
};
}>;
export declare const defaultProps: Partial<OnboardingTourProps>;
export declare const OnboardingTour: import("@mantine/core").MantineComponent<{
props: OnboardingTourProps;
ref: HTMLDivElement;
stylesNames: OnboardingTourStylesNames;
staticComponents: {
FocusReveal: typeof OnboardingTourFocusReveal;
PopoverContent: typeof OnboardingTourPopoverContent;
Target: typeof OnboardingTourTarget;
};
}>;