@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,719 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, EventEmitter, Input, ViewChild, Output, Optional, SkipSelf, Component, ContentChildren, NgModule } from '@angular/core';
3
+ import * as i6 from '@hermes-ui/angular/icon';
4
+ import { HermesIcon, ClarityIcons, ellipsisHorizontalIcon } from '@hermes-ui/angular/icon';
5
+ import * as i5 from '@angular/common';
6
+ import { CommonModule } from '@angular/common';
7
+ import * as i2 from '@hermes-ui/angular/popover/common';
8
+ import { HermesPopoverType, HermesPopoverPosition, DROPDOWN_POSITIONS, HermesPopoverHostDirective, HermesPopoverModuleNext } from '@hermes-ui/angular/popover/common';
9
+ import * as i3 from '@hermes-ui/angular/utils';
10
+ import { uniqueIdFactory, HermesLoadingState, LoadingListener, Linkers, HermesDestroyService, FOCUS_SERVICE_PROVIDER } from '@hermes-ui/angular/utils';
11
+ import * as i1 from '@angular/router';
12
+ import { Subject } from 'rxjs';
13
+ import { takeUntil } from 'rxjs/operators';
14
+ import { trigger, transition, style, animate, keyframes } from '@angular/animations';
15
+
16
+ /*
17
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
18
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
19
+ * This software is released under MIT license.
20
+ * The full license information can be found in LICENSE in the root directory of this project.
21
+ */
22
+ class ButtonInGroupService {
23
+ constructor() {
24
+ this._changes = new Subject();
25
+ }
26
+ get changes() {
27
+ return this._changes.asObservable();
28
+ }
29
+ updateButtonGroup(button) {
30
+ this._changes.next(button);
31
+ }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ButtonInGroupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
33
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ButtonInGroupService }); }
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ButtonInGroupService, decorators: [{
36
+ type: Injectable
37
+ }] });
38
+
39
+ /*
40
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
41
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
42
+ * This software is released under MIT license.
43
+ * The full license information can be found in LICENSE in the root directory of this project.
44
+ */
45
+ class HermesButton {
46
+ constructor(routerLinkActive, buttonInGroupService) {
47
+ this.routerLinkActive = routerLinkActive;
48
+ this.buttonInGroupService = buttonInGroupService;
49
+ this._click = new EventEmitter(false);
50
+ this._inMenu = false;
51
+ this._enableService = false;
52
+ this._classNames = 'btn';
53
+ this._name = null;
54
+ this._type = null;
55
+ this._disabled = null;
56
+ this._id = uniqueIdFactory();
57
+ }
58
+ get inMenu() {
59
+ return this._inMenu;
60
+ }
61
+ set inMenu(value) {
62
+ value = !!value;
63
+ if (this._inMenu !== value) {
64
+ this._inMenu = value;
65
+ // We check if the service flag is enabled
66
+ // and if the service exists because the service is optional
67
+ if (this._enableService && this.buttonInGroupService) {
68
+ this.buttonInGroupService.updateButtonGroup(this);
69
+ }
70
+ }
71
+ }
72
+ get classNames() {
73
+ return this.routerLinkActive?.isActive ? `${this._classNames} ${this.routerLinkActiveClasses}` : this._classNames;
74
+ }
75
+ set classNames(value) {
76
+ if (typeof value === 'string') {
77
+ const classNames = value.split(' ');
78
+ if (classNames.indexOf('btn') === -1) {
79
+ classNames.push('btn');
80
+ }
81
+ this._classNames = classNames.join(' ');
82
+ }
83
+ }
84
+ get name() {
85
+ return this._name;
86
+ }
87
+ set name(value) {
88
+ if (typeof value === 'string') {
89
+ this._name = value;
90
+ }
91
+ }
92
+ get type() {
93
+ return this._type;
94
+ }
95
+ set type(value) {
96
+ if (typeof value === 'string') {
97
+ this._type = value;
98
+ }
99
+ }
100
+ get id() {
101
+ return this._id;
102
+ }
103
+ set id(value) {
104
+ if (typeof value === 'string') {
105
+ this._id = value;
106
+ }
107
+ }
108
+ get disabled() {
109
+ return this._disabled;
110
+ }
111
+ set disabled(value) {
112
+ if (value !== null && value !== false) {
113
+ this._disabled = '';
114
+ }
115
+ else {
116
+ this._disabled = null;
117
+ }
118
+ }
119
+ get role() {
120
+ return this.inMenu ? 'menuitem' : null;
121
+ }
122
+ ngAfterViewInit() {
123
+ this._enableService = true;
124
+ }
125
+ loadingStateChange(state) {
126
+ this.loading = state === HermesLoadingState.LOADING;
127
+ }
128
+ emitClick() {
129
+ this._click.emit(true);
130
+ }
131
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesButton, deps: [{ token: i1.RouterLinkActive, optional: true }, { token: ButtonInGroupService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
132
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: HermesButton, isStandalone: false, selector: "hermes-button", inputs: { routerLinkActiveClasses: ["routerLinkActive", "routerLinkActiveClasses"], inMenu: ["hermesInMenu", "inMenu"], classNames: ["class", "classNames"], name: "name", type: "type", id: "id", disabled: "disabled" }, outputs: { _click: "click" }, providers: [{ provide: LoadingListener, useExisting: HermesButton }], viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["buttonProjectedRef"], descendants: true, static: true }], ngImport: i0, template: `
133
+ <ng-template #buttonProjectedRef>
134
+ <button
135
+ [class]="classNames"
136
+ (click)="emitClick()"
137
+ [attr.type]="type"
138
+ [attr.name]="name"
139
+ [attr.disabled]="disabled"
140
+ [attr.role]="role"
141
+ [attr.id]="id"
142
+ >
143
+ @if (loading) {
144
+ <span class="spinner spinner-inline"></span>
145
+ }
146
+ <ng-content></ng-content>
147
+ </button>
148
+ </ng-template>
149
+ `, isInline: true }); }
150
+ }
151
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesButton, decorators: [{
152
+ type: Component,
153
+ args: [{
154
+ selector: 'hermes-button',
155
+ template: `
156
+ <ng-template #buttonProjectedRef>
157
+ <button
158
+ [class]="classNames"
159
+ (click)="emitClick()"
160
+ [attr.type]="type"
161
+ [attr.name]="name"
162
+ [attr.disabled]="disabled"
163
+ [attr.role]="role"
164
+ [attr.id]="id"
165
+ >
166
+ @if (loading) {
167
+ <span class="spinner spinner-inline"></span>
168
+ }
169
+ <ng-content></ng-content>
170
+ </button>
171
+ </ng-template>
172
+ `,
173
+ providers: [{ provide: LoadingListener, useExisting: HermesButton }],
174
+ standalone: false,
175
+ }]
176
+ }], ctorParameters: () => [{ type: i1.RouterLinkActive, decorators: [{
177
+ type: Optional
178
+ }] }, { type: ButtonInGroupService, decorators: [{
179
+ type: SkipSelf
180
+ }, {
181
+ type: Optional
182
+ }] }], propDecorators: { _click: [{
183
+ type: Output,
184
+ args: ['click']
185
+ }], routerLinkActiveClasses: [{
186
+ type: Input,
187
+ args: ['routerLinkActive']
188
+ }], templateRef: [{
189
+ type: ViewChild,
190
+ args: ['buttonProjectedRef', { static: true }]
191
+ }], inMenu: [{
192
+ type: Input,
193
+ args: ['hermesInMenu']
194
+ }], classNames: [{
195
+ type: Input,
196
+ args: ['class']
197
+ }], name: [{
198
+ type: Input,
199
+ args: ['name']
200
+ }], type: [{
201
+ type: Input,
202
+ args: ['type']
203
+ }], id: [{
204
+ type: Input,
205
+ args: ['id']
206
+ }], disabled: [{
207
+ type: Input,
208
+ args: ['disabled']
209
+ }] } });
210
+
211
+ /*
212
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
213
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
214
+ * This software is released under MIT license.
215
+ * The full license information can be found in LICENSE in the root directory of this project.
216
+ */
217
+ var InitialFocus;
218
+ (function (InitialFocus) {
219
+ InitialFocus["FIRST_ITEM"] = "first";
220
+ InitialFocus["LAST_ITEM"] = "last";
221
+ })(InitialFocus || (InitialFocus = {}));
222
+
223
+ /*
224
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
225
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
226
+ * This software is released under MIT license.
227
+ * The full license information can be found in LICENSE in the root directory of this project.
228
+ */
229
+ class ButtonGroupFocusHandler {
230
+ constructor(focusService, popoverService, renderer) {
231
+ this.focusService = focusService;
232
+ this.popoverService = popoverService;
233
+ this.renderer = renderer;
234
+ this.initialFocus = InitialFocus.FIRST_ITEM;
235
+ this._unlistenFuncs = [];
236
+ }
237
+ ngOnDestroy() {
238
+ this._unlistenFuncs.forEach((unlisten) => unlisten());
239
+ this.focusService.detachListeners(this.menu);
240
+ }
241
+ initialize({ menu, menuToggle }) {
242
+ this.menu = menu;
243
+ this.menuToggle = menuToggle;
244
+ this.focusService.registerContainer(this.menu);
245
+ this.listenToKeys();
246
+ this.linkButtons();
247
+ switch (this.initialFocus) {
248
+ case InitialFocus.LAST_ITEM:
249
+ this.focusLastItem();
250
+ break;
251
+ default:
252
+ this.focusFirstItem();
253
+ break;
254
+ }
255
+ }
256
+ resetButtonsFocus() {
257
+ this.buttons.forEach(button => {
258
+ button.blur();
259
+ });
260
+ }
261
+ listenToKeys() {
262
+ this._unlistenFuncs.push(this.renderer.listen(this.menu, 'keydown.shift.tab', event => this.closeMenu(event, false)));
263
+ this._unlistenFuncs.push(this.renderer.listen(this.menu, 'keydown.tab', event => this.closeMenu(event, true)));
264
+ }
265
+ closeMenu(event, focusBackOnToggle) {
266
+ this.popoverService.toggleWithEvent(event);
267
+ if (focusBackOnToggle) {
268
+ this.menuToggle.focus();
269
+ }
270
+ this.resetButtonsFocus();
271
+ }
272
+ linkButtons() {
273
+ const buttonElements = Array.from(this.menu.children);
274
+ this.buttons = buttonElements.map(buttonElement => {
275
+ this._unlistenFuncs.push(this.renderer.listen(buttonElement, 'click', event => this.closeMenu(event, true)));
276
+ return {
277
+ id: buttonElement.id,
278
+ value: buttonElement,
279
+ focus: () => {
280
+ buttonElement.setAttribute('tabindex', '0');
281
+ buttonElement.focus();
282
+ },
283
+ blur: () => {
284
+ buttonElement.setAttribute('tabindex', '-1');
285
+ buttonElement.blur();
286
+ },
287
+ };
288
+ });
289
+ this.resetButtonsFocus();
290
+ Linkers.linkVertical(this.buttons);
291
+ }
292
+ focusFirstItem() {
293
+ if (this.buttons.length) {
294
+ this.focusService.moveTo(this.buttons[0]);
295
+ }
296
+ this.initialFocus = InitialFocus.FIRST_ITEM;
297
+ }
298
+ focusLastItem() {
299
+ if (this.buttons.length) {
300
+ this.focusService.moveTo(this.buttons[this.buttons.length - 1]);
301
+ }
302
+ this.initialFocus = InitialFocus.FIRST_ITEM;
303
+ }
304
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ButtonGroupFocusHandler, deps: [{ token: i3.FocusService }, { token: i2.HermesPopoverService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
305
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ButtonGroupFocusHandler }); }
306
+ }
307
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ButtonGroupFocusHandler, decorators: [{
308
+ type: Injectable
309
+ }], ctorParameters: () => [{ type: i3.FocusService }, { type: i2.HermesPopoverService }, { type: i0.Renderer2 }] });
310
+ const BUTTON_GROUP_FOCUS_HANDLER_PROVIDER = {
311
+ provide: ButtonGroupFocusHandler,
312
+ };
313
+
314
+ /*
315
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
316
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
317
+ * This software is released under MIT license.
318
+ * The full license information can be found in LICENSE in the root directory of this project.
319
+ */
320
+ class HermesButtonGroup {
321
+ constructor(buttonGroupNewService, popoverService, commonStrings, destroy$, focusHandler) {
322
+ this.buttonGroupNewService = buttonGroupNewService;
323
+ this.popoverService = popoverService;
324
+ this.commonStrings = commonStrings;
325
+ this.destroy$ = destroy$;
326
+ this.focusHandler = focusHandler;
327
+ this.hermesToggleButtonAriaLabel = this.commonStrings.keys.rowActions;
328
+ this.popoverId = uniqueIdFactory();
329
+ this.InitialFocus = InitialFocus;
330
+ this.inlineButtons = [];
331
+ this.menuButtons = [];
332
+ this.popoverType = HermesPopoverType.DROPDOWN;
333
+ this._menuPosition = HermesPopoverPosition.BOTTOM_LEFT;
334
+ }
335
+ get menuPosition() {
336
+ return this._menuPosition;
337
+ }
338
+ set menuPosition(pos) {
339
+ if (!pos) {
340
+ return;
341
+ }
342
+ const posIndex = DROPDOWN_POSITIONS.indexOf(pos);
343
+ if (posIndex === -1) {
344
+ return;
345
+ }
346
+ this._menuPosition = DROPDOWN_POSITIONS[posIndex];
347
+ }
348
+ get open() {
349
+ return this.popoverService.open;
350
+ }
351
+ /**
352
+ * 1. Initializes the initial Button Group View
353
+ * 2. Subscribes to changes on the ContentChildren
354
+ * in case the user content projection changes
355
+ */
356
+ ngAfterContentInit() {
357
+ this.initializeButtons();
358
+ this.buttonGroupNewService.changes.pipe(takeUntil(this.destroy$)).subscribe(button => this.rearrangeButton(button));
359
+ this.buttons.changes.subscribe(() => {
360
+ this.initializeButtons();
361
+ });
362
+ }
363
+ ngAfterViewInit() {
364
+ this.handleFocusOnMenuOpen();
365
+ }
366
+ /**
367
+ * Moves the button into the other ViewContainer
368
+ * when an update is received.
369
+ *
370
+ * @param button
371
+ */
372
+ rearrangeButton(button) {
373
+ let fromView;
374
+ let toView;
375
+ if (button.inMenu) {
376
+ fromView = this.inlineButtons;
377
+ toView = this.menuButtons;
378
+ }
379
+ else {
380
+ fromView = this.menuButtons;
381
+ toView = this.inlineButtons;
382
+ }
383
+ const index = fromView.indexOf(button);
384
+ if (index > -1) {
385
+ fromView.splice(index, 1);
386
+ const moveIndex = this.getMoveIndex(button);
387
+ if (moveIndex <= toView.length) {
388
+ toView.splice(moveIndex, 0, button);
389
+ }
390
+ }
391
+ }
392
+ openMenu(event, initialFocus) {
393
+ this.focusHandler.initialFocus = initialFocus;
394
+ if (!this.popoverService.open) {
395
+ this.popoverService.toggleWithEvent(event);
396
+ }
397
+ }
398
+ /**
399
+ * Author: Eudes
400
+ *
401
+ * Finds the order of a button w.r.t other buttons
402
+ *
403
+ * @param buttonToMove
404
+ * @returns
405
+ */
406
+ getMoveIndex(buttonToMove) {
407
+ const tempArr = this.buttons.filter(button => button.inMenu === buttonToMove.inMenu);
408
+ return tempArr.indexOf(buttonToMove);
409
+ }
410
+ initializeButtons() {
411
+ const tempInlineButtons = [];
412
+ const tempInMenuButtons = [];
413
+ this.buttons.forEach(button => {
414
+ if (button.inMenu) {
415
+ tempInMenuButtons.push(button);
416
+ }
417
+ else {
418
+ tempInlineButtons.push(button);
419
+ }
420
+ });
421
+ this.inlineButtons = tempInlineButtons;
422
+ this.menuButtons = tempInMenuButtons;
423
+ }
424
+ handleFocusOnMenuOpen() {
425
+ this.popoverService.popoverVisible.pipe(takeUntil(this.destroy$)).subscribe(visible => {
426
+ // `menu` sits on the element carrying *hermesPopoverContent, so the query only
427
+ // resolves once that embedded view has been created and change detection has
428
+ // refreshed it. popoverVisible fires from a setTimeout inside showOverlay(), which
429
+ // is normally late enough - but not guaranteed to be, so dereferencing either
430
+ // ElementRef unguarded can throw and abort this handler.
431
+ if (!visible || !this.menu || !this.menuToggle) {
432
+ return;
433
+ }
434
+ this.focusHandler.initialize({
435
+ menu: this.menu.nativeElement,
436
+ menuToggle: this.menuToggle.nativeElement,
437
+ });
438
+ });
439
+ }
440
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesButtonGroup, deps: [{ token: ButtonInGroupService }, { token: i2.HermesPopoverService }, { token: i3.HermesCommonStringsService }, { token: i3.HermesDestroyService }, { token: ButtonGroupFocusHandler }], target: i0.ɵɵFactoryTarget.Component }); }
441
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: HermesButtonGroup, isStandalone: false, selector: "hermes-button-group", inputs: { hermesToggleButtonAriaLabel: "hermesToggleButtonAriaLabel", menuPosition: ["hermesMenuPosition", "menuPosition"] }, host: { properties: { "class.btn-group": "true" } }, providers: [ButtonInGroupService, HermesDestroyService, BUTTON_GROUP_FOCUS_HANDLER_PROVIDER, FOCUS_SERVICE_PROVIDER], queries: [{ propertyName: "buttons", predicate: HermesButton }], viewQueries: [{ propertyName: "menuToggle", first: true, predicate: ["menuToggle"], descendants: true }, { propertyName: "menu", first: true, predicate: ["menu"], descendants: true }], hostDirectives: [{ directive: i2.HermesPopoverHostDirective }], ngImport: i0, template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n\r\n@for (inlineButton of inlineButtons; track inlineButton) {\r\n<ng-template [ngTemplateOutlet]=\"inlineButton.templateRef\"></ng-template>\r\n} @if (menuButtons.length > 0) {\r\n<div class=\"btn-group-overflow open\" [ngClass]=\"menuPosition\">\r\n <button\r\n #menuToggle\r\n class=\"btn dropdown-toggle\"\r\n hermesPopoverOrigin\r\n hermesPopoverOpenCloseButton\r\n (keydown.arrowup)=\"openMenu($event, InitialFocus.LAST_ITEM)\"\r\n (keydown.arrowdown)=\"openMenu($event, InitialFocus.FIRST_ITEM)\"\r\n [attr.aria-controls]=\"popoverId\"\r\n [attr.aria-expanded]=\"open\"\r\n [attr.aria-label]=\"hermesToggleButtonAriaLabel\"\r\n >\r\n <hermes-icon shape=\"ellipsis-horizontal\" [attr.title]=\"commonStrings.keys.more\"></hermes-icon>\r\n </button>\r\n <div\r\n #menu\r\n role=\"menu\"\r\n class=\"dropdown-menu hermes-button-group-menu\"\r\n [id]=\"popoverId\"\r\n [attr.id]=\"popoverId\"\r\n [attr.aria-hidden]=\"!open\"\r\n *hermesPopoverContent=\"open; at menuPosition; type: popoverType; outsideClickToClose: true; scrollToClose: true\"\r\n >\r\n @for (menuButton of menuButtons; track menuButton) {\r\n <ng-template [ngTemplateOutlet]=\"menuButton.templateRef\"></ng-template>\r\n }\r\n </div>\r\n</div>\r\n}\r\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.HermesIcon, selector: "hermes-icon, hermes-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.HermesPopoverOrigin, selector: "[hermesPopoverOrigin]" }, { kind: "directive", type: i2.HermesPopoverOpenCloseButton, selector: "[hermesPopoverOpenCloseButton]", outputs: ["hermesPopoverOpenCloseChange"] }, { kind: "directive", type: i2.HermesPopoverContent, selector: "[hermesPopoverContent]", inputs: ["hermesPopoverContent", "hermesPopoverContentAt", "hermesPopoverContentAvailablePositions", "hermesPopoverContentType", "hermesPopoverContentOutsideClickToClose", "hermesPopoverContentScrollToClose", "hermesPopoverContentOrigin"] }] }); }
442
+ }
443
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesButtonGroup, decorators: [{
444
+ type: Component,
445
+ args: [{ selector: 'hermes-button-group', providers: [ButtonInGroupService, HermesDestroyService, BUTTON_GROUP_FOCUS_HANDLER_PROVIDER, FOCUS_SERVICE_PROVIDER], hostDirectives: [HermesPopoverHostDirective], host: { '[class.btn-group]': 'true' }, standalone: false, template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n\r\n@for (inlineButton of inlineButtons; track inlineButton) {\r\n<ng-template [ngTemplateOutlet]=\"inlineButton.templateRef\"></ng-template>\r\n} @if (menuButtons.length > 0) {\r\n<div class=\"btn-group-overflow open\" [ngClass]=\"menuPosition\">\r\n <button\r\n #menuToggle\r\n class=\"btn dropdown-toggle\"\r\n hermesPopoverOrigin\r\n hermesPopoverOpenCloseButton\r\n (keydown.arrowup)=\"openMenu($event, InitialFocus.LAST_ITEM)\"\r\n (keydown.arrowdown)=\"openMenu($event, InitialFocus.FIRST_ITEM)\"\r\n [attr.aria-controls]=\"popoverId\"\r\n [attr.aria-expanded]=\"open\"\r\n [attr.aria-label]=\"hermesToggleButtonAriaLabel\"\r\n >\r\n <hermes-icon shape=\"ellipsis-horizontal\" [attr.title]=\"commonStrings.keys.more\"></hermes-icon>\r\n </button>\r\n <div\r\n #menu\r\n role=\"menu\"\r\n class=\"dropdown-menu hermes-button-group-menu\"\r\n [id]=\"popoverId\"\r\n [attr.id]=\"popoverId\"\r\n [attr.aria-hidden]=\"!open\"\r\n *hermesPopoverContent=\"open; at menuPosition; type: popoverType; outsideClickToClose: true; scrollToClose: true\"\r\n >\r\n @for (menuButton of menuButtons; track menuButton) {\r\n <ng-template [ngTemplateOutlet]=\"menuButton.templateRef\"></ng-template>\r\n }\r\n </div>\r\n</div>\r\n}\r\n" }]
446
+ }], ctorParameters: () => [{ type: ButtonInGroupService }, { type: i2.HermesPopoverService }, { type: i3.HermesCommonStringsService }, { type: i3.HermesDestroyService }, { type: ButtonGroupFocusHandler }], propDecorators: { hermesToggleButtonAriaLabel: [{
447
+ type: Input,
448
+ args: ['hermesToggleButtonAriaLabel']
449
+ }], menuToggle: [{
450
+ type: ViewChild,
451
+ args: ['menuToggle']
452
+ }], menu: [{
453
+ type: ViewChild,
454
+ args: ['menu']
455
+ }], buttons: [{
456
+ type: ContentChildren,
457
+ args: [HermesButton]
458
+ }], menuPosition: [{
459
+ type: Input,
460
+ args: ['hermesMenuPosition']
461
+ }] } });
462
+
463
+ /*
464
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
465
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
466
+ * This software is released under MIT license.
467
+ * The full license information can be found in LICENSE in the root directory of this project.
468
+ */
469
+ const HERMES_BUTTON_GROUP_DIRECTIVES = [HermesButton, HermesButtonGroup];
470
+ class HermesButtonGroupModule {
471
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesButtonGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
472
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.22", ngImport: i0, type: HermesButtonGroupModule, declarations: [HermesButton, HermesButtonGroup], imports: [CommonModule, HermesIcon, HermesPopoverModuleNext], exports: [HermesButton, HermesButtonGroup] }); }
473
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesButtonGroupModule, imports: [CommonModule, HermesIcon, HermesPopoverModuleNext] }); }
474
+ }
475
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesButtonGroupModule, decorators: [{
476
+ type: NgModule,
477
+ args: [{
478
+ imports: [CommonModule, HermesIcon, HermesPopoverModuleNext],
479
+ declarations: [HERMES_BUTTON_GROUP_DIRECTIVES],
480
+ exports: [HERMES_BUTTON_GROUP_DIRECTIVES],
481
+ }]
482
+ }] });
483
+
484
+ /*
485
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
486
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
487
+ * This software is released under MIT license.
488
+ * The full license information can be found in LICENSE in the root directory of this project.
489
+ */
490
+ // minimum width to fit loading spinner
491
+ const MIN_BUTTON_WIDTH = 42;
492
+ class HermesLoadingButton {
493
+ constructor(el, renderer) {
494
+ this.el = el;
495
+ this.renderer = renderer;
496
+ this.hermesLoadingChange = new EventEmitter(false);
497
+ this.buttonState = HermesLoadingState;
498
+ this.state = HermesLoadingState.DEFAULT;
499
+ }
500
+ loadingStateChange(state) {
501
+ if (state === this.state) {
502
+ return;
503
+ }
504
+ this.state = state;
505
+ switch (state) {
506
+ case HermesLoadingState.DEFAULT:
507
+ this.renderer.removeStyle(this.el.nativeElement, 'width');
508
+ this.renderer.removeStyle(this.el.nativeElement, 'transform'); // for chromium render bug see issue https://github.com/vmware/clarity/issues/2700
509
+ if (!this.disabled) {
510
+ this.renderer.removeAttribute(this.el.nativeElement, 'disabled');
511
+ }
512
+ break;
513
+ case HermesLoadingState.LOADING:
514
+ this.setExplicitButtonWidth();
515
+ this.renderer.setStyle(this.el.nativeElement, 'transform', 'translatez(0)'); // for chromium render bug see issue https://github.com/vmware/clarity/issues/2700
516
+ this.renderer.setAttribute(this.el.nativeElement, 'disabled', '');
517
+ break;
518
+ case HermesLoadingState.SUCCESS:
519
+ this.setExplicitButtonWidth();
520
+ break;
521
+ case HermesLoadingState.ERROR:
522
+ this.loadingStateChange(HermesLoadingState.DEFAULT);
523
+ break;
524
+ default:
525
+ break;
526
+ }
527
+ this.hermesLoadingChange.emit(state);
528
+ }
529
+ setExplicitButtonWidth() {
530
+ if (this.el.nativeElement && this.el.nativeElement.getBoundingClientRect) {
531
+ const boundingClientRect = this.el.nativeElement.getBoundingClientRect();
532
+ const width = Math.max(MIN_BUTTON_WIDTH, boundingClientRect.width);
533
+ this.renderer.setStyle(this.el.nativeElement, 'width', `${width}px`);
534
+ }
535
+ }
536
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesLoadingButton, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
537
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: HermesLoadingButton, isStandalone: false, selector: "button[hermesLoading]", inputs: { disabled: "disabled" }, outputs: { hermesLoadingChange: "hermesLoadingChange" }, host: { properties: { "attr.disabled": "disabled? '' : null" } }, providers: [{ provide: LoadingListener, useExisting: HermesLoadingButton }], ngImport: i0, template: `
538
+ <span @parent>
539
+ @switch (state) {
540
+ @case (buttonState.LOADING) {
541
+ <span @spinner class="spinner spinner-inline"></span>
542
+ }
543
+ @case (buttonState.SUCCESS) {
544
+ <span
545
+ @validated
546
+ (@validated.done)="this.loadingStateChange(this.buttonState.DEFAULT)"
547
+ class="spinner spinner-inline spinner-check"
548
+ ></span>
549
+ }
550
+ @case (buttonState.DEFAULT) {
551
+ <span @defaultButton class="hermes-loading-btn-content">
552
+ <ng-content></ng-content>
553
+ </span>
554
+ }
555
+ }
556
+ </span>
557
+ `, isInline: true, animations: [
558
+ trigger('parent', [
559
+ // Skip :enter animation on first render.
560
+ // The button text/content should only be faded when transitioning to or from a non-default state.
561
+ transition(':enter', []),
562
+ ]),
563
+ trigger('defaultButton', [
564
+ transition(':enter', [style({ opacity: 0 }), animate('200ms 100ms ease-in', style({ opacity: 1 }))]),
565
+ // TODO: see if we can get leave animation to work before spinner's enter animation
566
+ transition(':leave', [style({ opacity: 0 })]),
567
+ ]),
568
+ trigger('spinner', [
569
+ transition(':enter', [style({ opacity: 0 }), animate('200ms 100ms ease-in', style({ opacity: 1 }))]),
570
+ transition(':leave', [style({ opacity: 1 }), animate('100ms ease-out', style({ opacity: 0 }))]),
571
+ ]),
572
+ trigger('validated', [
573
+ transition(':enter', [
574
+ animate('600ms', keyframes([
575
+ style({ transform: 'scale(0,0)', offset: 0 }),
576
+ style({ opacity: 1, offset: 0.2 }),
577
+ style({ transform: 'scale(1.2,1.2)', offset: 0.4 }),
578
+ style({ transform: 'scale(.9,.9)', offset: 0.6 }),
579
+ style({ transform: 'scale(1,1)', offset: 1 }),
580
+ ])),
581
+ ]),
582
+ transition(':leave', [style({ opacity: 1 }), animate('100ms ease-out', style({ opacity: 0 }))]),
583
+ ]),
584
+ ] }); }
585
+ }
586
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesLoadingButton, decorators: [{
587
+ type: Component,
588
+ args: [{
589
+ selector: 'button[hermesLoading]',
590
+ template: `
591
+ <span @parent>
592
+ @switch (state) {
593
+ @case (buttonState.LOADING) {
594
+ <span @spinner class="spinner spinner-inline"></span>
595
+ }
596
+ @case (buttonState.SUCCESS) {
597
+ <span
598
+ @validated
599
+ (@validated.done)="this.loadingStateChange(this.buttonState.DEFAULT)"
600
+ class="spinner spinner-inline spinner-check"
601
+ ></span>
602
+ }
603
+ @case (buttonState.DEFAULT) {
604
+ <span @defaultButton class="hermes-loading-btn-content">
605
+ <ng-content></ng-content>
606
+ </span>
607
+ }
608
+ }
609
+ </span>
610
+ `,
611
+ providers: [{ provide: LoadingListener, useExisting: HermesLoadingButton }],
612
+ animations: [
613
+ trigger('parent', [
614
+ // Skip :enter animation on first render.
615
+ // The button text/content should only be faded when transitioning to or from a non-default state.
616
+ transition(':enter', []),
617
+ ]),
618
+ trigger('defaultButton', [
619
+ transition(':enter', [style({ opacity: 0 }), animate('200ms 100ms ease-in', style({ opacity: 1 }))]),
620
+ // TODO: see if we can get leave animation to work before spinner's enter animation
621
+ transition(':leave', [style({ opacity: 0 })]),
622
+ ]),
623
+ trigger('spinner', [
624
+ transition(':enter', [style({ opacity: 0 }), animate('200ms 100ms ease-in', style({ opacity: 1 }))]),
625
+ transition(':leave', [style({ opacity: 1 }), animate('100ms ease-out', style({ opacity: 0 }))]),
626
+ ]),
627
+ trigger('validated', [
628
+ transition(':enter', [
629
+ animate('600ms', keyframes([
630
+ style({ transform: 'scale(0,0)', offset: 0 }),
631
+ style({ opacity: 1, offset: 0.2 }),
632
+ style({ transform: 'scale(1.2,1.2)', offset: 0.4 }),
633
+ style({ transform: 'scale(.9,.9)', offset: 0.6 }),
634
+ style({ transform: 'scale(1,1)', offset: 1 }),
635
+ ])),
636
+ ]),
637
+ transition(':leave', [style({ opacity: 1 }), animate('100ms ease-out', style({ opacity: 0 }))]),
638
+ ]),
639
+ ],
640
+ host: { '[attr.disabled]': "disabled? '' : null" },
641
+ standalone: false,
642
+ }]
643
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { disabled: [{
644
+ type: Input,
645
+ args: ['disabled']
646
+ }], hermesLoadingChange: [{
647
+ type: Output,
648
+ args: ['hermesLoadingChange']
649
+ }] } });
650
+
651
+ /*
652
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
653
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
654
+ * This software is released under MIT license.
655
+ * The full license information can be found in LICENSE in the root directory of this project.
656
+ */
657
+ const HERMES_LOADING_BUTTON_DIRECTIVES = [HermesLoadingButton];
658
+ class HermesLoadingButtonModule {
659
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesLoadingButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
660
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.22", ngImport: i0, type: HermesLoadingButtonModule, declarations: [HermesLoadingButton], imports: [CommonModule], exports: [HermesLoadingButton] }); }
661
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesLoadingButtonModule, imports: [CommonModule] }); }
662
+ }
663
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesLoadingButtonModule, decorators: [{
664
+ type: NgModule,
665
+ args: [{
666
+ imports: [CommonModule],
667
+ declarations: [HERMES_LOADING_BUTTON_DIRECTIVES],
668
+ exports: [HERMES_LOADING_BUTTON_DIRECTIVES],
669
+ }]
670
+ }] });
671
+
672
+ /*
673
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
674
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
675
+ * This software is released under MIT license.
676
+ * The full license information can be found in LICENSE in the root directory of this project.
677
+ */
678
+ class HermesButtonModule {
679
+ constructor() {
680
+ ClarityIcons.addIcons(ellipsisHorizontalIcon);
681
+ }
682
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
683
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.22", ngImport: i0, type: HermesButtonModule, exports: [HermesLoadingButtonModule, HermesButtonGroupModule] }); }
684
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesButtonModule, imports: [HermesLoadingButtonModule, HermesButtonGroupModule] }); }
685
+ }
686
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesButtonModule, decorators: [{
687
+ type: NgModule,
688
+ args: [{
689
+ exports: [HermesLoadingButtonModule, HermesButtonGroupModule],
690
+ }]
691
+ }], ctorParameters: () => [] });
692
+
693
+ /*
694
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
695
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
696
+ * This software is released under MIT license.
697
+ * The full license information can be found in LICENSE in the root directory of this project.
698
+ */
699
+
700
+ /*
701
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
702
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
703
+ * This software is released under MIT license.
704
+ * The full license information can be found in LICENSE in the root directory of this project.
705
+ */
706
+
707
+ /*
708
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
709
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
710
+ * This software is released under MIT license.
711
+ * The full license information can be found in LICENSE in the root directory of this project.
712
+ */
713
+
714
+ /**
715
+ * Generated bundle index. Do not edit.
716
+ */
717
+
718
+ export { HERMES_BUTTON_GROUP_DIRECTIVES, HERMES_LOADING_BUTTON_DIRECTIVES, HermesButton, HermesButtonGroup, HermesButtonGroupModule, HermesButtonModule, HermesLoadingButton, HermesLoadingButtonModule };
719
+ //# sourceMappingURL=hermes-ui-angular-button.mjs.map