@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.
Files changed (37) hide show
  1. package/README.md +30 -259
  2. package/package.json +2 -2
  3. package/variables/dashboard-themes/_branded-dashboard.scss +290 -296
  4. package/helper-scripts/README-variable-imports.md +0 -155
  5. package/helper-scripts/convert-scss-to-less.sh +0 -527
  6. package/helper-scripts/convert-stroke-icons-to-less.js +0 -115
  7. package/helper-scripts/remove-redundant-variable-imports.sh +0 -80
  8. package/helper-scripts/scss-to-less-skip +0 -20
  9. package/helper-scripts/sync-scss-to-less.sh +0 -75
  10. package/markdown-files/MANUAL-SYNC-FILES.md +0 -56
  11. package/styles/_login-app.less +0 -34
  12. package/styles/_mixins.less +0 -47
  13. package/styles/_utilities.less +0 -21
  14. package/styles/animations/_animate.less +0 -653
  15. package/styles/animations/_realtime-animation-list.less +0 -20
  16. package/styles/components/_markdown-content.less +0 -95
  17. package/styles/components/application-and-system/_c8y-cookie-banner.less +0 -36
  18. package/styles/components/data-display-and-visualization/_boxed-label.less +0 -45
  19. package/styles/components/data-display-and-visualization/_c8y-datapoint-pill.less +0 -104
  20. package/styles/components/data-display-and-visualization/_status.less +0 -105
  21. package/styles/components/data-display-and-visualization/lists/_c8y-data-point-list.less +0 -31
  22. package/styles/components/data-display-and-visualization/tables/_responsive-grid-table.less +0 -189
  23. package/styles/components/data-input/_c8y-ai-chat.less +0 -258
  24. package/styles/components/data-input/_static-assets-file-picker.less +0 -22
  25. package/styles/components/navigation-and-layout/_c8y-scrollbar.less +0 -118
  26. package/styles/components/navigation-and-layout/navigation/_breadcrumbs.less +0 -60
  27. package/styles/components/status-feedback-and-notifications/_c8y-message-banner.less +0 -46
  28. package/styles/dashboard/_c8y-dashboard-style.less +0 -565
  29. package/styles/dashboard/_dashboard-widgets.less +0 -46
  30. package/styles/icons/_dlt-c8y-icons-stroke.less +0 -7260
  31. package/styles/icons/_marker-icons.less +0 -32
  32. package/styles/layout/_bottom-drawer.less +0 -70
  33. package/styles/layout/_group-info.less +0 -26
  34. package/styles/mixins/_gradients.less +0 -117
  35. package/styles/mixins/_icon-base.less +0 -29
  36. package/styles/mixins/_vendor-prefixes.less +0 -131
  37. package/variables/_color-defaults.less +0 -110
