@c8y/style 1023.17.20 → 1023.22.2

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 (402) hide show
  1. package/branding-login.scss +17 -0
  2. package/branding.scss +15 -0
  3. package/export.scss +1 -0
  4. package/extend.scss +4 -0
  5. package/login.scss +17 -0
  6. package/main.scss +6 -0
  7. package/package.json +1 -1
  8. package/styles/README.md +204 -0
  9. package/styles/_login-app.scss +34 -0
  10. package/styles/_mixins.scss +47 -0
  11. package/styles/_utilities.scss +21 -0
  12. package/styles/animations/_animate.less +648 -0
  13. package/styles/animations/_animate.scss +654 -0
  14. package/styles/animations/_component-animations.scss +70 -0
  15. package/styles/animations/_realtime-animation-list.scss +21 -0
  16. package/styles/animations/_spinner-snake.scss +73 -0
  17. package/styles/{_spinner.less → animations/_spinner.less} +0 -3
  18. package/styles/animations/_spinner.scss +165 -0
  19. package/styles/base/_normalize.scss +309 -0
  20. package/styles/base/_print.scss +159 -0
  21. package/styles/base/_scaffolding.scss +162 -0
  22. package/styles/{_type.less → base/_type.less} +2 -2
  23. package/styles/base/_type.scss +350 -0
  24. package/styles/components/_markdown-content.less +75 -0
  25. package/styles/components/_markdown-content.scss +82 -0
  26. package/styles/{_smartrules.less → components/_smartrules.less} +120 -97
  27. package/styles/components/_smartrules.scss +392 -0
  28. package/styles/{_range-display.less → components/data-display-and-visualization/_range-display.less} +67 -49
  29. package/styles/components/data-display-and-visualization/_range-display.scss +488 -0
  30. package/styles/{_timelines-chart.less → components/data-display-and-visualization/_timelines-chart.less} +42 -33
  31. package/styles/components/data-display-and-visualization/_timelines-chart.scss +45 -0
  32. package/styles/{_c8y-data-point-list.less → components/data-display-and-visualization/lists/_c8y-data-point-list.less} +2 -20
  33. package/styles/components/data-display-and-visualization/lists/_c8y-data-point-list.scss +32 -0
  34. package/styles/components/data-display-and-visualization/lists/_c8y-empty-state.scss +164 -0
  35. package/styles/{_c8y-list-group.less → components/data-display-and-visualization/lists/_c8y-list-group.less} +1 -1
  36. package/styles/components/data-display-and-visualization/lists/_c8y-list-group.scss +789 -0
  37. package/styles/components/data-display-and-visualization/lists/_cards-layout.scss +415 -0
  38. package/styles/{_list-group.less → components/data-display-and-visualization/lists/_list-group.less} +4 -2
  39. package/styles/components/data-display-and-visualization/lists/_list-group.scss +381 -0
  40. package/styles/components/data-display-and-visualization/lists/_smart-rules-template-list.scss +36 -0
  41. package/styles/components/data-display-and-visualization/lists/_timeline-list.scss +240 -0
  42. package/styles/components/data-display-and-visualization/lists/timeline-list.less +216 -0
  43. package/styles/components/data-display-and-visualization/tables/_data-grid.scss +814 -0
  44. package/styles/{_resizable-grid.less → components/data-display-and-visualization/tables/_resizable-grid.less} +0 -3
  45. package/styles/components/data-display-and-visualization/tables/_resizable-grid.scss +138 -0
  46. package/styles/components/data-display-and-visualization/tables/_tables.scss +411 -0
  47. package/styles/{_c8y-ai-chat.less → components/data-input/_c8y-ai-chat.less} +44 -28
  48. package/styles/components/data-input/_c8y-ai-chat.scss +212 -0
  49. package/styles/components/data-input/assets/_asset-property-list.scss +285 -0
  50. package/styles/{_asset-table.less → components/data-input/assets/_asset-table.less} +3 -6
  51. package/styles/components/data-input/assets/_asset-table.scss +95 -0
  52. package/styles/components/data-input/assets/_c8y-asset-notes.scss +41 -0
  53. package/styles/components/data-input/assets/_c8y-asset-selector-miller.scss +134 -0
  54. package/styles/{_c8y-asset-selector.less → components/data-input/assets/_c8y-asset-selector.less} +1 -1
  55. package/styles/components/data-input/assets/_c8y-asset-selector.scss +178 -0
  56. package/styles/components/data-input/assets/_c8y-child-assets-selector.scss +231 -0
  57. package/styles/{_app-switcher.less → components/navigation-and-layout/action-bars/_app-switcher.less} +1 -1
  58. package/styles/components/navigation-and-layout/action-bars/_app-switcher.scss +111 -0
  59. package/styles/components/navigation-and-layout/action-bars/_c8y-action-bar.scss +418 -0
  60. package/styles/{_card-dashboard.less → components/navigation-and-layout/cards/_card-dashboard.less} +2 -5
  61. package/styles/components/navigation-and-layout/cards/_card-dashboard.scss +179 -0
  62. package/styles/components/navigation-and-layout/cards/_card-flip.scss +104 -0
  63. package/styles/components/navigation-and-layout/cards/_card-grid.scss +95 -0
  64. package/styles/{_card.less → components/navigation-and-layout/cards/_card.less} +18 -22
  65. package/styles/components/navigation-and-layout/cards/_card.scss +769 -0
  66. package/styles/{_panels.less → components/navigation-and-layout/cards/_panels.less} +11 -21
  67. package/styles/components/navigation-and-layout/cards/_panels.scss +514 -0
  68. package/styles/{_breadcrumbs.less → components/navigation-and-layout/navigation/_breadcrumbs.less} +0 -29
  69. package/styles/components/navigation-and-layout/navigation/_breadcrumbs.scss +61 -0
  70. package/styles/components/navigation-and-layout/navigation/_c8y-nav-stacked.scss +85 -0
  71. package/styles/components/navigation-and-layout/navigation/_main-header.scss +510 -0
  72. package/styles/{_navbar.less → components/navigation-and-layout/navigation/_navbar.less} +7 -6
  73. package/styles/components/navigation-and-layout/navigation/_navbar.scss +488 -0
  74. package/styles/components/navigation-and-layout/navigation/_navigator.scss +454 -0
  75. package/styles/components/navigation-and-layout/navigation/_navs.scss +118 -0
  76. package/styles/components/navigation-and-layout/navigation/_pagination.scss +148 -0
  77. package/styles/components/navigation-and-layout/navigation/_steps-navbar.scss +101 -0
  78. package/styles/{_tabs.less → components/navigation-and-layout/navigation/_tabs.less} +1 -1
  79. package/styles/components/navigation-and-layout/navigation/_tabs.scss +254 -0
  80. package/styles/components/navigation-and-layout/navigation/steps-navbar.less +98 -0
  81. package/styles/components/specialized/_boxed-label.scss +36 -0
  82. package/styles/components/specialized/_c8y-cookie-banner.scss +37 -0
  83. package/styles/{_c8y-countdown-interval.less → components/specialized/_c8y-countdown-interval.less} +1 -1
  84. package/styles/components/specialized/_c8y-countdown-interval.scss +126 -0
  85. package/styles/{_c8y-data-explorer.less → components/specialized/_c8y-data-explorer.less} +12 -115
  86. package/styles/components/specialized/_c8y-data-explorer.scss +260 -0
  87. package/styles/components/specialized/_c8y-datapoint-pill.scss +105 -0
  88. package/styles/{_c8y-login.less → components/specialized/_c8y-login.less} +3 -3
  89. package/styles/components/specialized/_c8y-login.scss +120 -0
  90. package/styles/components/specialized/_c8y-message-banner.less +37 -0
  91. package/styles/components/specialized/_c8y-message-banner.scss +52 -0
  92. package/styles/components/specialized/_c8y-pulse.scss +118 -0
  93. package/styles/components/specialized/_c8y-range.scss +237 -0
  94. package/styles/{_c8y-role-card.less → components/specialized/_c8y-role-card.less} +2 -22
  95. package/styles/components/specialized/_c8y-role-card.scss +68 -0
  96. package/styles/{_c8y-schema-form.less → components/specialized/_c8y-schema-form.less} +1 -5
  97. package/styles/components/specialized/_c8y-schema-form.scss +193 -0
  98. package/styles/components/specialized/_c8y-scrollbar.scss +82 -0
  99. package/styles/components/specialized/_c8y-smart-rest-tab.scss +75 -0
  100. package/styles/{_c8y-stepper.less → components/specialized/_c8y-stepper.less} +3 -3
  101. package/styles/components/specialized/_c8y-stepper.scss +110 -0
  102. package/styles/{_c8y-user-roles.less → components/specialized/_c8y-user-roles.less} +6 -7
  103. package/styles/components/specialized/_c8y-user-roles.scss +351 -0
  104. package/styles/{_c8y-utils.less → components/specialized/_c8y-utils.less} +0 -3
  105. package/styles/components/specialized/_c8y-utils.scss +109 -0
  106. package/styles/components/specialized/_code.scss +94 -0
  107. package/styles/components/specialized/_device-software-tab.scss +52 -0
  108. package/styles/components/specialized/_dtm-icon-selector.scss +84 -0
  109. package/styles/{_measurements-time-control.less → components/specialized/_measurements-time-control.less} +12 -52
  110. package/styles/components/specialized/_measurements-time-control.scss +237 -0
  111. package/styles/components/specialized/_search-header.scss +126 -0
  112. package/styles/{_smart-list-icon-label.less → components/specialized/_smart-list-icon-label.less} +1 -1
  113. package/styles/components/specialized/_smart-list-icon-label.scss +75 -0
  114. package/styles/components/specialized/_static-assets-file-picker.scss +23 -0
  115. package/styles/{_status.less → components/specialized/_status.less} +11 -11
  116. package/styles/components/specialized/_status.scss +106 -0
  117. package/styles/components/specialized/_statusContainer.scss +62 -0
  118. package/styles/core/buttons/_button-groups.scss +202 -0
  119. package/styles/{_buttons.less → core/buttons/_buttons.less} +30 -21
  120. package/styles/core/buttons/_buttons.scss +1318 -0
  121. package/styles/{_alerts.less → core/feedback/_alerts.less} +2 -6
  122. package/styles/core/feedback/_alerts.scss +243 -0
  123. package/styles/core/feedback/_badges.scss +85 -0
  124. package/styles/core/feedback/_close.scss +54 -0
  125. package/styles/{_labels.less → core/feedback/_labels.less} +1 -1
  126. package/styles/core/feedback/_labels.scss +93 -0
  127. package/styles/core/feedback/_progress-bars.scss +96 -0
  128. package/styles/{_tag.less → core/feedback/_tag.less} +1 -1
  129. package/styles/core/feedback/_tag.scss +103 -0
  130. package/styles/core/feedback/_tooltip.scss +147 -0
  131. package/styles/{_c8y-switch.less → core/forms/_c8y-switch.less} +2 -2
  132. package/styles/core/forms/_c8y-switch.scss +226 -0
  133. package/styles/{_file-picker.less → core/forms/_file-picker.less} +1 -1
  134. package/styles/core/forms/_file-picker.scss +219 -0
  135. package/styles/{_forms.less → core/forms/_forms.less} +14 -16
  136. package/styles/core/forms/_forms.scss +1183 -0
  137. package/styles/{_input-groups.less → core/forms/_input-groups.less} +2 -2
  138. package/styles/core/forms/_input-groups.scss +700 -0
  139. package/styles/{_c8y-dashboard-modal.less → core/overlays/_c8y-dashboard-modal.less} +3 -3
  140. package/styles/core/overlays/_c8y-dashboard-modal.scss +86 -0
  141. package/styles/{_c8y-wizard.less → core/overlays/_c8y-wizard.less} +1 -1
  142. package/styles/core/overlays/_c8y-wizard.scss +226 -0
  143. package/styles/{_dropdowns.less → core/overlays/_dropdowns.less} +4 -4
  144. package/styles/core/overlays/_dropdowns.scss +815 -0
  145. package/styles/{_modals.less → core/overlays/_modals.less} +7 -8
  146. package/styles/core/overlays/_modals.scss +461 -0
  147. package/styles/core/overlays/_popovers.scss +183 -0
  148. package/styles/dashboard/_availability-pie.scss +33 -0
  149. package/styles/{_c8y-dashboard-style.less → dashboard/_c8y-dashboard-style.less} +4 -6
  150. package/styles/dashboard/_c8y-dashboard-style.scss +409 -0
  151. package/styles/{_c8y-gauges.less → dashboard/_c8y-gauges.less} +1 -1
  152. package/styles/dashboard/_c8y-gauges.scss +62 -0
  153. package/styles/dashboard/_dashboard-widgets.scss +47 -0
  154. package/styles/dashboard/_info-gauge.scss +107 -0
  155. package/styles/dashboard/_quick-links-widget.scss +49 -0
  156. package/styles/dashboard/_welcome-widget.scss +68 -0
  157. package/styles/dashboard/_welcome.scss +138 -0
  158. package/styles/dashboard/welcome-widget.less +50 -0
  159. package/styles/dashboard/welcome.less +128 -0
  160. package/styles/icons/_c8y-glyphs.scss +63 -0
  161. package/styles/{_c8y-icons.less → icons/_c8y-icons.less} +12 -12
  162. package/styles/icons/_c8y-icons.scss +1209 -0
  163. package/styles/icons/_dlt-c8y-icons-stroke.less +1856 -0
  164. package/styles/icons/_dlt-c8y-icons-stroke.scss +3667 -0
  165. package/styles/{_dlt-c8y-icons.less → icons/_dlt-c8y-icons.less} +5 -112
  166. package/styles/icons/_dlt-c8y-icons.scss +9204 -0
  167. package/styles/icons/_marker-icons.less +22 -0
  168. package/styles/icons/_marker-icons.scss +33 -0
  169. package/styles/index.less +233 -152
  170. package/styles/index.scss +240 -0
  171. package/styles/layout/_bottom-drawer.scss +59 -0
  172. package/styles/layout/_c8y-help-drawer.scss +104 -0
  173. package/styles/layout/_c8y-right-drawer.scss +150 -0
  174. package/styles/layout/_c8y-top-drawer.scss +117 -0
  175. package/styles/{_grid.less → layout/_grid.less} +3 -18
  176. package/styles/layout/_grid.scss +114 -0
  177. package/styles/layout/_group-info.scss +27 -0
  178. package/styles/{_layouts.less → layout/_layouts.less} +1 -3
  179. package/styles/layout/_layouts.scss +375 -0
  180. package/styles/layout/_mcontainer.scss +136 -0
  181. package/styles/layout/_page-tabs.scss +314 -0
  182. package/styles/{_split-scroll.less → layout/_split-scroll.less} +1 -1
  183. package/styles/layout/_split-scroll.scss +112 -0
  184. package/styles/layout/_split-view.scss +126 -0
  185. package/styles/login-app-use.scss +36 -0
  186. package/styles/login-app.less +25 -24
  187. package/styles/mixins/_alert-variant.scss +13 -0
  188. package/styles/mixins/_animation.scss +25 -0
  189. package/styles/mixins/_background-variant.scss +34 -0
  190. package/styles/mixins/_border-radius.scss +18 -0
  191. package/styles/mixins/_buttons.scss +65 -0
  192. package/styles/mixins/_c8y-scrollbar.scss +29 -0
  193. package/styles/mixins/_center-block.scss +7 -0
  194. package/styles/mixins/_clearfix.scss +22 -0
  195. package/styles/mixins/_color-mixins.scss +21 -0
  196. package/styles/mixins/_create-grid.scss +137 -0
  197. package/styles/mixins/_element-queries.scss +39 -0
  198. package/styles/mixins/_forms.scss +122 -0
  199. package/styles/mixins/_gradients.scss +120 -0
  200. package/styles/mixins/_grid-framework.scss +104 -0
  201. package/styles/mixins/_grid.scss +126 -0
  202. package/styles/mixins/_hide-scrollbars.scss +10 -0
  203. package/styles/mixins/_hide-text.scss +24 -0
  204. package/styles/mixins/_icon-base.scss +30 -0
  205. package/styles/mixins/_image.scss +26 -0
  206. package/styles/mixins/_index.scss +48 -0
  207. package/styles/mixins/_labels.scss +14 -0
  208. package/styles/mixins/_list-group.scss +32 -0
  209. package/styles/mixins/_nav-divider.scss +8 -0
  210. package/styles/mixins/_nav-vertical-align.scss +9 -0
  211. package/styles/mixins/_opacity.scss +9 -0
  212. package/styles/mixins/_pagination.scss +26 -0
  213. package/styles/mixins/_panels.scss +25 -0
  214. package/styles/mixins/_progress-bar.scss +12 -0
  215. package/styles/mixins/_reset-filter.scss +9 -0
  216. package/styles/mixins/_reset-text.scss +21 -0
  217. package/styles/mixins/_resize.scss +6 -0
  218. package/styles/mixins/_responsive-visibility.scss +21 -0
  219. package/styles/mixins/_shadows-helper.scss +40 -0
  220. package/styles/mixins/_size.scss +109 -0
  221. package/styles/mixins/_tab-focus.scss +20 -0
  222. package/styles/mixins/_table-row.scss +30 -0
  223. package/styles/mixins/_tag.scss +14 -0
  224. package/styles/mixins/_text-emphasis.scss +19 -0
  225. package/styles/mixins/_text-overflow.scss +10 -0
  226. package/styles/mixins/_vendor-prefixes.scss +149 -0
  227. package/styles/mixins/vendor-prefixes.less +37 -112
  228. package/styles/utilities/_borders.less +3 -12
  229. package/styles/utilities/_borders.scss +137 -0
  230. package/styles/utilities/_caret.scss +50 -0
  231. package/styles/utilities/_container-queries.scss +113 -0
  232. package/styles/utilities/_contextual-colors.less +113 -168
  233. package/styles/utilities/_contextual-colors.scss +170 -0
  234. package/styles/utilities/_display.scss +439 -0
  235. package/styles/utilities/_elevation.scss +41 -0
  236. package/styles/utilities/_flex-containers.scss +219 -0
  237. package/styles/utilities/_flex-items.scss +152 -0
  238. package/styles/utilities/_icon-utils.less +5 -5
  239. package/styles/utilities/_icon-utils.scss +94 -0
  240. package/styles/utilities/_margins-paddings.scss +190 -0
  241. package/styles/utilities/_overflows.scss +69 -0
  242. package/styles/utilities/_position.less +3 -6
  243. package/styles/utilities/_position.scss +143 -0
  244. package/styles/utilities/_quickfloats.less +1 -8
  245. package/styles/utilities/_quickfloats.scss +36 -0
  246. package/styles/utilities/_separators.scss +71 -0
  247. package/styles/utilities/_shadows.scss +7 -0
  248. package/styles/utilities/_sizing.scss +122 -0
  249. package/styles/utilities/_text-utils.scss +691 -0
  250. package/styles/utilities.less +1 -4
  251. package/styles/vendor/ace-editor/_ace-editor.scss +26 -0
  252. package/styles/vendor/angular/_loading-bar.scss +33 -0
  253. package/styles/{_ui-sortable.less → vendor/angular/_ui-sortable.less} +1 -1
  254. package/styles/vendor/angular/_ui-sortable.scss +70 -0
  255. package/styles/{_uib-accordion.less → vendor/angular/_uib-accordion.less} +1 -1
  256. package/styles/vendor/angular/_uib-accordion.scss +59 -0
  257. package/styles/vendor/angular/angular-ui-select/_select.scss +154 -0
  258. package/styles/vendor/angular/angular-ui-select/select.less +161 -0
  259. package/styles/vendor/cdk/_cdk-drag.scss +71 -0
  260. package/styles/{_cdk-tree.less → vendor/cdk/_cdk-tree.less} +1 -1
  261. package/styles/vendor/cdk/_cdk-tree.scss +66 -0
  262. package/styles/vendor/cdk/_cdk-virtual-scroll-window.scss +18 -0
  263. package/styles/{_bs-datepicker.less → vendor/datepicker/_bs-datepicker.less} +1 -7
  264. package/styles/vendor/datepicker/_bs-datepicker.scss +628 -0
  265. package/styles/{_datepicker.less → vendor/datepicker/_uib-datepicker.less} +1 -6
  266. package/styles/vendor/datepicker/_uib-datepicker.scss +173 -0
  267. package/styles/{_c8y-map-internal.less → vendor/leaflet/_c8y-map-internal.less} +4 -4
  268. package/styles/vendor/leaflet/_c8y-map-internal.scss +316 -0
  269. package/styles/{_leaflet.less → vendor/leaflet/_leaflet.less} +4 -3
  270. package/styles/vendor/leaflet/_leaflet.scss +803 -0
  271. package/styles/{_colorpicker.less → vendor/other/_colorpicker.less} +2 -2
  272. package/styles/vendor/other/_colorpicker.scss +40 -0
  273. package/styles/{_c8y-selectize.less → vendor/selectize/_c8y-selectize.less} +1 -10
  274. package/styles/vendor/selectize/_c8y-selectize.scss +403 -0
  275. package/sync-scss-to-less.sh +75 -0
  276. package/variables/README.md +485 -0
  277. package/variables/_alert-vars.scss +36 -0
  278. package/variables/_badge-vars.less +0 -1
  279. package/variables/_badge-vars.scss +24 -0
  280. package/variables/_brand-vars.scss +97 -0
  281. package/variables/_breadcrumbs-vars.scss +13 -0
  282. package/variables/_buttons-vars.less +17 -0
  283. package/variables/_buttons-vars.scss +107 -0
  284. package/variables/_c8y-action-bar-vars.less +1 -1
  285. package/variables/_c8y-action-bar-vars.scss +15 -0
  286. package/variables/_c8y-icon-vars.scss +199 -0
  287. package/variables/_code-vars.less +2 -3
  288. package/variables/_code-vars.scss +18 -0
  289. package/variables/_color-defaults.less +91 -0
  290. package/variables/_color-defaults.scss +91 -0
  291. package/variables/_color-vars.less +96 -39
  292. package/variables/_color-vars.scss +303 -0
  293. package/variables/_components-vars.scss +22 -0
  294. package/variables/_dlt-c8y-icons-vars.scss +1825 -0
  295. package/variables/_forms-vars.less +1 -1
  296. package/variables/_forms-vars.scss +98 -0
  297. package/variables/_label-vars.less +5 -2
  298. package/variables/_label-vars.scss +37 -0
  299. package/variables/_layout-vars.less +29 -13
  300. package/variables/_layout-vars.scss +110 -0
  301. package/variables/_map-vars.scss +12 -0
  302. package/variables/_modal-vars.less +2 -2
  303. package/variables/_modal-vars.scss +13 -0
  304. package/variables/_navbar-vars.less +15 -7
  305. package/variables/_navbar-vars.scss +72 -0
  306. package/variables/_navigator.scss +8 -0
  307. package/variables/_page-sticky-header.scss +4 -0
  308. package/variables/_pagination-vars.scss +30 -0
  309. package/variables/_panel-vars.less +2 -2
  310. package/variables/_panel-vars.scss +40 -0
  311. package/variables/_popover-vars.scss +23 -0
  312. package/variables/_progress-bars-vars.less +5 -5
  313. package/variables/_progress-bars-vars.scss +19 -0
  314. package/variables/_scaffolding.scss +33 -0
  315. package/variables/_selectize-vars.scss +37 -0
  316. package/variables/_tables-vars.scss +7 -0
  317. package/variables/_tag-vars.less +1 -1
  318. package/variables/_tag-vars.scss +38 -0
  319. package/variables/_thumbnail-vars.scss +12 -0
  320. package/variables/_tooltip-vars.scss +16 -0
  321. package/variables/_typography-vars.scss +45 -0
  322. package/variables/dashboard-themes/_branded-dashboard.less +0 -11
  323. package/variables/dashboard-themes/_branded-dashboard.scss +296 -0
  324. package/variables/dashboard-themes/_dark-dashboard.less +7 -0
  325. package/variables/dashboard-themes/_dark-dashboard.scss +40 -0
  326. package/variables/dashboard-themes/_transparent-dashboard.scss +17 -0
  327. package/variables/dashboard-themes/_white-dashboard.scss +44 -0
  328. package/variables/index.less +4 -0
  329. package/variables/index.scss +146 -0
  330. package/variables/login-vars.scss +48 -0
  331. package/variables/shadows.scss +15 -0
  332. package/variables/tokens/c8y-design-tokens-dark.less +2 -13
  333. package/variables/tokens/c8y-design-tokens-dark.scss +332 -0
  334. package/variables/tokens/c8y-design-tokens.less +4 -15
  335. package/variables/tokens/c8y-design-tokens.scss +590 -0
  336. package/styles/_animate.less +0 -1133
  337. package/styles/_baseline-grid.less +0 -22
  338. package/styles/_browser-mock.less +0 -59
  339. package/styles/_bulk-operation-details-tab.less +0 -10
  340. package/styles/_c8y-message-banner.less +0 -37
  341. package/styles/_dlt-c8y-icons-stroke.less +0 -32797
  342. package/styles/_markdown-content.less +0 -54
  343. package/styles/_marker-icons.less +0 -19
  344. /package/styles/{_component-animations.less → animations/_component-animations.less} +0 -0
  345. /package/styles/{_realtime-animation-list.less → animations/_realtime-animation-list.less} +0 -0
  346. /package/styles/{_spinner-snake.less → animations/_spinner-snake.less} +0 -0
  347. /package/styles/{_normalize.less → base/_normalize.less} +0 -0
  348. /package/styles/{_print.less → base/_print.less} +0 -0
  349. /package/styles/{_scaffolding.less → base/_scaffolding.less} +0 -0
  350. /package/styles/{_c8y-empty-state.less → components/data-display-and-visualization/lists/_c8y-empty-state.less} +0 -0
  351. /package/styles/{_cards-layout.less → components/data-display-and-visualization/lists/_cards-layout.less} +0 -0
  352. /package/styles/{_smart-rules-template-list.less → components/data-display-and-visualization/lists/_smart-rules-template-list.less} +0 -0
  353. /package/styles/{_data-grid.less → components/data-display-and-visualization/tables/_data-grid.less} +0 -0
  354. /package/styles/{_tables.less → components/data-display-and-visualization/tables/_tables.less} +0 -0
  355. /package/styles/{_asset-property-list.less → components/data-input/assets/_asset-property-list.less} +0 -0
  356. /package/styles/{_c8y-asset-notes.less → components/data-input/assets/_c8y-asset-notes.less} +0 -0
  357. /package/styles/{_c8y-asset-selector-miller.less → components/data-input/assets/_c8y-asset-selector-miller.less} +0 -0
  358. /package/styles/{_c8y-child-assets-selector.less → components/data-input/assets/_c8y-child-assets-selector.less} +0 -0
  359. /package/styles/{_c8y-action-bar.less → components/navigation-and-layout/action-bars/_c8y-action-bar.less} +0 -0
  360. /package/styles/{_card-flip.less → components/navigation-and-layout/cards/_card-flip.less} +0 -0
  361. /package/styles/{_card-grid.less → components/navigation-and-layout/cards/_card-grid.less} +0 -0
  362. /package/styles/{_c8y-nav-stacked.less → components/navigation-and-layout/navigation/_c8y-nav-stacked.less} +0 -0
  363. /package/styles/{_main-header.less → components/navigation-and-layout/navigation/_main-header.less} +0 -0
  364. /package/styles/{_navigator.less → components/navigation-and-layout/navigation/_navigator.less} +0 -0
  365. /package/styles/{_navs.less → components/navigation-and-layout/navigation/_navs.less} +0 -0
  366. /package/styles/{_pagination.less → components/navigation-and-layout/navigation/_pagination.less} +0 -0
  367. /package/styles/{_boxed-label.less → components/specialized/_boxed-label.less} +0 -0
  368. /package/styles/{_c8y-cookie-banner.less → components/specialized/_c8y-cookie-banner.less} +0 -0
  369. /package/styles/{_c8y-datapoint-pill.less → components/specialized/_c8y-datapoint-pill.less} +0 -0
  370. /package/styles/{_c8y-pulse.less → components/specialized/_c8y-pulse.less} +0 -0
  371. /package/styles/{_c8y-range.less → components/specialized/_c8y-range.less} +0 -0
  372. /package/styles/{_c8y-scrollbar.less → components/specialized/_c8y-scrollbar.less} +0 -0
  373. /package/styles/{_c8y-smart-rest-tab.less → components/specialized/_c8y-smart-rest-tab.less} +0 -0
  374. /package/styles/{_code.less → components/specialized/_code.less} +0 -0
  375. /package/styles/{_device-software-tab.less → components/specialized/_device-software-tab.less} +0 -0
  376. /package/styles/{_dtm-icon-selector.less → components/specialized/_dtm-icon-selector.less} +0 -0
  377. /package/styles/{_search-header.less → components/specialized/_search-header.less} +0 -0
  378. /package/styles/{_static-assets-file-picker.less → components/specialized/_static-assets-file-picker.less} +0 -0
  379. /package/styles/{_statusContainer.less → components/specialized/_statusContainer.less} +0 -0
  380. /package/styles/{_button-groups.less → core/buttons/_button-groups.less} +0 -0
  381. /package/styles/{_badges.less → core/feedback/_badges.less} +0 -0
  382. /package/styles/{_close.less → core/feedback/_close.less} +0 -0
  383. /package/styles/{_progress-bars.less → core/feedback/_progress-bars.less} +0 -0
  384. /package/styles/{_tooltip.less → core/feedback/_tooltip.less} +0 -0
  385. /package/styles/{_popovers.less → core/overlays/_popovers.less} +0 -0
  386. /package/styles/{_availability-pie.less → dashboard/_availability-pie.less} +0 -0
  387. /package/styles/{_dashboard-widgets.less → dashboard/_dashboard-widgets.less} +0 -0
  388. /package/styles/{_info-gauge.less → dashboard/_info-gauge.less} +0 -0
  389. /package/styles/{_quick-links-widget.less → dashboard/_quick-links-widget.less} +0 -0
  390. /package/styles/{_c8y-glyphs.less → icons/_c8y-glyphs.less} +0 -0
  391. /package/styles/{_bottom-drawer.less → layout/_bottom-drawer.less} +0 -0
  392. /package/styles/{_c8y-help-drawer.less → layout/_c8y-help-drawer.less} +0 -0
  393. /package/styles/{_c8y-right-drawer.less → layout/_c8y-right-drawer.less} +0 -0
  394. /package/styles/{_c8y-top-drawer.less → layout/_c8y-top-drawer.less} +0 -0
  395. /package/styles/{_group-info.less → layout/_group-info.less} +0 -0
  396. /package/styles/{_mcontainer.less → layout/_mcontainer.less} +0 -0
  397. /package/styles/{_page-tabs.less → layout/_page-tabs.less} +0 -0
  398. /package/styles/{_split-view.less → layout/_split-view.less} +0 -0
  399. /package/styles/{_ace-editor.less → vendor/ace-editor/_ace-editor.less} +0 -0
  400. /package/styles/{_loading-bar.less → vendor/angular/_loading-bar.less} +0 -0
  401. /package/styles/{_cdk-drag.less → vendor/cdk/_cdk-drag.less} +0 -0
  402. /package/styles/{_cdk-virtual-scroll-window.less → vendor/cdk/_cdk-virtual-scroll-window.less} +0 -0
