@progress/kendo-theme-core 12.1.0 → 12.2.0-dev.2

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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@progress/kendo-theme-core",
3
3
  "description": "A collection of functions and mixins used for building themes for Kendo UI",
4
- "version": "12.1.0",
4
+ "version": "12.2.0-dev.2",
5
5
  "author": "Progress",
6
6
  "license": "Apache-2.0",
7
7
  "keywords": [
@@ -46,5 +46,5 @@
46
46
  "directories": {
47
47
  "doc": "docs"
48
48
  },
49
- "gitHead": "c21230377775b7e87f6c8c6590409f0c2d41d99f"
49
+ "gitHead": "918845c4b6e60435531f8b2fef5c0d0110b54c6d"
50
50
  }
@@ -44,7 +44,7 @@
44
44
  $kendo-breadcrumb-link-focus-bg,
45
45
  $kendo-breadcrumb-link-focus-border
46
46
  );
47
- @include focus-indicator( $kendo-breadcrumb-link-focus-shadow );
47
+ @include focus-indicator( $kendo-breadcrumb-link-focus-shadow, true );
48
48
  }
49
49
  }
50
50
 
@@ -75,7 +75,7 @@
75
75
  $kendo-breadcrumb-root-link-focus-bg,
76
76
  $kendo-breadcrumb-root-link-focus-border
77
77
  );
78
- @include focus-indicator( $kendo-breadcrumb-root-link-focus-shadow );
78
+ @include focus-indicator( $kendo-breadcrumb-root-link-focus-shadow, true );
79
79
  }
80
80
  }
81
81
 
@@ -6,6 +6,7 @@
6
6
  @use "./variables.scss" as *;
7
7
  @use "../toolbar/_variables.scss" as *;
8
8
  @use "../bubble/_variables.scss" as *;
9
+ @use "../button/_variables.scss" as *;
9
10
  @use "../../color-system/_functions.import.scss" as *;
10
11
 
11
12
  @mixin kendo-chat--layout-base() {
@@ -27,6 +28,12 @@
27
28
  overflow: hidden;
28
29
  -webkit-touch-callout: none;
29
30
  -webkit-tap-highlight-color: $kendo-color-rgba-transparent;
31
+
32
+ .k-chat-file {
33
+ min-width: $kendo-chat-file-min-width;
34
+ max-width: $kendo-chat-file-max-width;
35
+ flex-shrink: 0;
36
+ }
30
37
  }
31
38
 
32
39
  // Chat header
@@ -46,7 +53,7 @@
46
53
  }
47
54
 
48
55
  .k-message-list-content {
49
- padding-block: $kendo-chat-message-list-padding-y;
56
+ padding-block: $kendo-chat-message-list-padding-y calc(#{$kendo-chat-message-list-padding-y} / 2);
50
57
  padding-inline: $kendo-chat-message-list-padding-x;
51
58
  width: 100%;
52
59
  box-sizing: border-box;
@@ -60,6 +67,13 @@
60
67
  > * + * {
61
68
  margin-block-start: $kendo-chat-message-list-spacing;
62
69
  }
70
+
71
+ &.k-message-list-content-empty {
72
+ flex: 1;
73
+ flex-flow: column wrap;
74
+ align-content: center;
75
+ justify-content: center;
76
+ }
63
77
  }
64
78
 
65
79
  // Message group
@@ -80,21 +94,40 @@
80
94
  align-self: flex-end;
81
95
  }
82
96
 
83
- // Add margin to the avatar when the last message is selected
97
+ // Add margin to the avatar and user status when the last message is selected
84
98
  // so that the avatar is aligned to the bubble and not to the status
85
99
  &:has(.k-message-group-content .k-message:last-child .k-chat-bubble.k-selected + .k-message-status) .k-avatar {
86
- margin-block-end: calc($kendo-chat-message-meta-line-height * $kendo-chat-message-meta-font-size + $kendo-chat-bubble-spacing);
87
- transition: margin .2s ease-in-out;
100
+ &,
101
+ + .k-chat-user-status {
102
+ margin-block-end: calc($kendo-chat-message-meta-line-height * $kendo-chat-message-meta-font-size + $kendo-chat-bubble-spacing);
103
+ transition: margin .2s ease-in-out;
104
+ }
88
105
  }
89
106
 
90
107
  .k-chat-file-wrapper {
91
108
  padding: 0;
92
- gap: 0;
93
109
  overflow: hidden;
94
110
  }