@@ -1,565 +0,0 @@
1
- @import '../mixins/_c8y-scrollbar.less';
2
- @import '../mixins/_icon-base.less';
3
-
4
- /**
5
- * Dashboard Styles - Grid-based dashboard layout with drag-and-drop
6
- *
7
- * Note: Uses design tokens for spacing (@size-*, @component-padding) and colors.
8
- *
9
- * Intentionally hardcoded values:
10
- * - Media query breakpoint (768px): Responsive breakpoint
11
- * - Border widths (1px, 2px): Standard border sizes
12
- * - Widget dimensions (30px, 40px, 65px, 99vh): Component-specific sizes
13
- * - Min-heights (6px): Off-grid positioning
14
- * - Transition duration (0.3s): Animation timing
15
- * - Opacity values: Visual effects
16
- * - Z-index values (1085, 100, 12, 11, 10, 9): Stacking order
17
- * - Percentages and viewport units: Layout calculations
18
- * - Line-height (0.5): Typography ratio
19
- * - Padding 3px (off-grid): Fine-tuning for template marker
20
- * - Height 14px (off-grid): Template marker height
21
- */
22
-
23
- @media (max-width: 768px) {
24
- .dashboard-grid {
25
- grid-template-columns: 1fr !important;
26
- }
27
-
28
- .dashboard-grid-child {
29
- grid-column-start: 1 !important;
30
- grid-column-end: 1 !important;
31
- grid-row-start: auto !important;
32
- }
33
- .card-header-grid.cdk-drag-handle {
34
- cursor: auto;
35
- }
36
- }
37
-
38
- body.c8y-grid-dashboard > .card.card-dashboard.cdk-drag-preview {
39
- opacity: 0.8;
40
- }
41
-
42
- .dashboard-grid {
43
- display: grid;
44
-
45
- .dashboard-grid-child {
46
- min-width: 0;
47
- }
48
-
49
- .cdk-drop-list {
50
- position: relative;
51
- }
52
-
53
- .card-dashboard {
54
- overflow: hidden;
55
- }
56
-
57
- .card-dashboard.on-resize {
58
- position: absolute;
59
- top: 0;
60
- left: 0;
61
- opacity: 0.8;
62
- }
63
-
64
- .card-dashboard.panel-content-transparent.on-resize {
65
- outline: 1px solid @component-brand-primary;
66
- }
67
-
68
- .card-header-grid {
69
- min-height: 6px;
70
- height: auto !important;
71
- }
72
-
73
- .card-header-actions:after,
74
- .card-header-actions + .card-inner-scroll:before {
75
- display: none;
76
- }
77
-
78
- .header-actions {
79
- top: 0;
80
- right: 0;
81
- z-index: 10;
82
- min-width: 0;
83
- }
84
-
85
- .resize-handle {
86
- position: absolute;
87
- right: 0;
88
- bottom: 0;
89
- z-index: 12;
90
- width: 30px;
91
- height: 30px;
92
- cursor: se-resize;
93
- }
94
-
95
- .resize-icon {
96
- position: absolute;
97
- .dlt-c8y-icon;
98
- right: @size-4;
99
- bottom: @size-4;
100
- z-index: 11;
101
- width: @size-20;
102
- height: @size-20;
103
- opacity: 0;
104
- cursor: se-resize;
105
- transition: opacity 0.3s ease-in-out;
106
- transform: rotate(-90deg);
107
-
108
- &:before {
109
- content: @dlt-c8y-icon-enlarge;
110
- }
111
- }
112
-
113
- .card-dashboard:hover .resize-icon {
114
- opacity: 0.25;
115
- }
116
-
117
- .resize-handle:hover + .resize-icon {
118
- opacity: 1;
119
- }
120
-
121
- .on-resize .resize-icon {
122
- opacity: 1 !important;
123
- }
124
-
125
- .card-placeholder {
126
- height: 100%;
127
- opacity: 1 !important;
128
- outline: 2px dotted @component-border-color !important;
129
- outline-offset: 0;
130
- }
131
-
132
- .cdk-drop-list,
133
- .card-dashboard {
134
- height: 100%;
135
- }
136
- }
137
-
138
- .fullscreen-dashboard-styles {
139
- overflow: hidden;
140
- .navigator,
141
- .app-main-header {
142
- display: none;
143
- }
144
-
145
- .mcontainer {
146
- margin-top: 0;
147
- margin-left: 0 !important;
148
- padding: 0 !important;
149
- background-color: @body-background-color;
150
-
151
- > .container-fluid {
152
- padding-bottom: 0;
153
- }
154
- }
155
-
156
- .c8y-ui-action-bar {
157
- top: 0 !important;
158
- left: 0 !important;
159
- }
160
-
161
- .dashboard {
162
- top: 0;
163
- left: 0;
164
- z-index: 1085 !important;
165
- overflow-y: auto;
166
- margin: 0 !important;
167
- padding-top: calc(@size-base * 10);
168
- padding-bottom: @size-24 !important;
169
- width: 100vw;
170
- height: 99vh;
171
- .c8y-scrollbar();
172
-
173
- .dashboard {
174
- padding-bottom: 0 !important;
175
-
176
- all: unset;
177
- }
178
-
179
- .dashboard-container {
180
- margin-top: 0 !important;
181
- margin-bottom: 0 !important;
182
- }
183
- }
184
-
185
- .page-tabs:not(.c8y-top-drawer--tabs) {
186
- display: none;
187
- }
188
- }
189
-
190
- .fullscreen-dashboard {
191
- .fullscreen-dashboard-styles;
192
- }
193
-
194
- // hide action bar when a single widget is in fullscreen
195
- .singleWidget {
196
- .c8y-ui-action-bar {
197
- display: none !important;
198
- }
199
- .dashboard-grid-child:not(.fullscreen) {
200
- display: none !important;
201
- }
202
- .dashboard-grid-child.fullscreen {
203
- position: fixed;
204
- inset: @size-24;
205
- z-index: 100;
206
- margin: 0 !important;
207
- }
208
- .dashboard {
209
- overflow: hidden !important;
210
- }
211
- }
212
-
213
- :-webkit-full-screen:not(:root) {
214
- .fullscreen-dashboard-styles;
215
- }
216
-
217
- :-moz-full-screen:not(:root) {
218
- .fullscreen-dashboard-styles;
219
- }
220
-
221
- :-ms-fullscreen:not(:root) {
222
- .fullscreen-dashboard-styles;
223
- }
224
-
225
- :fullscreen:not(:root) {
226
- .fullscreen-dashboard-styles;
227
- }
228
-
229
- body .dashboard-preview-slot {
230
- margin: 0 !important;
231
- padding: 30px;
232
- border: 1px solid @component-border-color;
233
- .page-tabs-horizontal {
234
- margin-top: 2px !important;
235
- }
236
-
237
- .card.card-dashboard {
238
- position: relative;
239
- top: 0;
240
- right: 0;
241
- bottom: 0;
242
- left: 0;
243
- margin: 0 !important;
244
- }
245
- }
246
- body fieldset > .dashboard-preview-slot {
247
- border: 0;
248
- padding: 0;
249
- margin: 0 !important;
250
- flex-grow: 1;
251
- min-height: 0;
252
- grid-template-rows: repeat(1, 1fr);
253
-
254
- .card-inner-scroll {
255
- display: flex;
256
- flex-direction: column;
257
- overflow: hidden;
258
-
259
- > * {
260
- flex: 1 1 0;
261
- min-height: 0;
262
- }
263
- }
264
- c8y-local-controls,
265
- c8y-global-context-widget-wrapper {
266
- flex-grow: 0 !important;
267
- min-height: min-content !important;
268
- }
269
- }
270
-
271
- // title hidden
272
- .card.card-dashboard {
273
- .panel-title-hidden &,
274
- .dashboard-preview-slot.panel-title-hidden,
275
- &.panel-title-hidden.cdk-drag-disabled {
276
- .card-header-actions {
277
- position: absolute;
278
- z-index: 10;
279
- min-height: 6px;
280
- width: 100%;
281
- height: 0;
282
- border: 0;
283
- &:after {
284
- display: none;
285
- }
286
-
287
- > * {
288
- display: none;
289
- }
290
-
291
- > .header-actions {
292
- position: absolute;
293
- top: 0;
294
- right: 0;
295
- z-index: 10;
296
- display: flex;
297
- border-left: 0;
298
- opacity: 0;
299
- }
300
-
301
- + .card-inner-scroll {
302
- top: 0;
303
- z-index: 9;
304
- height: 100%;
305
-
306
- // Removed unused state modifier class - verified 0 usages: .has-footer
307
-
308
- &:before {
309
- display: none;
310
- }
311
-
312
- .leaflet-top .leaflet-control {
313
- margin-top: @size-16;
314
- }
315
- .c8y-map-status {
316
- margin-top: 0;
317
- }
318
- .sticky-top {
319
- padding-top: @size-base;
320
- }
321
- }
322
- }
323
- }
324
- }
325
-
326
- // title overlay
327
- .card.card-dashboard {
328
- .panel-title-overlay &,
329
- .dashboard-preview-slot.panel-title-overlay &,
330
- &.panel-title-overlay.cdk-drag-disabled {
331
- .card-header-actions {
332
- position: absolute;
333
- z-index: 10;
334
- width: 100%;
335
- border: 0;
336
- pointer-events: none;
337
-
338
- &:after {
339
- display: none;
340
- }
341
-
342
- .card-header-title {
343
- min-height: 40px;
344
- }
345
-
346
- > .header-actions {
347
- position: absolute;
348
- top: 0;
349
- right: 0;
350
- z-index: 10;
351
- display: flex;
352
- border-left: 0;
353
- opacity: 0;
354
- }
355
-
356
- + .card-inner-scroll {
357
- top: 0;
358
- z-index: 9;
359
- height: 100%;
360
- &:before {
361
- display: none;
362
- }
363
- .leaflet-top .leaflet-control {
364
- margin-top: 40px;
365
- }
366
- .c8y-map-status {
367
- margin-top: @size-24;
368
- }
369
- .sticky-top {
370
- padding-top: @size-base;
371
- }
372
- }
373
- }
374
- }
375
- }
376
-
377
- //title border
378
- .card.card-dashboard {
379
- .panel-title-border &,
380
- .dashboard-preview-slot.panel-title-border &,
381
- &.panel-title-border {
382
- .card-header-actions {
383
- z-index: 10;
384
- border-color: @component-border-color;
385
- border-top: 1px solid transparent;
386
- border-bottom-width: 1px;
387
- border-bottom-style: solid;
388
-
389
- &:after {
390
- display: none;
391
- }
392
-
393
- + .card-inner-scroll {
394
- &:before {
395
- display: none;
396
- }
397
- }
398
- }
399
- }
400
- }
401
-
402
- .dashboard-template-marker {
403
- color: var(--palette-status-info, var(--c8y-palette-status-info));
404
- line-height: 0.5;
405
- font-size: @size-10;
406
- font-weight: bold;
407
- padding: @size-4 3px;
408
- border: 1px solid;
409
- height: 14px;
410
- display: inline-block;
411
- &::before {
412
- content: 'T';
413
- }
414
- .label &,
415
- .tag & {
416
- position: static;
417
- margin: 0 @size-4 0 calc(-1 * @size-4);
418
- }
419
- .tag--info & {
420
- color: inherit;
421
- }
422
- }
423
-
424
- // data-grid--custom-column-header- styles
425
- .dashboard-preview-slot,
426
- .card-dashboard {
427
- .table-data-grid-header > .h4 {
428
- display: none;
429
- }
430
- .content-fullpage {
431
- height: 100% !important;
432
- }
433
- c8y-asset-table-widget-view.hide-footer {
434
- .table-data-grid-footer {
435
- display: none;
436
- }
437
- }
438
- }
439
-
440
-
441
- .c8y-header-controls-group {
442
- display: inline-flex;
443
- align-items: stretch;
444
- border: 1px solid @component-border-color;
445
- border-radius: 16px;
446
- transition: all 0.25s ease;
447
- overflow: hidden;
448
- min-width: 32px;
449
- &:has(c8y-auto-refresh-control + c8y-date-time-context-picker + .input-group-btn) {
450
- min-width: 132px;
451
- }
452
- &:has([data-cy="global-context-link--all"]:not(.active)) {
453
- min-width: 74px;
454
-
455
- &:has(c8y-date-time-context-picker) {
456
- min-width:128px;
457
- }
458
- &:has(c8y-aggregation-picker + c8y-date-time-context-picker + .input-group-btn) {
459
- min-width: 186px;
460
- }
461
- &:has(c8y-auto-refresh-control + c8y-date-time-context-picker + .input-group-btn) {
462
- min-width: 180px;
463
- }
464
- }
465
- &:has(c8y-date-time-context-picker:last-child) {
466
- min-width:91px;
467
- }
468
- .btn-icon-dot-set {
469
- border: none !important;
470
- border-radius: 16px !important;
471
- }
472
- c8y-context-controls{
473
- min-width: 0;
474
- }
475
- c8y-date-time-context-picker{
476
- min-width: 55px;
477
- }
478
- .btn-icon-dot-set {
479
- &:first-child:not(:last-child) {
480
- border-radius: 16px 0 0 16px !important;
481
- }
482
- }
483
-
484
- .form-control{
485
- background: transparent;
486
- height: 30px;
487
- &:not(:focus){
488
- box-shadow: none;
489
- }
490
- }
491
-
492
- .input-group {
493
- c8y-aggregation-picker {
494
- .form-control{
495
- border-left:1px solid @component-border-color;
496
- }
497
- }
498
- }
499
- &:not(.c8y-header-controls-group--has-summary){
500
- .input-group:first-child {
501
- c8y-aggregation-picker .form-control{
502
- border-left:0;
503
- border-top-left-radius: 16px!important;
504
- border-bottom-left-radius: 16px!important;
505
- }
506
- }
507
- }
508
- c8y-date-time-context-picker {
509
- .form-control{
510
- border-left:1px solid @component-border-color;
511
- }
512
- &:last-child {
513
- .form-control{
514
- border-top-right-radius: 16px!important;
515
- border-bottom-right-radius: 16px!important;
516
- }
517
- }
518
- }
519
- .toggle-countdown{
520
- border-top: 0;
521
- border-bottom: 0;
522
- min-height: 30px;
523
- min-width: 36px;
524
- }
525
- &:not(.c8y-header-controls-group--has-summary){
526
- c8y-auto-refresh-control{
527
- &:first-child{
528
- .toggle-countdown{
529
- border-top-left-radius: 16px!important;
530
- border-bottom-left-radius: 16px!important;
531
- }
532
- }
533
- }
534
- }
535
- c8y-auto-refresh-control:last-child{
536
- .toggle-countdown{
537
- border-top-left-radius: 0!important;
538
- border-bottom-left-radius: 0!important;
539
- border-top-right-radius: 16px!important;
540
- border-bottom-right-radius: 16px!important;
541
- border-right: 0;
542
- }
543
- }
544
- .input-group-btn{
545
- max-height: 30px;
546
- .btn:not(:focus){
547
- border-color: transparent!important;
548
- border-left-color: @component-border-color!important;
549
- }
550
- &:last-child{
551
- .btn{
552
- border-top-right-radius: 16px!important;
553
- border-bottom-right-radius: 16px!important;
554
- }
555
- }
556
- }
557
-
558
- }
559
-
560
- .c8y-expandable-controls__panel {
561
- position: relative;
562
- z-index: 5;
563
- background: @component-background-default;
564
- box-shadow: inset 0 -1px 0 0 @component-border-color;
565
- }
@@ -1,46 +0,0 @@
1
-
2
- /**
3
- * Dashboard Widgets - Widget-specific styles for dashboards
4
- *
5
- * Note: Uses @component-padding and @size-16 for spacing. Uses @text-muted for colors.
6
- *
7
- * Intentionally hardcoded values:
8
- * - Clamp font-size (14px, 75%, 54px): Responsive font constraints
9
- * - Transition duration (0.25s): Animation timing
10
- * - Bottom positioning (12px): Off-grid fine-tuning
11
- * - Aspect-ratio (281/148): Specific thumbnail ratio
12
- * - Min-height (240px): Chart container height
13
- */
14
-
15
- .kpi-widget__container {
16
- padding: 0 @component-padding @component-padding;
17
- .panel-title-hidden & {
18
- padding-top: @component-padding;
19
- }
20
- small {
21
- color: @text-muted;
22
- font-size: clamp(14px, 75%, 54px);
23
- }
24
- .dot-info {
25
- transition: all 0.25s ease;
26
- }
27
- }
28
-
29
- .pie-chart-warning {
30
- position: absolute;
31
- bottom: 12px;
32
- margin-left: @size-16;
33
- }
34
-
35
- .widget-thumbnail {
36
- width: 100%;
37
- aspect-ratio: 281/148;
38
- object-fit: cover;
39
- object-position: top left;
40
- }
41
-
42
- .widget-preview {
43
- .chart-container {
44
- min-height: 240px;
45
- }
46
- }