@c8y/style 1023.37.0 → 1023.43.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) 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 +76 -24
  34. package/styles/components/{specialized → data-display-and-visualization}/_c8y-data-explorer.scss +39 -1
  35. package/styles/components/{specialized → data-display-and-visualization}/_c8y-datapoint-pill.less +29 -13
  36. package/styles/components/{specialized → data-display-and-visualization}/_c8y-pulse.less +33 -6
  37. package/styles/components/data-display-and-visualization/_range-display.less +25 -16
  38. package/styles/components/{specialized → data-display-and-visualization}/_smart-list-icon-label.less +19 -5
  39. package/styles/components/{specialized → data-display-and-visualization}/_status.less +16 -2
  40. package/styles/components/{specialized → data-display-and-visualization}/_statusContainer.less +16 -2
  41. package/styles/components/data-display-and-visualization/_timelines-chart.less +2 -0
  42. package/styles/components/data-display-and-visualization/lists/_c8y-data-point-list.less +10 -0
  43. package/styles/components/data-display-and-visualization/lists/_c8y-empty-state.less +26 -12
  44. package/styles/components/data-display-and-visualization/lists/_c8y-list-group.less +83 -43
  45. package/styles/components/data-display-and-visualization/lists/_cards-layout.less +38 -16
  46. package/styles/components/data-display-and-visualization/lists/_list-group.less +46 -28
  47. package/styles/components/data-display-and-visualization/lists/_smart-rules-template-list.less +12 -1
  48. package/styles/components/data-display-and-visualization/lists/{timeline-list.less → _timeline-list.less} +46 -24
  49. package/styles/components/data-display-and-visualization/tables/_data-grid.less +45 -25
  50. package/styles/components/data-display-and-visualization/tables/_resizable-grid.less +18 -5
  51. package/styles/components/data-display-and-visualization/tables/_tables.less +25 -9
  52. package/styles/components/data-input/_c8y-ai-chat.less +1 -0
  53. package/styles/components/{specialized → data-input}/_c8y-countdown-interval.less +15 -13
  54. package/styles/components/{specialized → data-input}/_c8y-range.less +22 -6
  55. package/styles/components/{specialized → data-input}/_dtm-icon-selector.less +17 -2
  56. package/styles/components/{specialized → data-input}/_dtm-icon-selector.scss +1 -2
  57. package/styles/components/{specialized → data-input}/_measurements-time-control.less +34 -6
  58. package/styles/components/{specialized → data-input}/_measurements-time-control.scss +14 -2
  59. package/styles/components/{specialized → data-input}/_search-header.less +22 -6
  60. package/styles/components/data-input/_static-assets-file-picker.less +22 -0
  61. package/styles/components/data-input/assets/_asset-property-list.less +38 -23
  62. package/styles/components/data-input/assets/_asset-table.less +21 -3
  63. package/styles/components/data-input/assets/_c8y-asset-notes.less +13 -1
  64. package/styles/components/data-input/assets/_c8y-asset-selector-miller.less +27 -8
  65. package/styles/components/data-input/assets/_c8y-asset-selector.less +32 -15
  66. package/styles/components/data-input/assets/_c8y-child-assets-selector.less +90 -9
  67. package/styles/components/{specialized → forms}/_c8y-schema-form.less +44 -17
  68. package/styles/components/{specialized → forms}/_c8y-schema-form.scss +15 -3
  69. package/styles/components/{specialized → navigation-and-layout}/_c8y-role-card.less +21 -5
  70. package/styles/components/{specialized → navigation-and-layout}/_c8y-scrollbar.less +24 -7
  71. package/styles/components/{specialized → navigation-and-layout}/_c8y-smart-rest-tab.less +21 -6
  72. package/styles/components/{specialized → navigation-and-layout}/_c8y-stepper.less +15 -1
  73. package/styles/components/{specialized → navigation-and-layout}/_c8y-user-roles.less +45 -28
  74. package/styles/components/{specialized → navigation-and-layout}/_device-software-tab.less +14 -0
  75. package/styles/components/navigation-and-layout/action-bars/_app-switcher.less +27 -5
  76. package/styles/components/navigation-and-layout/action-bars/_c8y-action-bar.less +49 -21
  77. package/styles/components/navigation-and-layout/cards/_card-dashboard.less +25 -4
  78. package/styles/components/navigation-and-layout/cards/_card-flip.less +41 -14
  79. package/styles/components/navigation-and-layout/cards/_card-grid.less +20 -4
  80. package/styles/components/navigation-and-layout/cards/_card.less +90 -75
  81. package/styles/components/navigation-and-layout/cards/_panels.less +38 -20
  82. package/styles/components/navigation-and-layout/navigation/_breadcrumbs.less +21 -39
  83. package/styles/components/navigation-and-layout/navigation/_c8y-nav-stacked.less +26 -14
  84. package/styles/components/navigation-and-layout/navigation/_main-header.less +41 -13
  85. package/styles/components/navigation-and-layout/navigation/_main-header.scss +1 -1
  86. package/styles/components/navigation-and-layout/navigation/_navbar.less +22 -25
  87. package/styles/components/navigation-and-layout/navigation/_navbar.scss +7 -7
  88. package/styles/components/navigation-and-layout/navigation/_navigator.less +71 -69
  89. package/styles/components/navigation-and-layout/navigation/_navs.less +13 -0
  90. package/styles/components/navigation-and-layout/navigation/_pagination.less +24 -5
  91. package/styles/components/navigation-and-layout/navigation/{steps-navbar.less → _steps-navbar.less} +7 -6
  92. package/styles/components/navigation-and-layout/navigation/_tabs.less +19 -14
  93. package/styles/components/navigation-and-layout/navigation/_tabs.scss +3 -2
  94. package/styles/components/{specialized → status-feedback-and-notifications}/_c8y-message-banner.less +14 -0
  95. package/styles/components/{specialized → status-feedback-and-notifications}/_code.less +18 -2
  96. package/styles/core/buttons/_button-groups.less +29 -79
  97. package/styles/core/buttons/_buttons.less +229 -198
  98. package/styles/core/buttons/_buttons.scss +6 -10
  99. package/styles/core/feedback/_alerts.less +52 -41
  100. package/styles/core/feedback/_badges.less +29 -17
  101. package/styles/core/feedback/_close.less +24 -7
  102. package/styles/core/feedback/_labels.less +21 -8
  103. package/styles/core/feedback/_progress-bars.less +24 -7
  104. package/styles/core/feedback/_tag.less +23 -6
  105. package/styles/core/feedback/_tooltip.less +44 -20
  106. package/styles/core/forms/_c8y-switch.less +39 -19
  107. package/styles/core/forms/_c8y-switch.scss +37 -29
  108. package/styles/core/forms/_file-picker.less +79 -61
  109. package/styles/core/forms/_forms.less +130 -133
  110. package/styles/core/forms/_input-groups.less +110 -59
  111. package/styles/core/forms/_input-groups.scss +21 -3
  112. package/styles/core/overlays/_c8y-dashboard-modal.less +25 -29
  113. package/styles/core/overlays/_c8y-wizard.less +38 -15
  114. package/styles/core/overlays/_dropdowns.less +86 -63
  115. package/styles/core/overlays/_modals.less +58 -40
  116. package/styles/core/overlays/_popovers.less +25 -9
  117. package/styles/dashboard/_availability-pie.less +3 -0
  118. package/styles/dashboard/_c8y-dashboard-style.less +61 -34
  119. package/styles/dashboard/_c8y-gauges.less +20 -4
  120. package/styles/dashboard/_dashboard-widgets.less +17 -4
  121. package/styles/dashboard/_info-gauge.less +20 -5
  122. package/styles/dashboard/_quick-links-widget.less +13 -3
  123. package/styles/{welcome-widget.less → dashboard/_welcome-widget.less} +21 -4
  124. package/styles/dashboard/{welcome.less → _welcome.less} +54 -45
  125. package/styles/icons/_c8y-glyphs.less +12 -1
  126. package/styles/icons/_c8y-glyphs.scss +2 -1
  127. package/styles/icons/_c8y-icons.less +214 -199
  128. package/styles/icons/_dlt-c8y-icons-stroke.less +7238 -1834
  129. package/styles/icons/_dlt-c8y-icons.less +14 -0
  130. package/styles/icons/_marker-icons.less +10 -0
  131. package/styles/index.less +160 -134
  132. package/styles/index.scss +53 -29
  133. package/styles/layout/_bottom-drawer.less +21 -7
  134. package/styles/layout/_c8y-help-drawer.less +30 -9
  135. package/styles/layout/_c8y-right-drawer.less +34 -19
  136. package/styles/layout/_c8y-top-drawer.less +43 -28
  137. package/styles/layout/_grid.less +18 -4
  138. package/styles/layout/_group-info.less +14 -2
  139. package/styles/layout/_layouts.less +48 -30
  140. package/styles/layout/_mcontainer.less +26 -12
  141. package/styles/layout/_page-tabs.less +126 -21
  142. package/styles/layout/_page-tabs.scss +14 -1
  143. package/styles/layout/_split-scroll.less +16 -4
  144. package/styles/layout/_split-view.less +19 -5
  145. package/styles/login-app-use.scss +2 -2
  146. package/styles/login-app.less +4 -4
  147. package/styles/mixins/_buttons.scss +1 -0
  148. package/styles/mixins/{color-mixins.less → _color-mixins.less} +2 -2
  149. package/styles/mixins/{element-queries.less → _element-queries.less} +2 -2
  150. package/styles/mixins/{forms.less → _forms.less} +1 -1
  151. package/styles/mixins/_gradients.less +117 -0
  152. package/styles/mixins/{grid-framework.less → _grid-framework.less} +21 -21
  153. package/styles/mixins/_grid-framework.scss +1 -1
  154. package/styles/mixins/_icon-base.less +29 -0
  155. package/styles/mixins/{nav-vertical-align.less → _nav-vertical-align.less} +6 -2
  156. package/styles/mixins/_nav-vertical-align.scss +5 -2
  157. package/styles/mixins/{progress-bar.less → _progress-bar.less} +1 -1
  158. package/styles/mixins/{shadows-helper.less → _shadows-helper.less} +3 -5
  159. package/styles/mixins/_shadows-helper.scss +1 -4
  160. package/styles/mixins/{vendor-prefixes.less → _vendor-prefixes.less} +7 -22
  161. package/styles/mixins/_vendor-prefixes.scss +1 -17
  162. package/styles/utilities/_borders.less +21 -11
  163. package/styles/{components/specialized → utilities}/_c8y-utils.less +14 -0
  164. package/styles/{components/specialized → utilities}/_c8y-utils.scss +1 -1
  165. package/styles/utilities/_caret.less +18 -4
  166. package/styles/utilities/_container-queries.less +11 -3
  167. package/styles/utilities/_contextual-colors.less +48 -119
  168. package/styles/utilities/_display.less +26 -41
  169. package/styles/utilities/_elevation.less +17 -7
  170. package/styles/utilities/_flex-containers.less +10 -0
  171. package/styles/utilities/_flex-items.less +11 -0
  172. package/styles/utilities/_icon-utils.less +15 -3
  173. package/styles/utilities/_margins-paddings.less +23 -4
  174. package/styles/utilities/_overflows.less +10 -0
  175. package/styles/utilities/_position.less +11 -0
  176. package/styles/utilities/_quickfloats.less +20 -1
  177. package/styles/utilities/_separators.less +11 -0
  178. package/styles/utilities/_shadows.less +5 -49
  179. package/styles/{utilities.less → utilities/_sizing.less} +13 -21
  180. package/styles/utilities/_text-utils.less +35 -24
  181. package/styles/vendor/ace-editor/_ace-editor.less +1 -0
  182. package/styles/vendor/angular/_loading-bar.less +1 -0
  183. package/styles/vendor/angular/_ui-sortable.less +2 -1
  184. package/styles/vendor/angular/_uib-accordion.less +1 -0
  185. package/styles/{angular-ui-select/select.less → vendor/angular/angular-ui-select/_select.less} +2 -10
  186. package/styles/vendor/cdk/_cdk-drag.less +3 -0
  187. package/styles/vendor/cdk/_cdk-tree.less +6 -3
  188. package/styles/vendor/cdk/_cdk-virtual-scroll-window.less +1 -0
  189. package/styles/vendor/datepicker/_bs-datepicker.less +26 -6
  190. package/styles/vendor/datepicker/_uib-datepicker.less +37 -4
  191. package/styles/vendor/leaflet/_c8y-map-internal.less +44 -54
  192. package/styles/vendor/leaflet/_leaflet.less +4 -1
  193. package/styles/vendor/other/_colorpicker.less +3 -2
  194. package/styles/vendor/selectize/_c8y-selectize.less +33 -10
  195. package/variables/_color-defaults.less +29 -10
  196. package/variables/_color-defaults.scss +29 -10
  197. package/variables/_color-vars.less +37 -89
  198. package/variables/_color-vars.scss +19 -77
  199. package/variables/{login-vars.less → _login-vars.less} +3 -5
  200. package/variables/index.less +3 -3
  201. package/variables/tokens/{c8y-design-tokens-dark.less → _c8y-design-tokens-dark.less} +5 -1
  202. package/variables/tokens/{c8y-design-tokens.less → _c8y-design-tokens.less} +5 -1
  203. package/styles/components/specialized/_boxed-label.less +0 -21
  204. package/styles/components/specialized/_boxed-label.scss +0 -36
  205. package/styles/components/specialized/_c8y-cookie-banner.less +0 -22
  206. package/styles/components/specialized/_static-assets-file-picker.less +0 -8
  207. package/styles/dashboard/welcome-widget.less +0 -50
  208. package/styles/mixins/gradients.less +0 -142
  209. package/styles/mixins.less +0 -45
  210. package/styles/steps-navbar.less +0 -97
  211. package/styles/timeline-list.less +0 -210
  212. package/styles/vendor/angular/angular-ui-select/select.less +0 -161
  213. package/styles/welcome.less +0 -128
  214. /package/styles/components/{specialized → application-and-system}/_c8y-cookie-banner.scss +0 -0
  215. /package/styles/components/{specialized → application-and-system}/_c8y-login.scss +0 -0
  216. /package/styles/components/{specialized → data-display-and-visualization}/_c8y-datapoint-pill.scss +0 -0
  217. /package/styles/components/{specialized → data-display-and-visualization}/_c8y-pulse.scss +0 -0
  218. /package/styles/components/{specialized → data-display-and-visualization}/_smart-list-icon-label.scss +0 -0
  219. /package/styles/components/{specialized → data-display-and-visualization}/_status.scss +0 -0
  220. /package/styles/components/{specialized → data-display-and-visualization}/_statusContainer.scss +0 -0
  221. /package/styles/components/{specialized → data-input}/_c8y-countdown-interval.scss +0 -0
  222. /package/styles/components/{specialized → data-input}/_c8y-range.scss +0 -0
  223. /package/styles/components/{specialized → data-input}/_search-header.scss +0 -0
  224. /package/styles/components/{specialized → data-input}/_static-assets-file-picker.scss +0 -0
  225. /package/styles/components/{specialized → navigation-and-layout}/_c8y-role-card.scss +0 -0
  226. /package/styles/components/{specialized → navigation-and-layout}/_c8y-scrollbar.scss +0 -0
  227. /package/styles/components/{specialized → navigation-and-layout}/_c8y-smart-rest-tab.scss +0 -0
  228. /package/styles/components/{specialized → navigation-and-layout}/_c8y-stepper.scss +0 -0
  229. /package/styles/components/{specialized → navigation-and-layout}/_c8y-user-roles.scss +0 -0
  230. /package/styles/components/{specialized → navigation-and-layout}/_device-software-tab.scss +0 -0
  231. /package/styles/components/{specialized → status-feedback-and-notifications}/_c8y-message-banner.scss +0 -0
  232. /package/styles/components/{specialized → status-feedback-and-notifications}/_code.scss +0 -0
  233. /package/styles/mixins/{alert-variant.less → _alert-variant.less} +0 -0
  234. /package/styles/mixins/{animation.less → _animation.less} +0 -0
  235. /package/styles/mixins/{background-variant.less → _background-variant.less} +0 -0
  236. /package/styles/mixins/{border-radius.less → _border-radius.less} +0 -0
  237. /package/styles/mixins/{buttons.less → _buttons.less} +0 -0
  238. /package/styles/mixins/{c8y-scrollbar.less → _c8y-scrollbar.less} +0 -0
  239. /package/styles/mixins/{center-block.less → _center-block.less} +0 -0
  240. /package/styles/mixins/{clearfix.less → _clearfix.less} +0 -0
  241. /package/styles/mixins/{create-grid.less → _create-grid.less} +0 -0
  242. /package/styles/mixins/{grid.less → _grid.less} +0 -0
  243. /package/styles/mixins/{hide-scrollbars.less → _hide-scrollbars.less} +0 -0
  244. /package/styles/mixins/{hide-text.less → _hide-text.less} +0 -0
  245. /package/styles/mixins/{image.less → _image.less} +0 -0
  246. /package/styles/mixins/{labels.less → _labels.less} +0 -0
  247. /package/styles/mixins/{list-group.less → _list-group.less} +0 -0
  248. /package/styles/mixins/{nav-divider.less → _nav-divider.less} +0 -0
  249. /package/styles/mixins/{opacity.less → _opacity.less} +0 -0
  250. /package/styles/mixins/{pagination.less → _pagination.less} +0 -0
  251. /package/styles/mixins/{panels.less → _panels.less} +0 -0
  252. /package/styles/mixins/{reset-filter.less → _reset-filter.less} +0 -0
  253. /package/styles/mixins/{reset-text.less → _reset-text.less} +0 -0
  254. /package/styles/mixins/{resize.less → _resize.less} +0 -0
  255. /package/styles/mixins/{responsive-visibility.less → _responsive-visibility.less} +0 -0
  256. /package/styles/mixins/{size.less → _size.less} +0 -0
  257. /package/styles/mixins/{tab-focus.less → _tab-focus.less} +0 -0
  258. /package/styles/mixins/{table-row.less → _table-row.less} +0 -0
  259. /package/styles/mixins/{tag.less → _tag.less} +0 -0
  260. /package/styles/mixins/{text-emphasis.less → _text-emphasis.less} +0 -0
  261. /package/styles/mixins/{text-overflow.less → _text-overflow.less} +0 -0
  262. /package/variables/{login-vars.scss → _login-vars.scss} +0 -0
  263. /package/variables/{shadows.less → _shadows.less} +0 -0
  264. /package/variables/{shadows.scss → _shadows.scss} +0 -0
  265. /package/variables/tokens/{c8y-design-tokens-dark.scss → _c8y-design-tokens-dark.scss} +0 -0
  266. /package/variables/tokens/{c8y-design-tokens.scss → _c8y-design-tokens.scss} +0 -0
