@hermes-ui/angular 0.1.5 → 0.1.7

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 (130) hide show
  1. package/README.md +52 -52
  2. package/button/_properties.buttons.scss +387 -387
  3. package/fesm2022/hermes-ui-angular-accordion.mjs.map +1 -1
  4. package/fesm2022/hermes-ui-angular-addons-a11y.mjs.map +1 -1
  5. package/fesm2022/hermes-ui-angular-addons-card-container.mjs.map +1 -1
  6. package/fesm2022/hermes-ui-angular-addons-certificate-viewer.mjs.map +1 -1
  7. package/fesm2022/hermes-ui-angular-addons-datagrid-filters.mjs.map +1 -1
  8. package/fesm2022/hermes-ui-angular-addons-datagrid.mjs +28 -28
  9. package/fesm2022/hermes-ui-angular-addons-datagrid.mjs.map +1 -1
  10. package/fesm2022/hermes-ui-angular-addons-dialog.mjs.map +1 -1
  11. package/fesm2022/hermes-ui-angular-addons-menu.mjs +8 -8
  12. package/fesm2022/hermes-ui-angular-addons-menu.mjs.map +1 -1
  13. package/fesm2022/hermes-ui-angular-addons-property-view.mjs.map +1 -1
  14. package/fesm2022/hermes-ui-angular-addons-stepper.mjs.map +1 -1
  15. package/fesm2022/hermes-ui-angular-addons-tabs.mjs.map +1 -1
  16. package/fesm2022/hermes-ui-angular-addons-testing.mjs +78 -78
  17. package/fesm2022/hermes-ui-angular-addons-testing.mjs.map +1 -1
  18. package/fesm2022/hermes-ui-angular-addons-theme-builder.mjs +1 -1
  19. package/fesm2022/hermes-ui-angular-addons-theme-builder.mjs.map +1 -1
  20. package/fesm2022/hermes-ui-angular-addons-var.mjs.map +1 -1
  21. package/fesm2022/hermes-ui-angular-addons-wizard.mjs.map +1 -1
  22. package/fesm2022/hermes-ui-angular-addons-workflow.mjs.map +1 -1
  23. package/fesm2022/hermes-ui-angular-button.mjs +74 -74
  24. package/fesm2022/hermes-ui-angular-button.mjs.map +1 -1
  25. package/fesm2022/hermes-ui-angular-card.mjs +48 -0
  26. package/fesm2022/hermes-ui-angular-card.mjs.map +1 -0
  27. package/fesm2022/hermes-ui-angular-collapsible-panel.mjs.map +1 -1
  28. package/fesm2022/hermes-ui-angular-data-datagrid.mjs +926 -926
  29. package/fesm2022/hermes-ui-angular-data-datagrid.mjs.map +1 -1
  30. package/fesm2022/hermes-ui-angular-data-stack-view.mjs +114 -114
  31. package/fesm2022/hermes-ui-angular-data-stack-view.mjs.map +1 -1
  32. package/fesm2022/hermes-ui-angular-data-tree-view.mjs +12 -12
  33. package/fesm2022/hermes-ui-angular-data-tree-view.mjs.map +1 -1
  34. package/fesm2022/hermes-ui-angular-data.mjs.map +1 -1
  35. package/fesm2022/hermes-ui-angular-divider.mjs +46 -0
  36. package/fesm2022/hermes-ui-angular-divider.mjs.map +1 -0
  37. package/fesm2022/hermes-ui-angular-emphasis-alert.mjs.map +1 -1
  38. package/fesm2022/hermes-ui-angular-emphasis-badge.mjs.map +1 -1
  39. package/fesm2022/hermes-ui-angular-emphasis-label.mjs +16 -16
  40. package/fesm2022/hermes-ui-angular-emphasis-label.mjs.map +1 -1
  41. package/fesm2022/hermes-ui-angular-emphasis.mjs.map +1 -1
  42. package/fesm2022/hermes-ui-angular-forms-checkbox.mjs +50 -50
  43. package/fesm2022/hermes-ui-angular-forms-checkbox.mjs.map +1 -1
  44. package/fesm2022/hermes-ui-angular-forms-combobox.mjs +126 -126
  45. package/fesm2022/hermes-ui-angular-forms-combobox.mjs.map +1 -1
  46. package/fesm2022/hermes-ui-angular-forms-common.mjs.map +1 -1
  47. package/fesm2022/hermes-ui-angular-forms-datalist.mjs +46 -46
  48. package/fesm2022/hermes-ui-angular-forms-datalist.mjs.map +1 -1
  49. package/fesm2022/hermes-ui-angular-forms-datepicker.mjs +375 -375
  50. package/fesm2022/hermes-ui-angular-forms-datepicker.mjs.map +1 -1
  51. package/fesm2022/hermes-ui-angular-forms-file-input.mjs +190 -190
  52. package/fesm2022/hermes-ui-angular-forms-file-input.mjs.map +1 -1
  53. package/fesm2022/hermes-ui-angular-forms-input.mjs +52 -52
  54. package/fesm2022/hermes-ui-angular-forms-input.mjs.map +1 -1
  55. package/fesm2022/hermes-ui-angular-forms-native-select.mjs +38 -38
  56. package/fesm2022/hermes-ui-angular-forms-native-select.mjs.map +1 -1
  57. package/fesm2022/hermes-ui-angular-forms-number-input.mjs +80 -80
  58. package/fesm2022/hermes-ui-angular-forms-number-input.mjs.map +1 -1
  59. package/fesm2022/hermes-ui-angular-forms-password.mjs +58 -58
  60. package/fesm2022/hermes-ui-angular-forms-password.mjs.map +1 -1
  61. package/fesm2022/hermes-ui-angular-forms-radio.mjs +50 -50
  62. package/fesm2022/hermes-ui-angular-forms-radio.mjs.map +1 -1
  63. package/fesm2022/hermes-ui-angular-forms-range.mjs +44 -44
  64. package/fesm2022/hermes-ui-angular-forms-range.mjs.map +1 -1
  65. package/fesm2022/hermes-ui-angular-forms-select.mjs +8 -8
  66. package/fesm2022/hermes-ui-angular-forms-select.mjs.map +1 -1
  67. package/fesm2022/hermes-ui-angular-forms-textarea.mjs +38 -38
  68. package/fesm2022/hermes-ui-angular-forms-textarea.mjs.map +1 -1
  69. package/fesm2022/hermes-ui-angular-forms.mjs.map +1 -1
  70. package/fesm2022/hermes-ui-angular-icon.mjs.map +1 -1
  71. package/fesm2022/hermes-ui-angular-layout-breadcrumbs.mjs.map +1 -1
  72. package/fesm2022/hermes-ui-angular-layout-main-container.mjs.map +1 -1
  73. package/fesm2022/hermes-ui-angular-layout-nav.mjs +46 -46
  74. package/fesm2022/hermes-ui-angular-layout-nav.mjs.map +1 -1
  75. package/fesm2022/hermes-ui-angular-layout-tabs.mjs +146 -146
  76. package/fesm2022/hermes-ui-angular-layout-tabs.mjs.map +1 -1
  77. package/fesm2022/hermes-ui-angular-layout-vertical-nav.mjs +31 -3
  78. package/fesm2022/hermes-ui-angular-layout-vertical-nav.mjs.map +1 -1
  79. package/fesm2022/hermes-ui-angular-layout.mjs.map +1 -1
  80. package/fesm2022/hermes-ui-angular-modal.mjs.map +1 -1
  81. package/fesm2022/hermes-ui-angular-pagination.mjs +116 -0
  82. package/fesm2022/hermes-ui-angular-pagination.mjs.map +1 -0
  83. package/fesm2022/hermes-ui-angular-popover-common.mjs +26 -3
  84. package/fesm2022/hermes-ui-angular-popover-common.mjs.map +1 -1
  85. package/fesm2022/hermes-ui-angular-popover-dropdown.mjs.map +1 -1
  86. package/fesm2022/hermes-ui-angular-popover-signpost.mjs +66 -66
  87. package/fesm2022/hermes-ui-angular-popover-signpost.mjs.map +1 -1
  88. package/fesm2022/hermes-ui-angular-popover-tooltip.mjs.map +1 -1
  89. package/fesm2022/hermes-ui-angular-popover.mjs.map +1 -1
  90. package/fesm2022/hermes-ui-angular-progress-progress-bars.mjs +10 -10
  91. package/fesm2022/hermes-ui-angular-progress-progress-bars.mjs.map +1 -1
  92. package/fesm2022/hermes-ui-angular-progress-spinner.mjs.map +1 -1
  93. package/fesm2022/hermes-ui-angular-stepper.mjs.map +1 -1
  94. package/fesm2022/hermes-ui-angular-timeline.mjs.map +1 -1
  95. package/fesm2022/hermes-ui-angular-toast.mjs +4 -4
  96. package/fesm2022/hermes-ui-angular-toast.mjs.map +1 -1
  97. package/fesm2022/hermes-ui-angular-utils-conditional.mjs.map +1 -1
  98. package/fesm2022/hermes-ui-angular-utils.mjs.map +1 -1
  99. package/fesm2022/hermes-ui-angular-wizard.mjs +56 -56
  100. package/fesm2022/hermes-ui-angular-wizard.mjs.map +1 -1
  101. package/fesm2022/hermes-ui-angular.mjs +16 -3
  102. package/fesm2022/hermes-ui-angular.mjs.map +1 -1
  103. package/hermes-ui.scss +7 -7
  104. package/layout/vertical-nav/_mixins.vertical-nav.scss +3 -7
  105. package/layout/vertical-nav/_properties.vertical-nav.scss +10 -5
  106. package/layout/vertical-nav/_variables.vertical-nav.scss +2 -0
  107. package/layout/vertical-nav/_vertical-nav.clarity.scss +14 -0
  108. package/package.json +13 -1
  109. package/popover/dropdown/_dropdown.clarity.scss +8 -7
  110. package/popover/dropdown/_menu-mixins.clarity.scss +22 -6
  111. package/popover/dropdown/_properties.dropdown.scss +20 -0
  112. package/popover/dropdown/_variables.dropdown.scss +7 -0
  113. package/toast/README.md +65 -65
  114. package/toast/_properties.toast.scss +56 -56
  115. package/toast/_toast.clarity.scss +190 -190
  116. package/toast/_variables.toast.scss +33 -33
  117. package/types/hermes-ui-angular-card.d.ts +24 -0
  118. package/types/hermes-ui-angular-card.d.ts.map +1 -0
  119. package/types/hermes-ui-angular-data-datagrid.d.ts.map +1 -1
  120. package/types/hermes-ui-angular-divider.d.ts +20 -0
  121. package/types/hermes-ui-angular-divider.d.ts.map +1 -0
  122. package/types/hermes-ui-angular-layout-vertical-nav.d.ts +11 -1
  123. package/types/hermes-ui-angular-layout-vertical-nav.d.ts.map +1 -1
  124. package/types/hermes-ui-angular-pagination.d.ts +52 -0
  125. package/types/hermes-ui-angular-pagination.d.ts.map +1 -0
  126. package/types/hermes-ui-angular-popover-common.d.ts +4 -3
  127. package/types/hermes-ui-angular-popover-common.d.ts.map +1 -1
  128. package/types/hermes-ui-angular-wizard.d.ts.map +1 -1
  129. package/types/hermes-ui-angular.d.ts +23 -17
  130. package/types/hermes-ui-angular.d.ts.map +1 -1
