@ndwnu/design-system 2.0.0 → 3.0.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 (74) hide show
  1. package/components/card/index.d.ts +2 -2
  2. package/components/dropdown/dropdown.component.d.ts +8 -3
  3. package/components/form-field/checkbox/checkbox.component.d.ts +2 -1
  4. package/components/form-field/file-upload/file-upload.component.d.ts +3 -1
  5. package/components/form-field/form-field.component.d.ts +8 -9
  6. package/components/form-field/index.d.ts +1 -0
  7. package/components/form-field/input/input.directive.d.ts +1 -0
  8. package/components/form-field/input/input.model.d.ts +1 -3
  9. package/components/form-field/month-input/index.d.ts +1 -0
  10. package/components/form-field/month-input/month-input-utils.d.ts +5 -0
  11. package/components/form-field/month-input/month-input.component.d.ts +42 -0
  12. package/components/form-field/option-group/index.d.ts +1 -0
  13. package/components/form-field/option-group/option-group.component.d.ts +11 -3
  14. package/components/form-field/option-group/option-group.model.d.ts +1 -0
  15. package/components/form-field/option-group/option.component.d.ts +2 -1
  16. package/components/form-field/radio-button/radio-button.component.d.ts +2 -1
  17. package/components/form-field/success/index.d.ts +1 -0
  18. package/components/form-field/success/success.component.d.ts +5 -0
  19. package/components/icon/action-icon/index.d.ts +1 -0
  20. package/components/icon/index.d.ts +1 -1
  21. package/components/main-navigation/main-navigation.component.d.ts +18 -6
  22. package/components/main-navigation/main-navigation.imports.d.ts +9 -0
  23. package/components/main-navigation-menu/main-navigation-menu.component.d.ts +4 -1
  24. package/components/pill/pill.component.d.ts +1 -1
  25. package/components/popover/popover-trigger.directive.d.ts +1 -1
  26. package/components/removable-pill/removable-pill.component.d.ts +1 -1
  27. package/components/toast/toast.component.d.ts +1 -0
  28. package/components/tooltip/tooltip.directive.d.ts +3 -2
  29. package/core/styles/ndw-styles.scss +24 -40
  30. package/core/styles/nwb-styles.scss +24 -40
  31. package/esm2022/components/alert/alert.component.mjs +5 -4
  32. package/esm2022/components/badge/badge.component.mjs +2 -2
  33. package/esm2022/components/breadcrumb-group/breadcrumb-group.component.mjs +3 -3
  34. package/esm2022/components/button/button.directive.mjs +4 -3
  35. package/esm2022/components/card/card-footer/card-footer.component.mjs +2 -2
  36. package/esm2022/components/card/card.component.mjs +2 -2
  37. package/esm2022/components/dropdown/dropdown.component.mjs +31 -6
  38. package/esm2022/components/form-field/checkbox/checkbox.component.mjs +5 -4
  39. package/esm2022/components/form-field/file-upload/file-upload.component.mjs +11 -4
  40. package/esm2022/components/form-field/form-field.component.mjs +27 -32
  41. package/esm2022/components/form-field/index.mjs +2 -1
  42. package/esm2022/components/form-field/input/input.directive.mjs +4 -1
  43. package/esm2022/components/form-field/input/input.model.mjs +1 -3
  44. package/esm2022/components/form-field/month-input/index.mjs +2 -0
  45. package/esm2022/components/form-field/month-input/month-input-utils.mjs +13 -0
  46. package/esm2022/components/form-field/month-input/month-input.component.mjs +155 -0
  47. package/esm2022/components/form-field/option-group/index.mjs +2 -1
  48. package/esm2022/components/form-field/option-group/option-group.component.mjs +35 -24
  49. package/esm2022/components/form-field/option-group/option-group.model.mjs +2 -0
  50. package/esm2022/components/form-field/option-group/option.component.mjs +3 -2
  51. package/esm2022/components/form-field/radio-button/radio-button.component.mjs +5 -4
  52. package/esm2022/components/form-field/success/index.mjs +2 -0
  53. package/esm2022/components/form-field/success/success.component.mjs +12 -0
  54. package/esm2022/components/icon/action-icon/action-icon.component.mjs +2 -1
  55. package/esm2022/components/icon/action-icon/index.mjs +2 -0
  56. package/esm2022/components/icon/icon.component.mjs +2 -3
  57. package/esm2022/components/icon/index.mjs +2 -2
  58. package/esm2022/components/main-navigation/main-navigation.component.mjs +69 -31
  59. package/esm2022/components/main-navigation/main-navigation.imports.mjs +20 -0
  60. package/esm2022/components/main-navigation-menu/main-navigation-menu.component.mjs +10 -4
  61. package/esm2022/components/modal/modal-footer/modal-footer.component.mjs +2 -2
  62. package/esm2022/components/modal/modal-header/modal-header.component.mjs +5 -4
  63. package/esm2022/components/modal/modal.component.mjs +2 -2
  64. package/esm2022/components/modal/modal.service.mjs +2 -2
  65. package/esm2022/components/multi-select/multi-select.component.mjs +2 -2
  66. package/esm2022/components/pill/pill.component.mjs +5 -5
  67. package/esm2022/components/popover/popover-trigger.directive.mjs +1 -2
  68. package/esm2022/components/removable-pill/removable-pill.component.mjs +3 -3
  69. package/esm2022/components/toast/toast.component.mjs +11 -8
  70. package/esm2022/components/tooltip/tooltip.component.mjs +2 -2
  71. package/esm2022/components/tooltip/tooltip.directive.mjs +7 -3
  72. package/fesm2022/ndwnu-design-system.mjs +551 -281
  73. package/fesm2022/ndwnu-design-system.mjs.map +1 -1
  74. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
