@vc-shell/framework 1.0.289 → 1.0.291

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 (178) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/core/composables/index.ts +1 -0
  3. package/core/composables/useTheme/index.ts +60 -0
  4. package/core/directives/loading/styles.css +6 -1
  5. package/dist/core/composables/index.d.ts +1 -0
  6. package/dist/core/composables/index.d.ts.map +1 -1
  7. package/dist/core/composables/useTheme/index.d.ts +11 -0
  8. package/dist/core/composables/useTheme/index.d.ts.map +1 -0
  9. package/dist/framework.js +27889 -27362
  10. package/dist/index.css +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/locales/en.json +6 -0
  13. package/dist/shared/components/app-bar-button/app-bar-button.vue.d.ts +56 -0
  14. package/dist/shared/components/app-bar-button/app-bar-button.vue.d.ts.map +1 -0
  15. package/dist/shared/components/app-bar-button/index.d.ts +2 -0
  16. package/dist/shared/components/app-bar-button/index.d.ts.map +1 -0
  17. package/dist/shared/components/app-switcher/components/vc-app-switcher/vc-app-switcher.vue.d.ts.map +1 -1
  18. package/dist/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts.map +1 -1
  19. package/dist/shared/components/index.d.ts +3 -0
  20. package/dist/shared/components/index.d.ts.map +1 -1
  21. package/dist/shared/components/language-selector/language-selector.vue.d.ts.map +1 -1
  22. package/dist/shared/components/notification-dropdown/notification-dropdown.vue.d.ts.map +1 -1
  23. package/dist/shared/components/notification-template/notification-template.vue.d.ts.map +1 -1
  24. package/dist/shared/components/sidebar/index.d.ts +2 -0
  25. package/dist/shared/components/sidebar/index.d.ts.map +1 -0
  26. package/dist/shared/components/sidebar/sidebar.vue.d.ts +49 -0
  27. package/dist/shared/components/sidebar/sidebar.vue.d.ts.map +1 -0
  28. package/dist/shared/components/theme-selector/index.d.ts +2 -0
  29. package/dist/shared/components/theme-selector/index.d.ts.map +1 -0
  30. package/dist/shared/components/theme-selector/theme-selector.vue.d.ts +3 -0
  31. package/dist/shared/components/theme-selector/theme-selector.vue.d.ts.map +1 -0
  32. package/dist/shared/components/user-dropdown-button/index.d.ts +6 -0
  33. package/dist/shared/components/user-dropdown-button/index.d.ts.map +1 -1
  34. package/dist/shared/components/user-dropdown-button/user-dropdown-button.vue.d.ts +1 -0
  35. package/dist/shared/components/user-dropdown-button/user-dropdown-button.vue.d.ts.map +1 -1
  36. package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts.map +1 -1
  37. package/dist/shared/modules/dynamic/types/index.d.ts +3 -0
  38. package/dist/shared/modules/dynamic/types/index.d.ts.map +1 -1
  39. package/dist/shared/pages/ChangePasswordPage/components/change-password/ChangePassword.vue.d.ts +16 -3
  40. package/dist/shared/pages/ChangePasswordPage/components/change-password/ChangePassword.vue.d.ts.map +1 -1
  41. package/dist/shared/pages/ChangePasswordPage/components/change-password/index.d.ts +7 -7
  42. package/dist/shared/pages/ChangePasswordPage/components/change-password/index.d.ts.map +1 -1
  43. package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts +24 -3
  44. package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts.map +1 -1
  45. package/dist/shared/pages/InvitePage/components/invite/index.d.ts +24 -1
  46. package/dist/shared/pages/InvitePage/components/invite/index.d.ts.map +1 -1
  47. package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts +24 -3
  48. package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts.map +1 -1
  49. package/dist/shared/pages/ResetPasswordPage/components/reset-password/index.d.ts +24 -1
  50. package/dist/shared/pages/ResetPasswordPage/components/reset-password/index.d.ts.map +1 -1
  51. package/dist/tailwind.config.d.ts +42 -15
  52. package/dist/tailwind.config.d.ts.map +1 -1
  53. package/dist/tsconfig.tsbuildinfo +1 -1
  54. package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts.map +1 -1
  55. package/dist/ui/components/atoms/vc-link/vc-link.vue.d.ts.map +1 -1
  56. package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts.map +1 -1
  57. package/dist/ui/components/atoms/vc-status/vc-status.vue.d.ts.map +1 -1
  58. package/dist/ui/components/atoms/vc-tooltip/vc-tooltip.vue.d.ts.map +1 -1
  59. package/dist/ui/components/atoms/vc-video/vc-video.vue.d.ts.map +1 -1
  60. package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.d.ts.map +1 -1
  61. package/dist/ui/components/molecules/vc-checkbox/vc-checkbox.vue.d.ts.map +1 -1
  62. package/dist/ui/components/molecules/vc-field/_internal/vc-field-type/vc-field-type.vue.d.ts.map +1 -1
  63. package/dist/ui/components/molecules/vc-field/vc-field.vue.d.ts.map +1 -1
  64. package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts.map +1 -1
  65. package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts.map +1 -1
  66. package/dist/ui/components/molecules/vc-slider/vc-slider.vue.d.ts.map +1 -1
  67. package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue.d.ts.map +1 -1
  68. package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue.d.ts.map +1 -1
  69. package/dist/ui/components/organisms/vc-app/vc-app.stories.d.ts +26 -0
  70. package/dist/ui/components/organisms/vc-app/vc-app.stories.d.ts.map +1 -1
  71. package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts +26 -0
  72. package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts.map +1 -1
  73. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue.d.ts.map +1 -1
  74. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue.d.ts.map +1 -1
  75. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue.d.ts.map +1 -1
  76. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts.map +1 -1
  77. package/dist/ui/components/organisms/vc-table/_internal/vc-table-add-new/vc-table-add-new.vue.d.ts.map +1 -1
  78. package/dist/ui/components/organisms/vc-table/_internal/vc-table-base-header/vc-table-base-header.vue.d.ts +1 -0
  79. package/dist/ui/components/organisms/vc-table/_internal/vc-table-base-header/vc-table-base-header.vue.d.ts.map +1 -1
  80. package/dist/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue.d.ts.map +1 -1
  81. package/dist/ui/components/organisms/vc-table/_internal/vc-table-empty/vc-table-empty.vue.d.ts.map +1 -1
  82. package/dist/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue.d.ts +1 -0
  83. package/dist/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue.d.ts.map +1 -1
  84. package/dist/ui/components/organisms/vc-table/_internal/vc-table-mobile-item/vc-table-mobile-item.vue.d.ts.map +1 -1
  85. package/dist/ui/components/organisms/vc-table/vc-table.stories.d.ts +15 -0
  86. package/dist/ui/components/organisms/vc-table/vc-table.stories.d.ts.map +1 -1
  87. package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts +3 -0
  88. package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts.map +1 -1
  89. package/package.json +4 -4
  90. package/shared/components/app-bar-button/app-bar-button.vue +169 -0
  91. package/shared/components/app-bar-button/index.ts +1 -0
  92. package/shared/components/app-switcher/components/vc-app-switcher/vc-app-switcher.vue +138 -38
  93. package/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue +10 -1
  94. package/shared/components/blade-navigation/composables/useBladeNavigation/index.ts +55 -30
  95. package/shared/components/change-password/change-password.vue +7 -1
  96. package/shared/components/common/popup/vc-popup-error.vue +1 -1
  97. package/shared/components/common/popup/vc-popup-warning.vue +1 -1
  98. package/shared/components/index.ts +3 -0
  99. package/shared/components/language-selector/language-selector.vue +55 -39
  100. package/shared/components/notification-dropdown/_internal/notification/notification.vue +7 -1
  101. package/shared/components/notification-dropdown/notification-dropdown.vue +96 -83
  102. package/shared/components/notification-template/notification-template.vue +66 -22
  103. package/shared/components/notifications/styles/index.scss +1 -0
  104. package/shared/components/sidebar/index.ts +1 -0
  105. package/shared/components/sidebar/sidebar.vue +96 -0
  106. package/shared/components/theme-selector/index.ts +1 -0
  107. package/shared/components/theme-selector/theme-selector.vue +95 -0
  108. package/shared/components/user-dropdown-button/user-dropdown-button.vue +155 -86
  109. package/shared/modules/assets/components/assets-details/assets-details.vue +9 -2
  110. package/shared/modules/assets-manager/components/assets-manager/assets-manager.vue +16 -6
  111. package/shared/modules/dynamic/composables/useFilterBuilder/index.ts +1 -1
  112. package/shared/modules/dynamic/helpers/nodeBuilder.ts +1 -1
  113. package/shared/modules/dynamic/pages/dynamic-blade-form.vue +6 -2
  114. package/shared/modules/dynamic/pages/dynamic-blade-list.vue +16 -2
  115. package/shared/modules/dynamic/types/index.ts +3 -0
  116. package/shared/pages/ChangePasswordPage/components/change-password/ChangePassword.vue +14 -9
  117. package/shared/pages/InvitePage/components/invite/Invite.vue +59 -15
  118. package/shared/pages/LoginPage/components/login/Login.vue +78 -22
  119. package/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue +67 -15
  120. package/tailwind.config.ts +281 -15
  121. package/ui/components/atoms/vc-badge/vc-badge.vue +38 -23
  122. package/ui/components/atoms/vc-button/vc-button.vue +37 -34
  123. package/ui/components/atoms/vc-card/vc-card.vue +17 -11
  124. package/ui/components/atoms/vc-col/vc-col.vue +4 -6
  125. package/ui/components/atoms/vc-container/vc-container.vue +26 -8
  126. package/ui/components/atoms/vc-hint/vc-hint.vue +8 -2
  127. package/ui/components/atoms/vc-icon/vc-icon.vue +3 -3
  128. package/ui/components/atoms/vc-image/vc-image.vue +33 -9
  129. package/ui/components/atoms/vc-label/vc-label.vue +38 -9
  130. package/ui/components/atoms/vc-link/vc-link.vue +15 -8
  131. package/ui/components/atoms/vc-loading/vc-loading.vue +37 -8
  132. package/ui/components/atoms/vc-progress/vc-progress.vue +29 -21
  133. package/ui/components/atoms/vc-row/vc-row.vue +4 -2
  134. package/ui/components/atoms/vc-status/vc-status.vue +29 -20
  135. package/ui/components/atoms/vc-status-icon/vc-status-icon.vue +20 -3
  136. package/ui/components/atoms/vc-switch/vc-switch.vue +41 -17
  137. package/ui/components/atoms/vc-tooltip/vc-tooltip.vue +35 -9
  138. package/ui/components/atoms/vc-video/vc-video.vue +28 -6
  139. package/ui/components/atoms/vc-widget/vc-widget.vue +59 -28
  140. package/ui/components/molecules/vc-breadcrumbs/_internal/vc-breadcrumbs-item/vc-breadcrumbs-item.vue +29 -27
  141. package/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue +34 -11
  142. package/ui/components/molecules/vc-checkbox/vc-checkbox.vue +43 -21
  143. package/ui/components/molecules/vc-editor/vc-editor.vue +70 -32
  144. package/ui/components/molecules/vc-field/_internal/vc-field-type/vc-field-type.vue +32 -16
  145. package/ui/components/molecules/vc-field/vc-field.vue +36 -13
  146. package/ui/components/molecules/vc-file-upload/vc-file-upload.vue +75 -25
  147. package/ui/components/molecules/vc-input/vc-input.vue +279 -218
  148. package/ui/components/molecules/vc-input-currency/vc-input-currency.vue +24 -2
  149. package/ui/components/molecules/vc-multivalue/vc-multivalue.vue +102 -64
  150. package/ui/components/molecules/vc-notification/vc-notification.vue +40 -15
  151. package/ui/components/molecules/vc-pagination/vc-pagination.vue +19 -15
  152. package/ui/components/molecules/vc-radio-button/vc-radio-button.vue +18 -23
  153. package/ui/components/molecules/vc-rating/vc-rating.vue +9 -5
  154. package/ui/components/molecules/vc-select/vc-select.vue +211 -65
  155. package/ui/components/molecules/vc-slider/vc-slider.vue +32 -13
  156. package/ui/components/molecules/vc-textarea/vc-textarea.vue +17 -12
  157. package/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue +68 -14
  158. package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue +112 -122
  159. package/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue +213 -96
  160. package/ui/components/organisms/vc-app/vc-app.vue +41 -15
  161. package/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue +78 -30
  162. package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue +81 -59
  163. package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue +27 -13
  164. package/ui/components/organisms/vc-blade/vc-blade.vue +177 -46
  165. package/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue +40 -11
  166. package/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue +52 -18
  167. package/ui/components/organisms/vc-gallery/vc-gallery.vue +38 -6
  168. package/ui/components/organisms/vc-login-form/vc-login-form.vue +40 -14
  169. package/ui/components/organisms/vc-popup/vc-popup.vue +186 -44
  170. package/ui/components/organisms/vc-table/_internal/vc-table-add-new/vc-table-add-new.vue +25 -6
  171. package/ui/components/organisms/vc-table/_internal/vc-table-base-header/vc-table-base-header.vue +48 -12
  172. package/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue +130 -60
  173. package/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue +55 -7
  174. package/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue +17 -5
  175. package/ui/components/organisms/vc-table/_internal/vc-table-empty/vc-table-empty.vue +38 -6
  176. package/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue +111 -62
  177. package/ui/components/organisms/vc-table/_internal/vc-table-mobile-item/vc-table-mobile-item.vue +139 -46
  178. package/ui/components/organisms/vc-table/vc-table.vue +370 -128
