novo-elements 13.2.0-next.1 → 13.2.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/elements/breadcrumbs/Breadcrumb.scss +1 -1
  2. package/elements/button/styles/button-dialogue.scss +12 -0
  3. package/elements/button/styles/button-icon.scss +20 -0
  4. package/elements/button/styles/button-primary.scss +16 -1
  5. package/elements/button/styles/button-secondary.scss +14 -0
  6. package/elements/button/styles/button-standard.scss +14 -0
  7. package/elements/button/styles/button.scss +11 -0
  8. package/elements/card/Card.scss +11 -11
  9. package/elements/common/option/option.component.scss +11 -0
  10. package/elements/data-table/data-table.component.scss +79 -3
  11. package/elements/dropdown/Dropdown.scss +15 -0
  12. package/elements/field/field.scss +10 -6
  13. package/elements/field/hint/hint.scss +6 -0
  14. package/elements/form/ControlGroup.scss +13 -0
  15. package/elements/form/Form.scss +46 -0
  16. package/elements/header/Header.scss +16 -3
  17. package/elements/picker/extras/picker-results/PickerResults.scss +28 -0
  18. package/elements/progress/Progress.scss +8 -0
  19. package/elements/progress/ProgressBar.scss +4 -1
  20. package/elements/search/SearchBox.scss +34 -0
  21. package/elements/search/index.d.ts +11 -6
  22. package/elements/simple-table/table.scss +1 -1
  23. package/elements/stepper/stepper.component.scss +4 -4
  24. package/elements/tabbed-group-picker/TabbedGroupPicker.scss +41 -0
  25. package/elements/tabs/tab.scss +9 -8
  26. package/elements/tiles/Tiles.scss +18 -10
  27. package/elements/toolbar/toolbar.component.scss +2 -2
  28. package/fesm2022/novo-elements-elements-breadcrumbs.mjs +3 -3
  29. package/fesm2022/novo-elements-elements-breadcrumbs.mjs.map +1 -1
  30. package/fesm2022/novo-elements-elements-button.mjs +2 -2
  31. package/fesm2022/novo-elements-elements-button.mjs.map +1 -1
  32. package/fesm2022/novo-elements-elements-card.mjs +2 -2
  33. package/fesm2022/novo-elements-elements-card.mjs.map +1 -1
  34. package/fesm2022/novo-elements-elements-common.mjs +2 -2
  35. package/fesm2022/novo-elements-elements-common.mjs.map +1 -1
  36. package/fesm2022/novo-elements-elements-data-table.mjs +2 -2
  37. package/fesm2022/novo-elements-elements-data-table.mjs.map +1 -1
  38. package/fesm2022/novo-elements-elements-dropdown.mjs +2 -2
  39. package/fesm2022/novo-elements-elements-dropdown.mjs.map +1 -1
  40. package/fesm2022/novo-elements-elements-field.mjs +4 -4
  41. package/fesm2022/novo-elements-elements-field.mjs.map +1 -1
  42. package/fesm2022/novo-elements-elements-form.mjs +6 -6
  43. package/fesm2022/novo-elements-elements-form.mjs.map +1 -1
  44. package/fesm2022/novo-elements-elements-header.mjs +2 -2
  45. package/fesm2022/novo-elements-elements-header.mjs.map +1 -1
  46. package/fesm2022/novo-elements-elements-picker.mjs +4 -4
  47. package/fesm2022/novo-elements-elements-picker.mjs.map +1 -1
  48. package/fesm2022/novo-elements-elements-progress.mjs +4 -4
  49. package/fesm2022/novo-elements-elements-progress.mjs.map +1 -1
  50. package/fesm2022/novo-elements-elements-search.mjs +36 -9
  51. package/fesm2022/novo-elements-elements-search.mjs.map +1 -1
  52. package/fesm2022/novo-elements-elements-simple-table.mjs +4 -4
  53. package/fesm2022/novo-elements-elements-simple-table.mjs.map +1 -1
  54. package/fesm2022/novo-elements-elements-stepper.mjs +6 -6
  55. package/fesm2022/novo-elements-elements-stepper.mjs.map +1 -1
  56. package/fesm2022/novo-elements-elements-tabbed-group-picker.mjs +2 -2
  57. package/fesm2022/novo-elements-elements-tabbed-group-picker.mjs.map +1 -1
  58. package/fesm2022/novo-elements-elements-tabs.mjs +4 -4
  59. package/fesm2022/novo-elements-elements-tabs.mjs.map +1 -1
  60. package/fesm2022/novo-elements-elements-tiles.mjs +2 -2
  61. package/fesm2022/novo-elements-elements-tiles.mjs.map +1 -1
  62. package/fesm2022/novo-elements-elements-toolbar.mjs +2 -2
  63. package/package.json +1 -1
  64. package/styles/content/links.scss +4 -0
  65. package/styles/themes/bh2026.scss +103 -60
