@c8y/style 1023.14.76 → 1023.14.94

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,15 +1,36 @@
1
- .c8y-help-drawer{
1
+
2
+ @import "../mixins/_c8y-scrollbar.less";
3
+ @import "../mixins/_shadows-helper.less";
4
+
5
+ /**
6
+ * Help Drawer - Fixed help panel overlay
7
+ *
8
+ * Note: Uses design tokens for spacing (@size-*; @component-padding) and colors.
9
+ *
10
+ * Intentionally hardcoded values:
11
+ * - Layout calc expressions (28px, 140px, etc.): Height calculations
12
+ * - Column widths (130ch, 55ch): Character-based column sizing
13
+ * - 84px padding: Specific footer alignment
14
+ * - 600px height breakpoint: Media query
15
+ * - Orphans/widows: Typography print control
16
+ * - Transition durations (0.5s, 0.35s): Animation timing
17
+ * - Z-index calculations: Stacking order
18
+ * - 1px borders: Standard border widths
19
+ * - 10000px, 2000px: Large clip values
20
+ */
21
+
22
+ .c8y-help-drawer {
2
23
  position: fixed;
3
24
  top: 0;
4
25
  right: 0;
5
26
  left: 0;
6
27
  z-index: (@zindex-action-bar - 1);
7
28
  margin: 0;
8
- padding-top: 48px;
9
- min-height: calc(@margin-base * 4);
29
+ padding-top: @size-48;
30
+ min-height: calc(@size-base * 4);
10
31
  max-width: 100vw;
11
32
  max-height: calc(100vh - 140px);
12
- background-color: var(--c8y-helpdrawer-background-default, @component-background-default);
33
+ background-color: var(--c8y-helpdrawer-background-default; @component-background-default);
13
34
  color: @component-color-default;
14
35
  overflow: auto;
15
36
  .c8y-scrollbar();
@@ -21,10 +42,10 @@
21
42
  columns: auto 55ch;
22
43
  orphans: 5;
23
44
  widows: 2;
24
- gap: 32px;
45
+ gap: @size-32;
25
46
  text-wrap: balance;
26
47
  p + p {
27
- margin-top: @margin-base;
48
+ margin-top: @size-base;
28
49
  }
29
50
  }
30
51
 
@@ -44,7 +65,7 @@
44
65
  transition: top 0.35s ease;
45
66
  }
46
67
  .has-tabs .head-open & {
47
- top: calc(@headerHeight * 2 + 12px);
68
+ top: calc(@headerHeight * 2 + calc(@size-base * 1.5));
48
69
  }
49
70
  }
50
71
  @media (min-width: @screen-sm-min) {
@@ -56,12 +77,12 @@
56
77
  }
57
78
  }
58
79
  @media (min-width: @grid-float-breakpoint) {
59
- .transition(left @open-menu-time-type);
80
+ transition: left @open-menu-time-type;
60
81
  .open & {
61
82
  left: @navigatorWidth;
62
83
  }
63
84
  .horizontal-tabs.has-tabs & {
64
- top: calc(@headerHeight * 2 - @margin-16);
85
+ top: calc(@headerHeight * 2 - @size-16);
65
86
  }
66
87
  }