@@ -1,17 +1,17 @@
1
1
  <template>
2
2
  <div
3
- class="vc-select tw-box-border tw-w-full"
3
+ class="vc-select"
4
4
  :class="{
5
5
  'vc-select_opened': isOpened,
6
6
  'vc-select_error': error,
7
7
  'vc-select_disabled': disabled,
8
- 'tw-pb-[20px]': error || hint,
8
+ 'vc-select_has-hint-or-error': error || hint,
9
9
  }"
10
10
  >
11
11
  <!-- Select label -->
12
12
  <VcLabel
13
13
  v-if="label"
14
- class="tw-mb-2"
14
+ class="vc-select__label"
15
15
  :required="required"
16
16
  :multilanguage="multilanguage"
17
17
  :current-language="currentLanguage"
@@ -26,70 +26,66 @@
26
26
  </VcLabel>
27
27
 
28
28
  <!-- Select field -->
29
- <div class="tw-flex tw-flex-nowrap tw-items-start tw-relative">
29
+ <div class="vc-select__field-container">
30
30
  <div
31
31
  ref="dropdownToggleRef"
32
- class="tw-flex tw-flex-auto tw-text-left tw-max-w-full"
32
+ class="vc-select__dropdown-toggle"
33
33
  >
34
34
  <slot
