@vc-shell/framework 1.0.290 → 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 (175) hide show
  1. package/CHANGELOG.md +9 -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 +27885 -27365
  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/user-dropdown-button.vue.d.ts.map +1 -1
  33. package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts.map +1 -1
  34. package/dist/shared/modules/dynamic/types/index.d.ts +3 -0
  35. package/dist/shared/modules/dynamic/types/index.d.ts.map +1 -1
  36. package/dist/shared/pages/ChangePasswordPage/components/change-password/ChangePassword.vue.d.ts +16 -3
  37. package/dist/shared/pages/ChangePasswordPage/components/change-password/ChangePassword.vue.d.ts.map +1 -1
  38. package/dist/shared/pages/ChangePasswordPage/components/change-password/index.d.ts +7 -7
  39. package/dist/shared/pages/ChangePasswordPage/components/change-password/index.d.ts.map +1 -1
  40. package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts +24 -3
  41. package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts.map +1 -1
  42. package/dist/shared/pages/InvitePage/components/invite/index.d.ts +24 -1
  43. package/dist/shared/pages/InvitePage/components/invite/index.d.ts.map +1 -1
  44. package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts +24 -3
  45. package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts.map +1 -1
  46. package/dist/shared/pages/ResetPasswordPage/components/reset-password/index.d.ts +24 -1
  47. package/dist/shared/pages/ResetPasswordPage/components/reset-password/index.d.ts.map +1 -1
  48. package/dist/tailwind.config.d.ts +42 -15
  49. package/dist/tailwind.config.d.ts.map +1 -1
  50. package/dist/tsconfig.tsbuildinfo +1 -1
  51. package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts.map +1 -1
  52. package/dist/ui/components/atoms/vc-link/vc-link.vue.d.ts.map +1 -1
  53. package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts.map +1 -1
  54. package/dist/ui/components/atoms/vc-status/vc-status.vue.d.ts.map +1 -1
  55. package/dist/ui/components/atoms/vc-tooltip/vc-tooltip.vue.d.ts.map +1 -1
  56. package/dist/ui/components/atoms/vc-video/vc-video.vue.d.ts.map +1 -1
  57. package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.d.ts.map +1 -1
  58. package/dist/ui/components/molecules/vc-checkbox/vc-checkbox.vue.d.ts.map +1 -1
  59. package/dist/ui/components/molecules/vc-field/_internal/vc-field-type/vc-field-type.vue.d.ts.map +1 -1
  60. package/dist/ui/components/molecules/vc-field/vc-field.vue.d.ts.map +1 -1
  61. package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts.map +1 -1
  62. package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts.map +1 -1
  63. package/dist/ui/components/molecules/vc-slider/vc-slider.vue.d.ts.map +1 -1
  64. 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
  65. package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue.d.ts.map +1 -1
  66. package/dist/ui/components/organisms/vc-app/vc-app.stories.d.ts +2 -0
  67. package/dist/ui/components/organisms/vc-app/vc-app.stories.d.ts.map +1 -1
  68. package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts +2 -0
  69. package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts.map +1 -1
  70. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue.d.ts.map +1 -1
  71. 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
  72. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue.d.ts.map +1 -1
  73. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts.map +1 -1
  74. package/dist/ui/components/organisms/vc-table/_internal/vc-table-add-new/vc-table-add-new.vue.d.ts.map +1 -1
  75. package/dist/ui/components/organisms/vc-table/_internal/vc-table-base-header/vc-table-base-header.vue.d.ts +1 -0
  76. package/dist/ui/components/organisms/vc-table/_internal/vc-table-base-header/vc-table-base-header.vue.d.ts.map +1 -1
  77. package/dist/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue.d.ts.map +1 -1
  78. package/dist/ui/components/organisms/vc-table/_internal/vc-table-empty/vc-table-empty.vue.d.ts.map +1 -1
  79. package/dist/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue.d.ts +1 -0
  80. package/dist/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue.d.ts.map +1 -1
  81. package/dist/ui/components/organisms/vc-table/_internal/vc-table-mobile-item/vc-table-mobile-item.vue.d.ts.map +1 -1
  82. package/dist/ui/components/organisms/vc-table/vc-table.stories.d.ts +15 -0
  83. package/dist/ui/components/organisms/vc-table/vc-table.stories.d.ts.map +1 -1
  84. package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts +3 -0
  85. package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts.map +1 -1
  86. package/package.json +4 -4
  87. package/shared/components/app-bar-button/app-bar-button.vue +169 -0
  88. package/shared/components/app-bar-button/index.ts +1 -0
  89. package/shared/components/app-switcher/components/vc-app-switcher/vc-app-switcher.vue +138 -38
  90. package/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue +10 -1
  91. package/shared/components/blade-navigation/composables/useBladeNavigation/index.ts +55 -30
  92. package/shared/components/change-password/change-password.vue +7 -1
  93. package/shared/components/common/popup/vc-popup-error.vue +1 -1
  94. package/shared/components/common/popup/vc-popup-warning.vue +1 -1
  95. package/shared/components/index.ts +3 -0
  96. package/shared/components/language-selector/language-selector.vue +55 -39
  97. package/shared/components/notification-dropdown/_internal/notification/notification.vue +7 -1
  98. package/shared/components/notification-dropdown/notification-dropdown.vue +96 -83
  99. package/shared/components/notification-template/notification-template.vue +66 -22
  100. package/shared/components/notifications/styles/index.scss +1 -0
  101. package/shared/components/sidebar/index.ts +1 -0
  102. package/shared/components/sidebar/sidebar.vue +96 -0
  103. package/shared/components/theme-selector/index.ts +1 -0
  104. package/shared/components/theme-selector/theme-selector.vue +95 -0
  105. package/shared/components/user-dropdown-button/user-dropdown-button.vue +139 -86
  106. package/shared/modules/assets/components/assets-details/assets-details.vue +9 -2
  107. package/shared/modules/assets-manager/components/assets-manager/assets-manager.vue +16 -6
  108. package/shared/modules/dynamic/composables/useFilterBuilder/index.ts +1 -1
  109. package/shared/modules/dynamic/helpers/nodeBuilder.ts +1 -1
  110. package/shared/modules/dynamic/pages/dynamic-blade-form.vue +6 -2
  111. package/shared/modules/dynamic/pages/dynamic-blade-list.vue +16 -2
  112. package/shared/modules/dynamic/types/index.ts +3 -0
  113. package/shared/pages/ChangePasswordPage/components/change-password/ChangePassword.vue +14 -9
  114. package/shared/pages/InvitePage/components/invite/Invite.vue +59 -15
  115. package/shared/pages/LoginPage/components/login/Login.vue +78 -22
  116. package/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue +67 -15
  117. package/tailwind.config.ts +281 -15
  118. package/ui/components/atoms/vc-badge/vc-badge.vue +38 -23
  119. package/ui/components/atoms/vc-button/vc-button.vue +37 -34
  120. package/ui/components/atoms/vc-card/vc-card.vue +17 -11
  121. package/ui/components/atoms/vc-col/vc-col.vue +4 -6
  122. package/ui/components/atoms/vc-container/vc-container.vue +26 -8
  123. package/ui/components/atoms/vc-hint/vc-hint.vue +8 -2
  124. package/ui/components/atoms/vc-icon/vc-icon.vue +3 -3
  125. package/ui/components/atoms/vc-image/vc-image.vue +33 -9
  126. package/ui/components/atoms/vc-label/vc-label.vue +38 -9
  127. package/ui/components/atoms/vc-link/vc-link.vue +15 -8
  128. package/ui/components/atoms/vc-loading/vc-loading.vue +37 -8
  129. package/ui/components/atoms/vc-progress/vc-progress.vue +29 -21
  130. package/ui/components/atoms/vc-row/vc-row.vue +4 -2
  131. package/ui/components/atoms/vc-status/vc-status.vue +29 -20
  132. package/ui/components/atoms/vc-status-icon/vc-status-icon.vue +20 -3
  133. package/ui/components/atoms/vc-switch/vc-switch.vue +41 -17
  134. package/ui/components/atoms/vc-tooltip/vc-tooltip.vue +35 -9
  135. package/ui/components/atoms/vc-video/vc-video.vue +28 -6
  136. package/ui/components/atoms/vc-widget/vc-widget.vue +59 -28
  137. package/ui/components/molecules/vc-breadcrumbs/_internal/vc-breadcrumbs-item/vc-breadcrumbs-item.vue +29 -27
  138. package/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue +34 -11
  139. package/ui/components/molecules/vc-checkbox/vc-checkbox.vue +43 -21
  140. package/ui/components/molecules/vc-editor/vc-editor.vue +70 -32
  141. package/ui/components/molecules/vc-field/_internal/vc-field-type/vc-field-type.vue +32 -16
  142. package/ui/components/molecules/vc-field/vc-field.vue +36 -13
  143. package/ui/components/molecules/vc-file-upload/vc-file-upload.vue +75 -25
  144. package/ui/components/molecules/vc-input/vc-input.vue +279 -218
  145. package/ui/components/molecules/vc-input-currency/vc-input-currency.vue +24 -2
  146. package/ui/components/molecules/vc-multivalue/vc-multivalue.vue +102 -64
  147. package/ui/components/molecules/vc-notification/vc-notification.vue +40 -15
  148. package/ui/components/molecules/vc-pagination/vc-pagination.vue +19 -15
  149. package/ui/components/molecules/vc-radio-button/vc-radio-button.vue +18 -23
  150. package/ui/components/molecules/vc-rating/vc-rating.vue +9 -5
  151. package/ui/components/molecules/vc-select/vc-select.vue +211 -65
  152. package/ui/components/molecules/vc-slider/vc-slider.vue +32 -13
  153. package/ui/components/molecules/vc-textarea/vc-textarea.vue +17 -12
  154. package/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue +68 -14
  155. package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue +112 -122
  156. package/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue +213 -96
  157. package/ui/components/organisms/vc-app/vc-app.vue +41 -15
  158. package/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue +78 -30
  159. package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue +81 -59
  160. package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue +27 -13
  161. package/ui/components/organisms/vc-blade/vc-blade.vue +177 -46
  162. package/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue +40 -11
  163. package/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue +52 -18
  164. package/ui/components/organisms/vc-gallery/vc-gallery.vue +38 -6
  165. package/ui/components/organisms/vc-login-form/vc-login-form.vue +40 -14
  166. package/ui/components/organisms/vc-popup/vc-popup.vue +186 -44
  167. package/ui/components/organisms/vc-table/_internal/vc-table-add-new/vc-table-add-new.vue +25 -6
  168. package/ui/components/organisms/vc-table/_internal/vc-table-base-header/vc-table-base-header.vue +48 -12
  169. package/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue +130 -60
  170. package/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue +55 -7
  171. package/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue +17 -5
  172. package/ui/components/organisms/vc-table/_internal/vc-table-empty/vc-table-empty.vue +38 -6
  173. package/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue +111 -62
  174. package/ui/components/organisms/vc-table/_internal/vc-table-mobile-item/vc-table-mobile-item.vue +139 -46
  175. package/ui/components/organisms/vc-table/vc-table.vue +370 -128
