@ndwnu/design-system 1.1.0 → 2.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 (100) hide show
  1. package/components/accordion/accordion.component.d.ts +1 -0
  2. package/components/alert/alert.component.d.ts +18 -2
  3. package/components/alert/alert.model.d.ts +1 -0
  4. package/components/badge/badge.component.d.ts +8 -1
  5. package/components/card/card-footer/card-footer.component.d.ts +0 -1
  6. package/components/card/card-header/card-header.component.d.ts +0 -3
  7. package/components/card/card.component.d.ts +2 -8
  8. package/components/card/index.d.ts +3 -1
  9. package/components/collapsible/collapsible.component.d.ts +4 -3
  10. package/components/dropdown/dropdown.component.d.ts +5 -5
  11. package/components/form-field/checkbox/checkbox.component.d.ts +0 -1
  12. package/components/form-field/file-upload/file-upload-text.interface.d.ts +4 -0
  13. package/components/form-field/file-upload/file-upload.component.d.ts +44 -0
  14. package/components/form-field/file-upload/index.d.ts +2 -0
  15. package/components/form-field/form-field.component.d.ts +8 -2
  16. package/components/form-field/index.d.ts +3 -0
  17. package/components/form-field/input/input.directive.d.ts +1 -0
  18. package/components/form-field/option-group/index.d.ts +2 -0
  19. package/components/form-field/option-group/option-group.component.d.ts +18 -0
  20. package/components/form-field/option-group/option.component.d.ts +8 -0
  21. package/components/form-field/radio-button/radio-button.component.d.ts +0 -4
  22. package/components/form-field/radio-group/radio-group.component.d.ts +1 -1
  23. package/components/form-field/textarea/auto-grow.directive.d.ts +19 -0
  24. package/components/form-field/textarea/index.d.ts +1 -0
  25. package/components/icon/action-icon/action-icon.component.d.ts +33 -0
  26. package/components/icon/icon.component.d.ts +4 -6
  27. package/components/icon/index.d.ts +1 -0
  28. package/components/index.d.ts +1 -0
  29. package/components/main-navigation/main-navigation.component.d.ts +2 -1
  30. package/components/modal/index.d.ts +7 -1
  31. package/components/modal/modal-content/index.d.ts +1 -0
  32. package/components/modal/modal-content/modal-content.component.d.ts +5 -0
  33. package/components/modal/modal-footer/index.d.ts +1 -0
  34. package/components/modal/modal-footer/modal-footer.component.d.ts +5 -0
  35. package/components/modal/modal-header/index.d.ts +1 -0
  36. package/components/modal/modal-header/modal-header.component.d.ts +7 -0
  37. package/components/modal/modal.component.d.ts +11 -0
  38. package/components/modal/modal.service.d.ts +0 -1
  39. package/components/multi-select/multi-select.component.d.ts +6 -5
  40. package/components/pill/pill.component.d.ts +8 -0
  41. package/components/removable-pill/removable-pill.component.d.ts +9 -2
  42. package/components/toast/index.d.ts +2 -0
  43. package/components/toast/toast.component.d.ts +18 -0
  44. package/components/toast/toast.service.d.ts +12 -0
  45. package/components/tooltip/tooltip.directive.d.ts +4 -0
  46. package/core/styles/ndw-styles.scss +99 -31
  47. package/core/styles/nwb-styles.scss +99 -31
  48. package/esm2022/components/accordion/accordion.component.mjs +9 -5
  49. package/esm2022/components/accordion/accordion.service.mjs +3 -6
  50. package/esm2022/components/alert/alert.component.mjs +28 -4
  51. package/esm2022/components/alert/alert.model.mjs +1 -1
  52. package/esm2022/components/badge/badge.component.mjs +10 -3
  53. package/esm2022/components/breadcrumb-group/breadcrumb-group.component.mjs +3 -3
  54. package/esm2022/components/card/card-footer/card-footer.component.mjs +1 -4
  55. package/esm2022/components/card/card-header/card-header.component.mjs +4 -12
  56. package/esm2022/components/card/card.component.mjs +5 -22
  57. package/esm2022/components/card/index.mjs +12 -2
  58. package/esm2022/components/collapsible/collapsible.component.mjs +6 -13
  59. package/esm2022/components/dropdown/dropdown.component.mjs +8 -9
  60. package/esm2022/components/form-field/checkbox/checkbox.component.mjs +8 -17
  61. package/esm2022/components/form-field/error/error.component.mjs +3 -3
  62. package/esm2022/components/form-field/file-upload/file-upload-text.interface.mjs +2 -0
  63. package/esm2022/components/form-field/file-upload/file-upload.component.mjs +210 -0
  64. package/esm2022/components/form-field/file-upload/index.mjs +3 -0
  65. package/esm2022/components/form-field/form-field.component.mjs +30 -5
  66. package/esm2022/components/form-field/index.mjs +4 -1
  67. package/esm2022/components/form-field/info/info.component.mjs +2 -2
  68. package/esm2022/components/form-field/input/input.directive.mjs +5 -3
  69. package/esm2022/components/form-field/option-group/index.mjs +3 -0
  70. package/esm2022/components/form-field/option-group/option-group.component.mjs +53 -0
  71. package/esm2022/components/form-field/option-group/option.component.mjs +22 -0
  72. package/esm2022/components/form-field/radio-button/radio-button.component.mjs +8 -35
  73. package/esm2022/components/form-field/radio-group/radio-group.component.mjs +4 -6
  74. package/esm2022/components/form-field/textarea/auto-grow.directive.mjs +45 -0
  75. package/esm2022/components/form-field/textarea/index.mjs +2 -0
  76. package/esm2022/components/icon/action-icon/action-icon.component.mjs +39 -0
  77. package/esm2022/components/icon/icon.component.mjs +10 -24
  78. package/esm2022/components/icon/index.mjs +2 -1
  79. package/esm2022/components/index.mjs +2 -1
  80. package/esm2022/components/main-navigation/main-navigation.component.mjs +4 -3
  81. package/esm2022/components/modal/index.mjs +18 -2
  82. package/esm2022/components/modal/modal-content/index.mjs +2 -0
  83. package/esm2022/components/modal/modal-content/modal-content.component.mjs +11 -0
  84. package/esm2022/components/modal/modal-footer/index.mjs +2 -0
  85. package/esm2022/components/modal/modal-footer/modal-footer.component.mjs +11 -0
  86. package/esm2022/components/modal/modal-header/index.mjs +2 -0
  87. package/esm2022/components/modal/modal-header/modal-header.component.mjs +19 -0
  88. package/esm2022/components/modal/modal.component.mjs +32 -0
  89. package/esm2022/components/modal/modal.service.mjs +5 -10
  90. package/esm2022/components/multi-select/multi-select.component.mjs +10 -8
  91. package/esm2022/components/pill/pill.component.mjs +17 -4
  92. package/esm2022/components/removable-pill/removable-pill.component.mjs +13 -11
  93. package/esm2022/components/toast/index.mjs +3 -0
  94. package/esm2022/components/toast/toast.component.mjs +74 -0
  95. package/esm2022/components/toast/toast.service.mjs +43 -0
  96. package/esm2022/components/tooltip/tooltip.component.mjs +5 -3
  97. package/esm2022/components/tooltip/tooltip.directive.mjs +43 -18
  98. package/fesm2022/ndwnu-design-system.mjs +884 -334
  99. package/fesm2022/ndwnu-design-system.mjs.map +1 -1
  100. package/package.json +1 -1
