novo-elements 13.2.0-next.9 → 13.3.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 (62) hide show
  1. package/addons/ckeditor/CKEditor.scss +8 -0
  2. package/elements/agenda/week/AgendaWeekView.scss +1 -1
  3. package/elements/button/styles/button.scss +1 -1
  4. package/elements/card/Card.scss +1 -1
  5. package/elements/chips/Chip.scss +47 -1
  6. package/elements/chips/Chips.scss +9 -0
  7. package/elements/common/typography/text.mixins.scss +1 -1
  8. package/elements/date-picker/DatePickerInput.scss +5 -0
  9. package/elements/field/field.scss +1 -1
  10. package/elements/form/Form.scss +233 -8
  11. package/elements/form/extras/address/Address.scss +77 -0
  12. package/elements/form/fieldset-header.scss +32 -0
  13. package/elements/form/index.d.ts +14 -4
  14. package/elements/header/Header.scss +2 -1
  15. package/elements/layout/index.d.ts +20 -4
  16. package/elements/picker/Picker.scss +26 -5
  17. package/elements/picker/extras/picker-results/PickerResults.scss +25 -1
  18. package/elements/select/Select.scss +0 -1
  19. package/elements/tabs/tab.scss +41 -1
  20. package/elements/time-picker/TimePickerInput.scss +7 -2
  21. package/elements/tip-well/TipWell.scss +53 -0
  22. package/elements/tip-well/index.d.ts +5 -1
  23. package/elements/toolbar/toolbar.component.scss +1 -1
  24. package/elements/tooltip/Tooltip.scss +19 -17
  25. package/elements/tooltip/index.d.ts +2 -1
  26. package/fesm2022/novo-elements-addons-ckeditor.mjs +2 -2
  27. package/fesm2022/novo-elements-addons-ckeditor.mjs.map +1 -1
  28. package/fesm2022/novo-elements-elements-agenda.mjs +2 -2
  29. package/fesm2022/novo-elements-elements-button.mjs +2 -2
  30. package/fesm2022/novo-elements-elements-card.mjs +2 -2
  31. package/fesm2022/novo-elements-elements-card.mjs.map +1 -1
  32. package/fesm2022/novo-elements-elements-chips.mjs +6 -6
  33. package/fesm2022/novo-elements-elements-chips.mjs.map +1 -1
  34. package/fesm2022/novo-elements-elements-common.mjs +4 -4
  35. package/fesm2022/novo-elements-elements-date-picker.mjs +2 -2
  36. package/fesm2022/novo-elements-elements-date-picker.mjs.map +1 -1
  37. package/fesm2022/novo-elements-elements-form.mjs +135 -76
  38. package/fesm2022/novo-elements-elements-form.mjs.map +1 -1
  39. package/fesm2022/novo-elements-elements-header.mjs +2 -2
  40. package/fesm2022/novo-elements-elements-header.mjs.map +1 -1
  41. package/fesm2022/novo-elements-elements-layout.mjs +49 -6
  42. package/fesm2022/novo-elements-elements-layout.mjs.map +1 -1
  43. package/fesm2022/novo-elements-elements-multi-picker.mjs +2 -2
  44. package/fesm2022/novo-elements-elements-multi-picker.mjs.map +1 -1
  45. package/fesm2022/novo-elements-elements-picker.mjs +6 -6
  46. package/fesm2022/novo-elements-elements-picker.mjs.map +1 -1
  47. package/fesm2022/novo-elements-elements-select.mjs +2 -2
  48. package/fesm2022/novo-elements-elements-select.mjs.map +1 -1
  49. package/fesm2022/novo-elements-elements-tabs.mjs +4 -4
  50. package/fesm2022/novo-elements-elements-tabs.mjs.map +1 -1
  51. package/fesm2022/novo-elements-elements-time-picker.mjs +2 -2
  52. package/fesm2022/novo-elements-elements-time-picker.mjs.map +1 -1
  53. package/fesm2022/novo-elements-elements-tip-well.mjs +26 -6
  54. package/fesm2022/novo-elements-elements-tip-well.mjs.map +1 -1
  55. package/fesm2022/novo-elements-elements-toolbar.mjs +2 -2
  56. package/fesm2022/novo-elements-elements-toolbar.mjs.map +1 -1
  57. package/fesm2022/novo-elements-elements-tooltip.mjs +8 -4
  58. package/fesm2022/novo-elements-elements-tooltip.mjs.map +1 -1
  59. package/package.json +1 -1
  60. package/styles/themes/bh2026.scss +3 -3
  61. package/styles/typography.scss +6 -0
  62. package/styles/variables.scss +2 -0
