@ndwnu/design-system 14.2.1 → 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 +260 -220
  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 -114
  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 +46 -48
@@ -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,16 +1062,17 @@ 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>;
1069
+ readonly compact: _angular_core.InputSignal<boolean>;
1058
1070
  readonly clicked: _angular_core.OutputEmitterRef<void>;
1059
1071
  protected readonly buttonIcon: _angular_core.Signal<string | undefined>;
1060
1072
  protected readonly svgIcon: _angular_core.Signal<string | undefined>;
1061
1073
  protected readonly iconLabel: _angular_core.Signal<string>;
1062
1074
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MapButtonComponent, never>;
1063
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<MapButtonComponent, "ndw-map-button", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, ["*"], true, never>;
1075
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MapButtonComponent, "ndw-map-button", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, ["*"], true, never>;
1064
1076
  }
1065
1077
 
1066
1078
  declare const fontMapButtonIcons: readonly ["direction", "gps", "high-res", "layers", "polygon", "search", "zoom-in", "zoom-out", "mail"];
@@ -1100,7 +1112,8 @@ declare class MapDisplayComponent implements OnInit {
1100
1112
  backgroundsTitle: _angular_core.InputSignal<string>;
1101
1113
  layersTitle: _angular_core.InputSignal<string>;
1102
1114
  enableClearLayers: _angular_core.InputSignal<boolean>;
1103
- layerOptionType: _angular_core.InputSignal<"checkbox" | "radio">;
1115
+ compact: _angular_core.InputSignal<boolean>;
1116
+ layerOptionType: _angular_core.InputSignal<"radio" | "checkbox">;
1104
1117
  backgroundOptions: _angular_core.InputSignalWithTransform<MapBackgroundOption[], MapBackgroundOption[]>;
1105
1118
  layerOptions: _angular_core.InputSignalWithTransform<MapDisplayOption[], MapDisplayOption[]>;
1106
1119
  readonly backgroundChange: _angular_core.OutputEmitterRef<MapBackgroundOption>;
@@ -1109,6 +1122,7 @@ declare class MapDisplayComponent implements OnInit {
1109
1122
  readonly open: _angular_core.ModelSignal<boolean>;
1110
1123
  readonly htmlIsRendered: _angular_core.WritableSignal<boolean>;
1111
1124
  readonly showPopover: _angular_core.Signal<boolean>;
1125
+ protected readonly overlayPositions: ConnectedPosition[];
1112
1126
  readonly linkedBackgroundOptions: _angular_core.WritableSignal<MapBackgroundOption[]>;
1113
1127
  readonly activeBackgroundOption: _angular_core.Signal<MapBackgroundOption | undefined>;
1114
1128
  readonly linkedLayerOptions: _angular_core.WritableSignal<MapDisplayOption[]>;
@@ -1119,7 +1133,7 @@ declare class MapDisplayComponent implements OnInit {
1119
1133
  toggleLayer(option: MapDisplayOption): void;
1120
1134
  clearLayers(): void;
1121
1135
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MapDisplayComponent, never>;
1122
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<MapDisplayComponent, "ndw-map-display", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "backgroundsTitle": { "alias": "backgroundsTitle"; "required": false; "isSignal": true; }; "layersTitle": { "alias": "layersTitle"; "required": false; "isSignal": true; }; "enableClearLayers": { "alias": "enableClearLayers"; "required": false; "isSignal": true; }; "layerOptionType": { "alias": "layerOptionType"; "required": false; "isSignal": true; }; "backgroundOptions": { "alias": "backgroundOptions"; "required": false; "isSignal": true; }; "layerOptions": { "alias": "layerOptions"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "backgroundChange": "backgroundChange"; "layerChange": "layerChange"; "clearAllLayers": "clearAllLayers"; "open": "openChange"; }, never, never, true, never>;
1136
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MapDisplayComponent, "ndw-map-display", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "backgroundsTitle": { "alias": "backgroundsTitle"; "required": false; "isSignal": true; }; "layersTitle": { "alias": "layersTitle"; "required": false; "isSignal": true; }; "enableClearLayers": { "alias": "enableClearLayers"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "layerOptionType": { "alias": "layerOptionType"; "required": false; "isSignal": true; }; "backgroundOptions": { "alias": "backgroundOptions"; "required": false; "isSignal": true; }; "layerOptions": { "alias": "layerOptions"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "backgroundChange": "backgroundChange"; "layerChange": "layerChange"; "clearAllLayers": "clearAllLayers"; "open": "openChange"; }, never, never, true, never>;
1123
1137
  }
1124
1138
 
1125
1139
  declare const MAP_BACKGROUND_IMAGES: {
@@ -1197,6 +1211,7 @@ declare class MapLegendComponent {
1197
1211
  readonly icon: _angular_core.InputSignal<string>;
1198
1212
  readonly title: _angular_core.InputSignal<string>;
1199
1213
  readonly viewMode: _angular_core.InputSignal<MapLegendViewMode>;
1214
+ readonly compact: _angular_core.InputSignal<boolean>;
1200
1215
  readonly open: _angular_core.ModelSignal<boolean>;
1201
1216
  readonly htmlIsRendered: _angular_core.WritableSignal<boolean>;
1202
1217
  readonly showPopover: _angular_core.Signal<boolean>;
@@ -1205,7 +1220,7 @@ declare class MapLegendComponent {
1205
1220
  readonly hasJustOneGroup: _angular_core.Signal<boolean>;
1206
1221
  constructor();
1207
1222
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MapLegendComponent, never>;
1208
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<MapLegendComponent, "ndw-map-legend", never, { "groups": { "alias": "groups"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, never, true, never>;
1223
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MapLegendComponent, "ndw-map-legend", never, { "groups": { "alias": "groups"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, never, true, never>;
1209
1224
  }
1210
1225
 
1211
1226
  declare class ModalContentComponent {
@@ -1301,19 +1316,16 @@ declare class RouterBreadcrumbsComponent extends CoreRouterBreadcrumbsComponent
1301
1316
 
1302
1317
  declare class SplitterComponent implements AfterViewInit, OnDestroy {
1303
1318
  readonly disabled: _angular_core.InputSignal<boolean>;
1304
- /**
1305
- * If true, the splitter is horizontal (splits top and bottom panels).
1306
- * Otherwise, it is vertical (splits left and right panels).
1307
- */
1319
+ /** When true, splits top/bottom panels; otherwise left/right. */
1308
1320
  readonly horizontal: _angular_core.InputSignal<boolean>;
1309
- /**
1310
- * Optional size of the first panel (in pixels) when the component is initialized.
1311
- */
1321
+ /** Optional first-panel size (px) at initialization. */
1312
1322
  readonly initialPanelSize: _angular_core.InputSignal<number | null>;
1313
- /**
1314
- * Minimum size of both panels (in pixels).
1315
- */
1323
+ /** Minimum size of both panels (px). */
1316
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>;
1317
1329
  protected readonly firstPanelSize: _angular_core.WritableSignal<number>;
1318
1330
  protected readonly secondPanelSize: _angular_core.Signal<number>;
1319
1331
  protected readonly isDragging: _angular_core.WritableSignal<boolean>;
@@ -1321,35 +1333,18 @@ declare class SplitterComponent implements AfterViewInit, OnDestroy {
1321
1333
  private readonly splitter;
1322
1334
  private readonly cdkDrag;
1323
1335
  private storedFirstPanelSize;
1324
- /**
1325
- * Flag to indicate if the mouse click event should be
1326
- * ignored because the user is dragging the splitter.
1327
- */
1336
+ /** When true, the next click is ignored because the user was dragging. */
1328
1337
  private ignoreMouseClick;
1329
- /**
1330
- * Reactive object to store the dimensions of the drag elements.
1331
- * Updated by a resize observer on the container.
1332
- */
1338
+ /** Drag element dimensions, updated by a resize observer on the container. */
1333
1339
  private readonly dragElementDimensions;
1334
1340
  private readonly resizeObserver;
1335
- /**
1336
- * Available size for the panels, without considering the `minimumPanelSize` input.
1337
- */
1341
+ /** Available panel size, ignoring `minimumPanelSize`. */
1338
1342
  private readonly availableSize;
1339
- /**
1340
- * Position of the drag handle when the component is initialized.
1341
- * The drag position is always relative to this starting position.
1342
- */
1343
+ /** Drag handle position at initialization (relative origin). */
1343
1344
  private readonly dragStartPosition;
1344
- /**
1345
- * Minimum panel size that is safe to use, considering the
1346
- * available container size and the `minimumPanelSize` input.
1347
- */
1345
+ /** Minimum panel size that is safe given the container and `minimumPanelSize`. */
1348
1346
  protected readonly safeMinPanelSize: _angular_core.Signal<number>;
1349
- /**
1350
- * Maximum panel size that is safe to use, considering the
1351
- * available container size and the `minimumPanelSize
1352
- */
1347
+ /** Maximum panel size that is safe given the container and `minimumPanelSize`. */
1353
1348
  protected readonly safeMaxPanelSize: _angular_core.Signal<number>;
1354
1349
  constructor();
1355
1350
  ngAfterViewInit(): void;
@@ -1362,13 +1357,15 @@ declare class SplitterComponent implements AfterViewInit, OnDestroy {
1362
1357
  protected onDragEnded(): void;
1363
1358
  protected onDragMoved(): void;
1364
1359
  protected onSplitterMouseDown(): void;
1360
+ /** Keyboard resizing for the separator (WCAG 2.1.1). */
1361
+ protected onKeydown(event: KeyboardEvent): void;
1365
1362
  protected onSplitterMouseUp(): void;
1366
1363
  protected setDragPosition(position: number): void;
1367
1364
  protected storeFirstPanelSize(): void;
1368
1365
  private setFirstPanelSize;
1369
1366
  private clampPanelSize;
1370
1367
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SplitterComponent, never>;
1371
- 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>;
1372
1369
  }
1373
1370
 
1374
1371
  type SummaryActionsView = 'visible' | 'popover' | 'auto';
@@ -1480,6 +1477,7 @@ declare class TabGroupComponent implements OnDestroy {
1480
1477
  hasPadding: _angular_core.InputSignal<boolean>;
1481
1478
  activeTabId: _angular_core.ModelSignal<string | number | undefined>;
1482
1479
  inlinePadding: _angular_core.InputSignal<number>;
1480
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
1483
1481
  private readonly _scrollLeft;
1484
1482
  private readonly _scrollWidth;
1485
1483
  private readonly _clientWidth;
@@ -1498,7 +1496,7 @@ declare class TabGroupComponent implements OnDestroy {
1498
1496
  private getFirstEnabledIndex;
1499
1497
  private getLastEnabledIndex;
1500
1498
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabGroupComponent, never>;
1501
- 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>;
1502
1500
  }
1503
1501
 
1504
1502
  declare const ndwAgGridTheme: Partial<ThemeDefaultParams>;