@webitel/ui-sdk 25.8.17 → 25.8.18

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 (31) hide show
  1. package/dist/img/sprite/index.js +1 -1
  2. package/dist/ui-sdk.css +1 -1
  3. package/dist/ui-sdk.js +6298 -5690
  4. package/dist/ui-sdk.umd.cjs +104 -104
  5. package/package.json +2 -2
  6. package/src/components/wt-button/wt-button.vue +66 -236
  7. package/src/css/main.scss +0 -8
  8. package/src/enums/ButtonColor/ButtonColor.ts +1 -0
  9. package/src/plugins/primevue/primevue.plugin.js +1 -1
  10. package/src/plugins/primevue/theme/components/button/button.js +4 -98
  11. package/src/plugins/primevue/theme/components/popover/popover.js +4 -7
  12. package/src/plugins/primevue/theme/components/tooltip/tooltip.js +4 -5
  13. package/src/plugins/primevue/theme/webitel-theme.js +1 -1
  14. package/types/components/wt-button/wt-button.vue.d.ts +56 -104
  15. package/types/components/wt-popover/wt-popover.vue.d.ts +4 -4
  16. package/types/components/wt-rounded-action/wt-rounded-action.vue.d.ts +2 -2
  17. package/types/components/wt-slider/wt-slider.vue.d.ts +2 -2
  18. package/types/enums/ButtonColor/ButtonColor.d.ts +1 -0
  19. package/types/plugins/primevue/theme/components/button/button.d.ts +1 -136
  20. package/types/plugins/primevue/theme/components/popover/popover.d.ts +1 -9
  21. package/types/plugins/primevue/theme/components/tooltip/tooltip.d.ts +1 -7
  22. package/src/plugins/primevue/theme/semantic/color-scheme/color-schema.js +0 -16
  23. package/src/plugins/primevue/theme/semantic/color-scheme/dark-color.js +0 -198
  24. package/src/plugins/primevue/theme/semantic/color-scheme/light-color.js +0 -198
  25. package/src/plugins/primevue/theme/semantic/color-scheme/palette.js +0 -516
  26. package/src/plugins/primevue/theme/semantic/semantic.js +0 -7
  27. package/types/plugins/primevue/theme/semantic/color-scheme/color-schema.d.ts +0 -1189
  28. package/types/plugins/primevue/theme/semantic/color-scheme/dark-color.d.ts +0 -162
  29. package/types/plugins/primevue/theme/semantic/color-scheme/light-color.d.ts +0 -162
  30. package/types/plugins/primevue/theme/semantic/color-scheme/palette.d.ts +0 -435
  31. package/types/plugins/primevue/theme/semantic/semantic.d.ts +0 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webitel/ui-sdk",
3
- "version": "25.8.17",
3
+ "version": "25.8.18",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "make-all": "npm version patch --git-tag-version false && npm run build && (npm run build:types || true) && (npm run lint:fix || true) && npm run publish-lib",
@@ -55,7 +55,7 @@
55
55
  "@vuepic/vue-datepicker": "^4.5.1",
56
56
  "@vueuse/components": "^13.0.0",
57
57
  "@webitel/api-services": "^0.0.28",
58
- "@webitel/styleguide": "^24.12.26",
58
+ "@webitel/styleguide": "^24.12.32",
59
59
  "autosize": "^6.0.1",
60
60
  "axios": "^1.8.3",
61
61
  "clipboard-copy": "^4.0.1",
@@ -1,22 +1,19 @@
1
1
  <template>
2
- <button
3
- type="button"
2
+ <p-button
3
+ v-bind="attrs"
4
+ :severity="color"
4
5
  :disabled="disabled"