@@ -39,6 +39,14 @@
39
39
  }
40
40
  }
41
41
 
42
+ :host-context(:root[data-theme='bh2026']) {
43
+ ::ng-deep .cke {
44
+ border: 1px solid var(--card-color-border-default, #dee0e3);
45
+ border-radius: var(--field-border-radius-default, 0.4rem);
46
+ overflow: hidden;
47
+ }
48
+ }
49
+
42
50
  :host-context(.theme-dark) {
43
51
  ::ng-deep .cke_button {
44
52
  filter: invert(1);
@@ -59,7 +59,7 @@
59
59
  text-overflow: ellipsis;
60
60
  }
61
61
  .cal-event-description {
62
- font-size: var(--font-size-xs);
62
+ font-size: var(--font-size-sm);
63
63
  line-height: 13px;
64
64
  padding: 0px 0px 0px 10px;
65
65
  overflow: hidden;
@@ -42,7 +42,7 @@
42
42
 
43
43
  &[size="small"],
44
44
  &[size="sm"] {
45
- font-size: var(--font-size-xs);
45
+ font-size: var(--font-size-sm);
46
46
  padding: 0 var(--spacing-md);
47
47
  height: 2.4rem;
48
48
  gap: var(--spacing-sm);
@@ -124,7 +124,7 @@
124
124
  :host-context([data-theme='bh2026']) {
125
125
  border-radius: var(--border-radius-md);
126
126
  border: 1px solid var(--color-border-default);
127
- box-shadow: 0 1px 2px var(--color-transparency-black-10);
127
+ box-shadow: 0 1px 2px var(--color-transparency-charcoal-08);
128
128
 
129
129
  div.card-loading-container {
130
130
  border-radius: var(--border-radius-md);
@@ -46,7 +46,9 @@ $chip-spacing: (
46
46
  @include novo-body-text();
47
47
  background: var(--background-main);
48
48
  border: 1px solid transparent;
49
- transition: all 200ms ease-in-out;
49
+ transition-duration: 0.2s;
50
+ transition-timing-function: ease-in-out;
51
+ transition-property: color, opacity, border-color, border-width, background-color;
50
52
  display: inline-flex;
51
53
  align-items: center;
52
54
  cursor: default;
@@ -185,3 +187,47 @@ $chip-spacing: (
185
187
  }
186
188
  }
187
189
  }
190
+
191
+ :root[data-theme='bh2026'] {
192
+ .novo-chip {
193
+ background: var(--chip-color-background-default-default);
194
+ border: var(--chip-border-width) solid var(--chip-color-border-default-default);
195
+ border-radius: var(--chip-border-radius);
196
+ color: var(--chip-color-content-default);
197
+ gap: var(--chip-spacing-md-gap);
198
+ padding: var(--chip-spacing-md-padding-vertical) var(--chip-spacing-md-padding-horizontal);
199
+ max-height: var(--chip-spacing-md-max-height);
200
+ font-size: var(--typography-meta-default-font-size);
201
+ font-weight: var(--typography-meta-default-font-weight);
202
+ line-height: var(--typography-meta-default-line-height);
203
+
204
+ &:hover:not(.novo-chip-disabled) {
205
+ background: var(--chip-color-background-default-hover);
206
+ border-color: var(--chip-color-border-default-hover);
207
+ color: var(--chip-color-content-hover);
208
+ }
209
+
210
+ &.novo-chip-selectable:focus {
211
+ outline: none;
212
+ background: var(--chip-color-background-default-focus);
213
+ border-width: var(--chip-border-focus-width);
214
+ border-color: var(--chip-color-border-default-focus);
215
+ color: var(--chip-color-content-focus);
216
+ &::after {
217
+ opacity: 0;
218
+ }
219
+ }
220
+
221
+ &.novo-chip-disabled {
222
+ background: var(--chip-color-background-default-disabled);
223
+ border-color: var(--chip-color-border-default-disabled);
224
+ color: var(--chip-color-content-disabled);
225
+ opacity: 1;
226
+ }
227
+
228
+ .novo-chip-remove,
229
+ .novo-chip-trailing-icon {
230
+ color: inherit;
231
+ }
232
+ }
233
+ }
@@ -68,6 +68,11 @@
68
68
  cursor: pointer;
69
69
  display: flex;
70
70
  align-items: center;
71
+
72
+ [data-theme='bh2026'] & {
73
+ bottom: -27px;
74
+ }
75
+
71
76
  i {
72
77
  font-size: 0.7rem;
73
78
  padding-bottom: 2px;
@@ -80,6 +85,10 @@
80
85
  right: 0;
81
86
  font-size: 1.1em;
82
87
  color: var(--font-color-base);
88
+
89
+ [data-theme='bh2026'] & {
90
+ bottom: 4px;
91
+ }
83
92
  }
84
93
 
85
94
  & + i {
@@ -156,7 +156,7 @@
156
156
  @mixin novo-label-text() {
157
157
  font-weight: 500;
158
158
  // text-transform: uppercase;
159
- word-break: word-break;
159
+ word-break: break-word;
160
160
  overflow-wrap: break-word;
161
161
  line-height: 1.375;
162
162
  color: var(--text-muted);
@@ -42,5 +42,10 @@
42
42
  top: 0px;
43
43
  font-size: var(--font-size-sm);
44
44
  cursor: pointer;
45
+
46
+ [data-theme='bh2026'] & {
47
+ font-size: var(--typography-body-lg-font-size);
48
+ line-height: normal;
49
+ }
45
50
  }
46
51
  }
@@ -109,7 +109,7 @@
109
109
  }
110
110
  }
111
111
 
112
- // bh2026: uppercase label + tighter value typography per Figma "Value - Finalized" spec
112
+ // bh2026: uppercase label + tighter value typography
113
113
  :host-context([data-theme='bh2026']) {
114
114
  .novo-field-label {
115
115
  text-transform: var(--typography-input-label-sm-text-transform);
@@ -801,7 +801,7 @@ control-prompt-modal {
801
801
 
802
802
  .novo-form-control-label {
803
803
  font-weight: 500;
804
- word-break: word-break;
804
+ word-break: break-word;
805
805
  overflow-wrap: break-word;
806
806
  line-height: 1.375;
807
807
  color: var(--text-muted);
@@ -820,26 +820,43 @@ control-prompt-modal {
820
820
  }
821
821
  }
822
822
 
823
- // bh2026: uppercase label + tighter value typography per Figma "Value - Finalized" spec
823
+ // Control types that should not receive the bh2026 bordered-input treatment
824
+ $bh2026-borderless-types: ('quick-note', 'checkbox', 'checklist', 'editor', 'tiles', 'switch', 'file', 'address');
825
+ $bh2026-not-borderless: '';
826
+ @each $type in $bh2026-borderless-types {
827
+ $bh2026-not-borderless: $bh2026-not-borderless + ':not(.#{$type})';
828
+ }
829
+
830
+ // bh2026: uppercase label + tighter value typography
824
831
  // ViewEncapsulation.None: use plain selectors (not :host-context which is Shadow DOM only)
825
832
  :root[data-theme='bh2026'] {
826
833
  label.novo-control-label {
834
+ &.novo-control-empty,
827
835
  &.novo-control-filled,
828
836
  &.novo-control-focused,
829
837
  &.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);
838
+ font-weight: var(--typography-input-label-md-font-weight) !important;
839
+ font-size: var(--typography-input-label-md-font-size) !important;
840
+ letter-spacing: var(--typography-input-label-md-letter-spacing);
833
841
  text-transform: var(--typography-input-label-sm-text-transform);
834
842
  color: var(--color-text-body) !important;
835
843
  }
844
+ &.novo-control-empty {
845
+ transform: translateY(-100%) !important;
846
+ height: 1.5em !important;
847
+ top: 0 !important;
848
+ bottom: auto !important;
849
+ }
836
850
  }
837
851
  .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);
852
+ font-weight: var(--typography-input-label-md-font-weight) !important;
853
+ font-size: var(--typography-input-label-md-font-size) !important;
854
+ letter-spacing: var(--typography-input-label-md-letter-spacing);
841
855
  text-transform: var(--typography-input-label-sm-text-transform);
842
856
  color: var(--color-text-body) !important;
857
+ margin-right: var(--spacing-gap-lg);
858
+ max-width: 128px;
859
+ min-width: 128px;
843
860
  }
844
861
  .novo-control-outer-container input:not([type='checkbox']):not([type='radio']) {
845
862
  font-size: var(--typography-input-value-default-font-size) !important;
@@ -864,4 +881,212 @@ control-prompt-modal {
864
881
  color: var(--color-text-subtle);
865
882
  }
866
883
  }
884
+
885
+ // Bordered input container (excludes $bh2026-borderless-types)
886
+ .novo-control-input#{$bh2026-not-borderless} {
887
+ border: var(--field-border-width-default) solid var(--field-color-border-default);
888
+ border-radius: var(--field-border-radius-default);
889
+ background: var(--field-color-background-default);
890
+ padding: var(--field-spacing-padding-vertical) var(--field-spacing-padding-horizontal);
891
+ min-height: 4rem;
892
+ box-sizing: border-box;
893
+
894
+ &:hover {
895
+ border-color: var(--field-color-border-hover);
896
+ }
897
+ &:focus-within {
898
+ border-width: var(--field-border-width-focus);
899
+ border-color: var(--field-color-border-focus);
900
+ }
901
+
902
+ // Container owns the border; suppress inner element bottom-borders
903
+ input,
904
+ textarea,
905
+ novo-chips,
906
+ novo-select > .novo-select-trigger {
907
+ border: none !important;
908
+ &:hover,
909
+ &:focus {
910
+ border: none !important;
911
+ }
912
+ }
913
+ div[type="button"] {
914
+ border-bottom: none !important;
915
+ }
916
+
917
+ // Correction for search icon in chips pickers
918
+ novo-chips.with-value > i {
919
+ bottom: 8px;
920
+ }
921
+ }
922
+
923
+ .novo-select-list.active {
924
+ margin-block: 1.4rem !important; // results in 2px difference between border and overlay
925
+ }
926
+
927
+ // Suppress input-level error border-bottom (container handles it)
928
+ input.ng-touched.ng-invalid:not(.ng-pristine):not(.novo-control-container),
929
+ novo-picker.ng-touched.ng-invalid:not(.ng-pristine) input,
930
+ textarea.ng-touched.ng-invalid:not(.ng-pristine):not(.ng-valid) {
931
+ border-bottom: none !important;
932
+ }
933
+
934
+ // Error: move negative border to container
935
+ div.novo-control-input#{$bh2026-not-borderless}:has(input.ng-touched.ng-invalid:not(.ng-pristine)),
936
+ div.novo-control-input#{$bh2026-not-borderless}:has(textarea.ng-touched.ng-invalid:not(.ng-pristine):not(.ng-valid)),
937
+ div.novo-control-input#{$bh2026-not-borderless}.control-invalid-touched {
938
+ border-width: var(--field-border-width-negative);
939
+ border-color: var(--field-color-border-negative);
940
+ &:hover {
941
+ border-color: var(--field-color-border-negative);
942
+ }
943
+ }
944
+
945
+ // Disabled container
946
+ novo-control.disabled .novo-control-input#{$bh2026-not-borderless},
947
+ novo-custom-control-container.disabled .novo-control-input#{$bh2026-not-borderless} {
948
+ border-color: var(--field-color-border-disabled);
949
+ border-style: dashed;
950
+ background: var(--field-color-background-disabled);
951
+
952
+ input,
953
+ textarea {
954
+ border: none !important;
955
+ }
956
+ div[type="button"] {
957
+ border-bottom: none !important;
958
+ }
959
+ }
960
+
961
+ // Suppress all address input borders when in bh2026
962
+ novo-form,
963
+ novo-dynamic-form {
964
+ .novo-form-container form {
965
+ div.novo-form-row,
966
+ div.novo-control-group-control,
967
+ td.novo-form-row {
968
+ novo-control,
969
+ novo-custom-control-container {
970
+ > div.novo-control-container > div.novo-control-outer-container .novo-control-inner-container .novo-control-inner-input-container > div.novo-control-input.address {
971
+ input {
972
+ border: none !important;
973
+ border-bottom: none !important;
974
+ }
975
+ }
976
+ }
977
+ }
978
+ }
979
+ }
980
+
981
+ // Pickers show up with a 2px space between them and the active control
982
+ checklist-picker-results,
983
+ distribution-list-picker-results,
984
+ entity-picker-results,
985
+ grouped-multi-picker-results,
986
+ mixed-multi-picker-results,
987
+ novo-date-picker,
988
+ novo-date-time-picker,
989
+ novo-time-picker,
990
+ picker-results,
991
+ skill-specialty-picker-results {
992
+ margin-block: var(--spacing-12) !important;
993
+ }
994
+
995
+ // Picker overlay styling within forms
996
+ picker-results,
997
+ entity-picker-results {
998
+ border: 1px solid var(--color-border-default);
999
+ background: var(--background-bright);
1000
+
1001
+ .novo-list,
1002
+ novo-list,
1003
+ ul {
1004
+ border: none;
1005
+ box-shadow: none;
1006
+ }
1007
+
1008
+ picker-error,
1009
+ picker-loader,
1010
+ picker-null-recent-results,
1011
+ picker-null-results,
1012
+ .picker-error,
1013
+ .picker-loader,
1014
+ .picker-null-recent-results,
1015
+ .picker-null-results {
1016
+ border: none;
1017
+ box-shadow: none;
1018
+ padding: var(--spacing-padding-md) var(--spacing-padding-lg);
1019
+ }
1020
+
1021
+ > p {
1022
+ margin: 0;
1023
+ padding: var(--spacing-padding-md) var(--spacing-padding-lg);
1024
+ }
1025
+ }
1026
+
1027
+ // Card styling of fieldsets
1028
+ .novo-fieldset-container.card-section,
1029
+ novo-form .novo-form-container.card-section {
1030
+ border-radius: var(--border-radius-md);
1031
+ border: 1px solid var(--color-border-default);
1032
+ box-shadow: var(--shadow-2);
1033
+ background: var(--color-background-default);
1034
+ padding-bottom: var(--spacing-padding-md);
1035
+ overflow: hidden;
1036
+ display: flex;
1037
+ flex-direction: column;
1038
+ gap: 0;
1039
+
1040
+ .novo-form-row {
1041
+ padding-left: var(--spacing-padding-lg);
1042
+ padding-right: var(--spacing-padding-lg);
1043
+ }
1044
+
1045
+ novo-control,
1046
+ novo-custom-control-container {
1047
+ margin-top: 0 !important;
1048
+ }
1049
+ }
1050
+
1051
+ .novo-fieldset-container.card-section {
1052
+ padding-top: 0;
1053
+ padding-left: 0;
1054
+ padding-right: 0;
1055
+ margin-bottom: 0;
1056
+
1057
+ &:not(:has(> novo-fieldset-header)) {
1058
+ padding-top: var(--spacing-padding-lg);
1059
+ }
1060
+ }
1061
+
1062
+ novo-form .novo-form-container.card-section {
1063
+ padding-top: var(--spacing-padding-md);
1064
+ }
1065
+
1066
+ novo-form,
1067
+ novo-dynamic-form {
1068
+ max-width: 720px;
1069
+ width: 100%;
1070
+ margin-left: var(--spacing-gap-xlg);
1071
+ margin-right: 0;
1072
+ margin-top: var(--spacing-margin);
1073
+ }
1074
+
1075
+ .novo-form-container form {
1076
+ display: flex;
1077
+ flex-direction: column;
1078
+ gap: 0;
1079
+
1080
+ novo-fieldset {
1081
+ margin-top: 0;
1082
+ }
1083
+
1084
+ novo-fieldset + novo-fieldset:has(> .novo-fieldset-container.card-section) {
1085
+ margin-top: var(--spacing-gutter);
1086
+ }
1087
+ }
1088
+
1089
+ .novo-form-row.hidden {
1090
+ display: none;
1091
+ }
867
1092
  }
