@weni/unnnic-system 3.2.7 → 3.2.9-alpha.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 (222) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/components/Accordion/Accordion.vue.d.ts +1 -1
  3. package/dist/components/Alert/Alert.vue.d.ts +18 -119
  4. package/dist/components/Alert/Alert.vue.d.ts.map +1 -1
  5. package/dist/components/Alert/Version1dot1.vue.d.ts +2 -38
  6. package/dist/components/Alert/Version1dot1.vue.d.ts.map +1 -1
  7. package/dist/components/AudioRecorder/AudioHandler.vue.d.ts +2 -2
  8. package/dist/components/AudioRecorder/AudioPlayer.vue.d.ts +1 -1
  9. package/dist/components/AudioRecorder/AudioRecorder.vue.d.ts +5 -5
  10. package/dist/components/AvatarIcon/AvatarIcon.vue.d.ts +2 -2
  11. package/dist/components/Banner/Banner.vue.d.ts +1 -1
  12. package/dist/components/Banner/InfoBanner.vue.d.ts +1 -1
  13. package/dist/components/Breadcrumb/Breadcrumb.vue.d.ts +1 -1
  14. package/dist/components/Button/Button.vue.d.ts +2 -2
  15. package/dist/components/Button/Button.vue.d.ts.map +1 -1
  16. package/dist/components/Button/ButtonIcon.vue.d.ts +1 -1
  17. package/dist/components/Button/types.d.ts +1 -1
  18. package/dist/components/Button/types.d.ts.map +1 -1
  19. package/dist/components/Card/AccountCard.vue.d.ts +3 -3
  20. package/dist/components/Card/BlankCard.vue.d.ts +1 -1
  21. package/dist/components/Card/Card.vue.d.ts +21 -21
  22. package/dist/components/Card/CardCompany.vue.d.ts +8 -8
  23. package/dist/components/Card/CardData.vue.d.ts +1 -1
  24. package/dist/components/Card/CardStatusesContainer.vue.d.ts +4 -4
  25. package/dist/components/Card/ContentCard.vue.d.ts +2 -2
  26. package/dist/components/Card/DashCard.vue.d.ts +4 -4
  27. package/dist/components/Card/DefaultCard.vue.d.ts +1 -1
  28. package/dist/components/Card/MarketplaceCard.vue.d.ts +2 -2
  29. package/dist/components/Card/SimpleCard.vue.d.ts +3 -3
  30. package/dist/components/Card/StatusCard.vue.d.ts +2 -2
  31. package/dist/components/Card/TitleCard.vue.d.ts +2 -2
  32. package/dist/components/CardImage/CardImage.vue.d.ts +8 -8
  33. package/dist/components/CardInformation/CardInformation.vue.d.ts +4 -4
  34. package/dist/components/CardProject/CardProject.vue.d.ts +3 -3
  35. package/dist/components/Carousel/Carousel.vue.d.ts +11 -11
  36. package/dist/components/Carousel/TagCarousel.vue.d.ts +9 -9
  37. package/dist/components/ChartBar/ChartBar.vue.d.ts +8 -8
  38. package/dist/components/ChartLine/ChartLine.vue.d.ts +1 -1
  39. package/dist/components/ChatText/ChatText.vue.d.ts +2 -2
  40. package/dist/components/ChatsContact/ChatsContact.vue.d.ts +15 -15
  41. package/dist/components/ChatsDashboardTagLive/ChatsDashboardTagLive.vue.d.ts +1 -1
  42. package/dist/components/ChatsHeader/ChatsHeader.vue.d.ts +1 -1
  43. package/dist/components/ChatsHeader/ChatsHeader.vue.d.ts.map +1 -1
  44. package/dist/components/ChatsMessage/ChatsMessage.vue.d.ts +5 -5
  45. package/dist/components/ChatsMessage/ChatsMessageStatusBackdrop.vue.d.ts +2 -2
  46. package/dist/components/ChatsMessage/ChatsMessageText.vue.d.ts.map +1 -1
  47. package/dist/components/ChatsNavbar/ChatsNavbar.vue.d.ts +1 -1
  48. package/dist/components/ChatsUserAvatar/ChatsUserAvatar.vue.d.ts +2 -2
  49. package/dist/components/Checkbox/Checkbox.vue.d.ts +3 -3
  50. package/dist/components/Chip/Chip.vue.d.ts.map +1 -1
  51. package/dist/components/Comment/Comment.vue.d.ts +1 -1
  52. package/dist/components/DataArea/DataArea.vue.d.ts +2 -2
  53. package/dist/components/DataTable/index.vue.d.ts +1 -1
  54. package/dist/components/DataTable/index.vue.d.ts.map +1 -1
  55. package/dist/components/DateFilter/DateFilter.vue.d.ts +182 -27
  56. package/dist/components/DatePicker/DatePicker.vue.d.ts +8 -8
  57. package/dist/components/DatePicker/DatePicker.vue.d.ts.map +1 -1
  58. package/dist/components/Drawer/Drawer.vue.d.ts +7 -7
  59. package/dist/components/Drawer/Drawer.vue.d.ts.map +1 -1
  60. package/dist/components/Dropdown/Dropdown.vue.d.ts +1 -1
  61. package/dist/components/Dropdown/LanguageSelect.vue.d.ts +3 -3
  62. package/dist/components/EmojiPicker/EmojiPicker.vue.d.ts.map +1 -1
  63. package/dist/components/Flag.vue.d.ts +2 -2
  64. package/dist/components/FormElement/FormElement.vue.d.ts +38 -32
  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 +7 -7
  70. package/dist/components/Input/BaseInput.vue.d.ts +10 -1
  71. package/dist/components/Input/BaseInput.vue.d.ts.map +1 -1
  72. package/dist/components/Input/Input.vue.d.ts +182 -27
  73. package/dist/components/Input/Input.vue.d.ts.map +1 -1
  74. package/dist/components/Input/TextInput.vue.d.ts +31 -13
  75. package/dist/components/Input/TextInput.vue.d.ts.map +1 -1
  76. package/dist/components/InputDatePicker/InputDatePicker.vue.d.ts +192 -37
  77. package/dist/components/InputNext/InputNext.vue.d.ts +3 -3
  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 +9 -9
  82. package/dist/components/ModalDialog/ModalDialog.vue.d.ts.map +1 -1
  83. package/dist/components/ModalNext/ModalNext.vue.d.ts +190 -35
  84. package/dist/components/ModalUpload/ModalUpload.vue.d.ts +14 -14
  85. package/dist/components/MoodRating/MoodRating.vue.d.ts +1 -1
  86. package/dist/components/MultiSelect/MultiSelect.vue.d.ts +7 -7
  87. package/dist/components/Pagination/Pagination.vue.d.ts +6 -6
  88. package/dist/components/ProgressBar/ProgressBar.vue.d.ts +1 -1
  89. package/dist/components/Radio/Radio.vue.d.ts +2 -2
  90. package/dist/components/SelectSmart/SelectSmart.vue.d.ts +45 -27
  91. package/dist/components/SelectSmart/SelectSmartMultipleHeader.vue.d.ts +8 -8
  92. package/dist/components/SelectSmart/SelectSmartOption.vue.d.ts +4 -4
  93. package/dist/components/SelectTime/index.vue.d.ts +31 -13
  94. package/dist/components/SkeletonLoading/skeletonTheme.vue.d.ts +1 -1
  95. package/dist/components/Slider/Slider.vue.d.ts +2 -2
  96. package/dist/components/StarRating/StarRating.vue.d.ts +1 -1
  97. package/dist/components/Switch/Switch.vue.d.ts +2 -2
  98. package/dist/components/Tab/Tab.vue.d.ts +2 -2
  99. package/dist/components/TableNext/TableBodyCell.vue.d.ts +2 -2
  100. package/dist/components/TableNext/TablePagination.vue.d.ts +6 -6
  101. package/dist/components/TabsExpanded/TabsExpanded.vue.d.ts +1 -1
  102. package/dist/components/Tag/BrandTag.vue.d.ts +2 -2
  103. package/dist/components/Tag/DefaultTag.vue.d.ts +2 -2
  104. package/dist/components/Tag/IndicatorTag.vue.d.ts +2 -2
  105. package/dist/components/Tag/Tag.vue.d.ts +8 -8
  106. package/dist/components/Tag/TagNext.vue.d.ts.map +1 -1
  107. package/dist/components/TemplatePreview/TemplatePreview.vue.d.ts +9 -0
  108. package/dist/components/TemplatePreview/TemplatePreview.vue.d.ts.map +1 -0
  109. package/dist/components/TemplatePreview/TemplatePreviewModal.vue.d.ts +15 -0
  110. package/dist/components/TemplatePreview/TemplatePreviewModal.vue.d.ts.map +1 -0
  111. package/dist/components/TextArea/TextArea.vue.d.ts +38 -32
  112. package/dist/components/TextArea/TextArea.vue.d.ts.map +1 -1
  113. package/dist/components/Toast/Toast.vue.d.ts +16 -0
  114. package/dist/components/Toast/Toast.vue.d.ts.map +1 -0
  115. package/dist/components/Toast/ToastManager.d.ts +14 -0
  116. package/dist/components/Toast/ToastManager.d.ts.map +1 -0
  117. package/dist/components/Toast/types.d.ts +35 -0
  118. package/dist/components/Toast/types.d.ts.map +1 -0
  119. package/dist/components/ToolTip/ToolTip.vue.d.ts +1 -1
  120. package/dist/components/Tour/Tour.vue.d.ts +6 -6
  121. package/dist/components/Tour/TourPopover.vue.d.ts +6 -6
  122. package/dist/components/UploadArea/UploadArea.vue.d.ts +7 -7
  123. package/dist/components/index.d.ts +2116 -1064
  124. package/dist/components/index.d.ts.map +1 -1
  125. package/dist/{es-57bb200f.mjs → es-2735a8fb.js} +1 -1
  126. package/dist/{index-5f770b98.mjs → index-e012fa52.js} +8428 -8113
  127. package/dist/{pt-br-dc8f4568.mjs → pt-br-f38a8b9c.js} +1 -1
  128. package/dist/style.css +1 -1
  129. package/dist/unnnic.js +188 -0
  130. package/dist/{unnnic.umd.js → unnnic.umd.cjs} +42 -41
  131. package/dist/utils/call.d.ts +2 -1
  132. package/dist/utils/call.d.ts.map +1 -1
  133. package/package.json +10 -9
  134. package/src/assets/icons/script-to-convert-svg-to-vue.js +4 -7
  135. package/src/assets/img/previews/doc-preview.png +0 -0
  136. package/src/assets/img/previews/image-preview.png +0 -0
  137. package/src/assets/img/previews/video-preview.png +0 -0
  138. package/src/assets/scss/scheme-colors.scss +131 -4
  139. package/src/assets/tokens/colors.json +2 -2
  140. package/src/components/Alert/Alert.vue +26 -135
  141. package/src/components/Alert/Version1dot1.vue +0 -36
  142. package/src/components/AudioRecorder/AudioRecorder.vue +3 -2
  143. package/src/components/Button/Button.vue +61 -109
  144. package/src/components/Button/__tests__/Button.spec.js +2 -2
  145. package/src/components/Button/types.ts +1 -2
  146. package/src/components/Card/Card.vue +4 -1
  147. package/src/components/ChartMultiLine/Line/Line.vue +2 -1
  148. package/src/components/ChatsContact/ChatsContact.vue +1 -1
  149. package/src/components/ChatsHeader/ChatsHeader.vue +4 -2
  150. package/src/components/ChatsMessage/ChatsMessageText.vue +5 -5
  151. package/src/components/Chip/Chip.vue +62 -57
  152. package/src/components/Chip/__tests__/Chip.spec.js +18 -18
  153. package/src/components/DataTable/index.vue +8 -5
  154. package/src/components/DatePicker/DatePicker.vue +29 -16
  155. package/src/components/Drawer/Drawer.vue +4 -1
  156. package/src/components/Drawer/__tests__/Drawer.spec.js +9 -3
  157. package/src/components/DropArea/DropArea.vue +1 -1
  158. package/src/components/Dropdown/__tests__/Dropdown.spec.js +17 -17
  159. package/src/components/EmojiPicker/EmojiPicker.vue +57 -48
  160. package/src/components/EmojiPicker/__tests__/EmojiPicker.spec.js +84 -23
  161. package/src/components/Flag.vue +0 -1
  162. package/src/components/FormElement/FormElement.vue +52 -92
  163. package/src/components/Icon/types.ts +2 -2
  164. package/src/components/Icon.vue +3 -1
  165. package/src/components/Input/BaseInput.vue +10 -12
  166. package/src/components/Input/Input.scss +17 -20
  167. package/src/components/Input/Input.vue +96 -28
  168. package/src/components/Input/TextInput.vue +28 -41
  169. package/src/components/Input/__test__/TextInput.spec.js +5 -5
  170. package/src/components/Input/__test__/__snapshots__/Input.spec.js.snap +12 -3
  171. package/src/components/Input/__test__/__snapshots__/TextInput.spec.js.snap +1 -1
  172. package/src/components/InputDatePicker/InputDatePicker.vue +1 -1
  173. package/src/components/Label/Label.vue +52 -21
  174. package/src/components/Label/__tests__/Label.spec.js +1 -1
  175. package/src/components/Label/__tests__/__snapshots__/Label.spec.js.snap +1 -1
  176. package/src/components/ModalDialog/ModalDialog.vue +1 -0
  177. package/src/components/ModalDialog/__tests__/__snapshots__/ModalDialog.spec.js.snap +1 -1
  178. package/src/components/ModalNext/ModalNext.vue +2 -2
  179. package/src/components/SelectSmart/SelectSmart.vue +15 -4
  180. package/src/components/SelectSmart/__tests__/SelectSmart.spec.js +2 -2
  181. package/src/components/Switch/__tests__/Switch.spec.js +6 -2
  182. package/src/components/TableNext/__test__/__snapshots__/TableNext.spec.js.snap +2 -2
  183. package/src/components/TableNext/__test__/__snapshots__/TablePagination.spec.js.snap +2 -2
  184. package/src/components/Tag/TagNext.vue +2 -8
  185. package/src/components/TemplatePreview/TemplatePreview.vue +252 -0
  186. package/src/components/TemplatePreview/TemplatePreviewModal.vue +51 -0
  187. package/src/components/TemplatePreview/types.d.ts +16 -0
  188. package/src/components/TextArea/TextArea.vue +13 -9
  189. package/src/components/TextArea/__test__/__snapshots__/TextArea.spec.js.snap +7 -2
  190. package/src/components/Toast/Toast.vue +236 -0
  191. package/src/components/Toast/ToastManager.ts +110 -0
  192. package/src/components/Toast/types.ts +57 -0
  193. package/src/components/Tour/TourPopover.vue +1 -1
  194. package/src/components/__tests__/Icon.spec.js +2 -2
  195. package/src/components/index.ts +105 -91
  196. package/src/index.ts +1 -1
  197. package/src/main.ts +1 -1
  198. package/src/stories/Alert.stories.js +6 -67
  199. package/src/stories/Button.stories.js +3 -18
  200. package/src/stories/ChatsHeader.stories.js +1 -1
  201. package/src/stories/ChatsMessage.stories.js +0 -1
  202. package/src/stories/Chip.stories.js +7 -4
  203. package/src/stories/Input.stories.js +16 -3
  204. package/src/stories/Label.stories.js +7 -0
  205. package/src/stories/SelectSmart.stories.js +1 -1
  206. package/src/stories/TableNext.stories.js +1 -1
  207. package/src/stories/TemplatePreview.stories.js +94 -0
  208. package/src/stories/TemplatePreviewModal.stories.js +110 -0
  209. package/src/stories/Toast.mdx +123 -0
  210. package/src/stories/Toast.stories.js +126 -0
  211. package/src/types/index.d.ts +2 -2
  212. package/src/types/scheme-colors.d.ts +121 -16
  213. package/src/types/unnnic-utils.d.ts +87 -87
  214. package/src/types/vue-shims.d.ts +1 -1
  215. package/src/types/vueuse-overrides.d.ts +2 -2
  216. package/src/utils/call.js +46 -18
  217. package/src/utils/plugins/i18n.js +0 -1
  218. package/dist/unnnic.mjs +0 -182
  219. package/src/components/Alert/AlertBanner.vue +0 -182
  220. package/src/components/Alert/AlertCaller.vue +0 -49
  221. package/src/components/Alert/__tests__/AlertBanner.spec.js +0 -89
  222. package/src/components/Alert/__tests__/AlertCaller.spec.js +0 -98
