@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
@@ -3,6 +3,7 @@
3
3
  @use "../../mixins/buttons";
4
4
  @use "../../mixins/gradients";
5
5
  @use "../../mixins/opacity";
6
+ @use "../../mixins/shadows-helper";
6
7
  @use "../../mixins/tab-focus";
7
8
 
8
9
  /**
@@ -115,7 +116,6 @@
115
116
  padding-left: $btn-padding-icon-horizontal !important;
116
117
  padding-right: $btn-padding-icon-horizontal !important;
117
118
  height: $form-control-height-base;
118
- display: inline-flex;
119
119
  align-items: center;
120
120
 
121
121
  &:hover,
@@ -793,19 +793,15 @@ label + .btn-help, label .btn-help {
793
793
 
794
794
  // Button Sizes
795
795
  .btn-lg {
796
- @include buttons.button-size($btn-padding-large-vertical, $btn-padding-large-horizontal, $btn-font-size-large, $btn-line-height-large,
797
- $btn-border-radius-large, $form-control-height-lg,
798
- );
796
+ @include buttons.button-size($btn-padding-large-vertical, $btn-padding-large-horizontal, $btn-font-size-large, $btn-line-height-large, $btn-border-radius-large, $form-control-height-lg);
799
797
  }
800
798
 
801
799
  .btn-sm {
802
- @include buttons.button-size($btn-padding-small-vertical, $btn-padding-small-horizontal, $btn-font-size-small,
803
- $btn-line-height-small, $btn-border-radius-small, $form-control-height-sm);
800
+ @include buttons.button-size($btn-padding-small-vertical, $btn-padding-small-horizontal, $btn-font-size-small, $btn-line-height-small, $btn-border-radius-small, $form-control-height-sm);
804
801
  }
805
802
 
806
803
  .btn-xs {
807
- @include buttons.button-size($btn-padding-xs-vertical, $btn-padding-xs-horizontal, $btn-font-size-xs,
808
- $btn-line-height-xs, $btn-border-radius-xs, $checkbox-size);
804
+ @include buttons.button-size($btn-padding-xs-vertical, $btn-padding-xs-horizontal, $btn-font-size-xs, $btn-line-height-xs, $btn-border-radius-xs, $checkbox-size);
809
805
  position: relative;
810
806
 
811
807
  > .icon-spin {
@@ -1119,7 +1115,7 @@ input[type='button'] {
1119
1115
  z-index: -1;
1120
1116
  border-radius: calc($switch-height / 2) !important;
1121
1117
  background-color: var(--c8y-switch-handle-background, $form-control-background-default);
1122
- box-shadow: 0 2px 3px rgba(black, math.div(20, 100));
1118
+ box-shadow: 0 2px 3px rgba($black, 0.2);
1123
1119
  transition: all 0.25s ease;
1124
1120
  }
1125
1121
 
@@ -1202,7 +1198,7 @@ input[type='button'] {
1202
1198
 
1203
1199
  .dropdown.open & {
1204
1200
  background: white;
1205
- // .boxShadowHelper(4) !important;
1201
+ @include shadows-helper.boxShadowHelper(md, right);
1206
1202
  }
1207
1203
  }
1208
1204
  }
@@ -1,6 +1,35 @@
1
+ @import "../../mixins/_alert-variant.less";
2
+ @import "../../mixins/_c8y-scrollbar.less";
3
+ @import "../../mixins/_shadows-helper.less";
4
+
5
+ /**
6
+ * Alerts - Alert/notification component styles
7
+ *
8
+ * Note: Uses @alert-* variables and @size-* tokens for spacing. Uses CSS custom properties for colors.
9
+ *
10
+ * Intentionally hardcoded values:
11
+ * - Alert icon width (44px): Icon area specific size
12
+ * - Alert widths (280px, 480px): Component-specific responsive widths
13
+ * - Positioning offsets (-2px, -21px, 130px, 90px, 60px): Fine-tuning and breakpoint-specific positioning
14
+ * - Line-height (2.2): Typography ratio for icon alignment
15
+ * - Blur (3px): Backdrop filter effect
16
+ * - Transition duration (0.35s): Animation timing
17
+ * - Z-index values (1035): Stacking order
18
+ * - Percentages (50%): Color mixing
19
+ */
20
+
21
+ // Shared mixin for prompt icon coloring
22
+ .prompt-icon-color(@color) {
23
+ h3 > i,
24
+ h3 > [class^='dlt-c8y-icon-'],
25
+ h3 > [class*=' dlt-c8y-icon-'] {
26
+ color: @color;
27
+ }
28
+ }
29
+
1
30
  .alert {
2
- --c8y-btn-default-background-default: @alert-background;
3
- margin-bottom: @margin-base;
31
+ --c8y-btn-default-background-default: @{alert-background};
32
+ margin-bottom: @size-base;
4
33
  padding: @alert-padding;
5
34
  max-width: @alert-max-width;
6
35
  border-radius: @component-border-radius-base;
@@ -12,7 +41,7 @@
12
41
  > span {
13
42
  white-space: pre-line;
14
43
  }
15
-
44
+
16
45
  &:before {
17
46
  position: absolute;
18
47
  top: 0;
@@ -42,65 +71,49 @@
42
71
  margin-bottom: 0;
43
72
  }
44
73
  > p + p {
45
- margin-top: @margin-base;
74
+ margin-top: @size-base;
46
75
  }
47
76
  > .close {
48
- margin-left: @margin-8;
77
+ margin-left: @size-8;
49
78
  }
50
79
 
51
80
  &.c8y-prompt {
52
81
  margin-bottom: 0;
53
- padding: calc(@margin-base * 5);
82
+ padding: calc(@size-base * 5);
54
83
  &:before {
55
84
  content: '' !important;
56
85
  }
57
86
  h3 {
58
87
  font-weight: 500;
59
- font-size: 20px;
88
+ font-size: @size-20;
60
89
  > [class^='dlt-c8y-icon-'],
61
90
  > [class*=' dlt-c8y-icon-'] {
62
- margin-right: 4px;
63
- font-size: 24px;
91
+ margin-right: @size-4;
92
+ font-size: @size-24;
64
93
  }
65
94
  }
66
95
  .alert-footer {
67
- padding: calc(@margin-base * 5) 0 0;
96
+ padding: calc(@size-base * 5) 0 0;
68
97
  text-align: right;
69
98
  button {
70
99
  margin-bottom: 0 !important;
71
100
  }
72
101
  }
73
102
  &.alert-success {
74
- h3 > i,
75
- h3 > [class^='dlt-c8y-icon-'],
76
- h3 > [class*=' dlt-c8y-icon-'] {
77
- color: @alert-success-border;
78
- }
103
+ .prompt-icon-color(@alert-success-border);
79
104
  }
80
105
  &.alert-warning {
81
106
  &:before {
82
107
  z-index: 10;
83
108
  }
84
109
 
85
- h3 > i,
86
- h3 > [class^='dlt-c8y-icon-'],
87
- h3 > [class*=' dlt-c8y-icon-'] {
88
- color: @alert-warning-border;
89
- }
110
+ .prompt-icon-color(@alert-warning-border);
90
111
  }
91
112
  &.alert-danger {
92
- h3 > i,
93
- h3 > [class^='dlt-c8y-icon-'],
94
- h3 > [class*=' dlt-c8y-icon-'] {
95
- color: @alert-danger-border;
96
- }
113
+ .prompt-icon-color(@alert-danger-border);
97
114
  }
98
115
  &.alert-info {
99
- h3 > i,
100
- h3 > [class^='dlt-c8y-icon-'],
101
- h3 > [class*=' dlt-c8y-icon-'] {
102
- color: @alert-info-border;
103
- }
116
+ .prompt-icon-color(@alert-info-border);
104
117
  }
105
118
  }
106
119
  }
