@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.
Files changed (121) hide show
  1. package/dist/mozaic-vue.css +1 -1
  2. package/dist/mozaic-vue.d.ts +702 -361
  3. package/dist/mozaic-vue.js +2791 -2428
  4. package/dist/mozaic-vue.js.map +1 -1
  5. package/dist/mozaic-vue.umd.cjs +5 -5
  6. package/dist/mozaic-vue.umd.cjs.map +1 -1
  7. package/package.json +7 -6
  8. package/src/components/{usingPresets.mdx → BrandPresets.mdx} +2 -2
  9. package/src/components/Changelog.mdx +19 -0
  10. package/src/components/Color.mdx +226 -0
  11. package/src/components/Contributing.mdx +12 -6
  12. package/src/components/GettingStarted.mdx +1 -1
  13. package/src/components/Icon.stories.ts +134 -0
  14. package/src/components/Welcome.mdx +49 -0
  15. package/src/components/accordionlist/MAccordionList.spec.ts +136 -0
  16. package/src/components/accordionlist/MAccordionList.stories.ts +123 -0
  17. package/src/components/accordionlist/MAccordionList.vue +91 -0
  18. package/src/components/accordionlist/README.md +24 -0
  19. package/src/components/accordionlist/m-accordion-list.const.ts +9 -0
  20. package/src/components/accordionlistitem/MAccordionListItem.spec.ts +123 -0
  21. package/src/components/accordionlistitem/MAccordionListItem.vue +95 -0
  22. package/src/components/accordionlistitem/README.md +23 -0
  23. package/src/components/actionbottombar/MActionBottomBar.spec.ts +52 -0
  24. package/src/components/actionbottombar/MActionBottomBar.stories.ts +162 -0
  25. package/src/components/actionbottombar/MActionBottomBar.vue +45 -0
  26. package/src/components/actionbottombar/README.md +31 -0
  27. package/src/components/actionlistbox/MActionListbox.spec.ts +134 -0
  28. package/src/components/actionlistbox/MActionListbox.stories.ts +74 -0
  29. package/src/components/actionlistbox/MActionListbox.vue +89 -0
  30. package/src/components/actionlistbox/README.md +25 -0
  31. package/src/components/avatar/MAvatar.stories.ts +1 -1
  32. package/src/components/breadcrumb/README.md +14 -0
  33. package/src/components/builtinmenu/MBuiltInMenu.stories.ts +2 -1
  34. package/src/components/builtinmenu/MBuiltInMenu.vue +1 -1
  35. package/src/components/builtinmenu/README.md +14 -0
  36. package/src/components/button/MButton.spec.ts +1 -1
  37. package/src/components/button/MButton.stories.ts +165 -5
  38. package/src/components/button/README.md +33 -1
  39. package/src/components/callout/MCallout.spec.ts +7 -6
  40. package/src/components/callout/MCallout.stories.ts +1 -2
  41. package/src/components/carousel/MCarousel.spec.ts +1 -2
  42. package/src/components/carousel/MCarousel.stories.ts +2 -1
  43. package/src/components/carousel/MCarousel.vue +1 -2
  44. package/src/components/carousel/README.md +14 -0
  45. package/src/components/checkbox/README.md +14 -0
  46. package/src/components/checkboxgroup/README.md +14 -0
  47. package/src/components/checklistmenu/MCheckListMenu.spec.ts +1 -1
  48. package/src/components/checklistmenu/MCheckListMenu.stories.ts +1 -0
  49. package/src/components/checklistmenu/MCheckListMenu.vue +1 -1
  50. package/src/components/checklistmenu/README.md +14 -0
  51. package/src/components/circularprogressbar/README.md +15 -1
  52. package/src/components/datepicker/MDatepicker.vue +1 -1
  53. package/src/components/divider/README.md +22 -0
  54. package/src/components/drawer/MDrawer.vue +1 -2
  55. package/src/components/drawer/README.md +16 -0
  56. package/src/components/field/README.md +14 -0
  57. package/src/components/fileuploader/MFileUploader.spec.ts +304 -0
  58. package/src/components/fileuploader/MFileUploader.stories.ts +123 -0
  59. package/src/components/fileuploader/MFileUploader.vue +314 -0
  60. package/src/components/fileuploader/README.md +58 -0
  61. package/src/components/fileuploaderitem/MFileUploaderItem.spec.ts +91 -0
  62. package/src/components/fileuploaderitem/MFileUploaderItem.vue +180 -0
  63. package/src/components/fileuploaderitem/README.md +58 -0
  64. package/src/components/flag/README.md +1 -1
  65. package/src/components/iconbutton/MIconButton.spec.ts +1 -1
  66. package/src/components/iconbutton/MIconButton.stories.ts +116 -7
  67. package/src/components/iconbutton/README.md +25 -1
  68. package/src/components/kpiitem/MKpiItem.vue +5 -3
  69. package/src/components/linearprogressbarbuffer/README.md +14 -0
  70. package/src/components/link/MLink.stories.ts +1 -2
  71. package/src/components/link/README.md +14 -0
  72. package/src/components/loader/README.md +20 -0
  73. package/src/components/loadingoverlay/README.md +14 -0
  74. package/src/components/modal/MModal.stories.ts +1 -2
  75. package/src/components/modal/MModal.vue +1 -1
  76. package/src/components/modal/README.md +16 -0
  77. package/src/components/numberbadge/README.md +17 -1
  78. package/src/components/overlay/README.md +16 -0
  79. package/src/components/pagination/MPagination.vue +1 -2
  80. package/src/components/pagination/README.md +18 -0
  81. package/src/components/passwordinput/MPasswordInput.vue +1 -1
  82. package/src/components/passwordinput/README.md +14 -0
  83. package/src/components/phonenumber/MPhoneNumber.spec.ts +7 -6
  84. package/src/components/phonenumber/MPhoneNumber.vue +1 -1
  85. package/src/components/quantityselector/MQuantitySelector.vue +1 -2
  86. package/src/components/radio/README.md +14 -0
  87. package/src/components/radiogroup/README.md +14 -0
  88. package/src/components/select/README.md +14 -0
  89. package/src/components/starrating/MStarRating.spec.ts +1 -2
  90. package/src/components/starrating/MStarRating.vue +1 -3
  91. package/src/components/statusbadge/README.md +14 -0
  92. package/src/components/statusdot/README.md +14 -0
  93. package/src/components/statusmessage/MStatusMessage.spec.ts +6 -4
  94. package/src/components/statusmessage/MStatusMessage.vue +6 -4
  95. package/src/components/statusmessage/README.md +14 -0
  96. package/src/components/statusnotification/MStatusNotification.spec.ts +6 -4
  97. package/src/components/statusnotification/MStatusNotification.stories.ts +1 -1
  98. package/src/components/statusnotification/MStatusNotification.vue +7 -5
  99. package/src/components/statusnotification/README.md +14 -0
  100. package/src/components/stepperbottombar/MStepperBottomBar.spec.ts +134 -0
  101. package/src/components/stepperbottombar/MStepperBottomBar.stories.ts +72 -0
  102. package/src/components/stepperbottombar/MStepperBottomBar.vue +131 -0
  103. package/src/components/stepperbottombar/README.md +40 -0
  104. package/src/components/steppercompact/README.md +14 -0
  105. package/src/components/stepperinline/MStepperInline.vue +1 -2
  106. package/src/components/tabs/MTabs.stories.ts +1 -1
  107. package/src/components/tabs/README.md +16 -0
  108. package/src/components/tag/MTag.vue +1 -1
  109. package/src/components/tag/README.md +14 -0
  110. package/src/components/textinput/MTextInput.spec.ts +1 -1
  111. package/src/components/textinput/MTextInput.stories.ts +1 -1
  112. package/src/components/textinput/MTextInput.vue +1 -1
  113. package/src/components/toaster/MToaster.spec.ts +6 -4
  114. package/src/components/toaster/MToaster.vue +7 -5
  115. package/src/components/toaster/README.md +16 -0
  116. package/src/components/toggle/README.md +14 -0
  117. package/src/components/togglegroup/README.md +14 -0
  118. package/src/main.ts +5 -0
  119. package/src/components/Introduction.mdx +0 -100
  120. package/src/components/Support.mdx +0 -18
  121. 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"` `"inverse"` `"accent"` `"danger"` | - |
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/src/components/ChevronRight24/ChevronRight24.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 ChevronRight20 from '@mozaic-ds/icons-vue/src/components/ChevronRight20/ChevronRight20.vue';
5
- import ChevronRight24 from '@mozaic-ds/icons-vue/src/components/ChevronRight24/ChevronRight24.vue';
6
- import ChevronRight32 from '@mozaic-ds/icons-vue/src/components/ChevronRight32/ChevronRight32.vue';
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 Standard: Story = {};
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 Outline: Story = {
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 SizeS: Story = {
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 SizeL: Story = {
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"` `"inverse"` `"accent"` `"danger"` | `"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 ArrowBottomRight24 from '@mozaic-ds/icons-vue/src/components/ArrowBottomRight24/ArrowBottomRight24.vue';
27
- import ArrowTopRight24 from '@mozaic-ds/icons-vue/src/components/ArrowTopRight24/ArrowTopRight24.vue';
28
- import Less24 from '@mozaic-ds/icons-vue/src/components/Less24/Less24.vue';
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/src/components/ChevronLeft24/ChevronLeft24.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/src/components/InfoCircle32/InfoCircle32.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/src/components/Cross24/Cross24.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"` `"inverse"` `"accent"` `"danger"` | `"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/src/components/ChevronLeft24/ChevronLeft24.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/src/components/CrossCircleFilled24/CrossCircleFilled24.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/src/components/ChevronDown20/ChevronDown20.vue',
32
- () => ({
33
- default: {
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/src/components/ChevronDown20/ChevronDown20.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/src/components/More24/More24.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/src/components/StarFilled24/StarFilled24.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/src/components/Star24/Star24.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 InfoCircleFilled24 from '@mozaic-ds/icons-vue/src/components/InfoCircleFilled24/InfoCircleFilled24.vue';
6
- import WarningCircleFilled24 from '@mozaic-ds/icons-vue/src/components/WarningCircleFilled24/WarningCircleFilled24.vue';
7
- import CrossCircleFilled24 from '@mozaic-ds/icons-vue/src/components/CrossCircleFilled24/CrossCircleFilled24.vue';
8
- import CheckCircleFilled24 from '@mozaic-ds/icons-vue/src/components/CheckCircleFilled24/CheckCircleFilled24.vue';
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', () => {