@@ -5,33 +5,45 @@ import UnnnicEmojiPicker from '../EmojiPicker.vue';
5
5
  vi.mock('emoji-mart-vue-fast/src', () => ({
6
6
  Picker: {
7
7
  name: 'Picker',
8
- props: ['data', 'set', 'theme', 'preview', 'search', 'navPosition', 'noResultsEmoji', 'maxFrequentRows', 'i18n', 'color'],
8
+ props: [
9
+ 'data',
10
+ 'set',
11
+ 'theme',
12
+ 'preview',
13
+ 'search',
14
+ 'navPosition',
15
+ 'noResultsEmoji',
16
+ 'maxFrequentRows',
17
+ 'i18n',
18
+ 'color',
19
+ ],
9
20
  emits: ['select', 'click-outside'],
10
- template: '<div class="emoji-mart-picker"></div>'
21
+ template: '<div class="emoji-mart-picker"></div>',
11
22
  },
12
- EmojiIndex: vi.fn().mockImplementation(() => ({}))
23
+ EmojiIndex: vi.fn().mockImplementation(() => ({})),
13
24
  }));
14
25
 
15
26
  vi.mock('emoji-mart-vue-fast/data/all.json', () => ({
16
- default: {}
27
+ default: {},
17
28
  }));
18
29
 
