@c8y/style 1021.81.0 → 1022.3.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.
Files changed (81) hide show
  1. package/branding-login.less +11 -0
  2. package/img/alarms/alarm-list-widget.png +0 -0
  3. package/img/dashboard-details-advanced-tab.png +0 -0
  4. package/img/data-points-table-widget.png +0 -0
  5. package/img/html-widget-pr.png +0 -0
  6. package/img/html-widget-preview.png +0 -0
  7. package/img/info-gauge-widget-pr.png +0 -0
  8. package/img/linear-gauge-widget-pr.png +0 -0
  9. package/img/map-widget-pr.png +0 -0
  10. package/img/markdown-widget.png +0 -0
  11. package/img/quick-links-widget.png +0 -0
  12. package/login.less +3 -0
  13. package/markdown-files/dashboard-details-import-export-tab.md +84 -0
  14. package/markdown-files/html-widget-preview.md +58 -0
  15. package/package.json +1 -1
  16. package/styles/_alerts.less +2 -1
  17. package/styles/_app-switcher.less +1 -0
  18. package/styles/_badges.less +11 -4
  19. package/styles/_bottom-drawer.less +7 -6
  20. package/styles/_boxed-label.less +21 -0
  21. package/styles/_buttons.less +20 -5
  22. package/styles/_c8y-action-bar.less +2 -2
  23. package/styles/_c8y-asset-selector-miller.less +3 -0
  24. package/styles/_c8y-asset-selector.less +12 -1
  25. package/styles/_c8y-child-assets-selector.less +2 -1
  26. package/styles/_c8y-countdown-interval.less +2 -2
  27. package/styles/_c8y-dashboard-style.less +9 -2
  28. package/styles/_c8y-empty-state.less +4 -0
  29. package/styles/_c8y-icons.less +7 -2
  30. package/styles/_c8y-list-group.less +25 -2
  31. package/styles/_c8y-pulse.less +2 -2
  32. package/styles/_c8y-right-drawer.less +1 -1
  33. package/styles/_c8y-selectize.less +5 -5
  34. package/styles/_c8y-utils.less +5 -3
  35. package/styles/_card.less +1 -2
  36. package/styles/_cards-layout.less +13 -12
  37. package/styles/_code.less +14 -6
  38. package/styles/_dashboard-widgets.less +4 -1
  39. package/styles/_data-grid.less +35 -32
  40. package/styles/_dropdowns.less +131 -26
  41. package/styles/_forms.less +1 -12
  42. package/styles/_input-groups.less +19 -5
  43. package/styles/_layouts.less +24 -5
  44. package/styles/_list-group.less +0 -3
  45. package/styles/_main-header.less +3 -1
  46. package/styles/_markdown-content.less +5 -0
  47. package/styles/_modals.less +11 -1
  48. package/styles/_navbar.less +0 -1
  49. package/styles/_navigator.less +2 -3
  50. package/styles/_page-tabs.less +1 -0
  51. package/styles/_popovers.less +1 -2
  52. package/styles/_quick-links-widget.less +38 -0
  53. package/styles/_smartrules.less +7 -6
  54. package/styles/_spinner-snake.less +2 -1
  55. package/styles/_split-view.less +7 -1
  56. package/styles/_static-assets-file-picker.less +1 -1
  57. package/styles/_tabs.less +10 -4
  58. package/styles/_tag.less +5 -0
  59. package/styles/index.less +3 -0
  60. package/styles/login-app.less +34 -0
  61. package/styles/mixins/c8y-scrollbar.less +1 -4
  62. package/styles/utilities/_icon-utils.less +1 -1
  63. package/styles/utilities/_position.less +61 -0
  64. package/styles/utilities.less +3 -0
  65. package/styles/welcome-widget.less +2 -2
  66. package/variables/_alert-vars.less +1 -1
  67. package/variables/_badge-vars.less +1 -1
  68. package/variables/_brand-vars.less +2 -0
  69. package/variables/_color-vars.less +7 -3
  70. package/variables/_components-vars.less +1 -1
  71. package/variables/dashboard-themes/_branded-dashboard.less +2 -2
  72. package/variables/login-vars.less +48 -0
  73. package/variables/tokens/c8y-design-tokens-dark.less +314 -273
  74. package/variables/tokens/c8y-design-tokens.less +567 -451
  75. package/img/applications-widget-pr.png +0 -0
  76. package/img/cockpit-welcome-image.svg +0 -571
  77. package/img/dm-welcome-widget-pr.png +0 -0
  78. package/img/help-and-service-widget-pr.png +0 -0
  79. package/img/logo-white.svg +0 -69
  80. package/img/logo.svg +0 -136
  81. /package/img/{widget-plugin-pr.png → sample-plugin-pr.png} +0 -0
