@c8y/style 1023.14.76 → 1023.14.92

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/branding-login.less +1 -1
  2. package/helper-scripts/README-variable-imports.md +155 -0
  3. package/helper-scripts/README.md +104 -0
  4. package/helper-scripts/convert-scss-to-less.sh +502 -0
  5. package/helper-scripts/convert-stroke-icons-to-less.js +115 -0
  6. package/helper-scripts/remove-redundant-variable-imports.sh +80 -0
  7. package/helper-scripts/scss-to-less-skip +20 -0
  8. package/{sync-scss-to-less.sh → helper-scripts/sync-scss-to-less.sh} +2 -2
  9. package/helper-scripts/test-compile.sh +71 -0
  10. package/markdown-files/MANUAL-SYNC-FILES.md +56 -0
  11. package/package.json +2 -2
  12. package/styles/_login-app.less +34 -0
  13. package/styles/_login-app.scss +2 -2
  14. package/styles/_mixins.less +47 -0
  15. package/styles/_utilities.less +21 -0
  16. package/styles/_utilities.scss +1 -0
  17. package/styles/animations/_animate.less +18 -13
  18. package/styles/animations/_component-animations.less +18 -16
  19. package/styles/animations/_realtime-animation-list.less +11 -1
  20. package/styles/animations/_spinner-snake.less +17 -2
  21. package/styles/animations/_spinner.less +24 -6
  22. package/styles/base/_normalize.less +14 -0
  23. package/styles/base/_print.less +25 -12
  24. package/styles/base/_scaffolding.less +24 -28
  25. package/styles/base/_type.less +41 -19
  26. package/styles/components/_markdown-content.less +4 -1
  27. package/styles/components/_smartrules.less +14 -8
  28. package/styles/components/_smartrules.scss +6 -2
  29. package/styles/components/application-and-system/_c8y-cookie-banner.less +36 -0
  30. package/styles/components/{specialized → application-and-system}/_c8y-login.less +20 -6
  31. package/styles/components/data-display-and-visualization/_boxed-label.less +45 -0
  32. package/styles/components/data-display-and-visualization/_boxed-label.scss +46 -0
  33. package/styles/components/{specialized → data-display-and-visualization}/_c8y-data-explorer.less +76 -24
  34. package/styles/components/{specialized → data-display-and-visualization}/_c8y-data-explorer.scss +39 -1
  35. package/styles/components/{specialized → data-display-and-visualization}/_c8y-datapoint-pill.less +29 -13
  36. package/styles/components/{specialized → data-display-and-visualization}/_c8y-pulse.less +33 -6
  37. package/styles/components/data-display-and-visualization/_range-display.less +25 -16
  38. package/styles/components/{specialized → data-display-and-visualization}/_smart-list-icon-label.less +19 -5
  39. package/styles/components/{specialized → data-display-and-visualization}/_status.less +16 -2
  40. package/styles/components/{specialized → data-display-and-visualization}/_statusContainer.less +16 -2
  41. package/styles/components/data-display-and-visualization/_timelines-chart.less +2 -0
  42. package/styles/components/data-display-and-visualization/lists/_c8y-data-point-list.less +10 -0
  43. package/styles/components/data-display-and-visualization/lists/_c8y-empty-state.less +26 -12
  44. package/styles/components/data-display-and-visualization/lists/_c8y-list-group.less +88 -42
  45. package/styles/components/data-display-and-visualization/lists/_cards-layout.less +38 -16
  46. package/styles/components/data-display-and-visualization/lists/_list-group.less +46 -28
  47. package/styles/components/data-display-and-visualization/lists/_smart-rules-template-list.less +12 -1
  48. package/styles/components/data-display-and-visualization/lists/{timeline-list.less → _timeline-list.less} +46 -24
  49. package/styles/components/data-display-and-visualization/tables/_data-grid.less +45 -25
  50. package/styles/components/data-display-and-visualization/tables/_resizable-grid.less +18 -1
  51. package/styles/components/data-display-and-visualization/tables/_tables.less +25 -9
  52. package/styles/components/data-input/_c8y-ai-chat.less +1 -0
  53. package/styles/components/{specialized → data-input}/_c8y-countdown-interval.less +15 -13
  54. package/styles/components/{specialized → data-input}/_c8y-range.less +22 -6
  55. package/styles/components/{specialized → data-input}/_dtm-icon-selector.less +17 -2
  56. package/styles/components/{specialized → data-input}/_dtm-icon-selector.scss +1 -2
  57. package/styles/components/{specialized → data-input}/_measurements-time-control.less +34 -6
  58. package/styles/components/{specialized → data-input}/_measurements-time-control.scss +14 -2
  59. package/styles/components/{specialized → data-input}/_search-header.less +22 -6
  60. package/styles/components/data-input/_static-assets-file-picker.less +22 -0
  61. package/styles/components/data-input/assets/_asset-property-list.less +38 -23
  62. package/styles/components/data-input/assets/_asset-table.less +21 -3
  63. package/styles/components/data-input/assets/_c8y-asset-notes.less +13 -1
  64. package/styles/components/data-input/assets/_c8y-asset-selector-miller.less +27 -8
  65. package/styles/components/data-input/assets/_c8y-asset-selector.less +32 -15
  66. package/styles/components/data-input/assets/_c8y-child-assets-selector.less +90 -9
  67. package/styles/components/{specialized → forms}/_c8y-schema-form.less +44 -17
  68. package/styles/components/{specialized → forms}/_c8y-schema-form.scss +15 -3
  69. package/styles/components/{specialized → navigation-and-layout}/_c8y-role-card.less +21 -5
  70. package/styles/components/{specialized → navigation-and-layout}/_c8y-scrollbar.less +24 -7
  71. package/styles/components/{specialized → navigation-and-layout}/_c8y-smart-rest-tab.less +21 -6
  72. package/styles/components/{specialized → navigation-and-layout}/_c8y-stepper.less +15 -1
  73. package/styles/components/{specialized → navigation-and-layout}/_c8y-user-roles.less +45 -28
  74. package/styles/components/{specialized → navigation-and-layout}/_device-software-tab.less +14 -0
  75. package/styles/components/navigation-and-layout/action-bars/_app-switcher.less +27 -5
  76. package/styles/components/navigation-and-layout/action-bars/_c8y-action-bar.less +49 -21
  77. package/styles/components/navigation-and-layout/cards/_card-dashboard.less +25 -4
  78. package/styles/components/navigation-and-layout/cards/_card-flip.less +41 -14
  79. package/styles/components/navigation-and-layout/cards/_card-grid.less +20 -4
  80. package/styles/components/navigation-and-layout/cards/_card.less +90 -75
  81. package/styles/components/navigation-and-layout/cards/_panels.less +38 -20
  82. package/styles/components/navigation-and-layout/navigation/_breadcrumbs.less +22 -49
  83. package/styles/components/navigation-and-layout/navigation/_c8y-nav-stacked.less +26 -14
  84. package/styles/components/navigation-and-layout/navigation/_main-header.less +39 -13
  85. package/styles/components/navigation-and-layout/navigation/_main-header.scss +1 -1
  86. package/styles/components/navigation-and-layout/navigation/_navbar.less +22 -25
  87. package/styles/components/navigation-and-layout/navigation/_navbar.scss +7 -7
  88. package/styles/components/navigation-and-layout/navigation/_navigator.less +71 -69
  89. package/styles/components/navigation-and-layout/navigation/_navs.less +13 -0
  90. package/styles/components/navigation-and-layout/navigation/_pagination.less +24 -5
  91. package/styles/components/navigation-and-layout/navigation/{steps-navbar.less → _steps-navbar.less} +7 -6
  92. package/styles/components/navigation-and-layout/navigation/_tabs.less +18 -14
  93. package/styles/components/navigation-and-layout/navigation/_tabs.scss +2 -2
  94. package/styles/components/{specialized → status-feedback-and-notifications}/_c8y-message-banner.less +14 -0
  95. package/styles/components/{specialized → status-feedback-and-notifications}/_code.less +18 -2
  96. package/styles/core/buttons/_button-groups.less +29 -79
  97. package/styles/core/buttons/_buttons.less +229 -198
  98. package/styles/core/buttons/_buttons.scss +6 -10
  99. package/styles/core/feedback/_alerts.less +52 -41
  100. package/styles/core/feedback/_badges.less +29 -17
  101. package/styles/core/feedback/_close.less +24 -7
  102. package/styles/core/feedback/_labels.less +21 -8
  103. package/styles/core/feedback/_progress-bars.less +24 -7
  104. package/styles/core/feedback/_tag.less +23 -6
  105. package/styles/core/feedback/_tooltip.less +44 -20
  106. package/styles/core/forms/_c8y-switch.less +39 -19
  107. package/styles/core/forms/_c8y-switch.scss +37 -29
  108. package/styles/core/forms/_file-picker.less +79 -61
  109. package/styles/core/forms/_forms.less +130 -133
  110. package/styles/core/forms/_input-groups.less +110 -59
  111. package/styles/core/forms/_input-groups.scss +21 -3
  112. package/styles/core/overlays/_c8y-dashboard-modal.less +25 -29
  113. package/styles/core/overlays/_c8y-wizard.less +38 -15
  114. package/styles/core/overlays/_dropdowns.less +86 -63
  115. package/styles/core/overlays/_modals.less +58 -40
  116. package/styles/core/overlays/_popovers.less +25 -9
  117. package/styles/dashboard/_availability-pie.less +3 -0
  118. package/styles/dashboard/_c8y-dashboard-style.less +61 -34
  119. package/styles/dashboard/_c8y-gauges.less +20 -4
  120. package/styles/dashboard/_dashboard-widgets.less +17 -4
  121. package/styles/dashboard/_info-gauge.less +20 -5
  122. package/styles/dashboard/_quick-links-widget.less +13 -3
  123. package/styles/{welcome-widget.less → dashboard/_welcome-widget.less} +21 -4
  124. package/styles/dashboard/{welcome.less → _welcome.less} +54 -45
  125. package/styles/icons/_c8y-glyphs.less +12 -1
  126. package/styles/icons/_c8y-glyphs.scss +2 -1
  127. package/styles/icons/_c8y-icons.less +214 -199
  128. package/styles/icons/_dlt-c8y-icons-stroke.less +7238 -1834
  129. package/styles/icons/_dlt-c8y-icons.less +14 -0
  130. package/styles/icons/_marker-icons.less +10 -0
  131. package/styles/index.less +160 -134
  132. package/styles/index.scss +53 -29
  133. package/styles/layout/_bottom-drawer.less +21 -7
  134. package/styles/layout/_c8y-help-drawer.less +30 -9
  135. package/styles/layout/_c8y-right-drawer.less +34 -19
  136. package/styles/layout/_c8y-top-drawer.less +43 -28
  137. package/styles/layout/_grid.less +18 -4
  138. package/styles/layout/_group-info.less +14 -2
  139. package/styles/layout/_layouts.less +48 -30
  140. package/styles/layout/_mcontainer.less +26 -12
  141. package/styles/layout/_page-tabs.less +115 -23
  142. package/styles/layout/_split-scroll.less +16 -4
  143. package/styles/layout/_split-view.less +34 -2
  144. package/styles/login-app-use.scss +2 -2
  145. package/styles/login-app.less +4 -4
  146. package/styles/mixins/_buttons.scss +1 -0
  147. package/styles/mixins/{color-mixins.less → _color-mixins.less} +2 -2
  148. package/styles/mixins/{element-queries.less → _element-queries.less} +2 -2
  149. package/styles/mixins/{forms.less → _forms.less} +1 -1
  150. package/styles/mixins/_gradients.less +117 -0
  151. package/styles/mixins/{grid-framework.less → _grid-framework.less} +21 -21
  152. package/styles/mixins/_icon-base.less +29 -0
  153. package/styles/mixins/{nav-vertical-align.less → _nav-vertical-align.less} +6 -2
  154. package/styles/mixins/_nav-vertical-align.scss +5 -2
  155. package/styles/mixins/{progress-bar.less → _progress-bar.less} +1 -1
  156. package/styles/mixins/{shadows-helper.less → _shadows-helper.less} +3 -5
  157. package/styles/mixins/_shadows-helper.scss +1 -4
  158. package/styles/mixins/{vendor-prefixes.less → _vendor-prefixes.less} +7 -22
  159. package/styles/mixins/_vendor-prefixes.scss +1 -17
  160. package/styles/utilities/_borders.less +21 -11
  161. package/styles/{components/specialized → utilities}/_c8y-utils.less +14 -0
  162. package/styles/{components/specialized → utilities}/_c8y-utils.scss +1 -1
  163. package/styles/utilities/_caret.less +18 -4
  164. package/styles/utilities/_container-queries.less +11 -3
  165. package/styles/utilities/_contextual-colors.less +48 -119
  166. package/styles/utilities/_display.less +26 -41
  167. package/styles/utilities/_elevation.less +17 -7
  168. package/styles/utilities/_flex-containers.less +10 -0
  169. package/styles/utilities/_flex-items.less +11 -0
  170. package/styles/utilities/_icon-utils.less +15 -3
  171. package/styles/utilities/_margins-paddings.less +23 -4
  172. package/styles/utilities/_overflows.less +10 -0
  173. package/styles/utilities/_position.less +11 -0
  174. package/styles/utilities/_quickfloats.less +20 -1
  175. package/styles/utilities/_separators.less +11 -0
  176. package/styles/utilities/_shadows.less +5 -49
  177. package/styles/{utilities.less → utilities/_sizing.less} +13 -21
  178. package/styles/utilities/_text-utils.less +35 -24
  179. package/styles/vendor/ace-editor/_ace-editor.less +1 -0
  180. package/styles/vendor/angular/_loading-bar.less +1 -0
  181. package/styles/vendor/angular/_ui-sortable.less +2 -1
  182. package/styles/vendor/angular/_uib-accordion.less +1 -0
  183. package/styles/{angular-ui-select/select.less → vendor/angular/angular-ui-select/_select.less} +2 -10
  184. package/styles/vendor/cdk/_cdk-drag.less +3 -0
  185. package/styles/vendor/cdk/_cdk-tree.less +6 -3
  186. package/styles/vendor/cdk/_cdk-virtual-scroll-window.less +1 -0
  187. package/styles/vendor/datepicker/_bs-datepicker.less +26 -6
  188. package/styles/vendor/datepicker/_uib-datepicker.less +37 -4
  189. package/styles/vendor/leaflet/_c8y-map-internal.less +44 -54
  190. package/styles/vendor/leaflet/_leaflet.less +4 -1
  191. package/styles/vendor/other/_colorpicker.less +3 -2
  192. package/styles/vendor/selectize/_c8y-selectize.less +33 -10
  193. package/variables/_color-defaults.less +29 -10
  194. package/variables/_color-defaults.scss +29 -10
  195. package/variables/_color-vars.less +37 -89
  196. package/variables/_color-vars.scss +19 -77
  197. package/variables/{login-vars.less → _login-vars.less} +3 -5
  198. package/variables/index.less +3 -3
  199. package/variables/tokens/{c8y-design-tokens-dark.less → _c8y-design-tokens-dark.less} +5 -1
  200. package/variables/tokens/{c8y-design-tokens.less → _c8y-design-tokens.less} +5 -1
  201. package/styles/components/specialized/_boxed-label.less +0 -21
  202. package/styles/components/specialized/_boxed-label.scss +0 -36
  203. package/styles/components/specialized/_c8y-cookie-banner.less +0 -22
  204. package/styles/components/specialized/_static-assets-file-picker.less +0 -8
  205. package/styles/dashboard/welcome-widget.less +0 -50
  206. package/styles/mixins/gradients.less +0 -142
  207. package/styles/mixins.less +0 -45
  208. package/styles/steps-navbar.less +0 -97
  209. package/styles/timeline-list.less +0 -210
  210. package/styles/vendor/angular/angular-ui-select/select.less +0 -161
  211. package/styles/welcome.less +0 -128
  212. /package/styles/components/{specialized → application-and-system}/_c8y-cookie-banner.scss +0 -0
  213. /package/styles/components/{specialized → application-and-system}/_c8y-login.scss +0 -0
  214. /package/styles/components/{specialized → data-display-and-visualization}/_c8y-datapoint-pill.scss +0 -0
  215. /package/styles/components/{specialized → data-display-and-visualization}/_c8y-pulse.scss +0 -0
  216. /package/styles/components/{specialized → data-display-and-visualization}/_smart-list-icon-label.scss +0 -0
  217. /package/styles/components/{specialized → data-display-and-visualization}/_status.scss +0 -0
  218. /package/styles/components/{specialized → data-display-and-visualization}/_statusContainer.scss +0 -0
  219. /package/styles/components/{specialized → data-input}/_c8y-countdown-interval.scss +0 -0
  220. /package/styles/components/{specialized → data-input}/_c8y-range.scss +0 -0
  221. /package/styles/components/{specialized → data-input}/_search-header.scss +0 -0
  222. /package/styles/components/{specialized → data-input}/_static-assets-file-picker.scss +0 -0
  223. /package/styles/components/{specialized → navigation-and-layout}/_c8y-role-card.scss +0 -0
  224. /package/styles/components/{specialized → navigation-and-layout}/_c8y-scrollbar.scss +0 -0
  225. /package/styles/components/{specialized → navigation-and-layout}/_c8y-smart-rest-tab.scss +0 -0
  226. /package/styles/components/{specialized → navigation-and-layout}/_c8y-stepper.scss +0 -0
  227. /package/styles/components/{specialized → navigation-and-layout}/_c8y-user-roles.scss +0 -0
  228. /package/styles/components/{specialized → navigation-and-layout}/_device-software-tab.scss +0 -0
  229. /package/styles/components/{specialized → status-feedback-and-notifications}/_c8y-message-banner.scss +0 -0
  230. /package/styles/components/{specialized → status-feedback-and-notifications}/_code.scss +0 -0
  231. /package/styles/mixins/{alert-variant.less → _alert-variant.less} +0 -0
  232. /package/styles/mixins/{animation.less → _animation.less} +0 -0
  233. /package/styles/mixins/{background-variant.less → _background-variant.less} +0 -0
  234. /package/styles/mixins/{border-radius.less → _border-radius.less} +0 -0
  235. /package/styles/mixins/{buttons.less → _buttons.less} +0 -0
  236. /package/styles/mixins/{c8y-scrollbar.less → _c8y-scrollbar.less} +0 -0
  237. /package/styles/mixins/{center-block.less → _center-block.less} +0 -0
  238. /package/styles/mixins/{clearfix.less → _clearfix.less} +0 -0
  239. /package/styles/mixins/{create-grid.less → _create-grid.less} +0 -0
  240. /package/styles/mixins/{grid.less → _grid.less} +0 -0
  241. /package/styles/mixins/{hide-scrollbars.less → _hide-scrollbars.less} +0 -0
  242. /package/styles/mixins/{hide-text.less → _hide-text.less} +0 -0
  243. /package/styles/mixins/{image.less → _image.less} +0 -0
  244. /package/styles/mixins/{labels.less → _labels.less} +0 -0
  245. /package/styles/mixins/{list-group.less → _list-group.less} +0 -0
  246. /package/styles/mixins/{nav-divider.less → _nav-divider.less} +0 -0
  247. /package/styles/mixins/{opacity.less → _opacity.less} +0 -0
  248. /package/styles/mixins/{pagination.less → _pagination.less} +0 -0
  249. /package/styles/mixins/{panels.less → _panels.less} +0 -0
  250. /package/styles/mixins/{reset-filter.less → _reset-filter.less} +0 -0
  251. /package/styles/mixins/{reset-text.less → _reset-text.less} +0 -0
  252. /package/styles/mixins/{resize.less → _resize.less} +0 -0
  253. /package/styles/mixins/{responsive-visibility.less → _responsive-visibility.less} +0 -0
  254. /package/styles/mixins/{size.less → _size.less} +0 -0
  255. /package/styles/mixins/{tab-focus.less → _tab-focus.less} +0 -0
  256. /package/styles/mixins/{table-row.less → _table-row.less} +0 -0
  257. /package/styles/mixins/{tag.less → _tag.less} +0 -0
  258. /package/styles/mixins/{text-emphasis.less → _text-emphasis.less} +0 -0
  259. /package/styles/mixins/{text-overflow.less → _text-overflow.less} +0 -0
  260. /package/variables/{login-vars.scss → _login-vars.scss} +0 -0
  261. /package/variables/{shadows.less → _shadows.less} +0 -0
  262. /package/variables/{shadows.scss → _shadows.scss} +0 -0
  263. /package/variables/tokens/{c8y-design-tokens-dark.scss → _c8y-design-tokens-dark.scss} +0 -0
  264. /package/variables/tokens/{c8y-design-tokens.scss → _c8y-design-tokens.scss} +0 -0