67
88
  &-block {
@@ -1,4 +1,19 @@
1
- .checkwhiteicon(@icon) when (@icon='white') {
1
+
2
+ @import "../mixins/_shadows-helper.less";
3
+
4
+ /**
5
+ * Right Drawer - Fixed side panel navigation
6
+ *
7
+ * Note: Uses design tokens for spacing (@size-*; @component-padding), colors (@drawer-*).
8
+ *
9
+ * Intentionally hardcoded values:
10
+ * - 6px padding: Off-grid fine-tuning
11
+ * - 2px/-2px outline: Focus indicator width and offset
12
+ * - Z-index values: Stacking order
13
+ * - Percentages: Transform values
14
+ */
15
+
16
+ .checkwhiteicon(@icon) when (@icon = 'white') {
2
17
  &:before {
3
18
  color: @icon-white-color-dark;
4
19
  }
@@ -8,7 +23,7 @@
8
23
  }
9
24
  }
10
25
 
11
- .checkdarkicon(@icon) when (@icon='duo') {
26
+ .checkdarkicon(@icon) when (@icon = 'duo') {
12
27
  &:before {
13
28
  color: @icon-dark-color-dark;
14
29
  }
@@ -31,26 +46,26 @@
31
46
  z-index: @zindex-navbar-fixed + 1;
32
47
  display: flex;
33
48
  flex-direction: column;
34
- .translate(100%, 0);
35
- .transition(transform @open-menu-time-type);
36
- --sticky-top-margin: 80px;
49
+ transform: translate(100%, 0);
50
+ transition: transform @open-menu-time-type;
51
+ --sticky-top-margin: @size-80;
37
52
 
38
53
  --c8y-text-muted: var(--right-drawer-text-muted, var(--c8y-right-drawer-text-color-muted));
39
54
 
40
- --c8y-form-label-color: @drawer-color;
41
-
55
+ --c8y-form-label-color: @{drawer-color};
56
+
42
57
  --c8y-component-border-color: var(--right-drawer-separator-color, var(--c8y-right-drawer-separator-color, var(--navigator-separator-color, var(--c8y-root-component-border-color))));
43
-
58
+
44
59
  --link-color: var(--right-drawer-link-color, var(--c8y-right-drawer-link-color, var(--c8y-right-drawer-link-color-default, var(--c8y-root-component-color-link))));
45
-
60
+
46
61
  --c8y-component-color-link-hover: var(--right-drawer-link-color-hover, var(--c8y-right-drawer-link-color-hover, var(--c8y-root-component-color-link-hover)));
47
-
62
+
48
63
  @media (min-width: @screen-sm-min) {
49
64
  width: @navigatorWidth;
50
- .translate(@navigatorWidth, 0);
65
+ transform: translate(@navigatorWidth, 0);
51
66
  }
52
67
  .drawerOpen & {
53
- .translate(0, 0);
68
+ transform: translate(0, 0);
54
69
  .boxShadowHelper(md, right);
55
70
  }
56
71
 
@@ -59,26 +74,26 @@
59
74
  }
60
75
  .sticky-top {
61
76
  top: var(--sticky-top-margin);
62
- background-color: @drawer-bg!important;
77
+ background-color: @drawer-bg !important;
63
78
  }
64
79
  &__header {
65
80
  padding: @component-padding;
66
- padding-top: @margin-24;
81
+ padding-top: @size-24;
67
82
  position: sticky;
68
83
  top: 0;
69
84
  z-index: 11;
70
85
  flex-shrink: 0;
71
86
  background-color: inherit;
72
87
  .user-dot {
73
- margin-right: @margin-base;
88
+ margin-right: @size-base;
74
89
  }
75
90
 
76
91
  .close {
77
- margin-top: -16px;
92
+ margin-top: calc(@size-16 * -1);
78
93
  text-shadow: none;
79
94
  color: @drawer-color;
80
95
  font-weight: lighter;
81
- font-size: 20px;
96
+ font-size: @size-20;
82
97
 
83
98
  &:hover,
84
99
  &:focus {
@@ -104,8 +119,8 @@
104
119
  [class^='dlt-c8y-icon-'],
105
120
  [class*=' dlt-c8y-icon-'],
106
121
  .c8y-icon {
107
- font-size: 20px;
108
- margin: 4px 8px 4px 0;
122
+ font-size: @size-20;
123
+ margin: @size-4 @size-8 @size-4 0;
109
124
  }
110
125
  }
111
126
 
@@ -1,8 +1,26 @@
1
+
2
+ /**
3
+ * Top Drawer - Collapsible top navigation panel
4
+ *
5
+ * Note: Uses design tokens for spacing (@size-*), colors, and layout vars.
6
+ *
7
+ * Intentionally hardcoded values:
8
+ * - Layout calc expressions (76px, 72px, 56px, etc.): Header height combinations
9
+ * - Specific widths (170px, 273px, 272px): Drawer panel widths
10
+ * - Heights (380px, 445px, 220px): Drawer content dimensions
11
+ * - 6px, 12px: Off-grid positioning adjustments
12
+ * - 10000px, 2000px: Large clip values for overflow management
13
+ * - Transition duration (0.35s): Animation timing
14
+ * - Z-index calculations: Stacking order
15
+ * - 1px borders: Standard border widths
16
+ * - 100vw/100vh: Full viewport dimensions
17
+ */
18
+
1
19
  .c8y-top-drawer, .c8y-global-context {
2
20
  position: sticky;
3
21
  z-index: (@zindex-action-bar - 2);
4
- margin: 0 calc(@margin-base * -1);
5
- transform: translateY(-24px);
22
+ margin: 0 calc(@size-base * -1);
23
+ transform: translateY(calc(@size-24 * -1));
6
24
  max-width: 100vw;
7
25
  background-color: @component-background-default;
8
26
  color: @component-color-default;
@@ -20,11 +38,11 @@
20
38
  transition: top 0.35s ease;
21
39
  }
22
40
  .has-tabs .head-open & {
23
- top: calc(@headerHeight * 2 + 12px);
41
+ top: calc(@headerHeight * 2 + calc(@size-base * 1.5));
24
42
  }
25
43
  }
26
44
  @media (min-width: @screen-sm-min) {
27
- margin: 0 calc(@margin-base * -1);
45
+ margin: 0 calc(@size-base * -1);
28
46
  top: calc(@headerHeight + 72px);
29
47
  clip: rect(0, 10000px, 2000px, 0);
30
48
  .horizontal-tabs.has-tabs & {
@@ -32,33 +50,33 @@
32
50
  }
33
51
  }
34
52
  @media (min-width: @grid-float-breakpoint) {
35
- .transition(left @open-menu-time-type);
53
+ transition: left @open-menu-time-type;
36
54
  .horizontal-tabs.has-tabs & {
37
55
  top: calc(@headerHeight * 2 + 56px);
38
56
  }
39
57
  }
40
- :fullscreen:not(:root) &{
58
+ :fullscreen:not(:root) & {
41
59
  top: 0;
42
- margin:0;
43
- transform: translateY(-32px);
60
+ margin: 0;
61
+ transform: translateY(calc(@size-32 * -1));
44
62
  }
45
- .component-tabs.nav-tabs{
63
+ .component-tabs.nav-tabs {
46
64
  padding-top: 0;
47
65
  }
48
- &--tabs{
66
+ &--tabs {
49
67
  position: relative;
50
68
  padding-right: 0;
51
69
  background-color: var(--c8y-level-1);
52
- &::before{
70
+ &::before {
53
71
  display: none;
54
72
  }
55
73
  }
56
- &--footer{
57
- padding:@margin-24;
74
+ &--footer {
75
+ padding: @size-24;
58
76
  padding-left: var(--c8y-nav-tabs-vertical-width);
59
77
  background-color: var(--c8y-level-1);
60
78
  }
61
- &__tabs-container{
79
+ &__tabs-container {
62
80
  border-bottom: 1px solid @component-border-color;
63
81
  max-height: calc(100vh - 380px);
64
82
  height: 445px;
@@ -66,36 +84,33 @@
66
84
  }
67
85
  }
68
86
 
69
-
70
-
71
87
  .c8y-global-context {
72
88
  position: fixed;
73
89
  z-index: (@zindex-action-bar - 2);
74
- width: calc(100% - 32px);
75
- clip: rect(0, 10000px, 2000px, -16px);
90
+ width: calc(100% - @size-32);
91
+ clip: rect(0, 10000px, 2000px, calc(@size-16 * -1));
76
92
  --c8y-nav-tabs-vertical-width: 170px;
77
93
  transition: width @open-menu-time-type;
78
94
  .page-tabs-vertical .nav-tabs > div > a {
79
95
  align-items: flex-start;
80
96
  }
81
- .c8y-top-drawer--footer{
82
- --c8y-nav-tabs-vertical-width: 24px;
97
+ .c8y-top-drawer--footer {
98
+ --c8y-nav-tabs-vertical-width: @{size-24};
83
99
  }
84
100
  }
85
101
 
86
- @media(min-width: @grid-float-breakpoint){
87
- .c8y-global-context{
102
+ @media (min-width: @grid-float-breakpoint) {
103
+ .c8y-global-context {
88
104
  --c8y-nav-tabs-vertical-width: 273px;
89
- .c8y-top-drawer--footer{
90
- --c8y-nav-tabs-vertical-width: 273px;
91
- }
105
+ .c8y-top-drawer--footer {
106
+ --c8y-nav-tabs-vertical-width: 273px;
107
+ }
92
108
  }
93
109
  }
94
- body:has(.mcontainer.open){
95
- @media(min-width: @grid-float-breakpoint){
110
+ body:has(.mcontainer.open) {
111
+ @media (min-width: @grid-float-breakpoint) {
96
112
  .c8y-global-context {
97
113
  width: calc(100% - 272px);
98
114
  }
99
-
100
115
  }
101
116
  }
@@ -1,3 +1,17 @@
1
+
2
+ @import "../mixins/_grid.less";
3
+ @import "../mixins/_grid-framework.less";
4
+
5
+ /**
6
+ * Grid System - Bootstrap-based responsive grid
7
+ *
8
+ * Note: Uses design tokens for responsive breakpoints (@screen-*), container widths
9
+ * (@container-*), and spacing (@size-4).
10
+ *
11
+ * Intentionally hardcoded values:
12
+ * - 0 padding: Gutter removal utilities, not spacing
13
+ */
14
+
1
15
  // Container widths
2
16
  // Set the container width, and override it for fixed navbars in media queries.
3
17
  .container {
@@ -85,15 +99,15 @@
85
99
  }
86
100
 
87
101
  .tight-grid {
88
- margin-right: calc(@margin-4 * -1) !important;
89
- margin-left: calc(@margin-4 * -1) !important;
102
+ margin-right: calc(@size-4 * -1) !important;
103
+ margin-left: calc(@size-4 * -1) !important;
90
104
 
91
105
  .make-row();
92
106
  [class*='col-xs-'],
93
107
  [class*='col-sm-'],
94
108
  [class*='col-md-'],
95
109
  [class*='col-lg-'] {
96
- padding-right: @margin-4!important;
97
- padding-left: @margin-4!important;
110
+ padding-right: @size-4 !important;
111
+ padding-left: @size-4 !important;
98
112
  }
99
113
  }
@@ -1,8 +1,20 @@
1
+
2
+ /**
3
+ * Group Info - Information display component
4
+ *
5
+ * Note: Uses @size-20 for padding.
6
+ *
7
+ * Intentionally hardcoded values:
8
+ * - 30px/-30px: Specific horizontal spacing for layout
9
+ * - Transition duration (0.25s): Animation timing
10
+ * - Z-index: Stacking order
11
+ */
12
+
1
13
  .group-info {
2
14
  margin: 0 -30px 0;
3
- padding: 0 30px 20px;
15
+ padding: 0 30px @size-20;
4
16
 
5
- .transition(all 0.25s ease);
17
+ transition: all 0.25s ease;
6
18
  .form-editable {
7
19
  z-index: 999;
8
20
  align-self: flex-start;
@@ -1,3 +1,23 @@
1
+
2
+ @import "../mixins/_c8y-scrollbar.less";
3
+ @import "../mixins/_create-grid.less";
4
+
5
+ /**
6
+ * Layout Utilities - Grid, scrolling containers, and sticky positioning
7
+ *
8
+ * Note: Uses @size-* tokens for spacing and design tokens for colors/fonts.
9
+ *
10
+ * Intentionally hardcoded values:
11
+ * - Layout heights (64px, 112px, 160px, 208px, 365px, etc.): Header/tab/actionbar heights
12
+ * - Grid fractions (4fr, 8fr, etc.): CSS grid fractional units
13
+ * - Specific widths (300px, 360px, 500px, 560px): Breakpoint-specific column widths
14
+ * - Transition duration (0.35s): Animation timing
15
+ * - Z-index values: Stacking order
16
+ * - Percentages: Relative sizing
17
+ * - 12px margin: Off-grid legacy value for card-group spacing
18
+ * - -2px box-shadow: Border effect
19
+ */
20
+
1
21
  body {
2
22
  .c8y-scrollbar();
3
23
  }
@@ -17,7 +37,7 @@ body {
17
37
  margin-bottom: 0;
18
38
  }
19
39
  }
20
- pre.inner-scroll{
40
+ pre.inner-scroll {
21
41
  background-color: var(--c8y-pre-background);
22
42
  }
23
43
 
@@ -39,22 +59,22 @@ pre.inner-scroll{
39
59
  grid-template-columns: minmax(0, 9fr) 360px;
40
60
  }
41
61
  .grid__col--360-auto {
42
- grid-template-columns: 360px minmax(0, 1fr) ;
62
+ grid-template-columns: 360px minmax(0, 1fr);
43
63
  }
44
64
  }
45
65
 
46
66
  @media screen and (min-width: @screen-md-min) {
47
67
  .grid__col--500-auto {
48
- grid-template-columns: 500px minmax(0, 1fr) ;
68
+ grid-template-columns: 500px minmax(0, 1fr);
49
69
  }
50
70
  }
51
71
  @media screen and (min-width: @screen-md-min) {
52
72
  .grid__col--560-auto {
53
- grid-template-columns: minmax(560px, 4fr) minmax(0, 8fr) ;
73
+ grid-template-columns: minmax(560px, 4fr) minmax(0, 8fr);
54
74
  }
55
75
  }
56
76
 
57
- .grid__col--auto-300{
77
+ .grid__col--auto-300 {
58
78
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
59
79
  }
60
80
 
@@ -65,51 +85,49 @@ pre.inner-scroll{
65
85
  */
66
86
  .createGridCols3(5);
67
87
 
68
-
69
88
  // grid with 3 columns collapsed with the last column collapsed
70
89
  .grid__col--8-4-0 {
71
- @media(min-width: @screen-md-min) {
72
- transition: .35s;
90
+ @media (min-width: @screen-md-min) {
91
+ transition: 0.35s;
73
92
  grid-template-columns: 8fr 4fr 0fr;
74
93
  }
75
94
  }
76
95
 
77
96
  .grid__col--5-7-0 {
78
- @media(min-width: @screen-md-min) {
79
- transition: .35s;
97
+ @media (min-width: @screen-md-min) {
98
+ transition: 0.35s;
80
99
  grid-template-columns: 5fr 7fr 0fr;
81
100
  }
82
101
  }
83
102
 
84
103
  .grid__col--6-6-0 {
85
- @media(min-width: @screen-md-min) {
86
- transition: .35s;
104
+ @media (min-width: @screen-md-min) {
105
+ transition: 0.35s;
87
106
  grid-template-columns: 6fr 6fr 0fr;
88
107
  }
89
108
  }
90
109
  // grid with 3 columns collapsed with the first column collapsed
91
110
  .grid__col--0-4-8 {
92
- @media(min-width: @screen-md-min) {
93
- transition: .35s;
111
+ @media (min-width: @screen-md-min) {
112
+ transition: 0.35s;
94
113
  grid-template-columns: 0fr 4fr 8fr;
95
114
  }
96
115
  }
97
116
 
98
117
  .grid__col--0-7-5 {
99
- @media(min-width: @screen-md-min) {
100
- transition: .35s;
101
- grid-template-columns: 0fr 7fr 5fr;
118
+ @media (min-width: @screen-md-min) {
119
+ transition: 0.35s;
120
+ grid-template-columns: 0fr 7fr 5fr;
102
121
  }
103
122
  }
104
123
 
105
124
  .grid__col--0-6-6 {
106
- @media(min-width: @screen-md-min) {
107
- transition: .35s;
108
- grid-template-columns: 0fr 6fr 6fr;
125
+ @media (min-width: @screen-md-min) {
126
+ transition: 0.35s;
127
+ grid-template-columns: 0fr 6fr 6fr;
109
128
  }
110
129
  }
111
130
 
112
-
113
131
  /* Mixin that generate classes for setting two rows on a 12 rows grid
114
132
  * example:
115
133
  * `grid__row-4-6`
@@ -119,7 +137,7 @@ pre.inner-scroll{
119
137
 
120
138
  // create Gaps for grid and flex containers
121
139
  .gap-4 {
122
- gap: 4px;
140
+ gap: @size-4;
123
141
  }
124
142
  .createGapClasses(5);
125
143
 
@@ -193,17 +211,17 @@ pre.inner-scroll{
193
211
  position: sticky !important;
194
212
  top: 64px;
195
213
  z-index: 20;
196
- min-height: @page-sticky-header-height!important;
214
+ min-height: @page-sticky-header-height !important;
197
215
  width: 100%;
198
- background: @page-sticky-header-background-default!important;
199
- box-shadow: inset 0 -2px 0 @component-border-color!important;
216
+ background: @page-sticky-header-background-default !important;
217
+ box-shadow: inset 0 -2px 0 @component-border-color !important;
200
218
  color: @page-sticky-header-color-default;
201
219
  text-transform: @form-label-text-transform;
202
220
  font-weight: @form-label-font-weight;
203
221
  font-size: @form-label-font-size;
204
222
 
205
223
  &.c8y-list--timeline {
206
- margin-bottom: @margin-base!important;
224
+ margin-bottom: @size-base !important;
207
225
  }
208
226
  .c8y-list--timeline__item__date {
209
227
  display: flex;
@@ -220,7 +238,7 @@ pre.inner-scroll{
220
238
  }
221
239
 
222
240
  &.c8y-list--timeline {
223
- margin-bottom: @margin-8;
241
+ margin-bottom: @size-8;
224
242
  }
225
243
  label,
226
244
  p {
@@ -230,7 +248,7 @@ pre.inner-scroll{
230
248
  display: none !important;
231
249
  }
232
250
  .card-group.interact-list & {
233
- margin: 0 12px;
251
+ margin: 0 calc(@size-base * 1.5);
234
252
  background-color: @component-background-default;
235
253
  }
236
254
 
@@ -269,8 +287,8 @@ pre.inner-scroll{
269
287
  > .card-block,
270
288
  > .inner-scroll > .card-block,
271
289
  > .card-footer {
272
- padding-right: 24px;
273
- padding-left: 24px;
290
+ padding-right: @size-24;
291
+ padding-left: @size-24;
274
292
  }
275
293
  .c8y-scrollbar();
276
294
 
@@ -1,9 +1,24 @@
1
+
2
+
3
+ /**
4
+ * Main Container (mcontainer) - Primary application content container
5
+ *
6
+ * Note: Uses design tokens for spacing (@size-*; @grid-gutter-width, etc.) and layout vars.
7
+ *
8
+ * Intentionally hardcoded values:
9
+ * - Layout padding-tops (70px, 88px, 136px, 152px, 200px, etc.): Header/tab/actionbar heights
10
+ * - Min-height calc expressions (58px, 112px, 176px, 160px): Layout-specific heights
11
+ * - 16.6666666667%: 1/6 of grid (CSS grid calculation)
12
+ * - 12px: Off-grid padding for specific dashboard layout
13
+ * - 100vw/100vh: Full viewport dimensions
14
+ */
15
+
1
16
  .mcontainer {
2
17
  margin: 0;
3
18
  padding-top: 70px;
4
- min-height: calc(100vh - @margin-16);
19
+ min-height: calc(100vh - @size-16);
5
20
 
6
- .transition(margin-left @open-menu-time-type);
21
+ transition: margin-left @open-menu-time-type;
7
22
  @media (min-width: @screen-sm-min) {
8
23
  padding-top: 88px;
9
24
  padding-right: @grid-gutter-width;
@@ -54,23 +69,23 @@
54
69
  }
55
70
  }
56
71
  .dashboard {
57
- margin: -24px calc(@margin-16 * -1) 0;
58
- padding: 24px calc(@margin-base * 2) 12px;
72
+ margin: calc(@size-24 * -1) calc(@size-16 * -1) 0;
73
+ padding: @size-24 calc(@size-base * 2) calc(@size-base * 1.5);
59
74
  min-height: calc(~'100vh - 58px');
60
75
  max-width: 100vw;
61
76
  }
62
77
  @media (min-width: @screen-sm-min) {
63
78
  .dashboard {
64
- margin: -24px calc(@margin-base * -3);
65
- padding: 24px calc(@margin-base * 3);
79
+ margin: calc(@size-24 * -1) calc(@size-base * -3);
80
+ padding: @size-24 calc(@size-base * 3);
66
81
  min-height: calc(~'100vh - 112px');
67
82
  }
68
83
  }
69
84
  @media (min-width: @screen-lg) {
70
85
  .dashboard {
71
- margin-top: -24px;
72
- margin-bottom: -24px;
73
- padding-top: 24px;
86
+ margin-top: calc(@size-24 * -1);
87
+ margin-bottom: calc(@size-24 * -1);
88
+ padding-top: @size-24;
74
89
  min-height: calc(~'100vh - 112px');
75
90
  }
76
91
  }
@@ -92,7 +107,7 @@
92
107
 
93
108
  body:not(:has(.app-main-header)) {
94
109
  .mcontainer {
95
- padding-top: 16px;
110
+ padding-top: @size-16;
96
111
  @media (max-width: @screen-xs-max) {
97
112
  &.has-tabs {
98
113
  padding-top: 56px;
@@ -109,12 +124,11 @@ body:not(:has(.app-main-header)) {
109
124
  }
110
125
  }
111
126
  &.has-tabs.vertical-tabs {
112
- padding-top: 16px;
127
+ padding-top: @size-16;
113
128
  &.has-action-bar {
114
129
  padding-top: 66px;
115
130
  }
116
131
  }
117
-
118
132
  }
119
133
  }
120
134
  }