@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
@@ -4,8 +4,12 @@ import { HermesAccordionModule } from '@hermes-ui/angular/accordion';
4
4
  export * from '@hermes-ui/angular/accordion';
5
5
  import { HermesButtonModule } from '@hermes-ui/angular/button';
6
6
  export * from '@hermes-ui/angular/button';
7
+ import { HermesCard } from '@hermes-ui/angular/card';
8
+ export * from '@hermes-ui/angular/card';
7
9
  import { HermesDataModule } from '@hermes-ui/angular/data';
8
10
  export * from '@hermes-ui/angular/data';
11
+ import { HermesDivider } from '@hermes-ui/angular/divider';
12
+ export * from '@hermes-ui/angular/divider';
9
13
  import { HermesEmphasisModule } from '@hermes-ui/angular/emphasis';
10
14
  export * from '@hermes-ui/angular/emphasis';
11
15
  import { HermesFormsModule } from '@hermes-ui/angular/forms';
@@ -16,6 +20,8 @@ import { HermesLayoutModule } from '@hermes-ui/angular/layout';
16
20
  export * from '@hermes-ui/angular/layout';
17
21
  import { HermesModalModule, HermesSidePanelModule } from '@hermes-ui/angular/modal';
18
22
  export * from '@hermes-ui/angular/modal';
23
+ import { HermesPaginationModule } from '@hermes-ui/angular/pagination';
24
+ export * from '@hermes-ui/angular/pagination';
19
25
  import { HermesPopoverModule } from '@hermes-ui/angular/popover';
20
26
  export * from '@hermes-ui/angular/popover';
21
27
  import { HermesPopoverModuleNext } from '@hermes-ui/angular/popover/common';
@@ -43,11 +49,14 @@ export * from '@hermes-ui/angular/collapsible-panel';
43
49
  */
44
50
  class HermesModule {
45
51
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
46
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.22", ngImport: i0, type: HermesModule, imports: [HermesIcon], exports: [HermesEmphasisModule,
52
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.22", ngImport: i0, type: HermesModule, imports: [HermesIcon, HermesDivider, HermesCard], exports: [HermesEmphasisModule,
47
53
  HermesDataModule,
54
+ HermesCard,
55
+ HermesDivider,
48
56
  HermesIcon,
49
57
  HermesIconModule,
50
58
  HermesModalModule,
59
+ HermesPaginationModule,
51
60
  HermesLoadingModule,
52
61
  HermesConditionalModule,
53
62
  HermesFocusOnViewInitModule,
@@ -64,10 +73,11 @@ class HermesModule {
64
73
  HermesPopoverModuleNext,
65
74
  HermesTimelineModule,
66
75
  HermesToastModule] }); }
