@ndwnu/design-system 14.2.2 → 14.3.0

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 (56) hide show
  1. package/CLAUDE.md +1539 -1525
  2. package/README.md +4 -4
  3. package/assets/icons.ts +83 -83
  4. package/fesm2022/ndwnu-design-system.mjs +254 -217
  5. package/fesm2022/ndwnu-design-system.mjs.map +1 -1
  6. package/package.json +1 -1
  7. package/styles/FONTS.md +46 -46
  8. package/styles/base/_colors.scss +246 -246
  9. package/styles/base/_fonts.scss +13 -13
  10. package/styles/base/_material.scss +17 -17
  11. package/styles/base/_typography.scss +133 -133
  12. package/styles/base/_variables.scss +92 -92
  13. package/styles/base/colors.stories.model.ts +85 -85
  14. package/styles/base/colors.stories.ts +24 -24
  15. package/styles/base/index.scss +5 -5
  16. package/styles/base/typography.stories.ts +111 -111
  17. package/styles/components/_button.scss +133 -133
  18. package/styles/components/_card.scss +3 -3
  19. package/styles/components/_datepicker.scss +134 -134
  20. package/styles/components/_divider.scss +10 -10
  21. package/styles/components/_dropdown.scss +8 -8
  22. package/styles/components/_edit-bar.scss +97 -97
  23. package/styles/components/_filter-button.scss +39 -39
  24. package/styles/components/_guided-tour.scss +70 -70
  25. package/styles/components/_input.scss +253 -253
  26. package/styles/components/_label.scss +23 -23
  27. package/styles/components/_link.scss +36 -36
  28. package/styles/components/_list-item.scss +7 -7
  29. package/styles/components/_map.scss +144 -137
  30. package/styles/components/_menu-button.scss +37 -37
  31. package/styles/components/_popover.scss +19 -19
  32. package/styles/components/_summary-card.scss +205 -183
  33. package/styles/components/_table.scss +8 -8
  34. package/styles/components/divider.stories.ts +80 -80
  35. package/styles/components/index.scss +17 -17
  36. package/styles/components/link.stories.ts +154 -154
  37. package/styles/index.scss +4 -4
  38. package/styles/layout/_grid.scss +165 -165
  39. package/styles/layout/_overlay.scss +7 -7
  40. package/styles/layout/grid.stories.ts +168 -168
  41. package/styles/layout/index.scss +2 -2
  42. package/styles/storybook/_core.scss +60 -60
  43. package/styles/storybook/_reset.scss +21 -21
  44. package/styles/storybook/index.scss +17 -17
  45. package/styles/storybook/overrides/_buttons.scss +95 -95
  46. package/styles/storybook/overrides/_code-previews.scss +97 -97
  47. package/styles/storybook/overrides/_content.scss +24 -24
  48. package/styles/storybook/overrides/_headers.scss +31 -31
  49. package/styles/storybook/overrides/_layout.scss +44 -44
  50. package/styles/storybook/overrides/_table.scss +112 -112
  51. package/styles/storybook/overrides/index.scss +6 -6
  52. package/styles/storybook/overrides.css +355 -355
  53. package/styles/utils/_screenreader.scss +13 -13
  54. package/styles/utils/classes.stories.ts +157 -157
  55. package/styles/utils/index.scss +1 -1
  56. package/types/ndwnu-design-system.d.ts +40 -45