- import { CardComponent } from './card.component';
1
+ import { CardContentComponent } from './card-content';
2
2
  export * from './card-content';
3
3
  export * from './card-footer';
4
4
  export * from './card-header';
5
5
  export * from './card.component';
6
- export declare const CARD_COMPONENTS: (typeof CardComponent)[];
6
+ export declare const CARD_COMPONENTS: (typeof CardContentComponent)[];
@@ -1,3 +1,4 @@
1
+ import { ElementRef } from '@angular/core';
1
2
  import { PopoverTriggerDirective } from '../popover';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class DropdownComponent {
@@ -8,9 +9,13 @@ export declare class DropdownComponent {
8
9
  readonly selectAmount: import("@angular/core").InputSignal<number>;
9
10
  readonly removablePillClicked: import("@angular/core").OutputEmitterRef<void>;
10
11
  readonly isOpenChange: import("@angular/core").OutputEmitterRef<boolean>;
11
- readonly dropdownTrigger: import("@angular/core").Signal<PopoverTriggerDirective>;
12
- readonly buttonIcon: import("@angular/core").Signal<"keyboard_arrow_down" | "keyboard_arrow_up">;
13
- onRemovablePillClicked(): void;
12
+ readonly popoverTrigger: import("@angular/core").Signal<PopoverTriggerDirective>;
13
+ readonly dropdownButton: import("@angular/core").Signal<ElementRef<any>>;
14
+ readonly buttonIcon: import("@angular/core").Signal<"keyboard_arrow_up" | "keyboard_arrow_down">;
15
+ onRemovablePillClicked($event: Event): void;
16
+ onKeyDown(event: KeyboardEvent): void;
17
+ closeDropdown(): void;
18
+ onKeyDownRemovablePill(event: KeyboardEvent): void;
14
19
  isOpenChanged(isOpen: boolean): void;
15
20
  static ɵfac: i0.ɵɵFactoryDeclaration<DropdownComponent, never>;
16
21
  static ɵcmp: i0.ɵɵComponentDeclaration<DropdownComponent, "ndw-dropdown", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "chevron": { "alias": "chevron"; "required": false; "isSignal": true; }; "buttonText": { "alias": "buttonText"; "required": true; "isSignal": true; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; "isSignal": true; }; "selectAmount": { "alias": "selectAmount"; "required": false; "isSignal": true; }; }, { "removablePillClicked": "removablePillClicked"; "isOpenChange": "isOpenChange"; }, never, ["*"], true, never>;
@@ -5,6 +5,7 @@ export declare class CheckboxComponent implements ControlValueAccessor {
5
5
  switch: import("@angular/core").InputSignal<boolean>;
6
6
  disabled: import("@angular/core").InputSignal<boolean>;
7
7
  error: import("@angular/core").InputSignal<boolean>;
8
+ success: import("@angular/core").InputSignal<boolean>;
8
9
  indeterminate: import("@angular/core").InputSignal<boolean>;
9
10
  required: import("@angular/core").InputSignal<boolean>;
10
11
  uuid: `${string}-${string}-${string}-${string}-${string}`;
@@ -17,5 +18,5 @@ export declare class CheckboxComponent implements ControlValueAccessor {
17
18
  registerOnChange(fn: (value: boolean) => void): void;
18
19
  registerOnTouched(): void;
19
20
  static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxComponent, never>;
20
- static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "ndw-checkbox", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "switch": { "alias": "switch"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, ["*"], true, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "ndw-checkbox", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "switch": { "alias": "switch"; "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; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, ["*"], true, never>;
21
22
  }
@@ -13,11 +13,13 @@ export declare class FileUploadComponent implements ControlValueAccessor {
13
13
  readonly draggingOver: import("@angular/core").ModelSignal<boolean>;
14
14
  readonly selectedFile: import("@angular/core").ModelSignal<File | null | undefined>;
15
15
  readonly error: import("@angular/core").ModelSignal<boolean>;
16
+ readonly success: import("@angular/core").ModelSignal<boolean>;
16
17
  readonly incorrectFileType: import("@angular/core").ModelSignal<boolean>;
17
18
  readonly incorrectFileSize: import("@angular/core").ModelSignal<boolean>;
18
19
  private readonly canEdit;
19
20
  get tabindexAttr(): number;
20
21
  get hasError(): boolean;
22
+ get hasSuccess(): boolean;
21
23
  get isDisabled(): boolean;
22
24
  get isReadonly(): boolean;
23
25
  get isDragging(): boolean;
@@ -40,5 +42,5 @@ export declare class FileUploadComponent implements ControlValueAccessor {
40
42
  registerOnChange(fn: (value: File | null | undefined) => void): void;
41
43
  registerOnTouched(): void;
42
44
  static ɵfac: i0.ɵɵFactoryDeclaration<FileUploadComponent, never>;
43
- static ɵcmp: i0.ɵɵComponentDeclaration<FileUploadComponent, "ndw-file-upload", never, { "allowedFileTypeRegex": { "alias": "allowedFileTypeRegex"; "required": false; "isSignal": true; }; "fileUploadText": { "alias": "fileUploadText"; "required": false; "isSignal": true; }; "uploadDate": { "alias": "uploadDate"; "required": false; "isSignal": true; }; "maxFileSizeInBytes": { "alias": "maxFileSizeInBytes"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggingOver": { "alias": "draggingOver"; "required": false; "isSignal": true; }; "selectedFile": { "alias": "selectedFile"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "incorrectFileType": { "alias": "incorrectFileType"; "required": false; "isSignal": true; }; "incorrectFileSize": { "alias": "incorrectFileSize"; "required": false; "isSignal": true; }; }, { "draggingOver": "draggingOverChange"; "selectedFile": "selectedFileChange"; "error": "errorChange"; "incorrectFileType": "incorrectFileTypeChange"; "incorrectFileSize": "incorrectFileSizeChange"; }, never, never, true, never>;
45
+ static ɵcmp: i0.ɵɵComponentDeclaration<FileUploadComponent, "ndw-file-upload", never, { "allowedFileTypeRegex": { "alias": "allowedFileTypeRegex"; "required": false; "isSignal": true; }; "fileUploadText": { "alias": "fileUploadText"; "required": false; "isSignal": true; }; "uploadDate": { "alias": "uploadDate"; "required": false; "isSignal": true; }; "maxFileSizeInBytes": { "alias": "maxFileSizeInBytes"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggingOver": { "alias": "draggingOver"; "required": false; "isSignal": true; }; "selectedFile": { "alias": "selectedFile"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "success": { "alias": "success"; "required": false; "isSignal": true; }; "incorrectFileType": { "alias": "incorrectFileType"; "required": false; "isSignal": true; }; "incorrectFileSize": { "alias": "incorrectFileSize"; "required": false; "isSignal": true; }; }, { "draggingOver": "draggingOverChange"; "selectedFile": "selectedFileChange"; "error": "errorChange"; "success": "successChange"; "incorrectFileType": "incorrectFileTypeChange"; "incorrectFileSize": "incorrectFileSizeChange"; }, never, never, true, never>;
44
46
  }
@@ -1,35 +1,34 @@
1
- import { CheckboxGroupComponent } from './checkbox-group';
2
1
  import { InputDirective } from './input';
3
- import { RadioGroupComponent } from './radio-group';
2
+ import { MonthInputComponent } from './month-input';
4
3
  import * as i0 from "@angular/core";
5
4
  export declare class FormFieldComponent {
5
+ readonly monthInput: import("@angular/core").Signal<MonthInputComponent | undefined>;
6
+ readonly regularInput: import("@angular/core").Signal<InputDirective | undefined>;
6
7
  input: import("@angular/core").Signal<InputDirective | undefined>;
7
- radioGroup: import("@angular/core").Signal<RadioGroupComponent | undefined>;
8
- checkboxGroup: import("@angular/core").Signal<CheckboxGroupComponent | undefined>;
9
8
  label: import("@angular/core").InputSignal<string>;
10
9
  clearSearchAriaLabel: import("@angular/core").InputSignal<string | undefined>;
11
- suffixIconAriaLabel: import("@angular/core").InputSignal<string | undefined>;
10
+ suffixButtonAriaLabel: import("@angular/core").InputSignal<string | undefined>;
12
11
  hideLabel: import("@angular/core").InputSignal<boolean>;
13
12
  disabled: import("@angular/core").InputSignal<boolean>;
14
13
  error: import("@angular/core").InputSignal<string | undefined>;
14
+ success: import("@angular/core").InputSignal<string | undefined>;
15
15
  info: import("@angular/core").InputSignal<string | undefined>;
16
16
  tooltip: import("@angular/core").InputSignal<string>;
17
- required: import("@angular/core").Signal<boolean>;
18
17
  inputPrefix: import("@angular/core").Signal<string | undefined>;
19
18
  inputSuffix: import("@angular/core").Signal<string | undefined>;
20
19
  uuid: `${string}-${string}-${string}-${string}-${string}`;
21
20
  descriptionUuid: `${string}-${string}-${string}-${string}-${string}`;
22
21
  constructor();
23
22
  clearInput(): void;
24
- protected onSuffixIconClick(): void;
23
+ protected onSuffixButtonClick(): void;
25
24
  private addInputTypeBasedClass;
26
25
  private setInputDisabledState;
27
26
  private setInputErrorState;
27
+ private setInputSuccessState;
28
28
  private setInputId;
29
29
  private setAriaDescribedBy;
30
30
  private setInputPrefix;
31
31
  private setInputSuffix;
32
- private setRequiredState;
33
32
  static ɵfac: i0.ɵɵFactoryDeclaration<FormFieldComponent, never>;
34
- static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldComponent, "ndw-form-field", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "clearSearchAriaLabel": { "alias": "clearSearchAriaLabel"; "required": false; "isSignal": true; }; "suffixIconAriaLabel": { "alias": "suffixIconAriaLabel"; "required": false; "isSignal": true; }; "hideLabel": { "alias": "hideLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "info": { "alias": "info"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; }, {}, ["input", "radioGroup", "checkboxGroup"], ["*"], true, never>;
33
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldComponent, "ndw-form-field", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "clearSearchAriaLabel": { "alias": "clearSearchAriaLabel"; "required": false; "isSignal": true; }; "suffixButtonAriaLabel": { "alias": "suffixButtonAriaLabel"; "required": false; "isSignal": true; }; "hideLabel": { "alias": "hideLabel"; "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; }; "info": { "alias": "info"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; }, {}, ["monthInput", "regularInput"], ["*"], true, never>;
35
34
  }
@@ -6,6 +6,7 @@ export * from './form-field.component';
6
6
  export * from './form-field.model';
7
7
  export * from './info';
8
8
  export * from './input';
9
+ export * from './month-input';
9
10
  export * from './option-group';
10
11
  export * from './radio-button';
11
12
  export * from './radio-group';
@@ -4,6 +4,7 @@ import * as i0 from "@angular/core";
4
4
  export declare class InputDirective implements OnInit {
5
5
  set disabled(disabled: boolean);
6
6
  set error(error: boolean);
7
+ set success(success: boolean);
7
8
  set id(id: string);
8
9
  set ariaDescribedBy(id: string);
9
10
  private readonly elementRef;
@@ -1,13 +1,11 @@
1
1
  export declare enum InputType {
2
2
  Date = "date",
3
3
  Email = "email",
4
- Month = "month",
5
4
  Number = "number",
6
5
  Password = "password",
7
6
  Search = "search",
8
7
  Tel = "tel",
9
8
  Text = "text",
10
9
  Time = "time",
11
- Url = "url",
12
- Week = "week"
10
+ Url = "url"
13
11
  }
@@ -0,0 +1 @@
1
+ export * from './month-input.component';
@@ -0,0 +1,5 @@
1
+ export declare function createYearRange(minDate: Date, maxDate: Date): number[];
2
+ export declare function createMonthOptions(monthLabels: string[]): {
3
+ label: string;
4
+ value: number;
5
+ }[];
@@ -0,0 +1,42 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { ControlValueAccessor, NgControl } from '@angular/forms';
3
+ import { InputDirective } from '../input';
4
+ import * as i0 from "@angular/core";
5
+ export declare class MonthInputComponent implements ControlValueAccessor, OnInit {
6
+ readonly disabled: import("@angular/core").ModelSignal<boolean>;
7
+ readonly required: import("@angular/core").InputSignal<boolean>;
8
+ readonly showMonthPickerLabel: import("@angular/core").InputSignal<string>;
9
+ readonly placeholder: import("@angular/core").InputSignal<string>;
10
+ readonly yearPlaceholder: import("@angular/core").InputSignal<string>;
11
+ readonly minDate: import("@angular/core").InputSignal<Date>;
12
+ readonly maxDate: import("@angular/core").InputSignal<Date>;
13
+ readonly monthLabels: import("@angular/core").InputSignal<string[]>;
14
+ readonly input: import("@angular/core").Signal<InputDirective | undefined>;
15
+ readonly inputElement: import("@angular/core").Signal<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | undefined>;
16
+ protected showMonthPicker: boolean;
17
+ protected readonly selectedYear: import("@angular/core").ModelSignal<number>;
18
+ protected readonly selectedMonth: import("@angular/core").ModelSignal<number | null>;
19
+ protected readonly selectedDate: import("@angular/core").Signal<Date | null>;
20
+ protected readonly inputValue: import("@angular/core").Signal<string | null>;
21
+ protected readonly ngControl: NgControl | null;
22
+ protected readonly years: import("@angular/core").Signal<number[]>;
23
+ protected readonly months: import("@angular/core").Signal<{
24
+ label: string;
25
+ value: number;
26
+ }[]>;
27
+ private onChange;
28
+ private readonly destroyRef;
29
+ constructor();
30
+ ngOnInit(): void;
31
+ writeValue(value: Date | null): void;
32
+ registerOnChange(fn: (value: Date | null) => void): void;
33
+ setDisabledState(isDisabled: boolean): void;
34
+ registerOnTouched(): void;
35
+ protected onInputChanged(value: string): void;
36
+ protected onYearSelected(year: string): void;
37
+ protected onMonthSelected(month: number): void;
38
+ protected onKeyDown(event: KeyboardEvent): void;
39
+ private adjustMonth;
40
+ static ɵfac: i0.ɵɵFactoryDeclaration<MonthInputComponent, never>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<MonthInputComponent, "ndw-month-input", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "showMonthPickerLabel": { "alias": "showMonthPickerLabel"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "yearPlaceholder": { "alias": "yearPlaceholder"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "monthLabels": { "alias": "monthLabels"; "required": false; "isSignal": true; }; "selectedYear": { "alias": "selectedYear"; "required": false; "isSignal": true; }; "selectedMonth": { "alias": "selectedMonth"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "selectedYear": "selectedYearChange"; "selectedMonth": "selectedMonthChange"; }, never, never, true, never>;
42
+ }
@@ -1,2 +1,3 @@
1
1
  export * from './option-group.component';
2
+ export * from './option-group.model';
2
3
  export * from './option.component';
@@ -1,12 +1,20 @@
1
1
  import { ControlValueAccessor } from '@angular/forms';
2
+ import { OptionGroupMode } from './option-group.model';
2
3
  import { OptionComponent } from './option.component';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class OptionGroupComponent implements ControlValueAccessor {
5
6
  readonly fluid: import("@angular/core").InputSignal<boolean>;
7
+ readonly fluidColumns: import("@angular/core").InputSignal<number | null>;
6
8
  readonly disabled: import("@angular/core").ModelSignal<boolean>;
7
- protected readonly children: import("@angular/core").Signal<readonly OptionComponent[]>;
8
- protected readonly focusedValue: import("@angular/core").ModelSignal<unknown>;
9
+ readonly mode: import("@angular/core").InputSignal<OptionGroupMode>;
10
+ readonly required: import("@angular/core").InputSignal<boolean>;
11
+ readonly children: import("@angular/core").Signal<readonly OptionComponent[]>;
9
12
  protected readonly checkedValues: import("@angular/core").ModelSignal<unknown[]>;
13
+ private readonly ngControl;
14
+ protected readonly fluidColumnStyle: import("@angular/core").Signal<string | null>;
15
+ protected readonly uuid: `${string}-${string}-${string}-${string}-${string}`;
16
+ constructor();
17
+ get isRequiredOrHasRequiredValidator(): boolean | null;
10
18
  private onChange;
11
19
  protected toggleValue(value: unknown): void;
12
20
  writeValue(value: unknown[]): void;
@@ -14,5 +22,5 @@ export declare class OptionGroupComponent implements ControlValueAccessor {
14
22
  registerOnTouched(): void;
15
23
  setDisabledState(isDisabled: boolean): void;
16
24
  static ɵfac: i0.ɵɵFactoryDeclaration<OptionGroupComponent, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<OptionGroupComponent, "ndw-option-group", never, { "fluid": { "alias": "fluid"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "focusedValue": { "alias": "focusedValue"; "required": false; "isSignal": true; }; "checkedValues": { "alias": "checkedValues"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "focusedValue": "focusedValueChange"; "checkedValues": "checkedValuesChange"; }, ["children"], never, true, never>;
25
+ static ɵcmp: i0.ɵɵComponentDeclaration<OptionGroupComponent, "ndw-option-group", never, { "fluid": { "alias": "fluid"; "required": false; "isSignal": true; }; "fluidColumns": { "alias": "fluidColumns"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "checkedValues": { "alias": "checkedValues"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "checkedValues": "checkedValuesChange"; }, ["children"], never, true, never>;
18
26
  }
@@ -0,0 +1 @@
1
+ export type OptionGroupMode = 'single' | 'multiple';
@@ -3,6 +3,7 @@ export declare class OptionComponent {
3
3
  value: import("@angular/core").InputSignal<unknown>;
4
4
  label: import("@angular/core").InputSignal<string>;
5
5
  description: import("@angular/core").InputSignal<string | undefined>;
6
+ required: import("@angular/core").InputSignal<boolean>;
6
7
  static ɵfac: i0.ɵɵFactoryDeclaration<OptionComponent, never>;
7
- static ɵcmp: i0.ɵɵComponentDeclaration<OptionComponent, "ndw-option", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<OptionComponent, "ndw-option", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
8
9
  }
@@ -4,6 +4,7 @@ export declare class RadioButtonComponent implements ControlValueAccessor {
4
4
  checked: import("@angular/core").ModelSignal<boolean>;
5
5
  disabled: import("@angular/core").ModelSignal<boolean>;
6
6
  error: import("@angular/core").InputSignal<boolean>;
7
+ success: import("@angular/core").InputSignal<boolean>;
7
8
  name: import("@angular/core").ModelSignal<string>;
8
9
  required: import("@angular/core").InputSignal<boolean>;
9
10
  value: import("@angular/core").ModelSignal<unknown>;
@@ -17,5 +18,5 @@ export declare class RadioButtonComponent implements ControlValueAccessor {
17
18
  registerOnTouched(): void;
18
19
  setDisabledState?(isDisabled: boolean): void;
19
20
  static ɵfac: i0.ɵɵFactoryDeclaration<RadioButtonComponent, never>;
20
- static ɵcmp: i0.ɵɵ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; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "disabled": "disabledChange"; "name": "nameChange"; "value": "valueChange"; }, never, ["*"], true, never>;
21
+ static ɵcmp: i0.ɵɵ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; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "disabled": "disabledChange"; "name": "nameChange"; "value": "valueChange"; }, never, ["*"], true, never>;
21
22
  }
@@ -0,0 +1 @@
1
+ export * from './success.component';
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class SuccessComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<SuccessComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<SuccessComponent, "ndw-success", never, {}, {}, never, ["*"], true, never>;
5
+ }
@@ -0,0 +1 @@
1
+ export * from './action-icon.component';
@@ -1,2 +1,2 @@
1
+ export * from './action-icon';
1
2
  export * from './icon.component';
2
- export * from './action-icon/action-icon.component';
@@ -1,9 +1,10 @@
1
1
  import { ConnectedPosition } from '@angular/cdk/overlay';
2
- import { AfterViewInit, ElementRef, TemplateRef } from '@angular/core';
2
+ import { TemplatePortal } from '@angular/cdk/portal';
3
+ import { AfterViewInit, ElementRef, OnDestroy, TemplateRef } from '@angular/core';
3
4
  import { MainNavigationMenuComponent } from '../main-navigation-menu';
4
5
  import { MenuItem, NdwBrand, SimpleMenuItem } from './main-navigation.model';
5
6
  import * as i0 from "@angular/core";
6
- export declare class MainNavigationComponent implements AfterViewInit {
7
+ export declare class MainNavigationComponent implements AfterViewInit, OnDestroy {
7
8
  applicationName: import("@angular/core").InputSignal<string>;
8
9
  topMenuItems: import("@angular/core").InputSignal<MenuItem[]>;
9
10
  bottomMenuItems: import("@angular/core").InputSignal<MenuItem[] | undefined>;
@@ -11,14 +12,21 @@ export declare class MainNavigationComponent implements AfterViewInit {
11
12
  footerTexts: import("@angular/core").InputSignal<string[] | undefined>;
12
13
  isCollapsible: import("@angular/core").InputSignal<boolean>;
13
14
  version: import("@angular/core").InputSignal<string | undefined>;
14
- selected: import("@angular/core").OutputEmitterRef<number>;
15
+ closeButtonLabel: import("@angular/core").InputSignal<string>;
16
+ menuButtonLabel: import("@angular/core").InputSignal<string>;
15
17
  isExpanded: import("@angular/core").ModelSignal<boolean>;
18
+ isMobileExpanded: import("@angular/core").ModelSignal<boolean>;
16
19
  buttons: import("@angular/core").Signal<readonly ElementRef<HTMLButtonElement>[]>;
17
20
  childMenuTemplate: import("@angular/core").Signal<TemplateRef<MainNavigationMenuComponent>>;
21
+ isMobile: import("@angular/core").WritableSignal<boolean>;
18
22
  brandImagePath: import("@angular/core").Signal<string>;
23
+ protected mobilePortal?: TemplatePortal<MainNavigationMenuComponent>;
24
+ private activeId?;
19
25
  protected get brandAttribute(): string;
20
26
  protected get expandedClass(): boolean;
27
+ protected get mobileClass(): boolean;
21
28
  onMouseMove(event: MouseEvent): void;
29
+ onWindowResize(): void;
22
30
  activeChildItems: SimpleMenuItem[];
23
31
  overlayPositions: ConnectedPosition[];
24
32
  private overlay;
@@ -26,11 +34,15 @@ export declare class MainNavigationComponent implements AfterViewInit {
26
34
  private activeButton?;
27
35
  private overlayRef?;
28
36
  ngAfterViewInit(): void;
29
- close(): void;
37
+ ngOnDestroy(): void;
38
+ close(toggleMobileView?: boolean): void;
39
+ handleClick(item: MenuItem): void;
40
+ handleLogoClick(): void;
30
41
  open(item: MenuItem): void;
31
- handleSelected(id: number): void;
42
+ toggleChildMenu(item: MenuItem, event?: KeyboardEvent): void;
43
+ toggleMobileView(): void;
32
44
  toggleView(): void;
33
45
  private setPositionStrategy;
34
46
  static ɵfac: i0.ɵɵFactoryDeclaration<MainNavigationComponent, never>;
35
- static ɵcmp: i0.ɵɵComponentDeclaration<MainNavigationComponent, "ndw-main-navigation", never, { "applicationName": { "alias": "applicationName"; "required": true; "isSignal": true; }; "topMenuItems": { "alias": "topMenuItems"; "required": true; "isSignal": true; }; "bottomMenuItems": { "alias": "bottomMenuItems"; "required": false; "isSignal": true; }; "brand": { "alias": "brand"; "required": false; "isSignal": true; }; "footerTexts": { "alias": "footerTexts"; "required": false; "isSignal": true; }; "isCollapsible": { "alias": "isCollapsible"; "required": false; "isSignal": true; }; "version": { "alias": "version"; "required": false; "isSignal": true; }; "isExpanded": { "alias": "isExpanded"; "required": false; "isSignal": true; }; }, { "selected": "selected"; "isExpanded": "isExpandedChange"; }, never, never, true, never>;
47
+ static ɵcmp: i0.ɵɵComponentDeclaration<MainNavigationComponent, "ndw-main-navigation", never, { "applicationName": { "alias": "applicationName"; "required": true; "isSignal": true; }; "topMenuItems": { "alias": "topMenuItems"; "required": true; "isSignal": true; }; "bottomMenuItems": { "alias": "bottomMenuItems"; "required": false; "isSignal": true; }; "brand": { "alias": "brand"; "required": false; "isSignal": true; }; "footerTexts": { "alias": "footerTexts"; "required": false; "isSignal": true; }; "isCollapsible": { "alias": "isCollapsible"; "required": false; "isSignal": true; }; "version": { "alias": "version"; "required": false; "isSignal": true; }; "closeButtonLabel": { "alias": "closeButtonLabel"; "required": false; "isSignal": true; }; "menuButtonLabel": { "alias": "menuButtonLabel"; "required": false; "isSignal": true; }; "isExpanded": { "alias": "isExpanded"; "required": false; "isSignal": true; }; "isMobileExpanded": { "alias": "isMobileExpanded"; "required": false; "isSignal": true; }; }, { "isExpanded": "isExpandedChange"; "isMobileExpanded": "isMobileExpandedChange"; }, never, never, true, never>;
36
48
  }
@@ -0,0 +1,9 @@
1
+ import { OverlayModule } from '@angular/cdk/overlay';
2
+ import { CdkPortalOutlet } from '@angular/cdk/portal';
3
+ import { NgClass, NgTemplateOutlet } from '@angular/common';
4
+ import { RouterLink } from '@angular/router';
5
+ import { BadgeComponent } from '../badge';
6
+ import { IconComponent } from '../icon';
7
+ import { MainNavigationMenuComponent } from '../main-navigation-menu';
8
+ import { TooltipDirective } from '../tooltip';
9
+ export declare const MAIN_NAVIGATION_IMPORTS: (typeof NgClass | typeof NgTemplateOutlet | typeof BadgeComponent | typeof IconComponent | typeof RouterLink | typeof TooltipDirective | typeof MainNavigationMenuComponent | typeof CdkPortalOutlet | typeof OverlayModule)[];
@@ -2,6 +2,9 @@ import { SimpleMenuItem } from '../main-navigation';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class MainNavigationMenuComponent {
4
4
  menuItems: import("@angular/core").InputSignal<SimpleMenuItem[]>;
5
+ isMobile: import("@angular/core").InputSignal<boolean>;
6
+ close: import("@angular/core").OutputEmitterRef<void>;
7
+ handleSelected(item: SimpleMenuItem): void;
5
8
  static ɵfac: i0.ɵɵFactoryDeclaration<MainNavigationMenuComponent, never>;
6
- static ɵcmp: i0.ɵɵComponentDeclaration<MainNavigationMenuComponent, "ndw-main-navigation-menu", never, { "menuItems": { "alias": "menuItems"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<MainNavigationMenuComponent, "ndw-main-navigation-menu", never, { "menuItems": { "alias": "menuItems"; "required": true; "isSignal": true; }; "isMobile": { "alias": "isMobile"; "required": false; "isSignal": true; }; }, { "close": "close"; }, never, never, true, never>;
7
10
  }
@@ -8,7 +8,7 @@ export declare class PillComponent {
8
8
  /**
9
9
  * The content of the pill.
10
10
  */
11
- private readonly content;
11
+ private readonly contentRef;
12
12
  get hostClass(): string[];
13
13
  protected get title(): string | undefined;
14
14
  static ɵfac: i0.ɵɵFactoryDeclaration<PillComponent, never>;
@@ -14,7 +14,7 @@ export declare class PopoverTriggerDirective implements OnDestroy {
14
14
  private focusTrapFactory;
15
15
  private overlayRef?;
16
16
  ngOnDestroy(): void;
17
- private togglePopover;
17
+ togglePopover(): void;
18
18
  private open;
19
19
  private trapFocus;
20
20
  private closeOverlayOnEscapeKey;
@@ -8,7 +8,7 @@ export declare class RemovablePillComponent {
8
8
  * Aria label for the remove button
9
9
  */
10
10
  removeAriaLabel: import("@angular/core").InputSignal<string>;
11
- onClick: import("@angular/core").OutputEmitterRef<void>;
11
+ onClick: import("@angular/core").OutputEmitterRef<Event>;
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<RemovablePillComponent, never>;
13
13
  static ɵcmp: i0.ɵɵComponentDeclaration<RemovablePillComponent, "ndw-removable-pill", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "removeAriaLabel": { "alias": "removeAriaLabel"; "required": false; "isSignal": true; }; }, { "onClick": "onClick"; }, never, ["*"], true, never>;
14
14
  }
@@ -12,6 +12,7 @@ export declare class ToastComponent implements OnInit, OnDestroy {
12
12
  private updateGradient;
13
13
  protected startFadeOut(): void;
14
14
  private checkForExistingToast;
15
+ private clearInterval;
15
16
  private truncateText;
16
17
  static ɵfac: i0.ɵɵFactoryDeclaration<ToastComponent, never>;
17
18
  static ɵcmp: i0.ɵɵComponentDeclaration<ToastComponent, "ndw-toast", never, { "message": { "alias": "message"; "required": false; "isSignal": true; }; }, { "message": "messageChange"; "close": "close"; }, never, never, true, never>;
@@ -1,12 +1,13 @@
1
- import { OnDestroy, OnInit } from '@angular/core';
1
+ import { OnChanges, OnDestroy, OnInit } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- export declare class TooltipDirective implements OnDestroy, OnInit {
3
+ export declare class TooltipDirective implements OnChanges, OnDestroy, OnInit {
4
4
  text: import("@angular/core").InputSignal<string>;
5
5
  private readonly elementRef;
6
6
  private readonly overlay;
7
7
  private readonly ariaDescriber;
8
8
  private overlayRef;
9
9
  ngOnInit(): void;
10
+ ngOnChanges(): void;
10
11
  ngOnDestroy(): void;
11
12
  protected show(): void;
12
13
  protected hide(): void;
@@ -223,6 +223,7 @@
223
223
  --ndw-alpha-black-007: hsla(var(--_alpha-black), var(--_alpha-007));
224
224
  --ndw-alpha-black-015: hsla(var(--_alpha-black), var(--_alpha-015));
225
225
  --ndw-alpha-black-040: hsla(var(--_alpha-black), var(--_alpha-040));
226
+ --ndw-alpha-white-040: hsla(var(--_white), var(--_alpha-040));
226
227
  /* Spacing */
227
228
  --ndw-spacing-3xs: 0.125rem;
228
229
  --ndw-spacing-2xs: 0.25rem;
@@ -272,8 +273,8 @@
272
273
  --ndw-font-size-xl: 1.5rem;
273
274
  --ndw-font-weight-regular: 400;
274
275
  --ndw-font-weight-bold: 650;
275
- --ndw-line-height-sm: 1.375em;
276
- --ndw-line-height-md: 1.5em;
276
+ --ndw-line-height-sm: 1.375rem;
277
+ --ndw-line-height-md: 1.5rem;
277
278
  /* Transform */
278
279
  --ndw-rotate-half: rotate(180deg);
279
280
  /* Modal */
@@ -661,6 +662,10 @@ button:not(:disabled) {
661
662
  [ndwButton][tertiary] {
662
663
  border-color: transparent;
663
664
  }
665
+ [ndwButton][extra-small] {
666
+ height: var(--ndw-spacing-lg);
667
+ padding-inline: var(--ndw-spacing-2xs);
668
+ }
664
669
  [ndwButton][large] {
665
670
  height: var(--ndw-spacing-2xl);
666
671
  padding-inline: var(--ndw-spacing-sm);
@@ -723,7 +728,7 @@ button:not(:disabled) {
723
728
  line-height: var(--ndw-line-height-md);
724
729
  outline: var(--ndw-border-size-sm) solid transparent;
725
730
  outline-offset: calc(var(--ndw-border-size-sm) * -1);
726
- padding: var(--ndw-spacing-sm);
731
+ padding-inline: var(--ndw-spacing-sm);
727
732
  position: relative;
728
733
  transition: background-color 150ms ease-in-out, border-color 150ms ease-in-out, outline-color 150ms ease-in-out;
729
734
  }
@@ -741,10 +746,22 @@ button:not(:disabled) {
741
746
  [ndwInput][type=search]::-webkit-search-decoration, [ndwInput][type=search]::-webkit-search-cancel-button, [ndwInput][type=search]::-webkit-search-results-button, [ndwInput][type=search]::-webkit-search-results-decoration {
742
747
  display: none;
743
748
  }
744
- [ndwInput][type=date]::-webkit-calendar-picker-indicator, [ndwInput][type=month]::-webkit-calendar-picker-indicator, [ndwInput][type=time]::-webkit-calendar-picker-indicator, [ndwInput][type=week]::-webkit-calendar-picker-indicator {
749
+ [ndwInput][type=date]::-webkit-calendar-picker-indicator, [ndwInput][type=datetime-local]::-webkit-calendar-picker-indicator, [ndwInput][type=month]::-webkit-calendar-picker-indicator, [ndwInput][type=time]::-webkit-calendar-picker-indicator, [ndwInput][type=week]::-webkit-calendar-picker-indicator {
745
750
  cursor: pointer;
746
751
  opacity: 0;
747
752
  }
753
+ [ndwInput][success] {
754
+ background-color: var(--ndw-color-positive-100);
755
+ border-color: var(--ndw-color-positive-500);
756
+ }
757
+ [ndwInput][success]:hover {
758
+ border-color: var(--ndw-color-grey-300);
759
+ }
760
+ [ndwInput][success]:active, [ndwInput][success]:focus, [ndwInput][success]:focus-visible {
761
+ background-color: var(--ndw-color-white);
762
+ border-color: transparent;
763
+ outline-color: var(--ndw-color-secondary-500);
764
+ }
748
765
  [ndwInput][error] {
749
766
  background-color: var(--ndw-color-critical-100);
750
767
  border-color: var(--ndw-color-critical-500);
@@ -770,7 +787,6 @@ button:not(:disabled) {
770
787
  select[ndwInput] {
771
788
  appearance: none;
772
789
  cursor: pointer;
773
- padding-top: calc(var(--ndw-spacing-xs) + var(--ndw-border-size-sm));
774
790
  width: 100%;
775
791
  text-overflow: ellipsis;
776
792
  white-space: nowrap;
@@ -786,7 +802,7 @@ select[ndwInput] option:not([disabled]) {
786
802
 
787
803
  textarea[ndwInput] {
788
804
  min-height: 4rem;
789
- padding-top: calc(var(--ndw-spacing-xs) + var(--ndw-border-size-sm));
805
+ padding-block: calc(var(--ndw-spacing-xs) + var(--ndw-border-size-sm));
790
806
  resize: vertical;
791
807
  }
792
808
 
@@ -850,7 +866,7 @@ textarea[ndwInput] {
850
866
  opacity: 1;
851
867
  }
852
868
  }
853
- .cdk-overlay-pane.ndw-popover-panel [role=dialog] {
869
+ .cdk-overlay-pane.ndw-popover-panel {
854
870
  animation: show var(--ndw-animation-speed-fast) ease-out;
855
871
  background-color: var(--ndw-color-white);
856
872
  border-radius: var(--ndw-border-radius-md);
@@ -870,7 +886,7 @@ textarea[ndwInput] {
870
886
  position: relative;
871
887
  width: 100%;
872
888
  }
873
- [ndwButton][menu]:hover {
889
+ [ndwButton][menu]:hover, [ndwButton][menu][active] {
874
890
  background-color: var(--ndw-color-grey-600);
875
891
  border-color: var(--ndw-color-grey-600);
876
892
  color: var(--ndw-color-white);
@@ -880,35 +896,3 @@ textarea[ndwInput] {
880
896
  border-color: transparent;
881
897
  color: var(--ndw-color-white);
882
898
  }
883
-
884
- .toast-container {
885
- color: var(--ndw-color-white);
886
- background: var(--ndw-color-grey-700);
887
- padding: 0 var(--ndw-spacing-2xs) 0 var(--ndw-spacing-xs);
888
- border-radius: var(--ndw-spacing-2xs);
889
- gap: var(--ndw-spacing-xs);
890
- display: grid;
891
- grid-template-columns: 1fr auto;
892
- align-items: center;
893
- font-size: var(--ndw-font-size-sm);
894
- height: var(--ndw-spacing-lg);
895
- width: fit-content;
896
- opacity: 1;
897
- }
898
- .toast-container .toast-content {
899
- white-space: nowrap;
900
- overflow: hidden;
901
- text-overflow: ellipsis;
902
- max-width: 100%;
903
- display: inline-block;
904
- }
905
- .toast-container ndw-icon {
906
- font-size: var(--ndw-font-size-lg);
907
- justify-self: end;
908
- cursor: pointer;
909
- }
910
-
911
- .toast-container.fade-out {
912
- transition: opacity 200ms ease-in;
913
- opacity: 0;
914
- }