35
35
  name="control"
36
36
  :toggle-handler="toggleDropdown"
37
37
  >
38
- <div class="tw-relative tw-flex tw-flex-auto tw-text-left tw-max-w-full">
38
+ <div class="vc-select__control">
39
39
  <div
40
40
  v-if="$slots['prepend']"
41
- class="tw-flex tw-items-center tw-flex-nowrap tw-pr-3"
41
+ class="vc-select__prepend"
42
42
  >
43
43
  <slot name="prepend"></slot>
44
44
  </div>
45
- <div class="tw-relative tw-flex tw-flex-auto tw-overflow-x-clip tw-truncate">
46
- <div
47
- class="tw-truncate vc-select__field-wrapper tw-relative tw-box-border tw-border tw-border-solid tw-border-[color:var(--select-border-color)] tw-rounded-[var(--select-border-radius)] tw-bg-[color:var(--select-background-color)] tw-flex tw-flex-col tw-flex-nowrap tw-flex-auto tw-items-stretch"
48
- >
49
- <div class="tw-flex tw-flex-col tw-flex-nowrap tw-flex-auto tw-relative">
50
- <div class="tw-flex tw-flex-nowrap tw-flex-auto tw-h-full tw-px-3">
45
+ <div class="vc-select__field-wrapper">
46
+ <div class="vc-select__field">
47
+ <div class="vc-select__field-inner">
48
+ <div class="vc-select__field-content">
51
49
  <div
