@maz-ui/mcp 4.0.0-beta.26

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 (175) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +264 -0
  3. package/bin/maz-ui-mcp.mjs +7 -0
  4. package/dist/mcp.d.mts +13 -0
  5. package/dist/mcp.d.ts +13 -0
  6. package/dist/mcp.mjs +586 -0
  7. package/docs/generated-docs/maz-accordion.doc.md +21 -0
  8. package/docs/generated-docs/maz-animated-counter.doc.md +17 -0
  9. package/docs/generated-docs/maz-animated-element.doc.md +14 -0
  10. package/docs/generated-docs/maz-animated-text.doc.md +14 -0
  11. package/docs/generated-docs/maz-avatar.doc.md +44 -0
  12. package/docs/generated-docs/maz-backdrop.doc.md +61 -0
  13. package/docs/generated-docs/maz-badge.doc.md +16 -0
  14. package/docs/generated-docs/maz-bottom-sheet.doc.md +21 -0
  15. package/docs/generated-docs/maz-btn.doc.md +30 -0
  16. package/docs/generated-docs/maz-card-spotlight.doc.md +16 -0
  17. package/docs/generated-docs/maz-card.doc.md +39 -0
  18. package/docs/generated-docs/maz-carousel.doc.md +16 -0
  19. package/docs/generated-docs/maz-chart.doc.md +10 -0
  20. package/docs/generated-docs/maz-checkbox.doc.md +34 -0
  21. package/docs/generated-docs/maz-checklist.doc.md +30 -0
  22. package/docs/generated-docs/maz-circular-progress-bar.doc.md +27 -0
  23. package/docs/generated-docs/maz-date-picker.doc.md +52 -0
  24. package/docs/generated-docs/maz-dialog-confirm.doc.md +24 -0
  25. package/docs/generated-docs/maz-dialog.doc.md +22 -0
  26. package/docs/generated-docs/maz-drawer.doc.md +26 -0
  27. package/docs/generated-docs/maz-dropdown.doc.md +42 -0
  28. package/docs/generated-docs/maz-dropzone.doc.md +82 -0
  29. package/docs/generated-docs/maz-expand-animation.doc.md +12 -0
  30. package/docs/generated-docs/maz-fullscreen-loader.doc.md +13 -0
  31. package/docs/generated-docs/maz-gallery.doc.md +17 -0
  32. package/docs/generated-docs/maz-icon.doc.md +18 -0
  33. package/docs/generated-docs/maz-input-code.doc.md +25 -0
  34. package/docs/generated-docs/maz-input-number.doc.md +31 -0
  35. package/docs/generated-docs/maz-input-phone-number.doc.md +56 -0
  36. package/docs/generated-docs/maz-input-price.doc.md +26 -0
  37. package/docs/generated-docs/maz-input-tags.doc.md +24 -0
  38. package/docs/generated-docs/maz-input.doc.md +54 -0
  39. package/docs/generated-docs/maz-lazy-img.doc.md +31 -0
  40. package/docs/generated-docs/maz-link.doc.md +31 -0
  41. package/docs/generated-docs/maz-loading-bar.doc.md +6 -0
  42. package/docs/generated-docs/maz-pagination.doc.md +22 -0
  43. package/docs/generated-docs/maz-popover.doc.md +70 -0
  44. package/docs/generated-docs/maz-pull-to-refresh.doc.md +31 -0
  45. package/docs/generated-docs/maz-radio-buttons.doc.md +33 -0
  46. package/docs/generated-docs/maz-radio.doc.md +33 -0
  47. package/docs/generated-docs/maz-reading-progress-bar.doc.md +18 -0
  48. package/docs/generated-docs/maz-select-country.doc.md +44 -0
  49. package/docs/generated-docs/maz-select.doc.md +65 -0
  50. package/docs/generated-docs/maz-slider.doc.md +20 -0
  51. package/docs/generated-docs/maz-spinner.doc.md +6 -0
  52. package/docs/generated-docs/maz-stepper.doc.md +29 -0
  53. package/docs/generated-docs/maz-switch.doc.md +31 -0
  54. package/docs/generated-docs/maz-table-cell.doc.md +5 -0
  55. package/docs/generated-docs/maz-table-row.doc.md +11 -0
  56. package/docs/generated-docs/maz-table-title.doc.md +5 -0
  57. package/docs/generated-docs/maz-table.doc.md +66 -0
  58. package/docs/generated-docs/maz-tabs-bar.doc.md +18 -0
  59. package/docs/generated-docs/maz-tabs-content-item.doc.md +11 -0
  60. package/docs/generated-docs/maz-tabs-content.doc.md +5 -0
  61. package/docs/generated-docs/maz-tabs.doc.md +17 -0
  62. package/docs/generated-docs/maz-textarea.doc.md +41 -0
  63. package/docs/src/components/index.md +8 -0
  64. package/docs/src/components/maz-accordion.md +80 -0
  65. package/docs/src/components/maz-animated-counter.md +124 -0
  66. package/docs/src/components/maz-animated-element.md +36 -0
  67. package/docs/src/components/maz-animated-text.md +36 -0
  68. package/docs/src/components/maz-avatar.md +179 -0
  69. package/docs/src/components/maz-backdrop.md +16 -0
  70. package/docs/src/components/maz-badge.md +222 -0
  71. package/docs/src/components/maz-bottom-sheet.md +398 -0
  72. package/docs/src/components/maz-btn.md +526 -0
  73. package/docs/src/components/maz-card-spotlight.md +163 -0
  74. package/docs/src/components/maz-card.md +447 -0
  75. package/docs/src/components/maz-carousel.md +127 -0
  76. package/docs/src/components/maz-chart.md +346 -0
  77. package/docs/src/components/maz-checkbox.md +168 -0
  78. package/docs/src/components/maz-checklist.md +414 -0
  79. package/docs/src/components/maz-circular-progress-bar.md +147 -0
  80. package/docs/src/components/maz-date-picker.md +1078 -0
  81. package/docs/src/components/maz-dialog-confirm.md +240 -0
  82. package/docs/src/components/maz-dialog.md +208 -0
  83. package/docs/src/components/maz-drawer.md +177 -0
  84. package/docs/src/components/maz-dropdown.md +650 -0
  85. package/docs/src/components/maz-dropzone.md +442 -0
  86. package/docs/src/components/maz-expand-animation.md +99 -0
  87. package/docs/src/components/maz-fullscreen-loader.md +58 -0
  88. package/docs/src/components/maz-gallery.md +85 -0
  89. package/docs/src/components/maz-icon.md +85 -0
  90. package/docs/src/components/maz-input-code.md +61 -0
  91. package/docs/src/components/maz-input-number.md +81 -0
  92. package/docs/src/components/maz-input-phone-number.md +867 -0
  93. package/docs/src/components/maz-input-price.md +58 -0
  94. package/docs/src/components/maz-input-tags.md +114 -0
  95. package/docs/src/components/maz-input.md +453 -0
  96. package/docs/src/components/maz-lazy-img.md +24 -0
  97. package/docs/src/components/maz-link.md +156 -0
  98. package/docs/src/components/maz-loading-bar.md +26 -0
  99. package/docs/src/components/maz-pagination.md +81 -0
  100. package/docs/src/components/maz-popover.md +1414 -0
  101. package/docs/src/components/maz-pull-to-refresh.md +49 -0
  102. package/docs/src/components/maz-radio-buttons.md +456 -0
  103. package/docs/src/components/maz-radio.md +141 -0
  104. package/docs/src/components/maz-reading-progress-bar.md +74 -0
  105. package/docs/src/components/maz-select-country.md +636 -0
  106. package/docs/src/components/maz-select.md +439 -0
  107. package/docs/src/components/maz-slider.md +191 -0
  108. package/docs/src/components/maz-spinner.md +93 -0
  109. package/docs/src/components/maz-stepper.md +418 -0
  110. package/docs/src/components/maz-switch.md +92 -0
  111. package/docs/src/components/maz-table.md +571 -0
  112. package/docs/src/components/maz-tabs.md +231 -0
  113. package/docs/src/components/maz-textarea.md +218 -0
  114. package/docs/src/composables/use-aos.md +34 -0
  115. package/docs/src/composables/use-breakpoints.md +35 -0
  116. package/docs/src/composables/use-dialog.md +88 -0
  117. package/docs/src/composables/use-display-names.md +174 -0
  118. package/docs/src/composables/use-form-validator.md +1149 -0
  119. package/docs/src/composables/use-idle-timeout.md +256 -0
  120. package/docs/src/composables/use-reading-time.md +168 -0
  121. package/docs/src/composables/use-string-matching.md +63 -0
  122. package/docs/src/composables/use-swipe.md +223 -0
  123. package/docs/src/composables/use-timer.md +130 -0
  124. package/docs/src/composables/use-toast.md +71 -0
  125. package/docs/src/composables/use-user-visibility.md +169 -0
  126. package/docs/src/composables/use-wait.md +62 -0
  127. package/docs/src/composables/use-window-size.md +18 -0
  128. package/docs/src/demo/DemoAuthPage.vue +178 -0
  129. package/docs/src/demo/DemoDashboardPage.vue +298 -0
  130. package/docs/src/demo/DemoProductPage.vue +135 -0
  131. package/docs/src/directives/click-outside.md +275 -0
  132. package/docs/src/directives/fullscreen-img.md +101 -0
  133. package/docs/src/directives/lazy-img.md +184 -0
  134. package/docs/src/directives/tooltip.md +458 -0
  135. package/docs/src/directives/zoom-img.md +127 -0
  136. package/docs/src/guide/cli.md +144 -0
  137. package/docs/src/guide/getting-started.md +284 -0
  138. package/docs/src/guide/icon-set.md +60 -0
  139. package/docs/src/guide/icons.md +481 -0
  140. package/docs/src/guide/mcp.md +210 -0
  141. package/docs/src/guide/migration-v4.md +898 -0
  142. package/docs/src/guide/nuxt.md +411 -0
  143. package/docs/src/guide/resolvers.md +697 -0
  144. package/docs/src/guide/themes.md +789 -0
  145. package/docs/src/guide/translations.md +1173 -0
  146. package/docs/src/guide/vue.md +243 -0
  147. package/docs/src/helpers/camel-case.md +14 -0
  148. package/docs/src/helpers/capitalize.md +51 -0
  149. package/docs/src/helpers/check-availability.md +14 -0
  150. package/docs/src/helpers/country-code-to-unicode-flag.md +213 -0
  151. package/docs/src/helpers/currency.md +67 -0
  152. package/docs/src/helpers/date.md +67 -0
  153. package/docs/src/helpers/debounce-callback.md +14 -0
  154. package/docs/src/helpers/debounce-id.md +14 -0
  155. package/docs/src/helpers/debounce.md +14 -0
  156. package/docs/src/helpers/get-country-flag-url.md +156 -0
  157. package/docs/src/helpers/is-client.md +14 -0
  158. package/docs/src/helpers/is-equal.md +14 -0
  159. package/docs/src/helpers/is-standalone-mode.md +14 -0
  160. package/docs/src/helpers/kebab-case.md +14 -0
  161. package/docs/src/helpers/normalize-string.md +14 -0
  162. package/docs/src/helpers/number.md +65 -0
  163. package/docs/src/helpers/pascal-case.md +14 -0
  164. package/docs/src/helpers/script-loader.md +14 -0
  165. package/docs/src/helpers/sleep.md +14 -0
  166. package/docs/src/helpers/snake-case.md +14 -0
  167. package/docs/src/helpers/throttle-id.md +14 -0
  168. package/docs/src/helpers/throttle.md +14 -0
  169. package/docs/src/index.md +555 -0
  170. package/docs/src/made-with-maz-ui.md +58 -0
  171. package/docs/src/plugins/aos.md +347 -0
  172. package/docs/src/plugins/dialog.md +411 -0
  173. package/docs/src/plugins/toast.md +349 -0
  174. package/docs/src/plugins/wait.md +109 -0
  175. package/package.json +84 -0
