@c8y/style 1024.5.1 → 1024.8.3

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": "1024.5.1",
3
+ "version": "1024.8.3",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Cumulocity GmbH",
6
6
  "description": "Styles for Cumulocity IoT applications",
@@ -68,7 +68,16 @@ c8y-chart {
68
68
  }
69
69
  }
70
70
 
71
- // Removed unused control utility class - verified 0 usages: .top-chart-bar
71
+ // Partially restored for the legacy data point graph (MTM-66855): the max-width
72
+ // constraint is what makes the selected-datapoints label truncate with an ellipsis.
73
+ .top-chart-bar {
74
+ c8y-item-selector {
75
+ max-width: 170px;
76
+ @media (min-width: $screen-md-min) {
77
+ max-width: 240px;
78
+ }
79
+ }
80
+ }
72
81
 
73
82
  .c8yGraphFill {
74
83
  min-height: 540px;
@@ -79,11 +88,15 @@ c8y-chart {
79
88
 
80
89
  // inside dashboard widgets
81
90
  .card-dashboard {
82
- // Removed unused control utility class - verified 0 usages: .top-chart-bar
83
91
  c8y-measurements-icon-bar {
84
92
  width: 100%;
85
93
  }
86
- // Removed unused control utility class - verified 0 usages: .top-chart-bar
94
+ // Partially restored for the legacy data point graph (MTM-66855)
95
+ .top-chart-bar {
96
+ c8y-item-selector {
97
+ max-width: 170px;
98
+ }
99
+ }
87
100
  }
88
101
 
89
102
  // Removed unused utility usage: .has-aggregation .measurement-icon-bar .c8y-realtime
@@ -5,6 +5,7 @@
5
5
  @use "../../../core/buttons/buttons";
6
6
  @use "../../../mixins/tab-focus";
7
7
  @use "../../../utilities/separators";
8
+ @use "../../../mixins/c8y-scrollbar";
8
9
  /**
9
10
  * C8Y List Group - Modern list component with flexible layouts
10
11
  *
@@ -38,9 +39,11 @@
38
39
  }
39
40
 
40
41
  &.dropdown-menu {
42
+ @include c8y-scrollbar.c8y-scrollbar();
41
43
  width: 100%;
42
44
  max-height: 240px;
43
45
  overflow-y: auto;
46
+ background: $component-background-default;
44
47
  }
45
48
  }
46
49
 
@@ -17,7 +17,7 @@
17
17
  .dtm-icon-grid {
18
18
  display: grid;
19
19
  grid-template-columns: repeat(3, minmax(0, 1fr));
20
-
20
+ gap: $size-4;
21
21
  @media(min-width: $screen-sm-min) {
22
22
  grid-template-columns: repeat(5, minmax(0, 1fr));
23
23
  }
@@ -31,12 +31,75 @@
31
31
  display: flex;
32
32
  align-items: stretch;
33
33
  justify-content: stretch;
34
+ position: relative;
34
35
 
35
36
  &--selected {
36
37
  >button {
37
38
  box-shadow: inset 0 0 0 2px $component-color-focus !important;
38
39
  }
39
40
  }
41
+
42
+ &--overridden, &:has(.dtm-icon-grid__actions .dlt-c8y-icon-pencil) {
43
+ > button {
44
+ outline: 1px dotted $component-border-color;
45
+ outline-offset: -2px;
46
+ }
47
+ }
48
+
49
+ .dtm-icon-grid__override-marker {
50
+ position: absolute;
51
+ top: 3px;
52
+ left: 3px;
53
+ z-index: 1;
54
+ display: flex;
55
+ align-items: center;
56
+ justify-content: center;
57
+ width: 16px;
58
+ height: 16px;
59
+ font-size: 10px;
60
+ line-height: 1;
61
+ color: $tag--color-info;
62
+ background-color: $tag--background-info;
63
+ border: 1px solid $tag--color-info;
64
+ border-radius: 50%;
65
+ }
66
+
67
+ .dtm-icon-grid__actions {
68
+ opacity: 0;
69
+ display: flex;
70
+ pointer-events: none;
71
+ position: absolute;
72
+ top: 0;
73
+ right: 0;
74
+ gap: 2px;
75
+ z-index: 1;
76
+ transform: translate(-4px, -50%);
77
+ transition: all .15s ease;
78
+ @media (max-width: $screen-xs-max) {
79
+ flex-direction: column;
80
+ gap: 1px;
81
+ right: 1px;
82
+ }
83
+ .btn-dot{
84
+ background-color: $component-background-default;
85
+ border-radius: 50%!important;
86
+ border: 1px solid $component-border-color;
87
+ }
88
+ }
89
+
90
+ &:hover,
91
+ &:focus-within {
92
+ .dtm-icon-grid__actions {
93
+
94
+ opacity: 1;
95
+ pointer-events: auto;
96
+ }
97
+ .dtm-icon-grid__btn{
98
+ box-shadow: inset 0 0 0 1px $component-border-color;
99
+ color: inherit;
100
+ }
101
+ }
102
+
40
103
  }
41
104
 
42
105
  &__btn {
@@ -47,15 +110,20 @@
47
110
  padding: $size-8;
48
111
  background: $component-background-default;
49
112
  width: 100%;
113
+ border-radius: $size-8;
50
114
 
51
115
  >i {
116
+ display: inline-block;
117
+ width: 1.1em;
118
+ height: 1.1em;
119
+ line-height: 1;
52
120
  color: $gray-30;
53
121
  margin-bottom: 4px;
54
122
  }
55
123
 
56
124
  &:hover,
57
125
  &:focus {
58
- box-shadow: inset 0 0 0 1px $component-color-focus;
126
+ box-shadow: inset 0 0 0 1px $component-border-color;
59
127
  color: inherit;
60
128
  }
61
129
 
@@ -146,7 +146,9 @@ c8y-item-selector {
146
146
  }
147
147
 
148
148
  .dropdown-menu.multiselect-container {
149
- .dropdown.open & {
149
+ // body.uib-dropdown-open covers menus rendered with dropdown-append-to-body
150
+ .dropdown.open &,
151
+ body.uib-dropdown-open > & {
150
152
  overflow: auto !important;
151
153
  max-height: 278px;
152
154
  min-width: 240px;
@@ -254,6 +254,29 @@ bs-dropdown-container,
254
254
  }
255
255
  }
256
256
 
257
+ .dropdown.open .dropdown-menu--select:has(.dropdown-menu_sticky-top){
258
+ display: flex!important;
259
+ flex-direction: column;
260
+ .c8y-list__item{
261
+ order: 1;
262
+ }
263
+ .dropdown-menu_sticky-top{
264
+ order: 0;
265
+ position: sticky;
266
+ top: 0;
267
+ z-index: 10;
268
+ padding: $size-8 $size-16;
269
+ .form-group{
270
+ margin-bottom: 0;
271
+ }
272
+ }
273
+ .dropdown-menu_sticky-bottom{
274
+ position: sticky;
275
+ bottom: 0;
276
+ z-index: 10;
277
+ padding: $size-8 $size-16;
278
+ }
279
+ }
257
280
 
258
281
  //dropdown menu when added to body
259
282
  @keyframes showDropdown {