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.
Files changed (186) hide show
  1. package/dist/assets/{MazDropzone.DJ8au25t.css → MazDropzone.BW2grpTi.css} +1 -1
  2. package/dist/chunks/{MazDrawer.DANxKYxJ.js → MazDrawer.CC8zomfx.js} +2 -2
  3. package/dist/chunks/{MazDropzone.POH3pmfi.js → MazDropzone.Dez5j0WP.js} +2 -2
  4. package/dist/components/MazDrawer.js +1 -1
  5. package/dist/components/MazDropzone.js +1 -1
  6. package/dist/components/MazDropzone.vue.d.ts +2 -2
  7. package/dist/components/MazInputPrice.vue.d.ts +1 -1
  8. package/dist/components/index.js +2 -2
  9. package/docs/README.md +207 -0
  10. package/docs/agents/agents-md.md +52 -0
  11. package/docs/agents/claude-rule.md +52 -0
  12. package/docs/components/maz-accordion.md +76 -0
  13. package/docs/components/maz-alert.md +241 -0
  14. package/docs/components/maz-animated-counter.md +87 -0
  15. package/docs/components/maz-animated-element.md +46 -0
  16. package/docs/components/maz-animated-text.md +53 -0
  17. package/docs/components/maz-avatar.md +193 -0
  18. package/docs/components/maz-backdrop.md +178 -0
  19. package/docs/components/maz-badge.md +167 -0
  20. package/docs/components/maz-bottom-sheet.md +257 -0
  21. package/docs/components/maz-btn-group.md +316 -0
  22. package/docs/components/maz-btn.md +423 -0
  23. package/docs/components/maz-card-spotlight.md +84 -0
  24. package/docs/components/maz-card.md +321 -0
  25. package/docs/components/maz-carousel.md +153 -0
  26. package/docs/components/maz-chart.md +206 -0
  27. package/docs/components/maz-checkbox.md +138 -0
  28. package/docs/components/maz-checklist.md +251 -0
  29. package/docs/components/maz-circular-progress-bar.md +109 -0
  30. package/docs/components/maz-code-highlight.md +155 -0
  31. package/docs/components/maz-container.md +241 -0
  32. package/docs/components/maz-date-picker.md +791 -0
  33. package/docs/components/maz-dialog-confirm.md +215 -0
  34. package/docs/components/maz-dialog.md +143 -0
  35. package/docs/components/maz-drawer.md +106 -0
  36. package/docs/components/maz-dropdown.md +419 -0
  37. package/docs/components/maz-dropzone.md +387 -0
  38. package/docs/components/maz-expand-animation.md +82 -0
  39. package/docs/components/maz-fullscreen-loader.md +58 -0
  40. package/docs/components/maz-gallery.md +79 -0
  41. package/docs/components/maz-icon.md +203 -0
  42. package/docs/components/maz-input-code.md +73 -0
  43. package/docs/components/maz-input-number.md +79 -0
  44. package/docs/components/maz-input-phone-number.md +536 -0
  45. package/docs/components/maz-input-price.md +68 -0
  46. package/docs/components/maz-input-tags.md +112 -0
  47. package/docs/components/maz-input.md +334 -0
  48. package/docs/components/maz-lazy-img.md +113 -0
  49. package/docs/components/maz-link.md +146 -0
  50. package/docs/components/maz-loading-bar.md +38 -0
  51. package/docs/components/maz-markdown-editor.md +320 -0
  52. package/docs/components/maz-pagination.md +82 -0
  53. package/docs/components/maz-popover.md +794 -0
  54. package/docs/components/maz-pull-to-refresh.md +222 -0
  55. package/docs/components/maz-radio-buttons.md +313 -0
  56. package/docs/components/maz-radio.md +119 -0
  57. package/docs/components/maz-read-more.md +209 -0
  58. package/docs/components/maz-reading-progress-bar.md +96 -0
  59. package/docs/components/maz-select-country.md +513 -0
  60. package/docs/components/maz-select.md +318 -0
  61. package/docs/components/maz-sidebar-content.md +25 -0
  62. package/docs/components/maz-sidebar-footer.md +25 -0
  63. package/docs/components/maz-sidebar-group.md +27 -0
  64. package/docs/components/maz-sidebar-header.md +25 -0
  65. package/docs/components/maz-sidebar-menu-button.md +41 -0
  66. package/docs/components/maz-sidebar-menu-item.md +25 -0
  67. package/docs/components/maz-sidebar-menu-sub.md +32 -0
  68. package/docs/components/maz-sidebar-menu.md +25 -0
  69. package/docs/components/maz-sidebar-separator.md +21 -0
  70. package/docs/components/maz-sidebar-trigger.md +25 -0
  71. package/docs/components/maz-sidebar.md +507 -0
  72. package/docs/components/maz-skeleton.md +226 -0
  73. package/docs/components/maz-slider.md +165 -0
  74. package/docs/components/maz-spinner.md +84 -0
  75. package/docs/components/maz-stepper.md +301 -0
  76. package/docs/components/maz-switch.md +86 -0
  77. package/docs/components/maz-table-cell.md +27 -0
  78. package/docs/components/maz-table-row.md +28 -0
  79. package/docs/components/maz-table-title.md +27 -0
  80. package/docs/components/maz-table-virtualizer.md +31 -0
  81. package/docs/components/maz-table.md +426 -0
  82. package/docs/components/maz-tabs-bar.md +43 -0
  83. package/docs/components/maz-tabs-content-item.md +27 -0
  84. package/docs/components/maz-tabs-content.md +27 -0
  85. package/docs/components/maz-tabs.md +308 -0
  86. package/docs/components/maz-textarea.md +255 -0
  87. package/docs/components/maz-ticker.md +427 -0
  88. package/docs/components/maz-timeline.md +304 -0
  89. package/docs/components/maz-ui-provider.md +26 -0
  90. package/docs/components/maz-window-mockup.md +182 -0
  91. package/docs/composables/use-aos.md +41 -0
  92. package/docs/composables/use-breakpoints.md +42 -0
  93. package/docs/composables/use-dialog.md +58 -0
  94. package/docs/composables/use-display-names.md +130 -0
  95. package/docs/composables/use-drag.md +185 -0
  96. package/docs/composables/use-form-validator.md +1123 -0
  97. package/docs/composables/use-idle-timeout.md +172 -0
  98. package/docs/composables/use-pull-to-refresh.md +86 -0
  99. package/docs/composables/use-reading-time.md +132 -0
  100. package/docs/composables/use-string-matching.md +41 -0
  101. package/docs/composables/use-swipe.md +171 -0
  102. package/docs/composables/use-timer.md +104 -0
  103. package/docs/composables/use-toast.md +50 -0
  104. package/docs/composables/use-user-visibility.md +127 -0
  105. package/docs/composables/use-wait.md +50 -0
  106. package/docs/composables/use-window-size.md +25 -0
  107. package/docs/directives/click-outside.md +182 -0
  108. package/docs/directives/fullscreen-img.md +83 -0
  109. package/docs/directives/lazy-img.md +182 -0
  110. package/docs/directives/tooltip.md +298 -0
  111. package/docs/directives/zoom-img.md +100 -0
  112. package/docs/ecosystem/eslint-config.md +289 -0
  113. package/docs/ecosystem/icons/icon-set.md +25 -0
  114. package/docs/ecosystem/icons/index.md +584 -0
  115. package/docs/ecosystem/mcp.md +165 -0
  116. package/docs/ecosystem/node/exec-promise.md +93 -0
  117. package/docs/ecosystem/node/index.md +53 -0
  118. package/docs/ecosystem/node/logger.md +152 -0
  119. package/docs/ecosystem/node/print-banner.md +101 -0
  120. package/docs/ecosystem/node/setup-agents.md +102 -0
  121. package/docs/ecosystem/nuxt.md +551 -0
  122. package/docs/ecosystem/stylelint-config.md +310 -0
  123. package/docs/ecosystem/themes.md +966 -0
  124. package/docs/ecosystem/translations.md +1173 -0
  125. package/docs/ecosystem/utils/camel-case.md +37 -0
  126. package/docs/ecosystem/utils/capitalize.md +37 -0
  127. package/docs/ecosystem/utils/check-availability.md +85 -0
  128. package/docs/ecosystem/utils/cookie.md +86 -0
  129. package/docs/ecosystem/utils/country-code-to-unicode-flag.md +128 -0
  130. package/docs/ecosystem/utils/currency.md +53 -0
  131. package/docs/ecosystem/utils/date.md +53 -0
  132. package/docs/ecosystem/utils/debounce-callback.md +44 -0
  133. package/docs/ecosystem/utils/debounce-id.md +75 -0
  134. package/docs/ecosystem/utils/debounce.md +71 -0
  135. package/docs/ecosystem/utils/fetch-locale-ip.md +39 -0
  136. package/docs/ecosystem/utils/format-json.md +39 -0
  137. package/docs/ecosystem/utils/format-phone-number.md +43 -0
  138. package/docs/ecosystem/utils/get-browser-locale.md +35 -0
  139. package/docs/ecosystem/utils/get-country-flag-url.md +67 -0
  140. package/docs/ecosystem/utils/get-error-message.md +45 -0
  141. package/docs/ecosystem/utils/idle-timeout.md +96 -0
  142. package/docs/ecosystem/utils/index.md +57 -0
  143. package/docs/ecosystem/utils/is-client.md +38 -0
  144. package/docs/ecosystem/utils/is-equal.md +44 -0
  145. package/docs/ecosystem/utils/is-ios.md +43 -0
  146. package/docs/ecosystem/utils/is-server.md +37 -0
  147. package/docs/ecosystem/utils/is-standalone-mode.md +49 -0
  148. package/docs/ecosystem/utils/kebab-case.md +42 -0
  149. package/docs/ecosystem/utils/normalize-string.md +83 -0
  150. package/docs/ecosystem/utils/number.md +51 -0
  151. package/docs/ecosystem/utils/pascal-case.md +41 -0
  152. package/docs/ecosystem/utils/prevent-ios-input-zoom.md +72 -0
  153. package/docs/ecosystem/utils/script-loader.md +85 -0
  154. package/docs/ecosystem/utils/sleep.md +65 -0
  155. package/docs/ecosystem/utils/snake-case.md +42 -0
  156. package/docs/ecosystem/utils/swipe-handler.md +97 -0
  157. package/docs/ecosystem/utils/textarea-autogrow.md +47 -0
  158. package/docs/ecosystem/utils/throttle-id.md +54 -0
  159. package/docs/ecosystem/utils/throttle.md +63 -0
  160. package/docs/ecosystem/utils/truthy-filter.md +37 -0
  161. package/docs/ecosystem/utils/types/deep-key-of.md +54 -0
  162. package/docs/ecosystem/utils/types/deep-partial.md +48 -0
  163. package/docs/ecosystem/utils/types/deep-required.md +45 -0
  164. package/docs/ecosystem/utils/types/flatten-object-keys.md +50 -0
  165. package/docs/ecosystem/utils/types/generic-instance-type.md +48 -0
  166. package/docs/ecosystem/utils/types/infer-maybe-ref.md +41 -0
  167. package/docs/ecosystem/utils/upper-first.md +38 -0
  168. package/docs/ecosystem/utils/user-visibility.md +75 -0
  169. package/docs/guide/ai-agents.md +237 -0
  170. package/docs/guide/browser-support.md +88 -0
  171. package/docs/guide/getting-started.md +191 -0
  172. package/docs/guide/global-defaults.md +103 -0
  173. package/docs/guide/maz-ui-provider.md +231 -0
  174. package/docs/guide/migration-v5.md +871 -0
  175. package/docs/guide/resolvers.md +650 -0
  176. package/docs/guide/tailwind.md +483 -0
  177. package/docs/guide/vue.md +286 -0
  178. package/docs/manifest.json +1 -0
  179. package/docs/plugins/aos.md +312 -0
  180. package/docs/plugins/dialog.md +269 -0
  181. package/docs/plugins/toast.md +221 -0
  182. package/docs/plugins/wait.md +78 -0
  183. package/docs/reference/icons.md +46 -0
  184. package/docs/reference/tailwind-tokens.md +191 -0
  185. package/docs/rules.md +57 -0
  186. 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
+ ```