@@ -11,5 +11,5 @@
11
11
 
12
12
  // bh2026: subtle breadcrumb text.
13
13
  :host-context([data-theme='bh2026']) {
14
- color: var(--color-content-subtle, #8ca1b9);
14
+ color: var(--color-text-subtle);
15
15
  }
@@ -28,3 +28,15 @@
28
28
  }
29
29
  }
30
30
  }
31
+
32
+ :host-context([data-theme='bh2026']) {
33
+ &[theme="dialogue"] {
34
+ box-shadow: none;
35
+ &:hover,
36
+ &:focus,
37
+ &:active {
38
+ background: var(--button-dialogue-hover-background);
39
+ box-shadow: none;
40
+ }
41
+ }
42
+ }
@@ -39,3 +39,23 @@
39
39
  }
40
40
  }
41
41
  }
42
+
43
+ :host-context([data-theme='bh2026']) {
44
+ &[theme="icon"] {
45
+ height: var(--button-height);
46
+ width: var(--button-height);
47
+ border-radius: var(--border-radius-sm);
48
+ color: var(--color-text-subtle);
49
+ box-shadow: none;
50
+
51
+ &:focus,
52
+ &:hover {
53
+ background: var(--color-background-subtle);
54
+ box-shadow: none;
55
+ }
56
+ &:active {
57
+ background: var(--color-background-subtle-hover);
58
+ box-shadow: none;
59
+ }
60
+ }
61
+ }
@@ -11,7 +11,6 @@
11
11
 
12
12
  &:hover,
13
13
  &:focus {
14
-
15
14
  filter: brightness(1.15);
16
15
  box-shadow: var(--shadow-2), var(--shadow-1);
17
16
  }
@@ -41,3 +40,19 @@
41
40
  }
42
41
  }
43
42
  }
43
+
44
+ :host-context([data-theme='bh2026']) {
45
+ &[theme="primary"] {
46
+ &:hover,
47
+ &:focus {
48
+ filter: none;
49
+ background: var(--button-primary-background-hover);
50
+ box-shadow: var(--button-shadow-hover);
51
+ }
52
+ &:active {
53
+ filter: none;
54
+ background: var(--button-primary-background-hover);
55
+ box-shadow: var(--button-shadow-active);
56
+ }
57
+ }
58
+ }
@@ -49,3 +49,17 @@
49
49
  }
50
50
  }
51
51
  }
52
+
53
+ :host-context([data-theme='bh2026']) {
54
+ &[theme="secondary"] {
55
+ &:hover,
56
+ &:focus {
57
+ border: var(--button-secondary-border-hover);
58
+ box-shadow: var(--button-shadow-hover);
59
+ }
60
+ &:active {
61
+ border: var(--button-secondary-border-hover);
62
+ box-shadow: var(--button-shadow-active);
63
+ }
64
+ }
65
+ }
@@ -15,3 +15,17 @@
15
15
  }
16
16
  }
17
17
  }
