@c8y/style 1023.14.70 → 1023.14.92

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 +502 -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 +88 -42
  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 -1
  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 +22 -49
  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 +39 -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 +18 -14
  93. package/styles/components/navigation-and-layout/navigation/_tabs.scss +2 -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 +115 -23
  142. package/styles/layout/_split-scroll.less +16 -4
  143. package/styles/layout/_split-view.less +34 -2
  144. package/styles/login-app-use.scss +2 -2
  145. package/styles/login-app.less +4 -4
  146. package/styles/mixins/_buttons.scss +1 -0
  147. package/styles/mixins/{color-mixins.less → _color-mixins.less} +2 -2
  148. package/styles/mixins/{element-queries.less → _element-queries.less} +2 -2
  149. package/styles/mixins/{forms.less → _forms.less} +1 -1
  150. package/styles/mixins/_gradients.less +117 -0
  151. package/styles/mixins/{grid-framework.less → _grid-framework.less} +21 -21
  152. package/styles/mixins/_icon-base.less +29 -0
  153. package/styles/mixins/{nav-vertical-align.less → _nav-vertical-align.less} +6 -2
  154. package/styles/mixins/_nav-vertical-align.scss +5 -2
  155. package/styles/mixins/{progress-bar.less → _progress-bar.less} +1 -1
  156. package/styles/mixins/{shadows-helper.less → _shadows-helper.less} +3 -5
  157. package/styles/mixins/_shadows-helper.scss +1 -4
  158. package/styles/mixins/{vendor-prefixes.less → _vendor-prefixes.less} +7 -22
  159. package/styles/mixins/_vendor-prefixes.scss +1 -17
  160. package/styles/utilities/_borders.less +21 -11
  161. package/styles/{components/specialized → utilities}/_c8y-utils.less +14 -0
  162. package/styles/{components/specialized → utilities}/_c8y-utils.scss +1 -1
  163. package/styles/utilities/_caret.less +18 -4
  164. package/styles/utilities/_container-queries.less +11 -3
  165. package/styles/utilities/_contextual-colors.less +48 -119
  166. package/styles/utilities/_display.less +26 -41
  167. package/styles/utilities/_elevation.less +17 -7
  168. package/styles/utilities/_flex-containers.less +10 -0
  169. package/styles/utilities/_flex-items.less +11 -0
  170. package/styles/utilities/_icon-utils.less +15 -3
  171. package/styles/utilities/_margins-paddings.less +23 -4
  172. package/styles/utilities/_overflows.less +10 -0
  173. package/styles/utilities/_position.less +11 -0
  174. package/styles/utilities/_quickfloats.less +20 -1
  175. package/styles/utilities/_separators.less +11 -0
  176. package/styles/utilities/_shadows.less +5 -49
  177. package/styles/{utilities.less → utilities/_sizing.less} +13 -21
  178. package/styles/utilities/_text-utils.less +35 -24
  179. package/styles/vendor/ace-editor/_ace-editor.less +1 -0
  180. package/styles/vendor/angular/_loading-bar.less +1 -0
  181. package/styles/vendor/angular/_ui-sortable.less +2 -1
  182. package/styles/vendor/angular/_uib-accordion.less +1 -0
  183. package/styles/{angular-ui-select/select.less → vendor/angular/angular-ui-select/_select.less} +2 -10
  184. package/styles/vendor/cdk/_cdk-drag.less +3 -0
  185. package/styles/vendor/cdk/_cdk-tree.less +6 -3
  186. package/styles/vendor/cdk/_cdk-virtual-scroll-window.less +1 -0
  187. package/styles/vendor/datepicker/_bs-datepicker.less +26 -6
  188. package/styles/vendor/datepicker/_uib-datepicker.less +37 -4
  189. package/styles/vendor/leaflet/_c8y-map-internal.less +44 -54
  190. package/styles/vendor/leaflet/_leaflet.less +4 -1
  191. package/styles/vendor/other/_colorpicker.less +3 -2
  192. package/styles/vendor/selectize/_c8y-selectize.less +33 -10
  193. package/variables/_color-defaults.less +29 -10
  194. package/variables/_color-defaults.scss +29 -10
  195. package/variables/_color-vars.less +37 -89
  196. package/variables/_color-vars.scss +19 -77
  197. package/variables/{login-vars.less → _login-vars.less} +3 -5
  198. package/variables/index.less +3 -3
  199. package/variables/tokens/{c8y-design-tokens-dark.less → _c8y-design-tokens-dark.less} +5 -1
  200. package/variables/tokens/{c8y-design-tokens.less → _c8y-design-tokens.less} +5 -1
  201. package/styles/components/specialized/_boxed-label.less +0 -21
  202. package/styles/components/specialized/_boxed-label.scss +0 -36
  203. package/styles/components/specialized/_c8y-cookie-banner.less +0 -22
  204. package/styles/components/specialized/_static-assets-file-picker.less +0 -8
  205. package/styles/dashboard/welcome-widget.less +0 -50
  206. package/styles/mixins/gradients.less +0 -142
  207. package/styles/mixins.less +0 -45
  208. package/styles/steps-navbar.less +0 -97
  209. package/styles/timeline-list.less +0 -210
  210. package/styles/vendor/angular/angular-ui-select/select.less +0 -161
  211. package/styles/welcome.less +0 -128
  212. /package/styles/components/{specialized → application-and-system}/_c8y-cookie-banner.scss +0 -0
  213. /package/styles/components/{specialized → application-and-system}/_c8y-login.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,20 @@