@@ -5,6 +5,7 @@ export declare class AccordionComponent implements OnInit {
5
5
  collapseOthers: import("@angular/core").InputSignal<boolean>;
6
6
  collapsibles: import("@angular/core").Signal<readonly CollapsibleComponent[]>;
7
7
  private readonly accordionService;
8
+ private readonly destroyRef;
8
9
  ngOnInit(): void;
9
10
  static ɵfac: i0.ɵɵFactoryDeclaration<AccordionComponent, never>;
10
11
  static ɵcmp: i0.ɵɵComponentDeclaration<AccordionComponent, "ndw-accordion", never, { "collapseOthers": { "alias": "collapseOthers"; "required": false; "isSignal": true; }; }, {}, ["collapsibles"], ["*"], true, never>;
@@ -1,13 +1,29 @@
1
- import { AlertType } from './alert.model';
1
+ import { AlertType, AriaLive } from './alert.model';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class AlertComponent {
4
+ /**
5
+ * Whether the alert is actionable, shows a close icon and a title.
6
+ */
4
7
  actionable: import("@angular/core").InputSignal<boolean>;
8
+ /**
9
+ * The title of the alert. Only used when actionable is true.
10
+ */
5
11
  title: import("@angular/core").InputSignal<string | undefined>;
12
+ /**
13
+ * Use info, info-grey, warning or critical to indicate the type of alert.
14
+ */
6
15
  type: import("@angular/core").InputSignal<AlertType>;
16
+ /**
17
+ * Use polite, assertive or off to indicate whether the alert is
18
+ * announced automatically by the screen reader.
19
+ */
20
+ ariaLive: import("@angular/core").InputSignal<AriaLive>;
7
21
  close: import("@angular/core").OutputEmitterRef<void>;
8
22
  get alertTypeClass(): string;
9
23
  get actionableClass(): boolean;
24
+ readonly role = "alert";
25
+ get ariaLiveAttribute(): AriaLive;
10
26
  onClose(): void;
11
27
  static ɵfac: i0.ɵɵFactoryDeclaration<AlertComponent, never>;
12
- 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; }; }, { "close": "close"; }, never, ["*"], true, never>;
28
+ 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>;
13
29
  }
