@mozaic-ds/vue 2.12.0 → 2.13.0
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/dist/mozaic-vue.css +1 -1
- package/dist/mozaic-vue.d.ts +702 -361
- package/dist/mozaic-vue.js +2791 -2428
- package/dist/mozaic-vue.js.map +1 -1
- package/dist/mozaic-vue.umd.cjs +5 -5
- package/dist/mozaic-vue.umd.cjs.map +1 -1
- package/package.json +7 -6
- package/src/components/{usingPresets.mdx → BrandPresets.mdx} +2 -2
- package/src/components/Changelog.mdx +19 -0
- package/src/components/Color.mdx +226 -0
- package/src/components/Contributing.mdx +12 -6
- package/src/components/GettingStarted.mdx +1 -1
- package/src/components/Icon.stories.ts +134 -0
- package/src/components/Welcome.mdx +49 -0
- package/src/components/accordionlist/MAccordionList.spec.ts +136 -0
- package/src/components/accordionlist/MAccordionList.stories.ts +123 -0
- package/src/components/accordionlist/MAccordionList.vue +91 -0
- package/src/components/accordionlist/README.md +24 -0
- package/src/components/accordionlist/m-accordion-list.const.ts +9 -0
- package/src/components/accordionlistitem/MAccordionListItem.spec.ts +123 -0
- package/src/components/accordionlistitem/MAccordionListItem.vue +95 -0
- package/src/components/accordionlistitem/README.md +23 -0
- package/src/components/actionbottombar/MActionBottomBar.spec.ts +52 -0
- package/src/components/actionbottombar/MActionBottomBar.stories.ts +162 -0
- package/src/components/actionbottombar/MActionBottomBar.vue +45 -0
- package/src/components/actionbottombar/README.md +31 -0
- package/src/components/actionlistbox/MActionListbox.spec.ts +134 -0
- package/src/components/actionlistbox/MActionListbox.stories.ts +74 -0
- package/src/components/actionlistbox/MActionListbox.vue +89 -0
- package/src/components/actionlistbox/README.md +25 -0
- package/src/components/avatar/MAvatar.stories.ts +1 -1
- package/src/components/breadcrumb/README.md +14 -0
- package/src/components/builtinmenu/MBuiltInMenu.stories.ts +2 -1
- package/src/components/builtinmenu/MBuiltInMenu.vue +1 -1
- package/src/components/builtinmenu/README.md +14 -0
- package/src/components/button/MButton.spec.ts +1 -1
- package/src/components/button/MButton.stories.ts +165 -5
- package/src/components/button/README.md +33 -1
- package/src/components/callout/MCallout.spec.ts +7 -6
- package/src/components/callout/MCallout.stories.ts +1 -2
- package/src/components/carousel/MCarousel.spec.ts +1 -2
- package/src/components/carousel/MCarousel.stories.ts +2 -1
- package/src/components/carousel/MCarousel.vue +1 -2
- package/src/components/carousel/README.md +14 -0
- package/src/components/checkbox/README.md +14 -0
- package/src/components/checkboxgroup/README.md +14 -0
- package/src/components/checklistmenu/MCheckListMenu.spec.ts +1 -1
- package/src/components/checklistmenu/MCheckListMenu.stories.ts +1 -0
- package/src/components/checklistmenu/MCheckListMenu.vue +1 -1
- package/src/components/checklistmenu/README.md +14 -0
- package/src/components/circularprogressbar/README.md +15 -1
- package/src/components/datepicker/MDatepicker.vue +1 -1
- package/src/components/divider/README.md +22 -0
- package/src/components/drawer/MDrawer.vue +1 -2
- package/src/components/drawer/README.md +16 -0
- package/src/components/field/README.md +14 -0
- package/src/components/fileuploader/MFileUploader.spec.ts +304 -0
- package/src/components/fileuploader/MFileUploader.stories.ts +123 -0
- package/src/components/fileuploader/MFileUploader.vue +314 -0
- package/src/components/fileuploader/README.md +58 -0
- package/src/components/fileuploaderitem/MFileUploaderItem.spec.ts +91 -0
- package/src/components/fileuploaderitem/MFileUploaderItem.vue +180 -0
- package/src/components/fileuploaderitem/README.md +58 -0
- package/src/components/flag/README.md +1 -1
- package/src/components/iconbutton/MIconButton.spec.ts +1 -1
- package/src/components/iconbutton/MIconButton.stories.ts +116 -7
- package/src/components/iconbutton/README.md +25 -1
- package/src/components/kpiitem/MKpiItem.vue +5 -3
- package/src/components/linearprogressbarbuffer/README.md +14 -0
- package/src/components/link/MLink.stories.ts +1 -2
- package/src/components/link/README.md +14 -0
- package/src/components/loader/README.md +20 -0
- package/src/components/loadingoverlay/README.md +14 -0
- package/src/components/modal/MModal.stories.ts +1 -2
- package/src/components/modal/MModal.vue +1 -1
- package/src/components/modal/README.md +16 -0
- package/src/components/numberbadge/README.md +17 -1
- package/src/components/overlay/README.md +16 -0
- package/src/components/pagination/MPagination.vue +1 -2
- package/src/components/pagination/README.md +18 -0
- package/src/components/passwordinput/MPasswordInput.vue +1 -1
- package/src/components/passwordinput/README.md +14 -0
- package/src/components/phonenumber/MPhoneNumber.spec.ts +7 -6
- package/src/components/phonenumber/MPhoneNumber.vue +1 -1
- package/src/components/quantityselector/MQuantitySelector.vue +1 -2
- package/src/components/radio/README.md +14 -0
- package/src/components/radiogroup/README.md +14 -0
- package/src/components/select/README.md +14 -0
- package/src/components/starrating/MStarRating.spec.ts +1 -2
- package/src/components/starrating/MStarRating.vue +1 -3
- package/src/components/statusbadge/README.md +14 -0
- package/src/components/statusdot/README.md +14 -0
- package/src/components/statusmessage/MStatusMessage.spec.ts +6 -4
- package/src/components/statusmessage/MStatusMessage.vue +6 -4
- package/src/components/statusmessage/README.md +14 -0
- package/src/components/statusnotification/MStatusNotification.spec.ts +6 -4
- package/src/components/statusnotification/MStatusNotification.stories.ts +1 -1
- package/src/components/statusnotification/MStatusNotification.vue +7 -5
- package/src/components/statusnotification/README.md +14 -0
- package/src/components/stepperbottombar/MStepperBottomBar.spec.ts +134 -0
- package/src/components/stepperbottombar/MStepperBottomBar.stories.ts +72 -0
- package/src/components/stepperbottombar/MStepperBottomBar.vue +131 -0
- package/src/components/stepperbottombar/README.md +40 -0
- package/src/components/steppercompact/README.md +14 -0
- package/src/components/stepperinline/MStepperInline.vue +1 -2
- package/src/components/tabs/MTabs.stories.ts +1 -1
- package/src/components/tabs/README.md +16 -0
- package/src/components/tag/MTag.vue +1 -1
- package/src/components/tag/README.md +14 -0
- package/src/components/textinput/MTextInput.spec.ts +1 -1
- package/src/components/textinput/MTextInput.stories.ts +1 -1
- package/src/components/textinput/MTextInput.vue +1 -1
- package/src/components/toaster/MToaster.spec.ts +6 -4
- package/src/components/toaster/MToaster.vue +7 -5
- package/src/components/toaster/README.md +16 -0
- package/src/components/toggle/README.md +14 -0
- package/src/components/togglegroup/README.md +14 -0
- package/src/main.ts +5 -0
- package/src/components/Introduction.mdx +0 -100
- package/src/components/Support.mdx +0 -18
- package/src/components/usingIcons.mdx +0 -35
|
@@ -8,4 +8,4 @@ A flag is used to display meta-information about a product or service, acting as
|
|
|
8
8
|
| Name | Description | Type | Default |
|
|
9
9
|
| --- | --- | --- | --- |
|
|
10
10
|
| `label*` | Label of the Flag. | `string` | - |
|
|
11
|
-
| `appearance` | Allows to define the Flag appearance. | `"standard"` `"
|
|
11
|
+
| `appearance` | Allows to define the Flag appearance. | `"standard"` `"danger"` `"inverse"` `"accent"` | - |
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { mount } from '@vue/test-utils';
|
|
2
2
|
import { describe, it, expect } from 'vitest';
|
|
3
3
|
import MIconButton from './MIconButton.vue';
|
|
4
|
-
import ChevronRight24 from '@mozaic-ds/icons-vue
|
|
4
|
+
import { ChevronRight24 } from '@mozaic-ds/icons-vue';
|
|
5
5
|
|
|
6
6
|
describe('MButton component', () => {
|
|
7
7
|
it('renders with an icon', () => {
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/vue3-vite';
|
|
2
2
|
|
|
3
3
|
import MIconButton from './MIconButton.vue';
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import {
|
|
5
|
+
ChevronRight20,
|
|
6
|
+
ChevronRight24,
|
|
7
|
+
ChevronRight32,
|
|
8
|
+
} from '@mozaic-ds/icons-vue';
|
|
7
9
|
|
|
8
10
|
const meta: Meta<typeof MIconButton> = {
|
|
9
11
|
title: 'Action/Icon Button',
|
|
@@ -50,26 +52,133 @@ const meta: Meta<typeof MIconButton> = {
|
|
|
50
52
|
export default meta;
|
|
51
53
|
type Story = StoryObj<typeof MIconButton>;
|
|
52
54
|
|
|
53
|
-
export const
|
|
55
|
+
export const Filled: Story = {
|
|
56
|
+
parameters: {
|
|
57
|
+
docs: {
|
|
58
|
+
description: {
|
|
59
|
+
story:
|
|
60
|
+
'Most visible variant, used to emphasize the primary action on a page or a section.',
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
};
|
|
54
65
|
|
|
55
|
-
export const
|
|
66
|
+
export const Outlined: Story = {
|
|
56
67
|
args: { outlined: true },
|
|
68
|
+
parameters: {
|
|
69
|
+
docs: {
|
|
70
|
+
description: {
|
|
71
|
+
story:
|
|
72
|
+
'Complements the filled button for secondary actions that require less attention. It can also be used when multiple actions are available, without one standing out as more important.',
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
},
|
|
57
76
|
};
|
|
58
77
|
|
|
59
78
|
export const Ghost: Story = {
|
|
60
79
|
args: { ghost: true },
|
|
80
|
+
parameters: {
|
|
81
|
+
docs: {
|
|
82
|
+
description: {
|
|
83
|
+
story:
|
|
84
|
+
'More discreet, should be used exclusively for canceling or ignoring a task or action.',
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
},
|
|
61
88
|
};
|
|
62
89
|
|
|
63
|
-
export const
|
|
90
|
+
export const Standard: Story = {
|
|
91
|
+
args: { appearance: 'standard' },
|
|
92
|
+
parameters: {
|
|
93
|
+
docs: {
|
|
94
|
+
description: {
|
|
95
|
+
story:
|
|
96
|
+
'The standard style is a neutral variant used for general actions that don’t require special attention, ensuring a consistent and accessible look.',
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
export const Accent: Story = {
|
|
103
|
+
args: { appearance: 'accent' },
|
|
104
|
+
parameters: {
|
|
105
|
+
docs: {
|
|
106
|
+
description: {
|
|
107
|
+
story:
|
|
108
|
+
'The accent style is a more prominent variant used for engaging actions that require attention, such as conversions or highlighting specific tasks, ensuring a vibrant and accessible appearance.',
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
export const Danger: Story = {
|
|
115
|
+
args: { appearance: 'danger' },
|
|
116
|
+
parameters: {
|
|
117
|
+
docs: {
|
|
118
|
+
description: {
|
|
119
|
+
story:
|
|
120
|
+
'The danger style is intended for critical or irreversible actions, such as deleting sensitive data (e.g., deleting a profile picture is not considered sensitive), ensuring that users are clearly warned before proceeding.',
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
export const Inverse: Story = {
|
|
127
|
+
globals: {
|
|
128
|
+
backgrounds: { value: 'inverse' },
|
|
129
|
+
},
|
|
130
|
+
args: { appearance: 'inverse' },
|
|
131
|
+
parameters: {
|
|
132
|
+
docs: {
|
|
133
|
+
description: {
|
|
134
|
+
story:
|
|
135
|
+
'The inverse style must be used exclusively on dark backgrounds, providing contrast and clarity.',
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
export const Small: Story = {
|
|
64
142
|
args: {
|
|
65
143
|
size: 's',
|
|
66
144
|
icon: '<ChevronRight20/>',
|
|
67
145
|
},
|
|
146
|
+
parameters: {
|
|
147
|
+
docs: {
|
|
148
|
+
description: {
|
|
149
|
+
story:
|
|
150
|
+
'Exclusively used on desktop interfaces. Ideal for complex interfaces with a high volume of content.',
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
export const Medium: Story = {
|
|
157
|
+
args: {
|
|
158
|
+
size: 'm',
|
|
159
|
+
icon: '<ChevronRight24/>',
|
|
160
|
+
},
|
|
161
|
+
parameters: {
|
|
162
|
+
docs: {
|
|
163
|
+
description: {
|
|
164
|
+
story:
|
|
165
|
+
'This is the minimum size recommended for mobile use, and it is the default size based on standard height. It provides an adequate touch area for mobile devices.',
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
},
|
|
68
169
|
};
|
|
69
170
|
|
|
70
|
-
export const
|
|
171
|
+
export const Large: Story = {
|
|
71
172
|
args: {
|
|
72
173
|
size: 'l',
|
|
73
174
|
icon: '<ChevronRight32/>',
|
|
74
175
|
},
|
|
176
|
+
parameters: {
|
|
177
|
+
docs: {
|
|
178
|
+
description: {
|
|
179
|
+
story:
|
|
180
|
+
'Primarily used on landing pages or layouts with generous spacing. It may also be applicable in more complex scenarios, such as for small mobile devices used by warehouse employees.',
|
|
181
|
+
},
|
|
182
|
+
},
|
|
183
|
+
},
|
|
75
184
|
};
|
|
@@ -7,7 +7,7 @@ Buttons are key interactive elements used to perform actions and can be used as
|
|
|
7
7
|
|
|
8
8
|
| Name | Description | Type | Default |
|
|
9
9
|
| --- | --- | --- | --- |
|
|
10
|
-
| `appearance` | Defines the visual style of the icon button. | `"standard"` `"
|
|
10
|
+
| `appearance` | Defines the visual style of the icon button. | `"standard"` `"danger"` `"inverse"` `"accent"` | `"standard"` |
|
|
11
11
|
| `size` | Determines the size of the icon button. | `"s"` `"m"` `"l"` | `"m"` |
|
|
12
12
|
| `disabled` | If `true`, disables the icon button, making it non-interactive. | `boolean` | - |
|
|
13
13
|
| `ghost` | If `true`, applies a "ghost" style to the icon button. | `boolean` | - |
|
|
@@ -19,3 +19,27 @@ Buttons are key interactive elements used to perform actions and can be used as
|
|
|
19
19
|
| Name | Description |
|
|
20
20
|
| --- | --- |
|
|
21
21
|
| `icon` | Use this slot to insert an icon for the Button. |
|
|
22
|
+
|
|
23
|
+
## Dependencies
|
|
24
|
+
|
|
25
|
+
### Used By
|
|
26
|
+
|
|
27
|
+
- [MCarousel](../carousel)
|
|
28
|
+
- [MDrawer](../drawer)
|
|
29
|
+
- [MModal](../modal)
|
|
30
|
+
- [MPagination](../pagination)
|
|
31
|
+
- [MStatusNotification](../statusnotification)
|
|
32
|
+
- [MToaster](../toaster)
|
|
33
|
+
|
|
34
|
+
### Graph
|
|
35
|
+
|
|
36
|
+
```mermaid
|
|
37
|
+
graph TD;
|
|
38
|
+
MCarousel --> MIconButton
|
|
39
|
+
MDrawer --> MIconButton
|
|
40
|
+
MModal --> MIconButton
|
|
41
|
+
MPagination --> MIconButton
|
|
42
|
+
MStatusNotification --> MIconButton
|
|
43
|
+
MToaster --> MIconButton
|
|
44
|
+
style MIconButton fill:#008240,stroke:#333,stroke-width:4px
|
|
45
|
+
```
|
|
@@ -23,9 +23,11 @@
|
|
|
23
23
|
|
|
24
24
|
<script setup lang="ts">
|
|
25
25
|
import { computed, type Component } from 'vue';
|
|
26
|
-
import
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
import {
|
|
27
|
+
ArrowBottomRight24,
|
|
28
|
+
ArrowTopRight24,
|
|
29
|
+
Less24,
|
|
30
|
+
} from '@mozaic-ds/icons-vue';
|
|
29
31
|
/**
|
|
30
32
|
* A KPI Item is used to display Key Performance Indicators (KPIs) within an interface, providing a quick and clear visualization of essential data. It often includes contextual elements such as labels, trends, or status indicators to help users interpret the information at a glance. KPI Items are commonly used in dashboards, reports, and analytics tools to highlight critical metrics and facilitate data-driven decision-making.
|
|
31
33
|
*/
|
|
@@ -9,3 +9,17 @@ A linear progress bar (Buffer) visually represents the progress of a task along
|
|
|
9
9
|
| --- | --- | --- | --- |
|
|
10
10
|
| `size` | Allows to define the progress bar size. | `"s"` `"m"` `"l"` | - |
|
|
11
11
|
| `value` | The current value of the progress bar. | `number` | `0` |
|
|
12
|
+
|
|
13
|
+
## Dependencies
|
|
14
|
+
|
|
15
|
+
### Used By
|
|
16
|
+
|
|
17
|
+
- [MToaster](../toaster)
|
|
18
|
+
|
|
19
|
+
### Graph
|
|
20
|
+
|
|
21
|
+
```mermaid
|
|
22
|
+
graph TD;
|
|
23
|
+
MToaster --> MLinearProgressbarBuffer
|
|
24
|
+
style MLinearProgressbarBuffer fill:#008240,stroke:#333,stroke-width:4px
|
|
25
|
+
```
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/vue3-vite';
|
|
2
2
|
import MLink from './MLink.vue';
|
|
3
|
-
import ChevronLeft24 from '@mozaic-ds/icons-vue
|
|
4
|
-
import ChevronRight24 from '@mozaic-ds/icons-vue/src/components/ChevronRight24/ChevronRight24.vue';
|
|
3
|
+
import { ChevronLeft24, ChevronRight24 } from '@mozaic-ds/icons-vue';
|
|
5
4
|
|
|
6
5
|
const meta: Meta<typeof MLink> = {
|
|
7
6
|
title: 'Navigation/Link',
|
|
@@ -21,3 +21,17 @@ A link is an interactive text element used to navigate between pages, sections,
|
|
|
21
21
|
| --- | --- |
|
|
22
22
|
| `default` | Use this slot to insert the textual content of the Link. |
|
|
23
23
|
| `icon` | Use this slot to insert an icon for the Link. |
|
|
24
|
+
|
|
25
|
+
## Dependencies
|
|
26
|
+
|
|
27
|
+
### Used By
|
|
28
|
+
|
|
29
|
+
- [MBreadcrumb](../breadcrumb)
|
|
30
|
+
|
|
31
|
+
### Graph
|
|
32
|
+
|
|
33
|
+
```mermaid
|
|
34
|
+
graph TD;
|
|
35
|
+
MBreadcrumb --> MLink
|
|
36
|
+
style MLink fill:#008240,stroke:#333,stroke-width:4px
|
|
37
|
+
```
|
|
@@ -10,3 +10,23 @@ A loader is a visual indicator used to inform users that a process is in progres
|
|
|
10
10
|
| `appearance` | Specifies the visual appearance of the loader. | `"standard"` `"inverse"` `"accent"` | `"standard"` |
|
|
11
11
|
| `size` | Defines the size of the loader. | `"s"` `"m"` `"l"` `"xs"` | `"m"` |
|
|
12
12
|
| `text` | Text to display alongside the loader when using the loader inside an `Overlay`. | `string` | - |
|
|
13
|
+
|
|
14
|
+
## Dependencies
|
|
15
|
+
|
|
16
|
+
### Used By
|
|
17
|
+
|
|
18
|
+
- [MButton](../button)
|
|
19
|
+
- [MField](../field)
|
|
20
|
+
- [MLoadingOverlay](../loadingoverlay)
|
|
21
|
+
- [MStatusMessage](../statusmessage)
|
|
22
|
+
|
|
23
|
+
### Graph
|
|
24
|
+
|
|
25
|
+
```mermaid
|
|
26
|
+
graph TD;
|
|
27
|
+
MButton --> MLoader
|
|
28
|
+
MField --> MLoader
|
|
29
|
+
MLoadingOverlay --> MLoader
|
|
30
|
+
MStatusMessage --> MLoader
|
|
31
|
+
style MLoader fill:#008240,stroke:#333,stroke-width:4px
|
|
32
|
+
```
|
|
@@ -9,3 +9,17 @@ A loading overlay is a full-screen or container-level layer that indicates a pro
|
|
|
9
9
|
| --- | --- | --- | --- |
|
|
10
10
|
| `isVisible` | Controls the visibility of the loading overlay. | `boolean` | - |
|
|
11
11
|
| `text` | Text of the loading overlay. | `string` | - |
|
|
12
|
+
|
|
13
|
+
## Dependencies
|
|
14
|
+
|
|
15
|
+
### Depends on
|
|
16
|
+
|
|
17
|
+
- [MLoader](../loader)
|
|
18
|
+
|
|
19
|
+
### Graph
|
|
20
|
+
|
|
21
|
+
```mermaid
|
|
22
|
+
graph TD;
|
|
23
|
+
MLoadingOverlay --> MLoader
|
|
24
|
+
style MLoadingOverlay fill:#008240,stroke:#333,stroke-width:4px
|
|
25
|
+
```
|
|
@@ -4,8 +4,7 @@ import { action } from 'storybook/actions';
|
|
|
4
4
|
import MModal from './MModal.vue';
|
|
5
5
|
import MButton from '../button/MButton.vue';
|
|
6
6
|
import MLink from '../link/MLink.vue';
|
|
7
|
-
import InfoCircle32 from '@mozaic-ds/icons-vue
|
|
8
|
-
import ExternalLink24 from '@mozaic-ds/icons-vue/src/components/ExternalLink24/ExternalLink24.vue';
|
|
7
|
+
import { InfoCircle32, ExternalLink24 } from '@mozaic-ds/icons-vue';
|
|
9
8
|
|
|
10
9
|
const meta: Meta<typeof MModal> = {
|
|
11
10
|
title: 'Overlay/Modal',
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
|
|
50
50
|
<script setup lang="ts">
|
|
51
51
|
import { computed, onMounted, onUnmounted, watch, type VNode } from 'vue';
|
|
52
|
-
import Cross24 from '@mozaic-ds/icons-vue
|
|
52
|
+
import { Cross24 } from '@mozaic-ds/icons-vue';
|
|
53
53
|
import MIconButton from '../iconbutton/MIconButton.vue';
|
|
54
54
|
import MOverlay from '../overlay/MOverlay.vue';
|
|
55
55
|
/**
|
|
@@ -28,3 +28,19 @@ A modal is a dialog window that appears on top of the main content, requiring us
|
|
|
28
28
|
| Name | Description | Type |
|
|
29
29
|
| --- | --- | --- |
|
|
30
30
|
| `update:open` | Emits when the modal display changes, updating the modelValue prop. | [value: boolean] |
|
|
31
|
+
|
|
32
|
+
## Dependencies
|
|
33
|
+
|
|
34
|
+
### Depends on
|
|
35
|
+
|
|
36
|
+
- [MIconButton](../iconbutton)
|
|
37
|
+
- [MOverlay](../overlay)
|
|
38
|
+
|
|
39
|
+
### Graph
|
|
40
|
+
|
|
41
|
+
```mermaid
|
|
42
|
+
graph TD;
|
|
43
|
+
MModal --> MIconButton
|
|
44
|
+
MModal --> MOverlay
|
|
45
|
+
style MModal fill:#008240,stroke:#333,stroke-width:4px
|
|
46
|
+
```
|
|
@@ -8,5 +8,21 @@ A Number Badge represents a numeric count, often used to indicate notifications,
|
|
|
8
8
|
| Name | Description | Type | Default |
|
|
9
9
|
| --- | --- | --- | --- |
|
|
10
10
|
| `label*` | Content of the badge. | `number` | - |
|
|
11
|
-
| `appearance` | Allows to define the badge appearance. | `"standard"` `"
|
|
11
|
+
| `appearance` | Allows to define the badge appearance. | `"standard"` `"danger"` `"inverse"` `"accent"` | `"standard"` |
|
|
12
12
|
| `size` | Allows to define the badge size. | `"s"` `"m"` | `"s"` |
|
|
13
|
+
|
|
14
|
+
## Dependencies
|
|
15
|
+
|
|
16
|
+
### Used By
|
|
17
|
+
|
|
18
|
+
- [MTabs](../tabs)
|
|
19
|
+
- [MTag](../tag)
|
|
20
|
+
|
|
21
|
+
### Graph
|
|
22
|
+
|
|
23
|
+
```mermaid
|
|
24
|
+
graph TD;
|
|
25
|
+
MTabs --> MNumberBadge
|
|
26
|
+
MTag --> MNumberBadge
|
|
27
|
+
style MNumberBadge fill:#008240,stroke:#333,stroke-width:4px
|
|
28
|
+
```
|
|
@@ -15,3 +15,19 @@ An overlay is a semi-transparent layer that appears on top of the main content,
|
|
|
15
15
|
| Name | Description |
|
|
16
16
|
| --- | --- |
|
|
17
17
|
| `default` | Use this slot to insert a centered content inside the overlay. |
|
|
18
|
+
|
|
19
|
+
## Dependencies
|
|
20
|
+
|
|
21
|
+
### Used By
|
|
22
|
+
|
|
23
|
+
- [MDrawer](../drawer)
|
|
24
|
+
- [MModal](../modal)
|
|
25
|
+
|
|
26
|
+
### Graph
|
|
27
|
+
|
|
28
|
+
```mermaid
|
|
29
|
+
graph TD;
|
|
30
|
+
MDrawer --> MOverlay
|
|
31
|
+
MModal --> MOverlay
|
|
32
|
+
style MOverlay fill:#008240,stroke:#333,stroke-width:4px
|
|
33
|
+
```
|
|
@@ -59,8 +59,7 @@
|
|
|
59
59
|
import { computed, ref, watch } from 'vue';
|
|
60
60
|
import MButton from '../button/MButton.vue';
|
|
61
61
|
import MSelect from '../select/MSelect.vue';
|
|
62
|
-
import ChevronLeft24 from '@mozaic-ds/icons-vue
|
|
63
|
-
import ChevronRight24 from '@mozaic-ds/icons-vue/src/components/ChevronRight24/ChevronRight24.vue';
|
|
62
|
+
import { ChevronLeft24, ChevronRight24 } from '@mozaic-ds/icons-vue';
|
|
64
63
|
import MIconButton from '../iconbutton/MIconButton.vue';
|
|
65
64
|
/**
|
|
66
65
|
* Pagination is a navigation component that allows users to browse through large sets of content by dividing it into discrete pages. It typically includes previous and next buttons, numeric page selectors, or dropdowns to jump between pages efficiently. Pagination improves usability and performance in content-heavy applications such as tables, search results, and articles by preventing long scrolls and reducing page load times.
|
|
@@ -18,3 +18,21 @@ Pagination is a navigation component that allows users to browse through large s
|
|
|
18
18
|
| Name | Description | Type |
|
|
19
19
|
| --- | --- | --- |
|
|
20
20
|
| `update:modelValue` | Emits when the pagination value changes, updating the modelValue prop. | [value: number] |
|
|
21
|
+
|
|
22
|
+
## Dependencies
|
|
23
|
+
|
|
24
|
+
### Depends on
|
|
25
|
+
|
|
26
|
+
- [MButton](../button)
|
|
27
|
+
- [MIconButton](../iconbutton)
|
|
28
|
+
- [MSelect](../select)
|
|
29
|
+
|
|
30
|
+
### Graph
|
|
31
|
+
|
|
32
|
+
```mermaid
|
|
33
|
+
graph TD;
|
|
34
|
+
MPagination --> MButton
|
|
35
|
+
MPagination --> MSelect
|
|
36
|
+
MPagination --> MIconButton
|
|
37
|
+
style MPagination fill:#008240,stroke:#333,stroke-width:4px
|
|
38
|
+
```
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
|
|
41
41
|
<script setup lang="ts">
|
|
42
42
|
import { computed, ref } from 'vue';
|
|
43
|
-
import CrossCircleFilled24 from '@mozaic-ds/icons-vue
|
|
43
|
+
import { CrossCircleFilled24 } from '@mozaic-ds/icons-vue';
|
|
44
44
|
import MButton from '../button/MButton.vue';
|
|
45
45
|
|
|
46
46
|
/**
|
|
@@ -23,3 +23,17 @@ A password input is a specialized input field used to securely enter and manage
|
|
|
23
23
|
| Name | Description | Type |
|
|
24
24
|
| --- | --- | --- |
|
|
25
25
|
| `update:modelValue` | Emits when the input value changes, updating the `modelValue` prop. | [value: string | number] |
|
|
26
|
+
|
|
27
|
+
## Dependencies
|
|
28
|
+
|
|
29
|
+
### Depends on
|
|
30
|
+
|
|
31
|
+
- [MButton](../button)
|
|
32
|
+
|
|
33
|
+
### Graph
|
|
34
|
+
|
|
35
|
+
```mermaid
|
|
36
|
+
graph TD;
|
|
37
|
+
MPasswordInput --> MButton
|
|
38
|
+
style MPasswordInput fill:#008240,stroke:#333,stroke-width:4px
|
|
39
|
+
```
|
|
@@ -27,15 +27,16 @@ vi.mock('libphonenumber-js', () => ({
|
|
|
27
27
|
}),
|
|
28
28
|
}));
|
|
29
29
|
|
|
30
|
-
vi.mock(
|
|
31
|
-
'@mozaic-ds/icons-vue
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
vi.mock('@mozaic-ds/icons-vue', async () => {
|
|
31
|
+
const actual = await vi.importActual('@mozaic-ds/icons-vue');
|
|
32
|
+
return {
|
|
33
|
+
...actual,
|
|
34
|
+
ChevronDown20: {
|
|
34
35
|
name: 'ChevronDown20',
|
|
35
36
|
template: '<svg data-testid="chevron-icon" aria-hidden="true"></svg>',
|
|
36
37
|
},
|
|
37
|
-
}
|
|
38
|
-
);
|
|
38
|
+
};
|
|
39
|
+
});
|
|
39
40
|
|
|
40
41
|
describe('MPhoneNumber', () => {
|
|
41
42
|
let wrapper: VueWrapper<InstanceType<typeof MPhoneNumber>>;
|
|
@@ -70,7 +70,7 @@ import parsePhoneNumberFromString, {
|
|
|
70
70
|
type CountryCode,
|
|
71
71
|
} from 'libphonenumber-js';
|
|
72
72
|
import examples from 'libphonenumber-js/mobile/examples';
|
|
73
|
-
import ChevronDown20 from '@mozaic-ds/icons-vue
|
|
73
|
+
import { ChevronDown20 } from '@mozaic-ds/icons-vue';
|
|
74
74
|
/**
|
|
75
75
|
* A phone number input is a specialized input field designed to capture and validate phone numbers, ensuring correct formatting based on country-specific dialing codes. It often includes a country selector that automatically adjusts the international dialing code. This component improves user experience by standardizing phone number entries, reducing errors, and facilitating global compatibility. It is commonly used in registration forms, authentication flows, and contact information fields.
|
|
76
76
|
*/
|
|
@@ -51,8 +51,7 @@
|
|
|
51
51
|
|
|
52
52
|
<script setup lang="ts">
|
|
53
53
|
import { computed, ref, watch } from 'vue';
|
|
54
|
-
import More24 from '@mozaic-ds/icons-vue
|
|
55
|
-
import Less24 from '@mozaic-ds/icons-vue/src/components/Less24/Less24.vue';
|
|
54
|
+
import { More24, Less24 } from '@mozaic-ds/icons-vue';
|
|
56
55
|
|
|
57
56
|
/**
|
|
58
57
|
* A quantity selector is an input component that allows users to increment or decrement a numeric value, typically using plus (+) and minus (−) buttons. It provides a simple and efficient way to adjust quantities without manual typing, ensuring controlled input. This component is commonly used in e-commerce, inventory management, and settings where users need to specify amounts.
|
|
@@ -19,3 +19,17 @@ A radio button is a selection control that allows users to choose a single optio
|
|
|
19
19
|
| Name | Description | Type |
|
|
20
20
|
| --- | --- | --- |
|
|
21
21
|
| `update:modelValue` | Emits when the radio value changes, updating the modelValue prop. | [value: boolean] |
|
|
22
|
+
|
|
23
|
+
## Dependencies
|
|
24
|
+
|
|
25
|
+
### Used By
|
|
26
|
+
|
|
27
|
+
- [MRadioGroup](../radiogroup)
|
|
28
|
+
|
|
29
|
+
### Graph
|
|
30
|
+
|
|
31
|
+
```mermaid
|
|
32
|
+
graph TD;
|
|
33
|
+
MRadioGroup --> MRadio
|
|
34
|
+
style MRadio fill:#008240,stroke:#333,stroke-width:4px
|
|
35
|
+
```
|
|
@@ -19,3 +19,17 @@ A radio button is a selection control that allows users to choose a single optio
|
|
|
19
19
|
| Name | Description | Type |
|
|
20
20
|
| --- | --- | --- |
|
|
21
21
|
| `update:modelValue` | Emits when the radio group value changes, updating the modelValue prop. | [value: string] |
|
|
22
|
+
|
|
23
|
+
## Dependencies
|
|
24
|
+
|
|
25
|
+
### Depends on
|
|
26
|
+
|
|
27
|
+
- [MRadio](../radio)
|
|
28
|
+
|
|
29
|
+
### Graph
|
|
30
|
+
|
|
31
|
+
```mermaid
|
|
32
|
+
graph TD;
|
|
33
|
+
MRadioGroup --> MRadio
|
|
34
|
+
style MRadioGroup fill:#008240,stroke:#333,stroke-width:4px
|
|
35
|
+
```
|
|
@@ -22,3 +22,17 @@ A select component allows users to choose a single option from a predefined list
|
|
|
22
22
|
| Name | Description | Type |
|
|
23
23
|
| --- | --- | --- |
|
|
24
24
|
| `update:modelValue` | Emits when the select value changes, updating the modelValue prop. | [value: string | number] |
|
|
25
|
+
|
|
26
|
+
## Dependencies
|
|
27
|
+
|
|
28
|
+
### Used By
|
|
29
|
+
|
|
30
|
+
- [MPagination](../pagination)
|
|
31
|
+
|
|
32
|
+
### Graph
|
|
33
|
+
|
|
34
|
+
```mermaid
|
|
35
|
+
graph TD;
|
|
36
|
+
MPagination --> MSelect
|
|
37
|
+
style MSelect fill:#008240,stroke:#333,stroke-width:4px
|
|
38
|
+
```
|
|
@@ -2,8 +2,7 @@ import { shallowMount, mount } from '@vue/test-utils';
|
|
|
2
2
|
import { describe, it, expect } from 'vitest';
|
|
3
3
|
import { nextTick } from 'vue';
|
|
4
4
|
import MStarRating from './MStarRating.vue';
|
|
5
|
-
import StarFilled24 from '@mozaic-ds/icons-vue
|
|
6
|
-
import StarHalf24 from '@mozaic-ds/icons-vue/src/components/StarHalf24/StarHalf24.vue';
|
|
5
|
+
import { StarFilled24, StarHalf24 } from '@mozaic-ds/icons-vue';
|
|
7
6
|
|
|
8
7
|
function mockRect(el: Element, { left = 0, width = 100 } = {}) {
|
|
9
8
|
Object.defineProperty(el, 'getBoundingClientRect', {
|
|
@@ -56,9 +56,7 @@
|
|
|
56
56
|
|
|
57
57
|
<script setup lang="ts">
|
|
58
58
|
import { computed, ref } from 'vue';
|
|
59
|
-
import Star24 from '@mozaic-ds/icons-vue
|
|
60
|
-
import StarFilled24 from '@mozaic-ds/icons-vue/src/components/StarFilled24/StarFilled24.vue';
|
|
61
|
-
import StarHalf24 from '@mozaic-ds/icons-vue/src/components/StarHalf24/StarHalf24.vue';
|
|
59
|
+
import { Star24, StarFilled24, StarHalf24 } from '@mozaic-ds/icons-vue';
|
|
62
60
|
|
|
63
61
|
/**
|
|
64
62
|
* A Star rating visually represents a score or evaluation and can be used to display a rating or allow users to rate an item, such as a product or service. It serves two main purposes: collecting user feedback by enabling individuals to express their experience and providing social proof by displaying ratings from other users to assist decision-making. Rating Stars are commonly found in e-commerce, review systems, and feedback interfaces, offering a quick and intuitive way to assess quality or satisfaction.
|
|
@@ -9,3 +9,17 @@ A Status Badge is used to indicate the current status of an element, providing a
|
|
|
9
9
|
| --- | --- | --- | --- |
|
|
10
10
|
| `label*` | Content of the status badge | `string` | - |
|
|
11
11
|
| `status` | Allows to define the status badge type | `"info"` `"warning"` `"error"` `"success"` `"neutral"` | `"info"` |
|
|
12
|
+
|
|
13
|
+
## Dependencies
|
|
14
|
+
|
|
15
|
+
### Depends on
|
|
16
|
+
|
|
17
|
+
- [MStatusDot](../statusdot)
|
|
18
|
+
|
|
19
|
+
### Graph
|
|
20
|
+
|
|
21
|
+
```mermaid
|
|
22
|
+
graph TD;
|
|
23
|
+
MStatusBadge --> MStatusDot
|
|
24
|
+
style MStatusBadge fill:#008240,stroke:#333,stroke-width:4px
|
|
25
|
+
```
|
|
@@ -9,3 +9,17 @@ A Status dot is a small visual indicator used to represent the state or conditio
|
|
|
9
9
|
| --- | --- | --- | --- |
|
|
10
10
|
| `status` | Allows to define the status dot type. | `"info"` `"warning"` `"error"` `"success"` `"neutral"` | `"info"` |
|
|
11
11
|
| `size` | Determines the size of the status dot. | `"s"` `"m"` `"l"` | - |
|
|
12
|
+
|
|
13
|
+
## Dependencies
|
|
14
|
+
|
|
15
|
+
### Used By
|
|
16
|
+
|
|
17
|
+
- [MStatusBadge](../statusbadge)
|
|
18
|
+
|
|
19
|
+
### Graph
|
|
20
|
+
|
|
21
|
+
```mermaid
|
|
22
|
+
graph TD;
|
|
23
|
+
MStatusBadge --> MStatusDot
|
|
24
|
+
style MStatusDot fill:#008240,stroke:#333,stroke-width:4px
|
|
25
|
+
```
|
|
@@ -2,10 +2,12 @@ import { mount } from '@vue/test-utils';
|
|
|
2
2
|
import { describe, it, expect } from 'vitest';
|
|
3
3
|
import MStatusMessage from './MStatusMessage.vue';
|
|
4
4
|
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
import {
|
|
6
|
+
InfoCircleFilled24,
|
|
7
|
+
WarningCircleFilled24,
|
|
8
|
+
CrossCircleFilled24,
|
|
9
|
+
CheckCircleFilled24,
|
|
10
|
+
} from '@mozaic-ds/icons-vue';
|
|
9
11
|
|
|
10
12
|
describe('MStatusMessage.vue', () => {
|
|
11
13
|
it('renders the label', () => {
|