@weni/unnnic-system 3.9.3 → 3.9.4-alpha.2

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 (258) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/assets/tokens/colors.json.d.ts +376 -0
  3. package/dist/components/Accordion/Accordion.vue.d.ts +1 -1
  4. package/dist/components/Alert/Alert.vue.d.ts +17 -116
  5. package/dist/components/Alert/Alert.vue.d.ts.map +1 -1
  6. package/dist/components/Alert/Version1dot1.vue.d.ts +2 -38
  7. package/dist/components/Alert/Version1dot1.vue.d.ts.map +1 -1
  8. package/dist/components/AudioRecorder/AudioHandler.vue.d.ts +2 -2
  9. package/dist/components/AudioRecorder/AudioPlayer.vue.d.ts +1 -1
  10. package/dist/components/AudioRecorder/AudioRecorder.vue.d.ts +5 -5
  11. package/dist/components/AvatarIcon/AvatarIcon.vue.d.ts +3 -3
  12. package/dist/components/Banner/Banner.vue.d.ts +1 -1
  13. package/dist/components/Banner/InfoBanner.vue.d.ts +1 -1
  14. package/dist/components/Breadcrumb/Breadcrumb.vue.d.ts +1 -1
  15. package/dist/components/Button/Button.vue.d.ts +1 -1
  16. package/dist/components/Button/Button.vue.d.ts.map +1 -1
  17. package/dist/components/Button/ButtonIcon.vue.d.ts +1 -1
  18. package/dist/components/Button/types.d.ts +1 -1
  19. package/dist/components/Button/types.d.ts.map +1 -1
  20. package/dist/components/Card/AccountCard.vue.d.ts +5 -5
  21. package/dist/components/Card/BlankCard.vue.d.ts +1 -1
  22. package/dist/components/Card/Card.vue.d.ts +27 -27
  23. package/dist/components/Card/CardCompany.vue.d.ts +11 -414
  24. package/dist/components/Card/CardData.vue.d.ts +1 -1
  25. package/dist/components/Card/CardStatusesContainer.vue.d.ts +5 -5
  26. package/dist/components/Card/ContentCard.vue.d.ts +3 -3
  27. package/dist/components/Card/DashCard.vue.d.ts +5 -5
  28. package/dist/components/Card/DefaultCard.vue.d.ts +1 -1
  29. package/dist/components/Card/MarketplaceCard.vue.d.ts +2 -2
  30. package/dist/components/Card/MarketplaceCard.vue.d.ts.map +1 -1
  31. package/dist/components/Card/SimpleCard.vue.d.ts +3 -3
  32. package/dist/components/Card/StatusCard.vue.d.ts +2 -2
  33. package/dist/components/Card/TitleCard.vue.d.ts +3 -3
  34. package/dist/components/CardImage/CardImage.vue.d.ts +24 -31
  35. package/dist/components/CardInformation/CardInformation.vue.d.ts +5 -5
  36. package/dist/components/CardProject/CardProject.vue.d.ts +3 -3
  37. package/dist/components/Carousel/Carousel.vue.d.ts +13 -416
  38. package/dist/components/Carousel/TagCarousel.vue.d.ts +12 -415
  39. package/dist/components/ChartBar/ChartBar.vue.d.ts +5 -5
  40. package/dist/components/ChartLine/ChartLine.vue.d.ts +1 -1
  41. package/dist/components/ChatText/ChatText.vue.d.ts +2 -2
  42. package/dist/components/ChatsContact/ChatsContact.vue.d.ts +21 -446
  43. package/dist/components/ChatsDashboardTagLive/ChatsDashboardTagLive.vue.d.ts +1 -1
  44. package/dist/components/ChatsHeader/ChatsHeader.vue.d.ts +1 -1
  45. package/dist/components/ChatsHeader/ChatsHeader.vue.d.ts.map +1 -1
  46. package/dist/components/ChatsMessage/ChatsMessage.vue.d.ts +5 -5
  47. package/dist/components/ChatsMessage/ChatsMessageStatusBackdrop.vue.d.ts +2 -2
  48. package/dist/components/ChatsNavbar/ChatsNavbar.vue.d.ts +1 -1
  49. package/dist/components/ChatsUserAvatar/ChatsUserAvatar.vue.d.ts +2 -2
  50. package/dist/components/Checkbox/Checkbox.vue.d.ts +19 -26
  51. package/dist/components/Checkbox/Checkbox.vue.d.ts.map +1 -1
  52. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts +28 -0
  53. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts.map +1 -0
  54. package/dist/components/Comment/Comment.vue.d.ts +1 -1
  55. package/dist/components/DataArea/DataArea.vue.d.ts +2 -2
  56. package/dist/components/DataTable/index.vue.d.ts +1 -1
  57. package/dist/components/DataTable/index.vue.d.ts.map +1 -1
  58. package/dist/components/DateFilter/DateFilter.vue.d.ts +251 -41
  59. package/dist/components/DatePicker/DatePicker.vue.d.ts +4 -4
  60. package/dist/components/Drawer/Drawer.vue.d.ts +4 -4
  61. package/dist/components/Dropdown/Dropdown.vue.d.ts +1 -1
  62. package/dist/components/Dropdown/LanguageSelect.vue.d.ts +3 -3
  63. package/dist/components/Flag.vue.d.ts +2 -2
  64. package/dist/components/FormElement/FormElement.vue.d.ts +51 -28
  65. package/dist/components/FormElement/FormElement.vue.d.ts.map +1 -1
  66. package/dist/components/Icon.vue.d.ts +1 -1
  67. package/dist/components/Icon.vue.d.ts.map +1 -1
  68. package/dist/components/IconLoading/IconLoading.vue.d.ts +1 -1
  69. package/dist/components/ImportCard/ImportCard.vue.d.ts +4 -4
  70. package/dist/components/Input/BaseInput.vue.d.ts +33 -2
  71. package/dist/components/Input/BaseInput.vue.d.ts.map +1 -1
  72. package/dist/components/Input/Input.vue.d.ts +251 -41
  73. package/dist/components/Input/Input.vue.d.ts.map +1 -1
  74. package/dist/components/Input/TextInput.vue.d.ts +85 -25
  75. package/dist/components/Input/TextInput.vue.d.ts.map +1 -1
  76. package/dist/components/InputDatePicker/InputDatePicker.vue.d.ts +256 -46
  77. package/dist/components/InputNext/InputNext.vue.d.ts +5 -5
  78. package/dist/components/Label/Label.vue.d.ts +9 -15
  79. package/dist/components/Label/Label.vue.d.ts.map +1 -1
  80. package/dist/components/Modal/Modal.vue.d.ts +2 -2
  81. package/dist/components/ModalDialog/ModalDialog.vue.d.ts +6 -6
  82. package/dist/components/ModalNext/ModalNext.vue.d.ts +256 -46
  83. package/dist/components/ModalUpload/ModalUpload.vue.d.ts +9 -9
  84. package/dist/components/MoodRating/MoodRating.vue.d.ts +1 -1
  85. package/dist/components/MultiSelect/MultiSelect.vue.d.ts +26 -14
  86. package/dist/components/PageHeader/PageHeader.vue.d.ts +28 -0
  87. package/dist/components/PageHeader/PageHeader.vue.d.ts.map +1 -0
  88. package/dist/components/PageHeader/index.d.ts +3 -0
  89. package/dist/components/PageHeader/index.d.ts.map +1 -0
  90. package/dist/components/PageHeader/types.d.ts +9 -0
  91. package/dist/components/PageHeader/types.d.ts.map +1 -0
  92. package/dist/components/Pagination/Pagination.vue.d.ts +3 -3
  93. package/dist/components/ProgressBar/ProgressBar.vue.d.ts +1 -1
  94. package/dist/components/Radio/Radio.vue.d.ts +10 -6
  95. package/dist/components/Radio/Radio.vue.d.ts.map +1 -1
  96. package/dist/components/SelectSmart/SelectSmart.vue.d.ts +120 -470
  97. package/dist/components/SelectSmart/SelectSmartMultipleHeader.vue.d.ts +11 -414
  98. package/dist/components/SelectSmart/SelectSmartOption.vue.d.ts +21 -28
  99. package/dist/components/SelectSmart/SelectSmartOption.vue.d.ts.map +1 -1
  100. package/dist/components/SelectTime/index.vue.d.ts +85 -25
  101. package/dist/components/SkeletonLoading/skeletonTheme.vue.d.ts +1 -1
  102. package/dist/components/Slider/Slider.vue.d.ts +2 -2
  103. package/dist/components/StarRating/StarRating.vue.d.ts +1 -1
  104. package/dist/components/Switch/Switch.vue.d.ts +55 -21
  105. package/dist/components/Switch/Switch.vue.d.ts.map +1 -1
  106. package/dist/components/Tab/Tab.vue.d.ts +13 -2
  107. package/dist/components/TableNext/TableBodyCell.vue.d.ts +2 -2
  108. package/dist/components/TableNext/TablePagination.vue.d.ts +3 -3
  109. package/dist/components/TabsExpanded/TabsExpanded.vue.d.ts +1 -1
  110. package/dist/components/Tag/DefaultTag.vue.d.ts +4 -83
  111. package/dist/components/Tag/DefaultTag.vue.d.ts.map +1 -1
  112. package/dist/components/Tag/Tag.vue.d.ts +12 -414
  113. package/dist/components/Tag/Tag.vue.d.ts.map +1 -1
  114. package/dist/components/Tag/types.d.ts +18 -0
  115. package/dist/components/Tag/types.d.ts.map +1 -0
  116. package/dist/components/TextArea/TextArea.vue.d.ts +78 -33
  117. package/dist/components/TextArea/TextArea.vue.d.ts.map +1 -1
  118. package/dist/components/Toast/Toast.vue.d.ts +16 -0
  119. package/dist/components/Toast/Toast.vue.d.ts.map +1 -0
  120. package/dist/components/Toast/ToastManager.d.ts +14 -0
  121. package/dist/components/Toast/ToastManager.d.ts.map +1 -0
  122. package/dist/components/Toast/types.d.ts +35 -0
  123. package/dist/components/Toast/types.d.ts.map +1 -0
  124. package/dist/components/ToolTip/ToolTip.vue.d.ts +1 -1
  125. package/dist/components/Tour/Tour.vue.d.ts +3 -3
  126. package/dist/components/Tour/TourPopover.vue.d.ts +3 -3
  127. package/dist/components/UploadArea/UploadArea.vue.d.ts +4 -4
  128. package/dist/components/index.d.ts +8861 -10223
  129. package/dist/components/index.d.ts.map +1 -1
  130. package/dist/components/ui/popover/PopoverContent.vue.d.ts +1 -1
  131. package/dist/components/ui/popover/PopoverContent.vue.d.ts.map +1 -1
  132. package/dist/{es-8146fb1b.mjs → es-676f604b.mjs} +1 -1
  133. package/dist/{index-724ed422.mjs → index-5b33c9af.mjs} +9356 -8814
  134. package/dist/locales/en.json.d.ts +2 -1
  135. package/dist/locales/es.json.d.ts +2 -1
  136. package/dist/locales/pt_br.json.d.ts +2 -1
  137. package/dist/{pt-br-af294ec9.mjs → pt-br-85e5dce9.mjs} +1 -1
  138. package/dist/style.css +1 -1
  139. package/dist/unnnic.mjs +181 -173
  140. package/dist/unnnic.umd.js +35 -36
  141. package/dist/utils/call.d.ts +2 -1
  142. package/dist/utils/call.d.ts.map +1 -1
  143. package/package.json +2 -2
  144. package/src/assets/icons/checkbox-checked-disabled.svg +3 -0
  145. package/src/assets/icons/checkbox-checked.svg +3 -0
  146. package/src/assets/icons/checkbox-less-disabled.svg +3 -0
  147. package/src/assets/icons/checkbox-less.svg +3 -0
  148. package/src/assets/icons/radio-checked.svg +3 -0
  149. package/src/assets/icons/switch-checked-disabled.svg +3 -0
  150. package/src/assets/icons/switch-checked.svg +3 -0
  151. package/src/assets/scss/radii.scss +1 -1
  152. package/src/assets/scss/scheme-colors.scss +309 -223
  153. package/src/assets/tokens/radii.json +1 -1
  154. package/src/components/Alert/Alert.vue +26 -135
  155. package/src/components/Alert/Version1dot1.vue +0 -36
  156. package/src/components/Alert/__tests__/Alert.spec.js +2 -45
  157. package/src/components/Alert/__tests__/Version1dot1.spec.js +0 -21
  158. package/src/components/Alert/__tests__/__snapshots__/Alert.spec.js.snap +11 -7
  159. package/src/components/Alert/__tests__/__snapshots__/AlertBanner.spec.js.snap +2 -2
  160. package/src/components/Alert/__tests__/__snapshots__/Version1dot1.spec.js.snap +1 -1
  161. package/src/components/Button/Button.vue +67 -117
  162. package/src/components/Button/types.ts +0 -1
  163. package/src/components/Card/MarketplaceCard.vue +1 -0
  164. package/src/components/ChatsContact/ChatsContact.vue +10 -6
  165. package/src/components/Checkbox/Checkbox.vue +117 -65
  166. package/src/components/Checkbox/__tests__/Checkbox.spec.js +6 -21
  167. package/src/components/CheckboxGroup/CheckboxGroup.vue +96 -0
  168. package/src/components/FormElement/FormElement.vue +63 -93
  169. package/src/components/Icon.vue +2 -0
  170. package/src/components/Input/BaseInput.vue +33 -14
  171. package/src/components/Input/Input.scss +22 -22
  172. package/src/components/Input/Input.vue +79 -56
  173. package/src/components/Input/TextInput.vue +81 -65
  174. package/src/components/Input/__test__/Input.spec.js +13 -33
  175. package/src/components/Input/__test__/TextInput.spec.js +6 -8
  176. package/src/components/Input/__test__/__snapshots__/Input.spec.js.snap +17 -4
  177. package/src/components/Input/__test__/__snapshots__/TextInput.spec.js.snap +7 -1
  178. package/src/components/Label/Label.vue +52 -21
  179. package/src/components/Label/__tests__/Label.spec.js +1 -1
  180. package/src/components/Label/__tests__/__snapshots__/Label.spec.js.snap +1 -1
  181. package/src/components/MultiSelectV2/MultSelectOption.vue +67 -0
  182. package/src/components/MultiSelectV2/__tests__/MultiSelect.spec.js +556 -0
  183. package/src/components/MultiSelectV2/__tests__/MultiSelectOption.spec.js +229 -0
  184. package/src/components/MultiSelectV2/__tests__/__snapshots__/MultiSelect.spec.js.snap +121 -0
  185. package/src/components/MultiSelectV2/__tests__/__snapshots__/MultiSelectOption.spec.js.snap +51 -0
  186. package/src/components/MultiSelectV2/index.vue +221 -0
  187. package/src/components/PageHeader/PageHeader.vue +148 -0
  188. package/src/components/PageHeader/index.ts +2 -0
  189. package/src/components/PageHeader/types.ts +10 -0
  190. package/src/components/Popover/__tests__/Popover.spec.js +147 -0
  191. package/src/components/Popover/__tests__/__snapshots__/Popover.spec.js.snap +8 -0
  192. package/src/components/Popover/index.vue +146 -0
  193. package/src/components/Radio/Radio.vue +118 -66
  194. package/src/components/Radio/__test__/Radio.spec.js +14 -20
  195. package/src/components/Radio/__test__/__snapshots__/Radio.spec.js.snap +4 -3
  196. package/src/components/RadioGroup/RadioGroup.vue +142 -0
  197. package/src/components/Select/SelectOption.vue +65 -0
  198. package/src/components/Select/__tests__/Select.spec.js +412 -0
  199. package/src/components/Select/__tests__/SelectItem.spec.js +330 -0
  200. package/src/components/Select/__tests__/SelectOption.spec.js +174 -0
  201. package/src/components/Select/__tests__/__snapshots__/Select.spec.js.snap +97 -0
  202. package/src/components/Select/__tests__/__snapshots__/SelectItem.spec.js.snap +15 -0
  203. package/src/components/Select/__tests__/__snapshots__/SelectOption.spec.js.snap +25 -0
  204. package/src/components/Select/index.vue +249 -0
  205. package/src/components/SelectSmart/SelectSmart.vue +4 -3
  206. package/src/components/Switch/Switch.vue +132 -91
  207. package/src/components/Switch/__tests__/Switch.spec.js +8 -75
  208. package/src/components/Switch/__tests__/__snapshots__/Switch.spec.js.snap +5 -6
  209. package/src/components/Tab/Tab.vue +37 -23
  210. package/src/components/Tab/__test__/__snapshots__/Tab.spec.js.snap +1 -1
  211. package/src/components/TableNext/__test__/__snapshots__/TableNext.spec.js.snap +2 -2
  212. package/src/components/TableNext/__test__/__snapshots__/TablePagination.spec.js.snap +2 -2
  213. package/src/components/Tag/DefaultTag.vue +51 -107
  214. package/src/components/Tag/Tag.vue +32 -79
  215. package/src/components/Tag/types.ts +19 -0
  216. package/src/components/TextArea/TextArea.vue +41 -12
  217. package/src/components/TextArea/__test__/__snapshots__/TextArea.spec.js.snap +11 -3
  218. package/src/components/Toast/Toast.vue +246 -0
  219. package/src/components/Toast/ToastManager.ts +110 -0
  220. package/src/components/Toast/__tests__/Toast.spec.js +291 -0
  221. package/src/components/Toast/__tests__/ToastManager.spec.js +294 -0
  222. package/src/components/Toast/types.ts +57 -0
  223. package/src/components/index.ts +33 -17
  224. package/src/locales/en.json +2 -1
  225. package/src/locales/es.json +2 -1
  226. package/src/locales/pt_br.json +2 -1
  227. package/src/stories/Alert.stories.js +6 -67
  228. package/src/stories/Button.stories.js +29 -39
  229. package/src/stories/Checkbox.stories.js +11 -4
  230. package/src/stories/CheckboxGroup.stories.js +105 -0
  231. package/src/stories/Input.stories.js +71 -76
  232. package/src/stories/Label.stories.js +7 -0
  233. package/src/stories/MultiSelectV2.stories.js +158 -0
  234. package/src/stories/PageHeader.stories.js +330 -0
  235. package/src/stories/Radio.stories.js +28 -1
  236. package/src/stories/RadioGroup.stories.js +144 -0
  237. package/src/stories/Select.stories.js +158 -0
  238. package/src/stories/Switch.stories.js +10 -5
  239. package/src/stories/Tab.stories.js +11 -4
  240. package/src/stories/Tag.stories.js +24 -43
  241. package/src/stories/TextArea.stories.js +14 -2
  242. package/src/stories/Toast.mdx +123 -0
  243. package/src/stories/Toast.stories.js +126 -0
  244. package/src/types/scheme-colors.d.ts +1 -0
  245. package/src/utils/call.js +46 -18
  246. package/dist/components/Tag/BrandTag.vue.d.ts +0 -51
  247. package/dist/components/Tag/BrandTag.vue.d.ts.map +0 -1
  248. package/dist/components/Tag/IndicatorTag.vue.d.ts +0 -151
  249. package/dist/components/Tag/IndicatorTag.vue.d.ts.map +0 -1
  250. package/dist/components/Tag/TagNext.vue.d.ts +0 -24
  251. package/dist/components/Tag/TagNext.vue.d.ts.map +0 -1
  252. package/src/components/Alert/AlertBanner.vue +0 -182
  253. package/src/components/Alert/AlertCaller.vue +0 -49
  254. package/src/components/Alert/__tests__/AlertBanner.spec.js +0 -89
  255. package/src/components/Alert/__tests__/AlertCaller.spec.js +0 -98
  256. package/src/components/Tag/BrandTag.vue +0 -96
  257. package/src/components/Tag/IndicatorTag.vue +0 -107
  258. package/src/components/Tag/TagNext.vue +0 -60
