@c8y/style 1023.0.0 → 1023.4.1

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,6 +1,6 @@
1
1
  {
2
2
  "name": "@c8y/style",
3
- "version": "1023.0.0",
3
+ "version": "1023.4.1",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Cumulocity GmbH",
6
6
  "description": "Styles for Cumulocity IoT applications",
@@ -219,6 +219,7 @@
219
219
  right: 15px;
220
220
  left: 15px;
221
221
  z-index: 1035;
222
+ top: 50%;
222
223
  .alert {
223
224
  margin: 0 auto 10px;
224
225
  } // on data-explorer
@@ -18,13 +18,14 @@
18
18
  .user-select(none);
19
19
 
20
20
  // btns containing just an icon
21
- > i {
21
+ >i {
22
22
  vertical-align: text-top;
23
23
  }
24
24
 
25
25
  &,
26
26
  &:active,
27
27
  &.active {
28
+
28
29
  &:focus,
29
30
  &.focus {
30
31
  outline: none;
@@ -44,23 +45,25 @@
44
45
  &.disabled,
45
46
  &[disabled],
46
47
  fieldset[disabled] & {
48
+
47
49
  &,
48
50
  &:hover,
49
51
  &:focus {
50
- cursor: @cursor-disabled !important;
52
+ cursor: @cursor-disabled !important;
51
53
  opacity: var(--c8y-root-component-opacity-disabled);
52
54
  .box-shadow(none);
53
55
  }
54
56
  }
55
57
 
56
58
  a & {
59
+
57
60
  &.disabled,
58
61
  fieldset[disabled] & {
59
62
  pointer-events: none; // Future-proof disabling of clicks on `<a>` elements
60
63
  }
61
64
  }
62
65
 
63
- &:has(.badge){
66
+ &:has(.badge) {
64
67
  display: inline-flex;
65
68
  gap: 4px;
66
69
  align-items: center;
@@ -68,19 +71,19 @@
68
71
  }
69
72
 
70
73
  .btn-icon {
71
- padding-left: @btn-padding-icon-horizontal!important;
72
- padding-right: @btn-padding-icon-horizontal!important;
74
+ padding-left: @btn-padding-icon-horizontal !important;
75
+ padding-right: @btn-padding-icon-horizontal !important;
73
76
  height: @form-control-height-base;
74
77
 
75
78
  &:hover,
76
79
  &:focus,
77
80
  &:active {
78
- outline: 2px solid @component-brand-primary !important;
81
+ outline: 2px solid @component-brand-primary !important;
79
82
  outline-offset: -2px;
80
83
  }
81
84
 
82
85
  &:focus {
83
- border-radius: @component-border-radius-focus !important;
86
+ border-radius: @component-border-radius-focus !important;
84
87
  opacity: 1 !important;
85
88
  }
86
89
  }
@@ -111,27 +114,30 @@
111
114
  &.btn {
112
115
  height: @form-control-height-base;
113
116
  transition: none;
117
+
114
118
  .c8y-list__item &,
115
119
  .cdk-cell & {
116
- height: calc(@margin-base * 5);
117
- margin-top: -10px;
118
- margin-bottom: -10px;
119
- display: flex;
120
+ &:not(.c8y-list__item__body * *) {
121
+ height: calc(@margin-base * 5);
122
+ margin-top: -10px;
123
+ margin-bottom: -10px;
124
+ display: flex;
125
+ }
120
126
  }
121
127
  }
122
128
 
123
129
  &:hover,
124
130
  &:focus,
125
131
  &:active {
126
- outline: 2px solid @component-brand-primary!important;
132
+ outline: 2px solid @component-brand-primary !important;
127
133
  outline-offset: -2px;
128
134
  }
129
135
 
130
136
  &:focus {
131
- border-radius: @component-border-radius-focus !important;
137
+ border-radius: @component-border-radius-focus !important;
132
138
  opacity: 1 !important;
133
139
 
134
- > * {
140
+ >* {
135
141
  outline: 0 !important;
136
142
  }
137
143
  }
@@ -195,27 +201,29 @@
195
201
  color: var(--c8y-palette-high);
196
202
  }
197
203
  &.aggregation{
198
- background: var(--c8y-palette-status-warning-light);
204
+ background: var(--c8y-palette-status-warning-high);
199
205
  color: var(--c8y-palette-gray-10);
200
206
  }
201
207
  }
202
208
  }
203
209
 
204
210
  // spacing buttons outside btn-group
205
- .btn + .btn:not(.btn-block) {
211
+ .btn+.btn:not(.btn-block) {
206
212
  margin-left: @margin-base;
207
213
  }
208
214
 
209
- .d-flex, .d-col{
210
- > .btn + .btn:not(.btn-block) {
211
- margin:0;
215
+ .d-flex,
216
+ .d-col {
217
+ >.btn+.btn:not(.btn-block) {
218
+ margin: 0;
212
219
  }
213
220
  }
214
221
 
215
222
  // Alternate buttons
216
223
  .btn-default {
217
224
  .button-variant(c8y-btn-default);
218
- .datetime-picker &{
225
+
226
+ .datetime-picker & {
219
227
  --c8y-btn-default-background-default: var(--c8y-form-control-background-default);
220
228
  }
221
229
  }
@@ -226,13 +234,233 @@
226
234
 
227
235
  .btn-accent {
228
236
  .button-variant(c8y-btn-accent);
229
- border-radius: @btn-border-radius-pill !important;
237
+ border-radius: @btn-border-radius-pill !important;
230
238
  }
231
239
 
232
240
  .btn-danger {
233
241
  .button-variant(c8y-btn-danger);
234
242
  }
235
243
 
244
+ .btn-ai {
245
+ .button-variant(c8y-btn-default);
246
+ position: relative;
247
+ overflow: hidden;
248
+ transition: all .2s ease;
249
+ border: 0;
250
+ color: @text-muted;
251
+
252
+ &::after {
253
+ content: "";
254
+ position: absolute;
255
+ left: 2px;
256
+ top: 2px;
257
+ width: calc(100% - 4px);
258
+ height: calc(100% - 4px);
259
+ background: var(--c8y-btn-default-background-default);
260
+ transition: all .2s ease;
261
+ border-radius: calc(@btn-border-radius-base * .8);
262
+ }
263
+
264
+ &::before {
265
+ content: "";
266
+ position: absolute;
267
+ left: 50%;
268
+ top: 50%;
269
+ width: 150%;
270
+ aspect-ratio: 1;
271
+ background-color: var(--c8y-btn-default-background-default);
272
+ background-repeat: no-repeat;
273
+ background-size: 100% 100%, 50%50%;
274
+ background-position: 0 0, 100% 0, 100% 100%, 0 100%;
275
+ background-image: conic-gradient(@brand-primary, @status-danger, @status-warning, @status-info, @brand-primary);
276
+ transform: translate(-50%, -50%);
277
+ opacity: .7;
278
+ }
279
+
280
+ >* {
281
+ z-index: 10;
282
+ position: relative;
283
+ }
284
+
285
+ >span {
286
+ position: relative;
287
+ padding-left: @margin-16;
288
+ height: 100%;
289
+ overflow: visible;
290
+ opacity: 1;
291
+
292
+ &:empty {
293
+ padding-left: 0;
294
+ width: 100%;
295
+
296
+ &::before {
297
+ translate: 6px -50%;
298
+ }
299
+ }
300
+
301
+ &::before {
302
+ content: '';
303
+ position: absolute;
304
+ left: 0;
305
+ mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='24' height='24' fill='none'/%3E%3Cpath d='M9.03243 5.98167C9.1394 5.68167 9.54825 5.68167 9.65521 5.98167L11.4431 10.9961C11.4767 11.0904 11.5483 11.1648 11.6392 11.1997L16.4708 13.0552C16.7599 13.1662 16.7599 13.5905 16.4708 13.7015L11.6392 15.557C11.5483 15.5919 11.4767 15.6663 11.4431 15.7606L9.65521 20.775C9.54825 21.075 9.1394 21.075 9.03243 20.775L7.24458 15.7606C7.21095 15.6663 7.13929 15.5919 7.04841 15.557L2.2168 13.7015C1.92773 13.5905 1.92773 13.1662 2.2168 13.0552L7.04841 11.1997C7.13929 11.1648 7.21095 11.0904 7.24458 10.9961L9.03243 5.98167Z' fill='black' fill-opacity='1'/%3E%3Cpath d='M18.3291 3.225C18.436 2.925 18.8449 2.925 18.9518 3.225L19.6636 5.22123C19.6972 5.31555 19.7689 5.38992 19.8597 5.42482L21.7832 6.16349C22.0723 6.2745 22.0723 6.69882 21.7832 6.80983L19.8597 7.5485C19.7689 7.5834 19.6972 7.65776 19.6636 7.75208L18.9518 9.74831C18.8449 10.0483 18.436 10.0483 18.3291 9.74831L17.6173 7.75208C17.5837 7.65776 17.512 7.5834 17.4211 7.5485L15.4977 6.80983C15.2086 6.69882 15.2086 6.2745 15.4977 6.16349L17.4211 5.42482C17.512 5.38992 17.5837 5.31555 17.6173 5.22123L18.3291 3.225Z' fill='black' fill-opacity='1'/%3E%3Cpath d='M17.001 15.63C17.1079 15.33 17.5168 15.33 17.6237 15.63L17.9768 16.6202C18.0104 16.7145 18.0821 16.7889 18.1729 16.8238L19.127 17.1902C19.4161 17.3012 19.4161 17.7255 19.127 17.8365L18.1729 18.2029C18.0821 18.2378 18.0104 18.3122 17.9768 18.4065L17.6237 19.3967C17.5168 19.6967 17.1079 19.6967 17.001 19.3967L16.6479 18.4065C16.6143 18.3122 16.5426 18.2378 16.4518 18.2029L15.4977 17.8365C15.2086 17.7255 15.2086 17.3012 15.4977 17.1902L16.4518 16.8238C16.5426 16.7889 16.6143 16.7145 16.6479 16.6202L17.001 15.63Z' fill='black' fill-opacity='1'/%3E%3C/svg%3E%0A");
306
+ mask-size: 2ch;
307
+ mask-repeat: no-repeat;
308
+ mask-position: 0 center;
309
+ background-color: currentColor;
310
+ width: 2ch;
311
+ height: 2ch;
312
+ transform-origin: center;
313
+ transition: all .2s ease;
314
+ overflow: visible;
315
+ top: 50%;
316
+ translate: -6px -50%;
317
+ }
318
+ }
319
+
320
+ &.btn-lg {
321
+ &::after {
322
+ border-radius: calc(@btn-border-radius-large * .8);
323
+ }
324
+
325
+ >span {
326
+ padding-left: @btn-padding-large-horizontal;
327
+ }
328
+ }
329
+
330
+ &.btn-sm {
331
+ &::after {
332
+ border-radius: calc(@btn-border-radius-small * .8);
333
+ }
334
+
335
+ >span {
336
+ padding-left: @btn-padding-small-horizontal;
337
+ }
338
+ }
339
+
340
+ &.btn-xs {
341
+ &:after {
342
+ border-radius: calc(@btn-border-radius-xs * .8);
343
+ }
344
+
345
+ >span {
346
+ padding-left: @btn-padding-xs-horizontal;
347
+ }
348
+ }
349
+
350
+ &:not(.btn-ai-hint) {
351
+ &:hover,
352
+ &:focus {
353
+ box-shadow: none !important;
354
+ border-color: transparent;
355
+ color: @text-color;
356
+
357
+ &::before {
358
+ animation: borderRotate 1s linear infinite;
359
+ opacity: .85;
360
+ }
361
+
362
+ &::after {
363
+ left: 3px;
364
+ top: 3px;
365
+ width: calc(100% - 6px);
366
+ height: calc(100% - 6px);
367
+ transition: all .2s ease;
368
+ }
369
+
370
+ >span::before {
371
+ mask-size: 2.3ch;
372
+ mask-position: -1px center;
373
+ background-image: linear-gradient(90deg, @brand-primary, @status-danger, @status-warning, @status-info, @brand-primary);
374
+ background-size: 50px 50px;
375
+ animation: symbolAnimation 2s linear infinite;
376
+ animation-direction: alternate-reverse;
377
+ }
378
+ }
379
+
380
+ &:active {
381
+ &::after {
382
+ background-color: var(--c8y-btn-default-background-active);
383
+ }
384
+ }
385
+
386
+ &:focus {
387
+ outline: 2px solid var(--c8y-btn-default-border-color-focus);
388
+ }
389
+ }
390
+ }
391
+
392
+ .btn-ai-hint, .btn-ai-hint.btn-dot {
393
+ pointer-events: none;
394
+ border-radius: @margin-16 !important;
395
+ overflow: hidden;
396
+ color: @text-muted;
397
+ display: inline-flex;
398
+ align-items: center;
399
+ cursor: default !important;
400
+ border-color: transparent !important;
401
+ box-sizing: border-box;
402
+ box-shadow: none!important;
403
+ outline: 0!important;
404
+ flex-shrink: 0;
405
+ &::before{
406
+ animation: borderRotate 6s linear infinite;
407
+ opacity: .5!important;
408
+ }
409
+
410
+ &.working{
411
+ &::before{
412
+ animation: borderRotate .5s linear infinite;
413
+ opacity: 1!important;
414
+ }
415
+ }
416
+
417
+ &::after {
418
+ border-radius: @margin-16 !important;
419
+ }
420
+
421
+ &.btn-lg {
422
+ border-radius: calc(@btn-border-radius-large * 4) !important;
423
+
424
+ &::after {
425
+ border-radius: calc(@btn-border-radius-large * 3.8) !important;
426
+ }
427
+ }
428
+ &.btn-sm {
429
+ padding: @btn-padding-small-horizontal 7px;
430
+ >span:empty::before{
431
+ translate: 0 -50%;
432
+ }
433
+ }
434
+
435
+ >span {
436
+ color: @text-color;
437
+ display: flex;
438
+ align-items: center;
439
+ pointer-events: auto;
440
+ }
441
+ }
442
+
443
+ @keyframes borderRotate {
444
+ 100% {
445
+ transform: translate(-50%, -50%) rotate(1turn);
446
+ }
447
+ }
448
+
449
+ @keyframes symbolAnimation {
450
+
451
+ 50% {
452
+ transform: scale(1.2);
453
+ background-position: bottom right;
454
+ }
455
+
456
+ 100% {
457
+ transform: scale(1);
458
+ background-position: top left;
459
+ }
460
+ }
461
+
462
+
463
+
236
464
  // btn without any padding or styling
237
465
  .btn-clean {
238
466
  display: inline-block;
@@ -253,7 +481,7 @@
253
481
  .user-select(none);
254
482
  transition: all 0.25s ease;
255
483
 
256
- &:not(.btn){
484
+ &:not(.btn) {
257
485
  padding: 0;
258
486
  }
259
487
 
@@ -272,6 +500,7 @@
272
500
  }
273
501
 
274
502
  &[disabled] {
503
+
275
504
  &,
276
505
  &:hover,
277
506
  &:focus {
@@ -282,14 +511,14 @@
282
511
  }
283
512
  }
284
513
 
285
- .btn-no-focus{
514
+ .btn-no-focus {
286
515
  &:focus {
287
- outline: none!important;
516
+ outline: none !important;
288
517
  }
289
518
  }
290
519
 
291
520
  // inside labels (e.g. for help icon)
292
- label > .btn-clean {
521
+ label>.btn-clean {
293
522
  vertical-align: baseline;
294
523
  }
295
524
 
@@ -306,22 +535,23 @@ label > .btn-clean {
306
535
  .box-shadow(none) !important;
307
536
  transition: @btn-transition;
308
537
 
309
- &.c8y-realtime{
538
+ &.c8y-realtime {
310
539
  color: inherit;
311
540
  }
541
+
312
542
  &:not(.btn-xs):not(.btn-sm) {
313
543
  padding: @btn-padding-vertical @btn-padding-horizontal;
314
544
  min-height: @form-control-height-base;
315
545
  }
316
546
 
317
- [class^='dlt-c8y-icon-'] ~ span,
318
- [class*=' dlt-c8y-icon-'] ~ span,
319
- [class^='dlt-c8y-icon-'] ~ translate,
320
- [class*=' dlt-c8y-icon-'] ~ translate {
547
+ [class^='dlt-c8y-icon-']~span,
548
+ [class*=' dlt-c8y-icon-']~span,
549
+ [class^='dlt-c8y-icon-']~translate,
550
+ [class*=' dlt-c8y-icon-']~translate {
321
551
  color: inherit;
322
552
  }
323
553
 
324
- > i {
554
+ >i {
325
555
  vertical-align: text-top;
326
556
  }
327
557
 
@@ -356,6 +586,7 @@ label > .btn-clean {
356
586
 
357
587
  &[disabled],
358
588
  fieldset[disabled] & {
589
+
359
590
  &:hover,
360
591
  &:focus {
361
592
  color: @btn-link-disabled-color;
@@ -388,8 +619,8 @@ label > .btn-clean {
388
619
  --help-info-color: @status-info;
389
620
  color: @status-info;
390
621
 
391
- > [class^='dlt-c8y-icon-'],
392
- > [class*=' dlt-c8y-icon-'] {
622
+ >[class^='dlt-c8y-icon-'],
623
+ >[class*=' dlt-c8y-icon-'] {
393
624
  display: none;
394
625
  }
395
626
 
@@ -409,8 +640,9 @@ label > .btn-clean {
409
640
  --help-info-color: @palette-high;
410
641
  color: @palette-high;
411
642
  }
643
+
412
644
  .c8y-system-theme & {
413
- @media (prefers-color-scheme: dark){
645
+ @media (prefers-color-scheme: dark) {
414
646
  outline: 1px solid @status-info;
415
647
  background-color: @status-info;
416
648
  --help-info-color: @palette-high;
@@ -440,17 +672,20 @@ label > .btn-clean {
440
672
  align-self: center;
441
673
  height: 14px;
442
674
  width: 14px;
675
+
443
676
  &::before {
444
677
  inset: 0;
445
678
  }
446
679
  }
447
680
  }
448
681
 
449
- label + .btn-help, label .btn-help {
682
+ label+.btn-help,
683
+ label .btn-help {
450
684
  display: inline;
451
685
  align-self: center;
452
686
  height: 14px;
453
687
  width: 14px;
688
+
454
689
  &::before {
455
690
  inset: 0;
456
691
  }
@@ -473,7 +708,7 @@ label + .btn-help, label .btn-help {
473
708
  @btn-line-height-xs; @btn-border-radius-xs; @checkbox-size );
474
709
  position: relative;
475
710
 
476
- > .icon-spin {
711
+ >.icon-spin {
477
712
  line-height: 10px;
478
713
  }
479
714
 
@@ -507,7 +742,7 @@ label + .btn-help, label .btn-help {
507
742
  }
508
743
 
509
744
  // Vertically space out multiple block buttons
510
- .btn-block + .btn-block {
745
+ .btn-block+.btn-block {
511
746
  margin: @margin-base 0 0 0;
512
747
  }
513
748
 
@@ -522,27 +757,32 @@ input[type='button'] {
522
757
 
523
758
  // BUTTON PENDING
524
759
  .btn-pending {
760
+
525
761
  &,
526
762
  &:hover,
527
763
  &:focus {
528
- #gradient > .striped();
764
+ #gradient>.striped();
529
765
  background-size: 40px 40px;
530
766
  .animation(progress-bar-stripes 0.5s linear infinite);
531
767
  pointer-events: none !important;
532
768
  outline: none !important;
533
769
  }
770
+
534
771
  &.btn-default {
772
+
535
773
  &,
536
774
  &:hover,
537
775
  &:focus {
538
- #gradient > .striped(var(--c8y-brand-70));
776
+ #gradient>.striped(var(--c8y-brand-70));
539
777
  }
540
778
  }
779
+
541
780
  &.btn-danger {
781
+
542
782
  &,
543
783
  &:hover,
544
784
  &:focus {
545
- #gradient > .striped(var(--c8y-palette-status-danger-light));
785
+ #gradient>.striped(var(--c8y-palette-status-danger-light));
546
786
  }
547
787
  }
548
788
  }
@@ -587,11 +827,12 @@ input[type='button'] {
587
827
  .user-select(none);
588
828
  touch-action: manipulation;
589
829
  .transition(all 0.25s ease);
830
+
590
831
  &:not(.btn-dot) {
591
832
  font-size: 14px;
592
833
  }
593
834
 
594
- > i {
835
+ >i {
595
836
  .transition(all 0.25s ease);
596
837
  }
597
838
 
@@ -613,8 +854,9 @@ input[type='button'] {
613
854
  color: @component-brand-primary;
614
855
  opacity: 1 !important;
615
856
 
616
- > i {
857
+ >i {
617
858
  .rotate(180deg);
859
+
618
860
  &.dlt-c8y-icon-chevron-right {
619
861
  .rotate(90deg);
620
862
  }
@@ -655,7 +897,7 @@ input[type='button'] {
655
897
  text-decoration: none;
656
898
 
657
899
  .c8y-icon,
658
- > [class^='dlt-c8y-icon-'],
900
+ >[class^='dlt-c8y-icon-'],
659
901
  [class*=' dlt-c8y-icon-'] {
660
902
  color: @action-bar-color-actions-hover;
661
903
  opacity: 1;
@@ -696,7 +938,7 @@ input[type='button'] {
696
938
  &:hover {
697
939
  box-shadow: @elevation-hover;
698
940
 
699
- > [class^='dlt-c8y-icon-'],
941
+ >[class^='dlt-c8y-icon-'],
700
942
  [class*=' dlt-c8y-icon-'] {
701
943
  .scale(1.1);
702
944
  }
@@ -716,7 +958,7 @@ input[type='button'] {
716
958
  margin-top: @component-padding;
717
959
  min-height: 56px;
718
960
 
719
- > [class^='dlt-c8y-icon-'],
961
+ >[class^='dlt-c8y-icon-'],
720
962
  [class*=' dlt-c8y-icon-'] {
721
963
  color: inherit;
722
964
  }
@@ -729,6 +971,7 @@ input[type='button'] {
729
971
 
730
972
  // btn checkbox
731
973
  .btn {
974
+
732
975
  &[btnCheckbox],
733
976
  &[uib-btn-checkbox],
734
977
  &.c8y-btn-checkbox {
@@ -834,7 +1077,7 @@ input[type='button'] {
834
1077
  max-width: 100%;
835
1078
  height: 45px;
836
1079
 
837
- > span,
1080
+ >span,
838
1081
  c8y-cell-renderer {
839
1082
  white-space: nowrap;
840
1083
  overflow: hidden;
@@ -859,7 +1102,7 @@ input[type='button'] {
859
1102
  }
860
1103
 
861
1104
  .filtered & {
862
- color: @brand-primary !important;
1105
+ color: @brand-primary !important;
863
1106
  }
864
1107
 
865
1108
  &.c8y-dropdown {
@@ -879,7 +1122,7 @@ input[type='button'] {
879
1122
  .btn-sort {
880
1123
  opacity: 0;
881
1124
 
882
- > .dlt-c8y-icon-exchange {
1125
+ >.dlt-c8y-icon-exchange {
883
1126
  transform: rotate(90deg);
884
1127
  margin-top: 4px;
885
1128
  }
@@ -907,6 +1150,7 @@ input[type='button'] {
907
1150
  }
908
1151
 
909
1152
  .btnbar {
1153
+
910
1154
  .btnbar-btn,
911
1155
  .dropdown .c8y-dropdown {
912
1156
  padding: calc(@margin-16 - 2px) @margin-base;
@@ -931,7 +1175,7 @@ input[type='button'] {
931
1175
  }
932
1176
 
933
1177
  .c8y-icon,
934
- > [class^='dlt-c8y-icon-'],
1178
+ >[class^='dlt-c8y-icon-'],
935
1179
  [class*=' dlt-c8y-icon-'] {
936
1180
  opacity: 0.9;
937
1181
  }
@@ -942,7 +1186,7 @@ input[type='button'] {
942
1186
  text-decoration: none;
943
1187
 
944
1188
  .c8y-icon,
945
- > [class^='dlt-c8y-icon-'],
1189
+ >[class^='dlt-c8y-icon-'],
946
1190
  [class*=' dlt-c8y-icon-'] {
947
1191
  opacity: 1;
948
1192
  }
@@ -951,7 +1195,7 @@ input[type='button'] {
951
1195
  .table-data-grid-header-bulk-actions & {
952
1196
  color: @component-background-active;
953
1197
  border-radius: @btn-border-radius-base;
954
-
1198
+
955
1199
  &:focus {
956
1200
  .c8y-focus-inset();
957
1201
  outline-color: @component-background-active;
@@ -962,8 +1206,9 @@ input[type='button'] {
962
1206
  color: var(--c8y-brand-7);
963
1207
  text-decoration: none;
964
1208
  outline: 1px solid @component-background-active;
1209
+
965
1210
  .c8y-icon,
966
- > [class^='dlt-c8y-icon-'],
1211
+ >[class^='dlt-c8y-icon-'],
967
1212
  [class*=' dlt-c8y-icon-'] {
968
1213
  opacity: 1;
969
1214
  }
@@ -975,7 +1220,8 @@ input[type='button'] {
975
1220
  .btn--caret {
976
1221
  display: flex;
977
1222
  align-items: center;
978
- > i {
1223
+
1224
+ >i {
979
1225
  transform: translateX(-7px);
980
1226
  }
981
1227
  }
@@ -0,0 +1,194 @@
1
+ c8y-widget-ai-chat-section{
2
+ display: flex;
3
+ max-height: calc(100vh - 400px);
4
+ min-height: 400px;
5
+ background-color: @component-background-default;
6
+ border: 1px solid var(--c8y-root-component-border-color);
7
+ border-radius: @margin-base;
8
+ padding: 0;
9
+ .chat-input{
10
+ border-bottom-left-radius: @margin-base;
11
+ border-bottom-right-radius: @margin-base;
12
+ }
13
+
14
+ }
15
+
16
+ c8y-agent-chat{
17
+ width: 100%;
18
+ }
19
+
20
+ .chat-input{
21
+ display: flex;
22
+ width: 100%;
23
+ flex-direction: column;
24
+ gap: 8px;
25
+ padding: 16px 16px 4px 16px;
26
+ background-color: @component-background-default;
27
+ border-top: 1px solid var(--c8y-root-component-border-color);
28
+ margin-top: auto;
29
+ position: sticky;
30
+ bottom:0;
31
+ .chat-input-group{
32
+ position: relative;
33
+ width: 100%;
34
+ textarea{
35
+ border-radius: 20px!important;
36
+ min-height: 40px;
37
+ padding-top: 10px;
38
+ padding-right: 40px;
39
+ padding-bottom: 10px;
40
+ padding-left: 16px;
41
+
42
+ &::-webkit-scrollbar {
43
+ width: unset; /* for vertical scrollbars */
44
+ height: unset; /* for horizontal scrollbars */
45
+ }
46
+
47
+ &::-webkit-scrollbar-track {
48
+ background: unset;
49
+ }
50
+ &::-webkit-scrollbar-thumb {
51
+ width: unset;
52
+ border-radius: unset;
53
+ background: unset;
54
+ }
55
+ &:hover {
56
+ &::-webkit-scrollbar-thumb {
57
+ background: unset;
58
+ }
59
+ }
60
+ }
61
+ .chat-input-group-btn{
62
+ position: absolute;
63
+ right: 4px;
64
+ bottom: 4px;
65
+ .btn-dot{
66
+ margin: 0!important;
67
+ height: @form-control-height-base!important;
68
+ border-radius: 50%;
69
+ }
70
+ }
71
+ }
72
+ }
73
+
74
+ .chat-message {
75
+ line-height: 1.7;
76
+ .message-content{
77
+ overflow-wrap: break-word;
78
+ word-break: break-word;
79
+ max-width: 100%;
80
+ min-width: 0;
81
+ p{
82
+ margin-bottom: 8px;
83
+ &:last-child {
84
+ margin-bottom: 0;
85
+ }
86
+ }
87
+ }
88
+ }
89
+
90
+ .agent-message {
91
+ align-self: flex-start;
92
+ min-width: 0;
93
+ width: 100%;
94
+ margin-top: @margin-16;
95
+ padding: @margin-16 @margin-24 @margin-16 @margin-16;
96
+ h1{
97
+ margin-top: @margin-24;
98
+ margin-bottom: @margin-16;
99
+ font-size: 2em;
100
+ font-weight: 600;
101
+ }
102
+ h2{
103
+ margin-top: @margin-24;
104
+ margin-bottom: @margin-16;
105
+ font-size: 1.5em;
106
+ font-weight: 600;
107
+ }
108
+ h3{
109
+ margin-top: @margin-16;
110
+ margin-bottom: @margin-16;
111
+ font-size: 1.2em;
112
+ font-weight: 600;
113
+ }
114
+ }
115
+
116
+ .user-message {
117
+ background-color: var(--c8y-brand-70);
118
+ color: var(--c8y-palette-low);
119
+ align-self: flex-end;
120
+ border-radius: @margin-base;
121
+ max-width: 85%;
122
+ min-width: 0;
123
+ padding: @margin-base @margin-16;
124
+ order: 2;
125
+ }
126
+
127
+ .message-action {
128
+ display: flex;
129
+ align-items: center;
130
+ gap: @margin-base;
131
+ padding: @margin-base 0 @margin-16 0;
132
+ &:empty{
133
+ display: none;
134
+ }
135
+ &.user-action {
136
+ display: inline-block;
137
+ align-self: flex-end;
138
+ width: auto;
139
+ padding: 0;
140
+ margin-top: 0;
141
+ margin-right: 0;
142
+ order: 1;
143
+
144
+ }
145
+ &.agent-action {
146
+ justify-content: flex-start;
147
+ border-top: 1px dashed var(--c8y-root-component-border-color);
148
+ }
149
+
150
+ .btn-dot{
151
+ margin: 0!important;
152
+ height: @form-control-height-base!important;
153
+ border-radius: 50%!important;
154
+ }
155
+ }
156
+
157
+ .message-timestamp{
158
+ display: block;
159
+ font-size: @font-size-xs;
160
+ color: var(--c8y-text-muted);
161
+ .user-message &{
162
+ text-align: right;
163
+ }
164
+ }
165
+
166
+
167
+ .agent-step-feedback {
168
+ .c8y-list__group{
169
+ border-radius: 20px!important;
170
+ overflow: hidden;
171
+ border: 1px solid var(--c8y-root-component-border-color);
172
+ .c8y-list__item{
173
+ box-shadow: none;
174
+ }
175
+ .collapse-btn{
176
+ &, &:hover, &:focus{
177
+ border-top-right-radius: 20px!important;
178
+ border-bottom-right-radius: 20px!important;
179
+ }
180
+ }
181
+ }
182
+ .c8y-list__item.selectable.active{
183
+ color: @component-color-text-muted;
184
+ }
185
+ .c8y-list__item__actions, .c8y-list__item__icon{
186
+ height: 40px;
187
+ padding-top: 0!important;
188
+ padding-bottom: 0!important;
189
+ }
190
+ .c8y-list__item.selectable.active .c8y-list__item__body:after{
191
+ float: none;
192
+ color: @component-brand-primary;
193
+ }
194
+ }
@@ -36,6 +36,14 @@ c8y-countdown-interval {
36
36
  font-size: @font-size-xs;
37
37
  line-height: inherit;
38
38
  }
39
+ .form-group-sm &, .input-group-sm & {
40
+ min-width: 24px;
41
+ min-height: 24px;
42
+ svg {
43
+ padding-top: 2px;
44
+ padding-bottom: 2px;
45
+ }
46
+ }
39
47
  }
40
48
 
41
49
  .time-on {
@@ -62,6 +70,10 @@ c8y-countdown-interval {
62
70
  .time-elapsed {
63
71
  background-color: transparent;
64
72
  }
73
+ .input-group-sm &, .form-group-sm & {
74
+ min-height: @form-control-height-sm;
75
+ min-width: calc(@form-control-height-sm + @margin-base);
76
+ }
65
77
  &.vertical {
66
78
  padding: 0;
67
79
  min-width: revert;
@@ -482,9 +482,9 @@ c8y-search-input.input-group-sm{
482
482
  .input-group-lg > .form-group{
483
483
  height: @form-control-height-lg!important;
484
484
  }
485
- .input-group-sm > .form-control,
486
- .input-group-sm > .input-group-addon,
487
- .input-group-sm > .input-group-btn > .btn {
485
+ .input-group-sm .form-control,
486
+ .input-group-sm .input-group-addon,
487
+ .input-group-sm .input-group-btn > .btn {
488
488
  .input-sm();
489
489
  }
490
490
  .input-group-sm > .form-group{
@@ -220,12 +220,3 @@ body:not(:has(.app-main-header)) {
220
220
  }
221
221
  }
222
222
  }
223
-
224
- body:not(:has(.has-action-bar)){
225
- .page-tabs-vertical{
226
- .nav-tabs{
227
- padding-top: 0;
228
- border-top: 1px solid @component-border-color;
229
- }
230
- }
231
- }
@@ -25,7 +25,7 @@ c8y-resizable-grid {
25
25
  .expanded {
26
26
  transition: all 0.3s ease;
27
27
  flex-grow: 1;
28
- width: calc(100% - 8px)!important;
28
+ width: 100% !important;
29
29
  }
30
30
 
31
31
  &:has(.collapsed) {
package/styles/index.less CHANGED
@@ -60,6 +60,7 @@
60
60
  @import '_static-assets-file-picker.less';
61
61
  @import '_asset-property-list.less';
62
62
  @import '_resizable-grid.less';
63
+ @import '_c8y-ai-chat.less';
63
64
 
64
65
  @import '_panels.less';
65
66
  @import '_asset-table.less';
@@ -9,6 +9,10 @@
9
9
  display: flex !important;
10
10
  flex-direction: column !important;
11
11
  }
12
+ .d-col-reverse {
13
+ display: flex !important;
14
+ flex-direction: column-reverse !important;
15
+ }
12
16
  .d-block {
13
17
  display: block !important;
14
18
  }
@@ -41,6 +45,10 @@
41
45
  display: flex !important;
42
46
  flex-direction: column !important;
43
47
  }
48
+ .d-col-reverse-xs {
49
+ display: flex !important;
50
+ flex-direction: column-reverse !important;
51
+ }
44
52
  .d-block-xs {
45
53
  display: block !important;
46
54
  }
@@ -73,6 +81,10 @@
73
81
  display: flex !important;
74
82
  flex-direction: column !important;
75
83
  }
84
+ .d-col-reverse-sm {
85
+ display: flex !important;
86
+ flex-direction: column-reverse !important;
87
+ }
76
88
  .d-block-sm {
77
89
  display: block !important;
78
90
  }
@@ -104,6 +116,10 @@
104
116
  display: flex !important;
105
117
  flex-direction: column !important;
106
118
  }
119
+ .d-col-reverse-md {
120
+ display: flex !important;
121
+ flex-direction: column-reverse !important;
122
+ }
107
123
  .d-block-md {
108
124
  display: block !important;
109
125
  }
@@ -136,6 +152,10 @@
136
152
  display: flex !important;
137
153
  flex-direction: column !important;
138
154
  }
155
+ .d-col-reverse-lg {
156
+ display: flex !important;
157
+ flex-direction: column-reverse !important;
158
+ }
139
159
  .d-block-lg {
140
160
  display: block !important;
141
161
  }
@@ -1,6 +1,6 @@
1
1
 
2
2
  // Do not edit directly
3
- // Generated on Thu, 10 Jul 2025 11:02:26 GMT
3
+ // Generated on Wed, 03 Sep 2025 23:29:02 GMT
4
4
 
5
5
  .c8y-dark-theme {
6
6
 
@@ -1,6 +1,6 @@
1
1
 
2
2
  // Do not edit directly
3
- // Generated on Thu, 10 Jul 2025 11:02:26 GMT
3
+ // Generated on Wed, 03 Sep 2025 23:29:02 GMT
4
4
 
5
5
  :root, .c8y-light-theme {
6
6
 
@@ -240,7 +240,7 @@
240
240
 
241
241
  /* SECTION: Button - Defaults */
242
242
  --c8y-btn-border-radius-base: 4;
243
- --c8y-btn-border-radius-large: calc(var(--c8y-btn-border-radius-base) * 1.25);
243
+ --c8y-btn-border-radius-large: calc(var(--c8y-btn-border-radius-base) * 1.25px);
244
244
  --c8y-btn-border-radius-pill: calc(var(--c8y-unit-base) * 3px);
245
245
  --c8y-btn-border-radius-small: calc(var(--c8y-btn-border-radius-base) * 0.75 * 1px);
246
246
  --c8y-btn-border-radius-xs: 12px;
@@ -259,7 +259,7 @@
259
259
  --c8y-btn-padding-base-vertical: var(--c8y-root-component-padding-base-vertical);
260
260
  --c8y-btn-padding-icon-horizontal: 9px;
261
261
  --c8y-btn-padding-icon-vertical: var(--c8y-root-component-padding-base-vertical);
262
- --c8y-btn-padding-large-horizontal: calc(var(--c8y-unit-base) * 2);
262
+ --c8y-btn-padding-large-horizontal: calc(var(--c8y-unit-base) * 3);
263
263
  --c8y-btn-padding-large-vertical: 9px;
264
264
  --c8y-btn-padding-small-horizontal: 14px;
265
265
  --c8y-btn-padding-small-vertical: 5px;