@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
@@ -10,12 +10,12 @@
10
10
  :icon="icon"
11
11
  :size="small ? 'xs' : iconSize"
12
12
  ></VcIcon>
13
- <span
13
+ <p
14
14
  v-if="$slots['default']"
15
15
  class="vc-button__title"
16
16
  >
17
17
  <slot></slot>
18
- </span>
18
+ </p>
19
19
  </button>
20
20
  </template>
21
21
  <!-- eslint-disable @typescript-eslint/no-explicit-any -->
@@ -77,24 +77,24 @@ function onClick(e: Event): void {
77
77
 
78
78
  <style lang="scss">
79
79
  :root {
80
- --button-primary-background-color: 65, 175, 230;
81
- --button-primary-background-color-hover: 49, 158, 212;
82
- --button-primary-background-color-disabled: 169, 221, 246;
83
- --button-primary-text-color: 255, 255, 255;
80
+ --button-primary-background-color: var(--primary-500);
81
+ --button-primary-background-color-hover: var(--primary-600);
82
+ --button-primary-background-color-disabled: var(--primary-300);
83
+ --button-primary-text-color: var(--neutrals-50);
84
84
  --button-primary-text-color-outlined: var(--button-primary-background-color);
85
85
  --button-primary-text-color-hover: var(--button-primary-background-color-hover);
86
86
 
87
- --button-warning-background-color: 248, 148, 6;
88
- --button-warning-background-color-hover: 235, 139, 3;
89
- --button-warning-background-color-disabled: 254, 212, 152;
90
- --button-warning-text-color: 255, 255, 255;
87
+ --button-warning-background-color: var(--warning-500);
88
+ --button-warning-background-color-hover: var(--warning-600);
89
+ --button-warning-background-color-disabled: var(--warning-300);
90
+ --button-warning-text-color: var(--neutrals-50);
91
91
  --button-warning-text-color-outlined: var(--button-warning-background-color);
92
92
  --button-warning-text-color-hover: var(--button-warning-background-color-hover);
93
93
 
94
- --button-danger-background-color: 255, 74, 74;
95
- --button-danger-background-color-hover: 215, 58, 58;
96
- --button-danger-background-color-disabled: 255, 94, 94;
97
- --button-danger-text-color: 255, 255, 255;
94
+ --button-danger-background-color: var(--danger-500);
95
+ --button-danger-background-color-hover: var(--danger-600);
96
+ --button-danger-background-color-disabled: var(--danger-300);
97
+ --button-danger-text-color: var(--neutrals-50);
98
98
  --button-danger-text-color-outlined: var(--button-danger-background-color);
99
99
  --button-danger-text-color-hover: var(--button-danger-background-color-hover);
100
100
 
@@ -106,6 +106,9 @@ function onClick(e: Event): void {
106
106
 
107
107
  --button-height: 36px;
108
108
  --button-height-small: 28px;
109
+
110
+ --button-raised-shadow-color: var(--secondary-200);
111
+ --button-raised-shadow: 1px 4px 10px rgb(from var(--button-raised-shadow-color) r g b / 100%);
109
112
  }
110
113
 
111
114
  $variants: primary, warning, danger;
@@ -120,13 +123,13 @@ $variants: primary, warning, danger;
120
123
  @apply tw-inline-flex tw-items-center tw-font-medium tw-text-sm tw-cursor-pointer tw-box-border tw-transition tw-duration-200
121
124
  tw-rounded-[var(--button-border-radius)] tw-px-[var(--button-padding-hor)] tw-py-[var(--button-padding-vert)]
122
125
  tw-min-h-[var(--button-height)]
123
- tw-bg-[color:rgb(var(--button-#{$variant}-background-color))]
126
+ tw-bg-[color:var(--button-#{$variant}-background-color)]
124
127
  tw-flex tw-justify-center
125
- tw-text-[color:rgb(var(--button-#{$variant}-text-color))]
126
- hover:tw-bg-[color:rgb(var(--button-#{$variant}-background-color-hover))]
127
- focus:tw-bg-[color:rgb(var(--button-#{$variant}-background-color-hover))]
128
+ tw-text-[color:var(--button-#{$variant}-text-color)]
129
+ hover:tw-bg-[color:var(--button-#{$variant}-background-color-hover)]
130
+ focus:tw-bg-[color:var(--button-#{$variant}-background-color-hover)]
128
131
  disabled:tw-cursor-not-allowed
129
- disabled:tw-bg-[color:rgb(var(--button-#{$variant}-background-color-disabled))];
132
+ disabled:tw-bg-[color:var(--button-#{$variant}-background-color-disabled)];
130
133
 
131
134
  &.vc-button_small {
132
135
  @apply tw-py-[var(--button-padding-vert-small)] tw-min-h-[var(--button-height-small)] tw-px-[var(--button-padding-hor-small)] tw-font-normal tw-text-xs;
@@ -137,44 +140,44 @@ $variants: primary, warning, danger;
137
140
  }
138
141
 
139
142
  &.vc-button_outline {
140
- @apply tw-bg-transparent tw-border tw-border-[color:rgb(var(--button-#{$variant}-background-color))]
141
- tw-text-[color:rgb(var(--button-#{$variant}-text-color-outlined))]
142
- hover:tw-text-[color:rgb(var(--button-#{$variant}-text-color-hover))]
143
+ @apply tw-bg-transparent tw-border tw-border-[color:var(--button-#{$variant}-background-color)]
144
+ tw-text-[color:var(--button-#{$variant}-text-color-outlined)]
145
+ hover:tw-text-[color:var(--button-#{$variant}-text-color-hover)]
143
146
  hover:tw-bg-transparent
144
- hover:tw-border-[color:rgb(var(--button-#{$variant}-background-color-hover))]
145
- disabled:tw-text-[color:rgba(var(--button-#{$variant}-text-color-hover),0.5)]
146
- disabled:tw-border-[color:rgba(var(--button-#{$variant}-background-color),0.5)]
147
+ hover:tw-border-[color:var(--button-#{$variant}-background-color-hover)]
148
+ disabled:tw-text-[color:rgb(from_var(--button-#{$variant}-text-color-hover)_r_g_b/50%)]
149
+ disabled:tw-border-[color:rgb(from_var(--button-#{$variant}-background-color)_r_g_b/50%)]
147
150
  disabled:tw-bg-transparent;
148
151
  }
149
152
 
150
153
  &.vc-button_text {
151
154
  @apply tw-border-none tw-bg-transparent tw-p-0 tw-min-h-0
152
- tw-text-[color:rgb(var(--button-#{$variant}-background-color))]
153
- hover:tw-text-[color:rgb(var(--button-#{$variant}-background-color-hover))]
154
- focus:tw-text-[color:rgb(var(--button-#{$variant}-background-color-hover))]
155
- disabled:tw-text-[color:rgba(var(--button-#{$variant}-background-color),0.5)];
155
+ tw-text-[color:var(--button-#{$variant}-background-color)]
156
+ hover:tw-text-[color:var(--button-#{$variant}-background-color-hover)]
157
+ focus:tw-text-[color:var(--button-#{$variant}-background-color-hover)]
158
+ disabled:tw-text-[color:rgb(from_var(--button-#{$variant}-background-color)_r_g_b/50%)];
156
159
  }
157
160
 
158
161
  &.vc-button_raised {
159
- @apply tw-shadow-[1px_4px_10px_rgba(197,206,214,1)] tw-px-[var(--button-padding-hor)] tw-py-[var(--button-padding-vert)];
162
+ @apply [box-shadow:var(--button-raised-shadow)] tw-px-[var(--button-padding-hor)] tw-py-[var(--button-padding-vert)];
160
163
 
161
164
  &.vc-button_text:not(:disabled) {
162
165
  &:hover,
163
166
  &:focus {
164
- @apply tw-bg-[color:rgba(var(--button-#{$variant}-background-color-hover),0.07)];
167
+ @apply tw-bg-[color:rgb(from_var(--button-#{$variant}-background-color-hover)_r_g_b/7%)];
165
168
  }
166
169
  }
167
170
  }
168
171
 
169
172
  &.vc-button_selected {
170
- @apply tw-bg-[color:rgb(var(--button-#{$variant}-background-color-hover))];
173
+ @apply tw-bg-[color:var(--button-#{$variant}-background-color-hover)];
171
174
 
172
175
  &.vc-button_text {
173
- @apply tw-bg-[color:rgba(var(--button-#{$variant}-background-color-hover),0.07)] tw-p-1;
176
+ @apply tw-bg-[color:rgb(from_var(--button-#{$variant}-background-color-hover)_r_g_b/7%)] tw-p-1;
174
177
  }
175
178
 
176
179
  &.vc-button_outline {
177
- @apply tw-border-[color:rgb(var(--button-#{$variant}-background-color-hover))] tw-bg-transparent #{!important};
180
+ @apply tw-border-[color:var(--button-#{$variant}-background-color-hover)] tw-bg-transparent #{!important};
178
181
  }
179
182
  }
180
183
  }
@@ -94,30 +94,36 @@ watch(
94
94
 
95
95
  <style lang="scss">
96
96
  :root {
97
- --card-background: #ffffff;
97
+ --card-background: var(--additional-50);
98
98
  --card-border-radius: 6px;
99
- --card-box-shadow: 1px 1px 7px rgba(126, 142, 157, 0.15);
100
- --card-header-background: #f4f8fb;
101
- --card-header-color: #83a3be;
99
+ --card-box-shadow-color: var(--secondary-600);
100
+ --card-box-shadow: 1px 1px 7px rgb(from var(--card-box-shadow-color) r g b / 15%);
101
+ --card-header-background: var(--secondary-50);
102
+ --card-header-color: var(--secondary-600);
102
103
 
103
- --card-header-background-success: #e9f7df;
104
- --card-header-background-danger: #ffe6e6;
104
+ --card-header-background-success: var(--success-100);
105
+ --card-header-background-danger: var(--danger-100);
105
106
 
106
- --card-header-color-success: #99c17a;
107
- --card-header-color-danger: #f34747;
107
+ --card-header-color-success: var(--success-600);
108
+ --card-header-color-danger: var(--danger-600);
109
+
110
+ --card-header-padding-hor: 16px;
111
+ --card-header-padding-vert: 12px;
112
+
113
+ --card-border-color: var(--base-border-color, var(--neutrals-200));
108
114
  }
109
115
 
110
116
  $variants: success, danger;
111
117
 
112
118
  .vc-card {
113
119
  @apply tw-bg-[color:var(--card-background)] tw-border
114
- tw-border-[color:#eef0f2] tw-border-solid tw-box-border
120
+ tw-border-[color:var(--card-border-color)] tw-border-solid tw-box-border
115
121
  tw-shadow-[var(--card-box-shadow)]
116
122
  tw-rounded-[var(--card-border-radius)] tw-overflow-hidden
117
123
  tw-flex-grow tw-flex tw-flex-col;
118
124
 
119
125
  &__header {
120
- @apply tw-bg-[color:var(--card-header-background)] tw-px-4 tw-py-3 tw-flex tw-items-center tw-content-between tw-w-full tw-box-border;
126
+ @apply tw-bg-[color:var(--card-header-background)] tw-px-[var(--card-header-padding-hor)] tw-py-[var(--card-header-padding-vert)] tw-flex tw-items-center tw-content-between tw-w-full tw-box-border;
121
127
  }
122
128
 
123
129
  &_collapsable &__header {
@@ -127,7 +133,7 @@ $variants: success, danger;
127
133
  &__title {
128
134
  @apply tw-uppercase tw-flex-grow
129
135
  tw-text-[color:var(--card-header-color)]
130
- tw-text-base tw-font-bold;
136
+ tw-text-sm tw-font-bold;
131
137
  }
132
138
 
133
139
  &__icon {
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div
3
- class="vc-col tw-flex tw-flex-col tw-min-w-0 tw-basis-0"
3
+ class="vc-col"
4
4
  :style="{ flexGrow: size }"
5
5
  >
6
6
  <slot></slot>
@@ -23,9 +23,7 @@ defineSlots<{
23
23
  </script>
24
24
 
25
25
  <style lang="scss">
26
- // .vc-col {
27
- // .vc-app_mobile & {
28
- // @apply tw-grow #{!important};
29
- // }
30
- // }
26
+ .vc-col {
27
+ @apply tw-flex tw-flex-col tw-min-w-0 tw-basis-0;
28
+ }
31
29
  </style>
@@ -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>