@c8y/style 1024.13.0 → 1024.14.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/README.md +30 -259
- package/package.json +2 -2
- package/variables/dashboard-themes/_branded-dashboard.scss +290 -296
- package/helper-scripts/README-variable-imports.md +0 -155
- package/helper-scripts/convert-scss-to-less.sh +0 -527
- package/helper-scripts/convert-stroke-icons-to-less.js +0 -115
- package/helper-scripts/remove-redundant-variable-imports.sh +0 -80
- package/helper-scripts/scss-to-less-skip +0 -20
- package/helper-scripts/sync-scss-to-less.sh +0 -75
- package/markdown-files/MANUAL-SYNC-FILES.md +0 -56
- package/styles/_login-app.less +0 -34
- package/styles/_mixins.less +0 -47
- package/styles/_utilities.less +0 -21
- package/styles/animations/_animate.less +0 -653
- package/styles/animations/_realtime-animation-list.less +0 -20
- package/styles/components/_markdown-content.less +0 -95
- package/styles/components/application-and-system/_c8y-cookie-banner.less +0 -36
- package/styles/components/data-display-and-visualization/_boxed-label.less +0 -45
- package/styles/components/data-display-and-visualization/_c8y-datapoint-pill.less +0 -104
- package/styles/components/data-display-and-visualization/_status.less +0 -105
- package/styles/components/data-display-and-visualization/lists/_c8y-data-point-list.less +0 -31
- package/styles/components/data-display-and-visualization/tables/_responsive-grid-table.less +0 -189
- package/styles/components/data-input/_c8y-ai-chat.less +0 -258
- package/styles/components/data-input/_static-assets-file-picker.less +0 -22
- package/styles/components/navigation-and-layout/_c8y-scrollbar.less +0 -118
- package/styles/components/navigation-and-layout/navigation/_breadcrumbs.less +0 -60
- package/styles/components/status-feedback-and-notifications/_c8y-message-banner.less +0 -46
- package/styles/dashboard/_c8y-dashboard-style.less +0 -565
- package/styles/dashboard/_dashboard-widgets.less +0 -46
- package/styles/icons/_dlt-c8y-icons-stroke.less +0 -7260
- package/styles/icons/_marker-icons.less +0 -32
- package/styles/layout/_bottom-drawer.less +0 -70
- package/styles/layout/_group-info.less +0 -26
- package/styles/mixins/_gradients.less +0 -117
- package/styles/mixins/_icon-base.less +0 -29
- package/styles/mixins/_vendor-prefixes.less +0 -131
- package/variables/_color-defaults.less +0 -110
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* Markdown Content - Styling for markdown rendered content
|
|
4
|
-
*
|
|
5
|
-
* Note: Uses rem units for vertical spacing to maintain consistent rhythm based on root font size.
|
|
6
|
-
*
|
|
7
|
-
* Intentionally hardcoded values:
|
|
8
|
-
* - Component-specific dimensions (800px): Max content width for readability
|
|
9
|
-
* - Rem values (1rem, 2rem): Vertical rhythm using rem units (not px tokens)
|
|
10
|
-
* - Border widths (1px): Standard borders
|
|
11
|
-
* - Percentages (100%): Layout
|
|
12
|
-
* - Opacity values (0.65): Visual effects for dark theme
|
|
13
|
-
* - Font-weight values (500, 600): Typography weights
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
.markdown-content {
|
|
17
|
-
h1,
|
|
18
|
-
h2,
|
|
19
|
-
h3,
|
|
20
|
-
h4,
|
|
21
|
-
h5,
|
|
22
|
-
p,
|
|
23
|
-
ul,
|
|
24
|
-
ol {
|
|
25
|
-
margin-bottom: 1rem;
|
|
26
|
-
max-width: 800px;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
h1,
|
|
30
|
-
h2,
|
|
31
|
-
h3,
|
|
32
|
-
h4,
|
|
33
|
-
h5 {
|
|
34
|
-
margin-bottom: 2rem;
|
|
35
|
-
font-weight: 500;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
h2 {
|
|
39
|
-
margin: 2rem 0;
|
|
40
|
-
padding: 2rem 0;
|
|
41
|
-
border-top: 1px solid @gray-50;
|
|
42
|
-
border-bottom: 1px dotted @gray-50;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
&--to-h3 {
|
|
46
|
-
h1,
|
|
47
|
-
h2 {
|
|
48
|
-
margin: 0 0 1rem;
|
|
49
|
-
padding: 2rem 0;
|
|
50
|
-
border-top: 1px dotted @gray-50;
|
|
51
|
-
font-weight: 600;
|
|
52
|
-
font-size: var(--c8y-font-size-h3);
|
|
53
|
-
|
|
54
|
-
&:first-child {
|
|
55
|
-
border-top: 0;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
&:not(:first-child) {
|
|
59
|
-
margin-top: 2rem;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
img {
|
|
65
|
-
max-width: 100%;
|
|
66
|
-
height: auto;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
.c8y-dark-theme & {
|
|
70
|
-
img {
|
|
71
|
-
opacity: 0.65;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
table{
|
|
76
|
-
&:extend(.table);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
// ignore max width when used in the widget
|
|
81
|
-
c8y-markdown-widget-view,
|
|
82
|
-
c8y-widget-preview{
|
|
83
|
-
.markdown-content {
|
|
84
|
-
h1,
|
|
85
|
-
h2,
|
|
86
|
-
h3,
|
|
87
|
-
h4,
|
|
88
|
-
h5,
|
|
89
|
-
p,
|
|
90
|
-
ul,
|
|
91
|
-
ol {
|
|
92
|
-
max-width: unset;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* c8y cookie uanner - Component styles
|
|
5
|
-
*
|
|
6
|
-
* Note: Uses @size-* tokens for spacing where applicable.
|
|
7
|
-
*
|
|
8
|
-
* Intentionally hardcoded values:
|
|
9
|
-
* - Component-specific dimensions: Fixed sizes for component layout
|
|
10
|
-
* - Off-grid spacing: Component-specific positioning
|
|
11
|
-
* - Border widths (1px, 2px, 3px): Standard borders
|
|
12
|
-
* - Font-sizes: Typography
|
|
13
|
-
* - Percentages: Layout
|
|
14
|
-
*/
|
|
15
|
-
.c8y-cookie-banner {
|
|
16
|
-
position: fixed;
|
|
17
|
-
top: auto;
|
|
18
|
-
right: 0;
|
|
19
|
-
bottom: 0;
|
|
20
|
-
left: 0;
|
|
21
|
-
z-index: @zindex-modal - 3;
|
|
22
|
-
background-color: rgba(@black, 0.8);
|
|
23
|
-
color: white;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.cookie-banner-content {
|
|
27
|
-
column-width: 26rem;
|
|
28
|
-
|
|
29
|
-
a{
|
|
30
|
-
color: inherit;
|
|
31
|
-
text-decoration: underline;
|
|
32
|
-
&:hover {
|
|
33
|
-
color: inherit;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Boxed Label - Component styles for creating dashed border containers with optional floating labels
|
|
5
|
-
*
|
|
6
|
-
* Usage:
|
|
7
|
-
* - Single location: dashboard-details-advanced-tab/assign-widget-assets/assign-widget-asset-modal.component.html
|
|
8
|
-
* - 6 instances in the assign widget assets modal
|
|
9
|
-
* - Used for: widget titles, source sections, device displays, empty states, and action containers
|
|
10
|
-
*
|
|
11
|
-
* Features:
|
|
12
|
-
* - Creates a dashed border box with padding
|
|
13
|
-
* - Supports [data-label] attribute to show a floating label (like fieldset legend)
|
|
14
|
-
* - Label appears as italic text at the top-left of the box
|
|
15
|
-
*
|
|
16
|
-
* Note: Uses @size-* tokens for spacing where applicable.
|
|
17
|
-
*
|
|
18
|
-
* Intentionally hardcoded values:
|
|
19
|
-
* - Component-specific dimensions: Fixed sizes for component layout
|
|
20
|
-
* - Off-grid spacing: Component-specific positioning (-6px top, 8px left for label)
|
|
21
|
-
* - Border widths (1px): Standard dashed border
|
|
22
|
-
* - Font-sizes: Typography (xs for label)
|
|
23
|
-
* - Border-radius (2px): Subtle rounding
|
|
24
|
-
*/
|
|
25
|
-
.boxed-label {
|
|
26
|
-
border: dashed 1px transparent;
|
|
27
|
-
padding: @size-8 @size-8 @size-4;
|
|
28
|
-
border-radius: 2px;
|
|
29
|
-
position: relative;
|
|
30
|
-
&[data-label] {
|
|
31
|
-
border-color: var(--c8y-palette-gray-60);
|
|
32
|
-
&:before{
|
|
33
|
-
content: attr(data-label);
|
|
34
|
-
position: absolute;
|
|
35
|
-
top: -6px;
|
|
36
|
-
left: 8px;
|
|
37
|
-
font-size: var(--c8y-font-size-xs);
|
|
38
|
-
background-color: var(--c8y-root-component-background-default);
|
|
39
|
-
color: var(--c8y-root-component-color-text-muted);
|
|
40
|
-
padding: 0 4px;
|
|
41
|
-
font-style: italic;
|
|
42
|
-
border-radius: 2px;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
@import "../../core/buttons/_buttons.less";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* c8y datapoint pill - Component styles
|
|
7
|
-
*
|
|
8
|
-
* Note: Uses @size-* tokens for spacing where applicable.
|
|
9
|
-
*
|
|
10
|
-
* Intentionally hardcoded values:
|
|
11
|
-
* - Component-specific dimensions: Fixed sizes for component layout
|
|
12
|
-
* - Off-grid spacing: Component-specific positioning
|
|
13
|
-
* - Border widths (1px, 2px, 3px): Standard borders
|
|
14
|
-
* - Font-sizes: Typography
|
|
15
|
-
* - Percentages: Layout
|
|
16
|
-
*/
|
|
17
|
-
.c8y-datapoint-pill, .c8y-alarm-pill, .c8y-event-pill {
|
|
18
|
-
display: flex;
|
|
19
|
-
overflow: hidden;
|
|
20
|
-
align-items: center;
|
|
21
|
-
min-height: @size-24;
|
|
22
|
-
max-width: 100%;
|
|
23
|
-
border-radius: @size-16;
|
|
24
|
-
background-color: @component-background-default;
|
|
25
|
-
box-shadow: none;
|
|
26
|
-
border: 1px solid @component-color-text-muted;
|
|
27
|
-
font-size: @font-size-small;
|
|
28
|
-
line-height: 1;
|
|
29
|
-
&__btn {
|
|
30
|
-
.btn-clean();
|
|
31
|
-
align-self: stretch;
|
|
32
|
-
padding: @size-4 @size-4 @size-4 @size-base;
|
|
33
|
-
border-right: 1px solid @component-color-text-muted;
|
|
34
|
-
color: @text-muted;
|
|
35
|
-
line-height: 1;
|
|
36
|
-
}
|
|
37
|
-
&__label {
|
|
38
|
-
display: flex;
|
|
39
|
-
overflow: hidden;
|
|
40
|
-
align-items: center;
|
|
41
|
-
padding: @size-4 calc(@size-base + @size-4) @size-4 @size-4;
|
|
42
|
-
line-height: 1;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.c8y-datapoint-pill{
|
|
47
|
-
&__btn {
|
|
48
|
-
&, &:not(.btn){
|
|
49
|
-
padding: @size-4;
|
|
50
|
-
&:first-child{
|
|
51
|
-
border-bottom-left-radius: @size-16!important;
|
|
52
|
-
border-top-left-radius: @size-16!important;
|
|
53
|
-
}
|
|
54
|
-
+ .c8y-datapoint-pill__btn{
|
|
55
|
-
border-right: 0;
|
|
56
|
-
padding-right: @size-base;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.c8y-alarm-pill {
|
|
63
|
-
border-radius: @size-4;
|
|
64
|
-
&__btn {
|
|
65
|
-
&, &:not(.btn){
|
|
66
|
-
padding: @size-4!important;
|
|
67
|
-
+ .c8y-alarm-pill__btn{
|
|
68
|
-
border-right: 0;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
.c8y-event-pill {
|
|
75
|
-
border-radius: 2px;
|
|
76
|
-
border: 1px dotted @component-color-text-muted;
|
|
77
|
-
&__btn {
|
|
78
|
-
&, &:not(.btn){
|
|
79
|
-
border-right: 1px dotted @component-color-text-muted;
|
|
80
|
-
padding: @size-4 !important;
|
|
81
|
-
+ .c8y-event-pill__btn{
|
|
82
|
-
border-right: 0;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
.c8y-datapoint-pill, .c8y-alarm-pill, .c8y-event-pill{
|
|
88
|
-
&.pill--sm{
|
|
89
|
-
.c8y-datapoint-pill, .c8y-alarm-pill, .c8y-event-pill {
|
|
90
|
-
&__btn {
|
|
91
|
-
&, &:not(.btn){
|
|
92
|
-
font-size: 11px;
|
|
93
|
-
padding: 1px @size-8 1px @size-4!important;
|
|
94
|
-
+ .c8y-datapoint-pill__btn,
|
|
95
|
-
+ .c8y-alarm-pill__btn,
|
|
96
|
-
+ .c8y-event-pill__btn {
|
|
97
|
-
border-right: 0;
|
|
98
|
-
padding-right: @size-base;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* status - Component styles
|
|
5
|
-
*
|
|
6
|
-
* Note: Uses @size-* tokens for spacing where applicable.
|
|
7
|
-
*
|
|
8
|
-
* Intentionally hardcoded values:
|
|
9
|
-
* - Component-specific dimensions: Fixed sizes for component layout
|
|
10
|
-
* - Off-grid spacing: Component-specific positioning
|
|
11
|
-
* - Border widths (1px, 2px, 3px): Standard borders
|
|
12
|
-
* - Font-sizes: Typography
|
|
13
|
-
* - Percentages: Layout
|
|
14
|
-
*/
|
|
15
|
-
.statusOk {
|
|
16
|
-
color: var(--palette-status-success-dark, var(--c8y-palette-status-success-dark));
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.statusNok {
|
|
20
|
-
color: var(--palette-status-danger, var(--c8y-palette-status-danger));
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
.statusAlert {
|
|
24
|
-
color: var(--palette-status-warning, var(--c8y-palette-status-warning));
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.statusUnknown {
|
|
28
|
-
color: @gray-40;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
.sendStatus,
|
|
32
|
-
.pushStatus {
|
|
33
|
-
fill: url(#smallGradient);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.status.warning {
|
|
37
|
-
color: var(--palette-status-info, var(--c8y-palette-status-info));
|
|
38
|
-
}
|
|
39
|
-
.color.warning {
|
|
40
|
-
color: var(--palette-status-warning, var(--c8y-palette-status-warning));
|
|
41
|
-
}
|
|
42
|
-
.color.minor {
|
|
43
|
-
color: var(--palette-status-warning-high, var(--c8y-palette-status-warning-high));
|
|
44
|
-
}
|
|
45
|
-
.status.minor {
|
|
46
|
-
--c8y-icon-stroke-color: var(--c8y-palette-orange-10);
|
|
47
|
-
color: var(--palette-status-warning-high, var(--c8y-palette-status-warning-high));
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
.status.major {
|
|
51
|
-
color: var(--palette-status-warning, var(--c8y-palette-status-warning));
|
|
52
|
-
}
|
|
53
|
-
.color.major {
|
|
54
|
-
color: var(--palette-status-warning, var(--c8y-palette-status-warning));
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.status.critical {
|
|
58
|
-
color: var(--palette-status-danger, var(--c8y-palette-status-danger));
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
.color.critical {
|
|
62
|
-
color: var(--palette-status-danger, var(--c8y-palette-status-danger));
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// for svg
|
|
66
|
-
path.statusUnknown {
|
|
67
|
-
fill: @gray-50;
|
|
68
|
-
&.pushStatus {
|
|
69
|
-
fill: @gray-40;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
path.statusOk {
|
|
74
|
-
fill: @status-success;
|
|
75
|
-
&.pushStatus {
|
|
76
|
-
fill: @status-success-dark;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
path.statusNok {
|
|
81
|
-
fill: @status-danger;
|
|
82
|
-
&.pushStatus {
|
|
83
|
-
fill: @status-danger-dark;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
.fill-warning {
|
|
88
|
-
fill: @status-warning;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
.alarm-icons {
|
|
92
|
-
position: relative;
|
|
93
|
-
font-size: @size-20;
|
|
94
|
-
width: 28px;
|
|
95
|
-
.btn-clean.severity {
|
|
96
|
-
position: absolute !important;
|
|
97
|
-
top: 0;
|
|
98
|
-
left: 50%;
|
|
99
|
-
z-index: 10;
|
|
100
|
-
}
|
|
101
|
-
.btn-clean.status {
|
|
102
|
-
margin-top: 8px;
|
|
103
|
-
font-size: @size-24;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* C8Y Data Point List - Data point selection list component
|
|
4
|
-
*
|
|
5
|
-
* Note: Uses @size-* tokens for spacing and @component-padding.
|
|
6
|
-
*
|
|
7
|
-
* Intentionally hardcoded values:
|
|
8
|
-
* - None - all values use design tokens
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
// Removed unused deprecated component class - verified 0 usages: .c8y-data-point-list
|
|
12
|
-
|
|
13
|
-
c8y-datapoint-selection-list,
|
|
14
|
-
c8y-alarm-event-selection-list {
|
|
15
|
-
|
|
16
|
-
.c8y-list__item__actions {
|
|
17
|
-
align-self: center;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
.c8y-list__item__collapse--container {
|
|
21
|
-
padding: @component-padding;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// Removed modal selector for .c8y-data-point-list (class is unused)
|
|
26
|
-
|
|
27
|
-
// c8y-datapoint-selector-list-item {
|
|
28
|
-
// .c8y-list__item__actions{
|
|
29
|
-
// padding-top: 10px!important;
|
|
30
|
-
// }
|
|
31
|
-
// }
|
|
@@ -1,189 +0,0 @@
|
|
|
1
|
-
// Base grid + column span utilities
|
|
2
|
-
.responsive-grid-table {
|
|
3
|
-
display: grid;
|
|
4
|
-
grid-template-columns: repeat(12, 1fr);
|
|
5
|
-
background: inherit;
|
|
6
|
-
|
|
7
|
-
&-wrapper--striped{
|
|
8
|
-
.responsive-grid-table:nth-child(even) {
|
|
9
|
-
background: @component-background-odd;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
&__header{
|
|
14
|
-
box-shadow: inset 0 -1px 0 var(--c8y-component-border-color, var(--c8y-root-component-border-color));
|
|
15
|
-
|
|
16
|
-
> [class^="col-"],
|
|
17
|
-
> [class*=" col-"] {
|
|
18
|
-
padding: calc(@size-base + @size-10) @component-padding;
|
|
19
|
-
color: var(--c8y-component-form-label-color, var(--c8y-form-label-color));
|
|
20
|
-
vertical-align: bottom;
|
|
21
|
-
text-transform: uppercase;
|
|
22
|
-
font-size: var(--c8y-font-size-small);
|
|
23
|
-
font-weight: bold;
|
|
24
|
-
line-height: calc(var(--c8y-unit-base) * 2.5);
|
|
25
|
-
}
|
|
26
|
-
.inner-scroll &{
|
|
27
|
-
position: sticky;
|
|
28
|
-
top: 0;
|
|
29
|
-
z-index: 1;
|
|
30
|
-
background: var(--c8y-page-sticky-header-background-default);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
&__body{
|
|
34
|
-
> [class^="col-"],
|
|
35
|
-
> [class*=" col-"] {
|
|
36
|
-
display: flex;
|
|
37
|
-
align-items: center;
|
|
38
|
-
padding-top: calc(@size-base + @size-10);
|
|
39
|
-
padding-bottom: calc(@size-base + @size-10);
|
|
40
|
-
&.align-right {
|
|
41
|
-
justify-content: flex-end;
|
|
42
|
-
text-align: right;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
&--separator{
|
|
47
|
-
box-shadow: inset 0 -1px 0 var(--c8y-component-border-color, var(--c8y-root-component-border-color));
|
|
48
|
-
&:last-child {
|
|
49
|
-
box-shadow: none;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
// Padding modifiers — -x (horizontal), -y (vertical), shorthand (both)
|
|
53
|
-
&--padded-x {
|
|
54
|
-
&.responsive-grid-table__header > [class^="col-"],
|
|
55
|
-
&.responsive-grid-table__header > [class*=" col-"],
|
|
56
|
-
&.responsive-grid-table__body > [class^="col-"],
|
|
57
|
-
&.responsive-grid-table__body > [class*=" col-"] {
|
|
58
|
-
padding-left: @component-padding;
|
|
59
|
-
padding-right: @component-padding;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
&--padded-y {
|
|
63
|
-
&.responsive-grid-table__header > [class^="col-"],
|
|
64
|
-
&.responsive-grid-table__header > [class*=" col-"],
|
|
65
|
-
&.responsive-grid-table__body > [class^="col-"],
|
|
66
|
-
&.responsive-grid-table__body > [class*=" col-"] {
|
|
67
|
-
padding-top: @component-padding;
|
|
68
|
-
padding-bottom: @component-padding;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
&--padded {
|
|
72
|
-
&.responsive-grid-table__header > [class^="col-"],
|
|
73
|
-
&.responsive-grid-table__header > [class*=" col-"],
|
|
74
|
-
&.responsive-grid-table__body > [class^="col-"],
|
|
75
|
-
&.responsive-grid-table__body > [class*=" col-"] {
|
|
76
|
-
padding-left: @component-padding;
|
|
77
|
-
padding-right: @component-padding;
|
|
78
|
-
padding-top: @component-padding;
|
|
79
|
-
padding-bottom: @component-padding;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
// Condensed modifiers — -x (horizontal), -y (vertical + font-size), shorthand (both)
|
|
84
|
-
&--condensed-x {
|
|
85
|
-
&.responsive-grid-table__header > [class^="col-"],
|
|
86
|
-
&.responsive-grid-table__header > [class*=" col-"],
|
|
87
|
-
&.responsive-grid-table__body > [class^="col-"],
|
|
88
|
-
&.responsive-grid-table__body > [class*=" col-"] {
|
|
89
|
-
padding-left: var(--c8y-table-cell-padding-condensed);
|
|
90
|
-
padding-right: var(--c8y-table-cell-padding-condensed);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
&--condensed-y {
|
|
94
|
-
&.responsive-grid-table__header > [class^="col-"],
|
|
95
|
-
&.responsive-grid-table__header > [class*=" col-"] {
|
|
96
|
-
padding-top: var(--c8y-table-cell-padding-condensed);
|
|
97
|
-
padding-bottom: var(--c8y-table-cell-padding-condensed);
|
|
98
|
-
font-size: calc(var(--c8y-unit-base) * 1.25);
|
|
99
|
-
}
|
|
100
|
-
&.responsive-grid-table__body > [class^="col-"],
|
|
101
|
-
&.responsive-grid-table__body > [class*=" col-"] {
|
|
102
|
-
padding-top: calc(var(--c8y-table-cell-padding-condensed) - 1px);
|
|
103
|
-
padding-bottom: calc(var(--c8y-table-cell-padding-condensed) - 1px);
|
|
104
|
-
font-size: var(--c8y-font-size-small);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
&--condensed {
|
|
108
|
-
&.responsive-grid-table__header > [class^="col-"],
|
|
109
|
-
&.responsive-grid-table__header > [class*=" col-"] {
|
|
110
|
-
padding-top: var(--c8y-table-cell-padding-condensed);
|
|
111
|
-
padding-bottom: var(--c8y-table-cell-padding-condensed);
|
|
112
|
-
padding-left: var(--c8y-table-cell-padding-condensed);
|
|
113
|
-
padding-right: var(--c8y-table-cell-padding-condensed);
|
|
114
|
-
font-size: calc(var(--c8y-unit-base) * 1.25);
|
|
115
|
-
}
|
|
116
|
-
&.responsive-grid-table__body > [class^="col-"],
|
|
117
|
-
&.responsive-grid-table__body > [class*=" col-"] {
|
|
118
|
-
padding-top: calc(var(--c8y-table-cell-padding-condensed) - 1px);
|
|
119
|
-
padding-bottom: calc(var(--c8y-table-cell-padding-condensed) - 1px);
|
|
120
|
-
padding-left: var(--c8y-table-cell-padding-condensed);
|
|
121
|
-
padding-right: var(--c8y-table-cell-padding-condensed);
|
|
122
|
-
font-size: var(--c8y-font-size-small);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
.col-actions{
|
|
127
|
-
display: flex;
|
|
128
|
-
align-items: center;
|
|
129
|
-
justify-content: flex-end;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
// Replaces SCSS: @for $i from 1 through 12
|
|
134
|
-
.generate-col-spans(@i) when (@i > 0) {
|
|
135
|
-
.col-@{i} {
|
|
136
|
-
grid-column: span @i;
|
|
137
|
-
}
|
|
138
|
-
.generate-col-spans((@i - 1));
|
|
139
|
-
}
|
|
140
|
-
.generate-col-spans(12);
|
|
141
|
-
|
|
142
|
-
// Mixin to create a wrapper + container query pair
|
|
143
|
-
// @name -> suffix for class/container name and width
|
|
144
|
-
.responsive-grid-table-wrapper(@name) {
|
|
145
|
-
@cq-name: ~"responsive-grid-table-wrapper--@{name}";
|
|
146
|
-
|
|
147
|
-
.responsive-grid-table-wrapper--@{name} {
|
|
148
|
-
container-type: inline-size;
|
|
149
|
-
container-name: @cq-name;
|
|
150
|
-
width: 100%;
|
|
151
|
-
|
|
152
|
-
// When a header is present, inline labels are redundant — hide them
|
|
153
|
-
&:has(.responsive-grid-table__header) .text-label-small {
|
|
154
|
-
display: none;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
@container @cq-name (max-width: unit(@name, px)) {
|
|
159
|
-
.responsive-grid-table {
|
|
160
|
-
grid-template-columns: 1fr; // stack
|
|
161
|
-
&__header {
|
|
162
|
-
display: none;
|
|
163
|
-
}
|
|
164
|
-
.col-actions {
|
|
165
|
-
justify-content: flex-start;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
// Header is hidden when stacked — show inline labels so values stay identifiable
|
|
169
|
-
.text-label-small {
|
|
170
|
-
display: block !important;
|
|
171
|
-
}
|
|
172
|
-
// hover-only element that becomes visible when stacked
|
|
173
|
-
.showOnHover {
|
|
174
|
-
opacity: 1 !important;
|
|
175
|
-
}
|
|
176
|
-
// Any class that contains "col-" becomes full-width when stacked
|
|
177
|
-
.responsive-grid-table > [class^="col-"],
|
|
178
|
-
.responsive-grid-table > [class*=" col-"] {
|
|
179
|
-
grid-column: span 1;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
// Replaces SCSS: @for $w from 600 through 200 (step -50)
|
|
185
|
-
.generate-wrappers(@w) when (@w >= 200) {
|
|
186
|
-
.responsive-grid-table-wrapper(@w);
|
|
187
|
-
.generate-wrappers((@w - 50));
|
|
188
|
-
}
|
|
189
|
-
.generate-wrappers(600);
|