novo-elements 13.8.0-next.1 → 13.8.0-next.3

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.
@@ -7,7 +7,8 @@ declare class NovoButtonElement implements OnChanges {
7
7
  /**
8
8
  * The text color of the button. Should be used for Icon buttons. see theme.
9
9
  */
10
- color: string;
10
+ inputColor: i0.InputSignal<string>;
11
+ color: Signal<string>;
11
12
  /**
12
13
  * The side of the button to display the icon.
13
14
  */
@@ -47,13 +48,14 @@ declare class NovoButtonElement implements OnChanges {
47
48
  disabledAttr: undefined | '';
48
49
  private _icon;
49
50
  private _secondIcon;
51
+ private novoTheme;
50
52
  constructor(element: ElementRef);
51
53
  ngOnChanges(changes: SimpleChanges): void;
52
54
  handleKeydown(event: KeyboardEvent): void;
53
55
  /** Focuses the input. */
54
56
  focus(options?: FocusOptions): void;
55
57
  static ɵfac: i0.ɵɵFactoryDeclaration<NovoButtonElement, never>;
56
- static ɵcmp: i0.ɵɵComponentDeclaration<NovoButtonElement, "novo-button,button[theme]", never, { "color": { "alias": "color"; "required": false; }; "side": { "alias": "side"; "required": false; }; "size": { "alias": "size"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "secondIcon": { "alias": "secondIcon"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, ["*"], false, never>;
58
+ static ɵcmp: i0.ɵɵComponentDeclaration<NovoButtonElement, "novo-button,button[theme]", never, { "inputColor": { "alias": "color"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; }; "size": { "alias": "size"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "secondIcon": { "alias": "secondIcon"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, ["*"], false, never>;
57
59
  }
58
60
 
59
61
  declare class NovoButtonModule {
@@ -11,6 +11,9 @@
11
11
  }
12
12
  &[color=text] {
13
13
  color: inherit;
14
+ i {
15
+ color: inherit;
16
+ }
14
17
  }
15
18
  &:hover,
16
19
  &:focus,
@@ -1,6 +1,38 @@
1
1
  @import "../../styles/variables.scss";
2
2
  @import "../common/typography/text.mixins.scss";
3
3
 
4
+ // Map of `.novo-theme-*` toast variants to their CSS custom property values.
5
+ // `token` overrides the `--color-*-utility-#{token}` segment when it differs
6
+ // from the map key (e.g. `.novo-theme-info` maps onto the "positive" tokens).
7
+ $novo-toast-themes2026: (
8
+ danger: (
9
+ token: negative,
10
+ border: #da4453,
11
+ background: #ffe6e8,
12
+ text: #9f111f,
13
+ knockout: #9f111f,
14
+ ),
15
+ warning: (
16
+ border: #f6b042,
17
+ background: #fff5e6,
18
+ text: #b0710e,
19
+ knockout: #b0710e,
20
+ ),
21
+ success: (
22
+ border: #78b732,
23
+ background: #e6f1ff,
24
+ text: #4d8a0c,
25
+ knockout: #4d8a0c,
26
+ ),
27
+ info: (
28
+ token: positive,
29
+ border: #4a89dc,
30
+ background: #e6f1ff,
31
+ text: #1450a0,
32
+ knockout: #1450a0,
33
+ ),
34
+ );
35
+
4
36
  :host {
5
37
  display: grid;
6
38
  grid-template-columns: 5rem 1fr 15px;
@@ -14,12 +46,10 @@
14
46
  box-shadow: var(--shadow-1);
15
47
  border-radius: var(--border-radius-sm);
16
48
 
17
- &.show {
18
- display: grid !important;
19
- }
20
-
21
49
  &.launched {
22
- display: none;
50
+ &:not(.show) {
51
+ display: none !important;
52
+ }
23
53
  position: fixed;
24
54
  z-index: 9999;
25
55
  }
@@ -40,7 +70,9 @@
40
70
  justify-content: center;
41
71
  align-content: center;
42
72
  align-items: center;
43
- align-self: flex-start;
73
+ :root:not([data-theme='bh2026']) & {
74
+ align-self: flex-start;
75
+ }
44
76
  cursor: pointer;
45
77
  height: 100%;
46
78
  }
@@ -264,6 +296,70 @@
264
296
  color: var(--font-color-base);
265
297
  }
266
298
  }
299
+ :root[data-theme='bh2026'] & {
300
+ display: flex;
301
+ gap: var(--toast-spacing-gap, 0.8rem);
302
+ padding: var(--toast-spacing-padding-vertical, 0.8rem) var(--toast-spacing-padding-horizontal, 0.8rem);
303
+ box-shadow: 0 var(--spacing-4, 4px) var(--spacing-8, 8px) 0 var(--color-transparency-charcoal-08, rgba(47, 47, 51, 0.08));
304
+
305
+ h5 {
306
+ text-transform: none;
307
+ font-size: var(--typography-body-lg-font-size, 1.6rem);
308
+ font-weight: var(--typography-body-lg-font-weight-medium, 500);
309
+ line-height: var(--typography-body-lg-line-height, 2.4rem);
310
+ padding: 0;
311
+ }
312
+
313
+ p {
314
+ font-size: var(--typography-body-sm-font-size, 12px);
315
+ font-weight: 500;
316
+ line-height: 1;
317
+ padding: 0;
318
+ }
319
+
320
+ .toast-content {
321
+ flex-grow: 1;
322
+ ::ng-deep button, ::ng-deep novo-button {
323
+ &[theme=dialogue] {
324
+ // Explicitly override the background effects of button-dialogue.scss, which conflict with any content using a non-white background
325
+ // This can be removed if the button theme is updated to better respect a variety of backgrounds
326
+ &:hover,
327
+ &:focus {
328
+ background: rgba(0, 0, 0, 0.2);
329
+ }
330
+ &:active {
331
+ background: rgba(0, 0, 0, 0.35);
332
+ }
333
+ }
334
+ }
335
+ }
336
+ .toast-icon {
337
+ width: 2.4rem;
338
+ height: 2.4rem;
339
+ border-radius: var(--border-radius-xsm, 0.4rem);
340
+ &:has(> .bhi-null) {
341
+ display: none;
342
+ }
343
+ }
344
+ .close-icon i {
345
+ font-size: var(--font-size-md, 1.3rem);
346
+ }
347
+
348
+ @each $name, $props in $novo-toast-themes2026 {
349
+ $token: if(map-has-key($props, token), map-get($props, token), $name);
350
+ &.novo-theme-#{$name}, &.novo-accent-#{$name}, &.#{$name} {
351
+ border: 1px solid var(--color-border-utility-#{$token}, #{map-get($props, border)});
352
+ background-color: var(--color-background-utility-#{$token}, #{map-get($props, background)});
353
+ color: var(--color-text-utility-#{$token}, #{map-get($props, text)});
354
+ .toast-icon {
355
+ background-color: var(--color-background-utility-#{$token}-knockout, #{map-get($props, knockout)});
356
+ i {
357
+ color: var(--color-background-utility-#{$token}, #{map-get($props, background)});
358
+ }
359
+ }
360
+ }
361
+ }
362
+ }
267
363
  }
268
364
 
269
365
  @keyframes embedded-slide-in {