@mozaic-ds/vue 2.2.0 → 2.3.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mozaic-ds/vue",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "type": "module",
5
5
  "description": "Mozaic-Vue is the Vue.js implementation of ADEO Design system",
6
6
  "author": "ADEO - ADEO Design system",
@@ -56,7 +56,7 @@
56
56
  "@storybook/vue3-vite": "^9.0.18",
57
57
  "@storybook/addon-docs": "^9.0.18",
58
58
  "@types/jsdom": "^21.1.7",
59
- "@vitejs/plugin-vue": "^5.2.3",
59
+ "@vitejs/plugin-vue": "^6.0.1",
60
60
  "@vitest/coverage-v8": "^3.0.9",
61
61
  "@vitest/eslint-plugin": "^1.1.38",
62
62
  "@vue/eslint-config-prettier": "^10.2.0",
@@ -68,16 +68,16 @@
68
68
  "eslint-plugin-vuejs-accessibility": "^2.4.1",
69
69
  "husky": "^9.1.7",
70
70
  "jsdom": "^26.0.0",
71
- "lint-staged": "^15.5.0",
71
+ "lint-staged": "^16.1.5",
72
72
  "mdx-mermaid": "^2.0.3",
73
73
  "mermaid": "^11.5.0",
74
74
  "npm-run-all": "^4.1.5",
75
75
  "prettier": "^3.5.3",
76
- "release-it": "^18.1.2",
76
+ "release-it": "^19.0.4",
77
77
  "sass": "^1.86.0",
78
78
  "storybook": "^9.0.18",
79
79
  "typescript": "^5.7.2",
80
- "vite": "^6.2.2",
80
+ "vite": "^7.1.1",
81
81
  "vite-plugin-dts": "^4.5.3",
82
82
  "vitest": "^3.0.9",
83
83
  "vue-eslint-parser": "^10.1.1"