95
111
 
96
- .k-chat-file {
97
- width: 100%;
112
+ > .k-chat-user-status-wrapper {
113
+ position: relative;
114
+ align-self: flex-end;
115
+ overflow: hidden;
116
+ }
117
+
118
+ .k-chat-user-status {
119
+ display: flex;
120
+ width: auto;
121
+ min-width: $kendo-chat-status-min-size;
122
+ max-width: $kendo-chat-status-max-size;
123
+ height: auto;
124
+ min-height: $kendo-chat-status-min-size;
125
+ max-height: $kendo-chat-status-max-size;
126
+ overflow: hidden;
127
+ position: absolute;
128
+ bottom: 0;
129
+ inset-inline-end: 0;
130
+ border-radius: k-border-radius(full);
98
131
  }
99
132
  }
100
133
 
@@ -116,8 +149,6 @@
116
149
  .k-chat-download-button-wrapper {
117
150
  width: 100%;
118
151
  box-sizing: border-box;
119
- padding-inline: $kendo-chat-file-download-padding-x;
120
- padding-block-end: $kendo-chat-file-download-padding-y;
121
152
  border-radius: 0 0 $kendo-chat-file-border-radius $kendo-chat-file-border-radius;
122
153
  text-align: start;
123
154
  }
@@ -138,9 +169,21 @@
138
169
  align-self: flex-end;
139
170
  }
140
171
 
172
+ .k-message:has(+.k-message) .k-chat-bubble {
173
+ border-end-end-radius: 0;
174
+ border-end-start-radius: $kendo-bubble-border-radius;
175
+ }
176
+
177
+ .k-message + .k-message .k-chat-bubble {
178
+ border-start-end-radius: 0;
179
+ border-start-start-radius: $kendo-bubble-border-radius;
180
+ border-end-start-radius: $kendo-bubble-border-radius;
181
+ }
182
+
141
183
  .k-message:last-of-type .k-chat-bubble {
142
184
  border-end-start-radius: $kendo-bubble-border-radius;
143
185
  border-end-end-radius: $kendo-bubble-border-radius-sm;
186
+ border-start-start-radius: $kendo-bubble-border-radius;
144
187
  }
145
188
  }
146
189
 
@@ -163,6 +206,15 @@
163
206
  border-end-start-radius: $kendo-bubble-border-radius;
164
207
  }
165
208
 
209
+ &:has(+.k-message) .k-chat-bubble {
210
+ border-end-start-radius: 0;
211
+ }
212
+
213
+ & + .k-message .k-chat-bubble {
214
+ border-start-start-radius: 0;
215
+ border-end-start-radius: 0;
216
+ }
217
+
166
218
  &:last-of-type .k-chat-bubble {
167
219
  border-end-start-radius: $kendo-bubble-border-radius-sm;
168
220
  }
@@ -186,8 +238,11 @@
186
238
  width: 100%;
187
239
  max-width: 100%;
188
240
 
189
- .k-message,
190
- .k-chat-bubble {
241
+ &.k-message-group-sender .k-message:has(.k-skeleton) {
242
+ align-self: stretch;
243
+ }
244
+
245
+ .k-chat-bubble:has(.k-skeleton) {
191
246
  width: 100%;
192
247
  }
193
248
  }
@@ -344,16 +399,20 @@
344
399
  font-weight: bold;
345
400
  }
346
401
 
