@maz-ui/mcp 5.0.1-beta.0 → 5.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/README.md +61 -228
  2. package/bin/maz-ui-mcp.mjs +2 -5
  3. package/dist/cli.d.mts +7 -0
  4. package/dist/cli.d.ts +7 -0
  5. package/dist/cli.mjs +16 -0
  6. package/dist/index.d.mts +345 -0
  7. package/dist/index.d.ts +345 -0
  8. package/dist/index.mjs +16 -0
  9. package/dist/shared/mcp.DseFuKdl.mjs +2968 -0
  10. package/docs/README.md +207 -0
  11. package/docs/agents/agents-md.md +52 -0
  12. package/docs/agents/claude-rule.md +52 -0
  13. package/docs/components/maz-accordion.md +78 -0
  14. package/docs/{src/components → components}/maz-alert.md +31 -164
  15. package/docs/components/maz-animated-counter.md +87 -0
  16. package/docs/components/maz-animated-element.md +46 -0
  17. package/docs/components/maz-animated-text.md +53 -0
  18. package/docs/components/maz-avatar.md +193 -0
  19. package/docs/components/maz-backdrop.md +178 -0
  20. package/docs/{src/components → components}/maz-badge.md +26 -67
  21. package/docs/components/maz-bottom-sheet.md +257 -0
  22. package/docs/{src/components → components}/maz-btn-group.md +27 -189
  23. package/docs/{src/components → components}/maz-btn.md +62 -245
  24. package/docs/components/maz-card-spotlight.md +84 -0
  25. package/docs/{src/components → components}/maz-card.md +67 -192
  26. package/docs/components/maz-carousel.md +153 -0
  27. package/docs/{src/components → components}/maz-chart.md +17 -161
  28. package/docs/components/maz-checkbox.md +138 -0
  29. package/docs/components/maz-checklist.md +251 -0
  30. package/docs/components/maz-circular-progress-bar.md +109 -0
  31. package/docs/{src/components → components}/maz-code-highlight.md +15 -93
  32. package/docs/components/maz-container.md +241 -0
  33. package/docs/{src/components → components}/maz-date-picker.md +85 -454
  34. package/docs/components/maz-dialog-confirm.md +215 -0
  35. package/docs/components/maz-dialog.md +143 -0
  36. package/docs/components/maz-drawer.md +107 -0
  37. package/docs/components/maz-dropdown.md +419 -0
  38. package/docs/{src/components → components}/maz-dropzone.md +80 -221
  39. package/docs/components/maz-expand-animation.md +82 -0
  40. package/docs/components/maz-fullscreen-loader.md +58 -0
  41. package/docs/components/maz-gallery.md +79 -0
  42. package/docs/{src/components → components}/maz-icon.md +32 -83
  43. package/docs/components/maz-input-code.md +73 -0
  44. package/docs/components/maz-input-number.md +79 -0
  45. package/docs/components/maz-input-phone-number.md +536 -0
  46. package/docs/components/maz-input-price.md +68 -0
  47. package/docs/components/maz-input-tags.md +112 -0
  48. package/docs/{src/components → components}/maz-input.md +74 -221
  49. package/docs/components/maz-lazy-img.md +113 -0
  50. package/docs/components/maz-link.md +146 -0
  51. package/docs/components/maz-loading-bar.md +38 -0
  52. package/docs/{src/components → components}/maz-markdown-editor.md +72 -125
  53. package/docs/components/maz-pagination.md +82 -0
  54. package/docs/components/maz-popover.md +794 -0
  55. package/docs/{src/components → components}/maz-pull-to-refresh.md +59 -45
  56. package/docs/components/maz-radio-buttons.md +313 -0
  57. package/docs/components/maz-radio.md +119 -0
  58. package/docs/{src/components → components}/maz-read-more.md +31 -122
  59. package/docs/components/maz-reading-progress-bar.md +96 -0
  60. package/docs/{src/components → components}/maz-select-country.md +80 -340
  61. package/docs/{src/components → components}/maz-select.md +76 -206
  62. package/docs/components/maz-sidebar-content.md +25 -0
  63. package/docs/components/maz-sidebar-footer.md +25 -0
  64. package/docs/components/maz-sidebar-group.md +27 -0
  65. package/docs/components/maz-sidebar-header.md +25 -0
  66. package/docs/components/maz-sidebar-menu-button.md +41 -0
  67. package/docs/components/maz-sidebar-menu-item.md +25 -0
  68. package/docs/components/maz-sidebar-menu-sub.md +32 -0
  69. package/docs/components/maz-sidebar-menu.md +25 -0
  70. package/docs/components/maz-sidebar-separator.md +21 -0
  71. package/docs/components/maz-sidebar-trigger.md +25 -0
  72. package/docs/{src/components → components}/maz-sidebar.md +117 -329
  73. package/docs/{src/components → components}/maz-skeleton.md +27 -156
  74. package/docs/{src/components → components}/maz-slider.md +33 -66
  75. package/docs/components/maz-spinner.md +84 -0
  76. package/docs/{src/components → components}/maz-stepper.md +48 -185
  77. package/docs/components/maz-switch.md +86 -0
  78. package/docs/components/maz-table-cell.md +27 -0
  79. package/docs/components/maz-table-row.md +28 -0
  80. package/docs/components/maz-table-title.md +27 -0
  81. package/docs/components/maz-table-virtualizer.md +31 -0
  82. package/docs/components/maz-table.md +426 -0
  83. package/docs/components/maz-tabs-bar.md +43 -0
  84. package/docs/components/maz-tabs-content-item.md +27 -0
  85. package/docs/components/maz-tabs-content.md +27 -0
  86. package/docs/{src/components → components}/maz-tabs.md +89 -126
  87. package/docs/components/maz-textarea.md +255 -0
  88. package/docs/components/maz-ticker.md +427 -0
  89. package/docs/components/maz-timeline.md +304 -0
  90. package/docs/components/maz-ui-provider.md +26 -0
  91. package/docs/{src/components → components}/maz-window-mockup.md +38 -105
  92. package/docs/composables/use-aos.md +41 -0
  93. package/docs/composables/use-breakpoints.md +42 -0
  94. package/docs/composables/use-dialog.md +58 -0
  95. package/docs/{src/composables → composables}/use-display-names.md +12 -59
  96. package/docs/{src/composables → composables}/use-drag.md +14 -68
  97. package/docs/{src/composables → composables}/use-form-validator.md +22 -696
  98. package/docs/{src/composables → composables}/use-idle-timeout.md +13 -97
  99. package/docs/{src/composables → composables}/use-pull-to-refresh.md +14 -7
  100. package/docs/{src/composables → composables}/use-reading-time.md +20 -56
  101. package/docs/composables/use-string-matching.md +41 -0
  102. package/docs/{src/composables → composables}/use-swipe.md +14 -81
  103. package/docs/{src/composables → composables}/use-timer.md +12 -38
  104. package/docs/composables/use-toast.md +50 -0
  105. package/docs/{src/composables → composables}/use-user-visibility.md +14 -56
  106. package/docs/composables/use-wait.md +50 -0
  107. package/docs/composables/use-window-size.md +25 -0
  108. package/docs/{src/directives → directives}/click-outside.md +13 -99
  109. package/docs/{src/directives → directives}/fullscreen-img.md +10 -28
  110. package/docs/{src/directives → directives}/lazy-img.md +14 -49
  111. package/docs/{src/directives → directives}/tooltip.md +12 -217
  112. package/docs/{src/directives → directives}/zoom-img.md +11 -38
  113. package/docs/{src/ecosystem → ecosystem}/eslint-config.md +37 -29
  114. package/docs/ecosystem/icons/icon-set.md +25 -0
  115. package/docs/{src/ecosystem → ecosystem}/icons/index.md +21 -15
  116. package/docs/ecosystem/mcp.md +165 -0
  117. package/docs/{src/ecosystem → ecosystem}/node/exec-promise.md +12 -6
  118. package/docs/ecosystem/node/index.md +53 -0
  119. package/docs/{src/ecosystem → ecosystem}/node/logger.md +12 -6
  120. package/docs/{src/ecosystem → ecosystem}/node/print-banner.md +12 -4
  121. package/docs/ecosystem/node/setup-agents.md +102 -0
  122. package/docs/{src/ecosystem → ecosystem}/nuxt.md +50 -19
  123. package/docs/{src/ecosystem → ecosystem}/stylelint-config.md +33 -25
  124. package/docs/{src/ecosystem → ecosystem}/themes.md +72 -235
  125. package/docs/{src/ecosystem → ecosystem}/translations.md +25 -23
  126. package/docs/ecosystem/utils/camel-case.md +37 -0
  127. package/docs/ecosystem/utils/capitalize.md +37 -0
  128. package/docs/{src/ecosystem → ecosystem}/utils/check-availability.md +14 -8
  129. package/docs/{src/ecosystem → ecosystem}/utils/cookie.md +18 -12
  130. package/docs/ecosystem/utils/country-code-to-unicode-flag.md +128 -0
  131. package/docs/{src/ecosystem → ecosystem}/utils/currency.md +12 -26
  132. package/docs/{src/ecosystem → ecosystem}/utils/date.md +10 -24
  133. package/docs/ecosystem/utils/debounce-callback.md +44 -0
  134. package/docs/{src/ecosystem → ecosystem}/utils/debounce-id.md +14 -8
  135. package/docs/{src/ecosystem → ecosystem}/utils/debounce.md +14 -8
  136. package/docs/ecosystem/utils/fetch-locale-ip.md +39 -0
  137. package/docs/{src/ecosystem → ecosystem}/utils/format-json.md +11 -5
  138. package/docs/{src/ecosystem → ecosystem}/utils/format-phone-number.md +12 -6
  139. package/docs/ecosystem/utils/get-browser-locale.md +35 -0
  140. package/docs/ecosystem/utils/get-country-flag-url.md +67 -0
  141. package/docs/{src/ecosystem → ecosystem}/utils/get-error-message.md +10 -4
  142. package/docs/{src/ecosystem → ecosystem}/utils/idle-timeout.md +15 -9
  143. package/docs/{src/ecosystem → ecosystem}/utils/index.md +10 -13
  144. package/docs/{src/ecosystem → ecosystem}/utils/is-client.md +11 -5
  145. package/docs/{src/ecosystem → ecosystem}/utils/is-equal.md +14 -8
  146. package/docs/{src/ecosystem → ecosystem}/utils/is-ios.md +12 -6
  147. package/docs/ecosystem/utils/is-server.md +37 -0
  148. package/docs/ecosystem/utils/is-standalone-mode.md +49 -0
  149. package/docs/{src/ecosystem → ecosystem}/utils/kebab-case.md +10 -4
  150. package/docs/{src/ecosystem → ecosystem}/utils/normalize-string.md +10 -4
  151. package/docs/{src/ecosystem → ecosystem}/utils/number.md +10 -24
  152. package/docs/{src/ecosystem → ecosystem}/utils/pascal-case.md +11 -5
  153. package/docs/{src/ecosystem → ecosystem}/utils/prevent-ios-input-zoom.md +14 -8
  154. package/docs/{src/ecosystem → ecosystem}/utils/script-loader.md +16 -8
  155. package/docs/{src/ecosystem → ecosystem}/utils/sleep.md +10 -4
  156. package/docs/{src/ecosystem → ecosystem}/utils/snake-case.md +10 -4
  157. package/docs/{src/ecosystem → ecosystem}/utils/swipe-handler.md +14 -8
  158. package/docs/{src/ecosystem → ecosystem}/utils/textarea-autogrow.md +12 -6
  159. package/docs/{src/ecosystem → ecosystem}/utils/throttle-id.md +13 -7
  160. package/docs/{src/ecosystem → ecosystem}/utils/throttle.md +14 -8
  161. package/docs/ecosystem/utils/truthy-filter.md +37 -0
  162. package/docs/{src/ecosystem → ecosystem}/utils/types/deep-key-of.md +11 -5
  163. package/docs/{src/ecosystem → ecosystem}/utils/types/deep-partial.md +10 -4
  164. package/docs/ecosystem/utils/types/deep-required.md +45 -0
  165. package/docs/ecosystem/utils/types/flatten-object-keys.md +50 -0
  166. package/docs/{src/ecosystem → ecosystem}/utils/types/generic-instance-type.md +10 -4
  167. package/docs/{src/ecosystem → ecosystem}/utils/types/infer-maybe-ref.md +10 -4
  168. package/docs/ecosystem/utils/upper-first.md +38 -0
  169. package/docs/{src/ecosystem → ecosystem}/utils/user-visibility.md +12 -6
  170. package/docs/guide/ai-agents.md +239 -0
  171. package/docs/{src/guide → guide}/browser-support.md +22 -15
  172. package/docs/{src/guide → guide}/getting-started.md +34 -139
  173. package/docs/{src/guide → guide}/global-defaults.md +12 -11
  174. package/docs/{src/guide → guide}/maz-ui-provider.md +17 -16
  175. package/docs/{src/guide → guide}/migration-v5.md +95 -88
  176. package/docs/{src/guide → guide}/resolvers.md +33 -100
  177. package/docs/guide/tailwind.md +507 -0
  178. package/docs/{src/guide → guide}/vue.md +33 -39
  179. package/docs/manifest.json +1 -0
  180. package/docs/{src/plugins → plugins}/aos.md +20 -55
  181. package/docs/{src/plugins → plugins}/dialog.md +14 -161
  182. package/docs/plugins/toast.md +221 -0
  183. package/docs/plugins/wait.md +78 -0
  184. package/docs/reference/icons.md +46 -0
  185. package/docs/reference/tailwind-tokens.md +191 -0
  186. package/docs/rules.md +59 -0
  187. package/package.json +86 -22
  188. package/dist/mcp.d.mts +0 -153
  189. package/dist/mcp.d.ts +0 -153
  190. package/dist/mcp.mjs +0 -1511
  191. package/docs/generated-docs/maz-accordion.doc.md +0 -21
  192. package/docs/generated-docs/maz-alert.doc.md +0 -20
  193. package/docs/generated-docs/maz-animated-counter.doc.md +0 -17
  194. package/docs/generated-docs/maz-animated-element.doc.md +0 -14
  195. package/docs/generated-docs/maz-animated-text.doc.md +0 -17
  196. package/docs/generated-docs/maz-avatar.doc.md +0 -45
  197. package/docs/generated-docs/maz-backdrop.doc.md +0 -55
  198. package/docs/generated-docs/maz-badge.doc.md +0 -16
  199. package/docs/generated-docs/maz-bottom-sheet.doc.md +0 -24
  200. package/docs/generated-docs/maz-btn-group.doc.md +0 -20
  201. package/docs/generated-docs/maz-btn.doc.md +0 -33
  202. package/docs/generated-docs/maz-card-spotlight.doc.md +0 -16
  203. package/docs/generated-docs/maz-card.doc.md +0 -39
  204. package/docs/generated-docs/maz-carousel.doc.md +0 -17
  205. package/docs/generated-docs/maz-chart.doc.md +0 -10
  206. package/docs/generated-docs/maz-checkbox.doc.md +0 -33
  207. package/docs/generated-docs/maz-checklist.doc.md +0 -30
  208. package/docs/generated-docs/maz-circular-progress-bar.doc.md +0 -27
  209. package/docs/generated-docs/maz-code-highlight.doc.md +0 -11
  210. package/docs/generated-docs/maz-container.doc.md +0 -26
  211. package/docs/generated-docs/maz-date-picker.doc.md +0 -56
  212. package/docs/generated-docs/maz-dialog-confirm.doc.md +0 -24
  213. package/docs/generated-docs/maz-dialog.doc.md +0 -22
  214. package/docs/generated-docs/maz-drawer.doc.md +0 -25
  215. package/docs/generated-docs/maz-dropdown.doc.md +0 -45
  216. package/docs/generated-docs/maz-dropzone.doc.md +0 -82
  217. package/docs/generated-docs/maz-expand-animation.doc.md +0 -12
  218. package/docs/generated-docs/maz-fullscreen-loader.doc.md +0 -13
  219. package/docs/generated-docs/maz-gallery.doc.md +0 -17
  220. package/docs/generated-docs/maz-icon.doc.md +0 -16
  221. package/docs/generated-docs/maz-input-code.doc.md +0 -25
  222. package/docs/generated-docs/maz-input-number.doc.md +0 -33
  223. package/docs/generated-docs/maz-input-phone-number.doc.md +0 -62
  224. package/docs/generated-docs/maz-input-price.doc.md +0 -26
  225. package/docs/generated-docs/maz-input-tags.doc.md +0 -24
  226. package/docs/generated-docs/maz-input.doc.md +0 -54
  227. package/docs/generated-docs/maz-lazy-img.doc.md +0 -49
  228. package/docs/generated-docs/maz-link.doc.md +0 -31
  229. package/docs/generated-docs/maz-loading-bar.doc.md +0 -6
  230. package/docs/generated-docs/maz-markdown-editor.doc.md +0 -65
  231. package/docs/generated-docs/maz-pagination.doc.md +0 -21
  232. package/docs/generated-docs/maz-popover.doc.md +0 -79
  233. package/docs/generated-docs/maz-pull-to-refresh.doc.md +0 -50
  234. package/docs/generated-docs/maz-radio-buttons.doc.md +0 -34
  235. package/docs/generated-docs/maz-radio.doc.md +0 -33
  236. package/docs/generated-docs/maz-read-more.doc.md +0 -18
  237. package/docs/generated-docs/maz-reading-progress-bar.doc.md +0 -18
  238. package/docs/generated-docs/maz-select-country.doc.md +0 -45
  239. package/docs/generated-docs/maz-select.doc.md +0 -32
  240. package/docs/generated-docs/maz-sidebar-content.doc.md +0 -5
  241. package/docs/generated-docs/maz-sidebar-footer.doc.md +0 -5
  242. package/docs/generated-docs/maz-sidebar-group.doc.md +0 -11
  243. package/docs/generated-docs/maz-sidebar-header.doc.md +0 -5
  244. package/docs/generated-docs/maz-sidebar-menu-button.doc.md +0 -27
  245. package/docs/generated-docs/maz-sidebar-menu-item.doc.md +0 -5
  246. package/docs/generated-docs/maz-sidebar-menu-sub.doc.md +0 -16
  247. package/docs/generated-docs/maz-sidebar-menu.doc.md +0 -5
  248. package/docs/generated-docs/maz-sidebar-separator.doc.md +0 -0
  249. package/docs/generated-docs/maz-sidebar-trigger.doc.md +0 -5
  250. package/docs/generated-docs/maz-sidebar.doc.md +0 -36
  251. package/docs/generated-docs/maz-skeleton.doc.md +0 -12
  252. package/docs/generated-docs/maz-slider.doc.md +0 -20
  253. package/docs/generated-docs/maz-spinner.doc.md +0 -6
  254. package/docs/generated-docs/maz-stepper.doc.md +0 -30
  255. package/docs/generated-docs/maz-switch.doc.md +0 -31
  256. package/docs/generated-docs/maz-table-cell.doc.md +0 -5
  257. package/docs/generated-docs/maz-table-row.doc.md +0 -12
  258. package/docs/generated-docs/maz-table-title.doc.md +0 -5
  259. package/docs/generated-docs/maz-table-virtualizer.doc.md +0 -20
  260. package/docs/generated-docs/maz-table.doc.md +0 -72
  261. package/docs/generated-docs/maz-tabs-bar.doc.md +0 -29
  262. package/docs/generated-docs/maz-tabs-content-item.doc.md +0 -11
  263. package/docs/generated-docs/maz-tabs-content.doc.md +0 -5
  264. package/docs/generated-docs/maz-tabs.doc.md +0 -20
  265. package/docs/generated-docs/maz-textarea.doc.md +0 -46
  266. package/docs/generated-docs/maz-ticker.doc.md +0 -25
  267. package/docs/generated-docs/maz-timeline.doc.md +0 -32
  268. package/docs/generated-docs/maz-ui-provider.doc.md +0 -12
  269. package/docs/generated-docs/maz-window-mockup.doc.md +0 -23
  270. package/docs/src/blog/v4.md +0 -276
  271. package/docs/src/blog/v5.md +0 -184
  272. package/docs/src/changelog.md +0 -7
  273. package/docs/src/components/index.md +0 -8
  274. package/docs/src/components/maz-accordion.md +0 -80
  275. package/docs/src/components/maz-animated-counter.md +0 -124
  276. package/docs/src/components/maz-animated-element.md +0 -36
  277. package/docs/src/components/maz-animated-text.md +0 -36
  278. package/docs/src/components/maz-avatar.md +0 -227
  279. package/docs/src/components/maz-backdrop.md +0 -250
  280. package/docs/src/components/maz-bottom-sheet.md +0 -533
  281. package/docs/src/components/maz-card-spotlight.md +0 -163
  282. package/docs/src/components/maz-carousel.md +0 -231
  283. package/docs/src/components/maz-checkbox.md +0 -168
  284. package/docs/src/components/maz-checklist.md +0 -414
  285. package/docs/src/components/maz-circular-progress-bar.md +0 -145
  286. package/docs/src/components/maz-container.md +0 -363
  287. package/docs/src/components/maz-dialog-confirm.md +0 -240
  288. package/docs/src/components/maz-dialog.md +0 -164
  289. package/docs/src/components/maz-drawer.md +0 -181
  290. package/docs/src/components/maz-dropdown.md +0 -691
  291. package/docs/src/components/maz-expand-animation.md +0 -99
  292. package/docs/src/components/maz-fullscreen-loader.md +0 -58
  293. package/docs/src/components/maz-gallery.md +0 -85
  294. package/docs/src/components/maz-input-code.md +0 -61
  295. package/docs/src/components/maz-input-number.md +0 -81
  296. package/docs/src/components/maz-input-phone-number.md +0 -942
  297. package/docs/src/components/maz-input-price.md +0 -67
  298. package/docs/src/components/maz-input-tags.md +0 -114
  299. package/docs/src/components/maz-lazy-img.md +0 -88
  300. package/docs/src/components/maz-link.md +0 -178
  301. package/docs/src/components/maz-loading-bar.md +0 -26
  302. package/docs/src/components/maz-pagination.md +0 -79
  303. package/docs/src/components/maz-popover.md +0 -1416
  304. package/docs/src/components/maz-radio-buttons.md +0 -462
  305. package/docs/src/components/maz-radio.md +0 -142
  306. package/docs/src/components/maz-reading-progress-bar.md +0 -74
  307. package/docs/src/components/maz-spinner.md +0 -93
  308. package/docs/src/components/maz-switch.md +0 -92
  309. package/docs/src/components/maz-table.md +0 -732
  310. package/docs/src/components/maz-textarea.md +0 -400
  311. package/docs/src/components/maz-ticker.md +0 -692
  312. package/docs/src/components/maz-timeline.md +0 -478
  313. package/docs/src/composables/use-aos.md +0 -34
  314. package/docs/src/composables/use-breakpoints.md +0 -35
  315. package/docs/src/composables/use-dialog.md +0 -88
  316. package/docs/src/composables/use-string-matching.md +0 -63
  317. package/docs/src/composables/use-toast.md +0 -71
  318. package/docs/src/composables/use-wait.md +0 -62
  319. package/docs/src/composables/use-window-size.md +0 -18
  320. package/docs/src/ecosystem/icons/icon-set.md +0 -123
  321. package/docs/src/ecosystem/mcp.md +0 -210
  322. package/docs/src/ecosystem/node/index.md +0 -53
  323. package/docs/src/ecosystem/utils/camel-case.md +0 -31
  324. package/docs/src/ecosystem/utils/capitalize.md +0 -50
  325. package/docs/src/ecosystem/utils/country-code-to-unicode-flag.md +0 -213
  326. package/docs/src/ecosystem/utils/debounce-callback.md +0 -38
  327. package/docs/src/ecosystem/utils/fetch-locale-ip.md +0 -33
  328. package/docs/src/ecosystem/utils/get-browser-locale.md +0 -29
  329. package/docs/src/ecosystem/utils/get-country-flag-url.md +0 -156
  330. package/docs/src/ecosystem/utils/is-server.md +0 -31
  331. package/docs/src/ecosystem/utils/is-standalone-mode.md +0 -43
  332. package/docs/src/ecosystem/utils/truthy-filter.md +0 -31
  333. package/docs/src/ecosystem/utils/types/deep-required.md +0 -39
  334. package/docs/src/ecosystem/utils/types/flatten-object-keys.md +0 -44
  335. package/docs/src/ecosystem/utils/upper-first.md +0 -32
  336. package/docs/src/guide/cli.md +0 -144
  337. package/docs/src/guide/migration-v4.md +0 -925
  338. package/docs/src/guide/tailwind.md +0 -158
  339. package/docs/src/index.md +0 -603
  340. package/docs/src/made-with-maz-ui.md +0 -58
  341. package/docs/src/plugins/toast.md +0 -349
  342. package/docs/src/plugins/wait.md +0 -109
  343. package/docs/src/theme-editor.md +0 -21
