@c8y/style 1022.45.2 → 1023.0.0

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": "1022.45.2",
3
+ "version": "1023.0.0",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Cumulocity GmbH",
6
6
  "description": "Styles for Cumulocity IoT applications",
@@ -4,10 +4,41 @@ c8y-asset-property-list {
4
4
  max-width: 100%;
5
5
  display: block;
6
6
  overflow: hidden;
7
+
8
+ &:has(.drag-handle-wrapper) {
9
+ padding-left: 8px;
10
+ }
11
+ }
12
+
13
+ .tree-container:has(.drag-handle-wrapper) {
14
+ .select-all-container {
15
+ > .separator-bottom,
16
+ > .overflow-hidden {
17
+ padding-left: 8px;
18
+ }
19
+ }
7
20
  }
21
+
8
22
  .cdk-tree-node {
9
23
  height: 40px;
10
24
  background: inherit;
25
+
26
+ .drag-handle-wrapper {
27
+ z-index: 5;
28
+ display: flex;
29
+ align-items: center;
30
+ position: absolute;
31
+ height: 100%;
32
+ font-size: 0.7em;
33
+ opacity: 0;
34
+ transition: opacity 0.15s linear;
35
+ }
36
+
37
+ &:hover {
38
+ .drag-handle-wrapper {
39
+ opacity: 1;
40
+ }
41
+ }
11
42
  }
12
43
 
13
44
  .cdk-tree-node > .d-flex::before {
@@ -25,9 +56,11 @@ c8y-asset-property-list {
25
56
  );
26
57
  z-index: 1;
27
58
  }
59
+
28
60
  .cdk-tree-node:last-of-type > .d-flex::before {
29
61
  bottom: 50%;
30
62
  }