19
30
  vi.mock('emoji-mart-vue-fast/css/emoji-mart.css', () => ({}));
20
31
 
21
32
  vi.mock('../../utils/plugins/i18n', () => {
22
- const current = 'pt-br'
33
+ const current = 'pt-br';
23
34
  return {
24
35
  default: {
25
36
  global: {
26
- get locale() { return current },
37
+ get locale() {
38
+ return current;
39
+ },
27
40
  set locale(_v) {},
28
41
  t: (key) => `${key}`,
29
42
  },
30
43
  },
31
- }
44
+ };
32
45
  });
33
46
 
34
-
35
47
  describe('UnnnicEmojiPicker', () => {
36
48
  let wrapper;
37
49
 
@@ -50,12 +62,26 @@ describe('UnnnicEmojiPicker', () => {
50
62
  stubs: {
51
63
  Picker: {
52
64
  name: 'Picker',
53
- props: ['data', 'set', 'theme', 'emoji', 'title', 'showPreview', 'search', 'navPosition', 'noResultsEmoji', 'maxFrequentRows', 'i18n', 'color'],
65
+ props: [
66
+ 'data',
67
+ 'set',
68
+ 'theme',
69
+ 'emoji',
70
+ 'title',
71
+ 'showPreview',
72
+ 'search',
73
+ 'navPosition',
74
+ 'noResultsEmoji',
75
+ 'maxFrequentRows',
76
+ 'i18n',
77
+ 'color',
78
+ ],
54
79
  emits: ['select', 'click-outside'],
55
- template: '<div class="emoji-mart-picker" @select="$emit(\'select\', $event)" @click-outside="$emit(\'click-outside\')"></div>'
56
- }
57
- }
58
- }
80
+ template:
81
+ '<div class="emoji-mart-picker" @select="$emit(\'select\', $event)" @click-outside="$emit(\'click-outside\')"></div>',
82
+ },
83
+ },
84
+ },
59
85
  });