18
+
19
+ :host-context([data-theme='bh2026']) {
20
+ &[theme="standard"] {
21
+ background: var(--button-background);
22
+ &:hover {
23
+ background: var(--button-hover-background);
24
+ box-shadow: var(--button-shadow-hover);
25
+ }
26
+ &:active {
27
+ background: var(--button-hover-background);
28
+ box-shadow: var(--button-shadow-active);
29
+ }
30
+ }
31
+ }
@@ -115,3 +115,14 @@
115
115
  transform: rotate(360deg);
116
116
  }
117
117
  }
118
+
119
+ :host-context([data-theme='bh2026']) {
120
+ box-shadow: var(--button-shadow);
121
+
122
+ &:hover {
123
+ box-shadow: var(--button-shadow-hover);
124
+ }
125
+ &:active {
126
+ box-shadow: var(--button-shadow-active);
127
+ }
128
+ }
@@ -119,24 +119,24 @@
119
119
 
120
120
  // bh2026: rounder card, grippy on hover
121
121
  :host-context([data-theme='bh2026']) {
122
- border-radius: var(--border-radius-md, 1.6rem);
123
- border: 1px solid var(--color-border-default, #f0f5f9);
124
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
122
+ border-radius: var(--border-radius-md);
123
+ border: 1px solid var(--color-border-default);
124
+ box-shadow: 0 1px 2px var(--color-transparency-black-10);
125
125
 
126
126
  div.card-loading-container {
127
- border-radius: var(--border-radius-md, 1.6rem);
127
+ border-radius: var(--border-radius-md);
128
128
  }
129
129
 
130
130
  header {
131
- padding: var(--spacing-16, 1.6rem) var(--spacing-24, 2.4rem) var(--spacing-16, 1.6rem) 0;
132
- border-bottom: 1px solid var(--color-border-default, #f0f5f9);
131
+ padding: var(--spacing-padding-md) var(--spacing-padding-lg) var(--spacing-padding-md) 0;
132
+ border-bottom: 1px solid var(--color-border-default);
133
133
 
134
134
  .title {
135
135
  h1,
136
136
  h2,
137
137
  h3 {
138
- font-size: var(--typography-card-header-font-size, 1.8rem);
139
- font-weight: var(--typography-card-header-font-weight, 500);
138
+ font-size: var(--typography-card-header-font-size, var(--typography-font-size-18));
139
+ font-weight: var(--typography-card-header-font-weight, var(--typography-font-weight-500));
140
140
  }
141
141
 
142
142
  ::ng-deep i.bhi-move {
@@ -145,17 +145,17 @@
145
145
  }
146
146
 
147
147
  &:hover .title ::ng-deep i.bhi-move {
148
- color: var(--color-content-subtle, #5d7798);
148
+ color: var(--color-text-subtle);
149
149
  }
150
150
 
151
151
  .actions {
152
152
  display: flex;
153
153
  align-items: center;
154
- gap: var(--spacing-8, 0.8rem);
154
+ gap: var(--spacing-gap-sm);
155
155
  }
156
156
 
157
157
  novo-button {
158
- color: var(--color-content-subtle, #5d7798);
158
+ color: var(--color-text-subtle);
159
159
  }
160
160
  }
161
161
  }
@@ -83,3 +83,14 @@
83
83
  .novo-option-pseudo-checkbox {
84
84
  margin-inline-end: calc(var(--menu-side-padding) / 2);
85
85
  }
86
+
87
+ // bh2026: white dropdown bg needs explicit hover — --background-main resolves to white
88
+ [data-theme='bh2026'] .novo-option {
89
+ &:hover:not(.novo-option-inert) {
90
+ background: var(--color-background-subtle);
91
+ }
92
+ &:active:not(.novo-option-inert),
93
+ &.novo-active:not(.novo-option-inert) {
94
+ background: var(--color-background-subtle-hover);
95
+ }
96
+ }
@@ -618,11 +618,87 @@ novo-data-table {
618
618
  }
619
619
  }
620
620
 
621
- // bh2026: stronger, subtler column headers
621
+ // bh2026: banded rows, horizontal borders, modern spacing
622
622
  [data-theme='bh2026'] {
623
623
  .novo-data-table-header-cell,
624
624
  .novo-data-table-header-cell > label {
625
- font-weight: 600;
626
- color: var(--color-content-subtle, #8ca1b9);
625
+ font-weight: var(--typography-font-weight-600);
626
+ font-size: var(--font-size-caption);
627
+ color: var(--color-text-subtle);
628
+ }
629
+
630
+ .novo-data-table-row,
631
+ .novo-data-table-header-row {
632
+ border-bottom: var(--border-width-border-default) solid var(--color-border-subtle);
633
+ }
634
+
635
+ .novo-data-table-cell,
636
+ .novo-data-table-header-cell {
637
+ padding: var(--spacing-padding-sm) var(--spacing-padding-md);
638
+ color: var(--color-text-body);
639
+ }
640
+
641
+ // Restore zero vertical padding on action/control cells — the general rule above overrides
642
+ // the base .button-cell / .dropdown-cell padding: 0 5px, putting 8px above/below the button.
643
+ .novo-data-table-cell {
644
+ &.button-cell,
645
+ &.dropdown-cell,
646
+ &.expand-cell,
647
+ &.checkbox-cell {
648
+ padding-top: 0;
649
+ padding-bottom: 0;
650
+ }
651
+ }
652
+
653
+ .novo-data-table-cell.clickable {
654
+ color: var(--color-text-link);
655
+ }
656
+
657
+ cdk-table {
658
+ > .novo-data-table-row:nth-of-type(odd) {
659
+ .novo-data-table-cell,
660
+ .novo-data-table-button-cell,
661
+ .novo-data-table-dropdown-cell,
662
+ .novo-data-table-expand-cell,
663
+ .novo-data-table-checkbox-cell {
664
+ background-color: var(--color-background-muted);
665
+ }
666
+ + .novo-data-table-detail-row {
667
+ background-color: var(--color-background-muted);
668
+ }
669
+ }
670
+ > .novo-data-table-row:nth-of-type(even) {
671
+ .novo-data-table-cell,
672
+ .novo-data-table-button-cell,
673
+ .novo-data-table-dropdown-cell,
674
+ .novo-data-table-expand-cell,
675
+ .novo-data-table-checkbox-cell {
676
+ background-color: var(--background-body);
677
+ }
678
+ + .novo-data-table-detail-row {
679
+ background-color: var(--background-body);
680
+ }
681
+ }
682
+ > .novo-data-table-row:hover {
683
+ .novo-data-table-cell,
684
+ .novo-data-table-button-cell,
685
+ .novo-data-table-dropdown-cell,
686
+ .novo-data-table-expand-cell,
687
+ .novo-data-table-checkbox-cell {
688
+ background-color: var(--color-background-subtle);
689
+ }
690
+ }
691
+ > .novo-data-table-row.active {
692
+ .novo-data-table-cell,
693
+ .novo-data-table-button-cell,
694
+ .novo-data-table-dropdown-cell,
695
+ .novo-data-table-expand-cell,
696
+ .novo-data-table-checkbox-cell {
697
+ background-color: var(--color-utility-blue-100);
698
+ }
699
+ + .novo-data-table-detail-row {
700
+ background-color: var(--color-utility-blue-100);
701
+ }
702
+ }
627
703
  }
628
704
  }
@@ -21,6 +21,21 @@
21
21
  }
22
22
  }
23
23
 
24
+ // bh2026: swap out the collapse icon for the sort-desc icon and style to ensure proper placement
25
+ :host-context([data-theme='bh2026']) {
26
+ ::ng-deep .novo-button-icon {
27
+ font-size: 1em !important;
28
+ }
29
+ ::ng-deep i.bhi-collapse {
30
+ display: inline-flex !important;
31
+ align-items: center;
32
+ justify-content: center;
33
+ }
34
+ ::ng-deep i.bhi-collapse::before {
35
+ content: "\f226"; // bhi-sort-desc - all code points are fixed in bullhorn-icons
36
+ }
37
+ }
38
+
24
39
  .dropdown-container {
25
40
  background-color: var(--background-bright, $color-bright);
26
41
  border-radius: var(--border-radius-sm);
@@ -109,15 +109,19 @@
109
109
  }
110
110
  }
111
111
 
112
- // bh2026: lighter label
112
+ // bh2026: uppercase label + tighter value typography per Figma "Value - Finalized" spec
113
113
  :host-context([data-theme='bh2026']) {
114
114
  .novo-field-label {
115
- font-weight: 600;
116
- font-size: 1rem;
117
- color: var(--color-content-subtle, #8ca1b9);
115
+ text-transform: var(--typography-input-label-sm-text-transform);
116
+ ::ng-deep novo-label {
117
+ font-weight: var(--typography-input-label-sm-font-weight);
118
+ font-size: var(--typography-input-label-sm-font-size);
119
+ letter-spacing: var(--typography-input-label-sm-letter-spacing);
120
+ color: var(--color-text-body);
121
+ }
118
122
  }
119
123
  .novo-field-input ::ng-deep .novo-input-element {
120
- font-size: 1.4rem;
121
- font-weight: 500;
124
+ font-size: var(--typography-input-value-default-font-size);
125
+ font-weight: var(--typography-input-value-default-font-weight);
122
126
  }
123
127
  }
@@ -16,3 +16,9 @@
16
16
  justify-content: flex-end;
17
17
  }
18
18
  }
19
+
20
+ :host-context([data-theme='bh2026']) {
21
+ font-size: var(--typography-input-value-sm-font-size);
22
+ font-weight: var(--typography-input-value-sm-font-weight);
23
+ color: var(--color-text-subtle);
24
+ }
@@ -50,6 +50,19 @@ novo-control-group {
50
50
  }
51
51
  }