@@ -1,13 +1,13 @@
1
- .sr-only {
2
- position: absolute;
3
-
4
- overflow: hidden;
5
- width: 1px;
6
- height: 1px;
7
- padding: 0;
8
- margin: -1px;
9
- border-width: 0;
10
- white-space: nowrap;
11
-
12
- clip: rect(0, 0, 0, 0);
13
- }
1
+ .sr-only {
2
+ position: absolute;
3
+
4
+ overflow: hidden;
5
+ width: 1px;
6
+ height: 1px;
7
+ padding: 0;
8
+ margin: -1px;
9
+ border-width: 0;
10
+ white-space: nowrap;
11
+
12
+ clip: rect(0, 0, 0, 0);
13
+ }
@@ -1,157 +1,157 @@
1
- import { Meta, StoryObj } from '@storybook/angular';
2
-
3
- /**
4
- * The util classes here are made in order to replace bootstrap or tailwind implementations. <br>
5
- * This way we can avoid dependencies on external libraries and keep our design system consistent. <br>
6
- * Also this way we can give our own spacing and scale interpretation which is more in line with our design system.
7
- *
8
- * Below is a representation of the util classes in our design system. <br>
9
- * Are you missing a util class? Then please contact us so we can improve this.
10
- */
11
-
12
- const meta: Meta = {
13
- title: 'Core/Util classes',
14
- tags: ['autodocs', 'ndw', 'ntm', 'nwb'],
15
- parameters: {
16
- viewport: {
17
- defaultViewport: 'mobile',
18
- },
19
- },
20
- render: () => ({
21
- template: `
22
- <style>
23
- .demo-box {
24
- background: var(--ndw-color-primary-050);
25
- border: 1px solid var(--ndw-color-primary-500);
26
- padding: 0.5rem;
27
- text-align: center;
28
- }
29
-
30
- .demo-container {
31
- background: var(--ndw-color-grey-100);
32
- border: 1px dashed var(--ndw-color-grey-500);
33
- }
34
- </style>
35
-
36
- <div class="d-flex flex-column gap-4 p-3">
37
-
38
- <!-- Display & Flex -->
39
- <section>
40
- <h3>Display & Flex</h3>
41
- <div class="demo-container d-flex gap-2 p-2">
42
- <div class="demo-box">d-flex</div>
43
- <div class="demo-box">gap-2</div>
44
- <div class="demo-box">flex-row</div>
45
- </div>
46
- </section>
47
-
48
- <!-- Flex direction -->
49
- <section>
50
- <h3>Flex direction</h3>
51
- <div class="demo-container d-flex flex-column gap-1 p-2">
52
- <div class="demo-box">d-flex</div>
53
- <div class="demo-box">flex-column</div>
54
- <div class="demo-box">gap-1</div>
55
- </div>
56
- </section>
57
-
58
- <!-- Justify content -->
59
- <section>
60
- <h3>Justify content</h3>
61
- <div class="demo-container d-flex justify-content-between p-2">
62
- <div class="demo-box">justify-content-between</div>
63
- <div class="demo-box">justify-content-between</div>
64
- </div>
65
- <div class="demo-container d-flex justify-content-start p-2">
66
- <div class="demo-box">justify-content-start</div>
67
- </div>
68
- <div class="demo-container d-flex justify-content-end p-2">
69
- <div class="demo-box">justify-content-end</div>
70
- </div>
71
- </section>
72
-
73
- <!-- Align items -->
74
- <section>
75
- <h3>Align items</h3>
76
- <div class="demo-container d-flex align-items-center p-2" style="height: 80px;">
77
- <div class="demo-box">align-items-center</div>
78
- </div>
79
- <div class="demo-container d-flex align-items-start p-2" style="height: 80px;">
80
- <div class="demo-box">align-items-start</div>
81
- </div>
82
- <div class="demo-container d-flex align-items-end p-2" style="height: 80px;">
83
- <div class="demo-box">align-items-end</div>
84
- </div>
85
- </section>
86
-
87
- <!-- Spacing utilities -->
88
- <section>
89
- <h3>Spacing (margin, padding, gap)</h3>
90
-
91
- <div class="demo-container p-3">
92
- <div class="demo-box mb-2">mb-2</div>
93
- <div class="demo-box mt-2">mt-2</div>
94
- </div>
95
- <div class="demo-container p-3">
96
- <div class="p-2">
97
- <div class="demo-box">p-2</div>
98
- </div>
99
- <div class="pt-2">
100
- <div class="demo-box">pt-2</div>
101
- </div>
102
- <div class="pb-2">
103
- <div class="demo-box">pb-2</div>
104
- </div>
105
- </div>
106
-
107
- <div class="demo-container d-flex justify-content-center align-items-center m-auto" style="height: 80px;">
108
- <div class="demo-box">m-auto</div>
109
- </div>
110
-
111
- <div class="demo-container d-flex gap-3 p-2 mt-2">
112
- <div class="demo-box">gap-3</div>
113
- <div class="demo-box">gap-3</div>
114
- <div class="demo-box">gap-3</div>
115
- </div>
116
- </section>
117
-
118
- <!-- Width / height -->
119
- <section>
120
- <h3>Width & Height</h3>
121
- <div class="demo-container p-2" style="height: 100px;">
122
- <div class="demo-box w-100 h-100">
123
- w-100 / h-100
124
- </div>
125
- </div>
126
- <div class="demo-container p-2" style="height: 100px;width: 200px;">
127
- <div class="demo-box w-auto h-auto">
128
- w-auto h-auto
129
- </div>
130
- </div>
131
- </section>
132
-
133
- <!-- Text utilities -->
134
- <section>
135
- <h3>Text alignment</h3>
136
- <div class="demo-container p-2">
137
- <div class="text-start">
138
- <span class="demo-box">text-start</span>
139
- </div>
140
- <div class="text-center">
141
- <span class="demo-box">text-center</span>
142
- </div>
143
- <div class="text-end">
144
- <span class="demo-box">text-end</span>
145
- </div>
146
- </div>
147
- </section>
148
-
149
- </div>
150
- `,
151
- }),
152
- };
153
-
154
- export default meta;
155
- type Story = StoryObj;
156
-
157
- export const Default: Story = {};
1
+ import { Meta, StoryObj } from '@storybook/angular';
2
+
3
+ /**
4
+ * The util classes here are made in order to replace bootstrap or tailwind implementations. <br>
5
+ * This way we can avoid dependencies on external libraries and keep our design system consistent. <br>
6
+ * Also this way we can give our own spacing and scale interpretation which is more in line with our design system.
7
+ *
8
+ * Below is a representation of the util classes in our design system. <br>
9
+ * Are you missing a util class? Then please contact us so we can improve this.
10
+ */
11
+
12
+ const meta: Meta = {
13
+ title: 'Core/Util classes',
14
+ tags: ['autodocs', 'ndw', 'ntm', 'nwb'],
15
+ parameters: {
16
+ viewport: {
17
+ defaultViewport: 'mobile',
18
+ },
19
+ },
20
+ render: () => ({
21
+ template: `
22
+ <style>
23
+ .demo-box {
24
+ background: var(--ndw-color-primary-050);
25
+ border: 1px solid var(--ndw-color-primary-500);
26
+ padding: 0.5rem;
27
+ text-align: center;
28
+ }
29
+
30
+ .demo-container {
31
+ background: var(--ndw-color-grey-100);
32
+ border: 1px dashed var(--ndw-color-grey-500);
33
+ }
34
+ </style>
35
+
36
+ <div class="d-flex flex-column gap-4 p-3">
37
+
38
+ <!-- Display & Flex -->
39
+ <section>
40
+ <h3>Display & Flex</h3>
41
+ <div class="demo-container d-flex gap-2 p-2">
42
+ <div class="demo-box">d-flex</div>
43
+ <div class="demo-box">gap-2</div>
44
+ <div class="demo-box">flex-row</div>
45
+ </div>
46
+ </section>
47
+
48
+ <!-- Flex direction -->
49
+ <section>
50
+ <h3>Flex direction</h3>
51
+ <div class="demo-container d-flex flex-column gap-1 p-2">
52
+ <div class="demo-box">d-flex</div>
53
+ <div class="demo-box">flex-column</div>
54
+ <div class="demo-box">gap-1</div>
55
+ </div>
56
+ </section>
57
+
58
+ <!-- Justify content -->
59
+ <section>
60
+ <h3>Justify content</h3>
61
+ <div class="demo-container d-flex justify-content-between p-2">
62
+ <div class="demo-box">justify-content-between</div>
63
+ <div class="demo-box">justify-content-between</div>
64
+ </div>
65
+ <div class="demo-container d-flex justify-content-start p-2">
66
+ <div class="demo-box">justify-content-start</div>
67
+ </div>
68
+ <div class="demo-container d-flex justify-content-end p-2">
69
+ <div class="demo-box">justify-content-end</div>
70
+ </div>
71
+ </section>
72
+
73
+ <!-- Align items -->
74
+ <section>
75
+ <h3>Align items</h3>
76
+ <div class="demo-container d-flex align-items-center p-2" style="height: 80px;">
77
+ <div class="demo-box">align-items-center</div>
78
+ </div>
79
+ <div class="demo-container d-flex align-items-start p-2" style="height: 80px;">
80
+ <div class="demo-box">align-items-start</div>
81
+ </div>
82
+ <div class="demo-container d-flex align-items-end p-2" style="height: 80px;">
83
+ <div class="demo-box">align-items-end</div>
84
+ </div>
85
+ </section>
86
+
87
+ <!-- Spacing utilities -->
88
+ <section>
89
+ <h3>Spacing (margin, padding, gap)</h3>
90
+
91
+ <div class="demo-container p-3">
92
+ <div class="demo-box mb-2">mb-2</div>
93
+ <div class="demo-box mt-2">mt-2</div>
94
+ </div>
95
+ <div class="demo-container p-3">
96
+ <div class="p-2">
97
+ <div class="demo-box">p-2</div>
98
+ </div>
99
+ <div class="pt-2">
100
+ <div class="demo-box">pt-2</div>
101
+ </div>
102
+ <div class="pb-2">
103
+ <div class="demo-box">pb-2</div>
104
+ </div>
105
+ </div>
106
+
107
+ <div class="demo-container d-flex justify-content-center align-items-center m-auto" style="height: 80px;">
108
+ <div class="demo-box">m-auto</div>
109
+ </div>
110
+
111
+ <div class="demo-container d-flex gap-3 p-2 mt-2">
112
+ <div class="demo-box">gap-3</div>
113
+ <div class="demo-box">gap-3</div>
114
+ <div class="demo-box">gap-3</div>
115
+ </div>
116
+ </section>
117
+
118
+ <!-- Width / height -->
119
+ <section>
120
+ <h3>Width & Height</h3>
121
+ <div class="demo-container p-2" style="height: 100px;">
122
+ <div class="demo-box w-100 h-100">
123
+ w-100 / h-100
124
+ </div>
125
+ </div>
126
+ <div class="demo-container p-2" style="height: 100px;width: 200px;">
127
+ <div class="demo-box w-auto h-auto">
128
+ w-auto h-auto
129
+ </div>
130
+ </div>
131
+ </section>
132
+
133
+ <!-- Text utilities -->
134
+ <section>
135
+ <h3>Text alignment</h3>
136
+ <div class="demo-container p-2">
137
+ <div class="text-start">
138
+ <span class="demo-box">text-start</span>
139
+ </div>
140
+ <div class="text-center">
141
+ <span class="demo-box">text-center</span>
142
+ </div>
143
+ <div class="text-end">
144
+ <span class="demo-box">text-end</span>
145
+ </div>
146
+ </div>
147
+ </section>
148
+
149
+ </div>
150
+ `,
151
+ }),
152
+ };
153
+
154
+ export default meta;
155
+ type Story = StoryObj;
156
+
157
+ export const Default: Story = {};
@@ -1 +1 @@
1
- @forward 'screenreader';
1
+ @forward 'screenreader';
@@ -8,6 +8,7 @@ import * as _angular_material_datepicker from '@angular/material/datepicker';
8
8
  import { DateFilterFn, MatCalendar } from '@angular/material/datepicker';
