@maz-ui/mcp 5.0.0-beta.1 → 5.0.0-beta.11

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 (47) hide show
  1. package/dist/mcp.mjs +1 -1
  2. package/docs/generated-docs/maz-circular-progress-bar.doc.md +1 -1
  3. package/docs/generated-docs/maz-code-highlight.doc.md +11 -0
  4. package/docs/generated-docs/maz-drawer.doc.md +1 -1
  5. package/docs/generated-docs/maz-fullscreen-loader.doc.md +5 -5
  6. package/docs/generated-docs/maz-gallery.doc.md +15 -15
  7. package/docs/generated-docs/maz-input-phone-number.doc.md +42 -38
  8. package/docs/generated-docs/maz-sidebar-content.doc.md +5 -0
  9. package/docs/generated-docs/maz-sidebar-footer.doc.md +5 -0
  10. package/docs/generated-docs/maz-sidebar-group.doc.md +11 -0
  11. package/docs/generated-docs/maz-sidebar-header.doc.md +5 -0
  12. package/docs/generated-docs/maz-sidebar-menu-button.doc.md +26 -0
  13. package/docs/generated-docs/maz-sidebar-menu-item.doc.md +5 -0
  14. package/docs/generated-docs/maz-sidebar-menu-sub.doc.md +16 -0
  15. package/docs/generated-docs/maz-sidebar-menu.doc.md +5 -0
  16. package/docs/generated-docs/maz-sidebar-separator.doc.md +0 -0
  17. package/docs/generated-docs/maz-sidebar-trigger.doc.md +11 -0
  18. package/docs/generated-docs/maz-sidebar.doc.md +33 -0
  19. package/docs/generated-docs/maz-slider.doc.md +1 -1
  20. package/docs/generated-docs/maz-spinner.doc.md +4 -4
  21. package/docs/generated-docs/maz-textarea.doc.md +25 -24
  22. package/docs/generated-docs/maz-ticker.doc.md +1 -1
  23. package/docs/generated-docs/maz-window-mockup.doc.md +23 -0
  24. package/docs/src/blog/v5.md +1 -3
  25. package/docs/src/components/maz-code-highlight.md +233 -0
  26. package/docs/src/components/maz-container.md +2 -2
  27. package/docs/src/components/maz-input-phone-number.md +106 -103
  28. package/docs/src/components/maz-sidebar.md +621 -0
  29. package/docs/src/components/maz-textarea.md +27 -1
  30. package/docs/src/components/maz-timeline.md +60 -0
  31. package/docs/src/components/maz-window-mockup.md +249 -0
  32. package/docs/src/directives/click-outside.md +7 -14
  33. package/docs/src/directives/lazy-img.md +4 -4
  34. package/docs/src/ecosystem/eslint-config.md +95 -1
  35. package/docs/src/guide/getting-started.md +13 -11
  36. package/docs/src/guide/maz-ui-provider.md +6 -3
  37. package/docs/src/guide/migration-v4.md +7 -3
  38. package/docs/src/guide/migration-v5.md +67 -12
  39. package/docs/src/guide/nuxt.md +53 -46
  40. package/docs/src/guide/tailwind.md +4 -0
  41. package/docs/src/guide/themes.md +127 -69
  42. package/docs/src/helpers/capitalize.md +2 -3
  43. package/docs/src/helpers/currency.md +2 -2
  44. package/docs/src/helpers/date.md +2 -2
  45. package/docs/src/helpers/number.md +2 -2
  46. package/docs/src/plugins/wait.md +1 -1
  47. package/package.json +4 -4
