novo-elements 13.1.0 → 13.2.0-next.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.
Files changed (230) hide show
  1. package/addons/ckeditor/index.d.ts +3 -1
  2. package/elements/agenda/common/AgendaDateChange.scss +3 -3
  3. package/elements/agenda/common/AgendaHoursLayout.scss +2 -2
  4. package/elements/agenda/day/AgendaDayView.scss +3 -3
  5. package/elements/agenda/month/AgendaMonthView.scss +8 -8
  6. package/elements/agenda/week/AgendaWeekView.scss +4 -4
  7. package/elements/aside/aside.component.scss +17 -2
  8. package/elements/aside/index.d.ts +16 -8
  9. package/elements/autocomplete/autocomplete.component.scss +4 -0
  10. package/elements/avatar/Avatar.scss +2 -2
  11. package/elements/breadcrumbs/Breadcrumb.scss +5 -0
  12. package/elements/breadcrumbs/breadcrumb-item/BreadcrumbItem.scss +3 -3
  13. package/elements/button/styles/button-dialogue.scss +6 -5
  14. package/elements/button/styles/button-fab.scss +1 -1
  15. package/elements/button/styles/button-icon.scss +5 -5
  16. package/elements/button/styles/button-other.scss +5 -5
  17. package/elements/button/styles/button-primary.scss +11 -9
  18. package/elements/button/styles/button-secondary.scss +8 -9
  19. package/elements/button/styles/button-standard.scss +2 -2
  20. package/elements/button/styles/button.scss +18 -12
  21. package/elements/calendar/calendar.component.scss +13 -13
  22. package/elements/calendar/month-select/month-select.component.scss +3 -3
  23. package/elements/calendar/month-view/month-view.component.scss +7 -7
  24. package/elements/calendar/year-select/year-select.component.scss +3 -3
  25. package/elements/card/Card.scss +55 -12
  26. package/elements/card/CardContent.scss +1 -1
  27. package/elements/card/CardFooter.scss +2 -2
  28. package/elements/card/CardHeader.scss +2 -2
  29. package/elements/category-dropdown/CategoryDropdown.scss +9 -9
  30. package/elements/checkbox/CheckList.scss +3 -3
  31. package/elements/checkbox/Checkbox.scss +3 -3
  32. package/elements/chips/Chip.scss +17 -17
  33. package/elements/chips/Chips.scss +9 -9
  34. package/elements/chips/RowChips.scss +2 -2
  35. package/elements/chips/index.d.ts +3 -1
  36. package/elements/color-picker/color-picker.component.scss +1 -1
  37. package/elements/common/index.d.ts +11 -3
  38. package/elements/common/option/option.component.scss +14 -19
  39. package/elements/common/selection/pseudo-checkbox/pseudo-checkbox.component.scss +2 -2
  40. package/elements/common/typography/text.mixins.scss +19 -19
  41. package/elements/data-table/data-table.component.scss +32 -23
  42. package/elements/data-table/index.d.ts +2 -1
  43. package/elements/data-table/pagination/data-table-pagination.component.scss +6 -6
  44. package/elements/date-picker/DatePicker.scss +18 -18
  45. package/elements/date-picker/DatePickerInput.scss +5 -5
  46. package/elements/date-picker/DateRangeInput.scss +1 -1
  47. package/elements/date-picker/MultiDateInput.scss +2 -2
  48. package/elements/date-time-picker/_DateTimePicker.scss +5 -5
  49. package/elements/divider/divider.component.scss +3 -3
  50. package/elements/dropdown/Dropdown.scss +7 -5
  51. package/elements/expansion/_expansion-theme.scss +1 -1
  52. package/elements/expansion/expansion-panel.scss +1 -0
  53. package/elements/field/error/error.scss +1 -1
  54. package/elements/field/field-fill.scss +4 -4
  55. package/elements/field/field-list.scss +4 -4
  56. package/elements/field/field-outline.scss +6 -6
  57. package/elements/field/field-standard.scss +3 -3
  58. package/elements/field/field.scss +14 -1
  59. package/elements/form/ControlGroup.scss +7 -7
  60. package/elements/form/Form.scss +40 -40
  61. package/elements/form/extras/address/Address.scss +6 -6
  62. package/elements/form/extras/file/FileInput.scss +4 -4
  63. package/elements/form/fieldset-header.scss +3 -3
  64. package/elements/form/index.d.ts +1 -1
  65. package/elements/header/Header.scss +45 -10
  66. package/elements/icon/Icon.scss +1 -1
  67. package/elements/layout/collapsible-nav/collapsible-nav.component.scss +20 -0
  68. package/elements/layout/index.d.ts +38 -5
  69. package/elements/list/list-item-content.scss +1 -1
  70. package/elements/list/list-item-header-avatar.scss +1 -1
  71. package/elements/list/list-item.scss +6 -6
  72. package/elements/loading/NovoSpinner.scss +1 -1
  73. package/elements/menu/menu-content.component.scss +8 -7
  74. package/elements/modal/modal.component.scss +8 -8
  75. package/elements/modal/notification.component.scss +21 -21
  76. package/elements/multi-picker/_MultiPicker.scss +2 -2
  77. package/elements/picker/Picker.scss +13 -13
  78. package/elements/picker/extras/grouped-multi-picker-results/GroupedMultiPickerResults.scss +14 -14
  79. package/elements/picker/extras/mixed-multi-picker-results/MixedMultiPickerResults.scss +17 -17
  80. package/elements/picker/extras/picker-results/PickerResult.scss +1 -1
  81. package/elements/picker/extras/picker-results/PickerResults.scss +25 -21
  82. package/elements/picker/extras/skills-picker-results/SkillsSpecialtyPickerResults.scss +3 -3
  83. package/elements/places/index.d.ts +24 -14
  84. package/elements/places/places.component.scss +3 -3
  85. package/elements/popover/PopOver.scss +2 -1
  86. package/elements/progress/Progress.scss +2 -2
  87. package/elements/progress/ProgressBar.scss +13 -3
  88. package/elements/query-builder/condition-builder/condition-builder.component.scss +1 -20
  89. package/elements/query-builder/index.d.ts +67 -35
  90. package/elements/radio/Radio.scss +8 -8
  91. package/elements/radio/radio-group.scss +2 -2
  92. package/elements/search/SearchBox.scss +8 -9
  93. package/elements/select/Select.scss +15 -14
  94. package/elements/select-search/select-search.component.scss +1 -1
  95. package/elements/simple-table/PaginationOld.scss +5 -5
  96. package/elements/simple-table/table.scss +15 -10
  97. package/elements/stepper/step-header.component.scss +9 -9
  98. package/elements/stepper/stepper.component.scss +25 -7
  99. package/elements/switch/Switch.scss +15 -7
  100. package/elements/tabbed-group-picker/TabbedGroupPicker.scss +17 -8
  101. package/elements/tabbed-group-picker/index.d.ts +27 -14
  102. package/elements/tabs/tab-nav.scss +3 -3
  103. package/elements/tabs/tab.scss +35 -5
  104. package/elements/tiles/Tiles.scss +24 -5
  105. package/elements/time-picker/TimePicker.scss +6 -6
  106. package/elements/time-picker/TimePickerInput.scss +1 -1
  107. package/elements/tip-well/TipWell.scss +5 -6
  108. package/elements/toast/Toast.scss +19 -18
  109. package/elements/toolbar/toolbar.component.scss +24 -6
  110. package/elements/tooltip/Tooltip.scss +2 -2
  111. package/elements/value/Value.scss +5 -4
  112. package/fesm2022/novo-elements-addons-ckeditor.mjs +22 -12
  113. package/fesm2022/novo-elements-addons-ckeditor.mjs.map +1 -1
  114. package/fesm2022/novo-elements-elements-agenda.mjs +8 -8
  115. package/fesm2022/novo-elements-elements-agenda.mjs.map +1 -1
  116. package/fesm2022/novo-elements-elements-aside.mjs +24 -9
  117. package/fesm2022/novo-elements-elements-aside.mjs.map +1 -1
  118. package/fesm2022/novo-elements-elements-autocomplete.mjs +2 -2
  119. package/fesm2022/novo-elements-elements-autocomplete.mjs.map +1 -1
  120. package/fesm2022/novo-elements-elements-avatar.mjs +4 -4
  121. package/fesm2022/novo-elements-elements-avatar.mjs.map +1 -1
  122. package/fesm2022/novo-elements-elements-breadcrumbs.mjs +4 -4
  123. package/fesm2022/novo-elements-elements-breadcrumbs.mjs.map +1 -1
  124. package/fesm2022/novo-elements-elements-button.mjs +2 -2
  125. package/fesm2022/novo-elements-elements-button.mjs.map +1 -1
  126. package/fesm2022/novo-elements-elements-calendar.mjs +8 -8
  127. package/fesm2022/novo-elements-elements-calendar.mjs.map +1 -1
  128. package/fesm2022/novo-elements-elements-card.mjs +8 -8
  129. package/fesm2022/novo-elements-elements-card.mjs.map +1 -1
  130. package/fesm2022/novo-elements-elements-category-dropdown.mjs +2 -2
  131. package/fesm2022/novo-elements-elements-category-dropdown.mjs.map +1 -1
  132. package/fesm2022/novo-elements-elements-checkbox.mjs +4 -4
  133. package/fesm2022/novo-elements-elements-checkbox.mjs.map +1 -1
  134. package/fesm2022/novo-elements-elements-chips.mjs +12 -8
  135. package/fesm2022/novo-elements-elements-chips.mjs.map +1 -1
  136. package/fesm2022/novo-elements-elements-color-picker.mjs +4 -4
  137. package/fesm2022/novo-elements-elements-color-picker.mjs.map +1 -1
  138. package/fesm2022/novo-elements-elements-common.mjs +61 -21
  139. package/fesm2022/novo-elements-elements-common.mjs.map +1 -1
  140. package/fesm2022/novo-elements-elements-data-table.mjs +4 -4
  141. package/fesm2022/novo-elements-elements-data-table.mjs.map +1 -1
  142. package/fesm2022/novo-elements-elements-date-picker.mjs +8 -8
  143. package/fesm2022/novo-elements-elements-date-picker.mjs.map +1 -1
  144. package/fesm2022/novo-elements-elements-date-time-picker.mjs +2 -2
  145. package/fesm2022/novo-elements-elements-date-time-picker.mjs.map +1 -1
  146. package/fesm2022/novo-elements-elements-divider.mjs +2 -2
  147. package/fesm2022/novo-elements-elements-divider.mjs.map +1 -1
  148. package/fesm2022/novo-elements-elements-dropdown.mjs +2 -2
  149. package/fesm2022/novo-elements-elements-dropdown.mjs.map +1 -1
  150. package/fesm2022/novo-elements-elements-expansion.mjs +2 -2
  151. package/fesm2022/novo-elements-elements-expansion.mjs.map +1 -1
  152. package/fesm2022/novo-elements-elements-field.mjs +6 -6
  153. package/fesm2022/novo-elements-elements-field.mjs.map +1 -1
  154. package/fesm2022/novo-elements-elements-form.mjs +17 -15
  155. package/fesm2022/novo-elements-elements-form.mjs.map +1 -1
  156. package/fesm2022/novo-elements-elements-header.mjs +2 -2
  157. package/fesm2022/novo-elements-elements-header.mjs.map +1 -1
  158. package/fesm2022/novo-elements-elements-icon.mjs +2 -2
  159. package/fesm2022/novo-elements-elements-icon.mjs.map +1 -1
  160. package/fesm2022/novo-elements-elements-layout.mjs +90 -9
  161. package/fesm2022/novo-elements-elements-layout.mjs.map +1 -1
  162. package/fesm2022/novo-elements-elements-list.mjs +10 -10
  163. package/fesm2022/novo-elements-elements-list.mjs.map +1 -1
  164. package/fesm2022/novo-elements-elements-loading.mjs +2 -2
  165. package/fesm2022/novo-elements-elements-loading.mjs.map +1 -1
  166. package/fesm2022/novo-elements-elements-menu.mjs +2 -2
  167. package/fesm2022/novo-elements-elements-menu.mjs.map +1 -1
  168. package/fesm2022/novo-elements-elements-modal.mjs +4 -4
  169. package/fesm2022/novo-elements-elements-modal.mjs.map +1 -1
  170. package/fesm2022/novo-elements-elements-multi-picker.mjs +2 -2
  171. package/fesm2022/novo-elements-elements-multi-picker.mjs.map +1 -1
  172. package/fesm2022/novo-elements-elements-picker.mjs +14 -14
  173. package/fesm2022/novo-elements-elements-picker.mjs.map +1 -1
  174. package/fesm2022/novo-elements-elements-places.mjs +195 -187
  175. package/fesm2022/novo-elements-elements-places.mjs.map +1 -1
  176. package/fesm2022/novo-elements-elements-popover.mjs +2 -2
  177. package/fesm2022/novo-elements-elements-popover.mjs.map +1 -1
  178. package/fesm2022/novo-elements-elements-progress.mjs +4 -4
  179. package/fesm2022/novo-elements-elements-progress.mjs.map +1 -1
  180. package/fesm2022/novo-elements-elements-query-builder.mjs +67 -19
  181. package/fesm2022/novo-elements-elements-query-builder.mjs.map +1 -1
  182. package/fesm2022/novo-elements-elements-radio.mjs +4 -4
  183. package/fesm2022/novo-elements-elements-radio.mjs.map +1 -1
  184. package/fesm2022/novo-elements-elements-search.mjs +2 -2
  185. package/fesm2022/novo-elements-elements-search.mjs.map +1 -1
  186. package/fesm2022/novo-elements-elements-select.mjs +2 -2
  187. package/fesm2022/novo-elements-elements-select.mjs.map +1 -1
  188. package/fesm2022/novo-elements-elements-simple-table.mjs +6 -6
  189. package/fesm2022/novo-elements-elements-simple-table.mjs.map +1 -1
  190. package/fesm2022/novo-elements-elements-stepper.mjs +8 -8
  191. package/fesm2022/novo-elements-elements-stepper.mjs.map +1 -1
  192. package/fesm2022/novo-elements-elements-switch.mjs +2 -2
  193. package/fesm2022/novo-elements-elements-switch.mjs.map +1 -1
  194. package/fesm2022/novo-elements-elements-tabbed-group-picker.mjs +70 -10
  195. package/fesm2022/novo-elements-elements-tabbed-group-picker.mjs.map +1 -1
  196. package/fesm2022/novo-elements-elements-tabs.mjs +6 -6
  197. package/fesm2022/novo-elements-elements-tabs.mjs.map +1 -1
  198. package/fesm2022/novo-elements-elements-tiles.mjs +2 -2
  199. package/fesm2022/novo-elements-elements-tiles.mjs.map +1 -1
  200. package/fesm2022/novo-elements-elements-time-picker.mjs +4 -4
  201. package/fesm2022/novo-elements-elements-time-picker.mjs.map +1 -1
  202. package/fesm2022/novo-elements-elements-tip-well.mjs +2 -2
  203. package/fesm2022/novo-elements-elements-tip-well.mjs.map +1 -1
  204. package/fesm2022/novo-elements-elements-toast.mjs +2 -2
  205. package/fesm2022/novo-elements-elements-toast.mjs.map +1 -1
  206. package/fesm2022/novo-elements-elements-toolbar.mjs +2 -2
  207. package/fesm2022/novo-elements-elements-toolbar.mjs.map +1 -1
  208. package/fesm2022/novo-elements-elements-tooltip.mjs +2 -2
  209. package/fesm2022/novo-elements-elements-tooltip.mjs.map +1 -1
  210. package/fesm2022/novo-elements-elements-value.mjs +2 -2
  211. package/fesm2022/novo-elements-elements-value.mjs.map +1 -1
  212. package/fesm2022/novo-elements-services.mjs +1 -0
  213. package/fesm2022/novo-elements-services.mjs.map +1 -1
  214. package/fesm2022/novo-elements.mjs +14 -0
  215. package/fesm2022/novo-elements.mjs.map +1 -1
  216. package/index.d.ts +14 -0
  217. package/novo-elements.scss +7 -7
  218. package/package.json +1 -1
  219. package/services/index.d.ts +1 -0
  220. package/styles/base.scss +1 -0
  221. package/styles/content/code.scss +2 -2
  222. package/styles/content/forms.scss +2 -2
  223. package/styles/content/misc.scss +3 -3
  224. package/styles/content/range.scss +3 -3
  225. package/styles/iconography.scss +3 -3
  226. package/styles/themes/bh2026.scss +134 -0
  227. package/styles/themes/dark.scss +6 -1
  228. package/styles/themes/light.scss +4 -0
  229. package/styles/typography.scss +3 -3
  230. package/styles/variables.scss +6 -6