9
9
  import Shepherd, { StepOptions, TourOptions as TourOptions$1, StepOptionsButton } from 'shepherd.js';
10
10
  import { Params } from '@angular/router';
11
+ import { ConnectedPosition } from '@angular/cdk/overlay';
11
12
  import * as _ndwnu_design_system from '@ndwnu/design-system';
12
13
  import { Point } from '@angular/cdk/drag-drop';
13
14
  import { ComponentType, TemplatePortal } from '@angular/cdk/portal';
@@ -58,8 +59,10 @@ declare class AutosuggestAddOptionComponent extends CoreAutosuggestAddOptionComp
58
59
  declare class CheckboxComponent extends CoreCheckboxComponent implements ControlValueAccessor {
59
60
  switch: _angular_core.InputSignal<boolean>;
60
61
  success: _angular_core.InputSignal<boolean>;
62
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
63
+ inputId: _angular_core.InputSignal<string | undefined>;
61
64
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CheckboxComponent, never>;
62
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckboxComponent, "ndw-checkbox", never, { "switch": { "alias": "switch"; "required": false; "isSignal": true; }; "success": { "alias": "success"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
65
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckboxComponent, "ndw-checkbox", never, { "switch": { "alias": "switch"; "required": false; "isSignal": true; }; "success": { "alias": "success"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
63
66
  }
64
67
 
65
68
  declare class CheckboxGroupComponent extends CoreCheckboxGroupComponent {
@@ -426,6 +429,8 @@ declare class RadioButtonComponent implements ControlValueAccessor, CheckableCom
426
429
  success: _angular_core.InputSignal<boolean>;
427
430
  required: _angular_core.InputSignal<boolean>;
428
431
  value: _angular_core.ModelSignal<unknown>;
432
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
433
+ inputId: _angular_core.InputSignal<string | undefined>;
429
434
  name: _angular_core.WritableSignal<string | undefined>;
430
435
  uuid: `${string}-${string}-${string}-${string}-${string}`;
431
436
  onInputChange(event: Event): void;
@@ -434,7 +439,7 @@ declare class RadioButtonComponent implements ControlValueAccessor, CheckableCom
434
439
  registerOnTouched(): void;
435
440
  setDisabledState?(isDisabled: boolean): void;
436
441
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadioButtonComponent, never>;
437
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioButtonComponent, "ndw-radio-button", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "success": { "alias": "success"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "disabled": "disabledChange"; "value": "valueChange"; }, never, ["*"], true, never>;
442
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioButtonComponent, "ndw-radio-button", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "success": { "alias": "success"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "disabled": "disabledChange"; "value": "valueChange"; }, never, ["*"], true, never>;
438
443
  }
439
444
 
440
445
  declare class RadioGroupComponent implements AfterContentInit, ControlValueAccessor {
@@ -507,6 +512,8 @@ declare class ListItemComponent implements CheckableComponent {
507
512
  checkable: _angular_core.InputSignal<boolean>;
508
513
  checkType: _angular_core.InputSignal<CheckType>;
509
514
  collapsible: _angular_core.InputSignal<boolean>;
515
+ controlId: _angular_core.InputSignal<string | undefined>;
516
+ ariaControls: _angular_core.InputSignal<string | undefined>;
510
517
  disabled: _angular_core.InputSignal<boolean>;
511
518
  indented: _angular_core.InputSignal<boolean>;
512
519
  pillColor: _angular_core.InputSignal<PillColor>;
@@ -521,12 +528,13 @@ declare class ListItemComponent implements CheckableComponent {
521
528
  radioButton: _angular_core.Signal<RadioButtonComponent | undefined>;
522
529
  name: _angular_core.WritableSignal<string | undefined>;
523
530
  actionable: _angular_core.Signal<boolean>;
531
+ checkAriaLabel: _angular_core.Signal<string | undefined>;
532
+ readonly checkInputId: string;
524
533
  constructor();
525
534
  onButtonClick(event: Event): void;
526
- onCheckClick(event: Event): void;
527
- onListItemSelect(): void;
535
+ onExpandClick(): void;
528
536
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListItemComponent, never>;
529
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ListItemComponent, "ndw-list-item", never, { "active": { "alias": "active"; "required": false; "isSignal": true; }; "badgeValue": { "alias": "badgeValue"; "required": false; "isSignal": true; }; "displayLargeNumbers": { "alias": "displayLargeNumbers"; "required": false; "isSignal": true; }; "buttonIcon": { "alias": "buttonIcon"; "required": false; "isSignal": true; }; "buttonLabel": { "alias": "buttonLabel"; "required": false; "isSignal": true; }; "checkable": { "alias": "checkable"; "required": false; "isSignal": true; }; "checkType": { "alias": "checkType"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "indented": { "alias": "indented"; "required": false; "isSignal": true; }; "pillColor": { "alias": "pillColor"; "required": false; "isSignal": true; }; "pillLabel": { "alias": "pillLabel"; "required": false; "isSignal": true; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; "isSignal": true; }; "showButton": { "alias": "showButton"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "active": "activeChange"; "buttonClicked": "buttonClicked"; "checked": "checkedChange"; "expanded": "expandedChange"; }, never, ["*"], true, never>;
537
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ListItemComponent, "ndw-list-item", never, { "active": { "alias": "active"; "required": false; "isSignal": true; }; "badgeValue": { "alias": "badgeValue"; "required": false; "isSignal": true; }; "displayLargeNumbers": { "alias": "displayLargeNumbers"; "required": false; "isSignal": true; }; "buttonIcon": { "alias": "buttonIcon"; "required": false; "isSignal": true; }; "buttonLabel": { "alias": "buttonLabel"; "required": false; "isSignal": true; }; "checkable": { "alias": "checkable"; "required": false; "isSignal": true; }; "checkType": { "alias": "checkType"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "controlId": { "alias": "controlId"; "required": false; "isSignal": true; }; "ariaControls": { "alias": "ariaControls"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "indented": { "alias": "indented"; "required": false; "isSignal": true; }; "pillColor": { "alias": "pillColor"; "required": false; "isSignal": true; }; "pillLabel": { "alias": "pillLabel"; "required": false; "isSignal": true; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; "isSignal": true; }; "showButton": { "alias": "showButton"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "active": "activeChange"; "buttonClicked": "buttonClicked"; "checked": "checkedChange"; "expanded": "expandedChange"; }, never, ["*"], true, never>;
530
538
  }
531
539
 
532
540
  declare class ListComponent implements AfterContentInit {
@@ -589,8 +597,9 @@ declare class AvatarComponent {
589
597
  status: _angular_core.InputSignal<AvatarStatus>;
590
598
  initials: _angular_core.InputSignal<boolean>;
591
599
  color: _angular_core.InputSignal<AvatarColor | undefined>;
600
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
592
601
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AvatarComponent, never>;
593
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AvatarComponent, "ndw-avatar", never, { "status": { "alias": "status"; "required": false; "isSignal": true; }; "initials": { "alias": "initials"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
602
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AvatarComponent, "ndw-avatar", never, { "status": { "alias": "status"; "required": false; "isSignal": true; }; "initials": { "alias": "initials"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
594
603
  }
595
604
 
596
605
  declare class BadgeComponent extends CoreBadgeComponent {
@@ -759,8 +768,9 @@ declare class EditBarMessageComponent {
759
768
 
760
769
  declare class FavoriteComponent {
761
770
  checked: _angular_core.ModelSignal<boolean>;
771
+ ariaLabel: _angular_core.InputSignal<string>;
762
772
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FavoriteComponent, never>;
763
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FavoriteComponent, "ndw-favorite", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
773
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FavoriteComponent, "ndw-favorite", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
764
774
  }
765
775
 
766
776
  interface RequiredElement {
@@ -963,8 +973,9 @@ declare class HoverableListItemComponent {
963
973
  }
964
974
 
965
975
  declare class IconComponent extends CoreIconComponent {
976
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
966
977
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconComponent, never>;
967
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconComponent, "ndw-icon", never, {}, {}, never, ["*"], true, never>;
978
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconComponent, "ndw-icon", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
968
979
  }
969
980
 
970
981
  declare class KeyValueListComponent extends CoreKeyValueListComponent {
@@ -1051,7 +1062,7 @@ declare class LoaderComponent {
1051
1062
 
1052
1063
  declare class MapButtonComponent {
1053
1064
  #private;
1054
- readonly icon: _angular_core.InputSignal<"search" | "polygon" | "direction" | "gps" | "high-res" | "layers" | "zoom-in" | "zoom-out" | "mail" | "add-traffic-sign" | "add-zone" | "download" | "hectometer" | "low-res" | "zoom-to-content" | undefined>;
1065
+ readonly icon: _angular_core.InputSignal<"direction" | "gps" | "high-res" | "layers" | "polygon" | "search" | "zoom-in" | "zoom-out" | "mail" | "add-traffic-sign" | "add-zone" | "download" | "hectometer" | "low-res" | "zoom-to-content" | undefined>;
1055
1066
  readonly active: _angular_core.InputSignal<boolean>;
1056
1067
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
1057
1068
  readonly disabled: _angular_core.InputSignal<boolean>;
@@ -1102,7 +1113,7 @@ declare class MapDisplayComponent implements OnInit {
1102
1113
  layersTitle: _angular_core.InputSignal<string>;
1103
1114
  enableClearLayers: _angular_core.InputSignal<boolean>;
1104
1115
  compact: _angular_core.InputSignal<boolean>;
1105
- layerOptionType: _angular_core.InputSignal<"checkbox" | "radio">;
1116
+ layerOptionType: _angular_core.InputSignal<"radio" | "checkbox">;
1106
1117
  backgroundOptions: _angular_core.InputSignalWithTransform<MapBackgroundOption[], MapBackgroundOption[]>;
1107
1118
  layerOptions: _angular_core.InputSignalWithTransform<MapDisplayOption[], MapDisplayOption[]>;
1108
1119
  readonly backgroundChange: _angular_core.OutputEmitterRef<MapBackgroundOption>;
@@ -1111,6 +1122,7 @@ declare class MapDisplayComponent implements OnInit {
1111
1122
  readonly open: _angular_core.ModelSignal<boolean>;
1112
1123
  readonly htmlIsRendered: _angular_core.WritableSignal<boolean>;
1113
1124
  readonly showPopover: _angular_core.Signal<boolean>;
1125
+ protected readonly overlayPositions: ConnectedPosition[];
1114
1126
  readonly linkedBackgroundOptions: _angular_core.WritableSignal<MapBackgroundOption[]>;
1115
1127
  readonly activeBackgroundOption: _angular_core.Signal<MapBackgroundOption | undefined>;
1116
1128
  readonly linkedLayerOptions: _angular_core.WritableSignal<MapDisplayOption[]>;
@@ -1304,19 +1316,16 @@ declare class RouterBreadcrumbsComponent extends CoreRouterBreadcrumbsComponent
1304
1316
 
1305
1317
  declare class SplitterComponent implements AfterViewInit, OnDestroy {
1306
1318
  readonly disabled: _angular_core.InputSignal<boolean>;
1307
- /**
1308
- * If true, the splitter is horizontal (splits top and bottom panels).
1309
- * Otherwise, it is vertical (splits left and right panels).
1310
- */
1319
+ /** When true, splits top/bottom panels; otherwise left/right. */
1311
1320
  readonly horizontal: _angular_core.InputSignal<boolean>;
1312
- /**
1313
- * Optional size of the first panel (in pixels) when the component is initialized.
1314
- */
1321
+ /** Optional first-panel size (px) at initialization. */
1315
1322
  readonly initialPanelSize: _angular_core.InputSignal<number | null>;
1316
- /**
1317
- * Minimum size of both panels (in pixels).
1318
- */
1323
+ /** Minimum size of both panels (px). */
1319
1324
  readonly minimumPanelSize: _angular_core.InputSignal<number>;
1325
+ /** Accessible label for the resize separator. */
1326
+ readonly ariaLabel: _angular_core.InputSignal<string>;
1327
+ /** Step (px) used when resizing with the arrow keys. */
1328
+ readonly keyboardStep: _angular_core.InputSignal<number>;
1320
1329
  protected readonly firstPanelSize: _angular_core.WritableSignal<number>;
1321
1330
  protected readonly secondPanelSize: _angular_core.Signal<number>;
1322
1331
  protected readonly isDragging: _angular_core.WritableSignal<boolean>;
@@ -1324,35 +1333,18 @@ declare class SplitterComponent implements AfterViewInit, OnDestroy {
1324
1333
  private readonly splitter;
1325
1334
  private readonly cdkDrag;
1326
1335
  private storedFirstPanelSize;
1327
- /**
1328
- * Flag to indicate if the mouse click event should be
1329
- * ignored because the user is dragging the splitter.
1330
- */
1336
+ /** When true, the next click is ignored because the user was dragging. */
1331
1337
  private ignoreMouseClick;
1332
- /**
1333
- * Reactive object to store the dimensions of the drag elements.
1334
- * Updated by a resize observer on the container.
1335
- */
1338
+ /** Drag element dimensions, updated by a resize observer on the container. */
1336
1339
  private readonly dragElementDimensions;
1337
1340
  private readonly resizeObserver;
1338
- /**
1339
- * Available size for the panels, without considering the `minimumPanelSize` input.
1340
- */
1341
+ /** Available panel size, ignoring `minimumPanelSize`. */
1341
1342
  private readonly availableSize;
1342
- /**
1343
- * Position of the drag handle when the component is initialized.
1344
- * The drag position is always relative to this starting position.
1345
- */
1343
+ /** Drag handle position at initialization (relative origin). */
1346
1344
  private readonly dragStartPosition;
1347
- /**
1348
- * Minimum panel size that is safe to use, considering the
1349
- * available container size and the `minimumPanelSize` input.
1350
- */
1345
+ /** Minimum panel size that is safe given the container and `minimumPanelSize`. */
1351
1346
  protected readonly safeMinPanelSize: _angular_core.Signal<number>;
1352
- /**
1353
- * Maximum panel size that is safe to use, considering the
1354
- * available container size and the `minimumPanelSize
1355
- */
1347
+ /** Maximum panel size that is safe given the container and `minimumPanelSize`. */
1356
1348
  protected readonly safeMaxPanelSize: _angular_core.Signal<number>;
1357
1349
  constructor();
1358
1350
  ngAfterViewInit(): void;
@@ -1365,13 +1357,15 @@ declare class SplitterComponent implements AfterViewInit, OnDestroy {
1365
1357
  protected onDragEnded(): void;
1366
1358
  protected onDragMoved(): void;
1367
1359
  protected onSplitterMouseDown(): void;
1360
+ /** Keyboard resizing for the separator (WCAG 2.1.1). */
1361
+ protected onKeydown(event: KeyboardEvent): void;
1368
1362
  protected onSplitterMouseUp(): void;
1369
1363
  protected setDragPosition(position: number): void;
1370
1364
  protected storeFirstPanelSize(): void;
1371
1365
  private setFirstPanelSize;
1372
1366
  private clampPanelSize;
1373
1367
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SplitterComponent, never>;
1374
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SplitterComponent, "ndw-splitter", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "horizontal": { "alias": "horizontal"; "required": false; "isSignal": true; }; "initialPanelSize": { "alias": "initialPanelSize"; "required": false; "isSignal": true; }; "minimumPanelSize": { "alias": "minimumPanelSize"; "required": false; "isSignal": true; }; }, {}, never, ["[first-panel]", "[second-panel]"], true, never>;
1368
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SplitterComponent, "ndw-splitter", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "horizontal": { "alias": "horizontal"; "required": false; "isSignal": true; }; "initialPanelSize": { "alias": "initialPanelSize"; "required": false; "isSignal": true; }; "minimumPanelSize": { "alias": "minimumPanelSize"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "keyboardStep": { "alias": "keyboardStep"; "required": false; "isSignal": true; }; }, {}, never, ["[first-panel]", "[second-panel]"], true, never>;
1375
1369
  }
1376
1370
 
1377
1371
  type SummaryActionsView = 'visible' | 'popover' | 'auto';
@@ -1483,6 +1477,7 @@ declare class TabGroupComponent implements OnDestroy {
1483
1477
  hasPadding: _angular_core.InputSignal<boolean>;
1484
1478
  activeTabId: _angular_core.ModelSignal<string | number | undefined>;
1485
1479
  inlinePadding: _angular_core.InputSignal<number>;
1480
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
1486
1481
  private readonly _scrollLeft;
1487
1482
  private readonly _scrollWidth;
1488
1483
  private readonly _clientWidth;
@@ -1501,7 +1496,7 @@ declare class TabGroupComponent implements OnDestroy {
1501
1496
  private getFirstEnabledIndex;
1502
1497
  private getLastEnabledIndex;
1503
1498
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabGroupComponent, never>;
1504
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabGroupComponent, "ndw-tab-group", never, { "hasPadding": { "alias": "hasPadding"; "required": false; "isSignal": true; }; "activeTabId": { "alias": "activeTabId"; "required": false; "isSignal": true; }; "inlinePadding": { "alias": "inlinePadding"; "required": false; "isSignal": true; }; }, { "activeTabId": "activeTabIdChange"; }, ["_tabs"], never, true, never>;
1499
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabGroupComponent, "ndw-tab-group", never, { "hasPadding": { "alias": "hasPadding"; "required": false; "isSignal": true; }; "activeTabId": { "alias": "activeTabId"; "required": false; "isSignal": true; }; "inlinePadding": { "alias": "inlinePadding"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "activeTabId": "activeTabIdChange"; }, ["_tabs"], never, true, never>;
1505
1500
  }
1506
1501
 
1507
1502
  declare const ndwAgGridTheme: Partial<ThemeDefaultParams>;