@@ -148,3 +148,80 @@
148
148
  }
149
149
  }
150
150
  }
151
+
152
+ :host-context([data-theme='bh2026']) {
153
+ gap: var(--field-spacing-gap);
154
+
155
+ // Take out the space that the overlay template takes up between the fields
156
+ novo-overlay-template {
157
+ display: none;
158
+ }
159
+
160
+ // Each sub-field gets its own bordered input treatment
161
+ .street-address,
162
+ .apt,
163
+ .city,
164
+ .state,
165
+ .zip,
166
+ .country-name {
167
+ border: var(--field-border-width-default) solid var(--field-color-border-default);
168
+ border-radius: var(--field-border-radius-default);
169
+ background: var(--field-color-background-default);
170
+ padding: var(--field-spacing-padding-vertical) var(--field-spacing-padding-horizontal) !important;
171
+ min-height: 4rem;
172
+ box-sizing: border-box;
173
+ gap: var(--field-spacing-gap);
174
+
175
+ &:hover {
176
+ border-color: var(--field-color-border-hover);
177
+ }
178
+ &:focus-within {
179
+ border-width: var(--field-border-width-focus);
180
+ border-color: var(--field-color-border-focus);
181
+ }
182
+
183
+ input,
184
+ novo-picker > ::ng-deep input {
185
+ border: none !important;
186
+ border-bottom: none !important;
187
+ &:hover,
188
+ &:focus {
189
+ border: none !important;
190
+ border-bottom: none !important;
191
+ }
192
+ }
193
+ div[type="button"] {
194
+ border-bottom: none !important;
195
+ padding: 0 !important;
196
+ }
197
+
198
+ &.disabled {
199
+ border-color: var(--field-color-border-disabled);
200
+ border-style: dashed;
201
+ background: var(--field-color-background-disabled);
202
+ }
203
+
204
+ &.invalid {
205
+ border-color: var(--field-color-border-negative);
206
+ }
207
+
208
+ i {
209
+ border-bottom: none !important;
210
+
211
+ &.required-indicator.bhi-circle {
212
+ line-height: 1rem;
213
+ }
214
+ &.required-indicator.bhi-check {
215
+ line-height: 1.8rem;
216
+ }
217
+ }
218
+ }
219
+
220
+ // address1 full width on its own row; address2 full width on the row below
221
+ .street-address {
222
+ flex: 0 0 100%;
223
+ }
224
+ .apt {
225
+ flex: 0 0 100%;
226
+ }
227
+ }
@@ -15,3 +15,35 @@
15
15
  display: none;
