@c8y/style 1021.81.0 → 1022.4.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/branding-login.less +11 -0
- package/img/alarms/alarm-list-widget.png +0 -0
- package/img/dashboard-details-advanced-tab.png +0 -0
- package/img/data-points-table-widget.png +0 -0
- package/img/html-widget-pr.png +0 -0
- package/img/html-widget-preview.png +0 -0
- package/img/info-gauge-widget-pr.png +0 -0
- package/img/linear-gauge-widget-pr.png +0 -0
- package/img/map-widget-pr.png +0 -0
- package/img/markdown-widget.png +0 -0
- package/img/quick-links-widget.png +0 -0
- package/login.less +3 -0
- package/markdown-files/dashboard-details-import-export-tab.md +84 -0
- package/markdown-files/html-widget-preview.md +58 -0
- package/package.json +1 -1
- package/styles/_alerts.less +2 -1
- package/styles/_app-switcher.less +1 -0
- package/styles/_badges.less +11 -4
- package/styles/_bottom-drawer.less +7 -6
- package/styles/_boxed-label.less +21 -0
- package/styles/_buttons.less +20 -5
- package/styles/_c8y-action-bar.less +2 -2
- package/styles/_c8y-asset-selector-miller.less +3 -0
- package/styles/_c8y-asset-selector.less +12 -1
- package/styles/_c8y-child-assets-selector.less +2 -1
- package/styles/_c8y-cookie-banner.less +8 -0
- package/styles/_c8y-countdown-interval.less +2 -2
- package/styles/_c8y-dashboard-style.less +9 -2
- package/styles/_c8y-empty-state.less +4 -0
- package/styles/_c8y-icons.less +7 -2
- package/styles/_c8y-list-group.less +25 -2
- package/styles/_c8y-pulse.less +2 -2
- package/styles/_c8y-right-drawer.less +1 -1
- package/styles/_c8y-selectize.less +5 -5
- package/styles/_c8y-utils.less +5 -3
- package/styles/_card.less +1 -2
- package/styles/_cards-layout.less +13 -12
- package/styles/_code.less +14 -6
- package/styles/_dashboard-widgets.less +4 -1
- package/styles/_data-grid.less +35 -32
- package/styles/_dropdowns.less +131 -26
- package/styles/_forms.less +1 -12
- package/styles/_input-groups.less +19 -5
- package/styles/_layouts.less +24 -5
- package/styles/_list-group.less +0 -3
- package/styles/_main-header.less +3 -1
- package/styles/_markdown-content.less +5 -0
- package/styles/_modals.less +11 -1
- package/styles/_navbar.less +0 -1
- package/styles/_navigator.less +2 -3
- package/styles/_page-tabs.less +1 -0
- package/styles/_popovers.less +1 -2
- package/styles/_quick-links-widget.less +38 -0
- package/styles/_smartrules.less +7 -6
- package/styles/_spinner-snake.less +2 -1
- package/styles/_split-view.less +7 -1
- package/styles/_static-assets-file-picker.less +1 -1
- package/styles/_tabs.less +10 -4
- package/styles/_tag.less +5 -0
- package/styles/index.less +3 -0
- package/styles/login-app.less +34 -0
- package/styles/mixins/c8y-scrollbar.less +1 -4
- package/styles/utilities/_icon-utils.less +1 -1
- package/styles/utilities/_position.less +61 -0
- package/styles/utilities.less +3 -0
- package/styles/welcome-widget.less +2 -2
- package/variables/_alert-vars.less +1 -1
- package/variables/_badge-vars.less +1 -1
- package/variables/_brand-vars.less +2 -0
- package/variables/_color-vars.less +7 -3
- package/variables/_components-vars.less +1 -1
- package/variables/dashboard-themes/_branded-dashboard.less +2 -2
- package/variables/login-vars.less +48 -0
- package/variables/tokens/c8y-design-tokens-dark.less +314 -273
- package/variables/tokens/c8y-design-tokens.less +567 -451
- package/img/applications-widget-pr.png +0 -0
- package/img/cockpit-welcome-image.svg +0 -571
- package/img/dm-welcome-widget-pr.png +0 -0
- package/img/help-and-service-widget-pr.png +0 -0
- package/img/logo-white.svg +0 -69
- package/img/logo.svg +0 -136
- /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
|
package/img/map-widget-pr.png
CHANGED
|
Binary file
|
package/img/markdown-widget.png
CHANGED
|
Binary file
|
|
Binary file
|
package/login.less
ADDED
|
@@ -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
|
+
|
|
19
|
+
|
|
20
|
+
#### 📤 Advanced Dashboard Export
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
Export dashboard configurations with enhanced control and flexibility.
|
|
25
|
+
|
|
26
|
+
|
|
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
|
+
|
|
36
|
+
|
|
37
|
+
#### 📥 Seamless Dashboard Import
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
Effortlessly restore or transfer dashboard configurations across environments.
|
|
42
|
+
|
|
43
|
+
|
|
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
|
+
|
|
53
|
+
|
|
54
|
+
#### 🔧 Integrated JSON Editor
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
Fine-tune your dashboard configurations with the built-in code editor.
|
|
59
|
+
|
|
60
|
+
|
|
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
|
+
|
|
70
|
+
|
|
71
|
+
### 💡 Why This Feature Matters
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
The Dashboard Export & Import functionality delivers:
|
|
76
|
+
|
|
77
|
+
|
|
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
|
+
|
|
2
|
+
|
|
3
|
+
### New HTML widget
|
|
4
|
+
|
|
5
|
+
|
|
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
|
+
|
|
14
|
+
|
|
15
|
+
### Key features
|
|
16
|
+
|
|
17
|
+
|
|
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
|
+
|
|
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
|
+
|
|
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
|
+
|
|
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
|
+
|
|
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
|
+
|
|
55
|
+
|
|
56
|
+
|
|
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
package/styles/_alerts.less
CHANGED
|
@@ -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:
|
|
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
|
package/styles/_badges.less
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
.badge {
|
|
2
|
-
display: inline-
|
|
3
|
-
|
|
4
|
-
min-
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
+
}
|
package/styles/_buttons.less
CHANGED
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
&:hover,
|
|
49
49
|
&:focus {
|
|
50
50
|
cursor: @cursor-disabled !important;
|
|
51
|
-
opacity: var(--c8y-root-component-disabled
|
|
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
|
-
|
|
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: @
|
|
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:
|
|
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:
|
|
125
|
+
max-width: 330px;
|
|
126
126
|
|
|
127
127
|
&.uib-datepicker-popup {
|
|
128
128
|
width: 280px;
|
|
@@ -63,7 +63,7 @@ c8y-asset-selector{
|
|
|
63
63
|
height: 32px;
|
|
64
64
|
width: 32px;
|
|
65
65
|
opacity: 1;
|
|
66
|
-
|
|
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: @
|
|
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: @
|
|
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:
|
|
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
|
}
|
package/styles/_c8y-icons.less
CHANGED
|
@@ -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: @
|
|
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
|
-
|
|
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: @
|
|
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;
|
package/styles/_c8y-pulse.less
CHANGED
|
@@ -48,8 +48,8 @@
|
|
|
48
48
|
text-decoration: none;
|
|
49
49
|
}
|
|
50
50
|
.c8y-pulse.inactive {
|
|
51
|
-
border: 1px solid @component-
|
|
52
|
-
background-color: @component-
|
|
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
|
|