@@ -0,0 +1,1183 @@
1
+ @use "sass:string";
2
+ @use "../../../variables/index" as *;
3
+ @use "../../../variables/dlt-c8y-icons-vars";
4
+ @use "../../icons/c8y-glyphs";
5
+ @use "../../mixins/c8y-scrollbar";
6
+ @use "../../mixins/forms";
7
+ @use "../../mixins/grid";
8
+ @use "../../mixins/icon-base";
9
+
10
+ /**
11
+ * Forms - Form controls, inputs, labels, and validation
12
+ *
13
+ * Note: Uses $form-control-*, $form-label-*, $form-legend-*, and $size-* tokens.
14
+ *
15
+ * Intentionally hardcoded values:
16
+ * - rem-based values (1rem, 0.25rem, 1.1428571429em, 1.5em, 0.9rem): Relative sizing for fieldsets
17
+ * - Percentages (20%, 50%, 100%): Layout calculations
18
+ * - Border widths (1px): Standard borders
19
+ * - Fine-tuning offsets (1px, 2px, 3px): Precise positioning adjustments
20
+ * - Decimal positions (4.4px, 3.7px, .3px): Sub-pixel positioning for checkmarks
21
+ * - Component-specific sizes (30px, 32px, 180px): Fixed component dimensions
22
+ * - Typography sizes (12px, 14px, 16px, 18px): Font sizes
23
+ * - Checkbox/radio mark dimensions (9px, 5px): Custom control indicators
24
+ * - Shadow values (0 0 0 2px, inset 0 0 0): Box-shadow specifications
25
+ * - Transition durations (0.15s, 0.25s, 0.35s, 0.4s, 0.5s): Animation timing
26
+ * - Opacity values: Visual effects
27
+ * - Z-index values: Layering
28
+ * - Transform values (rotate, translate, scale): Positioning transforms
29
+ * - Line-height unitless values (1, 1.2, 1.5): Relative line heights
30
+ * - Calculation expressions: Complex computed values
31
+ * - Non-standard spacing (15px): Off-token legacy spacing
32
+ */
33
+
34
+ // Shared mixin for validation state styling with feedback icon
35
+ @mixin validation-state($validation-color, $icon-content) {
36
+ @include forms.form-control-validation($form-control-color-default, $validation-color, transparent);
37
+ .form-control-feedback-message {
38
+ &:before {
39
+ content: $icon-content;
40
+ }
41
+ }
42
+ }
43
+
44
+ // Shared mixin for form-block border line
45
+ @mixin form-block-border-line() {
46
+ align-self: center;
47
+ flex: 1 1 auto;
48
+ border-top-width: 1px;
49
+ border-top-style: solid;
50
+ content: '';
51
+ opacity: 0.5;
52
+ }
53
+
54
+ // Normalize non-controls
55
+ fieldset {
56
+ margin: 0;
57
+ padding: 0;
58
+ min-width: 0;
59
+ border: 0;
60
+ }
61
+
62
+ fieldset.c8y-fieldset {
63
+ display: block;
64
+ margin: 1rem 0;
65
+ border: solid 1px $form-control-border-color-default;
66
+ border-radius: $size-8;
67
+ margin-inline-start: 2px;
68
+ margin-inline-end: 2px;
69
+ padding-block-start: 0.25rem;
70
+ padding-inline-end: 1.1428571429em;
71
+ padding-block-end: 0;
72
+ padding-inline-start: 1.1428571429em;
73
+ min-inline-size: 100%;
74
+ &--lg {
75
+ padding-block-start: 1rem;
76
+ padding-inline-end: 1.5em;
77
+ padding-block-end: 0;
78
+ padding-inline-start: 1.5em;
79
+ }
80
+ &.expanded {
81
+ margin: 1rem -1.15rem;
82
+ }
83
+
84
+ legend {
85
+ margin: 0;
86
+ width: auto;
87
+ text-transform: none;
88
+ padding-inline-start: $size-4;
89
+ padding-inline-end: $size-4;
90
+ min-height: $size-24;
91
+ display: flex;
92
+ align-items: center;
93
+ }
94
+
95
+ legend[align='left'] {
96
+ justify-self: left;
97
+ }
98
+
99
+ legend[align='center'] {
100
+ justify-self: center;
101
+ }
102
+
103
+ legend[align='right'] {
104
+ justify-self: right;
105
+ }
106
+ + .c8y-fieldset {
107
+ margin-top: $size-24;
108
+ }
109
+ }
110
+
111
+ legend,
112
+ .legend {
113
+ display: block;
114
+ margin: $size-16 0 $size-8 0;
115
+ padding: 0;
116
+ width: 100%;
117
+ border: 0;
118
+ color: $form-legend-color;
119
+ text-transform: $form-legend-text-transform;
120
+ font-weight: $form-legend-font-weight;
121
+ font-size: $form-legend-font-size;
122
+ line-height: inherit;
123
+ &.form-block {
124
+ display: flex;
125
+ align-items: center;
126
+ flex-flow: row nowrap;
127
+ &:after {
128
+ @include form-block-border-line();
129
+ margin-left: $size-8;
130
+ }
131
+ &.center {
132
+ &:before {
133
+ @include form-block-border-line();
134
+ margin-right: $size-8;
135
+ }
136
+ }
137
+ &.last-record {
138
+ margin-right: auto;
139
+ margin-left: auto;
140
+ max-width: 180px;
141
+ > [class^='dlt-c8y-icon-'],
142
+ > [class*=' dlt-c8y-icon-'] {
143
+ font-size: 0.5rem;
144
+ }
145
+ }
146
+ }
147
+ > .dot {
148
+ margin-right: $size-5;
149
+ width: 30px;
150
+ height: 30px;
151
+ font-size: 14px;
152
+ line-height: 32px;
153
+ &--small {
154
+ width: $size-20;
155
+ height: $size-20;
156
+ font-size: 12px;
157
+ display: flex;
158
+ align-items: center;
159
+ justify-content: center;
160
+ border-radius: 50%;
161
+ }
162
+ }
163
+ }
164
+
165
+ label {
166
+ display: inline-block;
167
+ margin-bottom: $size-4;
168
+ max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)
169
+ color: $form-label-color;
170
+ text-transform: $form-label-text-transform;
171
+ font-weight: $form-label-font-weight;
172
+ font-size: $form-label-font-size;
173
+ font-family: $form-control-font-family;
174
+ > a {
175
+ display: inline-block;
176
+ font-size: inherit;
177
+ }
178
+ &[tooltip],
179
+ [tooltip],
180
+ [uib-tooltip] {
181
+ cursor: pointer;
182
+ }
183
+ .form-group & {
184
+ display: block;
185
+ }
186
+
187
+ fieldset[disabled] & {
188
+ &:not(.c8y-checkbox):not(.c8y-radio) {
189
+ opacity: $form-control-disabled-opacity;
190
+ }
191
+ }
192
+ &:has(.btn-help) {
193
+ display: flex;
194
+ align-items: center;
195
+ }
196
+ }
197
+
198
+ // Normalize form controls
199
+
200
+ // While most of our form styles require extra classes, some basic normalization
201
+ // is required to ensure optimum display with or without those classes to better address browser inconsistencies.
202
+ // Override content-box in Normalize (* isn't specific enough)
203
+ input[type='search'] {
204
+ @include forms.box-sizing(border-box);
205
+ }
206
+
207
+ // Position radios and checkboxes better
208
+ input[type='radio'],
209
+ input[type='checkbox'] {
210
+ margin: 1px 0 0;
211
+ margin-top: 1px \9; // IE8-9
212
+ font-size: 16px;
213
+ line-height: normal;
214
+ }
215
+
216
+ .plain input[type='checkbox'] {
217
+ margin: 3px 0 0;
218
+ }
219
+
220
+ input[type='file'] {
221
+ display: block;
222
+ }
223
+
224
+ // remove icon in chrome
225
+ input[type='date']::-webkit-inner-spin-button,
226
+ input[type='date']::-webkit-calendar-picker-indicator {
227
+ display: none;
228
+
229
+ -webkit-appearance: none;
230
+ }
231
+
232
+ // Make multiple select elements height not fixed
233
+ select[multiple],
234
+ select[size] {
235
+ height: auto;
236
+ }
237
+
238
+ // Adjust output element
239
+ output {
240
+ display: block;
241
+ color: $form-control-color-default;
242
+ font-size: $font-size-base;
243
+ line-height: inherit;
244
+ }
245
+
246
+ // Common form controls
247
+ // Shared size and type resets for form controls. Apply `.form-control` to any of the following form controls:
248
+ .form-control {
249
+ display: block;
250
+ padding: $form-control-padding-base-vertical $form-control-padding-base-horizontal;
251
+ width: 100%;
252
+ height: $form-control-height-base;
253
+ border: 0;
254
+ border-radius: $form-control-border-radius;
255
+ background-color: $form-control-background-default;
256
+ background-image: none; // Reset unusual Firefox-on-Android default style,see https://github.com/necolas/normalize.css/issues/214
257
+ box-shadow: inset 0 0 0 $form-control-border-width $form-control-border-color-default;
258
+ color: $form-control-color-default;
259
+ font-weight: $form-control-font-weight;
260
+ font-size: $font-size-base;
261
+ font-family: $form-control-font-family;
262
+ line-height: $form-control-line-height;
263
+ transition:
264
+ border-color 0.15s ease-in-out,
265
+ box-shadow 0.15s ease-in-out;
266
+
267
+ @include forms.form-control-focus();
268
+ @include forms.placeholder();
269
+
270
+ &:has(.c8y-colorpicker) {
271
+ width: auto;
272
+ }
273
+ &[disabled],
274
+ fieldset[disabled] & {
275
+ opacity: $form-control-disabled-opacity;
276
+ }
277
+ &[readonly],
278
+ &[readonly]:focus {
279
+ background-color: $form-control-background-default;
280
+ color: $text-muted;
281
+ opacity: 1;
282
+ }
283
+ &[disabled],
284
+ fieldset[disabled] & {
285
+ cursor: $cursor-disabled;
286
+ }
287
+ textarea & {
288
+ height: auto;
289
+ }
290
+ }
291
+
292
+ textarea.form-control {
293
+ min-height: $form-control-height-base;
294
+ height: auto;
295
+ resize: vertical;
296
+
297
+ @include c8y-scrollbar.c8y-scrollbar();
298
+ &.no-resize {
299
+ resize: none;
300
+ }
301
+ }
302
+
303
+ // color picker
304
+ .c8y-colorpicker {
305
+ position: relative;
306
+ width: $size-20;
307
+ height: $size-20;
308
+ input {
309
+ position: absolute;
310
+ top: 0;
311
+ left: 0;
312
+ z-index: 10;
313
+ box-sizing: border-box;
314
+ width: $size-20;
315
+ height: $size-20;
316
+ opacity: 0;
317
+ cursor: pointer;
318
+ + span {
319
+ position: absolute;
320
+ top: 0;
321
+ right: 0;
322
+ bottom: 0;
323
+ left: 0;
324
+ z-index: 9;
325
+ border-radius: 50%;
326
+ border: 1px solid $form-control-border-color-default;
327
+ }
328
+ &:focus + span {
329
+ box-shadow: 0 0 0 2px $form-control-border-color-focus;
330
+ }
331
+ }
332
+ &--alarm, &--event{
333
+ input + span{
334
+ display: flex;
335
+ align-items: center;
336
+ justify-content: center;
337
+ font-size: 14px;
338
+ color: var(--component-background-default, var(--c8y-root-component-background-default, #fff));
339
+ > i{
340
+ transform: translateY(.3px);
341
+ }
342
+ }
343
+ }
344
+ }
345
+
346
+ // Search inputs in iOS
347
+ //
348
+ // This overrides the extra rounded corners on search inputs in iOS so that our
349
+ // `.form-control` class can properly style them. Note that this cannot simply
350
+ // be added to `.form-control` as it's not specific enough. For details, see
351
+ // https://github.com/twbs/bootstrap/issues/11586.
352
+ input[type='search'] {
353
+ -webkit-appearance: none;
354
+ appearance: none;
355
+ }
356
+
357
+ select,
358
+ select.form-control {
359
+ // Form control base styles (from .form-control in forms.less)
360
+ display: block;
361
+ padding: $form-control-padding-base-vertical $form-control-padding-base-horizontal;
362
+ width: 100%;
363
+ height: $form-control-height-base;
364
+ border: 0;
365
+ border-radius: $form-control-border-radius;
366
+ background-color: $form-control-background-default;
367
+ box-shadow: inset 0 0 0 $form-control-border-width $form-control-border-color-default;
368
+ color: $form-control-color-default;
369
+ font-weight: $form-control-font-weight;
370
+ font-size: $font-size-base;
371
+ font-family: $form-control-font-family;
372
+ line-height: $form-control-line-height;
373
+ transition:
374
+ border-color 0.15s ease-in-out,
375
+ box-shadow 0.15s ease-in-out;
376
+
377
+ &[multiple],
378
+ &[size] {
379
+ height: auto;
380
+ background-image: none;
381
+ }
382
+ }
383
+
384
+ .c8y-select-wrapper {
385
+ position: relative;
386
+ select {
387
+ padding-right: $size-24;
388
+ background-image: none;
389
+
390
+ -webkit-appearance: none;
391
+ -moz-appearance: none;
392
+ appearance: none;
393
+ &::-ms-expand {
394
+ display: none;
395
+ }
396
+ }
397
+ &:after {
398
+ @include icon-base.c8y-glyph;
399
+ position: absolute;
400
+ top: 50%;
401
+ right: $size-5;
402
+ z-index: 2;
403
+ color: $form-control-icon-color;
404
+ content: c8y-glyphs.$c8y-glyph-caret;
405
+ font-size: 18px;
406
+ transform: translate(0, -50%);
407
+ pointer-events: none;
408
+ }
409
+ }
410
+
411
+ // Form groups
412
+ // Designed to help with the organization and spacing of vertical forms. For
413
+ // horizontal forms, wrap form-groups in the predefined grid classes.
414
+ .form-group {
415
+ display: block;
416
+ margin-bottom: $form-validation-bottom-margin;
417
+ }
418
+
419
+ td.form-group,
420
+ th.form-group {
421
+ margin-bottom: 0;
422
+ }
423
+
424
+ // Checkboxes and radios
425
+ label.c8y-checkbox,
426
+ label.c8y-radio {
427
+ position: relative;
428
+ display: flex;
429
+ align-items: center;
430
+ margin: 0;
431
+ color: $form-control-color-default;
432
+ text-transform: none;
433
+ font-weight: $form-control-font-weight;
434
+ font-size: inherit;
435
+ line-height: $form-control-height-base;
436
+ cursor: pointer;
437
+ input[type='checkbox'],
438
+ input[type='radio'] {
439
+ position: absolute;
440
+ top: 0;
441
+ left: 0;
442
+ z-index: 1;
443
+ margin: 0;
444
+ opacity: 0;
445
+ }
446
+ input + span {
447
+ position: relative;
448
+ z-index: 2;
449
+ display: inline-block;
450
+ }
451
+ input[type='checkbox'] + span,
452
+ input[type='radio'] + span {
453
+ position: relative;
454
+ display: inline-block;
455
+ flex-shrink: 0;
456
+ width: $checkbox-size;
457
+ height: $checkbox-size;
458
+ border-radius: $form-control-border-radius;
459
+ background-color: $form-control-background-default;
460
+ box-shadow: inset 0 0 0 1px $form-control-border-color-default;
461
+ transition:
462
+ border-color 0.15s ease-in-out,
463
+ box-shadow 0.15s ease-in-out;
464
+ margin: 2px 0;
465
+ + span {
466
+ margin-left: $size-8;
467
+ line-height: $form-control-line-height;
468
+ }
469
+ }
470
+
471
+ input[type='radio'] + span {
472
+ border-radius: 50%;
473
+ }
474
+ &:hover,
475
+ input:focus {
476
+ + span {
477
+ background-color: $form-control-background-focus;
478
+ box-shadow: inset 0 0 0 2px $form-control-border-color-focus;
479
+ color: $form-control-color-focus;
480
+ }
481
+ }
482
+ input[type='checkbox']:checked + span::after {
483
+ position: absolute;
484
+ top: 4.4px;
485
+ left: 3.7px;
486
+ display: block;
487
+ width: 9px;
488
+ height: 5px;
489
+ border-bottom: 2px solid;
490
+ border-left: 2px solid;
491
+ color: $form-control-border-color-focus;
492
+ content: '';
493
+ transform: rotate(-45deg);
494
+ }
495
+
496
+ input[type='radio']:checked + span::after {
497
+ position: absolute;
498
+ top: 50%;
499
+ left: 50%;
500
+ display: inline-block;
501
+ width: $size-8;
502
+ height: $size-8;
503
+ border-radius: 50%;
504
+ background-color: $form-control-border-color-focus;
505
+ content: '';
506
+ font-size: 10px;
507
+ line-height: inherit;
508
+ transform: translate(-50%, -50%);
509
+ pointer-events: none;
510
+ }
511
+
512
+ //checkbox indeterminate
513
+ input[type='checkbox']:indeterminate + span::after {
514
+ position: absolute;
515
+ top: 4.4px;
516
+ left: $size-4;
517
+ display: block;
518
+ width: $size-8;
519
+ height: 5px;
520
+ border-bottom: 2px solid;
521
+ border-left: 0;
522
+ color: $form-control-border-color-focus;
523
+ content: '';
524
+ }
525
+
526
+ //disabled
527
+ input[disabled],
528
+ input[disabled]:checked {
529
+ cursor: $cursor-disabled;
530
+ + span {
531
+ background-color: $form-control-background-disabled;
532
+ opacity: $form-control-disabled-opacity;
533
+ cursor: $cursor-disabled;
534
+ }
535
+ ~ span {
536
+ opacity: $form-control-disabled-opacity;
537
+ }
538
+ }
539
+
540
+ input[readonly],
541
+ input[readonly]:checked {
542
+ pointer-events: none;
543
+ ~ span {
544
+ opacity: $form-control-disabled-opacity;
545
+ }
546
+ }
547
+ &.disabled,
548
+ [disabled] & {
549
+ cursor: $cursor-disabled;
550
+ span {
551
+ opacity: $form-control-disabled-opacity;
552
+ cursor: $cursor-disabled;
553
+ &::before {
554
+ opacity: 1;
555
+ }
556
+ }
557
+ }
558
+ &.checkbox-inline,
559
+ &.radio-inline {
560
+ display: inline-flex;
561
+ padding: 0;
562
+ &:not(:last-child) {
563
+ margin-right: $size-16;
564
+ }
565
+ }
566
+ &.has-error {
567
+ input + span {
568
+ box-shadow: inset 0 0 0 2px $form-control-validation-error;
569
+ }
570
+ }
571
+ }
572
+
573
+ .form-group {
574
+ > label + .c8y-checkbox,
575
+ > label + .c8y-radio {
576
+ margin-top: $size-8;
577
+ }
578
+ }
579
+
580
+ // Form control help & feedback states
581
+ // set feedback min height to avoid field jumping
582
+ c8y-error-feedback,
583
+ c8y-messages,
584
+ .c8y-messages {
585
+ display: block;
586
+ margin-bottom: calc($form-validation-bottom-margin * -1);
587
+ min-height: $form-validation-bottom-margin;
588
+ .has-error.form-group--tooltip-validation &,
589
+ .input-group-array .has-error & {
590
+ display: none;
591
+ .form-control-feedback-message:not(.ng-inactive) {
592
+ padding-top: 0.25em;
593
+ margin-top: 0;
594
+ &::before {
595
+ color: $tooltip-color-default;
596
+ }
597
+ }
598
+ }
599
+ .has-error.form-group--tooltip-validation & {
600
+ .form-control-feedback-message:before {
601
+ color: var(--c8y-palette-high) !important;
602
+ }
603
+ }
604
+ .has-error.form-group--tooltip-validation:hover &,
605
+ .input-group-array .has-error:hover & {
606
+ position: absolute;
607
+ bottom: 61px;
608
+ left: calc(20% - $size-16);
609
+ z-index: 10;
610
+ display: block;
611
+ padding: 0 $size-5;
612
+ max-width: calc(100% - $size-16);
613
+ border-radius: $tooltip-radius;
614
+ background-color: $form-control-validation-error;
615
+ color: $tooltip-color-default;
616
+ &:after {
617
+ position: absolute;
618
+ bottom: -5px;
619
+ left: 50%;
620
+ margin-top: 0;
621
+ width: 0;
622
+ height: 0;
623
+ border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
624
+ border-style: solid;
625
+ border-color: transparent;
626
+ border-top-color: $form-control-validation-error;
627
+ content: '';
628
+ opacity: $tooltip-opacity;
629
+ }
630
+ }
631
+ }
632
+
633
+ .form-group .help-block,
634
+ .form-group .form-control-feedback-message {
635
+ position: relative;
636
+ display: block;
637
+ margin-top: 0;
638
+ min-height: $form-validation-bottom-margin;
639
+ font-size: $font-size-small;
640
+ line-height: 1.5;
641
+ &:empty {
642
+ display: none;
643
+ }
644
+ }
645
+ .help-block {
646
+ font-style: italic;
647
+ &.has-info,
648
+ .form-control-feedback-message:has(.help-block) & {
649
+ display: flex;
650
+ &:before {
651
+ font: normal normal normal 16px/1 '#{dlt-c8y-icons-vars.$icon-font-family}';
652
+ font-size: 16px;
653
+ color: $form-control-validation-info;
654
+ content: $alert-info-icon;
655
+ margin-right: 2px;
656
+ }
657
+ }
658
+ }
659
+
660
+ body .form-control-feedback-message:has(.help-block) {
661
+ padding-left: 0;
662
+ }
663
+
664
+ // icon in feedback message
665
+ .form-control-feedback-message,
666
+ .input-group + .help-block,
667
+ select ~ .help-block,
668
+ c8y-field-input ~ .help-block,
669
+ textarea ~ .help-block,
670
+ input ~ .help-block,
671
+ file-picker ~ .help-block,
672
+ .form-control ~ .help-block {
673
+ &:before {
674
+ position: absolute;
675
+ top: 2px;
676
+ left: 1px;
677
+ display: inline-block;
678
+ font: normal normal normal 14px/1 '#{dlt-c8y-icons-vars.$icon-font-family}';
679
+ font-size: 16px;
680
+
681
+ text-rendering: auto;
682
+ -webkit-font-smoothing: antialiased;
683
+ -moz-osx-font-smoothing: grayscale;
684
+ }
685
+ }
686
+
687
+ // Apply contextual and semantic states to individual form controls.
688
+ .form-control-feedback-message:not(.ng-inactive),
689
+ .input-group + .help-block,
690
+ select ~ .help-block,
691
+ textarea ~ .help-block,
692
+ file-picker ~ .help-block,
693
+ .form-control ~ .help-block,
694
+ c8y-field-input ~ .help-block,
695
+ input ~ .help-block {
696
+ position: relative;
697
+ padding-top: calc($size-base * 0.25);
698
+ padding-left: $size-20;
699
+ margin-top: 0;
700
+ }
701
+
702
+ file-picker ~ .help-block {
703
+ margin-top: calc(-1 * $size-24);
704
+ }
705
+
706
+ .has-success:not(.schema-form-text) {
707
+ @include validation-state($form-control-validation-success, $alert-success-icon);
708
+ }
709
+
710
+ .has-warning {
711
+ @include validation-state($form-control-validation-warning, $alert-warning-icon);
712
+ }
713
+
714
+ .has-error {
715
+ @include validation-state($form-control-validation-error, $alert-danger-icon);
716
+ }
717
+
718
+ .form-control-feedback-message.has-error {
719
+ margin-bottom: $size-8;
720
+ line-height: 1.2;
721
+ &:before {
722
+ color: $form-control-validation-error;
723
+ content: $alert-danger-icon;
724
+ }
725
+ .table-data-grid & {
726
+ display: none !important;
727
+ }
728
+ }
729
+
730
+ .has-info {
731
+ @include validation-state($form-control-validation-info, $alert-info-icon);
732
+ }
733
+
734
+ textarea ~ .help-block:not(:empty),
735
+ file-picker ~ .help-block:not(:empty),
736
+ select ~ .help-block:not(:empty),
737
+ input ~ .help-block:not(:empty),
738
+ c8y-field-input ~ .help-block:not(:empty),
739
+ .form-control ~ .help-block:not(:empty),
740
+ .input-group ~ .help-block:not(:empty) {
741
+ &:before {
742
+ color: $form-control-validation-info;
743
+ content: $alert-info-icon;
744
+ }
745
+ }
746
+
747
+ // legacy compliant
748
+ .form-control.ng-invalid.ng-invalid-required.ng-touched,
749
+ .form-control.ng-invalid.ng-touched {
750
+ box-shadow:
751
+ inset 1px 0 0 0 $form-control-border-color-default,
752
+ inset -1px 0 0 0 $form-control-border-color-default,
753
+ inset 0 1px 0 0 $form-control-border-color-default,
754
+ inset 0 -4px 0 $form-control-validation-error;
755
+ &:focus {
756
+ box-shadow:
757
+ inset 2px 0 0 0 $form-control-border-color-focus,
758
+ inset -2px 0 0 0 $form-control-border-color-focus,
759
+ inset 0 2px 0 0 $form-control-border-color-focus,
760
+ inset 0 -4px 0 $form-control-validation-error;
761
+ }
762
+
763
+ + * > .form-control-feedback-message:not(:empty) {
764
+ &:before {
765
+ color: $form-control-validation-error;
766
+ content: $alert-danger-icon;
767
+ }
768
+ }
769
+ }
770
+
771
+ // error message for drop-zone
772
+ .drop-zone .has-errors .form-control-feedback-message {
773
+ font-size: $font-size-base;
774
+ &:not(:empty):before {
775
+ color: $form-control-validation-error;
776
+ content: $alert-danger-icon;
777
+ }
778
+ }
779
+
780
+ // Feedback icon
781
+ // hidden - it was deprecated
782
+ .form-control-feedback {
783
+ display: none !important;
784
+ }
785
+
786
+ // Static form control text
787
+ //
788
+ // Apply class to a `p` element to make any string of text align with labels in
789
+ // a horizontal form layout.
790
+ .form-control-static {
791
+ display: flex;
792
+ align-items: center;
793
+ margin: 1px 0 0;
794
+ min-height: $form-control-height-base;
795
+ line-height: $form-control-line-height;
796
+ }
797
+
798
+ // Form control sizing
799
+ // Build on `.form-control` with modifier classes to decrease or increase the
800
+ // height and font-size of form controls.
801
+ //
802
+ .form-group-sm {
803
+ .btn{
804
+ @extend .btn-sm !optional;
805
+ }
806
+ > label {
807
+ margin-bottom: 0;
808
+ font-size: $font-size-small;
809
+ }
810
+ }
811
+
812
+ .form-group-sm .form-control,
813
+ .form-group-sm > .form-group .form-control,
814
+ .form-group-sm .form-control-static,
815
+ .input-sm , .input-group-sm .form-control {
816
+ &:not(.c8y-radio):not(.c8y-checkbox) {
817
+ padding: $form-control-padding-small-vertical $form-control-padding-small-horizontal;
818
+ height: $form-control-height-sm !important;
819
+ font-size: $font-size-small;
820
+ line-height: $line-height-small;
821
+ }
822
+ }
823
+
824
+ .form-group-lg > label {
825
+ font-size: $font-size-large;
826
+ }
827
+
828
+ .form-group-lg .form-control,
829
+ .form-group-lg .form-control-static,
830
+ .input-lg, .input-group-lg .form-control {
831
+ &:not(.c8y-radio):not(.c8y-checkbox) {
832
+ padding: $form-control-padding-large-vertical $form-control-padding-large-horizontal;
833
+ max-height: unset !important;
834
+ height: $form-control-height-lg !important;
835
+ font-size: $font-size-large;
836
+ }
837
+ }
838
+
839
+ // disable editing in forms
840
+ .form-read-only {
841
+ position: relative;
842
+ // covers all inputs within the form
843
+ label {
844
+ pointer-events: none;
845
+ }
846
+ input,
847
+ select{
848
+ pointer-events: none;
849
+ }
850
+
851
+ // Removed unused modifier: &.hidden-labels
852
+ .form-group {
853
+ margin: 0;
854
+ label {
855
+ margin: 0;
856
+ color: $form-label-color !important;
857
+ opacity: 1 !important;
858
+ }
859
+ }
860
+ .form-control,
861
+ .form-control.input-sm,
862
+ .form-control.input-lg {
863
+ padding: 0;
864
+ background-color: transparent;
865
+ box-shadow: none;
866
+ opacity: 1 !important;
867
+ resize: none;
868
+ &.ng-empty {
869
+ display: none;
870
+ }
871
+ }
872
+ textarea.form-control {
873
+ height: auto;
874
+ line-height: $form-control-line-height;
875
+ }
876
+ .btn:not(.form-edit-btn) {
877
+ display: none;
878
+ }
879
+ .form-edit-btn {
880
+ display: inline-block;
881
+ }
882
+ input[type='number'] {
883
+ -moz-appearance: textfield;
884
+ -webkit-appearance: none;
885
+ appearance: none;
886
+ }
887
+ }
888
+
889
+ // hide the .form-edit-btn outside a .form-read-only container
890
+ .form-edit-btn {
891
+ position: relative;
892
+ z-index: 1001;
893
+ display: none;
894
+ margin: 0;
895
+ padding: 0;
896
+ border: 0;
897
+ background: none;
898
+ color: $link-color;
899
+ font-size: $font-size-small;
900
+ cursor: pointer;
901
+ &:hover {
902
+ color: $link-color-hover;
903
+ text-decoration: none;
904
+ }
905
+ &:focus {
906
+ outline: none;
907
+ box-shadow: inset 0 -2px 0 $form-control-border-color-focus;
908
+ }
909
+ }
910
+
911
+ // Editable inputs
912
+ label.editable {
913
+ position: relative;
914
+ display: flex;
915
+ align-items: flex-start;
916
+ margin: 0;
917
+ padding: 0;
918
+ color: $form-control-color-default;
919
+ text-transform: none;
920
+ font-weight: inherit;
921
+ font-size: inherit;
922
+ cursor: pointer;
923
+ .form-control {
924
+ min-width: 4ch;
925
+ max-width: 100%;
926
+
927
+ -moz-appearance: textfield;
928
+ appearance: textfield;
929
+ &::-webkit-inner-spin-button,
930
+ &::-webkit-outer-spin-button {
931
+ margin: 0;
932
+ -webkit-appearance: none;
933
+ }
934
+ &[c8y-textarea-autoresize] {
935
+ transition:
936
+ border-color 0.15s ease-in-out,
937
+ box-shadow 0.15s ease-in-out,
938
+ padding 0.35s ease !important;
939
+ }
940
+ }
941
+ &:has(.ng-pristine):after {
942
+ @include icon-base.dlt-c8y-icon;
943
+ position: relative;
944
+ display: inline-block;
945
+ margin-top: 0.9rem;
946
+ color: $component-brand-primary;
947
+ content: dlt-c8y-icons-vars.$dlt-c8y-icon-pencil;
948
+ }
949
+
950
+ .form-control + span {
951
+ display: none;
952
+ }
953
+
954
+ &:not(.updated) {
955
+ .form-control:not(.ng-dirty) {
956
+ position: relative;
957
+ z-index: 9;
958
+ transition: all 0.35s ease;
959
+ &[c8y-textarea-autoresize] {
960
+ transition:
961
+ border-color 0.15s ease-in-out,
962
+ box-shadow 0.15s ease-in-out,
963
+ padding 0.35s ease !important;
964
+ }
965
+ &:not(:focus):not(:hover) {
966
+ z-index: 2;
967
+ overflow: hidden;
968
+ padding-right: 0;
969
+ padding-left: 0;
970
+ background-color: transparent;
971
+ box-shadow: none;
972
+ text-overflow: ellipsis;
973
+ }
974
+ }
975
+ }
976
+ &.updated {
977
+ width: 100%;
978
+ &:after {
979
+ display: none;
980
+ }
981
+ }
982
+ &.updated .form-control,
983
+ .form-control:focus,
984
+ .form-control.ng-dirty {
985
+ margin-right: calc(-1 * $size-24);
986
+ min-width: 100%;
987
+ opacity: 1;
988
+ transition: all 0.25s ease;
989
+ ~ span {
990
+ display: none;
991
+ }
992
+ }
993
+
994
+ &:not(.updated):hover {
995
+ .form-control {
996
+ min-width: 100%;
997
+ }
998
+ &:after {
999
+ opacity: 0;
1000
+ }
1001
+ .form-control:not(:focus) {
1002
+ background-color: transparent;
1003
+ }
1004
+ }
1005
+ .form-control.ng-invalid-required + span,
1006
+ .form-control.ng-invalid-required + span span {
1007
+ color: $form-control-validation-error !important;
1008
+ &:after {
1009
+ color: $form-control-validation-error !important;
1010
+ }
1011
+ }
1012
+
1013
+ .has-error &,
1014
+ .has-warning &,
1015
+ .has-info &,
1016
+ .has-success & {
1017
+ &:after {
1018
+ display: none;
1019
+ }
1020
+ .form-control {
1021
+ padding: $form-control-padding-base-vertical $form-control-padding-base-horizontal !important;
1022
+ }
1023
+ }
1024
+ }
1025
+
1026
+ // Inline forms
1027
+ //
1028
+ // Make forms appear inline(-block) by adding the `.form-inline` class. Inline
1029
+ // forms begin stacked on extra small (mobile) devices and then go inline when
1030
+ // viewports reach <768px.
1031
+ //
1032
+ // Requires wrapping inputs and labels with `.form-group` for proper display of
1033
+ // default HTML form controls and our custom form controls (e.g., input groups).
1034
+ //
1035
+ // Heads up! This is mixin-ed into `.navbar-form` in navbars.less.
1036
+ .form-inline {
1037
+ @media (min-width: $screen-sm-min) {
1038
+ .form-group {
1039
+ display: inline-block;
1040
+ margin-bottom: 0;
1041
+ max-height: 32px !important;
1042
+ vertical-align: middle;
1043
+
1044
+ > label {
1045
+ margin-right: $size-8;
1046
+ }
1047
+ + .form-group, + .btn {
1048
+ margin-left: $size-8;
1049
+ }
1050
+
1051
+ }
1052
+
1053
+ label {
1054
+ display: inline-block;
1055
+ margin-bottom: 0;
1056
+ }
1057
+
1058
+ .form-control {
1059
+ display: inline-block;
1060
+ width: auto;
1061
+ vertical-align: middle;
1062
+ }
1063
+
1064
+ .form-control-static {
1065
+ display: inline-block;
1066
+ }
1067
+ .input-group {
1068
+ display: inline-flex;
1069
+ width: auto;
1070
+ vertical-align: middle;
1071
+ .input-group-addon,
1072
+ .input-group-btn,
1073
+ .form-control {
1074
+ width: auto;
1075
+ }
1076
+ }
1077
+
1078
+ .control-label {
1079
+ margin-bottom: 0;
1080
+ vertical-align: middle;
1081
+ }
1082
+ .c8y-select-wrapper {
1083
+ display: inline-block;
1084
+ vertical-align: middle;
1085
+ }
1086
+
1087
+ .radio,
1088
+ .checkbox {
1089
+ display: inline-block;
1090
+ margin-top: 0;
1091
+ margin-bottom: 0;
1092
+ vertical-align: middle;
1093
+ label {
1094
+ padding-left: 0;
1095
+ }
1096
+ }
1097
+ .radio input[type='radio'],
1098
+ .checkbox input[type='checkbox'] {
1099
+ position: relative;
1100
+ margin-left: 0;
1101
+ } // Re-override the feedback icon.
1102
+ // Removed unused logic: .has-feedback
1103
+ }
1104
+ }
1105
+
1106
+ // Legacy radio and checkboxes
1107
+ .radio,
1108
+ .checkbox {
1109
+ label {
1110
+ display: inline-flex;
1111
+ align-items: center;
1112
+ margin: 0 0 $size-8 0;
1113
+ padding-left: 0;
1114
+ > input[type='radio'],
1115
+ > input[type='checkbox'] {
1116
+ flex-grow: 0;
1117
+ margin: 0 $size-8 0 0;
1118
+ height: 18px;
1119
+ + span {
1120
+ flex-grow: 1;
1121
+ font-weight: normal;
1122
+ }
1123
+ }
1124
+ }
1125
+ }
1126
+
1127
+ // Horizontal forms
1128
+ // Horizontal forms are built on grid classes and allow you to create forms with labels on the left and inputs on the right.
1129
+ .form-horizontal {
1130
+ .radio,
1131
+ .checkbox,
1132
+ .radio-inline,
1133
+ .checkbox-inline {
1134
+ margin-top: 0;
1135
+ margin-bottom: 0;
1136
+ padding-top: calc($component-padding-base-vertical + 1px);
1137
+ }
1138
+ .radio,
1139
+ .checkbox {
1140
+ min-height: calc(string.unquote('#{$line-height-computed} + #{$component-padding-base-vertical} + 1'));
1141
+ } // Make form groups behave like rows
1142
+ .form-group {
1143
+ @include grid.make-row();
1144
+ .form-group {
1145
+ position: relative;
1146
+ margin-right: 0;
1147
+ margin-left: 0;
1148
+ .form-control-feedback {
1149
+ right: $size-5;
1150
+ }
1151
+ }
1152
+ }
1153
+ @media (min-width: $screen-sm-min) {
1154
+ .control-label {
1155
+ margin-bottom: 0;
1156
+ padding-top: calc($component-padding-base-vertical + 2px);
1157
+ }
1158
+ }
1159
+ // Validation states
1160
+ //
1161
+ // Reposition the icon because it's now within a grid column and columns have
1162
+ // `position: relative;` on them. Also accounts for the grid gutter padding.
1163
+ // Removed unused logic: .has-feedback .form-control-feedback
1164
+
1165
+ .form-group-lg {
1166
+ @media (min-width: $screen-sm-min) {
1167
+ .control-label {
1168
+ padding-top: calc(string.unquote('#{$component-padding-large-vertical} * #{$line-height-large} + 1'));
1169
+ font-size: $font-size-large;
1170
+ }
1171
+ }
1172
+ }
1173
+ .form-group-sm {
1174
+ @media (min-width: $screen-sm-min) {
1175
+ .control-label {
1176
+ padding-top: calc(string.unquote('#{$component-padding-small-vertical} + 1'));
1177
+ font-size: $font-size-small;
1178
+ }
1179
+ }
1180
+ }
1181
+ }
1182
+
1183
+ // Removed unused form button wrapper class - verified 0 usages: .btn-save-wrapper