52
52
 
53
+ // bh2026: description text and column-header labels match decoration weight/size of hint and field-message
54
+ [data-theme='bh2026'] & {
55
+ .novo-section-header label.novo-control-group-description {
56
+ font-size: var(--typography-input-value-sm-font-size);
57
+ font-weight: var(--typography-input-value-sm-font-weight);
58
+ color: var(--color-text-subtle);
59
+ }
60
+ .novo-control-group-labels .novo-control-group-control-label > span {
61
+ font-size: var(--typography-input-value-sm-font-size);
62
+ font-weight: var(--typography-input-value-sm-font-weight);
63
+ }
64
+ }
65
+
53
66
  .novo-control-group-controls {
54
67
  display: flex;
55
68
  flex-wrap: nowrap;
@@ -819,3 +819,49 @@ control-prompt-modal {
819
819
  min-width: 110px;
820
820
  }
821
821
  }
822
+
823
+ // bh2026: uppercase label + tighter value typography per Figma "Value - Finalized" spec
824
+ // ViewEncapsulation.None: use plain selectors (not :host-context which is Shadow DOM only)
825
+ :root[data-theme='bh2026'] {
826
+ label.novo-control-label {
827
+ &.novo-control-filled,
828
+ &.novo-control-focused,
829
+ &.novo-control-always-active {
830
+ font-weight: var(--typography-input-label-sm-font-weight) !important;
831
+ font-size: var(--typography-input-label-sm-font-size) !important;
832
+ letter-spacing: var(--typography-input-label-sm-letter-spacing);
833
+ text-transform: var(--typography-input-label-sm-text-transform);
834
+ color: var(--color-text-body) !important;
835
+ }
836
+ }
837
+ .novo-form-control-label {
838
+ font-weight: var(--typography-input-label-sm-font-weight) !important;
839
+ font-size: var(--typography-input-label-sm-font-size) !important;
840
+ letter-spacing: var(--typography-input-label-sm-letter-spacing);
841
+ text-transform: var(--typography-input-label-sm-text-transform);
842
+ color: var(--color-text-body) !important;
843
+ }
844
+ .novo-control-outer-container input:not([type='checkbox']):not([type='radio']) {
845
+ font-size: var(--typography-input-value-default-font-size) !important;
846
+ font-weight: var(--typography-input-value-default-font-weight) !important;
847
+ }
848
+ .field-message,
849
+ novo-tip-well.active {
850
+ font-size: var(--typography-input-value-sm-font-size);
851
+ font-weight: var(--typography-input-value-sm-font-weight);
852
+ color: var(--color-text-subtle);
853
+
854
+ // $grey is a compile-time SCSS variable — explicit selectors required to override
855
+ .character-count,
856
+ .record-count {
857
+ font-size: var(--typography-input-value-sm-font-size);
858
+ color: var(--color-text-subtle);
859
+ }
860
+ }
861
+ .error-message {
862
+ .character-count {
863
+ font-size: var(--typography-input-value-sm-font-size);
864
+ color: var(--color-text-subtle);
865
+ }
866
+ }
867
+ }
@@ -154,10 +154,23 @@
154
154
 