347
- // Timestamp
348
- .k-timestamp {
402
+ // Timestamp and event
403
+ .k-timestamp,
404
+ .k-chat-event {
349
405
  font-size: $kendo-chat-timestamp-font-size;
350
406
  line-height: $kendo-chat-timestamp-line-height;
351
- text-transform: $kendo-chat-timestamp-transform;
352
- text-align: center;
353
- align-self: stretch;
354
407
  display: flex;
355
408
  align-items: center;
356
409
  gap: $kendo-chat-timestamp-separator-spacing;
410
+ }
411
+
412
+ // Timestamp
413
+ .k-timestamp {
414
+ text-transform: $kendo-chat-timestamp-transform;
415
+ align-self: stretch;
357
416
 
358
417
  &::before,
359
418
  &::after {
@@ -364,15 +423,23 @@
364
423
  }
365
424
  }
366
425
 
426
+ // Events
427
+ .k-chat-event {
428
+ width: 100%;
429
+ justify-content: center;
430
+ }
431
+
367
432
  .k-message-box-wrapper {
368
433
  padding-inline: $kendo-chat-padding-x;
369
- padding-block-end: $kendo-chat-padding-y;
434
+ padding-block: calc( #{$kendo-chat-padding-y} / 2 ) $kendo-chat-padding-y;
370
435
  display: flex;
371
436
  flex-direction: column;
372
437
  gap: $kendo-chat-padding-y;
373
438
 
374
439
  .k-chat-file-wrapper {
375
- flex-direction: row;
440
+ flex-flow: row nowrap;
441
+ overflow-x: auto;
442
+ scrollbar-width: none;
376
443
  }
377
444
  }
378
445
 
@@ -420,6 +487,20 @@
420
487
  width: 100%;
421
488
  max-width: 100%;
422
489
  overflow: hidden;
490
+
491
+ &.k-chat-files-horizontal {
492
+ overflow-x: auto;
493
+ scrollbar-width: none;
494
+ }
495
+ }
496
+
497
+ .k-chat-files-horizontal,
498
+ .k-chat-files-wrap {
499
+ flex-direction: row;
500
+ }
501
+
502
+ .k-chat-files-horizontal {
503
+ flex-wrap: nowrap;
423
504
  }
424
505
 
425
506
  .k-chat-file {
@@ -434,6 +515,7 @@
434
515
  padding-inline: $kendo-chat-file-padding-x;
435
516
  padding-block: $kendo-chat-file-padding-y;
436
517
  border-radius: $kendo-chat-file-border-radius;
518
+ min-width: 0;
437
519
 
438
520
  >.k-icon {
439
521
  flex-shrink: 0;
@@ -453,7 +535,8 @@
453
535
 
454
536
  .k-chat-file-name {
455
537
  font-weight: bold;
456
- font-size: var( --kendo-font-size-sm, inherit);
538
+ font-size: $kendo-chat-file-name-font-size;
539
+ line-height: $kendo-chat-file-name-line-height;
457
540
  width: 100%;
458
541
  white-space: nowrap;
459
542
  overflow: hidden;
@@ -462,13 +545,12 @@
462
545
 
463
546
  .k-chat-file-size,
464
547
  .k-chat-file-status {
465
- font-size: var( --kendo-font-size-xs, inherit);
548
+ font-size: $kendo-chat-file-size-font-size;
549
+ line-height: $kendo-chat-file-size-line-height;
466
550
  }
467
- }
468
551
 
469
- .k-message-group {
470
- .k-chat-file + .k-chat-file:not(.k-chat-file-deleted) {
471
- padding-block-start: 0;
552
+ &.k-chat-file-deleted {
553
+ min-height: calc( #{$kendo-button-md-calc-size} + 2 * #{$kendo-chat-file-padding-y} + 2 * #{$kendo-chat-file-border-width});
472
554
  }
473
555
  }
474
556
 
@@ -477,14 +559,6 @@
477
559
  flex-direction: column;
478
560
  }
479
561
 
480
- .k-message-box-wrapper,
481
- .k-message-group-full-width,
482
- .k-message:has(.k-bubble-expandable) + .k-chat-file-wrapper {
483
- .k-chat-file {
484
- width: $kendo-chat-file-width;
485
- }
486
- }
487
-
488
562
  // Card list
489
563
  .k-chat .k-card-list {
490
564
  margin: $kendo-chat-bubble-spacing 0 0;
@@ -72,15 +72,15 @@
72
72
 
73
73
  // Chat attachment
74
74
  .k-chat-file {
75
- border-color: transparent;
75
+ background-color: $kendo-chat-file-bg;
76
+ color: $kendo-chat-file-text;
77
+ border-color: $kendo-chat-file-border;
76
78
  }
77
79
 
78
- .k-chat-file-deleted {
79
- @include fill(
80
- k-color(error-on-subtle),
81
- k-color(error-subtle),
82
- k-color(error-subtle)
83
- );
80
+ .k-message-group-sender .k-chat-file {
81
+ background-color: $kendo-chat-sender-file-bg;
82
+ color: $kendo-chat-sender-file-text;
83
+ border-color: $kendo-chat-sender-file-border;
84
84
  }
85
85
 
86
86
  // Attachment within Textarea prefix
@@ -19,6 +19,8 @@ $kendo-chat-message-list-padding-x: null !default;
19
19
  $kendo-chat-message-list-padding-y: null !default;
20
20
  $kendo-chat-message-list-spacing: null !default;
21
21
 
22
+ $kendo-chat-status-min-size: null !default;
23
+ $kendo-chat-status-max-size: null !default;
22
24
  $kendo-chat-message-status-gap: null !default;
23
25
 
24
26
  $kendo-chat-timestamp-font-size: null !default;
@@ -61,7 +63,12 @@ $kendo-chat-alt-bubble-focus-shadow: null !default;
61
63
 
62
64
  $kendo-chat-typing-indicator-text: null !default;
63
65
 
64
- $kendo-chat-file-width: null !default;
66
+ $kendo-chat-file-min-width: null !default;
67
+ $kendo-chat-file-max-width: null !default;
68
+ $kendo-chat-file-name-font-size: null !default;
69
+ $kendo-chat-file-name-line-height: null !default;
70
+ $kendo-chat-file-size-font-size: null !default;
71
+ $kendo-chat-file-size-line-height: null !default;
65
72
  $kendo-chat-file-padding-x: null !default;
66
73
  $kendo-chat-file-padding-y: null !default;
67
74
  $kendo-chat-file-gap: null !default;
@@ -74,6 +81,10 @@ $kendo-chat-file-border-radius: null !default;
74
81
  $kendo-chat-file-download-padding-x: null !default;
75
82
  $kendo-chat-file-download-padding-y: null !default;
76
83
 
84
+ $kendo-chat-sender-file-bg: null !default;
85
+ $kendo-chat-sender-file-text: null !default;
86
+ $kendo-chat-sender-file-border: null !default;
87
+
77
88
  $kendo-chat-message-pinned-border-width: null !default;
78
89
  $kendo-chat-message-pinned-border-style: null !default;
79
90
  $kendo-chat-message-pinned-border-color: null !default;
@@ -98,26 +98,6 @@
98
98
  $bg: $kendo-chip-outline-selected-bg
99
99
  );
100
100
  }
101
- } @else if ($name == "warning") {
102
- @include fill(
103
- k-color(on-#{$name}),
104
- transparent,
105
- k-color(#{$name}-on-surface)
106
- );
107
-
108
- &:focus,
109
- &.k-focus {
110
- @include focus-indicator( 0 0 0 2px color-mix(in srgb, k-color(#{$name}-on-surface) 16%, transparent));
111
- }
112
-
113
- &:hover,
114
- &.k-hover,
115
- &.k-selected {
116
- @include fill(
117
- $color: k-color(on-#{$name}),
118
- $bg: k-color(#{$name}-on-surface)
119
- );
120
- }
121
101
  } @else {
122
102
  @include fill(
123
103
  k-color(#{$name}-on-surface),
@@ -553,7 +553,7 @@
553
553
  }
554
554
 
555
555
  .k-grid-filter-popup {
556
- min-width: $kendo-grid-column-menu-width;
556
+ width: $kendo-grid-column-menu-width;
557
557
  max-width: $kendo-grid-column-menu-max-width;
558
558
  }
559
559
 
@@ -1276,7 +1276,7 @@
1276
1276
 
1277
1277
  // Filter menu
1278
1278
  .k-filter-menu-popup {
1279
- min-width: $kendo-grid-column-menu-width;
1279
+ width: $kendo-grid-column-menu-width;
1280
1280
  max-width: $kendo-grid-column-menu-max-width;
1281
1281
  }
1282
1282
  .k-filter-menu {
@@ -1321,7 +1321,7 @@
1321
1321
  .k-grid-filter-popup.k-popup {
1322
1322
 
1323
1323
  .k-filter-menu-container {
1324
- min-width: $kendo-grid-column-menu-width;
1324
+ width: $kendo-grid-column-menu-width;
1325
1325
  max-width: $kendo-grid-column-menu-max-width;
1326
1326
  }
1327
1327
  }
@@ -90,7 +90,8 @@
90
90
 
91
91
 
92
92
  // List item
93
- .k-list-item {
93
+ .k-list-item,
94
+ .k-list-custom-value {
94
95
  padding-block: $kendo-list-md-item-padding-y;
95
96
  padding-inline: $kendo-list-md-item-padding-x;
96
97
  border: 0;
@@ -133,7 +134,6 @@
133
134
  }
134
135
 
135
136
  .k-list-custom-value {
136
- @extend .k-list-item !optional;
137
137
  font-style: italic;
138
138
  position: sticky;
139
139
  }
@@ -244,7 +244,8 @@
244
244
  padding-block: $_filter-padding-y;
245
245
  }
246
246
 
247
- .k-list-item {
247
+ .k-list-item,
248
+ .k-list-custom-value {
248
249
  padding-block: $_item-padding-y;
249
250
  padding-inline: $_item-padding-x;
250
251
  font-size: $_item-font-size;
@@ -29,7 +29,8 @@
29
29
 
30
30
 
31
31
  // List item
32
- .k-list-item {
32
+ .k-list-item,
33
+ .k-list-custom-value {
33
34
  @include fill(
34
35
  $kendo-list-item-text,
35
36
  $kendo-list-item-bg
@@ -63,8 +64,8 @@
63
64
  }
64
65
  &.k-selected:hover,
65
66
  &.k-selected.k-hover {
66
- color: $kendo-list-item-selected-text;
67
- background-color: k-color(primary-hover);
67
+ color: $kendo-list-item-selected-hover-text;
68
+ background-color: $kendo-list-item-selected-hover-bg;
68
69
  }
69
70
  }
70
71
 
@@ -125,6 +125,9 @@ $kendo-list-item-focus-shadow: null !default;
125
125
  $kendo-list-item-selected-bg: null !default;
126
126
  $kendo-list-item-selected-text: null !default;
127
127
 
128
+ $kendo-list-item-selected-hover-bg: null !default;
129
+ $kendo-list-item-selected-hover-text: null !default;
130
+
128
131
  $kendo-list-group-item-bg: null !default;
129
132
  $kendo-list-group-item-text: null !default;
130
133
  $kendo-list-group-item-border: null !default;
@@ -69,10 +69,6 @@
69
69
  display: flex;
70
70
  flex-direction: row;
71
71
  position: relative;
72
-
73
- select.k-dropdown-list {
74
- width: $kendo-pager-md-dropdown-width;
75
- }
76
72
  }
77
73
  .k-pager-numbers {
78
74
  display: flex;
@@ -155,22 +151,20 @@
155
151
  min-width: $_item-min-width;
156
152
  }
157
153
 
158
- .k-pager-input,
159
- > select.k-dropdown-list {
154
+ .k-pager-input {
160
155
  margin-inline-start: $_item-group-spacing;
161
156
  margin-inline-end: $_item-group-spacing;
162
157
  }
163
158
  }
164
-
165
- .k-pager-sizes {
166
- .k-dropdown-list,
167
- > select {
168
- width: $_pager-dropdown-width;
169
- }
170
- }
171
159
  }
172
160
  }
173
161
 
162
+ .k-pager-sizes {
163
+ .k-dropdownlist {
164
+ min-width: $kendo-pager-dropdown-width;
165
+ width: fit-content;
166
+ }
167
+ }
174
168
  }
175
169
 
176
170
 
@@ -31,8 +31,6 @@ $kendo-pager-item-spacing: null !default;
31
31
 
32
32
  $kendo-pager-input-width: null !default;
33
33
 
34
- $kendo-pager-sm-dropdown-width: null !default;
35
- $kendo-pager-md-dropdown-width: null !default;
36
- $kendo-pager-lg-dropdown-width: null !default;
34
+ $kendo-pager-dropdown-width: null !default;
37
35
 
38
36
  $kendo-pager-sizes: null !default;
@@ -27,8 +27,23 @@
27
27
  display: flex;
28
28
  flex-wrap: wrap;
29
29
  gap: $kendo-suggestion-spacing;
30
+ align-self: normal;
30
31
 
32
+ &.k-suggestion-group-scrollable {
33
+ flex-wrap: nowrap;
34
+ overflow-x: auto;
35
+ scrollbar-width: none;
36
+ }
37
+ }
38
+
39
+ .k-suggestion-group-scrollable,
40
+ .k-suggestion-scrollwrap {
41
+ .k-suggestion {
42
+ white-space: nowrap;
43
+ max-width: none;
44
+ }
31
45
  }
46
+
32
47
  .k-suggestion {
33
48
  @include border-radius( $kendo-suggestion-border-radius );
34
49
  max-width: 100%;
@@ -44,6 +59,7 @@
44
59
  transition-timing-function: ease-in-out;
45
60
  cursor: pointer;
46
61
  outline: none;
62
+ white-space: normal;
47
63
  }
48
64
 
49
65