maz-ui 5.0.0 → 5.1.0-beta.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/dist/assets/{MazDropzone.DJ8au25t.css → MazDropzone.BW2grpTi.css} +1 -1
- package/dist/chunks/{MazDrawer.DANxKYxJ.js → MazDrawer.CC8zomfx.js} +2 -2
- package/dist/chunks/{MazDropzone.POH3pmfi.js → MazDropzone.Dez5j0WP.js} +2 -2
- package/dist/components/MazDrawer.js +1 -1
- package/dist/components/MazDropzone.js +1 -1
- package/dist/components/MazDropzone.vue.d.ts +2 -2
- package/dist/components/MazInputPrice.vue.d.ts +1 -1
- package/dist/components/index.js +2 -2
- package/docs/README.md +207 -0
- package/docs/agents/agents-md.md +52 -0
- package/docs/agents/claude-rule.md +52 -0
- package/docs/components/maz-accordion.md +76 -0
- package/docs/components/maz-alert.md +241 -0
- package/docs/components/maz-animated-counter.md +87 -0
- package/docs/components/maz-animated-element.md +46 -0
- package/docs/components/maz-animated-text.md +53 -0
- package/docs/components/maz-avatar.md +193 -0
- package/docs/components/maz-backdrop.md +178 -0
- package/docs/components/maz-badge.md +167 -0
- package/docs/components/maz-bottom-sheet.md +257 -0
- package/docs/components/maz-btn-group.md +316 -0
- package/docs/components/maz-btn.md +423 -0
- package/docs/components/maz-card-spotlight.md +84 -0
- package/docs/components/maz-card.md +321 -0
- package/docs/components/maz-carousel.md +153 -0
- package/docs/components/maz-chart.md +206 -0
- package/docs/components/maz-checkbox.md +138 -0
- package/docs/components/maz-checklist.md +251 -0
- package/docs/components/maz-circular-progress-bar.md +109 -0
- package/docs/components/maz-code-highlight.md +155 -0
- package/docs/components/maz-container.md +241 -0
- package/docs/components/maz-date-picker.md +791 -0
- package/docs/components/maz-dialog-confirm.md +215 -0
- package/docs/components/maz-dialog.md +143 -0
- package/docs/components/maz-drawer.md +106 -0
- package/docs/components/maz-dropdown.md +419 -0
- package/docs/components/maz-dropzone.md +387 -0
- package/docs/components/maz-expand-animation.md +82 -0
- package/docs/components/maz-fullscreen-loader.md +58 -0
- package/docs/components/maz-gallery.md +79 -0
- package/docs/components/maz-icon.md +203 -0
- package/docs/components/maz-input-code.md +73 -0
- package/docs/components/maz-input-number.md +79 -0
- package/docs/components/maz-input-phone-number.md +536 -0
- package/docs/components/maz-input-price.md +68 -0
- package/docs/components/maz-input-tags.md +112 -0
- package/docs/components/maz-input.md +334 -0
- package/docs/components/maz-lazy-img.md +113 -0
- package/docs/components/maz-link.md +146 -0
- package/docs/components/maz-loading-bar.md +38 -0
- package/docs/components/maz-markdown-editor.md +320 -0
- package/docs/components/maz-pagination.md +82 -0
- package/docs/components/maz-popover.md +794 -0
- package/docs/components/maz-pull-to-refresh.md +222 -0
- package/docs/components/maz-radio-buttons.md +313 -0
- package/docs/components/maz-radio.md +119 -0
- package/docs/components/maz-read-more.md +209 -0
- package/docs/components/maz-reading-progress-bar.md +96 -0
- package/docs/components/maz-select-country.md +513 -0
- package/docs/components/maz-select.md +318 -0
- package/docs/components/maz-sidebar-content.md +25 -0
- package/docs/components/maz-sidebar-footer.md +25 -0
- package/docs/components/maz-sidebar-group.md +27 -0
- package/docs/components/maz-sidebar-header.md +25 -0
- package/docs/components/maz-sidebar-menu-button.md +41 -0
- package/docs/components/maz-sidebar-menu-item.md +25 -0
- package/docs/components/maz-sidebar-menu-sub.md +32 -0
- package/docs/components/maz-sidebar-menu.md +25 -0
- package/docs/components/maz-sidebar-separator.md +21 -0
- package/docs/components/maz-sidebar-trigger.md +25 -0
- package/docs/components/maz-sidebar.md +507 -0
- package/docs/components/maz-skeleton.md +226 -0
- package/docs/components/maz-slider.md +165 -0
- package/docs/components/maz-spinner.md +84 -0
- package/docs/components/maz-stepper.md +301 -0
- package/docs/components/maz-switch.md +86 -0
- package/docs/components/maz-table-cell.md +27 -0
- package/docs/components/maz-table-row.md +28 -0
- package/docs/components/maz-table-title.md +27 -0
- package/docs/components/maz-table-virtualizer.md +31 -0
- package/docs/components/maz-table.md +426 -0
- package/docs/components/maz-tabs-bar.md +43 -0
- package/docs/components/maz-tabs-content-item.md +27 -0
- package/docs/components/maz-tabs-content.md +27 -0
- package/docs/components/maz-tabs.md +308 -0
- package/docs/components/maz-textarea.md +255 -0
- package/docs/components/maz-ticker.md +427 -0
- package/docs/components/maz-timeline.md +304 -0
- package/docs/components/maz-ui-provider.md +26 -0
- package/docs/components/maz-window-mockup.md +182 -0
- package/docs/composables/use-aos.md +41 -0
- package/docs/composables/use-breakpoints.md +42 -0
- package/docs/composables/use-dialog.md +58 -0
- package/docs/composables/use-display-names.md +130 -0
- package/docs/composables/use-drag.md +185 -0
- package/docs/composables/use-form-validator.md +1123 -0
- package/docs/composables/use-idle-timeout.md +172 -0
- package/docs/composables/use-pull-to-refresh.md +86 -0
- package/docs/composables/use-reading-time.md +132 -0
- package/docs/composables/use-string-matching.md +41 -0
- package/docs/composables/use-swipe.md +171 -0
- package/docs/composables/use-timer.md +104 -0
- package/docs/composables/use-toast.md +50 -0
- package/docs/composables/use-user-visibility.md +127 -0
- package/docs/composables/use-wait.md +50 -0
- package/docs/composables/use-window-size.md +25 -0
- package/docs/directives/click-outside.md +182 -0
- package/docs/directives/fullscreen-img.md +83 -0
- package/docs/directives/lazy-img.md +182 -0
- package/docs/directives/tooltip.md +298 -0
- package/docs/directives/zoom-img.md +100 -0
- package/docs/ecosystem/eslint-config.md +289 -0
- package/docs/ecosystem/icons/icon-set.md +25 -0
- package/docs/ecosystem/icons/index.md +584 -0
- package/docs/ecosystem/mcp.md +165 -0
- package/docs/ecosystem/node/exec-promise.md +93 -0
- package/docs/ecosystem/node/index.md +53 -0
- package/docs/ecosystem/node/logger.md +152 -0
- package/docs/ecosystem/node/print-banner.md +101 -0
- package/docs/ecosystem/node/setup-agents.md +102 -0
- package/docs/ecosystem/nuxt.md +551 -0
- package/docs/ecosystem/stylelint-config.md +310 -0
- package/docs/ecosystem/themes.md +966 -0
- package/docs/ecosystem/translations.md +1173 -0
- package/docs/ecosystem/utils/camel-case.md +37 -0
- package/docs/ecosystem/utils/capitalize.md +37 -0
- package/docs/ecosystem/utils/check-availability.md +85 -0
- package/docs/ecosystem/utils/cookie.md +86 -0
- package/docs/ecosystem/utils/country-code-to-unicode-flag.md +128 -0
- package/docs/ecosystem/utils/currency.md +53 -0
- package/docs/ecosystem/utils/date.md +53 -0
- package/docs/ecosystem/utils/debounce-callback.md +44 -0
- package/docs/ecosystem/utils/debounce-id.md +75 -0
- package/docs/ecosystem/utils/debounce.md +71 -0
- package/docs/ecosystem/utils/fetch-locale-ip.md +39 -0
- package/docs/ecosystem/utils/format-json.md +39 -0
- package/docs/ecosystem/utils/format-phone-number.md +43 -0
- package/docs/ecosystem/utils/get-browser-locale.md +35 -0
- package/docs/ecosystem/utils/get-country-flag-url.md +67 -0
- package/docs/ecosystem/utils/get-error-message.md +45 -0
- package/docs/ecosystem/utils/idle-timeout.md +96 -0
- package/docs/ecosystem/utils/index.md +57 -0
- package/docs/ecosystem/utils/is-client.md +38 -0
- package/docs/ecosystem/utils/is-equal.md +44 -0
- package/docs/ecosystem/utils/is-ios.md +43 -0
- package/docs/ecosystem/utils/is-server.md +37 -0
- package/docs/ecosystem/utils/is-standalone-mode.md +49 -0
- package/docs/ecosystem/utils/kebab-case.md +42 -0
- package/docs/ecosystem/utils/normalize-string.md +83 -0
- package/docs/ecosystem/utils/number.md +51 -0
- package/docs/ecosystem/utils/pascal-case.md +41 -0
- package/docs/ecosystem/utils/prevent-ios-input-zoom.md +72 -0
- package/docs/ecosystem/utils/script-loader.md +85 -0
- package/docs/ecosystem/utils/sleep.md +65 -0
- package/docs/ecosystem/utils/snake-case.md +42 -0
- package/docs/ecosystem/utils/swipe-handler.md +97 -0
- package/docs/ecosystem/utils/textarea-autogrow.md +47 -0
- package/docs/ecosystem/utils/throttle-id.md +54 -0
- package/docs/ecosystem/utils/throttle.md +63 -0
- package/docs/ecosystem/utils/truthy-filter.md +37 -0
- package/docs/ecosystem/utils/types/deep-key-of.md +54 -0
- package/docs/ecosystem/utils/types/deep-partial.md +48 -0
- package/docs/ecosystem/utils/types/deep-required.md +45 -0
- package/docs/ecosystem/utils/types/flatten-object-keys.md +50 -0
- package/docs/ecosystem/utils/types/generic-instance-type.md +48 -0
- package/docs/ecosystem/utils/types/infer-maybe-ref.md +41 -0
- package/docs/ecosystem/utils/upper-first.md +38 -0
- package/docs/ecosystem/utils/user-visibility.md +75 -0
- package/docs/guide/ai-agents.md +237 -0
- package/docs/guide/browser-support.md +88 -0
- package/docs/guide/getting-started.md +191 -0
- package/docs/guide/global-defaults.md +103 -0
- package/docs/guide/maz-ui-provider.md +231 -0
- package/docs/guide/migration-v5.md +871 -0
- package/docs/guide/resolvers.md +650 -0
- package/docs/guide/tailwind.md +483 -0
- package/docs/guide/vue.md +286 -0
- package/docs/manifest.json +1 -0
- package/docs/plugins/aos.md +312 -0
- package/docs/plugins/dialog.md +269 -0
- package/docs/plugins/toast.md +221 -0
- package/docs/plugins/wait.md +78 -0
- package/docs/reference/icons.md +46 -0
- package/docs/reference/tailwind-tokens.md +191 -0
- package/docs/rules.md +57 -0
- package/package.json +31 -4
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "MazTimeline"
|
|
3
|
+
description: "MazTimeline is a step/progress timeline component for Vue 3 with support for horizontal, vertical, and responsive layouts, customizable colors, sizes, step states, and scoped slots"
|
|
4
|
+
package: "maz-ui"
|
|
5
|
+
url: "https://maz-ui.com/components/maz-timeline"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# MazTimeline
|
|
9
|
+
|
|
10
|
+
> MazTimeline is a step/progress timeline component for Vue 3 with support for horizontal, vertical, and responsive layouts, customizable colors, sizes, step states, and scoped slots
|
|
11
|
+
|
|
12
|
+
- Package: `maz-ui`
|
|
13
|
+
- Import: `import MazTimeline from 'maz-ui/components/MazTimeline'`
|
|
14
|
+
- Nuxt: auto-imported by `@maz-ui/nuxt`, no import needed in a Nuxt app
|
|
15
|
+
- Web: https://maz-ui.com/components/maz-timeline
|
|
16
|
+
|
|
17
|
+
> Before use it, you should install the MazUi plugin in your project, follow instructions in [Getting Started](../guide/getting-started.md)
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
Control the current step:
|
|
22
|
+
|
|
23
|
+
## Basic usage
|
|
24
|
+
|
|
25
|
+
```vue
|
|
26
|
+
<template>
|
|
27
|
+
<MazTimeline v-model="currentStep" :steps="steps" />
|
|
28
|
+
</template>
|
|
29
|
+
|
|
30
|
+
<script lang="ts" setup>
|
|
31
|
+
import { ref } from 'vue'
|
|
32
|
+
import MazTimeline from 'maz-ui/components/MazTimeline'
|
|
33
|
+
|
|
34
|
+
const currentStep = ref(1)
|
|
35
|
+
const steps = [
|
|
36
|
+
{ title: 'Account', subtitle: 'Create your account' },
|
|
37
|
+
{ title: 'Profile', subtitle: 'Set up your profile' },
|
|
38
|
+
{ title: 'Settings', subtitle: 'Configure preferences' },
|
|
39
|
+
{ title: 'Complete', subtitle: 'All done!' },
|
|
40
|
+
]
|
|
41
|
+
</script>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Directions
|
|
45
|
+
|
|
46
|
+
### Horizontal
|
|
47
|
+
|
|
48
|
+
```vue
|
|
49
|
+
<template>
|
|
50
|
+
<MazTimeline v-model="currentStep" :steps="steps" direction="horizontal" />
|
|
51
|
+
</template>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Vertical
|
|
55
|
+
|
|
56
|
+
```vue
|
|
57
|
+
<template>
|
|
58
|
+
<MazTimeline v-model="currentStep" :steps="steps" direction="vertical" />
|
|
59
|
+
</template>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Auto (responsive)
|
|
63
|
+
|
|
64
|
+
The default direction is `'auto'`, which switches from horizontal to vertical based on the `breakpoint` prop (default: `'768px'`).
|
|
65
|
+
|
|
66
|
+
```vue
|
|
67
|
+
<template>
|
|
68
|
+
<MazTimeline
|
|
69
|
+
v-model="currentStep"
|
|
70
|
+
:steps="steps"
|
|
71
|
+
direction="auto"
|
|
72
|
+
breakpoint="768px"
|
|
73
|
+
/>
|
|
74
|
+
</template>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Colors
|
|
78
|
+
|
|
79
|
+
Use the `color` prop to change the theme color.
|
|
80
|
+
|
|
81
|
+
```vue
|
|
82
|
+
<template>
|
|
83
|
+
<MazTimeline :steps="steps" color="primary" />
|
|
84
|
+
<MazTimeline :steps="steps" color="secondary" />
|
|
85
|
+
<MazTimeline :steps="steps" color="info" />
|
|
86
|
+
<MazTimeline :steps="steps" color="success" />
|
|
87
|
+
<MazTimeline :steps="steps" color="warning" />
|
|
88
|
+
<MazTimeline :steps="steps" color="destructive" />
|
|
89
|
+
</template>
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Sizes
|
|
93
|
+
|
|
94
|
+
Use the `size` prop to change the indicator size.
|
|
95
|
+
|
|
96
|
+
```vue
|
|
97
|
+
<template>
|
|
98
|
+
<MazTimeline :steps="steps" size="mini" />
|
|
99
|
+
<MazTimeline :steps="steps" size="xs" />
|
|
100
|
+
<MazTimeline :steps="steps" size="sm" />
|
|
101
|
+
<MazTimeline :steps="steps" size="md" />
|
|
102
|
+
<MazTimeline :steps="steps" size="lg" />
|
|
103
|
+
<MazTimeline :steps="steps" size="xl" />
|
|
104
|
+
</template>
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Step states
|
|
108
|
+
|
|
109
|
+
Each step can have a manual `state` property: `'completed'`, `'active'`, `'error'`, `'warning'`, or `'pending'`.
|
|
110
|
+
|
|
111
|
+
```vue
|
|
112
|
+
<template>
|
|
113
|
+
<MazTimeline :steps="stateSteps" direction="horizontal" />
|
|
114
|
+
</template>
|
|
115
|
+
|
|
116
|
+
<script lang="ts" setup>
|
|
117
|
+
const stateSteps = [
|
|
118
|
+
{ title: 'Completed', subtitle: 'Step finished', state: 'completed' },
|
|
119
|
+
{ title: 'Active', subtitle: 'In progress', state: 'active' },
|
|
120
|
+
{ title: 'Error', subtitle: 'Something went wrong', state: 'error' },
|
|
121
|
+
{ title: 'Warning', subtitle: 'Needs attention', state: 'warning' },
|
|
122
|
+
{ title: 'Pending', subtitle: 'Not started', state: 'pending' },
|
|
123
|
+
]
|
|
124
|
+
</script>
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Clickable
|
|
128
|
+
|
|
129
|
+
Enable `clickable` to allow users to navigate between steps by clicking on them. The `click-step` event is emitted with the step index.
|
|
130
|
+
|
|
131
|
+
```vue
|
|
132
|
+
<template>
|
|
133
|
+
<MazTimeline v-model="clickableStep" :steps="steps" clickable />
|
|
134
|
+
</template>
|
|
135
|
+
|
|
136
|
+
<script lang="ts" setup>
|
|
137
|
+
import { ref } from 'vue'
|
|
138
|
+
|
|
139
|
+
const clickableStep = ref(0)
|
|
140
|
+
</script>
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Disabled steps
|
|
144
|
+
|
|
145
|
+
Individual steps can be disabled by setting `disabled: true` on the step object.
|
|
146
|
+
|
|
147
|
+
```vue
|
|
148
|
+
<template>
|
|
149
|
+
<MazTimeline v-model="currentStep" :steps="disabledSteps" clickable />
|
|
150
|
+
</template>
|
|
151
|
+
|
|
152
|
+
<script lang="ts" setup>
|
|
153
|
+
const disabledSteps = [
|
|
154
|
+
{ title: 'Account', subtitle: 'Create your account' },
|
|
155
|
+
{ title: 'Profile', subtitle: 'Set up your profile' },
|
|
156
|
+
{ title: 'Settings', subtitle: 'Locked', disabled: true },
|
|
157
|
+
{ title: 'Complete', subtitle: 'All done!' },
|
|
158
|
+
]
|
|
159
|
+
</script>
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Without step numbers
|
|
163
|
+
|
|
164
|
+
Hide the step numbers inside indicators with `:show-step-numbers="false"`.
|
|
165
|
+
|
|
166
|
+
```vue
|
|
167
|
+
<template>
|
|
168
|
+
<MazTimeline
|
|
169
|
+
v-model="currentStep"
|
|
170
|
+
:steps="steps"
|
|
171
|
+
:show-step-numbers="false"
|
|
172
|
+
/>
|
|
173
|
+
</template>
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Without auto-validate
|
|
177
|
+
|
|
178
|
+
By default, completed steps show a checkmark. Disable this with `:auto-validate-steps="false"`.
|
|
179
|
+
|
|
180
|
+
```vue
|
|
181
|
+
<template>
|
|
182
|
+
<MazTimeline
|
|
183
|
+
:model-value="2"
|
|
184
|
+
:steps="steps"
|
|
185
|
+
:auto-validate-steps="false"
|
|
186
|
+
/>
|
|
187
|
+
</template>
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Rounded sizes
|
|
191
|
+
|
|
192
|
+
Customize the indicator border radius with the `rounded-size` prop.
|
|
193
|
+
|
|
194
|
+
```vue
|
|
195
|
+
<template>
|
|
196
|
+
<MazTimeline :steps="steps" rounded-size="full" />
|
|
197
|
+
<MazTimeline :steps="steps" rounded-size="lg" />
|
|
198
|
+
<MazTimeline :steps="steps" rounded-size="md" />
|
|
199
|
+
<MazTimeline :steps="steps" rounded-size="sm" />
|
|
200
|
+
<MazTimeline :steps="steps" rounded-size="none" />
|
|
201
|
+
</template>
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
## Custom Icons
|
|
205
|
+
|
|
206
|
+
```vue
|
|
207
|
+
<template>
|
|
208
|
+
<MazTimeline
|
|
209
|
+
v-model="currentStep"
|
|
210
|
+
:steps="steps"
|
|
211
|
+
size="lg"
|
|
212
|
+
/>
|
|
213
|
+
</template>
|
|
214
|
+
|
|
215
|
+
<script lang="ts" setup>
|
|
216
|
+
import { MazCommandLine } from '@maz-ui/icons/MazCommandLine'
|
|
217
|
+
import { MazClipboardDocumentList } from '@maz-ui/icons/MazClipboardDocumentList'
|
|
218
|
+
import { MazClipboardDocumentCheck } from '@maz-ui/icons/MazClipboardDocumentCheck'
|
|
219
|
+
import { MazComputerDesktop } from '@maz-ui/icons/MazComputerDesktop'
|
|
220
|
+
|
|
221
|
+
const iconsSteps = [
|
|
222
|
+
{ title: 'PO', subtitle: 'Writing PRD', icon: MazClipboardDocumentList },
|
|
223
|
+
{ title: 'Dev', subtitle: 'Building Code', icon: MazCommandLine },
|
|
224
|
+
{ title: 'Tech Lead', subtitle: 'Review Code', icon: MazComputerDesktop },
|
|
225
|
+
{ title: 'QA', subtitle: 'Testing', icon: MazClipboardDocumentCheck },
|
|
226
|
+
]
|
|
227
|
+
</script>
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
## Custom slots
|
|
231
|
+
|
|
232
|
+
MazTimeline provides scoped slots for full customization.
|
|
233
|
+
|
|
234
|
+
### Indicator slot
|
|
235
|
+
|
|
236
|
+
```vue
|
|
237
|
+
<template>
|
|
238
|
+
<MazTimeline v-model="currentStep" :steps="steps">
|
|
239
|
+
<template #indicator="{ step, index, state }">
|
|
240
|
+
<span style="font-size: 1.2em">{{ index + 1 }}.</span>
|
|
241
|
+
</template>
|
|
242
|
+
</MazTimeline>
|
|
243
|
+
</template>
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Content slot
|
|
247
|
+
|
|
248
|
+
```vue
|
|
249
|
+
<template>
|
|
250
|
+
<MazTimeline v-model="currentStep" :steps="steps">
|
|
251
|
+
<template #content="{ step, index, state }">
|
|
252
|
+
<div class="text-center">
|
|
253
|
+
<strong>{{ step.title }}</strong>
|
|
254
|
+
<p class="text-muted text-sm m-0">
|
|
255
|
+
Step {{ index + 1 }} - {{ state }}
|
|
256
|
+
</p>
|
|
257
|
+
</div>
|
|
258
|
+
</template>
|
|
259
|
+
</MazTimeline>
|
|
260
|
+
</template>
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
### Connector slot
|
|
264
|
+
|
|
265
|
+
```vue
|
|
266
|
+
<template>
|
|
267
|
+
<MazTimeline v-model="currentStep" :steps="steps">
|
|
268
|
+
<template #connector="{ index, state }">
|
|
269
|
+
<div class="text-center text-xs text-muted">---</div>
|
|
270
|
+
</template>
|
|
271
|
+
</MazTimeline>
|
|
272
|
+
</template>
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
## MazTimeline API
|
|
276
|
+
|
|
277
|
+
`import MazTimeline from 'maz-ui/components/MazTimeline'`
|
|
278
|
+
|
|
279
|
+
### Props
|
|
280
|
+
|
|
281
|
+
- `model-value` (`number`, `v-model`): Index of the active step (v-model).
|
|
282
|
+
- `steps` (`MazTimelineItem[]`, required): Array of timeline steps to display.
|
|
283
|
+
- `direction` (`MazTimelineDirection`, default: `"auto"`): Layout direction of the timeline - `'horizontal'`: always horizontal - `'vertical'`: always vertical - `'auto'`: horizontal above breakpoint, vertical below. Values: `'horizontal'`, `'vertical'`, `'auto'` (non exhaustive).
|
|
284
|
+
- `breakpoint` (`string`, default: `"768px"`): CSS media breakpoint for auto direction (below this value → vertical).
|
|
285
|
+
- `color` (`MazTimelineColor`, default: `"primary"`): Color theme for active and completed steps. Values: `'primary'`, `'secondary'`, `'accent'`, `'info'`, `'success'`, `'warning'`, `'destructive'`, `'contrast'` (non exhaustive).
|
|
286
|
+
- `size` (`"xs" | "sm" | "md" | "lg" | "xl" | "mini"`, default: `'md'`): Size of the step indicators and typography.
|
|
287
|
+
- `show-step-numbers` (`boolean`, default: `true`): Show step numbers inside the indicators.
|
|
288
|
+
- `auto-validate-steps` (`boolean`, default: `true`): Automatically show a checkmark icon for completed steps.
|
|
289
|
+
- `clickable` (`boolean`, default: `false`): Enable click interaction on steps.
|
|
290
|
+
- `animated` (`boolean`, default: `true`): Enable animations (pulse on active, state transitions, connector progress).
|
|
291
|
+
- `rounded-size` (`MazTimelineRoundedSize`, default: `'md'`): Border radius of step indicators. Values: `'none'`, `'sm'`, `'md'`, `'lg'`, `'xl'`, `'2xl'`, `'3xl'`, `'full'` (non exhaustive).
|
|
292
|
+
|
|
293
|
+
### Events
|
|
294
|
+
|
|
295
|
+
- `@update:model-value` (payload: `value: number`): Emitted when the active step changes
|
|
296
|
+
- `@click-step` (payload: `payload: { step: MazTimelineItem; index: number; }`): Emitted when a clickable step is clicked
|
|
297
|
+
|
|
298
|
+
### Slots
|
|
299
|
+
|
|
300
|
+
- `#indicator`: Custom content for the step indicator circle Bindings: `step: MazTimelineItem` (The step data), `index: number` (The step index), `state: MazTimelineStepState` (The resolved step state), `isActive: boolean`, `isCompleted: boolean`.
|
|
301
|
+
- `#content`: Full custom content area replacing title and subtitle Bindings: `step: MazTimelineItem` (The step data), `index: number` (The step index), `state: MazTimelineStepState` (The resolved step state), `isActive: boolean`, `isCompleted: boolean`.
|
|
302
|
+
- `#title`: Custom title content Bindings: `step: MazTimelineItem` (The step data), `index: number` (The step index), `state: MazTimelineStepState` (The resolved step state).
|
|
303
|
+
- `#subtitle`: Custom subtitle content Bindings: `step: MazTimelineItem` (The step data), `index: number` (The step index), `state: MazTimelineStepState` (The resolved step state).
|
|
304
|
+
- `#connector`: Custom connector between steps Bindings: `index: number` (The index of the step before this connector), `isCompleted: boolean`, `isActive: boolean`.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "MazUiProvider"
|
|
3
|
+
description: "MazUiProvider component."
|
|
4
|
+
package: "maz-ui"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# MazUiProvider
|
|
8
|
+
|
|
9
|
+
> MazUiProvider component.
|
|
10
|
+
|
|
11
|
+
- Package: `maz-ui`
|
|
12
|
+
- Import: `import MazUiProvider from 'maz-ui/components/MazUiProvider'`
|
|
13
|
+
- Nuxt: auto-imported by `@maz-ui/nuxt`, no import needed in a Nuxt app
|
|
14
|
+
|
|
15
|
+
## MazUiProvider API
|
|
16
|
+
|
|
17
|
+
`import MazUiProvider from 'maz-ui/components/MazUiProvider'`
|
|
18
|
+
|
|
19
|
+
### Props
|
|
20
|
+
|
|
21
|
+
- `theme` (`MazUiThemeOptions & { preset: ThemePreset; }`, required)
|
|
22
|
+
- `translations` (`MazUiProviderTranslations<TLocale>`, required): Must include `locale` and at least the messages for that locale in `messages`.
|
|
23
|
+
|
|
24
|
+
### Slots
|
|
25
|
+
|
|
26
|
+
- `#default`
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "MazWindowMockup"
|
|
3
|
+
description: "MazWindowMockup renders a macOS-style window frame in three variants - browser, terminal, and editor - to showcase content, demos, or code examples in your documentation or UI."
|
|
4
|
+
package: "maz-ui"
|
|
5
|
+
url: "https://maz-ui.com/components/maz-window-mockup"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# MazWindowMockup
|
|
9
|
+
|
|
10
|
+
> MazWindowMockup renders a macOS-style window frame in three variants - browser, terminal, and editor - to showcase content, demos, or code examples in your documentation or UI.
|
|
11
|
+
|
|
12
|
+
- Package: `maz-ui`
|
|
13
|
+
- Import: `import MazWindowMockup from 'maz-ui/components/MazWindowMockup'`
|
|
14
|
+
- Nuxt: auto-imported by `@maz-ui/nuxt`, no import needed in a Nuxt app
|
|
15
|
+
- Web: https://maz-ui.com/components/maz-window-mockup
|
|
16
|
+
|
|
17
|
+
> Before use it, you should install the MazUi plugin in your project, follow instructions in [Getting Started](../guide/getting-started.md)
|
|
18
|
+
|
|
19
|
+
**Note: Optional: shiki for code variants**
|
|
20
|
+
|
|
21
|
+
When you pass the `code` prop, `MazWindowMockup` mounts `MazCodeHighlight` internally for syntax highlighting. This requires the [`shiki`](https://shiki.style) optional peer dependency to be installed. See the [MazCodeHighlight installation note](./maz-code-highlight.md#installation-requirement).
|
|
22
|
+
|
|
23
|
+
## Browser variant
|
|
24
|
+
|
|
25
|
+
The default variant. Displays an address bar with the `url` prop and a copy-URL button on the right side of the bar.
|
|
26
|
+
|
|
27
|
+
```vue
|
|
28
|
+
<template>
|
|
29
|
+
<MazWindowMockup url="https://maz-ui.com" min-height="100px">
|
|
30
|
+
<div>Browser content goes here</div>
|
|
31
|
+
</MazWindowMockup>
|
|
32
|
+
</template>
|
|
33
|
+
|
|
34
|
+
<script lang="ts" setup>
|
|
35
|
+
import MazWindowMockup from 'maz-ui/components/MazWindowMockup'
|
|
36
|
+
</script>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Hide the URL copy button
|
|
40
|
+
|
|
41
|
+
Set `:hide-url-copy="true"` to remove the copy-URL button from the title bar.
|
|
42
|
+
|
|
43
|
+
```vue
|
|
44
|
+
<template>
|
|
45
|
+
<MazWindowMockup url="https://maz-ui.com" min-height="80px" :hide-url-copy="true" />
|
|
46
|
+
</template>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### With screenshot
|
|
50
|
+
|
|
51
|
+
Use this variant to display a screenshot of a website.
|
|
52
|
+
|
|
53
|
+
```vue
|
|
54
|
+
<template>
|
|
55
|
+
<MazWindowMockup url="https://maz-ui.com" min-height="100px">
|
|
56
|
+
<img src="/img/screenshots/maz-ui-home-desktop.webp" alt="Maz UI Demo Dashboard" width="100%">
|
|
57
|
+
</MazWindowMockup>
|
|
58
|
+
</template>
|
|
59
|
+
|
|
60
|
+
<script lang="ts" setup>
|
|
61
|
+
import MazWindowMockup from 'maz-ui/components/MazWindowMockup'
|
|
62
|
+
</script>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Terminal variant
|
|
66
|
+
|
|
67
|
+
Displays a centered title and a `$` prompt prefix in front of the code (when `code` is provided). The prompt prefix is **not** copied to the clipboard - the copy button only writes the raw `code` value.
|
|
68
|
+
|
|
69
|
+
```vue
|
|
70
|
+
<template>
|
|
71
|
+
<MazWindowMockup variant="terminal" title="zsh" code="pnpm add maz-ui" language="bash" />
|
|
72
|
+
</template>
|
|
73
|
+
|
|
74
|
+
<script lang="ts" setup>
|
|
75
|
+
import MazWindowMockup from 'maz-ui/components/MazWindowMockup'
|
|
76
|
+
</script>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Custom prompt
|
|
80
|
+
|
|
81
|
+
Replace the default `$` with any character via the `prompt` prop.
|
|
82
|
+
|
|
83
|
+
```vue
|
|
84
|
+
<template>
|
|
85
|
+
<MazWindowMockup variant="terminal" code="git status" language="bash" prompt="❯" />
|
|
86
|
+
</template>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Without prompt
|
|
90
|
+
|
|
91
|
+
Hide the default prompt by setting `hide-prompt` to `true`.
|
|
92
|
+
|
|
93
|
+
```vue
|
|
94
|
+
<template>
|
|
95
|
+
<MazWindowMockup variant="terminal" code="git status" language="bash" :hide-prompt="true" />
|
|
96
|
+
</template>
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Editor variant
|
|
100
|
+
|
|
101
|
+
Shows a filename tab anchored to the bottom of the title bar - matching the look of real editors like VSCode.
|
|
102
|
+
|
|
103
|
+
```vue
|
|
104
|
+
<template>
|
|
105
|
+
<MazWindowMockup variant="editor" filename="App.vue" :code="vueCode" language="vue" />
|
|
106
|
+
</template>
|
|
107
|
+
|
|
108
|
+
<script lang="ts" setup>
|
|
109
|
+
import MazWindowMockup from 'maz-ui/components/MazWindowMockup'
|
|
110
|
+
|
|
111
|
+
const vueCode = `<template>
|
|
112
|
+
<MazBtn>Click me</MazBtn>
|
|
113
|
+
</template>`
|
|
114
|
+
</script>
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## With code and language props
|
|
118
|
+
|
|
119
|
+
Pass `code` and `language` to display highlighted source code via `MazCodeHighlight`. The inner highlighter automatically renders with squared corners so it sits flush against the window's border.
|
|
120
|
+
|
|
121
|
+
```vue
|
|
122
|
+
<template>
|
|
123
|
+
<MazWindowMockup code="import MazBtn from 'maz-ui/components/MazBtn'" language="ts" />
|
|
124
|
+
</template>
|
|
125
|
+
|
|
126
|
+
<script lang="ts" setup>
|
|
127
|
+
import MazWindowMockup from 'maz-ui/components/MazWindowMockup'
|
|
128
|
+
</script>
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Empty-state placeholder
|
|
132
|
+
|
|
133
|
+
When neither `code` nor a slot content is provided, the content area renders an empty placeholder. Pass the optional `label` prop to display a centered text inside it.
|
|
134
|
+
|
|
135
|
+
```vue
|
|
136
|
+
<template>
|
|
137
|
+
<MazWindowMockup url="https://maz-ui.com" min-height="160px" label="Preview" />
|
|
138
|
+
</template>
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Custom translations
|
|
142
|
+
|
|
143
|
+
The URL copy button's aria-label and tooltip come from the `@maz-ui/translations` package (`windowMockup.copyUrlToClipboard` / `windowMockup.urlCopiedToClipboard`). Override per-instance with the `translations` prop:
|
|
144
|
+
|
|
145
|
+
```vue
|
|
146
|
+
<template>
|
|
147
|
+
<MazWindowMockup
|
|
148
|
+
url="https://maz-ui.com"
|
|
149
|
+
min-height="80px"
|
|
150
|
+
:translations="{
|
|
151
|
+
copyUrlToClipboard: 'Copier l\'URL',
|
|
152
|
+
urlCopiedToClipboard: 'URL copiée !',
|
|
153
|
+
}"
|
|
154
|
+
/>
|
|
155
|
+
</template>
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
For app-wide translations, set up the [maz-ui translations plugin](../ecosystem/translations.md) and the component will pick up your locale automatically.
|
|
159
|
+
|
|
160
|
+
## MazWindowMockup API
|
|
161
|
+
|
|
162
|
+
`import MazWindowMockup from 'maz-ui/components/MazWindowMockup'`
|
|
163
|
+
|
|
164
|
+
### Props
|
|
165
|
+
|
|
166
|
+
- `id` (`string`): Stable id used to scope the empty-state SVG pattern. Auto-generated if not provided.
|
|
167
|
+
- `variant` (`MazWindowMockupVariant`, default: `"browser"`): Window style variant. Values: `'browser'`, `'terminal'`, `'editor'` (non exhaustive).
|
|
168
|
+
- `url` (`string`, default: `"localhost"`): URL to display in the browser address bar (browser variant only).
|
|
169
|
+
- `filename` (`string`, default: `"index.vue"`): Filename to display in the editor tab (editor variant only).
|
|
170
|
+
- `title` (`string`, default: `"zsh"`): Title to display in the terminal title bar (terminal variant only).
|
|
171
|
+
- `min-height` (`string`): Minimum height of the content area as a CSS value (e.g. '200px').
|
|
172
|
+
- `code` (`string`): Source code to display using MazCodeHighlight. Takes priority over the default slot.
|
|
173
|
+
- `language` (`string`): Language identifier for syntax highlighting (e.g. 'vue', 'ts', 'bash').
|
|
174
|
+
- `label` (`string`): Label displayed inside the empty-state placeholder when no code and no slot content are provided.
|
|
175
|
+
- `hide-prompt` (`boolean`, default: `false`): Whether to hide the terminal prompt prefix (no-op on non-terminal variants).
|
|
176
|
+
- `prompt` (`string`, default: `"$"`): Prefix to display before the code in the terminal (terminal variant only).
|
|
177
|
+
- `hide-url-copy` (`boolean`, default: `false`): Hide the copy-to-clipboard button next to the URL bar (browser variant only).
|
|
178
|
+
- `translations` (`{ copyUrlToClipboard?: string | undefined; urlCopiedToClipboard?: string | undefined; }`): Custom translations for the component. Override either key independently.
|
|
179
|
+
|
|
180
|
+
### Slots
|
|
181
|
+
|
|
182
|
+
- `#default`: Free content (image, interface, etc.) shown when code prop is not set.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "useAos"
|
|
3
|
+
description: "Vue composable for handling aos plugin in your components"
|
|
4
|
+
package: "maz-ui"
|
|
5
|
+
url: "https://maz-ui.com/composables/use-aos"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# useAos
|
|
9
|
+
|
|
10
|
+
> Vue composable for handling aos plugin in your components
|
|
11
|
+
|
|
12
|
+
- Package: `maz-ui`
|
|
13
|
+
- Import: `import { useAos } from 'maz-ui/composables/useAos'`
|
|
14
|
+
- Nuxt: auto-imported by `@maz-ui/nuxt` when `mazUi.plugins.aos` is enabled
|
|
15
|
+
- Web: https://maz-ui.com/composables/use-aos
|
|
16
|
+
|
|
17
|
+
**Warning:**
|
|
18
|
+
|
|
19
|
+
You must install the [aos plugin](../plugins/aos.md#install) before you start using it
|
|
20
|
+
|
|
21
|
+
**Tip:**
|
|
22
|
+
|
|
23
|
+
More info about the [aos plugin](../plugins/aos.md) can be found in its documentation
|
|
24
|
+
|
|
25
|
+
## Usage
|
|
26
|
+
|
|
27
|
+
```vue
|
|
28
|
+
<script lang="ts" setup>
|
|
29
|
+
import { useAos } from 'maz-ui/composables'
|
|
30
|
+
|
|
31
|
+
const aos = useAos()
|
|
32
|
+
|
|
33
|
+
onMounted(() => {
|
|
34
|
+
aos.runAnimations()
|
|
35
|
+
})
|
|
36
|
+
</script>
|
|
37
|
+
|
|
38
|
+
<template>
|
|
39
|
+
<img data-maz-aos="scale-in">
|
|
40
|
+
</template>
|
|
41
|
+
```
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "useWindowSize"
|
|
3
|
+
description: "This composable extends the functionality of the useWindowSize composable to manage responsive breakpoints"
|
|
4
|
+
package: "maz-ui"
|
|
5
|
+
url: "https://maz-ui.com/composables/use-breakpoints"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# useWindowSize
|
|
9
|
+
|
|
10
|
+
> This composable extends the functionality of the useWindowSize composable to manage responsive breakpoints
|
|
11
|
+
|
|
12
|
+
- Package: `maz-ui`
|
|
13
|
+
- Import: `import { useBreakpoints } from 'maz-ui/composables/useBreakpoints'`
|
|
14
|
+
- Nuxt: auto-imported by `@maz-ui/nuxt`, no import needed in a Nuxt app
|
|
15
|
+
- Web: https://maz-ui.com/composables/use-breakpoints
|
|
16
|
+
|
|
17
|
+
## Basic usage
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
const breakpoints = {
|
|
21
|
+
'sm': '640px',
|
|
22
|
+
'md': '768px',
|
|
23
|
+
'lg': '1024px',
|
|
24
|
+
'xl': '1280px',
|
|
25
|
+
'2xl': '1536px',
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const {
|
|
29
|
+
isLargeScreen,
|
|
30
|
+
isMediumScreen,
|
|
31
|
+
isSmallScreen,
|
|
32
|
+
} = useBreakpoints({
|
|
33
|
+
breakpoints,
|
|
34
|
+
initialWidth: 0,
|
|
35
|
+
mediumBreakPoint: 'md',
|
|
36
|
+
largeBreakPoint: 'lg',
|
|
37
|
+
})
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Warning:**
|
|
41
|
+
|
|
42
|
+
More documentation to come
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "useDialog"
|
|
3
|
+
description: "Vue composable for handling dialog plugin in your components"
|
|
4
|
+
package: "maz-ui"
|
|
5
|
+
url: "https://maz-ui.com/composables/use-dialog"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# useDialog
|
|
9
|
+
|
|
10
|
+
> Vue composable for handling dialog plugin in your components
|
|
11
|
+
|
|
12
|
+
- Package: `maz-ui`
|
|
13
|
+
- Import: `import { useDialog } from 'maz-ui/composables/useDialog'`
|
|
14
|
+
- Nuxt: auto-imported by `@maz-ui/nuxt` when `mazUi.plugins.dialog` is enabled
|
|
15
|
+
- Web: https://maz-ui.com/composables/use-dialog
|
|
16
|
+
|
|
17
|
+
**Warning:**
|
|
18
|
+
|
|
19
|
+
You must install [dialog plugin](../plugins/dialog.md#install) before use it
|
|
20
|
+
|
|
21
|
+
**Tip:**
|
|
22
|
+
|
|
23
|
+
More info about [dialog plugin](../plugins/dialog.md) in its documentation
|
|
24
|
+
|
|
25
|
+
## Usage
|
|
26
|
+
|
|
27
|
+
```vue
|
|
28
|
+
<script lang="ts" setup>
|
|
29
|
+
import { useDialog, useToast } from 'maz-ui/composables'
|
|
30
|
+
|
|
31
|
+
const dialog = useDialog()
|
|
32
|
+
|
|
33
|
+
const toast = useToast()
|
|
34
|
+
|
|
35
|
+
function openDialog() {
|
|
36
|
+
dialog.open({
|
|
37
|
+
title: 'Dialog title',
|
|
38
|
+
message: 'Dialog message',
|
|
39
|
+
onAccept: (response) => {
|
|
40
|
+
toast.success(`Dialog accepted`, {
|
|
41
|
+
position: 'bottom',
|
|
42
|
+
})
|
|
43
|
+
},
|
|
44
|
+
onReject: (response) => {
|
|
45
|
+
toast.error(`Dialog rejected`, {
|
|
46
|
+
position: 'bottom',
|
|
47
|
+
})
|
|
48
|
+
},
|
|
49
|
+
})
|
|
50
|
+
}
|
|
51
|
+
</script>
|
|
52
|
+
|
|
53
|
+
<template>
|
|
54
|
+
<MazBtn @click="openDialog">
|
|
55
|
+
Open Dialog
|
|
56
|
+
</MazBtn>
|
|
57
|
+
</template>
|
|
58
|
+
```
|