155
155
  // bh2026: frosted translucent header + entity squircle icon
156
156
  :host-context([data-theme='bh2026']) {
157
+ & > section {
158
+ gap: var(--spacing-gap-lg);
159
+ }
160
+
161
+ .header-actions {
162
+ gap: var(--spacing-gap-sm);
163
+ }
164
+
165
+ ::ng-deep utils,
166
+ ::ng-deep novo-utils {
167
+ gap: var(--spacing-gap-sm);
168
+ }
169
+
157
170
  &[class*='novo-accent-'] {
158
- background: var(--color-transparency-white-90, rgba(255, 255, 255, 0.9));
171
+ background: var(--color-transparency-white-90);
159
172
  backdrop-filter: blur(12px);
160
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
173
+ box-shadow: 0 1px 2px var(--color-transparency-black-10);
161
174
  padding-top: var(--spacing-md);
162
175
  padding-left: var(--spacing-lg);
163
176
  padding-right: var(--spacing-lg);
@@ -167,7 +180,7 @@
167
180
  }
168
181
 
169
182
  utils {
170
- color: var(--color-transparency-black-60);
183
+ color: var(--color-text-subtle);
171
184
  }
172
185
  }
173
186
 
@@ -300,3 +300,31 @@ distribution-list-picker-results {
300
300
  }