@@ -0,0 +1,11 @@
1
+ @import 'variables/login-vars.less';
2
+
3
+ // font-faces are declared here so that font-files are not loaded in other brandings
4
+ @import (css) '~@fontsource/public-sans/400.css';
5
+ @import (css) '~@fontsource/public-sans/400-italic.css';
6
+ @import (css) '~@fontsource/public-sans/600.css';
7
+ @import (css) '~@fontsource/public-sans/600-italic.css';
8
+ @import (css) '~@fontsource/public-sans/700.css';
9
+
10
+ @import 'styles/login-app.less';
11
+
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/login.less ADDED
@@ -0,0 +1,3 @@
1
+ @import 'branding-login.less';
2
+ // we want to load assets via web webpack, that's what this variable toggles
3
+ @use-relative-paths: true;
@@ -0,0 +1,84 @@
1
+  
2
+
3
+
4
+ ### 📋 Dashboard Import / Export: Cross-Platform Configuration Management
5
+
6
+  
7
+
8
+ The Dashboard Export & Import feature provides a flexible way to share and backup dashboard configurations through JSON files. This functionality enables seamless transfer of dashboard setups across different applications, tenants, and environments, making it a powerful tool for cross-platform configuration management.
9
+
10
+  
11
+
12
+ <img src="./c8y-style-assets/dashboard-details-advanced-tab.png" alt="Dashboard Export/Import Feature" width="100%">
13
+
14
+ ---
15
+
16
+ ### ✨ Key Features & Capabilities
17
+
18
+ &nbsp;
19
+
20
+ #### 📤 Advanced Dashboard Export
21
+
22
+ &nbsp;
23
+
24
+ Export dashboard configurations with enhanced control and flexibility.
25
+
26
+ &nbsp;
27
+
28
+ ✅ One-Click Export -- Easily save your dashboard configuration as a JSON file\
29
+ ✅ Complete Configuration Capture -- Exports include all widget settings, layouts, and customizations\
30
+ ✅ Cross-Tenant Compatibility -- Share configurations across different tenants and applications\
31
+ ✅ Secure Data Storage -- Exported files maintain the integrity of your dashboard setup
32
+
33
+ These export capabilities ensure your dashboard configurations are safely preserved and ready for sharing across any platform.
34
+
35
+ &nbsp;
36
+
37
+ #### 📥 Seamless Dashboard Import
38
+
39
+ &nbsp;
40
+
41
+ Effortlessly restore or transfer dashboard configurations across environments.
42
+
43
+ &nbsp;
44
+
45
+ ✅ Simple Import Process -- Upload your JSON file to instantly recreate dashboards\
46
+ ✅ Configuration Validation -- Automatic checks ensure data integrity during import\
47
+ ✅ Multi-Platform Support -- Import dashboards to any compatible tenant or application\
48
+ ✅ Flexible Implementation -- Import dashboards to any compatible instance or environment
49
+
50
+ The import functionality streamlines the process of setting up dashboards across different contexts and platforms.
51
+
52
+ &nbsp;
53
+
54
+ #### 🔧 Integrated JSON Editor
55
+
56
+ &nbsp;
57
+
58
+ Fine-tune your dashboard configurations with the built-in code editor.
59
+
60
+ &nbsp;
61
+
62
+ ✅ Dashboard JSON Editing -- Modify JSON configurations directly within the platform\
63
+ ✅ Syntax Highlighting -- Enhanced readability and error detection\
64
+ ✅ Code Validation -- Immediate feedback on configuration correctness\
65
+ ✅ Advanced Customization -- Direct access to all dashboard parameters
66
+
67
+ The integrated editor provides developers and advanced users with precise control over dashboard configurations.
68
+
69
+ &nbsp;
70
+
71
+ ### 💡 Why This Feature Matters
72
+
73
+ &nbsp;
74
+
75
+ The Dashboard Export & Import functionality delivers:
76
+
77
+ &nbsp;
78
+
79
+ 📋 Simplified configuration sharing across teams, tenants, and applications\
80
+ 🔒 Secure backup and restoration of dashboard setups\
81
+ ⚡ Efficient dashboard deployment and replication\
82
+ 🌐 True cross-platform configuration management
83
+
84
+ These capabilities empower users to manage their dashboard configurations more effectively, ensuring consistency and saving valuable setup time across all environments. 🚀
@@ -0,0 +1,58 @@
1
+ &nbsp;
2
+
3
+ ### New HTML widget
4
+
5
+ &nbsp;
6
+
7
+ We're excited to introduce the next generation HTML Widget for the Cumulocity Platform, designed to enhance your development experience and offer improved security features. This new widget will replace the current HTML widget while ensuring backward compatibility.
8
+
9
+ <div class="p-16 m-auto col-lg-max">
10
+ <img src="./c8y-style-assets/html-widget-preview.png" alt="HTML Widget" class="border-all fit-w">
11
+ </div>
12
+
13
+ &nbsp;
14
+
15
+ ### Key features
16
+
17
+ &nbsp;
18
+
19
+ #### Enhanced usability
20
+
21
+ ✅ **Live preview**: Instantly see your changes as you code without having to save and reload.
22
+
23
+ ✅ **VSCode editor integration**: Enjoy a familiar, professional coding environment with syntax highlighting, code completion, and error detection.\
24
+ ✅ **Preview mode**: Easily see your changes in the new preview view.
25
+
26
+ &nbsp;
27
+
28
+ #### Modern development experience
29
+
30
+ ✅ **JavaScript template literals support**: Write more expressive HTML with embedded expressions and multi-line strings.\
31
+ ✅ **Streamlined development workflow**: Faster iteration cycles with immediate visual feedback.
32
+
33
+ &nbsp;
34
+
35
+ #### Advanced developer capabilities
36
+
37
+ ✅ **Web component development**: Build complex, reusable UI components with proper encapsulation.\
38
+ ✅ **Extended API access**: Deeper integration with Cumulocity platform services.
39
+
40
+ &nbsp;
41
+
42
+ #### Enhanced security
43
+
44
+ ✅ **Isolated web components**: Components run in their own scope, preventing conflicts and improving stability.\
45
+ ✅ **Global sanitization settings**: Configurable security controls to prevent XSS attacks.
46
+
47
+ &nbsp;
48
+
49
+ #### Legacy support
50
+
51
+ ✅ **Backward compatibility**: Full support for existing HTML widgets through legacy mode.\
52
+ ✅ **Seamless migration path**: Easily convert existing widgets to the new format when you're ready.
53
+
54
+ &nbsp;
55
+
56
+ &nbsp;
57
+
58
+ The new HTML Widget is currently available in preview mode. We encourage you to test your existing widgets and explore creating new ones with the advanced features.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c8y/style",
3
- "version": "1021.81.0",
3
+ "version": "1022.3.2",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Cumulocity GmbH",
6
6
  "description": "Styles for Cumulocity IoT applications",