@@ -0,0 +1,77 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { mount } from '@vue/test-utils';
3
+ import MCircularProgressbar from './MCircularProgressbar.vue';
4
+
5
+ describe('MCircularProgressbar component', () => {
6
+ it('renders percentage type with correct value and aria attributes', () => {
7
+ const wrapper = mount(MCircularProgressbar, {
8
+ props: {
9
+ value: 75,
10
+ type: 'percentage',
11
+ },
12
+ });
13
+
14
+ expect(wrapper.find('.mc-circular-progressbar__value').text()).toBe('75');
15
+ expect(wrapper.find('.mc-circular-progressbar__unit').text()).toBe('%');
16
+
17
+ const root = wrapper.find('.mc-circular-progressbar');
18
+ expect(root.attributes('aria-valuemin')).toBe('0');
19
+ expect(root.attributes('aria-valuemax')).toBe('100');
20
+ expect(root.attributes('aria-valuenow')).toBe('75');
21
+
22
+ expect(root.attributes('style')).toContain('--progress-value: 75');
23
+ });
24
+
25
+ it('renders content type with contentValue and additionalInfo', () => {
26
+ const wrapper = mount(MCircularProgressbar, {
27
+ props: {
28
+ type: 'content',
29
+ contentValue: '999 999 €',
30
+ additionalInfo: 'additional info',
31
+ },
32
+ });
33
+
34
+ expect(wrapper.find('.mc-circular-progressbar__number').text()).toBe(
35
+ '999 999 €',
36
+ );
37
+ expect(wrapper.find('.mc-circular-progressbar__text').text()).toBe(
38
+ 'additional info',
39
+ );
40
+ });
41
+
42
+ it('renders content type without additionalInfo when not provided', () => {
43
+ const wrapper = mount(MCircularProgressbar, {
44
+ props: {
45
+ type: 'content',
46
+ contentValue: '123',
47
+ },
48
+ });
49
+
50
+ expect(wrapper.find('.mc-circular-progressbar__number').text()).toBe('123');
51
+ expect(wrapper.find('.mc-circular-progressbar__text').exists()).toBe(false);
52
+ });
53
+
54
+ it('applies size modifier class when size is not "l"', () => {
55
+ const wrapper = mount(MCircularProgressbar, {
56
+ props: {
57
+ size: 's',
58
+ },
59
+ });
60
+
61
+ expect(wrapper.classes()).toContain('mc-circular-progressbar--s');
62
+ });
63
+
64
+ it('does not apply size modifier class when size is "l" or not provided', () => {
65
+ const wrapperDefault = mount(MCircularProgressbar);
66
+ expect(wrapperDefault.classes()).not.toContain(
67
+ 'mc-circular-progressbar--l',
68
+ );
69
+
70
+ const wrapperL = mount(MCircularProgressbar, {
71
+ props: {
72
+ size: 'l',
73
+ },
74
+ });
75
+ expect(wrapperL.classes()).not.toContain('mc-circular-progressbar--l');
76
+ });
77
+ });
@@ -0,0 +1,53 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import MCircularProgressbar from './MCircularProgressbar.vue';
3
+
4
+ const meta: Meta<typeof MCircularProgressbar> = {
5
+ title: 'Indicators/Circular Progress Bar',
6
+ component: MCircularProgressbar,
7
+ parameters: {
8
+ docs: {
9
+ description: {
10
+ component:
11
+ 'A circular progress bar visually represents progress toward a goal or completion of a process using a circular shape. It is commonly used to indicate task completion or performance metrics. The progress is displayed as a partially filled ring, often accompanied by a percentage or status indicator. Circular Progress Bars are useful for providing users with real-time feedback on ongoing actions without taking up significant screen space.',
12
+ },
13
+ },
14
+ },
15
+ argTypes: {
16
+ value: {
17
+ control: { type: 'range', min: 0, max: 100 },
18
+ },
19
+ },
20
+ args: {
21
+ value: 40,
22
+ ariaLabel: 'Progress bar',
23
+ },
24
+ render: (args) => ({
25
+ components: { MCircularProgressbar },
26
+ setup() {
27
+ return { args };
28
+ },
29
+ template: `
30
+ <MCircularProgressbar v-bind="args"></MCircularProgressbar>
31
+ `,
32
+ }),
33
+ };
34
+ export default meta;
35
+ type Story = StoryObj<typeof MCircularProgressbar>;
36
+
37
+ export const Standard: Story = {};
38
+
39
+ export const SizeS: Story = {
40
+ args: { size: 'm' },
41
+ };
42
+
43
+ export const SizeM: Story = {
44
+ args: { size: 's' },
45
+ };
46
+
47
+ export const Content: Story = {
48
+ args: {
49
+ type: 'content',
50
+ contentValue: '999 999€',
51
+ additionalInfo: 'additional Info',
52
+ },
53
+ };
@@ -0,0 +1,89 @@
1
+ <template>
2
+ <div
3
+ class="mc-circular-progressbar"
4
+ :class="classObject"
5
+ role="progressbar"
6
+ :style="`--progress-value: ${value};`"
7
+ :aria-valuenow="value"
8
+ :aria-valuemin="0"
9
+ :aria-valuemax="100"
10
+ >
11
+ <svg
12
+ class="mc-circular-progressbar__line"
13
+ xmlns="http://www.w3.org/2000/svg"
14
+ aria-hidden="true"
15
+ viewBox="0 0 100 100"
16
+ >
17
+ <circle
18
+ class="mc-circular-progressbar__track"
19
+ cx="50"
20
+ cy="50"
21
+ r="46"
22
+ ></circle>
23
+ <circle
24
+ class="mc-circular-progressbar__indicator"
25
+ cx="50"
26
+ cy="50"
27
+ r="46"
28
+ ></circle>
29
+ </svg>
30
+ <div
31
+ v-if="type === 'percentage'"
32
+ class="mc-circular-progressbar__percentage"
33
+ >
34
+ <p class="mc-circular-progressbar__value">{{ value }}</p>
35
+ <p class="mc-circular-progressbar__unit">%</p>
36
+ </div>
37
+ <div v-if="type === 'content'" class="mc-circular-progressbar__content">
38
+ <p class="mc-circular-progressbar__number">{{ contentValue }}</p>
39
+ <p v-if="additionalInfo" class="mc-circular-progressbar__text">
40
+ {{ additionalInfo }}
41
+ </p>
42
+ </div>
43
+ </div>
44
+ </template>
45
+
46
+ <script setup lang="ts">
47
+ import { computed } from 'vue';
48
+ /**
49
+ * A circular progress bar visually represents progress toward a goal or completion of a process using a circular shape. It is commonly used to indicate task completion or performance metrics. The progress is displayed as a partially filled ring, often accompanied by a percentage or status indicator. Circular Progress Bars are useful for providing users with real-time feedback on ongoing actions without taking up significant screen space.
50
+ */
51
+ const props = withDefaults(
52
+ defineProps<{
53
+ /**
54
+ * Allows to define the progress bar size
55
+ */
56
+ size?: 's' | 'm' | 'l';
57
+ /**
58
+ * The current value of the progress bar.
59
+ */
60
+ value?: number;
61
+ /**
62
+ * Display type: `'percentage'` or `'content'`.
63
+ */
64
+ type?: 'percentage' | 'content';
65
+ /**
66
+ * Main content shown when `type` is `'content'`.
67
+ */
68
+ contentValue?: string;
69
+ /**
70
+ * Additional text shown to define the `contentValue`.
71
+ */
72
+ additionalInfo?: string;
73
+ }>(),
74
+ {
75
+ value: 0,
76
+ type: 'percentage',
77
+ },
78
+ );
79
+
80
+ const classObject = computed(() => {
81
+ return {
82
+ [`mc-circular-progressbar--${props.size}`]: props.size && props.size != 'l',
83
+ };
84
+ });
85
+ </script>
86
+
87
+ <style lang="scss" scoped>
88
+ @use '@mozaic-ds/styles/components/circular-progressbar';
89
+ </style>
@@ -0,0 +1,51 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { mount } from '@vue/test-utils';
3
+ import MLinearProgressbarBuffer from './MLinearProgressbarBuffer.vue';
4
+
5
+ describe('MLinearProgressbarBuffer component', () => {
6
+ it('renders correctly with default props', () => {
7
+ const wrapper = mount(MLinearProgressbarBuffer);
8
+ const indicator = wrapper.get('.mc-linear-progressbar-buffer__indicator');
9
+
10
+ expect(indicator.attributes('aria-valuenow')).toBe('0');
11
+ expect(indicator.attributes('aria-valuemin')).toBe('0');
12
+ expect(indicator.attributes('aria-valuemax')).toBe('100');
13
+ expect(indicator.attributes('role')).toBe('progressbar');
14
+ expect(indicator.attributes('style')).toContain('--progress-value: 0;');
15
+ });
16
+
17
+ it('applies the correct style based on value prop', () => {
18
+ const wrapper = mount(MLinearProgressbarBuffer, {
19
+ props: { value: 45 },
20
+ });
21
+ const indicator = wrapper.get('.mc-linear-progressbar-buffer__indicator');
22
+ expect(indicator.attributes('style')).toContain('--progress-value: 45;');
23
+ });
24
+
25
+ it('applies the correct size class for size "s"', () => {
26
+ const wrapper = mount(MLinearProgressbarBuffer, {
27
+ props: {
28
+ size: 's',
29
+ },
30
+ });
31
+ expect(wrapper.classes()).toContain('mc-linear-progressbar-buffer--s');
32
+ });
33
+
34
+ it('does not apply size class when size is "m"', () => {
35
+ const wrapper = mount(MLinearProgressbarBuffer, {
36
+ props: {
37
+ size: 'm',
38
+ },
39
+ });
40
+ expect(wrapper.classes()).not.toContain('mc-linear-progressbar-buffer--m');
41
+ });
42
+
43
+ it('applies the correct size class for size "l"', () => {
44
+ const wrapper = mount(MLinearProgressbarBuffer, {
45
+ props: {
46
+ size: 'l',
47
+ },
48
+ });
49
+ expect(wrapper.classes()).toContain('mc-linear-progressbar-buffer--l');
50
+ });
51
+ });
@@ -0,0 +1,41 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import MLinearProgressbarBuffer from './MLinearProgressbarBuffer.vue';
3
+
4
+ const meta: Meta<typeof MLinearProgressbarBuffer> = {
5
+ title: 'Indicators/Linear Progress Bar (Buffer)',
6
+ component: MLinearProgressbarBuffer,
7
+ parameters: {
8
+ docs: {
9
+ description: {
10
+ component:
11
+ 'A linear progress bar (Buffer) visually represents the progress of a task along a horizontal track, often indicating both current progress and a secondary buffered state. This type of progress bar is commonly used for loading processes, file uploads, or streaming indicators, where part of the task is completed while another portion is preloaded or buffered. It provides users with real-time feedback on task advancement.',
12
+ },
13
+ },
14
+ },
15
+ argTypes: {
16
+ value: {
17
+ control: { type: 'range', min: 0, max: 100 },
18
+ },
19
+ },
20
+ args: {
21
+ value: 40,
22
+ ariaLabel: 'Progress bar',
23
+ },
24
+ render: (args) => ({
25
+ components: { MLinearProgressbarBuffer },
26
+ setup() {
27
+ return { args };
28
+ },
29
+ template: `
30
+ <MLinearProgressbarBuffer v-bind="args"></MLinearProgressbarBuffer>
31
+ `,
32
+ }),
33
+ };
34
+ export default meta;
35
+ type Story = StoryObj<typeof MLinearProgressbarBuffer>;
36
+
37
+ export const Standard: Story = {};
38
+
39
+ export const Size: Story = {
40
+ args: { size: 's' },
41
+ };
@@ -0,0 +1,46 @@
1
+ <template>
2
+ <div class="mc-linear-progressbar-buffer" :class="classObject">
3
+ <div
4
+ class="mc-linear-progressbar-buffer__indicator"
5
+ role="progressbar"
6
+ :style="`--progress-value: ${value};`"
7
+ :aria-valuenow="value"
8
+ :aria-valuemin="0"
9
+ :aria-valuemax="100"
10
+ v-bind="$attrs"
11
+ ></div>
12
+ </div>
13
+ </template>
14
+
15
+ <script setup lang="ts">
16
+ import { computed } from 'vue';
17
+ /**
18
+ * A linear progress bar (Buffer) visually represents the progress of a task along a horizontal track, often indicating both current progress and a secondary buffered state. This type of progress bar is commonly used for loading processes, file uploads, or streaming indicators, where part of the task is completed while another portion is preloaded or buffered. It provides users with real-time feedback on task advancement.
19
+ */
20
+ const props = withDefaults(
21
+ defineProps<{
22
+ /**
23
+ * Allows to define the progress bar size
24
+ */
25
+ size?: 's' | 'm' | 'l';
26
+ /**
27
+ * The current value of the progress bar.
28
+ */
29
+ value?: number;
30
+ }>(),
31
+ {
32
+ value: 0,
33
+ },
34
+ );
35
+
36
+ const classObject = computed(() => {
37
+ return {
38
+ [`mc-linear-progressbar-buffer--${props.size}`]:
39
+ props.size && props.size != 'm',
40
+ };
41
+ });
42
+ </script>
43
+
44
+ <style lang="scss" scoped>
45
+ @use '@mozaic-ds/styles/components/linear-progressbar-buffer';
46
+ </style>
@@ -0,0 +1,62 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { mount } from '@vue/test-utils';
3
+ import MLinearProgressbarPercentage from './MLinearProgressbarPercentage.vue';
4
+
5
+ describe('MLinearProgressbarPercentage component', () => {
6
+ it('renders correctly with default props', () => {
7
+ const wrapper = mount(MLinearProgressbarPercentage);
8
+ const indicator = wrapper.get(
9
+ '.mc-linear-progressbar-percentage__indicator',
10
+ );
11
+ const label = wrapper.get('.mc-linear-progressbar-percentage__value');
12
+
13
+ expect(indicator.attributes('aria-valuenow')).toBe('0');
14
+ expect(indicator.attributes('aria-valuemin')).toBe('0');
15
+ expect(indicator.attributes('aria-valuemax')).toBe('100');
16
+ expect(indicator.attributes('role')).toBe('progressbar');
17
+
18
+ expect(indicator.attributes('style')).toContain('--progress-value: 0;');
19
+
20
+ expect(label.text()).toBe('0%');
21
+ });
22
+
23
+ it('renders with custom value', () => {
24
+ const wrapper = mount(MLinearProgressbarPercentage, {
25
+ props: {
26
+ value: 65,
27
+ },
28
+ });
29
+
30
+ const indicator = wrapper.get(
31
+ '.mc-linear-progressbar-percentage__indicator',
32
+ );
33
+ const label = wrapper.get('.mc-linear-progressbar-percentage__value');
34
+
35
+ expect(indicator.attributes('aria-valuenow')).toBe('65');
36
+ expect(indicator.attributes('style')).toContain('--progress-value: 65;');
37
+ expect(label.text()).toBe('65%');
38
+ });
39
+
40
+ it('passes extra attributes using v-bind="$attrs"', () => {
41
+ const wrapper = mount(MLinearProgressbarPercentage, {
42
+ attrs: {
43
+ 'data-testid': 'progress-indicator',
44
+ title: 'Progress',
45
+ },
46
+ });
47
+
48
+ const indicator = wrapper.get('[data-testid="progress-indicator"]');
49
+ expect(indicator.attributes('title')).toBe('Progress');
50
+ });
51
+
52
+ it('renders percentage with decimal values correctly', () => {
53
+ const wrapper = mount(MLinearProgressbarPercentage, {
54
+ props: {
55
+ value: 42.5,
56
+ },
57
+ });
58
+
59
+ const label = wrapper.get('.mc-linear-progressbar-percentage__value');
60
+ expect(label.text()).toBe('42.5%');
61
+ });
62
+ });
@@ -0,0 +1,37 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import MLinearProgressbarPercentage from './MLinearProgressbarPercentage.vue';
3
+
4
+ const meta: Meta<typeof MLinearProgressbarPercentage> = {
5
+ title: 'Indicators/Linear Progress Bar (Percentage)',
6
+ component: MLinearProgressbarPercentage,
7
+ parameters: {
8
+ docs: {
9
+ description: {
10
+ component:
11
+ 'A linear progress bar (Percentage) visually represents the completion of a task along a horizontal track, displaying the exact progress in percentage within the bar. It is commonly used for file uploads, installations, form completion, or any process requiring user awareness of progress. The percentage label provides clear and immediate feedback, helping users track progress with precision.',
12
+ },
13
+ },
14
+ },
15
+ argTypes: {
16
+ value: {
17
+ control: { type: 'range', min: 0, max: 100 },
18
+ },
19
+ },
20
+ args: {
21
+ value: 40,
22
+ ariaLabel: 'Progress bar',
23
+ },
24
+ render: (args) => ({
25
+ components: { MLinearProgressbarPercentage },
26
+ setup() {
27
+ return { args };
28
+ },
29
+ template: `
30
+ <MLinearProgressbarPercentage v-bind="args"></MLinearProgressbarPercentage>
31
+ `,
32
+ }),
33
+ };
34
+ export default meta;
35
+ type Story = StoryObj<typeof MLinearProgressbarPercentage>;
36
+
37
+ export const Standard: Story = {};
@@ -0,0 +1,41 @@
1
+ <template>
2
+ <div class="mc-linear-progressbar-percentage">
3
+ <div
4
+ class="mc-linear-progressbar-percentage__indicator"
5
+ role="progressbar"
6
+ :style="`--progress-value: ${value};`"
7
+ :aria-valuenow="value"
8
+ :aria-valuemin="0"
9
+ :aria-valuemax="100"
10
+ v-bind="$attrs"
11
+ >
12
+ <div class="mc-linear-progressbar-percentage__label">
13
+ <p class="mc-linear-progressbar-percentage__value">
14
+ {{ value
15
+ }}<span class="mc-linear-progressbar-percentage__unit">%</span>
16
+ </p>
17
+ </div>
18
+ </div>
19
+ </div>
20
+ </template>
21
+
22
+ <script setup lang="ts">
23
+ /**
24
+ * A linear progress bar (Percentage) visually represents the completion of a task along a horizontal track, displaying the exact progress in percentage within the bar. It is commonly used for file uploads, installations, form completion, or any process requiring user awareness of progress. The percentage label provides clear and immediate feedback, helping users track progress with precision.
25
+ */
26
+ withDefaults(
27
+ defineProps<{
28
+ /**
29
+ * The current value of the progress bar.
30
+ */
31
+ value?: number;
32
+ }>(),
33
+ {
34
+ value: 0,
35
+ },
36
+ );
37
+ </script>
38
+
39
+ <style lang="scss" scoped>
40
+ @use '@mozaic-ds/styles/components/linear-progressbar-percentage';
41
+ </style>
@@ -11,14 +11,14 @@ describe('MTooltip.vue', () => {
11
11
  it('renders tooltip text', () => {
12
12
  const wrapper = mount(MTooltip, {
13
13
  props: { ...defaultProps },
14
- slots: { default: 'Hover me' }
14
+ slots: { default: 'Hover me' },
15
15
  });
16
16
  expect(wrapper.text()).toContain(defaultProps.text);
17
17
  });
18
18
 
19
19
  it('sets aria-describedby attribute correctly', () => {
20
20
  const wrapper = mount(MTooltip, {
21
- props: { ...defaultProps }
21
+ props: { ...defaultProps },
22
22
  });
23
23
  const tooltipDiv = wrapper.find('.mc-tooltip');
24
24
  expect(tooltipDiv.attributes('aria-describedby')).toBe(defaultProps.id);
@@ -26,22 +26,28 @@ describe('MTooltip.vue', () => {
26
26
 
27
27
  it('applies position class based on prop', () => {
28
28
  const wrapper = mount(MTooltip, {
29
- props: { ...defaultProps, position: 'bottom' }
29
+ props: { ...defaultProps, position: 'bottom' },
30
30
  });
31
- expect(wrapper.find('.mc-tooltip').classes()).toContain('mc-tooltip--bottom');
31
+ expect(wrapper.find('.mc-tooltip').classes()).toContain(
32
+ 'mc-tooltip--bottom',
33
+ );
32
34
  });
33
35
 
34
36
  it('applies no-pointer class when pointer is false', () => {
35
37
  const wrapper = mount(MTooltip, {
36
- props: { ...defaultProps, pointer: false }
38
+ props: { ...defaultProps, pointer: false },
37
39
  });
38
- expect(wrapper.find('.mc-tooltip').classes()).toContain('mc-tooltip--no-pointer');
40
+ expect(wrapper.find('.mc-tooltip').classes()).toContain(
41
+ 'mc-tooltip--no-pointer',
42
+ );
39
43
  });
40
44
 
41
45
  it('does not apply no-pointer class when pointer is true', () => {
42
46
  const wrapper = mount(MTooltip, {
43
- props: { ...defaultProps, pointer: true }
47
+ props: { ...defaultProps, pointer: true },
44
48
  });
45
- expect(wrapper.find('.mc-tooltip').classes()).not.toContain('mc-tooltip--no-pointer');
49
+ expect(wrapper.find('.mc-tooltip').classes()).not.toContain(
50
+ 'mc-tooltip--no-pointer',
51
+ );
46
52
  });
47
53
  });
@@ -36,24 +36,24 @@ export const Default: Story = {};
36
36
 
37
37
  export const Pointer: Story = {
38
38
  args: {
39
- pointer: false
40
- }
39
+ pointer: false,
40
+ },
41
41
  };
42
42
 
43
43
  export const Right: Story = {
44
44
  args: {
45
- position: 'right'
46
- }
45
+ position: 'right',
46
+ },
47
47
  };
48
48
 
49
49
  export const Left: Story = {
50
50
  args: {
51
- position: 'left'
52
- }
51
+ position: 'left',
52
+ },
53
53
  };
54
54
 
55
55
  export const Bottom: Story = {
56
56
  args: {
57
- position: 'bottom'
58
- }
57
+ position: 'bottom',
58
+ },
59
59
  };
