@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,373 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, EventEmitter, HostBinding, Output, Input, Component, HostListener, NgModule } from '@angular/core';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import * as i1 from '@hermes-ui/angular/utils';
5
+ import * as i2 from '@angular/common';
6
+ import { CommonModule } from '@angular/common';
7
+ import * as i3 from '@hermes-ui/angular/icon';
8
+ import { ClarityIcons, errorStandardIcon, infoStandardIcon, successStandardIcon, warningStandardIcon, windowCloseIcon, HermesIcon } from '@hermes-ui/angular/icon';
9
+ import * as i4 from '@hermes-ui/angular/progress/spinner';
10
+ import { HermesSpinnerModule } from '@hermes-ui/angular/progress/spinner';
11
+ import { trigger, transition, style, animate } from '@angular/animations';
12
+
13
+ /*
14
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
15
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
16
+ * This software is released under MIT license.
17
+ * The full license information can be found in LICENSE in the root directory of this project.
18
+ */
19
+
20
+ /*
21
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
22
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
23
+ * This software is released under MIT license.
24
+ * The full license information can be found in LICENSE in the root directory of this project.
25
+ */
26
+ const DEFAULT_DURATION = 5000;
27
+ let uniqueId = 0;
28
+ /**
29
+ * Global, imperative toast queue. A single `hermes-toaster` placed once in the app
30
+ * (typically next to the root component) renders whatever this service holds - call
31
+ * `show`/`success`/`error`/etc. from anywhere, no injected view reference needed.
32
+ */
33
+ class HermesToastService {
34
+ constructor() {
35
+ this._toasts = new BehaviorSubject([]);
36
+ this.timers = new Map();
37
+ this.default = this.shorthand('default');
38
+ this.info = this.shorthand('info');
39
+ this.success = this.shorthand('success');
40
+ this.warning = this.shorthand('warning');
41
+ this.danger = this.shorthand('danger');
42
+ }
43
+ get toasts$() {
44
+ return this._toasts.asObservable();
45
+ }
46
+ get snapshot() {
47
+ return this._toasts.value;
48
+ }
49
+ show(config) {
50
+ const id = config.id ?? `hermes-toast-${++uniqueId}`;
51
+ const duration = config.duration ?? (config.type === 'loading' ? 0 : DEFAULT_DURATION);
52
+ const toast = {
53
+ ...config,
54
+ id,
55
+ type: config.type ?? 'default',
56
+ duration,
57
+ closable: config.closable ?? true,
58
+ createdAt: Date.now(),
59
+ };
60
+ const existingIndex = this._toasts.value.findIndex(t => t.id === id);
61
+ if (existingIndex > -1) {
62
+ const next = this._toasts.value.slice();
63
+ next[existingIndex] = toast;
64
+ this._toasts.next(next);
65
+ }
66
+ else {
67
+ this._toasts.next([toast, ...this._toasts.value]);
68
+ }
69
+ this.restartTimer(toast);
70
+ return id;
71
+ }
72
+ shorthand(type) {
73
+ return (message, config = {}) => this.show({ ...config, type, title: config.title ?? message });
74
+ }
75
+ loading(message, config = {}) {
76
+ return this.show({ ...config, type: 'loading', title: config.title ?? message, duration: config.duration ?? 0, closable: config.closable ?? false });
77
+ }
78
+ update(id, config) {
79
+ const current = this._toasts.value.find(t => t.id === id);
80
+ if (!current) {
81
+ return;
82
+ }
83
+ this.show({ ...current, ...config, id });
84
+ }
85
+ dismiss(id) {
86
+ this.clearTimer(id);
87
+ this._toasts.next(this._toasts.value.filter(t => t.id !== id));
88
+ }
89
+ dismissAll() {
90
+ this.timers.forEach((_, id) => this.clearTimer(id));
91
+ this._toasts.next([]);
92
+ }
93
+ /** Pauses every running auto-dismiss timer, e.g. while the pointer is over the toaster. */
94
+ pauseAll() {
95
+ const now = Date.now();
96
+ this.timers.forEach(timer => {
97
+ clearTimeout(timer.timeoutId);
98
+ timer.remaining -= now - timer.startedAt;
99
+ });
100
+ }
101
+ /** Resumes every paused auto-dismiss timer with its remaining time. */
102
+ resumeAll() {
103
+ this.timers.forEach((timer, id) => {
104
+ const toast = this._toasts.value.find(t => t.id === id);
105
+ if (!toast || timer.remaining <= 0) {
106
+ return;
107
+ }
108
+ timer.startedAt = Date.now();
109
+ timer.timeoutId = setTimeout(() => this.dismiss(id), timer.remaining);
110
+ });
111
+ }
112
+ /** Ties a toast to a promise: shows a loading toast, then resolves it into success/error. */
113
+ promise(promise, messages) {
114
+ const id = this.loading(this.resolveMessageText(messages.loading) ?? '', this.resolveMessageConfig(messages.loading));
115
+ return promise.then(value => {
116
+ const resolved = typeof messages.success === 'function' ? messages.success(value) : messages.success;
117
+ this.show({ ...this.resolveMessageConfig(resolved), id, type: 'success', title: this.resolveMessageText(resolved) });
118
+ return value;
119
+ }, error => {
120
+ const resolved = typeof messages.error === 'function' ? messages.error(error) : messages.error;
121
+ this.show({ ...this.resolveMessageConfig(resolved), id, type: 'danger', title: this.resolveMessageText(resolved) });
122
+ throw error;
123
+ });
124
+ }
125
+ resolveMessageText(message) {
126
+ if (!message) {
127
+ return undefined;
128
+ }
129
+ return typeof message === 'string' ? message : message.title;
130
+ }
131
+ resolveMessageConfig(message) {
132
+ return typeof message === 'string' || !message ? {} : message;
133
+ }
134
+ restartTimer(toast) {
135
+ this.clearTimer(toast.id);
136
+ if (!toast.duration || !isFinite(toast.duration)) {
137
+ return;
138
+ }
139
+ this.timers.set(toast.id, {
140
+ startedAt: Date.now(),
141
+ remaining: toast.duration,
142
+ timeoutId: setTimeout(() => this.dismiss(toast.id), toast.duration),
143
+ });
144
+ }
145
+ clearTimer(id) {
146
+ const timer = this.timers.get(id);
147
+ if (timer) {
148
+ clearTimeout(timer.timeoutId);
149
+ this.timers.delete(id);
150
+ }
151
+ }
152
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
153
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesToastService, providedIn: 'root' }); }
154
+ }
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesToastService, decorators: [{
156
+ type: Injectable,
157
+ args: [{ providedIn: 'root' }]
158
+ }] });
159
+
160
+ /*
161
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
162
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
163
+ * This software is released under MIT license.
164
+ * The full license information can be found in LICENSE in the root directory of this project.
165
+ */
166
+ const TOAST_ICONS = {
167
+ info: { shape: 'info-standard', cssClass: 'toast-info' },
168
+ success: { shape: 'success-standard', cssClass: 'toast-success' },
169
+ warning: { shape: 'warning-standard', cssClass: 'toast-warning' },
170
+ danger: { shape: 'error-standard', cssClass: 'toast-danger' },
171
+ };
172
+ class HermesToastItem {
173
+ constructor(hostElement, commonStrings) {
174
+ this.hostElement = hostElement;
175
+ this.commonStrings = commonStrings;
176
+ this.index = 0;
177
+ this.dismissed = new EventEmitter();
178
+ this.hostClass = true;
179
+ this.role = 'status';
180
+ this.ariaLive = 'polite';
181
+ if (typeof ResizeObserver !== 'undefined') {
182
+ this.resizeObserver = new ResizeObserver(([entry]) => {
183
+ this.hostElement.nativeElement.style.setProperty('--hermes-toast-height', `${entry.contentRect.height}px`);
184
+ });
185
+ this.resizeObserver.observe(this.hostElement.nativeElement);
186
+ }
187
+ }
188
+ get icon() {
189
+ return TOAST_ICONS[this.toast.type];
190
+ }
191
+ get isLoading() {
192
+ return this.toast.type === 'loading';
193
+ }
194
+ dismiss() {
195
+ this.dismissed.emit(this.toast.id);
196
+ }
197
+ actionClick() {
198
+ this.toast.action?.onClick(this.toast);
199
+ }
200
+ ngOnDestroy() {
201
+ this.resizeObserver?.disconnect();
202
+ }
203
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesToastItem, deps: [{ token: i0.ElementRef }, { token: i1.HermesCommonStringsService }], target: i0.ɵɵFactoryTarget.Component }); }
204
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: HermesToastItem, isStandalone: false, selector: "hermes-toast-item", inputs: { toast: "toast", index: "index" }, outputs: { dismissed: "hermesDismissed" }, host: { properties: { "style.--hermes-toast-index": "this.index", "class.toast-item": "this.hostClass", "attr.role": "this.role", "attr.aria-live": "this.ariaLive" } }, ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div class=\"toast\" [ngClass]=\"icon?.cssClass\">\n @if (isLoading) {\n <hermes-spinner class=\"toast-icon\" hermesInline hermesSmall></hermes-spinner>\n } @else if (icon) {\n <hermes-icon class=\"toast-icon\" [shape]=\"icon.shape\" size=\"16\" role=\"img\" aria-hidden=\"true\"></hermes-icon>\n }\n\n <div class=\"toast-content\">\n @if (toast.title) {\n <div class=\"toast-title\">{{ toast.title }}</div>\n } @if (toast.description) {\n <div class=\"toast-description\">{{ toast.description }}</div>\n }\n </div>\n\n @if (toast.action) {\n <button type=\"button\" class=\"btn btn-sm btn-link toast-action\" (click)=\"actionClick()\">\n {{ toast.action.label }}\n </button>\n } @if (toast.closable) {\n <button type=\"button\" class=\"close toast-close\" (click)=\"dismiss()\" [attr.aria-label]=\"commonStrings.keys.close\">\n <hermes-icon shape=\"times\" size=\"14\"></hermes-icon>\n </button>\n }\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.HermesIcon, selector: "hermes-icon, hermes-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "component", type: i4.HermesSpinner, selector: "hermes-spinner", inputs: ["hermesInline", "hermesInverse", "hermesSmall", "hermesMedium"] }] }); }
205
+ }
206
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesToastItem, decorators: [{
207
+ type: Component,
208
+ args: [{ selector: 'hermes-toast-item', standalone: false, template: "<!--\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div class=\"toast\" [ngClass]=\"icon?.cssClass\">\n @if (isLoading) {\n <hermes-spinner class=\"toast-icon\" hermesInline hermesSmall></hermes-spinner>\n } @else if (icon) {\n <hermes-icon class=\"toast-icon\" [shape]=\"icon.shape\" size=\"16\" role=\"img\" aria-hidden=\"true\"></hermes-icon>\n }\n\n <div class=\"toast-content\">\n @if (toast.title) {\n <div class=\"toast-title\">{{ toast.title }}</div>\n } @if (toast.description) {\n <div class=\"toast-description\">{{ toast.description }}</div>\n }\n </div>\n\n @if (toast.action) {\n <button type=\"button\" class=\"btn btn-sm btn-link toast-action\" (click)=\"actionClick()\">\n {{ toast.action.label }}\n </button>\n } @if (toast.closable) {\n <button type=\"button\" class=\"close toast-close\" (click)=\"dismiss()\" [attr.aria-label]=\"commonStrings.keys.close\">\n <hermes-icon shape=\"times\" size=\"14\"></hermes-icon>\n </button>\n }\n</div>\n" }]
209
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.HermesCommonStringsService }], propDecorators: { toast: [{
210
+ type: Input
211
+ }], index: [{
212
+ type: Input
213
+ }, {
214
+ type: HostBinding,
215
+ args: ['style.--hermes-toast-index']
216
+ }], dismissed: [{
217
+ type: Output,
218
+ args: ['hermesDismissed']
219
+ }], hostClass: [{
220
+ type: HostBinding,
221
+ args: ['class.toast-item']
222
+ }], role: [{
223
+ type: HostBinding,
224
+ args: ['attr.role']
225
+ }], ariaLive: [{
226
+ type: HostBinding,
227
+ args: ['attr.aria-live']
228
+ }] } });
229
+
230
+ /*
231
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
232
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
233
+ * This software is released under MIT license.
234
+ * The full license information can be found in LICENSE in the root directory of this project.
235
+ */
236
+ const TOAST_TRANSITION_DURATION = '500ms';
237
+ // Mirrors shadcn's toast primitive slide-in curve. Not pulled from
238
+ // $hermes-global-animation-easing-secondary because that shared token is a bouncier
239
+ // overshoot curve and doesn't match this specific ease-out feel.
240
+ const TOAST_TRANSITION_EASING = 'cubic-bezier(0.22, 1, 0.36, 1)';
241
+ /**
242
+ * Renders the queue kept by `HermesToastService` as a stack of toasts anchored to a
243
+ * corner of the viewport. Place a single `<hermes-toaster>` once near the app root -
244
+ * every `HermesToastService.show()`/`success()`/`error()` call anywhere in the app will
245
+ * render into it.
246
+ */
247
+ class HermesToaster {
248
+ constructor(toastService) {
249
+ this.toastService = toastService;
250
+ this.position = 'bottom-right';
251
+ this.maxVisible = 3;
252
+ this.hostClass = true;
253
+ this.expanded = false;
254
+ this.toasts$ = this.toastService.toasts$;
255
+ }
256
+ trackById(_index, toast) {
257
+ return toast.id;
258
+ }
259
+ isLimited(index) {
260
+ return index >= this.maxVisible;
261
+ }
262
+ onEnter() {
263
+ this.expanded = true;
264
+ this.toastService.pauseAll();
265
+ }
266
+ onLeave() {
267
+ this.expanded = false;
268
+ this.toastService.resumeAll();
269
+ }
270
+ onEscape() {
271
+ const [frontmost] = this.toastService.snapshot;
272
+ if (frontmost) {
273
+ this.toastService.dismiss(frontmost.id);
274
+ }
275
+ }
276
+ dismiss(id) {
277
+ this.toastService.dismiss(id);
278
+ }
279
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesToaster, deps: [{ token: HermesToastService }], target: i0.ɵɵFactoryTarget.Component }); }
280
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: HermesToaster, isStandalone: false, selector: "hermes-toaster", inputs: { position: ["hermesToasterPosition", "position"], maxVisible: ["hermesToasterMaxVisible", "maxVisible"] }, host: { listeners: { "pointerenter": "onEnter()", "focusin": "onEnter()", "pointerleave": "onLeave()", "focusout": "onLeave()", "document:keydown.escape": "onEscape()" }, properties: { "attr.data-position": "this.position", "class.hermes-toaster": "this.hostClass", "class.expanded": "this.expanded" } }, ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n@for (toast of (toasts$ | async); track toast.id; let index = $index) {\n<hermes-toast-item\n [@toastMove]\n [toast]=\"toast\"\n [index]=\"index\"\n [class.limited]=\"isLimited(index)\"\n (hermesDismissed)=\"dismiss($event)\"\n></hermes-toast-item>\n}\n", dependencies: [{ kind: "component", type: HermesToastItem, selector: "hermes-toast-item", inputs: ["toast", "index"], outputs: ["hermesDismissed"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], animations: [
281
+ trigger('toastMove', [
282
+ transition(':enter', [
283
+ style({ transform: 'translateY(150%)' }),
284
+ animate(`${TOAST_TRANSITION_DURATION} ${TOAST_TRANSITION_EASING}`),
285
+ ]),
286
+ transition(':leave', [
287
+ animate(`${TOAST_TRANSITION_DURATION} ${TOAST_TRANSITION_EASING}`, style({ transform: 'translateY(150%)' })),
288
+ ]),
289
+ ]),
290
+ ] }); }
291
+ }
292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesToaster, decorators: [{
293
+ type: Component,
294
+ args: [{ selector: 'hermes-toaster', animations: [
295
+ trigger('toastMove', [
296
+ transition(':enter', [
297
+ style({ transform: 'translateY(150%)' }),
298
+ animate(`${TOAST_TRANSITION_DURATION} ${TOAST_TRANSITION_EASING}`),
299
+ ]),
300
+ transition(':leave', [
301
+ animate(`${TOAST_TRANSITION_DURATION} ${TOAST_TRANSITION_EASING}`, style({ transform: 'translateY(150%)' })),
302
+ ]),
303
+ ]),
304
+ ], standalone: false, template: "<!--\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n@for (toast of (toasts$ | async); track toast.id; let index = $index) {\n<hermes-toast-item\n [@toastMove]\n [toast]=\"toast\"\n [index]=\"index\"\n [class.limited]=\"isLimited(index)\"\n (hermesDismissed)=\"dismiss($event)\"\n></hermes-toast-item>\n}\n" }]
305
+ }], ctorParameters: () => [{ type: HermesToastService }], propDecorators: { position: [{
306
+ type: Input,
307
+ args: ['hermesToasterPosition']
308
+ }, {
309
+ type: HostBinding,
310
+ args: ['attr.data-position']
311
+ }], maxVisible: [{
312
+ type: Input,
313
+ args: ['hermesToasterMaxVisible']
314
+ }], hostClass: [{
315
+ type: HostBinding,
316
+ args: ['class.hermes-toaster']
317
+ }], expanded: [{
318
+ type: HostBinding,
319
+ args: ['class.expanded']
320
+ }], onEnter: [{
321
+ type: HostListener,
322
+ args: ['pointerenter']
323
+ }, {
324
+ type: HostListener,
325
+ args: ['focusin']
326
+ }], onLeave: [{
327
+ type: HostListener,
328
+ args: ['pointerleave']
329
+ }, {
330
+ type: HostListener,
331
+ args: ['focusout']
332
+ }], onEscape: [{
333
+ type: HostListener,
334
+ args: ['document:keydown.escape']
335
+ }] } });
336
+
337
+ /*
338
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
339
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
340
+ * This software is released under MIT license.
341
+ * The full license information can be found in LICENSE in the root directory of this project.
342
+ */
343
+ const HERMES_TOAST_DIRECTIVES = [HermesToaster, HermesToastItem];
344
+ class HermesToastModule {
345
+ constructor() {
346
+ ClarityIcons.addIcons(errorStandardIcon, infoStandardIcon, successStandardIcon, warningStandardIcon, windowCloseIcon);
347
+ }
348
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesToastModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
349
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.22", ngImport: i0, type: HermesToastModule, declarations: [HermesToaster, HermesToastItem], imports: [CommonModule, HermesIcon, HermesSpinnerModule], exports: [HermesToaster, HermesToastItem] }); }
350
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesToastModule, imports: [CommonModule, HermesIcon, HermesSpinnerModule] }); }
351
+ }
352
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesToastModule, decorators: [{
353
+ type: NgModule,
354
+ args: [{
355
+ imports: [CommonModule, HermesIcon, HermesSpinnerModule],
356
+ declarations: [HERMES_TOAST_DIRECTIVES],
357
+ exports: [HERMES_TOAST_DIRECTIVES],
358
+ }]
359
+ }], ctorParameters: () => [] });
360
+
361
+ /*
362
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
363
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
364
+ * This software is released under MIT license.
365
+ * The full license information can be found in LICENSE in the root directory of this project.
366
+ */
367
+
368
+ /**
369
+ * Generated bundle index. Do not edit.
370
+ */
371
+
372
+ export { HERMES_TOAST_DIRECTIVES, HermesToastItem, HermesToastModule, HermesToastService, HermesToaster };
373
+ //# sourceMappingURL=hermes-ui-angular-toast.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hermes-ui-angular-toast.mjs","sources":["../../../toast/toast.interfaces.ts","../../../toast/toast.service.ts","../../../toast/toast-item.ts","../../../toast/toast-item.html","../../../toast/toaster.ts","../../../toast/toaster.html","../../../toast/toast.module.ts","../../../toast/index.ts","../../../toast/hermes-ui-angular-toast.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport type HermesToastType = 'default' | 'info' | 'success' | 'warning' | 'danger' | 'loading';\n\nexport interface HermesToastAction {\n label: string;\n onClick: (toast: HermesToastRef) => void;\n}\n\nexport interface HermesToastConfig {\n id?: string;\n title?: string;\n description?: string;\n type?: HermesToastType;\n /** Milliseconds before auto-dismiss. 0 or Infinity disables auto-dismiss. */\n duration?: number;\n closable?: boolean;\n action?: HermesToastAction;\n}\n\nexport interface HermesToastRef extends HermesToastConfig {\n id: string;\n type: HermesToastType;\n duration: number;\n closable: boolean;\n createdAt: number;\n}\n\nexport interface HermesToastPromiseMessages<T> {\n loading?: string | HermesToastConfig;\n success: string | HermesToastConfig | ((value: T) => string | HermesToastConfig);\n error: string | HermesToastConfig | ((error: unknown) => string | HermesToastConfig);\n}\n\nexport type HermesToasterPosition = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { HermesToastConfig, HermesToastPromiseMessages, HermesToastRef, HermesToastType } from './toast.interfaces';\n\nconst DEFAULT_DURATION = 5000;\n\ninterface ToastTimer {\n timeoutId: ReturnType<typeof setTimeout>;\n startedAt: number;\n remaining: number;\n}\n\nlet uniqueId = 0;\n\n/**\n * Global, imperative toast queue. A single `hermes-toaster` placed once in the app\n * (typically next to the root component) renders whatever this service holds - call\n * `show`/`success`/`error`/etc. from anywhere, no injected view reference needed.\n */\n@Injectable({ providedIn: 'root' })\nexport class HermesToastService {\n private readonly _toasts = new BehaviorSubject<HermesToastRef[]>([]);\n private readonly timers = new Map<string, ToastTimer>();\n\n get toasts$(): Observable<HermesToastRef[]> {\n return this._toasts.asObservable();\n }\n\n get snapshot(): HermesToastRef[] {\n return this._toasts.value;\n }\n\n show(config: HermesToastConfig): string {\n const id = config.id ?? `hermes-toast-${++uniqueId}`;\n const duration = config.duration ?? (config.type === 'loading' ? 0 : DEFAULT_DURATION);\n\n const toast: HermesToastRef = {\n ...config,\n id,\n type: config.type ?? 'default',\n duration,\n closable: config.closable ?? true,\n createdAt: Date.now(),\n };\n\n const existingIndex = this._toasts.value.findIndex(t => t.id === id);\n if (existingIndex > -1) {\n const next = this._toasts.value.slice();\n next[existingIndex] = toast;\n this._toasts.next(next);\n } else {\n this._toasts.next([toast, ...this._toasts.value]);\n }\n\n this.restartTimer(toast);\n\n return id;\n }\n\n private shorthand(type: HermesToastType) {\n return (message: string, config: Omit<HermesToastConfig, 'type'> = {}): string =>\n this.show({ ...config, type, title: config.title ?? message });\n }\n\n default = this.shorthand('default');\n info = this.shorthand('info');\n success = this.shorthand('success');\n warning = this.shorthand('warning');\n danger = this.shorthand('danger');\n\n loading(message: string, config: Omit<HermesToastConfig, 'type'> = {}): string {\n return this.show({ ...config, type: 'loading', title: config.title ?? message, duration: config.duration ?? 0, closable: config.closable ?? false });\n }\n\n update(id: string, config: Partial<HermesToastConfig>): void {\n const current = this._toasts.value.find(t => t.id === id);\n if (!current) {\n return;\n }\n this.show({ ...current, ...config, id });\n }\n\n dismiss(id: string): void {\n this.clearTimer(id);\n this._toasts.next(this._toasts.value.filter(t => t.id !== id));\n }\n\n dismissAll(): void {\n this.timers.forEach((_, id) => this.clearTimer(id));\n this._toasts.next([]);\n }\n\n /** Pauses every running auto-dismiss timer, e.g. while the pointer is over the toaster. */\n pauseAll(): void {\n const now = Date.now();\n this.timers.forEach(timer => {\n clearTimeout(timer.timeoutId);\n timer.remaining -= now - timer.startedAt;\n });\n }\n\n /** Resumes every paused auto-dismiss timer with its remaining time. */\n resumeAll(): void {\n this.timers.forEach((timer, id) => {\n const toast = this._toasts.value.find(t => t.id === id);\n if (!toast || timer.remaining <= 0) {\n return;\n }\n timer.startedAt = Date.now();\n timer.timeoutId = setTimeout(() => this.dismiss(id), timer.remaining);\n });\n }\n\n /** Ties a toast to a promise: shows a loading toast, then resolves it into success/error. */\n promise<T>(promise: Promise<T>, messages: HermesToastPromiseMessages<T>): Promise<T> {\n const id = this.loading(this.resolveMessageText(messages.loading) ?? '', this.resolveMessageConfig(messages.loading));\n\n return promise.then(\n value => {\n const resolved = typeof messages.success === 'function' ? messages.success(value) : messages.success;\n this.show({ ...this.resolveMessageConfig(resolved), id, type: 'success', title: this.resolveMessageText(resolved) });\n return value;\n },\n error => {\n const resolved = typeof messages.error === 'function' ? messages.error(error) : messages.error;\n this.show({ ...this.resolveMessageConfig(resolved), id, type: 'danger', title: this.resolveMessageText(resolved) });\n throw error;\n }\n );\n }\n\n private resolveMessageText(message: string | HermesToastConfig | undefined): string | undefined {\n if (!message) {\n return undefined;\n }\n return typeof message === 'string' ? message : message.title;\n }\n\n private resolveMessageConfig(message: string | HermesToastConfig | undefined): HermesToastConfig {\n return typeof message === 'string' || !message ? {} : message;\n }\n\n private restartTimer(toast: HermesToastRef): void {\n this.clearTimer(toast.id);\n\n if (!toast.duration || !isFinite(toast.duration)) {\n return;\n }\n\n this.timers.set(toast.id, {\n startedAt: Date.now(),\n remaining: toast.duration,\n timeoutId: setTimeout(() => this.dismiss(toast.id), toast.duration),\n });\n }\n\n private clearTimer(id: string): void {\n const timer = this.timers.get(id);\n if (timer) {\n clearTimeout(timer.timeoutId);\n this.timers.delete(id);\n }\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { Component, ElementRef, EventEmitter, HostBinding, Input, OnDestroy, Output } from '@angular/core';\nimport { HermesCommonStringsService } from '@hermes-ui/angular/utils';\n\nimport { HermesToastRef, HermesToastType } from './toast.interfaces';\n\ninterface ToastIconInfo {\n shape: string;\n cssClass: string;\n}\n\nconst TOAST_ICONS: Partial<Record<HermesToastType, ToastIconInfo>> = {\n info: { shape: 'info-standard', cssClass: 'toast-info' },\n success: { shape: 'success-standard', cssClass: 'toast-success' },\n warning: { shape: 'warning-standard', cssClass: 'toast-warning' },\n danger: { shape: 'error-standard', cssClass: 'toast-danger' },\n};\n\n@Component({\n selector: 'hermes-toast-item',\n templateUrl: './toast-item.html',\n standalone: false,\n})\nexport class HermesToastItem implements OnDestroy {\n @Input() toast: HermesToastRef;\n\n @Input()\n @HostBinding('style.--hermes-toast-index')\n index = 0;\n\n @Output('hermesDismissed') dismissed = new EventEmitter<string>();\n\n @HostBinding('class.toast-item') readonly hostClass = true;\n @HostBinding('attr.role') readonly role = 'status';\n @HostBinding('attr.aria-live') readonly ariaLive = 'polite';\n\n private resizeObserver?: ResizeObserver;\n\n constructor(private hostElement: ElementRef<HTMLElement>, public commonStrings: HermesCommonStringsService) {\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(([entry]) => {\n this.hostElement.nativeElement.style.setProperty('--hermes-toast-height', `${entry.contentRect.height}px`);\n });\n this.resizeObserver.observe(this.hostElement.nativeElement);\n }\n }\n\n get icon(): ToastIconInfo | undefined {\n return TOAST_ICONS[this.toast.type];\n }\n\n get isLoading(): boolean {\n return this.toast.type === 'loading';\n }\n\n dismiss(): void {\n this.dismissed.emit(this.toast.id);\n }\n\n actionClick(): void {\n this.toast.action?.onClick(this.toast);\n }\n\n ngOnDestroy(): void {\n this.resizeObserver?.disconnect();\n }\n}\n","<!--\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div class=\"toast\" [ngClass]=\"icon?.cssClass\">\n @if (isLoading) {\n <hermes-spinner class=\"toast-icon\" hermesInline hermesSmall></hermes-spinner>\n } @else if (icon) {\n <hermes-icon class=\"toast-icon\" [shape]=\"icon.shape\" size=\"16\" role=\"img\" aria-hidden=\"true\"></hermes-icon>\n }\n\n <div class=\"toast-content\">\n @if (toast.title) {\n <div class=\"toast-title\">{{ toast.title }}</div>\n } @if (toast.description) {\n <div class=\"toast-description\">{{ toast.description }}</div>\n }\n </div>\n\n @if (toast.action) {\n <button type=\"button\" class=\"btn btn-sm btn-link toast-action\" (click)=\"actionClick()\">\n {{ toast.action.label }}\n </button>\n } @if (toast.closable) {\n <button type=\"button\" class=\"close toast-close\" (click)=\"dismiss()\" [attr.aria-label]=\"commonStrings.keys.close\">\n <hermes-icon shape=\"times\" size=\"14\"></hermes-icon>\n </button>\n }\n</div>\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { Component, HostBinding, HostListener, Input } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HermesToastRef, HermesToasterPosition } from './toast.interfaces';\nimport { HermesToastService } from './toast.service';\n\nconst TOAST_TRANSITION_DURATION = '500ms';\n// Mirrors shadcn's toast primitive slide-in curve. Not pulled from\n// $hermes-global-animation-easing-secondary because that shared token is a bouncier\n// overshoot curve and doesn't match this specific ease-out feel.\nconst TOAST_TRANSITION_EASING = 'cubic-bezier(0.22, 1, 0.36, 1)';\n\n/**\n * Renders the queue kept by `HermesToastService` as a stack of toasts anchored to a\n * corner of the viewport. Place a single `<hermes-toaster>` once near the app root -\n * every `HermesToastService.show()`/`success()`/`error()` call anywhere in the app will\n * render into it.\n */\n@Component({\n selector: 'hermes-toaster',\n templateUrl: './toaster.html',\n animations: [\n trigger('toastMove', [\n transition(':enter', [\n style({ transform: 'translateY(150%)' }),\n animate(`${TOAST_TRANSITION_DURATION} ${TOAST_TRANSITION_EASING}`),\n ]),\n transition(':leave', [\n animate(`${TOAST_TRANSITION_DURATION} ${TOAST_TRANSITION_EASING}`, style({ transform: 'translateY(150%)' })),\n ]),\n ]),\n ],\n standalone: false,\n})\nexport class HermesToaster {\n @Input('hermesToasterPosition')\n @HostBinding('attr.data-position')\n position: HermesToasterPosition = 'bottom-right';\n\n @Input('hermesToasterMaxVisible') maxVisible = 3;\n\n @HostBinding('class.hermes-toaster') readonly hostClass = true;\n @HostBinding('class.expanded') expanded = false;\n\n readonly toasts$: Observable<HermesToastRef[]> = this.toastService.toasts$;\n\n constructor(private toastService: HermesToastService) {}\n\n trackById(_index: number, toast: HermesToastRef): string {\n return toast.id;\n }\n\n isLimited(index: number): boolean {\n return index >= this.maxVisible;\n }\n\n @HostListener('pointerenter')\n @HostListener('focusin')\n onEnter(): void {\n this.expanded = true;\n this.toastService.pauseAll();\n }\n\n @HostListener('pointerleave')\n @HostListener('focusout')\n onLeave(): void {\n this.expanded = false;\n this.toastService.resumeAll();\n }\n\n @HostListener('document:keydown.escape')\n onEscape(): void {\n const [frontmost] = this.toastService.snapshot;\n if (frontmost) {\n this.toastService.dismiss(frontmost.id);\n }\n }\n\n dismiss(id: string): void {\n this.toastService.dismiss(id);\n }\n}\n","<!--\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n@for (toast of (toasts$ | async); track toast.id; let index = $index) {\n<hermes-toast-item\n [@toastMove]\n [toast]=\"toast\"\n [index]=\"index\"\n [class.limited]=\"isLimited(index)\"\n (hermesDismissed)=\"dismiss($event)\"\n></hermes-toast-item>\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport {\n ClarityIcons,\n errorStandardIcon,\n HermesIcon,\n infoStandardIcon,\n successStandardIcon,\n warningStandardIcon,\n windowCloseIcon,\n} from '@hermes-ui/angular/icon';\nimport { HermesSpinnerModule } from '@hermes-ui/angular/progress/spinner';\n\nimport { HermesToastItem } from './toast-item';\nimport { HermesToaster } from './toaster';\n\nexport const HERMES_TOAST_DIRECTIVES: Type<any>[] = [HermesToaster, HermesToastItem];\n\n@NgModule({\n imports: [CommonModule, HermesIcon, HermesSpinnerModule],\n declarations: [HERMES_TOAST_DIRECTIVES],\n exports: [HERMES_TOAST_DIRECTIVES],\n})\nexport class HermesToastModule {\n constructor() {\n ClarityIcons.addIcons(errorStandardIcon, infoStandardIcon, successStandardIcon, warningStandardIcon, windowCloseIcon);\n }\n}\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nexport * from './toast.interfaces';\nexport * from './toast.service';\nexport * from './toast-item';\nexport * from './toaster';\nexport * from './toast.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.HermesToastService","i2.HermesToastItem","i3"],"mappings":"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"}