@@ -1,691 +0,0 @@
1
- ---
2
- title: MazDropdown
3
- description: MazDropdown is a standalone dropdown menu component and versatile designed for various use cases.
4
- ---
5
-
6
- # {{ $frontmatter.title }}
7
-
8
- {{ $frontmatter.description }}
9
-
10
- <!--@include: ./../../.vitepress/mixins/getting-started.md-->
11
-
12
- <!--@include: ./../../.vitepress/mixins/translated-component.md-->
13
-
14
- ## Basic usage
15
-
16
- <ComponentDemo>
17
- <MazDropdown
18
- :items="[
19
- { label: 'Louis Mazel', textColor: 'muted' },
20
- { label: 'Action', onClick: () => toast.success('CLICKED') },
21
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank', color: 'secondary' },
22
- { label: 'Router Link', to: { name: 'index' }, color: 'destructive' },
23
- ]"
24
- items-size="sm"
25
- >
26
- Dropdown Menu
27
- </MazDropdown>
28
-
29
- <template #code>
30
-
31
- ```vue
32
- <template>
33
- <MazDropdown
34
- :items="[
35
- { label: 'Action', onClick: () => toast.success('CLICKED') },
36
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank', color: 'secondary' },
37
- { label: 'Router Link', to: { name: 'index' }, color: 'destructive' },
38
- ]"
39
- >
40
- Dropdown Menu
41
- </MazDropdown>
42
- </template>
43
-
44
- <script lang="ts" setup>
45
- import MazDropdown from 'maz-ui/components/MazDropdown'
46
- </script>
47
- ```
48
-
49
- </template>
50
- </ComponentDemo>
51
-
52
- ## Open dropdown with adaptive trigger
53
-
54
- The `adaptive` trigger mode automatically adapts to the user's device:
55
- - **Desktop**: Uses hover behavior (mouseenter/mouseleave)
56
- - **Mobile/Touch devices**: Uses click behavior
57
-
58
- This provides the best user experience across all devices without requiring manual configuration.
59
-
60
- <MazDropdown
61
- :items="[
62
- { label: 'Action', onClick: () => toast.success('CLICKED') },
63
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
64
- { label: 'Router Link', to: { name: 'index' } },
65
- ]"
66
- trigger="adaptive"
67
- >
68
- Adaptive trigger
69
- </MazDropdown>
70
-
71
- ```html{7}
72
- <MazDropdown
73
- :items="[
74
- { label: 'Action', onClick: () => toast.success('CLICKED') },
75
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
76
- { label: 'Router Link', to: { name: 'index' } },
77
- ]"
78
- trigger="adaptive"
79
- >
80
- Adaptive trigger
81
- </MazDropdown>
82
- ```
83
-
84
- ## Open dropdown only on click
85
-
86
- <MazDropdown
87
- :model-value="true"
88
- :items="[
89
- { label: 'Action', onClick: () => toast.success('CLICKED') },
90
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
91
- { label: 'Router Link', to: { name: 'index' } },
92
- ]"
93
- trigger="click"
94
- >
95
- Click me
96
- </MazDropdown>
97
-
98
- ```html{7}
99
- <MazDropdown
100
- :items="[
101
- { label: 'Action', onClick: () => toast.success('CLICKED') },
102
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
103
- { label: 'Router Link', to: { name: 'index' } },
104
- ]"
105
- trigger="click"
106
- >
107
- Click me
108
- </MazDropdown>
109
- ```
110
-
111
- ## Open dropdown only on hover
112
-
113
- <MazDropdown
114
- :items="[
115
- { label: 'Action', onClick: () => toast.success('CLICKED') },
116
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
117
- { label: 'Router Link', to: { name: 'index' } },
118
- ]"
119
- trigger="hover"
120
- >
121
- Hover me
122
- </MazDropdown>
123
-
124
- ```html{7}
125
- <MazDropdown
126
- :items="[
127
- { label: 'Action', onClick: () => toast.success('CLICKED') },
128
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
129
- { label: 'Router Link', to: { name: 'index' } },
130
- ]"
131
- trigger="hover"
132
- >
133
- Hover me
134
- </MazDropdown>
135
- ```
136
-
137
- ## Custom dropdown icon
138
-
139
- You can provide an icon to replace the default chevron icon and disable the animation
140
-
141
- <MazDropdown
142
- :items="[
143
- { label: 'Action', onClick: () => toast.success('CLICKED') },
144
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
145
- { label: 'Router Link', to: { name: 'index' } },
146
- ]"
147
- trigger="hover"
148
- :dropdown-icon="MazChevronUpDown"
149
- >
150
- Custom icon
151
- </MazDropdown>
152
-
153
- <MazDropdown
154
- :items="[
155
- { label: 'Action', onClick: () => toast.success('CLICKED') },
156
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
157
- { label: 'Router Link', to: { name: 'index' } },
158
- ]"
159
- trigger="hover"
160
- :dropdown-icon="MazChevronUpDown"
161
- :dropdown-icon-animation="false"
162
- >
163
- No icon animation
164
- </MazDropdown>
165
-
166
- ```vue{7}
167
- <script lang="ts" setup>
168
- // Use vite-svg-loader to import SVG as Vue component
169
- import MazChevronUpDown from '@maz-ui/icons/chevron-up-down.svg?component'
170
- </script>
171
-
172
- <template>
173
- <MazDropdown
174
- :items="[
175
- { label: 'Action', onClick: () => toast.success('CLICKED') },
176
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
177
- { label: 'Router Link', to: { name: 'index' } },
178
- ]"
179
- trigger="hover"
180
- :dropdown-icon="MazChevronUpDown"
181
- >
182
- Hover me
183
- </MazDropdown>
184
-
185
- <MazDropdown
186
- :items="[
187
- { label: 'Action', onClick: () => toast.success('CLICKED') },
188
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
189
- { label: 'Router Link', to: { name: 'index' } },
190
- ]"
191
- trigger="hover"
192
- :dropdown-icon="MazChevronUpDown"
193
- :dropdown-icon-animation="false"
194
- >
195
- No icon animation
196
- </MazDropdown>
197
- </template>
198
- ```
199
-
200
- `dropdownIcon` also accepts a full `MazIconProps` object — pass the same shape `<MazIcon>` accepts when you need to set a `<title>` for screen readers, override the size, or attach `svgAttributes`.
201
-
202
- ```vue
203
- <MazDropdown
204
- :items="items"
205
- :dropdown-icon="{
206
- icon: MazChevronUpDown,
207
- size: 'lg',
208
- title: 'Open menu',
209
- }"
210
- >
211
- Custom icon
212
- </MazDropdown>
213
- ```
214
-
215
- ## Custom dropdown main button without chevron icon
216
-
217
- ::: tip
218
- This component uses [MazBtn](./maz-btn.md) has a menu button, so it inherits all its props
219
- :::
220
-
221
- <MazDropdown
222
- color="primary"
223
- fab
224
- pastel
225
- :chevron="false"
226
- :icon="MazBars3"
227
- size="xl"
228
- items-size="sm"
229
- :items="[
230
- { label: 'Action', onClick: () => toast.success('CLICKED') },
231
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
232
- { label: 'Router Link', to: { name: 'index' } },
233
- ]"
234
- :close-on-click="false"
235
- />
236
-
237
- ::: details View code
238
-
239
- ```vue{7-13}
240
- <script lang="ts" setup>
241
- import { MazBars3 } from '@maz-ui/icons/raw/MazBars3'
242
- </script>
243
-
244
- <template>
245
- <MazDropdown
246
- color="primary"
247
- fab
248
- pastel
249
- :chevron="false"
250
- :icon="MazBars3"
251
- items-size="sm"
252
- size="xl"
253
- :items="[
254
- { label: 'Action', onClick: () => toast.success('CLICKED') },
255
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
256
- { label: 'Router Link', to: { name: 'index' } },
257
- ]"
258
- :close-on-click="false"
259
- />
260
- </template>
261
- ```
262
-
263
- :::
264
-
265
- ## Custom slots
266
-
267
- ### Custom dropdown panel
268
-
269
- You can provide a template to replace the default dropdown panel
270
-
271
- <MazDropdown>
272
- Customized dropdown
273
-
274
- <template #dropdown>
275
- <div class="maz:grid maz:grid-cols-3 maz:gap-2">
276
- <MazBtn color="transparent"> Item </MazBtn>
277
- <MazBtn color="transparent"> Item </MazBtn>
278
- <MazBtn color="transparent"> Item </MazBtn>
279
- <MazBtn color="transparent"> Item </MazBtn>
280
- <MazBtn color="transparent"> Item </MazBtn>
281
- <MazBtn color="transparent"> Item </MazBtn>
282
- <MazBtn color="transparent"> Item </MazBtn>
283
- <MazBtn color="transparent"> Item </MazBtn>
284
- <MazBtn color="transparent"> Item </MazBtn>
285
- <MazBtn color="transparent"> Item </MazBtn>
286
- <MazBtn color="transparent"> Item </MazBtn>
287
- <MazBtn color="transparent"> Item </MazBtn>
288
- </div>
289
- </template>
290
- </MazDropdown>
291
-
292
- ::: details View code
293
-
294
- ```html
295
- <MazDropdown>
296
- Customized dropdown panel
297
-
298
- <template #dropdown>
299
- <div class="maz:grid maz:grid-cols-3 maz:gap-2">
300
- <MazBtn color="transparent"> Item </MazBtn>
301
- <MazBtn color="transparent"> Item </MazBtn>
302
- <MazBtn color="transparent"> Item </MazBtn>
303
- <MazBtn color="transparent"> Item </MazBtn>
304
- <MazBtn color="transparent"> Item </MazBtn>
305
- <MazBtn color="transparent"> Item </MazBtn>
306
- <MazBtn color="transparent"> Item </MazBtn>
307
- <MazBtn color="transparent"> Item </MazBtn>
308
- <MazBtn color="transparent"> Item </MazBtn>
309
- <MazBtn color="transparent"> Item </MazBtn>
310
- <MazBtn color="transparent"> Item </MazBtn>
311
- <MazBtn color="transparent"> Item </MazBtn>
312
- </div>
313
- </template>
314
- </MazDropdown>
315
- ```
316
-
317
- :::
318
-
319
- ### Custom menuitem labels
320
-
321
- You can provide a template to replace menuitem labels to add more elements in each menuitem
322
-
323
- <MazDropdown
324
- :items="[
325
- { label: 'Action', onClick: () => toast.success('CLICKED'), additionnalData: 'https://placedog.net/240/200' },
326
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank', additionnalData: 'https://placedog.net/340/300' },
327
- { label: 'Router Link', to: { name: 'index' }, additionnalData: 'https://placedog.net/440/400' },
328
- ]"
329
- >
330
- <template #default>
331
- Customized labels
332
- </template>
333
-
334
- <template #menuitem-label="{ item }">
335
- <div class="maz:flex maz:items-center maz:gap-3">
336
- <MazAvatar :src="item.additionnalData" size="0.8rem" />
337
- <span>
338
- {{ item.label }}
339
- </span>
340
- </div>
341
- </template>
342
- </MazDropdown>
343
-
344
- ::: details View code
345
-
346
- ```html
347
- <MazDropdown
348
- :items="[
349
- { label: 'Action', onClick: () => toast.success('CLICKED'), additionnalData: 'https://placedog.net/240/200' },
350
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank', additionnalData: 'https://placedog.net/340/300' },
351
- { label: 'Router Link', to: { name: 'index' }, additionnalData: 'https://placedog.net/440/400' },
352
- ]"
353
- >
354
- <template #default>
355
- Customized labels
356
- </template>
357
-
358
- <template #menuitem-label="{ item }">
359
- <div class="maz:flex maz:items-center maz:gap-2">
360
- <MazAvatar :src="item.additionnalData" />
361
- <span>
362
- {{ item.label }}
363
- </span>
364
- </div>
365
- </template>
366
- </MazDropdown>
367
- ```
368
-
369
- :::
370
-
371
- ### Custom control triggered element
372
-
373
- You can provide an HTML element or a component to replace the default button
374
-
375
- ::: warning
376
- Add `tabindex="-1"` attribute to your element to avoid a double focus with Tab key
377
- :::
378
-
379
- <div class="maz:flex maz:gap-4">
380
- <MazDropdown
381
- :items="[
382
- {
383
- label: 'Action',
384
- onClick: () => toast.success('CLICKED'),
385
- additionnalData: 'https://placedog.net/240/200',
386
- },
387
- {
388
- label: 'Link (href)',
389
- href: 'https://www.google.com',
390
- target: '_blank',
391
- additionnalData: 'https://placedog.net/340/300',
392
- },
393
- {
394
- label: 'Router Link',
395
- to: { name: 'index' },
396
- additionnalData: 'https://placedog.net/440/400',
397
- },
398
- ]"
399
- >
400
- <template #trigger>
401
- <MazAvatar
402
- clickable
403
- hide-clickable-icon
404
- src="https://placedog.net/200/200"
405
- tabindex="-1"
406
- />
407
- </template>
408
- </MazDropdown>
409
-
410
- <MazDropdown
411
- position="top"
412
- :items="[
413
- {
414
- label: 'Action',
415
- onClick: () => toast.success('CLICKED'),
416
- additionnalData: 'https://placedog.net/240/200',
417
- },
418
- {
419
- label: 'Link (href)',
420
- href: 'https://www.google.com',
421
- target: '_blank',
422
- additionnalData: 'https://placedog.net/340/300',
423
- },
424
- {
425
- label: 'Router Link',
426
- to: { name: 'index' },
427
- additionnalData: 'https://placedog.net/440/400',
428
- },
429
- ]"
430
- >
431
- <template #element="{ isOpen }">
432
- <button class="maz:border maz:border-solid maz:border-divider-400 maz:p-2 maz:hover:bg-surface-600 maz:dark:bg-surface-400" tabindex="-1">
433
- HTMLButtonElement: isOpen {{ isOpen }}
434
- </button>
435
- </template>
436
- </MazDropdown>
437
- </div>
438
-
439
- ::: details View code
440
-
441
- ```html
442
- <MazDropdown
443
- :items="[
444
- {
445
- label: 'Action',
446
- onClick: () => toast.success('CLICKED'),
447
- additionnalData: 'https://placedog.net/240/200',
448
- },
449
- {
450
- label: 'Link (href)',
451
- href: 'https://www.google.com',
452
- target: '_blank',
453
- additionnalData: 'https://placedog.net/340/300',
454
- },
455
- {
456
- label: 'Router Link',
457
- to: { name: 'index' },
458
- additionnalData: 'https://placedog.net/440/400',
459
- },
460
- ]"
461
- >
462
- <template #element>
463
- <MazAvatar
464
- clickable
465
- hide-clickable-icon
466
- src="https://cdn.artphotolimited.com/images/5ff5a529bd40b83c5a537440/1000x1000/gerard-depardieu-1983.jpg"
467
- tabindex="-1"
468
- />
469
- </template>
470
- </MazDropdown>
471
-
472
- <MazDropdown
473
- position="top"
474
- :items="[
475
- {
476
- label: 'Action',
477
- onClick: () => toast.success('CLICKED'),
478
- additionnalData: 'https://placedog.net/240/200',
479
- },
480
- {
481
- label: 'Link (href)',
482
- href: 'https://www.google.com',
483
- target: '_blank',
484
- additionnalData: 'https://placedog.net/340/300',
485
- },
486
- {
487
- label: 'Router Link',
488
- to: { name: 'index' },
489
- additionnalData: 'https://placedog.net/440/400',
490
- },
491
- ]"
492
- >
493
- <template #element="{ isOpen }">
494
- <button class="maz:border maz:border-solid maz:border-divider-400 maz:p-2 maz:hover:bg-surface-400" tabindex="-1">
495
- HTMLButtonElement: isOpen {{ isOpen }}
496
- </button>
497
- </template>
498
- </MazDropdown>
499
- ```
500
-
501
- :::
502
-
503
- ## Open programmatically
504
-
505
- isOpen: {{ isOpen }}
506
-
507
- <MazDropdown
508
- v-model="isOpen"
509
- :items="[
510
- { label: 'Action', onClick: () => toast.success('CLICKED') },
511
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
512
- { label: 'Router Link', to: { name: 'index' } },
513
- ]"
514
- >
515
- Open
516
- </MazDropdown>
517
-
518
- <br />
519
- <br />
520
-
521
- <MazBtn @click="openDropdown">
522
- Open Dropdown
523
- </MazBtn>
524
-
525
- ```vue
526
- <template>
527
- <MazDropdown
528
- v-model="isOpen"
529
- :items="[
530
- { label: 'Action', onClick: () => toast.success('CLICKED') },
531
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
532
- { label: 'Router Link', to: { name: 'index' } },
533
- ]"
534
- >
535
- Open
536
- </MazDropdown>
537
-
538
- <MazBtn @click="isOpen = !isOpen">
539
- Open Dropdown
540
- </MazBtn>
541
- </template>
542
-
543
- <script lang="ts" setup>
544
- import { ref } from 'vue'
545
-
546
- const isOpen = ref(false)
547
- </script>
548
- ```
549
-
550
- ## Position
551
-
552
- <div class="maz:flex maz:gap-3 maz:flex-wrap">
553
- <MazDropdown
554
- color="contrast"
555
- :items="[
556
- { label: 'Action', onClick: () => toast.success('CLICKED') },
557
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
558
- { label: 'Router Link', to: { name: 'index' } },
559
- { label: 'Long Label To Show Large Menu', to: { name: 'index' } },
560
- ]"
561
- position="top-end"
562
- >
563
- top-end
564
- </MazDropdown>
565
- <MazDropdown
566
- color="contrast"
567
- :items="[
568
- { label: 'Action', onClick: () => toast.success('CLICKED') },
569
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
570
- { label: 'Router Link', to: { name: 'index' } },
571
- { label: 'Long Label To Show Large Menu', to: { name: 'index' } },
572
- ]"
573
- position="top-start"
574
- >
575
- top-start
576
- </MazDropdown>
577
- <MazDropdown
578
- color="contrast"
579
- :items="[
580
- { label: 'Action', onClick: () => toast.success('CLICKED') },
581
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
582
- { label: 'Router Link', to: { name: 'index' } },
583
- { label: 'Long Label To Show Large Menu', to: { name: 'index' } },
584
- ]"
585
- position="bottom-start"
586
- >
587
- bottom-start
588
- </MazDropdown>
589
- <MazDropdown
590
- color="contrast"
591
- :items="[
592
- { label: 'Action', onClick: () => toast.success('CLICKED') },
593
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
594
- { label: 'Router Link', to: { name: 'index' } },
595
- { label: 'Long Label To Show Large Menu', to: { name: 'index' } },
596
- ]"
597
- position="bottom-end"
598
- >
599
- bottom-end
600
- </MazDropdown>
601
- <MazDropdown
602
- color="contrast"
603
- :items="[
604
- { label: 'Action', onClick: () => toast.success('CLICKED') },
605
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
606
- { label: 'Router Link', to: { name: 'index' } },
607
- { label: 'Long Label To Show Large Menu', to: { name: 'index' } },
608
- ]"
609
- position="right"
610
- >
611
- right
612
- </MazDropdown>
613
- <MazDropdown
614
- color="contrast"
615
- :items="[
616
- { label: 'Action', onClick: () => toast.success('CLICKED') },
617
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
618
- { label: 'Router Link', to: { name: 'index' } },
619
- { label: 'Long Label To Show Large Menu', to: { name: 'index' } },
620
- ]"
621
- position="left"
622
- >
623
- left
624
- </MazDropdown>
625
- <MazDropdown
626
- color="contrast"
627
- :items="[
628
- { label: 'Action', onClick: () => toast.success('CLICKED') },
629
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
630
- { label: 'Router Link', to: { name: 'index' } },
631
- { label: 'Long Label To Show Large Menu', to: { name: 'index' } },
632
- ]"
633
- position="top"
634
- >
635
- top
636
- </MazDropdown>
637
- <MazDropdown
638
- color="contrast"
639
- :items="[
640
- { label: 'Action', onClick: () => toast.success('CLICKED') },
641
- { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
642
- { label: 'Router Link', to: { name: 'index' } },
643
- { label: 'Long Label To Show Large Menu', to: { name: 'index' } },
644
- ]"
645
- position="bottom"
646
- >
647
- bottom
648
- </MazDropdown>
649
- </div>
650
-
651
- ## Types
652
-
653
- ### MazDropdownMenuItem
654
-
655
- ```ts
656
- type MazDropdownMenuItem = {
657
- label: string
658
- onClick?: () => unknown
659
- target?: string
660
- href?: string
661
- to?: RouteLocationRaw
662
- class?: string
663
- } & Record<string, unknown>
664
- ```
665
-
666
- ## Accessibility
667
-
668
- The trigger button exposes the menu state (`aria-haspopup="menu"`, `aria-expanded`, `aria-controls`), the panel is a `menu` and each item a `menuitem`. <kbd>↓</kbd> / <kbd>↑</kbd> move between the items, <kbd>Enter</kbd> runs the focused item and <kbd>Esc</kbd> closes the menu.
669
-
670
- <!--@include: ./../../.vitepress/generated-docs/maz-dropdown.doc.md-->
671
-
672
- <script lang="ts" setup>
673
- import { ref, onMounted } from 'vue'
674
- import { useToast } from 'maz-ui/composables/useToast'
675
- import { MazChevronUpDown } from '@maz-ui/icons/raw/MazChevronUpDown'
676
- import { MazBars3 } from '@maz-ui/icons/raw/MazBars3'
677
-
678
- const toast = useToast()
679
-
680
- function openDropdown() {
681
- setTimeout(() => {
682
- isOpen.value = !isOpen.value
683
- }, 100);
684
- }
685
-
686
- const menuItems = [
687
- { label: 'Menu Item 1', onClick: () => toast.success('Clicked') },
688
- ]
689
-
690
- const isOpen = ref(false)
691
- </script>