@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
@@ -0,0 +1,419 @@
1
+ ---
2
+ title: "MazDropdown"
3
+ description: "MazDropdown is a standalone dropdown menu component and versatile designed for various use cases."
4
+ package: "maz-ui"
5
+ url: "https://maz-ui.com/components/maz-dropdown"
6
+ ---
7
+
8
+ # MazDropdown
9
+
10
+ > MazDropdown is a standalone dropdown menu component and versatile designed for various use cases.
11
+
12
+ - Package: `maz-ui`
13
+ - Import: `import MazDropdown from 'maz-ui/components/MazDropdown'`
14
+ - Nuxt: auto-imported by `@maz-ui/nuxt`, no import needed in a Nuxt app
15
+ - Web: https://maz-ui.com/components/maz-dropdown
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
+ **Tip:**
20
+
21
+ This component can be translated globally using the [MazUi](../ecosystem/translations.md) plugin.
22
+
23
+ ## Basic usage
24
+
25
+ ```vue
26
+ <template>
27
+ <MazDropdown
28
+ :items="[
29
+ { label: 'Action', onClick: () => toast.success('CLICKED') },
30
+ { label: 'Link (href)', href: 'https://www.google.com', target: '_blank', color: 'secondary' },
31
+ { label: 'Router Link', to: { name: 'index' }, color: 'destructive' },
32
+ ]"
33
+ >
34
+ Dropdown Menu
35
+ </MazDropdown>
36
+ </template>
37
+
38
+ <script lang="ts" setup>
39
+ import MazDropdown from 'maz-ui/components/MazDropdown'
40
+ </script>
41
+ ```
42
+
43
+ ## Open dropdown with adaptive trigger
44
+
45
+ The `adaptive` trigger mode automatically adapts to the user's device:
46
+ - **Desktop**: Uses hover behavior (mouseenter/mouseleave)
47
+ - **Mobile/Touch devices**: Uses click behavior
48
+
49
+ This provides the best user experience across all devices without requiring manual configuration.
50
+
51
+ ```html{7}
52
+ <MazDropdown
53
+ :items="[
54
+ { label: 'Action', onClick: () => toast.success('CLICKED') },
55
+ { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
56
+ { label: 'Router Link', to: { name: 'index' } },
57
+ ]"
58
+ trigger="adaptive"
59
+ >
60
+ Adaptive trigger
61
+ </MazDropdown>
62
+ ```
63
+
64
+ ## Open dropdown only on click
65
+
66
+ ```html{7}
67
+ <MazDropdown
68
+ :items="[
69
+ { label: 'Action', onClick: () => toast.success('CLICKED') },
70
+ { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
71
+ { label: 'Router Link', to: { name: 'index' } },
72
+ ]"
73
+ trigger="click"
74
+ >
75
+ Click me
76
+ </MazDropdown>
77
+ ```
78
+
79
+ ## Open dropdown only on hover
80
+
81
+ ```html{7}
82
+ <MazDropdown
83
+ :items="[
84
+ { label: 'Action', onClick: () => toast.success('CLICKED') },
85
+ { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
86
+ { label: 'Router Link', to: { name: 'index' } },
87
+ ]"
88
+ trigger="hover"
89
+ >
90
+ Hover me
91
+ </MazDropdown>
92
+ ```
93
+
94
+ ## Custom dropdown icon
95
+
96
+ You can provide an icon to replace the default chevron icon and disable the animation
97
+
98
+ ```vue{7}
99
+ <script lang="ts" setup>
100
+ // Use vite-svg-loader to import SVG as Vue component
101
+ import MazChevronUpDown from '@maz-ui/icons/chevron-up-down.svg?component'
102
+ </script>
103
+
104
+ <template>
105
+ <MazDropdown
106
+ :items="[
107
+ { label: 'Action', onClick: () => toast.success('CLICKED') },
108
+ { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
109
+ { label: 'Router Link', to: { name: 'index' } },
110
+ ]"
111
+ trigger="hover"
112
+ :dropdown-icon="MazChevronUpDown"
113
+ >
114
+ Hover me
115
+ </MazDropdown>
116
+
117
+ <MazDropdown
118
+ :items="[
119
+ { label: 'Action', onClick: () => toast.success('CLICKED') },
120
+ { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
121
+ { label: 'Router Link', to: { name: 'index' } },
122
+ ]"
123
+ trigger="hover"
124
+ :dropdown-icon="MazChevronUpDown"
125
+ :dropdown-icon-animation="false"
126
+ >
127
+ No icon animation
128
+ </MazDropdown>
129
+ </template>
130
+ ```
131
+
132
+ `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`.
133
+
134
+ ```vue
135
+ <MazDropdown
136
+ :items="items"
137
+ :dropdown-icon="{
138
+ icon: MazChevronUpDown,
139
+ size: 'lg',
140
+ title: 'Open menu',
141
+ }"
142
+ >
143
+ Custom icon
144
+ </MazDropdown>
145
+ ```
146
+
147
+ ## Custom dropdown main button without chevron icon
148
+
149
+ **Tip:**
150
+
151
+ This component uses [MazBtn](./maz-btn.md) has a menu button, so it inherits all its props
152
+
153
+ **Details: View code**
154
+
155
+ ```vue{7-13}
156
+ <script lang="ts" setup>
157
+ import { MazBars3 } from '@maz-ui/icons/raw/MazBars3'
158
+ </script>
159
+
160
+ <template>
161
+ <MazDropdown
162
+ color="primary"
163
+ fab
164
+ pastel
165
+ :chevron="false"
166
+ :icon="MazBars3"
167
+ items-size="sm"
168
+ size="xl"
169
+ :items="[
170
+ { label: 'Action', onClick: () => toast.success('CLICKED') },
171
+ { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
172
+ { label: 'Router Link', to: { name: 'index' } },
173
+ ]"
174
+ :close-on-click="false"
175
+ />
176
+ </template>
177
+ ```
178
+
179
+ ## Custom slots
180
+
181
+ ### Custom dropdown panel
182
+
183
+ You can provide a template to replace the default dropdown panel
184
+
185
+ **Details: View code**
186
+
187
+ ```html
188
+ <MazDropdown>
189
+ Customized dropdown panel
190
+
191
+ <template #dropdown>
192
+ <div class="grid grid-cols-3 gap-2">
193
+ <MazBtn color="transparent"> Item </MazBtn>
194
+ <MazBtn color="transparent"> Item </MazBtn>
195
+ <MazBtn color="transparent"> Item </MazBtn>
196
+ <MazBtn color="transparent"> Item </MazBtn>
197
+ <MazBtn color="transparent"> Item </MazBtn>
198
+ <MazBtn color="transparent"> Item </MazBtn>
199
+ <MazBtn color="transparent"> Item </MazBtn>
200
+ <MazBtn color="transparent"> Item </MazBtn>
201
+ <MazBtn color="transparent"> Item </MazBtn>
202
+ <MazBtn color="transparent"> Item </MazBtn>
203
+ <MazBtn color="transparent"> Item </MazBtn>
204
+ <MazBtn color="transparent"> Item </MazBtn>
205
+ </div>
206
+ </template>
207
+ </MazDropdown>
208
+ ```
209
+
210
+ ### Custom menuitem labels
211
+
212
+ You can provide a template to replace menuitem labels to add more elements in each menuitem
213
+
214
+ **Details: View code**
215
+
216
+ ```html
217
+ <MazDropdown
218
+ :items="[
219
+ { label: 'Action', onClick: () => toast.success('CLICKED'), additionnalData: 'https://placedog.net/240/200' },
220
+ { label: 'Link (href)', href: 'https://www.google.com', target: '_blank', additionnalData: 'https://placedog.net/340/300' },
221
+ { label: 'Router Link', to: { name: 'index' }, additionnalData: 'https://placedog.net/440/400' },
222
+ ]"
223
+ >
224
+ <template #default>
225
+ Customized labels
226
+ </template>
227
+
228
+ <template #menuitem-label="{ item }">
229
+ <div class="flex items-center gap-2">
230
+ <MazAvatar :src="item.additionnalData" />
231
+ <span>
232
+ {{ item.label }}
233
+ </span>
234
+ </div>
235
+ </template>
236
+ </MazDropdown>
237
+ ```
238
+
239
+ ### Custom control triggered element
240
+
241
+ You can provide an HTML element or a component to replace the default button
242
+
243
+ **Warning:**
244
+
245
+ Add `tabindex="-1"` attribute to your element to avoid a double focus with Tab key
246
+
247
+ **Details: View code**
248
+
249
+ ```html
250
+ <MazDropdown
251
+ :items="[
252
+ {
253
+ label: 'Action',
254
+ onClick: () => toast.success('CLICKED'),
255
+ additionnalData: 'https://placedog.net/240/200',
256
+ },
257
+ {
258
+ label: 'Link (href)',
259
+ href: 'https://www.google.com',
260
+ target: '_blank',
261
+ additionnalData: 'https://placedog.net/340/300',
262
+ },
263
+ {
264
+ label: 'Router Link',
265
+ to: { name: 'index' },
266
+ additionnalData: 'https://placedog.net/440/400',
267
+ },
268
+ ]"
269
+ >
270
+ <template #element>
271
+ <MazAvatar
272
+ clickable
273
+ hide-clickable-icon
274
+ src="https://cdn.artphotolimited.com/images/5ff5a529bd40b83c5a537440/1000x1000/gerard-depardieu-1983.jpg"
275
+ tabindex="-1"
276
+ />
277
+ </template>
278
+ </MazDropdown>
279
+
280
+ <MazDropdown
281
+ position="top"
282
+ :items="[
283
+ {
284
+ label: 'Action',
285
+ onClick: () => toast.success('CLICKED'),
286
+ additionnalData: 'https://placedog.net/240/200',
287
+ },
288
+ {
289
+ label: 'Link (href)',
290
+ href: 'https://www.google.com',
291
+ target: '_blank',
292
+ additionnalData: 'https://placedog.net/340/300',
293
+ },
294
+ {
295
+ label: 'Router Link',
296
+ to: { name: 'index' },
297
+ additionnalData: 'https://placedog.net/440/400',
298
+ },
299
+ ]"
300
+ >
301
+ <template #element="{ isOpen }">
302
+ <button class="border border-solid border-divider-400 p-2 hover:bg-surface-400" tabindex="-1">
303
+ HTMLButtonElement: isOpen {{ isOpen }}
304
+ </button>
305
+ </template>
306
+ </MazDropdown>
307
+ ```
308
+
309
+ ## Open programmatically
310
+
311
+ isOpen:
312
+
313
+ ```vue
314
+ <template>
315
+ <MazDropdown
316
+ v-model="isOpen"
317
+ :items="[
318
+ { label: 'Action', onClick: () => toast.success('CLICKED') },
319
+ { label: 'Link (href)', href: 'https://www.google.com', target: '_blank' },
320
+ { label: 'Router Link', to: { name: 'index' } },
321
+ ]"
322
+ >
323
+ Open
324
+ </MazDropdown>
325
+
326
+ <MazBtn @click="isOpen = !isOpen">
327
+ Open Dropdown
328
+ </MazBtn>
329
+ </template>
330
+
331
+ <script lang="ts" setup>
332
+ import { ref } from 'vue'
333
+
334
+ const isOpen = ref(false)
335
+ </script>
336
+ ```
337
+
338
+ ## Position
339
+
340
+ ## Types
341
+
342
+ ### MazDropdownMenuItem
343
+
344
+ ```ts
345
+ type MazDropdownMenuItem = {
346
+ label: string
347
+ onClick?: () => unknown
348
+ target?: string
349
+ href?: string
350
+ to?: RouteLocationRaw
351
+ class?: string
352
+ } & Record<string, unknown>
353
+ ```
354
+
355
+ ## Accessibility
356
+
357
+ The trigger button exposes the menu state (`aria-haspopup="menu"`, `aria-expanded`, `aria-controls`), the panel is a `menu` and each item a `menuitem`. ↓ / ↑ move between the items, Enter runs the focused item and Esc closes the menu.
358
+
359
+ ## MazDropdown API
360
+
361
+ `import MazDropdown from 'maz-ui/components/MazDropdown'`
362
+
363
+ ### Props
364
+
365
+ - `model-value` (`boolean`, default: `false`, `v-model`): Controls whether the dropdown menu is open.
366
+ - `items` (`MazDropdownMenuItem[]`, default: `[]`): Menu items to display in the dropdown Each item can be either a link (with href/to properties) or an action (with onClick function).
367
+ - `items-size` (`"xs" | "sm" | "md" | "lg" | "xl" | "mini"`): Size of the dropdown menu items.
368
+ - `id` (`string`): Unique identifier for the dropdown component.
369
+ - `trigger` (`MazPopoverTrigger`, default: `"adaptive"`): Determines how the dropdown should be triggered. Values: `'click'`, `'hover'`, `'manual'`, `'adaptive'` (non exhaustive).
370
+ - `color` (`"primary" | "secondary" | "accent" | "info" | "success" | "warning" | "destructive" | "contrast" | "transparent"`, default: `"transparent"`): Color theme for the dropdown button.
371
+ - `position` (`MazPopoverPosition`, default: `"auto"`): Position of the menu relative to trigger. Values: `'auto'`, `'top'`, `'bottom'`, `'left'`, `'right'`, `'top-start'`, `'top-end'`, `'bottom-start'`, `'bottom-end'`, `'left-start'`, `'left-end'`, `'right-start'`, `'right-end'` (non exhaustive).
372
+ - `close-on-click` (`boolean`, default: `false`): Controls whether the dropdown menu closes when a menu item is clicked.
373
+ - `disabled` (`boolean`, default: `false`): Disables the dropdown functionality.
374
+ - `chevron` (`boolean`, default: `true`): Controls whether to show the chevron icon in the trigger button.
375
+ - `screen-reader-description` (`string`, default: `MazUiTranslationsSchema['dropdown']['screenReaderDescription']`): Accessible description for screen readers describing the dropdown functionality If not provided, the default translation of MazUiTranslations plugin will be used.
376
+ - `menu-panel-class` (`ClassValue`): Additional CSS classes to apply to the dropdown menu panel Useful for customizing the dropdown appearance (background, border, etc.).
377
+ - `menu-panel-style` (`StyleValue`): Inline styles to apply to the dropdown menu panel Useful for custom styling. You may use `!important` to override default styles.
378
+ - `block` (`boolean`, default: `false`): Makes the dropdown button expand to full width of its container.
379
+ - `dropdown-icon` (`any`): Icon to use instead of the default chevron for the dropdown indicator Custom icon to display in place of the default chevron. Accepts a bare value (Vue component, raw SVG string, URL or `data:` URI) or a full `MazIconProps` object.
380
+ - `dropdown-icon-animation` (`boolean`, default: `true`): Controls whether the dropdown icon rotates when the dropdown is opened.
381
+ - `size` (`"xs" | "sm" | "md" | "lg" | "xl" | "mini"`, default: `'md'`): Size of the dropdown button.
382
+ - `transition` (`string`, default: `"scale-pop"`): Transition to use when the dropdown is opened or closed. Values: `'scale-pop'`, `'scale-fade'`, `'string'` (non exhaustive).
383
+ - `delay` (`number`, default: `0`): Delay before showing/hiding in milliseconds.
384
+ - `persistent` (`boolean`, default: `false`): Prevent auto-close (ignores click outside and escape key).
385
+ - `close-on-escape` (`boolean`, default: `true`): Close popover when pressing Escape key.
386
+ - `aria-labelledby` (`string`): ARIA labelledby attribute for accessibility.
387
+ - `aria-describedby` (`string`): ARIA describedby attribute for accessibility.
388
+ - `aria-label` (`string`): ARIA label for the popover.
389
+ - `offset` (`number`, default: `8`): Distance between trigger and popover in pixels.
390
+ - `prefer-position` (`MazPopoverPreferPosition`, default: `"bottom-start"`): Preferred position of the popover relative to trigger when auto position is used - Preferred position of the popover relative to trigger. Values: `'auto'`, `'top'`, `'bottom'`, `'left'`, `'right'`, `'top-start'`, `'top-end'`, `'bottom-start'`, `'bottom-end'`, `'left-start'`, `'left-end'`, `'right-start'`, `'right-end'` (non exhaustive).
391
+ - `fallback-position` (`MazPopoverFallbackPosition`, default: `auto`): Fallback position of the popover relative to trigger when prefer position is not visible - Fallback position of the popover relative to trigger. Values: `'auto'`, `'top'`, `'bottom'`, `'left'`, `'right'`, `'top-start'`, `'top-end'`, `'bottom-start'`, `'bottom-end'`, `'left-start'`, `'left-end'`, `'right-start'`, `'right-end'` (non exhaustive).
392
+ - `announce-changes` (`boolean`, default: `false`): Announce content changes to screen readers.
393
+ - `hover-delay` (`number`, default: `150`): Delay before closing on hover in milliseconds.
394
+ - `teleport-to` (`string`, default: `'body'`): Teleport target selector.
395
+ - `overlay-class` (`ClassValue`): Additional CSS classes for the overlay wrapper.
396
+ - `panel-class` (`ClassValue`): Additional CSS classes for the popover panel.
397
+ - `panel-style` (`StyleValue`): Inline styles for the popover panel.
398
+ - `close-on-click-outside` (`boolean`, default: `true`): Close popover when clicking outside.
399
+ - `trap-focus` (`boolean`, default: `true`): Trap focus inside the popover.
400
+ - `keep-open-on-hover` (`boolean`, default: `false`): Keep popover open when hovering over the panel.
401
+ - `position-reference` (`string | HTMLElement`): CSS selector or element reference to use for positioning calculations - When provided, the popover will position relative to this element instead of the trigger Useful for components with labels where you want to position relative to the actual input.
402
+
403
+ ### Events
404
+
405
+ - `@update:model-value` (payload: `value: boolean`): Emitted when the dropdown open state changes
406
+ - `@update:modelValue` (payload: `value: boolean`)
407
+ - `@menuitem-clicked` (payload: `event: Event`): Emitted when a menu item is clicked
408
+
409
+ ### Slots
410
+
411
+ - `#screen-reader-description`: description for screen readers (hidden from visual display)
412
+ - `#trigger`: trigger element for the dropdown Bindings: `isOpen: boolean` (Current state of the dropdown (true when open, false when closed)), `toggle: () => void` (Function to toggle the dropdown), `close: () => void` (Function to close the dropdown), `open: () => void` (Function to open the dropdown).
413
+ - `#default`: Text content of the trigger element
414
+ - `#dropdown-icon`: Dropdown indicator icon Bindings: `isOpen: boolean` (Current state of the dropdown (true when open, false when closed)), `toggle: () => void`, `close: () => void`, `open: () => void`.
415
+ - `#dropdown`: Dropdown menu panel content Bindings: `items: MazDropdownMenuItem[]` (Array of menu items passed via the items prop), `open: () => void` (Function to open the dropdown), `close: () => void` (Function to close the dropdown), `isOpen: boolean` (Current state of the dropdown (true when open, false when closed)), `toggle: () => void` (Function to toggle the dropdown).
416
+ - `#prepend-menu`: Prepend to the list of menu items Bindings: `isOpen: boolean` (Current state of the dropdown (true when open, false when closed)), `open: () => void` (Function to open the dropdown), `close: () => void` (Function to close the dropdown), `toggle: () => void` (Function to toggle the dropdown).
417
+ - `#menuitem`: Menu item component Bindings: `item: MazDropdownMenuItem` (Individual menu item object with properties like label, href, onClick, etc.), `open: () => void` (Function to open the dropdown), `close: () => void` (Function to close the dropdown), `isOpen: boolean` (Current state of the dropdown (true when open, false when closed)), `toggle: () => void` (Function to toggle the dropdown).
418
+ - `#menuitem-label`: Label content for menu item Bindings: `item: MazDropdownMenuItem` (Individual menu item object containing label and other properties), `open: () => void` (Function to open the dropdown), `close: () => void` (Function to close the dropdown), `isOpen: boolean` (Current state of the dropdown (true when open, false when closed)), `toggle: () => void` (Function to toggle the dropdown).
419
+ - `#append-menu`: Append to the list of menu items Bindings: `isOpen: boolean` (Current state of the dropdown (true when open, false when closed)), `open: () => void` (Function to open the dropdown), `close: () => void` (Function to close the dropdown), `toggle: () => void` (Function to toggle the dropdown).