1
+
2
+ @import "../../../mixins/_tab-focus.less";
3
+ @import "../../../mixins/_vendor-prefixes.less";
4
+
5
+ /**
6
+ * C8Y Nav Stacked - Stacked navigation list component
7
+ *
8
+ * Note: Uses @size-* tokens for spacing; @size-base for calculations, and component color variables.
9
+ *
10
+ * Intentionally hardcoded values:
11
+ * - Border widths (1px): Standard borders
12
+ * - Percentages (100%): Layout
13
+ * - Transition durations (0.25s): Animation timing
14
+ * - Box-shadow values: Borders and focus effects
15
+ * - Z-index values (10): Stacking order
16
+ */
17
+
1
18
  .c8y-nav-stacked {
2
19
  position: relative;
3
20
  z-index: 10;
@@ -13,23 +30,22 @@
13
30
  float: none;
14
31
  align-items: center;
15
32
  flex-flow: row nowrap;
16
- padding: 9px 0 9px 16px;
33
+ padding: @size-8 0 @size-8 @size-16;
17
34
  width: 100%;
18
35
  border: 0;
19
36
  background-color: @component-background-expanded;
20
37
  background-image: none;
21
38
  box-shadow: inset 0 -1px 0 @component-border-color;
22
39
  cursor: pointer;
23
-
24
40
  appearance: none;
25
- .transition(all 0.25s ease);
41
+ transition: all 0.25s ease;
26
42
 
27
43
  &:hover:not(.active) {
28
44
  background-color: @component-background-active;
29
45
  box-shadow: inset 0 0 0 1px @component-color-actions-hover;
30
46
  .ui-sortable-handle {
31
- margin-left: -16px;
32
- width: 30px;
47
+ margin-left: calc(-1 * @size-8);
48
+ margin-right: @size-8;
33
49
  outline: none;
34
50
  }
35
51
  }
@@ -43,30 +59,26 @@
43
59
  }
44
60
 
45
61
  &.active {
46
- border-left: 4px solid @component-brand-primary;
62
+ border-left: @size-4 solid @component-brand-primary;
47
63
  background-color: @component-background-default;
48
- .btn-remove {
49
- display: none;
50
- }
51
64
  }