301
301
  }
302
302
 
303
+ // bh2026: border belongs on the host (border is not clipped by overflow:hidden),
304
+ // not on children (where overflow:hidden + border-radius clips the corners)
305
+ :root[data-theme='bh2026'] {
306
+ picker-results,
307
+ entity-picker-results {
308
+ border: 1px solid var(--color-border-default);
309
+
310
+ .novo-list,
311
+ novo-list,
312
+ ul {
313
+ border: none;
314
+ box-shadow: none;
315
+ }
316
+
317
+ picker-error,
318
+ picker-loader,
319
+ picker-null-recent-results,
320
+ picker-null-results,
321
+ .picker-error,
322
+ .picker-loader,
323
+ .picker-null-recent-results,
324
+ .picker-null-results {
325
+ border: none;
326
+ box-shadow: none;
327
+ }
328
+ }
329
+ }
330
+
@@ -36,3 +36,11 @@
36
36
  width: 100%;
37
37
  }
38
38
  }
39
+
40
+ :host-context([data-theme='bh2026']) {
41
+ &.linear {
42
+ border-radius: var(--border-radius-pill);
43
+ background-color: var(--color-background-subtle-hover);
44
+ border-color: var(--color-border-default);
45
+ }
46
+ }
@@ -106,8 +106,11 @@
106
106
  100% { transform: translateX(0%) }
107
107
  }
108
108
 
109
- // bh2026: pill progress bar ends (fill color rides on the deferred accent).
109
+ // bh2026: pill ends; default fill uses primary blue only when no explicit color is set
110
110
  :host-context([data-theme='bh2026']) {
111
+ &.linear:not([color]) {
112
+ background-color: var(--button-primary-background);
113
+ }
111
114
  &.linear:first-child {
112
115
  border-radius: 999px 0 0 999px;
113
116
  }
@@ -70,6 +70,40 @@
70
70
  }
