@hermes-ui/angular 0.1.4

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 (539) hide show
  1. package/README.md +52 -0
  2. package/accordion/_accordion.clarity.scss +81 -0
  3. package/accordion/_properties.accordion.scss +45 -0
  4. package/accordion/_variables.accordion.scss +91 -0
  5. package/addons/a11y/README.md +157 -0
  6. package/addons/a11y/forms/required-field-legend.component.scss +17 -0
  7. package/addons/card-container/card/appfx-card.component.scss +137 -0
  8. package/addons/card-container/container/appfx-card-container.component.scss +17 -0
  9. package/addons/card-container/settings/appfx-card-container-settings.component.scss +62 -0
  10. package/addons/certificate-viewer/certificate-viewer/certificate-viewer.component.scss +69 -0
  11. package/addons/certificate-viewer/certificate-viewer-details/certificate-viewer-details.component.scss +49 -0
  12. package/addons/certificate-viewer/certificate-viewer-general/certificate-viewer-general.component.scss +38 -0
  13. package/addons/datagrid/README.md +289 -0
  14. package/addons/datagrid/addons/action-bar/datagrid-action-bar.component.scss +81 -0
  15. package/addons/datagrid/addons/column-toggle/datagrid-column-toggle.component.scss +99 -0
  16. package/addons/datagrid/addons/export/export-datagrid.component.scss +9 -0
  17. package/addons/datagrid/datagrid.component.scss +339 -0
  18. package/addons/datagrid-filters/README.md +223 -0
  19. package/addons/datagrid-filters/advanced-filters/date-time-filter.component.scss +10 -0
  20. package/addons/datagrid-filters/advanced-filters/enum-filter.component.scss +40 -0
  21. package/addons/datagrid-filters/advanced-filters/users-filter.component.scss +11 -0
  22. package/addons/datagrid-filters/common-styles.scss +98 -0
  23. package/addons/datagrid-filters/composite-filters.component.scss +26 -0
  24. package/addons/datagrid-filters/datagrid-filters.component.scss +22 -0
  25. package/addons/datagrid-filters/manage-filters/manage-filter.component.scss +42 -0
  26. package/addons/dialog/README.md +112 -0
  27. package/addons/dialog/multi-page-dialog.a11y.scss +203 -0
  28. package/addons/dialog/multi-page-dialog.component.scss +102 -0
  29. package/addons/dialog/toggle-component/toggle.component.scss +15 -0
  30. package/addons/drag-and-drop/README.md +48 -0
  31. package/addons/menu/menu.component.scss +120 -0
  32. package/addons/property-view/components/property-view-category.component.scss +38 -0
  33. package/addons/property-view/components/property-view-message.component.scss +48 -0
  34. package/addons/property-view/components/property-view-property.component.scss +122 -0
  35. package/addons/property-view/components/property-view-section.component.scss +59 -0
  36. package/addons/property-view/components/property-view.component.scss +23 -0
  37. package/addons/stepper/stepper.component.scss +53 -0
  38. package/addons/tabs/tab-links/tab-links.component.scss +61 -0
  39. package/addons/tabs/tabs.a11y.scss +26 -0
  40. package/addons/tabs/tabs.component.scss +95 -0
  41. package/addons/theme-builder/README.md +70 -0
  42. package/addons/theme-builder/theme-builder.component.scss +194 -0
  43. package/addons/translate/README.md +124 -0
  44. package/addons/var/debug/workflow-model-monitor.component.scss +50 -0
  45. package/addons/var/error/error.component.scss +38 -0
  46. package/addons/var/spinner/spinner.component.scss +33 -0
  47. package/addons/wizard/summary/summary.component.scss +22 -0
  48. package/addons/wizard/wizard.component.scss +251 -0
  49. package/button/_buttons.clarity.scss +388 -0
  50. package/button/_mixins.buttons.scss +241 -0
  51. package/button/_properties.buttons.scss +387 -0
  52. package/button/_properties.toggles.scss +35 -0
  53. package/button/_variables.buttons.scss +905 -0
  54. package/button/_variables.toggles.scss +41 -0
  55. package/button/button-group/_button-group.clarity.scss +202 -0
  56. package/collapsible-panel/_mixins.collapsible-panel.scss +189 -0
  57. package/collapsible-panel/_properties.collapsible-panel.scss +42 -0
  58. package/collapsible-panel/_variables.collapsible-panel.scss +40 -0
  59. package/data/_mixins.tables.scss +114 -0
  60. package/data/_properties.tables.scss +77 -0
  61. package/data/_tables.clarity.scss +120 -0
  62. package/data/_variables.tables.scss +42 -0
  63. package/data/datagrid/_datagrid.clarity.scss +1871 -0
  64. package/data/datagrid/_mixins.datagrid.scss +102 -0
  65. package/data/datagrid/_properties.datagrid.scss +98 -0
  66. package/data/datagrid/_variables.datagrid.scss +98 -0
  67. package/data/stack-view/_properties.stack-view.scss +50 -0
  68. package/data/stack-view/_stack-view.clarity.scss +267 -0
  69. package/data/stack-view/_variables.stack-view.scss +32 -0
  70. package/data/tree-view/_properties.tree-view.scss +41 -0
  71. package/data/tree-view/_tree-view.clarity.scss +281 -0
  72. package/data/tree-view/_variables.tree-view.scss +51 -0
  73. package/emphasis/alert/_alert.clarity.scss +467 -0
  74. package/emphasis/alert/_mixins.alert.scss +96 -0
  75. package/emphasis/alert/_properties.alert.scss +183 -0
  76. package/emphasis/alert/_variables.alert.scss +502 -0
  77. package/emphasis/badge/_badges.clarity.scss +61 -0
  78. package/emphasis/badge/_mixins.bades.scss +34 -0
  79. package/emphasis/badge/_properties.badges.scss +82 -0
  80. package/emphasis/badge/_variables.badges.scss +160 -0
  81. package/emphasis/label/_labels.clarity.scss +179 -0
  82. package/emphasis/label/_mixins.label.scss +77 -0
  83. package/emphasis/label/_properties.label.scss +105 -0
  84. package/emphasis/label/_variables.label.scss +181 -0
  85. package/fesm2022/hermes-ui-angular-accordion.mjs +355 -0
  86. package/fesm2022/hermes-ui-angular-accordion.mjs.map +1 -0
  87. package/fesm2022/hermes-ui-angular-addons-a11y.mjs +544 -0
  88. package/fesm2022/hermes-ui-angular-addons-a11y.mjs.map +1 -0
  89. package/fesm2022/hermes-ui-angular-addons-card-container.mjs +1082 -0
  90. package/fesm2022/hermes-ui-angular-addons-card-container.mjs.map +1 -0
  91. package/fesm2022/hermes-ui-angular-addons-certificate-viewer.mjs +2520 -0
  92. package/fesm2022/hermes-ui-angular-addons-certificate-viewer.mjs.map +1 -0
  93. package/fesm2022/hermes-ui-angular-addons-datagrid-filters.mjs +2818 -0
  94. package/fesm2022/hermes-ui-angular-addons-datagrid-filters.mjs.map +1 -0
  95. package/fesm2022/hermes-ui-angular-addons-datagrid.mjs +3131 -0
  96. package/fesm2022/hermes-ui-angular-addons-datagrid.mjs.map +1 -0
  97. package/fesm2022/hermes-ui-angular-addons-dialog.mjs +386 -0
  98. package/fesm2022/hermes-ui-angular-addons-dialog.mjs.map +1 -0
  99. package/fesm2022/hermes-ui-angular-addons-drag-and-drop.mjs +78 -0
  100. package/fesm2022/hermes-ui-angular-addons-drag-and-drop.mjs.map +1 -0
  101. package/fesm2022/hermes-ui-angular-addons-menu.mjs +559 -0
  102. package/fesm2022/hermes-ui-angular-addons-menu.mjs.map +1 -0
  103. package/fesm2022/hermes-ui-angular-addons-property-view.mjs +1142 -0
  104. package/fesm2022/hermes-ui-angular-addons-property-view.mjs.map +1 -0
  105. package/fesm2022/hermes-ui-angular-addons-stepper.mjs +716 -0
  106. package/fesm2022/hermes-ui-angular-addons-stepper.mjs.map +1 -0
  107. package/fesm2022/hermes-ui-angular-addons-tabs.mjs +539 -0
  108. package/fesm2022/hermes-ui-angular-addons-tabs.mjs.map +1 -0
  109. package/fesm2022/hermes-ui-angular-addons-testing.mjs +2010 -0
  110. package/fesm2022/hermes-ui-angular-addons-testing.mjs.map +1 -0
  111. package/fesm2022/hermes-ui-angular-addons-theme-builder.mjs +922 -0
  112. package/fesm2022/hermes-ui-angular-addons-theme-builder.mjs.map +1 -0
  113. package/fesm2022/hermes-ui-angular-addons-translate.mjs +295 -0
  114. package/fesm2022/hermes-ui-angular-addons-translate.mjs.map +1 -0
  115. package/fesm2022/hermes-ui-angular-addons-var.mjs +2028 -0
  116. package/fesm2022/hermes-ui-angular-addons-var.mjs.map +1 -0
  117. package/fesm2022/hermes-ui-angular-addons-wizard.mjs +610 -0
  118. package/fesm2022/hermes-ui-angular-addons-wizard.mjs.map +1 -0
  119. package/fesm2022/hermes-ui-angular-addons-workflow-strings.mjs +121 -0
  120. package/fesm2022/hermes-ui-angular-addons-workflow-strings.mjs.map +1 -0
  121. package/fesm2022/hermes-ui-angular-addons-workflow.mjs +88 -0
  122. package/fesm2022/hermes-ui-angular-addons-workflow.mjs.map +1 -0
  123. package/fesm2022/hermes-ui-angular-button.mjs +719 -0
  124. package/fesm2022/hermes-ui-angular-button.mjs.map +1 -0
  125. package/fesm2022/hermes-ui-angular-collapsible-panel.mjs +201 -0
  126. package/fesm2022/hermes-ui-angular-collapsible-panel.mjs.map +1 -0
  127. package/fesm2022/hermes-ui-angular-data-datagrid.mjs +8045 -0
  128. package/fesm2022/hermes-ui-angular-data-datagrid.mjs.map +1 -0
  129. package/fesm2022/hermes-ui-angular-data-stack-view.mjs +442 -0
  130. package/fesm2022/hermes-ui-angular-data-stack-view.mjs.map +1 -0
  131. package/fesm2022/hermes-ui-angular-data-tree-view.mjs +1106 -0
  132. package/fesm2022/hermes-ui-angular-data-tree-view.mjs.map +1 -0
  133. package/fesm2022/hermes-ui-angular-data.mjs +40 -0
  134. package/fesm2022/hermes-ui-angular-data.mjs.map +1 -0
  135. package/fesm2022/hermes-ui-angular-emphasis-alert.mjs +624 -0
  136. package/fesm2022/hermes-ui-angular-emphasis-alert.mjs.map +1 -0
  137. package/fesm2022/hermes-ui-angular-emphasis-badge.mjs +69 -0
  138. package/fesm2022/hermes-ui-angular-emphasis-badge.mjs.map +1 -0
  139. package/fesm2022/hermes-ui-angular-emphasis-common.mjs +25 -0
  140. package/fesm2022/hermes-ui-angular-emphasis-common.mjs.map +1 -0
  141. package/fesm2022/hermes-ui-angular-emphasis-label.mjs +105 -0
  142. package/fesm2022/hermes-ui-angular-emphasis-label.mjs.map +1 -0
  143. package/fesm2022/hermes-ui-angular-emphasis.mjs +41 -0
  144. package/fesm2022/hermes-ui-angular-emphasis.mjs.map +1 -0
  145. package/fesm2022/hermes-ui-angular-forms-checkbox.mjs +279 -0
  146. package/fesm2022/hermes-ui-angular-forms-checkbox.mjs.map +1 -0
  147. package/fesm2022/hermes-ui-angular-forms-combobox.mjs +1775 -0
  148. package/fesm2022/hermes-ui-angular-forms-combobox.mjs.map +1 -0
  149. package/fesm2022/hermes-ui-angular-forms-common.mjs +1251 -0
  150. package/fesm2022/hermes-ui-angular-forms-common.mjs.map +1 -0
  151. package/fesm2022/hermes-ui-angular-forms-datalist.mjs +263 -0
  152. package/fesm2022/hermes-ui-angular-forms-datalist.mjs.map +1 -0
  153. package/fesm2022/hermes-ui-angular-forms-datepicker.mjs +3274 -0
  154. package/fesm2022/hermes-ui-angular-forms-datepicker.mjs.map +1 -0
  155. package/fesm2022/hermes-ui-angular-forms-file-input.mjs +826 -0
  156. package/fesm2022/hermes-ui-angular-forms-file-input.mjs.map +1 -0
  157. package/fesm2022/hermes-ui-angular-forms-input.mjs +153 -0
  158. package/fesm2022/hermes-ui-angular-forms-input.mjs.map +1 -0
  159. package/fesm2022/hermes-ui-angular-forms-native-select.mjs +153 -0
  160. package/fesm2022/hermes-ui-angular-forms-native-select.mjs.map +1 -0
  161. package/fesm2022/hermes-ui-angular-forms-number-input.mjs +236 -0
  162. package/fesm2022/hermes-ui-angular-forms-number-input.mjs.map +1 -0
  163. package/fesm2022/hermes-ui-angular-forms-password.mjs +233 -0
  164. package/fesm2022/hermes-ui-angular-forms-password.mjs.map +1 -0
  165. package/fesm2022/hermes-ui-angular-forms-radio.mjs +224 -0
  166. package/fesm2022/hermes-ui-angular-forms-radio.mjs.map +1 -0
  167. package/fesm2022/hermes-ui-angular-forms-range.mjs +186 -0
  168. package/fesm2022/hermes-ui-angular-forms-range.mjs.map +1 -0
  169. package/fesm2022/hermes-ui-angular-forms-select.mjs +606 -0
  170. package/fesm2022/hermes-ui-angular-forms-select.mjs.map +1 -0
  171. package/fesm2022/hermes-ui-angular-forms-textarea.mjs +136 -0
  172. package/fesm2022/hermes-ui-angular-forms-textarea.mjs.map +1 -0
  173. package/fesm2022/hermes-ui-angular-forms.mjs +105 -0
  174. package/fesm2022/hermes-ui-angular-forms.mjs.map +1 -0
  175. package/fesm2022/hermes-ui-angular-icon.mjs +7413 -0
  176. package/fesm2022/hermes-ui-angular-icon.mjs.map +1 -0
  177. package/fesm2022/hermes-ui-angular-layout-breadcrumbs.mjs +120 -0
  178. package/fesm2022/hermes-ui-angular-layout-breadcrumbs.mjs.map +1 -0
  179. package/fesm2022/hermes-ui-angular-layout-main-container.mjs +100 -0
  180. package/fesm2022/hermes-ui-angular-layout-main-container.mjs.map +1 -0
  181. package/fesm2022/hermes-ui-angular-layout-nav.mjs +582 -0
  182. package/fesm2022/hermes-ui-angular-layout-nav.mjs.map +1 -0
  183. package/fesm2022/hermes-ui-angular-layout-tabs.mjs +807 -0
  184. package/fesm2022/hermes-ui-angular-layout-tabs.mjs.map +1 -0
  185. package/fesm2022/hermes-ui-angular-layout-vertical-nav.mjs +507 -0
  186. package/fesm2022/hermes-ui-angular-layout-vertical-nav.mjs.map +1 -0
  187. package/fesm2022/hermes-ui-angular-layout.mjs +44 -0
  188. package/fesm2022/hermes-ui-angular-layout.mjs.map +1 -0
  189. package/fesm2022/hermes-ui-angular-modal.mjs +619 -0
  190. package/fesm2022/hermes-ui-angular-modal.mjs.map +1 -0
  191. package/fesm2022/hermes-ui-angular-popover-common.mjs +1371 -0
  192. package/fesm2022/hermes-ui-angular-popover-common.mjs.map +1 -0
  193. package/fesm2022/hermes-ui-angular-popover-dropdown.mjs +492 -0
  194. package/fesm2022/hermes-ui-angular-popover-dropdown.mjs.map +1 -0
  195. package/fesm2022/hermes-ui-angular-popover-signpost.mjs +494 -0
  196. package/fesm2022/hermes-ui-angular-popover-signpost.mjs.map +1 -0
  197. package/fesm2022/hermes-ui-angular-popover-tooltip.mjs +293 -0
  198. package/fesm2022/hermes-ui-angular-popover-tooltip.mjs.map +1 -0
  199. package/fesm2022/hermes-ui-angular-popover.mjs +41 -0
  200. package/fesm2022/hermes-ui-angular-popover.mjs.map +1 -0
  201. package/fesm2022/hermes-ui-angular-progress-progress-bars.mjs +217 -0
  202. package/fesm2022/hermes-ui-angular-progress-progress-bars.mjs.map +1 -0
  203. package/fesm2022/hermes-ui-angular-progress-spinner.mjs +132 -0
  204. package/fesm2022/hermes-ui-angular-progress-spinner.mjs.map +1 -0
  205. package/fesm2022/hermes-ui-angular-stepper.mjs +694 -0
  206. package/fesm2022/hermes-ui-angular-stepper.mjs.map +1 -0
  207. package/fesm2022/hermes-ui-angular-timeline.mjs +316 -0
  208. package/fesm2022/hermes-ui-angular-timeline.mjs.map +1 -0
  209. package/fesm2022/hermes-ui-angular-toast.mjs +373 -0
  210. package/fesm2022/hermes-ui-angular-toast.mjs.map +1 -0
  211. package/fesm2022/hermes-ui-angular-utils-conditional.mjs +351 -0
  212. package/fesm2022/hermes-ui-angular-utils-conditional.mjs.map +1 -0
  213. package/fesm2022/hermes-ui-angular-utils-loading.mjs +107 -0
  214. package/fesm2022/hermes-ui-angular-utils-loading.mjs.map +1 -0
  215. package/fesm2022/hermes-ui-angular-utils.mjs +2086 -0
  216. package/fesm2022/hermes-ui-angular-utils.mjs.map +1 -0
  217. package/fesm2022/hermes-ui-angular-wizard.mjs +3074 -0
  218. package/fesm2022/hermes-ui-angular-wizard.mjs.map +1 -0
  219. package/fesm2022/hermes-ui-angular.mjs +130 -0
  220. package/fesm2022/hermes-ui-angular.mjs.map +1 -0
  221. package/forms/combobox/_combobox.clarity.scss +330 -0
  222. package/forms/combobox/_properties.combobox.scss +46 -0
  223. package/forms/combobox/_variables.combobox.scss +32 -0
  224. package/forms/datepicker/_datepicker.clarity.scss +259 -0
  225. package/forms/datepicker/_mixins.datepicker.scss +89 -0
  226. package/forms/datepicker/_properties.datepicker.scss +46 -0
  227. package/forms/datepicker/_variables.datepicker.scss +74 -0
  228. package/forms/styles/_checkbox.clarity.scss +193 -0
  229. package/forms/styles/_containers.clarity.scss +230 -0
  230. package/forms/styles/_datalist.clarity.scss +47 -0
  231. package/forms/styles/_file-input.clarity.scss +134 -0
  232. package/forms/styles/_file.clarity.scss +52 -0
  233. package/forms/styles/_form.clarity.scss +87 -0
  234. package/forms/styles/_input-group.clarity.scss +126 -0
  235. package/forms/styles/_input.clarity.scss +83 -0
  236. package/forms/styles/_mixins.forms.scss +193 -0
  237. package/forms/styles/_native-select.clarity.scss +178 -0
  238. package/forms/styles/_number-input.clarity.scss +58 -0
  239. package/forms/styles/_password.clarity.scss +26 -0
  240. package/forms/styles/_properties.forms.scss +180 -0
  241. package/forms/styles/_radio.clarity.scss +120 -0
  242. package/forms/styles/_range.clarity.scss +124 -0
  243. package/forms/styles/_select.clarity.scss +158 -0
  244. package/forms/styles/_textarea.clarity.scss +71 -0
  245. package/forms/styles/_toggles.clarity.scss +209 -0
  246. package/forms/styles/_variables.forms.scss +156 -0
  247. package/hermes-ui.scss +7 -0
  248. package/icon/icon.component.scss +247 -0
  249. package/image/_icons.clarity.scss +101 -0
  250. package/image/_images.clarity.scss +42 -0
  251. package/image/_mixins.images.scss +11 -0
  252. package/layout/_card.clarity.scss +318 -0
  253. package/layout/_login.clarity.scss +240 -0
  254. package/layout/_properties.card.scss +39 -0
  255. package/layout/_properties.login.scss +32 -0
  256. package/layout/_variables.card.scss +24 -0
  257. package/layout/_variables.login.scss +22 -0
  258. package/layout/breadcrumbs/_breadcrumbs.clarity.scss +60 -0
  259. package/layout/breadcrumbs/_properties.breadcrumbs.scss +18 -0
  260. package/layout/breadcrumbs/_variables.breadcrumbs.scss +11 -0
  261. package/layout/grid/_grid.scss +23 -0
  262. package/layout/grid/grid/_grid.scss +39 -0
  263. package/layout/grid/mixins/_breakpoint.scss +83 -0
  264. package/layout/grid/mixins/_clearfix.scss +13 -0
  265. package/layout/grid/mixins/_grid-framework.scss +91 -0
  266. package/layout/grid/mixins/_grid.scss +39 -0
  267. package/layout/grid/utilities/_align.scss +30 -0
  268. package/layout/grid/utilities/_clearfix.scss +12 -0
  269. package/layout/grid/utilities/_display.scss +18 -0
  270. package/layout/grid/utilities/_flex.scss +222 -0
  271. package/layout/grid/utilities/_float.scss +26 -0
  272. package/layout/grid/utilities/_visibility.scss +60 -0
  273. package/layout/main-container/_layout.clarity.scss +87 -0
  274. package/layout/main-container/_properties.header.scss +55 -0
  275. package/layout/main-container/_variables.header.scss +32 -0
  276. package/layout/nav/_header.clarity.scss +40 -0
  277. package/layout/nav/_links.clarity.scss +84 -0
  278. package/layout/nav/_mixins.header.scss +332 -0
  279. package/layout/nav/_mixins.responsive-nav.scss +75 -0
  280. package/layout/nav/_nav.clarity.scss +100 -0
  281. package/layout/nav/_properties.nav.scss +27 -0
  282. package/layout/nav/_properties.responsive-nav.scss +23 -0
  283. package/layout/nav/_properties.subnav.scss +19 -0
  284. package/layout/nav/_responsive-nav.clarity.scss +490 -0
  285. package/layout/nav/_subnav.clarity.scss +48 -0
  286. package/layout/nav/_variables.nav.scss +13 -0
  287. package/layout/nav/_variables.responsive-nav.scss +28 -0
  288. package/layout/nav/_variables.subnav.scss +21 -0
  289. package/layout/tabs/_mixins.tabs.scss +41 -0
  290. package/layout/tabs/_properties.tabs.scss +25 -0
  291. package/layout/tabs/_tabs.clarity.scss +110 -0
  292. package/layout/tabs/_variables.tabs.scss +17 -0
  293. package/layout/vertical-nav/_mixins.vertical-nav.scss +52 -0
  294. package/layout/vertical-nav/_properties.vertical-nav.scss +73 -0
  295. package/layout/vertical-nav/_variables.vertical-nav.scss +52 -0
  296. package/layout/vertical-nav/_vertical-nav.clarity.scss +469 -0
  297. package/main.scss +14 -0
  298. package/modal/_modal.clarity.scss +379 -0
  299. package/modal/_properties.modal.scss +57 -0
  300. package/modal/_variables.modal.scss +41 -0
  301. package/package.json +325 -0
  302. package/popover/common/README.md +112 -0
  303. package/popover/common/_popover.clarity.scss +28 -0
  304. package/popover/dropdown/_dropdown.clarity.scss +326 -0
  305. package/popover/dropdown/_menu-mixins.clarity.scss +132 -0
  306. package/popover/dropdown/_properties.dropdown.scss +50 -0
  307. package/popover/dropdown/_variables.dropdown.scss +36 -0
  308. package/popover/signpost/_properties.signpost.scss +34 -0
  309. package/popover/signpost/_signposts.clarity.scss +414 -0
  310. package/popover/signpost/_variables.signpost.scss +21 -0
  311. package/popover/tooltip/_mixins.tooltip.scss +186 -0
  312. package/popover/tooltip/_properties.tooltip.scss +28 -0
  313. package/popover/tooltip/_tooltips.clarity.scss +122 -0
  314. package/popover/tooltip/_variables.tooltip.scss +20 -0
  315. package/progress/progress-bars/_progress-bars.clarity.scss +616 -0
  316. package/progress/progress-bars/_properties.progress-bars.scss +24 -0
  317. package/progress/progress-bars/_variables.progress-bars.scss +15 -0
  318. package/progress/progress-bars/utils/_mixins.clarity.scss +18 -0
  319. package/progress/spinner/_mixins.spinner.scss +30 -0
  320. package/progress/spinner/_properties.spinner.scss +37 -0
  321. package/progress/spinner/_spinner.clarity.scss +148 -0
  322. package/progress/spinner/_variables.spinner.scss +25 -0
  323. package/schematics/collection.json +14 -0
  324. package/stepper/_properties.stepper.scss +29 -0
  325. package/stepper/_stepper.clarity.scss +184 -0
  326. package/stepper/_variables.stepper.scss +13 -0
  327. package/styles/_a11y.scss +14 -0
  328. package/styles/_close.clarity.scss +60 -0
  329. package/styles/_components.clarity.scss +189 -0
  330. package/styles/_mixins.scss +460 -0
  331. package/styles/_normalize.scss +292 -0
  332. package/styles/_reboot.clarity.scss +374 -0
  333. package/styles/_variables.clarity.scss +139 -0
  334. package/styles/core/base/base.element.scss +97 -0
  335. package/styles/core/global.scss +12 -0
  336. package/styles/core/layout/_alignments.scss +18 -0
  337. package/styles/core/layout/_container.scss +29 -0
  338. package/styles/core/layout/_display.scss +58 -0
  339. package/styles/core/layout/_optimize.scss +60 -0
  340. package/styles/core/layout/_shadow-dom.scss +47 -0
  341. package/styles/core/layout/_spacing.scss +31 -0
  342. package/styles/core/layout/_type-grid.scss +66 -0
  343. package/styles/core/layout/_type-horizontal.scss +33 -0
  344. package/styles/core/layout/_type-vertical.scss +26 -0
  345. package/styles/core/layout/mixins/_mixins.alignment.scss +35 -0
  346. package/styles/core/layout/mixins/_mixins.display.scss +23 -0
  347. package/styles/core/layout/mixins/_mixins.grid.scss +105 -0
  348. package/styles/core/layout/mixins/_mixins.scss +106 -0
  349. package/styles/core/layout/mixins/_mixins.shadow-dom.scss +106 -0
  350. package/styles/core/layout/mixins/_mixins.type-horizontal.scss +113 -0
  351. package/styles/core/layout/mixins/_mixins.type-vertical.scss +108 -0
  352. package/styles/core/module.layout.scss +22 -0
  353. package/styles/core/module.reset.scss +48 -0
  354. package/styles/core/module.typography.scss +9 -0
  355. package/styles/core/theme.dark.scss +298 -0
  356. package/styles/core/theme.high-contrast.scss +42 -0
  357. package/styles/core/theme.low-motion.scss +20 -0
  358. package/styles/core/tokens/_alias-interaction.scss +74 -0
  359. package/styles/core/tokens/_alias-object-background.scss +29 -0
  360. package/styles/core/tokens/_alias-object-border.scss +21 -0
  361. package/styles/core/tokens/_alias-object-container.scss +20 -0
  362. package/styles/core/tokens/_alias-object-opacity.scss +15 -0
  363. package/styles/core/tokens/_alias-object-shadow.scss +17 -0
  364. package/styles/core/tokens/_alias-primary.scss +21 -0
  365. package/styles/core/tokens/_alias-status.scss +40 -0
  366. package/styles/core/tokens/_alias-typography.scss +107 -0
  367. package/styles/core/tokens/_alias-utility.scss +42 -0
  368. package/styles/core/tokens/_alias-viz-colors.scss +170 -0
  369. package/styles/core/tokens/_global-animation.scss +32 -0
  370. package/styles/core/tokens/_global-colors.scss +249 -0
  371. package/styles/core/tokens/_global-space.scss +52 -0
  372. package/styles/core/tokens/_internal-scale.scss +14 -0
  373. package/styles/core/tokens/_properties.tokens.scss +22 -0
  374. package/styles/core/tokens/_variables.tokens.scss +787 -0
  375. package/styles/core/typography/_legacy-typography.scss +328 -0
  376. package/styles/core/typography/_mixins.typography.scss +18 -0
  377. package/styles/core/typography/_typography.scss +328 -0
  378. package/styles/variables/_properties.density.scss +225 -0
  379. package/styles/variables/_properties.global.scss +51 -0
  380. package/styles/variables/_properties.layout.scss +21 -0
  381. package/styles/variables/_properties.scss +11 -0
  382. package/styles/variables/_properties.typography.scss +164 -0
  383. package/styles/variables/_variables.density.scss +116 -0
  384. package/styles/variables/_variables.global.scss +87 -0
  385. package/styles/variables/_variables.layout.scss +37 -0
  386. package/styles/variables/_variables.scss +11 -0
  387. package/styles/variables/_variables.typography.scss +156 -0
  388. package/timeline/_properties.timeline.scss +38 -0
  389. package/timeline/_timeline.clarity.scss +172 -0
  390. package/timeline/_variables.timeline.scss +29 -0
  391. package/toast/README.md +65 -0
  392. package/toast/_properties.toast.scss +56 -0
  393. package/toast/_toast.clarity.scss +190 -0
  394. package/toast/_variables.toast.scss +33 -0
  395. package/types/hermes-ui-angular-accordion.d.ts +101 -0
  396. package/types/hermes-ui-angular-accordion.d.ts.map +1 -0
  397. package/types/hermes-ui-angular-addons-a11y.d.ts +187 -0
  398. package/types/hermes-ui-angular-addons-a11y.d.ts.map +1 -0
  399. package/types/hermes-ui-angular-addons-card-container.d.ts +482 -0
  400. package/types/hermes-ui-angular-addons-card-container.d.ts.map +1 -0
  401. package/types/hermes-ui-angular-addons-certificate-viewer.d.ts +404 -0
  402. package/types/hermes-ui-angular-addons-certificate-viewer.d.ts.map +1 -0
  403. package/types/hermes-ui-angular-addons-datagrid-filters.d.ts +911 -0
  404. package/types/hermes-ui-angular-addons-datagrid-filters.d.ts.map +1 -0
  405. package/types/hermes-ui-angular-addons-datagrid.d.ts +1529 -0
  406. package/types/hermes-ui-angular-addons-datagrid.d.ts.map +1 -0
  407. package/types/hermes-ui-angular-addons-dialog.d.ts +233 -0
  408. package/types/hermes-ui-angular-addons-dialog.d.ts.map +1 -0
  409. package/types/hermes-ui-angular-addons-drag-and-drop.d.ts +35 -0
  410. package/types/hermes-ui-angular-addons-drag-and-drop.d.ts.map +1 -0
  411. package/types/hermes-ui-angular-addons-menu.d.ts +197 -0
  412. package/types/hermes-ui-angular-addons-menu.d.ts.map +1 -0
  413. package/types/hermes-ui-angular-addons-property-view.d.ts +387 -0
  414. package/types/hermes-ui-angular-addons-property-view.d.ts.map +1 -0
  415. package/types/hermes-ui-angular-addons-stepper.d.ts +298 -0
  416. package/types/hermes-ui-angular-addons-stepper.d.ts.map +1 -0
  417. package/types/hermes-ui-angular-addons-tabs.d.ts +173 -0
  418. package/types/hermes-ui-angular-addons-tabs.d.ts.map +1 -0
  419. package/types/hermes-ui-angular-addons-testing.d.ts +592 -0
  420. package/types/hermes-ui-angular-addons-testing.d.ts.map +1 -0
  421. package/types/hermes-ui-angular-addons-theme-builder.d.ts +200 -0
  422. package/types/hermes-ui-angular-addons-theme-builder.d.ts.map +1 -0
  423. package/types/hermes-ui-angular-addons-translate.d.ts +149 -0
  424. package/types/hermes-ui-angular-addons-translate.d.ts.map +1 -0
  425. package/types/hermes-ui-angular-addons-var.d.ts +923 -0
  426. package/types/hermes-ui-angular-addons-var.d.ts.map +1 -0
  427. package/types/hermes-ui-angular-addons-wizard.d.ts +241 -0
  428. package/types/hermes-ui-angular-addons-wizard.d.ts.map +1 -0
  429. package/types/hermes-ui-angular-addons-workflow-strings.d.ts +124 -0
  430. package/types/hermes-ui-angular-addons-workflow-strings.d.ts.map +1 -0
  431. package/types/hermes-ui-angular-addons-workflow.d.ts +15 -0
  432. package/types/hermes-ui-angular-addons-workflow.d.ts.map +1 -0
  433. package/types/hermes-ui-angular-button.d.ts +170 -0
  434. package/types/hermes-ui-angular-button.d.ts.map +1 -0
  435. package/types/hermes-ui-angular-collapsible-panel.d.ts +74 -0
  436. package/types/hermes-ui-angular-collapsible-panel.d.ts.map +1 -0
  437. package/types/hermes-ui-angular-data-datagrid.d.ts +1938 -0
  438. package/types/hermes-ui-angular-data-datagrid.d.ts.map +1 -0
  439. package/types/hermes-ui-angular-data-stack-view.d.ts +88 -0
  440. package/types/hermes-ui-angular-data-stack-view.d.ts.map +1 -0
  441. package/types/hermes-ui-angular-data-tree-view.d.ts +230 -0
  442. package/types/hermes-ui-angular-data-tree-view.d.ts.map +1 -0
  443. package/types/hermes-ui-angular-data.d.ts +16 -0
  444. package/types/hermes-ui-angular-data.d.ts.map +1 -0
  445. package/types/hermes-ui-angular-emphasis-alert.d.ts +176 -0
  446. package/types/hermes-ui-angular-emphasis-alert.d.ts.map +1 -0
  447. package/types/hermes-ui-angular-emphasis-badge.d.ts +26 -0
  448. package/types/hermes-ui-angular-emphasis-badge.d.ts.map +1 -0
  449. package/types/hermes-ui-angular-emphasis-common.d.ts +7 -0
  450. package/types/hermes-ui-angular-emphasis-common.d.ts.map +1 -0
  451. package/types/hermes-ui-angular-emphasis-label.d.ts +30 -0
  452. package/types/hermes-ui-angular-emphasis-label.d.ts.map +1 -0
  453. package/types/hermes-ui-angular-emphasis.d.ts +16 -0
  454. package/types/hermes-ui-angular-emphasis.d.ts.map +1 -0
  455. package/types/hermes-ui-angular-forms-checkbox.d.ts +73 -0
  456. package/types/hermes-ui-angular-forms-checkbox.d.ts.map +1 -0
  457. package/types/hermes-ui-angular-forms-combobox.d.ts +354 -0
  458. package/types/hermes-ui-angular-forms-combobox.d.ts.map +1 -0
  459. package/types/hermes-ui-angular-forms-common.d.ts +340 -0
  460. package/types/hermes-ui-angular-forms-common.d.ts.map +1 -0
  461. package/types/hermes-ui-angular-forms-datalist.d.ts +60 -0
  462. package/types/hermes-ui-angular-forms-datalist.d.ts.map +1 -0
  463. package/types/hermes-ui-angular-forms-datepicker.d.ts +987 -0
  464. package/types/hermes-ui-angular-forms-datepicker.d.ts.map +1 -0
  465. package/types/hermes-ui-angular-forms-file-input.d.ts +194 -0
  466. package/types/hermes-ui-angular-forms-file-input.d.ts.map +1 -0
  467. package/types/hermes-ui-angular-forms-input.d.ts +30 -0
  468. package/types/hermes-ui-angular-forms-input.d.ts.map +1 -0
  469. package/types/hermes-ui-angular-forms-native-select.d.ts +37 -0
  470. package/types/hermes-ui-angular-forms-native-select.d.ts.map +1 -0
  471. package/types/hermes-ui-angular-forms-number-input.d.ts +44 -0
  472. package/types/hermes-ui-angular-forms-number-input.d.ts.map +1 -0
  473. package/types/hermes-ui-angular-forms-password.d.ts +53 -0
  474. package/types/hermes-ui-angular-forms-password.d.ts.map +1 -0
  475. package/types/hermes-ui-angular-forms-radio.d.ts +50 -0
  476. package/types/hermes-ui-angular-forms-radio.d.ts.map +1 -0
  477. package/types/hermes-ui-angular-forms-range.d.ts +38 -0
  478. package/types/hermes-ui-angular-forms-range.d.ts.map +1 -0
  479. package/types/hermes-ui-angular-forms-select.d.ts +211 -0
  480. package/types/hermes-ui-angular-forms-select.d.ts.map +1 -0
  481. package/types/hermes-ui-angular-forms-textarea.d.ts +30 -0
  482. package/types/hermes-ui-angular-forms-textarea.d.ts.map +1 -0
  483. package/types/hermes-ui-angular-forms.d.ts +39 -0
  484. package/types/hermes-ui-angular-forms.d.ts.map +1 -0
  485. package/types/hermes-ui-angular-icon.d.ts +1504 -0
  486. package/types/hermes-ui-angular-icon.d.ts.map +1 -0
  487. package/types/hermes-ui-angular-layout-breadcrumbs.d.ts +46 -0
  488. package/types/hermes-ui-angular-layout-breadcrumbs.d.ts.map +1 -0
  489. package/types/hermes-ui-angular-layout-main-container.d.ts +29 -0
  490. package/types/hermes-ui-angular-layout-main-container.d.ts.map +1 -0
  491. package/types/hermes-ui-angular-layout-nav.d.ts +143 -0
  492. package/types/hermes-ui-angular-layout-nav.d.ts.map +1 -0
  493. package/types/hermes-ui-angular-layout-tabs.d.ts +159 -0
  494. package/types/hermes-ui-angular-layout-tabs.d.ts.map +1 -0
  495. package/types/hermes-ui-angular-layout-vertical-nav.d.ts +129 -0
  496. package/types/hermes-ui-angular-layout-vertical-nav.d.ts.map +1 -0
  497. package/types/hermes-ui-angular-layout.d.ts +20 -0
  498. package/types/hermes-ui-angular-layout.d.ts.map +1 -0
  499. package/types/hermes-ui-angular-modal.d.ts +161 -0
  500. package/types/hermes-ui-angular-modal.d.ts.map +1 -0
  501. package/types/hermes-ui-angular-popover-common.d.ts +317 -0
  502. package/types/hermes-ui-angular-popover-common.d.ts.map +1 -0
  503. package/types/hermes-ui-angular-popover-dropdown.d.ts +124 -0
  504. package/types/hermes-ui-angular-popover-dropdown.d.ts.map +1 -0
  505. package/types/hermes-ui-angular-popover-signpost.d.ts +158 -0
  506. package/types/hermes-ui-angular-popover-signpost.d.ts.map +1 -0
  507. package/types/hermes-ui-angular-popover-tooltip.d.ts +84 -0
  508. package/types/hermes-ui-angular-popover-tooltip.d.ts.map +1 -0
  509. package/types/hermes-ui-angular-popover.d.ts +17 -0
  510. package/types/hermes-ui-angular-popover.d.ts.map +1 -0
  511. package/types/hermes-ui-angular-progress-progress-bars.d.ts +58 -0
  512. package/types/hermes-ui-angular-progress-progress-bars.d.ts.map +1 -0
  513. package/types/hermes-ui-angular-progress-spinner.d.ts +45 -0
  514. package/types/hermes-ui-angular-progress-spinner.d.ts.map +1 -0
  515. package/types/hermes-ui-angular-stepper.d.ts +180 -0
  516. package/types/hermes-ui-angular-stepper.d.ts.map +1 -0
  517. package/types/hermes-ui-angular-timeline.d.ts +87 -0
  518. package/types/hermes-ui-angular-timeline.d.ts.map +1 -0
  519. package/types/hermes-ui-angular-toast.d.ts +131 -0
  520. package/types/hermes-ui-angular-toast.d.ts.map +1 -0
  521. package/types/hermes-ui-angular-utils-conditional.d.ts +133 -0
  522. package/types/hermes-ui-angular-utils-conditional.d.ts.map +1 -0
  523. package/types/hermes-ui-angular-utils-loading.d.ts +39 -0
  524. package/types/hermes-ui-angular-utils-loading.d.ts.map +1 -0
  525. package/types/hermes-ui-angular-utils.d.ts +914 -0
  526. package/types/hermes-ui-angular-utils.d.ts.map +1 -0
  527. package/types/hermes-ui-angular-wizard.d.ts +1509 -0
  528. package/types/hermes-ui-angular-wizard.d.ts.map +1 -0
  529. package/types/hermes-ui-angular.d.ts +44 -0
  530. package/types/hermes-ui-angular.d.ts.map +1 -0
  531. package/typography/_code.scss +36 -0
  532. package/typography/_font-metropolis.scss +45 -0
  533. package/typography/_lists.scss +81 -0
  534. package/typography/_typography.scss +322 -0
  535. package/utils/animations/_animations.clarity.scss +44 -0
  536. package/utils/animations/_mixins.animations.scss +33 -0
  537. package/wizard/_properties.wizard.scss +54 -0
  538. package/wizard/_variables.wizard.scss +59 -0
  539. package/wizard/_wizard.clarity.scss +692 -0
