@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
@@ -5,7 +5,7 @@
5
5
  `vc-multivalue_${type}`,
6
6
  {
7
7
  'vc-multivalue_opened': isOpened,
8
- 'vc-multivalue_error tw-pb-[20px]': error,
8
+ 'vc-multivalue_error vc-multivalue__error-padding': error,
9
9
  'vc-multivalue_disabled': disabled,
10
10
  },
11
11
  ]"
@@ -13,7 +13,7 @@
13
13
  <!-- Input label -->
14
14
  <VcLabel
15
15
  v-if="label"
16
- class="tw-mb-2"
16
+ class="vc-multivalue__label"
17
17
  :required="required"
18
18
  :multilanguage="multilanguage"
19
19
  :current-language="currentLanguage"
@@ -31,7 +31,7 @@
31
31
  ref="dropdownToggleRef"
32
32
  class="vc-multivalue__field-wrapper"
33
33
  >
34
- <div class="tw-items-center tw-flex tw-flex-wrap tw-flex-grow">
34
+ <div class="vc-multivalue__content">
35
35
  <div
36
36
  v-for="(item, i) in modelValue"
37
37
  :key="`${item?.id}_${generateId()}`"
@@ -47,7 +47,7 @@
47
47
  :item="item"
48
48
  :remove="() => onDelete(i)"
49
49
  >
50
- <span class="tw-truncate">{{ formatValue(item) }}</span>
50
+ <span class="vc-multivalue__truncate">{{ formatValue(item) }}</span>
51
51
  </slot>
52
52
  <VcIcon
53
53
  v-if="!disabled"
@@ -60,7 +60,7 @@
60
60
  </div>
61
61
 
62
62
  <template v-if="multivalue">
63
- <div class="vc-multivalue__field vc-multivalue__field_dictionary tw-grow tw-basis-0 tw-p-2">
63
+ <div class="vc-multivalue__field vc-multivalue__field_dictionary">
64
64
  <VcButton
65
65
  small
66
66
  :disabled="disabled"
@@ -105,7 +105,7 @@
105
105
  <template v-else>
106
106
  <input
107
107
  v-model="value"
108
- class="vc-multivalue__field tw-grow tw-basis-0 tw-px-3"
108
+ class="vc-multivalue__field vc-multivalue__input"
109
109
  :placeholder="placeholder"
110
110
  :type="internalTypeComputed"
111
111
  :disabled="disabled"
@@ -115,13 +115,14 @@
115
115
  />
116
116
  </template>
117
117
  </div>
118
- <!-- Loading-->
118
+ <!-- Loading -->
119
119
  <div
120
120
  v-if="loading"
121
- class="tw-flex tw-items-center tw-flex-nowrap tw-px-3 tw-text-[color:var(--select-clear-color)]"
121
+ class="vc-multivalue__loading"
122
122
  >
123
123
  <VcIcon
124
- icon="fas fa-circle-notch tw-animate-spin"
124
+ icon="fas fa-circle-notch"
125
+ class="vc-multivalue__loading-icon"
125
126
  size="m"
126
127
  ></VcIcon>
127
128
  </div>
@@ -136,24 +137,23 @@
136
137
  <VcHint
137
138
  v-if="errorMessage"
138
139
  class="vc-multivalue__error"
140
+ >{{ errorMessage }}</VcHint
139
141
  >
140
- {{ errorMessage }}
141
- </VcHint>
142
142
  </slot>
143
143
  </div>
144
144
  <div v-else>
145
145
  <slot name="hint">
146
146
  <VcHint
147
147
  v-if="hint"
148
- class="tw-text-[color:var(--multivalue-placeholder-color)] tw-mt-1 tw-break-words tw-p-0"
148
+ class="vc-multivalue__hint"
149
+ >{{ hint }}</VcHint
149
150
  >
150
- {{ hint }}
151
- </VcHint>
152
151
  </slot>
153
152
  </div>
154
153
  </Transition>
155
154
  </div>
156
155
  </template>