71
71
  }
72
72
 
73
+ :host(.has-search-button) {
74
+ display: flex;
75
+ align-items: center;
76
+ gap: var(--spacing-8, 0.8rem);
77
+ height: auto;
78
+ padding: var(--spacing-4, 0.4rem) 0 var(--spacing-4, 0.4rem) var(--spacing-16, 1.6rem);
79
+ border-radius: var(--border-radius-sm, 3px);
80
+ max-width: none;
81
+ box-shadow: 0 0.2rem 0.2rem var(--color-transparency-charcoal-04, transparent);
82
+
83
+ novo-icon:first-child {
84
+ flex-shrink: 0;
85
+ font-size: 1.6rem;
86
+ color: var(--color-text-subtle, var(--text-muted));
87
+ }
88
+
89
+ > input {
90
+ flex: 1 1 0;
91
+ min-width: 0;
92
+ height: auto;
93
+
94
+ &::placeholder {
95
+ color: var(--color-text-subtle, var(--text-muted));
96
+ }
97
+ }
98
+ }
99
+
100
+ :host-context([data-theme='bh2026']) {
101
+ &.has-search-button {
102
+ border: 1px solid var(--color-border-default);
103
+ border-radius: var(--button-radius);
104
+ }
105
+ }
106
+
73
107
  header {
74
108
  novo-search.always-open:not(.focused) {
75
109
  button {
@@ -3,10 +3,11 @@ import { OnInit, ElementRef, EventEmitter, ChangeDetectorRef, NgZone } from '@an
3
3
  import { ControlValueAccessor } from '@angular/forms';
4
4
  import { NovoLabelService } from 'novo-elements/services';
5
5
  import * as i2 from '@angular/common';
6
- import * as i3 from 'novo-elements/elements/icon';
7
- import * as i4 from 'novo-elements/elements/picker';
8
- import * as i5 from 'novo-elements/elements/tooltip';
9
- import * as i6 from 'novo-elements/elements/common';
6
+ import * as i3 from 'novo-elements/elements/button';
7
+ import * as i4 from 'novo-elements/elements/icon';
8
+ import * as i5 from 'novo-elements/elements/picker';
9
+ import * as i6 from 'novo-elements/elements/tooltip';
10
+ import * as i7 from 'novo-elements/elements/common';
10
11
 
11
12
  declare class NovoSearchBoxElement implements ControlValueAccessor, OnInit {
12
13
  element: ElementRef;
@@ -18,6 +19,9 @@ declare class NovoSearchBoxElement implements ControlValueAccessor, OnInit {
18
19
  position: string;
19
20
  placeholder: string;
20
21
  alwaysOpen: boolean;
22
+ submitButton: boolean;
23
+ submitLabel: string;
24
+ submitButtonAutomationId: string;
21
25
  theme: string;
22
26
  color: string;
23
27
  closeOnSelect: boolean;
@@ -56,6 +60,7 @@ declare class NovoSearchBoxElement implements ControlValueAccessor, OnInit {
56
60
  get panelOpen(): boolean;
57
61
  get active(): boolean;
58
62
  /** END: Convenient Panel Methods. */
63
+ onSubmitClick(event: MouseEvent): void;
59
64
  _handleKeydown(event: KeyboardEvent): void;
60
65
  _handleInput(event: KeyboardEvent): void;
61
66
  writeValue(value: any): void;
@@ -73,12 +78,12 @@ declare class NovoSearchBoxElement implements ControlValueAccessor, OnInit {
73
78
  */
74
79
  clearValue(skip: any): void;
75
80
  static ɵfac: i0.ɵɵFactoryDeclaration<NovoSearchBoxElement, never>;
76
- static ɵcmp: i0.ɵɵComponentDeclaration<NovoSearchBoxElement, "novo-search", never, { "name": { "alias": "name"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "position": { "alias": "position"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "alwaysOpen": { "alias": "alwaysOpen"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "color": { "alias": "color"; "required": false; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; }; "displayField": { "alias": "displayField"; "required": false; }; "displayValue": { "alias": "displayValue"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "keepOpen": { "alias": "keepOpen"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "allowPropagation": { "alias": "allowPropagation"; "required": false; }; "overrideElement": { "alias": "overrideElement"; "required": false; }; }, { "searchChanged": "searchChanged"; "applySearch": "applySearch"; }, never, ["*"], false, never>;
81
+ static ɵcmp: i0.ɵɵComponentDeclaration<NovoSearchBoxElement, "novo-search", never, { "name": { "alias": "name"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "position": { "alias": "position"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "alwaysOpen": { "alias": "alwaysOpen"; "required": false; }; "submitButton": { "alias": "submitButton"; "required": false; }; "submitLabel": { "alias": "submitLabel"; "required": false; }; "submitButtonAutomationId": { "alias": "submitButtonAutomationId"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "color": { "alias": "color"; "required": false; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; }; "displayField": { "alias": "displayField"; "required": false; }; "displayValue": { "alias": "displayValue"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "keepOpen": { "alias": "keepOpen"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "allowPropagation": { "alias": "allowPropagation"; "required": false; }; "overrideElement": { "alias": "overrideElement"; "required": false; }; }, { "searchChanged": "searchChanged"; "applySearch": "applySearch"; }, never, ["*"], false, never>;
77
82
  }
78
83
 
79
84
  declare class NovoSearchBoxModule {
80
85
  static ɵfac: i0.ɵɵFactoryDeclaration<NovoSearchBoxModule, never>;
81
- static ɵmod: i0.ɵɵNgModuleDeclaration<NovoSearchBoxModule, [typeof NovoSearchBoxElement], [typeof i2.CommonModule, typeof i3.NovoIconModule, typeof i4.NovoPickerModule, typeof i5.NovoTooltipModule, typeof i6.NovoOverlayModule], [typeof NovoSearchBoxElement]>;
86
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NovoSearchBoxModule, [typeof NovoSearchBoxElement], [typeof i2.CommonModule, typeof i3.NovoButtonModule, typeof i4.NovoIconModule, typeof i5.NovoPickerModule, typeof i6.NovoTooltipModule, typeof i7.NovoOverlayModule], [typeof NovoSearchBoxElement]>;
82
87
  static ɵinj: i0.ɵɵInjectorDeclaration<NovoSearchBoxModule>;
83
88
  }
84
89
 
@@ -349,5 +349,5 @@ novo-simple-table-pagination {
349
349
  // bh2026: subtle, medium-weight column headers (matches data-table).
350
350
  [data-theme='bh2026'] .novo-simple-header-cell {
351
351
  font-weight: 600;
352
- color: var(--color-content-subtle, #8ca1b9);
352
+ color: var(--color-text-subtle);
353
353
  }
@@ -102,16 +102,16 @@ $novo-stepper-line-gap: 8px !default;
102
102
  // bh2026: neutral progress circles
103
103
  :host-context([data-theme='bh2026']) {
104
104
  .novo-step-icon .novo-step-number {
105
- background: var(--color-content-default, #282828);
105
+ background: var(--color-text-body);
106
106
  color: #fff;
107
- border: 1px solid var(--color-content-default, #282828);
107
+ border: 1px solid var(--color-text-body);
108
108
  border-radius: 50%;
109
109
  box-shadow: none;
110
110
  }
111
111
  .novo-step-icon-not-touched .novo-step-number {
112
112
  background: transparent;
113
- color: var(--color-content-subtle, #8ca1b9);
114
- border: 1px solid var(--color-border-default, #d0d9e3);
113
+ color: var(--color-text-subtle);
114
+ border: 1px solid var(--color-border-default);
115
115
  border-radius: 50%;
116
116
  box-shadow: none;
117
117
  }