@@ -4,3 +4,4 @@ export declare enum AlertType {
4
4
  InfoGrey = "info-grey",
5
5
  Warning = "warning"
6
6
  }
7
+ export type AriaLive = 'polite' | 'assertive' | 'off';
@@ -1,6 +1,13 @@
1
1
  import * as i0 from "@angular/core";
2
2
  export declare class BadgeComponent {
3
+ /**
4
+ * The value of the badge
5
+ */
3
6
  value: import("@angular/core").InputSignal<number | undefined>;
7
+ /**
8
+ * The aria label, used by screen readers to give context.
9
+ */
10
+ ariaLabel: import("@angular/core").InputSignal<string | undefined>;
4
11
  static ɵfac: i0.ɵɵFactoryDeclaration<BadgeComponent, never>;
5
- static ɵcmp: i0.ɵɵComponentDeclaration<BadgeComponent, "ndw-badge", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<BadgeComponent, "ndw-badge", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
6
13
  }
@@ -1,6 +1,5 @@
1
1
  import * as i0 from "@angular/core";
2
2
  export declare class CardFooterComponent {
3
- isModal: boolean;
4
3
  static ɵfac: i0.ɵɵFactoryDeclaration<CardFooterComponent, never>;
5
4
  static ɵcmp: i0.ɵɵComponentDeclaration<CardFooterComponent, "ndw-card-footer", never, {}, {}, never, ["*"], true, never>;
6
5
  }
@@ -1,8 +1,5 @@
1
1
  import * as i0 from "@angular/core";
2
2
  export declare class CardHeaderComponent {
3
- private readonly modalService;
4
- isModal: boolean;
5
- detachModal(): void;
6
3
  static ɵfac: i0.ɵɵFactoryDeclaration<CardHeaderComponent, never>;
7
4
  static ɵcmp: i0.ɵɵComponentDeclaration<CardHeaderComponent, "ndw-card-header", never, {}, {}, never, ["*"], true, never>;
8
5
  }
@@ -1,11 +1,5 @@
1
- import { OnInit } from '@angular/core';
2
- import { CardHeaderComponent } from './card-header';
3
1
  import * as i0 from "@angular/core";