@@ -0,0 +1,458 @@
1
+ ---
2
+ title: vTooltip
3
+ description: vTooltip is a Vue 3 directive to display a text when the user hovers an element
4
+ ---
5
+
6
+ # {{ $frontmatter.title }}
7
+
8
+ {{ $frontmatter.description }}
9
+
10
+
11
+ ## Basic usage
12
+
13
+ <ComponentDemo>
14
+ <p class="maz-mb-4">
15
+ Hover the buttons
16
+ </p>
17
+ <div
18
+ class="maz-flex maz-gap-3 maz-flex-wrap"
19
+ >
20
+ <MazBtn v-tooltip="'This is a top tooltip'">
21
+ Top
22
+ </MazBtn>
23
+ <MazBtn v-tooltip.right="'This is a top tooltip'">
24
+ Right
25
+ </MazBtn>
26
+ <MazBtn v-tooltip.left="'This is a top tooltip'">
27
+ Left
28
+ </MazBtn>
29
+ <MazBtn v-tooltip.bottom="'This is a top tooltip'">
30
+ Bottom
31
+ </MazBtn>
32
+ </div>
33
+
34
+ <template #code>
35
+
36
+ ```vue
37
+ <script lang="ts" setup>
38
+ import { vTooltip } from 'maz-ui/directives'
39
+ </script>
40
+
41
+ <template>
42
+ <MazBtn v-tooltip="'This is a top tooltip'">
43
+ Top
44
+ </MazBtn>
45
+ <MazBtn v-tooltip.right="'This is a top tooltip'">
46
+ Right
47
+ </MazBtn>
48
+ <MazBtn v-tooltip.left="'This is a top tooltip'">
49
+ Left
50
+ </MazBtn>
51
+ <MazBtn v-tooltip.bottom="'This is a top tooltip'">
52
+ Bottom
53
+ </MazBtn>
54
+ </template>
55
+ ```
56
+
57
+ </template>
58
+ </ComponentDemo>
59
+
60
+ ## Colors
61
+
62
+ <ComponentDemo>
63
+ <p class="maz-mb-4">
64
+ Hover the buttons
65
+ </p>
66
+ <div
67
+ class="maz-flex maz-gap-3 maz-flex-wrap"
68
+ >
69
+ <MazBtn v-tooltip="{ text: 'Tooltip text', color: 'primary' }">
70
+ Primary
71
+ </MazBtn>
72
+ <MazBtn v-tooltip="{ text: 'Tooltip text', color: 'secondary' }" color="secondary">
73
+ Secondary
74
+ </MazBtn>
75
+ <MazBtn v-tooltip="{ text: 'Tooltip text', color: 'accent' }" color="accent">
76
+ Accent
77
+ </MazBtn>
78
+ <MazBtn v-tooltip="{ text: 'Tooltip text', color: 'success' }" color="success">
79
+ Success
80
+ </MazBtn>
81
+ <MazBtn v-tooltip="{ text: 'Tooltip text', color: 'warning' }" color="warning">
82
+ Warning
83
+ </MazBtn>
84
+ <MazBtn v-tooltip="{ text: 'Tooltip text', color: 'destructive' }" color="destructive">
85
+ Destructive
86
+ </MazBtn>
87
+ <MazBtn v-tooltip="{ text: 'Tooltip text', color: 'info' }" color="info">
88
+ Info
89
+ </MazBtn>
90
+ <MazBtn v-tooltip="{ text: 'Tooltip text', color: 'contrast' }" color="contrast">
91
+ Contrast
92
+ </MazBtn>
93
+ <MazBtn v-tooltip="{ text: 'Tooltip text', color: 'default' }" color="background">
94
+ Background
95
+ </MazBtn>
96
+ </div>
97
+
98
+ <template #code>
99
+
100
+ ```html
101
+ <MazBtn v-tooltip="{ text: 'Tooltip text', color: 'primary' }">
102
+ Primary
103
+ </MazBtn>
104
+
105
+ <MazBtn v-tooltip="{ text: 'Tooltip text', color: 'secondary' }" color="secondary">
106
+ Secondary
107
+ </MazBtn>
108
+
109
+ <MazBtn v-tooltip="{ text: 'Tooltip text', color: 'success' }" color="success">
110
+ Success
111
+ </MazBtn>
112
+
113
+ <MazBtn v-tooltip="{ text: 'Tooltip text', color: 'warning' }" color="warning">
114
+ Warning
115
+ </MazBtn>
116
+
117
+ <MazBtn v-tooltip="{ text: 'Tooltip text', color: 'destructive' }" color="destructive">
118
+ destructive
119
+ </MazBtn>
120
+
121
+ <MazBtn v-tooltip="{ text: 'Tooltip text', color: 'info' }" color="info">
122
+ Info
123
+ </MazBtn>
124
+
125
+ <MazBtn v-tooltip="{ text: 'Tooltip text', color: 'accent' }" color="accent">
126
+ Accent
127
+ </MazBtn>
128
+
129
+ <MazBtn v-tooltip="{ text: 'Tooltip text', color: 'contrast' }" color="contrast">
130
+ Contrast
131
+ </MazBtn>
132
+
133
+ <MazBtn v-tooltip="{ text: 'Tooltip text', color: 'default' }" color="background">
134
+ Background
135
+ </MazBtn>
136
+ ```
137
+
138
+ </template>
139
+ </ComponentDemo>
140
+
141
+ ## Position
142
+
143
+ You can change the position of the tooltip by passing a `position` option or using the directive modifier (e.g. `v-tooltip.top`).
144
+
145
+ <ComponentDemo>
146
+ <div
147
+ class="maz-flex maz-gap-3 maz-flex-wrap"
148
+ >
149
+ <MazBtn v-tooltip.bottom="{ text: 'Tooltip text' }">
150
+ Bottom
151
+ </MazBtn>
152
+ <MazBtn v-tooltip.left="{ text: 'Tooltip text' }">
153
+ Left
154
+ </MazBtn>
155
+ <MazBtn v-tooltip.right="{ text: 'Tooltip text' }">
156
+ Right
157
+ </MazBtn>
158
+ <MazBtn v-tooltip.top="{ text: 'Tooltip text' }">
159
+ Top
160
+ </MazBtn>
161
+ <MazBtn v-tooltip.top-start="{ text: 'Tooltip text' }">
162
+ Top start
163
+ </MazBtn>
164
+ <MazBtn v-tooltip.top-end="{ text: 'Tooltip text' }">
165
+ Top end
166
+ </MazBtn>
167
+ <MazBtn v-tooltip.bottom-start="{ text: 'Tooltip text' }">
168
+ Bottom start
169
+ </MazBtn>
170
+ <MazBtn v-tooltip.bottom-end="{ text: 'Tooltip text' }">
171
+ Bottom end
172
+ </MazBtn>
173
+ <MazBtn v-tooltip.left-start="{ text: 'Tooltip text' }">
174
+ Left start
175
+ </MazBtn>
176
+ <MazBtn v-tooltip.left-end="{ text: 'Tooltip text' }">
177
+ Left end
178
+ </MazBtn>
179
+ <MazBtn v-tooltip.right-start="{ text: 'Tooltip text' }">
180
+ Right start
181
+ </MazBtn>
182
+ <MazBtn v-tooltip.right-end="{ text: 'Tooltip text' }">
183
+ Right end
184
+ </MazBtn>
185
+ </div>
186
+
187
+ <template #code>
188
+
189
+ ```html
190
+ <MazBtn v-tooltip.bottom="{ text: 'Tooltip text' }">
191
+ Bottom
192
+ </MazBtn>
193
+
194
+ <MazBtn v-tooltip.left="{ text: 'Tooltip text' }">
195
+ Left
196
+ </MazBtn>
197
+
198
+ <MazBtn v-tooltip.right="{ text: 'Tooltip text' }">
199
+ Right
200
+ </MazBtn>
201
+
202
+ <MazBtn v-tooltip.top="{ text: 'Tooltip text' }">
203
+ Top
204
+ </MazBtn>
205
+
206
+ <MazBtn v-tooltip.top-start="{ text: 'Tooltip text' }">
207
+ Top start
208
+ </MazBtn>
209
+
210
+ <MazBtn v-tooltip.top-end="{ text: 'Tooltip text' }">
211
+ Top end
212
+ </MazBtn>
213
+
214
+ <MazBtn v-tooltip.bottom-start="{ text: 'Tooltip text' }">
215
+ Bottom start
216
+ </MazBtn>
217
+
218
+ <MazBtn v-tooltip.bottom-end="{ text: 'Tooltip text' }">
219
+ Bottom end
220
+ </MazBtn>
221
+ ```
222
+
223
+ </template>
224
+ </ComponentDemo>
225
+
226
+
227
+ ## HTML content
228
+
229
+ You can also use HTML content in the tooltip by passing a string to the `html` option.
230
+
231
+ <ComponentDemo>
232
+ <div
233
+ class="maz-flex maz-gap-3 maz-flex-wrap"
234
+ >
235
+ <MazBtn v-tooltip="{ html: '<strong>Tooltip</strong> text <br> with <br> line breaks' }">
236
+ HTML
237
+ </MazBtn>
238
+ </div>
239
+
240
+ <template #code>
241
+
242
+ ```html
243
+ <MazBtn v-tooltip="{ html: '<strong>Tooltip</strong> text <br> with <br> line breaks' }">
244
+ HTML
245
+ </MazBtn>
246
+ ```
247
+
248
+ </template>
249
+ </ComponentDemo>
250
+
251
+ ## Customization
252
+
253
+ You can customize the tooltip by passing a `panelClass` or `panelStyle` option.
254
+
255
+ <ComponentDemo>
256
+ <div
257
+ class="maz-flex maz-gap-3 maz-flex-wrap"
258
+ >
259
+ <MazBtn v-tooltip="{ text: 'Tooltip text', panelClass: 'maz-text-destructive' }">
260
+ panelClass
261
+ </MazBtn>
262
+ <MazBtn v-tooltip="{ text: 'Tooltip text', panelStyle: 'background-color: red; color: white;' }">
263
+ panelStyle
264
+ </MazBtn>
265
+ </div>
266
+
267
+ <template #code>
268
+
269
+ ```html
270
+ <MazBtn v-tooltip="{ text: 'Tooltip text', panelClass: 'text-red-500' }">
271
+ panelClass
272
+ </MazBtn>
273
+ <MazBtn v-tooltip="{ text: 'Tooltip text', panelStyle: 'background-color: red; color: white;' }">
274
+ panelStyle
275
+ </MazBtn>
276
+ ```
277
+
278
+ </template>
279
+ </ComponentDemo>
280
+
281
+ ## Trigger
282
+
283
+ You can change the trigger mode of the tooltip by passing a `trigger` option.
284
+
285
+ The default trigger is `hover`.
286
+
287
+ The `adaptive` trigger will use the `click` trigger on touch devices (mobile and tablet) and the `hover` trigger on non-touch devices (desktop).
288
+
289
+ <ComponentDemo>
290
+ <div
291
+ class="maz-flex maz-gap-3 maz-flex-wrap"
292
+ >
293
+ <MazBtn v-tooltip="{ text: 'Tooltip text', trigger: 'click' }">
294
+ Click
295
+ </MazBtn>
296
+ <MazBtn v-tooltip="{ text: 'Tooltip text', trigger: 'hover' }">
297
+ Hover
298
+ </MazBtn>
299
+ <MazBtn v-tooltip="{ text: 'Tooltip text', trigger: 'adaptive' }">
300
+ Adaptive
301
+ </MazBtn>
302
+ </div>
303
+
304
+ <template #code>
305
+
306
+ ```html
307
+ <MazBtn v-tooltip="{ text: 'Tooltip text', trigger: 'click' }">
308
+ Click
309
+ </MazBtn>
310
+
311
+ <MazBtn v-tooltip="{ text: 'Tooltip text', trigger: 'hover' }">
312
+ Hover
313
+ </MazBtn>
314
+ ```
315
+
316
+ </template>
317
+ </ComponentDemo>
318
+
319
+ ## Offset
320
+
321
+ The `offset` (in px) option allows you to adjust the position of the tooltip relative to the original element.
322
+
323
+ <ComponentDemo>
324
+ <div
325
+ class="maz-flex maz-gap-3 maz-flex-wrap"
326
+ >
327
+ <MazBtn v-tooltip="{ text: 'Tooltip text', offset: 0 }">
328
+ 0
329
+ </MazBtn>
330
+ <MazBtn v-tooltip="{ text: 'Tooltip text', offset: 10 }">
331
+ 10
332
+ </MazBtn>
333
+ <MazBtn v-tooltip="{ text: 'Tooltip text', offset: 20 }">
334
+ 20
335
+ </MazBtn>
336
+ <MazBtn v-tooltip="{ text: 'Tooltip text', offset: 40 }">
337
+ 40
338
+ </MazBtn>
339
+ </div>
340
+
341
+ <template #code>
342
+
343
+ </template>
344
+ </ComponentDemo>
345
+
346
+ ## Open programmatically
347
+
348
+ <ComponentDemo>
349
+ <div class="maz-flex maz-gap-3 maz-flex-wrap">
350
+ <MazBtn v-tooltip.top="{ text: 'Tooltip text', open: open }">
351
+ Primary
352
+ </MazBtn>
353
+ <MazBtn @click="open = !open" color="secondary">
354
+ Toggle tooltip
355
+ </MazBtn>
356
+ </div>
357
+
358
+ <template #code>
359
+
360
+ ```vue
361
+ <script lang="ts" setup>
362
+ import { vTooltip } from 'maz-ui/directives'
363
+ import { ref } from 'vue'
364
+
365
+ const open = ref(true)
366
+ </script>
367
+
368
+ <template>
369
+ <MazBtn v-tooltip.top="{ text: 'Tooltip text', open }">
370
+ Primary
371
+ </MazBtn>
372
+ <MazBtn color="secondary" @click="open = !open">
373
+ Toggle tooltip
374
+ </MazBtn>
375
+ </template>
376
+ ```
377
+
378
+ </template>
379
+ </ComponentDemo>
380
+
381
+ ## Global install
382
+
383
+ ### Vue
384
+
385
+ ```typescript
386
+ import { vTooltipInstall } from 'maz-ui/directives'
387
+ import { createApp } from 'vue'
388
+
389
+ const app = createApp(App)
390
+
391
+ // Options are optional
392
+ app.use(vTooltipInstall, {
393
+ position: 'top',
394
+ color: 'primary',
395
+ })
396
+
397
+ app.mount('#app')
398
+ ```
399
+
400
+ ### Nuxt
401
+
402
+ Please refer to the [Nuxt module documentation](./../guide/nuxt.md) for more information.
403
+
404
+ ## Types
405
+
406
+ ```ts
407
+ interface VTooltipOptions extends Partial<Omit<MazPopoverProps, 'modelValue'>> {
408
+ /**
409
+ * Text to display in the tooltip
410
+ */
411
+ text?: string
412
+ /**
413
+ * HTML content (alternative to text)
414
+ */
415
+ html?: string
416
+ /**
417
+ * Color variant of the tooltip
418
+ * @default default
419
+ */
420
+ color?: MazPopoverProps['color']
421
+ /**
422
+ * Position of the tooltip
423
+ * @default top
424
+ */
425
+ position?: PopoverPosition
426
+ /**
427
+ * Trigger of the tooltip
428
+ * @default hover
429
+ */
430
+ trigger?: MazPopoverTrigger
431
+ /**
432
+ * Close on click outside
433
+ * @default false
434
+ */
435
+ closeOnClickOutside?: boolean
436
+ /**
437
+ * Close on escape
438
+ * @default false
439
+ */
440
+ closeOnEscape?: boolean
441
+
442
+ /**
443
+ * Open the tooltip
444
+ * @default false
445
+ */
446
+ open?: boolean
447
+ }
448
+
449
+ type VTooltipBindingValue
450
+ = | string
451
+ | VTooltipOptions
452
+ ```
453
+
454
+ <script lang="ts" setup>
455
+ import { ref } from 'vue'
456
+ import { vTooltip } from 'maz-ui/src/directives/vTooltip'
457
+ const open = ref(true)
458
+ </script>
@@ -0,0 +1,127 @@
1
+ ---
2
+ title: vZoomImg
3
+ description: vZoomImg is a Vue 3 directive to enlarge an image like a modal on click, if you have several images, you can pass them like a carousel
4
+ ---
5
+
6
+ # {{ $frontmatter.title }}
7
+
8
+ {{ $frontmatter.description }}
9
+
10
+ > Can be mixed with [vLazyImg](./lazy-img.md) directive
11
+
12
+ ## Basic usage
13
+
14
+ > Click on the photo
15
+
16
+ <MazCard overflow-hidden>
17
+ <img
18
+ src="https://loremflickr.com/1500/1000"
19
+ v-zoom-img="{ src: 'https://loremflickr.com/1500/1000' }"
20
+ />
21
+ </MazCard>
22
+ <br />
23
+ <br />
24
+ <MazBtn v-zoom-img="{ src: 'https://loremflickr.com/1000/500' }">
25
+ Show photo
26
+ </MazBtn>
27
+
28
+ ```vue
29
+ <script lang="ts" setup>
30
+ import { vZoomImg } from 'maz-ui/directives'
31
+ </script>
32
+
33
+ <template>
34
+ <MazCard overflow-hidden>
35
+ <img
36
+ v-zoom-img="{ src: 'https://loremflickr.com/1500/1000' }"
37
+ src="https://loremflickr.com/1500/1000"
38
+ >
39
+ </MazCard>
40
+
41
+ <MazBtn v-zoom-img="{ src: 'https://loremflickr.com/1000/500' }">
42
+ Show photo
43
+ </MazBtn>
44
+ </template>
45
+ ```
46
+
47
+ ## Options
48
+
49
+ <br />
50
+
51
+ <MazCard overflow-hidden>
52
+ <img
53
+ src="https://loremflickr.com/1200/800"
54
+ v-zoom-img="zoomImgBinding"
55
+ />
56
+ </MazCard>
57
+
58
+ <script lang="ts" setup>
59
+ import { vZoomImg } from 'maz-ui/src/directives/vZoomImg'
60
+
61
+ const zoomImgBinding: vZoomImgBinding = {
62
+ src: 'https://loremflickr.com/1200/800',
63
+ alt: 'alt image',
64
+ blur: false,
65
+ scale: false,
66
+ disabled: false
67
+ }
68
+ </script>
69
+
70
+ ```vue
71
+ <script lang="ts" setup>
72
+ import { vZoomImg, type vZoomImgBindingValue } from 'maz-ui/directives'
73
+
74
+ const zoomImgBinding: vZoomImgBindingValue = {
75
+ src: 'https://loremflickr.com/1200/800',
76
+ alt: 'alt image', // will be set on the zoomed image
77
+ blur: false,
78
+ scale: false,
79
+ disabled: false
80
+ }
81
+ </script>
82
+
83
+ <template>
84
+ <MazCard overflow-hidden>
85
+ <img
86
+ v-zoom-img="zoomImgBinding"
87
+ src="https://loremflickr.com/1200/800"
88
+ >
89
+ </MazCard>
90
+ </template>
91
+ ```
92
+
93
+ ## Global install
94
+
95
+ ### Vue
96
+
97
+ ```typescript
98
+ import { vZoomImgInstall, type vZoomImgOptions } from 'maz-ui/directives'
99
+ import { createApp } from 'vue'
100
+
101
+ const app = createApp(App)
102
+
103
+ app.use(vZoomImgInstall)
104
+
105
+ app.mount('#app')
106
+ ```
107
+
108
+ ### Nuxt
109
+
110
+ Please refer to the [Nuxt module documentation](./../guide/nuxt.md) for more information.
111
+
112
+ ## Types
113
+
114
+ ```ts
115
+ export interface vZoomImgOptions {
116
+ disabled?: boolean
117
+ scale?: boolean
118
+ blur?: boolean
119
+ }
120
+
121
+ interface vZoomImgBindingOptions extends vZoomImgOptions {
122
+ src: string
123
+ alt?: string
124
+ }
125
+
126
+ export type vZoomImgBindingValue = string | vZoomImgBindingOptions
127
+ ```