63
+
31
64
  .cdk-tree-node:not([aria-level='1']) {
32
65
  > .d-flex::after {
33
66
  content: '';
@@ -48,14 +81,21 @@ c8y-asset-property-list {
48
81
  position: absolute;
49
82
  pointer-events: none;
50
83
  }
84
+
51
85
  &.nonSelectable {
52
86
  > .d-flex::after {
53
87
  width: 40px;
54
88
  }
55
89
  }
90
+
91
+ .drag-handle-wrapper {
92
+ left: -24px;
93
+ }
56
94
  }
95
+
57
96
  .cdk-tree-node[aria-level]:not([aria-level='1']):not([aria-level='2']) {
58
97
  position: relative;
98
+
59
99
  &::after {
60
100
  position: absolute;
61
101
  content: '';
@@ -74,6 +114,7 @@ c8y-asset-property-list {
74
114
  );
75
115
  z-index: 1;
76
116
  }
117
+
77
118
  &[aria-level='4'] {
78
119
  &::before {
79
120
  position: absolute;
@@ -95,10 +136,12 @@ c8y-asset-property-list {
95
136
  }
96
137
  }
97
138
  }
139
+
98
140
  .cdk-tree-node.nonCollapsible:not([aria-level='1']) {
99
141
  > .d-flex::before {
100
142
  left: -5px;
101
143
  }
144
+
102
145
  > .d-flex::after {
103
146
  width: 14px;
104
147
  left: -5px;
@@ -108,12 +151,14 @@ c8y-asset-property-list {
108
151
  > .d-flex::before {
109
152
  left: 0;
110
153
  }
154
+
111
155
  > .d-flex::after {
112
156
  width: 10px;
113
157
  left: 0;
114
158
  }
115
159
  }
116
160
  }
161
+
117
162
  .cdk-tree-node[aria-level='1'] > .d-flex::before {
118
163
  display: none;
119
164
  }
@@ -127,13 +172,14 @@ c8y-asset-property-list {
127
172
  .c8y-list__item__radio {
128
173
  z-index: 4;
129
174
  }
175
+
130
176
  &[aria-level='1'],
131
177
  &[aria-level='2'],
132
178
  &[aria-level='3'] {
133
179
  &:before {
134
180
  content: '';
135
181
  background: inherit;
136
- width: 48px;
182
+ width: 44px;
137
183
  height: 100%;
138
184
  position: absolute;
139
185
  left: 0;
@@ -141,12 +187,14 @@ c8y-asset-property-list {
141
187
  z-index: 3;
142
188
  pointer-events: none;
143
189
  }
190
+
144
191
  &.nonCollapsible {
145
192
  &::before {
146
- width: 21px;
193
+ width: 18px;
147
194
  bottom: calc(100% - 1px);
148
195
  height: 50%;
149
196
  }
197
+
150
198
  + .cdk-tree-node[aria-level='1'] {
151
199
  &::before {
152
200
  background: transparent;
@@ -154,11 +202,13 @@ c8y-asset-property-list {
154
202
  }
155
203
  }
156
204
  }
205
+
157
206
  &[aria-level='2'] {
158
207
  &::before {
159
208
  left: 24px;
160
209
  z-index: 1;
161
210
  }
211
+
162
212
  &.nonCollapsible {
163
213
  + .cdk-tree-node[aria-level='2'] {
164
214
  &::before {
@@ -167,11 +217,13 @@ c8y-asset-property-list {
167
217
  }
168
218
  }
169
219
  }
220
+
170
221
  &[aria-level='3'] {
171
222
  &::before {
172
223
  left: 48px;
173
224
  z-index: 1;
174
225
  }
226
+
175
227
  &.nonCollapsible {
176
228
  + .cdk-tree-node[aria-level='3'] {
177
229
  &::before {
@@ -194,6 +246,7 @@ c8y-asset-property-list {
194
246
  max-height: 40px !important;
195
247
  min-height: unset !important;
196
248
  }
249
+
197
250
  .cdk-tree-node .c8y-list__item__icon {
198
251
  padding-top: 7px;
199
252
  padding-bottom: 7px;
@@ -206,3 +259,11 @@ c8y-asset-property-list {
206
259
  }
207
260
  }
208
261
  }
262
+
263
+ .c8y-list__item--dense.cdk-drag-preview {
264
+ background-color: @component-background-default;
265
+ &::before,
266
+ .drag-handle-wrapper {
267
+ display: none;
268
+ }
269
+ }
@@ -36,6 +36,10 @@
36
36
  background-color: var(--c8y-btn-default-background-active);
37
37
  color: var(--c8y-btn-default-color-active);
38
38
  }
39
+ &.partial-active {
40
+ background-color: var(--c8y-palette-gray-90);
41
+ color: var(--c8y-brand-complementary);
42
+ }
39
43
  &:focus {
40
44
  outline: 2px solid @component-color-focus;
41
45
  outline-offset: -3px;
@@ -157,6 +157,50 @@
157
157
  }
158
158
  }
159
159
 
160
+ .btn-icon-dot{
161
+ display: flex;
162
+ background: @component-background-default;
163
+ color: @text-color;
164
+ justify-content: center;
165
+ align-items: center;
166
+ aspect-ratio: 1;
167
+ height: 100%;
168
+ border-radius: 50%;
169
+ border: 0;
170
+ padding: 0;
171
+ &:not(.active){
172
+ background: var(--c8y-level-4);
173
+ color: @text-muted;
174
+ }
175
+ &button:hover,
176
+ &button:focus,
177
+ &button:active {
178
+ outline: 2px solid @component-brand-primary!important;
179
+ outline-offset: -2px;
180
+ }
181
+ &:not(button){
182
+ height: 20px;
183
+ }
184
+ &.active,&:not(button){
185
+ &.default{
186
+ background: @component-background-default;
187
+ color: @component-color-default;
188
+ }
189
+ &.auto-refresh{
190
+ background: var(--c8y-brand-primary);
191
+ color: var(--c8y-palette-high);
192
+ }
193
+ &.time-context{
194
+ background: @status-info;
195
+ color: var(--c8y-palette-high);
196
+ }
197
+ &.aggregation{
198
+ background: var(--c8y-palette-status-warning-light);
199
+ color: var(--c8y-palette-gray-10);
200
+ }
201
+ }
202
+ }
203
+
160
204
  // spacing buttons outside btn-group
161
205
  .btn + .btn:not(.btn-block) {
162
206
  margin-left: @margin-base;
@@ -206,7 +206,6 @@ body .dashboard-preview-slot {
206
206
  margin: 0 !important;
207
207
  padding: 30px;
208
208
  border: 1px solid @component-border-color;
209
-
210
209
  .page-tabs-horizontal {
211
210
  margin-top: 2px !important;
212
211
  }
@@ -29,6 +29,7 @@ c8y-chart {
29
29
  .card-dashboard .chart-container{
30
30
  max-height: calc(100% - 95px);
31
31
  max-width: 99.5%;
32
+ min-height: unset;
32
33
  }
33
34
 
34
35
  .top-chart-bar {
@@ -1,4 +1,4 @@
1
- .c8y-help-drawer {
1
+ .c8y-help-drawer{
2
2
  position: fixed;
3
3
  top: 0;
4
4
  right: 0;
@@ -66,7 +66,7 @@
66
66
  }
67
67
  &-block {
68
68
  padding: calc(@component-padding * 1.5) calc(@component-padding * 2) 0
69
- calc(@component-padding * 1.5);
69
+ calc(@component-padding * 1.5);
70
70
  }
71
71
  &-footer {
72
72
  position: sticky;
@@ -79,16 +79,4 @@
79
79
  padding-bottom: calc(@component-padding * 1.5);
80
80
  }
81
81
  }
82
-
83
- }
84
-
85
- body:not(:has(.app-main-header)) {
86
- .c8y-help-drawer {
87
- top: 0;
88
- }
89
- &:has(.horizontal-tabs.has-tabs) {
90
- .c8y-help-drawer {
91
- top: 48px;
92
- }
93
- }
94
82
  }
@@ -228,6 +228,13 @@ c8y-load-more.c8y-list__item {
228
228
  }
229
229
  }
230
230
 
231
+ .block-sticky-top > div > .c8y-list__item__block {
232
+ position: sticky;
233
+ top: 0;
234
+ z-index: 120;
235
+ background-color: inherit;
236
+ }
237
+
231
238
  c8y-li-drag-handle, c8y-list-item-drag-handle {
232
239
  display: flex;
233
240
  align-items: center;
@@ -108,6 +108,25 @@
108
108
  top: 16px;
109
109
  right: 16px;
110
110
  z-index: 210;
111
+
112
+ c8y-global-context-widget-wrapper{
113
+ display: contents!important;
114
+ form{
115
+ display:contents!important;
116
+ }
117
+ c8y-auto-refresh-control{
118
+ min-width: 0;
119
+ }
120
+ .toggle-countdown{
121
+ padding:0!important;
122
+ width: 30px;
123
+ min-width: 0;
124
+ }
125
+
126
+ .btn{
127
+ padding: 0;
128
+ }
129
+ }
111
130
  }
112
131
 
113
132
  .c8y-map-internal {
@@ -1,4 +1,4 @@
1
- .c8y-top-drawer{
1
+ .c8y-top-drawer, .c8y-global-context {
2
2
  position: sticky;
3
3
  z-index: (@zindex-action-bar - 2);
4
4
  margin: 0 calc(@margin-base * -1);
@@ -65,3 +65,37 @@
65
65
  min-height: 220px;
66
66
  }
67
67
  }
68
+
69
+
70
+
71
+ .c8y-global-context {
72
+ position: fixed;
73
+ z-index: (@zindex-action-bar - 2);
74
+ width: calc(100% - 32px);
75
+ clip: rect(0, 10000px, 2000px, -16px);
76
+ --c8y-nav-tabs-vertical-width: 170px;
77
+ transition: width @open-menu-time-type;
78
+ .page-tabs-vertical .nav-tabs > div > a {
79
+ align-items: flex-start;
80
+ }
81
+ .c8y-top-drawer--footer{
82
+ --c8y-nav-tabs-vertical-width: 24px;
83
+ }
84
+ }
85
+
86
+ @media(min-width: @grid-float-breakpoint){
87
+ .c8y-global-context{
88
+ --c8y-nav-tabs-vertical-width: 273px;
89
+ .c8y-top-drawer--footer{
90
+ --c8y-nav-tabs-vertical-width: 273px;
91
+ }
92
+ }
93
+ }
94
+ body:has(.mcontainer.open){
95
+ @media(min-width: @grid-float-breakpoint){
96
+ .c8y-global-context {
97
+ width: calc(100% - 272px);
98
+ }
99
+
100
+ }
101
+ }
@@ -33,12 +33,28 @@
33
33
  height: calc(~'100% - @{margin-48} - @{margin-16} - @{form-control-height-base} - @{margin-16}'
34
34
  );
35
35
  }
36
+
37
+ &:has(.inner-scroll) c8y-dynamic-component {
38
+ display: flex;
39
+ flex-direction: column;
40
+ height: 100%;
41
+ c8y-alarm-list-widget,c8y-alarms-list{
42
+ display: contents;
43
+ }
44
+ }
36
45
 
37
46
  >.component-map {
38
47
  position: relative;
39
48
  z-index: 11;
40
49
  height: 100%;
41
50
  }
51
+
52
+ c8y-map-widget{
53
+ flex-grow: 1;
54
+ }
55
+ c8y-kpi-widget-view{
56
+ display: contents;
57
+ }
42
58
  }
43
59
 
44
60
  >.fixed-header {
@@ -364,6 +364,10 @@
364
364
  font-weight: 500;
365
365
  }
366
366
 
367
+ .dropdown{
368
+ min-width: unset;
369
+ }
370
+
367
371
  @media (max-width: @screen-xs-max) {
368
372
  flex-wrap: wrap;
369
373
  padding: @component-padding;
@@ -84,6 +84,22 @@
84
84
  outline: none;
85
85
  }
86
86
 
87
+ .datepicker{
88
+ input.form-control{
89
+ width: 120px;
90
+ .form-group-sm & {
91
+ width: 102px;
92
+ }
93
+ }
94
+ }
95
+
96
+ timepicker{
97
+ .btn{
98
+ padding-left: @margin-8!important;
99
+ padding-right: @margin-8!important;
100
+ }
101
+ }
102
+
87
103
  .timepicker {
88
104
  input.form-control {
89
105
  width: 44px;
@@ -14,9 +14,9 @@ fieldset.c8y-fieldset {
14
14
  margin-inline-start: 2px;
15
15
  margin-inline-end: 2px;
16
16
  padding-block-start: 0.25rem;
17
- padding-inline-end: 0.75em;
17
+ padding-inline-end: 1.1428571429em;
18
18
  padding-block-end: 0;
19
- padding-inline-start: 0.75em;
19
+ padding-inline-start: 1.1428571429em;
20
20
  min-inline-size: 100%;
21
21
  &--lg {
22
22
  padding-block-start: 1rem;
@@ -107,6 +107,15 @@ legend,
107
107
  height: 30px;
108
108
  font-size: 14px;
109
109
  line-height: 32px;
110
+ &--small {
111
+ width: 20px;
112
+ height: 20px;
113
+ font-size: 12px;
114
+ display: flex;
115
+ align-items: center;
116
+ justify-content: center;
117
+ border-radius: 50%;
118
+ }
110
119
  }
111
120
  }
112
121
 
@@ -750,9 +759,14 @@ c8y-field-input ~ .help-block:not(:empty),
750
759
  // Build on `.form-control` with modifier classes to decrease or increase the
751
760
  // height and font-size of form controls.
752
761
  //
753
- .form-group-sm > label {
754
- margin-bottom: 0;
755
- font-size: @font-size-small;
762
+ .form-group-sm {
763
+ .btn{
764
+ .btn-sm();
765
+ }
766
+ > label {
767
+ margin-bottom: 0;
768
+ font-size: @font-size-small;
769
+ }
756
770
  }
757
771
 
758
772
  .form-group-sm .form-control,
@@ -73,9 +73,21 @@
73
73
  min-height: 280px;
74
74
  }
75
75
 
76
- .card-dashboard .chart-container {
77
- max-height: calc(100% - 95px);
78
- max-width: 99.5%;
76
+ .card-dashboard {
77
+ c8y-datapoints-graph-widget-view{
78
+ flex-grow: 1;
79
+ }
80
+ .chart-container {
81
+ max-height: calc(100% - 95px);
82
+ max-width: 99.5%;
83
+ }
84
+
85
+ &:has(c8y-aggregation-picker),
86
+ &:has(c8y-date-time-context-picker) {
87
+ .chart-container {
88
+ max-height: calc(100% - 145px);
89
+ }
90
+ }
79
91
  }
80
92
 
81
93
  @container (min-width: 150px) {
@@ -214,6 +214,17 @@
214
214
  }
215
215
  }
216
216
 
217
+ .input-group.input-group--dots{
218
+ display: flex;
219
+ align-items: center;
220
+ border-radius: calc(@form-control-height-base * 0.5);
221
+ height: @form-control-height-base;
222
+ border: 1px solid @form-control-border-color-default;
223
+ padding: var(--c8y-form-control-padding-base-vertical);
224
+ gap: @margin-8;
225
+ font-size: @font-size-small;
226
+ }
227
+
217
228
  .input-group-search{
218
229
  .input-group-btn > .btn{
219
230
  border-top-right-radius: calc(@form-control-height-base * 0.5)!important;
@@ -33,6 +33,20 @@
33
33
  clip: rect(0, 10000px, 2000px, 0);
34
34
  min-height: calc(@margin-base * 6);
35
35
  box-shadow: inset 0 -1px 0 0 @component-border-color, @header-shadow;
36
+ &:has(.component-tabs) {
37
+ box-shadow: inset 0 -1px 0 0 @component-border-color;
38
+ .component-tabs {
39
+ min-width: unset!important;
40
+ padding: 0;
41
+ &.nav-tabs > div, &.nav-tabs li{
42
+ flex: 1;
43
+ align-self: stretch;
44
+ > a{
45
+ height: 100%;
46
+ }
47
+ }
48
+ }
49
+ }
36
50
  &,
37
51
  &:after {
38
52
  .transition(left @open-menu-time-type);
@@ -42,7 +42,8 @@ c8y-resizable-grid {
42
42
  overflow: hidden;
43
43
 
44
44
  >* {
45
- min-width: fit-content;
45
+ flex: 1;
46
+ min-height: 0;
46
47
  }
47
48
  }
48
49
 
@@ -52,7 +53,8 @@ c8y-resizable-grid {
52
53
  min-width: 0;
53
54
 
54
55
  >* {
55
- min-width: fit-content;
56
+ flex: 1;
57
+ min-height: 0;
56
58
  }
57
59
  }
58
60
 
@@ -109,32 +109,6 @@
109
109
  transition: background 0.25s ease;
110
110
  }
111
111
 
112
- /* List density
113
- * display density utilities
114
- * display density low = padding 8px
115
- * display density low = padding 0
116
- * use one or the other by adding either .dd-low or .dd-high on a parent wrapper
117
- */
118
- .use-display-density {
119
- padding: @margin-8 0;
120
- transition: padding 0.25s ease;
121
- .card &,
122
- .modal & {
123
- padding: 0;
124
- }
125
- .dd-high & {
126
- padding: 0;
127
- }
128
- &[ng-reflect-collapsed='false'] {
129
- .dd-low & {
130
- padding-bottom: 0;
131
- .collapse {
132
- margin-top: 1rem;
133
- }
134
- }
135
- }
136
- }
137
-
138
112
  [ng-click],
139
113
  .pointer {
140
114
  cursor: pointer !important;