52
50
  v-if="$slots['prepend-inner']"
53
- class="tw-flex tw-items-center tw-flex-nowrap tw-pr-3"
51
+ class="vc-select__prepend-inner"
54
52
  >
55
53
  <slot name="prepend-inner"></slot>
56
54
  </div>
57
- <div class="tw-flex tw-flex-nowrap tw-flex-auto tw-h-full tw-truncate">
55
+ <div class="vc-select__field-main">
58
56
  <div
59
57
  v-if="prefix"
60
- class="tw-flex tw-items-center tw-flex-wrap tw-pr-3 tw-pointer-events-none"
58
+ class="vc-select__prefix"
61
59
  >
62
60
  {{ prefix }}
63
61
  </div>
64
62
  <div
65
63
  data-test-id="dropdown-toggle"
66
- class="tw-appearance-none tw-border-none tw-outline-none tw-flex tw-items-center tw-w-full tw-box-border tw-cursor-pointer invalid:tw-text-[color:var(--select-placeholder-color)] tw-truncate"
64
+ class="vc-select__input"
67
65
  :class="{
68
- 'tw-min-h-[var(--select-height)]': size === 'default',
69
- 'tw-min-h-[var(--select-height-small)]': size === 'small',
66
+ 'vc-select__input--default': size === 'default',
67
+ 'vc-select__input--small': size === 'small',
70
68
  }"
71
69
  @click.stop="toggleDropdown"
72
70
  >
73
71
  <div
74
72
  v-if="!hasValue"
75
- class="tw-text-[#a5a5a5]"
73
+ class="vc-select__placeholder"
76
74
  >
77
75
  <template v-if="placeholder">{{ placeholder }}</template>
78
76
  <template v-else>{{ t("COMPONENTS.MOLECULES.VC_SELECT.CLICK_TO_SELECT") }}</template>
79
77
  </div>
80
78
  <template v-else-if="selectedScope && selectedScope.length && hasValue">
81
- <div class="tw-flex tw-flex-wrap tw-gap-1 tw-py-1">
79
+ <div class="vc-select__selected">
82
80
  <div
83
81
  v-for="(item, i) in selectedScope"
84
82
  :key="i"
85
- class="tw-flex tw-items-center"
83
+ class="vc-select__selected-item"
86
84
  >
87
85
  <template v-if="multiple">
88
- <div
89
- class="tw-bg-[#fbfdfe] tw-border tw-border-solid tw-border-[color:#bdd1df] tw-rounded-[2px] tw-flex tw-items-center tw-h-[28px] tw-box-border tw-px-2"
90
- >
86
+ <div class="vc-select__multiple-item">
91
87
  <template v-if="loading">