@@ -1,9 +1,9 @@
1
1
  <template>
2
2
  <div class="tooltip-story-wrapper">
3
3
  <div class="mc-tooltip" :class="classObject" :aria-describedby="id">
4
- <slot/>
4
+ <slot />
5
5
  <span :id="id" class="mc-tooltip__content" role="tooltip">
6
- {{ text }}
6
+ {{ text }}
7
7
  </span>
8
8
  </div>
9
9
  </div>
@@ -35,7 +35,7 @@ const props = withDefaults(
35
35
  }>(),
36
36
  {
37
37
  position: 'top',
38
- pointer: true
38
+ pointer: true,
39
39
  },
40
40
  );
41
41
 
package/src/main.ts CHANGED
@@ -2,6 +2,7 @@ export { default as MBreadcrumb } from './components/breadcrumb/MBreadcrumb.vue'
2
2
  export { default as MButton } from './components/button/MButton.vue';
3
3
  export { default as MCheckbox } from './components/checkbox/MCheckbox.vue';
4
4
  export { default as MCheckboxGroup } from './components/checkboxgroup/MCheckboxGroup.vue';
5
+ export { default as MCircularProgressbar } from './components/circularprogressbar/MCircularProgressbar.vue';
5
6
  export { default as MDatepicker } from './components/datepicker/MDatepicker.vue';
6
7
  export { default as MDivider } from './components/divider/MDivider.vue';
7
8
  export { default as MDrawer } from './components/drawer/MDrawer.vue';
@@ -18,6 +19,8 @@ export { default as MOverlay } from './components/overlay/MOverlay.vue';
18
19
  export { default as MPagination } from './components/pagination/MPagination.vue';
19
20
  export { default as MPasswordInput } from './components/passwordinput/MPasswordInput.vue';
20
21
  export { default as MPincode } from './components/pincode/MPincode.vue';
22
+ export { default as MLinearProgressbarBuffer } from './components/linearprogressbarbuffer/MLinearProgressbarBuffer.vue';
23
+ export { default as MLinearProgressbarPercentage } from './components/linearprogressbarpercentage/MLinearProgressbarPercentage.vue';
21
24
  export { default as MQuantitySelector } from './components/quantityselector/MQuantitySelector.vue';
22
25
  export { default as MRadio } from './components/radio/MRadio.vue';
23
26
  export { default as MRadioGroup } from './components/radiogroup/MRadioGroup.vue';