@nova-design-system/nova-angular-19 3.11.0 → 3.13.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.
package/README.md CHANGED
@@ -2,22 +2,21 @@
2
2
 
3
3
  **Nova Components Angular** allows you to integrate Nova's native UI elements into your Angular applications. This guide is specifically designed for **Angular 19**. If you are using a different version of Angular, please visit the [@nova-design-system/nova-angular](https://www.npmjs.com/package/@nova-design-system/nova-angular) page for the corresponding documentation and support.
4
4
 
5
- This package leverages Angular's modern features and optimizations, offering a streamlined integration process for both standalone components and Angular forms.
5
+ This package leverages Angular's modern features and optimizations, offering a streamlined integration process for standalone components and Angular forms.
6
6
 
7
7
  - [Nova Components Angular (Angular 19 Only)](#nova-components-angular-angular-19-only)
8
8
  - [Installation](#installation)
9
- - [Setup](#setup)
10
- - [CSS Integration Using Tailwind (Recommended)](#css-integration-using-tailwind-recommended)
9
+ - [Setting up Tailwind](#setting-up-tailwind)
10
+ - [About Tailwind and the Nova Plugin](#about-tailwind-and-the-nova-plugin)
11
11
  - [1. Install Tailwind CSS](#1-install-tailwind-css)
12
12
  - [2. Configure PostCSS Plugins](#2-configure-postcss-plugins)
13
13
  - [3. Create `tailwind.config.ts`](#3-create-tailwindconfigts)
14
14
  - [4. Configure Tailwind and Nova Plugin in `styles.css`](#4-configure-tailwind-and-nova-plugin-in-stylescss)
15
15
  - [5. Include the Nova Tokens (Spark or Ocean)](#5-include-the-nova-tokens-spark-or-ocean)
16
- - [CSS Integration Without Tailwind (Not Recommended)](#css-integration-without-tailwind-not-recommended)
17
- - [Nova Font Pro Integration](#nova-font-pro-integration)
18
- - [Option 1: Angular.json Configuration (Recommended)](#option-1-angularjson-configuration-recommended)
19
- - [Option 2: Import in Styles.css](#option-2-import-in-stylescss)
20
- - [Option 3: HTML Integration](#option-3-html-integration)
16
+ - [Nova Font Pro Integration](#nova-font-pro-integration)
17
+ - [Option 1: Angular.json Configuration (Recommended)](#option-1-angularjson-configuration-recommended)
18
+ - [Option 2: Import in Styles.css](#option-2-import-in-stylescss)
19
+ - [Option 3: HTML Integration](#option-3-html-integration)
21
20
  - [Standalone Component Setup](#standalone-component-setup)
22
21
  - [1. Provide Nova Components](#1-provide-nova-components)
23
22
  - [2. Configuring Standalone Components](#2-configuring-standalone-components)
@@ -42,23 +41,30 @@ yarn add @nova-design-system/nova-webcomponents @nova-design-system/nova-base @n
42
41
  ```
43
42
 
44
43
  > In some case, you might experience SSL certificate issues when working on Developers' VM. As documented in the [Developers' setup guide](https://wiki.eliagroup.eu/spaces/EAing/pages/89296007/2.3.3.10+Developer+Setup#id-2.3.3.10DeveloperSetup-NPMconfig), you need to turn off the SSL certificate verification:
45
-
46
- ```bash
47
- npm config set strict-ssl false
48
- ```
44
+ >
45
+ > ```bash
46
+ > npm config set strict-ssl false
47
+ > ```
49
48
 
50
49
  ---
51
50
 
52
- ## Setup
51
+ ## Setting up Tailwind
53
52
 
54
- ### CSS Integration Using Tailwind (Recommended)
53
+ Nova Angular requires Tailwind CSS for styling. Tailwind provides a powerful utility-first workflow and an optimized bundle size. Nova includes a dedicated Tailwind theme and plugin that map Nova’s design tokens to Tailwind’s theme and utilities, enabling consistent, token-driven styling across your app.
55
54
 
56
- We highly recommend using Tailwind CSS for styling, as it ensures an optimized bundle size and a powerful utility-first workflow. Nova offers a dedicated Tailwind plugin and theme, allowing you to seamlessly integrate Nova’s design tokens with Tailwind’s utility classes for a consistent and efficient styling workflow.
57
-
58
- > **Tailwind Version**
55
+ > **Tailwind Version**
59
56
  > This guide is written for Tailwind v4. While compatible with v3, some features may not work as expected.
57
+ > See the official [Angular + Tailwind guide](https://tailwindcss.com/docs/installation/framework-guides/angular) for more details.
58
+
59
+ ### About Tailwind and the Nova Plugin
60
60
 
61
- Visit the official [Tailwind CSS Angular documentation](https://tailwindcss.com/docs/installation/framework-guides/angular) for more detailed installation instructions.
61
+ - **What is Tailwind?** A utility-first CSS framework with low-level, composable classes (flex, grid, spacing, color, typography) to rapidly build UIs.
62
+ - **Nova Tokens**: Nova ships design tokens as CSS variables (via the Spark and Ocean themes) for colors, spacing, typography, radii, shadows, and more.
63
+ - **Integration**:
64
+ - `novaTailwindTheme` wires Nova tokens into Tailwind’s theme scales.
65
+ - The Nova Tailwind plugin exposes utilities and variants that reference those tokens, so your Tailwind classes resolve to Nova’s token values at runtime.
66
+ - **Why import tokens CSS?** Import exactly one token CSS file (`spark.css` or `ocean.css`) so the underlying CSS variables exist at runtime. The Tailwind utilities generated by the plugin read from these variables.
67
+ - **Do not mix with legacy utilities**: When using Tailwind, do not import `@nova-design-system/nova-base/dist/css/nova-utils.css` to avoid redundant CSS and larger bundles.
62
68
 
63
69
  #### 1. Install Tailwind CSS
64
70
 
@@ -121,57 +127,39 @@ Add the Nova Tokens CSS file to the `styles` array in your `angular.json` config
121
127
  }
122
128
  ```
123
129
 
124
- ### CSS Integration Without Tailwind (Not Recommended)
125
-
126
- If you don’t plan to use Tailwind, Nova provides a large utility CSS file for quick prototyping. Be aware that this approach will increase your CSS bundle size, offer fewer options, and lack the flexibility and optimizations of Tailwind.
127
-
128
- To include the Nova theme and utility styles in your Angular project, add the CSS files to the `styles` array in your `angular.json` configuration:
129
-
130
- ```json
131
- {
132
- ...
133
- "styles": [
134
- "src/styles.css",
135
- "@nova-design-system/nova-base/dist/css/nova-utils.css",
136
- "@nova-design-system/nova-base/dist/css/spark.css" // or ocean.css
137
- ],
138
- ...
139
- }
140
- ```
141
-
142
- This setup ensures that the Nova styles are available throughout your application.
130
+ ---
143
131
 
144
- ### Nova Font Pro Integration
132
+ ## Nova Font Pro Integration
145
133
 
146
- > [!WARNING]
147
- > Nova Fonts is a protected asset and is not included in the Nova Base package. You need to include the Nova Fonts CSS file in your project.
148
- > To get the Nova Fonts URL, please contact us via Teams or get the URL in the Nova Design System [internal wiki](https://dev.azure.com/elia-digitization/Nova/_wiki/wikis/Nova.wiki/30245/Nova-Font-Pro).
134
+ > [!WARNING]
135
+ > Nova Fonts is a protected asset and is not included in the Nova Base package. You need to include the Nova Fonts CSS file in your project.
136
+ > To get the Nova Fonts URL, **contact us via Teams** or see the Nova Design System internal wiki.
149
137
 
150
138
  Once you have the URL, you can integrate it using any of these methods:
151
139
 
152
- #### Option 1: Angular.json Configuration (Recommended)
140
+ ### Option 1: Angular.json Configuration (Recommended)
153
141
 
154
- Add the Nova Font Pro CDN URL to the styles array in your `angular.json` configuration:
142
+ Add the Nova Font Pro URL to the styles array in your `angular.json` configuration:
155
143
 
156
144
  ```json
157
145
  "styles": [
158
- "https://novaassets.azureedge.net/fonts/nova-fonts-pro.css"
146
+ "contact-us-for-URL/nova-fonts-pro.css"
159
147
  ]
160
148
  ```
161
149
 
162
- #### Option 2: Import in Styles.css
150
+ ### Option 2: Import in Styles.css
163
151
 
164
152
  ```css
165
- @import url('https://novaassets.azureedge.net/fonts/nova-fonts-pro.css');
153
+ @import url('contact-us-for-URL');
166
154
  ```
167
155
 
168
- #### Option 3: HTML Integration
156
+ ### Option 3: HTML Integration
169
157
 
170
158
  ```html
171
159
  <!DOCTYPE html>
172
160
  <html>
173
161
  <head>
174
- <link rel="stylesheet" href="https://novaassets.azureedge.net/fonts/nova-fonts-pro.css">
162
+ <link rel="stylesheet" href="contact-us-for-URL/nova-fonts-pro.css">
175
163
  </head>
176
164
  <body>
177
165
  <app-root></app-root>
@@ -179,6 +167,8 @@ Add the Nova Font Pro CDN URL to the styles array in your `angular.json` configu
179
167
  </html>
180
168
  ```
181
169
 
170
+ The font CSS includes both font definitions and a `body { font-family: ... }` rule to apply fonts across your Angular application.
171
+
182
172
  ---
183
173
 
184
174
  ## Standalone Component Setup
@@ -190,9 +180,10 @@ Angular 19 encourages the use of standalone components with modern configuration
190
180
  To make Nova Web Components available across your application, add the `defineCustomElements` function as an app initializer in your application configuration:
191
181
 
192
182
  ```typescript
183
+ import { ApplicationConfig } from '@angular/core';
184
+ import { provideRouter } from '@angular/router';
193
185
  import { provideAppInitializer } from '@angular/core';
194
186
  import { defineCustomElements } from '@nova-design-system/nova-webcomponents/loader';
195
- import { provideRouter } from '@angular/router';
196
187
 
197
188
  export const appConfig: ApplicationConfig = {
198
189
  providers: [
@@ -223,8 +214,6 @@ export class AppComponent {
223
214
  }
224
215
  ```
225
216
 
226
- > **Note:** Module-based setup is not supported in Angular 19. Please use the standalone component approach as shown above.
227
-
228
217
  ---
229
218
 
230
219
  ## Handling Angular Forms with Nova Components
@@ -233,7 +222,7 @@ Nova Components Angular supports seamless integration with Angular's reactive an
233
222
 
234
223
  ### Standalone Component Setup with Forms
235
224
 
236
- When working with forms in Angular 19, import the `NovaComponentsValueAccessorModule` along with Angular’s `FormsModule` in your standalone component to enable 2 way binding. Ensure to also include the `NovaComponentsModule`:
225
+ When working with forms in Angular 19, import the `NovaComponentsValueAccessorModule` along with Angular’s `FormsModule` in your standalone component to enable two-way binding. Ensure to also include the `NovaComponentsModule`:
237
226
 
238
227
  ```typescript
239
228
  import { Component } from '@angular/core';
@@ -274,4 +263,3 @@ Nova Components Angular provides an easy and flexible way to incorporate Nova's
274
263
  If you require support for Angular versions other than 19, please refer to the [@nova-design-system/nova-angular](https://www.npmjs.com/package/@nova-design-system/nova-angular) documentation for the appropriate setup and configuration.
275
264
 
276
265
  Happy coding with Nova and Angular!
277
- ```
@@ -3,6 +3,7 @@ import { Component, ChangeDetectionStrategy, Directive, HostListener, NgModule }
3
3
  import { __decorate } from 'tslib';
4
4
  import { fromEvent } from 'rxjs';
5
5
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
6
+ export * from '@nova-design-system/nova-webcomponents/constants';
6
7
 
7
8
  /* eslint-disable */
8
9
  /* tslint:disable */
@@ -299,11 +300,11 @@ let NvCalendar = class NvCalendar {
299
300
  proxyOutputs(this, this.el, ['singleDateChange', 'rangeDateChange', 'valueChanged']);
300
301
  }
301
302
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvCalendar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
302
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvCalendar, isStandalone: false, selector: "nv-calendar", inputs: { dateFormat: "dateFormat", disabledDates: "disabledDates", firstDayOfWeek: "firstDayOfWeek", locale: "locale", max: "max", min: "min", numberOfCalendars: "numberOfCalendars", rangeValue: "rangeValue", selectionType: "selectionType", shortcuts: "shortcuts", shortcutsPlacement: "shortcutsPlacement", showActions: "showActions", showWeekNumbers: "showWeekNumbers", singleValue: "singleValue", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
303
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvCalendar, isStandalone: false, selector: "nv-calendar", inputs: { cancelLabel: "cancelLabel", dateFormat: "dateFormat", disabledDates: "disabledDates", firstDayOfWeek: "firstDayOfWeek", locale: "locale", max: "max", min: "min", numberOfCalendars: "numberOfCalendars", primaryLabel: "primaryLabel", rangeValue: "rangeValue", selectionType: "selectionType", shortcuts: "shortcuts", shortcutsPlacement: "shortcutsPlacement", showActions: "showActions", showWeekNumbers: "showWeekNumbers", singleValue: "singleValue", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
303
304
  };
304
305
  NvCalendar = __decorate([
305
306
  ProxyCmp({
306
- inputs: ['dateFormat', 'disabledDates', 'firstDayOfWeek', 'locale', 'max', 'min', 'numberOfCalendars', 'rangeValue', 'selectionType', 'shortcuts', 'shortcutsPlacement', 'showActions', 'showWeekNumbers', 'singleValue', 'value'],
307
+ inputs: ['cancelLabel', 'dateFormat', 'disabledDates', 'firstDayOfWeek', 'locale', 'max', 'min', 'numberOfCalendars', 'primaryLabel', 'rangeValue', 'selectionType', 'shortcuts', 'shortcutsPlacement', 'showActions', 'showWeekNumbers', 'singleValue', 'value'],
307
308
  methods: ['clear']
308
309
  })
309
310
  ], NvCalendar);
@@ -314,7 +315,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
314
315
  changeDetection: ChangeDetectionStrategy.OnPush,
315
316
  template: '<ng-content></ng-content>',
316
317
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
317
- inputs: ['dateFormat', 'disabledDates', 'firstDayOfWeek', 'locale', 'max', 'min', 'numberOfCalendars', 'rangeValue', 'selectionType', 'shortcuts', 'shortcutsPlacement', 'showActions', 'showWeekNumbers', 'singleValue', 'value'],
318
+ inputs: ['cancelLabel', 'dateFormat', 'disabledDates', 'firstDayOfWeek', 'locale', 'max', 'min', 'numberOfCalendars', 'primaryLabel', 'rangeValue', 'selectionType', 'shortcuts', 'shortcutsPlacement', 'showActions', 'showWeekNumbers', 'singleValue', 'value'],
318
319
  standalone: false
319
320
  }]
320
321
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
@@ -994,6 +995,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
994
995
  standalone: false
995
996
  }]
996
997
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
998
+ let NvNotification = class NvNotification {
999
+ constructor(c, r, z) {
1000
+ this.z = z;
1001
+ c.detach();
1002
+ this.el = r.nativeElement;
1003
+ proxyOutputs(this, this.el, ['hiddenChanged']);
1004
+ }
1005
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvNotification, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1006
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvNotification, isStandalone: false, selector: "nv-notification", inputs: { dismissible: "dismissible", emphasis: "emphasis", feedback: "feedback", heading: "heading", hidden: "hidden", icon: "icon", message: "message", uid: "uid" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1007
+ };
1008
+ NvNotification = __decorate([
1009
+ ProxyCmp({
1010
+ inputs: ['dismissible', 'emphasis', 'feedback', 'heading', 'hidden', 'icon', 'message', 'uid'],
1011
+ methods: ['dismiss']
1012
+ })
1013
+ ], NvNotification);
1014
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvNotification, decorators: [{
1015
+ type: Component,
1016
+ args: [{
1017
+ selector: 'nv-notification',
1018
+ changeDetection: ChangeDetectionStrategy.OnPush,
1019
+ template: '<ng-content></ng-content>',
1020
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1021
+ inputs: ['dismissible', 'emphasis', 'feedback', 'heading', 'hidden', 'icon', 'message', 'uid'],
1022
+ standalone: false
1023
+ }]
1024
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
997
1025
  let NvPopover = class NvPopover {
998
1026
  constructor(c, r, z) {
999
1027
  this.z = z;
@@ -1002,11 +1030,11 @@ let NvPopover = class NvPopover {
1002
1030
  proxyOutputs(this, this.el, ['openChanged']);
1003
1031
  }
1004
1032
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvPopover, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1005
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvPopover, isStandalone: false, selector: "nv-popover", inputs: { disableFlip: "disableFlip", enterDelay: "enterDelay", groupName: "groupName", hasArrow: "hasArrow", nested: "nested", offset: "offset", open: "open", placement: "placement", shiftPadding: "shiftPadding", triggerMode: "triggerMode" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1033
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvPopover, isStandalone: false, selector: "nv-popover", inputs: { disableFlip: "disableFlip", enterDelay: "enterDelay", groupName: "groupName", hasArrow: "hasArrow", nested: "nested", offset: "offset", open: "open", placement: "placement", shiftPadding: "shiftPadding", strategy: "strategy", triggerMode: "triggerMode" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1006
1034
  };
1007
1035
  NvPopover = __decorate([
1008
1036
  ProxyCmp({
1009
- inputs: ['disableFlip', 'enterDelay', 'groupName', 'hasArrow', 'nested', 'offset', 'open', 'placement', 'shiftPadding', 'triggerMode'],
1037
+ inputs: ['disableFlip', 'enterDelay', 'groupName', 'hasArrow', 'nested', 'offset', 'open', 'placement', 'shiftPadding', 'strategy', 'triggerMode'],
1010
1038
  methods: ['show', 'hide', 'toggle']
1011
1039
  })
1012
1040
  ], NvPopover);
@@ -1017,7 +1045,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
1017
1045
  changeDetection: ChangeDetectionStrategy.OnPush,
1018
1046
  template: '<ng-content></ng-content>',
1019
1047
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1020
- inputs: ['disableFlip', 'enterDelay', 'groupName', 'hasArrow', 'nested', 'offset', 'open', 'placement', 'shiftPadding', 'triggerMode'],
1048
+ inputs: ['disableFlip', 'enterDelay', 'groupName', 'hasArrow', 'nested', 'offset', 'open', 'placement', 'shiftPadding', 'strategy', 'triggerMode'],
1021
1049
  standalone: false
1022
1050
  }]
1023
1051
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
@@ -1206,11 +1234,11 @@ let NvTooltip = class NvTooltip {
1206
1234
  proxyOutputs(this, this.el, ['openChanged']);
1207
1235
  }
1208
1236
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1209
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvTooltip, isStandalone: false, selector: "nv-tooltip", inputs: { enterDelay: "enterDelay", message: "message", placement: "placement" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1237
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvTooltip, isStandalone: false, selector: "nv-tooltip", inputs: { enterDelay: "enterDelay", message: "message", placement: "placement", strategy: "strategy" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1210
1238
  };
1211
1239
  NvTooltip = __decorate([
1212
1240
  ProxyCmp({
1213
- inputs: ['enterDelay', 'message', 'placement']
1241
+ inputs: ['enterDelay', 'message', 'placement', 'strategy']
1214
1242
  })
1215
1243
  ], NvTooltip);
1216
1244
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvTooltip, decorators: [{
@@ -1220,7 +1248,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
1220
1248
  changeDetection: ChangeDetectionStrategy.OnPush,
1221
1249
  template: '<ng-content></ng-content>',
1222
1250
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1223
- inputs: ['enterDelay', 'message', 'placement'],
1251
+ inputs: ['enterDelay', 'message', 'placement', 'strategy'],
1224
1252
  standalone: false
1225
1253
  }]
1226
1254
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
@@ -1262,6 +1290,7 @@ const DIRECTIVES = [
1262
1290
  NvLoader,
1263
1291
  NvMenu,
1264
1292
  NvMenuitem,
1293
+ NvNotification,
1265
1294
  NvPopover,
1266
1295
  NvRow,
1267
1296
  NvStack,
@@ -1872,6 +1901,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
1872
1901
  type: HostListener,
1873
1902
  args: ['valueChanged', ['$event']]
1874
1903
  }] } });
1904
+ class NvNotificationValueAccessor extends ValueAccessor {
1905
+ constructor(el) {
1906
+ super(el);
1907
+ }
1908
+ handleHiddenChanged(event) {
1909
+ this.handleChangeEvent(event.target.hidden);
1910
+ }
1911
+ writeValue(value) {
1912
+ this.el.nativeElement.hidden = this.lastValue = value;
1913
+ }
1914
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvNotificationValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1915
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.5", type: NvNotificationValueAccessor, isStandalone: true, selector: "nv-notification", host: { listeners: { "hiddenChanged": "handleHiddenChanged($event)" } }, providers: [
1916
+ {
1917
+ provide: NG_VALUE_ACCESSOR,
1918
+ useExisting: NvNotificationValueAccessor,
1919
+ multi: true,
1920
+ },
1921
+ ], usesInheritance: true, ngImport: i0 }); }
1922
+ }
1923
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvNotificationValueAccessor, decorators: [{
1924
+ type: Directive,
1925
+ args: [{
1926
+ selector: 'nv-notification',
1927
+ providers: [
1928
+ {
1929
+ provide: NG_VALUE_ACCESSOR,
1930
+ useExisting: NvNotificationValueAccessor,
1931
+ multi: true,
1932
+ },
1933
+ ],
1934
+ }]
1935
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { handleHiddenChanged: [{
1936
+ type: HostListener,
1937
+ args: ['hiddenChanged', ['$event']]
1938
+ }] } });
1875
1939
  class NvPopoverValueAccessor extends ValueAccessor {
1876
1940
  constructor(el) {
1877
1941
  super(el);
@@ -1994,6 +2058,7 @@ const VALUE_ACCESSORS = [
1994
2058
  NvFieldsliderValueAccessor,
1995
2059
  NvFieldtextValueAccessor,
1996
2060
  NvFieldtextareaValueAccessor,
2061
+ NvNotificationValueAccessor,
1997
2062
  NvPopoverValueAccessor,
1998
2063
  NvToggleValueAccessor,
1999
2064
  NvTogglebuttongroupValueAccessor,
@@ -2001,7 +2066,7 @@ const VALUE_ACCESSORS = [
2001
2066
 
2002
2067
  class NovaComponentsModule {
2003
2068
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2004
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsModule, declarations: [NvAccordion, NvAccordionItem, NvAlert, NvAvatar, NvBadge, NvBreadcrumb, NvBreadcrumbs, NvButton, NvButtongroup, NvCalendar, NvCol, NvDatagrid, NvDatagridcolumn, NvDialog, NvDialogfooter, NvDialogheader, NvFieldcheckbox, NvFielddate, NvFielddaterange, NvFielddropdown, NvFielddropdownitem, NvFielddropdownitemcheck, NvFieldmultiselect, NvFieldnumber, NvFieldpassword, NvFieldradio, NvFieldselect, NvFieldslider, NvFieldtext, NvFieldtextarea, NvFieldtime, NvIcon, NvIconbutton, NvLoader, NvMenu, NvMenuitem, NvPopover, NvRow, NvStack, NvTable, NvTablecolumn, NvToggle, NvTogglebutton, NvTogglebuttongroup, NvTooltip], exports: [NvAccordion, NvAccordionItem, NvAlert, NvAvatar, NvBadge, NvBreadcrumb, NvBreadcrumbs, NvButton, NvButtongroup, NvCalendar, NvCol, NvDatagrid, NvDatagridcolumn, NvDialog, NvDialogfooter, NvDialogheader, NvFieldcheckbox, NvFielddate, NvFielddaterange, NvFielddropdown, NvFielddropdownitem, NvFielddropdownitemcheck, NvFieldmultiselect, NvFieldnumber, NvFieldpassword, NvFieldradio, NvFieldselect, NvFieldslider, NvFieldtext, NvFieldtextarea, NvFieldtime, NvIcon, NvIconbutton, NvLoader, NvMenu, NvMenuitem, NvPopover, NvRow, NvStack, NvTable, NvTablecolumn, NvToggle, NvTogglebutton, NvTogglebuttongroup, NvTooltip] }); }
2069
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsModule, declarations: [NvAccordion, NvAccordionItem, NvAlert, NvAvatar, NvBadge, NvBreadcrumb, NvBreadcrumbs, NvButton, NvButtongroup, NvCalendar, NvCol, NvDatagrid, NvDatagridcolumn, NvDialog, NvDialogfooter, NvDialogheader, NvFieldcheckbox, NvFielddate, NvFielddaterange, NvFielddropdown, NvFielddropdownitem, NvFielddropdownitemcheck, NvFieldmultiselect, NvFieldnumber, NvFieldpassword, NvFieldradio, NvFieldselect, NvFieldslider, NvFieldtext, NvFieldtextarea, NvFieldtime, NvIcon, NvIconbutton, NvLoader, NvMenu, NvMenuitem, NvNotification, NvPopover, NvRow, NvStack, NvTable, NvTablecolumn, NvToggle, NvTogglebutton, NvTogglebuttongroup, NvTooltip], exports: [NvAccordion, NvAccordionItem, NvAlert, NvAvatar, NvBadge, NvBreadcrumb, NvBreadcrumbs, NvButton, NvButtongroup, NvCalendar, NvCol, NvDatagrid, NvDatagridcolumn, NvDialog, NvDialogfooter, NvDialogheader, NvFieldcheckbox, NvFielddate, NvFielddaterange, NvFielddropdown, NvFielddropdownitem, NvFielddropdownitemcheck, NvFieldmultiselect, NvFieldnumber, NvFieldpassword, NvFieldradio, NvFieldselect, NvFieldslider, NvFieldtext, NvFieldtextarea, NvFieldtime, NvIcon, NvIconbutton, NvLoader, NvMenu, NvMenuitem, NvNotification, NvPopover, NvRow, NvStack, NvTable, NvTablecolumn, NvToggle, NvTogglebutton, NvTogglebuttongroup, NvTooltip] }); }
2005
2070
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsModule }); }
2006
2071
  }
2007
2072
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsModule, decorators: [{
@@ -2013,7 +2078,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
2013
2078
  }] });
2014
2079
  class NovaComponentsValueAccessorModule {
2015
2080
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsValueAccessorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2016
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsValueAccessorModule, imports: [NvAlertValueAccessor, NvCalendarValueAccessor, NvDatagridValueAccessor, NvDialogValueAccessor, NvFieldcheckboxValueAccessor, NvFielddateValueAccessor, NvFielddaterangeValueAccessor, NvFielddropdownValueAccessor, NvFieldmultiselectValueAccessor, NvFieldnumberValueAccessor, NvFieldpasswordValueAccessor, NvFieldradioValueAccessor, NvFieldselectValueAccessor, NvFieldsliderValueAccessor, NvFieldtextValueAccessor, NvFieldtextareaValueAccessor, NvPopoverValueAccessor, NvToggleValueAccessor, NvTogglebuttongroupValueAccessor], exports: [NvAlertValueAccessor, NvCalendarValueAccessor, NvDatagridValueAccessor, NvDialogValueAccessor, NvFieldcheckboxValueAccessor, NvFielddateValueAccessor, NvFielddaterangeValueAccessor, NvFielddropdownValueAccessor, NvFieldmultiselectValueAccessor, NvFieldnumberValueAccessor, NvFieldpasswordValueAccessor, NvFieldradioValueAccessor, NvFieldselectValueAccessor, NvFieldsliderValueAccessor, NvFieldtextValueAccessor, NvFieldtextareaValueAccessor, NvPopoverValueAccessor, NvToggleValueAccessor, NvTogglebuttongroupValueAccessor] }); }
2081
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsValueAccessorModule, imports: [NvAlertValueAccessor, NvCalendarValueAccessor, NvDatagridValueAccessor, NvDialogValueAccessor, NvFieldcheckboxValueAccessor, NvFielddateValueAccessor, NvFielddaterangeValueAccessor, NvFielddropdownValueAccessor, NvFieldmultiselectValueAccessor, NvFieldnumberValueAccessor, NvFieldpasswordValueAccessor, NvFieldradioValueAccessor, NvFieldselectValueAccessor, NvFieldsliderValueAccessor, NvFieldtextValueAccessor, NvFieldtextareaValueAccessor, NvNotificationValueAccessor, NvPopoverValueAccessor, NvToggleValueAccessor, NvTogglebuttongroupValueAccessor], exports: [NvAlertValueAccessor, NvCalendarValueAccessor, NvDatagridValueAccessor, NvDialogValueAccessor, NvFieldcheckboxValueAccessor, NvFielddateValueAccessor, NvFielddaterangeValueAccessor, NvFielddropdownValueAccessor, NvFieldmultiselectValueAccessor, NvFieldnumberValueAccessor, NvFieldpasswordValueAccessor, NvFieldradioValueAccessor, NvFieldselectValueAccessor, NvFieldsliderValueAccessor, NvFieldtextValueAccessor, NvFieldtextareaValueAccessor, NvNotificationValueAccessor, NvPopoverValueAccessor, NvToggleValueAccessor, NvTogglebuttongroupValueAccessor] }); }
2017
2082
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsValueAccessorModule }); }
2018
2083
  }
2019
2084
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsValueAccessorModule, decorators: [{
@@ -2032,5 +2097,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
2032
2097
  * Generated bundle index. Do not edit.
2033
2098
  */
2034
2099
 
2035
- export { NovaComponentsModule, NovaComponentsValueAccessorModule, NvAccordion, NvAccordionItem, NvAlert, NvAlertValueAccessor, NvAvatar, NvBadge, NvBreadcrumb, NvBreadcrumbs, NvButton, NvButtongroup, NvCalendar, NvCalendarValueAccessor, NvCol, NvDatagrid, NvDatagridValueAccessor, NvDatagridcolumn, NvDialog, NvDialogValueAccessor, NvDialogfooter, NvDialogheader, NvFieldcheckbox, NvFieldcheckboxValueAccessor, NvFielddate, NvFielddateValueAccessor, NvFielddaterange, NvFielddaterangeValueAccessor, NvFielddropdown, NvFielddropdownValueAccessor, NvFielddropdownitem, NvFielddropdownitemcheck, NvFieldmultiselect, NvFieldmultiselectValueAccessor, NvFieldnumber, NvFieldnumberValueAccessor, NvFieldpassword, NvFieldpasswordValueAccessor, NvFieldradio, NvFieldradioValueAccessor, NvFieldselect, NvFieldselectValueAccessor, NvFieldslider, NvFieldsliderValueAccessor, NvFieldtext, NvFieldtextValueAccessor, NvFieldtextarea, NvFieldtextareaValueAccessor, NvFieldtime, NvIcon, NvIconbutton, NvLoader, NvMenu, NvMenuitem, NvPopover, NvPopoverValueAccessor, NvRow, NvStack, NvTable, NvTablecolumn, NvToggle, NvToggleValueAccessor, NvTogglebutton, NvTogglebuttongroup, NvTogglebuttongroupValueAccessor, NvTooltip, VALUE_ACCESSORS };
2100
+ export { NovaComponentsModule, NovaComponentsValueAccessorModule, NvAccordion, NvAccordionItem, NvAlert, NvAlertValueAccessor, NvAvatar, NvBadge, NvBreadcrumb, NvBreadcrumbs, NvButton, NvButtongroup, NvCalendar, NvCalendarValueAccessor, NvCol, NvDatagrid, NvDatagridValueAccessor, NvDatagridcolumn, NvDialog, NvDialogValueAccessor, NvDialogfooter, NvDialogheader, NvFieldcheckbox, NvFieldcheckboxValueAccessor, NvFielddate, NvFielddateValueAccessor, NvFielddaterange, NvFielddaterangeValueAccessor, NvFielddropdown, NvFielddropdownValueAccessor, NvFielddropdownitem, NvFielddropdownitemcheck, NvFieldmultiselect, NvFieldmultiselectValueAccessor, NvFieldnumber, NvFieldnumberValueAccessor, NvFieldpassword, NvFieldpasswordValueAccessor, NvFieldradio, NvFieldradioValueAccessor, NvFieldselect, NvFieldselectValueAccessor, NvFieldslider, NvFieldsliderValueAccessor, NvFieldtext, NvFieldtextValueAccessor, NvFieldtextarea, NvFieldtextareaValueAccessor, NvFieldtime, NvIcon, NvIconbutton, NvLoader, NvMenu, NvMenuitem, NvNotification, NvNotificationValueAccessor, NvPopover, NvPopoverValueAccessor, NvRow, NvStack, NvTable, NvTablecolumn, NvToggle, NvToggleValueAccessor, NvTogglebutton, NvTogglebuttongroup, NvTogglebuttongroupValueAccessor, NvTooltip, VALUE_ACCESSORS };
2036
2101
  //# sourceMappingURL=nova-components.mjs.map