60
86
  });
61
87
 
@@ -96,12 +122,26 @@ describe('UnnnicEmojiPicker', () => {
96
122
  stubs: {
97
123
  Picker: {
98
124
  name: 'Picker',
99
- props: ['data', 'set', 'theme', 'emoji', 'title', 'showPreview', 'search', 'navPosition', 'noResultsEmoji', 'maxFrequentRows', 'i18n', 'color'],
125
+ props: [
126
+ 'data',
127
+ 'set',
128
+ 'theme',
129
+ 'emoji',
130
+ 'title',
131
+ 'showPreview',
132
+ 'search',
133
+ 'navPosition',
134
+ 'noResultsEmoji',
135
+ 'maxFrequentRows',
136
+ 'i18n',
137
+ 'color',
138
+ ],
100
139
  emits: ['select', 'click-outside'],
101
- template: '<div class="emoji-mart-picker" @select="$emit(\'select\', $event)"></div>'
102
- }
103
- }
104
- }
140
+ template:
141
+ '<div class="emoji-mart-picker" @select="$emit(\'select\', $event)"></div>',
142
+ },
143
+ },
144
+ },
105
145
  });
106
146
 
107
147
  const emojiMock = { id: 'smile', native: '😊' };
@@ -117,15 +157,15 @@ describe('UnnnicEmojiPicker', () => {
117
157
  // Simula um click fora do componente
118
158
  const outsideElement = document.createElement('div');
119
159
  document.body.appendChild(outsideElement);
120
-
160
+
121
161
  const clickEvent = new Event('click', { bubbles: true });
122
162
  Object.defineProperty(clickEvent, 'target', { value: outsideElement });
123
-
163
+
124
164
  document.dispatchEvent(clickEvent);
125
-
165
+
126
166
  await wrapper.vm.$nextTick();
127
167
  expect(wrapper.emitted('close')).toBeTruthy();
128
-
168
+
129
169
  // Cleanup
130
170
  document.body.removeChild(outsideElement);
131
171
  });