52
65
  > .c8y-switch {
53
- margin: calc(@margin-base * -1 - 1px) 0 calc(@margin-base * -1);
66
+ margin: calc(@size-base * -1 - 1px) 0 calc(@size-base * -1);
54
67
  }
55
68
  .msgid {
56
69
  display: inline-block;
57
- min-width: 40px;
70
+ min-width: @size-40;
58
71
  }
59
72
  }
60
73
 
61
74
  &.ui-sortable .c8y-stacked-item {
62
- max-height: 40px !important;
63
75
  .ui-sortable-handle {
64
76
  overflow: hidden;
65
77
  margin-left: 0;
78
+ margin-right: 0;
66
79
  width: 0;
67
80
  text-align: center;
68
-
69
- .transition(all 0.25s ease);
81
+ transition: all 0.25s ease;
70
82
  }
71
83
  }
72
84
  }
@@ -1,6 +1,28 @@
1
+
2
+ @import "../../../mixins/_gradients.less";
3
+ @import "../../../mixins/_shadows-helper.less";
4
+ @import "../../../mixins/_tab-focus.less";
5
+ @import "../../../mixins/_vendor-prefixes.less";
6
+
7
+ /**
8
+ * Main Header - Application main header component
9
+ *
10
+ * Note: Uses @size-* tokens for spacing and @headerHeight for calculations.
11
+ *
12
+ * Intentionally hardcoded values:
13
+ * - Off-token spacing (9px, 11px, 15px): Legacy spacing not in token system
14
+ * - Border widths (1px, 2px): Standard borders
15
+ * - Percentages (50%, 100%): Layout
16
+ * - Calc expressions: Complex computed values
17
+ * - Transition durations: Animation timing
18
+ * - Box-shadow values: Elevation
19
+ * - Z-index values: Stacking order
20
+ */
21
+
22
+
1
23
  // mixin to apply horizontal gradient in header
2
- .checkHorizontalGradient(@color1; @color2) when not (@color1='') {
3
- #gradient > .horizontal(@start-color: @color1; @end-color: @color2);
24
+ .checkHorizontalGradient(@color1; @color2) when not (@color1 = '') {
25
+ .gradient-horizontal(@start-color: @color1; @end-color: @color2);
4
26
  }
5
27
 
6
28
  // APP MAIN HEADER
@@ -78,7 +100,7 @@
78
100
  justify-content: center;
79
101
  color: @header-text-color;
80
102
  border: 1px solid @header-text-color;
81
- font-size: 24px;
103
+ font-size: @size-24;
82
104
  }
83
105
 
84
106
 
@@ -86,7 +108,11 @@
86
108
  .dropdown-menu:not(.app-switcher-dropdown-menu):not(.search-mobile-menu) {
87
109
  a,
88
110
  .btn {
89
- .text-truncate();
111
+ display: block;
112
+ overflow: hidden !important;
113
+ max-width: 100% !important;
114
+ text-overflow: ellipsis !important;
115
+ white-space: nowrap !important;
90
116
  }
91
117
  }
92
118
 
@@ -95,7 +121,7 @@
95
121
  [dropdown].open .c8y-dropdown + .dropdown-menu,
96
122
  .btn-group.open .c8y-dropdown + .dropdown-menu {
97
123
  display: block;
98
- .boxShadowHelper(6, right);
124
+ .boxShadowHelper(md, right);
99
125
  }
100
126
 
