@c8y/style 1023.37.0 → 1023.42.1

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 (264) hide show
  1. package/branding-login.less +1 -1
  2. package/helper-scripts/README-variable-imports.md +155 -0
  3. package/helper-scripts/README.md +104 -0
  4. package/helper-scripts/convert-scss-to-less.sh +512 -0
  5. package/helper-scripts/convert-stroke-icons-to-less.js +115 -0
  6. package/helper-scripts/remove-redundant-variable-imports.sh +80 -0
  7. package/helper-scripts/scss-to-less-skip +20 -0
  8. package/{sync-scss-to-less.sh → helper-scripts/sync-scss-to-less.sh} +2 -2
  9. package/helper-scripts/test-compile.sh +71 -0
  10. package/markdown-files/MANUAL-SYNC-FILES.md +56 -0
  11. package/package.json +2 -2
  12. package/styles/_login-app.less +34 -0
  13. package/styles/_login-app.scss +2 -2
  14. package/styles/_mixins.less +47 -0
  15. package/styles/_utilities.less +21 -0
  16. package/styles/_utilities.scss +1 -0
  17. package/styles/animations/_animate.less +18 -13
  18. package/styles/animations/_component-animations.less +18 -16
  19. package/styles/animations/_realtime-animation-list.less +11 -1
  20. package/styles/animations/_spinner-snake.less +17 -2
  21. package/styles/animations/_spinner.less +24 -6
  22. package/styles/base/_normalize.less +14 -0
  23. package/styles/base/_print.less +25 -12
  24. package/styles/base/_scaffolding.less +24 -28
  25. package/styles/base/_type.less +41 -19
  26. package/styles/components/_markdown-content.less +4 -1
  27. package/styles/components/_smartrules.less +14 -8
  28. package/styles/components/_smartrules.scss +6 -2
  29. package/styles/components/application-and-system/_c8y-cookie-banner.less +36 -0
  30. package/styles/components/{specialized → application-and-system}/_c8y-login.less +20 -6
  31. package/styles/components/data-display-and-visualization/_boxed-label.less +45 -0
  32. package/styles/components/data-display-and-visualization/_boxed-label.scss +46 -0
  33. package/styles/components/{specialized → data-display-and-visualization}/_c8y-data-explorer.less +37 -23
  34. package/styles/components/{specialized → data-display-and-visualization}/_c8y-datapoint-pill.less +29 -13
  35. package/styles/components/{specialized → data-display-and-visualization}/_c8y-pulse.less +33 -6
  36. package/styles/components/data-display-and-visualization/_range-display.less +25 -16
  37. package/styles/components/{specialized → data-display-and-visualization}/_smart-list-icon-label.less +19 -5
  38. package/styles/components/{specialized → data-display-and-visualization}/_status.less +16 -2
  39. package/styles/components/{specialized → data-display-and-visualization}/_statusContainer.less +16 -2
  40. package/styles/components/data-display-and-visualization/_timelines-chart.less +2 -0
  41. package/styles/components/data-display-and-visualization/lists/_c8y-data-point-list.less +10 -0
  42. package/styles/components/data-display-and-visualization/lists/_c8y-empty-state.less +26 -12
  43. package/styles/components/data-display-and-visualization/lists/_c8y-list-group.less +83 -43
  44. package/styles/components/data-display-and-visualization/lists/_cards-layout.less +38 -16
  45. package/styles/components/data-display-and-visualization/lists/_list-group.less +46 -28
  46. package/styles/components/data-display-and-visualization/lists/_smart-rules-template-list.less +12 -1
  47. package/styles/components/data-display-and-visualization/lists/{timeline-list.less → _timeline-list.less} +46 -24
  48. package/styles/components/data-display-and-visualization/tables/_data-grid.less +45 -25
  49. package/styles/components/data-display-and-visualization/tables/_resizable-grid.less +18 -5
  50. package/styles/components/data-display-and-visualization/tables/_tables.less +25 -9
  51. package/styles/components/data-input/_c8y-ai-chat.less +1 -0
  52. package/styles/components/{specialized → data-input}/_c8y-countdown-interval.less +15 -13
  53. package/styles/components/{specialized → data-input}/_c8y-range.less +22 -6
  54. package/styles/components/{specialized → data-input}/_dtm-icon-selector.less +17 -2
  55. package/styles/components/{specialized → data-input}/_dtm-icon-selector.scss +1 -2
  56. package/styles/components/{specialized → data-input}/_measurements-time-control.less +34 -6
  57. package/styles/components/{specialized → data-input}/_measurements-time-control.scss +14 -2
  58. package/styles/components/{specialized → data-input}/_search-header.less +22 -6
  59. package/styles/components/data-input/_static-assets-file-picker.less +22 -0
  60. package/styles/components/data-input/assets/_asset-property-list.less +38 -23
  61. package/styles/components/data-input/assets/_asset-table.less +21 -3
  62. package/styles/components/data-input/assets/_c8y-asset-notes.less +13 -1
  63. package/styles/components/data-input/assets/_c8y-asset-selector-miller.less +27 -8
  64. package/styles/components/data-input/assets/_c8y-asset-selector.less +32 -15
  65. package/styles/components/data-input/assets/_c8y-child-assets-selector.less +90 -9
  66. package/styles/components/{specialized → forms}/_c8y-schema-form.less +44 -17
  67. package/styles/components/{specialized → forms}/_c8y-schema-form.scss +15 -3
  68. package/styles/components/{specialized → navigation-and-layout}/_c8y-role-card.less +21 -5
  69. package/styles/components/{specialized → navigation-and-layout}/_c8y-scrollbar.less +24 -7
  70. package/styles/components/{specialized → navigation-and-layout}/_c8y-smart-rest-tab.less +21 -6
  71. package/styles/components/{specialized → navigation-and-layout}/_c8y-stepper.less +15 -1
  72. package/styles/components/{specialized → navigation-and-layout}/_c8y-user-roles.less +45 -28
  73. package/styles/components/{specialized → navigation-and-layout}/_device-software-tab.less +14 -0
  74. package/styles/components/navigation-and-layout/action-bars/_app-switcher.less +27 -5
  75. package/styles/components/navigation-and-layout/action-bars/_c8y-action-bar.less +49 -21
  76. package/styles/components/navigation-and-layout/cards/_card-dashboard.less +25 -4
  77. package/styles/components/navigation-and-layout/cards/_card-flip.less +41 -14
  78. package/styles/components/navigation-and-layout/cards/_card-grid.less +20 -4
  79. package/styles/components/navigation-and-layout/cards/_card.less +90 -75
  80. package/styles/components/navigation-and-layout/cards/_panels.less +38 -20
  81. package/styles/components/navigation-and-layout/navigation/_breadcrumbs.less +21 -39
  82. package/styles/components/navigation-and-layout/navigation/_c8y-nav-stacked.less +26 -14
  83. package/styles/components/navigation-and-layout/navigation/_main-header.less +41 -13
  84. package/styles/components/navigation-and-layout/navigation/_main-header.scss +1 -1
  85. package/styles/components/navigation-and-layout/navigation/_navbar.less +22 -25
  86. package/styles/components/navigation-and-layout/navigation/_navbar.scss +7 -7
  87. package/styles/components/navigation-and-layout/navigation/_navigator.less +71 -69
  88. package/styles/components/navigation-and-layout/navigation/_navs.less +13 -0
  89. package/styles/components/navigation-and-layout/navigation/_pagination.less +24 -5
  90. package/styles/components/navigation-and-layout/navigation/{steps-navbar.less → _steps-navbar.less} +7 -6
  91. package/styles/components/navigation-and-layout/navigation/_tabs.less +18 -14
  92. package/styles/components/navigation-and-layout/navigation/_tabs.scss +2 -2
  93. package/styles/components/{specialized → status-feedback-and-notifications}/_c8y-message-banner.less +14 -0
  94. package/styles/components/{specialized → status-feedback-and-notifications}/_code.less +18 -2
  95. package/styles/core/buttons/_button-groups.less +29 -79
  96. package/styles/core/buttons/_buttons.less +229 -198
  97. package/styles/core/buttons/_buttons.scss +6 -10
  98. package/styles/core/feedback/_alerts.less +52 -41
  99. package/styles/core/feedback/_badges.less +29 -17
  100. package/styles/core/feedback/_close.less +24 -7
  101. package/styles/core/feedback/_labels.less +21 -8
  102. package/styles/core/feedback/_progress-bars.less +24 -7
  103. package/styles/core/feedback/_tag.less +23 -6
  104. package/styles/core/feedback/_tooltip.less +44 -20
  105. package/styles/core/forms/_c8y-switch.less +39 -19
  106. package/styles/core/forms/_c8y-switch.scss +37 -29
  107. package/styles/core/forms/_file-picker.less +79 -61
  108. package/styles/core/forms/_forms.less +130 -133
  109. package/styles/core/forms/_input-groups.less +110 -59
  110. package/styles/core/forms/_input-groups.scss +21 -3
  111. package/styles/core/overlays/_c8y-dashboard-modal.less +25 -29
  112. package/styles/core/overlays/_c8y-wizard.less +38 -15
  113. package/styles/core/overlays/_dropdowns.less +86 -63
  114. package/styles/core/overlays/_modals.less +58 -40
  115. package/styles/core/overlays/_popovers.less +25 -9
  116. package/styles/dashboard/_availability-pie.less +3 -0
  117. package/styles/dashboard/_c8y-dashboard-style.less +61 -34
  118. package/styles/dashboard/_c8y-gauges.less +20 -4
  119. package/styles/dashboard/_dashboard-widgets.less +17 -4
  120. package/styles/dashboard/_info-gauge.less +20 -5
  121. package/styles/dashboard/_quick-links-widget.less +13 -3
  122. package/styles/{welcome-widget.less → dashboard/_welcome-widget.less} +21 -4
  123. package/styles/dashboard/{welcome.less → _welcome.less} +54 -45
  124. package/styles/icons/_c8y-glyphs.less +12 -1
  125. package/styles/icons/_c8y-glyphs.scss +2 -1
  126. package/styles/icons/_c8y-icons.less +214 -199
  127. package/styles/icons/_dlt-c8y-icons-stroke.less +7238 -1834
  128. package/styles/icons/_dlt-c8y-icons.less +14 -0
  129. package/styles/icons/_marker-icons.less +10 -0
  130. package/styles/index.less +160 -134
  131. package/styles/index.scss +53 -29
  132. package/styles/layout/_bottom-drawer.less +21 -7
  133. package/styles/layout/_c8y-help-drawer.less +30 -9
  134. package/styles/layout/_c8y-right-drawer.less +34 -19
  135. package/styles/layout/_c8y-top-drawer.less +43 -28
  136. package/styles/layout/_grid.less +18 -4
  137. package/styles/layout/_group-info.less +14 -2
  138. package/styles/layout/_layouts.less +48 -30
  139. package/styles/layout/_mcontainer.less +26 -12
  140. package/styles/layout/_page-tabs.less +115 -23
  141. package/styles/layout/_split-scroll.less +16 -4
  142. package/styles/layout/_split-view.less +19 -5
  143. package/styles/login-app-use.scss +2 -2
  144. package/styles/login-app.less +4 -4
  145. package/styles/mixins/_buttons.scss +1 -0
  146. package/styles/mixins/{color-mixins.less → _color-mixins.less} +2 -2
  147. package/styles/mixins/{element-queries.less → _element-queries.less} +2 -2
  148. package/styles/mixins/{forms.less → _forms.less} +1 -1
  149. package/styles/mixins/_gradients.less +117 -0
  150. package/styles/mixins/{grid-framework.less → _grid-framework.less} +21 -21
  151. package/styles/mixins/_icon-base.less +29 -0
  152. package/styles/mixins/{nav-vertical-align.less → _nav-vertical-align.less} +6 -2
  153. package/styles/mixins/_nav-vertical-align.scss +5 -2
  154. package/styles/mixins/{progress-bar.less → _progress-bar.less} +1 -1
  155. package/styles/mixins/{shadows-helper.less → _shadows-helper.less} +3 -5
  156. package/styles/mixins/_shadows-helper.scss +1 -4
  157. package/styles/mixins/{vendor-prefixes.less → _vendor-prefixes.less} +7 -22
  158. package/styles/mixins/_vendor-prefixes.scss +1 -17
  159. package/styles/utilities/_borders.less +21 -11
  160. package/styles/{components/specialized → utilities}/_c8y-utils.less +14 -0
  161. package/styles/{components/specialized → utilities}/_c8y-utils.scss +1 -1
  162. package/styles/utilities/_caret.less +18 -4
  163. package/styles/utilities/_container-queries.less +11 -3
  164. package/styles/utilities/_contextual-colors.less +48 -119
  165. package/styles/utilities/_display.less +26 -41
  166. package/styles/utilities/_elevation.less +17 -7
  167. package/styles/utilities/_flex-containers.less +10 -0
  168. package/styles/utilities/_flex-items.less +11 -0
  169. package/styles/utilities/_icon-utils.less +15 -3
  170. package/styles/utilities/_margins-paddings.less +23 -4
  171. package/styles/utilities/_overflows.less +10 -0
  172. package/styles/utilities/_position.less +11 -0
  173. package/styles/utilities/_quickfloats.less +20 -1
  174. package/styles/utilities/_separators.less +11 -0
  175. package/styles/utilities/_shadows.less +5 -49
  176. package/styles/{utilities.less → utilities/_sizing.less} +13 -21
  177. package/styles/utilities/_text-utils.less +35 -24
  178. package/styles/vendor/ace-editor/_ace-editor.less +1 -0
  179. package/styles/vendor/angular/_loading-bar.less +1 -0
  180. package/styles/vendor/angular/_ui-sortable.less +2 -1
  181. package/styles/vendor/angular/_uib-accordion.less +1 -0
  182. package/styles/{angular-ui-select/select.less → vendor/angular/angular-ui-select/_select.less} +2 -10
  183. package/styles/vendor/cdk/_cdk-drag.less +3 -0
  184. package/styles/vendor/cdk/_cdk-tree.less +6 -3
  185. package/styles/vendor/cdk/_cdk-virtual-scroll-window.less +1 -0
  186. package/styles/vendor/datepicker/_bs-datepicker.less +26 -6
  187. package/styles/vendor/datepicker/_uib-datepicker.less +37 -4
  188. package/styles/vendor/leaflet/_c8y-map-internal.less +44 -54
  189. package/styles/vendor/leaflet/_leaflet.less +4 -1
  190. package/styles/vendor/other/_colorpicker.less +3 -2
  191. package/styles/vendor/selectize/_c8y-selectize.less +33 -10
  192. package/variables/_color-defaults.less +29 -10
  193. package/variables/_color-defaults.scss +29 -10
  194. package/variables/_color-vars.less +37 -89
  195. package/variables/_color-vars.scss +19 -77
  196. package/variables/{login-vars.less → _login-vars.less} +3 -5
  197. package/variables/index.less +3 -3
  198. package/variables/tokens/{c8y-design-tokens-dark.less → _c8y-design-tokens-dark.less} +5 -1
  199. package/variables/tokens/{c8y-design-tokens.less → _c8y-design-tokens.less} +5 -1
  200. package/styles/components/specialized/_boxed-label.less +0 -21
  201. package/styles/components/specialized/_boxed-label.scss +0 -36
  202. package/styles/components/specialized/_c8y-cookie-banner.less +0 -22
  203. package/styles/components/specialized/_static-assets-file-picker.less +0 -8
  204. package/styles/dashboard/welcome-widget.less +0 -50
  205. package/styles/mixins/gradients.less +0 -142
  206. package/styles/mixins.less +0 -45
  207. package/styles/steps-navbar.less +0 -97
  208. package/styles/timeline-list.less +0 -210
  209. package/styles/vendor/angular/angular-ui-select/select.less +0 -161
  210. package/styles/welcome.less +0 -128
  211. /package/styles/components/{specialized → application-and-system}/_c8y-cookie-banner.scss +0 -0
  212. /package/styles/components/{specialized → application-and-system}/_c8y-login.scss +0 -0
  213. /package/styles/components/{specialized → data-display-and-visualization}/_c8y-data-explorer.scss +0 -0
  214. /package/styles/components/{specialized → data-display-and-visualization}/_c8y-datapoint-pill.scss +0 -0
  215. /package/styles/components/{specialized → data-display-and-visualization}/_c8y-pulse.scss +0 -0
  216. /package/styles/components/{specialized → data-display-and-visualization}/_smart-list-icon-label.scss +0 -0
  217. /package/styles/components/{specialized → data-display-and-visualization}/_status.scss +0 -0
  218. /package/styles/components/{specialized → data-display-and-visualization}/_statusContainer.scss +0 -0
  219. /package/styles/components/{specialized → data-input}/_c8y-countdown-interval.scss +0 -0
  220. /package/styles/components/{specialized → data-input}/_c8y-range.scss +0 -0
  221. /package/styles/components/{specialized → data-input}/_search-header.scss +0 -0
  222. /package/styles/components/{specialized → data-input}/_static-assets-file-picker.scss +0 -0
  223. /package/styles/components/{specialized → navigation-and-layout}/_c8y-role-card.scss +0 -0
  224. /package/styles/components/{specialized → navigation-and-layout}/_c8y-scrollbar.scss +0 -0
  225. /package/styles/components/{specialized → navigation-and-layout}/_c8y-smart-rest-tab.scss +0 -0
  226. /package/styles/components/{specialized → navigation-and-layout}/_c8y-stepper.scss +0 -0
  227. /package/styles/components/{specialized → navigation-and-layout}/_c8y-user-roles.scss +0 -0
  228. /package/styles/components/{specialized → navigation-and-layout}/_device-software-tab.scss +0 -0
  229. /package/styles/components/{specialized → status-feedback-and-notifications}/_c8y-message-banner.scss +0 -0
  230. /package/styles/components/{specialized → status-feedback-and-notifications}/_code.scss +0 -0
  231. /package/styles/mixins/{alert-variant.less → _alert-variant.less} +0 -0
  232. /package/styles/mixins/{animation.less → _animation.less} +0 -0
  233. /package/styles/mixins/{background-variant.less → _background-variant.less} +0 -0
  234. /package/styles/mixins/{border-radius.less → _border-radius.less} +0 -0
  235. /package/styles/mixins/{buttons.less → _buttons.less} +0 -0
  236. /package/styles/mixins/{c8y-scrollbar.less → _c8y-scrollbar.less} +0 -0
  237. /package/styles/mixins/{center-block.less → _center-block.less} +0 -0
  238. /package/styles/mixins/{clearfix.less → _clearfix.less} +0 -0
  239. /package/styles/mixins/{create-grid.less → _create-grid.less} +0 -0
  240. /package/styles/mixins/{grid.less → _grid.less} +0 -0
  241. /package/styles/mixins/{hide-scrollbars.less → _hide-scrollbars.less} +0 -0
  242. /package/styles/mixins/{hide-text.less → _hide-text.less} +0 -0
  243. /package/styles/mixins/{image.less → _image.less} +0 -0
  244. /package/styles/mixins/{labels.less → _labels.less} +0 -0
  245. /package/styles/mixins/{list-group.less → _list-group.less} +0 -0
  246. /package/styles/mixins/{nav-divider.less → _nav-divider.less} +0 -0
  247. /package/styles/mixins/{opacity.less → _opacity.less} +0 -0
  248. /package/styles/mixins/{pagination.less → _pagination.less} +0 -0
  249. /package/styles/mixins/{panels.less → _panels.less} +0 -0
  250. /package/styles/mixins/{reset-filter.less → _reset-filter.less} +0 -0
  251. /package/styles/mixins/{reset-text.less → _reset-text.less} +0 -0
  252. /package/styles/mixins/{resize.less → _resize.less} +0 -0
  253. /package/styles/mixins/{responsive-visibility.less → _responsive-visibility.less} +0 -0
  254. /package/styles/mixins/{size.less → _size.less} +0 -0
  255. /package/styles/mixins/{tab-focus.less → _tab-focus.less} +0 -0
  256. /package/styles/mixins/{table-row.less → _table-row.less} +0 -0
  257. /package/styles/mixins/{tag.less → _tag.less} +0 -0
  258. /package/styles/mixins/{text-emphasis.less → _text-emphasis.less} +0 -0
  259. /package/styles/mixins/{text-overflow.less → _text-overflow.less} +0 -0
  260. /package/variables/{login-vars.scss → _login-vars.scss} +0 -0
  261. /package/variables/{shadows.less → _shadows.less} +0 -0
  262. /package/variables/{shadows.scss → _shadows.scss} +0 -0
  263. /package/variables/tokens/{c8y-design-tokens-dark.scss → _c8y-design-tokens-dark.scss} +0 -0
  264. /package/variables/tokens/{c8y-design-tokens.scss → _c8y-design-tokens.scss} +0 -0
