@ndwnu/design-system 3.0.1 → 4.0.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 (115) hide show
  1. package/components/alert/alert.component.d.ts +2 -5
  2. package/components/alert/alert.model.d.ts +0 -1
  3. package/components/banner/banner.component.d.ts +38 -0
  4. package/components/banner/banner.model.d.ts +4 -0
  5. package/components/banner/index.d.ts +2 -0
  6. package/components/breadcrumb-group/breadcrumb-group.component.d.ts +1 -1
  7. package/components/collapsible/collapsible.component.d.ts +0 -1
  8. package/components/dropdown/dropdown.component.d.ts +4 -4
  9. package/components/form-field/autosuggest/autosuggest-highlight.pipe.d.ts +7 -0
  10. package/components/form-field/autosuggest/autosuggest-item/autosuggest-item.component.d.ts +15 -0
  11. package/components/form-field/autosuggest/autosuggest-trigger.directive.d.ts +35 -0
  12. package/components/form-field/autosuggest/autosuggest.component.d.ts +30 -0
  13. package/components/form-field/autosuggest/autosuggest.model.d.ts +1 -0
  14. package/components/form-field/autosuggest/autosuggest.utils.d.ts +2 -0
  15. package/components/form-field/autosuggest/index.d.ts +5 -0
  16. package/components/form-field/checkbox/checkbox.component.d.ts +0 -3
  17. package/components/form-field/file-upload/file-upload.component.d.ts +4 -11
  18. package/components/form-field/form-field.component.d.ts +1 -0
  19. package/components/form-field/index.d.ts +1 -0
  20. package/components/form-field/radio-button/radio-button.component.d.ts +0 -2
  21. package/components/form-field/radio-group/radio-group.component.d.ts +0 -1
  22. package/components/index.d.ts +5 -1
  23. package/components/layout/index.d.ts +1 -0
  24. package/components/layout/layout.component.d.ts +11 -0
  25. package/components/layout-banners/index.d.ts +1 -0
  26. package/components/layout-banners/layout-banners.component.d.ts +5 -0
  27. package/components/loader/index.d.ts +1 -0
  28. package/components/loader/loader.component.d.ts +5 -0
  29. package/components/main-navigation/main-navigation.component.d.ts +0 -3
  30. package/components/main-navigation/main-navigation.imports.d.ts +1 -1
  31. package/components/modal/modal-trigger.directive.d.ts +3 -2
  32. package/components/modal/modal.component.d.ts +0 -3
  33. package/components/modal/modal.service.d.ts +1 -0
  34. package/components/pill/pill.component.d.ts +1 -3
  35. package/components/tab/tab.component.d.ts +0 -3
  36. package/components/tab-group/tab-group.component.d.ts +1 -2
  37. package/components/tag/index.d.ts +1 -0
  38. package/components/tag/tag.component.d.ts +18 -0
  39. package/core/styles/ndw-styles.scss +13 -1
  40. package/core/styles/nwb-styles.scss +13 -1
  41. package/esm2022/components/accordion/accordion.component.mjs +6 -6
  42. package/esm2022/components/alert/alert.component.mjs +10 -27
  43. package/esm2022/components/alert/alert.model.mjs +1 -1
  44. package/esm2022/components/badge/badge.component.mjs +4 -4
  45. package/esm2022/components/banner/banner.component.mjs +61 -0
  46. package/esm2022/components/banner/banner.model.mjs +6 -0
  47. package/esm2022/components/banner/index.mjs +3 -0
  48. package/esm2022/components/breadcrumb/breadcrumb.component.mjs +4 -4
  49. package/esm2022/components/breadcrumb-group/breadcrumb-group.component.mjs +8 -8
  50. package/esm2022/components/card/card-content/card-content.component.mjs +4 -4
  51. package/esm2022/components/card/card-footer/card-footer.component.mjs +4 -4
  52. package/esm2022/components/card/card-header/card-header.component.mjs +4 -5
  53. package/esm2022/components/card/card.component.mjs +4 -4
  54. package/esm2022/components/collapsible/collapsible.component.mjs +7 -12
  55. package/esm2022/components/dropdown/dropdown.component.mjs +9 -16
  56. package/esm2022/components/form-field/autosuggest/autosuggest-highlight.pipe.mjs +21 -0
  57. package/esm2022/components/form-field/autosuggest/autosuggest-item/autosuggest-item.component.mjs +34 -0
  58. package/esm2022/components/form-field/autosuggest/autosuggest-trigger.directive.mjs +160 -0
  59. package/esm2022/components/form-field/autosuggest/autosuggest.component.mjs +82 -0
  60. package/esm2022/components/form-field/autosuggest/autosuggest.model.mjs +2 -0
  61. package/esm2022/components/form-field/autosuggest/autosuggest.utils.mjs +13 -0
  62. package/esm2022/components/form-field/autosuggest/index.mjs +6 -0
  63. package/esm2022/components/form-field/checkbox/checkbox.component.mjs +11 -25
  64. package/esm2022/components/form-field/checkbox-group/checkbox-group.component.mjs +4 -4
  65. package/esm2022/components/form-field/error/error.component.mjs +4 -4
  66. package/esm2022/components/form-field/file-upload/file-upload.component.mjs +46 -91
  67. package/esm2022/components/form-field/form-field.component.mjs +13 -6
  68. package/esm2022/components/form-field/index.mjs +2 -1
  69. package/esm2022/components/form-field/info/info.component.mjs +4 -4
  70. package/esm2022/components/form-field/month-input/month-input.component.mjs +5 -6
  71. package/esm2022/components/form-field/option-group/option-group.component.mjs +4 -4
  72. package/esm2022/components/form-field/option-group/option.component.mjs +2 -3
  73. package/esm2022/components/form-field/radio-button/radio-button.component.mjs +10 -20
  74. package/esm2022/components/form-field/radio-group/radio-group.component.mjs +9 -11
  75. package/esm2022/components/form-field/success/success.component.mjs +4 -4
  76. package/esm2022/components/icon/action-icon/action-icon.component.mjs +2 -2
  77. package/esm2022/components/icon/icon.component.mjs +4 -4
  78. package/esm2022/components/index.mjs +6 -2
  79. package/esm2022/components/layout/index.mjs +2 -0
  80. package/esm2022/components/layout/layout.component.mjs +20 -0
  81. package/esm2022/components/layout-banners/index.mjs +2 -0
  82. package/esm2022/components/layout-banners/layout-banners.component.mjs +11 -0
  83. package/esm2022/components/loader/index.mjs +2 -0
  84. package/esm2022/components/loader/loader.component.mjs +11 -0
  85. package/esm2022/components/main-navigation/main-navigation.component.mjs +11 -29
  86. package/esm2022/components/main-navigation-menu/main-navigation-menu.component.mjs +4 -4
  87. package/esm2022/components/modal/modal-content/modal-content.component.mjs +4 -4
  88. package/esm2022/components/modal/modal-footer/modal-footer.component.mjs +4 -4
  89. package/esm2022/components/modal/modal-header/modal-header.component.mjs +4 -4
  90. package/esm2022/components/modal/modal-trigger.directive.mjs +12 -7
  91. package/esm2022/components/modal/modal.component.mjs +9 -21
  92. package/esm2022/components/modal/modal.service.mjs +12 -2
  93. package/esm2022/components/multi-select/multi-select.component.mjs +8 -10
  94. package/esm2022/components/pill/pill.component.mjs +10 -18
  95. package/esm2022/components/popover/popover-trigger.directive.mjs +6 -6
  96. package/esm2022/components/router-breadcrumbs/router-breadcrumbs.component.mjs +4 -4
  97. package/esm2022/components/tab/tab.component.mjs +11 -27
  98. package/esm2022/components/tab-group/tab-group.component.mjs +8 -10
  99. package/esm2022/components/tag/index.mjs +2 -0
  100. package/esm2022/components/tag/tag.component.mjs +29 -0
  101. package/esm2022/components/toast/toast.component.mjs +4 -4
  102. package/esm2022/components/toast/toast.service.mjs +1 -1
  103. package/esm2022/components/tooltip/tooltip.component.mjs +5 -5
  104. package/esm2022/components/tooltip/tooltip.directive.mjs +8 -14
  105. package/esm2022/models/aria.model.mjs +2 -0
  106. package/esm2022/models/index.mjs +2 -0
  107. package/fesm2022/ndwnu-design-system.mjs +643 -392
  108. package/fesm2022/ndwnu-design-system.mjs.map +1 -1
  109. package/models/aria.model.d.ts +1 -0
  110. package/models/index.d.ts +1 -0
  111. package/package.json +1 -1
  112. package/components/removable-pill/index.d.ts +0 -1
  113. package/components/removable-pill/removable-pill.component.d.ts +0 -14
  114. package/esm2022/components/removable-pill/index.mjs +0 -2
  115. package/esm2022/components/removable-pill/removable-pill.component.mjs +0 -23