@@ -1,9 +1,26 @@
1
+
2
+ @import "../../mixins/_shadows-helper.less";
3
+ @import "../../mixins/_vendor-prefixes.less";
4
+
5
+
6
+ /**
7
+ * c8y user roles - Component styles
8
+ *
9
+ * Note: Uses @size-* tokens for spacing where applicable.
10
+ *
11
+ * Intentionally hardcoded values:
12
+ * - Component-specific dimensions: Fixed sizes for component layout
13
+ * - Off-grid spacing: Component-specific positioning
14
+ * - Border widths (1px, 2px, 3px): Standard borders
15
+ * - Font-sizes: Typography
16
+ * - Percentages: Layout
17
+ */
1
18
  .user-dot {
2
19
  display: inline-flex;
3
20
  justify-content: center;
4
21
  align-items: center;
5
22
  flex: 0 0 30px;
6
- margin-right: 10px;
23
+ margin-right: @size-10;
7
24
  width: 30px;
8
25
  height: 30px;
9
26
  border-radius: 50%;
@@ -11,15 +28,15 @@
11
28
  vertical-align: middle;
12
29
  text-align: center;
13
30
  text-transform: capitalize;
14
- font-size: 16px;
31
+ font-size: @size-16;
15
32
  line-height: 1;
16
33
  background-color: var(--brand-60, var(--c8y-brand-60));
17
34
  .owned &,
18
35
  .list-group-item & {
19
36
  width: 30px;
20
37
  height: 30px;
21
- font-size: 16px;
22
- line-height: 32px;
38
+ font-size: @size-16;
39
+ line-height: @size-32;
23
40
  }
24
41
  &.user-disabled {
25
42
  background-color: @gray-80;
@@ -29,8 +46,8 @@
29
46
  .user-list-row {
30
47
  display: flex;
31
48
  flex-flow: row wrap;
32
- margin-top: calc(@margin-base * 2);
33
- padding: @margin-16;
49
+ margin-top: calc(@size-base * 2);
50
+ padding: @size-16;
34
51
  border-radius: @component-border-radius-base;
35
52
  background-color: @component-background-default;
36
53
 
@@ -52,7 +69,7 @@
52
69
  &.user-list-header {
53
70
  display: none;
54
71
  padding: 0;
55
- min-height: 24px;
72
+ min-height: @size-24;
56
73
  background-color: transparent;
57
74
  }
58
75
  .col-expand {
@@ -77,12 +94,12 @@
77
94
  }
78
95
  .col-selector {
79
96
  display: none;
80
- font-size: 20px;
97
+ font-size: @size-20;
81
98
  }
82
99
  .col-globalroles {
83
100
  order: 10;
84
- margin: @margin-base 0;
85
- padding: @margin-4 0;
101
+ margin: @size-base 0;
102
+ padding: @size-4 0;
86
103
  width: 100%;
87
104
  .c8y-child-assets-selector .dropdown-menu.multiselect-container {
88
105
  max-width: 100%;
@@ -98,7 +115,7 @@
98
115
  align-items: center;
99
116
  flex-flow: row nowrap;
100
117
  order: 1;
101
- margin-bottom: 10px;
118
+ margin-bottom: @size-10;
102
119
  @media (max-width: @screen-md-min) {
103
120
  width: calc(~'100% - 24px') !important;
104
121
  }
@@ -108,7 +125,7 @@
108
125
  }
109
126
  .col-actions {
110
127
  order: 2;
111
- margin: calc(@margin-16 * -1) calc(@margin-16 * -1) 0 0;
128
+ margin: calc(@size-16 * -1) calc(@size-16 * -1) 0 0;
112
129
  margin-left: auto;
113
130
  }
114
131
  .col-fullname {
@@ -119,7 +136,7 @@
119
136
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), inset 0 1px 2px rgba(0, 0, 0, 0.1);
120
137
  }
121
138
  .disabled {
122
- padding-right: 5px;
139
+ padding-right: @size-5;
123
140
  color: @state-danger-text;
124
141
  font-style: italic;
125
142
  }
@@ -128,20 +145,20 @@
128
145
  @media (min-width: @screen-md-min) {
129
146
  .user-list-row.user-list-header {
130
147
  display: flex;
131
- padding-right: 40px;
148
+ padding-right: @size-40;
132
149
  box-shadow: none;
133
150
  }
134
151
  .user-list-row {
135
152
  position: relative;
136
153
  align-items: center;
137
154
  flex-flow: row wrap;
138
- margin-top: @margin-base;
139
- padding: 6px 40px 10px 0;
140
- min-height: calc(@margin-base * 7);
155
+ margin-top: @size-base;
156
+ padding: 6px @size-40 @size-10 0;
157
+ min-height: calc(@size-base * 7);
141
158
  &.page-sticky-header {
142
159
  padding-top: 0;
143
160
  padding-bottom: 0;
144
- min-height: calc(@margin-base * 6);
161
+ min-height: calc(@size-base * 6);
145
162
  }
146
163
 
147
164
  .col-expand {
@@ -162,7 +179,7 @@
162
179
  .col-username {
163
180
  flex: 0 0 auto;
164
181
  margin: 0;
165
- padding-right: 10px;
182
+ padding-right: @size-10;
166
183
  width: 250px;
167
184
  .h4 {
168
185
  font-size: 100%;
@@ -177,7 +194,7 @@
177
194
  flex: 0 0 auto;
178
195
  order: 5;
179
196
  margin: 0;
180
- padding-right: 10px;
197
+ padding-right: @size-10;
181
198
  width: 230px;
182
199
  }
183
200
  .col-globalroles {
@@ -204,15 +221,15 @@
204
221
  }
205
222
  .col-actions {
206
223
  position: absolute;
207
- top: @margin-4;
224
+ top: @size-4;
208
225
  right: 0;
209
226
  flex: 0 0 40px;
210
227
  order: 100;
211
228
  margin: 0 0 0 auto;
212
- width: 40px;
229
+ width: @size-40;
213
230
  }
214
231
  &.owns {
215
- margin-bottom: calc(@margin-base * 2);
232
+ margin-bottom: calc(@size-base * 2);
216
233
  .tip {
217
234
  position: relative;
218
235
  flex: 0 0 100%;
@@ -225,13 +242,13 @@
225
242
  right: -35px;
226
243
  left: 5px;
227
244
  z-index: -1;
228
- height: 10px;
245
+ height: @size-10;
229
246
  background-color: @component-background-default;
230
247
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), inset 0 1px 2px rgba(0, 0, 0, 0.1);
231
248
  content: '';
232
249
  }
233
250
  + .owned {
234
- margin-top: calc(@margin-base * -2);
251
+ margin-top: calc(@size-base * -2);
235
252
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), inset 0 1px 2px rgba(0, 0, 0, 0.1);
236
253
  }
237
254
  }
@@ -244,8 +261,8 @@
244
261
  .list-group-item.user {
245
262
  .col-expand {
246
263
  display: inline-block;
247
- padding-right: 5px;
248
- width: 20px;
264
+ padding-right: @size-5;
265
+ width: @size-20;
249
266
  text-align: center;
250
267
  [class^='dlt-c8y-icon-'],
251
268
  [class*=' dlt-c8y-icon-'] {
@@ -260,7 +277,7 @@
260
277
  .selection-icon {
261
278
  display: none;
262
279
  margin-left: auto;
263
- font-size: 20px;
280
+ font-size: @size-20;
264
281
  }
265
282
  input[type='checkbox'] {
266
283
  width: 0;
@@ -1,3 +1,17 @@
1
+
2
+
3
+ /**
4
+ * device software tab - 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
+ */
1
15
  c8y-software-device-tab {
2
16
  .split-view {
3
17
  @media (min-width: @screen-md-min) {
@@ -1,3 +1,25 @@
1
+
2
+ /**
3
+ * App Switcher - Application switcher dropdown component
4
+ *
5
+ * Note: Uses @size-* tokens for spacing throughout.
6
+ *
7
+ * Intentionally hardcoded values:
8
+ * - Component-specific dimensions (320px, 340px): Dropdown menu widths
9
+ * - Off-token spacing (6px): Icon margin-bottom not in token system
10
+ * - Negative positioning (-72px, -160px, -255px): Dropdown centering offsets
11
+ * - Typography sizes (12px, 36px): Font sizes for labels and icons
12
+ * - Percentages (30%, 33.3333%, 50%, 95vh): Layout and flex values
13
+ * - Border widths (1px, 2px): Standard borders and outlines
14
+ * - Border radius (2px): Standard border radius
15
+ * - Negative offsets (-2px): Fine-tuning
16
+ * - Line-height (1.2): Unitless ratio
17
+ * - Transition duration (0.25s): Animation timing
18
+ * - Box-shadow values: Inset border effects
19
+ * - RGBA values: Transparency
20
+ * - Calc expressions: Complex computed values
21
+ */
22
+
1
23
  .app-switcher-dropdown {
2
24
  position: static;
3
25
 
@@ -18,13 +40,13 @@
18
40
  display: flex;
19
41
  flex-flow: row wrap;
20
42
  margin: 0;
21
- padding: @margin-8;
43
+ padding: @size-8;
22
44
  background-color: @component-background-default;
23
45
  cursor: pointer;
24
46
  .appLink {
25
47
  flex: 0 1 33.3333%;
26
- margin: @margin-4 0;
27
- padding: calc(@margin-8 + @margin-4) @margin-8 @margin-8;
48
+ margin: @size-4 0;
49
+ padding: calc(@size-8 + @size-4) @size-8 @size-8;
28
50
  min-width: 30%;
29
51
  border: 1px solid transparent;
30
52
  border-radius: 2px;
@@ -64,7 +86,7 @@
64
86
  }
65
87
 
66
88
  .app-switcher-sagcloud {
67
- box-shadow: inset 0 -1px 0 fade(@black, 5%);
89
+ box-shadow: inset 0 -1px 0 rgba(@black, (5 / 100));
68
90
  }
69
91
 
70
92
  .dropdown-menu.app-switcher-dropdown-menu {
@@ -75,7 +97,7 @@
75
97
  max-height: calc(~'95vh - @{header-bar-height}');
76
98
  width: 320px;
77
99
 
78
- @media (min-width: 560px) and(max-width:@screen-sm-min) {
100
+ @media (min-width: 560px) and (max-width: @screen-sm-min) {
79
101
  margin-left: -72px !important;
80
102
  width: 340px;
81
103
  }
@@ -1,9 +1,33 @@
1
+
2
+ @import "../../../mixins/_shadows-helper.less";
3
+ @import "../../../mixins/_vendor-prefixes.less";
4
+
5
+ /**
6
+ * C8Y Action Bar - Fixed action bar/toolbar component
7
+ *
8
+ * Note: Uses @size-* tokens for spacing; @size-base for calculations, and @grid-gutter-width.
9
+ *
10
+ * Intentionally hardcoded values:
11
+ * - Component-specific dimensions (140px, 280px, 330px, 400px): Input and dropdown widths
12
+ * - Off-token spacing (3px, 7px, 15px, 28px): Legacy padding not in token system
13
+ * - Negative positioning (-2px): Fine-tuning
14
+ * - Clip rect values (10000px, 2000px): Large clipping dimensions
15
+ * - Typography size (1.2em): Relative font size
16
+ * - Percentages (50%, 100%): Layout and positioning
17
+ * - Border widths (1px, 2px): Standard borders and outlines
18
+ * - Negative offsets (-2px): Fine-tuning
19
+ * - Transition durations (0.35s, 0.5s): Animation timing
20
+ * - Calc expressions: Complex computed values with @headerHeight
21
+ * - Box-shadow values: Elevation effects
22
+ * - Opacity values: Visual effects
23
+ */
24
+
1
25
  .c8y-ui-action-bar {
2
- min-height: calc(@margin-base * 6);
26
+ min-height: @size-48;
3
27
  background-color: @action-bar-background-default;
4
28
  color: @action-bar-color-default;
5
29
  position: fixed;
6
- top: -4px;
30
+ top: calc(-1 * @size-4);
7
31
  right: 0;
8
32
  left: 0;
9
33
  margin: 0;
@@ -23,7 +47,7 @@
23
47
  transition: top 0.35s ease;
24
48
 
25
49
  .head-open & {
26
- top: calc(@headerHeight * 2 + 12px);
50
+ top: calc(@headerHeight * 2 + (@size-base * 1.5));
27
51
  }
28
52
  }
29
53
  }
@@ -45,7 +69,7 @@
45
69
  }
46
70
 
47
71
  &.horizontal-tabs.has-tabs {
48
- top: calc(@headerHeight * 2 - @margin-16);
72
+ top: calc(@headerHeight * 2 - @size-16);
49
73
  }
50
74
  }
51
75
  }
@@ -54,7 +78,7 @@ body:not(:has(.app-main-header)) {
54
78
  .c8y-ui-action-bar {
55
79
  top: 0;
56
80
  &.has-tabs {
57
- top: 48px;
81
+ top: @size-48;
58
82
  }
59
83
  @media (max-width: @screen-xs-max) {
60
84
  &.has-tabs {
@@ -90,7 +114,7 @@ body:not(:has(.app-main-header)) {
90
114
  transition: max-height 0.35s ease;
91
115
 
92
116
  @media (min-width: @screen-sm-min) {
93
- min-height: calc(@margin-base * 6);
117
+ min-height: calc(@size-base * 6);
94
118
  overflow: visible !important;
95
119
  display: flex;
96
120
 
@@ -137,13 +161,17 @@ body:not(:has(.app-main-header)) {
137
161
  // menu bar
138
162
  .navbar-nav {
139
163
  > .dropdown {
140
- margin-top: 5px;
164
+ margin-top: @size-5;
141
165
  vertical-align: top;
142
166
  }
143
167
 
144
168
  .dropdown-menu {
145
169
  > li > * {
146
- .text-truncate();
170
+ display: block;
171
+ overflow: hidden !important;
172
+ max-width: 100% !important;
173
+ text-overflow: ellipsis !important;
174
+ white-space: nowrap !important;
147
175
  }
148
176
  }
149
177
 
@@ -151,12 +179,12 @@ body:not(:has(.app-main-header)) {
151
179
  > .btn-group {
152
180
  display: block;
153
181
  margin: 0;
154
- padding: 3px @margin-16;
182
+ padding: 3px @size-16;
155
183
 
156
184
  @media (min-width: @screen-sm-min) {
157
185
  display: flex;
158
186
  margin: 0;
159
- padding: 7px @margin-8;
187
+ padding: 7px @size-8;
160
188
 
161
189
  &:first-child {
162
190
  padding-left: 0;
@@ -187,7 +215,7 @@ body:not(:has(.app-main-header)) {
187
215
  top: 50%;
188
216
  right: 0;
189
217
  width: 1px;
190
- height: 20px;
218
+ height: @size-20;
191
219
  content: '';
192
220
 
193
221
  .translate(0, -50%);
@@ -202,20 +230,20 @@ body:not(:has(.app-main-header)) {
202
230
 
203
231
  .btn-help {
204
232
  font-size: 1.2em;
205
- margin: 12px 0;
233
+ margin: calc(@size-base * 1.5) 0;
206
234
  }
207
235
 
208
236
  > a,
209
237
  .btn-link,
210
238
  .c8y-dropdown {
211
- padding: calc(@margin-16 - 2px) @margin-base;
239
+ padding: calc(@size-16 - 2px) @size-base;
212
240
  color: @action-bar-color-actions;
213
241
  opacity: 1;
214
242
  transition: @btn-transition;
215
243
 
216
244
  @media (max-width: @screen-xs-max) {
217
245
  display: block;
218
- padding: @margin-base @margin-16;
246
+ padding: @size-base @size-16;
219
247
  width: 100%;
220
248
  max-width: 100%;
221
249
  text-align: left;
@@ -262,7 +290,7 @@ body:not(:has(.app-main-header)) {
262
290
  }
263
291
 
264
292
  > .navbar-info {
265
- padding: 15px 10px;
293
+ padding: 15px @size-10;
266
294
  }
267
295
 
268
296
  @media (max-width: @screen-xs-max) {
@@ -284,7 +312,7 @@ body:not(:has(.app-main-header)) {
284
312
 
285
313
  li {
286
314
  button:not(.btn) {
287
- padding: 8px 16px;
315
+ padding: @size-8 @size-16;
288
316
  }
289
317
  }
290
318
  }
@@ -310,7 +338,7 @@ body:not(:has(.app-main-header)) {
310
338
  > li.navbar-form {
311
339
  display: block;
312
340
  margin-top: 0;
313
- padding: 2px @margin-16;
341
+ padding: 2px @size-16;
314
342
 
315
343
  > .c8y-select-wrapper {
316
344
  width: 100%;
@@ -326,14 +354,14 @@ body:not(:has(.app-main-header)) {
326
354
 
327
355
  // forms in toolbar
328
356
  .navbar-form {
329
- margin-top: 8px;
357
+ margin-top: @size-8;
330
358
 
331
359
  > .btn + .btn {
332
360
  margin-left: 0;
333
361
  }
334
362
 
335
363
  @media (min-width: @screen-sm-min) {
336
- min-height: calc(@margin-base * 6);
364
+ min-height: @size-48;
337
365
  // min-width: 300px;
338
366
  .datepicker > input {
339
367
  width: 140px;
@@ -344,7 +372,7 @@ body:not(:has(.app-main-header)) {
344
372
  label:not(.c8y-switch) {
345
373
  display: inline-block;
346
374
  align-self: center;
347
- margin-right: @margin-4;
375
+ margin-right: @size-4;
348
376
  margin-bottom: 0;
349
377
  color: @action-bar-color-text-muted;
350
378
  vertical-align: middle;
@@ -359,7 +387,7 @@ body:not(:has(.app-main-header)) {
359
387
 
360
388
  .form-group:not(.datepicker) {
361
389
  display: block;
362
- padding: 5px 0;
390
+ padding: @size-5 0;
363
391
  }
364
392
 
365
393
  .datepicker > input {
@@ -1,9 +1,30 @@
1
+
2
+ @import "../../../mixins/_vendor-prefixes.less";
3
+
4
+ /**
5
+ * Card Dashboard - Dashboard card component with widget containers
6
+ *
7
+ * Note: Uses @size-* tokens; @size-base; @component-padding, and @form-control-height-base.
8
+ *
9
+ * Intentionally hardcoded values:
10
+ * - Component-specific dimensions (125px, 174px): Fixed header heights for specific layouts
11
+ * - Percentages (100%): Layout and positioning
12
+ * - Z-index values (9, 11): Stacking order
13
+ * - Opacity values (0, 1): Visual states
14
+ * - Calc expressions: Complex computed values with string.unquote for dynamic heights
15
+ */
16
+
1
17
  .card.card-dashboard {
2
18
  fill: @component-color-default;
3
19
 
4
20
  .card-title,
5
21
  .card-title span {
6
- .text-truncate();
22
+ // Inline .text-truncate styles (mixin not available in SCSS)
23
+ display: block;
24
+ overflow: hidden !important;
25
+ max-width: 100% !important;
26
+ text-overflow: ellipsis !important;
27
+ white-space: nowrap !important;
7
28
  color: var(--c8y-component-color-default, var(--c8y-root-component-color-default));
8
29
  pointer-events: none;
9
30
  }
@@ -21,7 +42,7 @@
21
42
  >.card-inner-scroll {
22
43
  position: relative;
23
44
  z-index: 9;
24
- height: calc(~'100% - @{margin-48}');
45
+ height: calc(~'100% - @{size-48}');
25
46
  color: @component-color-default;
26
47
  container-type: size;
27
48
 
@@ -64,7 +85,7 @@
64
85
  }
65
86
 
66
87
  &.datepicker {
67
- padding-top: 5px;
88
+ padding-top: @size-5;
68
89
 
69
90
  +.card-inner-scroll {
70
91
  height: calc(~'100% - 174px');
@@ -139,7 +160,7 @@
139
160
  }
140
161
 
141
162
  .grid-stack-item .card+.ui-resizable-handle {
142
- margin-bottom: calc(@margin-base * -1);
163
+ margin-bottom: calc(@size-base * -1);
143
164
  }
144
165
 
145
166
  .grid-stack>.grid-stack-item>.grid-stack-item-content {
@@ -1,3 +1,18 @@
1
+
2
+ /**
3
+ * Card Flip - Flip animation container for cards
4
+ *
5
+ * Note: Uses @component-background-default for backgrounds.
6
+ *
7
+ * Intentionally hardcoded values:
8
+ * - Transition durations (0.6s): Animation timing for flip effect
9
+ * - Transform values (180deg, -180deg, 800px): 3D perspective and rotation angles
10
+ * - Percentages (100%): Layout
11
+ * - Z-index values (1, 3): Stacking order
12
+ * - Box-shadow values: Shadow effects for 3D appearance
13
+ * - RGBA values: Transparency in shadows
14
+ */
15
+
1
16
  .card-flip-container {
2
17
  display: flex;
3
18
  width: 100%;
@@ -35,7 +50,7 @@
35
50
  perspective: 800px;
36
51
  .card-front,
37
52
  .card-back {
38
- box-shadow: 0 2px 4px 1px fade(@black, 10%);
53
+ box-shadow: 0 2px 4px 1px rgba(@black, (10 / 100));
39
54
 
40
55
  transform-style: preserve-3d;
41
56
  .card-inner-scroll {
@@ -53,22 +68,34 @@
53
68
  }
54
69
 
55
70
  .interact-grid .card-flip-container {
56
- > .card-flip.flipped {
57
- .card-front {
58
- position: relative;
59
- transform: rotateY(-180deg);
71
+ > .card-flip {
72
+ perspective: 800px;
73
+
74
+ .card-front,
75
+ .card-back {
76
+ transform-style: preserve-3d;
60
77
  }
78
+
61
79
  .card-back {
62
80
  display: block;
63
- transform: rotateY(0);
64
- [class^='col-sm-'],
65
- [class*=' col-sm'],
66
- [class^='col-md-'],
67
- [class*=' col-md'],
68
- [class^='col-lg-'],
69
- [class*=' col-lg'] {
70
- float: none;
71
- width: 100%;
81
+ }
82
+
83
+ &.flipped {
84
+ .card-front {
85
+ position: relative;
86
+ transform: rotateY(-180deg);
87
+ }
88
+ .card-back {
89
+ transform: rotateY(0);
90
+ [class^='col-sm-'],
91
+ [class*=' col-sm'],
92
+ [class^='col-md-'],
93
+ [class*=' col-md'],
94
+ [class^='col-lg-'],
95
+ [class*=' col-lg'] {
96
+ float: none;
97
+ width: 100%;
98
+ }
72
99
  }
73
100
  }
74
101
  }
@@ -1,3 +1,19 @@
1
+
2
+ @import "../../../mixins/_shadows-helper.less";
3
+
4
+ /**
5
+ * Card Grid - Grid layout card variant
6
+ *
7
+ * Note: Uses @size-* tokens; @component-padding, and component color variables.
8
+ *
9
+ * Intentionally hardcoded values:
10
+ * - Component-specific dimensions (118px, 150px, 165px): Layout-specific heights for fullpage mode
11
+ * - Percentages (100%, 100vh): Layout
12
+ * - Z-index values (15, 90): Stacking order for sticky elements
13
+ * - Negative offsets (-1px): Fine-tuning for shadow borders
14
+ * - Calc expressions: Complex computed values with string.unquote
15
+ */
16
+
1
17
  .card--grid,
2
18
  .card.card--grid {
3
19
  display: grid;
@@ -6,7 +22,7 @@
6
22
  z-index: 90;
7
23
  background-color: inherit;
8
24
 
9
- .shadow-border(-1px, @component-border-color);
25
+ .shadow-border(-1px; @component-border-color);
10
26
  }
11
27
 
12
28
  .c8y-list__item__collapse--container {
@@ -17,7 +33,7 @@
17
33
  .c8y-list__item__block.sticky-top {
18
34
  background-color: @component-background-active !important;
19
35
 
20
- .shadow-border(-1px, @component-border-color);
36
+ .shadow-border(-1px; @component-border-color);
21
37
  }
22
38
 
23
39
  .c8y-list__item__collapse--container {
@@ -27,11 +43,11 @@
27
43
  }
28
44
 
29
45
  .card--grid__separator-top--white {
30
- border-top: 4px solid @component-background-default;
46
+ border-top: @size-4 solid @component-background-default;
31
47
  }
32
48
 
33
49
  .card--grid__separator-top {
34
- border-top: 4px solid @component-border-color;
50
+ border-top: @size-4 solid @component-border-color;
35
51
  }
36
52
 
37
53
  .card--grid--fullpage {