v-tutorial 0.0.0-stage → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +351 -2
- package/README.pt-BR.md +352 -0
- package/dist/TutorialProvider.vue.d.ts +224 -0
- package/dist/TutorialStep.vue.d.ts +66 -0
- package/dist/domResolver.d.ts +12 -0
- package/dist/index.d.ts +25 -0
- package/dist/keys.d.ts +3 -0
- package/dist/positioning.d.ts +23 -0
- package/dist/responsive.d.ts +5 -0
- package/dist/style.css +1 -0
- package/dist/types.d.ts +152 -0
- package/dist/useTutorial.d.ts +180 -0
- package/dist/v-tutorial.js +1214 -0
- package/dist/v-tutorial.umd.cjs +1 -0
- package/package.json +89 -4
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { App } from 'vue';
|
|
2
|
+
import { TutorialOptions } from './types';
|
|
3
|
+
import { useTutorial, vTutorial } from './useTutorial';
|
|
4
|
+
import { default as TutorialProvider } from './TutorialProvider.vue';
|
|
5
|
+
import { default as TutorialStepComponent } from './TutorialStep.vue';
|
|
6
|
+
export * from './types';
|
|
7
|
+
export * from './keys';
|
|
8
|
+
export * from './responsive';
|
|
9
|
+
export * from './domResolver';
|
|
10
|
+
export * from './positioning';
|
|
11
|
+
export { useTutorial, vTutorial };
|
|
12
|
+
export { TutorialProvider, TutorialStepComponent as VTutorialStep, TutorialStepComponent, };
|
|
13
|
+
export declare const TutorialPlugin: {
|
|
14
|
+
install(app: App, options?: Partial<TutorialOptions>): void;
|
|
15
|
+
};
|
|
16
|
+
export default TutorialPlugin;
|
|
17
|
+
declare module 'vue' {
|
|
18
|
+
interface GlobalComponents {
|
|
19
|
+
TutorialProvider: typeof TutorialProvider;
|
|
20
|
+
VTutorialStep: typeof TutorialStepComponent;
|
|
21
|
+
}
|
|
22
|
+
interface GlobalDirectives {
|
|
23
|
+
vTutorial: typeof vTutorial;
|
|
24
|
+
}
|
|
25
|
+
}
|
package/dist/keys.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { TutorialPlacement } from './types';
|
|
2
|
+
export interface ParametrosPosicionamentoCard {
|
|
3
|
+
hasTargetBox: boolean;
|
|
4
|
+
spotlightBox: {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
};
|
|
10
|
+
viewportW: number;
|
|
11
|
+
viewportH: number;
|
|
12
|
+
maxCardW: number;
|
|
13
|
+
cardHeight: number;
|
|
14
|
+
requestedPlacement: TutorialPlacement;
|
|
15
|
+
isMobileViewport: boolean;
|
|
16
|
+
useMobileSheet: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface ResultadoPosicionamentoCard {
|
|
19
|
+
resolvedPlacement: TutorialPlacement;
|
|
20
|
+
cardStyle: Record<string, string>;
|
|
21
|
+
arrowStyle: Record<string, string> | null;
|
|
22
|
+
}
|
|
23
|
+
export declare function calcularPosicaoCard(params: ParametrosPosicionamentoCard): ResultadoPosicionamentoCard;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TutorialBreakpointName, TutorialBreakpointsConfig, TutorialStep } from './types';
|
|
2
|
+
export declare const BOOTSTRAP_BREAKPOINT_ORDER: TutorialBreakpointName[];
|
|
3
|
+
export declare const DEFAULT_BOOTSTRAP_BREAKPOINTS: TutorialBreakpointsConfig;
|
|
4
|
+
export declare function calcularBreakpointAtivo(larguraTela: number, config: TutorialBreakpointsConfig): TutorialBreakpointName;
|
|
5
|
+
export declare function resolverPassoResponsivo(rawStep: TutorialStep, currentBp: TutorialBreakpointName): TutorialStep;
|
package/dist/style.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.v-tutorial-root{--v-tutorial-primary: var(--tblr-primary, #206bc4);--v-tutorial-bg: var(--tblr-bg-surface, #ffffff);--v-tutorial-bg-secondary: var(--tblr-bg-surface-secondary, #f8fafc);--v-tutorial-text: var(--tblr-body-color, #1e293b);--v-tutorial-muted: var(--tblr-secondary, #64748b);--v-tutorial-border: var(--tblr-border-color-translucent, rgba(15, 23, 42, .12));--v-tutorial-danger: var(--tblr-danger, #d63939);--v-tutorial-backdrop: rgba(10, 14, 23, .68);--v-tutorial-radius: 16px;--v-tutorial-z-index: 10040;position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--v-tutorial-z-index);pointer-events:none;font-family:inherit}[data-bs-theme=dark] .v-tutorial-root,.dark .v-tutorial-root{--v-tutorial-bg: var(--tblr-bg-surface, #1e293b);--v-tutorial-bg-secondary: var(--tblr-bg-surface-secondary, #0f172a);--v-tutorial-text: var(--tblr-body-color, #f8fafc);--v-tutorial-muted: var(--tblr-secondary, #94a3b8);--v-tutorial-border: var(--tblr-border-color-translucent, rgba(255, 255, 255, .12))}.sistec-full-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;background:var(--v-tutorial-backdrop);pointer-events:auto;z-index:calc(var(--v-tutorial-z-index) + 1)}.sistec-click-shield{position:fixed;z-index:calc(var(--v-tutorial-z-index) + 1);pointer-events:auto;background:transparent}.v-tutorial-spotlight-ring{position:fixed;border-radius:12px;border:3px solid var(--v-tutorial-primary);box-shadow:0 0 0 9999px var(--v-tutorial-backdrop),0 0 0 4px color-mix(in srgb,var(--v-tutorial-primary),transparent 70%),0 0 28px color-mix(in srgb,var(--v-tutorial-primary),transparent 35%);pointer-events:none!important;transition:top .2s cubic-bezier(.16,1,.3,1),left .2s cubic-bezier(.16,1,.3,1),width .2s cubic-bezier(.16,1,.3,1),height .2s cubic-bezier(.16,1,.3,1);z-index:calc(var(--v-tutorial-z-index) + 2)}.v-tutorial-spotlight-ring.is-wait-click{animation:spotlightPulse 1.5s infinite ease-in-out}@keyframes spotlightPulse{0%,to{box-shadow:0 0 0 9999px var(--v-tutorial-backdrop),0 0 0 4px color-mix(in srgb,var(--v-tutorial-primary),transparent 65%),0 0 25px color-mix(in srgb,var(--v-tutorial-primary),transparent 35%)}50%{box-shadow:0 0 0 9999px var(--v-tutorial-backdrop),0 0 0 9px color-mix(in srgb,var(--v-tutorial-primary),transparent 85%),0 0 35px color-mix(in srgb,var(--v-tutorial-primary),transparent 15%)}}.v-tutorial-card{position:fixed;max-width:calc(100vw - 24px);background:var(--v-tutorial-bg);color:var(--v-tutorial-text);border:1px solid color-mix(in srgb,var(--v-tutorial-primary),var(--v-tutorial-border) 55%);border-radius:var(--v-tutorial-radius);box-shadow:0 22px 50px #0000006b;pointer-events:auto;z-index:calc(var(--v-tutorial-z-index) + 15);overflow:visible;transition:top .22s cubic-bezier(.16,1,.3,1),left .22s cubic-bezier(.16,1,.3,1),bottom .22s cubic-bezier(.16,1,.3,1)}.v-tutorial-arrow{position:absolute;width:12px;height:12px;background:var(--v-tutorial-bg);border-color:color-mix(in srgb,var(--v-tutorial-primary),var(--v-tutorial-border) 55%);border-style:solid;border-width:0;pointer-events:none;z-index:-1}.v-tutorial-arrow.arrow-right{left:-6px;transform:translateY(-50%) rotate(45deg);border-left-width:1px;border-bottom-width:1px}.v-tutorial-arrow.arrow-left{right:-6px;transform:translateY(-50%) rotate(45deg);border-right-width:1px;border-top-width:1px}.v-tutorial-arrow.arrow-bottom{top:-6px;transform:translate(-50%) rotate(45deg);border-left-width:1px;border-top-width:1px}.v-tutorial-arrow.arrow-top{bottom:-6px;transform:translate(-50%) rotate(45deg);border-right-width:1px;border-bottom-width:1px}.v-tutorial-card-header{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1.1rem;background:color-mix(in srgb,var(--v-tutorial-primary),transparent 90%);border-bottom:1px solid var(--v-tutorial-border);border-radius:calc(var(--v-tutorial-radius) - 1px) calc(var(--v-tutorial-radius) - 1px) 0 0}.v-tutorial-step-badge{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--v-tutorial-primary);background:color-mix(in srgb,var(--v-tutorial-primary),transparent 84%);padding:.2rem .65rem;border-radius:999px}.v-tutorial-mode-tag{font-size:.72rem;font-weight:600;color:var(--v-tutorial-muted)}.v-tutorial-card-body{padding:1rem 1.1rem}.v-tutorial-title{margin:0 0 .4rem;font-size:1.02rem;font-weight:700;color:var(--v-tutorial-text)}.v-tutorial-content{font-size:.88rem;line-height:1.48;color:var(--v-tutorial-muted)}.v-tutorial-click-banner{display:flex;align-items:center;gap:.5rem;padding:.5rem 1.1rem;font-size:.8rem;font-weight:700;color:var(--v-tutorial-primary);background:color-mix(in srgb,var(--v-tutorial-primary),transparent 90%);border-top:1px dashed color-mix(in srgb,var(--v-tutorial-primary),transparent 65%)}.pulse-click-icon{flex-shrink:0;animation:iconBounce 1.1s infinite ease-in-out}@keyframes iconBounce{0%,to{transform:scale(1)}50%{transform:scale(1.25)}}.v-tutorial-progress{height:4px;width:100%;background:var(--v-tutorial-border)}.v-tutorial-progress-bar{height:100%;background:var(--v-tutorial-primary);transition:width .3s ease}.v-tutorial-card-footer{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1.1rem;background:color-mix(in srgb,var(--v-tutorial-bg-secondary),transparent 35%);border-top:1px solid var(--v-tutorial-border);border-radius:0 0 calc(var(--v-tutorial-radius) - 1px) calc(var(--v-tutorial-radius) - 1px)}.v-tutorial-card-footer button{margin:0!important}.v-tutorial-nav-group{display:flex;align-items:center;gap:.45rem}.v-tutorial-btn-skip,.v-tutorial-btn-prev,.v-tutorial-btn-next{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;font-size:.8rem;font-weight:600;border-radius:8px;padding:.35rem .7rem;cursor:pointer;transition:all .15s ease}.v-tutorial-btn-skip{background:transparent;color:var(--v-tutorial-danger);border:1px solid color-mix(in srgb,var(--v-tutorial-danger),transparent 50%)}.v-tutorial-btn-skip:hover{background:var(--v-tutorial-danger);color:#fff}.v-tutorial-btn-prev{background:transparent;color:var(--v-tutorial-muted);border:1px solid transparent}.v-tutorial-btn-prev:hover{background:color-mix(in srgb,var(--v-tutorial-muted),transparent 88%);color:var(--v-tutorial-text)}.v-tutorial-btn-next{background:var(--v-tutorial-primary);color:#fff;border:1px solid var(--v-tutorial-primary);padding:.35rem .9rem;font-weight:700}.v-tutorial-btn-next:hover{filter:brightness(1.08)}.sistec-wait-pill{font-size:.76rem;font-weight:700;color:var(--v-tutorial-primary);background:color-mix(in srgb,var(--v-tutorial-primary),transparent 88%);border:1px solid color-mix(in srgb,var(--v-tutorial-primary),transparent 65%);padding:.28rem .7rem;border-radius:8px}.tutorial-fade-enter-active,.tutorial-fade-leave-active{transition:opacity .2s ease}.tutorial-fade-enter-from,.tutorial-fade-leave-to{opacity:0}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { Component, ComputedRef } from 'vue';
|
|
2
|
+
export type TutorialStepMode = 'wait-click' | 'optional-click' | 'info';
|
|
3
|
+
export type TutorialDirection = 'start' | 'forward' | 'backward';
|
|
4
|
+
export type TutorialPlacement = 'auto' | 'top' | 'bottom' | 'left' | 'right' | 'center' | 'bottom-sheet' | 'top-sheet';
|
|
5
|
+
export type TutorialBreakpointName = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
|
|
6
|
+
export type TutorialBreakpointsConfig = Record<TutorialBreakpointName, number>;
|
|
7
|
+
export type TutorialActionMap = Record<string, any> | string[];
|
|
8
|
+
export interface TutorialStepResponsiveOverride {
|
|
9
|
+
/** Se true neste breakpoint, o passo é ignorado/pulado automaticamente neste tamanho de tela */
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
target?: string | string[];
|
|
12
|
+
title?: string;
|
|
13
|
+
content?: string;
|
|
14
|
+
mode?: TutorialStepMode;
|
|
15
|
+
placement?: TutorialPlacement;
|
|
16
|
+
hintText?: string;
|
|
17
|
+
spotlightPadding?: number;
|
|
18
|
+
cardWidth?: number;
|
|
19
|
+
autoScroll?: boolean;
|
|
20
|
+
route?: string;
|
|
21
|
+
rollbackRoute?: string;
|
|
22
|
+
enterActions?: TutorialActionMap;
|
|
23
|
+
rollbackActions?: TutorialActionMap;
|
|
24
|
+
leaveActions?: TutorialActionMap;
|
|
25
|
+
}
|
|
26
|
+
export interface TutorialLabels {
|
|
27
|
+
skipTutorial?: string;
|
|
28
|
+
previous?: string;
|
|
29
|
+
next?: string;
|
|
30
|
+
finish?: string;
|
|
31
|
+
waitingClick?: string;
|
|
32
|
+
interactiveBadge?: string;
|
|
33
|
+
defaultHint?: string;
|
|
34
|
+
stepCounter?: (current: number, total: number) => string;
|
|
35
|
+
}
|
|
36
|
+
export interface TutorialClasses {
|
|
37
|
+
root?: string;
|
|
38
|
+
backdrop?: string;
|
|
39
|
+
shield?: string;
|
|
40
|
+
spotlight?: string;
|
|
41
|
+
card?: string;
|
|
42
|
+
arrow?: string;
|
|
43
|
+
header?: string;
|
|
44
|
+
badge?: string;
|
|
45
|
+
modeTag?: string;
|
|
46
|
+
body?: string;
|
|
47
|
+
title?: string;
|
|
48
|
+
content?: string;
|
|
49
|
+
hintBanner?: string;
|
|
50
|
+
progressContainer?: string;
|
|
51
|
+
progressBar?: string;
|
|
52
|
+
footer?: string;
|
|
53
|
+
skipButton?: string;
|
|
54
|
+
prevButton?: string;
|
|
55
|
+
nextButton?: string;
|
|
56
|
+
waitPill?: string;
|
|
57
|
+
}
|
|
58
|
+
export interface TutorialOptions {
|
|
59
|
+
storageKey?: string;
|
|
60
|
+
autoScroll?: boolean;
|
|
61
|
+
scrollBehavior?: ScrollBehavior;
|
|
62
|
+
spotlightPadding?: number;
|
|
63
|
+
cardWidth?: number;
|
|
64
|
+
showArrow?: boolean;
|
|
65
|
+
unstyled?: boolean;
|
|
66
|
+
/** Limiares em pixels para os breakpoints Mobile-First (padrão Bootstrap 5) */
|
|
67
|
+
breakpoints?: Partial<TutorialBreakpointsConfig>;
|
|
68
|
+
/** Se true, em telas xs/sm o placement="auto" ancora o card no topo ou rodapé para não cobrir o alvo */
|
|
69
|
+
mobileSheetOnAuto?: boolean;
|
|
70
|
+
labels?: TutorialLabels;
|
|
71
|
+
classes?: TutorialClasses;
|
|
72
|
+
router?: {
|
|
73
|
+
currentRoute: {
|
|
74
|
+
value: {
|
|
75
|
+
path: string;
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
push: (to: string) => Promise<any> | any;
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
export interface TutorialContext {
|
|
82
|
+
currentStepIndex: number;
|
|
83
|
+
currentStep: TutorialStep | null;
|
|
84
|
+
totalSteps: number;
|
|
85
|
+
progress: number;
|
|
86
|
+
isFirstStep: boolean;
|
|
87
|
+
isLastStep: boolean;
|
|
88
|
+
direction: TutorialDirection;
|
|
89
|
+
activeBreakpoint: TutorialBreakpointName;
|
|
90
|
+
viewportWidth: number;
|
|
91
|
+
isMobileViewport: boolean;
|
|
92
|
+
nextStep: () => Promise<void>;
|
|
93
|
+
prevStep: () => Promise<void>;
|
|
94
|
+
goToStep: (indexOrId: number | string, direction?: TutorialDirection) => Promise<void>;
|
|
95
|
+
endTutorial: (markAsCompleted?: boolean) => void;
|
|
96
|
+
restartTutorial: () => Promise<void>;
|
|
97
|
+
runRegisteredAction: (actionName: string, ...args: any[]) => Promise<any>;
|
|
98
|
+
runActionMap: (actions?: TutorialActionMap) => Promise<void>;
|
|
99
|
+
}
|
|
100
|
+
export interface TutorialTargetConfig {
|
|
101
|
+
id: string;
|
|
102
|
+
preventNativeClick?: boolean;
|
|
103
|
+
onTutorialClick?: (event: MouseEvent, ctx: TutorialContext) => void | Promise<void>;
|
|
104
|
+
}
|
|
105
|
+
export interface TutorialStep {
|
|
106
|
+
id: string;
|
|
107
|
+
/** Alvo base (xs >= 0px): ID registrado no v-tutorial, seletor CSS ou array de seletores */
|
|
108
|
+
target?: string | string[];
|
|
109
|
+
title: string;
|
|
110
|
+
content?: string;
|
|
111
|
+
component?: Component;
|
|
112
|
+
componentProps?: Record<string, any>;
|
|
113
|
+
mode: TutorialStepMode;
|
|
114
|
+
placement?: TutorialPlacement;
|
|
115
|
+
hintText?: string;
|
|
116
|
+
preventNativeClick?: boolean;
|
|
117
|
+
afterClickDelay?: number;
|
|
118
|
+
autoScroll?: boolean;
|
|
119
|
+
spotlightPadding?: number;
|
|
120
|
+
cardWidth?: number;
|
|
121
|
+
disabled?: boolean;
|
|
122
|
+
route?: string;
|
|
123
|
+
rollbackRoute?: string;
|
|
124
|
+
enterActions?: TutorialActionMap;
|
|
125
|
+
rollbackActions?: TutorialActionMap;
|
|
126
|
+
leaveActions?: TutorialActionMap;
|
|
127
|
+
/** Objeto de sobrescrita Mobile-First por breakpoint (xs -> sm -> md -> lg -> xl -> xxl) */
|
|
128
|
+
breakpoints?: Partial<Record<TutorialBreakpointName, TutorialStepResponsiveOverride>>;
|
|
129
|
+
/** Atalhos diretos Mobile-First de target por breakpoint */
|
|
130
|
+
targetSm?: string | string[];
|
|
131
|
+
targetMd?: string | string[];
|
|
132
|
+
targetLg?: string | string[];
|
|
133
|
+
targetXl?: string | string[];
|
|
134
|
+
targetXxl?: string | string[];
|
|
135
|
+
/** Atalhos diretos Mobile-First de placement por breakpoint */
|
|
136
|
+
placementSm?: TutorialPlacement;
|
|
137
|
+
placementMd?: TutorialPlacement;
|
|
138
|
+
placementLg?: TutorialPlacement;
|
|
139
|
+
placementXl?: TutorialPlacement;
|
|
140
|
+
placementXxl?: TutorialPlacement;
|
|
141
|
+
beforeEnter?: (ctx: TutorialContext) => void | Promise<void>;
|
|
142
|
+
onRollback?: (ctx: TutorialContext) => void | Promise<void>;
|
|
143
|
+
onTargetClick?: (event: MouseEvent, ctx: TutorialContext) => void | Promise<void>;
|
|
144
|
+
afterClick?: (ctx: TutorialContext) => void | Promise<void>;
|
|
145
|
+
afterLeave?: (ctx: TutorialContext) => void | Promise<void>;
|
|
146
|
+
}
|
|
147
|
+
export interface TutorialProviderInjection {
|
|
148
|
+
registerDeclarativeStep: (step: TutorialStep) => void;
|
|
149
|
+
updateDeclarativeStep: (step: TutorialStep) => void;
|
|
150
|
+
unregisterDeclarativeStep: (id: string) => void;
|
|
151
|
+
activeStepId: ComputedRef<string | null>;
|
|
152
|
+
}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { Directive, Ref } from 'vue';
|
|
2
|
+
import { TutorialStep, TutorialTargetConfig, TutorialContext, TutorialDirection, TutorialOptions, TutorialActionMap, TutorialBreakpointName, TutorialBreakpointsConfig } from './types';
|
|
3
|
+
import { resolveStepElement, resolveStepElements, getStepBoundingRect } from './domResolver';
|
|
4
|
+
declare function runRegisteredAction(name: string, ...args: any[]): Promise<any>;
|
|
5
|
+
declare function runActionMap(actions?: TutorialActionMap): Promise<void>;
|
|
6
|
+
declare function getContext(direction?: TutorialDirection): TutorialContext;
|
|
7
|
+
declare function goToStep(indexOrId: number | string, direction?: TutorialDirection): Promise<void>;
|
|
8
|
+
declare function nextStep(): Promise<void>;
|
|
9
|
+
declare function prevStep(): Promise<void>;
|
|
10
|
+
declare function registerSteps(customSteps: TutorialStep[]): void;
|
|
11
|
+
declare function registerDeclarativeStep(step: TutorialStep): void;
|
|
12
|
+
declare function updateDeclarativeStep(step: TutorialStep): void;
|
|
13
|
+
declare function unregisterDeclarativeStep(id: string): void;
|
|
14
|
+
declare function configureTutorial(options: Partial<TutorialOptions>): void;
|
|
15
|
+
declare function startTutorial(customSteps?: TutorialStep[], force?: boolean): Promise<void>;
|
|
16
|
+
declare function restartTutorial(): Promise<void>;
|
|
17
|
+
declare function completeTutorial(): void;
|
|
18
|
+
declare function endTutorial(markAsCompleted?: boolean): void;
|
|
19
|
+
export declare function useTutorial(options?: Partial<TutorialOptions>): {
|
|
20
|
+
isActive: Ref<boolean, boolean>;
|
|
21
|
+
steps: import('vue').ComputedRef<TutorialStep[]>;
|
|
22
|
+
currentStepIndex: Ref<number, number>;
|
|
23
|
+
currentStep: import('vue').ComputedRef<TutorialStep | null>;
|
|
24
|
+
totalSteps: import('vue').ComputedRef<number>;
|
|
25
|
+
progress: import('vue').ComputedRef<number>;
|
|
26
|
+
isFirstStep: import('vue').ComputedRef<boolean>;
|
|
27
|
+
isLastStep: import('vue').ComputedRef<boolean>;
|
|
28
|
+
isTransitioning: Ref<boolean, boolean>;
|
|
29
|
+
lastDirection: Ref<TutorialDirection, TutorialDirection>;
|
|
30
|
+
activeBreakpoint: import('vue').ComputedRef<TutorialBreakpointName>;
|
|
31
|
+
viewportWidth: Ref<number, number>;
|
|
32
|
+
isMobileViewport: import('vue').ComputedRef<boolean>;
|
|
33
|
+
mergedBreakpoints: import('vue').ComputedRef<TutorialBreakpointsConfig>;
|
|
34
|
+
storageKey: import('vue').ComputedRef<string>;
|
|
35
|
+
globalOptions: Ref<{
|
|
36
|
+
storageKey?: string | undefined;
|
|
37
|
+
autoScroll?: boolean | undefined;
|
|
38
|
+
scrollBehavior?: ScrollBehavior | undefined;
|
|
39
|
+
spotlightPadding?: number | undefined;
|
|
40
|
+
cardWidth?: number | undefined;
|
|
41
|
+
showArrow?: boolean | undefined;
|
|
42
|
+
unstyled?: boolean | undefined;
|
|
43
|
+
breakpoints?: {
|
|
44
|
+
xs?: number | undefined;
|
|
45
|
+
sm?: number | undefined;
|
|
46
|
+
md?: number | undefined;
|
|
47
|
+
lg?: number | undefined;
|
|
48
|
+
xl?: number | undefined;
|
|
49
|
+
xxl?: number | undefined;
|
|
50
|
+
} | undefined;
|
|
51
|
+
mobileSheetOnAuto?: boolean | undefined;
|
|
52
|
+
labels?: {
|
|
53
|
+
skipTutorial?: string | undefined;
|
|
54
|
+
previous?: string | undefined;
|
|
55
|
+
next?: string | undefined;
|
|
56
|
+
finish?: string | undefined;
|
|
57
|
+
waitingClick?: string | undefined;
|
|
58
|
+
interactiveBadge?: string | undefined;
|
|
59
|
+
defaultHint?: string | undefined;
|
|
60
|
+
stepCounter?: ((current: number, total: number) => string) | undefined;
|
|
61
|
+
} | undefined;
|
|
62
|
+
classes?: {
|
|
63
|
+
root?: string | undefined;
|
|
64
|
+
backdrop?: string | undefined;
|
|
65
|
+
shield?: string | undefined;
|
|
66
|
+
spotlight?: string | undefined;
|
|
67
|
+
card?: string | undefined;
|
|
68
|
+
arrow?: string | undefined;
|
|
69
|
+
header?: string | undefined;
|
|
70
|
+
badge?: string | undefined;
|
|
71
|
+
modeTag?: string | undefined;
|
|
72
|
+
body?: string | undefined;
|
|
73
|
+
title?: string | undefined;
|
|
74
|
+
content?: string | undefined;
|
|
75
|
+
hintBanner?: string | undefined;
|
|
76
|
+
progressContainer?: string | undefined;
|
|
77
|
+
progressBar?: string | undefined;
|
|
78
|
+
footer?: string | undefined;
|
|
79
|
+
skipButton?: string | undefined;
|
|
80
|
+
prevButton?: string | undefined;
|
|
81
|
+
nextButton?: string | undefined;
|
|
82
|
+
waitPill?: string | undefined;
|
|
83
|
+
} | undefined;
|
|
84
|
+
router?: {
|
|
85
|
+
currentRoute: {
|
|
86
|
+
value: {
|
|
87
|
+
path: string;
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
push: (to: string) => Promise<any> | any;
|
|
91
|
+
} | undefined;
|
|
92
|
+
}, TutorialOptions | {
|
|
93
|
+
storageKey?: string | undefined;
|
|
94
|
+
autoScroll?: boolean | undefined;
|
|
95
|
+
scrollBehavior?: ScrollBehavior | undefined;
|
|
96
|
+
spotlightPadding?: number | undefined;
|
|
97
|
+
cardWidth?: number | undefined;
|
|
98
|
+
showArrow?: boolean | undefined;
|
|
99
|
+
unstyled?: boolean | undefined;
|
|
100
|
+
breakpoints?: {
|
|
101
|
+
xs?: number | undefined;
|
|
102
|
+
sm?: number | undefined;
|
|
103
|
+
md?: number | undefined;
|
|
104
|
+
lg?: number | undefined;
|
|
105
|
+
xl?: number | undefined;
|
|
106
|
+
xxl?: number | undefined;
|
|
107
|
+
} | undefined;
|
|
108
|
+
mobileSheetOnAuto?: boolean | undefined;
|
|
109
|
+
labels?: {
|
|
110
|
+
skipTutorial?: string | undefined;
|
|
111
|
+
previous?: string | undefined;
|
|
112
|
+
next?: string | undefined;
|
|
113
|
+
finish?: string | undefined;
|
|
114
|
+
waitingClick?: string | undefined;
|
|
115
|
+
interactiveBadge?: string | undefined;
|
|
116
|
+
defaultHint?: string | undefined;
|
|
117
|
+
stepCounter?: ((current: number, total: number) => string) | undefined;
|
|
118
|
+
} | undefined;
|
|
119
|
+
classes?: {
|
|
120
|
+
root?: string | undefined;
|
|
121
|
+
backdrop?: string | undefined;
|
|
122
|
+
shield?: string | undefined;
|
|
123
|
+
spotlight?: string | undefined;
|
|
124
|
+
card?: string | undefined;
|
|
125
|
+
arrow?: string | undefined;
|
|
126
|
+
header?: string | undefined;
|
|
127
|
+
badge?: string | undefined;
|
|
128
|
+
modeTag?: string | undefined;
|
|
129
|
+
body?: string | undefined;
|
|
130
|
+
title?: string | undefined;
|
|
131
|
+
content?: string | undefined;
|
|
132
|
+
hintBanner?: string | undefined;
|
|
133
|
+
progressContainer?: string | undefined;
|
|
134
|
+
progressBar?: string | undefined;
|
|
135
|
+
footer?: string | undefined;
|
|
136
|
+
skipButton?: string | undefined;
|
|
137
|
+
prevButton?: string | undefined;
|
|
138
|
+
nextButton?: string | undefined;
|
|
139
|
+
waitPill?: string | undefined;
|
|
140
|
+
} | undefined;
|
|
141
|
+
router?: {
|
|
142
|
+
currentRoute: {
|
|
143
|
+
value: {
|
|
144
|
+
path: string;
|
|
145
|
+
};
|
|
146
|
+
};
|
|
147
|
+
push: (to: string) => Promise<any> | any;
|
|
148
|
+
} | undefined;
|
|
149
|
+
}>;
|
|
150
|
+
configureTutorial: typeof configureTutorial;
|
|
151
|
+
registerSteps: typeof registerSteps;
|
|
152
|
+
registerDeclarativeStep: typeof registerDeclarativeStep;
|
|
153
|
+
updateDeclarativeStep: typeof updateDeclarativeStep;
|
|
154
|
+
unregisterDeclarativeStep: typeof unregisterDeclarativeStep;
|
|
155
|
+
startTutorial: typeof startTutorial;
|
|
156
|
+
restartTutorial: typeof restartTutorial;
|
|
157
|
+
nextStep: typeof nextStep;
|
|
158
|
+
prevStep: typeof prevStep;
|
|
159
|
+
goToStep: typeof goToStep;
|
|
160
|
+
endTutorial: typeof endTutorial;
|
|
161
|
+
completeTutorial: typeof completeTutorial;
|
|
162
|
+
resolveStepElement: typeof resolveStepElement;
|
|
163
|
+
resolveStepElements: typeof resolveStepElements;
|
|
164
|
+
getStepBoundingRect: typeof getStepBoundingRect;
|
|
165
|
+
registerTarget: (elOrRef: HTMLElement | Ref<HTMLElement | null>, configOrId: string | TutorialTargetConfig) => void;
|
|
166
|
+
wrapTutorialAction: <T extends (...args: any[]) => any>(stepOrTargetId: string, nativeFn: T, wrapOptions?: {
|
|
167
|
+
tutorialFn?: (...args: Parameters<T>) => any;
|
|
168
|
+
preventNativeWhenActive?: boolean;
|
|
169
|
+
autoAdvance?: boolean;
|
|
170
|
+
}) => (...args: Parameters<T>) => Promise<any>;
|
|
171
|
+
registerAction: (name: string, fn: (...args: any[]) => any) => void;
|
|
172
|
+
runRegisteredAction: typeof runRegisteredAction;
|
|
173
|
+
runActionMap: typeof runActionMap;
|
|
174
|
+
onFinish: (cb: (ctx: TutorialContext) => void) => () => boolean;
|
|
175
|
+
onStop: (cb: (ctx: TutorialContext) => void) => () => boolean;
|
|
176
|
+
onStepChange: (cb: (ctx: TutorialContext) => void) => () => boolean;
|
|
177
|
+
getContext: typeof getContext;
|
|
178
|
+
};
|
|
179
|
+
export declare const vTutorial: Directive<HTMLElement, string | TutorialTargetConfig | undefined>;
|
|
180
|
+
export {};
|