@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,414 @@
1
+ ---
2
+ title: MazChecklist
3
+ description: MazChecklist is a standalone component that allows creating a checklist with integrated search functionality. It provides a flexible and customizable user interface for selecting multiple items from a list of options. The component supports real-time search, color customization, and displays messages when no results are found.
4
+ lastUpdated: false
5
+ ---
6
+
7
+ # {{ $frontmatter.title }}
8
+
9
+ {{ $frontmatter.description }}
10
+
11
+ <!--@include: ./../.vitepress/mixins/getting-started.md-->
12
+
13
+ <!--@include: ./../.vitepress/mixins/translated-component.md-->
14
+
15
+ ## Basic usage
16
+
17
+ <ComponentDemo expanded>
18
+
19
+ Selected languages: {{ languages || 'none' }}
20
+
21
+ query value: {{ query || 'none' }}
22
+
23
+ <br />
24
+
25
+ <MazChecklist
26
+ v-model="languages"
27
+ v-model:query="query"
28
+ title="Select your languages"
29
+ :search="{
30
+ enabled: true,
31
+ placeholder: 'Search a language',
32
+ debounce: 300,
33
+ autoFocus: false,
34
+ size: 'sm'
35
+ }"
36
+ :items="languagesOptions"
37
+ class="maz-max-h-80"
38
+ >
39
+ <template #item="{ item }">
40
+ <div class="maz-flex maz-w-full maz-items-center maz-justify-between maz-gap-2">
41
+ <span class="maz-capitalize">{{ item.label }}</span>
42
+ <MazBadge color="theme" outlined>
43
+ {{ item.value }}
44
+ </MazBadge>
45
+ </div>
46
+ </template>
47
+ </MazChecklist>
48
+
49
+ <template #code>
50
+
51
+ ```vue
52
+ <template>
53
+ Selected languages: {{ languages || 'none' }}
54
+
55
+ <br />
56
+
57
+ <MazChecklist
58
+ v-model="languages"
59
+ v-model:query="query"
60
+ title="Select your languages"
61
+ :search="{
62
+ enabled: true,
63
+ placeholder: 'Search a language',
64
+ debounce: 300,
65
+ autoFocus: false,
66
+ size: 'sm'
67
+ }"
68
+ :items="languagesOptions"
69
+ class="maz-h-80"
70
+ >
71
+ <template #item="{ item }">
72
+ <div class="maz-flex maz-w-full maz-items-center maz-justify-between maz-gap-2">
73
+ <span class="maz-capitalize">{{ item.label }}</span>
74
+ <MazBadge color="theme" outlined>
75
+ {{ item.value }}
76
+ </MazBadge>
77
+ </div>
78
+ </template>
79
+ </MazChecklist>
80
+ </template>
81
+
82
+ <script lang="ts" setup>
83
+ import { ref } from 'vue'
84
+ import MazChecklist from 'maz-ui/components/MazChecklist'
85
+ import { useDisplayNames } from 'maz-ui/composables/useDisplayNames'
86
+
87
+ const query = ref<string>()
88
+ const languages = ref<string[]>()
89
+ const languagesOptions = useDisplayNames('en-US').getAllDisplayNames({ type: 'language' }).value.map(({ code, name }) => ({
90
+ label: name,
91
+ value: code,
92
+ }))
93
+ </script>
94
+ ```
95
+
96
+ </template>
97
+ </ComponentDemo>
98
+
99
+ ## Custom search function
100
+
101
+ You can replace the default search function by providing a custom search function. Useful when you need to search by multiple fields, if you want to use a different search algorithm or if you want search into your database by fetching data from an API.
102
+
103
+ <ComponentDemo>
104
+
105
+ Selected employees: {{ selectedEmployees || 'none' }}
106
+
107
+ <br />
108
+
109
+ <MazChecklist
110
+ v-model="selectedEmployees"
111
+ v-model:query="employeeQuery"
112
+ title="Select team members"
113
+ :search="{
114
+ placeholder: 'Search by name, email, or department...',
115
+ debounce: 200,
116
+ }"
117
+ :items="employees"
118
+ :search-function="customEmployeeSearch"
119
+ color="success"
120
+ elevation
121
+ class="maz-max-h-96"
122
+ >
123
+ <template #item="{ item }">
124
+ <div class="maz-flex maz-w-full maz-items-center maz-gap-4">
125
+ <div class="maz-flex maz-h-10 maz-w-10 maz-flex-none maz-items-center maz-justify-center maz-rounded-full maz-bg-gradient-to-br maz-from-primary-500 maz-to-secondary-500 maz-text-white maz-font-semibold maz-text-lg">
126
+ {{ item.initials }}
127
+ </div>
128
+ <div class="maz-flex maz-flex-1 maz-flex-col maz-gap-1">
129
+ <div class="maz-flex maz-items-center maz-gap-2">
130
+ <span class="maz-font-semibold maz-text-normal">{{ item.label }}</span>
131
+ <MazBadge :color="item.departmentColor" size="0.7em">
132
+ {{ item.department }}
133
+ </MazBadge>
134
+ </div>
135
+ <span class="maz-text-muted maz-text-sm">{{ item.email }}</span>
136
+ </div>
137
+ <div class="maz-flex maz-flex-none maz-items-center maz-gap-1">
138
+ <MazIcon name="star" class="maz-text-warning-500" size="1rem" />
139
+ <span class="maz-text-sm maz-font-medium">{{ item.rating }}</span>
140
+ </div>
141
+ </div>
142
+ </template>
143
+ </MazChecklist>
144
+
145
+ <template #code>
146
+
147
+ ```vue
148
+ <template>
149
+ Selected employees: {{ selectedEmployees || 'none' }}
150
+
151
+ <br />
152
+
153
+ <MazChecklist
154
+ v-model="selectedEmployees"
155
+ v-model:query="employeeQuery"
156
+ title="Select team members"
157
+ :search="{
158
+ placeholder: 'Search by name, email, or department...',
159
+ debounce: 200,
160
+ block: true,
161
+ }"
162
+ :items="employees"
163
+ :search-function="customEmployeeSearch"
164
+ color="success"
165
+ elevation
166
+ class="max-h-96"
167
+ >
168
+ <template #item="{ item }">
169
+ <div class="flex w-full items-center gap-4">
170
+ <div class="flex h-12 w-12 flex-none items-center justify-center rounded-full bg-gradient-to-br from-primary-500 to-secondary-500 text-white font-semibold text-lg">
171
+ {{ item.initials }}
172
+ </div>
173
+ <div class="flex flex-1 flex-col gap-1">
174
+ <div class="flex items-center gap-2">
175
+ <span class="font-semibold text-normal">{{ item.label }}</span>
176
+ <MazBadge :color="item.departmentColor" size="xs">
177
+ {{ item.department }}
178
+ </MazBadge>
179
+ </div>
180
+ <span class="text-muted text-sm">{{ item.email }}</span>
181
+ </div>
182
+ <div class="flex flex-none items-center gap-1">
183
+ <MazIcon name="star" class="text-warning-500" size="1rem" />
184
+ <span class="text-sm font-medium">{{ item.rating }}</span>
185
+ </div>
186
+ </div>
187
+ </template>
188
+ </MazChecklist>
189
+ </template>
190
+
191
+ <script lang="ts" setup>
192
+ import { ref } from 'vue'
193
+ import { MazChecklist } from 'maz-ui/components'
194
+
195
+ const employeeQuery = ref<string>()
196
+ const selectedEmployees = ref<string[]>()
197
+
198
+ const employees = [
199
+ {
200
+ label: 'Sarah Johnson',
201
+ value: 'sarah.johnson',
202
+ email: 'sarah.johnson@company.com',
203
+ department: 'Engineering',
204
+ departmentColor: 'info',
205
+ initials: 'SJ',
206
+ rating: 4.9
207
+ },
208
+ {
209
+ label: 'Michael Chen',
210
+ value: 'michael.chen',
211
+ email: 'michael.chen@company.com',
212
+ department: 'Design',
213
+ departmentColor: 'warning',
214
+ initials: 'MC',
215
+ rating: 4.7
216
+ },
217
+ {
218
+ label: 'Emma Rodriguez',
219
+ value: 'emma.rodriguez',
220
+ email: 'emma.rodriguez@company.com',
221
+ department: 'Marketing',
222
+ departmentColor: 'success',
223
+ initials: 'ER',
224
+ rating: 4.8
225
+ },
226
+ {
227
+ label: 'David Kim',
228
+ value: 'david.kim',
229
+ email: 'david.kim@company.com',
230
+ department: 'Engineering',
231
+ departmentColor: 'info',
232
+ initials: 'DK',
233
+ rating: 4.6
234
+ },
235
+ {
236
+ label: 'Lisa Thompson',
237
+ value: 'lisa.thompson',
238
+ email: 'lisa.thompson@company.com',
239
+ department: 'Product',
240
+ departmentColor: 'contrast',
241
+ initials: 'LT',
242
+ rating: 4.9
243
+ },
244
+ {
245
+ label: 'John Doe',
246
+ value: 'john.doe',
247
+ email: 'john.doe@company.com',
248
+ department: 'Marketing',
249
+ departmentColor: 'success',
250
+ initials: 'JD',
251
+ rating: 4.9
252
+ },
253
+ {
254
+ label: 'Jane Smith',
255
+ value: 'jane.smith',
256
+ email: 'jane.smith@company.com',
257
+ department: 'Engineering',
258
+ departmentColor: 'info',
259
+ initials: 'JS',
260
+ rating: 4.9
261
+ },
262
+ {
263
+ label: 'Jim Beam',
264
+ value: 'jim.beam',
265
+ email: 'jim.beam@company.com',
266
+ department: 'Sales',
267
+ departmentColor: 'destructive',
268
+ initials: 'JB',
269
+ rating: 4.9
270
+ },
271
+ {
272
+ label: 'Jill Johnson',
273
+ value: 'jill.johnson',
274
+ email: 'jill.johnson@company.com',
275
+ department: 'Marketing',
276
+ departmentColor: 'success',
277
+ initials: 'JJ',
278
+ rating: 4.9
279
+ },
280
+ ]
281
+
282
+ function customEmployeeSearch(query: string, items: typeof employees) {
283
+ const searchTerm = query.toLowerCase().trim()
284
+
285
+ if (!searchTerm) return items
286
+
287
+ return items.filter(employee =>
288
+ employee.label.toLowerCase().includes(searchTerm) ||
289
+ employee.email.toLowerCase().includes(searchTerm) ||
290
+ employee.department.toLowerCase().includes(searchTerm) ||
291
+ employee.value.toLowerCase().includes(searchTerm)
292
+ )
293
+ }
294
+ </script>
295
+ ```
296
+
297
+ </template>
298
+ </ComponentDemo>
299
+
300
+ <!--@include: ./../../.vitepress/generated-docs/maz-checklist.doc.md-->
301
+
302
+ <script lang="ts" setup>
303
+ import { ref } from 'vue'
304
+ import { useDisplayNames } from 'maz-ui/src/composables/useDisplayNames'
305
+
306
+ // First demo variables
307
+ const query = ref()
308
+ const languages = ref<string[]>()
309
+ const languagesOptions = useDisplayNames('en-US').getAllDisplayNames({ type: 'language' }).value.map(({ code, name }) => ({
310
+ label: name,
311
+ value: code,
312
+ }))
313
+
314
+ // Second demo variables
315
+ const employeeQuery = ref<string>()
316
+ const selectedEmployees = ref<string[]>()
317
+
318
+ const employees = [
319
+ {
320
+ label: 'Sarah Johnson',
321
+ value: 'sarah.johnson',
322
+ email: 'sarah.johnson@company.com',
323
+ department: 'Engineering',
324
+ departmentColor: 'info',
325
+ initials: 'SJ',
326
+ rating: 4.9
327
+ },
328
+ {
329
+ label: 'Michael Chen',
330
+ value: 'michael.chen',
331
+ email: 'michael.chen@company.com',
332
+ department: 'Design',
333
+ departmentColor: 'warning',
334
+ initials: 'MC',
335
+ rating: 4.7
336
+ },
337
+ {
338
+ label: 'Emma Rodriguez',
339
+ value: 'emma.rodriguez',
340
+ email: 'emma.rodriguez@company.com',
341
+ department: 'Marketing',
342
+ departmentColor: 'success',
343
+ initials: 'ER',
344
+ rating: 4.8
345
+ },
346
+ {
347
+ label: 'David Kim',
348
+ value: 'david.kim',
349
+ email: 'david.kim@company.com',
350
+ department: 'Engineering',
351
+ departmentColor: 'info',
352
+ initials: 'DK',
353
+ rating: 4.6
354
+ },
355
+ {
356
+ label: 'Lisa Thompson',
357
+ value: 'lisa.thompson',
358
+ email: 'lisa.thompson@company.com',
359
+ department: 'Product',
360
+ departmentColor: 'contrast',
361
+ initials: 'LT',
362
+ rating: 4.9
363
+ },
364
+ {
365
+ label: 'John Doe',
366
+ value: 'john.doe',
367
+ email: 'john.doe@company.com',
368
+ department: 'Marketing',
369
+ departmentColor: 'success',
370
+ initials: 'JD',
371
+ rating: 4.9
372
+ },
373
+ {
374
+ label: 'Jane Smith',
375
+ value: 'jane.smith',
376
+ email: 'jane.smith@company.com',
377
+ department: 'Engineering',
378
+ departmentColor: 'info',
379
+ initials: 'JS',
380
+ rating: 4.9
381
+ },
382
+ {
383
+ label: 'Jim Beam',
384
+ value: 'jim.beam',
385
+ email: 'jim.beam@company.com',
386
+ department: 'Sales',
387
+ departmentColor: 'destructive',
388
+ initials: 'JB',
389
+ rating: 4.9
390
+ },
391
+ {
392
+ label: 'Jill Johnson',
393
+ value: 'jill.johnson',
394
+ email: 'jill.johnson@company.com',
395
+ department: 'Marketing',
396
+ departmentColor: 'success',
397
+ initials: 'JJ',
398
+ rating: 4.9
399
+ },
400
+ ]
401
+
402
+ function customEmployeeSearch(query: string, items: typeof employees) {
403
+ const searchTerm = query.toLowerCase().trim()
404
+
405
+ if (!searchTerm) return items
406
+
407
+ return items.filter(employee =>
408
+ employee.label.toLowerCase().includes(searchTerm) ||
409
+ employee.email.toLowerCase().includes(searchTerm) ||
410
+ employee.department.toLowerCase().includes(searchTerm) ||
411
+ employee.value.toLowerCase().includes(searchTerm)
412
+ )
413
+ }
414
+ </script>
@@ -0,0 +1,147 @@
1
+ ---
2
+ title: MazCircularProgressBar
3
+ description: MazCircularProgressBar is a standalone component
4
+ ---
5
+
6
+ # {{ $frontmatter.title }}
7
+
8
+ {{ $frontmatter.description }}
9
+
10
+ <!--@include: ./../.vitepress/mixins/getting-started.md-->
11
+
12
+ ## Basic usage
13
+
14
+ <ComponentDemo>
15
+ <MazCircularProgressBar :percentage="75" suffix="%" />
16
+
17
+ <template #code>
18
+
19
+ ```vue
20
+ <script lang="ts" setup>
21
+ import { MazCircularProgressBar } from 'maz-ui/components'
22
+ </script>
23
+
24
+ <template>
25
+ <MazCircularProgressBar :percentage="75" suffix="%" />
26
+ </template>
27
+ ```
28
+
29
+ </template>
30
+ </ComponentDemo>
31
+
32
+ ## Size
33
+
34
+ The size of the component can be changed by passing the `size` prop. The value could be a string in px, em or rem.
35
+
36
+ <ComponentDemo>
37
+ <div class="maz-flex maz-gap-3 maz-flex-wrap maz-items-center">
38
+ <MazCircularProgressBar :percentage="75" suffix="%" size="3em" />
39
+ <MazCircularProgressBar :percentage="75" suffix="%" size="100px" />
40
+ <MazCircularProgressBar :percentage="75" suffix="%" size="10rem" />
41
+ <MazCircularProgressBar :percentage="75" suffix="%" size="15rem" />
42
+ </div>
43
+
44
+ <template #code>
45
+
46
+ ```vue
47
+ <MazCircularProgressBar :percentage="75" suffix="%" size="3em" />
48
+
49
+ <MazCircularProgressBar :percentage="75" suffix="%" size="100px" />
50
+
51
+ <MazCircularProgressBar :percentage="75" suffix="%" size="10rem" />
52
+
53
+ <MazCircularProgressBar :percentage="75" suffix="%" size="15rem" />
54
+ ```
55
+
56
+ </template>
57
+ </ComponentDemo>
58
+
59
+ ## Duration
60
+
61
+ The duration of the animation can be changed by passing the `duration` prop. The value could be a number in milliseconds.
62
+
63
+ <ComponentDemo>
64
+ <MazCircularProgressBar :percentage="75" :duration="5000" />
65
+
66
+ <template #code>
67
+
68
+ ```vue
69
+ <MazCircularProgressBar :percentage="75" :duration="5000" />
70
+ ```
71
+
72
+ </template>
73
+ </ComponentDemo>
74
+
75
+ ## Color
76
+
77
+ The color of the component can be changed by passing the `color` prop. Should be a valid color in [basic colors](./../guide/colors.md).
78
+
79
+ <ComponentDemo>
80
+ <div class="maz-flex maz-gap-3 maz-flex-wrap maz-items-center">
81
+ <MazCircularProgressBar :percentage="75" color="primary" />
82
+ <MazCircularProgressBar :percentage="75" color="secondary" />
83
+ <MazCircularProgressBar :percentage="75" color="info" />
84
+ <MazCircularProgressBar :percentage="75" color="success" />
85
+ <MazCircularProgressBar :percentage="75" color="warning" />
86
+ <MazCircularProgressBar :percentage="75" color="destructive" />
87
+ </div>
88
+
89
+ <template #code>
90
+
91
+ ```vue
92
+ <MazCircularProgressBar :percentage="75" :duration="5000" />
93
+ ```
94
+
95
+ </template>
96
+ </ComponentDemo>
97
+
98
+ ## Auto-color
99
+
100
+ The color of the component is automatically according to the percentage. The color will be green if the percentage is egal to 100%, orange if below 100%, and red if below 50%.
101
+
102
+ <ComponentDemo>
103
+ <div class="maz-flex maz-gap-3 maz-flex-wrap maz-items-center">
104
+ <MazCircularProgressBar :percentage="0" auto-color size="9rem" />
105
+ <MazCircularProgressBar :percentage="25" auto-color size="9rem" />
106
+ <MazCircularProgressBar :percentage="50" auto-color size="9rem" />
107
+ <MazCircularProgressBar :percentage="100" auto-color size="9rem" />
108
+ </div>
109
+
110
+ <template #code>
111
+
112
+ ```vue
113
+ <MazCircularProgressBar :percentage="0" auto-color size="9rem" />
114
+
115
+ <MazCircularProgressBar :percentage="25" auto-color size="9rem" />
116
+
117
+ <MazCircularProgressBar :percentage="50" auto-color size="9rem" />
118
+
119
+ <MazCircularProgressBar :percentage="100" auto-color size="9rem" />
120
+ ```
121
+
122
+ </template>
123
+ </ComponentDemo>
124
+
125
+ ## Slot
126
+
127
+ Replace the percentage value by a custom slot.
128
+
129
+ Obviously, the "counter animation" will not work in this case.
130
+
131
+ <ComponentDemo>
132
+ <div class="maz-flex maz-gap-3 maz-flex-wrap maz-items-center">
133
+ <MazCircularProgressBar :percentage="50">
134
+ 2/4
135
+ </MazCircularProgressBar>
136
+ </div>
137
+
138
+ <template #code>
139
+
140
+ ```vue
141
+ <MazCircularProgressBar :percentage="75" :duration="5000" />
142
+ ```
143
+
144
+ </template>
145
+ </ComponentDemo>
146
+
147
+ <!--@include: ./../../.vitepress/generated-docs/maz-circular-progress-bar.doc.md-->