@@ -109,7 +122,7 @@
109
122
  // Expand the right padding and account for the close button's positioning.
110
123
  .alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
111
124
  .alert-dismissible {
112
- padding-right: calc(@component-padding + 20); // Adjust close link position
125
+ padding-right: calc(@component-padding + @size-20); // Adjust close link position
113
126
  .close {
114
127
  position: relative;
115
128
  top: -2px;
@@ -161,7 +174,7 @@
161
174
  overflow-x: hidden;
162
175
  overflow-y: auto;
163
176
  margin-top: @headerHeight;
164
- padding: 0 16px 16px 48px;
177
+ padding: 0 @size-16 @size-16 @size-48;
165
178
  max-height: calc(100vh - @headerHeight);
166
179
  pointer-events: auto;
167
180
 
@@ -169,7 +182,7 @@
169
182
  }
170
183
 
171
184
  .alert {
172
- margin: @margin-base @margin-24 @margin-16 auto;
185
+ margin: @size-base @size-24 @size-16 auto;
173
186
  width: 280px;
174
187
  transition: width 0.35s ease-in-out;
175
188
  pointer-events: auto;
@@ -202,22 +215,20 @@
202
215
  }
203
216
 
204
217
  // prevent double scroll bars on widgets when the alerts overlay is displayed
205
- .alerts-overlay{
206
- .card-inner-scroll{
207
- overflow: hidden!important;
218
+ .alerts-overlay {
219
+ .card-inner-scroll {
220
+ overflow: hidden !important;
208
221
  }
209
222
  }
210
223
 
211
-
212
224
  // container to hold alerts on widgets
213
225
  .inner-alert {
214
226
  position: absolute;
215
- right: 15px;
216
- left: 15px;
227
+ right: @size-16;
228
+ left: @size-16;
217
229
  z-index: 1035;
218
- top: 50%;
219
230
  .alert {
220
- margin: 0 auto 10px;
231
+ margin: 0 auto @size-10;
221
232
  } // on data-explorer
222
233
  .measurement-icon-bar & {
223
234
  top: 130px;
@@ -1,5 +1,26 @@
1
+
2
+ /**
3
+ * Badges - Small count and labeling component
4
+ *
5
+ * Note: Uses @badge-* variables and CSS custom properties (--c8y-unit-base) for sizing.
6
+ *
7
+ * Intentionally hardcoded values:
8
+ * - Box-shadow widths (1px, 2px): Border simulation via inset shadow
9
+ * - Padding (0.4em): Relative padding for scalability
10
+ * - Margin-left (3px): Fine-tuning for nav pills spacing
11
+ */
12
+
13
+ // Shared mixin for badge variants
14
+ .badge-variant(@bg-color; @text-color; @include-shadow: true) {
15
+ background-color: @bg-color;
16
+ color: @text-color;
17
+ & when (@include-shadow = true) {
18
+ box-shadow: inset 0 0 0 1px @text-color;
19
+ }
20
+ }
21
+
1
22
  .badge {
2
- display: inline-flex!important;
23
+ display: inline-flex !important;
3
24
  min-width: calc(var(--c8y-unit-base) * 2.25);
4
25
  min-height: calc(var(--c8y-unit-base) * 2.25);
5
26
  justify-content: center;
@@ -16,39 +37,30 @@
16
37
  padding: 0 0.4em;
17
38
 
18
39
  &.badge-success {
19
- background-color: @badge-background-success;
20
- color: @badge-color-success;
21
- box-shadow: inset 0 0 0 1px @badge-color-success;
40
+ .badge-variant(@badge-background-success; @badge-color-success);
22
41
  }
23
42
 
24
43
  &.badge-danger {
25
- background-color: @badge-background-danger;
26
- color: @badge-color-danger;
27
- box-shadow: inset 0 0 0 1px @badge-color-danger;
44
+ .badge-variant(@badge-background-danger; @badge-color-danger);
28
45
  }
29
46
 
30
47
  &.badge-warning {
31
- background-color: @badge-background-warning;
32
- color: @badge-color-warning;
33
- box-shadow: inset 0 0 0 1px @badge-color-warning;
48
+ .badge-variant(@badge-background-warning; @badge-color-warning);
34
49
  }
35
50
 
36
51
  &.badge-system {
37
- background-color: @badge-background-system;
38
- color: @badge-color-system;
52
+ .badge-variant(@badge-background-system; @badge-color-system; @include-shadow: false);
39
53
  }
40
54
 
41
55
  &.badge-info {
42
- background-color: @badge-background-info;
43
- box-shadow: inset 0 0 0 1px @badge-color-info;
44
- color: @badge-color-info;
56
+ .badge-variant(@badge-background-info; @badge-color-info);
45
57
  }
46
58
 
47
59
  // Empty badges collapse automatically (not available in IE8)
48
60
  &:empty {
49
61
  display: none;
50
62
  }
51
-
63
+
52
64
  a & {
53
65
  &:hover,
54
66
  &:focus {
@@ -64,7 +76,7 @@
64
76
  float: right;
65
77
  }
66
78
  .list-group-item > & + & {
67
- margin-right: 5px;
79
+ margin-right: @size-5;
68
80
  }
69
81
  .nav-pills > li > a > & {
70
82
  margin-left: 3px;
@@ -1,9 +1,26 @@
1
+
2
+ /**
3
+ * Close - Close button component for dismissible elements
4
+ *
5
+ * Note: Uses @size-* tokens for sizing. Uses color tokens.
6
+ *
7
+ * Intentionally hardcoded values:
8
+ * - Outline width (2px): Standard focus indicator
9
+ * - Outline-offset (-2px): Inset positioning
10
+ */
11
+
12
+ // Shared focus outline mixin
13
+ .close-focus-outline() {
14
+ outline: 2px solid @component-color-focus;
15
+ outline-offset: -2px;
16
+ }
17
+
1
18
  .close {
2
19
  float: right;
3
20
  color: @gray-50;
4
21
  font-weight: normal;
5
- font-size: 20px;
6
- line-height: 16px;
22
+ font-size: @size-20;
23
+ line-height: @size-16;
7
24
 
8
25
  &:hover,
9
26
  &:focus {
@@ -12,8 +29,7 @@
12
29
  cursor: pointer;
13
30
  }
14
31
  &:focus {
15
- outline: 2px solid @component-color-focus;
16
- outline-offset: -2px;
32
+ .close-focus-outline();
17
33
  }
18
34
  }
19
35
 
@@ -27,10 +43,11 @@ button.close {
27
43
  border: 0;
28
44
  background: transparent;
29
45
  cursor: pointer;
30
-
31
46
  -webkit-appearance: none;
47
+ -moz-appearance: none;
48
+ appearance: none;
49
+
32
50
  &:focus {
33
- outline: 2px solid @component-color-focus;
34
- outline-offset: -2px;
51
+ .close-focus-outline();
35
52
  }
36
53
  }
@@ -1,3 +1,17 @@
1
+ @import "../../mixins/_labels.less";
2
+
3
+ /**
4
+ * Labels - Inline label/tag component (deprecated, to be replaced by Tag)
5
+ *
6
+ * Note: Uses CSS custom properties (--c8y-font-size-xs) and @size-* tokens.
7
+ *
8
+ * Intentionally hardcoded values:
9
+ * - em-based padding/border-radius (0.2em, 0.6em, 0.25em): Relative sizing
10
+ * - Line-height (1): Unitless for proper alignment
11
+ * - Positioning offset (-1px): Fine-tuning
12
+ * - Gap (6px): Off-grid spacing for chip variant
13
+ */
14
+
1
15
  /* Remove after Codex launch. will be replaced by Tag */
2
16
 
3
17
  .label {
@@ -16,7 +30,6 @@
16
30
  a & {
17
31
  &:hover,
18
32
  &:focus {
19
- // color: @label-link-hover-color;
20
33
  text-decoration: none;
21
34
  cursor: pointer;
22
35
  }
@@ -28,16 +41,16 @@
28
41
  position: relative;
29
42
  top: -1px;
30
43
  }
31
- &.chip{
44
+ &.chip {
32
45
  display: inline-flex;
33
46
  align-items: center;
34
47
  gap: 6px;
35
- height: 20px;
36
- .btn-clean{
37
- padding: 0!important;
48
+ height: @size-20;
49
+ .btn-clean {
50
+ padding: 0 !important;
38
51
  }
39
- + .chip{
40
- margin-left: 4px;
52
+ + .chip {
53
+ margin-left: @size-4;
41
54
  }
42
55
  }
43
56
  }
@@ -63,7 +76,7 @@
63
76
  .label-info {
64
77
  color: @label-color-info;
65
78
  .label-variant(@label-background-info);
66
- &.chip{
79
+ &.chip {
67
80
  color: var(--palette-status-info-dark, var(--c8y-palette-status-info-dark));
68
81
  }
69
82
  }
@@ -1,3 +1,22 @@
1
+
2
+ @import "../../mixins/_gradients.less";
3
+ @import "../../mixins/_progress-bar.less";
4
+
5
+ /**
6
+ * Progress Bars - Progress indicator component
7
+ *
8
+ * Note: Uses @progress-* and @line-height-computed variables.
9
+ *
10
+ * Intentionally hardcoded values:
11
+ * - Background positions (40px, 0): Animation stripe pattern positioning
12
+ * - Box-shadow values (1px, 2px, -1px): Shadow depth and positioning
13
+ * - Background-size (40px 40px): Stripe pattern dimensions
14
+ * - Animation duration (2s): Animation timing
15
+ * - Transition duration (0.6s): Animation timing
16
+ * - RGBA values: Shadow opacity
17
+ * - Percentages: Width values
18
+ */
19
+
1
20
  @-webkit-keyframes progress-bar-stripes {
2
21
  from {
3
22
  background-position: 40px 0;
@@ -24,8 +43,7 @@
24
43
  height: @line-height-computed;
25
44
  border-radius: @progress-border-radius;
26
45
  background-color: @progress-bg;
27
-
28
- .box-shadow(inset 0 1px 2px rgba(0, 0, 0, 0.1));
46
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
29
47
  }
30
48
 
31
49
  // Bar of progress
@@ -38,9 +56,8 @@
38
56
  text-align: center;
39
57
  font-size: @font-size-small;
40
58
  line-height: @line-height-computed;
41
-
42
- .box-shadow(inset 0 -1px 0 rgba(0, 0, 0, 0.15));
43
- .transition(width 0.6s ease);
59
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
60
+ transition: width 0.6s ease;
44
61
  }
45
62
 
46
63
  // Striped bars
@@ -50,14 +67,14 @@
50
67
  .progress-bar-striped {
51
68
  background-size: 40px 40px;
52
69
 
53
- #gradient > .striped();
70
+ .gradient-striped();
54
71
  }
55
72
 
56
73
  // Call animation for the active one
57
74
  // `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the `.progress-bar.active` approach.
58
75
  .progress.active .progress-bar,
59
76
  .progress-bar.active {
60
- .animation(progress-bar-stripes 2s linear infinite);
77
+ animation: progress-bar-stripes 2s linear infinite;
61
78
  }
62
79
 
63
80
  // Variations
@@ -1,3 +1,17 @@
1
+ @import "../../mixins/_tag.less";
2
+
3
+ /**
4
+ * Tag - Tag/label component (replacement for Label)
5
+ *
6
+ * Note: Uses CSS custom properties (--c8y-font-size-xs) and @size-* tokens.
7
+ *
8
+ * Intentionally hardcoded values:
9
+ * - em-based padding/border-radius (0.2em, 0.6em, 0.25em): Relative sizing
10
+ * - Line-height (1): Unitless for proper alignment
11
+ * - Positioning offset (-1px): Fine-tuning
12
+ * - Gap (6px): Off-grid spacing for chip variant
13
+ */
14
+
1
15
  .tag {
2
16
  display: inline;
3
17
  padding: 0.2em 0.6em 0.2em;
@@ -11,8 +25,9 @@
11
25
  font-weight: 500;
12
26
  font-size: var(--c8y-font-size-xs);
13
27
  line-height: 1;
28
+ flex-shrink: 0;
14
29
  align-self: flex-start;
15
- .form-control &{
30
+ .form-control & {
16
31
  align-self: center;
17
32
  }
18
33
  a & {
@@ -34,13 +49,13 @@
34
49
  display: inline-flex;
35
50
  align-items: center;
36
51
  gap: 6px;
37
- height: 20px;
38
- flex: 0 1 fit-content;
52
+ height: @size-20;
53
+ flex: 0 0 fit-content;
39
54
  .btn-clean{
40
55
  padding: 0!important;
41
56
  }
42
57
  + .chip{
43
- margin-left: 4px;
58
+ margin-left: @size-4;
44
59
  }
45
60
  }
46
61
  }
@@ -66,7 +81,7 @@
66
81
  .tag--info {
67
82
  color: @tag--color-info;
68
83
  .tag--variant(@tag--background-info);
69
- &.chip{
84
+ &.chip {
70
85
  color: var(--palette-status-info-dark, var(--c8y-palette-status-info-dark));
71
86
  }
72
87
  }
@@ -79,7 +94,9 @@
79
94
  .tag--danger {
80
95
  color: @tag--color-danger;
81
96
  .tag--variant(@tag--background-danger);
82
- }// Font size inherit
97
+ }
98
+
99
+ // Font size inherit
83
100
  .text--inherit {
84
101
  font-size: inherit;
85
102
  }
@@ -1,3 +1,37 @@
1
+
2
+ @import "../../mixins/_reset-text.less";
3
+
4
+ /**
5
+ * Tooltip - Tooltip overlay component
6
+ *
7
+ * Note: Uses @tooltip-* variables and @size-8 for padding.
8
+ *
9
+ * Intentionally hardcoded values:
10
+ * - Margin offsets (±3px): Off-grid positioning fine-tuning for arrow alignment
11
+ * - Padding (3px): Off-grid vertical padding for compact tooltip
12
+ */
13
+
14
+ // Shared mixins for tooltip arrow borders
15
+ .tooltip-arrow-top-border() {
16
+ border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
17
+ border-top-color: @tooltip-arrow-color;
18
+ }
19
+
20
+ .tooltip-arrow-bottom-border() {
21
+ border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
22
+ border-bottom-color: @tooltip-arrow-color;
23
+ }
24
+
25
+ .tooltip-arrow-right-border() {
26
+ border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;
27
+ border-right-color: @tooltip-arrow-color;
28
+ }
29
+
30
+ .tooltip-arrow-left-border() {
31
+ border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;
32
+ border-left-color: @tooltip-arrow-color;
33
+ }
34
+
1
35
  .tooltip {
2
36
  position: absolute;
3
37
  z-index: @zindex-tooltip;
@@ -34,14 +68,12 @@
34
68
 
35
69
  // Wrapper for the tooltip content
36
70
  .tooltip-inner {
37
- padding: 3px 8px;
38
- // max-width: @tooltip-max-width;
39
- width: fit-content;
71
+ padding: @size-4 @size-8;
72
+ max-width: @tooltip-max-width;
40
73
  border-radius: @tooltip-radius;
41
74
  background-color: @tooltip-background-default;
42
75
  color: @tooltip-color-default;
43
76
  text-align: center;
44
- text-wrap: balance;
45
77
  white-space: pre-wrap;
46
78
  }
47
79
 
@@ -59,58 +91,50 @@
59
91
  bottom: 0;
60
92
  left: 50%;
61
93
  margin-left: calc(@tooltip-arrow-width * -1);
62
- border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
63
- border-top-color: @tooltip-arrow-color;
94
+ .tooltip-arrow-top-border();
64
95
  }
65
96
  &.top-left .tooltip-arrow,
66
97
  &.bs-tooltip-top-left .tooltip-arrow {
67
98
  right: @tooltip-arrow-width;
68
99
  bottom: 0;
69
100
  margin-bottom: calc(@tooltip-arrow-width * -1);
70
- border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
71
- border-top-color: @tooltip-arrow-color;
101
+ .tooltip-arrow-top-border();
72
102
  }
73
103
  &.top-right .tooltip-arrow,
74
104
  &.bs-tooltip-top-right .tooltip-arrow {
75
105
  bottom: 0;
76
106
  left: @tooltip-arrow-width;
77
- border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
78
- border-top-color: @tooltip-arrow-color;
107
+ .tooltip-arrow-top-border();
79
108
  }
80
109
  &.right .tooltip-arrow,
81
110
  &.bs-tooltip-right .tooltip-arrow {
82
111
  top: 50%;
83
112
  left: 0;
84
- border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;
85
- border-right-color: @tooltip-arrow-color;
113
+ .tooltip-arrow-right-border();
86
114
  }
87
115
  &.left .tooltip-arrow,
88
116
  &.bs-tooltip-left .tooltip-arrow {
89
117
  top: 50%;
90
118
  right: 0;
91
- border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;
92
- border-left-color: @tooltip-arrow-color;
119
+ .tooltip-arrow-left-border();
93
120
  }
94
121
  &.bottom .tooltip-arrow,
95
122
  &.bs-tooltip-bottom .tooltip-arrow {
96
123
  top: 0;
97
124
  left: 50%;
98
- border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
99
- border-bottom-color: @tooltip-arrow-color;
125
+ .tooltip-arrow-bottom-border();
100
126
  }
101
127
  &.bottom-left .tooltip-arrow,
102
128
  &.bs-tooltip-bottom-left .tooltip-arrow {
103
129
  top: 0;
104
130
  right: @tooltip-arrow-width;
105
- border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
106
- border-bottom-color: @tooltip-arrow-color;
131
+ .tooltip-arrow-bottom-border();
107
132
  }
108
133
  &.bottom-right .tooltip-arrow,
109
134
  &.bs-tooltip-bottom-right .tooltip-arrow {
110
135
  top: 0;
111
136
  left: @tooltip-arrow-width;
112
- border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
113
- border-bottom-color: @tooltip-arrow-color;
137
+ .tooltip-arrow-bottom-border();
114
138
  }
115
139
  }
116
140