@@ -130,18 +130,30 @@ defineExpose({
130
130
  </script>
131
131
 
132
132
  <style lang="scss">
133
+ :root {
134
+ --container-overscroll-icon-color: var(--secondary-600);
135
+ --container-text-color: var(--neutrals-400);
136
+ --container-padding: 16px;
137
+ --container-transition-duration: 0.3s;
138
+ --container-transition-ease: ease-out;
139
+ --container-shadow-color: var(--additional-950);
140
+ --container-shadow-opacity: 0.1;
141
+ --container-shadow: 0 3px 2px rgba(var(--container-shadow-color), var(--container-shadow-opacity)) inset;
142
+ }
143
+
133
144
  .vc-container {
134
145
  @apply tw-w-full tw-h-full tw-overflow-hidden tw-box-border tw-flex tw-flex-col tw-relative;
135
146
 
136
147
  &_shadow {
137
- @apply tw-shadow-[0_3px_2px_rgba(0,0,0,0.1)_inset];
148
+ @apply tw-shadow-[--container-shadow];
138
149
  }
139
150
 
140
151
  &__overscroll {
141
- @apply tw-absolute tw-w-full [transition:top_0.3s_ease-out];
152
+ @apply tw-absolute tw-w-full;
153
+ transition: top var(--container-transition-duration) var(--container-transition-ease);
142
154
 
143
155
  &_touching {
144
- @apply tw-transition-none;
156
+ transition: none;
145
157
  }
146
158
  }
147
159
 
@@ -150,17 +162,19 @@ defineExpose({
150
162
  }
151
163
 
152
164
  &__overscroll-icon {
153
- @apply tw-text-[color:#a1c0d4];
165
+ @apply tw-text-[color:var(--container-overscroll-icon-color)];
154
166
  }
155
167
 
156
168
  &__overscroll span {
157
- @apply tw-ml-2 tw-text-sm tw-text-gray-500;
169
+ @apply tw-ml-2 tw-text-sm;
170
+ color: var(--container-text-color);
158
171
  }
159
172
 
160
173
  &__inner {
161
174
  @apply tw-relative tw-overflow-y-auto tw-overflow-x-hidden
162
- tw-flex-1 tw-p-[var(--scroll-padding)]
163
- [transition:top_0.3s_ease-out];
175
+ tw-flex-1;
176
+ transition: top var(--container-transition-duration) var(--container-transition-ease);
177
+ padding: var(--container-padding);
164
178
 
165
179
  &_touching {
166
180
  transition: none;
@@ -168,7 +182,11 @@ defineExpose({
168
182
  }
169
183
 
170
184
  &_nopadding &__inner {
171
- @apply tw-p-0;
185
+ padding: 0;
186
+ }
187
+
188
+ &_shadow {
189
+ @apply tw-shadow-[--container-shadow];
172
190
  }
173
191
  }
174
192
  </style>
@@ -1,11 +1,17 @@
1
1
  <template>
2
- <div class="tw-text-[color:var(--hint-color)] tw-text-xs">
2
+ <div class="vc-hint">
3
3
  <slot></slot>
4
4
  </div>
5
5
  </template>
6
6
 
7
7
  <style lang="scss">
8
8
  :root {
9
- --hint-color: #a5a5a5;
9
+ --hint-color: var(--neutrals-500);
10
+ --hint-font-size: 12px;
11
+ }
12
+
13
+ .vc-hint {
14
+ color: var(--hint-color);
15
+ font-size: var(--hint-font-size);
10
16
  }
11
17
  </style>
@@ -25,9 +25,9 @@ withDefaults(defineProps<Props>(), {
25
25
  --icon-size-xxl: 30px;
26
26
  --icon-size-xxxl: 64px;
27
27
 
28
- --icon-color-success: #99c17a;
29
- --icon-color-danger: #f34747;
30
- --icon-color-warning: #f89406;
28
+ --icon-color-success: var(--success-500);
29
+ --icon-color-danger: var(--danger-500);
30
+ --icon-color-warning: var(--warning-500);
31
31
  }
32
32
 
33
33
  $sizes: xs, s, m, l, xl, xxl, xxxl;
@@ -5,20 +5,20 @@
5
5
  >
6
6
  <div
7
7
  :class="[
8
+ 'vc-image__container',
8
9
  `vc-image_${aspect}`,
9
10
  {
10
- 'tw-rounded-full': rounded,
11
- 'tw-rounded-[3px] tw-border tw-border-solid tw-border-[color:#efefef]': bordered,
12
- 'tw-cursor-pointer': clickable,
11
+ 'vc-image__container--rounded': rounded,
12
+ 'vc-image__container--bordered': bordered,
13
+ 'vc-image__container--clickable': clickable,
13
14
  },
14
- 'tw-relative',
15
15
  ]"
16
16
  :style="imageHandler"
17
17
  @click="onClick"
18
18
  >
19
19
  <div
20
20
  v-if="!src"
21
- class="tw-absolute tw-w-full tw-h-full tw-flex tw-items-center tw-justify-center tw-text-[#83a3be]"
21
+ class="vc-image__placeholder"
22
22
  >
23
23
  <VcIcon
24
24
  :icon="emptyIcon"
@@ -79,6 +79,10 @@ function onClick(): void {
79
79
  --image-size-l: 96px;
80
80
  --image-size-xl: 128px;
81
81
  --image-size-xxl: 145px;
82
+
83
+ --image-border-radius: 3px;
84
+ --image-border-color: var(--base-border-color, var(--neutrals-200));
85
+ --image-empty-icon-color: var(--secondary-500);
82
86
  }
83
87
 
84
88
  $aspects: (
@@ -88,7 +92,7 @@ $aspects: (
88
92
  3x2: 66.66%,
89
93
  );
90
94
 
91
- $paddings: xs, s, m, l, xl, xxl;
95
+ $sizes: xs, s, m, l, xl, xxl;
92
96
 
93
97
  .vc-image {
94
98
  @apply tw-inline-block tw-relative;
@@ -99,14 +103,34 @@ $paddings: xs, s, m, l, xl, xxl;
99
103
  }
100
104
  }
101
105
 
102
- @each $padding in $paddings {
103
- &_#{$padding} {
104
- @apply tw-w-[var(--image-size-#{$padding})] tw-max-w-full tw-min-w-0;
106
+ @each $size in $sizes {
107
+ &_#{$size} {
108
+ @apply tw-w-[var(--image-size-#{$size})] tw-max-w-full tw-min-w-0;
105
109
  }
106
110
  }
107
111
 
108
112
  &_auto {
109
113
  @apply tw-w-full;
110
114
  }
115
+
116
+ &__container {
117
+ @apply tw-relative;
118
+ }
119
+
120
+ &__container--rounded {
121
+ @apply tw-rounded-full;
122
+ }
123
+
124
+ &__container--bordered {
125
+ @apply tw-rounded-[var(--image-border-radius)] tw-border tw-border-solid tw-border-[color:var(--image-border-color)];
126
+ }
127
+
128
+ &__container--clickable {
129
+ @apply tw-cursor-pointer;
130
+ }
131
+
132
+ &__placeholder {
133
+ @apply tw-absolute tw-w-full tw-h-full tw-flex tw-items-center tw-justify-center tw-text-[color:var(--image-empty-icon-color)];
134
+ }
111
135
  }
112
136
  </style>
@@ -1,22 +1,22 @@
1
1
  <template>
2
- <div class="tw-flex tw-flex-row tw-justify-between tw-items-center tw-relative">
3
- <div class="tw-flex-nowrap tw-font-bold tw-truncate">
4
- <span class="tw-truncate">
2
+ <div class="vc-label">
3
+ <div class="vc-label__text">
4
+ <span class="vc-label__content">
5
5
  <slot></slot>
6
6
  </span>
7
7
  <span
8
8
  v-if="required"
9
- class="tw-text-[color:var(--label-required-color)] tw-ml-1"
9
+ class="vc-label__required"
10
10
  >*</span
11
11
  >
12
12
  </div>
13
13
  <span
14
14
  v-if="$slots['tooltip']"
15
- class="tw-grow tw-basis-0 tw-ml-1 tw-relative"
15
+ class="vc-label__tooltip"
16
16
  >
17
17
  <VcTooltip placement="top-start">
18
18
  <VcIcon
19
- class="tw-text-[color:var(--label-tooltip-color)]"
19
+ class="vc-label__tooltip-icon"
20
20
  :icon="tooltipIcon"
21
21
  size="s"
22
22
  ></VcIcon>
@@ -28,7 +28,7 @@
28
28
 
29
29
  <div
30
30
  v-if="multilanguage"
31
- class="tw-text-[color:var(--app-menu-item-icon-color)] tw-shrink-0"
31
+ class="vc-label__language"
32
32
  >
33
33
  {{ currentLanguage }}
34
34
  </div>
@@ -57,7 +57,36 @@ defineSlots<{
57
57
 
58
58
  <style lang="scss">
59
59
  :root {
60
- --label-required-color: #f14e4e;
61
- --label-tooltip-color: #d3e0ee;
60
+ --label-required-color: var(--danger-500);
61
+ --label-tooltip-color: var(--info-400);
62
+ --label-lang-color: var(--neutrals-500);
63
+ }
64
+
65
+ .vc-label {
66
+ @apply tw-flex tw-flex-row tw-justify-between tw-items-center tw-relative;
67
+
68
+ &__text {
69
+ @apply tw-flex-nowrap tw-font-bold tw-truncate;
70
+ }
71
+
72
+ &__content {
73
+ @apply tw-truncate tw-text-sm;
74
+ }
75
+
76
+ &__required {
77
+ @apply tw-text-[color:var(--label-required-color)] tw-ml-1;
78
+ }
79
+
80
+ &__tooltip {
81
+ @apply tw-grow-0 tw-basis-0 tw-ml-1 tw-relative tw-mr-auto;
82
+ }
83
+
84
+ &__tooltip-icon {
85
+ @apply tw-text-[color:var(--label-tooltip-color)];
86
+ }
87
+
88
+ &__language {
89
+ @apply tw-text-[color:var(--label-lang-color)] tw-shrink-0 tw-text-sm;
90
+ }
62
91
  }
63
92
  </style>
@@ -2,9 +2,8 @@
2
2
  <div
3
3
  class="vc-link"
4
4
  :class="{
5
- 'tw-text-[color:var(--link-text-color-active)] tw-no-underline': active,
6
- 'tw-cursor-not-allowed tw-text-[color:var(--link-text-color-disabled)] hover:tw-text-[color:var(--link-text-color-disabled)] tw-no-underline':
7
- disabled,
5
+ 'vc-link--active': active,
6
+ 'vc-link--disabled': disabled,
8
7
  }"
9
8
  @click="onClickFn"
10
9
  >
@@ -35,13 +34,21 @@ function onClickFn(): void {
35
34
 
36
35
  <style lang="scss">
37
36
  :root {
38
- --link-text-color: hsl(200, 77%, 58%);
39
- --link-text-color-hover: hsl(200, 77%, 48%);
40
- --link-text-color-active: hsl(200, 77%, 48%);
41
- --link-text-color-disabled: hsl(200, 77%, 73%);
37
+ --link-text-color: var(--primary-500);
38
+ --link-text-color-hover: var(--primary-400);
39
+ --link-text-color-active: var(--primary-700);
40
+ --link-text-color-disabled: var(--neutrals-300);
42
41
  }
43
42
 
44
43
  .vc-link {
45
- @apply tw-text-[color:var(--link-text-color)] tw-no-underline tw-cursor-pointer tw-transition tw-duration-200 tw-inline-block hover:tw-text-[color:var(--link-text-color-hover)] hover:tw-underline;
44
+ @apply tw-text-[color:var(--link-text-color)] tw-no-underline tw-cursor-pointer tw-transition tw-duration-200 tw-inline-block hover:tw-text-[color:var(--link-text-color-hover)] hover:tw-underline;
45
+
46
+ &--active {
47
+ @apply tw-text-[color:var(--link-text-color-active)] tw-no-underline hover:tw-text-[color:var(--link-text-color-active)] hover:tw-no-underline;
48
+ }
49
+
50
+ &--disabled {
51
+ @apply tw-cursor-not-allowed tw-text-[color:var(--link-text-color-disabled)] tw-no-underline hover:tw-text-[color:var(--link-text-color-disabled)] hover:tw-no-underline;
52
+ }
46
53
  }
47
54
  </style>
@@ -1,19 +1,17 @@
1
1
  <template>
2
2
  <div
3
- class="tw-absolute tw-items-center tw-justify-center tw-flex-col tw-z-[9998] tw-hidden tw-w-full tw-h-full tw-box-border"
3
+ class="vc-loading-overlay"
4
4
  :class="{
5
- '!tw-flex tw-backdrop-blur-[3px] tw-bg-[rgba(255, 255, 255, 0.5)]': active,
5
+ 'vc-loading-overlay--active': active,
6
6
  }"
7
7
  >
8
- <div class="tw-relative tw-w-[142px] tw-h-[40px] tw-z-[1]">
9
- <span
10
- class="tw-absolute tw-w-4 tw-h-4 tw-top-[12px] tw-left-[15px] tw-bg-[#319ed4] tw-rounded-full tw-translate-x-0 tw-animate-loadingMarker"
11
- ></span>
12
- <div class="tw-translate-x-0 tw-mt-3 tw-ml-[31px] tw-animate-loadingMarkers">
8
+ <div class="vc-loading-overlay__content">
9
+ <span class="vc-loading-overlay__main-marker"></span>
10
+ <div class="vc-loading-overlay__markers">
13
11
  <span
14
12
  v-for="item in 3"
15
13
  :key="`marker_${item}`"
16
- class="tw-block tw-float-left tw-w-4 tw-h-4 tw-bg-[#319ed4] tw-rounded-full tw-ml-4"
14
+ class="vc-loading-overlay__marker"
17
15
  ></span>
18
16
  </div>
19
17
  </div>
@@ -27,3 +25,34 @@ export interface Props {
27
25
 
28
26
  defineProps<Props>();
29
27
  </script>
28
+
29
+ <style lang="scss">
30
+ :root {
31
+ --loading-marker-color: var(--primary-500);
32
+ }
33
+
34
+ .vc-loading-overlay {
35
+ @apply tw-absolute tw-items-center tw-justify-center tw-flex-col tw-z-[9998] tw-w-full tw-h-full tw-box-border tw-hidden;
36
+
37
+ &--active {
38
+ @apply tw-flex #{!important};
39
+ @apply tw-backdrop-blur-[3px];
40
+ }
41
+
42
+ &__content {
43
+ @apply tw-relative tw-w-36 tw-h-10 tw-z-[1];
44
+ }
45
+
46
+ &__main-marker {
47
+ @apply tw-absolute tw-w-4 tw-h-4 tw-top-3 tw-left-4 tw-bg-[color:var(--loading-marker-color)] tw-rounded-full tw-translate-x-0 tw-animate-loadingMarker;
48
+ }
49
+
50
+ &__markers {
51
+ @apply tw-translate-x-0 tw-mt-3 tw-ml-8 tw-animate-loadingMarkers;
52
+ }
53
+
54
+ &__marker {
55
+ @apply tw-block tw-float-left tw-w-4 tw-h-4 tw-bg-[color:var(--loading-marker-color)] tw-rounded-full tw-ml-4;
56
+ }
57
+ }
58
+ </style>
@@ -1,12 +1,12 @@
1
1
  <template>
2
2
  <div
3
- :class="[
4
- 'vc-progress tw-border-[length:var(--progressbar-border-width)] tw-border-[color:var(--progressbar-border-color)] tw-rounded-[var(--progressbar-border-radius)] tw-h-[var(--progressbar-height)] tw-transition tw-duration-200 tw-box-border tw-bg-[color:var(--progressbar-background-color)]',
5
- variant,
6
- ]"
3
+ class="vc-progress"
4
+ :class="{
5
+ 'vc-progress--striped': variant === 'striped',
6
+ }"
7
7
  >
8
8
  <div
9
- class="vc-progress__value tw-bg-[color:var(--progressbar-foreground-color)] tw-transition tw-duration-200 tw-h-full"
9
+ class="vc-progress__value"
10
10
  :style="`width: ${value}%`"
11
11
  ></div>
12
12
  </div>
@@ -28,33 +28,41 @@ withDefaults(defineProps<Props>(), {
28
28
  :root {
29
29
  --progressbar-height: 16px;
30
30
  --progressbar-border-radius: 2px;
31
- --progressbar-background-color: #ffffff;
32
- --progressbar-foreground-color: #e1eff9;
31
+ --progressbar-background-color: var(--additional-50);
32
+ --progressbar-foreground-color: var(--accent-200);
33
33
  --progressbar-border-width: 1px;
34
- --progressbar-border-color: #e1eff9;
34
+ --progressbar-border-color: var(--base-border-color, var(--neutrals-200));
35
+ --progressbar-striped-bg: linear-gradient(
36
+ 45deg,
37
+ transparent 50%,
38
+ var(--accent-200) 50%,
39
+ var(--accent-200) 75%,
40
+ transparent 75%
41
+ )
42
+ left/30px 30px repeat-x,
43
+ var(--accent-50);
44
+ --progressbar-striped-color: var(--accent-200);
35
45
  }
36
46
 
37
47
  @keyframes change {
38
48
  from {
39
- background-position:
40
- 0 0,
41
- left;
49
+ background-position: 0 0;
42
50
  }
43
51
  to {
44
- background-position:
45
- 30px 0,
46
- left;
52
+ background-position: 30px 0;
47
53
  }
48
54
  }
49
55
 
50
56
  .vc-progress {
51
- &.striped {
52
- .vc-progress__value {
53
- background:
54
- linear-gradient(45deg, transparent 50%, #acd2f2 50%, #acd2f2 75%, transparent 75%) left/30px 30px repeat-x,
55
- #e1f0fe;
56
- animation: change 1s linear infinite;
57
- }
57
+ @apply tw-border-[length:var(--progressbar-border-width)] tw-border-[color:var(--progressbar-border-color)] tw-rounded-[var(--progressbar-border-radius)] tw-h-[var(--progressbar-height)] tw-transition tw-duration-200 tw-box-border tw-bg-[color:var(--progressbar-background-color)];
58
+
59
+ &__value {
60
+ @apply tw-bg-[color:var(--progressbar-foreground-color)] tw-transition tw-duration-200 tw-h-full;
61
+ }
62
+
63
+ &--striped .vc-progress__value {
64
+ background: var(--progressbar-striped-bg);
65
+ animation: change 1s linear infinite;
58
66
  }
59
67
  }
60
68
  </style>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="vc-row tw-flex-nowrap tw-flex tw-items-stretch">
2
+ <div class="vc-row">
3
3
  <slot></slot>
4
4
  </div>
5
5
  </template>
@@ -13,8 +13,10 @@ defineSlots<{
13
13
 
14
14
  <style lang="scss">
15
15
  .vc-row {
16
+ @apply tw-flex tw-flex-nowrap tw-items-stretch;
17
+
16
18
  .vc-app_mobile & {
17
- display: grid;
19
+ @apply tw-grid;
18
20
  }
19
21
  }
20
22
  </style>
@@ -6,7 +6,7 @@
6
6
  <slot></slot>
7
7
  </div>
8
8
  </template>
9
- <!-- eslint-disable @typescript-eslint/no-explicit-any -->
9
+
10
10
  <script lang="ts" setup>
11
11
  export interface Props {
12
12
  variant?: "info" | "warning" | "danger" | "success" | "light-danger" | "info-dark" | "primary";
@@ -20,6 +20,7 @@ withDefaults(defineProps<Props>(), {
20
20
  });
21
21
 
22
22
  defineSlots<{
23
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
24
  default: (props?: any) => any;
24
25
  }>();
25
26
  </script>
@@ -33,45 +34,53 @@ defineSlots<{
33
34
  --status-border-radius-extended: 4px;
34
35
  --status-border-width: 1px;
35
36
 
36
- --status-info-color: #ffffff;
37
- --status-info-main-color: #bdd1df;
37
+ --status-info-color: var(--neutrals-50);
38
+ --status-info-main-color: var(--info-300);
39
+
40
+ --status-warning-color: var(--neutrals-50);
41
+ --status-warning-main-color: var(--warning-500);
38
42
 
39
- --status-warning-color: #ffffff;
40
- --status-warning-main-color: #f89406;
43
+ --status-danger-color: var(--neutrals-50);
44
+ --status-danger-main-color: var(--danger-500);
41
45
 
42
- --status-danger-color: #ffffff;
43
- --status-danger-main-color: #ef796f;
46
+ --status-success-color: var(--neutrals-50);
47
+ --status-success-main-color: var(--success-500);
44
48
 
45
- --status-success-color: #ffffff;
46
- --status-success-main-color: #87b563;
49
+ --status-light-danger-color: var(--neutrals-50);
50
+ --status-light-danger-main-color: var(--danger-200);
47
51
 
48
- --status-light-danger-color: #333333;
49
- --status-light-danger-main-color: #ffefef;
52
+ --status-info-dark-color: var(--neutrals-50);
53
+ --status-info-dark-main-color: var(--info-600);
50
54
 
51
- --status-info-dark-color: #ffffff;
52
- --status-info-dark-main-color: #82a6bd;
55
+ --status-primary-main-color: var(--primary-500);
56
+ --status-primary-color: var(--neutrals-50);
53
57
 
54
- --status-primary-main-color: #319ed4;
55
- --status-primary-color: #ffffff;
58
+ --status-outline-bg-color: var(--additional-50);
56
59
  }
57
60
 
58
61
  $variants: info, warning, danger, success, light-danger, info-dark, primary;
59
62
 
60
63
  .vc-status {
61
- @apply tw-inline-block tw-rounded-[var(--status-border-radius)] tw-py-1 tw-px-3.5 tw-text-base tw-font-normal tw-whitespace-nowrap;
64
+ @apply tw-inline-block tw-font-normal tw-whitespace-nowrap tw-text-sm tw-truncate tw-text-center tw-border tw-border-solid tw-box-border tw-w-full;
65
+
66
+ @apply tw-py-1 tw-px-3.5 tw-rounded-[var(--status-border-radius)];
67
+
68
+ border-width: var(--status-border-width);
62
69
 
63
70
  @each $variant in $variants {
64
- &_#{$variant} {
65
- @apply tw-text-[color:var(--status-#{$variant}-color)] tw-border tw-border-solid tw-border-[color:var(--status-#{$variant}-main-color)] tw-bg-[color:var(--status-#{$variant}-main-color)];
71
+ &.vc-status_#{$variant} {
72
+ @apply tw-text-[color:var(--status-#{$variant}-color)] tw-border-[color:var(--status-#{$variant}-main-color)] tw-bg-[color:var(--status-#{$variant}-main-color)];
66
73
 
67
74
  &.vc-status_outline {
68
- @apply tw-text-[color:var(--status-#{$variant}-main-color)] tw-border tw-border-solid tw-border-[color:var(--status-#{$variant}-main-color)] tw-bg-white;
75
+ @apply tw-text-[color:var(--status-#{$variant}-main-color)] tw-bg-[color:var(--status-outline-bg-color)];
69
76
  }
70
77
  }
71
78
  }
72
79
 
73
80
  &.vc-status_extended {
74
- @apply tw-whitespace-normal tw-p-[var(--status-padding-extended)] tw-rounded-[var(--status-border-radius-extended)];
81
+ @apply tw-whitespace-normal tw-rounded-[var(--status-border-radius-extended)];
82
+
83
+ padding: var(--status-padding-extended);
75
84
  }
76
85
  }
77
86
  </style>
@@ -1,15 +1,15 @@
1
1
  <template>
2
- <div>
2
+ <div class="vc-status-icon">
3
3
  <template v-if="status">
4
4
  <VcIcon
5
5
  icon="fas fa-check-circle"
6
- class="tw-text-[color:#87b563]"
6
+ class="vc-status-icon__icon vc-status-icon__icon--success"
7
7
  ></VcIcon>
8
8
  </template>
9
9
  <template v-else>
10
10
  <VcIcon
11
11
  icon="fas fa-times-circle"
12
- class="tw-text-[color:#bdd1df]"
12
+ class="vc-status-icon__icon vc-status-icon__icon--info"
13
13
  ></VcIcon>
14
14
  </template>
15
15
  </div>
@@ -23,3 +23,20 @@ export interface Props {
23
23
 
24
24
  defineProps<Props>();
25
25
  </script>
26
+
27
+ <style lang="scss">
28
+ :root {
29
+ --status-success-main-color: var(--success-400);
30
+ --status-info-main-color: var(--info-300);
31
+ }
32
+
33
+ .vc-status-icon {
34
+ &__icon--success {
35
+ @apply tw-text-[color:var(--status-success-main-color)];
36
+ }
37
+
38
+ &__icon--info {
39
+ @apply tw-text-[color:var(--status-info-main-color)];
40
+ }
41
+ }
42
+ </style>