@dcrackel/hematournamentui 1.0.22 → 1.0.23

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 (74) hide show
  1. package/.eslintrc.js +18 -18
  2. package/.gitattributes +2 -2
  3. package/.prettierignore +1 -1
  4. package/.storybook/main.js +18 -18
  5. package/.storybook/mockRoutes.js +9 -9
  6. package/.storybook/preview-head.html +3 -3
  7. package/.storybook/preview.js +17 -17
  8. package/LICENSE +21 -21
  9. package/README.md +83 -83
  10. package/dist/HemaTouranmentUI-lib.es.js +7060 -6920
  11. package/dist/HemaTouranmentUI-lib.umd.js +27 -27
  12. package/dist/style.css +1 -1
  13. package/index.html +12 -12
  14. package/package.json +58 -58
  15. package/postcss.config.js +6 -6
  16. package/prettier.config.js +10 -10
  17. package/src/index.js +25 -25
  18. package/src/main.js +2 -2
  19. package/src/mocks/fileMock.js +1 -1
  20. package/src/mocks/tournamentMock.js +34 -34
  21. package/src/stories/Atoms/Icon/BaseIcon.stories.js +54 -54
  22. package/src/stories/Atoms/Icon/BaseIcon.test.js +91 -91
  23. package/src/stories/Atoms/Icon/BaseIcon.vue +48 -48
  24. package/src/stories/Atoms/Input/BaseInput.stories.js +29 -28
  25. package/src/stories/Atoms/Input/BaseInput.test.js +87 -87
  26. package/src/stories/Atoms/Input/BaseInput.vue +85 -73
  27. package/src/stories/Atoms/RadioGroup/BaseRadioGroup.stories.js +31 -31
  28. package/src/stories/Atoms/RadioGroup/BaseRadioGroup.test.js +49 -49
  29. package/src/stories/Atoms/RadioGroup/BaseRadioGroup.vue +49 -49
  30. package/src/stories/Atoms/Tag/BaseTag.stories.js +29 -29
  31. package/src/stories/Atoms/Tag/BaseTag.test.js +42 -42
  32. package/src/stories/Atoms/Tag/BaseTag.vue +57 -57
  33. package/src/stories/Atoms/Text/BaseText.stories.js +77 -77
  34. package/src/stories/Atoms/Text/BaseText.test.js +172 -172
  35. package/src/stories/Atoms/Text/BaseText.vue +170 -170
  36. package/src/stories/Configure.mdx +320 -320
  37. package/src/stories/Molecules/Breadcrumb/Admin/Breadcrumb.stories.js +41 -41
  38. package/src/stories/Molecules/Breadcrumb/Admin/Breadcrumb.test.js +80 -80
  39. package/src/stories/Molecules/Breadcrumb/Admin/Breadcrumb.vue +31 -31
  40. package/src/stories/Molecules/Button/BaseButton.stories.js +93 -76
  41. package/src/stories/Molecules/Button/BaseButton.test.js +147 -147
  42. package/src/stories/Molecules/Button/BaseButton.vue +116 -125
  43. package/src/stories/Molecules/Cards/Detail/TournamentCardDetail.stories.js +33 -33
  44. package/src/stories/Molecules/Cards/Detail/TournamentCardDetail.vue +38 -38
  45. package/src/stories/Molecules/Cards/Header/TournamentCardHeader.stories.js +48 -48
  46. package/src/stories/Molecules/Cards/Header/TournamentCardHeader.vue +40 -40
  47. package/src/stories/Molecules/Filters/FilterAndSortBar/FilterAndSortBar.stories.js +36 -36
  48. package/src/stories/Molecules/Filters/FilterAndSortBar/FilterAndSortBar.vue +49 -49
  49. package/src/stories/Molecules/Filters/FilterUpcomingPast/FilterUpcomingPast.stories.js +32 -32
  50. package/src/stories/Molecules/Filters/FilterUpcomingPast/FilterUpcomingPast.vue +46 -46
  51. package/src/stories/Organisms/AddressAutocomplete/AddressAutocomplete.stories.js +25 -25
  52. package/src/stories/Organisms/AddressAutocomplete/AddressAutocomplete.vue +51 -51
  53. package/src/stories/Organisms/DatePicker/DatePicker.stories.js +25 -25
  54. package/src/stories/Organisms/DatePicker/DatePicker.vue +62 -62
  55. package/src/stories/Organisms/DropDown/DropDownMenu.stories.js +34 -34
  56. package/src/stories/Organisms/DropDown/DropDownMenu.vue +51 -51
  57. package/src/stories/Organisms/Grid/GridContainer.stories.js +47 -47
  58. package/src/stories/Organisms/Grid/GridContainer.vue +108 -108
  59. package/src/stories/Organisms/ImageCropper/ImageCropper.stories.js +28 -28
  60. package/src/stories/Organisms/ImageCropper/ImageCropper.vue +86 -86
  61. package/src/stories/Organisms/TextBoxEditor/TextBoxEditor.stories.js +28 -28
  62. package/src/stories/Organisms/TextBoxEditor/TextBoxEditor.vue +97 -97
  63. package/src/stories/Organisms/TournamentCard/TournamentCard.stories.js +37 -37
  64. package/src/stories/Organisms/TournamentCard/TournamentCard.vue +35 -35
  65. package/src/stories/Templates/Forms/AddTournamentPageOne/AddTournamentPageOne.stories.js +25 -25
  66. package/src/stories/Templates/Forms/AddTournamentPageOne/AddTournamentPageOne.vue +138 -137
  67. package/src/stories/Templates/Forms/AddTournamentPageTwo/AddTournamentPageTwo.stories.js +35 -0
  68. package/src/stories/Templates/Forms/AddTournamentPageTwo/AddTournamentPageTwo.vue +121 -0
  69. package/src/stories/Templates/Menu/Admin/AdminLeftMenu.stories.js +28 -28
  70. package/src/stories/Templates/Menu/Admin/AdminLeftMenu.vue +57 -57
  71. package/tailwind/output.css +1247 -1212
  72. package/tailwind/tailwind.css +4 -4
  73. package/tailwind.config.js +50 -50
  74. package/vite.config.js +23 -23
