@codemonster-ru/vueforge 0.62.0 → 0.64.0
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 +150 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.ts.mjs +5181 -4705
- package/dist/index.ts.umd.js +3 -3
- package/dist/package/components/__tests__/tour.test.d.ts +1 -0
- package/dist/package/components/__tests__/wizard.test.d.ts +1 -0
- package/dist/package/components/tour.vue.d.ts +98 -0
- package/dist/package/components/wizard-context.d.ts +9 -0
- package/dist/package/components/wizard-step.vue.d.ts +21 -0
- package/dist/package/components/wizard.vue.d.ts +78 -0
- package/dist/package/config/theme-core.d.ts +80 -0
- package/dist/package/themes/default/components/tour.d.ts +40 -0
- package/dist/package/themes/default/components/wizard.d.ts +40 -0
- package/dist/package/themes/default/index.d.ts +78 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -70,6 +70,8 @@ import {
|
|
|
70
70
|
Splitter,
|
|
71
71
|
SplitterPanel,
|
|
72
72
|
Stepper,
|
|
73
|
+
Wizard,
|
|
74
|
+
WizardStep,
|
|
73
75
|
Timeline,
|
|
74
76
|
Rating,
|
|
75
77
|
Tree,
|
|
@@ -81,6 +83,7 @@ import {
|
|
|
81
83
|
SplitButton,
|
|
82
84
|
ContextMenu,
|
|
83
85
|
CommandPalette,
|
|
86
|
+
Tour,
|
|
84
87
|
} from '@codemonster-ru/vueforge';
|
|
85
88
|
import '@codemonster-ru/vueforge/dist/index.css';
|
|
86
89
|
|
|
@@ -169,6 +172,10 @@ app.use(VueForge, {
|
|
|
169
172
|
<SplitterPanel :min-size="20">Right panel</SplitterPanel>
|
|
170
173
|
</Splitter>
|
|
171
174
|
<Stepper v-model="step" :steps="steps" clickable />
|
|
175
|
+
<Wizard v-model="wizardStep" :steps="wizardSteps">
|
|
176
|
+
<WizardStep value="account">Account step</WizardStep>
|
|
177
|
+
<WizardStep value="confirm">Confirm step</WizardStep>
|
|
178
|
+
</Wizard>
|
|
172
179
|
<Timeline :items="timelineItems" />
|
|
173
180
|
<Rating v-model="rating" allow-half />
|
|
174
181
|
<Tree v-model="selectedNode" v-model:expandedKeys="expandedKeys" :items="treeItems" />
|
|
@@ -221,6 +228,7 @@ app.use(VueForge, {
|
|
|
221
228
|
{ label: 'Save as draft', value: 'draft', group: 'Actions' },
|
|
222
229
|
]"
|
|
223
230
|
/>
|
|
231
|
+
<Tour v-model="tourOpen" :steps="tourSteps" />
|
|
224
232
|
```
|
|
225
233
|
|
|
226
234
|
## Components
|
|
@@ -265,6 +273,7 @@ app.use(VueForge, {
|
|
|
265
273
|
- SplitButton
|
|
266
274
|
- ContextMenu
|
|
267
275
|
- CommandPalette
|
|
276
|
+
- Tour
|
|
268
277
|
- Popover
|
|
269
278
|
- Select
|
|
270
279
|
- Autocomplete
|
|
@@ -290,6 +299,8 @@ app.use(VueForge, {
|
|
|
290
299
|
- Splitter
|
|
291
300
|
- SplitterPanel
|
|
292
301
|
- Stepper
|
|
302
|
+
- Wizard
|
|
303
|
+
- WizardStep
|
|
293
304
|
- Timeline
|
|
294
305
|
- Rating
|
|
295
306
|
- Tree
|
|
@@ -310,6 +321,8 @@ Input / InputGroup / Search / Password / Textarea (quick API):
|
|
|
310
321
|
- `MaskedInput`: formatted input control with string/function masks and optional raw output (`unmask`).
|
|
311
322
|
- `NumberInput`: numeric control, supports `v-model`, `min`, `max`, `step`, `precision`, `controls`, `size`, `variant`.
|
|
312
323
|
- `Splitter`: resizable multi-panel container with draggable separators and `v-model` percentage sizes.
|
|
324
|
+
- `Tour`: guided step-by-step onboarding overlay anchored to target elements.
|
|
325
|
+
- `Wizard`: multi-step flow container with linear navigation, per-step validation, and completion events.
|
|
313
326
|
- `Textarea`: multi-line control, same as Input plus `rows`.
|
|
314
327
|
- `TagInput`: token/tag control, supports `v-model` (array), suggestions, custom tags, `maxTags`, `clearable`, `size`, `variant`.
|
|
315
328
|
- `FilterChips`: compact chip-based filter toggles with single/multiple selection modes and optional clear action.
|
|
@@ -2044,6 +2057,74 @@ Component tokens (override via `theme.overrides.components.commandPalette`):
|
|
|
2044
2057
|
- `shortcutBackgroundColor`, `shortcutTextColor`, `shortcutFontSize`
|
|
2045
2058
|
- `emptyPadding`, `emptyColor`
|
|
2046
2059
|
|
|
2060
|
+
## Tour
|
|
2061
|
+
|
|
2062
|
+
Props:
|
|
2063
|
+
|
|
2064
|
+
- `modelValue?: boolean` (v-model)
|
|
2065
|
+
- `steps?: Array<{ target?: string | HTMLElement; title?: string; content?: string; placement?: 'top' | 'bottom' | 'left' | 'right'; offset?: number }>`
|
|
2066
|
+
- `startIndex?: number` (default `0`)
|
|
2067
|
+
- `placement?: 'top' | 'bottom' | 'left' | 'right'` (default `bottom`)
|
|
2068
|
+
- `offset?: number` (default `10`)
|
|
2069
|
+
- `mask?: boolean` (default `true`)
|
|
2070
|
+
- `closeOnOverlay?: boolean` (default `true`)
|
|
2071
|
+
- `closeOnEsc?: boolean` (default `true`)
|
|
2072
|
+
- `showSkip?: boolean` (default `true`)
|
|
2073
|
+
- `showProgress?: boolean` (default `true`)
|
|
2074
|
+
- `spotlightPadding?: number` (default `6`)
|
|
2075
|
+
- `nextLabel?: string` (default `Next`)
|
|
2076
|
+
- `prevLabel?: string` (default `Back`)
|
|
2077
|
+
- `finishLabel?: string` (default `Finish`)
|
|
2078
|
+
- `skipLabel?: string` (default `Skip`)
|
|
2079
|
+
- `ariaLabel?: string` (default `Tour`)
|
|
2080
|
+
|
|
2081
|
+
Slots:
|
|
2082
|
+
|
|
2083
|
+
- `default` - step content with slot props `{ step, index }`
|
|
2084
|
+
- `title` (optional) - step title with slot props `{ step, index }`
|
|
2085
|
+
- `actions` (optional) - custom actions with slot props `{ step, index, isFirst, isLast, prev, next, skip }`
|
|
2086
|
+
|
|
2087
|
+
Events:
|
|
2088
|
+
|
|
2089
|
+
- `update:modelValue`
|
|
2090
|
+
- `open`
|
|
2091
|
+
- `close` (payload reason: `overlay | esc | complete | skip`)
|
|
2092
|
+
- `stepChange`
|
|
2093
|
+
- `next`
|
|
2094
|
+
- `prev`
|
|
2095
|
+
- `complete`
|
|
2096
|
+
- `skip`
|
|
2097
|
+
|
|
2098
|
+
Example:
|
|
2099
|
+
|
|
2100
|
+
```vue
|
|
2101
|
+
<Tour
|
|
2102
|
+
v-model="tourOpen"
|
|
2103
|
+
:steps="[
|
|
2104
|
+
{ target: '#tour-start', title: 'Start', content: 'Launch onboarding here.' },
|
|
2105
|
+
{ target: '#tour-search', title: 'Search', content: 'Find projects quickly.', placement: 'bottom' },
|
|
2106
|
+
]"
|
|
2107
|
+
/>
|
|
2108
|
+
```
|
|
2109
|
+
|
|
2110
|
+
### Tour tokens
|
|
2111
|
+
|
|
2112
|
+
Component tokens (override via `theme.overrides.components.tour`):
|
|
2113
|
+
|
|
2114
|
+
- `zIndex`, `overlayBackgroundColor`
|
|
2115
|
+
- `width`, `maxWidth`, `padding`
|
|
2116
|
+
- `borderRadius`, `borderColor`
|
|
2117
|
+
- `backgroundColor`, `textColor`, `shadow`
|
|
2118
|
+
- `titleGap`, `titleFontSize`, `titleLineHeight`, `titleFontWeight`
|
|
2119
|
+
- `contentGap`, `contentFontSize`, `contentLineHeight`, `contentColor`
|
|
2120
|
+
- `progressGap`, `progressFontSize`, `progressColor`
|
|
2121
|
+
- `actionsGap`
|
|
2122
|
+
- `buttonMinWidth`, `buttonPadding`, `buttonRadius`
|
|
2123
|
+
- `buttonBorderColor`, `buttonBackgroundColor`, `buttonTextColor`, `buttonHoverBackgroundColor`
|
|
2124
|
+
- `secondaryButtonBorderColor`, `secondaryButtonBackgroundColor`, `secondaryButtonTextColor`, `secondaryButtonHoverBackgroundColor`
|
|
2125
|
+
- `spotlightRadius`, `spotlightBorderWidth`, `spotlightBorderColor`
|
|
2126
|
+
- `disabledOpacity`
|
|
2127
|
+
|
|
2047
2128
|
## Tooltip
|
|
2048
2129
|
|
|
2049
2130
|
Props:
|
|
@@ -2405,6 +2486,74 @@ Component tokens (override via `theme.overrides.components.stepper`):
|
|
|
2405
2486
|
- `small.indicatorSize`, `small.indicatorFontSize`, `small.labelFontSize`, `small.descriptionFontSize`, `small.lineLength`, `small.itemGap`
|
|
2406
2487
|
- `large.indicatorSize`, `large.indicatorFontSize`, `large.labelFontSize`, `large.descriptionFontSize`, `large.lineLength`, `large.itemGap`
|
|
2407
2488
|
|
|
2489
|
+
## Wizard / WizardStep
|
|
2490
|
+
|
|
2491
|
+
Props (`Wizard`):
|
|
2492
|
+
|
|
2493
|
+
- `modelValue?: string | number` (v-model active step value)
|
|
2494
|
+
- `steps?: Array<{ value: string | number; title?: string; description?: string; optional?: boolean; disabled?: boolean; validate?: (value, index) => boolean | string | Promise<...> }>`
|
|
2495
|
+
- `linear?: boolean` (default `true`)
|
|
2496
|
+
- `disabled?: boolean` (default `false`)
|
|
2497
|
+
- `nextLabel?: string` (default `Next`)
|
|
2498
|
+
- `prevLabel?: string` (default `Back`)
|
|
2499
|
+
- `finishLabel?: string` (default `Finish`)
|
|
2500
|
+
- `validateStep?: (step, index, value) => boolean | string | Promise<...>`
|
|
2501
|
+
- `ariaLabel?: string`
|
|
2502
|
+
- `ariaLabelledby?: string`
|
|
2503
|
+
|
|
2504
|
+
Props (`WizardStep`):
|
|
2505
|
+
|
|
2506
|
+
- `value: string | number` (must match one of `Wizard.steps[].value`)
|
|
2507
|
+
|
|
2508
|
+
Slots (`Wizard`):
|
|
2509
|
+
|
|
2510
|
+
- `default` - place `WizardStep` components
|
|
2511
|
+
- `indicator` (optional) - slot props `{ step, index }`
|
|
2512
|
+
- `actions` (optional) - slot props `{ step, index, isFirst, isLast, next, prev, complete }`
|
|
2513
|
+
|
|
2514
|
+
Events (`Wizard`):
|
|
2515
|
+
|
|
2516
|
+
- `update:modelValue`
|
|
2517
|
+
- `change`
|
|
2518
|
+
- `next`
|
|
2519
|
+
- `prev`
|
|
2520
|
+
- `complete`
|
|
2521
|
+
- `invalidStep`
|
|
2522
|
+
|
|
2523
|
+
Example:
|
|
2524
|
+
|
|
2525
|
+
```vue
|
|
2526
|
+
<Wizard v-model="wizardStep" :steps="wizardSteps">
|
|
2527
|
+
<WizardStep value="account">
|
|
2528
|
+
<Input v-model="email" placeholder="Email" />
|
|
2529
|
+
</WizardStep>
|
|
2530
|
+
<WizardStep value="plan">
|
|
2531
|
+
<Select v-model="plan" :options="plans" />
|
|
2532
|
+
</WizardStep>
|
|
2533
|
+
<WizardStep value="confirm">
|
|
2534
|
+
Review and finish
|
|
2535
|
+
</WizardStep>
|
|
2536
|
+
</Wizard>
|
|
2537
|
+
```
|
|
2538
|
+
|
|
2539
|
+
### Wizard tokens
|
|
2540
|
+
|
|
2541
|
+
Component tokens (override via `theme.overrides.components.wizard`):
|
|
2542
|
+
|
|
2543
|
+
- `gap`, `borderColor`, `headerPaddingBottom`
|
|
2544
|
+
- `itemGap`, `stepGap`
|
|
2545
|
+
- `indicatorSize`, `indicatorBorderRadius`, `indicatorFontSize`
|
|
2546
|
+
- `indicatorBorderColor`, `indicatorBackgroundColor`, `indicatorTextColor`
|
|
2547
|
+
- `activeIndicatorBorderColor`, `activeIndicatorBackgroundColor`, `activeIndicatorTextColor`
|
|
2548
|
+
- `completedIndicatorBorderColor`, `completedIndicatorBackgroundColor`, `completedIndicatorTextColor`
|
|
2549
|
+
- `errorIndicatorBorderColor`, `errorIndicatorBackgroundColor`, `errorIndicatorTextColor`
|
|
2550
|
+
- `titleFontSize`, `titleColor`, `descriptionFontSize`, `descriptionColor`
|
|
2551
|
+
- `actionsGap`
|
|
2552
|
+
- `buttonMinWidth`, `buttonPadding`, `buttonBorderRadius`
|
|
2553
|
+
- `buttonBorderColor`, `buttonBackgroundColor`, `buttonTextColor`, `buttonHoverBackgroundColor`
|
|
2554
|
+
- `secondaryButtonBorderColor`, `secondaryButtonBackgroundColor`, `secondaryButtonTextColor`, `secondaryButtonHoverBackgroundColor`
|
|
2555
|
+
- `disabledOpacity`
|
|
2556
|
+
|
|
2408
2557
|
## Timeline
|
|
2409
2558
|
|
|
2410
2559
|
Props:
|
|
@@ -2652,7 +2801,7 @@ VueForge exposes design tokens as CSS variables generated from the theme preset.
|
|
|
2652
2801
|
Typed tokens:
|
|
2653
2802
|
|
|
2654
2803
|
- `ThemeTokens`/`ThemeOptions`/`ThemePreset` are exported for type-safe theming in TS.
|
|
2655
|
-
- `components.*` accepts component-specific tokens (typed keys: button/card/checkbox/radio/tabs/accordion/toast/alert/emptyState/input/inputGroup/inlineEdit/searchInput/mentionInput/passwordInput/otpInput/colorPicker/maskedInput/numberInput/form/formField/textarea/link/breadcrumbs/menu/modal/confirmDialog/drawer/popover/dropdown/contextMenu/commandPalette/select/autocomplete/combobox/multiselect/taginput/datepicker/calendar/daterangepicker/timepicker/datetimepicker/pagination/switch/segmentedControl/tooltip/skeleton/progress/badge/chip/filterChips/avatar/datatable/slider/splitter/stepper/rating/tree/treeselect/virtualScroller).
|
|
2804
|
+
- `components.*` accepts component-specific tokens (typed keys: button/card/checkbox/radio/tabs/accordion/toast/alert/emptyState/input/inputGroup/inlineEdit/searchInput/mentionInput/passwordInput/otpInput/colorPicker/maskedInput/numberInput/form/formField/textarea/link/breadcrumbs/menu/modal/confirmDialog/drawer/popover/dropdown/contextMenu/commandPalette/tour/select/autocomplete/combobox/multiselect/taginput/datepicker/calendar/daterangepicker/timepicker/datetimepicker/pagination/switch/segmentedControl/tooltip/skeleton/progress/badge/chip/filterChips/avatar/datatable/slider/splitter/stepper/wizard/rating/tree/treeselect/virtualScroller).
|
|
2656
2805
|
|
|
2657
2806
|
Default core values (from `DefaultTheme`):
|
|
2658
2807
|
|