4
- export declare class CardComponent implements OnInit {
5
- isModal: import("@angular/core").InputSignal<boolean>;
6
- header: import("@angular/core").Signal<CardHeaderComponent | undefined>;
7
- get modalClass(): boolean;
8
- ngOnInit(): void;
2
+ export declare class CardComponent {
9
3
  static ɵfac: i0.ɵɵFactoryDeclaration<CardComponent, never>;
10
- static ɵcmp: i0.ɵɵComponentDeclaration<CardComponent, "ndw-card", never, { "isModal": { "alias": "isModal"; "required": false; "isSignal": true; }; }, {}, ["header"], ["*"], true, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<CardComponent, "ndw-card", never, {}, {}, never, ["*"], true, never>;
11
5
  }
@@ -1,4 +1,6 @@
1
- export * from './card.component';
1
+ import { CardComponent } from './card.component';
2
2
  export * from './card-content';
3
3
  export * from './card-footer';
4
4
  export * from './card-header';
5
+ export * from './card.component';
6
+ export declare const CARD_COMPONENTS: (typeof CardComponent)[];
@@ -5,11 +5,12 @@ export declare class CollapsibleComponent {
5
5
  value: import("@angular/core").InputSignal<number | undefined>;
6
6
  expanded: import("@angular/core").ModelSignal<boolean>;
7
7
  private readonly accordionService;
8
+ private readonly uuid;
9
+ readonly toggleUuid: string;
10
+ readonly sectionUuid: string;
8
11
  get expandedClass(): boolean;
9
12
  animationState: import("@angular/core").Signal<"open" | "closed">;
10
- onClick(): void;
11
- onKeydown(event: KeyboardEvent): void;
12
- private toggle;
13
+ toggle(): void;
13
14
  static ɵfac: i0.ɵɵFactoryDeclaration<CollapsibleComponent, never>;
14
15
  static ɵcmp: i0.ɵɵComponentDeclaration<CollapsibleComponent, "ndw-collapsible", never, { "index": { "alias": "index"; "required": true; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; }, never, ["*"], true, never>;
15
16
  }
@@ -1,16 +1,16 @@
1
1
  import { PopoverTriggerDirective } from '../popover';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class DropdownComponent {
4
- readonly removablePillClicked: import("@angular/core").OutputEmitterRef<void>;
5
4
  readonly disabled: import("@angular/core").InputSignal<boolean>;
6
- readonly isOpenChange: import("@angular/core").OutputEmitterRef<boolean>;
7
- readonly dropdownTrigger: import("@angular/core").Signal<PopoverTriggerDirective>;
8
- readonly buttonIcon: import("@angular/core").Signal<"keyboard_arrow_up" | "keyboard_arrow_down">;
9
5
  readonly chevron: import("@angular/core").InputSignal<unknown>;
10
6
  readonly buttonText: import("@angular/core").InputSignal<string>;
11
7
  readonly prefixIcon: import("@angular/core").InputSignal<string>;
12
8
  readonly selectAmount: import("@angular/core").InputSignal<number>;
13
- onRemovablePillClicked(event: Event): void;
9
+ readonly removablePillClicked: import("@angular/core").OutputEmitterRef<void>;
10
+ 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;
14
14
  isOpenChanged(isOpen: boolean): void;
15
15
  static ɵfac: i0.ɵɵFactoryDeclaration<DropdownComponent, never>;
16
16
  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>;
@@ -11,7 +11,6 @@ export declare class CheckboxComponent implements ControlValueAccessor {
11
11
  get checkedClass(): boolean;
12
12
  get disabledClass(): boolean;
13
13
  get indeterminateClass(): boolean;
14
- get tabindexAttr(): number;
15
14
  onClick(): void;
16
15
  onKeyDown(event: KeyboardEvent): void;
17
16
  writeValue(value: boolean): void;
@@ -0,0 +1,4 @@
1
+ export interface FileUploadText {
2
+ dragText: string;
3
+ dragOverText: string;
4
+ }
@@ -0,0 +1,44 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import { FileUploadText } from './file-upload-text.interface';
3
+ import { ControlValueAccessor } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ export declare class FileUploadComponent implements ControlValueAccessor {
6
+ readonly fileInputElement: import("@angular/core").Signal<ElementRef<HTMLInputElement>>;
7
+ readonly allowedFileTypeRegex: import("@angular/core").InputSignal<RegExp | undefined>;
8
+ readonly fileUploadText: import("@angular/core").InputSignal<FileUploadText>;
9
+ readonly uploadDate: import("@angular/core").InputSignal<string>;
10
+ readonly maxFileSizeInBytes: import("@angular/core").InputSignal<number>;
11
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
12
+ readonly readonly: import("@angular/core").InputSignal<boolean>;
13
+ readonly draggingOver: import("@angular/core").ModelSignal<boolean>;
14
+ readonly selectedFile: import("@angular/core").ModelSignal<File | null | undefined>;
15
+ readonly error: import("@angular/core").ModelSignal<boolean>;
16
+ readonly incorrectFileType: import("@angular/core").ModelSignal<boolean>;
17
+ readonly incorrectFileSize: import("@angular/core").ModelSignal<boolean>;
18
+ private readonly canEdit;
19
+ get tabindexAttr(): number;
20
+ get hasError(): boolean;
21
+ get isDisabled(): boolean;
22
+ get isReadonly(): boolean;
23
+ get isDragging(): boolean;
24
+ get hasSelectedFile(): boolean;
25
+ onKeyDown(event: KeyboardEvent): void;
26
+ onClick(): void;
27
+ onDragLeave(event: DragEvent): void;
28
+ onDragOver(event: DragEvent): void;
29
+ onDragEnter(event: DragEvent): void;
30
+ onDrop(event: DragEvent): void;
31
+ onDownloadFileClick(): void;
32
+ onDeleteClick(event: Event): void;
33
+ displayText(): string;
34
+ onFileSelected(event: Event): void;
35
+ private selectFile;
36
+ private resetFile;
37
+ private correctFileSize;
38
+ private correctFileType;
39
+ writeValue(value: File): void;
40
+ registerOnChange(fn: (value: File | null | undefined) => void): void;
41
+ registerOnTouched(): void;
42
+ 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>;
44
+ }
@@ -0,0 +1,2 @@
1
+ export * from './file-upload.component';
2
+ export * from './file-upload-text.interface';
@@ -6,7 +6,10 @@ export declare class FormFieldComponent {
6
6
  input: import("@angular/core").Signal<InputDirective | undefined>;
7
7
  radioGroup: import("@angular/core").Signal<RadioGroupComponent | undefined>;
8
8
  checkboxGroup: import("@angular/core").Signal<CheckboxGroupComponent | undefined>;
9
- label: import("@angular/core").InputSignal<string | undefined>;
9
+ label: import("@angular/core").InputSignal<string>;
10
+ clearSearchAriaLabel: import("@angular/core").InputSignal<string | undefined>;
11
+ suffixIconAriaLabel: import("@angular/core").InputSignal<string | undefined>;
12
+ hideLabel: import("@angular/core").InputSignal<boolean>;
10
13
  disabled: import("@angular/core").InputSignal<boolean>;
11
14
  error: import("@angular/core").InputSignal<string | undefined>;
12
15
  info: import("@angular/core").InputSignal<string | undefined>;
@@ -15,15 +18,18 @@ export declare class FormFieldComponent {
15
18
  inputPrefix: import("@angular/core").Signal<string | undefined>;
16
19
  inputSuffix: import("@angular/core").Signal<string | undefined>;
17
20
  uuid: `${string}-${string}-${string}-${string}-${string}`;
21
+ descriptionUuid: `${string}-${string}-${string}-${string}-${string}`;
18
22
  constructor();
19
23
  clearInput(): void;
24
+ protected onSuffixIconClick(): void;
20
25
  private addInputTypeBasedClass;
21
26
  private setInputDisabledState;
22
27
  private setInputErrorState;
23
28
  private setInputId;
29
+ private setAriaDescribedBy;
24
30
  private setInputPrefix;
25
31
  private setInputSuffix;
26
32
  private setRequiredState;
27
33
  static ɵfac: i0.ɵɵFactoryDeclaration<FormFieldComponent, never>;
28
- static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldComponent, "ndw-form-field", never, { "label": { "alias": "label"; "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>;
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>;
29
35
  }
@@ -1,9 +1,12 @@
1
1
  export * from './checkbox';
2
2
  export * from './checkbox-group';
3
3
  export * from './error';
4
+ export * from './file-upload';
4
5
  export * from './form-field.component';
5
6
  export * from './form-field.model';
6
7
  export * from './info';
7
8
  export * from './input';
9
+ export * from './option-group';
8
10
  export * from './radio-button';
9
11
  export * from './radio-group';
12
+ export * from './textarea';
@@ -5,6 +5,7 @@ export declare class InputDirective implements OnInit {
5
5
  set disabled(disabled: boolean);
6
6
  set error(error: boolean);
7
7
  set id(id: string);
8
+ set ariaDescribedBy(id: string);
8
9
  private readonly elementRef;
9
10
  private readonly destroyRef;
10
11
  private readonly ngControl;
@@ -0,0 +1,2 @@
1
+ export * from './option-group.component';
2
+ export * from './option.component';
@@ -0,0 +1,18 @@
1
+ import { ControlValueAccessor } from '@angular/forms';
2
+ import { OptionComponent } from './option.component';
3
+ import * as i0 from "@angular/core";
4
+ export declare class OptionGroupComponent implements ControlValueAccessor {
5
+ readonly fluid: import("@angular/core").InputSignal<boolean>;
6
+ 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
+ protected readonly checkedValues: import("@angular/core").ModelSignal<unknown[]>;
10
+ private onChange;
11
+ protected toggleValue(value: unknown): void;
12
+ writeValue(value: unknown[]): void;
13
+ registerOnChange(fn: (value: unknown[]) => void): void;
14
+ registerOnTouched(): void;
15
+ setDisabledState(isDisabled: boolean): void;
16
+ 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>;
18
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class OptionComponent {
3
+ value: import("@angular/core").InputSignal<unknown>;
4
+ label: import("@angular/core").InputSignal<string>;
5
+ description: import("@angular/core").InputSignal<string | undefined>;
6
+ 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
+ }
@@ -10,10 +10,6 @@ export declare class RadioButtonComponent implements ControlValueAccessor {
10
10
  uuid: `${string}-${string}-${string}-${string}-${string}`;
11
11
  get checkedClass(): boolean;
12
12
  get disabledClass(): boolean;
13
- get tabindexAttr(): number;
14
- get roleAttr(): string;
15
- get ariaCheckedAttr(): boolean;
16
- get ariaDisabledAttr(): boolean;
17
13
  onClick(): void;
18
14
  onKeyDown(event: KeyboardEvent): void;
19
15
  writeValue(value: boolean): void;
@@ -6,7 +6,7 @@ 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
- get role(): string;
9
+ readonly roleAttr = "radiogroup";
10
10
  ngAfterContentInit(): void;
11
11
  writeValue(value: unknown): void;
12
12
  registerOnChange(fn: (value: unknown) => void): void;
@@ -0,0 +1,19 @@
1
+ import { AfterViewInit, OnDestroy } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Directive that automatically grows a textarea element to fit its content.
5
+ *
6
+ * Note that at this moment (2024-09-06) there is an experimental CSS property
7
+ * `field-sizing: content;` that can be used to achieve the same effect. At this
8
+ * moment not all browsers support this property (FF and Safari do not for example).
9
+ *
10
+ * So for now a directive is used to achieve the same effect.
11
+ */
12
+ export declare class AutoGrowDirective implements AfterViewInit, OnDestroy {
13
+ private readonly elementRef;
14
+ get element(): HTMLTextAreaElement;
15
+ ngAfterViewInit(): void;
16
+ ngOnDestroy(): void;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<AutoGrowDirective, never>;
18
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AutoGrowDirective, "textarea[ndwAutoGrow]", never, {}, {}, never, never, true, never>;
19
+ }
@@ -0,0 +1 @@
1
+ export * from './auto-grow.directive';
@@ -0,0 +1,33 @@
1
+ import { IconSize } from '../icon.component';
2
+ import * as i0 from "@angular/core";
3
+ export type ButtonType = 'button' | 'submit' | 'reset';
4
+ export type IconVariant = 'primary' | 'link' | 'grey' | 'white';
5
+ export declare class ActionIconComponent {
6
+ /**
7
+ * Used to give meaning to the button, used by screen readers.
8
+ */
9
+ ariaLabel: import("@angular/core").InputSignal<string>;
10
+ /**
11
+ * Color scheme of the ActionIcon, available `primary`, `link`,
12
+ * `grey` and `white` (defaults to primary).
13
+ */
14
+ variant: import("@angular/core").InputSignal<IconVariant>;
15
+ /**
16
+ * Specify button type, defaults to `button`
17
+ */
18
+ buttonType: import("@angular/core").InputSignal<ButtonType>;
19
+ /**
20
+ * Disables the button, defaults to `false`.
21
+ */
22
+ disabled: import("@angular/core").InputSignal<boolean>;
23
+ /**
24
+ * Sets the size of the button, defaults to `md`.
25
+ */
26
+ size: import("@angular/core").InputSignal<IconSize>;
27
+ /**
28
+ * Event emitted when the button is clicked.
29
+ */
30
+ readonly onClick: import("@angular/core").OutputEmitterRef<void>;
31
+ static ɵfac: i0.ɵɵFactoryDeclaration<ActionIconComponent, never>;
32
+ static ɵcmp: i0.ɵɵComponentDeclaration<ActionIconComponent, "ndw-action-icon", never, { "ariaLabel": { "alias": "ariaLabel"; "required": true; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "buttonType": { "alias": "buttonType"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "onClick": "onClick"; }, never, ["*"], true, never>;
33
+ }
@@ -1,14 +1,12 @@
1
1
  import { OnInit } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
+ export type IconSize = 'sm' | 'md';
3
4
  export declare class IconComponent implements OnInit {
5
+ size: import("@angular/core").InputSignal<IconSize>;
4
6
  private readonly elementRef;
5
7
  private readonly renderer;
6
- interactive: import("@angular/core").InputSignal<boolean>;
7
- protected iconClass: string;
8
- protected get interactiveClass(): boolean;
9
- protected get role(): string;
10
- protected get tabIndex(): number;
8
+ get hostClass(): string;
11
9
  ngOnInit(): void;
12
10
  static ɵfac: i0.ɵɵFactoryDeclaration<IconComponent, never>;
13
- static ɵcmp: i0.ɵɵComponentDeclaration<IconComponent, "ndw-icon", never, { "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<IconComponent, "ndw-icon", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
14
12
  }
@@ -1 +1,2 @@
1
1
  export * from './icon.component';
2
+ export * from './action-icon/action-icon.component';
@@ -18,4 +18,5 @@ export * from './router-breadcrumbs';
18
18
  export * from './tab';
19
19
  export * from './tab-group';
20
20
  export * from './tooltip';
21
+ export * from './toast';
21
22
  export * from './removable-pill';
@@ -10,6 +10,7 @@ export declare class MainNavigationComponent implements AfterViewInit {
10
10
  brand: import("@angular/core").InputSignal<NdwBrand>;
11
11
  footerTexts: import("@angular/core").InputSignal<string[] | undefined>;
12
12
  isCollapsible: import("@angular/core").InputSignal<boolean>;
13
+ version: import("@angular/core").InputSignal<string | undefined>;
13
14
  selected: import("@angular/core").OutputEmitterRef<number>;
14
15
  isExpanded: import("@angular/core").ModelSignal<boolean>;
15
16
  buttons: import("@angular/core").Signal<readonly ElementRef<HTMLButtonElement>[]>;
@@ -31,5 +32,5 @@ export declare class MainNavigationComponent implements AfterViewInit {
31
32
  toggleView(): void;
32
33
  private setPositionStrategy;
33
34
  static ɵfac: i0.ɵɵFactoryDeclaration<MainNavigationComponent, never>;
34
- 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; }; "isExpanded": { "alias": "isExpanded"; "required": false; "isSignal": true; }; }, { "selected": "selected"; "isExpanded": "isExpandedChange"; }, never, never, true, 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>;
35
36
  }
@@ -1,2 +1,8 @@
1
- export * from './modal.service';
1
+ import { ModalContentComponent } from './modal-content';
2
+ export * from './modal-content';
3
+ export * from './modal-footer';
4
+ export * from './modal-header';
2
5
  export * from './modal-trigger.directive';
6
+ export * from './modal.component';
7
+ export * from './modal.service';
8
+ export declare const MODAL_COMPONENTS: (typeof ModalContentComponent)[];
@@ -0,0 +1 @@
1
+ export * from './modal-content.component';
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ModalContentComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<ModalContentComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<ModalContentComponent, "ndw-modal-content", never, {}, {}, never, ["*"], true, never>;
5
+ }
@@ -0,0 +1 @@
1
+ export * from './modal-footer.component';
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ModalFooterComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<ModalFooterComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<ModalFooterComponent, "ndw-modal-footer", never, {}, {}, never, ["*"], true, never>;
5
+ }
@@ -0,0 +1 @@
1
+ export * from './modal-header.component';
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ModalHeaderComponent {
3
+ private readonly modalService;
4
+ detachModal(): void;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<ModalHeaderComponent, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<ModalHeaderComponent, "ndw-modal-header", never, {}, {}, never, ["*"], true, never>;
7
+ }
@@ -0,0 +1,11 @@
1
+ import { CardComponent } from '../card';
2
+ import * as i0 from "@angular/core";
3
+ export type ModalSize = 'sm' | 'md';
4
+ export declare class ModalComponent extends CardComponent {
5
+ size: import("@angular/core").InputSignal<ModalSize>;
6
+ get isSmall(): boolean;
7
+ get isMedium(): boolean;
8
+ readonly roleAttr = "dialog";
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<ModalComponent, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<ModalComponent, "ndw-modal", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
11
+ }
@@ -10,7 +10,6 @@ export declare class ModalService {
10
10
  detach(): void;
11
11
  dispose(): void;
12
12
  open(templateRef: TemplateRef<unknown>, viewContainerRef: ViewContainerRef): void;
13
- private actions;
14
13
  static ɵfac: i0.ɵɵFactoryDeclaration<ModalService, never>;
15
14
  static ɵprov: i0.ɵɵInjectableDeclaration<ModalService>;
16
15
  }
@@ -3,19 +3,20 @@ import { CheckboxData } from './checkbox-data.interface';
3
3
  import { SelectAllText } from './select-all-text.interface';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class MultiSelectComponent {
6
- readonly disabled: import("@angular/core").InputSignal<boolean>;
7
6
  readonly dropdownTrigger: import("@angular/core").Signal<PopoverTriggerDirective>;
8
7
  readonly buttonText: import("@angular/core").InputSignal<string>;
8
+ readonly searchLabel: import("@angular/core").InputSignal<string>;
9
9
  readonly prefixIcon: import("@angular/core").InputSignal<string>;
10
- readonly chevron: import("@angular/core").InputSignal<boolean>;
11
- readonly searchInputValue: import("@angular/core").ModelSignal<string>;
12
10
  readonly searchPlaceholder: import("@angular/core").InputSignal<string>;
13
11
  readonly noResultText: import("@angular/core").InputSignal<string>;
12
+ readonly chevron: import("@angular/core").InputSignal<boolean>;
13
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
14
14
  readonly selectAllText: import("@angular/core").InputSignal<SelectAllText>;
15
15
  readonly lastCheckedElementId: import("@angular/core").ModelSignal<string | number | null | undefined>;
16
+ readonly dataSource: import("@angular/core").ModelSignal<CheckboxData[]>;
17
+ readonly searchInputValue: import("@angular/core").ModelSignal<string>;
16
18
  readonly selectAmount: import("@angular/core").Signal<number>;
17
19
  readonly noSearchResults: import("@angular/core").Signal<boolean>;
18
- readonly dataSource: import("@angular/core").ModelSignal<CheckboxData[]>;
19
20
  filterSearch(value: string): boolean;
20
21
  searchInputChanged(event: Event): void;
21
22
  checkboxChanged(id: string | number): void;
@@ -23,5 +24,5 @@ export declare class MultiSelectComponent {
23
24
  isOpenChanged(isOpen: boolean): void;
24
25
  private determineLastCheckedElement;
25
26
  static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectComponent, never>;
26
- static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectComponent, "ndw-multi-select", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "buttonText": { "alias": "buttonText"; "required": true; "isSignal": true; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; "isSignal": true; }; "chevron": { "alias": "chevron"; "required": false; "isSignal": true; }; "searchInputValue": { "alias": "searchInputValue"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "noResultText": { "alias": "noResultText"; "required": false; "isSignal": true; }; "selectAllText": { "alias": "selectAllText"; "required": false; "isSignal": true; }; "lastCheckedElementId": { "alias": "lastCheckedElementId"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": false; "isSignal": true; }; }, { "searchInputValue": "searchInputValueChange"; "lastCheckedElementId": "lastCheckedElementIdChange"; "dataSource": "dataSourceChange"; }, never, never, true, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectComponent, "ndw-multi-select", never, { "buttonText": { "alias": "buttonText"; "required": true; "isSignal": true; }; "searchLabel": { "alias": "searchLabel"; "required": true; "isSignal": true; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "noResultText": { "alias": "noResultText"; "required": false; "isSignal": true; }; "chevron": { "alias": "chevron"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "selectAllText": { "alias": "selectAllText"; "required": false; "isSignal": true; }; "lastCheckedElementId": { "alias": "lastCheckedElementId"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": false; "isSignal": true; }; "searchInputValue": { "alias": "searchInputValue"; "required": false; "isSignal": true; }; }, { "lastCheckedElementId": "lastCheckedElementIdChange"; "dataSource": "dataSourceChange"; "searchInputValue": "searchInputValueChange"; }, never, never, true, never>;
27
28
  }
@@ -1,8 +1,16 @@
1
1
  import { PillColor } from './pill.model';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class PillComponent {
4
+ /**
5
+ * The color of the pill.
6
+ */
4
7
  readonly color: import("@angular/core").InputSignal<PillColor>;
8
+ /**
9
+ * The content of the pill.
10
+ */
11
+ private readonly content;
5
12
  get hostClass(): string[];
13
+ protected get title(): string | undefined;
6
14
  static ɵfac: i0.ɵɵFactoryDeclaration<PillComponent, never>;
7
15
  static ɵcmp: i0.ɵɵComponentDeclaration<PillComponent, "ndw-pill", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
8
16
  }
@@ -1,7 +1,14 @@
1
1
  import * as i0 from "@angular/core";
2
2
  export declare class RemovablePillComponent {
3
+ /**
4
+ * Disables the pill
5
+ */
3
6
  disabled: import("@angular/core").InputSignal<boolean>;
4
- get tabindexAttr(): number;
7
+ /**
8
+ * Aria label for the remove button
9
+ */
10
+ removeAriaLabel: import("@angular/core").InputSignal<string>;
11
+ onClick: import("@angular/core").OutputEmitterRef<void>;
5
12
  static ɵfac: i0.ɵɵFactoryDeclaration<RemovablePillComponent, never>;
6
- static ɵcmp: i0.ɵɵComponentDeclaration<RemovablePillComponent, "ndw-removable-pill", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
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>;
7
14
  }
@@ -0,0 +1,2 @@
1
+ export * from './toast.component';
2
+ export * from './toast.service';
@@ -0,0 +1,18 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ToastComponent implements OnInit, OnDestroy {
4
+ readonly message: import("@angular/core").ModelSignal<string>;
5
+ readonly close: import("@angular/core").OutputEmitterRef<void>;
6
+ private interval;
7
+ private readonly renderer;
8
+ private readonly toastContainer;
9
+ ngOnInit(): void;
10
+ ngOnDestroy(): void;
11
+ open(): void;
12
+ private updateGradient;
13
+ protected startFadeOut(): void;
14
+ private checkForExistingToast;
15
+ private truncateText;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToastComponent, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<ToastComponent, "ndw-toast", never, { "message": { "alias": "message"; "required": false; "isSignal": true; }; }, { "message": "messageChange"; "close": "close"; }, never, never, true, never>;
18
+ }