@@ -1,57 +1,57 @@
1
- <template>
2
- <div :class="classes">{{ label }}</div>
3
- </template>
4
-
5
- <script>
6
- import { computed, reactive } from 'vue';
7
-
8
- export default {
9
- name: 'base-tag',
10
-
11
- props: {
12
- label: {
13
- type: String,
14
- required: true
15
- },
16
- backgroundColor: {
17
- type: String,
18
- validator: function (value) {
19
- return ['primary', 'secondary', 'tertiary', 'neutral', 'bright'].indexOf(value) !== -1;
20
- }
21
- }
22
- },
23
-
24
- setup(props) {
25
- props = reactive(props);
26
-
27
- return {
28
- classes: computed(() => {
29
- let baseClasses = 'cursor-pointer inline-block py-1 px-3 my-2 ml-3 text-xs font-normal rounded-full text-neutral';
30
-
31
- switch (props.backgroundColor) {
32
- case 'primary':
33
- baseClasses += ' bg-primary';
34
- break;
35
- case 'secondary':
36
- baseClasses += ' bg-secondary';
37
- break;
38
- case 'tertiary':
39
- baseClasses += ' bg-tertiary';
40
- break;
41
- case 'neutral':
42
- baseClasses += ' bg-neutral';
43
- break;
44
- case 'bright':
45
- baseClasses += ' bg-bright';
46
- break;
47
- default:
48
- baseClasses += ' bg-primary';
49
- break;
50
- }
51
-
52
- return baseClasses;
53
- })
54
- };
55
- }
56
- };
57
- </script>
1
+ <template>
2
+ <div :class="classes">{{ label }}</div>
3
+ </template>
4
+
5
+ <script>
6
+ import { computed, reactive } from 'vue';
7
+
8
+ export default {
9
+ name: 'base-tag',
10
+
11
+ props: {
12
+ label: {
13
+ type: String,
14
+ required: true
15
+ },
16
+ backgroundColor: {
17
+ type: String,
18
+ validator: function (value) {
19
+ return ['primary', 'secondary', 'tertiary', 'neutral', 'bright'].indexOf(value) !== -1;
20
+ }
21
+ }
22
+ },
23
+
24
+ setup(props) {
25
+ props = reactive(props);
26
+
27
+ return {
28
+ classes: computed(() => {
29
+ let baseClasses = 'cursor-pointer inline-block py-1 px-3 my-2 ml-3 text-xs font-normal rounded-full text-neutral';
30
+
31
+ switch (props.backgroundColor) {
32
+ case 'primary':
33
+ baseClasses += ' bg-primary';
34
+ break;
35
+ case 'secondary':
36
+ baseClasses += ' bg-secondary';
37
+ break;
38
+ case 'tertiary':
39
+ baseClasses += ' bg-tertiary';
40
+ break;
41
+ case 'neutral':
42
+ baseClasses += ' bg-neutral';
43
+ break;
44
+ case 'bright':
45
+ baseClasses += ' bg-bright';
46
+ break;
47
+ default:
48
+ baseClasses += ' bg-primary';
49
+ break;
50
+ }
51
+
52
+ return baseClasses;
53
+ })
54
+ };
55
+ }
56
+ };
57
+ </script>
@@ -1,77 +1,77 @@
1
- import BaseText from './BaseText.vue';
2
- export default {
3
- title: 'Atoms/BaseText',
4
- component: BaseText,
5
- tags: ['autodocs'],
6
- argTypes: {
7
- text: {
8
- control: {
9
- type: 'text',
10
- defaultValue: 'Default Text'
11
- }
12
- },
13
- size: {
14
- control: {
15
- type: 'select'
16
- },
17
- options: ['xs', 'small', 'medium', 'large', 'xl', '2xl', '3xl'],
18
- defaultValue: 'medium'
19
- },
20
- weight: {
21
- control: {
22
- type: 'select'
23
- },
24
- options: ['light', 'normal', 'medium', 'semi-bold', 'bold', 'extra-bold'],
25
- defaultValue: 'normal'
26
- },
27
- color: {
28
- control: {
29
- type: 'select'
30
- },
31
- options: ['neutral', 'quaternary', 'tertiary', 'secondary', 'primary', 'bright'],
32
- defaultValue: 'primary'
33
- },
34
- hoverColor: {
35
- control: {
36
- type: 'select'
37
- },
38
- options: [
39
- 'primary',
40
- 'quaternary',
41
- 'secondary',
42
- 'tertiary',
43
- 'neutral',
44
- 'bright',
45
- 'none'
46
- ],
47
- defaultValue: 'none'
48
- }
49
- }
50
- };
51
-
52
- export const Large = {
53
- args: {
54
- size: 'large',
55
- text: 'Large Text'
56
- }
57
- };
58
-
59
- export const Medium = {
60
- args: {
61
- size: 'medium',
62
- text: 'Medium Text'
63
- }
64
- };
65
- export const Small = {
66
- args: {
67
- size: 'small',
68
- text: 'Small Text'
69
- }
70
- };
71
-
72
- export const TextWithHover = {
73
- args: {
74
- ...Large.args,
75
- hoverColor: 'bright'
76
- }
77
- };
1
+ import BaseText from './BaseText.vue';
2
+ export default {
3
+ title: 'Atoms/BaseText',
4
+ component: BaseText,
5
+ tags: ['autodocs'],
6
+ argTypes: {
7
+ text: {
8
+ control: {
9
+ type: 'text',
10
+ defaultValue: 'Default Text'
11
+ }
12
+ },
13
+ size: {
14
+ control: {
15
+ type: 'select'
16
+ },
17
+ options: ['xs', 'small', 'medium', 'large', 'xl', '2xl', '3xl'],
18
+ defaultValue: 'medium'
19
+ },
20
+ weight: {
21
+ control: {
22
+ type: 'select'
23
+ },
24
+ options: ['light', 'normal', 'medium', 'semi-bold', 'bold', 'extra-bold'],
25
+ defaultValue: 'normal'
26
+ },
27
+ color: {
28
+ control: {
29
+ type: 'select'
30
+ },
31
+ options: ['neutral', 'quaternary', 'tertiary', 'secondary', 'primary', 'bright'],
32
+ defaultValue: 'primary'
33
+ },
34
+ hoverColor: {
35
+ control: {
36
+ type: 'select'
37
+ },
38
+ options: [
39
+ 'primary',
40
+ 'quaternary',
41
+ 'secondary',
42
+ 'tertiary',
43
+ 'neutral',
44
+ 'bright',
45
+ 'none'
46
+ ],
47
+ defaultValue: 'none'
48
+ }
49
+ }
50
+ };
51
+
52
+ export const Large = {
53
+ args: {
54
+ size: 'large',
55
+ text: 'Large Text'
56
+ }
57
+ };
58
+
59
+ export const Medium = {
60
+ args: {
61
+ size: 'medium',
62
+ text: 'Medium Text'
63
+ }
64
+ };
65
+ export const Small = {
66
+ args: {
67
+ size: 'small',
68
+ text: 'Small Text'
69
+ }
70
+ };
71
+
72
+ export const TextWithHover = {
73
+ args: {
74
+ ...Large.args,
75
+ hoverColor: 'bright'
76
+ }
77
+ };
@@ -1,172 +1,172 @@
1
- import {mount} from "@vue/test-utils";
2
- import {describe, expect, test, it} from "vitest";
3
- import BaseText from './BaseText.vue';
4
-
5
- describe('BaseText.vue', () => {
6
- it('renders correctly with default props', () => {
7
- const wrapper = mount(BaseText, {
8
- props: {text: 'Test Text'}
9
- });
10
- expect(wrapper.text()).toBe('Test Text');
11
- expect(wrapper.classes()).toContain('text-sm');
12
- expect(wrapper.classes()).toContain('font-normal');
13
- expect(wrapper.classes()).toContain('text-primary');
14
- });
15
-
16
- it('renders text, size, weight, and color based on props', () => {
17
- const wrapper = mount(BaseText, {
18
- props: {
19
- text: 'Styled Text',
20
- size: 'xl',
21
- weight: 'bold',
22
- color: 'secondary'
23
- }
24
- });
25
- expect(wrapper.text()).toBe('Styled Text');
26
- expect(wrapper.classes()).toContain('text-xl');
27
- expect(wrapper.classes()).toContain('font-bold');
28
- expect(wrapper.classes()).toContain('text-secondary');
29
- });
30
-
31
- it('computes classes based on multiple props', () => {
32
- const wrapper = mount(BaseText, {
33
- props: {
34
- text: 'Complex Styled Text',
35
- size: '2xl',
36
- weight: 'extra-bold',
37
- color: 'bright',
38
- hoverColor: 'tertiary'
39
- }
40
- });
41
- expect(wrapper.classes()).toContain('text-2xl');
42
- expect(wrapper.classes()).toContain('font-extrabold');
43
- expect(wrapper.classes()).toContain('text-bright');
44
- expect(wrapper.classes()).toContain('hover:text-tertiary');
45
- });
46
-
47
- it('computes classes for hover primary', () => {
48
- const wrapper = mount(BaseText, {
49
- props: {
50
- text: 'Complex Styled Text',
51
- size: 'xs',
52
- hoverColor: 'primary',
53
- weight: 'light',
54
- color: 'neutral'
55
- }
56
- });
57
-
58
- expect(wrapper.classes()).toContain('text-xs');
59
- expect(wrapper.classes()).toContain('font-light');
60
- expect(wrapper.classes()).toContain('text-neutral');
61
- expect(wrapper.classes()).toContain('hover:text-primary');
62
- });
63
-
64
- it('computes classes for hover secondary', () => {
65
- const wrapper = mount(BaseText, {
66
- props: {
67
- text: 'Complex Styled Text',
68
- size: 'md',
69
- hoverColor: 'secondary',
70
- weight: 'medium',
71
- color: 'tertiary'
72
- }
73
- });
74
-
75
- expect(wrapper.classes()).toContain('text-tertiary');
76
- expect(wrapper.classes()).toContain('text-md');
77
- expect(wrapper.classes()).toContain('font-medium');
78
- expect(wrapper.classes()).toContain('hover:text-secondary');
79
- });
80
-
81
- it('computes classes for hover tertiary', () => {
82
- const wrapper = mount(BaseText, {
83
- props: {
84
- text: 'Complex Styled Text',
85
- size: 'lg',
86
- hoverColor: 'tertiary',
87
- weight: 'light',
88
- color: 'tertiary'
89
- }
90
- });
91
- expect(wrapper.classes()).toContain('text-tertiary');
92
- expect(wrapper.classes()).toContain('text-lg');
93
- expect(wrapper.classes()).toContain('font-light');
94
- expect(wrapper.classes()).toContain('hover:text-tertiary');
95
- });
96
-
97
- it('computes classes for hover quaternary', () => {
98
- const wrapper = mount(BaseText, {
99
- props: {
100
- text: 'Complex Styled Text',
101
- weight: 'semi-bold',
102
- size: '3xl',
103
- hoverColor: 'quaternary',
104
- color: 'quaternary'
105
- }
106
- });
107
- expect(wrapper.classes()).toContain('text-quaternary');
108
- expect(wrapper.classes()).toContain('text-3xl');
109
- expect(wrapper.classes()).toContain('font-semibold');
110
- expect(wrapper.classes()).toContain('hover:text-quaternary');
111
- });
112
-
113
- it('computes classes for hover neutral', () => {
114
- const wrapper = mount(BaseText, {
115
- props: {
116
- text: 'Complex Styled Text',
117
- hoverColor: 'neutral',
118
- size: 'xs',
119
- color: 'primary'
120
- }
121
- });
122
- expect(wrapper.classes()).toContain('text-primary');
123
- expect(wrapper.classes()).toContain('text-xs');
124
- expect(wrapper.classes()).toContain('font-normal');
125
- expect(wrapper.classes()).toContain('hover:text-neutral');
126
- });
127
-
128
- it('computes classes for hover neutral', () => {
129
- const wrapper = mount(BaseText, {
130
- props: {
131
- text: 'Complex Styled Text',
132
- hoverColor: 'bright',
133
- color: 'primaryHighlight'
134
- }
135
- });
136
- expect(wrapper.classes()).toContain('hover:text-bright');
137
- expect(wrapper.classes()).toContain('text-primaryHighlight');
138
- });
139
-
140
- it('computes classes for hover neutral', () => {
141
- const wrapper = mount(BaseText, {
142
- props: {
143
- text: 'Complex Styled Text',
144
- hoverColor: 'none'
145
- }
146
- });
147
- const hasHoverClass = wrapper.classes().some(className => className.startsWith('hover:'));
148
- expect(hasHoverClass).toBeFalsy();
149
- });
150
-
151
- it('applies text-alarmText class when color is alarm', () => {
152
- const wrapper = mount(BaseText, {
153
- props: {
154
- text: 'Alarm Text',
155
- color: 'alarm'
156
- }
157
- });
158
- expect(wrapper.classes()).toContain('text-alarmText');
159
- });
160
-
161
- it('applies text-alarm class when invalid is true', () => {
162
- const wrapper = mount(BaseText, {
163
- props: {
164
- text: 'Invalid Text',
165
- invalid: true
166
- }
167
- });
168
- expect(wrapper.classes()).toContain('text-alarm');
169
- });
170
-
171
- });
172
-
1
+ import {mount} from "@vue/test-utils";
2
+ import {describe, expect, test, it} from "vitest";
3
+ import BaseText from './BaseText.vue';
4
+
5
+ describe('BaseText.vue', () => {
6
+ it('renders correctly with default props', () => {
7
+ const wrapper = mount(BaseText, {
8
+ props: {text: 'Test Text'}
9
+ });
10
+ expect(wrapper.text()).toBe('Test Text');
11
+ expect(wrapper.classes()).toContain('text-sm');
12
+ expect(wrapper.classes()).toContain('font-normal');
13
+ expect(wrapper.classes()).toContain('text-primary');
14
+ });
15
+
16
+ it('renders text, size, weight, and color based on props', () => {
17
+ const wrapper = mount(BaseText, {
18
+ props: {
19
+ text: 'Styled Text',
20
+ size: 'xl',
21
+ weight: 'bold',
22
+ color: 'secondary'
23
+ }
24
+ });
25
+ expect(wrapper.text()).toBe('Styled Text');
26
+ expect(wrapper.classes()).toContain('text-xl');
27
+ expect(wrapper.classes()).toContain('font-bold');
28
+ expect(wrapper.classes()).toContain('text-secondary');
29
+ });
30
+
31
+ it('computes classes based on multiple props', () => {
32
+ const wrapper = mount(BaseText, {
33
+ props: {
34
+ text: 'Complex Styled Text',
35
+ size: '2xl',
36
+ weight: 'extra-bold',
37
+ color: 'bright',
38
+ hoverColor: 'tertiary'
39
+ }
40
+ });
41
+ expect(wrapper.classes()).toContain('text-2xl');
42
+ expect(wrapper.classes()).toContain('font-extrabold');
43
+ expect(wrapper.classes()).toContain('text-bright');
44
+ expect(wrapper.classes()).toContain('hover:text-tertiary');
45
+ });
46
+
47
+ it('computes classes for hover primary', () => {
48
+ const wrapper = mount(BaseText, {
49
+ props: {
50
+ text: 'Complex Styled Text',
51
+ size: 'xs',
52
+ hoverColor: 'primary',
53
+ weight: 'light',
54
+ color: 'neutral'
55
+ }
56
+ });
57
+
58
+ expect(wrapper.classes()).toContain('text-xs');
59
+ expect(wrapper.classes()).toContain('font-light');
60
+ expect(wrapper.classes()).toContain('text-neutral');
61
+ expect(wrapper.classes()).toContain('hover:text-primary');
62
+ });
63
+
64
+ it('computes classes for hover secondary', () => {
65
+ const wrapper = mount(BaseText, {
66
+ props: {
67
+ text: 'Complex Styled Text',
68
+ size: 'md',
69
+ hoverColor: 'secondary',
70
+ weight: 'medium',
71
+ color: 'tertiary'
72
+ }
73
+ });
74
+
75
+ expect(wrapper.classes()).toContain('text-tertiary');
76
+ expect(wrapper.classes()).toContain('text-md');
77
+ expect(wrapper.classes()).toContain('font-medium');
78
+ expect(wrapper.classes()).toContain('hover:text-secondary');
79
+ });
80
+
81
+ it('computes classes for hover tertiary', () => {
82
+ const wrapper = mount(BaseText, {
83
+ props: {
84
+ text: 'Complex Styled Text',
85
+ size: 'lg',
86
+ hoverColor: 'tertiary',
87
+ weight: 'light',
88
+ color: 'tertiary'
89
+ }
90
+ });
91
+ expect(wrapper.classes()).toContain('text-tertiary');
92
+ expect(wrapper.classes()).toContain('text-lg');
93
+ expect(wrapper.classes()).toContain('font-light');
94
+ expect(wrapper.classes()).toContain('hover:text-tertiary');
95
+ });
96
+
97
+ it('computes classes for hover quaternary', () => {
98
+ const wrapper = mount(BaseText, {
99
+ props: {
100
+ text: 'Complex Styled Text',
101
+ weight: 'semi-bold',
102
+ size: '3xl',
103
+ hoverColor: 'quaternary',
104
+ color: 'quaternary'
105
+ }
106
+ });
107
+ expect(wrapper.classes()).toContain('text-quaternary');
108
+ expect(wrapper.classes()).toContain('text-3xl');
109
+ expect(wrapper.classes()).toContain('font-semibold');
110
+ expect(wrapper.classes()).toContain('hover:text-quaternary');
111
+ });
112
+
113
+ it('computes classes for hover neutral', () => {
114
+ const wrapper = mount(BaseText, {
115
+ props: {
116
+ text: 'Complex Styled Text',
117
+ hoverColor: 'neutral',
118
+ size: 'xs',
119
+ color: 'primary'
120
+ }
121
+ });
122
+ expect(wrapper.classes()).toContain('text-primary');
123
+ expect(wrapper.classes()).toContain('text-xs');
124
+ expect(wrapper.classes()).toContain('font-normal');
125
+ expect(wrapper.classes()).toContain('hover:text-neutral');
126
+ });
127
+
128
+ it('computes classes for hover neutral', () => {
129
+ const wrapper = mount(BaseText, {
130
+ props: {
131
+ text: 'Complex Styled Text',
132
+ hoverColor: 'bright',
133
+ color: 'primaryHighlight'
134
+ }
135
+ });
136
+ expect(wrapper.classes()).toContain('hover:text-bright');
137
+ expect(wrapper.classes()).toContain('text-primaryHighlight');
138
+ });
139
+
140
+ it('computes classes for hover neutral', () => {
141
+ const wrapper = mount(BaseText, {
142
+ props: {
143
+ text: 'Complex Styled Text',
144
+ hoverColor: 'none'
145
+ }
146
+ });
147
+ const hasHoverClass = wrapper.classes().some(className => className.startsWith('hover:'));
148
+ expect(hasHoverClass).toBeFalsy();
149
+ });
150
+
151
+ it('applies text-alarmText class when color is alarm', () => {
152
+ const wrapper = mount(BaseText, {
153
+ props: {
154
+ text: 'Alarm Text',
155
+ color: 'alarm'
156
+ }
157
+ });
158
+ expect(wrapper.classes()).toContain('text-alarmText');
159
+ });
160
+
161
+ it('applies text-alarm class when invalid is true', () => {
162
+ const wrapper = mount(BaseText, {
163
+ props: {
164
+ text: 'Invalid Text',
165
+ invalid: true
166
+ }
167
+ });
168
+ expect(wrapper.classes()).toContain('text-alarm');
169
+ });
170
+
171
+ });
172
+