101
127
  .app-switcher {
@@ -122,13 +148,13 @@ body:not(:has(.has-tabs)):not(:has(.has-action-bar)) {
122
148
  button {
123
149
  margin: 0 auto;
124
150
  width: 48px;
125
- height: 24px;
151
+ height: @size-24;
126
152
  color: @header-text-color;
127
153
  background-color: @headerColor;
128
154
  display: block;
129
155
  transition: margin 0.5s ease 0.35s;
130
156
  border: 0;
131
- border-radius: 0 0 24px 24px;
157
+ border-radius: 0 0 @size-24 @size-24;
132
158
  .boxShadowHelper(1);
133
159
 
134
160
  &:focus {
@@ -168,7 +194,7 @@ body:not(:has(.has-tabs)):not(:has(.has-action-bar)) {
168
194
  flex-flow: row wrap;
169
195
  align-items: center;
170
196
  box-shadow: var(--c8y-main-header-shadow);
171
- padding-right: @margin-24;
197
+ padding-right: @size-24;
172
198
 
173
199
  @media (min-width: @screen-sm-min) {
174
200
  min-height: @header-bar-height;
@@ -191,9 +217,9 @@ body:not(:has(.has-tabs)):not(:has(.has-action-bar)) {
191
217
  .app-noicon,
192
218
  .txt {
193
219
  transition: all @open-menu-time-type;
194
- width: 32px;
195
- margin-left: @margin-base;
196
- margin-right: @margin-base;
220
+ width: @size-32;
221
+ margin-left: @size-base;
222
+ margin-right: @size-base;
197
223
  .scale(1);
198
224
  }
199
225
 
@@ -237,7 +263,7 @@ body:not(:has(.has-tabs)):not(:has(.has-action-bar)) {
237
263
 
238
264
  .navigator-toggle,
239
265
  .drawer-toggle {
240
- font-size: 16px;
266
+ font-size: @size-16;
241
267
  padding-left: 8px;
242
268
  padding-right: 8px;
243
269
 
@@ -316,7 +342,7 @@ body:not(:has(.has-tabs)):not(:has(.has-action-bar)) {
316
342
 
317
343
  .spinner {
318
344
  position: relative;
319
- margin: 0 0 0 @margin-base;
345
+ margin: 0 0 0 @size-base;
320
346
  }
321
347
  }
322
348
 
@@ -125,7 +125,7 @@
125
125
  [dropdown].open .c8y-dropdown + .dropdown-menu,
126
126
  .btn-group.open .c8y-dropdown + .dropdown-menu {
127
127
  display: block;
128
- @include shadows-helper.boxShadowHelper(6, right);
128
+ @include shadows-helper.boxShadowHelper(md, right);
129
129
  }
130
130
 
131
131
  .app-switcher {
@@ -1,17 +1,21 @@
1
+
2
+ @import "../../../mixins/_clearfix.less";
3
+ @import "../../../mixins/_nav-vertical-align.less";
4
+ @import "../../../mixins/_vendor-prefixes.less";
5
+
1
6
  .navbar {
2
7
  position: relative;
3
8
  margin-bottom: 30px;
4
9
  min-height: @navbar-height;
5
10
  background-color: @navbar-background-default;
6
11
  // Prevent floats from breaking the navbar
7
-
8
- &:extend(.clearfix all);
12
+ .clearfix();
9
13
  }
10
14
 
11
15
  // Navbar heading
12
16
  // Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy styling of responsive aspects.
13
17
  .navbar-header {
14
- &:extend(.clearfix all);
18
+ .clearfix();
15
19
  @media (min-width: @grid-float-breakpoint) {
16
20
  float: left;
17
21
  }
@@ -24,8 +28,7 @@
24
28
  padding-left: @component-padding;
25
29
  border-top: 1px solid transparent;
26
30
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
27
-
28
- &:extend(.clearfix all);
31
+ .clearfix();
29
32
  &.in {
30
33
  overflow-y: auto;
31
34
  }
@@ -51,8 +54,8 @@
51
54
  }
52
55
  }
53
56
  @media (min-width: @screen-lg-min) {
54
- padding-right: @margin-8;
55
- padding-left: @margin-8;
57
+ padding-right: @size-8;
58
+ padding-left: @size-8;
56
59
  }
57
60
  }
58
61
 
@@ -140,12 +143,12 @@
140
143
  position: relative;
141
144
  float: right;
142
145
  margin-right: @navbar-padding-horizontal;
143
- padding: 9px 10px;
146
+ padding: 9px @size-10;
144
147
  border: 1px solid transparent;
145
148
  border-color: transparent;
146
149
  border-radius: @component-border-radius-base; // We remove the `outline` here, but later compensate by attaching `:hover`
147
150
  background-color: transparent;
148
- background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
151
+ background-image: none; // Reset unusual Firefox-on-Android default style,see https://github.com/necolas/normalize.css/issues/214
149
152
 
150
153
  .navbar-vertical-align(34px);
151
154
  &:focus {
@@ -159,7 +162,7 @@
159
162
  background-color: @navbar-color-default;
160
163
  }
161
164
  .icon-bar + .icon-bar {
162
- margin-top: 4px;
165
+ margin-top: @size-4;
163
166
  }
164
167
  &:hover,
165
168
  &:focus {
@@ -175,8 +178,8 @@
175
178
  .navbar-nav {
176
179
  margin: calc(@navbar-padding-vertical * 0.5) calc(@navbar-padding-horizontal * -1);
177
180
  > li > a {
178
- padding-top: 10px;
179
- padding-bottom: 10px;
181
+ padding-top: @size-10;
182
+ padding-bottom: @size-10;
180
183
  line-height: @line-height-computed;
181
184
  }
182
185
  @media (max-width: (@screen-sm-min - 1)) {
@@ -242,14 +245,14 @@
242
245
  >.form-group {
243
246
  display: inline-block;
244
247
  margin-bottom: 0;
245
- max-height: 32px !important;
248
+ max-height: @size-32 !important;
246
249
  vertical-align: middle;
247
250
 
248
251
  > label {
249
- margin-right: @margin-8;
252
+ margin-right: @size-8;
250
253
  }
251
254
  + .form-group {
252
- margin-left: @margin-8;
255
+ margin-left: @size-8;
253
256
  }
254
257
  }
255
258
 
@@ -302,13 +305,7 @@
302
305
  position: relative;
303
306
  margin-left: 0;
304
307
  } // Re-override the feedback icon.
305
- // Removed unused logic: .has-feedback
306
- //.has-feedback .form-control-feedback {
307
- // top: 0;
308
- //}
309
- //.has-feedback .form-control-feedback-message {
310
- // top: @form-control-height-base;
311
- //}
308
+ // Removed unused logic: .has-feedback .form-control-feedback
312
309
  }
313
310
  >.form-group {
314
311
  @media (max-width: @screen-sm-min) {
@@ -318,7 +315,7 @@
318
315
  }
319
316
  }
320
317
  } // Vertically center in expanded, horizontal navbar
321
- //.navbar-vertical-align(@form-control-height-base);
318
+ .navbar-vertical-align(@form-control-height-base);
322
319
  // Undo 100% width for pull classes
323
320
  @media (min-width: @screen-sm-min) {
324
321
  margin-right: 0;
@@ -376,10 +373,10 @@
376
373
  // Declared after the navbar components to ensure more specificity on the margins.
377
374
  @media (min-width: @screen-sm-min) {
378
375
  .navbar-left {
379
- .pull-left();
376
+ float: left !important;
380
377
  }
381
378
  .navbar-right {
382
- .pull-right();
379
+ float: right !important;
383
380
  margin-left: auto;
384
381
  flex-shrink: 0;
385
382
  ~ .navbar-right {
@@ -1,7 +1,7 @@
1
1
  @use "../../../../variables/index" as *;
2
2
 
3
3
  @use "../../../mixins/clearfix";
4
- @use "../../../mixins/nav-vertical-align";
4
+ @use "../../../mixins/nav-vertical-align" as *;
5
5
  @use "../../../mixins/vendor-prefixes";
6
6
 
7
7
  .navbar {
@@ -151,7 +151,7 @@
151
151
  background-color: transparent;
152
152
  background-image: none; // Reset unusual Firefox-on-Android default style,see https://github.com/necolas/normalize.css/issues/214
153
153
 
154
- @include nav-vertical-align.navbar-vertical-align(34px);
154
+ @include navbar-vertical-align(34px);
155
155
  &:focus {
156
156
  outline: 0;
157
157
  } // Bars
@@ -316,7 +316,7 @@
316
316
  }
317
317
  }
318
318
  } // Vertically center in expanded, horizontal navbar
319
- //.navbar-vertical-align($form-control-height-base);
319
+ @include navbar-vertical-align($form-control-height-base);
320
320
  // Undo 100% width for pull classes
321
321
  @media (min-width: $screen-sm-min) {
322
322
  margin-right: 0;
@@ -345,19 +345,19 @@
345
345
  // Buttons in navbars
346
346
  // Vertically center a button within a navbar (when *not* in a form).
347
347
  .navbar-btn {
348
- @include nav-vertical-align.navbar-vertical-align(32);
348
+ @include navbar-vertical-align(32);
349
349
  &.btn-sm {
350
- @include nav-vertical-align.navbar-vertical-align(28);
350
+ @include navbar-vertical-align(28);
351
351
  }
352
352
  &.btn-xs {
353
- @include nav-vertical-align.navbar-vertical-align(22);
353
+ @include navbar-vertical-align(22);
354
354
  }
355
355
  }
356
356
 
357
357
  // Text in navbars
358
358
  // Add a class to make any element properly align itself vertically within the navbars.
359
359
  .navbar-text {
360
- @include nav-vertical-align.navbar-vertical-align($line-height-computed);
360
+ @include navbar-vertical-align($line-height-computed);
361
361
  @media (min-width: $screen-sm-min) {
362
362
  float: left;
363
363
  margin-right: $navbar-padding-horizontal;
@@ -1,6 +1,12 @@
1
+
2
+ @import "../../../mixins/_color-mixins.less";
3
+ @import "../../../mixins/_gradients.less";
4
+ @import "../../../mixins/_shadows-helper.less";
5
+ @import "../../../mixins/_vendor-prefixes.less";
6
+
1
7
  // mixin to apply a vertical gradient in navigator
2
- .checkVerticalGradient(@color1; @color2) when not (@color1 ='') {
3
- #gradient > .vertical(@start-color: @color1; @end-color: @color2);
8
+ .checkVerticalGradient(@color1; @color2) when not (@color1 = '') {
9
+ .gradient-vertical(@start-color: @color1; @end-color: @color2);
4
10
  }
5
11
 
6
12
  .navigator {
@@ -20,7 +26,7 @@
20
26
  .checkVerticalGradient(@grad-top; @grad-bottom);
21
27
 
22
28
  @media (min-width: @screen-sm-min) {
23
- left: -(@navigatorWidth + 10);
29
+ left: calc((@navigatorWidth + 10px) * -1);
24
30
  width: @navigatorWidth;
25
31
  }
26
32
 
@@ -40,7 +46,8 @@
40
46
  padding-bottom: 0;
41
47
  }
42
48
 
43
- .tenant-brand when (@appLogo =deprecated) {
49
+ // Note: LESS guard removed - was: when (@appLogo =deprecated)
50
+ .tenant-brand {
44
51
  display: block;
45
52
 
46
53
  background-size: contain;
@@ -48,11 +55,10 @@
48
55
  background-repeat: no-repeat;
49
56
  margin: 0 auto;
50
57
  width: 208px;
51
-
52
- & when not(@extending) {
53
- background-image: @navigator-platform-logo;
54
- padding-bottom: @navigator-platform-logo-height;
55
- }
58
+
59
+ // Note: LESS guard removed - was: & when not(@extending)
60
+ background-image: @navigator-platform-logo;
61
+ padding-bottom: @navigator-platform-logo-height;
56
62
  }
57
63
  .c8y-logo {
58
64
  .tenant-brand{
@@ -68,9 +74,9 @@
68
74
  z-index: 100;
69
75
  display: flex;
70
76
  align-items: center;
71
- gap: @margin-8;
77
+ gap: @size-8;
72
78
  margin: 0;
73
- padding: @navigator-app-name-size @margin-16;
79
+ padding: @navigator-app-name-size @size-16;
74
80
  font-size: @navigator-app-name-size;
75
81
  font-weight: 600;
76
82
  text-overflow: ellipsis;
@@ -94,7 +100,7 @@
94
100
  height: 4px;
95
101
  content: '';
96
102
  background-color: @navColorHeader;
97
- .shadow-scroll();
103
+ box-shadow: 0 2px 3px fade(black, 10%);
98
104
  }
99
105
  .c8y-app-icon{
100
106
  display: contents;
@@ -117,56 +123,48 @@
117
123
  }
118
124
 
119
125
  .app-noicon {
120
- width: calc(@margin-base * 6);
121
- height: calc(@margin-base * 6);
122
- line-height: calc(@margin-base * 6);
126
+ width: calc(@size-base * 6);
127
+ height: calc(@size-base * 6);
128
+ line-height: calc(@size-base * 6);
123
129
  border: 1px solid @palette-high;
124
130
  display: block;
125
131
  margin: 0;
126
132
  }
127
133
 
128
- & when not(@appBranding='') {
129
- // hide app logo
130
- text-indent: -1000px;
131
- overflow: hidden;
132
- height: 0;
133
- min-height: 0;
134
- }
135
-
136
134
  /* Legacy support for @appLogo */
137
- &
138
- when
139
- (not(@appLogo-height =deprecated))
140
- and
141
- (not(@appLogo-height =''))
142
- and
143
- (not(@appLogo =deprecated))
144
- and
145
- (not(@appLogo ='')) {
146
- & when not(@extending) {
147
- background-image: @navigator-platform-logo;
148
- }
149
-
150
- padding-top: @appLogo-height;
151
- padding-bottom: 0;
152
- background-size: contain;
153
- background-position: center 5px;
154
- background-repeat: no-repeat;
155
- line-height: 2.85;
156
-
157
- .c8y-icon,
158
- .app-noicon {
159
- display: none !important;
160
- }
161
-
162
- span {
163
- display: block;
164
- }
165
-
166
- br {
167
- display: none;
168
- }
169
- }
135
+ // Note: The following code was conditionally applied in LESS with guards.
136
+ // In SCSS, we cannot replicate LESS guards, so this legacy code is commented out.
137
+ // If you need to hide the app logo or use legacy @appLogo variables,
138
+ // you should override these styles in your custom branding CSS.
139
+ //
140
+ // Original LESS conditions were:
141
+ // - & when not(@appBranding='')
142
+ // - & when (not(@appLogo-height =deprecated)) and (not(@appLogo-height ='')) and (not(@appLogo =deprecated)) and (not(@appLogo =''))
143
+ //
144
+ // To enable legacy app logo behavior, add this to your custom CSS:
145
+ // .navigator .title {
146
+ // text-indent: -1000px;
147
+ // overflow: hidden;
148
+ // height: 0;
149
+ // min-height: 0;
150
+ // background-image: var(--navigator-platform-logo, var(--c8y-navigator-platform-logo));
151
+ // padding-top: deprecated;
152
+ // padding-bottom: 0;
153
+ // background-size: contain;
154
+ // background-position: center 5px;
155
+ // background-repeat: no-repeat;
156
+ // line-height: 2.85;
157
+ // }
158
+ // .navigator .title .c8y-icon,
159
+ // .navigator .title .app-noicon {
160
+ // display: none !important;
161
+ // }
162
+ // .navigator .title span {
163
+ // display: block;
164
+ // }
165
+ // .navigator .title br {
166
+ // display: none;
167
+ // }
170
168
  }
171
169
 
172
170
  // Navigator content
@@ -235,7 +233,11 @@
235
233
 
236
234
  > span,
237
235
  > div {
238
- .text-truncate();
236
+ display: block;
237
+ overflow: hidden !important;
238
+ max-width: 100% !important;
239
+ text-overflow: ellipsis !important;
240
+ white-space: nowrap !important;
239
241
  background-color: transparent;
240
242
  }
241
243
 
@@ -294,7 +296,7 @@
294
296
  }
295
297
 
296
298
  &.open.active {
297
- .shadow-border(1px; rgba(0, 0, 0, 0.2));
299
+ .shadow-border(1px,rgba(0, 0, 0, 0.2));
298
300
  background: @navigator-background-selected;
299
301
  }
300
302
 
@@ -323,37 +325,37 @@
323
325
  transition: all 0.35s ease;
324
326
 
325
327
  .link {
326
- padding-left: calc(@margin-16 * 1);
328
+ padding-left: calc(@size-16 * 1);
327
329
  }
328
330
 
329
331
  .children {
330
332
  .link {
331
- padding-left: calc(@margin-16 * 1 + @margin-base);
333
+ padding-left: calc(@size-16 * 1 + @size-base);
332
334
  }
333
335
 
334
336
  .children {
335
337
  .link {
336
- padding-left: calc(@margin-16 * 1 + @margin-base * 2);
338
+ padding-left: calc(@size-16 * 1 + @size-base * 2);
337
339
  }
338
340
 
339
341
  .children {
340
342
  .link {
341
- padding-left: calc(@margin-16 * 1 + @margin-base * 3);
343
+ padding-left: calc(@size-16 * 1 + @size-base * 3);
342
344
  }
343
345
 
344
346
  .children {
345
347
  .link {
346
- padding-left: calc(@margin-16 * 1 + @margin-base * 4);
348
+ padding-left: calc(@size-16 * 1 + @size-base * 4);
347
349
  }
348
350
 
349
351
  .children {
350
352
  .link {
351
- padding-left: calc(@margin-16 * 1 + @margin-base * 5);
353
+ padding-left: calc(@size-16 * 1 + @size-base * 5);
352
354
  }
353
355
 
354
356
  .children {
355
357
  .link {
356
- padding-left: calc(@margin-16 * 1 + @margin-base * 6);
358
+ padding-left: calc(@size-16 * 1 + @size-base * 6);
357
359
  }
358
360
  }
359
361
  }
@@ -375,7 +377,7 @@
375
377
  }
376
378
 
377
379
  c8y-device-status-display {
378
- height: @margin-16;
380
+ height: @size-16;
379
381
  }
380
382
 
381
383
  .statusContainer {
@@ -428,17 +430,17 @@
428
430
  margin-top: auto;
429
431
  order: 10;
430
432
  border-top: 1px solid @navigator-separator-color;
431
- padding: 0 @margin-16;
433
+ padding: 0 @size-16;
432
434
  a{
433
435
  color: currentColor;
434
436
  }
435
437
  &:has(.c8y-logo) {
436
- padding: @margin-8 @margin-16;
438
+ padding: @size-8 @size-16;
437
439
  }
438
440
  &:has(.logo-spacer) {
439
441
  display: flex;
440
442
  flex-direction: column;
441
- gap: @margin-8;
443
+ gap: @size-8;
442
444
 
443
445
  }
444
446
  p {
@@ -1,3 +1,16 @@
1
+
2
+ /**
3
+ * Navs - Base navigation component (Bootstrap 3 legacy)
4
+ *
5
+ * Note: Uses @navlink-* variables for colors and padding, component tokens for styling.
6
+ *
7
+ * Intentionally hardcoded values:
8
+ * - Border widths (2px): Standard borders and outlines
9
+ * - Negative offsets (-2px): Fine-tuning
10
+ * - Percentages (100%): Layout
11
+ * - Opacity values: Visual states
12
+ */
13
+
1
14
  .nav {
2
15
  margin-bottom: 0;
3
16
  padding-left: 0; // Override default ul/ol