@@ -0,0 +1,330 @@
1
+ import { mount } from '@vue/test-utils';
2
+ import { beforeEach, describe, expect, test } from 'vitest';
3
+ import SelectItem from '../SelectItem.vue';
4
+
5
+ const createWrapper = (props = {}, slots = {}) => {
6
+ return mount(SelectItem, {
7
+ props,
8
+ slots: slots.default ? { default: slots.default } : {},
9
+ });
10
+ };
11
+
12
+ describe('SelectItem.vue', () => {
13
+ let wrapper;
14
+
15
+ beforeEach(() => {
16
+ wrapper = createWrapper({}, { default: 'Test Item' });
17
+ });
18
+
19
+ test('renders correctly', () => {
20
+ expect(wrapper.exists()).toBe(true);
21
+ });
22
+
23
+ test('renders slot content', () => {
24
+ const labelElement = wrapper.find('.unnnic-select-item__label');
25
+ expect(labelElement.exists()).toBe(true);
26
+ expect(labelElement.text()).toBe('Test Item');
27
+ });
28
+
29
+ test('applies the correct base CSS class', () => {
30
+ expect(wrapper.classes()).toContain('unnnic-select-item');
31
+ });
32
+
33
+ describe('props validation', () => {
34
+ test('validates optional size prop', () => {
35
+ const { size } = wrapper.vm.$options.props;
36
+ expect(size.required).toBeFalsy();
37
+ expect(size.type).toBe(String);
38
+ expect(size.default).toBe('');
39
+ });
40
+
41
+ test('validates optional selectable prop', () => {
42
+ const { selectable } = wrapper.vm.$options.props;
43
+ expect(selectable.required).toBeFalsy();
44
+ expect(selectable.type).toBe(Boolean);
45
+ expect(selectable.default).toBe(true);
46
+ });
47
+
48
+ test('validates optional active prop', () => {
49
+ const { active } = wrapper.vm.$options.props;
50
+ expect(active.required).toBeFalsy();
51
+ expect(active.type).toBe(Boolean);
52
+ expect(active.default).toBe(false);
53
+ });
54
+
55
+ test('validates optional textFocused prop', () => {
56
+ const { textFocused } = wrapper.vm.$options.props;
57
+ expect(textFocused.required).toBeFalsy();
58
+ expect(textFocused.type).toBe(Boolean);
59
+ expect(textFocused.default).toBe(false);
60
+ });
61
+ });
62
+
63
+ describe('size prop', () => {
64
+ test('applies md size class when size is md', async () => {
65
+ await wrapper.setProps({ size: 'md' });
66
+ const labelElement = wrapper.find('.unnnic-select-item__label');
67
+ expect(labelElement.classes()).toContain('unnnic-select-item__label--md');
68
+ });
69
+
70
+ test('applies sm size class when size is sm', async () => {
71
+ await wrapper.setProps({ size: 'sm' });
72
+ const labelElement = wrapper.find('.unnnic-select-item__label');
73
+ expect(labelElement.classes()).toContain('unnnic-select-item__label--sm');
74
+ });
75
+
76
+ test('does not apply size class when size is empty', async () => {
77
+ await wrapper.setProps({ size: '' });
78
+ const labelElement = wrapper.find('.unnnic-select-item__label');
79
+ expect(labelElement.classes()).not.toContain(
80
+ 'unnnic-select-item__label--md',
81
+ );
82
+ expect(labelElement.classes()).not.toContain(
83
+ 'unnnic-select-item__label--sm',
84
+ );
85
+ });
86
+ });
87
+
88
+ describe('selectable prop', () => {
89
+ test('applies selectable class when selectable is true', async () => {
90
+ await wrapper.setProps({ selectable: true });
91
+ expect(wrapper.classes()).toContain('unnnic-select-item--selectable');
92
+ expect(wrapper.classes()).toContain('unnnic--clickable');
93
+ });
94
+
95
+ test('does not apply selectable class when selectable is false', async () => {
96
+ await wrapper.setProps({ selectable: false });
97
+ expect(wrapper.classes()).not.toContain('unnnic-select-item--selectable');
98
+ expect(wrapper.classes()).not.toContain('unnnic--clickable');
99
+ });
100
+ });
101
+
102
+ describe('active state', () => {
103
+ test('applies active class when active prop is true', async () => {
104
+ await wrapper.setProps({ active: true });
105
+ expect(wrapper.classes()).toContain('unnnic-select-item__active');
106
+ });
107
+
108
+ test('does not apply active class when active prop is false', async () => {
109
+ await wrapper.setProps({ active: false });
110
+ expect(wrapper.classes()).not.toContain('unnnic-select-item__active');
111
+ });
112
+ });
113
+
114
+ describe('textFocused state', () => {
115
+ test('applies text-focused class when textFocused prop is true', async () => {
116
+ await wrapper.setProps({ textFocused: true });
117
+ expect(wrapper.classes()).toContain('text-focused');
118
+ });
119
+
120
+ test('does not apply text-focused class when textFocused prop is false', async () => {
121
+ await wrapper.setProps({ textFocused: false });
122
+ expect(wrapper.classes()).not.toContain('text-focused');
123
+ });
124
+ });
125
+
126
+ describe('click events', () => {
127
+ test('emits click event when clicked', async () => {
128
+ const clickWrapper = createWrapper({}, { default: 'Test Item' });
129
+ await clickWrapper.trigger('click');
130
+ expect(clickWrapper.emitted('click')).toBeTruthy();
131
+ expect(clickWrapper.emitted('click').length).toBeGreaterThanOrEqual(1);
132
+ });
133
+
134
+ test('emits click event even when selectable is false', async () => {
135
+ const clickWrapper = createWrapper(
136
+ { selectable: false },
137
+ { default: 'Test Item' },
138
+ );
139
+ await clickWrapper.trigger('click');
140
+ expect(clickWrapper.emitted('click')).toBeTruthy();
141
+ expect(clickWrapper.emitted('click').length).toBeGreaterThanOrEqual(1);
142
+ });
143
+
144
+ test('emits multiple click events', async () => {
145
+ const clickWrapper = createWrapper({}, { default: 'Test Item' });
146
+ await clickWrapper.trigger('click');
147
+ await clickWrapper.trigger('click');
148
+ expect(clickWrapper.emitted('click').length).toBeGreaterThanOrEqual(2);
149
+ });
150
+ });
151
+
152
+ describe('combined states', () => {
153
+ test('can be active and selectable', async () => {
154
+ await wrapper.setProps({ active: true, selectable: true });
155
+ expect(wrapper.classes()).toContain('unnnic-select-item__active');
156
+ expect(wrapper.classes()).toContain('unnnic-select-item--selectable');
157
+ expect(wrapper.classes()).toContain('unnnic--clickable');
158
+ });
159
+
160
+ test('can be textFocused and active', async () => {
161
+ await wrapper.setProps({ textFocused: true, active: true });
162
+ expect(wrapper.classes()).toContain('text-focused');
163
+ expect(wrapper.classes()).toContain('unnnic-select-item__active');
164
+ });
165
+
166
+ test('renders correctly with all props', async () => {
167
+ await wrapper.setProps({
168
+ size: 'md',
169
+ selectable: true,
170
+ active: true,
171
+ textFocused: true,
172
+ });
173
+
174
+ expect(wrapper.classes()).toContain('unnnic-select-item');
175
+ expect(wrapper.classes()).toContain('unnnic-select-item__active');
176
+ expect(wrapper.classes()).toContain('unnnic-select-item--selectable');
177
+ expect(wrapper.classes()).toContain('unnnic--clickable');
178
+ expect(wrapper.classes()).toContain('text-focused');
179
+
180
+ const labelElement = wrapper.find('.unnnic-select-item__label');
181
+ expect(labelElement.classes()).toContain('unnnic-select-item__label--md');
182
+ });
183
+ });
184
+
185
+ describe('component structure', () => {
186
+ test('has correct component name', () => {
187
+ expect(wrapper.vm.$options.name).toBe('UnnicSelectItem');
188
+ });
189
+
190
+ test('renders a div element', () => {
191
+ expect(wrapper.element.tagName).toBe('DIV');
192
+ });
193
+
194
+ test('contains a span element for the label', () => {
195
+ const labelElement = wrapper.find('span.unnnic-select-item__label');
196
+ expect(labelElement.exists()).toBe(true);
197
+ });
198
+ });
199
+
200
+ describe('accessibility', () => {
201
+ test('has proper semantic structure', () => {
202
+ const div = wrapper.find('.unnnic-select-item');
203
+ const span = wrapper.find('.unnnic-select-item__label');
204
+
205
+ expect(div.exists()).toBe(true);
206
+ expect(span.exists()).toBe(true);
207
+ expect(span.element.tagName).toBe('SPAN');
208
+ });
209
+
210
+ test('slot content is accessible', () => {
211
+ const labelElement = wrapper.find('.unnnic-select-item__label');
212
+ expect(labelElement.text()).toBe('Test Item');
213
+ });
214
+ });
215
+
216
+ describe('edge cases', () => {
217
+ test('handles empty slot content', async () => {
218
+ const emptyWrapper = createWrapper({}, { default: '' });
219
+ const labelElement = emptyWrapper.find('.unnnic-select-item__label');
220
+ expect(labelElement.text()).toBe('');
221
+ });
222
+
223
+ test('handles long slot content', async () => {
224
+ const longText =
225
+ 'This is a very long text content that should be handled properly by the component';
226
+ const longWrapper = createWrapper({}, { default: longText });
227
+ const labelElement = longWrapper.find('.unnnic-select-item__label');
228
+ expect(labelElement.text()).toBe(longText);
229
+ });
230
+
231
+ test('handles special characters in slot content', async () => {
232
+ const specialText = 'Item with special chars: @#$%^&*()';
233
+ const specialWrapper = createWrapper({}, { default: specialText });
234
+ const labelElement = specialWrapper.find('.unnnic-select-item__label');
235
+ expect(labelElement.text()).toBe(specialText);
236
+ });
237
+
238
+ test('handles HTML content in slot', async () => {
239
+ const htmlContent = '<strong>Bold text</strong>';
240
+ const htmlWrapper = createWrapper({}, { default: htmlContent });
241
+ const labelElement = htmlWrapper.find('.unnnic-select-item__label');
242
+ expect(labelElement.html()).toContain('<strong>Bold text</strong>');
243
+ });
244
+ });
245
+
246
+ describe('CSS class combinations', () => {
247
+ test('applies correct classes for non-selectable inactive item', async () => {
248
+ await wrapper.setProps({
249
+ selectable: false,
250
+ active: false,
251
+ textFocused: false,
252
+ });
253
+
254
+ expect(wrapper.classes()).toContain('unnnic-select-item');
255
+ expect(wrapper.classes()).not.toContain('unnnic-select-item--selectable');
256
+ expect(wrapper.classes()).not.toContain('unnnic--clickable');
257
+ expect(wrapper.classes()).not.toContain('unnnic-select-item__active');
258
+ expect(wrapper.classes()).not.toContain('text-focused');
259
+ });
260
+
261
+ test('applies correct classes for selectable active item', async () => {
262
+ await wrapper.setProps({
263
+ selectable: true,
264
+ active: true,
265
+ textFocused: false,
266
+ });
267
+
268
+ expect(wrapper.classes()).toContain('unnnic-select-item');
269
+ expect(wrapper.classes()).toContain('unnnic-select-item--selectable');
270
+ expect(wrapper.classes()).toContain('unnnic--clickable');
271
+ expect(wrapper.classes()).toContain('unnnic-select-item__active');
272
+ expect(wrapper.classes()).not.toContain('text-focused');
273
+ });
274
+
275
+ test('applies correct classes for text-focused item', async () => {
276
+ await wrapper.setProps({
277
+ selectable: true,
278
+ active: false,
279
+ textFocused: true,
280
+ });
281
+
282
+ expect(wrapper.classes()).toContain('unnnic-select-item');
283
+ expect(wrapper.classes()).toContain('unnnic-select-item--selectable');
284
+ expect(wrapper.classes()).toContain('unnnic--clickable');
285
+ expect(wrapper.classes()).not.toContain('unnnic-select-item__active');
286
+ expect(wrapper.classes()).toContain('text-focused');
287
+ });
288
+ });
289
+
290
+ describe('snapshot testing', () => {
291
+ test('matches snapshot with default props', () => {
292
+ expect(wrapper.html()).toMatchSnapshot();
293
+ });
294
+
295
+ test('matches snapshot with active state', async () => {
296
+ await wrapper.setProps({ active: true });
297
+ expect(wrapper.html()).toMatchSnapshot();
298
+ });
299
+
300
+ test('matches snapshot with textFocused state', async () => {
301
+ await wrapper.setProps({ textFocused: true });
302
+ expect(wrapper.html()).toMatchSnapshot();
303
+ });
304
+
305
+ test('matches snapshot with non-selectable state', async () => {
306
+ await wrapper.setProps({ selectable: false });
307
+ expect(wrapper.html()).toMatchSnapshot();
308
+ });
309
+
310
+ test('matches snapshot with md size', async () => {
311
+ await wrapper.setProps({ size: 'md' });
312
+ expect(wrapper.html()).toMatchSnapshot();
313
+ });
314
+
315
+ test('matches snapshot with sm size', async () => {
316
+ await wrapper.setProps({ size: 'sm' });
317
+ expect(wrapper.html()).toMatchSnapshot();
318
+ });
319
+
320
+ test('matches snapshot with all states combined', async () => {
321
+ await wrapper.setProps({
322
+ size: 'md',
323
+ selectable: true,
324
+ active: true,
325
+ textFocused: true,
326
+ });
327
+ expect(wrapper.html()).toMatchSnapshot();
328
+ });
329
+ });
330
+ });
@@ -0,0 +1,174 @@
1
+ import { mount } from '@vue/test-utils';
2
+ import { beforeEach, describe, expect, test } from 'vitest';
3
+ import SelectOption from '../SelectOption.vue';
4
+
5
+ const createWrapper = (props = {}) => {
6
+ return mount(SelectOption, { props });
7
+ };
8
+
9
+ describe('SelectOption.vue', () => {
10
+ let wrapper;
11
+
12
+ beforeEach(() => {
13
+ wrapper = createWrapper({
14
+ label: 'Test Option',
15
+ });
16
+ });
17
+
18
+ test('renders correctly', () => {
19
+ expect(wrapper.exists()).toBe(true);
20
+ });
21
+
22
+ test('renders the label text', () => {
23
+ const labelElement = wrapper.find('.unnnic-select-option__label');
24
+ expect(labelElement.exists()).toBe(true);
25
+ expect(labelElement.text()).toBe('Test Option');
26
+ });
27
+
28
+ test('applies the correct base CSS class', () => {
29
+ expect(wrapper.classes()).toContain('unnnic-select-option');
30
+ });
31
+
32
+ describe('props validation', () => {
33
+ test('validates required label prop', () => {
34
+ const { label } = wrapper.vm.$options.props;
35
+ expect(label.required).toBe(true);
36
+ expect(label.type).toBe(String);
37
+ });
38
+
39
+ test('validates optional disabled prop', () => {
40
+ const { disabled } = wrapper.vm.$options.props;
41
+ expect(disabled.required).toBe(false);
42
+ expect(disabled.type).toBe(Boolean);
43
+ expect(disabled.default).toBe(false);
44
+ });
45
+
46
+ test('validates optional active prop', () => {
47
+ const { active } = wrapper.vm.$options.props;
48
+ expect(active.required).toBe(false);
49
+ expect(active.type).toBe(Boolean);
50
+ expect(active.default).toBe(false);
51
+ });
52
+ });
53
+
54
+ describe('disabled state', () => {
55
+ test('applies disabled class when disabled prop is true', async () => {
56
+ await wrapper.setProps({ disabled: true });
57
+ expect(wrapper.classes()).toContain('unnnic-select-option--disabled');
58
+ });
59
+
60
+ test('does not apply disabled class when disabled prop is false', async () => {
61
+ await wrapper.setProps({ disabled: false });
62
+ expect(wrapper.classes()).not.toContain('unnnic-select-option--disabled');
63
+ });
64
+ });
65
+
66
+ describe('active state', () => {
67
+ test('applies active class when active prop is true', async () => {
68
+ await wrapper.setProps({ active: true });
69
+ expect(wrapper.classes()).toContain('unnnic-select-option--active');
70
+ });
71
+
72
+ test('does not apply active class when active prop is false', async () => {
73
+ await wrapper.setProps({ active: false });
74
+ expect(wrapper.classes()).not.toContain('unnnic-select-option--active');
75
+ });
76
+ });
77
+
78
+ describe('combined states', () => {
79
+ test('can be both active and disabled', async () => {
80
+ await wrapper.setProps({ active: true, disabled: true });
81
+ expect(wrapper.classes()).toContain('unnnic-select-option--active');
82
+ expect(wrapper.classes()).toContain('unnnic-select-option--disabled');
83
+ });
84
+
85
+ test('renders correctly with all props', async () => {
86
+ await wrapper.setProps({
87
+ label: 'Complex Option',
88
+ active: true,
89
+ disabled: false,
90
+ });
91
+
92
+ expect(wrapper.find('.unnnic-select-option__label').text()).toBe(
93
+ 'Complex Option',
94
+ );
95
+ expect(wrapper.classes()).toContain('unnnic-select-option--active');
96
+ expect(wrapper.classes()).not.toContain('unnnic-select-option--disabled');
97
+ });
98
+ });
99
+
100
+ describe('component structure', () => {
101
+ test('has correct component name', () => {
102
+ expect(wrapper.vm.$options.name).toBe('UnnnicSelectOption');
103
+ });
104
+
105
+ test('renders a div element', () => {
106
+ expect(wrapper.element.tagName).toBe('DIV');
107
+ });
108
+
109
+ test('contains a paragraph element for the label', () => {
110
+ const labelElement = wrapper.find('p.unnnic-select-option__label');
111
+ expect(labelElement.exists()).toBe(true);
112
+ });
113
+ });
114
+
115
+ describe('accessibility', () => {
116
+ test('has proper semantic structure', () => {
117
+ const div = wrapper.find('.unnnic-select-option');
118
+ const p = wrapper.find('.unnnic-select-option__label');
119
+
120
+ expect(div.exists()).toBe(true);
121
+ expect(p.exists()).toBe(true);
122
+ expect(p.element.tagName).toBe('P');
123
+ });
124
+
125
+ test('label text is accessible', () => {
126
+ const labelElement = wrapper.find('.unnnic-select-option__label');
127
+ expect(labelElement.text()).toBe('Test Option');
128
+ });
129
+ });
130
+
131
+ describe('edge cases', () => {
132
+ test('handles empty label', async () => {
133
+ await wrapper.setProps({ label: '' });
134
+ const labelElement = wrapper.find('.unnnic-select-option__label');
135
+ expect(labelElement.text()).toBe('');
136
+ });
137
+
138
+ test('handles long label text', async () => {
139
+ const longText =
140
+ 'This is a very long label text that should be handled properly by the component';
141
+ await wrapper.setProps({ label: longText });
142
+ const labelElement = wrapper.find('.unnnic-select-option__label');
143
+ expect(labelElement.text()).toBe(longText);
144
+ });
145
+
146
+ test('handles special characters in label', async () => {
147
+ const specialText = 'Option with special chars: @#$%^&*()';
148
+ await wrapper.setProps({ label: specialText });
149
+ const labelElement = wrapper.find('.unnnic-select-option__label');
150
+ expect(labelElement.text()).toBe(specialText);
151
+ });
152
+ });
153
+
154
+ describe('snapshot testing', () => {
155
+ test('matches snapshot with default props', () => {
156
+ expect(wrapper.html()).toMatchSnapshot();
157
+ });
158
+
159
+ test('matches snapshot with active state', async () => {
160
+ await wrapper.setProps({ active: true });
161
+ expect(wrapper.html()).toMatchSnapshot();
162
+ });
163
+
164
+ test('matches snapshot with disabled state', async () => {
165
+ await wrapper.setProps({ disabled: true });
166
+ expect(wrapper.html()).toMatchSnapshot();
167
+ });
168
+
169
+ test('matches snapshot with both active and disabled states', async () => {
170
+ await wrapper.setProps({ active: true, disabled: true });
171
+ expect(wrapper.html()).toMatchSnapshot();
172
+ });
173
+ });
174
+ });
@@ -0,0 +1,97 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`UnnnicSelect.vue > snapshot testing > matches snapshot with default props 1`] = `
4
+ "<div data-v-6077efb7="" class="unnnic-select">
5
+ <section data-v-5a3125ac="" data-v-6077efb7="" class="unnnic-popover">
6
+ <div data-v-5a3125ac="" class="unnnic-popover__trigger" data-testid="popover-trigger">
7
+ <div data-v-d890ad85="" data-v-6077efb7="" class="unnnic-form md unnnic-select__input">
8
+ <!--v-if-->
9
+ <div data-v-a0d36167="" data-v-d890ad85="" class="text-input size--md unnnic-select__input unnnic-form-input" mask=""><input data-v-86533b41="" data-v-a0d36167="" class="unnnic-select__input unnnic-form-input input-itself input size-md normal input--has-icon-right input--has-clear-icon unnnic-select__input unnnic-form-input input-itself" placeholder="" iconleft="" iconright="keyboard_arrow_down" iconleftclickable="false" iconrightclickable="false" hascloudycolor="false" showclear="true" type="text" readonly="" value="">
10
+ <!--v-if-->
11
+ <section data-v-a0d36167="" class="icon-right-container"><span data-v-26446d8e="" data-v-a0d36167="" class="material-symbols-rounded unnnic-icon-scheme--fg-base unnnic-icon-size--ant unnnic--clickable icon-clear" data-testid="material-icon" translate="no">close</span><span data-v-26446d8e="" data-v-a0d36167="" class="material-symbols-rounded unnnic-icon-scheme--fg-base unnnic-icon-size--ant icon-right" data-testid="material-icon" translate="no">keyboard_arrow_down</span></section>
12
+ </div>
13
+ <section data-v-d890ad85="" class="unnnic-form__hints-container">
14
+ <section data-v-d890ad85="" class="unnnic-form__message-container">
15
+ <!--v-if-->
16
+ <!--v-if-->
17
+ </section>
18
+ <!--v-if-->
19
+ </section>
20
+ </div>
21
+ </div>
22
+ <!--v-if-->
23
+ </section>
24
+ </div>"
25
+ `;
26
+
27
+ exports[`UnnnicSelect.vue > snapshot testing > matches snapshot with disabled state 1`] = `
28
+ "<div data-v-6077efb7="" class="unnnic-select">
29
+ <section data-v-5a3125ac="" data-v-6077efb7="" class="unnnic-popover">
30
+ <div data-v-5a3125ac="" class="unnnic-popover__trigger" data-testid="popover-trigger">
31
+ <div data-v-d890ad85="" data-v-6077efb7="" class="unnnic-form md unnnic-select__input">
32
+ <!--v-if-->
33
+ <div data-v-a0d36167="" data-v-d890ad85="" class="text-input size--md unnnic-select__input unnnic-form-input" mask=""><input data-v-86533b41="" data-v-a0d36167="" class="unnnic-select__input unnnic-form-input input-itself input size-md normal input--has-icon-right input--has-clear-icon unnnic-select__input unnnic-form-input input-itself" placeholder="" iconleft="" iconright="keyboard_arrow_down" iconleftclickable="false" iconrightclickable="false" hascloudycolor="false" showclear="true" type="text" readonly="" value="" disabled="">
34
+ <!--v-if-->
35
+ <section data-v-a0d36167="" class="icon-right-container"><span data-v-26446d8e="" data-v-a0d36167="" class="material-symbols-rounded unnnic-icon-scheme--fg-muted unnnic-icon-size--ant unnnic--clickable icon-clear" data-testid="material-icon" translate="no">close</span><span data-v-26446d8e="" data-v-a0d36167="" class="material-symbols-rounded unnnic-icon-scheme--fg-muted unnnic-icon-size--ant icon-right" data-testid="material-icon" translate="no">keyboard_arrow_down</span></section>
36
+ </div>
37
+ <section data-v-d890ad85="" class="unnnic-form__hints-container">
38
+ <section data-v-d890ad85="" class="unnnic-form__message-container">
39
+ <!--v-if-->
40
+ <!--v-if-->
41
+ </section>
42
+ <!--v-if-->
43
+ </section>
44
+ </div>
45
+ </div>
46
+ <!--v-if-->
47
+ </section>
48
+ </div>"
49
+ `;
50
+
51
+ exports[`UnnnicSelect.vue > snapshot testing > matches snapshot with search enabled 1`] = `
52
+ "<div data-v-6077efb7="" class="unnnic-select">
53
+ <section data-v-5a3125ac="" data-v-6077efb7="" class="unnnic-popover">
54
+ <div data-v-5a3125ac="" class="unnnic-popover__trigger" data-testid="popover-trigger">
55
+ <div data-v-d890ad85="" data-v-6077efb7="" class="unnnic-form md unnnic-select__input">
56
+ <!--v-if-->
57
+ <div data-v-a0d36167="" data-v-d890ad85="" class="text-input size--md unnnic-select__input unnnic-form-input" mask=""><input data-v-86533b41="" data-v-a0d36167="" class="unnnic-select__input unnnic-form-input input-itself input size-md normal input--has-icon-right input--has-clear-icon unnnic-select__input unnnic-form-input input-itself" placeholder="" iconleft="" iconright="keyboard_arrow_down" iconleftclickable="false" iconrightclickable="false" hascloudycolor="false" showclear="true" type="text" readonly="" value="">
58
+ <!--v-if-->
59
+ <section data-v-a0d36167="" class="icon-right-container"><span data-v-26446d8e="" data-v-a0d36167="" class="material-symbols-rounded unnnic-icon-scheme--fg-base unnnic-icon-size--ant unnnic--clickable icon-clear" data-testid="material-icon" translate="no">close</span><span data-v-26446d8e="" data-v-a0d36167="" class="material-symbols-rounded unnnic-icon-scheme--fg-base unnnic-icon-size--ant icon-right" data-testid="material-icon" translate="no">keyboard_arrow_down</span></section>
60
+ </div>
61
+ <section data-v-d890ad85="" class="unnnic-form__hints-container">
62
+ <section data-v-d890ad85="" class="unnnic-form__message-container">
63
+ <!--v-if-->
64
+ <!--v-if-->
65
+ </section>
66
+ <!--v-if-->
67
+ </section>
68
+ </div>
69
+ </div>
70
+ <!--v-if-->
71
+ </section>
72
+ </div>"
73
+ `;
74
+
75
+ exports[`UnnnicSelect.vue > snapshot testing > matches snapshot with selected value 1`] = `
76
+ "<div data-v-6077efb7="" class="unnnic-select">
77
+ <section data-v-5a3125ac="" data-v-6077efb7="" class="unnnic-popover">
78
+ <div data-v-5a3125ac="" class="unnnic-popover__trigger" data-testid="popover-trigger">
79
+ <div data-v-d890ad85="" data-v-6077efb7="" class="unnnic-form md unnnic-select__input">
80
+ <!--v-if-->
81
+ <div data-v-a0d36167="" data-v-d890ad85="" class="text-input size--md unnnic-select__input unnnic-form-input" mask=""><input data-v-86533b41="" data-v-a0d36167="" class="unnnic-select__input unnnic-form-input input-itself input size-md normal input--has-icon-right input--has-clear-icon unnnic-select__input unnnic-form-input input-itself" placeholder="" iconleft="" iconright="keyboard_arrow_down" iconleftclickable="false" iconrightclickable="false" hascloudycolor="false" showclear="true" type="text" readonly="" value="Option 1">
82
+ <!--v-if-->
83
+ <section data-v-a0d36167="" class="icon-right-container"><span data-v-26446d8e="" data-v-a0d36167="" class="material-symbols-rounded unnnic-icon-scheme--color-gray-700 unnnic-icon-size--ant unnnic--clickable icon-clear" data-testid="material-icon" translate="no">close</span><span data-v-26446d8e="" data-v-a0d36167="" class="material-symbols-rounded unnnic-icon-scheme--color-gray-700 unnnic-icon-size--ant icon-right" data-testid="material-icon" translate="no">keyboard_arrow_down</span></section>
84
+ </div>
85
+ <section data-v-d890ad85="" class="unnnic-form__hints-container">
86
+ <section data-v-d890ad85="" class="unnnic-form__message-container">
87
+ <!--v-if-->
88
+ <!--v-if-->
89
+ </section>
90
+ <!--v-if-->
91
+ </section>
92
+ </div>
93
+ </div>
94
+ <!--v-if-->
95
+ </section>
96
+ </div>"
97
+ `;
@@ -0,0 +1,15 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`SelectItem.vue > snapshot testing > matches snapshot with active state 1`] = `"<div class="unnnic-select-item unnnic-select-item__active unnnic--clickable unnnic-select-item--selectable"><span class="unnnic-select-item__label unnnic-select-item__label--">Test Item</span></div>"`;
4
+
5
+ exports[`SelectItem.vue > snapshot testing > matches snapshot with all states combined 1`] = `"<div class="unnnic-select-item unnnic-select-item__active unnnic--clickable unnnic-select-item--selectable text-focused"><span class="unnnic-select-item__label unnnic-select-item__label--md">Test Item</span></div>"`;
6
+
7
+ exports[`SelectItem.vue > snapshot testing > matches snapshot with default props 1`] = `"<div class="unnnic-select-item unnnic--clickable unnnic-select-item--selectable"><span class="unnnic-select-item__label unnnic-select-item__label--">Test Item</span></div>"`;
8
+
9
+ exports[`SelectItem.vue > snapshot testing > matches snapshot with md size 1`] = `"<div class="unnnic-select-item unnnic--clickable unnnic-select-item--selectable"><span class="unnnic-select-item__label unnnic-select-item__label--md">Test Item</span></div>"`;
10
+
11
+ exports[`SelectItem.vue > snapshot testing > matches snapshot with non-selectable state 1`] = `"<div class="unnnic-select-item"><span class="unnnic-select-item__label unnnic-select-item__label--">Test Item</span></div>"`;
12
+
13
+ exports[`SelectItem.vue > snapshot testing > matches snapshot with sm size 1`] = `"<div class="unnnic-select-item unnnic--clickable unnnic-select-item--selectable"><span class="unnnic-select-item__label unnnic-select-item__label--sm">Test Item</span></div>"`;
14
+
15
+ exports[`SelectItem.vue > snapshot testing > matches snapshot with textFocused state 1`] = `"<div class="unnnic-select-item unnnic--clickable unnnic-select-item--selectable text-focused"><span class="unnnic-select-item__label unnnic-select-item__label--">Test Item</span></div>"`;
@@ -0,0 +1,25 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`SelectOption.vue > snapshot testing > matches snapshot with active state 1`] = `
4
+ "<div data-v-fabf1785="" class="unnnic-select-option unnnic-select-option--active">
5
+ <p data-v-fabf1785="" class="unnnic-select-option__label">Test Option</p>
6
+ </div>"
7
+ `;
8
+
9
+ exports[`SelectOption.vue > snapshot testing > matches snapshot with both active and disabled states 1`] = `
10
+ "<div data-v-fabf1785="" class="unnnic-select-option unnnic-select-option--disabled unnnic-select-option--active">
11
+ <p data-v-fabf1785="" class="unnnic-select-option__label">Test Option</p>
12
+ </div>"
13
+ `;
14
+
15
+ exports[`SelectOption.vue > snapshot testing > matches snapshot with default props 1`] = `
16
+ "<div data-v-fabf1785="" class="unnnic-select-option">
17
+ <p data-v-fabf1785="" class="unnnic-select-option__label">Test Option</p>
18
+ </div>"
19
+ `;
20
+
21
+ exports[`SelectOption.vue > snapshot testing > matches snapshot with disabled state 1`] = `
22
+ "<div data-v-fabf1785="" class="unnnic-select-option unnnic-select-option--disabled">
23
+ <p data-v-fabf1785="" class="unnnic-select-option__label">Test Option</p>
24
+ </div>"
25
+ `;