@@ -1,4 +1,5 @@
1
- import { AlertType, AriaLive } from './alert.model';
1
+ import { AriaLive } from '../../models';
2
+ import { AlertType } from './alert.model';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class AlertComponent {
4
5
  /**
@@ -19,10 +20,6 @@ export declare class AlertComponent {
19
20
  */
20
21
  ariaLive: import("@angular/core").InputSignal<AriaLive>;
21
22
  close: import("@angular/core").OutputEmitterRef<void>;
22
- get alertTypeClass(): string;
23
- get actionableClass(): boolean;
24
- readonly role = "alert";
25
- get ariaLiveAttribute(): AriaLive;
26
23
  onClose(): void;
27
24
  static ɵfac: i0.ɵɵFactoryDeclaration<AlertComponent, never>;
28
25
  static ɵcmp: i0.ɵɵComponentDeclaration<AlertComponent, "ndw-alert", never, { "actionable": { "alias": "actionable"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "ariaLive": { "alias": "ariaLive"; "required": false; "isSignal": true; }; }, { "close": "close"; }, never, ["*"], true, never>;
@@ -4,4 +4,3 @@ export declare enum AlertType {
4
4
  InfoGrey = "info-grey",
5
5
  Warning = "warning"
6
6
  }
7
- export type AriaLive = 'polite' | 'assertive' | 'off';
@@ -0,0 +1,38 @@
1
+ import { AfterViewInit, ElementRef } from '@angular/core';
2
+ import { AriaLive } from '../../models';
3
+ import { BannerType } from './banner.model';
4
+ import * as i0 from "@angular/core";
5
+ export declare class BannerComponent implements AfterViewInit {
6
+ /**
7
+ * The title of the banner.
8
+ */
9
+ title: import("@angular/core").InputSignal<string>;
10
+ /**
11
+ * The message of the banner.
12
+ */
13
+ message: import("@angular/core").InputSignal<string>;
14
+ /**
15
+ * The read more label if the message is truncated.
16
+ */
17
+ readMoreLabel: import("@angular/core").InputSignal<string>;
18
+ /**
19
+ * Use info, info-grey, warning or critical to indicate the type of banner.
20
+ */
21
+ type: import("@angular/core").InputSignal<BannerType>;
22
+ /**
23
+ * Use polite, assertive or off to indicate whether the alert is
24
+ * announced automatically by the screen reader.
25
+ */
26
+ ariaLive: import("@angular/core").InputSignal<AriaLive>;
27
+ /**
28
+ * Emits when the banner close button is clicked.
29
+ */
30
+ close: import("@angular/core").OutputEmitterRef<void>;
31
+ textContent: import("@angular/core").Signal<ElementRef<any> | undefined>;
32
+ showReadMore: boolean;
33
+ ngAfterViewInit(): void;
34
+ onClose(event: MouseEvent): void;
35
+ private setReadMore;
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<BannerComponent, never>;
37
+ static ɵcmp: i0.ɵɵComponentDeclaration<BannerComponent, "ndw-banner", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "message": { "alias": "message"; "required": true; "isSignal": true; }; "readMoreLabel": { "alias": "readMoreLabel"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "ariaLive": { "alias": "ariaLive"; "required": false; "isSignal": true; }; }, { "close": "close"; }, never, never, true, never>;
38
+ }
@@ -0,0 +1,4 @@
1
+ export declare enum BannerType {
2
+ Negative = "critical",
3
+ Info = "info"
4
+ }
@@ -0,0 +1,2 @@
1
+ export * from './banner.component';
2
+ export * from './banner.model';
@@ -1,4 +1,4 @@
1
- import { BreadcrumbComponent } from '../breadcrumb/breadcrumb.component';
1
+ import { BreadcrumbComponent } from '../breadcrumb';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class BreadcrumbGroupComponent {
4
4
  protected breadcrumbs: import("@angular/core").Signal<readonly BreadcrumbComponent[]>;
@@ -8,7 +8,6 @@ export declare class CollapsibleComponent {
8
8
  private readonly uuid;
9
9
  readonly toggleUuid: string;
10
10
  readonly sectionUuid: string;
11
- get expandedClass(): boolean;
12
11
  animationState: import("@angular/core").Signal<"open" | "closed">;
13
12
  toggle(): void;
14
13
  static ɵfac: i0.ɵɵFactoryDeclaration<CollapsibleComponent, never>;
@@ -7,16 +7,16 @@ export declare class DropdownComponent {
7
7
  readonly buttonText: import("@angular/core").InputSignal<string>;
8
8
  readonly prefixIcon: import("@angular/core").InputSignal<string>;
9
9
  readonly selectAmount: import("@angular/core").InputSignal<number>;
10
- readonly removablePillClicked: import("@angular/core").OutputEmitterRef<void>;
10
+ readonly tagClicked: import("@angular/core").OutputEmitterRef<void>;
11
11
  readonly isOpenChange: import("@angular/core").OutputEmitterRef<boolean>;
12
12
  readonly popoverTrigger: import("@angular/core").Signal<PopoverTriggerDirective>;
13
13
  readonly dropdownButton: import("@angular/core").Signal<ElementRef<any>>;
14
14
  readonly buttonIcon: import("@angular/core").Signal<"keyboard_arrow_up" | "keyboard_arrow_down">;
15
- onRemovablePillClicked($event: Event): void;
15
+ onTagClicked($event: Event): void;
16
16
  onKeyDown(event: KeyboardEvent): void;
17
17
  closeDropdown(): void;
18
- onKeyDownRemovablePill(event: KeyboardEvent): void;
18
+ onTagKeyDown(event: KeyboardEvent): void;
19
19
  isOpenChanged(isOpen: boolean): void;
20
20
  static ɵfac: i0.ɵɵFactoryDeclaration<DropdownComponent, never>;
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>;
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; }; }, { "tagClicked": "tagClicked"; "isOpenChange": "isOpenChange"; }, never, ["*"], true, never>;
22
22
  }
@@ -0,0 +1,7 @@
1
+ import { type PipeTransform } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class AutosuggestHighlightPipe implements PipeTransform {
4
+ transform(value: string | unknown, searchTerm: string): string | unknown;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<AutosuggestHighlightPipe, never>;
6
+ static ɵpipe: i0.ɵɵPipeDeclaration<AutosuggestHighlightPipe, "ndwAutosuggestHighlight", true>;
7
+ }
@@ -0,0 +1,15 @@
1
+ import { Highlightable } from '@angular/cdk/a11y';
2
+ import { ElementRef } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export declare class AutosuggestItemComponent implements Highlightable {
5
+ readonly item: import("@angular/core").InputSignal<unknown>;
6
+ readonly searchTerm: import("@angular/core").InputSignal<string>;
7
+ readonly labelField: import("@angular/core").InputSignal<string | undefined>;
8
+ isActive: import("@angular/core").WritableSignal<boolean>;
9
+ getLabel: import("@angular/core").Signal<string>;
10
+ elementRef: ElementRef<any>;
11
+ setActiveStyles(): void;
12
+ setInactiveStyles(): void;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<AutosuggestItemComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<AutosuggestItemComponent, "ndw-autosuggest-item", never, { "item": { "alias": "item"; "required": false; "isSignal": true; }; "searchTerm": { "alias": "searchTerm"; "required": false; "isSignal": true; }; "labelField": { "alias": "labelField"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
15
+ }
@@ -0,0 +1,35 @@
1
+ import { OverlayRef } from '@angular/cdk/overlay';
2
+ import { OnInit } from '@angular/core';
3
+ import { AutosuggestComponent } from './autosuggest.component';
4
+ import * as i0 from "@angular/core";
5
+ export declare class AutosuggestTriggerDirective implements OnInit {
6
+ readonly ndwAutosuggest: import("@angular/core").InputSignal<AutosuggestComponent>;
7
+ readonly suggestionSelected: import("@angular/core").OutputEmitterRef<unknown>;
8
+ readonly suggestionsRequested: import("@angular/core").OutputEmitterRef<string>;
9
+ overlayRef: OverlayRef | undefined;
10
+ readonly isOpen: import("@angular/core").WritableSignal<boolean>;
11
+ private readonly selectedSuggestion;
12
+ private readonly ngControl;
13
+ private readonly elementRef;
14
+ private readonly viewContainerRef;
15
+ private readonly overlay;
16
+ private readonly destroyRef;
17
+ private readonly changeDetectorRef;
18
+ private get control();
19
+ private get origin();
20
+ ngOnInit(): void;
21
+ handleKeydown(event: KeyboardEvent): void;
22
+ handleBlur(): void;
23
+ private handleInput;
24
+ private updateSuggestions;
25
+ private updateSearchTerm;
26
+ private findMatchingSuggestion;
27
+ private handleAutosuggestResult;
28
+ private updateResult;
29
+ private openDropdown;
30
+ private close;
31
+ private overlayClickOutside;
32
+ private getOverlayPosition;
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<AutosuggestTriggerDirective, never>;
34
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AutosuggestTriggerDirective, "input[ndwAutosuggest], textarea[ndwAutosuggest]", ["ndwAutosuggest"], { "ndwAutosuggest": { "alias": "ndwAutosuggest"; "required": true; "isSignal": true; }; }, { "suggestionSelected": "suggestionSelected"; "suggestionsRequested": "suggestionsRequested"; }, never, never, true, never>;
35
+ }
@@ -0,0 +1,30 @@
1
+ import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
2
+ import { AfterViewInit, OnDestroy, QueryList, TemplateRef } from '@angular/core';
3
+ import { Subject } from 'rxjs';
4
+ import { AutosuggestItemComponent } from './autosuggest-item/autosuggest-item.component';
5
+ import { Suggestion } from './autosuggest.model';
6
+ import * as i0 from "@angular/core";
7
+ export declare class AutosuggestComponent implements AfterViewInit, OnDestroy {
8
+ readonly noResultText: import("@angular/core").InputSignal<string>;
9
+ readonly maxResults: import("@angular/core").InputSignal<number>;
10
+ readonly forceSelection: import("@angular/core").InputSignal<boolean>;
11
+ readonly labelField: import("@angular/core").InputSignal<string | undefined>;
12
+ readonly suggestions: import("@angular/core").InputSignalWithTransform<unknown[], unknown[]>;
13
+ items: QueryList<AutosuggestItemComponent>;
14
+ template: import("@angular/core").Signal<TemplateRef<any>>;
15
+ private readonly destroyRef;
16
+ private readonly changeDetectorRef;
17
+ searchTerm: import("@angular/core").WritableSignal<string>;
18
+ keyManager: ActiveDescendantKeyManager<AutosuggestItemComponent> | undefined;
19
+ resultSubject: Subject<unknown>;
20
+ ngOnDestroy(): void;
21
+ ngAfterViewInit(): void;
22
+ selectItem(suggestion: Suggestion, index: number): void;
23
+ trackBy(item: Suggestion): string;
24
+ handleKeydown(event: KeyboardEvent): void;
25
+ private initializeKeyManager;
26
+ private updateControlValue;
27
+ private scrollActiveOptionIntoView;
28
+ static ɵfac: i0.ɵɵFactoryDeclaration<AutosuggestComponent, never>;
29
+ static ɵcmp: i0.ɵɵComponentDeclaration<AutosuggestComponent, "ndw-autosuggest", never, { "noResultText": { "alias": "noResultText"; "required": false; "isSignal": true; }; "maxResults": { "alias": "maxResults"; "required": false; "isSignal": true; }; "forceSelection": { "alias": "forceSelection"; "required": false; "isSignal": true; }; "labelField": { "alias": "labelField"; "required": false; "isSignal": true; }; "suggestions": { "alias": "suggestions"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
30
+ }
@@ -0,0 +1 @@
1
+ export type Suggestion = string | unknown;
@@ -0,0 +1,2 @@
1
+ import { Suggestion } from './autosuggest.model';
2
+ export declare const getSuggestionLabel: (suggestion: Suggestion, field?: string) => string;
@@ -0,0 +1,5 @@
1
+ export * from './autosuggest-highlight.pipe';
2
+ export * from './autosuggest-item/autosuggest-item.component';
3
+ export * from './autosuggest-trigger.directive';
4
+ export * from './autosuggest.component';
5
+ export * from './autosuggest.model';
@@ -9,9 +9,6 @@ export declare class CheckboxComponent implements ControlValueAccessor {
9
9
  indeterminate: import("@angular/core").InputSignal<boolean>;
10
10
  required: import("@angular/core").InputSignal<boolean>;
11
11
  uuid: `${string}-${string}-${string}-${string}-${string}`;
12
- get checkedClass(): boolean;
13
- get disabledClass(): boolean;
14
- get indeterminateClass(): boolean;
15
12
  onClick(): void;
16
13
  onKeyDown(event: KeyboardEvent): void;
17
14
  writeValue(value: boolean): void;
@@ -1,6 +1,6 @@
1
1
  import { ElementRef } from '@angular/core';
2
- import { FileUploadText } from './file-upload-text.interface';
3
2
  import { ControlValueAccessor } from '@angular/forms';
3
+ import { FileUploadText } from './file-upload-text.interface';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class FileUploadComponent implements ControlValueAccessor {
6
6
  readonly fileInputElement: import("@angular/core").Signal<ElementRef<HTMLInputElement>>;
@@ -17,13 +17,6 @@ export declare class FileUploadComponent implements ControlValueAccessor {
17
17
  readonly incorrectFileType: import("@angular/core").ModelSignal<boolean>;
18
18
  readonly incorrectFileSize: import("@angular/core").ModelSignal<boolean>;
19
19
  private readonly canEdit;
20
- get tabindexAttr(): number;
21
- get hasError(): boolean;
22
- get hasSuccess(): boolean;
23
- get isDisabled(): boolean;
24
- get isReadonly(): boolean;
25
- get isDragging(): boolean;
26
- get hasSelectedFile(): boolean;
27
20
  onKeyDown(event: KeyboardEvent): void;
28
21
  onClick(): void;
29
22
  onDragLeave(event: DragEvent): void;
@@ -34,13 +27,13 @@ export declare class FileUploadComponent implements ControlValueAccessor {
34
27
  onDeleteClick(event: Event): void;
35
28
  displayText(): string;
36
29
  onFileSelected(event: Event): void;
30
+ writeValue(value: File): void;
31
+ registerOnChange(fn: (value: File | null | undefined) => void): void;
32
+ registerOnTouched(): void;
37
33
  private selectFile;
38
34
  private resetFile;
39
35
  private correctFileSize;
40
36
  private correctFileType;
41
- writeValue(value: File): void;
42
- registerOnChange(fn: (value: File | null | undefined) => void): void;
43
- registerOnTouched(): void;
44
37
  static ɵfac: i0.ɵɵFactoryDeclaration<FileUploadComponent, never>;
45
38
  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>;
46
39
  }
@@ -2,6 +2,7 @@ import { InputDirective } from './input';
2
2
  import { MonthInputComponent } from './month-input';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class FormFieldComponent {
5
+ private readonly cdr;
5
6
  readonly monthInput: import("@angular/core").Signal<MonthInputComponent | undefined>;
6
7
  readonly regularInput: import("@angular/core").Signal<InputDirective | undefined>;
7
8
  input: import("@angular/core").Signal<InputDirective | undefined>;
@@ -1,3 +1,4 @@
1
+ export * from './autosuggest';
1
2
  export * from './checkbox';
2
3
  export * from './checkbox-group';
3
4
  export * from './error';
@@ -9,8 +9,6 @@ export declare class RadioButtonComponent implements ControlValueAccessor {
9
9
  required: import("@angular/core").InputSignal<boolean>;
10
10
  value: import("@angular/core").ModelSignal<unknown>;
11
11
  uuid: `${string}-${string}-${string}-${string}-${string}`;
12
- get checkedClass(): boolean;
13
- get disabledClass(): boolean;
14
12
  onClick(): void;
15
13
  onKeyDown(event: KeyboardEvent): void;
16
14
  writeValue(value: boolean): void;
@@ -6,7 +6,6 @@ export declare class RadioGroupComponent implements AfterContentInit, ControlVal
6
6
  radioButtons: import("@angular/core").Signal<readonly RadioButtonComponent[]>;
7
7
  private uuid;
8
8
  private onChange;
9
- readonly roleAttr = "radiogroup";
10
9
  ngAfterContentInit(): void;
11
10
  writeValue(value: unknown): void;
12
11
  registerOnChange(fn: (value: unknown) => void): void;
@@ -1,6 +1,7 @@
1
1
  export * from './accordion';
2
2
  export * from './alert';
3
3
  export * from './badge';
4
+ export * from './banner';
4
5
  export * from './breadcrumb';
5
6
  export * from './breadcrumb-group';
6
7
  export * from './button';
@@ -9,6 +10,9 @@ export * from './collapsible';
9
10
  export * from './dropdown';
10
11
  export * from './form-field';
11
12
  export * from './icon';
13
+ export * from './layout';
14
+ export * from './layout-banners';
15
+ export * from './loader';
12
16
  export * from './main-navigation';
13
17
  export * from './modal';
14
18
  export * from './multi-select';
@@ -19,4 +23,4 @@ export * from './tab';
19
23
  export * from './tab-group';
20
24
  export * from './tooltip';
21
25
  export * from './toast';
22
- export * from './removable-pill';
26
+ export * from './tag';
@@ -0,0 +1 @@
1
+ export * from './layout.component';
@@ -0,0 +1,11 @@
1
+ import { MenuItem } from '../main-navigation';
2
+ import * as i0 from "@angular/core";
3
+ export declare class LayoutComponent {
4
+ applicationName: import("@angular/core").InputSignal<string>;
5
+ topMenuItems: import("@angular/core").InputSignal<MenuItem[]>;
6
+ bottomMenuItems: import("@angular/core").InputSignal<MenuItem[] | undefined>;
7
+ menuFooterTexts: import("@angular/core").InputSignal<string[] | undefined>;
8
+ version: import("@angular/core").InputSignal<string | undefined>;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<LayoutComponent, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<LayoutComponent, "ndw-layout", never, { "applicationName": { "alias": "applicationName"; "required": true; "isSignal": true; }; "topMenuItems": { "alias": "topMenuItems"; "required": true; "isSignal": true; }; "bottomMenuItems": { "alias": "bottomMenuItems"; "required": false; "isSignal": true; }; "menuFooterTexts": { "alias": "menuFooterTexts"; "required": false; "isSignal": true; }; "version": { "alias": "version"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
11
+ }
@@ -0,0 +1 @@
1
+ export * from './layout-banners.component';
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class LayoutBannersComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<LayoutBannersComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<LayoutBannersComponent, "ndw-layout-banners", never, {}, {}, never, ["*"], true, never>;
5
+ }
@@ -0,0 +1 @@
1
+ export * from './loader.component';
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class LoaderComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoaderComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<LoaderComponent, "ndw-loader", never, {}, {}, never, never, true, never>;
5
+ }
@@ -22,9 +22,6 @@ export declare class MainNavigationComponent implements AfterViewInit, OnDestroy
22
22
  brandImagePath: import("@angular/core").Signal<string>;
23
23
  protected mobilePortal?: TemplatePortal<MainNavigationMenuComponent>;
24
24
  private activeId?;
25
- protected get brandAttribute(): string;
26
- protected get expandedClass(): boolean;
27
- protected get mobileClass(): boolean;
28
25
  onMouseMove(event: MouseEvent): void;
29
26
  onWindowResize(): void;
30
27
  activeChildItems: SimpleMenuItem[];
@@ -6,4 +6,4 @@ import { BadgeComponent } from '../badge';
6
6
  import { IconComponent } from '../icon';
7
7
  import { MainNavigationMenuComponent } from '../main-navigation-menu';
8
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)[];
9
+ export declare const MAIN_NAVIGATION_IMPORTS: (typeof BadgeComponent | typeof IconComponent | typeof NgTemplateOutlet | typeof RouterLink | typeof NgClass | typeof TooltipDirective | typeof MainNavigationMenuComponent | typeof CdkPortalOutlet | typeof OverlayModule)[];
@@ -1,15 +1,16 @@
1
1
  import { OnChanges, OnDestroy, OnInit, TemplateRef } from '@angular/core';
2
- import { CardComponent } from '../card';
2
+ import { ModalComponent } from './modal.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class ModalTriggerDirective implements OnChanges, OnDestroy, OnInit {
5
5
  private modalService;
6
6
  private viewContainerRef;
7
- ndwModalTrigger: import("@angular/core").InputSignal<TemplateRef<CardComponent>>;
7
+ ndwModalTrigger: import("@angular/core").InputSignal<TemplateRef<ModalComponent>>;
8
8
  isOpen: import("@angular/core").ModelSignal<boolean>;
9
9
  onClick(): void;
10
10
  ngOnChanges(): void;
11
11
  ngOnInit(): void;
12
12
  ngOnDestroy(): void;
13
+ closeModal(): void;
13
14
  private open;
14
15
  static ɵfac: i0.ɵɵFactoryDeclaration<ModalTriggerDirective, never>;
15
16
  static ɵdir: i0.ɵɵDirectiveDeclaration<ModalTriggerDirective, "[ndwModalTrigger]", never, { "ndwModalTrigger": { "alias": "ndwModalTrigger"; "required": true; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; }, { "isOpen": "isOpenChange"; }, never, never, true, never>;
@@ -3,9 +3,6 @@ import * as i0 from "@angular/core";
3
3
  export type ModalSize = 'sm' | 'md';
4
4
  export declare class ModalComponent extends CardComponent {
5
5
  size: import("@angular/core").InputSignal<ModalSize>;
6
- get isSmall(): boolean;
7
- get isMedium(): boolean;
8
- readonly roleAttr = "dialog";
9
6
  static ɵfac: i0.ɵɵFactoryDeclaration<ModalComponent, never>;
10
7
  static ɵcmp: i0.ɵɵComponentDeclaration<ModalComponent, "ndw-modal", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
11
8
  }
@@ -7,6 +7,7 @@ export declare class ModalService {
7
7
  isOpen$: Subject<boolean>;
8
8
  private isOpen;
9
9
  private overlayRef?;
10
+ private context?;
10
11
  detach(): void;
11
12
  dispose(): void;
12
13
  open(templateRef: TemplateRef<unknown>, viewContainerRef: ViewContainerRef): void;
@@ -8,9 +8,7 @@ export declare class PillComponent {
8
8
  /**
9
9
  * The content of the pill.
10
10
  */
11
- private readonly contentRef;
12
- get hostClass(): string[];
13
- protected get title(): string | undefined;
11
+ private readonly content;
14
12
  static ɵfac: i0.ɵɵFactoryDeclaration<PillComponent, never>;
15
13
  static ɵcmp: i0.ɵɵComponentDeclaration<PillComponent, "ndw-pill", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
16
14
  }
@@ -2,9 +2,6 @@ import * as i0 from "@angular/core";
2
2
  export declare class TabComponent {
3
3
  index: import("@angular/core").InputSignal<number>;
4
4
  active: import("@angular/core").ModelSignal<boolean>;
5
- protected get activeAttribute(): boolean | null;
6
- protected readonly role = "tab";
7
- protected get tabIndex(): number;
8
5
  onClick(): void;
9
6
  onTabKeyDown(event: KeyboardEvent): void;
10
7
  static ɵfac: i0.ɵɵFactoryDeclaration<TabComponent, never>;
@@ -1,10 +1,9 @@
1
1
  import { AfterContentInit } from '@angular/core';
2
- import { TabComponent } from '../tab/tab.component';
2
+ import { TabComponent } from '../tab';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class TabGroupComponent implements AfterContentInit {
5
5
  tabs: import("@angular/core").Signal<readonly TabComponent[]>;
6
6
  activeTab: import("@angular/core").ModelSignal<number>;
7
- protected readonly role = "tablist";
8
7
  ngAfterContentInit(): void;
9
8
  static ɵfac: i0.ɵɵFactoryDeclaration<TabGroupComponent, never>;
10
9
  static ɵcmp: i0.ɵɵComponentDeclaration<TabGroupComponent, "ndw-tab-group", never, { "activeTab": { "alias": "activeTab"; "required": false; "isSignal": true; }; }, { "activeTab": "activeTabChange"; }, ["tabs"], ["*"], true, never>;
@@ -0,0 +1 @@
1
+ export * from './tag.component';
@@ -0,0 +1,18 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class TagComponent {
3
+ /**
4
+ * Disables the tag
5
+ */
6
+ disabled: import("@angular/core").InputSignal<boolean>;
7
+ /**
8
+ * Aria label for the interactive button
9
+ */
10
+ suffixAriaLabel: import("@angular/core").InputSignal<string>;
11
+ /**
12
+ * The name of the icon to display
13
+ */
14
+ suffixIcon: import("@angular/core").InputSignal<string>;
15
+ onClick: import("@angular/core").OutputEmitterRef<Event>;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<TagComponent, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<TagComponent, "ndw-tag", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "suffixAriaLabel": { "alias": "suffixAriaLabel"; "required": false; "isSignal": true; }; "suffixIcon": { "alias": "suffixIcon"; "required": false; "isSignal": true; }; }, { "onClick": "onClick"; }, never, ["*"], true, never>;
18
+ }
@@ -179,6 +179,8 @@
179
179
  --_alternative-500: 292, 95%, 33%;
180
180
  --_critical: 0, 100%;
181
181
  --_critical-100: var(--_critical), 98%;
182
+ --_critical-200: var(--_critical), 95%;
183
+ --_critical-300: var(--_critical), 90%;
182
184
  --_critical-500: var(--_critical), 46%;
183
185
  --ndw-color-positive-100: hsl(var(--_positive-100));
184
186
  --ndw-color-positive-500: hsl(var(--_positive-500));
@@ -189,6 +191,8 @@
189
191
  --ndw-color-alternative-100: hsl(var(--_alternative-100));
190
192
  --ndw-color-alternative-500: hsl(var(--_alternative-500));
191
193
  --ndw-color-critical-100: hsl(var(--_critical-100));
194
+ --ndw-color-critical-200: hsl(var(--_critical-200));
195
+ --ndw-color-critical-300: hsl(var(--_critical-300));
192
196
  --ndw-color-critical-500: hsl(var(--_critical-500));
193
197
  --ndw-color-notification: hsl(19, 100%, 35%);
194
198
  --_data-a-500: 133, 100%, 21%;
@@ -586,6 +590,10 @@
586
590
  background-color: var(--ndw-backdrop-color);
587
591
  }
588
592
 
593
+ .cdk-overlay-pane:has(> ndw-modal) {
594
+ max-height: 90vh;
595
+ }
596
+
589
597
  button:not(:disabled) {
590
598
  cursor: pointer;
591
599
  }
@@ -614,6 +622,10 @@ button:not(:disabled) {
614
622
  [ndwButton] ndw-icon {
615
623
  font-size: var(--ndw-spacing-md);
616
624
  }
625
+ [ndwButton] ndw-loader {
626
+ width: var(--ndw-spacing-sm);
627
+ height: var(--ndw-spacing-sm);
628
+ }
617
629
  [ndwButton]:hover {
618
630
  background-color: var(--ndw-background-primary-hover);
619
631
  border-color: var(--ndw-background-primary-hover);
@@ -815,9 +827,9 @@ textarea[ndwInput] {
815
827
  font-weight: var(--ndw-font-weight-bold);
816
828
  gap: var(--ndw-spacing-3xs);
817
829
  grid-template-columns: repeat(3, auto);
818
- height: 1.5rem;
819
830
  justify-content: start;
820
831
  line-height: 100%;
832
+ margin-bottom: var(--ndw-spacing-2xs);
821
833
  }
822
834
  [ndwLabel] ndw-icon {
823
835
  color: var(--ndw-color-grey-400);
@@ -147,6 +147,8 @@
147
147
  --_alternative-500: 292, 95%, 33%;
148
148
  --_critical: 0, 100%;
149
149
  --_critical-100: var(--_critical), 98%;
150
+ --_critical-200: var(--_critical), 95%;
151
+ --_critical-300: var(--_critical), 90%;
150
152
  --_critical-500: var(--_critical), 46%;
151
153
  --ndw-color-positive-100: hsl(var(--_positive-100));
152
154
  --ndw-color-positive-500: hsl(var(--_positive-500));
@@ -157,6 +159,8 @@
157
159
  --ndw-color-alternative-100: hsl(var(--_alternative-100));
158
160
  --ndw-color-alternative-500: hsl(var(--_alternative-500));
159
161
  --ndw-color-critical-100: hsl(var(--_critical-100));
162
+ --ndw-color-critical-200: hsl(var(--_critical-200));
163
+ --ndw-color-critical-300: hsl(var(--_critical-300));
160
164
  --ndw-color-critical-500: hsl(var(--_critical-500));
161
165
  --ndw-color-notification: hsl(19, 100%, 35%);
162
166
  --_data-a-500: 133, 100%, 21%;
@@ -554,6 +558,10 @@
554
558
  background-color: var(--ndw-backdrop-color);
555
559
  }
556
560
 
561
+ .cdk-overlay-pane:has(> ndw-modal) {
562
+ max-height: 90vh;
563
+ }
564
+
557
565
  button:not(:disabled) {
558
566
  cursor: pointer;
559
567
  }
@@ -582,6 +590,10 @@ button:not(:disabled) {
582
590
  [ndwButton] ndw-icon {
583
591
  font-size: var(--ndw-spacing-md);
584
592
  }
593
+ [ndwButton] ndw-loader {
594
+ width: var(--ndw-spacing-sm);
595
+ height: var(--ndw-spacing-sm);
596
+ }
585
597
  [ndwButton]:hover {
586
598
  background-color: var(--ndw-background-primary-hover);
587
599
  border-color: var(--ndw-background-primary-hover);
@@ -783,9 +795,9 @@ textarea[ndwInput] {
783
795
  font-weight: var(--ndw-font-weight-bold);
784
796
  gap: var(--ndw-spacing-3xs);
785
797
  grid-template-columns: repeat(3, auto);
786
- height: 1.5rem;
787
798
  justify-content: start;
788
799
  line-height: 100%;
800
+ margin-bottom: var(--ndw-spacing-2xs);
789
801
  }
790
802
  [ndwLabel] ndw-icon {
791
803
  color: var(--ndw-color-grey-400);