156
+
157
157
  <!-- eslint-disable @typescript-eslint/no-explicit-any -->
158
158
  <script lang="ts" setup generic="T extends { id?: string }">
159
159
  import { unref, nextTick, ref, computed } from "vue";
@@ -315,13 +315,13 @@ function sameWidthChangeBorders() {
315
315
  let borderBottom;
316
316
  let borderRadius;
317
317
  if (placement === "top") {
318
- borderTop = "1px solid var(--select-border-color)";
319
- borderBottom = "1px solid var(--select-background-color)";
320
- borderRadius = "var(--select-border-radius) var(--select-border-radius) 0 0";
318
+ borderTop = "1px solid var(--multivalue-select-border-color)";
319
+ borderBottom = "1px solid var(--multivalue-select-background-color)";
320
+ borderRadius = "var(--multivalue-select-border-radius) var(--multivalue-select-border-radius) 0 0";
321
321
  } else {
322
- borderBottom = "1px solid var(--select-border-color)";
323
- borderTop = "1px solid var(--select-background-color)";
324
- borderRadius = "0 0 var(--select-border-radius) var(--select-border-radius)";
322
+ borderBottom = "1px solid var(--multivalue-select-border-color)";
323
+ borderTop = "1px solid var(--multivalue-select-background-color)";
324
+ borderRadius = "0 0 var(--multivalue-select-border-radius) var(--multivalue-select-border-radius)";
325
325
  }
326
326
 
327
327
  const width = `${rects.reference.width}px`;
@@ -368,20 +368,28 @@ function onSearch(event: Event) {
368
368
  :root {
369
369
  --multivalue-height: 38px;
370
370
  --multivalue-border-radius: 3px;
371
- --multivalue-border-color: #d3dbe9;
372
- --multivalue-border-color-error: #f14e4e;
373
- --multivalue-background-color: #ffffff;
374
- --multivalue-placeholder-color: #a5a5a5;
375
-
376
- --select-height: 38px;
377
- --select-border-radius: 3px;
378
- --select-border-color: #d3dbe9;
379
- --select-border-color-error: #f14e4e;
380
- --select-background-color: #ffffff;
381
- --select-background-color-disabled: #fafafa;
382
- --select-placeholder-color: #a5a5a5;
383
- --select-chevron-color: #43b0e6;
384
- --select-chevron-color-hover: #319ed4;
371
+ --multivalue-border-color: var(--secondary-200);
372
+ --multivalue-border-color-error: var(--base-error-color, var(--danger-500));
373
+ --multivalue-background-color: var(--additional-50);
374
+ --multivalue-placeholder-color: var(--neutrals-400);
375
+
376
+ --multivalue-select-border-radius: 3px;
377
+ --multivalue-select-border-color: var(--secondary-200);
378
+ --multivalue-select-border-color-error: var(--base-error-color, var(--danger-500));
379
+ --multivalue-select-background-color: var(--additional-50);
380
+ --multivalue-select-background-color-disabled: var(--neutrals-50);
381
+ --multivalue-select-placeholder-color: var(--neutrals-400);
382
+ --multivalue-select-chevron-color: var(--primary-500);
383
+ --multivalue-select-chevron-color-hover: var(--primary-600);
384
+
385
+ --multivalue-search-border-color: var(--secondary-200);
386
+ --multivalue-item-hover-background-color: var(--accent-50);
387
+ --multivalue-hint-color: var(--base-error-color, var(--danger-500));
388
+ --multivalue-field-value-background-color: var(--additional-50);
389
+ --multivalue-field-value-border-color: var(--secondary-200);
390
+ --multivalue-clear-icon-color: var(--primary-500);
391
+ --multivalue-disabled-text-color: var(--neutrals-400);
392
+ --multivalue-disabled-background-color: var(--neutrals-50);
385
393
  }
386
394
 
387
395
  .vc-multivalue {
@@ -396,37 +404,66 @@ function onSearch(event: Event) {
396
404
  }
397
405
  }
398
406
 
407
+ &__label {
408
+ @apply tw-mb-2;
409
+ }
410
+
411
+ &__error-padding {
412
+ @apply tw-pb-[20px];
413
+ }
414
+
399
415
  &__field-wrapper {
400
416
  @apply tw-border tw-border-solid
401
417
  tw-border-[color:var(--multivalue-border-color)]
402
418
  tw-rounded-[var(--multivalue-border-radius)]
403
- tw-bg-[color:var(--multivalue-background-color)]
404
419
  tw-items-center
405
420
  tw-flex tw-justify-between;
406
421
  }
407
422
 
423
+ &__content {
424
+ @apply tw-items-center tw-flex tw-flex-wrap tw-flex-grow;
425
+ }
426
+
427
+ &__field-value-wrapper {
428
+ @apply tw-ml-2 tw-flex tw-items-center;
429
+ }
430
+
431
+ &__field-value {
432
+ @apply tw-bg-[color:var(--multivalue-background-color)] tw-border tw-border-solid tw-border-[color:var(--multivalue-border-color)]
433
+ tw-rounded-[2px] tw-flex tw-items-center tw-h-[28px] tw-box-border tw-px-2 tw-max-w-[150px];
434
+ }
435
+
436
+ &__truncate {
437
+ @apply tw-truncate tw-text-sm;
438
+ }
439
+
440
+ &__field-value-clear {
441
+ @apply tw-text-[color:var(--multivalue-clear-icon-color)] tw-ml-2 tw-cursor-pointer;
442
+ }
443
+
408
444
  &__dropdown {
409
445
  @apply tw-flex tw-flex-col tw-box-border
410
446
  tw-max-h-[300px] tw-z-10 tw-overflow-hidden
411
- tw-absolute tw-bg-[color:var(--select-background-color)]
412
- tw-border tw-border-solid tw-border-[color:var(--select-border-color)]
413
- tw-border-t-[color:var(--select-background-color)]
414
- tw-rounded-b-[var(--select-border-radius)]
447
+ tw-absolute tw-bg-[color:var(--multivalue-select-background-color)]
448
+ tw-border tw-border-solid tw-border-[color:var(--multivalue-select-border-color)]
449
+ tw-border-t-[color:var(--multivalue-select-background-color)]
450
+ tw-rounded-b-[var(--multivalue-select-border-radius)]
415
451
  tw-p-2;
416
452
  }
417
453
 
418
454
  &__search {
419
- @apply tw-w-full tw-box-border tw-border tw-border-solid tw-border-[#eaecf2]
420
- tw-rounded-[4px] tw-h-8 tw-leading-[32px]
421
- tw-outline-none tw-mb-3 tw-px-2;
455
+ @apply tw-w-full tw-box-border tw-border tw-border-solid
456
+ tw-border-[color:var(--multivalue-search-border-color)]
457
+ tw-rounded-[4px] tw-h-8 tw-leading-[32px]
458
+ tw-outline-none tw-mb-3 tw-px-2 tw-bg-[color:var(--multivalue-background-color)];
422
459
  }
423
460
 
424
461
  &__item {
425
- @apply tw-flex tw-items-center tw-min-h-[36px] tw-px-2 tw-rounded-[3px] tw-cursor-pointer hover:tw-bg-[#eff7fc];
462
+ @apply tw-flex tw-items-center tw-min-h-[36px] tw-px-2 tw-rounded-[3px] tw-cursor-pointer hover:tw-bg-[color:var(--multivalue-item-hover-background-color)];
426
463
  }
427
464
 
428
465
  &_opened &__field-wrapper {
429
- @apply tw-rounded-t-[var(--select-border-radius)];
466
+ @apply tw-rounded-t-[var(--multivalue-select-border-radius)];
430
467
  }
431
468
 
432
469
  &_error &__field-wrapper {
@@ -434,12 +471,12 @@ function onSearch(event: Event) {
434
471
  }
435
472
 
436
473
  &__error {
437
- @apply tw-mt-1 [--hint-color:var(--multivalue-border-color-error)];
474
+ @apply tw-mt-1 [--hint-color:var(--multivalue-hint-color)];
438
475
  }
439
476
 
440
477
  &__field {
441
- @apply tw-border-none tw-outline-none tw-min-h-[var(--multivalue-height)]
442
- tw-min-w-[120px] tw-box-border placeholder:tw-text-[color:var(--multivalue-placeholder-color)];
478
+ @apply tw-border-none tw-outline-none tw-min-h-[var(--multivalue-height)] tw-bg-[color:var(--multivalue-background-color)]
479
+ tw-min-w-[120px] tw-box-border placeholder:tw-text-[color:var(--multivalue-placeholder-color)] tw-text-sm;
443
480
 
444
481
  &::-webkit-input-placeholder {
445
482
  @apply tw-text-[color:var(--multivalue-placeholder-color)];
@@ -464,37 +501,38 @@ function onSearch(event: Event) {
464
501
  }
465
502
 
466
503
  &-value {
467
- @apply tw-bg-[#fbfdfe] tw-border tw-border-solid tw-border-[color:#bdd1df] tw-rounded-[2px]
468
- tw-flex tw-items-center tw-h-[28px] tw-box-border tw-px-2 tw-max-w-[150px];
504
+ @apply tw-bg-[color:var(--multivalue-field-value-background-color)] tw-border tw-border-solid tw-border-[color:var(--multivalue-field-value-border-color)]
505
+ tw-rounded-[2px] tw-flex tw-items-center tw-h-[28px] tw-box-border tw-px-2 tw-max-w-[150px];
469
506
 
470
507
  &-clear {
471
- @apply tw-text-[#a9bfd2] tw-ml-2 tw-cursor-pointer;
508
+ @apply tw-text-[color:var(--multivalue-clear-icon-color)] tw-ml-2 tw-cursor-pointer;
472
509
  }
473
510
  }
474
511
 
475
512
  &_dictionary {
476
- @apply tw-h-auto tw-min-w-[auto];
513
+ @apply tw-h-auto tw-min-w-[auto] tw-grow tw-basis-0 tw-p-2;
477
514
  }
478
515
  }
479
516
 
480
517
  &_disabled &__field-wrapper,
481
518
  &_disabled &__field {
482
- @apply tw-bg-[#fafafa] tw-text-[#424242];
519
+ @apply tw-bg-[color:var(--multivalue-disabled-background-color)] tw-text-[color:var(--multivalue-disabled-text-color)];
483
520
  }
484
- }
485
521
 
486
- .slide-up-enter-active,
487
- .slide-up-leave-active {
488
- transition: all 0.25s ease-out;
489
- }
522
+ &__input {
523
+ @apply tw-px-3;
524
+ }
490
525
 
491
- .slide-up-enter-from {
492
- opacity: 0;
493
- transform: translateY(5px);
494
- }
526
+ &__loading {
527
+ @apply tw-flex tw-items-center tw-flex-nowrap tw-px-3 tw-text-[color:var(--select-clear-color)];
528
+ }
495
529
 
496
- .slide-up-leave-to {
497
- opacity: 0;
498
- transform: translateY(-5px);
530
+ &__loading-icon {
531
+ @apply tw-animate-spin;
532
+ }
533
+
534
+ &__hint {
535
+ @apply tw-text-[color:var(--multivalue-placeholder-color)] tw-mt-1 tw-break-words tw-p-0;
536
+ }
499
537
  }
500
538
  </style>
@@ -2,20 +2,20 @@
2
2
  <div
3
3
  :id="String(notificationId)"
4
4
  ref="nodeRef"
5
- class="vc-notification tw-flex tw-items-center tw-mt-1 tw-mb-3 tw-mx-2 tw-bg-[color:var(--notification-background)] tw-border tw-border-solid tw-border-[color:#eef0f2] tw-box-border tw-shadow-[2px_2px_11px_rgba(126,142,157,0.4)] tw-rounded-[var(--notification-border-radius)] tw-overflow-hidden tw-py-2 tw-px-4 tw-max-w-[600px] tw-justify-between"
5
+ class="vc-notification"
6
6
  @mouseenter="onMouseEnter"
7
7
  @mouseleave="onMouseLeave"
8
8
  >
9
- <div class="tw-flex tw-flex-row tw-items-center">
9
+ <div class="vc-notification__content-wrapper">
10
10
  <VcIcon
11
11
  :icon="types[type ?? 'default']?.icon"
12
12
  :style="{ color: types[type ?? 'default']?.color }"
13
13
  size="l"
14
- class="tw-mr-2"
14
+ class="vc-notification__icon"
15
15
  ></VcIcon>
16
16
  <div
17
17
  v-if="typeof content === 'string'"
18
- class="vc-notification__content tw-text-[color:var(--notification-content-color)] tw-whitespace-pre-line tw-overflow-auto tw-max-h-[100px]"
18
+ class="vc-notification__content"
19
19
  >
20
20
  {{ content }}
21
21
  </div>
@@ -25,7 +25,7 @@
25
25
  </div>
26
26
  <VcIcon
27
27
  icon="fas fa-times"
28
- class="tw-cursor-pointer tw-text-[color:var(--notification-dismiss-color)] tw-ml-2"
28
+ class="vc-notification__dismiss-icon"
29
29
  size="s"
30
30
  @click.stop="closeNotification"
31
31
  ></VcIcon>
@@ -123,21 +123,46 @@ function onMouseLeave() {
123
123
 
124
124
  <style lang="scss">
125
125
  :root {
126
- --notification-background: #ffffff;
127
- --notification-border-radius: 4px;
128
- --notification-box-shadow: 2px 2px 11px rgba(126, 142, 157, 0.4);
129
- --notification-dismiss-color: #83a3be;
130
- --notification-content-color: #8c9cab;
131
-
132
- --notification-warning: #f89406;
133
- --notification-error: #ef796f;
134
- --notification-success: #87b563;
135
- --notification-info: #bdd1df;
126
+ --notification-background: var(--additional-50);
127
+ --notification-border-radius: var(--multivalue-border-radius);
128
+ --notification-border-color: var(--base-border-color, var(--neutrals-200));
129
+ --notification-dismiss-color: var(--secondary-500);
130
+ --notification-content-color: var(--neutrals-600);
131
+
132
+ --notification-warning: var(--warning-500);
133
+ --notification-error: var(--danger-500);
134
+ --notification-success: var(--success-500);
135
+ --notification-info: var(--info-500);
136
+
137
+ --notification-shadow-color: var(--neutrals-300);
138
+ --notification-shadow: 2px 2px 11px rgb(from var(--notification-shadow-color) r g b / 40%);
136
139
  }
137
140
 
138
141
  .vc-notification {
142
+ @apply tw-flex tw-items-center tw-box-border;
143
+ @apply tw-bg-[color:var(--notification-background)] tw-border tw-border-solid tw-border-[color:var(--notification-border-color)];
144
+ @apply tw-rounded-[var(--notification-border-radius)] tw-overflow-hidden tw-py-2 tw-px-4;
145
+ @apply tw-max-w-[600px] tw-justify-between;
146
+ @apply tw-shadow-[var(--notification-shadow)];
139
147
  pointer-events: all;
140
148
 
149
+ &__content-wrapper {
150
+ @apply tw-flex tw-items-center tw-flex-row;
151
+ }
152
+
153
+ &__icon {
154
+ @apply tw-mr-2;
155
+ }
156
+
157
+ &__content {
158
+ @apply tw-text-[color:var(--notification-content-color)] tw-whitespace-pre-line tw-overflow-auto;
159
+ @apply tw-max-h-[100px];
160
+ }
161
+
162
+ &__dismiss-icon {
163
+ @apply tw-cursor-pointer tw-text-[color:var(--notification-dismiss-color)] tw-ml-2;
164
+ }
165
+
141
166
  .vc-app_mobile {
142
167
  @apply tw-max-w-[80%];
143
168
  }
@@ -53,7 +53,7 @@
53
53
  <template #control="{ modelValue }">
54
54
  <input
55
55
  :value="modelValue"
56
- class="tw-w-full"
56
+ class="vc-pagination__input"
57
57
  :max="props.pages"
58
58
  @input="(event) => handleInputChange((event.target as HTMLInputElement)?.value)"
59
59
  @keyup.enter="setPage(jumpPage)"
@@ -166,19 +166,19 @@ const pagesToShow = computed(() => {
166
166
  :root {
167
167
  --pagination-item-width: 30px;
168
168
  --pagination-item-height: 30px;
169
- --pagination-item-color: #000000;
170
- --pagination-item-color-hover: #000000;
171
- --pagination-item-color-current: #ffffff;
172
- --pagination-item-color-disabled: #9c9c9c;
173
- --pagination-item-background-color: #ffffff;
174
- --pagination-item-background-color-hover: #dfeef9;
175
- --pagination-item-background-color-current: #43b0e6;
176
- --pagination-item-background-color-disabled: #ffffff;
169
+ --pagination-item-color: var(--base-text-color, var(--neutrals-950));
170
+ --pagination-item-color-hover: var(--primary-500);
171
+ --pagination-item-color-current: var(--additional-50);
172
+ --pagination-item-color-disabled: var(--neutrals-400);
173
+ --pagination-item-background-color: var(--additional-50);
174
+ --pagination-item-background-color-hover: var(--primary-100);
175
+ --pagination-item-background-color-current: var(--primary-500);
176
+ --pagination-item-background-color-disabled: var(--neutrals-100);
177
177
  --pagination-item-border-radius: 3px;
178
- --pagination-item-border-color: #eaecf2;
179
- --pagination-item-border-color-hover: #eaecf2;
180
- --pagination-item-border-color-current: #eaecf2;
181
- --pagination-item-border-color-disabled: #eaecf2;
178
+ --pagination-item-border-color: var(--secondary-100);
179
+ --pagination-item-border-color-hover: var(--neutrals-200);
180
+ --pagination-item-border-color-current: var(--neutrals-200);
181
+ --pagination-item-border-color-disabled: var(--neutrals-200);
182
182
  }
183
183
 
184
184
  .vc-pagination {
@@ -207,8 +207,8 @@ const pagesToShow = computed(() => {
207
207
  tw-rounded-[var(--pagination-item-border-radius)]
208
208
  tw-text-[color:var(--pagination-item-color)]
209
209
  tw-box-border
210
- tw-transition tw-duration-200
211
- tw-mr-3 tw-select-none last:tw-mr-0;
210
+ tw-transition tw-duration-200
211
+ tw-mr-3 tw-select-none last:tw-mr-0 tw-text-xs;
212
212
 
213
213
  &_current,
214
214
  &_current:hover {
@@ -243,5 +243,9 @@ const pagesToShow = computed(() => {
243
243
  width: 50px;
244
244
  text-align: center;
245
245
  }
246
+
247
+ &__input {
248
+ @apply tw-w-full;
249
+ }
246
250
  }
247
251
  </style>
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div class="vc-radio-button">
3
- <label class="tw-text-base tw-flex tw-items-center tw-gap-[5px]">
3
+ <label class="vc-radio-button__label">
4
4
  <input
5
5
  type="radio"
6
6
  :name="name"
@@ -13,18 +13,19 @@
13
13
  @change="onChange"
14
14
  />
15
15
 
16
- {{ label }}</label
17
- >
16
+ {{ label }}
17
+ </label>
18
18
  <slot
19
19
  v-if="errorMessage"
20
20
  name="error"
21
21
  >
22
- <VcHint class="vc-radio-button__error tw-mt-1">
22
+ <VcHint class="vc-radio-button__error">
23
23
  {{ errorMessage }}
24
24
  </VcHint>
25
25
  </slot>
26
26
  </div>
27
27
  </template>
28
+
28
29
  <!-- eslint-disable @typescript-eslint/no-explicit-any -->
29
30
  <script lang="ts" setup>
30
31
  import * as _ from "lodash-es";
@@ -96,19 +97,22 @@ function onChange() {
96
97
 
97
98
  <style lang="scss">
98
99
  :root {
99
- --radio-active: #43b0e6;
100
- --radio-active-inner: #fff;
101
- --radio-focus: 2px rgba(39, 94, 254, 0.3);
102
- --radio-border: #bbc1e1;
103
- --radio-border-hover: #43b0e6;
104
- --radio-background: #fff;
105
- --radio-disabled: #f6f8ff;
106
- --radio-disabled-inner: #e1e6f9;
107
- --radio-error: #f14e4e;
100
+ --radio-active: var(--primary-400);
101
+ --radio-active-inner: var(--additional-50);
102
+ --radio-border: var(--secondary-300);
103
+ --radio-border-hover: var(--primary-400);
104
+ --radio-background: var(--additional-50);
105
+ --radio-disabled: var(--secondary-100);
106
+ --radio-disabled-inner: var(--secondary-200);
107
+ --radio-error: var(--base-error-color, var(--danger-500));
108
108
  --radio-size: 14px;
109
109
  }
110
110
 
111
111
  .vc-radio-button {
112
+ &__label {
113
+ @apply tw-text-base tw-flex tw-items-center tw-gap-1.5;
114
+ }
115
+
112
116
  input[type="radio"] {
113
117
  border-radius: 50%;
114
118
  appearance: none;
@@ -176,22 +180,13 @@ function onChange() {
176
180
  }
177
181
  }
178
182
 
179
- & + label {
180
- font-size: 14px;
181
- line-height: 21px;
182
- display: inline-block;
183
- vertical-align: top;
184
- cursor: pointer;
185
- margin-left: 4px;
186
- }
187
-
188
183
  &.vc-radio-button_error {
189
184
  --radio-border-color: var(--radio-error);
190
185
  }
191
186
  }
192
187
 
193
188
  &__error {
194
- --hint-color: var(--radio-error);
189
+ @apply tw-mt-1 [--hint-color:var(--radio-error)];
195
190
  }
196
191
  }
197
192
  </style>
@@ -3,7 +3,7 @@
3
3
  <!-- Rating label -->
4
4
  <VcLabel
5
5
  v-if="label"
6
- class="tw-mb-2"
6
+ class="vc-rating__label"
7
7
  >
8
8
  <span>{{ label }}</span>
9
9
  <template
@@ -16,7 +16,7 @@
16
16
 
17
17
  <!-- Rating icon -->
18
18
  <template v-if="modelValue">
19
- <template v-if="variant == 'stars'">
19
+ <template v-if="variant === 'stars'">
20
20
  <VcIcon
21
21
  v-for="index in modelValue"
22
22
  :key="index"
@@ -32,7 +32,7 @@
32
32
  </template>
33
33
  <template v-else>
34
34
  <VcIcon
35
- v-if="variant == 'star-and-text'"
35
+ v-if="variant === 'star-and-text'"
36
36
  icon="fas fa-star"
37
37
  class="vc-rating__icon"
38
38
  ></VcIcon>
@@ -68,7 +68,11 @@ defineSlots<{
68
68
 
69
69
  <style lang="scss">
70
70
  :root {
71
- --rating-placeholder-color: #a5a5a5;
71
+ --rating-placeholder-color: var(--neutrals-400);
72
+
73
+ --rating-special-color: var(--warning-500);
74
+ --rating-special-color-hover: var(--warning-600);
75
+ --rating-special-color-disabled: var(--warning-200);
72
76
  }
73
77
 
74
78
  .vc-rating {
@@ -78,7 +82,7 @@ defineSlots<{
78
82
  @apply tw-text-[color:var(--rating-placeholder-color)];
79
83
  }
80
84
  &__icon {
81
- @apply tw-text-[color:var(--special-color)] tw-mr-1;
85
+ @apply tw-text-[color:var(--rating-special-color)] tw-mr-1;
82
86
  font-size: inherit;
83
87
  }
84
88
  &__rating {