@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,69 @@
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
+ :host {
9
+ display: flex;
10
+ flex-direction: column;
11
+ }
12
+
13
+ h1,
14
+ h2,
15
+ h3,
16
+ h4,
17
+ h5,
18
+ h6,
19
+ [role='heading'] {
20
+ margin-top: 0;
21
+
22
+ &.certificate-viewer-title {
23
+ color: var(--hermes-h5-color);
24
+ font-weight: var(--hermes-h5-font-weight);
25
+ font-size: var(--hermes-h5-font-size);
26
+ line-height: var(--hermes-h5-line-height);
27
+ letter-spacing: var(--hermes-h5-letter-spacing);
28
+ }
29
+
30
+ &.certificate-viewer-general-subtitle {
31
+ color: var(--hermes-h6-color);
32
+ font-weight: var(--hermes-h6-font-weight);
33
+ font-size: var(--hermes-h6-font-size);
34
+ line-height: var(--hermes-h6-line-height);
35
+ letter-spacing: var(--hermes-h6-letter-spacing);
36
+ }
37
+
38
+ &.certificate-viewer-details-subtitle {
39
+ margin-bottom: 0.5rem;
40
+ color: var(--hermes-h5-color);
41
+ font-weight: var(--hermes-h5-font-weight);
42
+ font-size: var(--hermes-h5-font-size);
43
+ line-height: var(--hermes-h5-line-height);
44
+ letter-spacing: var(--hermes-h5-letter-spacing);
45
+ }
46
+ }
47
+
48
+ hermes-tabs {
49
+ display: flex;
50
+ flex-direction: column;
51
+ flex: 1 1 auto;
52
+
53
+ // Unfortunately the hermes-tab section is not a flexible element but instead is an inline element.
54
+ // This prevents proper content filling and requires a deep override.
55
+ ::ng-deep {
56
+ section {
57
+ display: flex;
58
+ flex-direction: column;
59
+ flex: 1 1 auto;
60
+ }
61
+ }
62
+ }
63
+
64
+ appfx-certificate-viewer-general,
65
+ appfx-certificate-viewer-details {
66
+ display: flex;
67
+ flex-direction: column;
68
+ flex: 1 1 auto;
69
+ }
@@ -0,0 +1,49 @@
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
+ pre {
9
+ flex: 1 1 0;
10
+ margin: 0;
11
+ padding: 0 0.4rem;
12
+ overflow: auto;
13
+ }
14
+
15
+ hermes-tree {
16
+ flex: 1 1 0;
17
+ border-color: var(--hermes-alias-object-border-color, #ccc);
18
+ border-width: var(--hermes-alias-object-border-width, 0.05rem);
19
+ border-radius: var(--hermes-alias-object-border-radius, 0.15rem);
20
+ border-style: solid;
21
+ padding: 0 0.5rem;
22
+ overflow: auto;
23
+ }
24
+
25
+ // Increase specificity to override Clarity's `hermes-tabs section`
26
+ :host > section {
27
+ flex: 0 1 auto;
28
+ margin-top: 1.2rem;
29
+
30
+ /**
31
+ * Style the sections according to their size.
32
+ *
33
+ * $class - The section class name.
34
+ * $size - The flex-grow of the section. This represents how many "parts" the sections will take from the available space.
35
+ */
36
+ @mixin section($class, $size) {
37
+ &#{$class} {
38
+ flex: $size 1 0;
39
+
40
+ & > .content {
41
+ min-height: 3.5rem * $size;
42
+ }
43
+ }
44
+ }
45
+
46
+ @include section('.certificate-chain', 1);
47
+ @include section('.fields', 2);
48
+ @include section('.value', 1);
49
+ }
@@ -0,0 +1,38 @@
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
+ // Increase specificity to override Clarity's `hermes-tabs section`
9
+ :host > section {
10
+ flex: 0 1 auto;
11
+ margin-top: 1.2rem;
12
+
13
+ &.fingerprints {
14
+ .key-value + .key-value {
15
+ // Separate the hex values for better readability
16
+ margin-top: 0.6rem;
17
+ }
18
+ }
19
+ }
20
+
21
+ // TODO: Consider using a dedicated property viewer component instead of a table-based layout.
22
+ // The table style shrinks the text and it's semantically wrong as the key-value pairs are a list inside a section.
23
+ .key-value {
24
+ display: flex;
25
+ margin: 0;
26
+
27
+ > *:first-child {
28
+ flex: 0 0 12rem;
29
+ }
30
+
31
+ > *:last-child {
32
+ flex: 1 1 auto;
33
+ }
34
+ }
35
+
36
+ .pre-wrap {
37
+ white-space: pre-wrap;
38
+ }
@@ -0,0 +1,289 @@
1
+ ### Overview
2
+
3
+ AppFx Datagrid is a data-bound list control that displays items from an array-based source in the form of columns and rows.
4
+ The datagrid control allows users to select, sort and filter to quickly find or report on their business needs.
5
+ Dataset sizes can scale upward without impacting the UI performance.
6
+
7
+ ### AppFx Datagrid
8
+
9
+ - **Reduced Markup:** AppFx Datagrid requires less markup compared to vanilla hermes-datagrid, simplifying the development process and making the codebase cleaner.
10
+ - **Consistent UX:** It provides a common look and feel across grids, ensuring a consistent and user-friendly interface throughout your application.
11
+ - **Centralized Concerns:** Cross-cutting concerns such as filtering, column sorting, pagination, row actions, row item details, accessibility (A11y), localization (L10n), and zoom support (2x and 4x) are all handled in one place, streamlining development and ensuring uniform functionality.
12
+ - **Advanced Features:** It offers advanced features like advanced filters, export, selection persistence, and more, making it easier to implement complex datagrid functionality.
13
+ - **Easier Migration**: AppFx Datagrid simplifies the migration process for applications built on the Clarity design system, making it more straightforward to update your UI components.
14
+ - **Faster Development**: With its simplified markup and pre-built features, development becomes faster and more efficient, allowing you to deliver projects more quickly.
15
+ - **Low Maintenance Cost**: The centralized approach to handling common grid concerns reduces the maintenance overhead of your application, saving time and resources in the long run.
16
+
17
+ ### Advanced Features
18
+
19
+ The component is built on top of the hermes-datagrid component from Clarity and provides additional advanced features and customization that are very easy to enable.
20
+
21
+ #### Column reordering
22
+
23
+ The datagrid supports column reordering out of the box using the Angular CDK. This enables users to rearrange columns interactively.
24
+
25
+ ![Column reorder example](assets/appfx/datagrid/column-reorder.gif)
26
+
27
+ #### Row Drag-and-drop
28
+
29
+ Row drag-and-drop functionality can be enabled supporting multiple items
30
+
31
+ ![Drag and drop example](assets/appfx/datagrid/drag-and-drop.gif)
32
+
33
+ #### Action bar
34
+
35
+ The datagrid has a customizable responsive action bar component: `appfx-datagrid-action-bar`
36
+
37
+ ![Action bar](assets/appfx/datagrid/action-bar.png)
38
+
39
+ #### Datagrid Filters
40
+
41
+ The datagrid integrates seamlessly with Advanced Filters, enabling users to create and manage complex filtering queries.
42
+
43
+ For detailed guidance, refer to the [Advanced Filters Doc] (@hermes/angular/addons/datagrid-filters/overview)
44
+
45
+ ![Datagrid Filters example screen](assets/appfx/datagrid-advanced-filter-overview.png)
46
+
47
+ #### Datagrid settings persistence
48
+
49
+ The datagrid offers a common API `appfxDatagridPersistSettingsToken` for persisting settings such as column widths, page size, and column visibility.
50
+
51
+ #### Export
52
+
53
+ The datagrid provides export capabilities to facilitate data extraction and reporting.
54
+
55
+ #### Virtual Scrolling
56
+
57
+ The datagrid supports virtual scrolling for efficiently handling large datasets. Virtual scrolling only renders the rows that are currently visible in the viewport, significantly improving performance when working with large amounts of data.
58
+
59
+ Important limitations to consider for virtual scrolling:
60
+
61
+ - Fixed row height is required.
62
+ - Cell text is always truncated.
63
+ - Expandable rows are not supported.
64
+
65
+ ### Component API
66
+
67
+ #### appfx-datagrid
68
+
69
+ AppFx Datagrid is built on top of the `hermes-datagrid` component from Clarity and provides additional features and customization on top of the base HermesDatagrid.
70
+
71
+ Template `<T>` - The type of the data being displayed in the datagrid.
72
+ This allows the datagrid to enforce type safety for the items passed to it, ensuring
73
+ that the `gridItems` and other related inputs conform to a specific structure.
74
+
75
+ | Property | Type | Data Type | Description | Required |
76
+ | ------------------------- | ------ | ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
77
+ | `gridItems` | Input | `T[]` | The data source for the datagrid, represented as an array of objects, where each object corresponds to a row. Fields within each object map to columns as defined in each column's `field` property in the _ColumnDefinition_. | Yes |
78
+ | `columns` | Input | `ColumnDefinition<T>[]` | Array of column definitions configuring the appearance and behavior of each column in the datagrid. Each object in this array is a _ColumnDefinition_, requiring properties like `displayName` and `field`. | Yes |
79
+ | `layoutModel` | Input | `GridLayoutModel` | Provides configurable options for customizing the visual appearance and behavior of the datagrid layout. See `GridLayoutModel` interface | No |
80
+ | `footerModel` | Input | `GridFooterModel` | Provides configurable options for customizing the behavior and appearance of the datagrid footer. See `GridFooterModel` interface | No |
81
+ | `pageSize` | Input | `number` | Sets the number of items displayed per page in the datagrid. Defaults to showing all items if no page size is specified. | No |
82
+ | `pageSizeOptions` | Input | `number[]` | Defines selectable page size options available in the grid footer, allowing users to control the number of items shown per page. | No |
83
+ | `serverDrivenDatagrid` | Input | `boolean` | Enables server-driven mode for the datagrid when set to `true`, requiring external management of pagination and filtering. Defaults to `false`, with client-side data handling. | No |
84
+ | `virtualScrolling` | Input | `boolean` | Controls whether the datagrid uses virtual scrolling to render data. Note that `serverDrivenDatagrid` should also be set to enable virtual scrolling. Defaults to `false`. | No |
85
+ | `loading` | Input | `boolean` | Displays a loading indicator overlay when set to `true`, preventing user interactions while data is loading. Defaults to `false`. | No |
86
+ | `rowSelectionMode` | Input | `boolean` | Enables row selection on click when `true`. If `SelectionType` is set to `NONE`, this setting is overridden and selection is disabled. Defaults to `true`. | No |
87
+ | `disableUnsort` | Input | `boolean` | Controls whether the "unsort" step is removed from the column sort cycle for every column. When `true` (default), clicking a sorted column header toggles ascending/descending only; when `false`, it cycles ascending → descending → unsorted. Can be overridden per column via `ColumnDefinition.disableUnsort`. Defaults to `true`. | No |
88
+ | `preSelectFirstItem` | Input | `boolean` | Automatically selects the first item in the datagrid upon initialization if set to `true`. Defaults to `false`. | No |
89
+ | `filterMode` | Input | `FilterMode` | Specifies the type of global filter to enable. When filter is enabled, the component will emit the `searchTermChange` or `advancedFilterChange` event whenever the filter changes. | No |
90
+ | `singleRowActions` | Input | `ActionDefinition[]` | An array of action definitions for single row actions, allowing customized actions per row. | No |
91
+ | `actionBarActions` | Input | `ActionDefinition[]` | An array of action definitions for actions in the datagrid’s action bar. | No |
92
+ | `totalItems` | Input | `number` | Required for server-driven grids (`serverDrivenDatagrid = true`) to set the total item count. For client-driven grids, this is calculated internally and should not be set. | No |
93
+ | `selectedItems` | Input | `T[]` | An array of items to be pre-selected in the datagrid. | No |
94
+ | `selectionType` | Input | `SelectionType` | Specifies row selection behavior, accepting values from the _SelectionType_ enum. Defaults to `SelectionType.Single`. | No |
95
+ | `isRowLocked` | Input | `Function` | A function that determines if a specific row is locked (disabled). | No |
96
+ | `dragConfig` | Input | `DatagridDragConfig` | Configuration for enabling drag-and-drop functionality within the datagrid. To enable it, provide a valid configuration object implementing the `DatagridDragConfig` interface. | No |
97
+ | `rowDetailContent` | Input | `TemplateRef<unknown>` | Template for the content displayed when a row expands. Enables expandable row functionality. | No |
98
+ | `detailHeader` | Input | `TemplateRef<unknown>` | Reference to the template containing the content for the header displayed on top of the expanded row content. | No |
99
+ | `detailBody` | Input | `TemplateRef<unknown>` | Reference to the template containing the expanded row content. | No |
100
+ | `dataRange` | Input | `HermesDatagridVirtualScrollRangeInterface<T>` | Input for providing data when virtual scrolling is enabled. Should be used instead of `gridItems` when virtual scrolling is enabled. Contains total count, skip value, and data array. | No |
101
+ | `gridItemsChange` | Output | `EventEmitter<T[]>` | Emits the updated `gridItems` to the parent component when the grid data changes. | No |
102
+ | `selectedItemsChange` | Output | `EventEmitter<T[]>` | Emits the updated `selectedItems` to the parent component when the selection changes. | No |
103
+ | `columnDefsChange` | Output | `EventEmitter<T[]>` | Emits the updated `columns` to the parent component when the column definitions change. | No |
104
+ | `pageSizeChange` | Output | `EventEmitter<number>` | Emits the updated `pageSize` to the parent component when the page size changes. | No |
105
+ | `actionClick` | Output | `EventEmitter<ActionClickEvent>` | Event emitter triggered when a single-row action or actionbar action is clicked. The emitted event contains information about the action that was clicked. See `ActionClickEvent` interface. | No |
106
+ | `rowActionMenuOpenChange` | Output | `EventEmitter<SingleRowActionOpen>` | Event emitter triggered when the single-row action menu open state is change. The emitted event contains information about the action that was clicked. See `SingleRowActionOpen` interface. | No |
107
+ | `openContextMenu` | Output | `EventEmitter<ContextMenuEvent>` | Event emitter triggered when a right-click event is performed on a grid row. | No |
108
+ | `searchTermChange` | Output | `EventEmitter<string>` | Emits when quick filter criteria change. | No |
109
+ | `advancedFilterChange` | Output | `EventEmitter<PropertyFilter[]>` | Emits when advanced filter criteria change. | No |
110
+
111
+ #### `ColumnDefinition` interface
112
+
113
+ Defines a column in the Datagrid.
114
+
115
+ | Syntax | Type | Description | Required |
116
+ | ---------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------- |
117
+ | `uid` | `string` | Unique identifier for the column, used for persistence. | No |
118
+ | `displayName` | `string` | Text displayed as the column header. | Yes |
119
+ | `field` | `string` | The name of the property in the Datagrid data that this column represents. | Yes |
120
+ | `hideable` | `boolean` | Determines whether the column can be hidden using the column toggle. Defaults to `true`. | No |
121
+ | `hidden` | `boolean` | Specifies whether the column is hidden when the Datagrid is rendered. Defaults to `false`. | No |
122
+ | `stringFilter` | `HermesDatagridStringFilterInterface<T>` | Defines string filter for data in this column. | No |
123
+ | `filter` | `Type<ColumnFilter<T>>` | A custom filter component for filtering data in this column. | No |
124
+ | `defaultFilterValue` | `any` | Default filter value for the column's filter. | No |
125
+ | `columnRenderer` | `Type<ColumnRenderer<T>>` | A custom component to render/display data in this column. | No |
126
+ | `columnRendererConfig` | `any` | Additional key/value pair configuration options for the `columnRenderer`. | No |
127
+ | `sortComparator` | `HermesDatagridComparatorInterface<T>` \| `string` | Comparator that to be used when sorting data in this column. | No |
128
+ | `defaultSortOrder` | `HermesDatagridSortOrder` | Specifies the default sort order for the column. | No |
129
+ | `width` | `string` | Column width in pixels (e.g., '100px'). Auto-calculated if not set. | No |
130
+ | `sortAndFilterByField` | `string` | The field by which the column will be filtered and sorted. | No |
131
+ | `disableUnsort` | `boolean` | Overrides the grid-level `disableUnsort` for this column. When `true`, sorting toggles ascending/descending only; when `false`, it cycles ascending → descending → unsorted. When omitted, the grid-level value is used. | No |
132
+
133
+ #### `GridLayoutModel` interface
134
+
135
+ | Syntax | Type | Description | Required |
136
+ | ----------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------- | -------- |
137
+ | `compact` | `boolean` | Enables compact mode for the datagrid, reducing row height to create a denser layout. Defaults to `true` if not specified. | No |
138
+ | `disabled` | `boolean` | Disables the datagrid, preventing all user interactions when set to `true`. Defaults to `false`, allowing full interaction. | No |
139
+ | `stretchToParentHeight` | `boolean` | Adjusts the datagrid layout to stretch and fill 100% of the height of the parent container. | No |
140
+
141
+ #### `GridFooterModel` interface
142
+
143
+ | Syntax | Type | Description | Required |
144
+ | ------------------------ | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------- |
145
+ | `showFooter` | `boolean` | Controls the visibility of the datagrid footer. Defaults to `true` if not specified. | No |
146
+ | `hideColumnToggle` | `boolean` | Controls the visibility of the column toggle in the footer. Defaults to `false` visible column toggle. | No |
147
+ | `enableCustomExport` | `boolean` | Specifies whether the export button should be displayed in the datagrid. Enabling this option causes the component to emit the `onExportData` event, which can be used for implementing custom export logic. | No |
148
+ | `clientSideExportConfig` | `ClientSideExportConfig` | Configuration for client-side data export behavior. This option allows to define settings such as the file name and export columns. | No |
149
+
150
+ #### `ClientSideExportConfig` interface
151
+
152
+ | Syntax | Type | Description | Required |
153
+ | ------------------- | ------------------------ | -------------------------------------------------------------------------- | -------- |
154
+ | `exportedFileName` | `string` | The file name where the content of datagrid will be exported in csv format | Yes |
155
+ | `columnDefinitions` | `ExportColumnDefinition` | Defines a column structure for Export that will be used for data export. | Yes |
156
+
157
+ #### `DatagridDragConfig` interface
158
+
159
+ | Syntax | Type | Description | Required |
160
+ | ----------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
161
+ | `fieldName` | `string` | The name of the field whose value will be displayed as a ghost element while dragging. The ghost element is the visual representation of the dragged item that follows the cursor during a drag-and-drop operation. | Yes |
162
+ | `dragGroup` | `ColumnDefinition<T>` | An optional identifier for grouping draggable elements. | No |
163
+
164
+ #### `ColumnRenderer` interface
165
+
166
+ A `ColumnRenderer` is a custom component responsible for rendering data within a specific column of a Datagrid.
167
+
168
+ | Syntax | Type | Description | Required |
169
+ | ---------- | ------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -------- |
170
+ | `item` | `T` | The data item representing a row in the Datagrid. | Yes |
171
+ | `column` | `ColumnDefinition<T>` | The definition of the column being rendered, including metadata and configuration. | No |
172
+ | `onChange` | `(item: T, column?: ColumnDefinition<T>) => void` | Lifecycle method called when the `item` or `column` properties change. Typically used to handle dynamic updates. | No |
173
+
174
+ Example of custom column renderer
175
+
176
+ ```typescript
177
+ @Component({
178
+ selector: 'demo-text-renderer',
179
+ template: `
180
+ <hermes-icon shape="exclamation-circle" class="is-error" size="24"></hermes-icon>
181
+ <span>{{ displayText }} cell custom HTML</span>
182
+ `,
183
+ })
184
+ class DemoTextRendererComponent implements ColumnRenderer<unknown>, OnInit {
185
+ protected displayText: string;
186
+ public item: unknown;
187
+ public column: ColumnDefinition<unknown>;
188
+
189
+ public ngOnInit(): void {
190
+ this.updateData();
191
+ }
192
+
193
+ public onChange(item: unknown, column: ColumnDefinition<unknown>): void {
194
+ this.item = item;
195
+ this.column = column;
196
+ this.updateData();
197
+ }
198
+
199
+ private updateData(): void {
200
+ this.displayText = this.item[this.column.field];
201
+ }
202
+ }
203
+ ```
204
+
205
+ #### `ActionDefinition` interface
206
+
207
+ | Syntax | Type | Description | Required |
208
+ | ----------- | -------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------- |
209
+ | `id` | `string` | Unique identifier for the action. | Yes |
210
+ | `label` | `T` | The label displayed for the action. | Yes |
211
+ | `ariaLabel` | `string` | Optional ARIA label for accessibility. | No |
212
+ | `enabled` | `boolean` | Determines whether the action is enabled or not. | Yes |
213
+ | `tooltip` | `T` | Optional tooltip text displayed when hovering over the action. | No |
214
+ | `class` | `string` | Style class to be applied. Default style is `flatCompact` (`btn btn-sm btn-link`). Refer to `ActionBarLayout` for details. | No |
215
+ | `isVisible` | `boolean` | Indicates if the action button is visible above the grid. Otherwise, it will be placed within a dropdown. | No |
216
+ | `children` | `ActionDefinition[]` | Child actions to be displayed as dropdown items if the action is configured as a dropdown. | No |
217
+
218
+ #### `ActionClickEvent` interface
219
+
220
+ | Syntax | Type | Description | Required |
221
+ | --------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
222
+ | `action` | `ActionDefinition` | The action that was clicked. | Yes |
223
+ | `context` | `T` | Represents the action context. This can be an array of selected data grid items for action bar actions or the data grid item associated with the row for single row actions. | Yes |
224
+
225
+ #### `SingleRowActionOpen` interface
226
+
227
+ | Syntax | Type | Description | Required |
228
+ | --------- | ------------------ | -------------------------------------------------------------------------------------------------- | -------- |
229
+ | `open` | `boolean` | Indicates whether the single row action menu is open or closed. | Yes |
230
+ | `actions` | `ActionDefinition` | The actions available in the single row action menu. | Yes |
231
+ | `context` | `T` | The data grid item associated with the datagrid row where the single row menu is opened or closed. | Yes |
232
+
233
+ ### Example Code
234
+
235
+ ```html
236
+ <appfx-datagrid [columns]="columns" [gridItems]="items"></appfx-datagrid>
237
+ ```
238
+
239
+ ```typescript
240
+
241
+ public gridItems: MyInterface[] = {
242
+ { name: "Peter", color: "green" },
243
+ { name: "Peter", color: "green" },
244
+ { name: "Maria", color: "red" },
245
+ }
246
+
247
+ public columns: ColumnDefinition<MyInterface>[] = [
248
+ {
249
+ displayName: "Person name",
250
+ field: "name"
251
+ },
252
+ {
253
+ displayName: "Eye color",
254
+ field: "color"
255
+ },
256
+ ]
257
+ ```
258
+
259
+ #### Enable settings persistence feature
260
+
261
+ To enable the persistence of a datagrid state (including column order, column width, page size, and column visibility), the `appfxDatagridPersistSettingsToken` must be provided.
262
+
263
+ This requires a service implementing the `PersistDatagridSettingsService` interface, which defines the following methods:
264
+
265
+ ```typescript
266
+ interface PersistDatagridSettingsService {
267
+ getUserDataSync(key: string): any;
268
+ setUserData(key: string, data: any): void;
269
+ }
270
+ ```
271
+
272
+ You can register the persistence service with the following configuration:
273
+
274
+ ```typescript
275
+ {
276
+ provide: appfxDatagridPersistSettingsToken,
277
+ useFactory: (service: PersistDatagridSettingsService) => service,
278
+ deps: [PersistDatagridSettingsService],
279
+ }
280
+ ```
281
+
282
+ Additionally, a unique identifier must be provided using the `appfxPersistDatagridSettings` directive.
283
+ This id distinguishes settings for different grids.
284
+
285
+ Here’s an example of its usage:
286
+
287
+ ```html
288
+ <appfx-datagrid ... [appfxPersistDatagridSettings]="'datagrid-id"> </appfx-datagrid>
289
+ ```
@@ -0,0 +1,81 @@
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
+ :host {
9
+ .dropdown-container {
10
+ margin-left: auto;
11
+ }
12
+
13
+ div.btn-group {
14
+ width: 100%;
15
+ margin-right: 0;
16
+ }
17
+
18
+ div.btn-group.btn-inline {
19
+ display: inline-block;
20
+ }
21
+
22
+ button {
23
+ flex: 0 0 auto; // need to override to avoid the label cut effect - 'button lab...'
24
+
25
+ /*
26
+ as of Clarity 5 buttons have max-width: 18 rem
27
+ this causes long text truncation
28
+ Bugzilla: 2889705
29
+ */
30
+ max-width: unset;
31
+ }
32
+
33
+ hermes-dropdown {
34
+ button.dropdown-toggle {
35
+ color: var(--hermes-btn-default-color);
36
+ }
37
+ }
38
+
39
+ hermes-dropdown.has-border-left {
40
+ button.dropdown-toggle {
41
+ border-left-style: solid !important;
42
+ border-left-width: 1px !important;
43
+ }
44
+ }
45
+
46
+ hermes-dropdown-menu {
47
+ max-width: 18rem;
48
+
49
+ button {
50
+ overflow-wrap: break-word;
51
+ word-break: normal;
52
+ white-space: normal;
53
+ }
54
+ }
55
+ }
56
+
57
+ :host-context(.zoom4x) {
58
+ hermes-dropdown-menu {
59
+ margin-right: 0.8rem;
60
+ }
61
+
62
+ .dropdown-container {
63
+ margin-left: 0;
64
+ }
65
+
66
+ div.btn-group {
67
+ .btn-flex {
68
+ display: flex;
69
+ flex-direction: row;
70
+ justify-content: flex-start;
71
+ }
72
+
73
+ .btn-inline {
74
+ display: inline-block;
75
+ }
76
+
77
+ button {
78
+ padding-left: 10px;
79
+ }
80
+ }
81
+ }
@@ -0,0 +1,99 @@
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
+ ::ng-deep {
9
+ // NOTE: These global styles are copied from `@angular/cdk/overlay-prebuilt.css`.
10
+ // They are required for the custom Datagrid Column toggle functionality to work correctly.
11
+
12
+ .cdk-overlay-container,
13
+ .cdk-global-overlay-wrapper {
14
+ pointer-events: none;
15
+ top: 0;
16
+ left: 0;
17
+ height: 100%;
18
+ width: 100%;
19
+ }
20
+
21
+ .cdk-overlay-container {
22
+ position: fixed;
23
+ z-index: 1000;
24
+ }
25
+
26
+ .cdk-overlay-container:empty {
27
+ display: none;
28
+ }
29
+
30
+ .cdk-global-overlay-wrapper {
31
+ display: flex;
32
+ position: absolute;
33
+ z-index: 1000;
34
+ }
35
+
36
+ .cdk-overlay-pane {
37
+ position: absolute;
38
+ pointer-events: auto;
39
+ box-sizing: border-box;
40
+ z-index: 1000;
41
+ display: flex;
42
+ max-width: 100%;
43
+ max-height: 100%;
44
+ }
45
+
46
+ .cdk-overlay-backdrop {
47
+ position: absolute;
48
+ inset: 0;
49
+ z-index: 1000;
50
+ pointer-events: auto;
51
+ -webkit-tap-highlight-color: rgb(0 0 0 / 0%);
52
+ transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);
53
+ opacity: 0;
54
+ }
55
+
56
+ .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {
57
+ opacity: 1;
58
+ }
59
+
60
+ .cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {
61
+ opacity: 0.6;
62
+ }
63
+
64
+ .cdk-overlay-dark-backdrop {
65
+ background: rgb(0 0 0 / 32%);
66
+ }
67
+
68
+ .cdk-overlay-transparent-backdrop {
69
+ transition:
70
+ visibility 1ms linear,
71
+ opacity 1ms linear;
72
+ visibility: hidden;
73
+ opacity: 1;
74
+ }
75
+
76
+ .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {
77
+ opacity: 0;
78
+ visibility: visible;
79
+ }
80
+
81
+ .cdk-overlay-backdrop-noop-animation {
82
+ transition: none;
83
+ }
84
+
85
+ .cdk-overlay-connected-position-bounding-box {
86
+ position: absolute;
87
+ z-index: 1000;
88
+ display: flex;
89
+ flex-direction: column;
90
+ min-width: 1px;
91
+ min-height: 1px;
92
+ }
93
+
94
+ .cdk-global-scrollblock {
95
+ position: fixed;
96
+ width: 100%;
97
+ overflow-y: scroll;
98
+ }
99
+ }
@@ -0,0 +1,9 @@
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
+ .export-dropdown {
8
+ max-width: 12rem;
9
+ }