@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.
- package/README.md +52 -52
- package/button/_properties.buttons.scss +387 -387
- package/fesm2022/hermes-ui-angular-accordion.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-a11y.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-card-container.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-certificate-viewer.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-datagrid-filters.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-datagrid.mjs +28 -28
- package/fesm2022/hermes-ui-angular-addons-datagrid.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-dialog.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-menu.mjs +8 -8
- package/fesm2022/hermes-ui-angular-addons-menu.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-property-view.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-stepper.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-tabs.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-testing.mjs +78 -78
- package/fesm2022/hermes-ui-angular-addons-testing.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-theme-builder.mjs +1 -1
- package/fesm2022/hermes-ui-angular-addons-theme-builder.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-var.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-wizard.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-workflow.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-button.mjs +74 -74
- package/fesm2022/hermes-ui-angular-button.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-card.mjs +48 -0
- package/fesm2022/hermes-ui-angular-card.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-collapsible-panel.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-data-datagrid.mjs +926 -926
- package/fesm2022/hermes-ui-angular-data-datagrid.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-data-stack-view.mjs +114 -114
- package/fesm2022/hermes-ui-angular-data-stack-view.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-data-tree-view.mjs +12 -12
- package/fesm2022/hermes-ui-angular-data-tree-view.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-data.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-divider.mjs +46 -0
- package/fesm2022/hermes-ui-angular-divider.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-emphasis-alert.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-emphasis-badge.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-emphasis-label.mjs +16 -16
- package/fesm2022/hermes-ui-angular-emphasis-label.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-emphasis.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-checkbox.mjs +50 -50
- package/fesm2022/hermes-ui-angular-forms-checkbox.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-combobox.mjs +126 -126
- package/fesm2022/hermes-ui-angular-forms-combobox.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-common.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-datalist.mjs +46 -46
- package/fesm2022/hermes-ui-angular-forms-datalist.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-datepicker.mjs +375 -375
- package/fesm2022/hermes-ui-angular-forms-datepicker.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-file-input.mjs +190 -190
- package/fesm2022/hermes-ui-angular-forms-file-input.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-input.mjs +52 -52
- package/fesm2022/hermes-ui-angular-forms-input.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-native-select.mjs +38 -38
- package/fesm2022/hermes-ui-angular-forms-native-select.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-number-input.mjs +80 -80
- package/fesm2022/hermes-ui-angular-forms-number-input.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-password.mjs +58 -58
- package/fesm2022/hermes-ui-angular-forms-password.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-radio.mjs +50 -50
- package/fesm2022/hermes-ui-angular-forms-radio.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-range.mjs +44 -44
- package/fesm2022/hermes-ui-angular-forms-range.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-select.mjs +8 -8
- package/fesm2022/hermes-ui-angular-forms-select.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-textarea.mjs +38 -38
- package/fesm2022/hermes-ui-angular-forms-textarea.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-icon.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-layout-breadcrumbs.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-layout-main-container.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-layout-nav.mjs +46 -46
- package/fesm2022/hermes-ui-angular-layout-nav.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-layout-tabs.mjs +146 -146
- package/fesm2022/hermes-ui-angular-layout-tabs.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-layout-vertical-nav.mjs +31 -3
- package/fesm2022/hermes-ui-angular-layout-vertical-nav.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-layout.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-modal.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-pagination.mjs +116 -0
- package/fesm2022/hermes-ui-angular-pagination.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-popover-common.mjs +26 -3
- package/fesm2022/hermes-ui-angular-popover-common.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-popover-dropdown.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-popover-signpost.mjs +66 -66
- package/fesm2022/hermes-ui-angular-popover-signpost.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-popover-tooltip.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-popover.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-progress-progress-bars.mjs +10 -10
- package/fesm2022/hermes-ui-angular-progress-progress-bars.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-progress-spinner.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-stepper.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-timeline.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-toast.mjs +4 -4
- package/fesm2022/hermes-ui-angular-toast.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-utils-conditional.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-utils.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-wizard.mjs +56 -56
- package/fesm2022/hermes-ui-angular-wizard.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular.mjs +16 -3
- package/fesm2022/hermes-ui-angular.mjs.map +1 -1
- package/hermes-ui.scss +7 -7
- package/layout/vertical-nav/_mixins.vertical-nav.scss +3 -7
- package/layout/vertical-nav/_properties.vertical-nav.scss +10 -5
- package/layout/vertical-nav/_variables.vertical-nav.scss +2 -0
- package/layout/vertical-nav/_vertical-nav.clarity.scss +14 -0
- package/package.json +13 -1
- package/popover/dropdown/_dropdown.clarity.scss +8 -7
- package/popover/dropdown/_menu-mixins.clarity.scss +22 -6
- package/popover/dropdown/_properties.dropdown.scss +20 -0
- package/popover/dropdown/_variables.dropdown.scss +7 -0
- package/toast/README.md +65 -65
- package/toast/_properties.toast.scss +56 -56
- package/toast/_toast.clarity.scss +190 -190
- package/toast/_variables.toast.scss +33 -33
- package/types/hermes-ui-angular-card.d.ts +24 -0
- package/types/hermes-ui-angular-card.d.ts.map +1 -0
- package/types/hermes-ui-angular-data-datagrid.d.ts.map +1 -1
- package/types/hermes-ui-angular-divider.d.ts +20 -0
- package/types/hermes-ui-angular-divider.d.ts.map +1 -0
- package/types/hermes-ui-angular-layout-vertical-nav.d.ts +11 -1
- package/types/hermes-ui-angular-layout-vertical-nav.d.ts.map +1 -1
- package/types/hermes-ui-angular-pagination.d.ts +52 -0
- package/types/hermes-ui-angular-pagination.d.ts.map +1 -0
- package/types/hermes-ui-angular-popover-common.d.ts +4 -3
- package/types/hermes-ui-angular-popover-common.d.ts.map +1 -1
- package/types/hermes-ui-angular-wizard.d.ts.map +1 -1
- package/types/hermes-ui-angular.d.ts +23 -17
- 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":"
|
|
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
|
-
|
|
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}
|
|
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.
|
|
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
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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
|
-
|
|
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:
|
|
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:
|
|
32
|
-
box-shadow:
|
|
33
|
-
padding:
|
|
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:
|
|
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
|
|
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
|
|
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).
|