@hermes-ui/angular 0.1.7 → 0.2.1
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 +70 -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 +83 -29
- 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,22 @@ class Color {
|
|
|
258
258
|
*/
|
|
259
259
|
const DEFAULT_OVERRIDES = {
|
|
260
260
|
// primary
|
|
261
|
+
// `--hermes-alias-object-accent-color`, not `-object-interaction-color`: that one is generic
|
|
262
|
+
// interactive text (dropdown items, alert, datagrid…) and is neutral at rest by design — it
|
|
263
|
+
// was the fan-out target here before, and it meant a colorful preset (Hibisco, say) painted
|
|
264
|
+
// every dropdown's resting item text pink, not just the vertical nav icons this was meant for.
|
|
265
|
+
// `interaction-color-selected` stays: a *selected* row taking the family color is normal,
|
|
266
|
+
// expected "recolor" behavior, unlike its resting text.
|
|
267
|
+
'--hermes-alias-primary': ['--hermes-alias-object-accent-color', '--hermes-alias-object-interaction-color-selected'],
|
|
261
268
|
'--hermes-alias-primary-tint': ['--hermes-alias-object-interaction-background-hover'],
|
|
262
269
|
'--hermes-alias-primary-shade': ['--hermes-alias-typography-link-color', '--hermes-alias-object-interaction-primary-hover'],
|
|
263
270
|
'--hermes-alias-primary-dark': [
|
|
264
271
|
'--hermes-alias-typography-link-color-hover',
|
|
265
272
|
'--hermes-alias-typography-primary-hover',
|
|
266
273
|
'--hermes-alias-object-interaction-primary-active',
|
|
274
|
+
'--hermes-alias-object-interaction-color-hover',
|
|
275
|
+
'--hermes-alias-object-interaction-color-active',
|
|
276
|
+
'--hermes-alias-object-accent-color-active',
|
|
267
277
|
],
|
|
268
278
|
'--hermes-alias-primary-tint-dark': [
|
|
269
279
|
'--hermes-alias-object-interaction-background-selected',
|
|
@@ -397,75 +407,69 @@ const DEFAULT_PRESET = {
|
|
|
397
407
|
dark: null,
|
|
398
408
|
};
|
|
399
409
|
const PRESETS = [
|
|
410
|
+
// The eleven presets below only swap `primary` (the accent) — `info`/`success`/`warning`/
|
|
411
|
+
// `danger` are left unset, same as Evergreen, since none of them change the meaning of "this is
|
|
412
|
+
// a success/warning/error state." The source theme this was ported from also varies a second,
|
|
413
|
+
// `tertiary` color per family, but that one turned out to be a dataviz categorical color with no
|
|
414
|
+
// Hermes equivalent yet (see git history if we ever want to revisit it) — not, as first assumed
|
|
415
|
+
// here, the vertical nav's background, which stays theme-only in both systems.
|
|
400
416
|
{
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
dark: { primary: new Color('--hermes-alias-primary', 'hsl(198deg 100% 59%)') }, // blue-400
|
|
417
|
+
name: 'Hibisco',
|
|
418
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(338deg 62% 47%)') },
|
|
419
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(338deg 77% 59%)') },
|
|
405
420
|
},
|
|
406
421
|
{
|
|
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
|
-
},
|
|
422
|
+
name: 'Oceano',
|
|
423
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(211deg 62% 43%)') },
|
|
424
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(211deg 77% 54%)') },
|
|
418
425
|
},
|
|
419
426
|
{
|
|
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
|
-
},
|
|
427
|
+
name: 'Ipê',
|
|
428
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(36deg 70% 34%)') },
|
|
429
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(36deg 85% 41%)') },
|
|
435
430
|
},
|
|
436
431
|
{
|
|
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
|
-
},
|
|
432
|
+
name: 'Jabuticaba',
|
|
433
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(286deg 45% 48%)') },
|
|
434
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(286deg 60% 60%)') },
|
|
452
435
|
},
|
|
453
436
|
{
|
|
454
|
-
name: '
|
|
455
|
-
light: {
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
},
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
437
|
+
name: 'Samambaia',
|
|
438
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(132deg 52% 32%)') },
|
|
439
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(132deg 67% 38%)') },
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
name: 'Anil',
|
|
443
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(255deg 55% 56%)') },
|
|
444
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(255deg 70% 67%)') },
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
name: 'Urucum',
|
|
448
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(8deg 64% 45%)') },
|
|
449
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(8deg 79% 57%)') },
|
|
450
|
+
},
|
|
451
|
+
// Ported from the source theme's "Superman"/"Batman" families (a red-on-blue and a
|
|
452
|
+
// yellow-on-graphite accent, respectively) under generic names — this package ships publicly,
|
|
453
|
+
// and those are DC Comics character names.
|
|
454
|
+
{
|
|
455
|
+
name: 'Aviador',
|
|
456
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(356deg 78% 45%)') },
|
|
457
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(356deg 88% 61%)') },
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
name: 'Grafite',
|
|
461
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(47deg 91% 27%)') },
|
|
462
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(47deg 94% 33%)') },
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
name: 'Invencível',
|
|
466
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(219deg 80% 50%)') },
|
|
467
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(219deg 90% 62%)') },
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
name: 'Superchoque',
|
|
471
|
+
light: { primary: new Color('--hermes-alias-primary', 'hsl(41deg 88% 30%)') },
|
|
472
|
+
dark: { primary: new Color('--hermes-alias-primary', 'hsl(41deg 93% 36%)') },
|
|
469
473
|
},
|
|
470
474
|
];
|
|
471
475
|
const SAMPLE_ROWS = [
|
|
@@ -602,7 +606,7 @@ class ThemeBuilderComponent {
|
|
|
602
606
|
this.breadcrumbs = [
|
|
603
607
|
{ label: 'Framework', href: 'javascript://' },
|
|
604
608
|
{ label: 'Angular', href: 'javascript://' },
|
|
605
|
-
{ label: '
|
|
609
|
+
{ label: 'Hermes', href: 'javascript://' },
|
|
606
610
|
];
|
|
607
611
|
this.wizardOpen = false;
|
|
608
612
|
this.rows = SAMPLE_ROWS;
|
|
@@ -612,7 +616,7 @@ class ThemeBuilderComponent {
|
|
|
612
616
|
};
|
|
613
617
|
this.timelineStates = HermesTimelineStepState;
|
|
614
618
|
this._presets = [DEFAULT_PRESET, ...PRESETS];
|
|
615
|
-
|
|
619
|
+
HermesIcons.addIcons(sunIcon, moonIcon, undoIcon, homeIcon, cogIcon, userIcon);
|
|
616
620
|
}
|
|
617
621
|
/**
|
|
618
622
|
* Presets available in the preset selector. Defaults to Hermes's built-in preset list.
|
|
@@ -820,7 +824,7 @@ class ThemeBuilderComponent {
|
|
|
820
824
|
this.refreshThemeColors();
|
|
821
825
|
}
|
|
822
826
|
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" }] }); }
|
|
827
|
+
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
828
|
}
|
|
825
829
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ThemeBuilderComponent, decorators: [{
|
|
826
830
|
type: Component,
|