@@ -0,0 +1,23 @@
1
+ ## Props
2
+
3
+ | Name | Description | Type | Required | Default | Possible values |
4
+ | ----------------- | ------------------------------------------------------------------------------------------------- | -------------------------------------------------------- | -------- | ----------- | ----------------------------------- |
5
+ | **id** | Stable id used to scope the empty-state SVG pattern. Auto-generated if not provided. | `string` | No | `undefined` | - |
6
+ | **variant** | Window style variant | `MazWindowMockupVariant` | No | `browser` | `browser' \| 'terminal' \| 'editor` |
7
+ | **url** | URL to display in the browser address bar (browser variant only) | `string` | No | `localhost` | - |
8
+ | **filename** | Filename to display in the editor tab (editor variant only) | `string` | No | `index.vue` | - |
9
+ | **title** | Title to display in the terminal title bar (terminal variant only) | `string` | No | `zsh` | - |
10
+ | **min-height** | Minimum height of the content area as a CSS value (e.g. '200px') | `string` | No | `undefined` | - |
11
+ | **code** | Source code to display using MazCodeHighlight. Takes priority over the default slot. | `string` | No | `undefined` | - |
12
+ | **language** | Language identifier for syntax highlighting (e.g. 'vue', 'ts', 'bash') | `string` | No | `undefined` | - |
13
+ | **label** | Label displayed inside the empty-state placeholder when no code and no slot content are provided. | `string` | No | `undefined` | - |
14
+ | **hide-prompt** | Whether to hide the terminal prompt prefix (no-op on non-terminal variants) | `boolean` | No | `false` | - |
15
+ | **prompt** | Prefix to display before the code in the terminal (terminal variant only) | `string` | No | `$` | - |
16
+ | **hide-url-copy** | Hide the copy-to-clipboard button next to the URL bar (browser variant only). | `boolean` | No | `false` | - |
17
+ | **translations** | Custom translations for the component. Override either key independently. | `Partial<MazUiTranslationsNestedSchema['windowMockup']>` | No | `undefined` | - |
18
+
19
+ ## Slots
20
+
21
+ | Name | Description | Bindings |
22
+ | ------- | ---------------------------------------------------------------------- | -------- |
23
+ | default | Free content (image, interface, etc.) shown when code prop is not set. | |
@@ -90,9 +90,7 @@ npx @maz-ui/upgrade ./ --dry-run
90
90
  npx @maz-ui/upgrade ./