92
- <span class="tw-text-[#a5a5a5]">{{
88
+ <span class="vc-select__loading">{{
93
89
  t("COMPONENTS.MOLECULES.VC_SELECT.LOADING")
94
90
  }}</span>
95
91
  </template>
@@ -103,7 +99,7 @@
103
99
  </template>
104
100
  <VcIcon
105
101
  v-if="!disabled"
106
- class="tw-text-[#a9bfd2] tw-ml-2 tw-cursor-pointer hover:tw-text-[color:var(--select-clear-color-hover)]"
102
+ class="vc-select__icon-remove"
107
103
  icon="fas fa-times"
108
104
  size="s"
109
105
  @click.stop="removeAtIndex(item.index)"
@@ -112,7 +108,7 @@
112
108
  </template>
113
109
  <template v-else-if="!multiple">
114
110
  <template v-if="loading">
115
- <span class="tw-text-[#a5a5a5]">{{
111
+ <span class="vc-select__loading">{{
116
112
  t("COMPONENTS.MOLECULES.VC_SELECT.LOADING")
117
113
  }}</span>
118
114
  </template>
@@ -135,13 +131,13 @@
135
131
  </div>
136
132
  <div
137
133
  v-if="suffix"
138
- class="tw-flex tw-items-center tw-flex-wrap tw-pl-3 tw-pointer-events-none"
134
+ class="vc-select__suffix"
139
135
  >
140
136
  {{ suffix }}
141
137
  </div>
142
138
  <div
143
139
  v-if="clearable && hasValue && !disabled"
144
- class="tw-cursor-pointer tw-flex tw-items-center tw-pl-3 tw-text-[color:var(--select-clear-color)] hover:tw-text-[color:var(--select-clear-color-hover)]"
140
+ class="vc-select__clear"
145
141
  @click="onReset"
146
142
  >
147
143
  <VcIcon
@@ -152,14 +148,14 @@
152
148
  </div>
153
149
  <div
154
150
  v-if="$slots['append-inner']"
155
- class="tw-flex tw-items-center tw-flex-nowrap tw-pl-3"
151
+ class="vc-select__append-inner"
156
152
  >
157
153
  <slot name="append-inner"></slot>
158
154
  </div>
159
155
  <!-- Loading-->
160
156
  <div
161
157
  v-if="loading || listLoading"
162
- class="tw-flex tw-items-center tw-flex-nowrap tw-pl-3 tw-text-[color:var(--select-clear-color)]"
158
+ class="vc-select__loading-icon"
163
159
  >
164
160
  <VcIcon
165
161
  icon="fas fa-circle-notch tw-animate-spin"
@@ -169,12 +165,10 @@
169
165
  <!-- Select chevron-->
170
166
  <div
171
167
  v-if="!disabled"
172
- class="tw-flex tw-items-center tw-flex-nowrap tw-pl-3 tw-cursor-pointer"
168
+ class="vc-select__chevron-container"
173
169
  @click.stop="toggleDropdown"
174
170
  >
175
- <div
176
- class="vc-select__chevron tw-flex-nowrap tw-text-[color:var(--select-chevron-color)] hover:tw-text-[color:var(--select-chevron-color-hover)]"
177
- >
171
+ <div class="vc-select__chevron">
178
172
  <VcIcon
179
173
  size="s"
180
174
  icon="fas fa-chevron-down"
@@ -184,7 +178,7 @@
184
178
  </div>
185
179
  </div>
186
180
  </div>
187
- <div class="tw-absolute tw-translate-y-full tw-left-0 tw-right-0 tw-bottom-0 tw-min-h-[20px]">
181
+ <div class="vc-select__hint-error">
188
182
  <Transition
189
183
  name="slide-up"
190
184
  mode="out-in"
@@ -193,7 +187,7 @@
193
187
  <slot name="error">
194
188
  <VcHint
195
189
  v-if="errorMessage"
196
- class="tw-mt-1 tw-text-[color:var(--select-border-color-error)]"
190
+ class="vc-select__error-message"
197
191
  >
198
192
  {{ errorMessage }}
199
193
  </VcHint>
@@ -203,7 +197,7 @@
203
197
  <slot name="hint">
204
198
  <VcHint
205
199
  v-if="hint"
206
- class="tw-text-[color:var(--select-placeholder-color)] tw-mt-1 tw-break-words tw-p-0"
200
+ class="vc-select__hint"
207
201
  >
208
202
  {{ hint }}
209
203
  </VcHint>
@@ -215,7 +209,7 @@
215
209
 
216
210
  <div
217
211
  v-if="$slots['append']"
218
- class="tw-flex tw-items-center tw-flex-nowrap tw-pl-3"
212
+ class="vc-select__append"
219
213
  >
220
214
  <slot name="append"></slot>
221
215
  </div>
@@ -229,13 +223,13 @@
229
223
  ref="dropdownRef"
230
224
  v-on-click-outside="[toggleDropdown, { ignore: [dropdownToggleRef] }]"
231
225
  data-test-id="dropdown"
232
- class="tw-flex tw-flex-col tw-box-border tw-max-h-[300px] tw-h-auto tw-z-[101] tw-overflow-hidden tw-absolute tw-bg-[color:var(--select-background-color)] tw-border tw-border-solid tw-border-[color:var(--select-border-color)] tw-border-t-[color:var(--select-background-color)] tw-rounded-b-[var(--select-border-radius)] tw-p-2"
226
+ class="vc-select__dropdown"
233
227
  :style="dropdownStyle"
234
228
  >
235
229
  <input
236
230
  v-if="searchable"
237
231
  ref="searchRef"
238
- class="tw-w-full tw-box-border tw-border tw-border-solid tw-border-[#eaecf2] tw-rounded-[4px] tw-h-[32px] tw-leading-[32px] tw-outline-none tw-mb-3 tw-px-2"
232
+ class="vc-select__search-input"
239
233
  @input="onInput"
240
234
  />
241
235
 
@@ -245,19 +239,19 @@
245
239
  >
246
240
  <div
247
241
  v-if="!(optionsList && optionsList.length)"
248
- class="tw-w-full tw-h-full tw-box-border tw-flex tw-flex-col tw-items-center tw-justify-center"
242
+ class="vc-select__no-options"
249
243
  >
250
244
  <slot name="no-options">
251
- <span class="tw-m-4 tw-text-xl tw-font-medium">No options</span>
245
+ <span class="vc-select__no-options-text">No options</span>
252
246
  </slot>
253
247
  </div>
254
248
  <div
255
249
  v-for="(item, i) in optionScope"
256
250
  v-else
257
251
  :key="i"
258
- class="tw-flex tw-items-center tw-min-h-[36px] tw-my-1 tw-box-border tw-px-2 tw-rounded-[3px] tw-cursor-pointer hover:tw-bg-[#eff7fc]"
252
+ class="vc-select__option"
259
253
  data-test-id="option"
260
- :class="{ 'tw-bg-[#eff7fc]': item.selected }"
254
+ :class="{ 'vc-select__option--selected': item.selected }"
261
255
  @click="item.toggleOption(item.opt)"
262
256
  >
263
257
  <slot
@@ -948,37 +942,189 @@ function onReset() {
948
942
  --select-height: 38px;
949
943
  --select-height-small: 28px;
950
944
  --select-border-radius: 3px;
951
- --select-border-color: #d3dbe9;
952
- --select-border-color-error: #f14e4e;
953
- --select-background-color: #ffffff;
954
- --select-background-color-disabled: #fafafa;
955
- --select-placeholder-color: #a5a5a5;
956
- --select-chevron-color: #43b0e6;
957
- --select-chevron-color-hover: #319ed4;
958
- --select-clear-color: #43b0e6;
959
- --select-clear-color-hover: #319ed4;
945
+ --select-border-color: var(--secondary-200);
946
+ --select-border-color-error: var(--base-error-color, var(--danger-500));
947
+ --select-background-color: var(--additional-50);
948
+ --select-background-color-disabled: var(--neutrals-50);
949
+ --select-placeholder-color: var(--neutrals-400);
950
+ --select-chevron-color: var(--primary-500);
951
+ --select-chevron-color-hover: var(--primary-600);
952
+ --select-clear-color: var(--primary-500);
953
+ --select-clear-color-hover: var(--primary-600);
954
+ --select-disabled-field-color: var(--neutrals-700);
955
+
956
+ --select-loading-color: var(--info-500);
957
+ --select-option-background-color-hover: var(--accent-100);
958
+ --select-option-background-color-selected: var(--accent-200);
959
+ --select-border-color-input: var(--secondary-200);
960
+
961
+ --select-search-background-color: var(--additional-50);
960
962
  }
961
963
 
962
964
  .vc-select {
963
- &_disabled &__field-wrapper,
964
- &_disabled &__field {
965
- @apply tw-bg-[color:var(--select-background-color-disabled)] tw-text-[#424242];
965
+ &__container {
966
+ @apply tw-box-border tw-w-full;
966
967
  }
967
968
 
968
- &_error &__field-wrapper {
969
- @apply tw-border tw-border-solid tw-border-[color:var(--select-border-color-error)];
969
+ &__label {
970
+ @apply tw-mb-2;
971
+ }
972
+
973
+ &__field-container {
974
+ @apply tw-flex tw-flex-nowrap tw-items-start tw-relative;
975
+ }
976
+
977
+ &__dropdown-toggle {
978
+ @apply tw-flex tw-flex-auto tw-text-left tw-max-w-full;
979
+ }
980
+
981
+ &__control {
982
+ @apply tw-relative tw-flex tw-flex-auto tw-text-left tw-max-w-full;
983
+ }
984
+
985
+ &__prepend,
986
+ &__append {
987
+ @apply tw-flex tw-items-center tw-flex-nowrap tw-pr-3;
988
+ }
989
+
990
+ &__field-wrapper {
991
+ @apply tw-relative tw-flex tw-flex-auto tw-overflow-x-clip tw-truncate;
992
+ }
993
+
994
+ &__field {
995
+ @apply tw-truncate tw-relative tw-box-border tw-border tw-border-solid tw-border-[color:var(--select-border-color)] tw-rounded-sm tw-bg-[color:var(--select-background-color)] tw-flex tw-flex-col tw-flex-nowrap tw-flex-auto tw-items-stretch;
996
+ }
997
+
998
+ &__field-inner {
999
+ @apply tw-flex tw-flex-col tw-flex-nowrap tw-flex-auto tw-relative;
1000
+ }
1001
+
1002
+ &__field-content {
1003
+ @apply tw-flex tw-flex-nowrap tw-flex-auto tw-h-full tw-px-3;
1004
+ }
1005
+
1006
+ &__prepend-inner,
1007
+ &__append-inner {
1008
+ @apply tw-flex tw-items-center tw-flex-nowrap tw-pr-3;
1009
+ }
1010
+
1011
+ &__field-main {
1012
+ @apply tw-flex tw-flex-nowrap tw-flex-auto tw-h-full tw-truncate;
1013
+ }
1014
+
1015
+ &__prefix,
1016
+ &__suffix {
1017
+ @apply tw-flex tw-items-center tw-flex-wrap tw-pr-3 tw-pointer-events-none tw-text-sm;
1018
+ }
1019
+
1020
+ &__input {
1021
+ @apply tw-appearance-none tw-border-none tw-outline-none tw-flex tw-items-center tw-w-full tw-box-border tw-cursor-pointer invalid:tw-text-[color:var(--select-placeholder-color)] tw-truncate;
1022
+
1023
+ &--default {
1024
+ @apply tw-min-h-10;
1025
+ }
1026
+
1027
+ &--small {
1028
+ @apply tw-min-h-7;
1029
+ }
1030
+ }
1031
+
1032
+ &__placeholder {
1033
+ @apply tw-text-[color:var(--select-placeholder-color)] tw-text-sm;
1034
+ }
1035
+
1036
+ &__selected {
1037
+ @apply tw-flex tw-flex-wrap tw-gap-1 tw-py-1;
1038
+ }
1039
+
1040
+ &__selected-item {
1041
+ @apply tw-flex tw-items-center tw-text-sm;
970
1042
  }
971
1043
 
972
- &_disabled &__field {
973
- @apply tw-cursor-auto;
1044
+ &__multiple-item {
1045
+ @apply tw-bg-[color:var(--select-option-background-color-selected)] tw-border tw-border-solid tw-border-[color:var(--select-border-color)] tw-rounded-sm tw-flex tw-items-center tw-h-7 tw-box-border tw-px-2;
974
1046
  }
975
1047
 
976
- &_opened &__chevron {
1048
+ &__loading {
1049
+ @apply tw-text-[color:var(--select-loading-color)];
1050
+ }
1051
+
1052
+ &__icon-remove {
1053
+ @apply tw-text-[color:var(--select-clear-color)] tw-ml-2 tw-cursor-pointer hover:tw-text-[color:var(--select-clear-color-hover)];
1054
+ }
1055
+
1056
+ &__clear {
1057
+ @apply tw-cursor-pointer tw-flex tw-items-center tw-pl-3 tw-text-[color:var(--select-clear-color)] hover:tw-text-[color:var(--select-clear-color-hover)];
1058
+ }
1059
+
1060
+ &__loading-icon {
1061
+ @apply tw-flex tw-items-center tw-flex-nowrap tw-pl-3 tw-text-[color:var(--select-loading-color)];
1062
+ }
1063
+
1064
+ &__chevron-container {
1065
+ @apply tw-flex tw-items-center tw-flex-nowrap tw-pl-3 tw-cursor-pointer;
1066
+ }
1067
+
1068
+ &__chevron {
1069
+ @apply tw-flex-nowrap tw-text-[color:var(--select-chevron-color)] hover:tw-text-[color:var(--select-chevron-color-hover)];
1070
+ }
1071
+
1072
+ &__hint-error {
1073
+ @apply tw-absolute tw-translate-y-full tw-left-0 tw-right-0 tw-bottom-0 tw-min-h-5;
1074
+ }
1075
+
1076
+ &__error-message {
1077
+ @apply tw-mt-1 tw-text-[color:var(--select-border-color-error)];
1078
+ }
1079
+
1080
+ &__hint {
1081
+ @apply tw-text-[color:var(--select-placeholder-color)] tw-mt-1 tw-break-words tw-p-0;
1082
+ }
1083
+
1084
+ &__dropdown {
1085
+ @apply tw-flex tw-flex-col tw-box-border tw-max-h-72 tw-h-auto tw-z-[101] tw-overflow-hidden tw-absolute tw-bg-[color:var(--select-background-color)] tw-border tw-border-solid tw-border-[color:var(--select-border-color)] tw-border-t-[color:var(--select-background-color)] tw-rounded-b-sm tw-p-2;
1086
+ }
1087
+
1088
+ &__search-input {
1089
+ @apply tw-w-full tw-box-border tw-border tw-border-solid tw-border-[color:var(--select-border-color-input)] tw-bg-[color:var(--select-search-background-color)] tw-rounded-md tw-h-8 tw-leading-8 tw-outline-none tw-mb-3 tw-px-2;
1090
+ }
1091
+
1092
+ &__no-options {
1093
+ @apply tw-w-full tw-h-full tw-box-border tw-flex tw-flex-col tw-items-center tw-justify-center;
1094
+ }
1095
+
1096
+ &__no-options-text {
1097
+ @apply tw-m-4 tw-text-lg tw-font-medium;
1098
+ }
1099
+
1100
+ &__option {
1101
+ @apply tw-flex tw-items-center tw-min-h-9 tw-my-1 tw-box-border tw-px-2 tw-rounded-sm tw-cursor-pointer hover:tw-bg-[color:var(--select-option-background-color-hover)] tw-text-sm;
1102
+
1103
+ &--selected {
1104
+ @apply tw-bg-[color:var(--select-option-background-color-selected)];
1105
+ }
1106
+ }
1107
+
1108
+ &.vc-select_opened &__chevron {
977
1109
  @apply tw-rotate-180;
978
1110
  }
979
1111
 
980
- &_opened &__field-wrapper {
981
- @apply tw-rounded-t-[var(--select-border-radius)];
1112
+ &.vc-select_opened &__field {
1113
+ @apply tw-rounded-t-sm tw-rounded-b-none;
1114
+ }
1115
+
1116
+ &.vc-select_error &__field-wrapper {
1117
+ @apply tw-border tw-border-solid tw-border-[color:var(--select-border-color-error)];
1118
+ }
1119
+
1120
+ &.vc-select_disabled &__field-wrapper,
1121
+ &.vc-select_disabled &__field,
1122
+ &.vc-select_disabled &__input {
1123
+ @apply tw-bg-[color:var(--select-background-color-disabled)] tw-text-[color:var(--select-disabled-field-color)] tw-cursor-auto;
1124
+ }
1125
+
1126
+ &.vc-select_has-hint-or-error {
1127
+ @apply tw-pb-5;
982
1128
  }
983
1129
  }
984
1130
  </style>
@@ -1,13 +1,11 @@
1
1
  <template>
2
2
  <div class="vc-slider tw-relative">
3
3
  <swiper
4
- :class="[
5
- 'vc-slider__swiper',
6
- {
7
- 'tw-overflow-visible': overflow,
8
- 'tw-px-[40px]': navigation,
9
- },
10
- ]"
4
+ class="vc-slider__swiper"
5
+ :class="{
6
+ 'vc-slider__swiper_overflow-visible': overflow,
7
+ 'vc-slider__swiper_navigation': navigation,
8
+ }"
11
9
  :space-between="spaceBetweenSlides"
12
10
  :navigation="buttonsList as any"
13
11
  :slides-per-view="slidesPerView as any"
@@ -72,12 +70,27 @@ const buttonsList = computed(() => ({
72
70
  }));
73
71
  </script>
74
72
 
75
- <style lang="scss" scoped>
73
+ <style lang="scss">
74
+ :root {
75
+ --slider-button-background: var(--additional-50);
76
+ --slider-button-border: var(--neutrals-300);
77
+ --slider-button-text: var(--primary-500);
78
+ --slider-button-text-disabled: var(--neutrals-400);
79
+ }
80
+
76
81
  .vc-slider {
77
82
  &__swiper {
78
83
  .swiper-slide {
79
84
  @apply tw-w-auto;
80
85
  }
86
+
87
+ &.vc-slider__swiper_overflow-visible {
88
+ @apply tw-overflow-visible;
89
+ }
90
+
91
+ &.vc-slider__swiper_navigation {
92
+ @apply tw-px-10;
93
+ }
81
94
  }
82
95
 
83
96
  &__next,
@@ -85,15 +98,21 @@ const buttonsList = computed(() => ({
85
98
  @apply tw-absolute tw-top-2/4 -tw-translate-y-2/4 tw-z-[2];
86
99
 
87
100
  &.swiper-button-disabled .vc-slider__btn {
88
- @apply tw-text-[#999999];
101
+ @apply tw-text-[var(--slider-button-text-disabled)];
89
102
  }
90
103
  }
91
104
 
92
105
  &__btn {
93
- @apply tw-bg-white tw-border tw-border-solid tw-border-[#eaecf2]
94
- tw-box-border tw-rounded-[3px]
95
- tw-flex tw-items-center tw-justify-center
96
- tw-text-[#43b0e6] tw-w-[30px] tw-h-[30px];
106
+ @apply tw-bg-[var(--slider-button-background)] tw-border tw-border-solid tw-border-[var(--slider-button-border)];
107
+ @apply tw-box-border tw-rounded tw-flex tw-items-center tw-justify-center;
108
+ @apply tw-text-[var(--slider-button-text)] tw-w-8 tw-h-8;
109
+ @apply tw-transition tw-duration-200;
110
+ }
111
+
112
+ &__prev {
113
+ }
114
+
115
+ &__next {
97
116
  }
98
117
  }
99
118
  </style>
@@ -9,7 +9,7 @@
9
9
  <!-- Textarea label -->
10
10
  <VcLabel
11
11
  v-if="label"
12
- class="tw-mb-2"
12
+ class="vc-textarea__label"
13
13
  :required="required"
14
14
  :multilanguage="multilanguage"
15
15
  :current-language="currentLanguage"
@@ -87,19 +87,24 @@ function onInput(e: Event) {
87
87
  <style lang="scss">
88
88
  :root {
89
89
  --textarea-height: 120px;
90
- --textarea-border-color: #d3dbe9;
91
- --textarea-border-color-error: #f14e4e;
90
+ --textarea-border-color: var(--secondary-200);
91
+ --textarea-border-color-error: var(--base-error-color, var(--danger-500));
92
92
  --textarea-border-radius: 3px;
93
- --textarea-background-color: #ffffff;
94
- --textarea-placeholder-color: #a5a5a5;
93
+ --textarea-background-color: var(--additional-50);
94
+ --textarea-placeholder-color: var(--neutrals-400);
95
+ --textarea-disabled-background-color: var(--neutrals-100);
96
+ --textarea-disabled-text-color: var(--neutrals-700);
95
97
  }
96
98
 
97
99
  .vc-textarea {
100
+ &__label {
101
+ @apply tw-mb-2;
102
+ }
103
+
98
104
  &__field-wrapper {
99
105
  @apply tw-border tw-border-solid
100
106
  tw-border-[color:var(--textarea-border-color)]
101
- tw-rounded-[var(--textarea-border-radius)]
102
- tw-box-border
107
+ tw-rounded-sm tw-box-border
103
108
  tw-bg-[color:var(--textarea-background-color)] tw-flex tw-items-stretch;
104
109
  }
105
110
 
@@ -108,14 +113,14 @@ function onInput(e: Event) {
108
113
  }
109
114
 
110
115
  &__error {
111
- @apply tw-text-[color:var(--textarea-border-color-error)] tw-mt-1 #{!important};
116
+ @apply tw-text-[color:var(--textarea-border-color-error)] tw-mt-1;
112
117
  }
113
118
 
114
119
  &__field {
115
120
  @apply tw-w-full tw-resize-y tw-box-border tw-border-none tw-outline-none
116
- tw-min-h-[var(--textarea-height)]
117
- placeholder:tw-text-[color:var(--textarea-placeholder-color)]
118
- tw-px-3 tw-py-2;
121
+ tw-min-h-32
122
+ placeholder:tw-text-[color:var(--textarea-placeholder-color)]
123
+ tw-px-3 tw-py-2 tw-bg-[color:var(--textarea-background-color)] tw-text-sm;
119
124
 
120
125
  &::-webkit-input-placeholder {
121
126
  @apply tw-text-[color:var(--textarea-placeholder-color)];
@@ -132,7 +137,7 @@ function onInput(e: Event) {
132
137
 
133
138
  &_disabled &__field-wrapper,
134
139
  &_disabled &__field {
135
- @apply tw-bg-[#fafafa] tw-text-[#424242];
140
+ @apply tw-bg-[var(--textarea-disabled-background-color)] tw-text-[var(--textarea-disabled-text-color)];
136
141
  }
137
142
  }
138
143
  </style>