@@ -1,4 +1,5 @@
1
1
  .alert {
2
+ --c8y-btn-default-background-default: @alert-background;
2
3
  margin-bottom: @margin-base;
3
4
  padding: @alert-padding;
4
5
  max-width: @alert-max-width;
@@ -200,7 +201,7 @@
200
201
  justify-content: center;
201
202
  width: 100%;
202
203
  height: 100%;
203
- background-color: rgba(255, 255, 255, 0.75);
204
+ background-color: color-mix(in srgb, var(--c8y-root-component-background-default), var(--c8y-root-component-color-default) 10%);
204
205
  }
205
206
 
206
207
  // prevent double scroll bars on widgets when the alerts overlay is displayed
@@ -68,6 +68,7 @@
68
68
  }
69
69
 
70
70
  .dropdown-menu.app-switcher-dropdown-menu {
71
+ transform-origin: center top;
71
72
  left: 50%!important;
72
73
  overflow-y: auto;
73
74
  margin-left: -160px !important;
@@ -1,7 +1,9 @@
1
1
  .badge {
2
- display: inline-block;
3
- padding: @badge-padding;
4
- min-width: 10px;
2
+ display: inline-flex!important;
3
+ min-width: calc(var(--c8y-unit-base) * 2.25);
4
+ min-height: calc(var(--c8y-unit-base) * 2.25);
5
+ justify-content: center;
6
+ align-items: center;
5
7
  border-radius: @badge-border-radius;
6
8
  background-color: @badge-background-default;
7
9
  color: @badge-color-default;
@@ -11,32 +13,37 @@
11
13
  font-size: @badge-font-size;
12
14
  line-height: @badge-line-height;
13
15
  box-shadow: inset 0 0 0 1px @gray-50;
14
- vertical-align: middle;
16
+ padding: 0 0.4em;
15
17
 
16
18
  &.badge-success {
17
19
  background-color: @badge-background-success;
18
20
  color: @badge-color-success;
19
21
  box-shadow: inset 0 0 0 1px @badge-color-success;
20
22
  }
23
+
21
24
  &.badge-danger {
22
25
  background-color: @badge-background-danger;
23
26
  color: @badge-color-danger;
24
27
  box-shadow: inset 0 0 0 1px @badge-color-danger;
25
28
  }
29
+
26
30
  &.badge-warning {
27
31
  background-color: @badge-background-warning;
28
32
  color: @badge-color-warning;
29
33
  box-shadow: inset 0 0 0 1px @badge-color-warning;
30
34
  }
35
+
31
36
  &.badge-system {
32
37
  background-color: @badge-background-system;
33
38
  color: @badge-color-system;
34
39
  }
40
+
35
41
  &.badge-info {
36
42
  background-color: @badge-background-info;
37
43
  box-shadow: inset 0 0 0 1px @badge-color-info;
38
44
  color: @badge-color-info;
39
45
  }
46
+
40
47
  // Empty badges collapse automatically (not available in IE8)
41
48
  &:empty {
42
49
  display: none;
@@ -7,7 +7,9 @@
7
7
  overflow-y: auto;
8
8
  width: calc(100vw - 20px);
9
9
  background-color: @component-background-default;
10
- transition: transform @open-menu-time-type, width @open-menu-time-type;
10
+ transition:
11
+ transform @open-menu-time-type,
12
+ width @open-menu-time-type;
11
13
 
12
14
  .translate(0, 100vh);
13
15
 
@@ -26,9 +28,9 @@
26
28
  }
27
29
  }
28
30
 
29
- .drawerOpen{
30
- &:has(.bottom-drawer.has-backdrop){
31
- &:before{
31
+ .drawerOpen {
32
+ &:has(.bottom-drawer.has-backdrop) {
33
+ &:before {
32
34
  content: '';
33
35
  position: fixed;
34
36
  top: 0;
@@ -36,8 +38,7 @@
36
38
  bottom: 0;
37
39
  left: 0;
38
40
  z-index: @zindex-navbar-fixed + 4;
39
- background-color: @component-background-default;
40
- opacity: 0.5;
41
+ cursor: not-allowed;
41
42
  }
42
43
  }
43
44
  }
@@ -0,0 +1,21 @@
1
+ .boxed-label {
2
+ border: dashed 1px transparent;
3
+ padding: 8px 8px 4px;
4
+ border-radius: 2px;
5
+ position: relative;
6
+ &[data-label] {
7
+ border-color: var(--c8y-palette-gray-60);
8
+ &:before{
9
+ content: attr(data-label);
10
+ position: absolute;
11
+ top: -6px;
12
+ left: 8px;
13
+ font-size: var(--c8y-font-size-xs);
14
+ background-color: var(--c8y-root-component-background-default);
15
+ color: var(--c8y-root-component-color-text-muted);
16
+ padding: 0 4px;
17
+ font-style: italic;
18
+ border-radius: 2px;
19
+ }
20
+ }
21
+ }
@@ -48,7 +48,7 @@
48
48
  &:hover,
49
49
  &:focus {
50
50
  cursor: @cursor-disabled !important;
51
- opacity: var(--c8y-root-component-disabled-opacity);
51
+ opacity: var(--c8y-root-component-opacity-disabled);
52
52
  .box-shadow(none);
53
53
  }
54
54
  }
@@ -165,6 +165,9 @@
165
165
  // Alternate buttons
166
166
  .btn-default {
167
167
  .button-variant(c8y-btn-default);
168
+ .datetime-picker &{
169
+ --c8y-btn-default-background-default: var(--c8y-form-control-background-default);
170
+ }
168
171
  }
169
172
 
170
173
  .btn-primary {
@@ -390,6 +393,16 @@ label > .btn-clean {
390
393
  }
391
394
  }
392
395
 
396
+ label + .btn-help, label .btn-help {
397
+ display: inline;
398
+ align-self: center;
399
+ height: 14px;
400
+ width: 14px;
401
+ &::before {
402
+ inset: 0;
403
+ }
404
+ }
405
+
393
406
  // Button Sizes
394
407
  .btn-lg {
395
408
  .button-size(@btn-padding-large-vertical; @btn-padding-large-horizontal; @btn-font-size-large; @btn-line-height-large;
@@ -535,7 +548,7 @@ input[type='button'] {
535
548
  }
536
549
 
537
550
  &.active,
538
- .expanded &,
551
+ &[aria-expanded="true"],
539
552
  .panel-open & {
540
553
  color: @component-brand-primary;
541
554
  opacity: 1 !important;
@@ -876,17 +889,19 @@ input[type='button'] {
876
889
  }
877
890
 
878
891
  .table-data-grid-header-bulk-actions & {
879
- color: @palette-high;
880
-
892
+ color: @component-background-active;
893
+ border-radius: @btn-border-radius-base;
894
+
881
895
  &:focus {
882
896
  .c8y-focus-inset();
897
+ outline-color: @component-background-active;
883
898
  }
884
899
 
885
900
  &:hover,
886
901
  &:active {
887
902
  color: var(--c8y-brand-7);
888
903
  text-decoration: none;
889
-
904
+ outline: 1px solid @component-background-active;
890
905
  .c8y-icon,
891
906
  > [class^='dlt-c8y-icon-'],
892
907
  [class*=' dlt-c8y-icon-'] {
@@ -9,7 +9,7 @@
9
9
  margin: 0;
10
10
  z-index: @zindex-action-bar;
11
11
  max-width: 100vw;
12
- box-shadow: @header-shadow;
12
+ box-shadow: var(--c8y-elevation-md-bottom);
13
13
 
14
14
  @media (max-width: @screen-xs-max) {
15
15
  transition: top 0.5s ease;
@@ -122,7 +122,7 @@ body:not(:has(.app-main-header)) {
122
122
 
123
123
  .navbar-nav {
124
124
  .dropdown-menu {
125
- max-width: 306px;
125
+ max-width: 330px;
126
126
 
127
127
  &.uib-datepicker-popup {
128
128
  width: 280px;
@@ -3,6 +3,9 @@ c8y-asset-selector-miller {
3
3
  position: relative;
4
4
  height: 100%;
5
5
  background: @component-background-default;
6
+ .dropdown-menu &{
7
+ height: 312px;
8
+ }
6
9
  }
7
10
 
8
11
  .miller-view-wrapper {
@@ -63,7 +63,7 @@ c8y-asset-selector{
63
63
  height: 32px;
64
64
  width: 32px;
65
65
  opacity: 1;
66
- background: @component-background-default;
66
+
67
67
  &:focus {
68
68
  outline: 2px solid @component-brand-primary;
69
69
  outline-offset: -2px;
@@ -80,6 +80,12 @@ c8y-asset-selector{
80
80
  transform: rotate(90deg);
81
81
  }
82
82
  }
83
+
84
+ .dropdown-menu &{
85
+ .collapse-btn{
86
+ background-color: var(--c8y-dropdown-background-default);
87
+ }
88
+ }
83
89
  }
84
90
 
85
91
 
@@ -145,3 +151,8 @@ c8y-asset-selector c8y-search-input .input-group {
145
151
  }
146
152
  }
147
153
  }
154
+
155
+ c8y-widget-asset-selector .card{
156
+ background: inherit;
157
+ margin-bottom: 0;
158
+ }
@@ -80,7 +80,7 @@ c8y-item-selector {
80
80
  .multiselect-item {
81
81
  display: flex;
82
82
  padding: 8px 12px;
83
- border-bottom: 1px solid @component-border-color;
83
+ border-bottom: 1px solid var(--c8y-dropdown-border-color, @component-border-color);
84
84
  background-color: var(--c8y-dropdown-background-default, @component-background-default);
85
85
  label.c8y-checkbox.input-sm {
86
86
  flex-grow: 1;
@@ -90,6 +90,7 @@ c8y-item-selector {
90
90
  line-height: 20px;
91
91
  padding: 0;
92
92
  align-items: center;
93
+ display: flex;
93
94
  }
94
95
  .radio,
95
96
  .checkbox {
@@ -18,7 +18,7 @@ c8y-countdown-interval {
18
18
  display: flex !important;
19
19
  align-items: center;
20
20
  justify-content: center;
21
- background: @component-background-default;
21
+ background: @form-control-background-default;
22
22
  min-width: 30px;
23
23
  min-height: 30px;
24
24
  svg {
@@ -56,7 +56,7 @@ c8y-countdown-interval {
56
56
  min-height: @form-control-height-base;
57
57
  min-width: calc(@form-control-height-base + @margin-base);
58
58
  padding: 0 4px;
59
- background: @component-background-default;
59
+ background: @form-control-background-default;
60
60
  cursor: pointer;
61
61
  transition: var(--c8y-btn-transition-default);
62
62
  .time-elapsed {
@@ -217,10 +217,14 @@ body .dashboard-preview-slot {
217
217
  right: 0;
218
218
  bottom: 0;
219
219
  left: 0;
220
- margin: 15px !important;
221
- padding-bottom: 35%;
220
+ margin: 0!important;
222
221
  }
223
222
  }
223
+ body fieldset > .dashboard-preview-slot {
224
+ border: 0;
225
+ padding: 0;
226
+ margin: 0!important;
227
+ }
224
228
 
225
229
  // title hidden
226
230
  .card.card-dashboard {
@@ -373,4 +377,7 @@ body .dashboard-preview-slot {
373
377
  position: static;
374
378
  margin: 0 4px 0 -4px;
375
379
  }
380
+ .tag--info &{
381
+ color: inherit;
382
+ }
376
383
  }
@@ -22,6 +22,10 @@
22
22
  .btn-primary();
23
23
  }
24
24
 
25
+ p{
26
+ margin-bottom: @margin-base;
27
+ }
28
+
25
29
  .dashboard.dashboard-theme-branded & {
26
30
  .btn-primary {
27
31
  .btn-default();
@@ -982,18 +982,19 @@
982
982
 
983
983
 
984
984
  .circle-icon-wrapper{
985
+ --c8y-icon-stroke-color: @text-color;
985
986
  border-radius: 50%;
986
987
  color: white;
987
988
  width: 24px;
988
989
  aspect-ratio: 1/1;
989
990
  text-align: center;
990
- --c8y-icon-stroke-color: @text-color;
991
991
  padding-bottom: 2px;
992
992
  display: inline-flex;
993
993
  align-items: center;
994
994
  justify-content: center;
995
995
  > i{
996
996
  font-size: 16px;
997
+ color: @component-background-default;
997
998
  }
998
999
  &--medium{
999
1000
  width: 20px;
@@ -1020,7 +1021,7 @@
1020
1021
  display: inline-flex;
1021
1022
  border-radius: 50%;
1022
1023
  background-color: @brand-primary;
1023
- color: @palette-high;
1024
+ color: @gray-100;
1024
1025
  font-size: 24px;
1025
1026
  align-items: center;
1026
1027
  justify-content: center;
@@ -1040,6 +1041,10 @@
1040
1041
  &.dot-info{
1041
1042
  background-color: @status-info;
1042
1043
  }
1044
+
1045
+ &.bg-primary-light{
1046
+ color: var(--c8y-palette-low);
1047
+ }
1043
1048
  &.small {
1044
1049
  font-size: 14px;
1045
1050
  width: 20px;
@@ -56,7 +56,7 @@
56
56
  }
57
57
  bs-dropdown-container &, c8y-typeahead .dropdown &, .c8y-select-v2 .dropdown & {
58
58
  &.active,
59
- &:active {
59
+ &.selectable:active {
60
60
  .c8y-list__item__body {
61
61
 
62
62
  &:after{
@@ -74,7 +74,7 @@
74
74
  * don't get that class. E.g. the "No results found" item.
75
75
  **/
76
76
  &.selectable:hover:not(.active), &.highlighted {
77
- background-color: @brand-80;
77
+ background-color: @component-background-hover;
78
78
  }
79
79
 
80
80
  &:focus {
@@ -122,6 +122,11 @@
122
122
  padding-right: 0 !important;
123
123
  }
124
124
  }
125
+ &--overflow-visible {
126
+ .c8y-list__item__body {
127
+ overflow: visible!important;
128
+ }
129
+ }
125
130
 
126
131
  &.has-error {
127
132
  box-shadow: inset 0 -2px 0 @alert-danger-border;
@@ -154,6 +159,7 @@
154
159
 
155
160
  // hide collapse-btn when displaying in a modal for instance
156
161
  &--no-expand {
162
+ > div > .c8y-list__item__block > .c8y-list__item__actions >
157
163
  .collapse-btn {
158
164
  display: none;
159
165
  pointer-events: none;
@@ -181,6 +187,7 @@
181
187
  }
182
188
  }
183
189
 
190
+
184
191
  &--pulse {
185
192
  .component-pulse();
186
193
  }
@@ -470,6 +477,9 @@ c8y-li-drag-handle, c8y-list-item-drag-handle {
470
477
  @media (min-width: @screen-md-min) {
471
478
  padding: @component-padding calc(@margin-48 + 6px) 2rem;
472
479
  }
480
+ .full-w-collapse &{
481
+ padding: @component-padding;
482
+ }
473
483
  }
474
484
 
475
485
  // handling sticky elements
@@ -482,6 +492,19 @@ c8y-li-drag-handle, c8y-list-item-drag-handle {
482
492
  }
483
493
  }
484
494
 
495
+ .c8y-list__item--sticky-top{
496
+ .c8y-list__item__block{
497
+ position: sticky;
498
+ top: 0;
499
+ z-index: 10;
500
+ background-color: inherit;
501
+ }
502
+ .c8y-list__item__collapse--container{
503
+ position: relative;
504
+ z-index: 8;
505
+ }
506
+ }
507
+
485
508
  // TIMELINE LIST
486
509
  .c8y-list--timeline {
487
510
  box-shadow: none;
@@ -48,8 +48,8 @@
48
48
  text-decoration: none;
49
49
  }
50
50
  .c8y-pulse.inactive {
51
- border: 1px solid @component-border-color;
52
- background-color: @component-border-color;
51
+ border: 1px solid @component-color-disabled;
52
+ background-color: @component-color-disabled;
53
53
  animation: none;
54
54
 
55
55
  .transition(border 0.25s ease);
@@ -35,7 +35,7 @@
35
35
  .transition(transform @open-menu-time-type);
36
36
  --sticky-top-margin: 80px;
37
37
 
38
- --c8y-text-muted: var(--right-drawer-text-muted, var(--c8y-right-drawer-text-muted));
38
+ --c8y-text-muted: var(--right-drawer-text-muted, var(--c8y-right-drawer-text-color-muted));
39
39
 
40
40
  --c8y-form-label-color: @drawer-color;
41
41