@ndwnu/design-system 12.1.0 → 12.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -167,6 +167,7 @@ declare class DatepickerComponent implements ControlValueAccessor {
167
167
  protected onDateInput(input: string): void;
168
168
  protected removeDate(date: Date): void;
169
169
  protected onDateSelected(date: Date | Date[] | null): void;
170
+ protected onPopoverOpenChange(isOpen: boolean): void;
170
171
  writeValue(value: Date | Date[] | null): void;
171
172
  registerOnChange(fn: (value: Date | Date[] | null) => void): void;
172
173
  registerOnTouched(_fn: () => void): void;
@@ -333,6 +334,33 @@ declare class InputIconComponent {
333
334
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputIconComponent, "ndw-input-icon", never, {}, {}, never, ["*"], true, never>;
334
335
  }
335
336
 
337
+ declare class MarkdownEditorComponent implements ControlValueAccessor {
338
+ private readonly ngControl;
339
+ readonly uuid: _angular_core.InputSignal<`${string}-${string}-${string}-${string}-${string}`>;
340
+ readonly value: _angular_core.ModelSignal<string>;
341
+ readonly disabled: _angular_core.ModelSignal<boolean>;
342
+ readonly error: _angular_core.InputSignal<boolean>;
343
+ readonly readonly: _angular_core.InputSignal<boolean>;
344
+ readonly success: _angular_core.InputSignal<boolean>;
345
+ readonly required: _angular_core.InputSignal<boolean>;
346
+ readonly toolbar: _angular_core.InputSignal<string[]>;
347
+ readonly bold: _angular_core.Signal<boolean>;
348
+ readonly header: _angular_core.Signal<boolean>;
349
+ readonly italic: _angular_core.Signal<boolean>;
350
+ readonly quote: _angular_core.Signal<boolean>;
351
+ readonly unorderedList: _angular_core.Signal<boolean>;
352
+ readonly orderedList: _angular_core.Signal<boolean>;
353
+ readonly taskList: _angular_core.Signal<boolean>;
354
+ get isRequiredOrHasRequiredValidator(): boolean | null;
355
+ constructor();
356
+ writeValue(value: string): void;
357
+ registerOnChange(fn: (value: string | null | undefined) => void): void;
358
+ registerOnTouched(): void;
359
+ setDisabledState?(isDisabled: boolean): void;
360
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MarkdownEditorComponent, never>;
361
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MarkdownEditorComponent, "ndw-markdown-editor", never, { "uuid": { "alias": "uuid"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "success": { "alias": "success"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "toolbar": { "alias": "toolbar"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "disabled": "disabledChange"; }, never, never, true, never>;
362
+ }
363
+
336
364
  type OptionGroupMode = 'single' | 'multiple';
337
365
 
338
366
  declare class OptionComponent {
@@ -1038,6 +1066,7 @@ declare class MultiSelectComponent {
1038
1066
  protected readonly lastCheckedElementId: _angular_core.ModelSignal<string | number | null | undefined>;
1039
1067
  protected readonly searchInputValue: _angular_core.ModelSignal<string>;
1040
1068
  protected readonly isOpen: _angular_core.WritableSignal<boolean>;
1069
+ protected readonly viewItems: _angular_core.Signal<CheckboxData[]>;
1041
1070
  readonly selectAmount: _angular_core.Signal<number>;
1042
1071
  readonly noSearchResults: _angular_core.Signal<boolean>;
1043
1072
  filterSearch(value: string): boolean;
@@ -1188,7 +1217,9 @@ declare class SwitcherComponent implements ControlValueAccessor, OnInit {
1188
1217
  readonly options: _angular_core.InputSignal<SwitcherOption[]>;
1189
1218
  readonly selectedValue: _angular_core.ModelSignal<string | undefined>;
1190
1219
  readonly disabled: _angular_core.ModelSignal<boolean>;
1220
+ readonly vertical: _angular_core.InputSignal<boolean>;
1191
1221
  readonly selectionChange: _angular_core.OutputEmitterRef<string>;
1222
+ sliderHeight: string;
1192
1223
  sliderWidth: string;
1193
1224
  sliderPosition: string;
1194
1225
  private onChange;
@@ -1203,7 +1234,7 @@ declare class SwitcherComponent implements ControlValueAccessor, OnInit {
1203
1234
  generateId(index: number): string;
1204
1235
  get componentName(): string;
1205
1236
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SwitcherComponent, never>;
1206
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SwitcherComponent, "ndw-switcher", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "selectedValue": { "alias": "selectedValue"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "selectedValue": "selectedValueChange"; "disabled": "disabledChange"; "selectionChange": "selectionChange"; }, never, never, true, never>;
1237
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SwitcherComponent, "ndw-switcher", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "selectedValue": { "alias": "selectedValue"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "vertical": { "alias": "vertical"; "required": false; "isSignal": true; }; }, { "selectedValue": "selectedValueChange"; "disabled": "disabledChange"; "selectionChange": "selectionChange"; }, never, never, true, never>;
1207
1238
  }
1208
1239
 
1209
1240
  declare class TabComponent implements OnInit {
@@ -1223,17 +1254,32 @@ declare class TabComponent implements OnInit {
1223
1254
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabComponent, "ndw-tab", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hasError": { "alias": "hasError"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1224
1255
  }
1225
1256
 
1226
- declare class TabGroupComponent {
1257
+ declare class TabGroupComponent implements OnDestroy {
1258
+ private readonly _injector;
1259
+ private readonly _destroyRef;
1227
1260
  private readonly _tabs;
1228
1261
  private readonly _tabButtons;
1229
- tabs: _angular_core.Signal<TabComponent[]>;
1262
+ private readonly _tabGroupContainer;
1230
1263
  hasPadding: _angular_core.InputSignal<boolean>;
1231
1264
  activeTabId: _angular_core.ModelSignal<string | number | undefined>;
1232
1265
  inlinePadding: _angular_core.InputSignal<number>;
1266
+ private readonly _scrollLeft;
1267
+ private readonly _scrollWidth;
1268
+ private readonly _clientWidth;
1269
+ tabs: _angular_core.Signal<TabComponent[]>;
1270
+ canScrollLeft: _angular_core.Signal<boolean>;
1271
+ canScrollRight: _angular_core.Signal<boolean>;
1272
+ private _resizeObserver?;
1233
1273
  constructor();
1274
+ ngOnDestroy(): void;
1275
+ private _setupScrollDetection;
1276
+ private _updateScrollState;
1277
+ scrollTo(direction: 'left' | 'right'): void;
1234
1278
  selectTab(index: number): void;
1235
1279
  onKeyDown(event: KeyboardEvent): void;
1236
1280
  private getNextEnabledIndex;
1281
+ private getFirstEnabledIndex;
1282
+ private getLastEnabledIndex;
1237
1283
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabGroupComponent, never>;
1238
1284
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabGroupComponent, "ndw-tab-group", never, { "hasPadding": { "alias": "hasPadding"; "required": false; "isSignal": true; }; "activeTabId": { "alias": "activeTabId"; "required": false; "isSignal": true; }; "inlinePadding": { "alias": "inlinePadding"; "required": false; "isSignal": true; }; }, { "activeTabId": "activeTabIdChange"; }, ["_tabs"], never, true, never>;
1239
1285
  }
@@ -1331,5 +1377,5 @@ declare class TooltipDirective implements OnChanges, OnDestroy, OnInit {
1331
1377
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TooltipDirective, "[ndwTooltip]", never, { "text": { "alias": "ndwTooltip"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
1332
1378
  }
1333
1379
 
1334
- export { AccordionComponent, AccordionService, AlertComponent, AutoGrowDirective, AutosuggestAddOptionComponent, AutosuggestDirective, AutosuggestOptionComponent, AutosuggestPanelComponent, AvatarComponent, BadgeComponent, BannerComponent, BreadcrumbComponent, BreadcrumbGroupComponent, ButtonDirective, CARD_COMPONENTS, CARD_ID_TOKEN, CalendarComponent, CardComponent, CardContentComponent, CardFooterComponent, CardHeaderComponent, CheckboxComponent, CheckboxGroupComponent, CollapsibleComponent, DEFAULT_BACKGROUNDS, DashboardCardComponent, DatepickerComponent, DropdownComponent, EditBarActionsComponent, EditBarComponent, EditBarMessageComponent, ErrorComponent, FavoriteComponent, FileUploadComponent, FormFieldComponent, FormFieldElement, HoverableListItemComponent, IconComponent, InfoComponent, InputButtonComponent, InputDirective, InputIconComponent, KeyValueListComponent, LayoutBannersComponent, LayoutComponent, ListComponent, ListItemComponent, LoaderComponent, MAP_BACKGROUNDS, MAP_BACKGROUND_IMAGES, MAP_LAYERS, MAP_LAYER_IMAGES, MODAL_COMPONENTS, MainNavigationComponent, MapButtonComponent, MapDisplayComponent, MapDisplayOptionComponent, MapLegendComponent, MaxCharDirective, ModalComponent, ModalContentComponent, ModalFooterComponent, ModalHeaderComponent, ModalService, MonthInputComponent, MultiSelectComponent, OptionComponent, OptionGroupComponent, PillComponent, PopoverTriggerDirective, RadioButtonComponent, RadioGroupComponent, RouterBreadcrumbsComponent, SplitterComponent, SummaryCardActionComponent, SummaryCardActionsComponent, SummaryCardComponent, SummaryCardContentComponent, SummaryCardHeaderComponent, SummaryCardSubtitleComponent, SummaryCardTagComponent, SummaryCardTagsComponent, SwitcherComponent, TabComponent, TabGroupComponent, TagComponent, ToastComponent, ToastService, TooltipComponent, TooltipDirective, fontMapButtonIcons, mapButtonIcons, ndwAgGridTheme, svgMapButtonIcons };
1380
+ export { AccordionComponent, AccordionService, AlertComponent, AutoGrowDirective, AutosuggestAddOptionComponent, AutosuggestDirective, AutosuggestOptionComponent, AutosuggestPanelComponent, AvatarComponent, BadgeComponent, BannerComponent, BreadcrumbComponent, BreadcrumbGroupComponent, ButtonDirective, CARD_COMPONENTS, CARD_ID_TOKEN, CalendarComponent, CardComponent, CardContentComponent, CardFooterComponent, CardHeaderComponent, CheckboxComponent, CheckboxGroupComponent, CollapsibleComponent, DEFAULT_BACKGROUNDS, DashboardCardComponent, DatepickerComponent, DropdownComponent, EditBarActionsComponent, EditBarComponent, EditBarMessageComponent, ErrorComponent, FavoriteComponent, FileUploadComponent, FormFieldComponent, FormFieldElement, HoverableListItemComponent, IconComponent, InfoComponent, InputButtonComponent, InputDirective, InputIconComponent, KeyValueListComponent, LayoutBannersComponent, LayoutComponent, ListComponent, ListItemComponent, LoaderComponent, MAP_BACKGROUNDS, MAP_BACKGROUND_IMAGES, MAP_LAYERS, MAP_LAYER_IMAGES, MODAL_COMPONENTS, MainNavigationComponent, MapButtonComponent, MapDisplayComponent, MapDisplayOptionComponent, MapLegendComponent, MarkdownEditorComponent, MaxCharDirective, ModalComponent, ModalContentComponent, ModalFooterComponent, ModalHeaderComponent, ModalService, MonthInputComponent, MultiSelectComponent, OptionComponent, OptionGroupComponent, PillComponent, PopoverTriggerDirective, RadioButtonComponent, RadioGroupComponent, RouterBreadcrumbsComponent, SplitterComponent, SummaryCardActionComponent, SummaryCardActionsComponent, SummaryCardComponent, SummaryCardContentComponent, SummaryCardHeaderComponent, SummaryCardSubtitleComponent, SummaryCardTagComponent, SummaryCardTagsComponent, SwitcherComponent, TabComponent, TabGroupComponent, TagComponent, ToastComponent, ToastService, TooltipComponent, TooltipDirective, fontMapButtonIcons, mapButtonIcons, ndwAgGridTheme, svgMapButtonIcons };
1335
1381
  export type { AlertType, AvatarColor, AvatarStatus, BannerType, BaseMapLegendOption, CheckType, CheckboxData, CircleMapLegendOption, DatepickerMode, DisplayOptionDirection, DisplayOptionType, EditBarPosition, EditBarWidth, Environment, FileUploadText, HoverableListItemAction, IconMapLegendOption, ImageMapLegendOption, LineMapLegendOption, MapBackgroundOption, MapBackgrounds, MapButtonIcon, MapDisplayOption, MapLegendOption, MapLegendOptionGroup, MapLegendOptionType, MapLegendViewMode, MenuItem, ModalSize, OptionGroupMode, PolygonMapLegendOption, PopoverPosition, SelectAllText, SubMenuItem, SummaryActionsView, SwitcherOption, Theme, ToastDimensions };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ndwnu/design-system",
3
- "version": "12.1.0",
3
+ "version": "12.2.1",
4
4
  "peerDependencies": {
5
5
  "@angular/animations": "^20.0.0",
6
6
  "@angular/cdk": "^20.0.0",
@@ -9,7 +9,8 @@
9
9
  "@angular/forms": "^20.0.0",
10
10
  "@angular/material": "^20.0.0",
11
11
  "@angular/router": "^20.0.0",
12
- "@ndwnu/core": "2.1.0",
12
+ "@ndwnu/core": "2.1.1",
13
+ "@github/markdown-toolbar-element": "2.2.3",
13
14
  "ag-grid-angular": "^34.0.2",
14
15
  "ag-grid-community": "^34.0.2",
15
16
  "rxjs": "^7.8.0"
@@ -90,17 +90,17 @@
90
90
  outline-width: 1px;
91
91
  }
92
92
 
93
- .input-container:has(> [ndwInput][error]) {
93
+ .input-container:has([ndwInput][error]) {
94
94
  background-color: var(--ndw-color-critical-100);
95
95
  border-color: var(--ndw-color-critical-500);
96
96
  }
97
97
 
98
98
  // Add input container right padding when select element is used
99
- .input-container:has(> select[ndwInput]) {
99
+ .input-container:has(select[ndwInput]) {
100
100
  padding-inline-end: var(--ndw-spacing-xs);
101
101
  }
102
102
 
103
- .input-container[error]:has(> [ndwInput]:is(:active, :focus, :focus-visible)) {
103
+ .input-container[error]:has([ndwInput]:is(:active, :focus, :focus-visible)) {
104
104
  background-color: var(--ndw-color-white);
105
105
  select[ndwInput] {
106
106
  background-color: var(--ndw-color-white);
@@ -109,10 +109,11 @@
109
109
 
110
110
  // When an ndwInput is contained in an input-container hide the
111
111
  // ndwInput borders and instead put the borders on the container.
112
- .input-container:has(> [ndwInput]),
113
- .input-container:has(> ndw-datepicker > [ndwInput]) {
112
+ .input-container:has([ndwInput]) {
114
113
  @include shared-style();
115
114
 
115
+ gap: var(--ndw-spacing-xs);
116
+
116
117
  // When input has a ndw-input-icon enable the inline padding
117
118
  &:has(> ndw-input-icon) {
118
119
  padding-inline: var(--ndw-spacing-xs);
@@ -121,8 +122,6 @@
121
122
  padding-inline-end: var(--ndw-spacing-xs);
122
123
  }
123
124
 
124
- gap: var(--ndw-spacing-xs);
125
-
126
125
  // Any elements before the input have a lighter grey color
127
126
  > *:has(~ [ndwInput]) {
128
127
  color: var(--ndw-color-grey-400);