@@ -133,7 +173,28 @@ describe('UnnnicEmojiPicker', () => {
133
173
  it('renders bottom position class when position is bottom', async () => {
134
174
  const custom = mount(UnnnicEmojiPicker, {
135
175
  props: { position: 'bottom' },
136
- global: { stubs: { Picker: { name: 'Picker', props: ['data','set','theme','emoji','title','showPreview','search','navPosition','noResultsEmoji','maxFrequentRows','i18n','color'], template: '<div />' } } }
176
+ global: {
177
+ stubs: {
178
+ Picker: {
179
+ name: 'Picker',
180
+ props: [
181
+ 'data',
182
+ 'set',
183
+ 'theme',
184
+ 'emoji',
185
+ 'title',
186
+ 'showPreview',
187
+ 'search',
188
+ 'navPosition',
189
+ 'noResultsEmoji',
190
+ 'maxFrequentRows',
191
+ 'i18n',
192
+ 'color',
193
+ ],
194
+ template: '<div />',
195
+ },
196
+ },
197
+ },
137
198
  });
138
199
  expect(custom.classes()).toContain('emoji-picker--bottom');
139
200
  custom.unmount();
@@ -6,7 +6,6 @@
6
6
  </template>
7
7
 
8
8
  <script>
9
- /* eslint-disable global-require */
10
9
  /* eslint-disable vue/multi-word-component-names */
11
10
  import UnnnicIcon from './Icon.vue';
12
11
 
@@ -17,52 +17,31 @@
17
17
 
18
18
  <slot></slot>
19
19
 
20
- <p
21
- v-if="shouldShowErrorSection"
22
- class="unnnic-form-element__error"
23
- >
24
- <template v-if="error !== true">
25
- <UnnnicIcon
26
- size="sm"
27
- icon="warning"
28
- scheme="aux-red-500"
29
- />
30
-
31
- {{ fullySanitize(error) }}
32
- </template>
33
-
34
- <span
35
- v-if="!!$slots.rightMessage"
36
- class="unnnic-form-element__right-message"
37
- >
38
- <slot name="rightMessage"></slot>
39
- </span>
40
- </p>
41
-
42
- <p
43
- v-if="message || !!$slots.rightMessage"
44
- class="unnnic-form-element__message"
45
- >
46
- {{ fullySanitize(message) }}
47
-
48
- <span
49
- v-if="!shouldShowErrorSection && !!$slots.rightMessage"
50
- class="unnnic-form-element__right-message"
51
- >
20
+ <section class="unnnic-form-element__hints-container">
21
+ <section class="unnnic-form-element__message-container">
22
+ <p
23
+ v-if="message"
24
+ class="unnnic-form-element__message"
25
+ >
26
+ {{ fullySanitize(message) }}
27
+ </p>
28
+ <p
29
+ v-if="!!error.length"
30
+ class="unnnic-form-element__message error"
31
+ >
32
+ {{ Array.isArray(error) ? error.join(', ') : error }}
33
+ </p>
34
+ </section>
35
+ <p v-if="!!$slots.rightMessage">
52
36
  <slot name="rightMessage"></slot>
53
- </span>
54
- </p>
37
+ </p>
38
+ </section>
55
39
  </section>
56
40
  </template>
57
41
 
58
42
  <script>
59
- import UnnnicIcon from '../../components/Icon.vue';
60
43
  import { fullySanitize } from '../../utils/sanitize';
61
44
  export default {
62
- components: {
63
- UnnnicIcon,
64
- },
65
-
66
45
  props: {
67
46
  size: {
68
47
  type: String,
@@ -70,107 +49,88 @@ export default {
70
49
  validator: (size) => ['md', 'sm'].includes(size),
71
50
  },
72
51
 
73
- label: String,
52
+ label: { type: String, default: '' },
74
53
 
75
- fixedLabel: Boolean,
54
+ fixedLabel: { type: Boolean, default: false },
76
55
 
77
56
  error: {
78
57
  type: [Boolean, String],
79
58
  default: false,
80
59
  },
81
60
 
82
- message: String,
83
-
84
- disabled: Boolean,
85
- },
86
-
87
- data() {
88
- return {};
89
- },
61
+ message: { type: String, default: '' },
90
62
 
91
- computed: {
92
- shouldShowErrorSection() {
93
- return this.error && (this.error !== true || !!this.$slots.rightMessage);
94
- },
63
+ disabled: { type: Boolean, default: false },
95
64
  },
96
65
  methods: {
97
66
  fullySanitize,
98
- }
67
+ },
99
68
  };
100
69
  </script>
101
70
 
102
71
  <style lang="scss" scoped>
103
72
  @use '@/assets/scss/unnnic' as *;
104
73
 
74
+ * {
75
+ margin: $unnnic-space-0;
76
+ padding: $unnnic-space-0;
77
+ box-sizing: border-box;
78
+ }
79
+
105
80
  .unnnic-form-element {
106
81
  &__label {
107
- margin: 0;
108
- margin-bottom: $unnnic-spacing-nano;
109
-
82
+ font: $unnnic-font-body;
110
83
  color: $unnnic-color-neutral-cloudy;
111
- font-family: $unnnic-font-family-secondary;
112
- font-weight: $unnnic-font-weight-regular;
113
- font-size: $unnnic-font-size-body-gt;
114
- line-height: $unnnic-font-size-body-gt + $unnnic-line-height-md;
115
-
116
- $label-bottom-spacing: 3px;
84
+ margin-bottom: $unnnic-space-1;
85
+ display: flex;
86
+ align-items: center;
87
+ gap: $unnnic-space-2;
117
88
 
118
89
  &--fixed {
119
- margin-top: -$unnnic-font-size-body-gt - $unnnic-line-height-md +
120
- $label-bottom-spacing;
90
+ margin-top: -$unnnic-font-size-body-gt - $unnnic-space-2 + $unnnic-space-1;
121
91
  }
122
92
 
123
93
  &--fixed {
124
- margin-bottom: 0;
94
+ margin-bottom: $unnnic-space-0;
125
95
  position: absolute;
126
- padding: 0 $unnnic-spacing-nano;
127
- margin-left: $unnnic-spacing-xs;
96
+ padding: $unnnic-space-0 $unnnic-space-1;
97
+ margin-left: $unnnic-space-2;
128
98
 
129
99
  &:after {
130
100
  content: ' ';
131
101
  position: absolute;
132
- left: 0;
133
- bottom: $label-bottom-spacing - $unnnic-border-width-thinner;
102
+ left: $unnnic-space-0;
103
+ bottom: $unnnic-space-1 - $unnnic-border-width-thinner;
134
104
  width: 100%;
135
105
  height: $unnnic-border-width-thinner;
136
- background-color: $unnnic-color-neutral-white;
106
+ background-color: $unnnic-color-white;
137
107
  }
138
108
  }
139
109
  }
140
110
 
141
- &__error,
142
111
  &__message {
143
- margin: 0;
144
- margin-top: $unnnic-spacing-stack-nano;
145
-
146
- color: $unnnic-color-neutral-cloudy;
147
- font-family: $unnnic-font-family-secondary;
148
- font-weight: $unnnic-font-weight-regular;
149
- font-size: $unnnic-font-size-body-md;
150
- line-height: $unnnic-font-size-body-md + $unnnic-line-height-md;
112
+ &.error {
113
+ color: $unnnic-color-fg-critical;
114
+ }
151
115
  }
152
116
 
153
- &__message {
117
+ &__hints-container {
154
118
  display: flex;
155
- column-gap: $unnnic-spacing-nano;
119
+ justify-content: space-between;
120
+ margin-top: $unnnic-space-1;
121
+ font: $unnnic-font-caption-2;
122
+ color: $unnnic-color-fg-base;
156
123
  }
157
124
 
158
- &__right-message {
159
- margin-left: auto;
160
- }
161
-
162
- &__error {
125
+ &__message-container {
163
126
  display: flex;
164
- column-gap: $unnnic-spacing-nano;
165
- align-items: center;
166
-
167
- color: $unnnic-color-aux-red-500;
127
+ flex-direction: column;
128
+ gap: $unnnic-space-1;
168
129
  }
169
130
 
170
131
  &--disabled .unnnic-form-element__label,
171
132
  &--disabled .unnnic-form-element__message {
172
133
  user-select: none;
173
- color: $unnnic-color-neutral-cleanest;
174
134
  }
175
135
  }
176
136
  </style>
@@ -1,9 +1,9 @@
1
- import type { SchemeColor } from "@/types/scheme-colors";
1
+ import type { SchemeColor } from '@/types/scheme-colors';
2
2
 
3
3
  // Re-export SchemeColor for backward compatibility
4
4
  export type { SchemeColor };
5
5
 
6
- export type IconSize =
6
+ export type IconSize =
7
7
  | 'nano'
8
8
  | 'xs'
9
9
  | 'sm'
@@ -74,7 +74,9 @@ const materialSymbolsName = computed(() => {
74
74
  return null;
75
75
  }
76
76
 
77
- return (OldIconsMap as Record<string, string>)[props.icon as string] || props.icon;
77
+ return (
78
+ (OldIconsMap as Record<string, string>)[props.icon as string] || props.icon
79
+ );
78
80
  });
79
81
 
80
82
  const onClick = (event: Event) => {
@@ -7,13 +7,13 @@
7
7
  :class="classes"
8
8
  :type="nativeType"
9
9
  />
10
-
11
10
  <input
12
11
  v-else
13
12
  v-bind="attributes"
14
13
  :value="fullySanitize(modelValue)"
15
14
  :class="classes"
16
15
  :type="nativeType"
16
+ :maxlength="maxlength"
17
17
  />
18
18
  </template>
19
19
 
@@ -49,6 +49,10 @@ export default {
49
49
  },
50
50
  hasIconLeft: Boolean,
51
51
  hasIconRight: Boolean,
52
+ maxlength: {
53
+ type: Number,
54
+ default: null,
55
+ },
52
56
  },
53
57
  emits: ['update:modelValue'],
54
58
  data() {
@@ -96,27 +100,21 @@ export default {
96
100
  &.size {
97
101
  &-md {
98
102
  @include input-md-font;
99
-
100
- padding: ($unnnic-spacing-ant - $unnnic-border-width-thinner)
101
- ($unnnic-spacing-sm - $unnnic-border-width-thinner);
103
+ padding: $unnnic-space-3 $unnnic-space-4;
102
104
  }
103
105
 
104
106
  &-sm {
105
107
  @include input-sm-font;
106
-
107
- padding: $unnnic-spacing-xs
108
- ($unnnic-spacing-sm - $unnnic-border-width-thinner);
108
+ padding: $unnnic-space-2 $unnnic-space-4;
109
109
  }
110
110
  }
111
111
 
112
112
  &.input--has-icon-left {
113
- padding-left: $unnnic-spacing-sm + $unnnic-icon-size-sm + $unnnic-spacing-xs -
114
- $unnnic-border-width-thinner;
113
+ padding-left: $unnnic-space-10;
115
114
  }
116
115
 
117
116
  &.input--has-icon-right {
118
- padding-right: $unnnic-spacing-sm + $unnnic-icon-size-sm +
119
- $unnnic-spacing-xs - $unnnic-border-width-thinner;
117
+ padding-right: $unnnic-space-10;
120
118
  }
121
119
 
122
120
  &.error {
@@ -126,7 +124,7 @@ export default {
126
124
  &:-ms-input-placeholder,
127
125
  &::-ms-input-placeholder {
128
126
  /* Internet Explorer 10-11 */
129
- color: $unnnic-color-brand-sec;
127
+ color: $unnnic-color-fg-muted;
130
128
  }
131
129
  }
132
130
  </style>
@@ -1,43 +1,40 @@
1
1
  @use '@/assets/scss/unnnic' as *;
2
2
 
3
3
  @mixin input-base {
4
- background: $unnnic-color-neutral-white;
5
- border: $unnnic-border-width-thinner solid $unnnic-color-neutral-clean;
4
+ background: $unnnic-color-white;
5
+ border: $unnnic-border-width-thinner solid $unnnic-color-border-base;
6
6
  outline: none;
7
- border-radius: $unnnic-border-radius-sm;
8
- color: $unnnic-color-neutral-darkest;
9
- caret-color: $unnnic-color-neutral-clean;
10
- font-weight: $unnnic-font-weight-regular;
11
- font-family: $unnnic-font-family-secondary;
7
+ border-radius: $unnnic-radius-2;
8
+ color: $unnnic-color-fg-emphasized;
9
+ caret-color: $unnnic-color-fg-muted;
10
+ font: $unnnic-font-body;
12
11
 
13
12
  &:focus {
14
- border-color: $unnnic-color-weni-600;
13
+ border-color: $unnnic-color-border-active;
15
14
  }
16
15
 
17
16
  &::placeholder {
18
- color: $unnnic-color-neutral-cleanest;
19
- opacity: 1; /* Firefox */
17
+ color: $unnnic-color-fg-muted;
18
+ opacity: 1;
19
+ /* Firefox */
20
20
  }
21
21
 
22
22
  &:disabled {
23
- border-color: $unnnic-color-neutral-cleanest;
24
- background-color: $unnnic-color-neutral-lightest;
23
+ border-color: $unnnic-color-border-muted;
24
+ background-color: $unnnic-color-bg-muted;
25
25
  cursor: not-allowed;
26
- color: $unnnic-color-neutral-cleanest;
26
+ color: $unnnic-color-fg-muted;
27
27
  }
28
28
  }
29
29
 
30
30
  @mixin input-sm-font {
31
- font-size: $unnnic-font-size-body-md;
32
- line-height: $unnnic-font-size-body-md + $unnnic-line-height-medium;
31
+ font: $unnnic-font-body;
33
32
  }
34
33
 
35
34
  @mixin input-md-font {
36
- font-size: $unnnic-font-size-body-gt;
37
- line-height: $unnnic-font-size-body-gt + $unnnic-line-height-medium;
35
+ font: $unnnic-font-body;
38
36
  }
39
37
 
40
38
  @mixin input-error {
41
- border-color: $unnnic-color-aux-red-500;
42
- color: $unnnic-color-aux-red-500;
43
- }
39
+ border-color: $unnnic-color-border-critical;
40
+ }