@@ -1,56 +1,56 @@
1
- /*
2
- * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
3
- * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4
- * This software is released under MIT license.
5
- * The full license information can be found in LICENSE in the root directory of this project.
6
- */
7
-
8
- @use '../styles/mixins';
9
- @use '../styles/core/tokens/variables.tokens' as tokens;
10
- @use '../styles/variables/variables.density' as density;
11
-
12
- @include mixins.exports('toast.properties') {
13
- @include mixins.root-or-host() {
14
- // Layout - shadcn's Toast viewport is `w-auto max-w-sm` (384px) with a 0.75rem
15
- // gap/peek between stacked cards and 1rem inset from the viewport edge.
16
- --hermes-toast-viewport-inset: #{mixins.baselinePx(16)};
17
- --hermes-toast-max-width: #{mixins.baselinePx(384)};
18
- --hermes-toast-gap: #{mixins.baselinePx(12)};
19
- --hermes-toast-peek: #{mixins.baselinePx(12)};
20
- // Fallback height used before the item's own ResizeObserver reports its real,
21
- // content-driven height (see toast-item.ts) - only visible for one frame on insert.
22
- --hermes-toast-fallback-height: #{mixins.baselinePx(56)};
23
- --hermes-toast-content-padding: #{mixins.baselinePx(16)};
24
- --hermes-toast-content-gap: #{mixins.baselinePx(12)};
25
- --hermes-toast-icon-size: #{mixins.baselinePx(16)};
26
-
27
- &,
28
- & [hermes-density] {
29
- // shadcn's default --radius token (0.625rem @ Tailwind's 16px root = 10px)
30
- --hermes-toast-border-radius: #{mixins.baselinePx(10)};
31
- }
32
-
33
- &,
34
- & [hermes-theme] {
35
- // shadcn's Toast is a neutral `bg-popover` surface - unlike hermes-alert, the
36
- // status color lives only on the icon, not on the card background.
37
- --hermes-toast-bg-color: #{tokens.$hermes-alias-object-overlay-background};
38
- --hermes-toast-color: #{tokens.$hermes-alias-typography-color-400};
39
- --hermes-toast-description-color: #{tokens.$hermes-alias-typography-color-300};
40
- --hermes-toast-border-color: #{tokens.$hermes-alias-object-container-border-color};
41
- --hermes-toast-border-width: #{tokens.$hermes-alias-object-border-width-100};
42
- // one step below the modal's shadow-300: toasts sit above page content but
43
- // below the modal/dialog surface when both happen to be visible together
44
- --hermes-toast-box-shadow: #{tokens.$hermes-alias-object-shadow-200};
45
-
46
- --hermes-toast-info-icon-color: #{tokens.$hermes-alias-status-info};
47
- --hermes-toast-success-icon-color: #{tokens.$hermes-alias-status-success};
48
- --hermes-toast-warning-icon-color: #{tokens.$hermes-alias-status-warning-dark};
49
- --hermes-toast-danger-icon-color: #{tokens.$hermes-alias-status-danger};
50
-
51
- --hermes-toast-action-color: #{tokens.$hermes-alias-typography-color-400};
52
- --hermes-toast-close-color: var(--hermes-close-color);
53
- --hermes-toast-close-color-hover: var(--hermes-close-color-hover);
54
- }
55
- }
56
- }
1
+ /*
2
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
3
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4
+ * This software is released under MIT license.
5
+ * The full license information can be found in LICENSE in the root directory of this project.
6
+ */
7
+
8
+ @use '../styles/mixins';
9
+ @use '../styles/core/tokens/variables.tokens' as tokens;
10
+ @use '../styles/variables/variables.density' as density;
11
+
12
+ @include mixins.exports('toast.properties') {
13
+ @include mixins.root-or-host() {
14
+ // Layout - shadcn's Toast viewport is `w-auto max-w-sm` (384px) with a 0.75rem
15
+ // gap/peek between stacked cards and 1rem inset from the viewport edge.
16
+ --hermes-toast-viewport-inset: #{mixins.baselinePx(16)};
17
+ --hermes-toast-max-width: #{mixins.baselinePx(384)};
18
+ --hermes-toast-gap: #{mixins.baselinePx(12)};
19
+ --hermes-toast-peek: #{mixins.baselinePx(12)};
20
+ // Fallback height used before the item's own ResizeObserver reports its real,
21
+ // content-driven height (see toast-item.ts) - only visible for one frame on insert.
22
+ --hermes-toast-fallback-height: #{mixins.baselinePx(56)};
23
+ --hermes-toast-content-padding: #{mixins.baselinePx(16)};
24
+ --hermes-toast-content-gap: #{mixins.baselinePx(12)};
25
+ --hermes-toast-icon-size: #{mixins.baselinePx(16)};
26
+
27
+ &,
28
+ & [hermes-density] {
29
+ // shadcn's default --radius token (0.625rem @ Tailwind's 16px root = 10px)
30
+ --hermes-toast-border-radius: #{mixins.baselinePx(10)};
31
+ }
32
+
33
+ &,
34
+ & [hermes-theme] {
35
+ // shadcn's Toast is a neutral `bg-popover` surface - unlike hermes-alert, the
36
+ // status color lives only on the icon, not on the card background.
37
+ --hermes-toast-bg-color: #{tokens.$hermes-alias-object-overlay-background};
38
+ --hermes-toast-color: #{tokens.$hermes-alias-typography-color-400};
39
+ --hermes-toast-description-color: #{tokens.$hermes-alias-typography-color-300};
40
+ --hermes-toast-border-color: #{tokens.$hermes-alias-object-container-border-color};
41
+ --hermes-toast-border-width: #{tokens.$hermes-alias-object-border-width-100};
42
+ // one step below the modal's shadow-300: toasts sit above page content but
43
+ // below the modal/dialog surface when both happen to be visible together
44
+ --hermes-toast-box-shadow: #{tokens.$hermes-alias-object-shadow-200};
45
+
46
+ --hermes-toast-info-icon-color: #{tokens.$hermes-alias-status-info};
47
+ --hermes-toast-success-icon-color: #{tokens.$hermes-alias-status-success};
48
+ --hermes-toast-warning-icon-color: #{tokens.$hermes-alias-status-warning-dark};
49
+ --hermes-toast-danger-icon-color: #{tokens.$hermes-alias-status-danger};
50
+
51
+ --hermes-toast-action-color: #{tokens.$hermes-alias-typography-color-400};
52
+ --hermes-toast-close-color: var(--hermes-close-color);
53
+ --hermes-toast-close-color-hover: var(--hermes-close-color-hover);
54
+ }
55
+ }
56
+ }
@@ -1,190 +1,190 @@
1
- /*
2
- * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
3
- * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4
- * This software is released under MIT license.
5
- * The full license information can be found in LICENSE in the root directory of this project.
6
- */
7
-
8
- @use 'sass:map';
9
- @use 'sass:meta';
10
- @use '../styles/mixins';
11
- @use '../styles/variables/variables';
12
- @use '../styles/variables/variables.density' as density;
13
- @use '../styles/core/tokens/variables.tokens' as tokens;
14
- @use 'variables.toast' as toast-variables;
15
-
16
- @include meta.load-css('properties.toast');
17
- @include mixins.exports('toast.clarity') {
18
- // Mirrors shadcn's toast primitive: 500ms, ease-out-expo-ish curve. Kept as a raw
19
- // value (not $hermes-global-animation-easing-secondary, which is a bouncier overshoot
20
- // curve) so the slide feels identical to the shadcn reference. Also set in
21
- // toaster.ts's Angular `animations: []` for the enter/leave transitions - keep both
22
- // in sync if this ever changes.
23
- $toast-transition-duration: tokens.$hermes-global-animation-duration-slow;
24
- $toast-transition-easing: cubic-bezier(0.22, 1, 0.36, 1);
25
-
26
- hermes-toaster {
27
- position: fixed;
28
- z-index: map.get(variables.$hermes-layers, toast);
29
- inset-block-end: toast-variables.$hermes-toast-viewport-inset;
30
- inset-inline-end: toast-variables.$hermes-toast-viewport-inset;
31
- width: 100%;
32
- max-width: toast-variables.$hermes-toast-max-width;
33
- // The viewport itself never intercepts clicks; only the toasts inside it do, so
34
- // page content underneath the empty parts of the stack stays fully interactive.
35
- pointer-events: none;
36
-
37
- // corners: shadcn's <Toaster/> defaults to bottom, `sm:right-4 sm:left-auto` -
38
- // bottom-right below is the hermes default, the rest are opt-in via
39
- // [hermesToasterPosition].
40
- &[data-position='bottom-left'] {
41
- inset-inline-end: auto;
42
- inset-inline-start: toast-variables.$hermes-toast-viewport-inset;
43
- }
44
-
45
- &[data-position='top-right'],
46
- &[data-position='top-left'] {
47
- inset-block-end: auto;
48
- inset-block-start: toast-variables.$hermes-toast-viewport-inset;
49
- }
50
-
51
- &[data-position='top-left'] {
52
- inset-inline-end: auto;
53
- inset-inline-start: toast-variables.$hermes-toast-viewport-inset;
54
- }
55
-
56
- @media screen and (max-width: map.get(variables.$hermes-grid-breakpoints, sm)) {
57
- inset-inline: toast-variables.$hermes-toast-viewport-inset;
58
- max-width: none;
59
- }
60
- }
61
-
62
- hermes-toast-item {
63
- // Per-item stacking state. --hermes-toast-index (0 = frontmost/newest) is set by
64
- // toast-item.ts; --hermes-toast-height is kept in sync with the item's real
65
- // rendered height by a ResizeObserver in the same file, falling back to a fixed
66
- // estimate for the single frame before that first measurement lands.
67
- --index: var(--hermes-toast-index, 0);
68
- --height: var(--hermes-toast-height, #{toast-variables.$hermes-toast-fallback-height});
69
- // shadcn's stack: each toast behind the front one shrinks by 10% and only peeks
70
- // out by --peek, until the group is expanded (hovered/focused).
71
- --scale: max(0, calc(1 - (var(--index) * 0.1)));
72
- --shrink: calc(1 - var(--scale));
73
-
74
- position: absolute;
75
- inset-inline: 0;
76
- inset-block-end: 0;
77
- display: block;
78
- width: 100%;
79
- transform-origin: bottom center;
80
- transform: translateY(
81
- calc((var(--index) * #{toast-variables.$hermes-toast-peek} * -1) - (var(--shrink) * var(--height)))
82
- )
83
- scale(var(--scale));
84
- transition:
85
- transform $toast-transition-duration $toast-transition-easing,
86
- opacity tokens.$hermes-global-animation-duration-quick ease;
87
- z-index: calc(1000 - var(--index));
88
- pointer-events: auto;
89
-
90
- &.limited {
91
- opacity: 0;
92
- pointer-events: none;
93
- }
94
- }
95
-
96
- hermes-toaster.expanded hermes-toast-item {
97
- transform: translateY(calc(var(--index) * (var(--height) + #{toast-variables.$hermes-toast-gap}) * -1));
98
- }
99
-
100
- .toast {
101
- display: flex;
102
- align-items: center;
103
- gap: toast-variables.$hermes-toast-content-gap;
104
- width: 100%;
105
- box-sizing: border-box;
106
- padding: toast-variables.$hermes-toast-content-padding;
107
- background-color: toast-variables.$hermes-toast-bg-color;
108
- color: toast-variables.$hermes-toast-color;
109
- border: toast-variables.$hermes-toast-border-width solid toast-variables.$hermes-toast-border-color;
110
- border-radius: toast-variables.$hermes-toast-border-radius;
111
- box-shadow: toast-variables.$hermes-toast-box-shadow;
112
-
113
- @include mixins.generate-typography-token('BODY-14-RG-STD');
114
- }
115
-
116
- .toast-icon {
117
- flex: 0 0 auto;
118
-
119
- @include mixins.equilateral(toast-variables.$hermes-toast-icon-size);
120
-
121
- &.spinner {
122
- @include mixins.min-equilateral(toast-variables.$hermes-toast-icon-size);
123
- }
124
- }
125
-
126
- .toast-info .toast-icon {
127
- fill: toast-variables.$hermes-toast-info-icon-color;
128
- }
129
-
130
- .toast-success .toast-icon {
131
- fill: toast-variables.$hermes-toast-success-icon-color;
132
- }
133
-
134
- .toast-warning .toast-icon {
135
- fill: toast-variables.$hermes-toast-warning-icon-color;
136
- }
137
-
138
- .toast-danger .toast-icon {
139
- fill: toast-variables.$hermes-toast-danger-icon-color;
140
- }
141
-
142
- .toast-content {
143
- flex: 1 1 auto;
144
- min-width: 0;
145
- display: flex;
146
- flex-direction: column;
147
- gap: density.$hermes-base-gap-xs;
148
- }
149
-
150
- .toast-title {
151
- @include mixins.generate-typography-token('BODY-14-MD-STD');
152
-
153
- color: toast-variables.$hermes-toast-color;
154
- }
155
-
156
- .toast-description {
157
- @include mixins.generate-typography-token('BODY-14-RG-STD');
158
-
159
- color: toast-variables.$hermes-toast-description-color;
160
- }
161
-
162
- .toast-action {
163
- flex: 0 0 auto;
164
- color: toast-variables.$hermes-toast-action-color;
165
- text-decoration: underline;
166
- white-space: nowrap;
167
- }
168
-
169
- .toast-close {
170
- flex: 0 0 auto;
171
- float: none;
172
- color: toast-variables.$hermes-toast-close-color;
173
-
174
- @include mixins.equilateral(density.$hermes-base-icon-size-s);
175
-
176
- hermes-icon,
177
- hermes-icon {
178
- fill: toast-variables.$hermes-toast-close-color;
179
- }
180
-
181
- &:hover {
182
- color: toast-variables.$hermes-toast-close-color-hover;
183
-
184
- hermes-icon,
185
- hermes-icon {
186
- fill: toast-variables.$hermes-toast-close-color-hover;
187
- }
188
- }
189
- }
190
- }
1
+ /*
2
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
3
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4
+ * This software is released under MIT license.
5
+ * The full license information can be found in LICENSE in the root directory of this project.
6
+ */
7
+
8
+ @use 'sass:map';
9
+ @use 'sass:meta';
10
+ @use '../styles/mixins';
11
+ @use '../styles/variables/variables';
12
+ @use '../styles/variables/variables.density' as density;
13
+ @use '../styles/core/tokens/variables.tokens' as tokens;
14
+ @use 'variables.toast' as toast-variables;
15
+
16
+ @include meta.load-css('properties.toast');
17
+ @include mixins.exports('toast.clarity') {
18
+ // Mirrors shadcn's toast primitive: 500ms, ease-out-expo-ish curve. Kept as a raw
19
+ // value (not $hermes-global-animation-easing-secondary, which is a bouncier overshoot
20
+ // curve) so the slide feels identical to the shadcn reference. Also set in
21
+ // toaster.ts's Angular `animations: []` for the enter/leave transitions - keep both
22
+ // in sync if this ever changes.
23
+ $toast-transition-duration: tokens.$hermes-global-animation-duration-slow;
24
+ $toast-transition-easing: cubic-bezier(0.22, 1, 0.36, 1);
25
+
26
+ hermes-toaster {
27
+ position: fixed;
28
+ z-index: map.get(variables.$hermes-layers, toast);
29
+ inset-block-end: toast-variables.$hermes-toast-viewport-inset;
30
+ inset-inline-end: toast-variables.$hermes-toast-viewport-inset;
31
+ width: 100%;
32
+ max-width: toast-variables.$hermes-toast-max-width;
33
+ // The viewport itself never intercepts clicks; only the toasts inside it do, so
34
+ // page content underneath the empty parts of the stack stays fully interactive.
35
+ pointer-events: none;
36
+
37
+ // corners: shadcn's <Toaster/> defaults to bottom, `sm:right-4 sm:left-auto` -
38
+ // bottom-right below is the hermes default, the rest are opt-in via
39
+ // [hermesToasterPosition].
40
+ &[data-position='bottom-left'] {
41
+ inset-inline-end: auto;
42
+ inset-inline-start: toast-variables.$hermes-toast-viewport-inset;
43
+ }
44
+
45
+ &[data-position='top-right'],
46
+ &[data-position='top-left'] {
47
+ inset-block-end: auto;
48
+ inset-block-start: toast-variables.$hermes-toast-viewport-inset;
49
+ }
50
+
51
+ &[data-position='top-left'] {
52
+ inset-inline-end: auto;
53
+ inset-inline-start: toast-variables.$hermes-toast-viewport-inset;
54
+ }
55
+
56
+ @media screen and (max-width: map.get(variables.$hermes-grid-breakpoints, sm)) {
57
+ inset-inline: toast-variables.$hermes-toast-viewport-inset;
58
+ max-width: none;
59
+ }
60
+ }
61
+
62
+ hermes-toast-item {
63
+ // Per-item stacking state. --hermes-toast-index (0 = frontmost/newest) is set by
64
+ // toast-item.ts; --hermes-toast-height is kept in sync with the item's real
65
+ // rendered height by a ResizeObserver in the same file, falling back to a fixed
66
+ // estimate for the single frame before that first measurement lands.
67
+ --index: var(--hermes-toast-index, 0);
68
+ --height: var(--hermes-toast-height, #{toast-variables.$hermes-toast-fallback-height});
69
+ // shadcn's stack: each toast behind the front one shrinks by 10% and only peeks
70
+ // out by --peek, until the group is expanded (hovered/focused).
71
+ --scale: max(0, calc(1 - (var(--index) * 0.1)));
72
+ --shrink: calc(1 - var(--scale));
73
+
74
+ position: absolute;
75
+ inset-inline: 0;
76
+ inset-block-end: 0;
77
+ display: block;
78
+ width: 100%;
79
+ transform-origin: bottom center;
80
+ transform: translateY(
81
+ calc((var(--index) * #{toast-variables.$hermes-toast-peek} * -1) - (var(--shrink) * var(--height)))
82
+ )
83
+ scale(var(--scale));
84
+ transition:
85
+ transform $toast-transition-duration $toast-transition-easing,
86
+ opacity tokens.$hermes-global-animation-duration-quick ease;
87
+ z-index: calc(1000 - var(--index));
88
+ pointer-events: auto;
89
+
90
+ &.limited {
91
+ opacity: 0;
92
+ pointer-events: none;
93
+ }
94
+ }
95
+
96
+ hermes-toaster.expanded hermes-toast-item {
97
+ transform: translateY(calc(var(--index) * (var(--height) + #{toast-variables.$hermes-toast-gap}) * -1));
98
+ }
99
+
100
+ .toast {
101
+ display: flex;
102
+ align-items: center;
103
+ gap: toast-variables.$hermes-toast-content-gap;
104
+ width: 100%;
105
+ box-sizing: border-box;
106
+ padding: toast-variables.$hermes-toast-content-padding;
107
+ background-color: toast-variables.$hermes-toast-bg-color;
108
+ color: toast-variables.$hermes-toast-color;
109
+ border: toast-variables.$hermes-toast-border-width solid toast-variables.$hermes-toast-border-color;
110
+ border-radius: toast-variables.$hermes-toast-border-radius;
111
+ box-shadow: toast-variables.$hermes-toast-box-shadow;
112
+
113
+ @include mixins.generate-typography-token('BODY-14-RG-STD');
114
+ }
115
+
116
+ .toast-icon {
117
+ flex: 0 0 auto;
118
+
119
+ @include mixins.equilateral(toast-variables.$hermes-toast-icon-size);
120
+
121
+ &.spinner {
122
+ @include mixins.min-equilateral(toast-variables.$hermes-toast-icon-size);
123
+ }
124
+ }
125
+
126
+ .toast-info .toast-icon {
127
+ fill: toast-variables.$hermes-toast-info-icon-color;
128
+ }
129
+
130
+ .toast-success .toast-icon {
131
+ fill: toast-variables.$hermes-toast-success-icon-color;
132
+ }
133
+
134
+ .toast-warning .toast-icon {
135
+ fill: toast-variables.$hermes-toast-warning-icon-color;
136
+ }
137
+
138
+ .toast-danger .toast-icon {
139
+ fill: toast-variables.$hermes-toast-danger-icon-color;
140
+ }
141
+
142
+ .toast-content {
143
+ flex: 1 1 auto;
144
+ min-width: 0;
145
+ display: flex;
146
+ flex-direction: column;
147
+ gap: density.$hermes-base-gap-xs;
148
+ }
149
+
150
+ .toast-title {
151
+ @include mixins.generate-typography-token('BODY-14-MD-STD');
152
+
153
+ color: toast-variables.$hermes-toast-color;
154
+ }
155
+
156
+ .toast-description {
157
+ @include mixins.generate-typography-token('BODY-14-RG-STD');
158
+
159
+ color: toast-variables.$hermes-toast-description-color;
160
+ }
161
+
162
+ .toast-action {
163
+ flex: 0 0 auto;
164
+ color: toast-variables.$hermes-toast-action-color;
165
+ text-decoration: underline;
166
+ white-space: nowrap;
167
+ }
168
+
169
+ .toast-close {
170
+ flex: 0 0 auto;
171
+ float: none;
172
+ color: toast-variables.$hermes-toast-close-color;
173
+
174
+ @include mixins.equilateral(density.$hermes-base-icon-size-s);
175
+
176
+ hermes-icon,
177
+ hermes-icon {
178
+ fill: toast-variables.$hermes-toast-close-color;
179
+ }
180
+
181
+ &:hover {
182
+ color: toast-variables.$hermes-toast-close-color-hover;
183
+
184
+ hermes-icon,
185
+ hermes-icon {
186
+ fill: toast-variables.$hermes-toast-close-color-hover;
187
+ }
188
+ }
189
+ }
190
+ }
@@ -1,33 +1,33 @@
1
- /*
2
- * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
3
- * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4
- * This software is released under MIT license.
5
- * The full license information can be found in LICENSE in the root directory of this project.
6
- */
7
-
8
- // Usage: ./_toast.clarity.scss
9
- $hermes-toast-viewport-inset: var(--hermes-toast-viewport-inset) !default;
10
- $hermes-toast-max-width: var(--hermes-toast-max-width) !default;
11
- $hermes-toast-gap: var(--hermes-toast-gap) !default;
12
- $hermes-toast-peek: var(--hermes-toast-peek) !default;
13
- $hermes-toast-fallback-height: var(--hermes-toast-fallback-height) !default;
14
- $hermes-toast-content-padding: var(--hermes-toast-content-padding) !default;
15
- $hermes-toast-content-gap: var(--hermes-toast-content-gap) !default;
16
- $hermes-toast-icon-size: var(--hermes-toast-icon-size) !default;
17
- $hermes-toast-border-radius: var(--hermes-toast-border-radius) !default;
18
-
19
- $hermes-toast-bg-color: var(--hermes-toast-bg-color) !default;
20
- $hermes-toast-color: var(--hermes-toast-color) !default;
21
- $hermes-toast-description-color: var(--hermes-toast-description-color) !default;
22
- $hermes-toast-border-color: var(--hermes-toast-border-color) !default;
23
- $hermes-toast-border-width: var(--hermes-toast-border-width) !default;
24
- $hermes-toast-box-shadow: var(--hermes-toast-box-shadow) !default;
25
-
26
- $hermes-toast-info-icon-color: var(--hermes-toast-info-icon-color) !default;
27
- $hermes-toast-success-icon-color: var(--hermes-toast-success-icon-color) !default;
28
- $hermes-toast-warning-icon-color: var(--hermes-toast-warning-icon-color) !default;
29
- $hermes-toast-danger-icon-color: var(--hermes-toast-danger-icon-color) !default;
30
-
31
- $hermes-toast-action-color: var(--hermes-toast-action-color) !default;
32
- $hermes-toast-close-color: var(--hermes-toast-close-color) !default;
33
- $hermes-toast-close-color-hover: var(--hermes-toast-close-color-hover) !default;
1
+ /*
2
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
3
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
4
+ * This software is released under MIT license.
5
+ * The full license information can be found in LICENSE in the root directory of this project.
6
+ */
7
+
8
+ // Usage: ./_toast.clarity.scss
9
+ $hermes-toast-viewport-inset: var(--hermes-toast-viewport-inset) !default;
10
+ $hermes-toast-max-width: var(--hermes-toast-max-width) !default;
11
+ $hermes-toast-gap: var(--hermes-toast-gap) !default;
12
+ $hermes-toast-peek: var(--hermes-toast-peek) !default;
13
+ $hermes-toast-fallback-height: var(--hermes-toast-fallback-height) !default;
14
+ $hermes-toast-content-padding: var(--hermes-toast-content-padding) !default;
15
+ $hermes-toast-content-gap: var(--hermes-toast-content-gap) !default;
16
+ $hermes-toast-icon-size: var(--hermes-toast-icon-size) !default;
17
+ $hermes-toast-border-radius: var(--hermes-toast-border-radius) !default;
18
+
19
+ $hermes-toast-bg-color: var(--hermes-toast-bg-color) !default;
20
+ $hermes-toast-color: var(--hermes-toast-color) !default;
21
+ $hermes-toast-description-color: var(--hermes-toast-description-color) !default;
22
+ $hermes-toast-border-color: var(--hermes-toast-border-color) !default;
23
+ $hermes-toast-border-width: var(--hermes-toast-border-width) !default;
24
+ $hermes-toast-box-shadow: var(--hermes-toast-box-shadow) !default;
25
+
26
+ $hermes-toast-info-icon-color: var(--hermes-toast-info-icon-color) !default;
27
+ $hermes-toast-success-icon-color: var(--hermes-toast-success-icon-color) !default;
28
+ $hermes-toast-warning-icon-color: var(--hermes-toast-warning-icon-color) !default;
29
+ $hermes-toast-danger-icon-color: var(--hermes-toast-danger-icon-color) !default;
30
+
31
+ $hermes-toast-action-color: var(--hermes-toast-action-color) !default;
32
+ $hermes-toast-close-color: var(--hermes-toast-close-color) !default;
33
+ $hermes-toast-close-color-hover: var(--hermes-toast-close-color-hover) !default;
@@ -0,0 +1,24 @@
1
+ import * as i0 from '@angular/core';
2
+
3
+ /**
4
+ * A styled container for grouping related content. Compose the inside with
5
+ * `hermes-layout`, `hermes-text` and `hermes-divider` (with the
6
+ * `hermes-card-remove-margin` attribute to bleed a divider edge-to-edge).
7
+ *
8
+ * ```html
9
+ * <hermes-card aria-labelledby="my-card-title">
10
+ * <div hermes-layout="vertical gap:md">
11
+ * <h2 id="my-card-title" hermes-text="section">Card title</h2>
12
+ * <hermes-divider hermes-card-remove-margin></hermes-divider>
13
+ * <div hermes-text="body light">Card content</div>
14
+ * </div>
15
+ * </hermes-card>
16
+ * ```
17
+ */
18
+ declare class HermesCard {
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<HermesCard, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<HermesCard, "hermes-card", never, {}, {}, never, ["*"], true, never>;
21
+ }
22
+
23
+ export { HermesCard };
24
+ //# sourceMappingURL=hermes-ui-angular-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hermes-ui-angular-card.d.ts","sources":["../../../card/card.ts"],"mappings":";;AASA;;;;;;;;;;;;;;AAcG;AACH,cAUa,UAAU;yCAAV,UAAU;2CAAV,UAAU;AAAG;;","names":[]}