91
91
  ```
92
92
 
93
- It rewrites the mechanical part: CSS subpath imports, `left-icon`/`right-icon` → `start-icon`/`end-icon` (props, slots, classes), `footer-align` / `variant` direction values, `color="background"` → `color="surface"`, `rounded-size="base"` → `rounded-size="md"`, `--maz-background` / `--maz-border` CSS vars, `hsl(var(--maz-X))` collapse, Nuxt `injectMainCss` `injectCss`, theme `strategy: 'hybrid'` → `'runtime'`, dropped theme options, and `colors.{light,dark}.background` / `.border` keys in custom presets. It also bumps every `maz-ui` / `@maz-ui/*` entry in your `package.json` files to `^5.0.0` and runs the right `pnpm`/`yarn`/`bun`/`npm install` for you.
94
-
95
- It respects your `.gitignore`, walks `.vue`/`.css`/`.ts`/`.tsx`/`.cts`/`.mts`/`.js`/`.jsx`/`.cjs`/`.mjs` and `package.json`, and skips the usual build dirs.
93
+ It handles the mechanical part of the migration (CSS subpath imports, prop renames, CSS var renames, Nuxt config keys, custom preset color keys, and `package.json` version bumps)
96
94
 
97
95
  ### `@maz-ui/mcp` — for everything else
98
96
 
@@ -0,0 +1,233 @@
1
+ ---
2
+ title: MazCodeHighlight
3
+ description: MazCodeHighlight displays source code with syntax highlighting powered by shiki. It auto-detects dark/light mode, ships with a copy-to-clipboard button, a language badge, and supports lazy loading.
4
+ ---
5
+
6
+ # {{ $frontmatter.title }}
7
+
8
+ {{ $frontmatter.description }}
9
+
10
+ <!--@include: ./../../.vitepress/mixins/getting-started.md-->
11
+
12
+ ## Installation requirement
13
+
14
+ Install [`shiki`](https://shiki.style) in your project to enable highlighting:
15
+
16
+ ::: code-group
17
+
18
+ ```bash [pnpm]
19
+ pnpm add shiki
20
+ ```
21
+
22
+ ```bash [npm]
23
+ npm install shiki
24
+ ```
25
+
26
+ ```bash [yarn]
27
+ yarn add shiki
28
+ ```
29
+
30
+ :::
31
+
32
+ If `shiki` is not installed, the component falls back to a plain `<pre><code>` block.
33
+
34
+ ## Basic usage
35
+
36
+ <ComponentDemo>
37
+ <MazCodeHighlight code="const greeting = 'Hello, maz-ui!'" language="ts" />
38
+
39
+ <template #code>
40
+
41
+ ```vue
42
+ <template>
43
+ <MazCodeHighlight code="const greeting = 'Hello, maz-ui!'" language="ts" />
44
+ </template>
45
+
46
+ <script lang="ts" setup>
47
+ import MazCodeHighlight from 'maz-ui/components/MazCodeHighlight'
48
+ </script>
49
+ ```
50
+
51
+ </template>
52
+ </ComponentDemo>
53
+
54
+ ## With slot
55
+
56
+ The default slot text is used as source code when the `code` prop is not provided. This is useful for plain text blocks.
57
+
58
+ <ComponentDemo>
59
+ <MazCodeHighlight language="bash">npm install maz-ui</MazCodeHighlight>
60
+
61
+ <template #code>
62
+
63
+ ```vue
64
+ <template>
65
+ <MazCodeHighlight language="bash">npm install maz-ui</MazCodeHighlight>
66
+ </template>
67
+
68
+ <script lang="ts" setup>
69
+ import MazCodeHighlight from 'maz-ui/components/MazCodeHighlight'
70
+ </script>
71
+ ```
72
+
73
+ </template>
74
+ </ComponentDemo>
75
+
76
+ ## Languages
77
+
78
+ Pass any valid [shiki language identifier](https://shiki.style/languages) to the `language` prop. The chosen language is also displayed as a small badge in the top-right corner (the badge fades out on hover when the copy button appears).
79
+
80
+ <ComponentDemo>
81
+ <MazCodeHighlight language="vue" :code="vueExample" />
82
+
83
+ <template #code>
84
+
85
+ ```vue
86
+ <template>
87
+ <MazCodeHighlight language="vue" :code="vueExample" />
88
+ </template>
89
+
90
+ <script lang="ts" setup>
91
+ import MazCodeHighlight from 'maz-ui/components/MazCodeHighlight'
92
+
93
+ const vueExample = `<script lang="ts" setup>
94
+ import { ref } from 'vue'
95
+ const count = ref(0)
96
+ <\/script>
97
+
98
+ <template>
99
+ <button @click="count++">Count: {{ count }}</button>
100
+ </template>`
101
+ </script>
102
+ ```
103
+
104
+ </template>
105
+ </ComponentDemo>
106
+
107
+ ## Custom theme
108
+
109
+ Override the auto-detected theme with any [shiki built-in theme](https://shiki.style/themes).
110
+
111
+ <ComponentDemo>
112
+ <MazCodeHighlight code="console.log('dracula theme')" language="js" theme="dracula" />
113
+
114
+ <template #code>
115
+
116
+ ```vue
117
+ <template>
118
+ <MazCodeHighlight code="console.log('dracula theme')" language="js" theme="dracula" />
119
+ </template>
120
+
121
+ <script lang="ts" setup>
122
+ import MazCodeHighlight from 'maz-ui/components/MazCodeHighlight'
123
+ </script>
124
+ ```
125
+
126
+ </template>
127
+ </ComponentDemo>
128
+
129
+ ## Copy to clipboard
130
+
131
+ A copy button is displayed in the top-right corner on hover (or when focused via keyboard). Clicking it writes the resolved code to the clipboard and shows a check icon for ~1.5s.
132
+
133
+ ### Disable the copy button
134
+
135
+ Set `:copyable="false"` to hide the button entirely.
136
+
137
+ <ComponentDemo>
138
+ <MazCodeHighlight code="const noCopyButton = true" language="ts" :copyable="false" />
139
+
140
+ <template #code>
141
+
142
+ ```vue
143
+ <template>
144
+ <MazCodeHighlight code="const noCopyButton = true" language="ts" :copyable="false" />
145
+ </template>
146
+ ```
147
+
148
+ </template>
149
+ </ComponentDemo>
150
+
151
+ ### Copy a different value than the displayed code
152
+
153
+ Use `copyValue` when the displayed source differs from what should be copied — for example to strip a leading `$` prompt when rendering a shell command. This is the mechanism `MazWindowMockup` uses internally to keep the terminal prompt out of the clipboard.
154
+
155
+ <ComponentDemo>
156
+ <MazCodeHighlight code="$ pnpm add maz-ui" copy-value="pnpm add maz-ui" language="bash" />
157
+
158
+ <template #code>
159
+
160
+ ```vue
161
+ <template>
162
+ <MazCodeHighlight
163
+ code="$ pnpm add maz-ui"
164
+ copy-value="pnpm add maz-ui"
165
+ language="bash"
166
+ />
167
+ </template>
168
+ ```
169
+
170
+ </template>
171
+ </ComponentDemo>
172
+
173
+ ## Disable rounded corners
174
+
175
+ Set `:rounded="false"` to render the highlighted block with squared corners — useful when embedding inside another container that already has its own border-radius (e.g. inside `MazWindowMockup`).
176
+
177
+ <ComponentDemo>
178
+ <MazCodeHighlight code="// squared corners" language="ts" :rounded="false" />
179
+
180
+ <template #code>
181
+
182
+ ```vue
183
+ <template>
184
+ <MazCodeHighlight code="// squared corners" language="ts" :rounded="false" />
185
+ </template>
186
+ ```
187
+
188
+ </template>
189
+ </ComponentDemo>
190
+
191
+ ## Custom translations
192
+
193
+ The copy button's aria-label and tooltip come from the `@maz-ui/translations` package (`codeHighlight.copyToClipboard` / `codeHighlight.copiedToClipboard`). You can override either key per-instance with the `translations` prop without touching the global locale:
194
+
195
+ <ComponentDemo>
196
+ <MazCodeHighlight
197
+ code="const hello = 'world'"
198
+ language="ts"
199
+ :translations="{ copyToClipboard: 'Copier le code', copiedToClipboard: 'Copié !' }"
200
+ />
201
+
202
+ <template #code>
203
+
204
+ ```vue
205
+ <template>
206
+ <MazCodeHighlight
207
+ code="const hello = 'world'"
208
+ language="ts"
209
+ :translations="{
210
+ copyToClipboard: 'Copier le code',
211
+ copiedToClipboard: 'Copié !',
212
+ }"
213
+ />
214
+ </template>
215
+ ```
216
+
217
+ </template>
218
+ </ComponentDemo>
219
+
220
+ For app-wide translations, set up the [maz-ui translations plugin](/translations) and the component will pick up your locale automatically.
221
+
222
+ <script lang="ts" setup>
223
+ const vueExample = `<script lang="ts" setup>
224
+ import { ref } from 'vue'
225
+ const count = ref(0)
226
+ <\/script>
227
+
228
+ <template>
229
+ <button @click="count++">Count: {{ count }}</button>
230
+ </template>`
231
+ </script>
232
+
233
+ <!--@include: ./../../.vitepress/generated-docs/maz-code-highlight.doc.md-->
@@ -301,7 +301,7 @@ Use the `header` slot to fully customize the header, or use `title`, `icon-start
301
301
  <ComponentDemo>
302
302
  <MazContainer
303
303
  title="Dashboard Overview"
304
- start-icon="chart-bar"
304
+ start-icon="/chart-bar.svg"
305
305
  elevation
306
306
  :bordered="false"
307
307
  rounded-size="xl"
@@ -329,7 +329,7 @@ Use the `header` slot to fully customize the header, or use `title`, `icon-start
329
329
  <template>
330
330
  <MazContainer
331
331
  title="Dashboard Overview"
332
- start-icon="chart-bar"
332
+ start-icon="/chart-bar.svg"
333
333
  elevation
334
334
  :bordered="false"
335
335
  rounded-size="xl"
@@ -68,34 +68,28 @@ const results = ref<MazInputPhoneNumberData>()
68
68
  Control which countries appear in the dropdown and their order.
69
69
 
70
70
  <ComponentDemo>
71
- <div class="maz:space-y-4">
72
- <div>
73
- <h4 class="maz:font-semibold maz:mb-2">Preferred Countries</h4>
74
- <p class="maz:text-sm maz:text-muted maz:mb-2">Show your most common countries first</p>
75
- <MazInputPhoneNumber
76
- v-model="phone1"
77
- :preferred-countries="['US', 'FR', 'GB', 'DE', 'CA']"
78
- placeholder="Common countries appear first"
79
- />
80
- </div>
81
- <div>
82
- <h4 class="maz:font-semibold maz:mb-2">Only Specific Countries</h4>
83
- <p class="maz:text-sm maz:text-muted maz:mb-2">Limit to certain countries only</p>
84
- <MazInputPhoneNumber
85
- v-model="phone2"
86
- :only-countries="['US', 'FR', 'GB', 'DE', 'IT', 'ES']"
87
- placeholder="Only European + North American countries"
88
- />
89
- </div>
90
- <div>
91
- <h4 class="maz:font-semibold maz:mb-2">Ignore Countries</h4>
92
- <p class="maz:text-sm maz:text-muted maz:mb-2">Remove unwanted countries</p>
93
- <MazInputPhoneNumber
94
- v-model="phone3"
95
- :ignored-countries="['AF', 'AL', 'DZ']"
96
- placeholder="Some countries are hidden"
97
- />
98
- </div>
71
+ <div class="maz:flex maz:flex-col maz:gap-4">
72
+ <MazInputPhoneNumber
73
+ top-label="Preferred Countries"
74
+ assistive-text="Show your most common countries first"
75
+ v-model="phone1"
76
+ :preferred-countries="['US', 'FR', 'GB', 'DE', 'CA']"
77
+ placeholder="Common countries appear first"
78
+ />
79
+ <MazInputPhoneNumber
80
+ top-label="Only Specific Countries"
81
+ assistive-text="Limit to certain countries only"
82
+ v-model="phone2"
83
+ :only-countries="['US', 'FR', 'GB', 'DE', 'IT', 'ES']"
84
+ placeholder="Only European + North American countries"
85
+ />
86
+ <MazInputPhoneNumber
87
+ top-label="Ignore Countries"
88
+ assistive-text="Remove unwanted countries"
89
+ v-model="phone3"
90
+ :ignored-countries="['AF', 'AL', 'DZ']"
91
+ placeholder="Some countries are hidden"
92
+ />
99
93
  </div>
100
94
 
101
95
  <template #code>
@@ -133,22 +127,22 @@ Control which countries appear in the dropdown and their order.
133
127
  Choose how the country selector and phone input are arranged.
134
128
 
135
129
  <ComponentDemo>
136
- <div class="maz:space-y-6">
137
- <div>
138
- <h4 class="maz:font-semibold maz:mb-2">Responsive (Default)</h4>
139
- <p class="maz:text-sm maz:text-muted maz:mb-2">Stacks on mobile, side-by-side on desktop</p>
140
- <MazInputPhoneNumber orientation="responsive" />
141
- </div>
142
- <div>
143
- <h4 class="maz:font-semibold maz:mb-2">Always Row</h4>
144
- <p class="maz:text-sm maz:text-muted maz:mb-2">Side-by-side on all screen sizes</p>
145
- <MazInputPhoneNumber orientation="row" />
146
- </div>
147
- <div>
148
- <h4 class="maz:font-semibold maz:mb-2">Always Column</h4>
149
- <p class="maz:text-sm maz:text-muted maz:mb-2">Stacked on all screen sizes</p>
150
- <MazInputPhoneNumber orientation="col" />
151
- </div>
130
+ <div class="maz:flex maz:flex-col maz:gap-6">
131
+ <MazInputPhoneNumber
132
+ top-label="Responsive"
133
+ assistive-text="Stacks on mobile, side-by-side on desktop"
134
+ orientation="responsive"
135
+ />
136
+ <MazInputPhoneNumber
137
+ top-label="Always Row"
138
+ assistive-text="Side-by-side on all screen sizes"
139
+ orientation="row"
140
+ />
141
+ <MazInputPhoneNumber
142
+ top-label="Always Column"
143
+ assistive-text="Stacked on all screen sizes"
144
+ orientation="col"
145
+ />
152
146
  </div>
153
147
 
154
148
  <template #code>
@@ -156,13 +150,25 @@ Choose how the country selector and phone input are arranged.
156
150
  ```vue
157
151
  <template>
158
152
  <!-- Responsive layout (default) -->
159
- <MazInputPhoneNumber orientation="responsive" />
153
+ <MazInputPhoneNumber
154
+ top-label="Responsive"
155
+ assistive-text="Stacks on mobile, side-by-side on desktop"
156
+ orientation="responsive"
157
+ />
160
158
 
161
159
  <!-- Always side-by-side -->
162
- <MazInputPhoneNumber orientation="row" />
160
+ <MazInputPhoneNumber
161
+ top-label="Always Row"
162
+ assistive-text="Side-by-side on all screen sizes"
163
+ orientation="row"
164
+ />
163
165
 
164
166
  <!-- Always stacked -->
165
- <MazInputPhoneNumber orientation="col" />
167
+ <MazInputPhoneNumber
168
+ top-label="Always Column"
169
+ assistive-text="Stacked on all screen sizes"
170
+ orientation="col"
171
+ />
166
172
  </template>
167
173
  ```
168
174
 
@@ -174,34 +180,30 @@ Choose how the country selector and phone input are arranged.
174
180
  Customize what information is shown to users.
175
181
 
176
182
  <ComponentDemo>
177
- <div class="maz:space-y-6">
178
- <div>
179
- <h4 class="maz:font-semibold maz:mb-2">Show Country Names</h4>
180
- <p class="maz:text-sm maz:text-muted maz:mb-2">Display country names instead of calling codes</p>
181
- <MazInputPhoneNumber
182
- display-country-name
183
- :translations="{
184
- countrySelect: { placeholder: 'Choose country' }
185
- }"
186
- />
187
- </div>
188
- <div>
189
- <h4 class="maz:font-semibold maz:mb-2">Show Calling Codes in List</h4>
190
- <p class="maz:text-sm maz:text-muted maz:mb-2">Help users see the dialing codes</p>
191
- <MazInputPhoneNumber show-code-in-list />
192
- </div>
193
- <div>
194
- <h4 class="maz:font-semibold maz:mb-2">Hide Phone Examples</h4>
195
- <p class="maz:text-sm maz:text-muted maz:mb-2">
196
- Remove the example phone number hints (visible when the phone input is focused)
197
- </p>
198
- <MazInputPhoneNumber :example="false" />
199
- </div>
200
- <div>
201
- <h4 class="maz:font-semibold maz:mb-2">Hide Country Flags</h4>
202
- <p class="maz:text-sm maz:text-muted maz:mb-2">Text-only country selection</p>
203
- <MazInputPhoneNumber hide-flags />
204
- </div>
183
+ <div class="maz:flex maz:flex-col maz:gap-4">
184
+ <MazInputPhoneNumber
185
+ top-label="Show Country Names"
186
+ assistive-text="Display country names instead of calling codes"
187
+ display-country-name
188
+ :translations="{
189
+ countrySelect: { placeholder: 'Choose country' }
190
+ }"
191
+ />
192
+ <MazInputPhoneNumber
193
+ top-label="Show Calling Codes in List"
194
+ assistive-text="Help users see the dialing codes"
195
+ show-code-in-list
196
+ />
197
+ <MazInputPhoneNumber
198
+ top-label="Hide Phone Examples"
199
+ assistive-text="Remove the example phone number hints (visible when the phone input is focused)"
200
+ :example="false"
201
+ />
202
+ <MazInputPhoneNumber
203
+ top-label="Hide Country Flags"
204
+ assistive-text="Text-only country selection"
205
+ hide-flags
206
+ />
205
207
  </div>
206
208
 
207
209
  <template #code>
@@ -762,34 +764,35 @@ const mobilePhone = ref()
762
764
  Understanding what data the component provides.
763
765
 
764
766
  <ComponentDemo>
765
- <div class="maz:space-y-4">
766
- <MazInputPhoneNumber
767
- v-model="dataPhone"
768
- v-model:country-code="dataCountry"
769
- label="Enter a phone number to see data"
770
- @data="phoneData = $event"
771
- />
772
- <div v-if="phoneData" class="maz:bg-surface-400 maz:p-4 maz:rounded-md">
773
- <h4 class="maz:font-semibold maz:mb-3">📊 Phone Number Data</h4>
774
- <div class="maz:grid maz:grid-cols-1 maz:md:grid-cols-2 maz:gap-4 maz:text-sm">
775
- <div>
776
- <strong>Valid:</strong> {{ phoneData?.isValid ? '✅' : '❌' }}
777
- </div>
778
- <div>
779
- <strong>Country:</strong> {{ phoneData?.countryCode || 'None' }}
780
- </div>
781
- <div>
782
- <strong>National Format:</strong> {{ phoneData?.formatNational || 'None' }}
783
- </div>
784
- <div>
785
- <strong>International:</strong> {{ phoneData?.formatInternational || 'None' }}
786
- </div>
787
- <div>
788
- <strong>E164 Format:</strong> {{ phoneData?.e164 || 'None' }}
789
- </div>
790
- <div>
791
- <strong>Phone Type:</strong> {{ phoneData?.type || 'Unknown' }}
792
- </div>
767
+ <MazInputPhoneNumber
768
+ v-model="dataPhone"
769
+ v-model:country-code="dataCountry"
770
+ top-label="Your phone number"
771
+ placeholder="Enter a phone number to see data"
772
+ assistive-text="Enter your phone number in international format (e.g. +33612345678)"
773
+ @data="phoneData = $event"
774
+ />
775
+
776
+ <div v-if="phoneData" class="maz:bg-surface-400 maz:pt-8 maz:rounded-md">
777
+ <h4 class="maz:font-semibold maz:mb-3">📊 Phone Number Data</h4>
778
+ <div class="maz:grid maz:grid-cols-1 maz:md:grid-cols-2 maz:gap-4 maz:text-sm">
779
+ <div>
780
+ <strong>Valid:</strong> {{ phoneData?.isValid ? '✅' : '❌' }}
781
+ </div>
782
+ <div>
783
+ <strong>Country:</strong> {{ phoneData?.countryCode || 'None' }}
784
+ </div>
785
+ <div>
786
+ <strong>National Format:</strong> {{ phoneData?.formatNational || 'None' }}
787
+ </div>
788
+ <div>
789
+ <strong>International:</strong> {{ phoneData?.formatInternational || 'None' }}
790
+ </div>
791
+ <div>
792
+ <strong>E164 Format:</strong> {{ phoneData?.e164 || 'None' }}
793
+ </div>
794
+ <div>
795
+ <strong>Phone Type:</strong> {{ phoneData?.type || 'Unknown' }}
793
796
  </div>
794
797
  </div>
795
798
  </div>