@@ -1,3 +1,26 @@
1
+
2
+ @import "../../mixins/_c8y-scrollbar.less";
3
+ @import "../../mixins/_reset-filter.less";
4
+
5
+ /**
6
+ * Dropdowns - Dropdown menu component styles
7
+ *
8
+ * Note: Uses @size-* tokens for spacing; @form-control-* for dimensions, and CSS custom properties.
9
+ *
10
+ * Intentionally hardcoded values:
11
+ * - Component-specific dimensions (160px, 200px, 240px, 250px, 281px): Menu widths and heights
12
+ * - Off-token spacing (9px, 15px): Legacy padding not in token system (15px grid gutter, 9px vertical padding)
13
+ * - Transform values (-32px, scale values): Animation positioning
14
+ * - Border widths (1px, 2px): Standard borders
15
+ * - Negative offsets (-1px, -2px): Fine-tuning for overlays
16
+ * - Percentages (50%, 75%, 100%): Layout and animation keyframes
17
+ * - Animation durations (0.2s, 0.25s): Timing
18
+ * - Opacity values (0, 0.5, 0.7, 1): Visual effects
19
+ * - Z-index values: Stacking order
20
+ * - RGBA values: Transparency
21
+ * - Calc expressions: Complex computed values
22
+ */
23
+
1
24
  .dropup,
