@c8y/style 1023.37.0 → 1023.42.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/branding-login.less +1 -1
  2. package/helper-scripts/README-variable-imports.md +155 -0
  3. package/helper-scripts/README.md +104 -0
  4. package/helper-scripts/convert-scss-to-less.sh +512 -0
  5. package/helper-scripts/convert-stroke-icons-to-less.js +115 -0
  6. package/helper-scripts/remove-redundant-variable-imports.sh +80 -0
  7. package/helper-scripts/scss-to-less-skip +20 -0
  8. package/{sync-scss-to-less.sh → helper-scripts/sync-scss-to-less.sh} +2 -2
  9. package/helper-scripts/test-compile.sh +71 -0
  10. package/markdown-files/MANUAL-SYNC-FILES.md +56 -0
  11. package/package.json +2 -2
  12. package/styles/_login-app.less +34 -0
  13. package/styles/_login-app.scss +2 -2
  14. package/styles/_mixins.less +47 -0
  15. package/styles/_utilities.less +21 -0
  16. package/styles/_utilities.scss +1 -0
  17. package/styles/animations/_animate.less +18 -13
  18. package/styles/animations/_component-animations.less +18 -16
  19. package/styles/animations/_realtime-animation-list.less +11 -1
  20. package/styles/animations/_spinner-snake.less +17 -2
  21. package/styles/animations/_spinner.less +24 -6
  22. package/styles/base/_normalize.less +14 -0
  23. package/styles/base/_print.less +25 -12
  24. package/styles/base/_scaffolding.less +24 -28
  25. package/styles/base/_type.less +41 -19
  26. package/styles/components/_markdown-content.less +4 -1
  27. package/styles/components/_smartrules.less +14 -8
  28. package/styles/components/_smartrules.scss +6 -2
  29. package/styles/components/application-and-system/_c8y-cookie-banner.less +36 -0
  30. package/styles/components/{specialized → application-and-system}/_c8y-login.less +20 -6
  31. package/styles/components/data-display-and-visualization/_boxed-label.less +45 -0
  32. package/styles/components/data-display-and-visualization/_boxed-label.scss +46 -0
  33. package/styles/components/{specialized → data-display-and-visualization}/_c8y-data-explorer.less +37 -23
  34. package/styles/components/{specialized → data-display-and-visualization}/_c8y-datapoint-pill.less +29 -13
  35. package/styles/components/{specialized → data-display-and-visualization}/_c8y-pulse.less +33 -6
  36. package/styles/components/data-display-and-visualization/_range-display.less +25 -16
  37. package/styles/components/{specialized → data-display-and-visualization}/_smart-list-icon-label.less +19 -5
  38. package/styles/components/{specialized → data-display-and-visualization}/_status.less +16 -2
  39. package/styles/components/{specialized → data-display-and-visualization}/_statusContainer.less +16 -2
  40. package/styles/components/data-display-and-visualization/_timelines-chart.less +2 -0
  41. package/styles/components/data-display-and-visualization/lists/_c8y-data-point-list.less +10 -0
  42. package/styles/components/data-display-and-visualization/lists/_c8y-empty-state.less +26 -12
  43. package/styles/components/data-display-and-visualization/lists/_c8y-list-group.less +83 -43
  44. package/styles/components/data-display-and-visualization/lists/_cards-layout.less +38 -16
  45. package/styles/components/data-display-and-visualization/lists/_list-group.less +46 -28
  46. package/styles/components/data-display-and-visualization/lists/_smart-rules-template-list.less +12 -1
  47. package/styles/components/data-display-and-visualization/lists/{timeline-list.less → _timeline-list.less} +46 -24
  48. package/styles/components/data-display-and-visualization/tables/_data-grid.less +45 -25
  49. package/styles/components/data-display-and-visualization/tables/_resizable-grid.less +18 -5
  50. package/styles/components/data-display-and-visualization/tables/_tables.less +25 -9
  51. package/styles/components/data-input/_c8y-ai-chat.less +1 -0
  52. package/styles/components/{specialized → data-input}/_c8y-countdown-interval.less +15 -13
  53. package/styles/components/{specialized → data-input}/_c8y-range.less +22 -6
  54. package/styles/components/{specialized → data-input}/_dtm-icon-selector.less +17 -2
  55. package/styles/components/{specialized → data-input}/_dtm-icon-selector.scss +1 -2
  56. package/styles/components/{specialized → data-input}/_measurements-time-control.less +34 -6
  57. package/styles/components/{specialized → data-input}/_measurements-time-control.scss +14 -2
  58. package/styles/components/{specialized → data-input}/_search-header.less +22 -6
  59. package/styles/components/data-input/_static-assets-file-picker.less +22 -0
  60. package/styles/components/data-input/assets/_asset-property-list.less +38 -23
  61. package/styles/components/data-input/assets/_asset-table.less +21 -3
  62. package/styles/components/data-input/assets/_c8y-asset-notes.less +13 -1
  63. package/styles/components/data-input/assets/_c8y-asset-selector-miller.less +27 -8
  64. package/styles/components/data-input/assets/_c8y-asset-selector.less +32 -15
  65. package/styles/components/data-input/assets/_c8y-child-assets-selector.less +90 -9
  66. package/styles/components/{specialized → forms}/_c8y-schema-form.less +44 -17
  67. package/styles/components/{specialized → forms}/_c8y-schema-form.scss +15 -3
  68. package/styles/components/{specialized → navigation-and-layout}/_c8y-role-card.less +21 -5
  69. package/styles/components/{specialized → navigation-and-layout}/_c8y-scrollbar.less +24 -7
  70. package/styles/components/{specialized → navigation-and-layout}/_c8y-smart-rest-tab.less +21 -6
  71. package/styles/components/{specialized → navigation-and-layout}/_c8y-stepper.less +15 -1
  72. package/styles/components/{specialized → navigation-and-layout}/_c8y-user-roles.less +45 -28
  73. package/styles/components/{specialized → navigation-and-layout}/_device-software-tab.less +14 -0
  74. package/styles/components/navigation-and-layout/action-bars/_app-switcher.less +27 -5
  75. package/styles/components/navigation-and-layout/action-bars/_c8y-action-bar.less +49 -21
  76. package/styles/components/navigation-and-layout/cards/_card-dashboard.less +25 -4
  77. package/styles/components/navigation-and-layout/cards/_card-flip.less +41 -14
  78. package/styles/components/navigation-and-layout/cards/_card-grid.less +20 -4
  79. package/styles/components/navigation-and-layout/cards/_card.less +90 -75
  80. package/styles/components/navigation-and-layout/cards/_panels.less +38 -20
  81. package/styles/components/navigation-and-layout/navigation/_breadcrumbs.less +21 -39
  82. package/styles/components/navigation-and-layout/navigation/_c8y-nav-stacked.less +26 -14
  83. package/styles/components/navigation-and-layout/navigation/_main-header.less +41 -13
  84. package/styles/components/navigation-and-layout/navigation/_main-header.scss +1 -1
  85. package/styles/components/navigation-and-layout/navigation/_navbar.less +22 -25
  86. package/styles/components/navigation-and-layout/navigation/_navbar.scss +7 -7
  87. package/styles/components/navigation-and-layout/navigation/_navigator.less +71 -69
  88. package/styles/components/navigation-and-layout/navigation/_navs.less +13 -0
  89. package/styles/components/navigation-and-layout/navigation/_pagination.less +24 -5
  90. package/styles/components/navigation-and-layout/navigation/{steps-navbar.less → _steps-navbar.less} +7 -6
  91. package/styles/components/navigation-and-layout/navigation/_tabs.less +18 -14
  92. package/styles/components/navigation-and-layout/navigation/_tabs.scss +2 -2
  93. package/styles/components/{specialized → status-feedback-and-notifications}/_c8y-message-banner.less +14 -0
  94. package/styles/components/{specialized → status-feedback-and-notifications}/_code.less +18 -2
  95. package/styles/core/buttons/_button-groups.less +29 -79
  96. package/styles/core/buttons/_buttons.less +229 -198
  97. package/styles/core/buttons/_buttons.scss +6 -10
  98. package/styles/core/feedback/_alerts.less +52 -41
  99. package/styles/core/feedback/_badges.less +29 -17
  100. package/styles/core/feedback/_close.less +24 -7
  101. package/styles/core/feedback/_labels.less +21 -8
  102. package/styles/core/feedback/_progress-bars.less +24 -7
  103. package/styles/core/feedback/_tag.less +23 -6
  104. package/styles/core/feedback/_tooltip.less +44 -20
  105. package/styles/core/forms/_c8y-switch.less +39 -19
  106. package/styles/core/forms/_c8y-switch.scss +37 -29
  107. package/styles/core/forms/_file-picker.less +79 -61
  108. package/styles/core/forms/_forms.less +130 -133
  109. package/styles/core/forms/_input-groups.less +110 -59
  110. package/styles/core/forms/_input-groups.scss +21 -3
  111. package/styles/core/overlays/_c8y-dashboard-modal.less +25 -29
  112. package/styles/core/overlays/_c8y-wizard.less +38 -15
  113. package/styles/core/overlays/_dropdowns.less +86 -63
  114. package/styles/core/overlays/_modals.less +58 -40
  115. package/styles/core/overlays/_popovers.less +25 -9
  116. package/styles/dashboard/_availability-pie.less +3 -0
  117. package/styles/dashboard/_c8y-dashboard-style.less +61 -34
  118. package/styles/dashboard/_c8y-gauges.less +20 -4
  119. package/styles/dashboard/_dashboard-widgets.less +17 -4
  120. package/styles/dashboard/_info-gauge.less +20 -5
  121. package/styles/dashboard/_quick-links-widget.less +13 -3
  122. package/styles/{welcome-widget.less → dashboard/_welcome-widget.less} +21 -4
  123. package/styles/dashboard/{welcome.less → _welcome.less} +54 -45
  124. package/styles/icons/_c8y-glyphs.less +12 -1
  125. package/styles/icons/_c8y-glyphs.scss +2 -1
  126. package/styles/icons/_c8y-icons.less +214 -199
  127. package/styles/icons/_dlt-c8y-icons-stroke.less +7238 -1834
  128. package/styles/icons/_dlt-c8y-icons.less +14 -0
  129. package/styles/icons/_marker-icons.less +10 -0
  130. package/styles/index.less +160 -134
  131. package/styles/index.scss +53 -29
  132. package/styles/layout/_bottom-drawer.less +21 -7
  133. package/styles/layout/_c8y-help-drawer.less +30 -9
  134. package/styles/layout/_c8y-right-drawer.less +34 -19
  135. package/styles/layout/_c8y-top-drawer.less +43 -28
  136. package/styles/layout/_grid.less +18 -4
  137. package/styles/layout/_group-info.less +14 -2
  138. package/styles/layout/_layouts.less +48 -30
  139. package/styles/layout/_mcontainer.less +26 -12
  140. package/styles/layout/_page-tabs.less +115 -23
  141. package/styles/layout/_split-scroll.less +16 -4
  142. package/styles/layout/_split-view.less +19 -5
  143. package/styles/login-app-use.scss +2 -2
  144. package/styles/login-app.less +4 -4
  145. package/styles/mixins/_buttons.scss +1 -0
  146. package/styles/mixins/{color-mixins.less → _color-mixins.less} +2 -2
  147. package/styles/mixins/{element-queries.less → _element-queries.less} +2 -2
  148. package/styles/mixins/{forms.less → _forms.less} +1 -1
  149. package/styles/mixins/_gradients.less +117 -0
  150. package/styles/mixins/{grid-framework.less → _grid-framework.less} +21 -21
  151. package/styles/mixins/_icon-base.less +29 -0
  152. package/styles/mixins/{nav-vertical-align.less → _nav-vertical-align.less} +6 -2
  153. package/styles/mixins/_nav-vertical-align.scss +5 -2
  154. package/styles/mixins/{progress-bar.less → _progress-bar.less} +1 -1
  155. package/styles/mixins/{shadows-helper.less → _shadows-helper.less} +3 -5
  156. package/styles/mixins/_shadows-helper.scss +1 -4
  157. package/styles/mixins/{vendor-prefixes.less → _vendor-prefixes.less} +7 -22
  158. package/styles/mixins/_vendor-prefixes.scss +1 -17
  159. package/styles/utilities/_borders.less +21 -11
  160. package/styles/{components/specialized → utilities}/_c8y-utils.less +14 -0
  161. package/styles/{components/specialized → utilities}/_c8y-utils.scss +1 -1
  162. package/styles/utilities/_caret.less +18 -4
  163. package/styles/utilities/_container-queries.less +11 -3
  164. package/styles/utilities/_contextual-colors.less +48 -119
  165. package/styles/utilities/_display.less +26 -41
  166. package/styles/utilities/_elevation.less +17 -7
  167. package/styles/utilities/_flex-containers.less +10 -0
  168. package/styles/utilities/_flex-items.less +11 -0
  169. package/styles/utilities/_icon-utils.less +15 -3
  170. package/styles/utilities/_margins-paddings.less +23 -4
  171. package/styles/utilities/_overflows.less +10 -0
  172. package/styles/utilities/_position.less +11 -0
  173. package/styles/utilities/_quickfloats.less +20 -1
  174. package/styles/utilities/_separators.less +11 -0
  175. package/styles/utilities/_shadows.less +5 -49
  176. package/styles/{utilities.less → utilities/_sizing.less} +13 -21
  177. package/styles/utilities/_text-utils.less +35 -24
  178. package/styles/vendor/ace-editor/_ace-editor.less +1 -0
  179. package/styles/vendor/angular/_loading-bar.less +1 -0
  180. package/styles/vendor/angular/_ui-sortable.less +2 -1
  181. package/styles/vendor/angular/_uib-accordion.less +1 -0
  182. package/styles/{angular-ui-select/select.less → vendor/angular/angular-ui-select/_select.less} +2 -10
  183. package/styles/vendor/cdk/_cdk-drag.less +3 -0
  184. package/styles/vendor/cdk/_cdk-tree.less +6 -3
  185. package/styles/vendor/cdk/_cdk-virtual-scroll-window.less +1 -0
  186. package/styles/vendor/datepicker/_bs-datepicker.less +26 -6
  187. package/styles/vendor/datepicker/_uib-datepicker.less +37 -4
  188. package/styles/vendor/leaflet/_c8y-map-internal.less +44 -54
  189. package/styles/vendor/leaflet/_leaflet.less +4 -1
  190. package/styles/vendor/other/_colorpicker.less +3 -2
  191. package/styles/vendor/selectize/_c8y-selectize.less +33 -10
  192. package/variables/_color-defaults.less +29 -10
  193. package/variables/_color-defaults.scss +29 -10
  194. package/variables/_color-vars.less +37 -89
  195. package/variables/_color-vars.scss +19 -77
  196. package/variables/{login-vars.less → _login-vars.less} +3 -5
  197. package/variables/index.less +3 -3
  198. package/variables/tokens/{c8y-design-tokens-dark.less → _c8y-design-tokens-dark.less} +5 -1
  199. package/variables/tokens/{c8y-design-tokens.less → _c8y-design-tokens.less} +5 -1
  200. package/styles/components/specialized/_boxed-label.less +0 -21
  201. package/styles/components/specialized/_boxed-label.scss +0 -36
  202. package/styles/components/specialized/_c8y-cookie-banner.less +0 -22
  203. package/styles/components/specialized/_static-assets-file-picker.less +0 -8
  204. package/styles/dashboard/welcome-widget.less +0 -50
  205. package/styles/mixins/gradients.less +0 -142
  206. package/styles/mixins.less +0 -45
  207. package/styles/steps-navbar.less +0 -97
  208. package/styles/timeline-list.less +0 -210
  209. package/styles/vendor/angular/angular-ui-select/select.less +0 -161
  210. package/styles/welcome.less +0 -128
  211. /package/styles/components/{specialized → application-and-system}/_c8y-cookie-banner.scss +0 -0
  212. /package/styles/components/{specialized → application-and-system}/_c8y-login.scss +0 -0
  213. /package/styles/components/{specialized → data-display-and-visualization}/_c8y-data-explorer.scss +0 -0
  214. /package/styles/components/{specialized → data-display-and-visualization}/_c8y-datapoint-pill.scss +0 -0
  215. /package/styles/components/{specialized → data-display-and-visualization}/_c8y-pulse.scss +0 -0
  216. /package/styles/components/{specialized → data-display-and-visualization}/_smart-list-icon-label.scss +0 -0
  217. /package/styles/components/{specialized → data-display-and-visualization}/_status.scss +0 -0
  218. /package/styles/components/{specialized → data-display-and-visualization}/_statusContainer.scss +0 -0
  219. /package/styles/components/{specialized → data-input}/_c8y-countdown-interval.scss +0 -0
  220. /package/styles/components/{specialized → data-input}/_c8y-range.scss +0 -0
  221. /package/styles/components/{specialized → data-input}/_search-header.scss +0 -0
  222. /package/styles/components/{specialized → data-input}/_static-assets-file-picker.scss +0 -0
  223. /package/styles/components/{specialized → navigation-and-layout}/_c8y-role-card.scss +0 -0
  224. /package/styles/components/{specialized → navigation-and-layout}/_c8y-scrollbar.scss +0 -0
  225. /package/styles/components/{specialized → navigation-and-layout}/_c8y-smart-rest-tab.scss +0 -0
  226. /package/styles/components/{specialized → navigation-and-layout}/_c8y-stepper.scss +0 -0
  227. /package/styles/components/{specialized → navigation-and-layout}/_c8y-user-roles.scss +0 -0
  228. /package/styles/components/{specialized → navigation-and-layout}/_device-software-tab.scss +0 -0
  229. /package/styles/components/{specialized → status-feedback-and-notifications}/_c8y-message-banner.scss +0 -0
  230. /package/styles/components/{specialized → status-feedback-and-notifications}/_code.scss +0 -0
  231. /package/styles/mixins/{alert-variant.less → _alert-variant.less} +0 -0
  232. /package/styles/mixins/{animation.less → _animation.less} +0 -0
  233. /package/styles/mixins/{background-variant.less → _background-variant.less} +0 -0
  234. /package/styles/mixins/{border-radius.less → _border-radius.less} +0 -0
  235. /package/styles/mixins/{buttons.less → _buttons.less} +0 -0
  236. /package/styles/mixins/{c8y-scrollbar.less → _c8y-scrollbar.less} +0 -0
  237. /package/styles/mixins/{center-block.less → _center-block.less} +0 -0
  238. /package/styles/mixins/{clearfix.less → _clearfix.less} +0 -0
  239. /package/styles/mixins/{create-grid.less → _create-grid.less} +0 -0
  240. /package/styles/mixins/{grid.less → _grid.less} +0 -0
  241. /package/styles/mixins/{hide-scrollbars.less → _hide-scrollbars.less} +0 -0
  242. /package/styles/mixins/{hide-text.less → _hide-text.less} +0 -0
  243. /package/styles/mixins/{image.less → _image.less} +0 -0
  244. /package/styles/mixins/{labels.less → _labels.less} +0 -0
  245. /package/styles/mixins/{list-group.less → _list-group.less} +0 -0
  246. /package/styles/mixins/{nav-divider.less → _nav-divider.less} +0 -0
  247. /package/styles/mixins/{opacity.less → _opacity.less} +0 -0
  248. /package/styles/mixins/{pagination.less → _pagination.less} +0 -0
  249. /package/styles/mixins/{panels.less → _panels.less} +0 -0
  250. /package/styles/mixins/{reset-filter.less → _reset-filter.less} +0 -0
  251. /package/styles/mixins/{reset-text.less → _reset-text.less} +0 -0
  252. /package/styles/mixins/{resize.less → _resize.less} +0 -0
  253. /package/styles/mixins/{responsive-visibility.less → _responsive-visibility.less} +0 -0
  254. /package/styles/mixins/{size.less → _size.less} +0 -0
  255. /package/styles/mixins/{tab-focus.less → _tab-focus.less} +0 -0
  256. /package/styles/mixins/{table-row.less → _table-row.less} +0 -0
  257. /package/styles/mixins/{tag.less → _tag.less} +0 -0
  258. /package/styles/mixins/{text-emphasis.less → _text-emphasis.less} +0 -0
  259. /package/styles/mixins/{text-overflow.less → _text-overflow.less} +0 -0
  260. /package/variables/{login-vars.scss → _login-vars.scss} +0 -0
  261. /package/variables/{shadows.less → _shadows.less} +0 -0
  262. /package/variables/{shadows.scss → _shadows.scss} +0 -0
  263. /package/variables/tokens/{c8y-design-tokens-dark.scss → _c8y-design-tokens-dark.scss} +0 -0
  264. /package/variables/tokens/{c8y-design-tokens.scss → _c8y-design-tokens.scss} +0 -0
@@ -1,3 +1,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 {