@@ -53,7 +53,7 @@ $switch-thumb-size: 20px !default;
53
53
  width: $switch-width - 2px;
54
54
  top: calc($switch-height / 2) - calc($switch-bar-height / 2);
55
55
  height: $switch-bar-height;
56
- border-radius: 8px;
56
+ border-radius: var(--border-radius-lg, 8px);
57
57
  position: absolute;
58
58
  }
59
59
  .novo-switch-thumb-container {
@@ -79,7 +79,7 @@ $switch-thumb-size: 20px !default;
79
79
  height: $switch-thumb-size;
80
80
  width: $switch-thumb-size;
81
81
  border-radius: 50%;
82
- box-shadow: $shadow-1; // todo
82
+ box-shadow: var(--shadow-1); // todo
83
83
  color: getContrastColor("light");
84
84
 
85
85
  .novo-icon {
@@ -112,7 +112,7 @@ $switch-thumb-size: 20px !default;
112
112
  // Loop through analytics colors and make a switch color class for each
113
113
  @include theme-colors() using ($name, $color, $contrast, $tint, $shade, $pale) {
114
114
  &.#{$name} {
115
- @include novo-switch-style($color, lighten($color, 18%));
115
+ @include novo-switch-style($color, brightenLive('--color-#{$name}', 18));
116
116
  &[aria-checked="true"] {
117
117
  .novo-switch-thumb {
118
118
  color: getContrastColor($name);
@@ -122,22 +122,30 @@ $switch-thumb-size: 20px !default;
122
122
  }
123
123
 
124
124
  &.dark {
125
- @include novo-switch-style($dark, darken($dark, 5%));
125
+ @include novo-switch-style($dark, darkenLive('--color-dark', 5));
126
126
  }
127
127
  &.light {
128
- @include novo-switch-style(darken($light, 3%), $light);
128
+ @include novo-switch-style(darkenLive('--color-light', 3), $light);
129
129
  }
130
130
 
131
131
  .novo-switch-thumb {
132
132
  background-color: $light;
133
133
  }
134
134
  .novo-switch-bar {
135
- background-color: lighten($light, 10%);
135
+ background-color: brightenLive('--color-light', 10);
136
136
  }
137
137
 
138
138
  &:focus {
139
139
  .novo-switch-label:not(:empty) {
140
- border: 1px dotted $light;
140
+ border: 1px dotted var(--color-border);
141
141
  }
142
142
  }
143
143
  }
144
+
145
+ // bh2026: outlined toggle — white track + 1px neutral border in the off state
146
+ :host-context([data-theme='bh2026']) {
147
+ .novo-switch-bar {
148
+ background-color: var(--toggle-color-background, #ffffff);
149
+ border: 1px solid var(--toggle-color-border, var(--color-border-default, #f0f5f9));
150
+ }
151
+ }
@@ -29,7 +29,10 @@
29
29
  box-shadow: none;
30
30
  box-sizing: content-box;
31
31
  transition: all 300ms;
32
- color: $dark;
32
+ color: var(--font-color-base);
33
+ &.chip-list-input {
34
+ flex: 1 0 20px;
35
+ }
33
36
  &::placeholder {
34
37
  color: var(--form-placeholder);
35
38
  }
@@ -40,12 +43,18 @@
40
43
  bottom: 1em;
41
44
  right: 0.5em;
42
45
  color: $grey;
43
- font-size: 1.2rem;
46
+ font-size: var(--font-size-sm);
44
47
  margin-right: 1em;
45
48
  }
46
49
  i.bhi-times {
47
50
  cursor: pointer;
48
51
  }
52
+ .hidden-chips-toggle {
53
+ cursor: pointer;
54
+ }
55
+ &.use-chips {
56
+ max-width: 500px;
57
+ }
49
58
  }
50
59
 
51
60
  .footer {
@@ -67,7 +76,7 @@
67
76
  align-items: center;
68
77
 
69
78
  &.left {
70
- border-right: 1px solid $light;
79
+ border-right: 1px solid var(--color-border);
71
80
  justify-content: space-between;
72
81
 
73
82
  .clear-all-button {
@@ -94,7 +103,7 @@
94
103
  &:hover {
95
104
  .novo-tab-link {
96
105
  font-weight: 400;
97
- color: $positive;
106
+ color: var(--color-positive);
98
107
  }
99
108
  }
100
109
  }
@@ -119,14 +128,14 @@
119
128
 
120
129
  .quick-select-label {
121
130
  padding: 0.7em 1.9em 0 1.9em;
122
- background: lighten($light, 10%);
131
+ background: brightenLive('--color-light', 10);
123
132
  text-transform: uppercase;
124
133
  font-size: 0.8em;
125
134
  }
126
135
 
127
136
  .quick-select-list {
128
137
  .quick-select-item {
129
- background: lighten($light, 10%);
138
+ background: brightenLive('--color-light', 10);
130
139
  padding: 0.5em 0.8em;
131
140
  border-bottom: none;
132
141
  }
@@ -143,7 +152,7 @@
143
152
 
144
153
  novo-option {
145
154
  &:hover.novo-option-inert {
146
- background: var(--background-main, rgba($ocean, 0.1));
155
+ background: var(--background-main, rgb(from var(--color-ocean) r g b / 0.1));
147
156
  }
148
157
  }
149
158
  }
@@ -163,7 +172,7 @@
163
172
  }
164
173
  .empty-item-main-message {
165
174
  font-weight: 500;
166
- color: $dark;
175
+ color: var(--font-color-base);
167
176
  }
168
177
  .empty-item-sub-message {
169
178
  font-size: 0.9em;
@@ -1,18 +1,20 @@
1
- import * as i0 from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
2
2
  import { OnDestroy, OnInit, EventEmitter, ChangeDetectorRef } from '@angular/core';
3
3
  import { BehaviorSubject, Subscription } from 'rxjs';
4
4
  import { NovoLabelService } from 'novo-elements/services';
5
- import * as i9 from 'novo-elements/elements/dropdown';
5
+ import * as i12 from 'novo-elements/elements/dropdown';
6
6
  import { NovoDropdownElement } from 'novo-elements/elements/dropdown';
7
7
  import * as i2 from '@angular/common';
8
8
  import * as i3 from '@angular/forms';
9
9
  import * as i4 from '@angular/cdk/scrolling';
10
- import * as i5 from 'novo-elements/elements/tabs';
11
- import * as i6 from 'novo-elements/elements/list';
12
- import * as i7 from 'novo-elements/elements/form';
13
- import * as i8 from 'novo-elements/elements/button';
14
- import * as i10 from 'novo-elements/elements/common';
15
- import * as i11 from 'novo-elements/elements/checkbox';
10
+ import * as i5 from 'novo-elements/elements/chips';
11
+ import * as i6 from 'novo-elements/elements/common';
12
+ import * as i7 from 'novo-elements/elements/icon';
13
+ import * as i8 from 'novo-elements/elements/tabs';
14
+ import * as i9 from 'novo-elements/elements/list';
15
+ import * as i10 from 'novo-elements/elements/form';
16
+ import * as i11 from 'novo-elements/elements/button';
17
+ import * as i13 from 'novo-elements/elements/checkbox';
16
18
 
17
19
  type TabbedGroupPickerTab = {
18
20
  typeName: string;
@@ -20,7 +22,7 @@ type TabbedGroupPickerTab = {
20
22
  valueField: string;
21
23
  labelField: string;
22
24
  scrollOffset?: number;
23
- icon?: string;
25
+ icon?: any;
24
26
  } & (ParentTab | ChildTab);
25
27
  type ParentTab = {
26
28
  childTypeName: string;
@@ -76,11 +78,15 @@ declare class NovoTabbedGroupPickerElement implements OnDestroy, OnInit {
76
78
  tabs: TabbedGroupPickerTab[];
77
79
  quickSelectConfig: QuickSelectConfig;
78
80
  showFooter: boolean;
81
+ useChips: _angular_core.InputSignal<boolean>;
82
+ maxChips: _angular_core.InputSignal<number>;
83
+ chipSize: _angular_core.InputSignal<string>;
79
84
  selectionEnabled: boolean;
80
85
  activation: EventEmitter<any>;
81
86
  selectionChange: EventEmitter<TabbedGroupPickerTab[]>;
82
87
  applyChange: EventEmitter<any>;
83
88
  cancelChange: EventEmitter<any>;
89
+ tabSelect: EventEmitter<any>;
84
90
  displayTabs: TabbedGroupPickerTab[];
85
91
  displayTabIndex: number;
86
92
  filterText: BehaviorSubject<string>;
@@ -90,6 +96,11 @@ declare class NovoTabbedGroupPickerElement implements OnDestroy, OnInit {
90
96
  appliedState: TabbedGroupPickerTab[];
91
97
  scrollViewportHeight: number;
92
98
  virtualScrollItemSize: number;
99
+ selectedChips: _angular_core.WritableSignal<any[]>;
100
+ showAllChips: _angular_core.WritableSignal<boolean>;
101
+ displayedChips: _angular_core.Signal<any[]>;
102
+ hiddenChips: _angular_core.Signal<any[]>;
103
+ chipsInputPlaceholder: _angular_core.Signal<string>;
93
104
  constructor(labelService: NovoLabelService, ref: ChangeDetectorRef);
94
105
  get displayTab(): TabbedGroupPickerTab;
95
106
  set displayTab(tab: TabbedGroupPickerTab);
@@ -97,6 +108,7 @@ declare class NovoTabbedGroupPickerElement implements OnDestroy, OnInit {
97
108
  get maxBufferPx(): number;
98
109
  ngOnInit(): void;
99
110
  ngOnDestroy(): void;
111
+ showAllChipsToggle(event: any): void;
100
112
  loadValues(): void;
101
113
  changeTab(tab: TabbedGroupPickerTab): void;
102
114
  getPixelHeight(element: HTMLElement): number;
@@ -114,6 +126,7 @@ declare class NovoTabbedGroupPickerElement implements OnDestroy, OnInit {
114
126
  onDropdownToggle(event: any): void;
115
127
  activateItem(item: any, tab?: TabbedGroupPickerTab): void;
116
128
  onItemToggled(item: Option): void;
129
+ toggleChip(item: Option): void;
117
130
  initializeDescendantSelection(): void;
118
131
  updateDescendants(parentIsSelected: boolean, children: Option[]): void;
119
132
  updateClearAll(itemWasJustSelected?: boolean): void;
@@ -133,14 +146,14 @@ declare class NovoTabbedGroupPickerElement implements OnDestroy, OnInit {
133
146
  };
134
147
  }): void;
135
148
  filter: (searchTerm: string) => void;
136
- static ɵfac: i0.ɵɵFactoryDeclaration<NovoTabbedGroupPickerElement, never>;
137
- static ɵcmp: i0.ɵɵComponentDeclaration<NovoTabbedGroupPickerElement, "novo-tabbed-group-picker", never, { "buttonConfig": { "alias": "buttonConfig"; "required": false; }; "tabs": { "alias": "tabs"; "required": false; }; "quickSelectConfig": { "alias": "quickSelectConfig"; "required": false; }; "showFooter": { "alias": "showFooter"; "required": false; }; "selectionEnabled": { "alias": "selectionEnabled"; "required": false; }; }, { "activation": "activation"; "selectionChange": "selectionChange"; "applyChange": "applyChange"; "cancelChange": "cancelChange"; }, never, ["*"], false, never>;
149
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NovoTabbedGroupPickerElement, never>;
150
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NovoTabbedGroupPickerElement, "novo-tabbed-group-picker", never, { "buttonConfig": { "alias": "buttonConfig"; "required": false; }; "tabs": { "alias": "tabs"; "required": false; }; "quickSelectConfig": { "alias": "quickSelectConfig"; "required": false; }; "showFooter": { "alias": "showFooter"; "required": false; }; "useChips": { "alias": "useChips"; "required": false; "isSignal": true; }; "maxChips": { "alias": "maxChips"; "required": false; "isSignal": true; }; "chipSize": { "alias": "chipSize"; "required": false; "isSignal": true; }; "selectionEnabled": { "alias": "selectionEnabled"; "required": false; }; }, { "activation": "activation"; "selectionChange": "selectionChange"; "applyChange": "applyChange"; "cancelChange": "cancelChange"; "tabSelect": "tabSelect"; }, never, ["*"], false, never>;
138
151
  }
139
152
 
140
153
  declare class NovoTabbedGroupPickerModule {
141
- static ɵfac: i0.ɵɵFactoryDeclaration<NovoTabbedGroupPickerModule, never>;
142
- static ɵmod: i0.ɵɵNgModuleDeclaration<NovoTabbedGroupPickerModule, [typeof NovoTabbedGroupPickerElement], [typeof i2.CommonModule, typeof i3.FormsModule, typeof i4.ScrollingModule, typeof i5.NovoTabModule, typeof i6.NovoListModule, typeof i7.NovoFormExtrasModule, typeof i8.NovoButtonModule, typeof i9.NovoDropdownModule, typeof i10.NovoOptionModule, typeof i11.NovoCheckboxModule], [typeof NovoTabbedGroupPickerElement]>;
143
- static ɵinj: i0.ɵɵInjectorDeclaration<NovoTabbedGroupPickerModule>;
154
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NovoTabbedGroupPickerModule, never>;
155
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<NovoTabbedGroupPickerModule, [typeof NovoTabbedGroupPickerElement], [typeof i2.CommonModule, typeof i3.FormsModule, typeof i4.ScrollingModule, typeof i5.NovoChipsModule, typeof i6.NovoCommonModule, typeof i7.NovoIconModule, typeof i8.NovoTabModule, typeof i9.NovoListModule, typeof i10.NovoFormExtrasModule, typeof i11.NovoButtonModule, typeof i12.NovoDropdownModule, typeof i6.NovoOptionModule, typeof i13.NovoCheckboxModule], [typeof NovoTabbedGroupPickerElement]>;
156
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<NovoTabbedGroupPickerModule>;
144
157
  }
145
158
 
146
159
  export { NovoTabbedGroupPickerElement, NovoTabbedGroupPickerModule };
@@ -10,7 +10,7 @@
10
10
 
11
11
  &[type="button-bar"] {
12
12
  display: inline-flex;
13
- border-radius: 3px;
13
+ border-radius: var(--border-radius-sm, 3px);
14
14
  border: 2px solid #fff;
15
15
  }
16
16
 
@@ -23,12 +23,12 @@
23
23
  }
24
24
 
25
25
  &[theme="white"] {
26
- background-color: $white;
26
+ background-color: var(--background-body);
27
27
  &[direction="vertical"] {
28
28
  background: transparent;
29
29
  }
30
30
  &[type="button-bar"] {
31
- border: 2px solid $light;
31
+ border: 2px solid var(--color-border);
32
32
  }
33
33
  }
34
34
 
@@ -22,10 +22,10 @@
22
22
  .novo-tab-link {
23
23
  @include novo-label-text();
24
24
  font-size: var(--font-size-tab);
25
- padding: $spacing-md;
25
+ padding: var(--spacing-md);
26
26
  display: flex;
27
27
  align-items: center;
28
- gap: $spacing-xs;
28
+ gap: var(--spacing-xs);
29
29
  cursor: pointer;
30
30
  text-transform: uppercase;
31
31
  &:focus {
@@ -76,7 +76,7 @@
76
76
  width: 100%;
77
77
  display: flex;
78
78
  flex-flow: row nowrap;
79
- gap: $spacing-xs;
79
+ gap: var(--spacing-xs);
80
80
  max-width: 90%;
81
81
  white-space: nowrap;
82
82
  overflow: hidden;
@@ -157,6 +157,36 @@
157
157
  }
158
158
  }
159
159
 
160
+ // bh2026: charcoal tabs, navy active text, rounded indicator
161
+ :host-context([data-theme='bh2026']) {
162
+ margin-right: var(--spacing-gap-lg);
163
+
164
+ .novo-tab-link {
165
+ color: var(--color-content-link, #282828);
166
+ // Tabs are Title Case, not uppercase.
167
+ text-transform: none;
168
+ font-weight: var(--typography-font-weight-400, 400);
169
+ }
170
+
171
+ &.active,
172
+ &.router-link-active {
173
+ color: #1450a0;
174
+ .novo-tab-link {
175
+ color: #1450a0;
176
+ font-weight: var(--typography-font-weight-600, 600);
177
+ }
178
+ .indicator {
179
+ background: #1450a0;
180
+ border-radius: 999px 999px 0 0;
181
+ }
182
+ }
183
+
184
+ &:hover {
185
+ .novo-tab-link {
186
+ color: #1450a0;
187
+ }
188
+ }
189
+ }
160
190
 
161
191
  :host-context(novo-nav[theme="color"]),
162
192
  :host-context(novo-nav[theme="neutral"]) {
@@ -183,8 +213,8 @@
183
213
  }
184
214
 
185
215
  :host-context(novo-nav.condensed) {
186
- font-size: 1rem;
216
+ font-size: var(--font-size-xs);
187
217
  .novo-tab-link {
188
- padding: $spacing-sm;
218
+ padding: var(--spacing-sm);
189
219
  }
190
220
  }
@@ -9,10 +9,10 @@
9
9
  position: absolute;
10
10
  }
11
11
  & > .tile-container {
12
- background: $white;
12
+ background: var(--background-bright);
13
13
  display: flex;
14
- border: solid thin $slate;
15
- border-radius: 3px;
14
+ border: solid thin var(--color-slate);
15
+ border-radius: var(--border-radius-sm);
16
16
  .tile {
17
17
  margin: 2px;
18
18
  gap: .5rem;
@@ -20,7 +20,7 @@
20
20
  margin-right: 3px;
21
21
  }
22
22
  &.defaultColor.active {
23
- background: darken($ocean, 20%);
23
+ background: darkenLive('--color-ocean', 20);
24
24
  }
25
25
  &.disabled {
26
26
  cursor: not-allowed;
@@ -34,7 +34,7 @@
34
34
  }
35
35
  }
36
36
  &.disabled {
37
- border-color: lighten($grey, 20%);
37
+ border-color: brightenLive('--color-grey', 20);
38
38
  opacity: 0.4;
39
39
  pointer-events: auto;
40
40
  cursor: not-allowed;
@@ -45,3 +45,22 @@
45
45
  }
46
46
  }
47
47
  }
48
+
49
+ // bh2026: pill container, muted bg, navy selected state
50
+ :host-context([data-theme='bh2026']) > .tile-container {
51
+ border-color: #8ca1b9;
52
+ border-radius: 999px;
53
+
54
+ .tile {
55
+ border-radius: 999px;
56
+ }
57
+
58
+ .tile.defaultColor.active {
59
+ background: var(--button-primary-background, #1f57a1);
60
+ }
61
+
62
+ .tile:not(.active) {
63
+ color: var(--text-muted, #8ca1b9);
64
+ i { color: var(--text-muted, #8ca1b9); }
65
+ }
66
+ }
@@ -4,7 +4,7 @@
4
4
  display: block;
5
5
  width: min-content;
6
6
  overflow: hidden;
7
- border-radius: 4px;
7
+ border-radius: var(--border-radius-sm);
8
8
  background-color: var(--background-bright);
9
9
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15), 0 2px 7px rgba(0, 0, 0, 0.1);
10
10
  z-index: z(overlay);
@@ -165,7 +165,7 @@
165
165
  display: block;
166
166
  right: 3.2rem;
167
167
  top: 50%;
168
- margin-top: -1.5rem;
168
+ margin-top: calc(-1 * var(--spacing-xl));
169
169
  border-radius: 50%;
170
170
  position: absolute;
171
171
  border: 3px solid var(--selection);
@@ -277,7 +277,7 @@
277
277
  margin-left: 1px;
278
278
  display: block;
279
279
  position: absolute;
280
- background-color: $background;
280
+ background-color: var(--background-main);
281
281
  }
282
282
  .analog--hour,
283
283
  .analog--minute {
@@ -299,7 +299,7 @@
299
299
  }
300
300
  }
301
301
  .analog--minute {
302
- font-size: 1rem;
302
+ font-size: var(--font-size-xs);
303
303
  margin-left: -20px;
304
304
  margin-top: -16px;
305
305
  }
@@ -364,7 +364,7 @@
364
364
  }
365
365
 
366
366
  &.hasButtons {
367
- border-radius: 4px 4px 0 0;
367
+ border-radius: var(--border-radius-sm) var(--border-radius-sm) 0 0;
368
368
 
369
369
  &.military {
370
370
  .increments--hour,
@@ -379,7 +379,7 @@
379
379
  justify-content: flex-end;
380
380
  padding: 1rem;
381
381
  gap: .5rem;
382
- border-radius: 0 0 4px 4px;
382
+ border-radius: 0 0 var(--border-radius-sm) var(--border-radius-sm);
383
383
  box-shadow: 0 1px 3px #00000026, 0 2px 7px #0000001a;
384
384
  }
385
385
  }
@@ -36,7 +36,7 @@
36
36
  position: absolute;
37
37
  right: 0;
38
38
  top: 0px;
39
- font-size: 1.2rem;
39
+ font-size: var(--font-size-sm);
40
40
  }
41
41
  > i.bhi-times {
42
42
  cursor: pointer;
@@ -4,22 +4,21 @@
4
4
  :host {
5
5
  &.active {
6
6
  display: inline-block;
7
- margin-bottom: $spacing-md;
7
+ margin-bottom: var(--spacing-md);
8
8
  }
9
9
  > div {
10
10
  display: inline-block;
11
- border-radius: 0.25rem;
12
- background-color: var(--background-main, $off-white);
11
+ border-radius: var(--border-radius-sm);
12
+ background-color: var(--background-main, $color-off-white);
13
13
  color: var(--text-main, $dark);
14
- padding: $spacing-lg;
14
+ padding: var(--spacing-lg);
15
15
  text-align: right;
16
16
  > div {
17
17
  display: flex;
18
18
  > i {
19
19
  flex-shrink: 0;
20
20
  text-align: center;
21
- margin-top: 0.3rem;
22
- margin-right: $spacing-md;
21
+ margin-right: var(--spacing-md);
23
22
  color: #aaaaaa;
24
23
  }
25
24
  > p {
@@ -8,10 +8,11 @@
8
8
  align-content: center;
9
9
  align-items: center;
10
10
  position: relative;
11
- background: $navy;
12
- color: $white;
13
- padding: $spacing-md;
14
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
11
+ background: var(--color-toast);
12
+ color: var(--text-bg-contrast);
13
+ padding: var(--spacing-md);
14
+ box-shadow: var(--shadow-1);
15
+ border-radius: var(--border-radius-sm);
15
16
 
16
17
  &.show {
17
18
  display: grid !important;
@@ -31,7 +32,7 @@
31
32
  width: 32px;
32
33
  height: 32px;
33
34
  background: rgba(0, 0, 0, 0.15);
34
- border-radius: 3px;
35
+ border-radius: var(--border-radius-sm);
35
36
  }
36
37
 
37
38
  .close-icon {
@@ -48,7 +49,7 @@
48
49
  .close-icon i {
49
50
  display: flex;
50
51
  position: relative;
51
- font-size: 1.2rem;
52
+ font-size: var(--font-size-sm);
52
53
  line-height: 1.2;
53
54
  }
54
55
 
@@ -60,7 +61,7 @@
60
61
  input {
61
62
  background: transparent !important;
62
63
  border: none;
63
- border-bottom: 1px solid lighten($dark, 45%);
64
+ border-bottom: 1px solid brightenLive('--color-dark', 45);
64
65
  border-radius: 0;
65
66
  outline: none;
66
67
  height: 2rem;
@@ -73,10 +74,10 @@
73
74
  color: $white;
74
75
  text-overflow: ellipsis;
75
76
  &:focus {
76
- background-color: $positive;
77
+ background-color: var(--color-positive);
77
78
  }
78
79
  &:hover {
79
- border-bottom: 1px solid lighten($dark, 15%);
80
+ border-bottom: 1px solid brightenLive('--color-dark', 15);
80
81
  }
81
82
  }
82
83
  }
@@ -104,19 +105,19 @@
104
105
  }
105
106
 
106
107
  &.text {
107
- background: $dark;
108
+ background: var(--color-dark);
108
109
  }
109
110
  &.neutral {
110
- background: $neutral;
111
+ background: var(--color-neutral);
111
112
  }
112
113
  &.background {
113
- background: $off-white;
114
+ background: var(--background-main);
114
115
  .toast-content > h5 {
115
- color: $dark !important;
116
+ color: var(--text-main) !important;
116
117
  }
117
118
  i,
118
119
  p {
119
- color: $dark;
120
+ color: var(--text-main);
120
121
  }
121
122
  }
122
123
 
@@ -173,7 +174,7 @@
173
174
  }
174
175
 
175
176
  &[class*="growl"] {
176
- border-radius: 3px;
177
+ border-radius: var(--border-radius-sm, 3px);
177
178
  max-width: 350px;
178
179
  }
179
180
 
@@ -255,12 +256,12 @@
255
256
  @include theme-colors() using ($name, $color, $contrast, $tint, $shade, $pale) {
256
257
  &.#{$name} {
257
258
  color: getContrastColor($name);
258
- background: $color;
259
+ background: getCssVarname($name);
259
260
  }
260
261
  &.novo-accent-#{$name} {
261
- border: 1px solid $color;
262
+ border: 1px solid getCssVarname($name);
262
263
  background: getPaleColor($name);
263
- color: $dark;
264
+ color: var(--font-color-base);
264
265
  }
265
266
  }
266
267
  }
@@ -7,7 +7,7 @@
7
7
  box-sizing: border-box;
8
8
  background-color: var(--background-bright);
9
9
  color: var(--text-main);
10
- padding: 0 $spacing-md;
10
+ padding: 0 var(--spacing-md);
11
11
  width: 100%;
12
12
  // Flexbox Vertical Alignment
13
13
  flex-direction: row;
@@ -24,17 +24,19 @@
24
24
  min-height: inherit;
25
25
  }
26
26
 
27
- @include theme-colors() using ($name, $color, $contrast, $tint, $shade, $pale) {
27
+ @include theme-colors() using($name, $color, $contrast, $tint, $shade, $pale) {
28
28
  &.novo-color-#{$name},
29
29
  &.novo-theme-#{$name} {
30
- color: $contrast;
31
- background: $color;
30
+ color: getContrastColor($name);
31
+ background: getCssVarname($name);
32
+
32
33
  & > novo-text,
33
34
  & > novo-label,
34
35
  & > novo-icon,
35
36
  & novo-title {
36
37
  color: inherit;
37
38
  }
39
+
38
40
  novo-action,
39
41
  .links {
40
42
  button,
@@ -42,13 +44,14 @@
42
44
  color: inherit;
43
45
  }
44
46
  }
47
+
45
48
  .novo-divider.novo-divider-vertical {
46
- border-right-color: $tint;
49
+ border-right-color: getTintColor($name);
47
50
  }
48
51
  }
49
52
 
50
53
  &.novo-accent-#{$name} {
51
- border-bottom: 2px solid $color;
54
+ border-bottom: 2px solid getCssVarname($name);
52
55
  }
53
56
  }
54
57
  }
@@ -59,4 +62,19 @@
59
62
  flex-direction: column;
60
63
  width: 100%;
61
64
  }
65
+
66
+ // bh2026: frosted translucent toolbar, no entity accent border
67
+ :root[data-theme='bh2026'] & {
68
+ background: var(--color-transparency-white-90, rgba(255, 255, 255, 0.9));
69
+ backdrop-filter: blur(12px);
70
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
71
+
72
+ .novo-toolbar-row {
73
+ background: transparent;
74
+
75
+ &[class*='novo-accent-'] {
76
+ border-bottom: none;
77
+ }
78
+ }
79
+ }
62
80
  }
@@ -27,9 +27,9 @@ $tooltip-success-color: var(--color-shade-success, #458746);
27
27
  div {
28
28
  background: $tooltip-background;
29
29
  color: var(--color-white, #fff);
30
- border-radius: var(--tooltip-border-radius, 4px);
30
+ border-radius: var(--border-radius-sm, 4px);
31
31
  padding: 8px 10px;
32
- font-size: 12px;
32
+ font-size: var(--font-size-sm);
33
33
  line-height: 12px;
34
34
  white-space: nowrap;
35
35
  box-shadow: var(--shadow-2);