2
25
  .dropdown {
3
26
  position: relative;
@@ -17,9 +40,9 @@
17
40
  padding: 0;
18
41
  min-width: 160px;
19
42
  border-color: transparent;
20
- border-radius: var(--c8y-dropdown-border-radius, @component-border-radius-base);
43
+ border-radius: var(--c8y-dropdown-border-radius; @component-border-radius-base);
21
44
  overflow: auto;
22
- background-color: var(--c8y-dropdown-background-default, @component-background-default);
45
+ background-color: var(--c8y-dropdown-background-default; @component-background-default);
23
46
  background-clip: padding-box;
24
47
  list-style: none;
25
48
  text-align: left;
@@ -32,11 +55,11 @@
32
55
  transform-origin: left top;
33
56
 
34
57
  .sticky-bottom{
35
- background-color: var(--c8y-dropdown-background-default, @component-background-default);
58
+ background-color: var(--c8y-dropdown-background-default; @component-background-default);
36
59
  }
37
60
 
38
61
  .list-group-item, .c8y-list__item {
39
- box-shadow: inset 0 -1px 0 var(--c8y-dropdown-border-color)!important;
62
+ box-shadow: inset 0 -1px 0 var(--c8y-dropdown-border-color) !important;
40
63
  }
41
64
  &.dropdown-menu-right {
42
65
  transform-origin: right top;
@@ -50,7 +73,7 @@
50
73
  &--date-range {
51
74
  min-width: 240px;
52
75
  c8y-wrapper-form-field > .form-group {
53
- margin-bottom: 8px;
76
+ margin-bottom: @size-8;
54
77
  }
55
78
  }
56
79
 
@@ -58,19 +81,19 @@
58
81
  z-index: @zindex-modal + 1 !important;
59
82
 
60
83
  .p-l-24 {
61
- padding-left: 16px !important;
84
+ padding-left: @size-16 !important;
62
85
  }
63
86
 
64
87
  .p-r-24 {
65
- padding-right: 16px !important;
88
+ padding-right: @size-16 !important;
66
89
  }
67
90
 
68
91
  .m-l-24 {
69
- margin-left: 16px !important;
92
+ margin-left: @size-16 !important;
70
93
  }
71
94
 
72
95
  .m-r-24 {
73
- margin-right: 16px !important;
96
+ margin-right: @size-16 !important;
74
97
  }
75
98
 
76
99
  .m-l-16 {
@@ -91,7 +114,7 @@
91
114
  overflow: hidden;
92
115
  margin: 0;
93
116
  height: 2px;
94
- background: var(--c8y-dropdown-border-color, @component-border-color);
117
+ background: var(--c8y-dropdown-border-color; @component-border-color);
95
118
  }
96
119
 
97
120
  // Links within the dropdown menu
@@ -102,23 +125,23 @@
102
125
  &:not(.btn-add-block):not(.btn-clean):not(.collapse-btn.btn-dot) {
103
126
  display: flex;
104
127
  align-items: center;
105
- gap: 4px;
128
+ gap: @size-4;
106
129
  padding: 9px 15px 10px;
107
130
  width: 100%;
108
131
  border: 0;
109
- border-top: 1px solid var(--c8y-dropdown-border-color, @component-border-color);
132
+ border-top: 1px solid var(--c8y-dropdown-border-color; @component-border-color);
110
133
  border-radius: 0;
111
- background-color: var(--c8y-dropdown-background-default, @component-background-default);
134
+ background-color: var(--c8y-dropdown-background-default; @component-background-default);
112
135
  background-image: none;
113
- color: var(--c8y-dropdown-color-default, @component-color-actions);
136
+ color: var(--c8y-dropdown-color-default; @component-color-actions);
114
137
  text-align: left;
115
138
  white-space: nowrap;
116
139
  .c8y-icon {
117
140
  color: var(--c8y-dropdown-icon-color-default);
118
141
  }
119
142
  &:hover {
120
- &:not([disabled]){
121
- color: var(--c8y-dropdown-color-hover, @component-color-actions-hover);
143
+ &:not([disabled]) {
144
+ color: var(--c8y-dropdown-color-hover; @component-color-actions-hover);
122
145
  text-decoration: none;
123
146
  .c8y-icon {
124
147
  color: var(--c8y-dropdown-icon-color-hover);
@@ -128,11 +151,11 @@
128
151
 
129
152
  &:focus {
130
153
  outline: none;
131
- border-radius: @component-border-radius-focus!important;
154
+ border-radius: @component-border-radius-focus !important;
132
155
  box-shadow: inset 0 0 0 2px @component-color-focus;
133
156
  }
134
157
  }
135
-
158
+
136
159
  &[disabled],
137
160
  &.disabled {
138
161
  &,
@@ -141,7 +164,7 @@
141
164
  cursor: @cursor-disabled !important;
142
165
  opacity: var(--c8y-root-component-opacity-disabled);
143
166
  &:not(.btn) {
144
- color: @component-color-actions!important;
167
+ color: @component-color-actions !important;
145
168
  }
146
169
  }
147
170
  }
@@ -156,7 +179,7 @@
156
179
 
157
180
  // forms in dropdown-menu
158
181
  > .dropdown-form {
159
- padding: 16px;
182
+ padding: @size-16;
160
183
  min-width: 250px;
161
184
  background-color: @component-background-default;
162
185
  overflow-y: auto;
@@ -165,9 +188,9 @@
165
188
  padding-bottom: 0;
166
189
  }
167
190
  .dropdown-footer {
168
- margin: 0 -16px;
169
- padding: 16px;
170
- .separator-top();
191
+ margin: 0 calc(-1 * @size-16);
192
+ padding: @size-16;
193
+ &:extend(.separator-top);
171
194
  background-color: @component-background-default;
172
195
  }
173
196
  }
@@ -184,7 +207,7 @@
184
207
  grid-template-columns: 1fr 1fr 1fr 1fr;
185
208
 
186
209
  li > a {
187
- padding: 9px 8px;
210
+ padding: 9px @size-8;
188
211
  border-width: 0;
189
212
  text-align: center;
190
213
  transition: box-shadow 0.25s ease;
@@ -236,7 +259,7 @@ bs-dropdown-container,
236
259
  /* Starting state (0%) */
237
260
  0% {
238
261
  opacity: 0;
239
- transform: translateY(-16px) scale(0);
262
+ transform: translateY(calc(-1 * @size-16)) scale(0);
240
263
  box-shadow: var(--c8y-dropdown-elevation-default);
241
264
  }
242
265
 
@@ -255,7 +278,7 @@ bs-dropdown-container,
255
278
  /* Starting state (0%) */
256
279
  0% {
257
280
  opacity: 0;
258
- transform: translateY(-16px) scale(1,0);
281
+ transform: translateY(calc(-1 * @size-16)) scale(1,0);
259
282
  box-shadow: var(--c8y-dropdown-elevation-default);
260
283
  }
261
284
 
@@ -274,7 +297,7 @@ bs-dropdown-container >.dropdown >.dropdown-menu {
274
297
  animation-name: showDropdown;
275
298
  animation-duration: .2s;
276
299
  animation-timing-function: ease-out;
277
- animation-fill-mode: forwards;
300
+ animation-fill-mode: forwards;
278
301
  }
279
302
 
280
303
  // Hover/Focus state
@@ -356,7 +379,7 @@ bs-dropdown-container >.dropdown >.dropdown-menu {
356
379
  @media (min-width: @screen-md-min) {
357
380
  .dropdown-menu-right--md {
358
381
  right: 0;
359
- left: auto;
382
+ left: auto;
360
383
  &-grid {
361
384
  right: 9px !important;
362
385
  left: auto !important;
@@ -366,7 +389,7 @@ bs-dropdown-container >.dropdown >.dropdown-menu {
366
389
  @media (min-width: @screen-sm-min) {
367
390
  .dropdown-menu-right--sm {
368
391
  right: 0;
369
- left: auto;
392
+ left: auto;
370
393
  &-grid {
371
394
  right: 9px !important;
372
395
  left: auto !important;
@@ -397,8 +420,8 @@ bs-dropdown-container >.dropdown >.dropdown-menu {
397
420
  padding-left: @component-padding;
398
421
  padding-right: @component-padding;
399
422
  .c8y-list__item__body{
400
- padding-top: @margin-4;
401
- padding-bottom: @margin-4;
423
+ padding-top: @size-4;
424
+ padding-bottom: @size-4;
402
425
  }
403
426
  }
404
427
  }
@@ -406,11 +429,11 @@ bs-dropdown-container >.dropdown >.dropdown-menu {
406
429
 
407
430
  // Dropdown section headers
408
431
  .dropdown-header {
409
- .text-label-small();
432
+ &:extend(.text-label-small);
410
433
  font-weight: 500;
411
434
  display: block;
412
- padding: @margin-base @component-padding;
413
- border-top: 1px solid fade(@black, 5%);
435
+ padding: @size-base @component-padding;
436
+ border-top: 1px solid rgba(@black, 0.05);
414
437
  background-color: @component-background-default;
415
438
  color: @component-color-default;
416
439
  white-space: nowrap;
@@ -458,11 +481,13 @@ bs-dropdown-container >.dropdown >.dropdown-menu {
458
481
  @media (min-width: @grid-float-breakpoint) {
459
482
  .navbar-right {
460
483
  .dropdown-menu {
461
- .dropdown-menu-right();
484
+ right: 0;
485
+ left: auto;
462
486
  }
463
487
 
464
488
  .dropdown-menu-left {
465
- .dropdown-menu-left();
489
+ right: auto !important;
490
+ left: 0 !important;
466
491
  }
467
492
  }
468
493
  }
@@ -500,7 +525,7 @@ bs-dropdown-container >.dropdown >.dropdown-menu {
500
525
  margin: 0;
501
526
 
502
527
  &:not(.btn) {
503
- padding: 10px;
528
+ padding: @size-10;
504
529
  border: 0;
505
530
  border-radius: 0;
506
531
  background-color: transparent;
@@ -535,10 +560,10 @@ bs-dropdown-container >.dropdown >.dropdown-menu {
535
560
  button:not(.btn):not(.btn-help):not(.btn-clean),
536
561
  label:not(.c8y-checkbox):not(.c8y-radio) {
537
562
  display: block;
538
- padding: 9px 16px 10px;
563
+ padding: 9px @size-16 10px;
539
564
  width: 100%;
540
565
  border: 0;
541
- border-top: 1px solid var(--c8y-dropdown-border-color, @component-border-color);
566
+ border-top: 1px solid var(--c8y-dropdown-border-color; @component-border-color);
542
567
  border-radius: 0;
543
568
  background-color: @component-background-default;
544
569
  background-image: none;
@@ -546,7 +571,7 @@ bs-dropdown-container >.dropdown >.dropdown-menu {
546
571
  text-align: left;
547
572
  white-space: nowrap;
548
573
  &.logViewer {
549
- padding: 8px 0 0;
574
+ padding: @size-8 0 0;
550
575
  }
551
576
 
552
577
  &:hover {
@@ -556,7 +581,7 @@ bs-dropdown-container >.dropdown >.dropdown-menu {
556
581
  }
557
582
  @media (min-width: @screen-md-min) {
558
583
  label {
559
- padding: 9px 16px 10px;
584
+ padding: 9px @size-16 10px;
560
585
  }
561
586
  }
562
587
  }
@@ -581,13 +606,13 @@ bs-dropdown-container >.dropdown >.dropdown-menu {
581
606
  &:focus {
582
607
  outline: 2px solid @component-color-focus;
583
608
  outline-offset: -2px;
584
- border-radius: @component-border-radius-focus!important;
609
+ border-radius: @component-border-radius-focus !important;
585
610
  }
586
611
  }
587
612
 
588
613
  + .dropdown-menu {
589
614
  height: auto;
590
- border: 1px solid var(--c8y-dropdown-border-color, @component-border-color);
615
+ border: 1px solid var(--c8y-dropdown-border-color; @component-border-color);
591
616
  }
592
617
  }
593
618
 
@@ -620,7 +645,7 @@ bs-dropdown-container >.dropdown >.dropdown-menu {
620
645
  .dropdown {
621
646
  &.dropup {
622
647
  .dropdown-menu:not([uib-dropdown-menu]) {
623
- transform: translateY(calc(-100% - 32px)) !important;
648
+ transform: translateY(calc(-100% - @size-32)) !important;
624
649
  }
625
650
  }
626
651
  }
@@ -641,7 +666,7 @@ body {
641
666
  padding: 10px 15px 9px;
642
667
  width: 100%;
643
668
  border: 0;
644
- border-top: 1px solid var(--c8y-dropdown-border-color, @component-border-color);
669
+ border-top: 1px solid var(--c8y-dropdown-border-color; @component-border-color);
645
670
  border-radius: 0;
646
671
  background-color: @component-background-default;
647
672
  background-image: none;
@@ -655,12 +680,11 @@ body {
655
680
  &:focus {
656
681
  outline: 2px solid @component-color-focus;
657
682
  outline-offset: -2px;
658
- border-radius: @component-border-radius-focus!important;
683
+ border-radius: @component-border-radius-focus !important;
659
684
  }
660
685
  }
661
686
  }
662
687
  }
663
-
664
688
  &.uib-dropdown-open {
665
689
  > .dropdown-menu {
666
690
  z-index: @zindex-modal + 1 !important;
@@ -679,7 +703,7 @@ body {
679
703
  // fix z-index for ngx-bootstrap dropdown attached to body and the modal is open
680
704
  &.modal-open{
681
705
  > bs-dropdown-container {
682
- z-index: @zindex-modal + 1 !important;
706
+ z-index: @zindex-modal + 1 !important;
683
707
  }
684
708
  }
685
709
  }
@@ -695,7 +719,7 @@ body {
695
719
  &:not(.uib-datepicker-popup) li {
696
720
  position: static;
697
721
  }
698
- &:not(.ng-hide){
722
+ &:not(.ng-hide) {
699
723
  animation: showDropdown 0.2s ease-out forwards;
700
724
  visibility: visible;
701
725
  }
@@ -705,13 +729,13 @@ body {
705
729
  .input-group-dropdown {
706
730
  z-index: 1;
707
731
  }
708
- .dropdown-menu.show &{
709
- .dropdown-menu{
710
- animation: none!important;
711
- opacity: 1!important;
712
- inset: 100% auto auto 0!important;
713
- transform: translateY(0)!important;
714
- visibility: visible!important;
732
+ .dropdown-menu.show & {
733
+ .dropdown-menu {
734
+ animation: none !important;
735
+ opacity: 1 !important;
736
+ inset: 100% auto auto 0 !important;
737
+ transform: translateY(0) !important;
738
+ visibility: visible !important;
715
739
  }
716
740
  }
717
741
  }
@@ -719,7 +743,6 @@ body {
719
743
  .c8y-select-v2 {
720
744
  display: block;
721
745
  height: @form-control-height-base;
722
-
723
746
  .selected-items {
724
747
  display: contents;
725
748
  }
@@ -739,17 +762,17 @@ body {
739
762
  left: 0;
740
763
  // top:-1px;
741
764
  z-index: 1;
742
- height: calc(@form-control-height-base - 2px)!important;
765
+ height: calc(@form-control-height-base - 2px) !important;
743
766
  &:focus {
744
767
  width: auto !important;
745
768
  background: rgba(255, 255, 255, 0.6);
746
769
  background-clip: content-box;
747
770
  }
748
771
  }
749
- .input-group-btn{
750
- height: calc(@form-control-height-base - 2px)!important;
772
+ .input-group-btn {
773
+ height: calc(@form-control-height-base - 2px) !important;
751
774
  > button {
752
- height: calc(@form-control-height-base - 2px)!important;
775
+ height: calc(@form-control-height-base - 2px) !important;
753
776
  &:focus {
754
777
  margin-left: 0;
755
778
  }
@@ -759,10 +782,10 @@ body {
759
782
  box-shadow: none;
760
783
  background-color: transparent;
761
784
  border: 0;
762
- height: calc(@form-control-height-base - 2px)!important;
785
+ height: calc(@form-control-height-base - 2px) !important;
763
786
  }
764
787
  }
765
- .dropdown.open,
788
+ .dropdown.open,
766
789
  .dropdown.show {
767
790
  input.form-control{
768
791
  z-index: 3;
@@ -1,3 +1,29 @@
1
+
2
+ @import "../../mixins/_clearfix.less";
3
+ @import "../../mixins/_opacity.less";
4
+ @import "../../mixins/_shadows-helper.less";
5
+
6
+ /**
7
+ * Modals - Modal dialog component
8
+ *
9
+ * Note: Uses @size-*; @modal-*, and @form-control-* tokens. Already partially migrated.
10
+ *
11
+ * Intentionally hardcoded values:
12
+ * - Component-specific dimensions (50px, 62px, 100px, 200px, 290px, 310px, 319px): Modal and content sizes
13
+ * - Off-grid spacing (15px, 30px, 50px): Legacy spacing not in token system
14
+ * - Typography sizes (15px, 16px, 30px, 5em): Font sizes
15
+ * - Border widths (1px): Standard borders
16
+ * - Transform percentages (-25%): Animation positioning
17
+ * - Negative offsets (-1px, -2px): Fine-tuning
18
+ * - Percentages (100%): Layout
19
+ * - Animation duration (0.3s): Timing
20
+ * - Opacity values (0, 0.9): Visual effects
21
+ * - RGBA values: Transparency
22
+ * - Z-index values: Stacking order
23
+ * - Calc expressions: Complex computed values
24
+ * - Box-shadow values: Shadow specifications
25
+ */
26
+
1
27
  // .modal-open - body class for killing the scroll
2
28
  // .modal - container to scroll within
3
29
  // .modal-dialog - positioning shell for the actual modal
@@ -35,13 +61,13 @@ bs-modal-backdrop {
35
61
 
36
62
  // When fading in the modal, animate it to slide down
37
63
  &.fade .modal-dialog {
38
- .translate(0, -25%);
39
- .transition-transform(~'0.3s ease-out');
64
+ transform: translate(0, -25%);
65
+ transition: transform 0.3s ease-out;
40
66
  }
41
67
 
42
68
  &.in .modal-dialog,
43
69
  &.show .modal-dialog {
44
- .translate(0, 0);
70
+ transform: translate(0, 0);
45
71
  }
46
72
  }
47
73
 
@@ -53,7 +79,7 @@ bs-modal-backdrop {
53
79
  // Shell div to position the modal with bottom padding
54
80
  .modal-dialog {
55
81
  position: relative;
56
- margin: 10px;
82
+ margin: @size-10;
57
83
  width: auto;
58
84
  }
59
85
 
@@ -62,17 +88,17 @@ bs-modal-backdrop {
62
88
  position: relative;
63
89
  outline: 0;
64
90
  border-radius: @modal-border-radius;
65
- background-color: var(--c8y-modal-background-default, @component-background-default);
91
+ background-color: var(--c8y-modal-background-default; @component-background-default);
66
92
  background-clip: padding-box;
67
- color: var(--c8y-modal-color-default, @component-color-default);
93
+ color: var(--c8y-modal-color-default; @component-color-default);
68
94
 
69
95
  .boxShadowHelper(lg);
70
96
 
71
- .c8y-dark-theme &{
97
+ .c8y-dark-theme & {
72
98
  --c8y-component-border-color: var(--c8y-palette-gray-60);
73
99
  }
74
- .c8y-system-theme &{
75
- @media (prefers-color-scheme: dark){
100
+ .c8y-system-theme & {
101
+ @media (prefers-color-scheme: dark) {
76
102
  --c8y-component-border-color: var(--c8y-palette-gray-60);
77
103
  }
78
104
  }
@@ -96,7 +122,7 @@ bs-modal-backdrop {
96
122
  bottom: 0;
97
123
  left: 0;
98
124
  z-index: @zindex-modal-background;
99
- background-color: @modal-backdrop-background;
125
+ background-color: @modal-backdrop-background;
100
126
  &.fade {
101
127
  .opacity(0);
102
128
  }
@@ -109,7 +135,7 @@ bs-modal-backdrop {
109
135
 
110
136
  // Modal header
111
137
  .modal-header {
112
- padding: @margin-24;
138
+ padding: @size-24;
113
139
  border-bottom: 0;
114
140
 
115
141
  &.separator {
@@ -117,7 +143,7 @@ bs-modal-backdrop {
117
143
  }
118
144
 
119
145
  .input-group-search {
120
- margin: 5px 0 -10px;
146
+ margin: @size-5 0 calc(-1 * @size-10);
121
147
  }
122
148
 
123
149
  &.dialog-header {
@@ -133,7 +159,7 @@ bs-modal-backdrop {
133
159
 
134
160
  > h4,
135
161
  > .modal-title {
136
- margin: @margin-base 0 0;
162
+ margin: @size-base 0 0;
137
163
  text-transform: uppercase;
138
164
  letter-spacing: 0.15em;
139
165
  }
@@ -161,10 +187,10 @@ bs-modal-backdrop {
161
187
  max-height: calc(100vh - 319px);
162
188
  tr {
163
189
  > td:first-child, th:first-child{
164
- padding-left: @margin-24;
190
+ padding-left: @size-24;
165
191
  }
166
192
  > td:last-child, th:last-child{
167
- padding-right: @margin-24;
193
+ padding-right: @size-24;
168
194
  }
169
195
  }
170
196
  }
@@ -186,29 +212,28 @@ bs-modal-backdrop {
186
212
  }
187
213
 
188
214
  .modal-title {
189
- margin-top: @margin-base;
215
+ margin-top: @size-base;
190
216
  font-size: @font-size-h4 !important;
191
217
  font-weight: @headings-font-weight;
192
218
  }
193
219
 
194
220
  .modal-subtitle {
195
221
  margin-bottom: 0;
196
- padding: @margin-16 @margin-24;
222
+ padding: @size-16 @size-24;
197
223
  background-color: @component-background-default;
198
224
  text-align: center;
199
225
  font-weight: @headings-font-weight;
200
226
  font-size: 16px;
201
-
202
- .separator-bottom();
227
+ &:extend(.separator-bottom);
203
228
  }
204
229
 
205
230
  // Modal body
206
231
  // Where all modal content resides (sibling of .modal-header and .modal-footer)
207
232
  .modal-body {
208
233
  position: relative;
209
- padding: @margin-24;
234
+ padding: @size-24;
210
235
 
211
- c8y-modal &{
236
+ c8y-modal & {
212
237
  padding: 0;
213
238
  }
214
239
  &.separator {
@@ -222,11 +247,10 @@ bs-modal-backdrop {
222
247
 
223
248
  // Footer (for actions)
224
249
  .modal-footer {
225
- padding: @margin-24;
250
+ padding: @size-24;
226
251
  box-shadow: inset 0 1px 0 @component-border-color;
227
252
  text-align: center; // center align buttons
228
-
229
- &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons
253
+ .clearfix(); // clear it in case folks use .pull-* classes on buttons
230
254
 
231
255
  > .btn {
232
256
  min-width: 100px;
@@ -328,17 +352,11 @@ bs-modal-backdrop {
328
352
  }
329
353
 
330
354
  .c8y-prompt .modal-footer {
331
- padding-bottom: 40px;
355
+ padding-bottom: calc(@size-base * 5);
332
356
  border: 0;
333
357
  }
334
358
 
335
- .modal-header .btn-modal-close {
336
- position: relative;
337
- top: -8px;
338
- right: -8px;
339
- color: @component-color-default;
340
- font-size: 15px;
341
- }
359
+ // Removed unused modal button class - verified 0 usages: .btn-modal-close
342
360
 
343
361
  .modal-status-icon {
344
362
  font-size: 30px;
@@ -362,7 +380,7 @@ bs-modal-backdrop {
362
380
  }
363
381
 
364
382
  .modal-body & {
365
- margin: 0 calc(@margin-base * -1) calc(@margin-base * -1);
383
+ margin: 0 calc(@size-base * -1) calc(@size-base * -1);
366
384
  }
367
385
  }
368
386
 
@@ -378,7 +396,7 @@ bs-modal-backdrop {
378
396
  }
379
397
 
380
398
  .modal-body & {
381
- margin: 0 calc(@margin-base * -1) calc(@margin-base * -1);
399
+ margin: 0 calc(@size-base * -1) calc(@size-base * -1);
382
400
  }
383
401
  }
384
402
 
@@ -391,22 +409,22 @@ bs-modal-backdrop {
391
409
  left: 0;
392
410
  z-index: 10;
393
411
  display: block;
394
- margin-top: -4px;
412
+ margin-top: calc(-1 * @size-4);
395
413
  width: 100%;
396
- height: 4px;
414
+ height: @size-4;
397
415
  box-shadow: 0 2px 3px rgba(0, 0, 0, 0.1);
398
416
  content: '';
399
417
  }
400
418
 
401
419
  .modal-body & {
402
- margin-right: calc(@margin-24 * -1);
403
- margin-left: calc(@margin-24 * -1);
420
+ margin-right: calc(@size-24 * -1);
421
+ margin-left: calc(@size-24 * -1);
404
422
  }
405
423
 
406
424
  + .modal-inner-scroll,
407
425
  + .modal-inner-scroll-sm {
408
426
  position: relative;
409
- padding-top: 4px;
427
+ padding-top: @size-4;
410
428
 
411
429
  &:before {
412
430
  position: absolute;
@@ -415,7 +433,7 @@ bs-modal-backdrop {
415
433
  left: 0;
416
434
  z-index: 10;
417
435
  width: 100%;
418
- height: 4px;
436
+ height: @size-4;
419
437
  background-color: @component-background-default;
420
438
  content: '';
421
439
  }