@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.
- package/LICENSE +21 -0
- package/README.md +264 -0
- package/bin/maz-ui-mcp.mjs +7 -0
- package/dist/mcp.d.mts +13 -0
- package/dist/mcp.d.ts +13 -0
- package/dist/mcp.mjs +586 -0
- package/docs/generated-docs/maz-accordion.doc.md +21 -0
- package/docs/generated-docs/maz-animated-counter.doc.md +17 -0
- package/docs/generated-docs/maz-animated-element.doc.md +14 -0
- package/docs/generated-docs/maz-animated-text.doc.md +14 -0
- package/docs/generated-docs/maz-avatar.doc.md +44 -0
- package/docs/generated-docs/maz-backdrop.doc.md +61 -0
- package/docs/generated-docs/maz-badge.doc.md +16 -0
- package/docs/generated-docs/maz-bottom-sheet.doc.md +21 -0
- package/docs/generated-docs/maz-btn.doc.md +30 -0
- package/docs/generated-docs/maz-card-spotlight.doc.md +16 -0
- package/docs/generated-docs/maz-card.doc.md +39 -0
- package/docs/generated-docs/maz-carousel.doc.md +16 -0
- package/docs/generated-docs/maz-chart.doc.md +10 -0
- package/docs/generated-docs/maz-checkbox.doc.md +34 -0
- package/docs/generated-docs/maz-checklist.doc.md +30 -0
- package/docs/generated-docs/maz-circular-progress-bar.doc.md +27 -0
- package/docs/generated-docs/maz-date-picker.doc.md +52 -0
- package/docs/generated-docs/maz-dialog-confirm.doc.md +24 -0
- package/docs/generated-docs/maz-dialog.doc.md +22 -0
- package/docs/generated-docs/maz-drawer.doc.md +26 -0
- package/docs/generated-docs/maz-dropdown.doc.md +42 -0
- package/docs/generated-docs/maz-dropzone.doc.md +82 -0
- package/docs/generated-docs/maz-expand-animation.doc.md +12 -0
- package/docs/generated-docs/maz-fullscreen-loader.doc.md +13 -0
- package/docs/generated-docs/maz-gallery.doc.md +17 -0
- package/docs/generated-docs/maz-icon.doc.md +18 -0
- package/docs/generated-docs/maz-input-code.doc.md +25 -0
- package/docs/generated-docs/maz-input-number.doc.md +31 -0
- package/docs/generated-docs/maz-input-phone-number.doc.md +56 -0
- package/docs/generated-docs/maz-input-price.doc.md +26 -0
- package/docs/generated-docs/maz-input-tags.doc.md +24 -0
- package/docs/generated-docs/maz-input.doc.md +54 -0
- package/docs/generated-docs/maz-lazy-img.doc.md +31 -0
- package/docs/generated-docs/maz-link.doc.md +31 -0
- package/docs/generated-docs/maz-loading-bar.doc.md +6 -0
- package/docs/generated-docs/maz-pagination.doc.md +22 -0
- package/docs/generated-docs/maz-popover.doc.md +70 -0
- package/docs/generated-docs/maz-pull-to-refresh.doc.md +31 -0
- package/docs/generated-docs/maz-radio-buttons.doc.md +33 -0
- package/docs/generated-docs/maz-radio.doc.md +33 -0
- package/docs/generated-docs/maz-reading-progress-bar.doc.md +18 -0
- package/docs/generated-docs/maz-select-country.doc.md +44 -0
- package/docs/generated-docs/maz-select.doc.md +65 -0
- package/docs/generated-docs/maz-slider.doc.md +20 -0
- package/docs/generated-docs/maz-spinner.doc.md +6 -0
- package/docs/generated-docs/maz-stepper.doc.md +29 -0
- package/docs/generated-docs/maz-switch.doc.md +31 -0
- package/docs/generated-docs/maz-table-cell.doc.md +5 -0
- package/docs/generated-docs/maz-table-row.doc.md +11 -0
- package/docs/generated-docs/maz-table-title.doc.md +5 -0
- package/docs/generated-docs/maz-table.doc.md +66 -0
- package/docs/generated-docs/maz-tabs-bar.doc.md +18 -0
- package/docs/generated-docs/maz-tabs-content-item.doc.md +11 -0
- package/docs/generated-docs/maz-tabs-content.doc.md +5 -0
- package/docs/generated-docs/maz-tabs.doc.md +17 -0
- package/docs/generated-docs/maz-textarea.doc.md +41 -0
- package/docs/src/components/index.md +8 -0
- package/docs/src/components/maz-accordion.md +80 -0
- package/docs/src/components/maz-animated-counter.md +124 -0
- package/docs/src/components/maz-animated-element.md +36 -0
- package/docs/src/components/maz-animated-text.md +36 -0
- package/docs/src/components/maz-avatar.md +179 -0
- package/docs/src/components/maz-backdrop.md +16 -0
- package/docs/src/components/maz-badge.md +222 -0
- package/docs/src/components/maz-bottom-sheet.md +398 -0
- package/docs/src/components/maz-btn.md +526 -0
- package/docs/src/components/maz-card-spotlight.md +163 -0
- package/docs/src/components/maz-card.md +447 -0
- package/docs/src/components/maz-carousel.md +127 -0
- package/docs/src/components/maz-chart.md +346 -0
- package/docs/src/components/maz-checkbox.md +168 -0
- package/docs/src/components/maz-checklist.md +414 -0
- package/docs/src/components/maz-circular-progress-bar.md +147 -0
- package/docs/src/components/maz-date-picker.md +1078 -0
- package/docs/src/components/maz-dialog-confirm.md +240 -0
- package/docs/src/components/maz-dialog.md +208 -0
- package/docs/src/components/maz-drawer.md +177 -0
- package/docs/src/components/maz-dropdown.md +650 -0
- package/docs/src/components/maz-dropzone.md +442 -0
- package/docs/src/components/maz-expand-animation.md +99 -0
- package/docs/src/components/maz-fullscreen-loader.md +58 -0
- package/docs/src/components/maz-gallery.md +85 -0
- package/docs/src/components/maz-icon.md +85 -0
- package/docs/src/components/maz-input-code.md +61 -0
- package/docs/src/components/maz-input-number.md +81 -0
- package/docs/src/components/maz-input-phone-number.md +867 -0
- package/docs/src/components/maz-input-price.md +58 -0
- package/docs/src/components/maz-input-tags.md +114 -0
- package/docs/src/components/maz-input.md +453 -0
- package/docs/src/components/maz-lazy-img.md +24 -0
- package/docs/src/components/maz-link.md +156 -0
- package/docs/src/components/maz-loading-bar.md +26 -0
- package/docs/src/components/maz-pagination.md +81 -0
- package/docs/src/components/maz-popover.md +1414 -0
- package/docs/src/components/maz-pull-to-refresh.md +49 -0
- package/docs/src/components/maz-radio-buttons.md +456 -0
- package/docs/src/components/maz-radio.md +141 -0
- package/docs/src/components/maz-reading-progress-bar.md +74 -0
- package/docs/src/components/maz-select-country.md +636 -0
- package/docs/src/components/maz-select.md +439 -0
- package/docs/src/components/maz-slider.md +191 -0
- package/docs/src/components/maz-spinner.md +93 -0
- package/docs/src/components/maz-stepper.md +418 -0
- package/docs/src/components/maz-switch.md +92 -0
- package/docs/src/components/maz-table.md +571 -0
- package/docs/src/components/maz-tabs.md +231 -0
- package/docs/src/components/maz-textarea.md +218 -0
- package/docs/src/composables/use-aos.md +34 -0
- package/docs/src/composables/use-breakpoints.md +35 -0
- package/docs/src/composables/use-dialog.md +88 -0
- package/docs/src/composables/use-display-names.md +174 -0
- package/docs/src/composables/use-form-validator.md +1149 -0
- package/docs/src/composables/use-idle-timeout.md +256 -0
- package/docs/src/composables/use-reading-time.md +168 -0
- package/docs/src/composables/use-string-matching.md +63 -0
- package/docs/src/composables/use-swipe.md +223 -0
- package/docs/src/composables/use-timer.md +130 -0
- package/docs/src/composables/use-toast.md +71 -0
- package/docs/src/composables/use-user-visibility.md +169 -0
- package/docs/src/composables/use-wait.md +62 -0
- package/docs/src/composables/use-window-size.md +18 -0
- package/docs/src/demo/DemoAuthPage.vue +178 -0
- package/docs/src/demo/DemoDashboardPage.vue +298 -0
- package/docs/src/demo/DemoProductPage.vue +135 -0
- package/docs/src/directives/click-outside.md +275 -0
- package/docs/src/directives/fullscreen-img.md +101 -0
- package/docs/src/directives/lazy-img.md +184 -0
- package/docs/src/directives/tooltip.md +458 -0
- package/docs/src/directives/zoom-img.md +127 -0
- package/docs/src/guide/cli.md +144 -0
- package/docs/src/guide/getting-started.md +284 -0
- package/docs/src/guide/icon-set.md +60 -0
- package/docs/src/guide/icons.md +481 -0
- package/docs/src/guide/mcp.md +210 -0
- package/docs/src/guide/migration-v4.md +898 -0
- package/docs/src/guide/nuxt.md +411 -0
- package/docs/src/guide/resolvers.md +697 -0
- package/docs/src/guide/themes.md +789 -0
- package/docs/src/guide/translations.md +1173 -0
- package/docs/src/guide/vue.md +243 -0
- package/docs/src/helpers/camel-case.md +14 -0
- package/docs/src/helpers/capitalize.md +51 -0
- package/docs/src/helpers/check-availability.md +14 -0
- package/docs/src/helpers/country-code-to-unicode-flag.md +213 -0
- package/docs/src/helpers/currency.md +67 -0
- package/docs/src/helpers/date.md +67 -0
- package/docs/src/helpers/debounce-callback.md +14 -0
- package/docs/src/helpers/debounce-id.md +14 -0
- package/docs/src/helpers/debounce.md +14 -0
- package/docs/src/helpers/get-country-flag-url.md +156 -0
- package/docs/src/helpers/is-client.md +14 -0
- package/docs/src/helpers/is-equal.md +14 -0
- package/docs/src/helpers/is-standalone-mode.md +14 -0
- package/docs/src/helpers/kebab-case.md +14 -0
- package/docs/src/helpers/normalize-string.md +14 -0
- package/docs/src/helpers/number.md +65 -0
- package/docs/src/helpers/pascal-case.md +14 -0
- package/docs/src/helpers/script-loader.md +14 -0
- package/docs/src/helpers/sleep.md +14 -0
- package/docs/src/helpers/snake-case.md +14 -0
- package/docs/src/helpers/throttle-id.md +14 -0
- package/docs/src/helpers/throttle.md +14 -0
- package/docs/src/index.md +555 -0
- package/docs/src/made-with-maz-ui.md +58 -0
- package/docs/src/plugins/aos.md +347 -0
- package/docs/src/plugins/dialog.md +411 -0
- package/docs/src/plugins/toast.md +349 -0
- package/docs/src/plugins/wait.md +109 -0
- package/package.json +84 -0
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Install maz-ui with Nuxt
|
|
3
|
+
description: The ultimate Nuxt module for Maz-UI - zero-config setup with auto-imports, theming, and powerful features out of the box
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# {{ $frontmatter.title }}
|
|
7
|
+
|
|
8
|
+
Transform your Nuxt application with the most comprehensive Vue.js UI library integration. **Maz-UI Nuxt Module** provides zero-configuration setup, intelligent auto-imports, and powerful theming capabilities.
|
|
9
|
+
|
|
10
|
+
## Why Choose Maz-UI for Nuxt?
|
|
11
|
+
|
|
12
|
+
- **Zero Configuration** - Works out of the box with sensible defaults
|
|
13
|
+
- **Advanced Theming** - Built-in dark mode, custom themes, and CSS variables
|
|
14
|
+
- **Auto-Import Everything** - Components, composables, and directives automatically available
|
|
15
|
+
- **Performance Optimized** - Tree-shaking, lazy loading, and hybrid CSS strategies
|
|
16
|
+
- **Developer Experience** - TypeScript support, DevTools integration, and IntelliSense
|
|
17
|
+
- **Production Ready** - SSR/SSG support with client-side hydration
|
|
18
|
+
|
|
19
|
+
## Installation
|
|
20
|
+
|
|
21
|
+
<div class="maz-flex maz-gap-0.5">
|
|
22
|
+
<NpmBadge package="maz-ui" />
|
|
23
|
+
<NpmBadge package="@maz-ui/nuxt" />
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
::: code-group
|
|
27
|
+
|
|
28
|
+
```bash [pnpm]
|
|
29
|
+
pnpm add maz-ui @maz-ui/nuxt
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
```bash [npm]
|
|
33
|
+
npm install maz-ui @maz-ui/nuxt
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
```bash [yarn]
|
|
37
|
+
yarn add maz-ui @maz-ui/nuxt
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
:::
|
|
41
|
+
|
|
42
|
+
Add the module to your `nuxt.config.ts`:
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
export default defineNuxtConfig({
|
|
46
|
+
modules: ['@maz-ui/nuxt']
|
|
47
|
+
})
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
That's it! 🎉 All components and composables are now auto-imported and ready to use.
|
|
51
|
+
|
|
52
|
+
## Quick Start
|
|
53
|
+
|
|
54
|
+
### Instant Usage
|
|
55
|
+
|
|
56
|
+
No imports needed - everything is auto-imported:
|
|
57
|
+
|
|
58
|
+
```vue
|
|
59
|
+
<script setup>
|
|
60
|
+
// Composables are auto-imported
|
|
61
|
+
const { start, stop, pause, resume, remainingTime } = useTimer({
|
|
62
|
+
timeout: 4000,
|
|
63
|
+
callback: () => console.log('Timeout end')
|
|
64
|
+
})
|
|
65
|
+
const { toggleDarkMode, isDark } = useTheme()
|
|
66
|
+
</script>
|
|
67
|
+
|
|
68
|
+
<template>
|
|
69
|
+
<div class="maz-bg-background p-8 maz-text-foreground">
|
|
70
|
+
<!-- Components are auto-imported -->
|
|
71
|
+
<MazBtn color="primary" @click="start">
|
|
72
|
+
Start timer ({{ remainingTime }}ms)
|
|
73
|
+
</MazBtn>
|
|
74
|
+
|
|
75
|
+
<!-- Directives work globally -->
|
|
76
|
+
<MazBtn @click="toggleDarkMode">
|
|
77
|
+
Toggle dark mode ({{ isDark ? '🌙' : '☀️' }})
|
|
78
|
+
</MazBtn>
|
|
79
|
+
</div>
|
|
80
|
+
</template>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Configuration
|
|
84
|
+
|
|
85
|
+
### Minimal Setup
|
|
86
|
+
|
|
87
|
+
For most use cases, no configuration is needed:
|
|
88
|
+
|
|
89
|
+
```ts
|
|
90
|
+
export default defineNuxtConfig({
|
|
91
|
+
modules: ['@maz-ui/nuxt']
|
|
92
|
+
// That's it! 🎉
|
|
93
|
+
})
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Advanced Configuration
|
|
97
|
+
|
|
98
|
+
Customize everything to your needs:
|
|
99
|
+
|
|
100
|
+
```ts
|
|
101
|
+
export default defineNuxtConfig({
|
|
102
|
+
modules: ['@maz-ui/nuxt'],
|
|
103
|
+
mazUi: {
|
|
104
|
+
// General Settings
|
|
105
|
+
general: {
|
|
106
|
+
autoImportPrefix: 'Maz', // useMazToast instead of useToast
|
|
107
|
+
defaultMazIconPath: '/icons', // Default path for <MazIcon />
|
|
108
|
+
devtools: true, // Enable DevTools integration
|
|
109
|
+
},
|
|
110
|
+
|
|
111
|
+
// CSS & Styling
|
|
112
|
+
css: {
|
|
113
|
+
injectMainCss: true, // Auto-inject Maz-UI styles
|
|
114
|
+
},
|
|
115
|
+
|
|
116
|
+
// Theming System
|
|
117
|
+
theme: {
|
|
118
|
+
preset: 'maz-ui', // or 'dark', 'ocean', or custom object
|
|
119
|
+
strategy: 'hybrid', // 'runtime' | 'buildtime' | 'hybrid'
|
|
120
|
+
darkModeStrategy: 'class', // 'class' | 'media' | 'auto'
|
|
121
|
+
overrides: {
|
|
122
|
+
colors: {
|
|
123
|
+
light: { primary: '220 100% 50%' },
|
|
124
|
+
dark: { primary: '220 100% 70%' }
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
mode: 'both', // 'light' | 'dark' | 'both'
|
|
128
|
+
},
|
|
129
|
+
|
|
130
|
+
// Translations
|
|
131
|
+
translations: {
|
|
132
|
+
locales: 'fr',
|
|
133
|
+
fallbackLocale: 'en',
|
|
134
|
+
messages: {
|
|
135
|
+
// override default messages or add new languages
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
|
|
139
|
+
// 🧩 Components
|
|
140
|
+
components: {
|
|
141
|
+
autoImport: true, // All components globally available
|
|
142
|
+
},
|
|
143
|
+
|
|
144
|
+
// 🔌 Plugins (not enabled by default)
|
|
145
|
+
plugins: {
|
|
146
|
+
aos: true,
|
|
147
|
+
dialog: true,
|
|
148
|
+
toast: true,
|
|
149
|
+
wait: true,
|
|
150
|
+
},
|
|
151
|
+
|
|
152
|
+
// 🎪 Composables (enabled by default)
|
|
153
|
+
composables: {
|
|
154
|
+
useFormValidator: true,
|
|
155
|
+
useFreezeValue: true,
|
|
156
|
+
useIdleTimeout: false,
|
|
157
|
+
useInstanceUniqId: false,
|
|
158
|
+
useMountComponent: false,
|
|
159
|
+
useReadingTime: false,
|
|
160
|
+
useStringMatching: false,
|
|
161
|
+
},
|
|
162
|
+
|
|
163
|
+
// 🎯 Directives (not enabled by default)
|
|
164
|
+
directives: {
|
|
165
|
+
vTooltip: true,
|
|
166
|
+
vLazyImg: true,
|
|
167
|
+
vClickOutside: true,
|
|
168
|
+
vFullscreenImg: true,
|
|
169
|
+
vZoomImg: true,
|
|
170
|
+
},
|
|
171
|
+
}
|
|
172
|
+
})
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## Complete Configuration Reference
|
|
176
|
+
|
|
177
|
+
### General Configuration
|
|
178
|
+
|
|
179
|
+
```ts
|
|
180
|
+
const general = {
|
|
181
|
+
// Add prefix to all auto-imported composables
|
|
182
|
+
autoImportPrefix: 'Maz', // only for composables, generates useMazToast, useMazTheme, etc.
|
|
183
|
+
|
|
184
|
+
// Default icon path for <MazIcon name="..." />
|
|
185
|
+
defaultMazIconPath: '/icons',
|
|
186
|
+
|
|
187
|
+
// Enable Nuxt DevTools integration
|
|
188
|
+
devtools: true,
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### CSS Configuration
|
|
193
|
+
|
|
194
|
+
```ts
|
|
195
|
+
const css = {
|
|
196
|
+
// Auto-inject Maz-UI base styles
|
|
197
|
+
injectMainCss: true,
|
|
198
|
+
}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Theme System
|
|
202
|
+
|
|
203
|
+
The most powerful theming system for Nuxt applications:
|
|
204
|
+
|
|
205
|
+
```ts
|
|
206
|
+
const theme = {
|
|
207
|
+
// Use predefined presets or create custom ones
|
|
208
|
+
preset: 'maz-ui', // 'mazUi' | 'dark' | 'ocean' | CustomThemeObject
|
|
209
|
+
|
|
210
|
+
// Override specific parts of the theme
|
|
211
|
+
overrides: {
|
|
212
|
+
colors: {
|
|
213
|
+
light: {
|
|
214
|
+
primary: '220 100% 50%',
|
|
215
|
+
secondary: '220 14% 96%',
|
|
216
|
+
background: '0 0% 100%',
|
|
217
|
+
foreground: '222 84% 5%',
|
|
218
|
+
},
|
|
219
|
+
dark: {
|
|
220
|
+
primary: '220 100% 70%',
|
|
221
|
+
secondary: '220 14% 4%',
|
|
222
|
+
background: '222 84% 5%',
|
|
223
|
+
foreground: '210 40% 98%',
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
// Override other theme properties...
|
|
227
|
+
},
|
|
228
|
+
|
|
229
|
+
// Supported color modes to use
|
|
230
|
+
mode: 'both', // 'light' | 'dark' | 'both'
|
|
231
|
+
|
|
232
|
+
// Initial color mode to use (only if mode is 'both')
|
|
233
|
+
colorMode: 'auto', // 'light' | 'dark' | 'auto'
|
|
234
|
+
|
|
235
|
+
// CSS generation strategy
|
|
236
|
+
strategy: 'hybrid', // 'runtime' | 'buildtime' | 'hybrid' (recommended)
|
|
237
|
+
|
|
238
|
+
// Dark mode handling
|
|
239
|
+
darkModeStrategy: 'class', // 'class' | 'media' | 'auto'
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
**Theme Strategies Explained:**
|
|
244
|
+
|
|
245
|
+
- **`hybrid`** (recommended): Critical CSS inlined, full CSS loaded asynchronously
|
|
246
|
+
- **`runtime`**: CSS generated and injected on client-side
|
|
247
|
+
- **`buildtime`**: CSS generated at build time and included in bundle
|
|
248
|
+
|
|
249
|
+
### Components
|
|
250
|
+
|
|
251
|
+
```ts
|
|
252
|
+
const components = {
|
|
253
|
+
// Auto-import all 50+ Maz-UI components
|
|
254
|
+
autoImport: true,
|
|
255
|
+
}
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
**Available Components:**
|
|
259
|
+
`MazBtn`, `MazInput`, `MazSelect`, `MazDialog`, `MazToast`, `MazIcon`, `MazCard`, `MazTable`, `MazChart`, `MazCarousel`, `MazGallery`, and 50+ more!
|
|
260
|
+
|
|
261
|
+
### 🎪 Composables
|
|
262
|
+
|
|
263
|
+
All composables are auto-imported and ready to use:
|
|
264
|
+
|
|
265
|
+
```ts
|
|
266
|
+
const composables = {
|
|
267
|
+
// 🎨 Theming
|
|
268
|
+
useTheme: true, // Theme management and dark mode
|
|
269
|
+
|
|
270
|
+
// 🌐 Translations
|
|
271
|
+
useTranslations: true, // Translation management
|
|
272
|
+
|
|
273
|
+
// 📱 Responsive & Detection
|
|
274
|
+
useWindowSize: true, // Reactive window dimensions
|
|
275
|
+
useBreakpoints: true, // Responsive breakpoints
|
|
276
|
+
useUserVisibility: true, // Page visibility detection
|
|
277
|
+
useIdleTimeout: true, // User idle detection
|
|
278
|
+
|
|
279
|
+
// 🛠️ Utilities
|
|
280
|
+
useTimer: true, // Timer and countdown
|
|
281
|
+
useFormValidator: true, // Form validation
|
|
282
|
+
useStringMatching: true, // String utilities
|
|
283
|
+
useReadingTime: true, // Reading time calculation
|
|
284
|
+
useDisplayNames: true, // Display localized names
|
|
285
|
+
useSwipe: true, // Swipe gestures
|
|
286
|
+
|
|
287
|
+
// 🔧 Advanced
|
|
288
|
+
useFreezeValue: true, // Freeze reactive values
|
|
289
|
+
useInjectStrict: true, // Strict dependency injection
|
|
290
|
+
useInstanceUniqId: true, // Unique IDs generation
|
|
291
|
+
useMountComponent: true, // Dynamic component mounting
|
|
292
|
+
}
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
### Plugins
|
|
296
|
+
|
|
297
|
+
```ts
|
|
298
|
+
const plugins = {
|
|
299
|
+
// Animations
|
|
300
|
+
aos: true,
|
|
301
|
+
// 🎭 Display modales without any implementation in template
|
|
302
|
+
dialog: true,
|
|
303
|
+
// 🎭 UI Notifications
|
|
304
|
+
toast: true,
|
|
305
|
+
// 🔄 Loading States
|
|
306
|
+
wait: true,
|
|
307
|
+
}
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
### Directives
|
|
311
|
+
|
|
312
|
+
Powerful Vue directives for enhanced functionality:
|
|
313
|
+
|
|
314
|
+
```ts
|
|
315
|
+
const directives = {
|
|
316
|
+
// Image directives
|
|
317
|
+
vLazyImg: { threshold: 0.1 }, // Lazy loading with intersection observer
|
|
318
|
+
vZoomImg: true, // Click to zoom images
|
|
319
|
+
vFullscreenImg: true, // Fullscreen image viewer
|
|
320
|
+
|
|
321
|
+
// Interaction directives
|
|
322
|
+
vTooltip: { position: 'top' }, // Flexible tooltips
|
|
323
|
+
vClickOutside: true, // Detect outside clicks
|
|
324
|
+
}
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
## Advanced Theming
|
|
328
|
+
|
|
329
|
+
### Custom Theme Creation
|
|
330
|
+
|
|
331
|
+
```ts
|
|
332
|
+
import { definePreset } from '@maz-ui/themes'
|
|
333
|
+
|
|
334
|
+
export const customTheme = definePreset({
|
|
335
|
+
base: 'maz-ui',
|
|
336
|
+
name: 'custom',
|
|
337
|
+
foundation: {
|
|
338
|
+
'base-font-size': '14px',
|
|
339
|
+
'font-family': `Manrope, sans-serif, system-ui, -apple-system`,
|
|
340
|
+
'radius': '0.7rem',
|
|
341
|
+
'border-width': '0.0625rem',
|
|
342
|
+
},
|
|
343
|
+
colors: {
|
|
344
|
+
light: {
|
|
345
|
+
primary: '350 100% 50%', // Custom pink
|
|
346
|
+
secondary: '350 14% 96%',
|
|
347
|
+
background: '0 0% 100%',
|
|
348
|
+
foreground: '222 84% 5%',
|
|
349
|
+
muted: '210 40% 96%',
|
|
350
|
+
accent: '210 40% 90%',
|
|
351
|
+
destructive: '0 84% 60%',
|
|
352
|
+
border: '214 32% 91%',
|
|
353
|
+
input: '214 32% 91%',
|
|
354
|
+
ring: '350 100% 50%',
|
|
355
|
+
},
|
|
356
|
+
dark: {
|
|
357
|
+
primary: '350 100% 70%',
|
|
358
|
+
secondary: '350 14% 4%',
|
|
359
|
+
background: '222 84% 5%',
|
|
360
|
+
foreground: '210 40% 98%',
|
|
361
|
+
muted: '217 33% 17%',
|
|
362
|
+
accent: '217 33% 17%',
|
|
363
|
+
destructive: '0 62% 30%',
|
|
364
|
+
border: '217 33% 17%',
|
|
365
|
+
input: '217 33% 17%',
|
|
366
|
+
ring: '350 100% 70%',
|
|
367
|
+
}
|
|
368
|
+
},
|
|
369
|
+
})
|
|
370
|
+
|
|
371
|
+
export default defineNuxtConfig({
|
|
372
|
+
modules: ['@maz-ui/nuxt'],
|
|
373
|
+
mazUi: {
|
|
374
|
+
theme: {
|
|
375
|
+
preset: customTheme,
|
|
376
|
+
strategy: 'hybrid',
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
})
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
## Troubleshooting
|
|
383
|
+
|
|
384
|
+
### Theme System Issues
|
|
385
|
+
|
|
386
|
+
If you encounter the error `"useTheme must be used within MazUi plugin or MazUiTheme plugin installation"`, ensure that:
|
|
387
|
+
|
|
388
|
+
1. **Enable useTheme composable** in your configuration:
|
|
389
|
+
|
|
390
|
+
```ts
|
|
391
|
+
export default defineNuxtConfig({
|
|
392
|
+
mazUi: {
|
|
393
|
+
composables: {
|
|
394
|
+
useTheme: true,
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
})
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
2. **Theme system is not disabled**:
|
|
401
|
+
|
|
402
|
+
```ts
|
|
403
|
+
export default defineNuxtConfig({
|
|
404
|
+
mazUi: {
|
|
405
|
+
theme: {
|
|
406
|
+
// theme config, not false
|
|
407
|
+
preset: 'maz-ui'
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
})
|
|
411
|
+
```
|