5
- :class="[
6
- colorClass,
7
- `wt-button--size-${size}`,
8
- {
9
- 'wt-button--width-by-content': widthByContent,
10
- 'wt-button--contains-icon': containsIcon,
11
- 'wt-button--wide': wide,
12
- 'wt-button--disabled': disabled,
13
- 'wt-button--loading': showLoader,
14
- },
15
- ]"
6
+ :loading="showLoader"
7
+ :size="primevueSizeMap[size]"
16
8
  class="wt-button"
17
- @click="$emit('click', $event)"
9
+ :class="{
10
+ 'p-button--width-by-content': widthByContent,
11
+ 'p-button--contains-icon': containsIcon,
12
+ 'p-button--wide': wide,
13
+ 'p-button--loading': showLoader,
14
+ }"
15
+ @click.prevent="emit('click', $event)"
18
16
  >
19
- <!-- Show loader and button contents at the same time to prevent width shift if content > min-width of button -->
20
17
  <wt-loader
21
18
  v-if="showLoader"
22
19
  :color="loaderColor"
@@ -25,231 +22,64 @@
25
22
  <div class="wt-button__contents">
26
23
  <slot> no content provided</slot>
27
24
  </div>
28
- </button>
25
+ </p-button>
29
26
  </template>
30
27
 