@@ -1,3 +1,21 @@
1
+
2
+ @import "../../mixins/_reset-text.less";
3
+ @import "../../mixins/_shadows-helper.less";
4
+
5
+ /**
6
+ * Popovers - Popover overlay component
7
+ *
8
+ * Note: Uses @popover-* variables for most dimensions and @size-* tokens for positioning.
9
+ *
10
+ * Intentionally hardcoded values:
11
+ * - Component-specific dimensions (140px, 341px): Popover specific positioning and widths
12
+ * - Typography size (16px): Title font size
13
+ * - Border widths (1px): Standard borders
14
+ * - Percentages (50%, 100%): Layout and centering
15
+ * - Z-index values: Stacking order
16
+ * - Calc expressions: Complex computed values with @popover-* variables
17
+ */
18
+
1
19
  .popover {
2
20
  position: absolute;
3
21
  top: 0;
@@ -13,7 +31,7 @@
13
31
  color: @popover-color-default;
14
32
  font-size: @font-size-base; // To reset our font and text properties and avoid inheriting weird values.
15
33
  .reset-text();
16
-
34
+
17
35
  &.high-popover {
18
36
  z-index: @zindex-popover + 2;
19
37
  }
@@ -52,21 +70,19 @@
52
70
  padding: @popover-padding;
53
71
  word-break: break-word;
54
72
  overflow-wrap: break-word;
55
- &:has(.popover-footer){
73
+ &:has(.popover-footer) {
56
74
  padding-bottom: 0;
57
75
  }
58
76
  }
59
77
 
60
- .popover-footer{
78
+ .popover-footer {
61
79
  padding: @popover-padding 0;
62
80
  }
63
81
 
64
- .popover-title + .popover-content{
82
+ .popover-title + .popover-content {
65
83
  padding-top: calc(@popover-padding / 2);
66
84
  }
67
85
 
68
-
69
-
70
86
  // Arrows
71
87
  // .arrow is outer, .arrow:after is inner
72
88
  .popover > .arrow {
@@ -153,14 +169,14 @@
153
169
  }
154
170
 
155
171
  .popover.navigator-popover {
156
- max-width: 341px!important;
172
+ max-width: 341px !important;
157
173
  }
158
174
 
159
175
  c8y-popover-confirm .right {
160
- right: 20px !important;
176
+ right: @size-20 !important;
161
177
  }
162
178
 
163
179
  .popover.lns-connection-popover {
164
- top: 10px !important;
180
+ top: @size-10 !important;
165
181
  left: 140px !important;
166
182
  }
@@ -1,3 +1,6 @@
1
+
2
+ @import "../mixins/_vendor-prefixes.less";
3
+
1
4
  .availabilityPie {
2
5
  .welcome & {
3
6
  position: relative;
@@ -1,3 +1,27 @@
1
+
2
+ @import "../../variables/_dlt-c8y-icons-vars.less";
3
+ @import "../mixins/_c8y-scrollbar.less";
4
+ @import "../mixins/_icon-base.less";
5
+
6
+ /**
7
+ * Dashboard Styles - Grid-based dashboard layout with drag-and-drop
8
+ *
9
+ * Note: Uses design tokens for spacing (@size-*; @component-padding) and colors.
10
+ *
11
+ * Intentionally hardcoded values:
12
+ * - Media query breakpoint (768px): Responsive breakpoint
13
+ * - Border widths (1px, 2px): Standard border sizes
14
+ * - Widget dimensions (30px, 40px, 65px, 99vh): Component-specific sizes
15
+ * - Min-heights (6px): Off-grid positioning
16
+ * - Transition duration (0.3s): Animation timing
17
+ * - Opacity values: Visual effects
18
+ * - Z-index values (1085, 100, 12, 11, 10, 9): Stacking order
19
+ * - Percentages and viewport units: Layout calculations
20
+ * - Line-height (0.5): Typography ratio
21
+ * - Padding 3px (off-grid): Fine-tuning for template marker
22
+ * - Height 14px (off-grid): Template marker height
23
+ */
24
+
1
25
  @media (max-width: 768px) {
2
26
  .dashboard-grid {
3
27
  grid-template-columns: 1fr !important;
@@ -18,7 +42,6 @@ body.c8y-grid-dashboard > .card.card-dashboard.cdk-drag-preview {
18
42
  }
19
43
 
20
44
  .dashboard-grid {
21
- display: -ms-grid;
22
45
  display: grid;
23
46
 
24
47
  .dashboard-grid-child {
@@ -73,11 +96,11 @@ body.c8y-grid-dashboard > .card.card-dashboard.cdk-drag-preview {
73
96
  .resize-icon {
74
97
  position: absolute;
75
98
  .dlt-c8y-icon();
76
- right: 4px;
77
- bottom: 4px;
99
+ right: @size-4;
100
+ bottom: @size-4;
78
101
  z-index: 11;
79
- width: 20px;
80
- height: 20px;
102
+ width: @size-20;
103
+ height: @size-20;
81
104
  opacity: 0;
82
105
  cursor: se-resize;
83
106
  transition: opacity 0.3s ease-in-out;
@@ -113,7 +136,7 @@ body.c8y-grid-dashboard > .card.card-dashboard.cdk-drag-preview {
113
136
  }
114
137
  }
115
138
 
116
- .fullscreen-dashboard {
139
+ .fullscreen-dashboard-styles {
117
140
  overflow: hidden;
118
141
  .navigator,
119
142
  .app-main-header {
@@ -144,8 +167,8 @@ body.c8y-grid-dashboard > .card.card-dashboard.cdk-drag-preview {
144
167
  z-index: 1085 !important;
145
168
  overflow-y: auto;
146
169
  margin: 0 !important;
147
- padding-top: calc(@margin-base * 10);
148
- padding-bottom: 24px !important;
170
+ padding-top: calc(@size-base * 10);
171
+ padding-bottom: @size-24 !important;
149
172
  width: 100vw;
150
173
  height: 99vh;
151
174
  .c8y-scrollbar();
@@ -167,39 +190,43 @@ body.c8y-grid-dashboard > .card.card-dashboard.cdk-drag-preview {
167
190
  }
168
191
  }
169
192
 
193
+ .fullscreen-dashboard {
194
+ .fullscreen-dashboard-styles();
195
+ }
196
+
170
197
  // hide action bar when a single widget is in fullscreen
171
198
  .singleWidget {
172
- .c8y-ui-action-bar{
173
- display: none!important;
199
+ .c8y-ui-action-bar {
200
+ display: none !important;
174
201
  }
175
- .dashboard-grid-child:not(.fullscreen){
176
- display: none!important;
202
+ .dashboard-grid-child:not(.fullscreen) {
203
+ display: none !important;
177
204
  }
178
205
  .dashboard-grid-child.fullscreen {
179
206
  position: fixed;
180
- inset: 24px;
207
+ inset: @size-24;
181
208
  z-index: 100;
182
- margin: 0!important;
209
+ margin: 0 !important;
183
210
  }
184
- .dashboard{
185
- overflow: hidden!important;
211
+ .dashboard {
212
+ overflow: hidden !important;
186
213
  }
187
214
  }
188
215
 
189
216
  :-webkit-full-screen:not(:root) {
190
- .fullscreen-dashboard();
217
+ .fullscreen-dashboard-styles();
191
218
  }
192
219
 
193
220
  :-moz-full-screen:not(:root) {
194
- .fullscreen-dashboard();
221
+ .fullscreen-dashboard-styles();
195
222
  }
196
223
 
197
224
  :-ms-fullscreen:not(:root) {
198
- .fullscreen-dashboard();
225
+ .fullscreen-dashboard-styles();
199
226
  }
200
227
 
201
228
  :fullscreen:not(:root) {
202
- .fullscreen-dashboard();
229
+ .fullscreen-dashboard-styles();
203
230
  }
204
231
 
205
232
  body .dashboard-preview-slot {
@@ -216,13 +243,13 @@ body .dashboard-preview-slot {
216
243
  right: 0;
217
244
  bottom: 0;
218
245
  left: 0;
219
- margin: 0!important;
246
+ margin: 0 !important;
220
247
  }
221
248
  }
222
249
  body fieldset > .dashboard-preview-slot {
223
250
  border: 0;
224
251
  padding: 0;
225
- margin: 0!important;
252
+ margin: 0 !important;
226
253
  }
227
254
 
228
255
  // title hidden
@@ -268,13 +295,13 @@ body fieldset > .dashboard-preview-slot {
268
295
  }
269
296
 
270
297
  .leaflet-top .leaflet-control {
271
- margin-top: 16px;
298
+ margin-top: @size-16;
272
299
  }
273
300
  .c8y-map-status {
274
301
  margin-top: 0;
275
302
  }
276
303
  .sticky-top {
277
- padding-top: @margin-base;
304
+ padding-top: @size-base;
278
305
  }
279
306
  }
280
307
  }
@@ -322,10 +349,10 @@ body fieldset > .dashboard-preview-slot {
322
349
  margin-top: 40px;
323
350
  }
324
351
  .c8y-map-status {
325
- margin-top: 24px;
352
+ margin-top: @size-24;
326
353
  }
327
354
  .sticky-top {
328
- padding-top: @margin-base;
355
+ padding-top: @size-base;
329
356
  }
330
357
  }
331
358
  }
@@ -357,24 +384,24 @@ body fieldset > .dashboard-preview-slot {
357
384
  }
358
385
  }
359
386
 
360
- .dashboard-template-marker{
387
+ .dashboard-template-marker {
361
388
  color: var(--palette-status-info, var(--c8y-palette-status-info));
362
- line-height: .5;
363
- font-size: 10px;
389
+ line-height: 0.5;
390
+ font-size: @size-10;
364
391
  font-weight: bold;
365
- padding: 4px 3px;
392
+ padding: @size-4 3px;
366
393
  border: 1px solid;
367
394
  height: 14px;
368
395
  display: inline-block;
369
- &::before{
396
+ &::before {
370
397
  content: 'T';
371
398
  }
372
399
  .label &,
373
- .tag &{
400
+ .tag & {
374
401
  position: static;
375
- margin: 0 4px 0 -4px;
402
+ margin: 0 @size-4 0 calc(-1 * @size-4);
376
403
  }
377
- .tag--info &{
404
+ .tag--info & {
378
405
  color: inherit;
379
406
  }
380
407
  }
@@ -1,3 +1,19 @@
1
+
2
+ @import "../core/buttons/_buttons.less";
3
+
4
+ /**
5
+ * Gauges - Radial gauge widget styles
6
+ *
7
+ * Note: Uses @size-base for padding and @size-4 for border-radius.
8
+ *
9
+ * Intentionally hardcoded values:
10
+ * - Percentages (99%): Near-full dimensions
11
+ * - Aspect-ratio (1): Square ratio
12
+ * - Transition duration (0.25s): Animation timing
13
+ * - Outline width (1px): Standard border
14
+ * - Outline-offset (-2px): Inset positioning
15
+ */
16
+
1
17
  @image-directory: if(@use-relative-paths, '../../img/', 'img/');
2
18
 
3
19
  .c8y-radial-gauge {
@@ -11,17 +27,17 @@
11
27
  }
12
28
  &__preset {
13
29
  .btn-clean();
14
- padding: @margin-base!important;
30
+ padding: @size-base !important;
15
31
  display: flex;
16
32
  flex-direction: column;
17
33
  align-items: center;
18
34
  cursor: pointer;
19
35
  transition: all 0.25s linear;
20
36
  outline: 0;
21
- &:hover, &.selected{
37
+ &:hover, &.selected {
22
38
  outline: 1px solid @component-brand-primary;
23
39
  outline-offset: -2px;
24
- border-radius: 4px;
40
+ border-radius: @size-4;
25
41
  }
26
42
 
27
43
  &.preset-custom::before {
@@ -38,7 +54,7 @@
38
54
  }
39
55
  }
40
56
 
41
- .c8y-radial-gauge--square{
57
+ .c8y-radial-gauge--square {
42
58
  pointer-events: none;
43
59
  }
44
60
  }
@@ -1,3 +1,17 @@
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
+
1
15
  .kpi-widget__container {
2
16
  padding: 0 @component-padding @component-padding;
3
17
  .panel-title-hidden & {
@@ -15,7 +29,7 @@
15
29
  .pie-chart-warning {
16
30
  position: absolute;
17
31
  bottom: 12px;
18
- margin-left: 16px;
32
+ margin-left: @size-16;
19
33
  }
20
34
 
21
35
  .widget-thumbnail {
@@ -25,9 +39,8 @@
25
39
  object-position: top left;
26
40
  }
27
41
 
28
-
29
- .widget-preview{
30
- .chart-container{
42
+ .widget-preview {
43
+ .chart-container {
31
44
  min-height: 240px;
32
45
  }
33
46
  }
@@ -1,12 +1,27 @@
1
+
2
+ /**
3
+ * Info Gauge - SVG-based label-value-unit gauge widget
4
+ *
5
+ * Note: Uses @size-24 for padding and @size-10 for font-size. Uses color tokens.
6
+ *
7
+ * Intentionally hardcoded values:
8
+ * - SVG stroke-widths (24px, 22px, 7): Gauge appearance
9
+ * - SVG stroke-dasharray/-offset values (503, -503px, -125.75px): Gauge drawing calculations
10
+ * - Font-sizes (26px, 14px): Component-specific typography
11
+ * - Letter-spacing (-1px): Typography fine-tuning
12
+ * - Transition duration (0.25s): Animation timing
13
+ * - Min-height (280px): Chart container height
14
+ * - Container query breakpoint (150px): Responsive layout
15
+ * - Container query units (40cqw, 100cqh): Container-relative sizing
16
+ * - SVG em-based dasharray (0.03em, 5): Stroke pattern
17
+ */
18
+
1
19
  .label-value-unit-gauge {
2
20
  display: block;
3
- padding: 0 @margin-24;
21
+ padding: 0 @size-24;
4
22
  min-height: 100%;
5
23
  .gauge-legend {
6
24
  width: 100%;
7
- }
8
-
9
- .gauge-legend {
10
25
  h3 {
11
26
  margin: 0;
12
27
  }
@@ -35,7 +50,7 @@
35
50
 
36
51
  .center-unit,
37
52
  .center-date-time {
38
- font-size: 10px;
53
+ font-size: @size-10;
39
54
  fill: @text-muted;
40
55
  color: @text-muted;
41
56
  }
@@ -1,3 +1,15 @@
1
+
2
+ /**
3
+ * Quick Links Widget - Link list widget for dashboards
4
+ *
5
+ * Note: Uses @component-padding and @size-20 for spacing. Uses drawer color tokens.
6
+ *
7
+ * Intentionally hardcoded values:
8
+ * - Vertical padding (6px): Off-grid fine-tuning for link items
9
+ * - Outline width (2px): Focus indicator
10
+ * - Outline-offset (-2px): Inset positioning
11
+ */
12
+
1
13
  .c8y-quick-links__link {
2
14
  display: flex;
3
15
  align-items: center;
@@ -14,11 +26,9 @@
14
26
  [class^='dlt-c8y-icon-'],
15
27
  [class*=' dlt-c8y-icon-'],
16
28
  .c8y-icon {
17
- font-size: 20px;
29
+ font-size: @size-20;
18
30
  }
19
- }
20
31
 
21
- .c8y-quick-links__link {
22
32
  &:active {
23
33
  background-color: @drawer-background-active;
24
34
  }
@@ -1,3 +1,17 @@
1
+
2
+ @import "../mixins/_tab-focus.less";
3
+
4
+ /**
5
+ * Welcome Widget - Interactive welcome screen widget
6
+ *
7
+ * Note: Uses @size-8 for spacing. Uses color tokens and z-index variables.
8
+ *
9
+ * Intentionally hardcoded values:
10
+ * - Border/outline widths (1px, 2px): Standard border sizes
11
+ * - Outline-offset (-2px): Inset positioning
12
+ * - Transition durations (0.25s): Animation timing
13
+ */
14
+
1
15
  .welcome-widget {
2
16
  height: 100%;
3
17
  .welcome-illustration {
@@ -17,19 +31,22 @@
17
31
  }
18
32
  .card-group.interact-grid {
19
33
  margin-bottom: 0;
34
+
20
35
  .card {
21
- margin-bottom: 8px;
22
36
  margin-top: 1px;
37
+ margin-bottom: @size-8;
23
38
  cursor: pointer;
24
- transition: transform 0.25s ease-in-out, box-shadow 0.25s ease-in-out;
25
39
  outline: 1px solid @component-border-color;
26
-
40
+ transition: transform 0.25s ease-in-out, box-shadow 0.25s ease-in-out;
41
+
42
+
27
43
  &:hover,
28
44
  &:focus {
29
45
  z-index: @zindex-navbar - 1;
30
46
  outline: 2px solid @component-brand-primary;
31
47
  outline-offset: -2px;
32
48
  }
49
+
33
50
  &:focus {
34
51
  .c8y-focus();
35
52
  }
@@ -44,7 +61,7 @@
44
61
  }
45
62
 
46
63
  body:not(:has(.c8y-logo)) {
47
- #c8y-mark{
64
+ #c8y-mark {
48
65
  display: none;
49
66
  }
50
67
  }
@@ -1,37 +1,62 @@
1
+
2
+ /**
3
+ * Welcome - Welcome dashboard layout styles
4
+ *
5
+ * Note: Uses @size-* tokens for spacing and design tokens for colors.
6
+ *
7
+ * Intentionally hardcoded values:
8
+ * - Flex basis/min-width (120px, 230px): Card size breakpoints
9
+ * - Percentages (33.33333%, 25%, 14.28571429%): Fractional grid layout
10
+ * - Min-height (130px): Help card height
11
+ * - Font-size (85%): Relative typography
12
+ * - Negative margin -15px (off-grid): Fine-tuning
13
+ * - Margin-bottom 27px (off-grid): Specific spacing
14
+ */
15
+
1
16
  c8y-dashboard-gridstack.welcome {
2
17
  .grid-stack {
3
18
  height: auto !important;
4
19
  }
20
+
5
21
  .grid-stack-item.ui-draggable-disabled:not(.grid-floater) {
6
22
  position: relative;
7
- top: inherit; // padding-left: (@grid-gutter-width / 2);
8
- height: auto; // padding-right: (@grid-gutter-width / 2);
23
+ top: inherit;
24
+ height: auto;
25
+
9
26
  .grid-stack-item-content {
10
27
  position: static;
28
+
11
29
  .card-header-actions:after {
12
30
  display: none;
13
31
  }
32
+
14
33
  .card-inner-scroll {
15
34
  overflow: visible;
16
35
  height: auto;
36
+
17
37
  &:before,
18
38
  &:after {
19
39
  display: none;
20
40
  }
41
+
21
42
  > * {
22
43
  margin-bottom: 0;
23
44
  }
45
+
24
46
  .card-group-block > .card {
25
47
  border-radius: 0;
26
48
  background-color: @component-background-default;
27
49
  }
50
+
28
51
  .quicklinks > .card {
29
52
  flex: 1 0 120px;
30
53
  min-width: 120px;
54
+
31
55
  @media (min-width: @screen-sm-min) {
32
56
  flex: 1 0 230px;
33
57
  min-width: 230px;
34
58
  }
59
+
35
60
  .card-block {
36
61
  width: 100%;
37
62
  }
@@ -39,13 +64,16 @@ c8y-dashboard-gridstack.welcome {
39
64
  }
40
65
  }
41
66
  }
42
- .grid-floater iframe:not(.twitter-timeline) {
43
- width: 100% !important;
44
- height: 100% !important;
45
- }
46
- .grid-floater .grid-stack-item-content {
47
- margin: 0 !important;
48
- margin-right: 15px !important;
67
+
68
+ .grid-floater {
69
+ iframe:not(.twitter-timeline) {
70
+ width: 100% !important;
71
+ height: 100% !important;
72
+ }
73
+
74
+ .grid-stack-item-content {
75
+ margin: 0 0 0 @size-16 !important;
76
+ }
49
77
  }
50
78
 
51
79
  @media (max-width: @screen-xs-max) {
@@ -58,11 +86,14 @@ c8y-dashboard-gridstack.welcome {
58
86
  [ng-controller='HelpAndSupportCtrl'] {
59
87
  display: flex;
60
88
  flex-flow: row wrap;
89
+
61
90
  > .card {
62
91
  flex: 0 0 33.33333%;
92
+
63
93
  @media (min-width: @screen-sm-min) {
64
94
  flex: 0 0 25%;
65
95
  }
96
+
66
97
  @media (min-width: @screen-md-min) {
67
98
  flex: 1 0 14.28571429%;
68
99
  }
@@ -70,18 +101,20 @@ c8y-dashboard-gridstack.welcome {
70
101
  }
71
102
 
72
103
  a.help-and-support-doc {
73
- padding-bottom: 100%;
74
- min-height: 130px;
75
104
  width: 100%;
105
+ min-height: 130px;
106
+ padding-bottom: 100%;
107
+
76
108
  > div {
77
- -webkit-justify-content: flex-start;
78
109
  justify-content: flex-start;
79
- padding: 20px 10px 0;
110
+ padding: @size-20 @size-10 0;
111
+
80
112
  img {
81
- margin-bottom: 10px;
82
- max-width: 24px;
83
- max-height: 24px;
113
+ margin-bottom: @size-10;
114
+ max-width: @size-24;
115
+ max-height: @size-24;
84
116
  }
117
+
85
118
  p {
86
119
  color: var(--brand-primary, var(--c8y-brand-primary));
87
120
  font-size: 85%;
@@ -89,40 +122,16 @@ a.help-and-support-doc {
89
122
  }
90
123
  }
91
124
 
92
- .quick-link-bgcolor-a,
93
- .quick-link-bgcolor-b .quick-link-bgcolor-c,
94
- .quick-link-bgcolor-d,
95
- .quick-link-bgcolor-e,
96
- .quick-link-bgcolor-f {
97
- position: relative;
98
- border: 0 !important;
99
- &::before {
100
- position: absolute;
101
- top: 0;
102
- right: 0;
103
- bottom: 0;
104
- left: 0;
105
- background-color: @black;
106
- content: '';
107
- opacity: 0.05;
108
-
109
- .transition(opacity 0.25s ease);
110
- }
111
- &:hover {
112
- &::before {
113
- opacity: 0;
114
- }
115
- }
116
- }
117
-
118
125
  .welcome-dont-show {
119
126
  margin-top: -15px;
120
- padding: 5px 0;
127
+ padding: @size-5 0;
128
+
121
129
  @media (min-width: @screen-sm-min) {
122
- margin-top: -24px;
130
+ margin-top: calc(-1 * @size-24);
123
131
  margin-bottom: 27px;
124
132
  }
133
+
125
134
  @media (min-width: @grid-float-breakpoint) {
126
- padding: 5px 15px;
135
+ padding: @size-5 @size-16;
127
136
  }
128
137
  }
@@ -1,3 +1,14 @@
1
+
2
+ /**
3
+ * C8Y Glyphs - Custom icon font for glyphs (calendar, caret, check, dot)
4
+ *
5
+ * Note: Contains @font-face definition with base64-encoded font data.
6
+ *
7
+ * Intentionally hardcoded values:
8
+ * - Line-height (1): Unitless for proper icon alignment
9
+ * - Unicode content values: Icon font character codes
10
+ */
11
+
1
12
  /*!
2
13
  Force line break
3
14
  */
@@ -42,7 +53,7 @@ Force line break
42
53
  }
43
54
  .c8y-glyph-caret:before,
44
55
  .dlt-c8y-icon-caret-down:before {
45
- content: @c8y-glyph-caret;
56
+ content: @c8y-glyph-caret!important;
46
57
  }
47
58
  .c8y-glyph-check:before {
48
59
  content: @c8y-glyph-check;