@@ -0,0 +1,1871 @@
1
+ /*
2
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
3
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4
+ * This software is released under MIT license.
5
+ * The full license information can be found in LICENSE in the root directory of this project.
6
+ */
7
+
8
+ @use 'sass:map';
9
+ @use 'sass:meta';
10
+ @use '../tables.clarity';
11
+ @use '../mixins.tables' as table-mixins;
12
+ @use '../../image/icons.clarity';
13
+ @use '../../styles/mixins';
14
+ @use '../../styles/variables/variables';
15
+ @use '../../popover/dropdown/menu-mixins.clarity';
16
+ @use '../../button/variables.buttons' as button-variables;
17
+ @use '../../forms/styles/variables.forms' as forms-variables;
18
+ @use '../../modal/variables.modal' as modal-variables;
19
+ @use '../../popover/dropdown/variables.dropdown' as dropdown-variables;
20
+ @use '../variables.tables' as tables-variables;
21
+ @use 'variables.datagrid' as datagrid-variables;
22
+ @use 'mixins.datagrid' as datagrid-mixins;
23
+ @use '../../styles/variables/variables.density' as density;
24
+ @use '../../styles/core/tokens/variables.tokens' as tokens;
25
+ @use '../../utils/animations/mixins.animations' as animations-mixins;
26
+
27
+ @include meta.load-css('properties.datagrid');
28
+ @include mixins.exports('datagrid.clarity') {
29
+ @include table-mixins.basic-table(
30
+ '.datagrid',
31
+ '.datagrid-header',
32
+ '.datagrid-body',
33
+ '.datagrid-row',
34
+ '.datagrid-column',
35
+ '.datagrid-cell'
36
+ );
37
+
38
+ .datagrid-host {
39
+ display: flex;
40
+ flex-flow: column nowrap;
41
+ position: relative;
42
+
43
+ &.datagrid-virtual-scroll {
44
+ .datagrid {
45
+ display: flex;
46
+ }
47
+
48
+ .datagrid-table-wrapper,
49
+ .datagrid-table {
50
+ overflow: auto;
51
+ }
52
+
53
+ .datagrid-header {
54
+ position: static;
55
+ display: flex;
56
+ flex: 0 0 auto;
57
+ overflow: auto hidden;
58
+ scrollbar-width: none;
59
+
60
+ .datagrid-row {
61
+ display: flex;
62
+ flex: 1 1 auto;
63
+ }
64
+ }
65
+
66
+ .datagrid-content-virtual .datagrid-rows {
67
+ min-height: 100%;
68
+
69
+ &.datagrid-scrollbar-visible .datagrid-placeholder-container {
70
+ border-top-color: tokens.$hermes-alias-object-opacity-0;
71
+ }
72
+ }
73
+ }
74
+ }
75
+
76
+ .datagrid {
77
+ // Overrides the table defaults so the new structure has correct corners
78
+ border-bottom-left-radius: 0;
79
+ border-bottom-right-radius: 0;
80
+ overflow: auto;
81
+ flex: 1 1 auto;
82
+ margin-top: datagrid-variables.$hermes-datagrid-margin-top;
83
+
84
+ &.cdk-virtual-scrollable .datagrid-rows {
85
+ flex-grow: 0;
86
+ }
87
+ }
88
+
89
+ .datagrid-overflow-ellipsis .datagrid-row {
90
+ // Pinned cells sit one level deeper, in their own static container, but they have to truncate
91
+ // the same way as the scrollable ones.
92
+ .datagrid-scrolling-cells > .datagrid-cell,
93
+ .datagrid-pinned-cells > .datagrid-cell {
94
+ text-overflow: ellipsis;
95
+ overflow: hidden;
96
+ white-space: nowrap;
97
+ }
98
+ }
99
+
100
+ .datagrid-header,
101
+ .datagrid-body,
102
+ .datagrid-row,
103
+ .datagrid-column,
104
+ .datagrid-cell,
105
+ .datagrid-fixed-column {
106
+ display: block;
107
+ }
108
+
109
+ .datagrid-row {
110
+ border-top: tables-variables.$hermes-table-borderwidth solid tables-variables.$hermes-table-border-color;
111
+ min-height: tables-variables.$hermes-table-row-height;
112
+
113
+ &:first-of-type {
114
+ border-top: none;
115
+ min-height: calc(tables-variables.$hermes-table-row-height - tables-variables.$hermes-table-borderwidth);
116
+ }
117
+
118
+ // The two static containers scroll over the cells next to them, so they carry the background of
119
+ // the row rather than letting it show through.
120
+ &:hover,
121
+ &:hover .datagrid-row-sticky,
122
+ &:hover .datagrid-pinned-cells {
123
+ background-color: datagrid-variables.$hermes-datagrid-row-hover-color;
124
+ }
125
+
126
+ &.datagrid-selected,
127
+ &.datagrid-selected .datagrid-row-sticky,
128
+ &.datagrid-selected .datagrid-pinned-cells {
129
+ color: datagrid-variables.$hermes-datagrid-row-selected;
130
+ background-color: datagrid-variables.$hermes-datagrid-row-selected-background-color;
131
+ }
132
+
133
+ &.datagrid-selected {
134
+ &:hover,
135
+ &:hover .datagrid-row-sticky,
136
+ &:hover .datagrid-pinned-cells {
137
+ background-color: datagrid-variables.$hermes-datagrid-row-selected-hover-background-color;
138
+ }
139
+
140
+ &:active,
141
+ &:active .datagrid-row-sticky,
142
+ &:active .datagrid-pinned-cells {
143
+ background-color: datagrid-variables.$hermes-datagrid-row-selected-active-background-color;
144
+ }
145
+ }
146
+
147
+ &:active,
148
+ &:active .datagrid-row-sticky,
149
+ &:active .datagrid-pinned-cells {
150
+ background-color: datagrid-variables.$hermes-datagrid-row-active-color;
151
+ }
152
+
153
+ &.datagrid-row-skeleton {
154
+ background-color: unset;
155
+
156
+ .datagrid-row-master {
157
+ position: relative;
158
+
159
+ @include animations-mixins.skeleton-loading();
160
+
161
+ &::before {
162
+ position: absolute;
163
+ top: tables-variables.$hermes-table-cell-vertical-padding;
164
+ left: tables-variables.$hermes-table-cell-horizontal-padding;
165
+ height: calc(100% - (2 * tables-variables.$hermes-table-cell-vertical-padding));
166
+ width: calc(100% - (2 * tables-variables.$hermes-table-cell-horizontal-padding));
167
+ z-index: map.get(variables.$hermes-layers, datagrid-row-skeleton);
168
+ }
169
+
170
+ .datagrid-row-sticky,
171
+ .datagrid-row-scrollable {
172
+ opacity: 0;
173
+ }
174
+ }
175
+ }
176
+
177
+ .datagrid-row-detail-wrapper {
178
+ flex: 1 1 auto;
179
+ display: flex;
180
+ }
181
+
182
+ .datagrid-row-detail {
183
+ border-top: tables-variables.$hermes-table-borderwidth solid tables-variables.$hermes-table-border-color;
184
+ min-height: tables-variables.$hermes-table-row-height;
185
+ width: auto;
186
+
187
+ .datagrid-cell {
188
+ border: none;
189
+
190
+ &.datagrid-container {
191
+ @include mixins.generate-typography-token(
192
+ 'BODY-14-RG-STD',
193
+ (
194
+ font-size: tables-variables.$hermes-table-fontsize,
195
+ )
196
+ );
197
+ }
198
+ }
199
+ }
200
+
201
+ .datagrid-select {
202
+ position: relative;
203
+
204
+ input {
205
+ @include mixins.min-equilateral(density.$hermes-base-icon-size-s);
206
+
207
+ padding: 0;
208
+ }
209
+
210
+ .hermes-checkbox-wrapper,
211
+ .hermes-radio-wrapper {
212
+ @include mixins.max-equilateral(density.$hermes-base-icon-size-s);
213
+
214
+ .hermes-control-label:has(.hermes-sr-only) {
215
+ padding: 0;
216
+ min-height: tokens.$hermes-global-space-1;
217
+ min-width: tokens.$hermes-global-space-1;
218
+ }
219
+ }
220
+
221
+ &,
222
+ input {
223
+ cursor: pointer;
224
+ }
225
+
226
+ &.hermes-form-control-disabled {
227
+ &,
228
+ input {
229
+ cursor: not-allowed;
230
+ }
231
+ }
232
+ }
233
+
234
+ .datagrid-signpost-trigger .signpost {
235
+ margin: calc(-1 * density.$hermes-base-vertical-offset-multi-row-inline-m) 0;
236
+ height: tables-variables.$hermes-table-cell-height;
237
+
238
+ .signpost-trigger {
239
+ height: inherit;
240
+ line-height: tables-variables.$hermes-table-cell-height;
241
+ }
242
+ }
243
+
244
+ &.datagrid-row-loading {
245
+ .datagrid-row-sticky {
246
+ display: none;
247
+ }
248
+
249
+ .datagrid-cell {
250
+ display: flex;
251
+ padding: density.$hermes-base-vertical-offset-2xl density.$hermes-base-horizontal-offset-2xl;
252
+ align-items: center;
253
+ gap: density.$hermes-base-gap-m;
254
+ justify-content: center;
255
+ }
256
+ }
257
+ }
258
+
259
+ .datagrid-row-sticky {
260
+ background-color: tables-variables.$hermes-table-bgcolor;
261
+ display: flex;
262
+ flex-wrap: nowrap;
263
+ position: sticky;
264
+ left: 0;
265
+ z-index: map.get(variables.$hermes-layers, datagrid-row-sticky);
266
+
267
+ &-scroll {
268
+ right: 0;
269
+
270
+ > div.datagrid-column {
271
+ min-width: tokens.$hermes-global-space-7;
272
+ padding: 0;
273
+
274
+ @include datagrid-mixins.datagrid-column-separator('left', 'before');
275
+ }
276
+ }
277
+
278
+ .datagrid-cell:last-child,
279
+ .datagrid-cell.datagrid-select:not(
280
+ :has(+ .datagrid-row-actions, + .datagrid-expandable-caret, + .datagrid-detail-caret)
281
+ ),
282
+ .datagrid-cell.datagrid-row-actions:not(:has(+ .datagrid-expandable-caret, + .datagrid-detail-caret)),
283
+ .datagrid-cell.datagrid-expandable-caret,
284
+ .datagrid-cell.datagrid-detail-caret {
285
+ @include datagrid-mixins.datagrid-column-separator();
286
+ }
287
+ }
288
+
289
+ .datagrid-pinned-cells {
290
+ // The container comes after the row controls, which do not scroll either, so it has to stop
291
+ // where they end instead of at the edge of the datagrid - the offsets of a sticky element are
292
+ // always measured from there. Their width is measured and published by the datagrid, see
293
+ // HermesDatagrid.updateRowControlsWidth.
294
+ inset-inline-start: var(--hermes-datagrid-row-controls-width, 0);
295
+ display: flex;
296
+ flex: 0 0 auto;
297
+ flex-wrap: nowrap;
298
+ position: sticky;
299
+ margin-right: density.$hermes-base-gap-xs;
300
+ background-color: tables-variables.$hermes-table-bgcolor;
301
+ z-index: map.get(variables.$hermes-layers, datagrid-row-pinned);
302
+
303
+ // The pinned columns can never take the whole datagrid, so there is always somewhere to scroll.
304
+ // The row controls are static as well, so they count against the same budget.
305
+ max-width: calc(
306
+ #{datagrid-variables.$hermes-datagrid-pinned-columns-max-width} - var(--hermes-datagrid-row-controls-width, 0px)
307
+ );
308
+
309
+ // The last pinned cell marks the boundary with the scrollable ones. Columns draw their own
310
+ // separator, cells have nothing to draw it with.
311
+ @include datagrid-mixins.datagrid-column-separator();
312
+
313
+ &::after {
314
+ top: 0;
315
+ width: density.$hermes-base-layout-space-2xs;
316
+ height: 100%;
317
+ right: calc(-1 * #{density.$hermes-base-gap-xs});
318
+ }
319
+
320
+ // Nothing is pinned, or a row detail is not laid out in columns.
321
+ &:empty {
322
+ display: none;
323
+ }
324
+
325
+ .datagrid-column.datagrid-pinned-column:last-child .datagrid-column-separator::after {
326
+ right: calc(-1 * #{density.$hermes-base-gap-xs});
327
+ }
328
+
329
+ .datagrid-column.datagrid-pinned-column:not(:last-child) .datagrid-column-separator::after {
330
+ background-color: datagrid-variables.$hermes-datagrid-column-resize-handler-color;
331
+ }
332
+ }
333
+
334
+ .datagrid-row-scrollable {
335
+ flex: 1 1 auto;
336
+ display: flex;
337
+ flex-flow: column nowrap;
338
+ width: 100%;
339
+
340
+ &.is-replaced {
341
+ flex-direction: row;
342
+
343
+ > .datagrid-row-detail {
344
+ border-top: none;
345
+ }
346
+
347
+ .datagrid-scrolling-cells {
348
+ flex: 0 0 auto;
349
+ }
350
+ }
351
+
352
+ // Only the last of the scrollable columns has nothing after it. A pinned column is never the
353
+ // last one on this side of the row, it lives one level deeper in .datagrid-pinned-cells.
354
+ > .datagrid-column:last-child .datagrid-column-separator {
355
+ display: none;
356
+ }
357
+ }
358
+
359
+ .datagrid-row-flex {
360
+ flex: 1 1 auto;
361
+ display: flex;
362
+ flex-flow: row nowrap;
363
+ width: 100%;
364
+
365
+ .datagrid-row-detail {
366
+ display: flex;
367
+ flex-flow: row nowrap;
368
+ }
369
+ }
370
+
371
+ .datagrid-scrolling-cells,
372
+ .datagrid-scrolling-details {
373
+ display: flex;
374
+ flex: 1 1 auto;
375
+ flex-flow: row nowrap;
376
+ }
377
+
378
+ .datagrid-action-bar {
379
+ margin-top: datagrid-variables.$hermes-datagrid-action-bar-offset;
380
+
381
+ // This changes the height and position of the datagrid-spinner when there is an action-bar
382
+ // Allows us to cover the action-bar with the spinner backgdrop and prevent user interactions.
383
+ & ~ .datagrid-outer-wrapper .datagrid-spinner {
384
+ height: calc(100% - #{datagrid-variables.$hermes-datagrid-action-bar-offset});
385
+ top: datagrid-variables.$hermes-datagrid-action-bar-offset; // Account for the margin above the datagrid-action-bar
386
+ }
387
+ }
388
+
389
+ .datagrid-header {
390
+ position: sticky;
391
+ top: 0;
392
+ // bug(popover): prevents action-overflow from being on top (first row).
393
+ // Needed to keep select/radio and expand svgs underneath header on scrolling
394
+ z-index: map.get(variables.$hermes-layers, datagrid-header);
395
+ width: auto;
396
+
397
+ .datagrid-column {
398
+ border-bottom: none;
399
+ }
400
+
401
+ .datagrid-row {
402
+ @include datagrid-mixins.hermes-datagrid-header-bg;
403
+
404
+ border-top: none;
405
+ border-bottom: tokens.$hermes-alias-object-border-width-100 solid tables-variables.$hermes-table-border-color;
406
+
407
+ .datagrid-row-sticky {
408
+ @include datagrid-mixins.hermes-datagrid-header-bg;
409
+
410
+ z-index: map.get(variables.$hermes-layers, datagrid-header-sticky);
411
+ }
412
+
413
+ .datagrid-pinned-cells {
414
+ @include datagrid-mixins.hermes-datagrid-header-bg;
415
+
416
+ z-index: map.get(variables.$hermes-layers, datagrid-header-pinned);
417
+ }
418
+
419
+ &:hover {
420
+ @include datagrid-mixins.hermes-datagrid-header-bg;
421
+
422
+ .datagrid-row-sticky,
423
+ .datagrid-pinned-cells {
424
+ @include datagrid-mixins.hermes-datagrid-header-bg;
425
+ }
426
+ }
427
+ }
428
+
429
+ .datagrid-row-scrollable {
430
+ flex-direction: row;
431
+ }
432
+ }
433
+
434
+ .datagrid-table-wrapper {
435
+ display: flex;
436
+ flex: 1 1 auto;
437
+ min-height: 100%;
438
+ width: 100%;
439
+
440
+ // Anchors the `cqi` unit that caps the pinned columns.
441
+ container-type: inline-size;
442
+ }
443
+
444
+ .datagrid-table {
445
+ display: flex;
446
+ flex-direction: column;
447
+ flex: 1 1 auto;
448
+
449
+ .datagrid-content {
450
+ display: contents;
451
+
452
+ &-virtual {
453
+ position: relative;
454
+ display: block;
455
+ flex: 1 1 100%;
456
+ overflow: auto scroll;
457
+ will-change: scroll-position;
458
+ contain: strict;
459
+ transform: translateZ(0);
460
+
461
+ &-spacer {
462
+ flex: 0 0 auto;
463
+ transform-origin: 0 0;
464
+ }
465
+
466
+ .datagrid-rows {
467
+ position: absolute;
468
+ top: 0;
469
+ left: 0;
470
+ contain: content;
471
+ min-width: 100%;
472
+ }
473
+ }
474
+ }
475
+
476
+ .datagrid-rows {
477
+ display: flex;
478
+ flex-direction: column;
479
+ flex: 1 1 auto;
480
+ }
481
+
482
+ .datagrid-body {
483
+ width: auto;
484
+ }
485
+
486
+ .datagrid-column {
487
+ position: relative;
488
+ text-align: left;
489
+ min-width: tokens.$hermes-global-space-15;
490
+ display: flex;
491
+ flex: 1 1 auto;
492
+ vertical-align: top;
493
+ border: none;
494
+
495
+ &:focus {
496
+ outline: tokens.$hermes-alias-object-interaction-outline;
497
+ outline-color: -webkit-focus-ring-color;
498
+ outline-offset: datagrid-variables.$hermes-datagrid-cell-outline-offset;
499
+ }
500
+
501
+ hermes-dg-filter,
502
+ hermes-dg-string-filter,
503
+ hermes-dg-numeric-filter {
504
+ display: flex;
505
+ order: 99;
506
+ margin-left: auto;
507
+ align-items: center;
508
+ }
509
+
510
+ .datagrid-numeric-filter-input {
511
+ width: density.$hermes-base-layout-space-5xl;
512
+
513
+ .hermes-form-control {
514
+ margin-top: 0;
515
+ }
516
+ }
517
+
518
+ .datagrid-filter-toggle {
519
+ @include mixins.hermes-no-styles-button();
520
+
521
+ cursor: pointer;
522
+ float: right;
523
+ vertical-align: middle;
524
+
525
+ @include mixins.min-equilateral(datagrid-variables.$hermes-datagrid-filter-toggle-size);
526
+
527
+ margin-left: density.$hermes-base-horizontal-offset-s;
528
+ background-repeat: no-repeat;
529
+ background-size: contain;
530
+
531
+ hermes-icon,
532
+ hermes-icon {
533
+ color: tokens.$hermes-alias-object-interaction-color;
534
+ }
535
+
536
+ &:hover {
537
+ hermes-icon,
538
+ hermes-icon {
539
+ color: tokens.$hermes-alias-object-interaction-color-hover;
540
+ }
541
+ }
542
+
543
+ &.datagrid-filter-open {
544
+ hermes-icon,
545
+ hermes-icon {
546
+ color: tokens.$hermes-alias-object-interaction-color-active;
547
+ }
548
+ }
549
+
550
+ &.datagrid-filtered {
551
+ hermes-icon,
552
+ hermes-icon {
553
+ color: tokens.$hermes-alias-object-interaction-color-selected;
554
+ }
555
+ }
556
+ }
557
+
558
+ &.datagrid-fixed-width {
559
+ flex: 0 0 auto;
560
+ }
561
+
562
+ .datagrid-column-flex {
563
+ display: flex;
564
+ flex: 1 1 auto;
565
+ }
566
+
567
+ // The pin toggle sits at the very left of the header, in front of the title. It has to stay
568
+ // outside the title button, otherwise clicking it would sort the column as well.
569
+ //
570
+ // Disabled for now, along with the hermesDgPinnable input that renders the toggle.
571
+ //
572
+ // .datagrid-column-pin {
573
+ // @include mixins.hermes-no-styles-button();
574
+ // @include mixins.min-equilateral(datagrid-variables.$hermes-datagrid-filter-toggle-size);
575
+ //
576
+ // cursor: pointer;
577
+ // align-self: center;
578
+ // flex: 0 0 auto;
579
+ // display: flex;
580
+ // margin-right: density.$hermes-base-horizontal-offset-s;
581
+ // padding: density.$hermes-base-vertical-offset-2xs density.$hermes-base-horizontal-offset-2xs;
582
+ //
583
+ // hermes-icon {
584
+ // color: tokens.$hermes-alias-object-interaction-color;
585
+ // }
586
+ //
587
+ // &:hover hermes-icon {
588
+ // color: tokens.$hermes-alias-object-interaction-color-hover;
589
+ // }
590
+ //
591
+ // &:active hermes-icon {
592
+ // color: tokens.$hermes-alias-object-interaction-color-active;
593
+ // }
594
+ // }
595
+
596
+ .datagrid-column-title {
597
+ @include mixins.hermes-no-styles-button();
598
+
599
+ color: tables-variables.$hermes-table-font-color;
600
+ text-align: left;
601
+ flex: 1 1 auto;
602
+ align-items: center;
603
+ align-self: center;
604
+ display: flex;
605
+
606
+ .signpost .signpost-action.btn {
607
+ height: inherit;
608
+ line-height: inherit;
609
+ }
610
+
611
+ // Override checkbox labels only when they are in a column. This allows them to be vertically centered.
612
+ .hermes-checkbox-wrapper .hermes-control-label {
613
+ margin-top: calc(-1 * mixins.baselinePx(10));
614
+ }
615
+ }
616
+
617
+ button.datagrid-column-title {
618
+ &:hover {
619
+ cursor: pointer;
620
+ }
621
+
622
+ .sort-icon {
623
+ color: tokens.$hermes-alias-object-interaction-color;
624
+ margin-left: auto; // pushes icon to rhs b/c of parents display: flex
625
+
626
+ @include mixins.equilateral(datagrid-variables.$hermes-datagrid-icon-size);
627
+
628
+ vertical-align: middle;
629
+
630
+ &:hover {
631
+ color: tokens.$hermes-alias-object-interaction-color-hover;
632
+ }
633
+
634
+ &:active {
635
+ color: tokens.$hermes-alias-object-interaction-color-active;
636
+ }
637
+ }
638
+ }
639
+
640
+ .datagrid-column-separator {
641
+ display: flex;
642
+ align-items: center;
643
+ flex: 0 0 auto;
644
+ width: tokens.$hermes-alias-object-border-width-100;
645
+ order: 100;
646
+ margin-left: auto;
647
+ height: 100%;
648
+
649
+ @include datagrid-mixins.datagrid-column-separator($alignTop: false);
650
+
651
+ .datagrid-column-handle {
652
+ @include mixins.hermes-no-styles-button();
653
+
654
+ position: absolute;
655
+ width: calc(tokens.$hermes-global-space-6 + tokens.$hermes-global-space-1);
656
+ right: calc(-1 * tokens.$hermes-global-space-4);
657
+ top: 0;
658
+ cursor: col-resize;
659
+ height: 100%;
660
+ z-index: map.get(variables.$hermes-layers, datagrid-header);
661
+ }
662
+
663
+ .datagrid-column-resize-tracker {
664
+ position: absolute;
665
+ top: calc(-1 * tokens.$hermes-global-space-6);
666
+ display: none;
667
+ width: tokens.$hermes-global-space-1;
668
+ height: 0;
669
+ border-right: tokens.$hermes-alias-object-border-width-100 dotted tokens.$hermes-global-color-blue-300;
670
+ transform: translateX(0);
671
+ cursor: col-resize;
672
+
673
+ &.on-arrow-key-resize {
674
+ transition: transform 0.2s ease-out;
675
+ }
676
+ }
677
+
678
+ .exceeded-max {
679
+ border-right: tokens.$hermes-alias-object-border-width-100 dotted tokens.$hermes-alias-status-danger-dark;
680
+ }
681
+ }
682
+
683
+ .datagrid-signpost-trigger .signpost {
684
+ margin: calc(-1 * tokens.$hermes-global-space-5) 0;
685
+ height: tables-variables.$hermes-table-cell-height;
686
+
687
+ .signpost-trigger {
688
+ height: inherit;
689
+ line-height: tables-variables.$hermes-table-cell-height;
690
+ }
691
+ }
692
+
693
+ &.datagrid-select,
694
+ &.datagrid-expandable-caret,
695
+ &.datagrid-row-actions {
696
+ max-width: datagrid-variables.$hermes-datagrid-fixed-column-size;
697
+ min-width: datagrid-variables.$hermes-datagrid-fixed-column-size;
698
+ }
699
+
700
+ &.datagrid-select {
701
+ align-items: center;
702
+ }
703
+ }
704
+
705
+ .datagrid-cell {
706
+ flex: 1 1 auto;
707
+ text-align: left;
708
+ min-width: tokens.$hermes-global-space-15;
709
+ border: none;
710
+
711
+ &.datagrid-fixed-width {
712
+ flex: 0 0 auto;
713
+ }
714
+
715
+ &.datagrid-fixed-column {
716
+ flex: 0 0 datagrid-variables.$hermes-datagrid-fixed-column-size;
717
+ max-width: datagrid-variables.$hermes-datagrid-fixed-column-size;
718
+ min-width: datagrid-variables.$hermes-datagrid-fixed-column-size;
719
+ }
720
+
721
+ &.datagrid-row-actions,
722
+ &.datagrid-expandable-caret,
723
+ &.datagrid-detail-caret {
724
+ padding: 0;
725
+
726
+ button {
727
+ outline-offset: datagrid-variables.$hermes-datagrid-cell-outline-offset;
728
+ }
729
+ }
730
+
731
+ &.datagrid-row-actions {
732
+ background: none;
733
+ }
734
+
735
+ &.datagrid-expandable-caret {
736
+ text-align: center;
737
+ }
738
+
739
+ &:focus {
740
+ outline: tokens.$hermes-alias-object-interaction-outline;
741
+ outline-color: -webkit-focus-ring-color;
742
+ outline-offset: calc(-1 * tokens.$hermes-global-space-2);
743
+ }
744
+
745
+ hermes-dg-action-overflow {
746
+ display: contents;
747
+ }
748
+
749
+ .datagrid-action-toggle {
750
+ @include mixins.hermes-no-styles-button();
751
+ @include datagrid-mixins.datagrid-action-button-styles();
752
+
753
+ hermes-icon,
754
+ hermes-icon {
755
+ color: datagrid-variables.$hermes-datagrid-icon-color;
756
+ }
757
+
758
+ &:active {
759
+ hermes-icon,
760
+ hermes-icon {
761
+ // Fixed active state on this button for Safari.
762
+ color: datagrid-variables.$hermes-datagrid-action-toggle-color;
763
+ }
764
+ }
765
+ }
766
+
767
+ // align toggle input to row hight
768
+ .hermes-toggle-wrapper {
769
+ padding: 0;
770
+ min-height: auto;
771
+ }
772
+ }
773
+
774
+ // Increase interaction area for action buttons without changing layout
775
+ .datagrid-detail-caret,
776
+ .datagrid-row-actions,
777
+ .datagrid-expandable-caret {
778
+ position: relative;
779
+
780
+ .datagrid-action-toggle,
781
+ .datagrid-detail-caret-button,
782
+ .datagrid-expandable-caret-button {
783
+ &::before {
784
+ content: '';
785
+ position: absolute;
786
+ height: 100%;
787
+ width: 100%;
788
+ top: 0;
789
+ left: 0;
790
+ }
791
+ }
792
+ }
793
+
794
+ .datagrid-placeholder-container {
795
+ flex: 1 1 auto;
796
+ display: flex;
797
+ justify-content: center;
798
+ border-top: tokens.$hermes-alias-object-border-width-100 solid tables-variables.$hermes-table-border-color;
799
+ }
800
+
801
+ .datagrid-placeholder {
802
+ background: datagrid-variables.$hermes-datagrid-placeholder-background-color;
803
+ display: none;
804
+ width: 100%;
805
+
806
+ &.datagrid-empty {
807
+ border-top: 0;
808
+ display: flex;
809
+ flex-flow: column nowrap;
810
+ align-items: center;
811
+ justify-content: flex-start;
812
+ gap: density.$hermes-base-gap-m;
813
+ padding: density.$hermes-base-vertical-offset-2xl density.$hermes-base-horizontal-offset-2xl;
814
+
815
+ @include mixins.generate-typography-token('BODY-14-SB-STD');
816
+ }
817
+
818
+ .datagrid-placeholder-image {
819
+ @include mixins.equilateral(density.$hermes-base-layout-space-2xl);
820
+
821
+ background-repeat: no-repeat;
822
+ background-size: contain;
823
+ background-position: center;
824
+ background-image: icons.generateEmptyDatagridPlaceholder();
825
+ }
826
+ }
827
+
828
+ .datagrid-hidden-column {
829
+ &.datagrid-column,
830
+ &.datagrid-cell {
831
+ display: none;
832
+ }
833
+ }
834
+
835
+ // Pinned columns are moved into the static container, which sizes itself to its content.
836
+ // They keep the width computed for them and never grow, otherwise the pinned header
837
+ // and the pinned cells drift apart from each other. Scoped to that container so cells of a
838
+ // pinned column in a row detail that is not laid out in columns keep their own layout.
839
+ // Shrinking is allowed so that the columns fit inside the max-width cap on the container rather
840
+ // than spilling out of it.
841
+ .datagrid-pinned-cells > .datagrid-pinned-column {
842
+ &.datagrid-column,
843
+ &.datagrid-cell {
844
+ flex: 0 1 auto;
845
+ }
846
+ }
847
+
848
+ .datagrid-row-scrollable .datagrid-column .datagrid-column-separator::after {
849
+ background-color: datagrid-variables.$hermes-datagrid-column-resize-handler-color;
850
+ }
851
+ }
852
+
853
+ .datagrid-row-replaced {
854
+ .datagrid-scrolling-cells {
855
+ .datagrid-cell {
856
+ // Keep row action cells so they can be used.
857
+ &:not(.datagrid-expandable-caret, .datagrid-row-actions, .datagrid-select) {
858
+ display: none;
859
+ }
860
+ }
861
+
862
+ // The detail has taken the place of the cells of the row, pinned ones included, so the
863
+ // container they were static in has nothing left to hold.
864
+ .datagrid-pinned-cells {
865
+ display: none;
866
+ }
867
+ }
868
+
869
+ .datagrid-row-detail {
870
+ .datagrid-cell {
871
+ display: block;
872
+ padding: tables-variables.$hermes-table-cell-padding;
873
+
874
+ &.datagrid-hidden-column {
875
+ display: none;
876
+ }
877
+ }
878
+ }
879
+ }
880
+
881
+ .datagrid-footer {
882
+ @include mixins.generate-typography-token('CAPTION-LG-11-CPT');
883
+
884
+ flex: 0 0 auto;
885
+ display: flex;
886
+ flex-flow: row nowrap;
887
+ justify-content: space-between;
888
+ align-items: stretch;
889
+ gap: density.$hermes-base-gap-m;
890
+ min-height: density.$hermes-base-row-height-l;
891
+ padding: 0 density.$hermes-base-horizontal-offset-xl;
892
+ // Account for borders
893
+ background-color: tables-variables.$hermes-thead-bgcolor;
894
+ border-style: solid;
895
+ border-color: tables-variables.$hermes-table-footer-border-top-color;
896
+ border-width: tokens.$hermes-alias-object-border-width-100;
897
+ border-top: none;
898
+ border-radius: 0;
899
+ border-bottom-right-radius: tables-variables.$hermes-table-border-radius;
900
+ border-bottom-left-radius: tables-variables.$hermes-table-border-radius;
901
+
902
+ .pagination {
903
+ display: flex;
904
+ align-items: center;
905
+ flex-wrap: wrap;
906
+ justify-content: flex-end;
907
+ gap: datagrid-variables.$hermes-datagrid-footer-pagination-gap;
908
+
909
+ &-size {
910
+ display: block;
911
+ flex: 1 1 auto;
912
+ white-space: nowrap;
913
+ text-align: right;
914
+
915
+ hermes-dg-page-size {
916
+ display: flex;
917
+ align-items: center;
918
+ gap: density.$hermes-base-gap-m;
919
+ }
920
+
921
+ .hermes-page-size-select {
922
+ @include mixins.generate-typography-token('CAPTION-LG-11-CPT');
923
+
924
+ height: auto;
925
+ min-height: density.$hermes-base-row-height-s;
926
+ vertical-align: middle;
927
+ }
928
+ }
929
+
930
+ &-description {
931
+ white-space: nowrap;
932
+ }
933
+ }
934
+
935
+ .column-switch-wrapper {
936
+ position: relative;
937
+ flex: 0 0 auto;
938
+ display: flex;
939
+ align-items: center;
940
+
941
+ .column-toggle-action {
942
+ // I'm overriding .btn/.btn-link here but am not confident this is the correct way to do it.
943
+ min-width: tokens.$hermes-global-space-8;
944
+ text-transform: capitalize;
945
+ padding: datagrid-variables.$hermes-datagrid-column-toggle-padding;
946
+ border-color: datagrid-variables.$hermes-datagrid-column-toggle-border-color;
947
+ background-color: datagrid-variables.$hermes-datagrid-column-toggle-fill-color;
948
+ color: datagrid-variables.$hermes-datagrid-column-toggle-text-color;
949
+ margin: 0;
950
+
951
+ &.disabled,
952
+ &:disabled,
953
+ &.disabled:hover,
954
+ &:disabled:hover,
955
+ &.disabled:active,
956
+ &:disabled:active {
957
+ cursor: not-allowed;
958
+ border-color: datagrid-variables.$hermes-datagrid-column-toggle-disabled-color;
959
+ color: datagrid-variables.$hermes-datagrid-column-toggle-disabled-color;
960
+ background-color: datagrid-variables.$hermes-datagrid-column-toggle-fill-color;
961
+ }
962
+
963
+ &:hover {
964
+ border-color: datagrid-variables.$hermes-datagrid-column-toggle-border-hover-color;
965
+ background-color: datagrid-variables.$hermes-datagrid-column-toggle-fill-hover-color;
966
+ color: datagrid-variables.$hermes-datagrid-column-toggle-text-hover-color;
967
+ }
968
+
969
+ &:active,
970
+ &:focus {
971
+ box-shadow: none;
972
+ border-color: datagrid-variables.$hermes-datagrid-column-toggle-border-active-color;
973
+ background-color: datagrid-variables.$hermes-datagrid-column-toggle-fill-active-color;
974
+ color: datagrid-variables.$hermes-datagrid-column-toggle-text-active-color;
975
+ }
976
+ }
977
+ }
978
+
979
+ .hermes-form-control-disabled {
980
+ display: flex;
981
+ align-items: center;
982
+ height: 100%;
983
+ }
984
+ }
985
+
986
+ .hermes-form-control-disabled .datagrid-footer-select.hermes-checkbox-wrapper input[type='checkbox']:checked + label {
987
+ cursor: default;
988
+
989
+ &::before {
990
+ background-color: forms-variables.$hermes-forms-label-disabled-color;
991
+ }
992
+ }
993
+
994
+ .datagrid-spinner {
995
+ position: absolute;
996
+ display: flex;
997
+ justify-content: center;
998
+ align-items: center;
999
+ width: 100%;
1000
+ top: datagrid-variables.$hermes-datagrid-margin-top;
1001
+ height: calc(100% - datagrid-variables.$hermes-datagrid-margin-top);
1002
+ background-color: datagrid-variables.$hermes-datagrid-loading-background;
1003
+ z-index: map.get(variables.$hermes-layers, datagrid-host); // Keeps the spinner above the datagrid header.
1004
+ }
1005
+
1006
+ // @deprecated CSS rule `.datagrid-compact { ... }` in favor of compact mode in density theme
1007
+ .datagrid-compact {
1008
+ .datagrid {
1009
+ margin-top: datagrid-variables.$hermes-datagrid-compact-margin-top;
1010
+ }
1011
+
1012
+ .datagrid-spinner {
1013
+ height: calc(100% - #{datagrid-variables.$hermes-datagrid-compact-margin-top});
1014
+ top: datagrid-variables.$hermes-datagrid-compact-margin-top;
1015
+ }
1016
+
1017
+ .datagrid-action-bar {
1018
+ margin-top: datagrid-variables.$hermes-datagrid-compact-action-bar-offset;
1019
+
1020
+ & ~ .datagrid-outer-wrapper .datagrid-spinner {
1021
+ height: calc(100% - #{datagrid-variables.$hermes-datagrid-compact-action-bar-offset});
1022
+ top: datagrid-variables.$hermes-datagrid-compact-action-bar-offset;
1023
+ }
1024
+ }
1025
+
1026
+ .datagrid-detail-pane {
1027
+ margin-top: datagrid-variables.$hermes-datagrid-compact-margin-top;
1028
+
1029
+ &-content {
1030
+ padding: tokens.$hermes-global-space-6;
1031
+
1032
+ .datagrid-detail-header {
1033
+ gap: mixins.baselinePx(10);
1034
+ font-size: tokens.$hermes-global-space-7;
1035
+ line-height: mixins.baselinePx(20);
1036
+
1037
+ .datagrid-detail-pane-close {
1038
+ flex-basis: mixins.baselinePx(20);
1039
+
1040
+ button {
1041
+ hermes-icon,
1042
+ hermes-icon {
1043
+ &:not([size]) {
1044
+ @include mixins.min-equilateral(mixins.baselinePx(20));
1045
+ }
1046
+ }
1047
+ }
1048
+ }
1049
+ }
1050
+
1051
+ .datagrid-detail-body {
1052
+ padding: tokens.$hermes-global-space-6 0;
1053
+ }
1054
+ }
1055
+ }
1056
+
1057
+ .datagrid-column {
1058
+ &.datagrid-select,
1059
+ &.datagrid-expandable-caret,
1060
+ &.datagrid-row-actions {
1061
+ max-width: datagrid-variables.$hermes-datagrid-compact-fixed-column-size;
1062
+ min-width: datagrid-variables.$hermes-datagrid-compact-fixed-column-size;
1063
+ }
1064
+ }
1065
+
1066
+ .datagrid-cell.datagrid-fixed-column {
1067
+ flex: 0 0 datagrid-variables.$hermes-datagrid-compact-fixed-column-size;
1068
+ max-width: datagrid-variables.$hermes-datagrid-compact-fixed-column-size;
1069
+ min-width: datagrid-variables.$hermes-datagrid-compact-fixed-column-size;
1070
+ }
1071
+
1072
+ .datagrid-row {
1073
+ min-height: tables-variables.$hermes-table-compact-row-height;
1074
+
1075
+ &:first-of-type {
1076
+ min-height: calc(tables-variables.$hermes-table-compact-row-height - tables-variables.$hermes-table-borderwidth);
1077
+ }
1078
+
1079
+ .datagrid-row-detail .datagrid-cell.datagrid-container {
1080
+ font-size: mixins.baselinePx(13);
1081
+ line-height: tokens.$hermes-global-space-8;
1082
+ }
1083
+
1084
+ &.datagrid-row-skeleton {
1085
+ .datagrid-row-master {
1086
+ &::before {
1087
+ top: tables-variables.$hermes-table-compact-vertical-padding;
1088
+ left: tables-variables.$hermes-table-compact-horizontal-padding;
1089
+ height: calc(100% - (2 * tables-variables.$hermes-table-compact-vertical-padding));
1090
+ width: calc(100% - (2 * tables-variables.$hermes-table-compact-horizontal-padding));
1091
+ }
1092
+ }
1093
+ }
1094
+ }
1095
+
1096
+ .datagrid-row-replaced .datagrid-row-detail .datagrid-cell {
1097
+ padding: tables-variables.$hermes-table-cell-compact-padding;
1098
+ }
1099
+
1100
+ .datagrid-column .datagrid-column-separator {
1101
+ &::after {
1102
+ height: calc(100% - (0.5 * #{datagrid-variables.$hermes-datagrid-column-separator-expandby}));
1103
+ }
1104
+ }
1105
+
1106
+ .datagrid-detail-caret {
1107
+ .datagrid-detail-caret-button {
1108
+ @include datagrid-mixins.datagrid-action-button-styles(
1109
+ tables-variables.$hermes-table-compact-cell-height,
1110
+ datagrid-variables.$hermes-datagrid-compact-fixed-column-size,
1111
+ tokens.$hermes-global-space-7
1112
+ );
1113
+ }
1114
+
1115
+ .spinner {
1116
+ margin-top: datagrid-variables.$hermes-datagrid-compact-expandable-row-spinner-margin;
1117
+ }
1118
+ }
1119
+
1120
+ .datagrid-cell:not(.datagrid-detail-caret, .datagrid-expandable-caret, .datagrid-row-actions) {
1121
+ @include mixins.cell-children-aligment();
1122
+ }
1123
+
1124
+ .datagrid-expandable-caret {
1125
+ text-align: center;
1126
+
1127
+ .spinner {
1128
+ margin-top: datagrid-variables.$hermes-datagrid-compact-expandable-row-spinner-margin;
1129
+ }
1130
+
1131
+ .datagrid-expandable-caret-button {
1132
+ @include datagrid-mixins.datagrid-action-button-styles(
1133
+ tables-variables.$hermes-table-compact-cell-height,
1134
+ datagrid-variables.$hermes-datagrid-compact-fixed-column-size,
1135
+ tokens.$hermes-global-space-7
1136
+ );
1137
+ }
1138
+
1139
+ .datagrid-expandable-caret-icon {
1140
+ margin: 0;
1141
+ }
1142
+
1143
+ &.datagrid-column {
1144
+ padding-top: tables-variables.$hermes-table-compact-vertical-padding;
1145
+ padding-bottom: tables-variables.$hermes-table-compact-vertical-padding;
1146
+ }
1147
+ }
1148
+
1149
+ .datagrid-row-actions {
1150
+ .datagrid-action-toggle {
1151
+ @include datagrid-mixins.datagrid-action-button-styles(
1152
+ tables-variables.$hermes-table-compact-cell-height,
1153
+ datagrid-variables.$hermes-datagrid-compact-fixed-column-size,
1154
+ tokens.$hermes-global-space-7
1155
+ );
1156
+ }
1157
+ }
1158
+
1159
+ .datagrid-signpost-trigger .signpost .signpost-trigger {
1160
+ hermes-icon:not(
1161
+ [size],
1162
+ [shape='info-circle'],
1163
+ [shape='exclamation-triangle'],
1164
+ [shape='exclamation-circle'],
1165
+ [shape='check-circle'],
1166
+ [shape='info'],
1167
+ [shape='error']
1168
+ ),
1169
+ hermes-icon:not(
1170
+ [size],
1171
+ [shape='info-circle'],
1172
+ [shape='exclamation-triangle'],
1173
+ [shape='exclamation-circle'],
1174
+ [shape='check-circle'],
1175
+ [shape='info'],
1176
+ [shape='error']
1177
+ ) {
1178
+ @include mixins.equilateral(tables-variables.$hermes-table-compact-cell-height);
1179
+ }
1180
+ }
1181
+
1182
+ .datagrid-footer {
1183
+ min-height: mixins.baselinePx(28);
1184
+ line-height: tokens.$hermes-global-space-7;
1185
+ padding: 0 tokens.$hermes-global-space-6;
1186
+
1187
+ .pagination {
1188
+ &,
1189
+ hermes-dg-page-size {
1190
+ gap: mixins.baselinePx(10);
1191
+ }
1192
+
1193
+ .hermes-native-select-wrapper {
1194
+ max-height: mixins.baselinePx(20);
1195
+
1196
+ &::after {
1197
+ --hermes-forms-native-select-caret-size: #{tokens.$hermes-global-space-6};
1198
+
1199
+ right: tokens.$hermes-global-space-2;
1200
+ }
1201
+
1202
+ .hermes-page-size-select {
1203
+ min-height: mixins.baselinePx(20);
1204
+ padding: 0 mixins.baselinePx(20) 0 tokens.$hermes-global-space-2;
1205
+ }
1206
+ }
1207
+ }
1208
+
1209
+ .hermes-form-control-disabled .datagrid-footer-select.hermes-checkbox-wrapper input[type='checkbox']:checked + label {
1210
+ top: 0;
1211
+ }
1212
+
1213
+ .column-switch-wrapper .column-toggle-action {
1214
+ border-radius: tokens.$hermes-global-space-2;
1215
+ padding: 0 tokens.$hermes-global-space-4;
1216
+ height: mixins.baselinePx(20);
1217
+ }
1218
+ }
1219
+
1220
+ .pagination-list {
1221
+ gap: tokens.$hermes-global-space-4;
1222
+
1223
+ .pagination-current {
1224
+ // @include mixins.generate-typography-token('CAPTION-LG-11');
1225
+ padding: tokens.$hermes-global-space-2 0;
1226
+ }
1227
+
1228
+ .pagination-pages {
1229
+ gap: tokens.$hermes-global-space-2;
1230
+ }
1231
+
1232
+ .pagination-current,
1233
+ button {
1234
+ border-radius: tokens.$hermes-global-space-2;
1235
+
1236
+ @include mixins.min-equilateral(mixins.baselinePx(20));
1237
+ }
1238
+ }
1239
+
1240
+ .datagrid-action-overflow .action-item {
1241
+ font-size: tokens.$hermes-global-space-6;
1242
+ line-height: mixins.baselinePx(20);
1243
+ gap: tokens.$hermes-global-space-2;
1244
+ height: mixins.baselinePx(20);
1245
+ padding: 0 mixins.baselinePx(20) 0 tokens.$hermes-global-space-5;
1246
+ }
1247
+
1248
+ .datagrid-placeholder.datagrid-empty {
1249
+ font-size: mixins.baselinePx(13);
1250
+ line-height: tokens.$hermes-global-space-8;
1251
+ padding: mixins.baselinePx(20);
1252
+ gap: mixins.baselinePx(10);
1253
+
1254
+ .datagrid-placeholder-image {
1255
+ @include mixins.equilateral(tokens.$hermes-global-space-10);
1256
+ }
1257
+ }
1258
+ }
1259
+
1260
+ .datagrid-footer-description {
1261
+ flex: 1 1 auto;
1262
+ flex-wrap: nowrap;
1263
+ white-space: nowrap;
1264
+ display: block;
1265
+ text-align: right;
1266
+ margin: auto 0;
1267
+ }
1268
+
1269
+ // Yes, this is not .datagrid-pagination on purpose.
1270
+ // I've been told to consider a potential separate pagination component.
1271
+ .pagination-list {
1272
+ list-style: none;
1273
+ display: flex;
1274
+ flex-flow: row nowrap;
1275
+ justify-content: center;
1276
+ align-items: center;
1277
+ gap: density.$hermes-base-gap-s;
1278
+
1279
+ .pagination-current {
1280
+ @include mixins.generate-typography-token('CAPTION-LG-11-CPT');
1281
+
1282
+ background: none;
1283
+ background-color: forms-variables.$hermes-forms-textarea-background-color;
1284
+ border-color: datagrid-variables.$hermes-datagrid-pagination-input-border-color;
1285
+ border-width: tokens.$hermes-alias-object-border-width-100;
1286
+ border-style: solid;
1287
+ border-radius: density.$hermes-base-border-radius-s;
1288
+
1289
+ @include mixins.min-equilateral(density.$hermes-base-layout-space-l);
1290
+
1291
+ text-align: center;
1292
+ transition: none !important;
1293
+ padding: density.$hermes-base-vertical-offset-xs 0;
1294
+
1295
+ &:focus,
1296
+ &.hermes-focus {
1297
+ background: none;
1298
+ border: tokens.$hermes-alias-object-border-width-100 solid
1299
+ datagrid-variables.$hermes-datagrid-pagination-input-border-focus-color;
1300
+ }
1301
+ }
1302
+
1303
+ .pagination-pages {
1304
+ display: flex;
1305
+ align-items: center;
1306
+ gap: density.$hermes-base-gap-xs;
1307
+ }
1308
+
1309
+ .pagination-first,
1310
+ .pagination-last,
1311
+ .pagination-previous,
1312
+ .pagination-next {
1313
+ display: flex;
1314
+ align-items: center;
1315
+ background-repeat: no-repeat;
1316
+ background-size: contain;
1317
+ }
1318
+
1319
+ .pagination-first:disabled,
1320
+ .pagination-last:disabled,
1321
+ .pagination-previous:disabled,
1322
+ .pagination-next:disabled {
1323
+ color: tokens.$hermes-alias-status-disabled;
1324
+ cursor: not-allowed;
1325
+ opacity: datagrid-variables.$hermes-datagrid-pagination-btn-disabled-opacity;
1326
+ }
1327
+
1328
+ button {
1329
+ @include mixins.hermes-no-styles-button();
1330
+ @include mixins.min-equilateral(density.$hermes-base-icon-size-l);
1331
+
1332
+ justify-content: center;
1333
+ color: datagrid-variables.$hermes-datagrid-pagination-btn-color;
1334
+ // FIXME: this should be in the general reboot
1335
+ cursor: pointer;
1336
+ }
1337
+ }
1338
+
1339
+ /*
1340
+ The following classes are used by the renderer when performing internal operations.
1341
+ Using the browser calculations improves rendering performance.
1342
+ */
1343
+ // This class is used by the dom-renderer.ts when testing cell for a user defined width.
1344
+ .datagrid-cell-width-zero {
1345
+ // Much zero. Such !important. Wow.
1346
+ border: 0 !important;
1347
+ padding: 0 !important;
1348
+ width: 0;
1349
+ flex: 0 0 auto !important;
1350
+ min-width: 0 !important;
1351
+ display: block !important;
1352
+ visibility: hidden !important;
1353
+ position: absolute !important;
1354
+ top: 0;
1355
+ left: 0;
1356
+ }
1357
+
1358
+ /**
1359
+ * Detail pane
1360
+ */
1361
+ .datagrid-outer-wrapper {
1362
+ display: flex;
1363
+ flex-direction: row;
1364
+ flex-grow: 1;
1365
+ overflow: auto;
1366
+ }
1367
+
1368
+ .datagrid-inner-wrapper {
1369
+ display: flex;
1370
+ flex-direction: column;
1371
+ flex-grow: 1;
1372
+ overflow: auto;
1373
+ min-width: mixins.baselinePx(240);
1374
+ }
1375
+
1376
+ .datagrid-detail-open {
1377
+ &:has(.datagrid-detail-pane.datagrid-detail-custom-width) .datagrid-inner-wrapper {
1378
+ min-width: initial;
1379
+ width: initial;
1380
+
1381
+ .datagrid-rows {
1382
+ overflow-x: initial;
1383
+ }
1384
+ }
1385
+
1386
+ .datagrid-detail-pane.datagrid-detail-custom-width {
1387
+ flex-grow: 0;
1388
+ }
1389
+
1390
+ & > .datagrid-outer-wrapper > .datagrid-inner-wrapper {
1391
+ div.datagrid-table {
1392
+ /**
1393
+ * So the content with no spaces in the cell doesn't get cut when and the row selected indicator is not hidden
1394
+ * e.g. Helloworldthisisaveryveryveryveryverylongcontent
1395
+ */
1396
+ max-width: 100%;
1397
+ }
1398
+
1399
+ .datagrid-rows {
1400
+ /**
1401
+ * To get rid of detail-pane overlapping the content inside the rows
1402
+ */
1403
+ overflow-x: hidden;
1404
+ }
1405
+
1406
+ & > .cdk-virtual-scrollable div.datagrid-table {
1407
+ overflow: unset;
1408
+ }
1409
+
1410
+ hermes-dg-cell {
1411
+ /**
1412
+ * Since we use inline width of each column in order to maintain manual resizing,
1413
+ * we need to use !important to override the inline width.
1414
+ */
1415
+ width: 100% !important;
1416
+ }
1417
+
1418
+ /**
1419
+ * Needed to prevent hidding the sorting and filtering icons
1420
+ */
1421
+ hermes-dg-column:first-child {
1422
+ /**
1423
+ * Since we use inline width of each column in order to maintain manual resizing,
1424
+ * we need to use !important to override the inline width.
1425
+ */
1426
+ width: auto !important;
1427
+ }
1428
+ }
1429
+
1430
+ .datagrid {
1431
+ border-top-right-radius: 0;
1432
+ border-right: none;
1433
+ }
1434
+
1435
+ .datagrid-inner-wrapper {
1436
+ width: 34%;
1437
+ }
1438
+
1439
+ .datagrid-placeholder-container,
1440
+ .datagrid-row {
1441
+ border-right: tokens.$hermes-alias-object-border-width-100 solid tables-variables.$hermes-table-border-color;
1442
+ }
1443
+
1444
+ .datagrid-footer {
1445
+ border-bottom-right-radius: 0;
1446
+ }
1447
+
1448
+ .pagination {
1449
+ width: 100%;
1450
+ }
1451
+
1452
+ .pagination-description-compact {
1453
+ text-align: left;
1454
+ flex: 1;
1455
+ }
1456
+
1457
+ .datagrid-footer .pagination-list {
1458
+ margin-right: 0;
1459
+ }
1460
+ }
1461
+
1462
+ .datagrid-row-detail-open {
1463
+ position: relative;
1464
+
1465
+ &:not(:hover) {
1466
+ background-color: datagrid-variables.$hermes-datagrid-detail-pane-open-row-bg-color;
1467
+
1468
+ .datagrid-row-sticky,
1469
+ .datagrid-pinned-cells {
1470
+ background-color: datagrid-variables.$hermes-datagrid-detail-pane-open-row-bg-color;
1471
+ }
1472
+ }
1473
+ }
1474
+
1475
+ .datagrid-detail-pane {
1476
+ margin-top: datagrid-variables.$hermes-datagrid-margin-top;
1477
+ border-width: tokens.$hermes-alias-object-border-width-100;
1478
+ border-style: solid;
1479
+ border-color: datagrid-variables.$hermes-datagrid-detail-pane-border-color;
1480
+ border-left: none;
1481
+ border-top-right-radius: density.$hermes-base-border-radius-s;
1482
+ border-bottom-right-radius: density.$hermes-base-border-radius-s;
1483
+ background: datagrid-variables.$hermes-datagrid-detail-pane-bg-color;
1484
+ overflow: hidden;
1485
+ display: block;
1486
+ flex-grow: 2;
1487
+ }
1488
+
1489
+ .datagrid-detail-pane-content {
1490
+ display: flex;
1491
+ flex-direction: column;
1492
+ overflow: auto;
1493
+ height: 100%;
1494
+ padding: datagrid-variables.$hermes-datagrid-detail-pane-content-padding;
1495
+ }
1496
+
1497
+ .datagrid-detail-body {
1498
+ flex: 1 1 auto;
1499
+ padding: density.$hermes-base-vertical-offset-xl 0;
1500
+ color: datagrid-variables.$hermes-datagrid-detail-body-text-color;
1501
+ }
1502
+
1503
+ .datagrid-detail-header {
1504
+ flex: 0 0 auto;
1505
+ @include mixins.generate-typography-token('SECTION-20-STD');
1506
+
1507
+ margin-top: 0;
1508
+ display: flex;
1509
+ flex-direction: row;
1510
+ gap: density.$hermes-base-gap-m;
1511
+
1512
+ .datagrid-detail-header-title {
1513
+ flex: 1 1 auto;
1514
+ color: datagrid-variables.$hermes-datagrid-detail-header-title-color;
1515
+ overflow-wrap: anywhere;
1516
+ padding: #{tokens.$hermes-global-space-1} 0; // outline header needs this to keep the shape correct
1517
+ }
1518
+
1519
+ .datagrid-detail-pane-close {
1520
+ flex: 1 1 datagrid-variables.$hermes-datagrid-detail-pane-close-icon-size;
1521
+ display: flex;
1522
+ justify-content: flex-end;
1523
+
1524
+ .btn.btn-link {
1525
+ align-items: start;
1526
+ min-width: auto;
1527
+ height: auto;
1528
+ margin: 0;
1529
+ padding: 0;
1530
+ border: 0;
1531
+
1532
+ hermes-icon,
1533
+ hermes-icon {
1534
+ @include mixins.min-equilateral(datagrid-variables.$hermes-datagrid-detail-pane-close-icon-size);
1535
+
1536
+ color: modal-variables.$hermes-modal-close-color;
1537
+ }
1538
+ }
1539
+ }
1540
+ }
1541
+
1542
+ .datagrid-expandable-caret {
1543
+ display: flex;
1544
+ justify-content: center;
1545
+
1546
+ .datagrid-expandable-caret-button {
1547
+ @include mixins.hermes-no-styles-button();
1548
+ @include datagrid-mixins.datagrid-action-button-styles();
1549
+ }
1550
+
1551
+ .datagrid-expandable-caret-icon {
1552
+ color: datagrid-variables.$hermes-datagrid-icon-color;
1553
+
1554
+ svg {
1555
+ transition: transform 0.2s ease-in-out;
1556
+ }
1557
+ }
1558
+
1559
+ .spinner {
1560
+ margin-top: datagrid-variables.$hermes-datagrid-expandable-row-spinner-margin;
1561
+ }
1562
+ }
1563
+
1564
+ .datagrid-detail-caret {
1565
+ display: flex;
1566
+ justify-content: center;
1567
+
1568
+ .datagrid-detail-caret-button {
1569
+ @include mixins.hermes-no-styles-button();
1570
+ @include datagrid-mixins.datagrid-action-button-styles();
1571
+
1572
+ &:disabled {
1573
+ hermes-icon,
1574
+ hermes-icon {
1575
+ &.datagrid-detail-caret-icon {
1576
+ --color: #{tokens.$hermes-alias-object-interaction-color-disabled};
1577
+ }
1578
+ }
1579
+ }
1580
+
1581
+ &.is-open .datagrid-detail-caret-icon {
1582
+ border-radius: density.$hermes-base-border-radius-s;
1583
+ background-color: datagrid-variables.$hermes-datagrid-detail-caret-icon-open-bg-color;
1584
+ color: datagrid-variables.$hermes-datagrid-detail-caret-icon-open-icon-color;
1585
+ }
1586
+ }
1587
+
1588
+ .datagrid-detail-caret-icon {
1589
+ color: datagrid-variables.$hermes-datagrid-icon-color;
1590
+ }
1591
+
1592
+ .spinner {
1593
+ margin-top: datagrid-variables.$hermes-datagrid-expandable-row-spinner-margin;
1594
+ }
1595
+ }
1596
+
1597
+ // Small screens should only display the detail pane when opened, or optionally forced by a class
1598
+ .datagrid-detail-overlay {
1599
+ // too specific query needed to avoid issues with nested datagrids
1600
+ &.datagrid-detail-open > .datagrid-outer-wrapper > .datagrid-inner-wrapper {
1601
+ width: 0;
1602
+ min-width: unset;
1603
+ }
1604
+
1605
+ .datagrid-detail-pane {
1606
+ border-left: tokens.$hermes-alias-object-border-width-100 solid;
1607
+ border-color: datagrid-variables.$hermes-datagrid-detail-pane-border-color;
1608
+ border-radius: density.$hermes-base-border-radius-s;
1609
+ width: 100%;
1610
+ }
1611
+ }
1612
+
1613
+ @media screen and (max-width: map.get(variables.$hermes-grid-breakpoints, sm)) {
1614
+ // too specific query needed to avoid issues with nested datagrids
1615
+ .datagrid-detail-open > .datagrid-outer-wrapper > .datagrid-inner-wrapper {
1616
+ display: none;
1617
+ }
1618
+
1619
+ .datagrid-detail-pane {
1620
+ border-left: tokens.$hermes-alias-object-border-width-100 solid;
1621
+ border-color: datagrid-variables.$hermes-datagrid-detail-pane-border-color;
1622
+ border-radius: density.$hermes-base-border-radius-s;
1623
+ width: 100% !important;
1624
+ }
1625
+ }
1626
+
1627
+ /**
1628
+ * Smart popover contents
1629
+ */
1630
+ .column-switch {
1631
+ border-radius: density.$hermes-base-border-radius-s;
1632
+ background-color: datagrid-variables.$hermes-datagrid-popover-bg-color;
1633
+ border-width: tokens.$hermes-alias-object-border-width-100;
1634
+ border-style: solid;
1635
+ border-color: datagrid-variables.$hermes-datagrid-popover-border-color;
1636
+
1637
+ @include datagrid-mixins.hermes-datagrid-popover-shadows();
1638
+
1639
+ width: mixins.baselinePx(250);
1640
+ display: flex;
1641
+ flex-direction: column;
1642
+ z-index: map.get(variables.$hermes-layers, column-switch); // Keeps the popup above the datagrid header.
1643
+
1644
+ .switch-header {
1645
+ display: flex;
1646
+ justify-content: space-between;
1647
+
1648
+ @include mixins.generate-typography-token('SUBSECTION-16-EXP');
1649
+
1650
+ padding: density.$hermes-base-vertical-offset-xl density.$hermes-base-horizontal-offset-xl 0
1651
+ density.$hermes-base-horizontal-offset-xl;
1652
+
1653
+ // From accessibility perspective we let use of header tags inside the switch header,
1654
+ // but want not to be affected from the global header styles so this is a workaround.
1655
+ h1,
1656
+ h2,
1657
+ h3,
1658
+ h4,
1659
+ h5,
1660
+ h6 {
1661
+ color: variables.$hermes-p1-color;
1662
+
1663
+ @include mixins.generate-typography-token('SUBSECTION-16-EXP');
1664
+
1665
+ margin: 0;
1666
+ }
1667
+
1668
+ button {
1669
+ min-width: density.$hermes-base-icon-size-s;
1670
+ margin: 0;
1671
+ padding: 0;
1672
+
1673
+ hermes-icon,
1674
+ hermes-icon {
1675
+ color: datagrid-variables.$hermes-datagrid-column-switch-header-font-color;
1676
+
1677
+ &:hover {
1678
+ color: datagrid-variables.$hermes-datagrid-column-switch-header-font-hover-color;
1679
+ }
1680
+
1681
+ &:active {
1682
+ color: datagrid-variables.$hermes-datagrid-column-switch-header-font-active-color;
1683
+ }
1684
+ }
1685
+ }
1686
+ }
1687
+
1688
+ ul.switch-content {
1689
+ display: flex;
1690
+ flex-direction: column;
1691
+ gap: density.$hermes-base-gap-xs;
1692
+ max-height: mixins.baselinePx(300);
1693
+ overflow-y: auto;
1694
+ min-height: tables-variables.$hermes-table-row-height;
1695
+
1696
+ // Increase specificity
1697
+ &.list-unstyled {
1698
+ padding: density.$hermes-base-vertical-offset-m density.$hermes-base-horizontal-offset-xl;
1699
+ }
1700
+
1701
+ li {
1702
+ line-height: unset;
1703
+ padding-left: density.$hermes-base-horizontal-offset-xs;
1704
+ }
1705
+ }
1706
+
1707
+ .switch-footer {
1708
+ padding: 0 density.$hermes-base-horizontal-offset-xl density.$hermes-base-vertical-offset-xl
1709
+ density.$hermes-base-horizontal-offset-xl;
1710
+
1711
+ .btn {
1712
+ margin: 0;
1713
+ padding: 0;
1714
+ }
1715
+
1716
+ .action-right {
1717
+ display: flex;
1718
+ justify-content: flex-end;
1719
+ }
1720
+ }
1721
+ }
1722
+
1723
+ .datagrid-filter {
1724
+ margin-top: tokens.$hermes-global-space-3;
1725
+ background: datagrid-variables.$hermes-datagrid-popover-bg-color;
1726
+ border-width: tokens.$hermes-alias-object-border-width-100;
1727
+ border-style: solid;
1728
+ border-color: datagrid-variables.$hermes-datagrid-popover-border-color;
1729
+ padding: density.$hermes-base-vertical-offset-xl;
1730
+
1731
+ @include datagrid-mixins.hermes-datagrid-popover-shadows;
1732
+
1733
+ border-radius: density.$hermes-base-border-radius-s;
1734
+ font-weight: normal;
1735
+
1736
+ .datagrid-filter-close-wrapper {
1737
+ text-align: right;
1738
+
1739
+ .close {
1740
+ float: none;
1741
+ font-size: unset;
1742
+ }
1743
+ }
1744
+
1745
+ // FIXME: remove
1746
+ .datagrid-filter-apply {
1747
+ margin-bottom: 0;
1748
+ }
1749
+
1750
+ .datagrid-numeric-filter-form {
1751
+ display: flex;
1752
+ gap: density.$hermes-base-gap-m;
1753
+
1754
+ input.datagrid-numeric-filter-input {
1755
+ width: density.$hermes-base-layout-space-5xl;
1756
+ }
1757
+ }
1758
+
1759
+ .hermes-form-control {
1760
+ margin-top: 0;
1761
+ }
1762
+ }
1763
+
1764
+ .datagrid-action-overflow {
1765
+ @include datagrid-mixins.datagrid-action-overflow-appearance();
1766
+ }
1767
+
1768
+ .right-bottom .datagrid-action-overflow {
1769
+ &::before {
1770
+ top: auto;
1771
+ bottom: tokens.$hermes-global-space-4;
1772
+ }
1773
+
1774
+ &::after {
1775
+ top: auto;
1776
+ bottom: calc(tokens.$hermes-global-space-4 + tokens.$hermes-global-space-1);
1777
+ }
1778
+ }
1779
+
1780
+ .right-top .datagrid-action-overflow {
1781
+ &::before {
1782
+ top: tokens.$hermes-global-space-6;
1783
+ }
1784
+
1785
+ &::after {
1786
+ top: tokens.$hermes-global-space-6;
1787
+ }
1788
+ }
1789
+
1790
+ /* END Datagrid Smart Popover Content Styles
1791
+
1792
+ /**
1793
+ * These classes are used in table-renderer.ts when it puts the datagrid into in tableMode and computes column
1794
+ * widths. NOTE: they are only applied during calculation and then removed.
1795
+ */
1796
+
1797
+ /**
1798
+ * When in calculate mode
1799
+ * - Hide the display elements for datagrid
1800
+ * - Switch display mode for elements with projected content to calcualte sizes.
1801
+ */
1802
+ .datagrid-host.datagrid-calculate-mode {
1803
+ display: block;
1804
+ overflow-y: auto;
1805
+
1806
+ // Hide parts of the display table not used for calculation.
1807
+ .datagrid,
1808
+ .datagrid-footer,
1809
+ .datagrid-row-master,
1810
+ .datagrid-row-clickable {
1811
+ display: none;
1812
+ }
1813
+
1814
+ .datagrid-calculation-table {
1815
+ display: table;
1816
+ table-layout: auto;
1817
+
1818
+ .datagrid-calculation-header {
1819
+ display: table-header-group;
1820
+
1821
+ .datagrid-column {
1822
+ display: table-cell;
1823
+ min-width: tokens.$hermes-global-space-15;
1824
+ }
1825
+
1826
+ .datagrid-column {
1827
+ // This is a hack b/c styles were not applied out of the box when moving columns into the
1828
+ // calculation container element
1829
+ border-color: tables-variables.$hermes-tablerow-bordercolor;
1830
+ border-width: tables-variables.$hermes-table-borderwidth;
1831
+ border-style: solid;
1832
+ padding: tables-variables.$hermes-table-cell-padding;
1833
+ vertical-align: top;
1834
+
1835
+ @include mixins.generate-typography-token('CAPTION-LG-11-STD');
1836
+ }
1837
+ }
1838
+
1839
+ .datagrid-row {
1840
+ display: table-row;
1841
+
1842
+ .datagrid-cell {
1843
+ // This is a hack b/c styles were not applied out of the box when moving columns into the
1844
+ // calculation container element
1845
+ display: table-cell;
1846
+ min-width: tokens.$hermes-global-space-15;
1847
+
1848
+ @include mixins.generate-typography-token('BODY-14-RG-CPT');
1849
+
1850
+ padding: tables-variables.$hermes-table-cell-padding;
1851
+ vertical-align: top;
1852
+ }
1853
+ }
1854
+ }
1855
+
1856
+ // Hide other elements that come along for the ride
1857
+ .datagrid-column-separator {
1858
+ display: none;
1859
+ }
1860
+
1861
+ .datagrid-placeholder-container {
1862
+ display: none;
1863
+ }
1864
+
1865
+ .datagrid-fixed-column {
1866
+ display: none;
1867
+ }
1868
+ }
1869
+
1870
+ // END Calculation classes.
1871
+ }