16
16
  }
17
17
  }
18
+
19
+ :host-context([data-theme='bh2026'] .card-section) {
20
+ padding: var(--card-spacing-header-padding-vertical) var(--card-spacing-header-padding-horizontal);
21
+ margin: 0 0 var(--card-spacing-header-padding-vertical);
22
+ background: var(--background-bright);
23
+ border-bottom: 1px solid var(--color-border-default);
24
+ align-items: center;
25
+ gap: var(--spacing-gap-sm);
26
+ font-size: var(--typography-title-small-font-size, 1.8rem);
27
+ font-weight: 600;
28
+ line-height: var(--typography-title-small-line-height, 2.4rem);
29
+ letter-spacing: var(--typography-title-small-letter-spacing, 0);
30
+ text-transform: capitalize;
31
+ color: var(--color-text-body);
32
+ > span {
33
+ flex: 1 0 0;
34
+ min-width: 0;
35
+ }
36
+ ::ng-deep novo-icon {
37
+ font-size: 1.6rem;
38
+ width: 1.6rem;
39
+ height: 1.6rem;
40
+ flex-shrink: 0;
41
+ color: var(--color-content-icon);
42
+ margin: 0;
43
+ i {
44
+ font-size: 1.6rem;
45
+ width: 1.6rem;
46
+ height: 1.6rem;
47
+ }
48
+ }
49
+ }
@@ -945,8 +945,10 @@ declare class NovoControlTemplates implements AfterViewInit {
945
945
  declare class NovoFieldsetHeaderElement {
946
946
  title: string;
947
947
  icon: string;
948
+ cardSection: boolean;
949
+ get cardIcon(): string;
948
950
  static ɵfac: i0.ɵɵFactoryDeclaration<NovoFieldsetHeaderElement, never>;
949
- static ɵcmp: i0.ɵɵComponentDeclaration<NovoFieldsetHeaderElement, "novo-fieldset-header", never, { "title": { "alias": "title"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; }, {}, never, ["*"], false, never>;
951
+ static ɵcmp: i0.ɵɵComponentDeclaration<NovoFieldsetHeaderElement, "novo-fieldset-header", never, { "title": { "alias": "title"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "cardSection": { "alias": "cardSection"; "required": false; }; }, {}, never, ["*"], false, never>;
950
952
  }
951
953
  declare class NovoFieldsetElement {
952
954
  controls: Array<any>;
@@ -958,8 +960,9 @@ declare class NovoFieldsetElement {
958
960
  isEmbedded: boolean;
959
961
  isInlineEmbedded: boolean;
960
962
  hidden: boolean;
963
+ cardSection: boolean;
961
964
  static ɵfac: i0.ɵɵFactoryDeclaration<NovoFieldsetElement, never>;
962
- static ɵcmp: i0.ɵɵComponentDeclaration<NovoFieldsetElement, "novo-fieldset", never, { "controls": { "alias": "controls"; "required": false; }; "form": { "alias": "form"; "required": false; }; "title": { "alias": "title"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "index": { "alias": "index"; "required": false; }; "autoFocus": { "alias": "autoFocus"; "required": false; }; "isEmbedded": { "alias": "isEmbedded"; "required": false; }; "isInlineEmbedded": { "alias": "isInlineEmbedded"; "required": false; }; "hidden": { "alias": "hidden"; "required": false; }; }, {}, never, never, false, never>;
965
+ static ɵcmp: i0.ɵɵComponentDeclaration<NovoFieldsetElement, "novo-fieldset", never, { "controls": { "alias": "controls"; "required": false; }; "form": { "alias": "form"; "required": false; }; "title": { "alias": "title"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "index": { "alias": "index"; "required": false; }; "autoFocus": { "alias": "autoFocus"; "required": false; }; "isEmbedded": { "alias": "isEmbedded"; "required": false; }; "isInlineEmbedded": { "alias": "isInlineEmbedded"; "required": false; }; "hidden": { "alias": "hidden"; "required": false; }; "cardSection": { "alias": "cardSection"; "required": false; }; }, {}, never, never, false, never>;
963
966
  }
964
967
  declare class NovoDynamicFormElement implements OnChanges, OnInit, AfterContentInit {
965
968
  private element;
@@ -970,6 +973,7 @@ declare class NovoDynamicFormElement implements OnChanges, OnInit, AfterContentI
970
973
  layout: string;
971
974
  hideNonRequiredFields: boolean;
972
975
  autoFocusFirstField: boolean;
976
+ readonly hasCardSections: i0.InputSignal<boolean>;
973
977
  customTemplates: QueryList<NovoTemplate>;
974
978
  private fieldsAlreadyHidden;
975
979
  allFieldsRequired: boolean;
@@ -977,10 +981,14 @@ declare class NovoDynamicFormElement implements OnChanges, OnInit, AfterContentI
977
981
  showingAllFields: boolean;
978
982
  showingRequiredFields: boolean;
979
983
  numControls: number;
984
+ private readonly theme;
985
+ readonly effectiveCardSections: i0.Signal<boolean>;
986
+ get visibleFieldsets(): NovoFieldset[];
980
987
  constructor(element: ElementRef, templates: NovoTemplateService);
981
988
  ngOnInit(): void;
982
989
  ngOnChanges(changes?: SimpleChanges): void;
983
990
  ngAfterContentInit(): void;
991
+ hasVisibleControls(fieldset: NovoFieldset): boolean;
984
992
  showAllFields(): void;
985
993
  showOnlyRequired(hideRequiredWithValue: any): void;
986
994
  get values(): any;
@@ -988,7 +996,7 @@ declare class NovoDynamicFormElement implements OnChanges, OnInit, AfterContentI
988
996
  updatedValues(): any;
989
997
  forceValidation(): void;
990
998
  static ɵfac: i0.ɵɵFactoryDeclaration<NovoDynamicFormElement, never>;
991
- static ɵcmp: i0.ɵɵComponentDeclaration<NovoDynamicFormElement, "novo-dynamic-form", never, { "controls": { "alias": "controls"; "required": false; }; "fieldsets": { "alias": "fieldsets"; "required": false; }; "form": { "alias": "form"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "hideNonRequiredFields": { "alias": "hideNonRequiredFields"; "required": false; }; "autoFocusFirstField": { "alias": "autoFocusFirstField"; "required": false; }; }, {}, ["customTemplates"], ["form-title", "form-subtitle"], false, never>;
999
+ static ɵcmp: i0.ɵɵComponentDeclaration<NovoDynamicFormElement, "novo-dynamic-form", never, { "controls": { "alias": "controls"; "required": false; }; "fieldsets": { "alias": "fieldsets"; "required": false; }; "form": { "alias": "form"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "hideNonRequiredFields": { "alias": "hideNonRequiredFields"; "required": false; }; "autoFocusFirstField": { "alias": "autoFocusFirstField"; "required": false; }; "hasCardSections": { "alias": "hasCardSections"; "required": false; "isSignal": true; }; }, {}, ["customTemplates"], ["form-title", "form-subtitle"], false, never>;
992
1000
  }
993
1001
 
994
1002
  interface AddressLookupResult {
@@ -1301,6 +1309,8 @@ declare class NovoFormElement implements AfterContentInit, OnInit {
1301
1309
  form: NovoFormGroup;
1302
1310
  layout: string;
1303
1311
  hideHeader: boolean;
1312
+ readonly hasCardSections: i0.InputSignal<boolean>;
1313
+ readonly effectiveCardSections: i0.Signal<boolean>;
1304
1314
  customTemplates: QueryList<NovoTemplate>;
1305
1315
  showingAllFields: boolean;
1306
1316
  showingRequiredFields: boolean;
@@ -1313,7 +1323,7 @@ declare class NovoFormElement implements AfterContentInit, OnInit {
1313
1323
  showOnlyRequired(hideRequiredWithValue: any): void;
1314
1324
  forceValidation(): void;
1315
1325
  static ɵfac: i0.ɵɵFactoryDeclaration<NovoFormElement, never>;
1316
- static ɵcmp: i0.ɵɵComponentDeclaration<NovoFormElement, "novo-form", never, { "form": { "alias": "form"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "hideHeader": { "alias": "hideHeader"; "required": false; }; }, {}, ["customTemplates"], ["form-title", "form-subtitle", "*"], false, never>;
1326
+ static ɵcmp: i0.ɵɵComponentDeclaration<NovoFormElement, "novo-form", never, { "form": { "alias": "form"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "hideHeader": { "alias": "hideHeader"; "required": false; }; "hasCardSections": { "alias": "hasCardSections"; "required": false; "isSignal": true; }; }, {}, ["customTemplates"], ["form-title", "form-subtitle", "*"], false, never>;
1317
1327
  }
1318
1328
 
1319
1329
  declare class NovoFormModule {
@@ -170,7 +170,7 @@
170
170
  &[class*='novo-accent-'] {
171
171
  background: var(--header-background, var(--color-transparency-white-90));
172
172
  backdrop-filter: blur(12px);
173
- box-shadow: 0 1px 2px var(--color-transparency-black-10);
173
+ box-shadow: 0 1px 2px var(--color-transparency-charcoal-08);
174
174
  padding-top: var(--spacing-md);
175
175
  padding-left: var(--spacing-lg);
176
176
  padding-right: var(--spacing-lg);
@@ -198,4 +198,5 @@
198
198
  }
199
199
  }
200
200
  }
201
+ background-color: transparent;
201
202
  }