@hermes-ui/angular 0.1.7 → 0.2.0
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 +6 -6
- package/button/_buttons.clarity.scss +80 -2
- package/button/_mixins.buttons.scss +44 -2
- package/button/_properties.buttons.scss +209 -247
- package/button/_variables.buttons.scss +22 -0
- package/fesm2022/hermes-ui-angular-accordion.mjs +2 -2
- package/fesm2022/hermes-ui-angular-accordion.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-card-container.mjs +3 -3
- package/fesm2022/hermes-ui-angular-addons-card-container.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-certificate-viewer.mjs +2 -2
- package/fesm2022/hermes-ui-angular-addons-certificate-viewer.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-datagrid-filters.mjs +2 -2
- package/fesm2022/hermes-ui-angular-addons-datagrid-filters.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-datagrid.mjs +2 -2
- package/fesm2022/hermes-ui-angular-addons-datagrid.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-property-view.mjs +2 -2
- package/fesm2022/hermes-ui-angular-addons-property-view.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-theme-builder.mjs +66 -66
- package/fesm2022/hermes-ui-angular-addons-theme-builder.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-var.mjs +2 -2
- package/fesm2022/hermes-ui-angular-addons-var.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-wizard.mjs +2 -2
- package/fesm2022/hermes-ui-angular-addons-wizard.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-button.mjs +2 -2
- package/fesm2022/hermes-ui-angular-button.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-data-datagrid.mjs +2 -2
- package/fesm2022/hermes-ui-angular-data-datagrid.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-data-stack-view.mjs +2 -2
- package/fesm2022/hermes-ui-angular-data-stack-view.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-data-tree-view.mjs +2 -2
- package/fesm2022/hermes-ui-angular-data-tree-view.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-emphasis-alert.mjs +2 -2
- package/fesm2022/hermes-ui-angular-emphasis-alert.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-checkbox.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-checkbox.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-combobox.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-combobox.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-common.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-common.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-datalist.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-datalist.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-datepicker.mjs +3 -3
- package/fesm2022/hermes-ui-angular-forms-datepicker.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-file-input.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-file-input.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-input.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-input.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-native-select.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-native-select.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-number-input.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-number-input.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-password.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-password.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-radio.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-radio.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-range.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-range.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-select.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-select.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-textarea.mjs +2 -2
- package/fesm2022/hermes-ui-angular-forms-textarea.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-icon.mjs +29 -29
- package/fesm2022/hermes-ui-angular-icon.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-layout-nav.mjs +2 -2
- package/fesm2022/hermes-ui-angular-layout-nav.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-layout-tabs.mjs +2 -2
- package/fesm2022/hermes-ui-angular-layout-tabs.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-layout-vertical-nav.mjs +382 -28
- package/fesm2022/hermes-ui-angular-layout-vertical-nav.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-modal.mjs +2 -2
- package/fesm2022/hermes-ui-angular-modal.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-popover-signpost.mjs +2 -2
- package/fesm2022/hermes-ui-angular-popover-signpost.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-stepper.mjs +2 -2
- package/fesm2022/hermes-ui-angular-stepper.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-timeline.mjs +2 -2
- package/fesm2022/hermes-ui-angular-timeline.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-toast.mjs +2 -2
- package/fesm2022/hermes-ui-angular-toast.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-utils.mjs +6 -0
- package/fesm2022/hermes-ui-angular-utils.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-wizard.mjs +2 -2
- package/fesm2022/hermes-ui-angular-wizard.mjs.map +1 -1
- package/forms/combobox/_combobox.clarity.scss +18 -4
- package/forms/combobox/_properties.combobox.scss +5 -5
- package/forms/styles/_input-group.clarity.scss +7 -0
- package/forms/styles/_mixins.forms.scss +12 -10
- package/forms/styles/_native-select.clarity.scss +17 -5
- package/forms/styles/_properties.forms.scss +29 -18
- package/forms/styles/_textarea.clarity.scss +4 -4
- package/forms/styles/_variables.forms.scss +6 -0
- package/layout/main-container/_properties.header.scss +44 -6
- package/layout/main-container/_variables.header.scss +11 -0
- package/layout/nav/_header.clarity.scss +14 -0
- package/layout/nav/_mixins.header.scss +55 -40
- package/layout/nav/_responsive-nav.clarity.scss +21 -10
- package/layout/vertical-nav/_properties.vertical-nav.scss +77 -27
- package/layout/vertical-nav/_variables.vertical-nav.scss +23 -0
- package/layout/vertical-nav/_vertical-nav.clarity.scss +418 -277
- package/package.json +1 -1
- package/types/hermes-ui-angular-addons-theme-builder.d.ts +2 -2
- package/types/hermes-ui-angular-addons-theme-builder.d.ts.map +1 -1
- package/types/hermes-ui-angular-icon.d.ts +3 -3
- package/types/hermes-ui-angular-icon.d.ts.map +1 -1
- package/types/hermes-ui-angular-layout-vertical-nav.d.ts +134 -10
- package/types/hermes-ui-angular-layout-vertical-nav.d.ts.map +1 -1
- package/types/hermes-ui-angular-utils.d.ts +12 -0
- package/types/hermes-ui-angular-utils.d.ts.map +1 -1
|
@@ -4,7 +4,7 @@ import * as i0 from '@angular/core';
|
|
|
4
4
|
import { EventEmitter, Input, ViewChild, Output, Component } from '@angular/core';
|
|
5
5
|
import * as i22 from '@angular/forms';
|
|
6
6
|
import { FormsModule } from '@angular/forms';
|
|
7
|
-
import { HermesTimelineStepState,
|
|
7
|
+
import { HermesTimelineStepState, HermesIcons, sunIcon, moonIcon, undoIcon, homeIcon, cogIcon, userIcon, HermesModule } from '@hermes-ui/angular';
|
|
8
8
|
import * as i1 from '@hermes-ui/angular/emphasis/alert';
|
|
9
9
|
import * as i2 from '@hermes-ui/angular/emphasis/label';
|
|
10
10
|
import * as i3 from '@hermes-ui/angular/data/datagrid';
|
|
@@ -92,14 +92,14 @@ class OKLabColor {
|
|
|
92
92
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
93
93
|
*/
|
|
94
94
|
/**
|
|
95
|
-
* A single theme token: its CSS custom property name, the original
|
|
95
|
+
* A single theme token: its CSS custom property name, the original Hermes-provided
|
|
96
96
|
* HSL value, and the current (possibly user-edited) color. Colors are stored in HSL;
|
|
97
97
|
* RGB and HEX are derived on demand.
|
|
98
98
|
*/
|
|
99
99
|
class Color {
|
|
100
100
|
/**
|
|
101
101
|
* @param name CSS custom property name, e.g. `--hermes-alias-status-info`
|
|
102
|
-
* @param originalColor
|
|
102
|
+
* @param originalColor Hermes-provided HSL, e.g. `hsl(198deg 100% 59%)`
|
|
103
103
|
*/
|
|
104
104
|
constructor(name, originalColor) {
|
|
105
105
|
this.name = name;
|
|
@@ -258,12 +258,18 @@ class Color {
|
|
|
258
258
|
*/
|
|
259
259
|
const DEFAULT_OVERRIDES = {
|
|
260
260
|
// primary
|
|
261
|
+
// Resting accent — was missing entirely, so switching presets retinted links/buttons but left
|
|
262
|
+
// every icon and nav item that reads `--hermes-alias-object-interaction-color` (the vertical
|
|
263
|
+
// nav among them) on the shipped default color no matter which preset was active.
|
|
264
|
+
'--hermes-alias-primary': ['--hermes-alias-object-interaction-color', '--hermes-alias-object-interaction-color-selected'],
|
|
261
265
|
'--hermes-alias-primary-tint': ['--hermes-alias-object-interaction-background-hover'],
|
|
262
266
|
'--hermes-alias-primary-shade': ['--hermes-alias-typography-link-color', '--hermes-alias-object-interaction-primary-hover'],
|
|
263
267
|
'--hermes-alias-primary-dark': [
|
|
264
268
|
'--hermes-alias-typography-link-color-hover',
|
|
265
269
|
'--hermes-alias-typography-primary-hover',
|
|
266
270
|
'--hermes-alias-object-interaction-primary-active',
|
|
271
|
+
'--hermes-alias-object-interaction-color-hover',
|
|
272
|
+
'--hermes-alias-object-interaction-color-active',
|
|
267
273
|
],
|
|
268
274
|
'--hermes-alias-primary-tint-dark': [
|
|
269
275
|
'--hermes-alias-object-interaction-background-selected',
|
|
@@ -397,75 +403,69 @@ const DEFAULT_PRESET = {
|
|
|
397
403
|
dark: null,
|
|
398
404
|
};
|
|
399
405
|
const PRESETS = [
|
|
406
|
+
// The eleven presets below only swap `primary` (the accent) — `info`/`success`/`warning`/
|
|
407
|
+
// `danger` are left unset, same as Evergreen, since none of them change the meaning of "this is
|
|
408
|
+
// a success/warning/error state." The source theme this was ported from also varies a second,
|
|
409
|
+
// `tertiary` color per family, but that one turned out to be a dataviz categorical color with no
|
|
410
|
+
// Hermes equivalent yet (see git history if we ever want to revisit it) — not, as first assumed
|
|
411
|
+
// here, the vertical nav's background, which stays theme-only in both systems.
|
|
400
412
|
{
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
dark: { primary: new Color('--hermes-alias-primary', 'hsl(198deg 100% 59%)') }, // blue-400
|
|
413
|
+
name: 'Hibisco',
|
|
414
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(338deg 62% 47%)') },
|
|
415
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(338deg 77% 59%)') },
|
|
405
416
|
},
|
|
406
417
|
{
|
|
407
|
-
name: '
|
|
408
|
-
light: {
|
|
409
|
-
|
|
410
|
-
success: new Color('--hermes-alias-status-success', 'hsl(184deg 100% 34%)'), // aqua-600
|
|
411
|
-
warning: new Color('--hermes-alias-status-warning', 'hsl(50deg 100% 57%)'), // yellow-300
|
|
412
|
-
},
|
|
413
|
-
dark: {
|
|
414
|
-
primary: new Color('--hermes-alias-primary', 'hsl(282deg 60% 65%)'), // violet-400
|
|
415
|
-
success: new Color('--hermes-alias-status-success', 'hsl(184deg 100% 48%)'), // aqua-400
|
|
416
|
-
warning: new Color('--hermes-alias-status-warning', 'hsl(50deg 100% 57%)'), // yellow-300
|
|
417
|
-
},
|
|
418
|
+
name: 'Oceano',
|
|
419
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(211deg 62% 43%)') },
|
|
420
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(211deg 77% 54%)') },
|
|
418
421
|
},
|
|
419
422
|
{
|
|
420
|
-
name: '
|
|
421
|
-
light: {
|
|
422
|
-
|
|
423
|
-
info: new Color('--hermes-alias-status-info', 'hsl(238deg 60% 52%)'), // lavender-600
|
|
424
|
-
success: new Color('--hermes-alias-status-success', 'hsl(93deg 80% 37%)'), // green-600
|
|
425
|
-
warning: new Color('--hermes-alias-status-warning', 'hsl(9deg 100% 59%)'), // red-600
|
|
426
|
-
danger: new Color('--hermes-alias-status-danger', 'hsl(345deg 83% 40%)'), // magenta-600
|
|
427
|
-
},
|
|
428
|
-
dark: {
|
|
429
|
-
primary: new Color('--hermes-alias-primary', 'hsl(41deg 100% 70%)'), // ochre-400
|
|
430
|
-
info: new Color('--hermes-alias-status-info', 'hsl(238deg 58% 64%)'), // lavender-400
|
|
431
|
-
success: new Color('--hermes-alias-status-success', 'hsl(93deg 80% 48%)'), // green-400
|
|
432
|
-
warning: new Color('--hermes-alias-status-warning', 'hsl(9deg 100% 71%)'), // red-400
|
|
433
|
-
danger: new Color('--hermes-alias-status-danger', 'hsl(345deg 100% 61%)'), // magenta-400
|
|
434
|
-
},
|
|
423
|
+
name: 'Ipê',
|
|
424
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(36deg 70% 34%)') },
|
|
425
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(36deg 85% 41%)') },
|
|
435
426
|
},
|
|
436
427
|
{
|
|
437
|
-
name: '
|
|
438
|
-
light: {
|
|
439
|
-
|
|
440
|
-
info: new Color('--hermes-alias-status-info', 'hsl(238deg 60% 52%)'), // lavender-600
|
|
441
|
-
success: new Color('--hermes-alias-status-success', 'hsl(160deg 69% 36%)'), // jade-600
|
|
442
|
-
warning: new Color('--hermes-alias-status-warning', 'hsl(42deg 100% 42%)'), // yellow-600
|
|
443
|
-
danger: new Color('--hermes-alias-status-danger', 'hsl(9deg 100% 59%)'), // red-600
|
|
444
|
-
},
|
|
445
|
-
dark: {
|
|
446
|
-
primary: new Color('--hermes-alias-primary', 'hsl(345deg 100% 61%)'), // magenta-400
|
|
447
|
-
info: new Color('--hermes-alias-status-info', 'hsl(238deg 58% 64%)'), // lavender-400
|
|
448
|
-
success: new Color('--hermes-alias-status-success', 'hsl(160deg 69% 53%)'), // jade-400
|
|
449
|
-
warning: new Color('--hermes-alias-status-warning', 'hsl(46deg 100% 52%)'), // yellow-400
|
|
450
|
-
danger: new Color('--hermes-alias-status-danger', 'hsl(9deg 100% 71%)'), // red-400
|
|
451
|
-
},
|
|
428
|
+
name: 'Jabuticaba',
|
|
429
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(286deg 45% 48%)') },
|
|
430
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(286deg 60% 60%)') },
|
|
452
431
|
},
|
|
453
432
|
{
|
|
454
|
-
name: '
|
|
455
|
-
light: {
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
},
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
433
|
+
name: 'Samambaia',
|
|
434
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(132deg 52% 32%)') },
|
|
435
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(132deg 67% 38%)') },
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
name: 'Anil',
|
|
439
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(255deg 55% 56%)') },
|
|
440
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(255deg 70% 67%)') },
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
name: 'Urucum',
|
|
444
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(8deg 64% 45%)') },
|
|
445
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(8deg 79% 57%)') },
|
|
446
|
+
},
|
|
447
|
+
// Ported from the source theme's "Superman"/"Batman" families (a red-on-blue and a
|
|
448
|
+
// yellow-on-graphite accent, respectively) under generic names — this package ships publicly,
|
|
449
|
+
// and those are DC Comics character names.
|
|
450
|
+
{
|
|
451
|
+
name: 'Aviador',
|
|
452
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(356deg 78% 45%)') },
|
|
453
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(356deg 88% 61%)') },
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
name: 'Grafite',
|
|
457
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(47deg 91% 27%)') },
|
|
458
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(47deg 94% 33%)') },
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
name: 'Invencível',
|
|
462
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(219deg 80% 50%)') },
|
|
463
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(219deg 90% 62%)') },
|
|
464
|
+
},
|
|
465
|
+
{
|
|
466
|
+
name: 'Superchoque',
|
|
467
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(41deg 88% 30%)') },
|
|
468
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(41deg 93% 36%)') },
|
|
469
469
|
},
|
|
470
470
|
];
|
|
471
471
|
const SAMPLE_ROWS = [
|
|
@@ -602,7 +602,7 @@ class ThemeBuilderComponent {
|
|
|
602
602
|
this.breadcrumbs = [
|
|
603
603
|
{ label: 'Framework', href: 'javascript://' },
|
|
604
604
|
{ label: 'Angular', href: 'javascript://' },
|
|
605
|
-
{ label: '
|
|
605
|
+
{ label: 'Hermes', href: 'javascript://' },
|
|
606
606
|
];
|
|
607
607
|
this.wizardOpen = false;
|
|
608
608
|
this.rows = SAMPLE_ROWS;
|
|
@@ -612,7 +612,7 @@ class ThemeBuilderComponent {
|
|
|
612
612
|
};
|
|
613
613
|
this.timelineStates = HermesTimelineStepState;
|
|
614
614
|
this._presets = [DEFAULT_PRESET, ...PRESETS];
|
|
615
|
-
|
|
615
|
+
HermesIcons.addIcons(sunIcon, moonIcon, undoIcon, homeIcon, cogIcon, userIcon);
|
|
616
616
|
}
|
|
617
617
|
/**
|
|
618
618
|
* Presets available in the preset selector. Defaults to Hermes's built-in preset list.
|
|
@@ -820,7 +820,7 @@ class ThemeBuilderComponent {
|
|
|
820
820
|
this.refreshThemeColors();
|
|
821
821
|
}
|
|
822
822
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ThemeBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
823
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ThemeBuilderComponent, isStandalone: true, selector: "hermes-theme-builder", inputs: { presets: "presets" }, outputs: { generatedCSS: "generatedCSS" }, viewQueries: [{ propertyName: "previewWrapper", first: true, predicate: ["previewWrapper"], descendants: true }, { propertyName: "previewDarkWrapper", first: true, predicate: ["previewDarkWrapper"], descendants: true }], ngImport: i0, template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n\r\n<!-- Preset selector -->\r\n<div class=\"tb-presets\" hermes-layout=\"m-t:lg\">\r\n <div class=\"tb-preset-cards hermes-row\">\r\n @for (preset of presets; track preset.name) {\r\n <a\r\n href=\"javascript://\"\r\n class=\"card clickable tb-preset-card hermes-col-1\"\r\n [class.tb-preset-card-active]=\"activePreset?.name === preset.name\"\r\n (click)=\"applyPreset(preset)\"\r\n >\r\n <div class=\"tb-preset-swatch\" [style.background-color]=\"preset.light?.primary?.hex\"></div>\r\n <div class=\"card-text\">{{ preset.name }}</div>\r\n </a>\r\n }\r\n </div>\r\n</div>\r\n\r\n<!-- \u2500\u2500 Preview DARK card \u2500\u2500 -->\r\n<!-- Invisible for filling the dark values on initial load -->\r\n<div style=\"display: none\" #previewDarkWrapper hermes-theme=\"dark\"></div>\r\n\r\n<!-- \u2500\u2500 Two-column layout: controls | preview \u2500\u2500 -->\r\n<div class=\"tb-layout\" hermes-layout=\"m-t:lg m-b:lg\">\r\n <!-- \u2500\u2500 Controls card (sticky left column) \u2500\u2500 -->\r\n <div class=\"card tb-controls-card\">\r\n <div class=\"card-block\">\r\n @for (colorGroup of themeColors; track colorGroup.key) {\r\n <div>\r\n <hermes-stack-view>\r\n <hermes-stack-header>\r\n <div class=\"tb-control-header\">\r\n {{ colorGroup.key | uppercase }}\r\n\r\n <hermes-tooltip>\r\n <hermes-label\r\n hermes-layout=\"m:none\"\r\n hermesTooltipTrigger\r\n [hermesText]=\"'Contrast ' + colorGroup.contrast.minContrast.wcag.label\"\r\n [hermesBadgeText]=\"colorGroup.contrast.minContrast.wcag.score\"\r\n [hermesColor]=\"colorGroup.contrast.minContrast.wcag.type\"\r\n >\r\n </hermes-label>\r\n <hermes-tooltip-content hermesPosition=\"right\" hermesSize=\"lg\">\r\n <div class=\"tb-wcag-container\">\r\n @for (background of colorGroup.contrast.backgrounds; track background.name) {\r\n <div class=\"tb-wcag-item\">\r\n {{ background.name }}:\r\n <hermes-label\r\n hermes-layout=\"m:none\"\r\n hermesType=\"solid\"\r\n [hermesText]=\"background.wcag.label\"\r\n [hermesBadgeText]=\"background.wcag.score\"\r\n [hermesColor]=\"background.wcag.type\"\r\n />\r\n </div>\r\n }\r\n </div>\r\n </hermes-tooltip-content>\r\n </hermes-tooltip>\r\n </div>\r\n </hermes-stack-header>\r\n <hermes-stack-block [hermesStackViewLevel]=\"1\">\r\n <hermes-stack-label class=\"tb-stack-label\">{{ colorGroup.base.label }}</hermes-stack-label>\r\n <hermes-stack-content style=\"width: 52%\">\r\n <div class=\"tb-color-input-wrap\">\r\n <input\r\n type=\"color\"\r\n class=\"tb-color-picker\"\r\n [value]=\"colorGroup.base.hex\"\r\n [attr.aria-label]=\"colorGroup.key + ' ' + colorGroup.base.label + ' color picker'\"\r\n (input)=\"\r\n setCurrentColor(\r\n colorGroup.base,\r\n $any($event.target).value,\r\n colorStruct[activeTheme][colorGroup.key]\r\n )\r\n \"\r\n />\r\n <input\r\n readonly\r\n type=\"text\"\r\n class=\"tb-hex-input\"\r\n [value]=\"colorGroup.base.hex\"\r\n [attr.aria-label]=\"colorGroup.key + ' ' + colorGroup.base.label + ' color hex value'\"\r\n />\r\n <button\r\n *ngIf=\"!colorGroup.base.isOriginalColor\"\r\n class=\"btn btn-sm btn-icon btn-primary\"\r\n (click)=\"resetColor($event, colorGroup.base, colorStruct[activeTheme][colorGroup.key])\"\r\n title=\"Back to original color\"\r\n >\r\n <hermes-icon shape=\"undo\"></hermes-icon>\r\n </button>\r\n </div>\r\n </hermes-stack-content>\r\n\r\n @for (colorVariant of colorGroup.variants; track colorVariant.label) {\r\n <hermes-stack-block [hermesStackViewLevel]=\"2\">\r\n <hermes-stack-label>{{ colorVariant.label }}</hermes-stack-label>\r\n <hermes-stack-content>\r\n <div class=\"tb-color-input-wrap\">\r\n <input\r\n type=\"color\"\r\n class=\"tb-color-picker\"\r\n [value]=\"colorVariant.hex\"\r\n [attr.aria-label]=\"colorGroup.key + ' ' + colorVariant.label + ' color picker'\"\r\n (input)=\"setCurrentColor(colorVariant, $any($event.target).value)\"\r\n />\r\n <input\r\n readonly\r\n type=\"text\"\r\n class=\"tb-hex-input\"\r\n [value]=\"colorVariant.hex\"\r\n [attr.aria-label]=\"colorGroup.key + ' ' + colorVariant.label + ' color hex value'\"\r\n />\r\n <button\r\n *ngIf=\"!colorVariant.isOriginalColor\"\r\n class=\"btn btn-sm btn-icon btn-primary\"\r\n (click)=\"resetColor($event, colorVariant)\"\r\n title=\"Back to original color\"\r\n >\r\n <hermes-icon shape=\"undo\"></hermes-icon>\r\n </button>\r\n </div>\r\n </hermes-stack-content>\r\n </hermes-stack-block>\r\n }\r\n </hermes-stack-block>\r\n </hermes-stack-view>\r\n\r\n @if (colorGroup.key === 'warning' && !colorGroup.base.isOriginalColor) {\r\n <hermes-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n hermesToggle\r\n [(ngModel)]=\"warningTextOverrideEnabled\"\r\n (ngModelChange)=\"onWarningTextOverrideChange()\"\r\n />\r\n <label>Light Theme Warning Text Override</label>\r\n </hermes-toggle-wrapper>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <!-- end controls card -->\r\n\r\n <!-- \u2500\u2500 Preview card (right column) \u2500\u2500 -->\r\n <div class=\"card tb-preview-card\">\r\n <div class=\"card-header\">\r\n Live Preview:\r\n <button\r\n class=\"btn btn-outline-neutral\"\r\n [attr.aria-label]=\"'Switch to ' + (isDarkTheme ? 'light' : 'dark') + ' theme'\"\r\n (click)=\"toggleActiveTheme()\"\r\n >\r\n <hermes-icon [shape]=\"isDarkTheme ? 'moon' : 'sun'\" [solid]=\"true\" [size]=\"'md'\"></hermes-icon>\r\n {{ isDarkTheme ? 'Dark' : 'Light' }}\r\n </button>\r\n </div>\r\n\r\n <div class=\"card-block tb-preview-sandbox\" #previewWrapper [attr.hermes-theme]=\"activeTheme\">\r\n <ng-content></ng-content>\r\n\r\n <!-- Breadcrumbs -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Breadcrumbs</p>\r\n <div class=\"tb-preview-row\">\r\n <hermes-breadcrumbs [items]=\"breadcrumbs\"></hermes-breadcrumbs>\r\n </div>\r\n </div>\r\n\r\n <!-- Buttons -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Buttons</p>\r\n <div class=\"tb-preview-row\">\r\n <button class=\"btn btn-primary\">Primary</button>\r\n <button class=\"btn\">Primary Outline</button>\r\n <button class=\"btn btn-link\">Primary FLAT</button>\r\n <button class=\"btn btn-info\">Info</button>\r\n <button class=\"btn btn-info-outline\">Info Outline</button>\r\n <button class=\"btn btn-link-info\">Info Flat</button>\r\n <button class=\"btn btn-danger\">Danger</button>\r\n <button class=\"btn btn-success\">Success</button>\r\n <button class=\"btn btn-warning\">Warning</button>\r\n <button class=\"btn btn-primary\" disabled>Disabled</button>\r\n </div>\r\n </div>\r\n\r\n <!-- Badges & Labels -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Badges & Labels</p>\r\n <div class=\"tb-preview-row\">\r\n <hermes-label\r\n [hermesType]=\"'outlined'\"\r\n [hermesClickable]=\"true\"\r\n [hermesColor]=\"'info'\"\r\n [hermesText]=\"'info'\"\r\n [hermesBadgeText]=\"'99+'\"\r\n />\r\n <hermes-label [hermesType]=\"'outlined'\" [hermesColor]=\"'danger'\" [hermesText]=\"'danger'\" [hermesBadgeText]=\"'99+'\" />\r\n <hermes-label [hermesType]=\"'outlined'\" [hermesColor]=\"'success'\" [hermesText]=\"'success'\" [hermesBadgeText]=\"'99+'\" />\r\n <hermes-label\r\n [hermesType]=\"'outlined'\"\r\n [hermesClickable]=\"true\"\r\n [hermesColor]=\"'warning'\"\r\n [hermesText]=\"'warning'\"\r\n [hermesBadgeText]=\"'99+'\"\r\n />\r\n\r\n <hermes-label [hermesType]=\"'solid'\" [hermesColor]=\"'info'\" [hermesText]=\"'info'\" [hermesBadgeText]=\"'99+'\" />\r\n <hermes-label\r\n [hermesType]=\"'solid'\"\r\n [hermesClickable]=\"true\"\r\n [hermesColor]=\"'danger'\"\r\n [hermesText]=\"'danger'\"\r\n [hermesBadgeText]=\"'99+'\"\r\n />\r\n <hermes-label\r\n [hermesType]=\"'solid'\"\r\n [hermesClickable]=\"true\"\r\n [hermesColor]=\"'success'\"\r\n [hermesText]=\"'success'\"\r\n [hermesBadgeText]=\"'99+'\"\r\n />\r\n <hermes-label [hermesType]=\"'solid'\" [hermesColor]=\"'warning'\" [hermesText]=\"'warning'\" [hermesBadgeText]=\"'99+'\" />\r\n </div>\r\n </div>\r\n\r\n <!-- Alerts -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Alerts</p>\r\n <hermes-alert [hermesAlertType]=\"'info'\">\r\n <hermes-alert-item><span class=\"alert-text\">This is an info alert.</span></hermes-alert-item>\r\n </hermes-alert>\r\n <hermes-alert [hermesAlertType]=\"'success'\">\r\n <hermes-alert-item><span class=\"alert-text\">Operation completed successfully.</span></hermes-alert-item>\r\n </hermes-alert>\r\n <hermes-alert [hermesAlertType]=\"'warning'\">\r\n <hermes-alert-item><span class=\"alert-text\">Please review before proceeding.</span></hermes-alert-item>\r\n </hermes-alert>\r\n <hermes-alert [hermesAlertType]=\"'danger'\">\r\n <hermes-alert-item><span class=\"alert-text\">Something went wrong.</span></hermes-alert-item>\r\n </hermes-alert>\r\n </div>\r\n\r\n <!-- App-Level Alerts -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">App-Level Alerts</p>\r\n <hermes-alert [hermesAlertType]=\"'info'\" [hermesAlertAppLevel]=\"true\">\r\n <hermes-alert-item>\r\n <span class=\"alert-text\">This is an app level info.</span>\r\n <div class=\"alert-actions\">\r\n <button class=\"btn alert-action\"><hermes-icon shape=\"user\"></hermes-icon>Thanks</button>\r\n </div>\r\n </hermes-alert-item>\r\n </hermes-alert>\r\n <hermes-alert [hermesAlertType]=\"'danger'\" [hermesAlertAppLevel]=\"true\">\r\n <hermes-alert-item>\r\n <span class=\"alert-text\">This is an app level alert.</span>\r\n <div class=\"alert-actions\">\r\n <button class=\"btn alert-action\"><hermes-icon shape=\"user\"></hermes-icon>Fix</button>\r\n </div>\r\n </hermes-alert-item>\r\n </hermes-alert>\r\n <hermes-alert [hermesAlertType]=\"'warning'\" [hermesAlertAppLevel]=\"true\">\r\n <hermes-alert-item>\r\n <span class=\"alert-text\">This is an app level warning.</span>\r\n <div class=\"alert-actions\">\r\n <button class=\"btn alert-action\"><hermes-icon shape=\"user\"></hermes-icon>Check</button>\r\n </div>\r\n </hermes-alert-item>\r\n </hermes-alert>\r\n <hermes-alert [hermesAlertType]=\"'success'\" [hermesAlertAppLevel]=\"true\">\r\n <hermes-alert-item>\r\n <span class=\"alert-text\">This is an app level success.</span>\r\n <div class=\"alert-actions\">\r\n <button class=\"btn alert-action\"><hermes-icon shape=\"user\"></hermes-icon>Great</button>\r\n </div>\r\n </hermes-alert-item>\r\n </hermes-alert>\r\n </div>\r\n\r\n <!-- Forms -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Form Controls</p>\r\n <form hermesForm #tbForm=\"ngForm\" hermesLayout=\"horizontal\">\r\n <hermes-input-container>\r\n <label>Text input</label>\r\n <input hermesInput type=\"text\" placeholder=\"Enter value...\" />\r\n </hermes-input-container>\r\n <hermes-checkbox-container>\r\n <label>Checkbox</label>\r\n <hermes-checkbox-wrapper>\r\n <input type=\"checkbox\" hermesCheckbox checked />\r\n <label>Checkbox (checked)</label>\r\n </hermes-checkbox-wrapper>\r\n <hermes-checkbox-wrapper>\r\n <input type=\"checkbox\" hermesCheckbox />\r\n <label>Checkbox (unchecked)</label>\r\n </hermes-checkbox-wrapper>\r\n </hermes-checkbox-container>\r\n <hermes-radio-container>\r\n <label>Radio</label>\r\n <hermes-radio-wrapper>\r\n <input type=\"radio\" hermesRadio name=\"r1\" value=\"a\" checked />\r\n <label>Radio A</label>\r\n </hermes-radio-wrapper>\r\n <hermes-radio-wrapper>\r\n <input type=\"radio\" hermesRadio name=\"r1\" value=\"b\" />\r\n <label>Radio B</label>\r\n </hermes-radio-wrapper>\r\n </hermes-radio-container>\r\n <hermes-toggle-container>\r\n <label>Toggle</label>\r\n <hermes-toggle-wrapper>\r\n <input type=\"checkbox\" hermesToggle checked />\r\n <label>Toggle (on)</label>\r\n </hermes-toggle-wrapper>\r\n </hermes-toggle-container>\r\n\r\n <hermes-textarea-container>\r\n <label>Textarea</label>\r\n <textarea hermesTextarea [(ngModel)]=\"description\" name=\"description\" required></textarea>\r\n <hermes-control-helper>Please provide a description.</hermes-control-helper>\r\n <hermes-control-error *hermesIfError=\"'required'\">You must provide a description!</hermes-control-error>\r\n </hermes-textarea-container>\r\n </form>\r\n </div>\r\n\r\n <!-- Accordion -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Accordion</p>\r\n <hermes-accordion>\r\n <hermes-accordion-panel [hermesAccordionPanelOpen]=\"true\">\r\n <hermes-accordion-title>Panel One</hermes-accordion-title>\r\n <hermes-accordion-content>Content for the first accordion panel.</hermes-accordion-content>\r\n </hermes-accordion-panel>\r\n <hermes-accordion-panel>\r\n <hermes-accordion-title>Panel Two</hermes-accordion-title>\r\n <hermes-accordion-content>Content for the second accordion panel.</hermes-accordion-content>\r\n </hermes-accordion-panel>\r\n </hermes-accordion>\r\n </div>\r\n\r\n <!-- Tree view -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Tree View</p>\r\n <hermes-tree>\r\n <hermes-tree-node [hermesExpanded]=\"true\">\r\n Root Node\r\n <hermes-tree-node [hermesSelected]=\"1\"> Child One </hermes-tree-node>\r\n <hermes-tree-node>\r\n Child Two\r\n <hermes-tree-node>Grandchild</hermes-tree-node>\r\n </hermes-tree-node>\r\n </hermes-tree-node>\r\n </hermes-tree>\r\n </div>\r\n\r\n <!-- Progress bar -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Progress Bar</p>\r\n <hermes-progress-bar hermesValue=\"20\" hermesMax=\"100\"></hermes-progress-bar>\r\n <hermes-progress-bar hermesValue=\"55\" hermesMax=\"100\" hermesColor=\"warning\" hermesLabeled></hermes-progress-bar>\r\n <hermes-progress-bar hermesValue=\"80\" hermesMax=\"100\" hermesColor=\"success\"></hermes-progress-bar>\r\n <hermes-progress-bar hermesValue=\"40\" hermesMax=\"100\" hermesColor=\"danger\"></hermes-progress-bar>\r\n </div>\r\n\r\n <!-- Vertical nav -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Vertical Navigation</p>\r\n <div class=\"tb-nav-preview-wrap\">\r\n <hermes-vertical-nav [hermesVerticalNavCollapsible]=\"true\">\r\n <hermes-vertical-nav-group hermesVerticalNavGroupExpanded>\r\n <hermes-icon shape=\"home\" hermesVerticalNavIcon></hermes-icon>\r\n Dashboard\r\n <hermes-vertical-nav-group-children>\r\n <a hermesVerticalNavLink href=\"javascript:void(0)\" class=\"active\">Overview</a>\r\n <a hermesVerticalNavLink href=\"javascript:void(0)\">Analytics</a>\r\n </hermes-vertical-nav-group-children>\r\n </hermes-vertical-nav-group>\r\n <hermes-vertical-nav-group>\r\n <hermes-icon shape=\"cog\" hermesVerticalNavIcon></hermes-icon>\r\n Settings\r\n <hermes-vertical-nav-group-children>\r\n <a hermesVerticalNavLink href=\"javascript:void(0)\">Profile</a>\r\n <a hermesVerticalNavLink href=\"javascript:void(0)\">Security</a>\r\n </hermes-vertical-nav-group-children>\r\n </hermes-vertical-nav-group>\r\n </hermes-vertical-nav>\r\n </div>\r\n </div>\r\n\r\n <!-- Stepper -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Stepper</p>\r\n <form hermesStepper #tbStepperForm=\"ngForm\">\r\n <hermes-stepper-panel ngModelGroup=\"account\">\r\n <hermes-step-title>Account Details</hermes-step-title>\r\n <hermes-step-description>Tell us about yourself</hermes-step-description>\r\n <hermes-step-content>\r\n <hermes-input-container>\r\n <label>Full Name</label>\r\n <input hermesInput name=\"fullName\" [(ngModel)]=\"stepperForm.account.fullName\" />\r\n </hermes-input-container>\r\n <button hermesStepButton=\"next\">Next</button>\r\n </hermes-step-content>\r\n </hermes-stepper-panel>\r\n\r\n <hermes-stepper-panel ngModelGroup=\"confirm\">\r\n <hermes-step-title>Confirmation</hermes-step-title>\r\n <hermes-step-description>Review and submit</hermes-step-description>\r\n <hermes-step-content>\r\n <hermes-checkbox-container>\r\n <hermes-checkbox-wrapper>\r\n <input type=\"checkbox\" hermesCheckbox name=\"agree\" [(ngModel)]=\"stepperForm.confirm.agree\" />\r\n <label>I agree to the terms</label>\r\n </hermes-checkbox-wrapper>\r\n </hermes-checkbox-container>\r\n <button hermesStepButton=\"previous\">Previous</button>\r\n <button hermesStepButton=\"submit\">Submit</button>\r\n </hermes-step-content>\r\n </hermes-stepper-panel>\r\n </form>\r\n </div>\r\n\r\n <!-- Datagrid -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Datagrid</p>\r\n <hermes-datagrid [hermesDgSelectionType]=\"'multi'\">\r\n <hermes-dg-column>Name</hermes-dg-column>\r\n <hermes-dg-column>Role</hermes-dg-column>\r\n <hermes-dg-column>Status</hermes-dg-column>\r\n @for (row of rows; track row.name) {\r\n <hermes-dg-row [hermesDgItem]=\"row\">\r\n <hermes-dg-cell>{{ row.name }}</hermes-dg-cell>\r\n <hermes-dg-cell>{{ row.role }}</hermes-dg-cell>\r\n <hermes-dg-cell>\r\n <span\r\n class=\"badge\"\r\n [class.badge-success]=\"row.status === 'Active'\"\r\n [class.badge-danger]=\"row.status === 'Inactive'\"\r\n >\r\n {{ row.status }}\r\n </span>\r\n </hermes-dg-cell>\r\n </hermes-dg-row>\r\n }\r\n <hermes-dg-footer>{{ rows.length }} users</hermes-dg-footer>\r\n </hermes-datagrid>\r\n </div>\r\n\r\n <!-- Tabs -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Tabs</p>\r\n <hermes-tabs>\r\n <hermes-tab>\r\n <button hermesTabLink>Dashboard</button>\r\n <hermes-tab-content>\r\n <p>Content for the Dashboard tab.</p>\r\n </hermes-tab-content>\r\n </hermes-tab>\r\n <hermes-tab>\r\n <button hermesTabLink>Management</button>\r\n <hermes-tab-content>\r\n <p>Content for the Management tab.</p>\r\n </hermes-tab-content>\r\n </hermes-tab>\r\n <hermes-tab>\r\n <button hermesTabLink>Settings</button>\r\n <hermes-tab-content>\r\n <p>Content for the Settings tab.</p>\r\n </hermes-tab-content>\r\n </hermes-tab>\r\n </hermes-tabs>\r\n </div>\r\n\r\n <!-- Timeline -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Timeline</p>\r\n <hermes-timeline>\r\n <hermes-timeline-step [hermesState]=\"timelineStates.SUCCESS\">\r\n <hermes-timeline-step-header>11:59 am</hermes-timeline-step-header>\r\n <hermes-timeline-step-title>Add KMS</hermes-timeline-step-title>\r\n <hermes-timeline-step-description>Root CA certificate requested.</hermes-timeline-step-description>\r\n </hermes-timeline-step>\r\n <hermes-timeline-step [hermesState]=\"timelineStates.CURRENT\">\r\n <hermes-timeline-step-header>12:04 pm</hermes-timeline-step-header>\r\n <hermes-timeline-step-title>Make KMS trust vCenter</hermes-timeline-step-title>\r\n <hermes-timeline-step-description>\r\n Upload the certificate to the KMS to complete the connection.\r\n </hermes-timeline-step-description>\r\n </hermes-timeline-step>\r\n <hermes-timeline-step [hermesState]=\"timelineStates.NOT_STARTED\">\r\n <hermes-timeline-step-header>--:-- --</hermes-timeline-step-header>\r\n <hermes-timeline-step-title>Enable Encryption</hermes-timeline-step-title>\r\n <hermes-timeline-step-description>Not started yet.</hermes-timeline-step-description>\r\n </hermes-timeline-step>\r\n </hermes-timeline>\r\n </div>\r\n\r\n <!-- Wizard launcher -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Wizard</p>\r\n <button class=\"btn btn-outline\" (click)=\"wizardOpen = true\">Open Wizard</button>\r\n <hermes-wizard [(hermesWizardOpen)]=\"wizardOpen\" hermesWizardSize=\"md\">\r\n <hermes-wizard-title>Sample Wizard</hermes-wizard-title>\r\n <hermes-wizard-button [type]=\"'cancel'\">Cancel</hermes-wizard-button>\r\n <hermes-wizard-button [type]=\"'previous'\">Back</hermes-wizard-button>\r\n <hermes-wizard-button [type]=\"'next'\">Next</hermes-wizard-button>\r\n <hermes-wizard-button [type]=\"'finish'\">Finish</hermes-wizard-button>\r\n <hermes-wizard-page>\r\n <ng-template hermesPageTitle>Step 1: Introduction</ng-template>\r\n Welcome to the wizard. This step introduces the process.\r\n </hermes-wizard-page>\r\n <hermes-wizard-page>\r\n <ng-template hermesPageTitle>Step 2: Configuration</ng-template>\r\n Configure the required options in this step.\r\n </hermes-wizard-page>\r\n <hermes-wizard-page>\r\n <ng-template hermesPageTitle>Step 3: Confirm</ng-template>\r\n Review your choices and click Finish.\r\n </hermes-wizard-page>\r\n </hermes-wizard>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- end preview card -->\r\n</div>\r\n<!-- end .tb-layout -->\r\n", styles: [":host{display:block}:host ::ng-deep .stack-view .stack-view-key{min-width:26%;max-width:26%}:host ::ng-deep .stack-view .stack-block-content{max-width:46%}:host ::ng-deep .card .alert{margin:0}:host ::ng-deep .card-block .progress,:host ::ng-deep .card-block .progress-static{position:relative;height:var(--hermes-base-progress-bar-height);margin:0}:host ::ng-deep .card-block .progress>progress,:host ::ng-deep .card-block .progress-static>progress{height:100%;position:static}.tb-presets{display:flex;align-items:center;gap:var(--hermes-base-gap-m);flex-wrap:wrap;margin:0 var(--hermes-base-gap-m)}.tb-preset-cards{gap:var(--hermes-base-gap-l)}.tb-preset-cards .tb-preset-card{display:inline-flex;align-items:center;gap:var(--hermes-base-gap-m);margin:0;padding:var(--hermes-base-vertical-offset-m) var(--hermes-base-horizontal-offset-m);min-width:170px}.tb-preset-cards .tb-preset-card.tb-preset-card-active{outline:var(--hermes-alias-object-border-width-200) solid var(--hermes-alias-primary);outline-offset:2px}.tb-preset-cards .tb-preset-card .card-text{margin-bottom:0}.tb-preset-swatch{display:flex;align-items:center;justify-content:center;height:var(--hermes-base-row-height-m);min-width:var(--hermes-base-row-height-m);border:var(--hermes-alias-object-border-width-100) solid var(--hermes-alias-object-border-color);border-radius:var(--hermes-alias-object-border-radius-100);background:var(--hermes-alias-object-container-background);color:var(--hermes-alias-typography-color-300)}.tb-layout{display:grid;grid-template-columns:370px 1fr;gap:var(--hermes-base-gap-l);align-items:start}.tb-controls-card{margin-top:0;position:sticky;top:0;max-height:calc(100vh - var(--hermes-global-space-15));overflow-y:auto}.tb-controls-card .tb-control-header{display:flex;align-items:center;justify-content:space-between}.tb-wcag-container{display:flex;flex-direction:column;gap:var(--hermes-base-gap-s)}.tb-wcag-container .tb-wcag-item{display:flex;justify-content:space-between;align-items:center}.card-block{display:flex;flex-direction:column;gap:var(--hermes-base-gap-l)}.card-block .tb-color-input-wrap{display:flex;align-items:center;gap:var(--hermes-base-gap-s);min-width:190px}.card-block .tb-color-picker{padding:var(--hermes-base-vertical-offset-2xs) var(--hermes-base-horizontal-offset-2xs);border:var(--hermes-alias-object-border-width-100) solid var(--hermes-alias-object-border-color);border-radius:var(--hermes-alias-object-border-radius-100);cursor:pointer;background:var(--hermes-alias-object-container-background);width:var(--hermes-global-space-11)}.card-block .tb-hex-input{width:var(--hermes-base-layout-space-5xl);padding:var(--hermes-base-vertical-offset-2xs) var(--hermes-base-horizontal-offset-s);border:var(--hermes-alias-object-border-width-100) solid var(--hermes-alias-object-border-color);border-radius:var(--hermes-alias-object-border-radius-100)}.card-block .tb-stack-label{display:flex;gap:var(--hermes-base-gap-m);align-items:center}.tb-preview-card{margin-top:0}.tb-preview-card .card-header{display:flex;align-items:center;gap:var(--hermes-base-gap-m)}.tb-preview-sandbox{display:flex;flex-direction:column;gap:var(--hermes-base-gap-l);border-bottom-left-radius:var(--hermes-alias-object-border-radius-100);border-bottom-right-radius:var(--hermes-alias-object-border-radius-100)}.tb-preview-section{display:flex;flex-direction:column;gap:var(--hermes-base-gap-m)}.tb-preview-row{display:flex;align-items:center;gap:var(--hermes-base-gap-m);flex-wrap:wrap}.tb-nav-preview-wrap{height:180px;border:var(--hermes-alias-object-border-width-100) solid var(--hermes-alias-object-border-color);overflow:hidden;display:flex}\n"], dependencies: [{ kind: "ngmodule", type: HermesModule }, { kind: "component", type: i1.HermesAlert, selector: "hermes-alert", inputs: ["hermesAlertSizeSmall", "hermesAlertClosable", "hermesAlertAppLevel", "hermesCloseButtonAriaLabel", "hermesAlertLightweight", "hermesAlertType", "hermesAlertIcon", "hermesAlertClosed"], outputs: ["hermesAlertClosedChange"] }, { kind: "component", type: i1.HermesAlertItem, selector: "hermes-alert-item" }, { kind: "directive", type: i1.HermesAlertText, selector: ".alert-text" }, { kind: "component", type: i2.HermesLabel, selector: "hermes-label", inputs: ["hermesColor", "hermesBadgeText", "hermesText", "hermesClickable", "hermesDisabled", "hermesType"] }, { kind: "component", type: i3.HermesDatagrid, selector: "hermes-datagrid", inputs: ["hermesLoadingMoreItems", "hermesDgSingleSelectionAriaLabel", "hermesDgSingleActionableAriaLabel", "hermesDetailExpandableAriaLabel", "hermesDgDisablePageFocus", "hermesDgCustomSelectAllEnabled", "hermesDgSelectAllDisabled", "hermesDgLoading", "hermesDgSelectionType", "hermesDgSelected", "hermesDgPreserveSelection", "hermesDgRowSelection", "hermesDgItemsIdentityFn"], outputs: ["hermesDgSelectedChange", "hermesDgRefresh", "hermesDgCustomSelectAll"] }, { kind: "component", type: i3.HermesDatagridCell, selector: "hermes-dg-cell" }, { kind: "component", type: i3.HermesDatagridColumn, selector: "hermes-dg-column", inputs: ["hermesFilterStringPlaceholder", "hermesFilterNumberMaxPlaceholder", "hermesFilterNumberMinPlaceholder", "hermesDgDisableUnsort", "hermesDgPinned", "hermesDgColType", "hermesDgField", "hermesDgSortBy", "hermesDgSortOrder", "hermesFilterValue"], outputs: ["hermesDgSortOrderChange", "hermesFilterValueChange"] }, { kind: "component", type: i3.HermesDatagridFooter, selector: "hermes-dg-footer" }, { kind: "component", type: i3.HermesDatagridRow, selector: "hermes-dg-row", inputs: ["hermesDgDetailDisabled", "hermesDgDetailHidden", "hermesDgSkeletonLoading", "hermesDgItem", "hermesDgSelectable", "hermesDgSelected", "hermesDgExpanded", "hermesDgDetailOpenLabel", "hermesDgDetailCloseLabel", "hermesDgRowSelectionLabel"], outputs: ["hermesDgSelectedChange", "hermesDgExpandedChange"] }, { kind: "directive", type: i3.DatagridCellRenderer, selector: "hermes-dg-cell" }, { kind: "directive", type: i3.DatagridHeaderRenderer, selector: "hermes-dg-column", outputs: ["hermesDgColumnResize"] }, { kind: "directive", type: i3.DatagridMainRenderer, selector: "hermes-datagrid" }, { kind: "directive", type: i3.DatagridRowRenderer, selector: "hermes-dg-row" }, { kind: "directive", type: i3.ActionableOompaLoompa, selector: "hermes-datagrid, hermes-dg-row" }, { kind: "directive", type: i3.DatagridWillyWonka, selector: "hermes-datagrid" }, { kind: "directive", type: i3.ExpandableOompaLoompa, selector: "hermes-datagrid, hermes-dg-row" }, { kind: "component", type: i4.HermesStackView, selector: "hermes-stack-view" }, { kind: "component", type: i4.HermesStackHeader, selector: "hermes-stack-header", inputs: ["hermesStackHeaderLevel"] }, { kind: "component", type: i4.HermesStackBlock, selector: "hermes-stack-block", inputs: ["hermesSbExpanded", "hermesSbExpandable", "hermesStackViewLevel", "hermesSbNotifyChange"], outputs: ["hermesSbExpandedChange"] }, { kind: "component", type: i4.HermesStackViewLabel, selector: "hermes-stack-label", inputs: ["id"] }, { kind: "directive", type: i4.HermesStackViewCustomTags, selector: "hermes-stack-content" }, { kind: "component", type: i5.HermesTree, selector: "hermes-tree", inputs: ["hermesLazy"] }, { kind: "component", type: i5.HermesTreeNode, selector: "hermes-tree-node", inputs: ["hermesExpandable", "hermesDisabled", "hermesSelected", "hermesExpanded", "hermesForTypeAhead"], outputs: ["hermesSelectedChange", "hermesExpandedChange"] }, { kind: "component", type: i6.HermesIcon, selector: "hermes-icon, hermes-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i6.HermesIconCustomTag, selector: "hermes-icon" }, { kind: "directive", type: i7.HermesControlLabel, selector: "label", inputs: ["id", "for"] }, { kind: "component", type: i7.HermesControlError, selector: "hermes-control-error" }, { kind: "component", type: i7.HermesControlHelper, selector: "hermes-control-helper" }, { kind: "directive", type: i7.HermesIfError, selector: "[hermesIfError]", inputs: ["hermesIfError"] }, { kind: "directive", type: i7.HermesForm, selector: "[hermesForm]", inputs: ["hermesLabelSize"] }, { kind: "directive", type: i7.HermesLayout, selector: "[hermesForm][hermesLayout]", inputs: ["hermesLayout"] }, { kind: "directive", type: i8.HermesCheckbox, selector: "[hermesCheckbox],[hermesToggle]" }, { kind: "component", type: i8.HermesCheckboxContainer, selector: "hermes-checkbox-container,hermes-toggle-container", inputs: ["hermesInline"] }, { kind: "component", type: i8.HermesCheckboxWrapper, selector: "hermes-checkbox-wrapper,hermes-toggle-wrapper" }, { kind: "directive", type: i9.HermesInput, selector: "[hermesInput]" }, { kind: "component", type: i9.HermesInputContainer, selector: "hermes-input-container" }, { kind: "directive", type: i10.HermesRadio, selector: "[hermesRadio]" }, { kind: "component", type: i10.HermesRadioContainer, selector: "hermes-radio-container", inputs: ["hermesInline"] }, { kind: "component", type: i10.HermesRadioWrapper, selector: "hermes-radio-wrapper" }, { kind: "directive", type: i11.HermesTextarea, selector: "[hermesTextarea]" }, { kind: "component", type: i11.HermesTextareaContainer, selector: "hermes-textarea-container" }, { kind: "component", type: i12.HermesTabContent, selector: "hermes-tab-content", inputs: ["id"] }, { kind: "component", type: i12.HermesTab, selector: "hermes-tab" }, { kind: "component", type: i12.HermesTabs, selector: "hermes-tabs", inputs: ["hermesLayout"] }, { kind: "directive", type: i12.HermesTabLink, selector: "[hermesTabLink]", inputs: ["id", "hermesTabLinkInOverflow"] }, { kind: "directive", type: i12.TabsWillyWonka, selector: "hermes-tabs" }, { kind: "directive", type: i12.ActiveOompaLoompa, selector: "[hermesTabLink], hermes-tab-content" }, { kind: "component", type: i13.HermesVerticalNav, selector: "hermes-vertical-nav", inputs: ["hermesVerticalNavToggleLabel", "hermesVerticalNavPinnable", "hermesVerticalNavCollapsible", "hermesVerticalNavCollapsed"], outputs: ["hermesVerticalNavCollapsedChange"] }, { kind: "component", type: i13.HermesVerticalNavLink, selector: "[hermesVerticalNavLink]" }, { kind: "component", type: i13.HermesVerticalNavGroup, selector: "hermes-vertical-nav-group", inputs: ["hermesVerticalNavGroupExpanded"], outputs: ["hermesVerticalNavGroupExpandedChange"] }, { kind: "component", type: i13.HermesVerticalNavGroupChildren, selector: "hermes-vertical-nav-group-children" }, { kind: "directive", type: i13.HermesVerticalNavIcon, selector: "[hermesVerticalNavIcon]" }, { kind: "component", type: i14.HermesBreadcrumbs, selector: "hermes-breadcrumbs", inputs: ["items"], outputs: ["hermesBreadcrumbItemClick"] }, { kind: "component", type: i15.HermesTooltip, selector: "hermes-tooltip" }, { kind: "directive", type: i15.HermesTooltipTrigger, selector: "[hermesTooltipTrigger]" }, { kind: "component", type: i15.HermesTooltipContent, selector: "hermes-tooltip-content", inputs: ["id", "hermesPosition", "hermesSize"] }, { kind: "component", type: i16.HermesWizard, selector: "hermes-wizard", inputs: ["hermesWizardStepnavAriaLabel", "hermesWizardStepnavLayout", "hermesWizardSize", "hermesWizardInPage", "hermesWizardInPageFillContentArea", "hermesWizardHideFooter", "hermesWizardFooterAlign", "hermesWizardClosable", "hermesWizardPreventModalAnimation", "hermesWizardForceForwardNavigation", "hermesWizardOpen", "hermesWizardPreventDefaultNext", "hermesWizardPreventDefaultCancel", "hermesWizardPreventNavigation", "hermesWizardDisableStepnav"], outputs: ["hermesWizardOpenChange", "hermesWizardOnCancel", "hermesWizardOnFinish", "hermesWizardOnReset", "hermesWizardCurrentPageChange", "hermesWizardOnNext", "hermesWizardOnPrevious"] }, { kind: "component", type: i16.HermesWizardPage, selector: "hermes-wizard-page", inputs: ["id", "hermesWizardPagePreventDefault", "hermesWizardPageNextDisabled", "hermesWizardPagePreviousDisabled", "hermesWizardPageHasError", "hermesWizardPagePreventDefaultCancel", "hermesWizardPagePreventDefaultNext"], outputs: ["hermesWizardPageNextDisabledChange", "hermesWizardPagePreviousDisabledChange", "hermesWizardPagePreventDefaultCancelChange", "hermesWizardPageOnCommit", "hermesWizardPageOnLoad", "hermesWizardPageOnCancel", "hermesWizardPageFinish", "hermesWizardPagePrevious", "hermesWizardPageNext", "hermesWizardPageDanger", "hermesWizardPagePrimary", "hermesWizardPageCustomButton"] }, { kind: "component", type: i16.HermesWizardButton, selector: "hermes-wizard-button", inputs: ["type", "hermesWizardButtonDisabled", "hermesWizardButtonHidden"], outputs: ["hermesWizardButtonClicked"] }, { kind: "directive", type: i16.HermesWizardTitle, selector: "hermes-wizard-title", inputs: ["hermesHeadingLevel"] }, { kind: "directive", type: i16.HermesWizardPageTitle, selector: "[hermesPageTitle]", inputs: ["hermesHeadingLevel"] }, { kind: "component", type: i17.HermesAccordion, selector: "hermes-accordion", inputs: ["hermesAccordionMultiPanel"] }, { kind: "component", type: i17.HermesAccordionPanel, selector: "hermes-accordion-panel", inputs: ["hermesAccordionPanelDisabled", "hermesAccordionPanelOpen", "hermesAccordionPanelHeadingLevel"], outputs: ["hermesAccordionPanelOpenChange"] }, { kind: "component", type: i17.HermesAccordionTitle, selector: "hermes-accordion-title" }, { kind: "component", type: i17.HermesAccordionContent, selector: "hermes-accordion-content" }, { kind: "directive", type: i17.AccordionOompaLoompa, selector: "hermes-accordion-panel" }, { kind: "directive", type: i17.AccordionWillyWonka, selector: "hermes-accordion" }, { kind: "component", type: i18.HermesStepper, selector: "form[hermesStepper]", inputs: ["hermesInitialStep"] }, { kind: "directive", type: i18.HermesStepButton, selector: "[hermesStepButton]", inputs: ["hermesStepButton"] }, { kind: "component", type: i18.HermesStepTitle, selector: "hermes-step-title" }, { kind: "component", type: i18.HermesStepDescription, selector: "hermes-step-description" }, { kind: "component", type: i18.HermesStepContent, selector: "hermes-step-content" }, { kind: "component", type: i18.HermesStepperPanel, selector: "hermes-stepper-panel" }, { kind: "directive", type: i18.StepperOompaLoompa, selector: "hermes-stepper-panel, [hermesStepButton]" }, { kind: "directive", type: i18.StepperWillyWonka, selector: "form[hermesStepper]" }, { kind: "component", type: i19.HermesProgressBar, selector: "hermes-progress-bar", inputs: ["hermesMax", "hermesDisplayval", "hermesColor", "hermesValue", "id", "hermesCompact", "hermesLabeled", "hermesFade", "hermesLoop", "hermesFlash", "hermesFlashDanger"] }, { kind: "component", type: i20.HermesTimeline, selector: "hermes-timeline", inputs: ["hermesLayout"] }, { kind: "component", type: i20.HermesTimelineStep, selector: "hermes-timeline-step", inputs: ["hermesState"] }, { kind: "component", type: i20.HermesTimelineStepDescription, selector: "hermes-timeline-step-description" }, { kind: "component", type: i20.HermesTimelineStepHeader, selector: "hermes-timeline-step-header" }, { kind: "component", type: i20.HermesTimelineStepTitle, selector: "hermes-timeline-step-title" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i21.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i22.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i22.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i22.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i22.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i22.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i22.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i22.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i22.NgModelGroup, selector: "[ngModelGroup]", inputs: ["ngModelGroup"], exportAs: ["ngModelGroup"] }, { kind: "directive", type: i22.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: i21.UpperCasePipe, name: "uppercase" }] }); }
|
|
823
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ThemeBuilderComponent, isStandalone: true, selector: "hermes-theme-builder", inputs: { presets: "presets" }, outputs: { generatedCSS: "generatedCSS" }, viewQueries: [{ propertyName: "previewWrapper", first: true, predicate: ["previewWrapper"], descendants: true }, { propertyName: "previewDarkWrapper", first: true, predicate: ["previewDarkWrapper"], descendants: true }], ngImport: i0, template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n\r\n<!-- Preset selector -->\r\n<div class=\"tb-presets\" hermes-layout=\"m-t:lg\">\r\n <div class=\"tb-preset-cards hermes-row\">\r\n @for (preset of presets; track preset.name) {\r\n <a\r\n href=\"javascript://\"\r\n class=\"card clickable tb-preset-card hermes-col-1\"\r\n [class.tb-preset-card-active]=\"activePreset?.name === preset.name\"\r\n (click)=\"applyPreset(preset)\"\r\n >\r\n <div class=\"tb-preset-swatch\" [style.background-color]=\"preset.light?.primary?.hex\"></div>\r\n <div class=\"card-text\">{{ preset.name }}</div>\r\n </a>\r\n }\r\n </div>\r\n</div>\r\n\r\n<!-- \u2500\u2500 Preview DARK card \u2500\u2500 -->\r\n<!-- Invisible for filling the dark values on initial load -->\r\n<div style=\"display: none\" #previewDarkWrapper hermes-theme=\"dark\"></div>\r\n\r\n<!-- \u2500\u2500 Two-column layout: controls | preview \u2500\u2500 -->\r\n<div class=\"tb-layout\" hermes-layout=\"m-t:lg m-b:lg\">\r\n <!-- \u2500\u2500 Controls card (sticky left column) \u2500\u2500 -->\r\n <div class=\"card tb-controls-card\">\r\n <div class=\"card-block\">\r\n @for (colorGroup of themeColors; track colorGroup.key) {\r\n <div>\r\n <hermes-stack-view>\r\n <hermes-stack-header>\r\n <div class=\"tb-control-header\">\r\n {{ colorGroup.key | uppercase }}\r\n\r\n <hermes-tooltip>\r\n <hermes-label\r\n hermes-layout=\"m:none\"\r\n hermesTooltipTrigger\r\n [hermesText]=\"'Contrast ' + colorGroup.contrast.minContrast.wcag.label\"\r\n [hermesBadgeText]=\"colorGroup.contrast.minContrast.wcag.score\"\r\n [hermesColor]=\"colorGroup.contrast.minContrast.wcag.type\"\r\n >\r\n </hermes-label>\r\n <hermes-tooltip-content hermesPosition=\"right\" hermesSize=\"lg\">\r\n <div class=\"tb-wcag-container\">\r\n @for (background of colorGroup.contrast.backgrounds; track background.name) {\r\n <div class=\"tb-wcag-item\">\r\n {{ background.name }}:\r\n <hermes-label\r\n hermes-layout=\"m:none\"\r\n hermesType=\"solid\"\r\n [hermesText]=\"background.wcag.label\"\r\n [hermesBadgeText]=\"background.wcag.score\"\r\n [hermesColor]=\"background.wcag.type\"\r\n />\r\n </div>\r\n }\r\n </div>\r\n </hermes-tooltip-content>\r\n </hermes-tooltip>\r\n </div>\r\n </hermes-stack-header>\r\n <hermes-stack-block [hermesStackViewLevel]=\"1\">\r\n <hermes-stack-label class=\"tb-stack-label\">{{ colorGroup.base.label }}</hermes-stack-label>\r\n <hermes-stack-content style=\"width: 52%\">\r\n <div class=\"tb-color-input-wrap\">\r\n <input\r\n type=\"color\"\r\n class=\"tb-color-picker\"\r\n [value]=\"colorGroup.base.hex\"\r\n [attr.aria-label]=\"colorGroup.key + ' ' + colorGroup.base.label + ' color picker'\"\r\n (input)=\"\r\n setCurrentColor(\r\n colorGroup.base,\r\n $any($event.target).value,\r\n colorStruct[activeTheme][colorGroup.key]\r\n )\r\n \"\r\n />\r\n <input\r\n readonly\r\n type=\"text\"\r\n class=\"tb-hex-input\"\r\n [value]=\"colorGroup.base.hex\"\r\n [attr.aria-label]=\"colorGroup.key + ' ' + colorGroup.base.label + ' color hex value'\"\r\n />\r\n <button\r\n *ngIf=\"!colorGroup.base.isOriginalColor\"\r\n class=\"btn btn-sm btn-icon btn-primary\"\r\n (click)=\"resetColor($event, colorGroup.base, colorStruct[activeTheme][colorGroup.key])\"\r\n title=\"Back to original color\"\r\n >\r\n <hermes-icon shape=\"undo\"></hermes-icon>\r\n </button>\r\n </div>\r\n </hermes-stack-content>\r\n\r\n @for (colorVariant of colorGroup.variants; track colorVariant.label) {\r\n <hermes-stack-block [hermesStackViewLevel]=\"2\">\r\n <hermes-stack-label>{{ colorVariant.label }}</hermes-stack-label>\r\n <hermes-stack-content>\r\n <div class=\"tb-color-input-wrap\">\r\n <input\r\n type=\"color\"\r\n class=\"tb-color-picker\"\r\n [value]=\"colorVariant.hex\"\r\n [attr.aria-label]=\"colorGroup.key + ' ' + colorVariant.label + ' color picker'\"\r\n (input)=\"setCurrentColor(colorVariant, $any($event.target).value)\"\r\n />\r\n <input\r\n readonly\r\n type=\"text\"\r\n class=\"tb-hex-input\"\r\n [value]=\"colorVariant.hex\"\r\n [attr.aria-label]=\"colorGroup.key + ' ' + colorVariant.label + ' color hex value'\"\r\n />\r\n <button\r\n *ngIf=\"!colorVariant.isOriginalColor\"\r\n class=\"btn btn-sm btn-icon btn-primary\"\r\n (click)=\"resetColor($event, colorVariant)\"\r\n title=\"Back to original color\"\r\n >\r\n <hermes-icon shape=\"undo\"></hermes-icon>\r\n </button>\r\n </div>\r\n </hermes-stack-content>\r\n </hermes-stack-block>\r\n }\r\n </hermes-stack-block>\r\n </hermes-stack-view>\r\n\r\n @if (colorGroup.key === 'warning' && !colorGroup.base.isOriginalColor) {\r\n <hermes-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n hermesToggle\r\n [(ngModel)]=\"warningTextOverrideEnabled\"\r\n (ngModelChange)=\"onWarningTextOverrideChange()\"\r\n />\r\n <label>Light Theme Warning Text Override</label>\r\n </hermes-toggle-wrapper>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <!-- end controls card -->\r\n\r\n <!-- \u2500\u2500 Preview card (right column) \u2500\u2500 -->\r\n <div class=\"card tb-preview-card\">\r\n <div class=\"card-header\">\r\n Live Preview:\r\n <button\r\n class=\"btn btn-outline-neutral\"\r\n [attr.aria-label]=\"'Switch to ' + (isDarkTheme ? 'light' : 'dark') + ' theme'\"\r\n (click)=\"toggleActiveTheme()\"\r\n >\r\n <hermes-icon [shape]=\"isDarkTheme ? 'moon' : 'sun'\" [solid]=\"true\" [size]=\"'md'\"></hermes-icon>\r\n {{ isDarkTheme ? 'Dark' : 'Light' }}\r\n </button>\r\n </div>\r\n\r\n <div class=\"card-block tb-preview-sandbox\" #previewWrapper [attr.hermes-theme]=\"activeTheme\">\r\n <ng-content></ng-content>\r\n\r\n <!-- Breadcrumbs -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Breadcrumbs</p>\r\n <div class=\"tb-preview-row\">\r\n <hermes-breadcrumbs [items]=\"breadcrumbs\"></hermes-breadcrumbs>\r\n </div>\r\n </div>\r\n\r\n <!-- Buttons -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Buttons</p>\r\n <div class=\"tb-preview-row\">\r\n <button class=\"btn btn-primary\">Primary</button>\r\n <button class=\"btn\">Primary Outline</button>\r\n <button class=\"btn btn-link\">Primary FLAT</button>\r\n <button class=\"btn btn-info\">Info</button>\r\n <button class=\"btn btn-info-outline\">Info Outline</button>\r\n <button class=\"btn btn-link-info\">Info Flat</button>\r\n <button class=\"btn btn-danger\">Danger</button>\r\n <button class=\"btn btn-success\">Success</button>\r\n <button class=\"btn btn-warning\">Warning</button>\r\n <button class=\"btn btn-primary\" disabled>Disabled</button>\r\n </div>\r\n </div>\r\n\r\n <!-- Badges & Labels -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Badges & Labels</p>\r\n <div class=\"tb-preview-row\">\r\n <hermes-label\r\n [hermesType]=\"'outlined'\"\r\n [hermesClickable]=\"true\"\r\n [hermesColor]=\"'info'\"\r\n [hermesText]=\"'info'\"\r\n [hermesBadgeText]=\"'99+'\"\r\n />\r\n <hermes-label [hermesType]=\"'outlined'\" [hermesColor]=\"'danger'\" [hermesText]=\"'danger'\" [hermesBadgeText]=\"'99+'\" />\r\n <hermes-label [hermesType]=\"'outlined'\" [hermesColor]=\"'success'\" [hermesText]=\"'success'\" [hermesBadgeText]=\"'99+'\" />\r\n <hermes-label\r\n [hermesType]=\"'outlined'\"\r\n [hermesClickable]=\"true\"\r\n [hermesColor]=\"'warning'\"\r\n [hermesText]=\"'warning'\"\r\n [hermesBadgeText]=\"'99+'\"\r\n />\r\n\r\n <hermes-label [hermesType]=\"'solid'\" [hermesColor]=\"'info'\" [hermesText]=\"'info'\" [hermesBadgeText]=\"'99+'\" />\r\n <hermes-label\r\n [hermesType]=\"'solid'\"\r\n [hermesClickable]=\"true\"\r\n [hermesColor]=\"'danger'\"\r\n [hermesText]=\"'danger'\"\r\n [hermesBadgeText]=\"'99+'\"\r\n />\r\n <hermes-label\r\n [hermesType]=\"'solid'\"\r\n [hermesClickable]=\"true\"\r\n [hermesColor]=\"'success'\"\r\n [hermesText]=\"'success'\"\r\n [hermesBadgeText]=\"'99+'\"\r\n />\r\n <hermes-label [hermesType]=\"'solid'\" [hermesColor]=\"'warning'\" [hermesText]=\"'warning'\" [hermesBadgeText]=\"'99+'\" />\r\n </div>\r\n </div>\r\n\r\n <!-- Alerts -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Alerts</p>\r\n <hermes-alert [hermesAlertType]=\"'info'\">\r\n <hermes-alert-item><span class=\"alert-text\">This is an info alert.</span></hermes-alert-item>\r\n </hermes-alert>\r\n <hermes-alert [hermesAlertType]=\"'success'\">\r\n <hermes-alert-item><span class=\"alert-text\">Operation completed successfully.</span></hermes-alert-item>\r\n </hermes-alert>\r\n <hermes-alert [hermesAlertType]=\"'warning'\">\r\n <hermes-alert-item><span class=\"alert-text\">Please review before proceeding.</span></hermes-alert-item>\r\n </hermes-alert>\r\n <hermes-alert [hermesAlertType]=\"'danger'\">\r\n <hermes-alert-item><span class=\"alert-text\">Something went wrong.</span></hermes-alert-item>\r\n </hermes-alert>\r\n </div>\r\n\r\n <!-- App-Level Alerts -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">App-Level Alerts</p>\r\n <hermes-alert [hermesAlertType]=\"'info'\" [hermesAlertAppLevel]=\"true\">\r\n <hermes-alert-item>\r\n <span class=\"alert-text\">This is an app level info.</span>\r\n <div class=\"alert-actions\">\r\n <button class=\"btn alert-action\"><hermes-icon shape=\"user\"></hermes-icon>Thanks</button>\r\n </div>\r\n </hermes-alert-item>\r\n </hermes-alert>\r\n <hermes-alert [hermesAlertType]=\"'danger'\" [hermesAlertAppLevel]=\"true\">\r\n <hermes-alert-item>\r\n <span class=\"alert-text\">This is an app level alert.</span>\r\n <div class=\"alert-actions\">\r\n <button class=\"btn alert-action\"><hermes-icon shape=\"user\"></hermes-icon>Fix</button>\r\n </div>\r\n </hermes-alert-item>\r\n </hermes-alert>\r\n <hermes-alert [hermesAlertType]=\"'warning'\" [hermesAlertAppLevel]=\"true\">\r\n <hermes-alert-item>\r\n <span class=\"alert-text\">This is an app level warning.</span>\r\n <div class=\"alert-actions\">\r\n <button class=\"btn alert-action\"><hermes-icon shape=\"user\"></hermes-icon>Check</button>\r\n </div>\r\n </hermes-alert-item>\r\n </hermes-alert>\r\n <hermes-alert [hermesAlertType]=\"'success'\" [hermesAlertAppLevel]=\"true\">\r\n <hermes-alert-item>\r\n <span class=\"alert-text\">This is an app level success.</span>\r\n <div class=\"alert-actions\">\r\n <button class=\"btn alert-action\"><hermes-icon shape=\"user\"></hermes-icon>Great</button>\r\n </div>\r\n </hermes-alert-item>\r\n </hermes-alert>\r\n </div>\r\n\r\n <!-- Forms -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Form Controls</p>\r\n <form hermesForm #tbForm=\"ngForm\" hermesLayout=\"horizontal\">\r\n <hermes-input-container>\r\n <label>Text input</label>\r\n <input hermesInput type=\"text\" placeholder=\"Enter value...\" />\r\n </hermes-input-container>\r\n <hermes-checkbox-container>\r\n <label>Checkbox</label>\r\n <hermes-checkbox-wrapper>\r\n <input type=\"checkbox\" hermesCheckbox checked />\r\n <label>Checkbox (checked)</label>\r\n </hermes-checkbox-wrapper>\r\n <hermes-checkbox-wrapper>\r\n <input type=\"checkbox\" hermesCheckbox />\r\n <label>Checkbox (unchecked)</label>\r\n </hermes-checkbox-wrapper>\r\n </hermes-checkbox-container>\r\n <hermes-radio-container>\r\n <label>Radio</label>\r\n <hermes-radio-wrapper>\r\n <input type=\"radio\" hermesRadio name=\"r1\" value=\"a\" checked />\r\n <label>Radio A</label>\r\n </hermes-radio-wrapper>\r\n <hermes-radio-wrapper>\r\n <input type=\"radio\" hermesRadio name=\"r1\" value=\"b\" />\r\n <label>Radio B</label>\r\n </hermes-radio-wrapper>\r\n </hermes-radio-container>\r\n <hermes-toggle-container>\r\n <label>Toggle</label>\r\n <hermes-toggle-wrapper>\r\n <input type=\"checkbox\" hermesToggle checked />\r\n <label>Toggle (on)</label>\r\n </hermes-toggle-wrapper>\r\n </hermes-toggle-container>\r\n\r\n <hermes-textarea-container>\r\n <label>Textarea</label>\r\n <textarea hermesTextarea [(ngModel)]=\"description\" name=\"description\" required></textarea>\r\n <hermes-control-helper>Please provide a description.</hermes-control-helper>\r\n <hermes-control-error *hermesIfError=\"'required'\">You must provide a description!</hermes-control-error>\r\n </hermes-textarea-container>\r\n </form>\r\n </div>\r\n\r\n <!-- Accordion -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Accordion</p>\r\n <hermes-accordion>\r\n <hermes-accordion-panel [hermesAccordionPanelOpen]=\"true\">\r\n <hermes-accordion-title>Panel One</hermes-accordion-title>\r\n <hermes-accordion-content>Content for the first accordion panel.</hermes-accordion-content>\r\n </hermes-accordion-panel>\r\n <hermes-accordion-panel>\r\n <hermes-accordion-title>Panel Two</hermes-accordion-title>\r\n <hermes-accordion-content>Content for the second accordion panel.</hermes-accordion-content>\r\n </hermes-accordion-panel>\r\n </hermes-accordion>\r\n </div>\r\n\r\n <!-- Tree view -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Tree View</p>\r\n <hermes-tree>\r\n <hermes-tree-node [hermesExpanded]=\"true\">\r\n Root Node\r\n <hermes-tree-node [hermesSelected]=\"1\"> Child One </hermes-tree-node>\r\n <hermes-tree-node>\r\n Child Two\r\n <hermes-tree-node>Grandchild</hermes-tree-node>\r\n </hermes-tree-node>\r\n </hermes-tree-node>\r\n </hermes-tree>\r\n </div>\r\n\r\n <!-- Progress bar -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Progress Bar</p>\r\n <hermes-progress-bar hermesValue=\"20\" hermesMax=\"100\"></hermes-progress-bar>\r\n <hermes-progress-bar hermesValue=\"55\" hermesMax=\"100\" hermesColor=\"warning\" hermesLabeled></hermes-progress-bar>\r\n <hermes-progress-bar hermesValue=\"80\" hermesMax=\"100\" hermesColor=\"success\"></hermes-progress-bar>\r\n <hermes-progress-bar hermesValue=\"40\" hermesMax=\"100\" hermesColor=\"danger\"></hermes-progress-bar>\r\n </div>\r\n\r\n <!-- Vertical nav -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Vertical Navigation</p>\r\n <div class=\"tb-nav-preview-wrap\">\r\n <hermes-vertical-nav [hermesVerticalNavCollapsible]=\"true\">\r\n <hermes-vertical-nav-group hermesVerticalNavGroupExpanded>\r\n <hermes-icon shape=\"home\" hermesVerticalNavIcon></hermes-icon>\r\n Dashboard\r\n <hermes-vertical-nav-group-children>\r\n <a hermesVerticalNavLink href=\"javascript:void(0)\" class=\"active\">Overview</a>\r\n <a hermesVerticalNavLink href=\"javascript:void(0)\">Analytics</a>\r\n </hermes-vertical-nav-group-children>\r\n </hermes-vertical-nav-group>\r\n <hermes-vertical-nav-group>\r\n <hermes-icon shape=\"cog\" hermesVerticalNavIcon></hermes-icon>\r\n Settings\r\n <hermes-vertical-nav-group-children>\r\n <a hermesVerticalNavLink href=\"javascript:void(0)\">Profile</a>\r\n <a hermesVerticalNavLink href=\"javascript:void(0)\">Security</a>\r\n </hermes-vertical-nav-group-children>\r\n </hermes-vertical-nav-group>\r\n </hermes-vertical-nav>\r\n </div>\r\n </div>\r\n\r\n <!-- Stepper -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Stepper</p>\r\n <form hermesStepper #tbStepperForm=\"ngForm\">\r\n <hermes-stepper-panel ngModelGroup=\"account\">\r\n <hermes-step-title>Account Details</hermes-step-title>\r\n <hermes-step-description>Tell us about yourself</hermes-step-description>\r\n <hermes-step-content>\r\n <hermes-input-container>\r\n <label>Full Name</label>\r\n <input hermesInput name=\"fullName\" [(ngModel)]=\"stepperForm.account.fullName\" />\r\n </hermes-input-container>\r\n <button hermesStepButton=\"next\">Next</button>\r\n </hermes-step-content>\r\n </hermes-stepper-panel>\r\n\r\n <hermes-stepper-panel ngModelGroup=\"confirm\">\r\n <hermes-step-title>Confirmation</hermes-step-title>\r\n <hermes-step-description>Review and submit</hermes-step-description>\r\n <hermes-step-content>\r\n <hermes-checkbox-container>\r\n <hermes-checkbox-wrapper>\r\n <input type=\"checkbox\" hermesCheckbox name=\"agree\" [(ngModel)]=\"stepperForm.confirm.agree\" />\r\n <label>I agree to the terms</label>\r\n </hermes-checkbox-wrapper>\r\n </hermes-checkbox-container>\r\n <button hermesStepButton=\"previous\">Previous</button>\r\n <button hermesStepButton=\"submit\">Submit</button>\r\n </hermes-step-content>\r\n </hermes-stepper-panel>\r\n </form>\r\n </div>\r\n\r\n <!-- Datagrid -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Datagrid</p>\r\n <hermes-datagrid [hermesDgSelectionType]=\"'multi'\">\r\n <hermes-dg-column>Name</hermes-dg-column>\r\n <hermes-dg-column>Role</hermes-dg-column>\r\n <hermes-dg-column>Status</hermes-dg-column>\r\n @for (row of rows; track row.name) {\r\n <hermes-dg-row [hermesDgItem]=\"row\">\r\n <hermes-dg-cell>{{ row.name }}</hermes-dg-cell>\r\n <hermes-dg-cell>{{ row.role }}</hermes-dg-cell>\r\n <hermes-dg-cell>\r\n <span\r\n class=\"badge\"\r\n [class.badge-success]=\"row.status === 'Active'\"\r\n [class.badge-danger]=\"row.status === 'Inactive'\"\r\n >\r\n {{ row.status }}\r\n </span>\r\n </hermes-dg-cell>\r\n </hermes-dg-row>\r\n }\r\n <hermes-dg-footer>{{ rows.length }} users</hermes-dg-footer>\r\n </hermes-datagrid>\r\n </div>\r\n\r\n <!-- Tabs -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Tabs</p>\r\n <hermes-tabs>\r\n <hermes-tab>\r\n <button hermesTabLink>Dashboard</button>\r\n <hermes-tab-content>\r\n <p>Content for the Dashboard tab.</p>\r\n </hermes-tab-content>\r\n </hermes-tab>\r\n <hermes-tab>\r\n <button hermesTabLink>Management</button>\r\n <hermes-tab-content>\r\n <p>Content for the Management tab.</p>\r\n </hermes-tab-content>\r\n </hermes-tab>\r\n <hermes-tab>\r\n <button hermesTabLink>Settings</button>\r\n <hermes-tab-content>\r\n <p>Content for the Settings tab.</p>\r\n </hermes-tab-content>\r\n </hermes-tab>\r\n </hermes-tabs>\r\n </div>\r\n\r\n <!-- Timeline -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Timeline</p>\r\n <hermes-timeline>\r\n <hermes-timeline-step [hermesState]=\"timelineStates.SUCCESS\">\r\n <hermes-timeline-step-header>11:59 am</hermes-timeline-step-header>\r\n <hermes-timeline-step-title>Add KMS</hermes-timeline-step-title>\r\n <hermes-timeline-step-description>Root CA certificate requested.</hermes-timeline-step-description>\r\n </hermes-timeline-step>\r\n <hermes-timeline-step [hermesState]=\"timelineStates.CURRENT\">\r\n <hermes-timeline-step-header>12:04 pm</hermes-timeline-step-header>\r\n <hermes-timeline-step-title>Make KMS trust vCenter</hermes-timeline-step-title>\r\n <hermes-timeline-step-description>\r\n Upload the certificate to the KMS to complete the connection.\r\n </hermes-timeline-step-description>\r\n </hermes-timeline-step>\r\n <hermes-timeline-step [hermesState]=\"timelineStates.NOT_STARTED\">\r\n <hermes-timeline-step-header>--:-- --</hermes-timeline-step-header>\r\n <hermes-timeline-step-title>Enable Encryption</hermes-timeline-step-title>\r\n <hermes-timeline-step-description>Not started yet.</hermes-timeline-step-description>\r\n </hermes-timeline-step>\r\n </hermes-timeline>\r\n </div>\r\n\r\n <!-- Wizard launcher -->\r\n <div class=\"tb-preview-section\">\r\n <p hermes-text=\"subsection uppercase bold\">Wizard</p>\r\n <button class=\"btn btn-outline\" (click)=\"wizardOpen = true\">Open Wizard</button>\r\n <hermes-wizard [(hermesWizardOpen)]=\"wizardOpen\" hermesWizardSize=\"md\">\r\n <hermes-wizard-title>Sample Wizard</hermes-wizard-title>\r\n <hermes-wizard-button [type]=\"'cancel'\">Cancel</hermes-wizard-button>\r\n <hermes-wizard-button [type]=\"'previous'\">Back</hermes-wizard-button>\r\n <hermes-wizard-button [type]=\"'next'\">Next</hermes-wizard-button>\r\n <hermes-wizard-button [type]=\"'finish'\">Finish</hermes-wizard-button>\r\n <hermes-wizard-page>\r\n <ng-template hermesPageTitle>Step 1: Introduction</ng-template>\r\n Welcome to the wizard. This step introduces the process.\r\n </hermes-wizard-page>\r\n <hermes-wizard-page>\r\n <ng-template hermesPageTitle>Step 2: Configuration</ng-template>\r\n Configure the required options in this step.\r\n </hermes-wizard-page>\r\n <hermes-wizard-page>\r\n <ng-template hermesPageTitle>Step 3: Confirm</ng-template>\r\n Review your choices and click Finish.\r\n </hermes-wizard-page>\r\n </hermes-wizard>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- end preview card -->\r\n</div>\r\n<!-- end .tb-layout -->\r\n", styles: [":host{display:block}:host ::ng-deep .stack-view .stack-view-key{min-width:26%;max-width:26%}:host ::ng-deep .stack-view .stack-block-content{max-width:46%}:host ::ng-deep .card .alert{margin:0}:host ::ng-deep .card-block .progress,:host ::ng-deep .card-block .progress-static{position:relative;height:var(--hermes-base-progress-bar-height);margin:0}:host ::ng-deep .card-block .progress>progress,:host ::ng-deep .card-block .progress-static>progress{height:100%;position:static}.tb-presets{display:flex;align-items:center;gap:var(--hermes-base-gap-m);flex-wrap:wrap;margin:0 var(--hermes-base-gap-m)}.tb-preset-cards{gap:var(--hermes-base-gap-l)}.tb-preset-cards .tb-preset-card{display:inline-flex;align-items:center;gap:var(--hermes-base-gap-m);margin:0;padding:var(--hermes-base-vertical-offset-m) var(--hermes-base-horizontal-offset-m);min-width:170px}.tb-preset-cards .tb-preset-card.tb-preset-card-active{outline:var(--hermes-alias-object-border-width-200) solid var(--hermes-alias-primary);outline-offset:2px}.tb-preset-cards .tb-preset-card .card-text{margin-bottom:0}.tb-preset-swatch{display:flex;align-items:center;justify-content:center;height:var(--hermes-base-row-height-m);min-width:var(--hermes-base-row-height-m);border:var(--hermes-alias-object-border-width-100) solid var(--hermes-alias-object-border-color);border-radius:var(--hermes-alias-object-border-radius-100);background:var(--hermes-alias-object-container-background);color:var(--hermes-alias-typography-color-300)}.tb-layout{display:grid;grid-template-columns:370px 1fr;gap:var(--hermes-base-gap-l);align-items:start}.tb-controls-card{margin-top:0;position:sticky;top:0;max-height:calc(100vh - var(--hermes-global-space-15));overflow-y:auto}.tb-controls-card .tb-control-header{display:flex;align-items:center;justify-content:space-between}.tb-wcag-container{display:flex;flex-direction:column;gap:var(--hermes-base-gap-s)}.tb-wcag-container .tb-wcag-item{display:flex;justify-content:space-between;align-items:center}.card-block{display:flex;flex-direction:column;gap:var(--hermes-base-gap-l)}.card-block .tb-color-input-wrap{display:flex;align-items:center;gap:var(--hermes-base-gap-s);min-width:190px}.card-block .tb-color-picker{padding:var(--hermes-base-vertical-offset-2xs) var(--hermes-base-horizontal-offset-2xs);border:var(--hermes-alias-object-border-width-100) solid var(--hermes-alias-object-border-color);border-radius:var(--hermes-alias-object-border-radius-100);cursor:pointer;background:var(--hermes-alias-object-container-background);width:var(--hermes-global-space-11)}.card-block .tb-hex-input{width:var(--hermes-base-layout-space-5xl);padding:var(--hermes-base-vertical-offset-2xs) var(--hermes-base-horizontal-offset-s);border:var(--hermes-alias-object-border-width-100) solid var(--hermes-alias-object-border-color);border-radius:var(--hermes-alias-object-border-radius-100)}.card-block .tb-stack-label{display:flex;gap:var(--hermes-base-gap-m);align-items:center}.tb-preview-card{margin-top:0}.tb-preview-card .card-header{display:flex;align-items:center;gap:var(--hermes-base-gap-m)}.tb-preview-sandbox{display:flex;flex-direction:column;gap:var(--hermes-base-gap-l);border-bottom-left-radius:var(--hermes-alias-object-border-radius-100);border-bottom-right-radius:var(--hermes-alias-object-border-radius-100)}.tb-preview-section{display:flex;flex-direction:column;gap:var(--hermes-base-gap-m)}.tb-preview-row{display:flex;align-items:center;gap:var(--hermes-base-gap-m);flex-wrap:wrap}.tb-nav-preview-wrap{height:180px;border:var(--hermes-alias-object-border-width-100) solid var(--hermes-alias-object-border-color);overflow:hidden;display:flex}\n"], dependencies: [{ kind: "ngmodule", type: HermesModule }, { kind: "component", type: i1.HermesAlert, selector: "hermes-alert", inputs: ["hermesAlertSizeSmall", "hermesAlertClosable", "hermesAlertAppLevel", "hermesCloseButtonAriaLabel", "hermesAlertLightweight", "hermesAlertType", "hermesAlertIcon", "hermesAlertClosed"], outputs: ["hermesAlertClosedChange"] }, { kind: "component", type: i1.HermesAlertItem, selector: "hermes-alert-item" }, { kind: "directive", type: i1.HermesAlertText, selector: ".alert-text" }, { kind: "component", type: i2.HermesLabel, selector: "hermes-label", inputs: ["hermesColor", "hermesBadgeText", "hermesText", "hermesClickable", "hermesDisabled", "hermesType"] }, { kind: "component", type: i3.HermesDatagrid, selector: "hermes-datagrid", inputs: ["hermesLoadingMoreItems", "hermesDgSingleSelectionAriaLabel", "hermesDgSingleActionableAriaLabel", "hermesDetailExpandableAriaLabel", "hermesDgDisablePageFocus", "hermesDgCustomSelectAllEnabled", "hermesDgSelectAllDisabled", "hermesDgLoading", "hermesDgSelectionType", "hermesDgSelected", "hermesDgPreserveSelection", "hermesDgRowSelection", "hermesDgItemsIdentityFn"], outputs: ["hermesDgSelectedChange", "hermesDgRefresh", "hermesDgCustomSelectAll"] }, { kind: "component", type: i3.HermesDatagridCell, selector: "hermes-dg-cell" }, { kind: "component", type: i3.HermesDatagridColumn, selector: "hermes-dg-column", inputs: ["hermesFilterStringPlaceholder", "hermesFilterNumberMaxPlaceholder", "hermesFilterNumberMinPlaceholder", "hermesDgDisableUnsort", "hermesDgPinned", "hermesDgColType", "hermesDgField", "hermesDgSortBy", "hermesDgSortOrder", "hermesFilterValue"], outputs: ["hermesDgSortOrderChange", "hermesFilterValueChange"] }, { kind: "component", type: i3.HermesDatagridFooter, selector: "hermes-dg-footer" }, { kind: "component", type: i3.HermesDatagridRow, selector: "hermes-dg-row", inputs: ["hermesDgDetailDisabled", "hermesDgDetailHidden", "hermesDgSkeletonLoading", "hermesDgItem", "hermesDgSelectable", "hermesDgSelected", "hermesDgExpanded", "hermesDgDetailOpenLabel", "hermesDgDetailCloseLabel", "hermesDgRowSelectionLabel"], outputs: ["hermesDgSelectedChange", "hermesDgExpandedChange"] }, { kind: "directive", type: i3.DatagridCellRenderer, selector: "hermes-dg-cell" }, { kind: "directive", type: i3.DatagridHeaderRenderer, selector: "hermes-dg-column", outputs: ["hermesDgColumnResize"] }, { kind: "directive", type: i3.DatagridMainRenderer, selector: "hermes-datagrid" }, { kind: "directive", type: i3.DatagridRowRenderer, selector: "hermes-dg-row" }, { kind: "directive", type: i3.ActionableOompaLoompa, selector: "hermes-datagrid, hermes-dg-row" }, { kind: "directive", type: i3.DatagridWillyWonka, selector: "hermes-datagrid" }, { kind: "directive", type: i3.ExpandableOompaLoompa, selector: "hermes-datagrid, hermes-dg-row" }, { kind: "component", type: i4.HermesStackView, selector: "hermes-stack-view" }, { kind: "component", type: i4.HermesStackHeader, selector: "hermes-stack-header", inputs: ["hermesStackHeaderLevel"] }, { kind: "component", type: i4.HermesStackBlock, selector: "hermes-stack-block", inputs: ["hermesSbExpanded", "hermesSbExpandable", "hermesStackViewLevel", "hermesSbNotifyChange"], outputs: ["hermesSbExpandedChange"] }, { kind: "component", type: i4.HermesStackViewLabel, selector: "hermes-stack-label", inputs: ["id"] }, { kind: "directive", type: i4.HermesStackViewCustomTags, selector: "hermes-stack-content" }, { kind: "component", type: i5.HermesTree, selector: "hermes-tree", inputs: ["hermesLazy"] }, { kind: "component", type: i5.HermesTreeNode, selector: "hermes-tree-node", inputs: ["hermesExpandable", "hermesDisabled", "hermesSelected", "hermesExpanded", "hermesForTypeAhead"], outputs: ["hermesSelectedChange", "hermesExpandedChange"] }, { kind: "component", type: i6.HermesIcon, selector: "hermes-icon, hermes-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i6.HermesIconCustomTag, selector: "hermes-icon" }, { kind: "directive", type: i7.HermesControlLabel, selector: "label", inputs: ["id", "for"] }, { kind: "component", type: i7.HermesControlError, selector: "hermes-control-error" }, { kind: "component", type: i7.HermesControlHelper, selector: "hermes-control-helper" }, { kind: "directive", type: i7.HermesIfError, selector: "[hermesIfError]", inputs: ["hermesIfError"] }, { kind: "directive", type: i7.HermesForm, selector: "[hermesForm]", inputs: ["hermesLabelSize"] }, { kind: "directive", type: i7.HermesLayout, selector: "[hermesForm][hermesLayout]", inputs: ["hermesLayout"] }, { kind: "directive", type: i8.HermesCheckbox, selector: "[hermesCheckbox],[hermesToggle]" }, { kind: "component", type: i8.HermesCheckboxContainer, selector: "hermes-checkbox-container,hermes-toggle-container", inputs: ["hermesInline"] }, { kind: "component", type: i8.HermesCheckboxWrapper, selector: "hermes-checkbox-wrapper,hermes-toggle-wrapper" }, { kind: "directive", type: i9.HermesInput, selector: "[hermesInput]" }, { kind: "component", type: i9.HermesInputContainer, selector: "hermes-input-container" }, { kind: "directive", type: i10.HermesRadio, selector: "[hermesRadio]" }, { kind: "component", type: i10.HermesRadioContainer, selector: "hermes-radio-container", inputs: ["hermesInline"] }, { kind: "component", type: i10.HermesRadioWrapper, selector: "hermes-radio-wrapper" }, { kind: "directive", type: i11.HermesTextarea, selector: "[hermesTextarea]" }, { kind: "component", type: i11.HermesTextareaContainer, selector: "hermes-textarea-container" }, { kind: "component", type: i12.HermesTabContent, selector: "hermes-tab-content", inputs: ["id"] }, { kind: "component", type: i12.HermesTab, selector: "hermes-tab" }, { kind: "component", type: i12.HermesTabs, selector: "hermes-tabs", inputs: ["hermesLayout"] }, { kind: "directive", type: i12.HermesTabLink, selector: "[hermesTabLink]", inputs: ["id", "hermesTabLinkInOverflow"] }, { kind: "directive", type: i12.TabsWillyWonka, selector: "hermes-tabs" }, { kind: "directive", type: i12.ActiveOompaLoompa, selector: "[hermesTabLink], hermes-tab-content" }, { kind: "component", type: i13.HermesVerticalNav, selector: "hermes-vertical-nav", inputs: ["hermesVerticalNavToggleLabel", "hermesVerticalNavPinnable", "hermesVerticalNavLabel", "hermesVerticalNavMode", "hermesVerticalNavFooter", "hermesVerticalNavAutoWidth", "hermesVerticalNavFooterLabels", "hermesVerticalNavCollapsible", "hermesVerticalNavCollapsed"], outputs: ["hermesVerticalNavModeChange", "hermesVerticalNavCollapsedChange"] }, { kind: "component", type: i13.HermesVerticalNavLink, selector: "[hermesVerticalNavLink]" }, { kind: "component", type: i13.HermesVerticalNavGroup, selector: "hermes-vertical-nav-group", inputs: ["hermesVerticalNavGroupExpanded"], outputs: ["hermesVerticalNavGroupExpandedChange"] }, { kind: "component", type: i13.HermesVerticalNavGroupChildren, selector: "hermes-vertical-nav-group-children" }, { kind: "directive", type: i13.HermesVerticalNavIcon, selector: "[hermesVerticalNavIcon]" }, { kind: "component", type: i14.HermesBreadcrumbs, selector: "hermes-breadcrumbs", inputs: ["items"], outputs: ["hermesBreadcrumbItemClick"] }, { kind: "component", type: i15.HermesTooltip, selector: "hermes-tooltip" }, { kind: "directive", type: i15.HermesTooltipTrigger, selector: "[hermesTooltipTrigger]" }, { kind: "component", type: i15.HermesTooltipContent, selector: "hermes-tooltip-content", inputs: ["id", "hermesPosition", "hermesSize"] }, { kind: "component", type: i16.HermesWizard, selector: "hermes-wizard", inputs: ["hermesWizardStepnavAriaLabel", "hermesWizardStepnavLayout", "hermesWizardSize", "hermesWizardInPage", "hermesWizardInPageFillContentArea", "hermesWizardHideFooter", "hermesWizardFooterAlign", "hermesWizardClosable", "hermesWizardPreventModalAnimation", "hermesWizardForceForwardNavigation", "hermesWizardOpen", "hermesWizardPreventDefaultNext", "hermesWizardPreventDefaultCancel", "hermesWizardPreventNavigation", "hermesWizardDisableStepnav"], outputs: ["hermesWizardOpenChange", "hermesWizardOnCancel", "hermesWizardOnFinish", "hermesWizardOnReset", "hermesWizardCurrentPageChange", "hermesWizardOnNext", "hermesWizardOnPrevious"] }, { kind: "component", type: i16.HermesWizardPage, selector: "hermes-wizard-page", inputs: ["id", "hermesWizardPagePreventDefault", "hermesWizardPageNextDisabled", "hermesWizardPagePreviousDisabled", "hermesWizardPageHasError", "hermesWizardPagePreventDefaultCancel", "hermesWizardPagePreventDefaultNext"], outputs: ["hermesWizardPageNextDisabledChange", "hermesWizardPagePreviousDisabledChange", "hermesWizardPagePreventDefaultCancelChange", "hermesWizardPageOnCommit", "hermesWizardPageOnLoad", "hermesWizardPageOnCancel", "hermesWizardPageFinish", "hermesWizardPagePrevious", "hermesWizardPageNext", "hermesWizardPageDanger", "hermesWizardPagePrimary", "hermesWizardPageCustomButton"] }, { kind: "component", type: i16.HermesWizardButton, selector: "hermes-wizard-button", inputs: ["type", "hermesWizardButtonDisabled", "hermesWizardButtonHidden"], outputs: ["hermesWizardButtonClicked"] }, { kind: "directive", type: i16.HermesWizardTitle, selector: "hermes-wizard-title", inputs: ["hermesHeadingLevel"] }, { kind: "directive", type: i16.HermesWizardPageTitle, selector: "[hermesPageTitle]", inputs: ["hermesHeadingLevel"] }, { kind: "component", type: i17.HermesAccordion, selector: "hermes-accordion", inputs: ["hermesAccordionMultiPanel"] }, { kind: "component", type: i17.HermesAccordionPanel, selector: "hermes-accordion-panel", inputs: ["hermesAccordionPanelDisabled", "hermesAccordionPanelOpen", "hermesAccordionPanelHeadingLevel"], outputs: ["hermesAccordionPanelOpenChange"] }, { kind: "component", type: i17.HermesAccordionTitle, selector: "hermes-accordion-title" }, { kind: "component", type: i17.HermesAccordionContent, selector: "hermes-accordion-content" }, { kind: "directive", type: i17.AccordionOompaLoompa, selector: "hermes-accordion-panel" }, { kind: "directive", type: i17.AccordionWillyWonka, selector: "hermes-accordion" }, { kind: "component", type: i18.HermesStepper, selector: "form[hermesStepper]", inputs: ["hermesInitialStep"] }, { kind: "directive", type: i18.HermesStepButton, selector: "[hermesStepButton]", inputs: ["hermesStepButton"] }, { kind: "component", type: i18.HermesStepTitle, selector: "hermes-step-title" }, { kind: "component", type: i18.HermesStepDescription, selector: "hermes-step-description" }, { kind: "component", type: i18.HermesStepContent, selector: "hermes-step-content" }, { kind: "component", type: i18.HermesStepperPanel, selector: "hermes-stepper-panel" }, { kind: "directive", type: i18.StepperOompaLoompa, selector: "hermes-stepper-panel, [hermesStepButton]" }, { kind: "directive", type: i18.StepperWillyWonka, selector: "form[hermesStepper]" }, { kind: "component", type: i19.HermesProgressBar, selector: "hermes-progress-bar", inputs: ["hermesMax", "hermesDisplayval", "hermesColor", "hermesValue", "id", "hermesCompact", "hermesLabeled", "hermesFade", "hermesLoop", "hermesFlash", "hermesFlashDanger"] }, { kind: "component", type: i20.HermesTimeline, selector: "hermes-timeline", inputs: ["hermesLayout"] }, { kind: "component", type: i20.HermesTimelineStep, selector: "hermes-timeline-step", inputs: ["hermesState"] }, { kind: "component", type: i20.HermesTimelineStepDescription, selector: "hermes-timeline-step-description" }, { kind: "component", type: i20.HermesTimelineStepHeader, selector: "hermes-timeline-step-header" }, { kind: "component", type: i20.HermesTimelineStepTitle, selector: "hermes-timeline-step-title" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i21.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i22.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i22.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i22.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i22.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i22.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i22.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i22.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i22.NgModelGroup, selector: "[ngModelGroup]", inputs: ["ngModelGroup"], exportAs: ["ngModelGroup"] }, { kind: "directive", type: i22.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: i21.UpperCasePipe, name: "uppercase" }] }); }
|
|
824
824
|
}
|
|
825
825
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ThemeBuilderComponent, decorators: [{
|
|
826
826
|
type: Component,
|