31
- <script>
32
- export default {
33
- name: 'WtButton',
34
- props: {
35
- /**
36
- * @values 'primary', 'secondary', 'success', 'error', 'transfer', 'job', 'info'
37
- * @example <wt-button color="success"></wt-button>
38
- */
39
- color: {
40
- type: String,
41
- default: 'primary',
42
- },
43
- disabled: {
44
- type: Boolean,
45
- default: false,
46
- },
47
- loading: {
48
- type: Boolean,
49
- default: false,
50
- },
51
- /**
52
- * @values 'sm', 'md'
53
- * @example <wt-button size="sm"></wt-button>
54
- */
55
- size: {
56
- type: String,
57
- default: 'md',
58
- options: ['sm', 'md'],
59
- },
60
- /**
61
- * Stretches button to all available width
62
- */
63
- wide: {
64
- type: Boolean,
65
- default: false,
66
- },
67
- /**
68
- * Shrinks button to content width
69
- */
70
- widthByContent: {
71
- type: Boolean,
72
- default: false,
73
- },
74
- /**
75
- * sets wt-button line-height to 0 to prevent height changing: [stack overflow](https://stackoverflow.com/a/11126701)
76
- */
77
- containsIcon: {
78
- type: Boolean,
79
- default: false,
80
- description: 'https://stackoverflow.com/a/11126701',
81
- },
82
- },
83
- emits: ['click'],
84
- data: () => ({
85
- showLoader: false,
86
- }),
87
- computed: {
88
- colorClass() {
89
- if (!this.disabled) return `${this.color}`;
90
- return '';
91
- },
92
- loaderColor() {
93
- return 'on-dark';
94
- // if (['success', 'transfer', 'error', 'job'].includes(this.color)) return 'on-dark';
95
- // return 'on-light';
96
- },
97
- },
98
- watch: {
99
- loading: {
100
- immediate: true,
101
- handler(value) {
102
- if (value) {
103
- this.showLoader = true;
104
- } else {
105
- setTimeout(() => {
106
- this.showLoader = value;
107
- }, 1000); // why 1s? https://ux.stackexchange.com/a/104782
108
- }
109
- },
110
- },
111
- },
112
- };
113
- </script>
114
-
115
- <style lang="scss">
116
- @use './variables.scss';
117
- </style>
118
-
119
- <style lang="scss" scoped>
120
- @use '@webitel/styleguide/typography' as *;
121
-
122
- .wt-button {
123
- cursor: pointer;
124
- background-clip: padding-box;
125
- @extend %typo-button;
126
- display: inline-block;
127
- position: relative;
128
- transition: var(--transition);
129
- box-sizing: border-box;
130
- border-radius: var(--border-radius);
131
- background-color: var(--btn-primary-color);
132
- padding: var(--btn-padding);
133
- min-width: var(--btn-min-width);
134
- color: var(--btn-primary-text-color);
135
-
136
- &__contents {
137
- display: contents;
138
- }
139
-
140
- .wt-loader {
141
- position: absolute;
142
- top: 50%;
143
- left: 50%;
144
- transform: translate(-50%, -50%);
145
- }
146
-
147
- &--wide {
148
- width: 100%;
149
- }
150
-
151
- &--width-by-content {
152
- min-width: 0;
153
- }
154
-
155
- // https://stackoverflow.com/a/11126701
156
- &--contains-icon {
157
- line-height: 0;
158
- }
159
-
160
- &--loading {
161
- pointer-events: none;
162
-
163
- .wt-button__contents {
164
- visibility: hidden;
165
- }
166
- }
167
-
168
- &--size {
169
- &-sm {
170
- padding: var(--btn-padding--size-sm);
171
- }
172
-
173
- &-md {
174
- padding: var(--btn-padding);
175
- }
176
- }
177
-
178
- &:hover,
179
- &:active {
180
- background-color: var(--btn-primary-hover-color);
181
- }
28
+ <script setup lang="ts">
29
+ import type { ButtonProps } from 'primevue';
30
+ import {computed, defineEmits, defineProps, ref, useAttrs, watch} from 'vue';
182
31
 
183
- &.secondary {
184
- background-color: var(--btn-secondary-color);
185
- color: var(--btn-secondary-text-color);
32
+ import { ButtonColor,ComponentSize } from '../../enums';
186
33
 
187
- &:hover,
188
- &:active {
189
- background-color: var(--btn-secondary-hover-color);
190
- }
191
- }
192
-
193
- &.success {
194
- background-color: var(--btn-success-color);
195
- color: var(--btn-success-text-color);
196
-
197
- &:hover,
198
- &:active {
199
- background-color: var(--btn-success-hover-color);
200
- }
201
- }
202
-
203
- &.info {
204
- background-color: var(--btn-info-color);
205
- color: var(--btn-info-text-color);
206
-
207
- &:hover,
208
- &:active {
209
- background-color: var(--btn-info-hover-color);
210
- }
211
- }
212
-
213
- &.job {
214
- background-color: var(--btn-job-color);
215
- color: var(--btn-job-text-color);
216
-
217
- &:hover,
218
- &:active {
219
- background-color: var(--btn-job-hover-color);
220
- }
221
- }
222
-
223
- &.transfer {
224
- background-color: var(--btn-transfer-color);
225
- color: var(--btn-transfer-text-color);
226
-
227
- &:hover,
228
- &:active {
229
- background-color: var(--btn-transfer-hover-color);
230
- }
231
- }
34
+ const primevueSizeMap = {
35
+ [ComponentSize.SM]: 'small',
36
+ [ComponentSize.MD]: 'medium',
37
+ };
232
38
 
233
- &.error {
234
- background-color: var(--btn-error-color);
235
- color: var(--btn-error-text-color);
39
+ interface WtButtonProps extends /* @vue-ignore */ ButtonProps {
40
+ color?: ButtonColor;
41
+ disabled?: boolean;
42
+ loading?: boolean;
43
+ size?: ComponentSize;
44
+ wide?: boolean;
45
+ widthByContent?: boolean;
46
+ containsIcon?: boolean;
47
+ }
236
48
 
237
- &:hover,
238
- &:active {
239
- background-color: var(--btn-error-hover-color);
49
+ const props = withDefaults(defineProps<WtButtonProps>(), {
50
+ color: ButtonColor.PRIMARY,
51
+ disabled: false,
52
+ loading: false,
53
+ size: ComponentSize.MD,
54
+ wide: false,
55
+ widthByContent: false,
56
+ containsIcon: false,
57
+ });
58
+
59
+ const emit = defineEmits(['click']);
60
+
61
+ const attrs = useAttrs();
62
+
63
+ const showLoader = ref(false);
64
+
65
+ const loaderColor = computed(() => {
66
+ return 'on-dark';
67
+ // if (['success', 'transfer', 'error', 'job'].includes(props.color)) return 'on-dark';
68
+ // return 'on-light';
69
+ });
70
+
71
+ watch(
72
+ () => props.loading,
73
+ (value) => {
74
+ if (value) {
75
+ showLoader.value = true;
76
+ } else {
77
+ setTimeout(() => {
78
+ showLoader.value = value;
79
+ }, 1000); // why 1s? https://ux.stackexchange.com/a/104782
240
80
  }
241
- }
242
-
243
- &.wt-button--disabled {
244
- cursor: auto;
245
- box-shadow: none;
246
- background-color: var(--btn-disabled-color);
247
- pointer-events: none;
248
- color: var(--btn-disabled-text-color);
249
- }
250
-
251
- .wt-loader {
252
- margin: auto;
253
- }
254
- }
255
- </style>
81
+ }, {
82
+ immediate: true,
83
+ },
84
+ );
85
+ </script>
package/src/css/main.scss CHANGED
@@ -61,14 +61,6 @@ iframe {
61
61
  border: none;
62
62
  }
63
63
 
64
- button {
65
- cursor: pointer;
66
- outline-color: #000;
67
- border: none;
68
- background: transparent;
69
- padding: 0;
70
- }
71
-
72
64
  a {
73
65
  color: #000;
74
66
  text-decoration: none;
@@ -2,6 +2,7 @@ export const ButtonColor = {
2
2
  PRIMARY: 'primary',
3
3
  SECONDARY: 'secondary',
4
4
  SUCCESS: 'success',
5
+ WARN: 'warn',
5
6
  ERROR: 'error',
6
7
  TRANSFER: 'transfer',
7
8
  JOB: 'job',
@@ -18,7 +18,7 @@ const initPrimevue = (app) => {
18
18
  theme: {
19
19
  preset: WebitelTheme,
20
20
  options: {
21
- darkModeSelector: 'theme--dark',
21
+ darkModeSelector: '.theme--dark',
22
22
  },
23
23
  },
24
24
  });
@@ -1,79 +1,4 @@
1
- const lightTheme = {
2
- primary: {
3
- color: '{primary-on-color}',
4
- activeColor: '{primary-on-color}',
5
- hoverColor: '{primary-on-color}',
6
-
7
- background: '{primary-color}',
8
- activeBackground: '{primary-hover-color}',
9
- hoverBackground: '{primary-hover-color}',
10
- },
11
-
12
- secondary: {
13
- color: '{grey.darken.4}',
14
- activeColor: '{grey.darken.4}',
15
- hoverColor: '{grey.darken.4}',
16
-
17
- background: '{dp-surface-color.10}',
18
- activeBackground: '{dp-surface-color.14}',
19
- hoverBackground: '{dp-surface-color.14}',
20
- },
21
-
22
- success: {
23
- color: '{grey.lighten.5}',
24
- activeColor: '{grey.lighten.5}',
25
- hoverColor: '{grey.lighten.5}',
26
-
27
- background: '{success-color}',
28
- activeBackground: '{success-hover-color}',
29
- hoverBackground: '{success-hover-color}',
30
- },
31
-
32
- info: {
33
- color: '{grey.lighten.5}',
34
- activeColor: '{grey.lighten.5}',
35
- hoverColor: '{grey.lighten.5}',
36
-
37
- background: '{info-color}',
38
- activeBackground: '{info-hover-color}',
39
- hoverBackground: '{info-hover-color}',
40
- },
41
-
42
- job: {
43
- color: '{grey.lighten.5}',
44
- activeColor: '{grey.lighten.5}',
45
- hoverColor: '{grey.lighten.5}',
46
-
47
- background: '{job-color}',
48
- activeBackground: '{job-hover-color}',
49
- hoverBackground: '{job-hover-color}',
50
- },
51
-
52
- error: {
53
- color: '{grey.lighten.5}',
54
- activeColor: '{grey.lighten.5}',
55
- hoverColor: '{grey.lighten.5}',
56
-
57
- background: '{error-color}',
58
- activeBackground: '{error-hover-color}',
59
- hoverBackground: '{error-hover-color}',
60
- },
61
-
62
- transfer: {
63
- color: '{transfer-on-color}',
64
- activeColor: '{transfer-on-color}',
65
- hoverColor: '{transfer-on-color}',
66
-
67
- background: '{transfer-color}',
68
- activeBackground: '{transfer-hover-color}',
69
- hoverBackground: '{transfer-hover-color}',
70
- },
71
-
72
- disabled: {
73
- color: '{grey.darken.1}',
74
- background: '{dp-surface-color.16}',
75
- },
76
- };
1
+ import { ButtonScheme } from '@webitel/styleguide/component-schemes';
77
2
 
78
3
  const generateCustomColorCss = ({ colorName, dt }) => `
79
4
  .p-button-${colorName} {
@@ -91,27 +16,8 @@ const generateCustomColorCss = ({ colorName, dt }) => `
91
16
  `;
92
17
 
93
18
  const button = {
94
- border: {
95
- radius: '4px',
96
- },
97
-
98
- padding: {
99
- x: '{spacings.sm}',
100
- y: '{spacings.xs}',
101
- },
102
-
103
- sm: {
104
- padding: {
105
- x: '{spacings.xs}',
106
- y: '{spacings.2xs}',
107
- },
108
- },
109
-
110
- colorScheme: {
111
- light: {
112
- ...lightTheme,
113
- },
114
- },
19
+ ...ButtonScheme.sizes,
20
+ colorScheme: ButtonScheme.colorScheme,
115
21
 
116
22
  extend: {
117
23
  transfer: {
@@ -147,8 +53,8 @@ const button = {
147
53
  font-weight: 600;
148
54
  font-size: 12px;
149
55
  line-height: 24px;
150
- font-family: "Montserrat", monospace;
151
56
  border: none;
57
+ font-family: "Montserrat", monospace;
152
58
  text-transform: uppercase;
153
59
  }
154
60
  .p-button.p-button--width-by-content {
@@ -1,11 +1,8 @@
1
+ import { PopoverScheme } from '@webitel/styleguide/component-schemes';
2
+
1
3
  const popover = {
2
- background: '{overlay.popover.background}',
3
- borderColor: '{overlay.popover.border.color}',
4
- color: '{black}',
5
- borderRadius: '{overlay.popover.border.radius}',
6
- shadow: '{overlay.popover.shadow}',
7
- gutter: '10px',
8
- arrowOffset: '1.25rem',
4
+ ...PopoverScheme.sizes,
5
+ colorScheme: PopoverScheme.colorScheme,
9
6
  };
10
7
 
11
8
  export default popover;
@@ -1,9 +1,8 @@
1
+ import { TooltipScheme } from '@webitel/styleguide/component-schemes';
2
+
1
3
  const tooltip = {
2
- maxWidth: '12.5rem',
3
- gutter: '0.25rem',
4
- shadow: 'none',
5
- padding: '0.5rem 0.75rem',
6
- borderRadius: '{overlay.popover.border.radius}',
4
+ ...TooltipScheme.sizes,
5
+ colorScheme: TooltipScheme.colorScheme,
7
6
  };
8
7
 
9
8
  export default tooltip;
@@ -1,9 +1,9 @@
1
1
  import { definePreset } from '@primeuix/themes';
2
2
  import Aura from '@primeuix/themes/aura';
3
+ import semantic from '@webitel/styleguide/semantic';
3
4
 
4
5
  import components from './components/components';
5
6
  import extend from './extend/extend';
6
- import semantic from './semantic/semantic';
7
7
 
8
8
  const WebitelTheme = definePreset(Aura, {
9
9
  semantic,