67
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesModule, imports: [HermesIcon, HermesEmphasisModule,
76
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesModule, imports: [HermesIcon, HermesDivider, HermesCard, HermesEmphasisModule,
68
77
  HermesDataModule,
69
78
  HermesIconModule,
70
79
  HermesModalModule,
80
+ HermesPaginationModule,
71
81
  HermesLoadingModule,
72
82
  HermesConditionalModule,
73
83
  HermesFocusOnViewInitModule,
@@ -88,13 +98,16 @@ class HermesModule {
88
98
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesModule, decorators: [{
89
99
  type: NgModule,
90
100
  args: [{
91
- imports: [HermesIcon],
101
+ imports: [HermesIcon, HermesDivider, HermesCard],
92
102
  exports: [
93
103
  HermesEmphasisModule,
94
104
  HermesDataModule,
105
+ HermesCard,
106
+ HermesDivider,
95
107
  HermesIcon,
96
108
  HermesIconModule,
97
109
  HermesModalModule,
110
+ HermesPaginationModule,
98
111
  HermesLoadingModule,
99
112
  HermesConditionalModule,
100
113
  HermesFocusOnViewInitModule,
@@ -1 +1 @@
1
- {"version":3,"file":"hermes-ui-angular.mjs","sources":["../../../hermes-angular.module.ts","../../../index.ts","../../../hermes-ui-angular.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\nimport { NgModule } from '@angular/core';\nimport { HermesAccordionModule } from '@hermes-ui/angular/accordion';\nimport { HermesButtonModule } from '@hermes-ui/angular/button';\nimport { HermesDataModule } from '@hermes-ui/angular/data';\nimport { HermesEmphasisModule } from '@hermes-ui/angular/emphasis';\nimport { HermesFormsModule } from '@hermes-ui/angular/forms';\nimport { HermesIcon, HermesIconModule } from '@hermes-ui/angular/icon';\nimport { HermesLayoutModule } from '@hermes-ui/angular/layout';\nimport { HermesModalModule, HermesSidePanelModule } from '@hermes-ui/angular/modal';\nimport { HermesPopoverModule } from '@hermes-ui/angular/popover';\nimport { HermesPopoverModuleNext } from '@hermes-ui/angular/popover/common';\nimport { HermesProgressBarModule } from '@hermes-ui/angular/progress/progress-bars';\nimport { HermesSpinnerModule } from '@hermes-ui/angular/progress/spinner';\nimport { HermesStepperModule } from '@hermes-ui/angular/stepper';\nimport { HermesTimelineModule } from '@hermes-ui/angular/timeline';\nimport { HermesToastModule } from '@hermes-ui/angular/toast';\nimport { HermesConditionalModule, HermesFocusOnViewInitModule, HermesLoadingModule } from '@hermes-ui/angular/utils';\nimport { HermesWizardModule } from '@hermes-ui/angular/wizard';\n\n@NgModule({\n imports: [HermesIcon],\n exports: [\n HermesEmphasisModule,\n HermesDataModule,\n HermesIcon,\n HermesIconModule,\n HermesModalModule,\n HermesLoadingModule,\n HermesConditionalModule,\n HermesFocusOnViewInitModule,\n HermesButtonModule,\n HermesFormsModule,\n HermesLayoutModule,\n HermesPopoverModule,\n HermesWizardModule,\n HermesSidePanelModule,\n HermesAccordionModule,\n HermesStepperModule,\n HermesSpinnerModule,\n HermesProgressBarModule,\n HermesPopoverModuleNext,\n HermesTimelineModule,\n HermesToastModule,\n ],\n})\nexport class HermesModule {}\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 './hermes-angular.module';\n\nexport * from '@hermes-ui/angular/button';\nexport * from '@hermes-ui/angular/data';\nexport * from '@hermes-ui/angular/emphasis';\nexport * from '@hermes-ui/angular/forms';\nexport * from '@hermes-ui/angular/icon';\nexport * from '@hermes-ui/angular/layout';\nexport * from '@hermes-ui/angular/modal';\nexport * from '@hermes-ui/angular/popover';\nexport * from '@hermes-ui/angular/utils';\nexport * from '@hermes-ui/angular/wizard';\nexport * from '@hermes-ui/angular/collapsible-panel';\nexport * from '@hermes-ui/angular/accordion';\nexport * from '@hermes-ui/angular/stepper';\nexport * from '@hermes-ui/angular/progress/spinner';\nexport * from '@hermes-ui/angular/progress/progress-bars';\nexport * from '@hermes-ui/angular/timeline';\nexport * from '@hermes-ui/angular/toast';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;MA+CU,YAAY,CAAA;+GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAZ,YAAY,EAAA,OAAA,EAAA,CAzBb,UAAU,CAAA,EAAA,OAAA,EAAA,CAElB,oBAAoB;YACpB,gBAAgB;YAChB,UAAU;YACV,gBAAgB;YAChB,iBAAiB;YACjB,mBAAmB;YACnB,uBAAuB;YACvB,2BAA2B;YAC3B,kBAAkB;YAClB,iBAAiB;YACjB,kBAAkB;YAClB,mBAAmB;YACnB,kBAAkB;YAClB,qBAAqB;YACrB,qBAAqB;YACrB,mBAAmB;YACnB,mBAAmB;YACnB,uBAAuB;YACvB,uBAAuB;YACvB,oBAAoB;YACpB,iBAAiB,CAAA,EAAA,CAAA,CAAA;gHAGR,YAAY,EAAA,OAAA,EAAA,CAzBb,UAAU,EAElB,oBAAoB;YACpB,gBAAgB;YAEhB,gBAAgB;YAChB,iBAAiB;YACjB,mBAAmB;YACnB,uBAAuB;YACvB,2BAA2B;YAC3B,kBAAkB;YAClB,iBAAiB;YACjB,kBAAkB;YAClB,mBAAmB;YACnB,kBAAkB;YAClB,qBAAqB;YACrB,qBAAqB;YACrB,mBAAmB;YACnB,mBAAmB;YACnB,uBAAuB;YACvB,uBAAuB;YACvB,oBAAoB;YACpB,iBAAiB,CAAA,EAAA,CAAA,CAAA;;4FAGR,YAAY,EAAA,UAAA,EAAA,CAAA;kBA1BxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,UAAU,CAAC;AACrB,oBAAA,OAAO,EAAE;wBACP,oBAAoB;wBACpB,gBAAgB;wBAChB,UAAU;wBACV,gBAAgB;wBAChB,iBAAiB;wBACjB,mBAAmB;wBACnB,uBAAuB;wBACvB,2BAA2B;wBAC3B,kBAAkB;wBAClB,iBAAiB;wBACjB,kBAAkB;wBAClB,mBAAmB;wBACnB,kBAAkB;wBAClB,qBAAqB;wBACrB,qBAAqB;wBACrB,mBAAmB;wBACnB,mBAAmB;wBACnB,uBAAuB;wBACvB,uBAAuB;wBACvB,oBAAoB;wBACpB,iBAAiB;AAClB,qBAAA;AACF,iBAAA;;;ACnDD;;;;;AAKG;;ACLH;;AAEG;;"}
1
+ {"version":3,"file":"hermes-ui-angular.mjs","sources":["../../../hermes-angular.module.ts","../../../index.ts","../../../hermes-ui-angular.ts"],"sourcesContent":["/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { NgModule } from '@angular/core';\r\nimport { HermesAccordionModule } from '@hermes-ui/angular/accordion';\r\nimport { HermesButtonModule } from '@hermes-ui/angular/button';\r\nimport { HermesCard } from '@hermes-ui/angular/card';\r\nimport { HermesDataModule } from '@hermes-ui/angular/data';\r\nimport { HermesDivider } from '@hermes-ui/angular/divider';\r\nimport { HermesEmphasisModule } from '@hermes-ui/angular/emphasis';\r\nimport { HermesFormsModule } from '@hermes-ui/angular/forms';\r\nimport { HermesIcon, HermesIconModule } from '@hermes-ui/angular/icon';\r\nimport { HermesLayoutModule } from '@hermes-ui/angular/layout';\r\nimport { HermesModalModule, HermesSidePanelModule } from '@hermes-ui/angular/modal';\r\nimport { HermesPaginationModule } from '@hermes-ui/angular/pagination';\r\nimport { HermesPopoverModule } from '@hermes-ui/angular/popover';\r\nimport { HermesPopoverModuleNext } from '@hermes-ui/angular/popover/common';\r\nimport { HermesProgressBarModule } from '@hermes-ui/angular/progress/progress-bars';\r\nimport { HermesSpinnerModule } from '@hermes-ui/angular/progress/spinner';\r\nimport { HermesStepperModule } from '@hermes-ui/angular/stepper';\r\nimport { HermesTimelineModule } from '@hermes-ui/angular/timeline';\r\nimport { HermesToastModule } from '@hermes-ui/angular/toast';\r\nimport { HermesConditionalModule, HermesFocusOnViewInitModule, HermesLoadingModule } from '@hermes-ui/angular/utils';\r\nimport { HermesWizardModule } from '@hermes-ui/angular/wizard';\r\n\r\n@NgModule({\r\n imports: [HermesIcon, HermesDivider, HermesCard],\r\n exports: [\r\n HermesEmphasisModule,\r\n HermesDataModule,\r\n HermesCard,\r\n HermesDivider,\r\n HermesIcon,\r\n HermesIconModule,\r\n HermesModalModule,\r\n HermesPaginationModule,\r\n HermesLoadingModule,\r\n HermesConditionalModule,\r\n HermesFocusOnViewInitModule,\r\n HermesButtonModule,\r\n HermesFormsModule,\r\n HermesLayoutModule,\r\n HermesPopoverModule,\r\n HermesWizardModule,\r\n HermesSidePanelModule,\r\n HermesAccordionModule,\r\n HermesStepperModule,\r\n HermesSpinnerModule,\r\n HermesProgressBarModule,\r\n HermesPopoverModuleNext,\r\n HermesTimelineModule,\r\n HermesToastModule,\r\n ],\r\n})\r\nexport class HermesModule {}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nexport * from './hermes-angular.module';\r\n\r\nexport * from '@hermes-ui/angular/button';\r\nexport * from '@hermes-ui/angular/card';\r\nexport * from '@hermes-ui/angular/data';\r\nexport * from '@hermes-ui/angular/divider';\r\nexport * from '@hermes-ui/angular/emphasis';\r\nexport * from '@hermes-ui/angular/forms';\r\nexport * from '@hermes-ui/angular/icon';\r\nexport * from '@hermes-ui/angular/layout';\r\nexport * from '@hermes-ui/angular/modal';\r\nexport * from '@hermes-ui/angular/pagination';\r\nexport * from '@hermes-ui/angular/popover';\r\nexport * from '@hermes-ui/angular/utils';\r\nexport * from '@hermes-ui/angular/wizard';\r\nexport * from '@hermes-ui/angular/collapsible-panel';\r\nexport * from '@hermes-ui/angular/accordion';\r\nexport * from '@hermes-ui/angular/stepper';\r\nexport * from '@hermes-ui/angular/progress/spinner';\r\nexport * from '@hermes-ui/angular/progress/progress-bars';\r\nexport * from '@hermes-ui/angular/timeline';\r\nexport * from '@hermes-ui/angular/toast';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;MAqDU,YAAY,CAAA;+GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YA5Bb,UAAU,EAAE,aAAa,EAAE,UAAU,aAE7C,oBAAoB;YACpB,gBAAgB;YAChB,UAAU;YACV,aAAa;YACb,UAAU;YACV,gBAAgB;YAChB,iBAAiB;YACjB,sBAAsB;YACtB,mBAAmB;YACnB,uBAAuB;YACvB,2BAA2B;YAC3B,kBAAkB;YAClB,iBAAiB;YACjB,kBAAkB;YAClB,mBAAmB;YACnB,kBAAkB;YAClB,qBAAqB;YACrB,qBAAqB;YACrB,mBAAmB;YACnB,mBAAmB;YACnB,uBAAuB;YACvB,uBAAuB;YACvB,oBAAoB;YACpB,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAGR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YA5Bb,UAAU,EAAE,aAAa,EAAE,UAAU,EAE7C,oBAAoB;YACpB,gBAAgB;YAIhB,gBAAgB;YAChB,iBAAiB;YACjB,sBAAsB;YACtB,mBAAmB;YACnB,uBAAuB;YACvB,2BAA2B;YAC3B,kBAAkB;YAClB,iBAAiB;YACjB,kBAAkB;YAClB,mBAAmB;YACnB,kBAAkB;YAClB,qBAAqB;YACrB,qBAAqB;YACrB,mBAAmB;YACnB,mBAAmB;YACnB,uBAAuB;YACvB,uBAAuB;YACvB,oBAAoB;YACpB,iBAAiB,CAAA,EAAA,CAAA,CAAA;;4FAGR,YAAY,EAAA,UAAA,EAAA,CAAA;kBA7BxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC;AAChD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;wBACpB,gBAAgB;wBAChB,UAAU;wBACV,aAAa;wBACb,UAAU;wBACV,gBAAgB;wBAChB,iBAAiB;wBACjB,sBAAsB;wBACtB,mBAAmB;wBACnB,uBAAuB;wBACvB,2BAA2B;wBAC3B,kBAAkB;wBAClB,iBAAiB;wBACjB,kBAAkB;wBAClB,mBAAmB;wBACnB,kBAAkB;wBAClB,qBAAqB;wBACrB,qBAAqB;wBACrB,mBAAmB;wBACnB,mBAAmB;wBACnB,uBAAuB;wBACvB,uBAAuB;wBACvB,oBAAoB;wBACpB,iBAAiB;AAClB,qBAAA;AACF,iBAAA;;;ACzDD;;;;;AAKG;;ACLH;;AAEG;;"}
package/hermes-ui.scss CHANGED
@@ -1,7 +1,7 @@
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
- @use './main';
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
+ @use './main';
@@ -7,7 +7,6 @@
7
7
 
8
8
  @use '../../styles/core/tokens/variables.tokens' as tokens;
9
9
  @use 'variables.vertical-nav' as vertical-nav-variables;
10
- @use '../tabs/mixins.tabs' as tabs-mixins;
11
10
 
12
11
  @mixin vertical-nav-divider($position: 'border-top') {
13
12
  #{$position}: vertical-nav-variables.$hermes-vertical-nav-trigger-divider-border-width solid
@@ -15,17 +14,14 @@
15
14
  }
16
15
  @mixin vertical-nav-link-colors() {
17
16
  color: vertical-nav-variables.$hermes-vertical-nav-item-color;
18
-
19
- @include tabs-mixins.nav-link-border-appearance('left', true);
17
+ // shadcn sidebar: item ativo/hover é um "pill" de fundo arredondado, sem a
18
+ // barra de borda à esquerda que o Clarity usava (nav-link-border-appearance).
19
+ border-radius: vertical-nav-variables.$hermes-vertical-nav-item-border-radius;
20
20
 
21
21
  &.active {
22
22
  color: vertical-nav-variables.$hermes-vertical-nav-item-active-color;
23
23
  background-color: vertical-nav-variables.$hermes-vertical-nav-selected-bg-color;
24
24
 
25
- &::before {
26
- border-color: tokens.$hermes-alias-object-interaction-background-highlight;
27
- }
28
-
29
25
  .nav-icon {
30
26
  fill: vertical-nav-variables.$hermes-vertical-nav-icon-active-color;
31
27
  }
@@ -17,6 +17,11 @@
17
17
  --hermes-vertical-nav-item-top-level-font-weight: #{tokens.$hermes-alias-typography-font-weight-semibold};
18
18
  --hermes-vertical-nav-header-font-weight: #{tokens.$hermes-alias-typography-font-weight-semibold};
19
19
  --hermes-vertical-nav-trigger-divider-border-width: #{tokens.$hermes-global-space-1};
20
+ // shadcn sidebar: item ativo/hover vira um pill arredondado (rounded-md),
21
+ // e a lista de itens ganha um respiro (inset) da borda do container em
22
+ // vez de ir de ponta a ponta.
23
+ --hermes-vertical-nav-item-border-radius: #{mixins.baselinePx(6)};
24
+ --hermes-vertical-nav-content-inset: #{mixins.baselinePx(8)};
20
25
 
21
26
  &,
22
27
  & [hermes-density] {
@@ -28,12 +33,12 @@
28
33
  // Vertical Nav - Align
29
34
  --hermes-vertical-nav-item-padding: #{density.$hermes-base-vertical-offset-m} #{density.$hermes-base-horizontal-offset-m}
30
35
  #{density.$hermes-base-vertical-offset-m} #{density.$hermes-base-horizontal-offset-xl};
36
+ // Antes compensava a ausência de ícone com um padding-left gigante
37
+ // (calc com o tamanho do ícone) pra alinhar o texto. Agora quem faz
38
+ // esse trabalho é o indent + linha vertical de .nav-group-children
39
+ // (ver _vertical-nav.clarity.scss) — aqui só o padding normal do item.
31
40
  --hermes-vertical-nav-item-child-padding: #{density.$hermes-base-vertical-offset-m}
32
- #{density.$hermes-base-horizontal-offset-m} #{density.$hermes-base-vertical-offset-m}
33
- calc(
34
- #{vertical-nav-variables.$hermes-vertical-nav-icon-size} + #{density.$hermes-base-horizontal-offset-xl} +
35
- #{density.$hermes-base-gap-xs}
36
- );
41
+ #{density.$hermes-base-horizontal-offset-m};
37
42
  --hermes-vertical-nav-item-height: #{density.$hermes-base-row-height-m};
38
43
  --hermes-vertical-nav-min-width: #{density.$hermes-base-layout-space-3xl};
39
44
  --hermes-vertical-nav-toggle-button-size: #{density.$hermes-base-row-height-m};
@@ -25,6 +25,8 @@ $hermes-vertical-nav-item-child-padding: var(--hermes-vertical-nav-item-child-pa
25
25
  $hermes-vertical-nav-item-height: var(--hermes-vertical-nav-item-height) !default;
26
26
  $hermes-vertical-nav-min-width: var(--hermes-vertical-nav-min-width) !default;
27
27
  $hermes-vertical-nav-item-active-font-weight: var(--hermes-vertical-nav-item-active-font-weight) !default;
28
+ $hermes-vertical-nav-item-border-radius: var(--hermes-vertical-nav-item-border-radius) !default;
29
+ $hermes-vertical-nav-content-inset: var(--hermes-vertical-nav-content-inset) !default;
28
30
 
29
31
  $hermes-vertical-nav-selected-bg-color: var(--hermes-vertical-nav-selected-bg-color) !default;
30
32
  $hermes-vertical-nav-selected-hover-bg-color: var(
@@ -43,6 +43,13 @@
43
43
  overflow: hidden auto;
44
44
  }
45
45
 
46
+ // shadcn sidebar: os itens ficam "flutuando" com um respiro da borda do
47
+ // container, não de ponta a ponta -- só quando expandida, pra não mexer
48
+ // no cálculo (já bem specific) dos ícones no modo colapsado/rail.
49
+ &:not(.is-collapsed) .nav-content {
50
+ padding: vertical-nav-variables.$hermes-vertical-nav-content-inset;
51
+ }
52
+
46
53
  .nav-group {
47
54
  //Display
48
55
  display: block;
@@ -100,6 +107,13 @@
100
107
 
101
108
  .nav-group-children {
102
109
  overflow-y: hidden;
110
+
111
+ // shadcn sidebar: linha vertical marcando o subnível — os itens ficam
112
+ // indentados depois dela, e o pill de hover/active de cada um fica
113
+ // mais estreito (começa depois da linha), não do tamanho do item pai.
114
+ margin-left: #{mixins.baselinePx(20)};
115
+ padding-left: #{mixins.baselinePx(10)};
116
+ border-left: #{tokens.$hermes-alias-object-border-width-100} solid vertical-nav-variables.$hermes-vertical-nav-divider-color;
103
117
  }
104
118
 
105
119
  .nav-trigger,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hermes-ui/angular",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "Angular components for Hermes",
5
5
  "keywords": [
6
6
  "hermes",
@@ -124,6 +124,10 @@
124
124
  "types": "./types/hermes-ui-angular-button.d.ts",
125
125
  "default": "./fesm2022/hermes-ui-angular-button.mjs"
126
126
  },
127
+ "./card": {
128
+ "types": "./types/hermes-ui-angular-card.d.ts",
129
+ "default": "./fesm2022/hermes-ui-angular-card.mjs"
130
+ },
127
131
  "./collapsible-panel": {
128
132
  "types": "./types/hermes-ui-angular-collapsible-panel.d.ts",
129
133
  "default": "./fesm2022/hermes-ui-angular-collapsible-panel.mjs"
@@ -144,6 +148,10 @@
144
148
  "types": "./types/hermes-ui-angular-data-tree-view.d.ts",
145
149
  "default": "./fesm2022/hermes-ui-angular-data-tree-view.mjs"
146
150
  },
151
+ "./divider": {
152
+ "types": "./types/hermes-ui-angular-divider.d.ts",
153
+ "default": "./fesm2022/hermes-ui-angular-divider.mjs"
154
+ },
147
155
  "./emphasis": {
148
156
  "types": "./types/hermes-ui-angular-emphasis.d.ts",
149
157
  "default": "./fesm2022/hermes-ui-angular-emphasis.mjs"
@@ -256,6 +264,10 @@
256
264
  "types": "./types/hermes-ui-angular-modal.d.ts",
257
265
  "default": "./fesm2022/hermes-ui-angular-modal.mjs"
258
266
  },
267
+ "./pagination": {
268
+ "types": "./types/hermes-ui-angular-pagination.d.ts",
269
+ "default": "./fesm2022/hermes-ui-angular-pagination.mjs"
270
+ },
259
271
  "./popover": {
260
272
  "types": "./types/hermes-ui-angular-popover.d.ts",
261
273
  "default": "./fesm2022/hermes-ui-angular-popover.mjs"
@@ -91,11 +91,12 @@
91
91
 
92
92
  .dropdown-header {
93
93
  @include menu-mixins.generate-dropdown-header();
94
+ }
94
95
 
95
- & ~ .dropdown-item,
96
- & ~ .dropdown > .dropdown-item {
97
- padding-left: density.$hermes-base-horizontal-offset-2xl;
98
- }
96
+ // Trailing keyboard-shortcut hint inside a dropdown item (shadcn's CommandShortcut).
97
+ // Works because .dropdown-item is itself a flex container (see generate-dropdown-item()).
98
+ .dropdown-shortcut {
99
+ @include menu-mixins.generate-dropdown-shortcut();
99
100
  }
100
101
 
101
102
  .btn,
@@ -180,7 +181,8 @@
180
181
  .dropdown-divider {
181
182
  border-bottom: dropdown-variables.$hermes-dropdown-divider-border-width solid
182
183
  dropdown-variables.$hermes-dropdown-divider-color;
183
- margin: density.$hermes-base-vertical-offset-l density.$hermes-base-horizontal-offset-l;
184
+ // Bleeds out to the menu's own edges despite its padding (shadcn's -mx-1 treatment).
185
+ margin: #{mixins.baselinePx(4)} calc(-1 * #{dropdown-variables.$hermes-dropdown-padding});
184
186
  }
185
187
  }
186
188
 
@@ -317,10 +319,9 @@
317
319
  position: static;
318
320
  overflow-y: auto;
319
321
 
320
- .dropdown-header,
321
322
  .dropdown-item,
322
323
  .dropdown > .dropdown-item {
323
- min-height: density.$hermes-base-row-height-s;
324
+ min-height: dropdown-variables.$hermes-dropdown-item-height;
324
325
  }
325
326
  }
326
327
  }
@@ -28,9 +28,10 @@
28
28
  border-width: tokens.$hermes-alias-object-border-width-100;
29
29
  border-style: solid;
30
30
  border-color: dropdown-variables.$hermes-dropdown-border-color;
31
- border-radius: density.$hermes-base-border-radius-s;
32
- box-shadow: tokens.$hermes-alias-object-shadow-200;
33
- padding: density.$hermes-base-vertical-offset-l density.$hermes-base-layout-space-4xs;
31
+ border-radius: dropdown-variables.$hermes-dropdown-border-radius;
32
+ box-shadow: dropdown-variables.$hermes-dropdown-shadow;
33
+ padding: dropdown-variables.$hermes-dropdown-padding;
34
+ gap: #{mixins.baselinePx(1)};
34
35
  visibility: hidden;
35
36
  z-index: map.get(variables.$hermes-layers, dropdown-menu);
36
37
  }
@@ -39,12 +40,17 @@
39
40
  'SECONDARY-13-RG-EXP',
40
41
  (
41
42
  font-weight: dropdown-variables.$hermes-dropdown-item-font-weight,
43
+ // shadcn text-sm (14px) instead of the shared SECONDARY-13 (13px) token.
44
+ font-size: dropdown-variables.$hermes-dropdown-item-font-size,
42
45
  )
43
46
  );
44
47
 
45
48
  color: dropdown-variables.$hermes-dropdown-item-color;
46
49
  background-color: dropdown-variables.$hermes-dropdown-item-bg-color;
47
50
  border: 0;
51
+ // rounded-md hover/active highlight inset within the menu's own padding,
52
+ // instead of an edge-to-edge Clarity highlight.
53
+ border-radius: dropdown-variables.$hermes-dropdown-item-border-radius;
48
54
  cursor: pointer;
49
55
  display: flex;
50
56
  gap: density.$hermes-base-gap-xs;
@@ -111,19 +117,29 @@
111
117
  'SECONDARY-13-MD-EXP',
112
118
  (
113
119
  font-weight: dropdown-variables.$hermes-dropdown-header-font-weight,
120
+ font-size: #{mixins.baselinePx(12)},
114
121
  )
115
122
  );
116
123
 
117
- padding: 0 density.$hermes-base-horizontal-offset-l;
124
+ padding: #{mixins.baselinePx(6)} #{mixins.baselinePx(8)} #{mixins.baselinePx(2)};
118
125
  margin: 0;
119
126
  }
120
127
  @mixin generate-dropdown-item-height() {
121
- padding: 0 density.$hermes-base-horizontal-offset-2xl 0 density.$hermes-base-horizontal-offset-l;
128
+ padding: 0 #{mixins.baselinePx(8)};
129
+ min-height: dropdown-variables.$hermes-dropdown-item-height;
122
130
 
123
131
  @media screen and (max-width: map.get(variables.$hermes-grid-breakpoints, sm)) {
124
- padding: density.$hermes-base-vertical-offset-s density.$hermes-base-horizontal-offset-2xl;
132
+ padding: density.$hermes-base-vertical-offset-s #{mixins.baselinePx(8)};
125
133
  }
126
134
  }
135
+ @mixin generate-dropdown-shortcut() {
136
+ margin-left: auto;
137
+ padding-left: density.$hermes-base-gap-l;
138
+ color: dropdown-variables.$hermes-dropdown-shortcut-color;
139
+ font-size: #{mixins.baselinePx(12)};
140
+ letter-spacing: #{mixins.baselinePx(0.5)};
141
+ white-space: nowrap;
142
+ }
127
143
  @mixin dropdown-item-outline() {
128
144
  outline-color: Highlight;
129
145
  outline-color: -webkit-focus-ring-color;
@@ -14,6 +14,22 @@
14
14
  --hermes-dropdown-header-font-weight: #{tokens.$hermes-alias-typography-font-weight-medium};
15
15
  --hermes-dropdown-item-font-weight: #{tokens.$hermes-alias-typography-secondary-font-weight};
16
16
 
17
+ // shadcn-style dropdown: rounded-lg container (8px, vs Clarity's sharp-ish
18
+ // 4px), a softer/larger-spread neutral shadow instead of the teal-tinted
19
+ // Clarity one (that shared token is used by many other components, so
20
+ // it's overridden here rather than changed globally), roomier outer
21
+ // padding so items read as "inset" cards, and items get their own
22
+ // rounded-md (6px) hover highlight instead of an edge-to-edge one.
23
+ --hermes-dropdown-border-radius: #{mixins.baselinePx(10)};
24
+ --hermes-dropdown-shadow: 0 #{mixins.baselinePx(10)} #{mixins.baselinePx(30)} rgba(0, 0, 0, 0.12),
25
+ 0 #{mixins.baselinePx(2)} #{mixins.baselinePx(8)} rgba(0, 0, 0, 0.08);
26
+ --hermes-dropdown-padding: #{mixins.baselinePx(6)};
27
+ --hermes-dropdown-item-border-radius: #{mixins.baselinePx(6)};
28
+ // shadcn text-sm (14px), overriding the shared SECONDARY-13 typography
29
+ // token that .dropdown-item otherwise pulls in.
30
+ --hermes-dropdown-item-font-size: #{mixins.baselinePx(14)};
31
+ --hermes-dropdown-item-height: #{mixins.baselinePx(34)};
32
+
17
33
  &,
18
34
  & [hermes-theme] {
19
35
  // Usage: ../popover/dropdown/_dropdown.clarity.scss
@@ -45,6 +61,10 @@
45
61
  --hermes-dropdown-item-selected-active-bg-color: var(--hermes-alias-object-interaction-background-selected-active);
46
62
  --hermes-dropdown-item-disabled-color: #{tokens.$hermes-alias-object-interaction-color-disabled};
47
63
  --hermes-dropdown-item-disabled-bg-color: transparent; // #{tokens.$hermes-alias-object-interaction-background-disabled};
64
+
65
+ // Usage: ../popover/dropdown/_menu-mixins.clarity.scss
66
+ // Trailing keyboard-shortcut hint (shadcn's <kbd>/CommandShortcut) inside a dropdown item.
67
+ --hermes-dropdown-shortcut-color: var(--hermes-dropdown-header-color);
48
68
  }
49
69
  }
50
70
  }
@@ -10,6 +10,13 @@ $hermes-dropdown-border-color: var(--hermes-dropdown-border-color) !default;
10
10
  $hermes-dropdown-divider-color: var(--hermes-dropdown-divider-color) !default;
11
11
  $hermes-dropdown-divider-border-width: var(--hermes-dropdown-divider-border-width) !default;
12
12
  $hermes-dropdown-child-border-color: var(--hermes-dropdown-child-border-color) !default;
13
+ $hermes-dropdown-border-radius: var(--hermes-dropdown-border-radius) !default;
14
+ $hermes-dropdown-shadow: var(--hermes-dropdown-shadow) !default;
15
+ $hermes-dropdown-padding: var(--hermes-dropdown-padding) !default;
16
+ $hermes-dropdown-item-border-radius: var(--hermes-dropdown-item-border-radius) !default;
17
+ $hermes-dropdown-item-font-size: var(--hermes-dropdown-item-font-size) !default;
18
+ $hermes-dropdown-item-height: var(--hermes-dropdown-item-height) !default;
19
+ $hermes-dropdown-shortcut-color: var(--hermes-dropdown-shortcut-color) !default;
13
20
 
14
21
  // Usage: ../data/datagrid/_datagrid.clarity.scss
15
22
  // Usage: ../emphasis/alert/_alert.clarity.scss
package/toast/README.md CHANGED
@@ -1,65 +1,65 @@
1
- # Toast
2
-
3
- Replicates shadcn's Toast (Base UI primitive) stacking effect natively in hermes/angular:
4
- newest toast on top, older ones peeking out and scaled down behind it, expanding to a
5
- full list on hover/focus, sliding in/out with the same 500ms ease-out curve.
6
-
7
- ## Setup - two separate pieces
8
-
9
- `HermesToastService` and `<hermes-toaster>` are not wired to each other automatically;
10
- each consuming app has to connect them itself:
11
-
12
- - **`HermesToastService`** is `@Injectable({ providedIn: 'root' })` - it's available for
13
- injection anywhere in the app with zero setup. Calling `show()`/`success()`/etc. just
14
- pushes the toast onto an internal `BehaviorSubject`; it does **not** render anything.
15
- - **`<hermes-toaster>`** is a regular Angular component (selector `hermes-toaster`,
16
- from `HermesToastModule`) that has to be placed **once**, manually, somewhere in the
17
- app's template - it's the only thing that subscribes to the service and actually
18
- draws the stack.
19
-
20
- If `<hermes-toaster>` is never mounted, `HermesToastService` calls silently no-op from
21
- the user's perspective: the toasts pile up in the service's internal state but nothing
22
- ever appears on screen. Mount it once near the app root (same pattern as shadcn/sonner's
23
- `<Toaster />`):
24
-
25
- ```ts
26
- // app.component.ts
27
- import { HermesToastModule } from '@hermes/angular/toast';
28
-
29
- @Component({
30
- imports: [HermesToastModule /* ... */],
31
- template: `
32
- <router-outlet></router-outlet>
33
- <hermes-toaster></hermes-toaster>
34
- `,
35
- })
36
- export class AppComponent {}
37
- ```
38
-
39
- ## Triggering toasts
40
-
41
- From anywhere in the app, inject `HermesToastService`:
42
-
43
- ```ts
44
- constructor(private toasts: HermesToastService) {}
45
-
46
- save() {
47
- this.toasts.promise(this.api.save(), {
48
- loading: 'Saving...',
49
- success: 'Saved',
50
- error: 'Could not save',
51
- });
52
- }
53
- ```
54
-
55
- `HermesToastService` also exposes `show()`, `default()`, `info()`, `success()`, `warning()`,
56
- `danger()`, `loading()`, `update()`, `dismiss()` and `dismissAll()`.
57
-
58
- ## Known scope cuts
59
-
60
- - **Fixed-ish stack height**: each toast's height is measured live via `ResizeObserver`
61
- (see `toast-item.ts`), but the very first render frame uses `--hermes-toast-fallback-height`
62
- until that measurement lands.
63
- - **No swipe-to-dismiss**: shadcn's Base UI toast supports drag-to-dismiss in all four
64
- directions; this port dismisses only via the close button, the action button, timeout,
65
- or Escape (dismisses the frontmost toast).
1
+ # Toast
2
+
3
+ Replicates shadcn's Toast (Base UI primitive) stacking effect natively in hermes/angular:
4
+ newest toast on top, older ones peeking out and scaled down behind it, expanding to a
5
+ full list on hover/focus, sliding in/out with the same 500ms ease-out curve.
6
+
7
+ ## Setup - two separate pieces
8
+
9
+ `HermesToastService` and `<hermes-toaster>` are not wired to each other automatically;
10
+ each consuming app has to connect them itself:
11
+
12
+ - **`HermesToastService`** is `@Injectable({ providedIn: 'root' })` - it's available for
13
+ injection anywhere in the app with zero setup. Calling `show()`/`success()`/etc. just
14
+ pushes the toast onto an internal `BehaviorSubject`; it does **not** render anything.
15
+ - **`<hermes-toaster>`** is a regular Angular component (selector `hermes-toaster`,
16
+ from `HermesToastModule`) that has to be placed **once**, manually, somewhere in the
17
+ app's template - it's the only thing that subscribes to the service and actually
18
+ draws the stack.
19
+
20
+ If `<hermes-toaster>` is never mounted, `HermesToastService` calls silently no-op from
21
+ the user's perspective: the toasts pile up in the service's internal state but nothing
22
+ ever appears on screen. Mount it once near the app root (same pattern as shadcn/sonner's
23
+ `<Toaster />`):
24
+
25
+ ```ts
26
+ // app.component.ts
27
+ import { HermesToastModule } from '@hermes/angular/toast';
28
+
29
+ @Component({
30
+ imports: [HermesToastModule /* ... */],
31
+ template: `
32
+ <router-outlet></router-outlet>
33
+ <hermes-toaster></hermes-toaster>
34
+ `,
35
+ })
36
+ export class AppComponent {}
37
+ ```
38
+
39
+ ## Triggering toasts
40
+
41
+ From anywhere in the app, inject `HermesToastService`:
42
+
43
+ ```ts
44
+ constructor(private toasts: HermesToastService) {}
45
+
46
+ save() {
47
+ this.toasts.promise(this.api.save(), {
48
+ loading: 'Saving...',
49
+ success: 'Saved',
50
+ error: 'Could not save',
51
+ });
52
+ }
53
+ ```
54
+
55
+ `HermesToastService` also exposes `show()`, `default()`, `info()`, `success()`, `warning()`,
56
+ `danger()`, `loading()`, `update()`, `dismiss()` and `dismissAll()`.
57
+
58
+ ## Known scope cuts
59
+
60
+ - **Fixed-ish stack height**: each toast's height is measured live via `ResizeObserver`
61
+ (see `toast-item.ts`), but the very first render frame uses `--hermes-toast-fallback-height`
62
+ until that measurement lands.
63
+ - **No swipe-to-dismiss**: shadcn's Base UI toast supports drag-to-dismiss in all four
64
+ directions; this port dismisses only via the close button, the action button, timeout,
65
+ or Escape (dismisses the frontmost toast).