@ndwnu/design-system 12.1.0 → 12.2.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/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;
@@ -1223,17 +1252,32 @@ declare class TabComponent implements OnInit {
1223
1252
  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
1253
  }
1225
1254
 
1226
- declare class TabGroupComponent {
1255
+ declare class TabGroupComponent implements OnDestroy {
1256
+ private readonly _injector;
1257
+ private readonly _destroyRef;
1227
1258
  private readonly _tabs;
1228
1259
  private readonly _tabButtons;
1229
- tabs: _angular_core.Signal<TabComponent[]>;
1260
+ private readonly _tabGroupContainer;
1230
1261
  hasPadding: _angular_core.InputSignal<boolean>;
1231
1262
  activeTabId: _angular_core.ModelSignal<string | number | undefined>;
1232
1263
  inlinePadding: _angular_core.InputSignal<number>;
1264
+ private readonly _scrollLeft;
1265
+ private readonly _scrollWidth;
1266
+ private readonly _clientWidth;
1267
+ tabs: _angular_core.Signal<TabComponent[]>;
1268
+ canScrollLeft: _angular_core.Signal<boolean>;
1269
+ canScrollRight: _angular_core.Signal<boolean>;
1270
+ private _resizeObserver?;
1233
1271
  constructor();
1272
+ ngOnDestroy(): void;
1273
+ private _setupScrollDetection;
1274
+ private _updateScrollState;
1275
+ scrollTo(direction: 'left' | 'right'): void;
1234
1276
  selectTab(index: number): void;
1235
1277
  onKeyDown(event: KeyboardEvent): void;
1236
1278
  private getNextEnabledIndex;
1279
+ private getFirstEnabledIndex;
1280
+ private getLastEnabledIndex;
1237
1281
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabGroupComponent, never>;
1238
1282
  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
1283
  }
@@ -1331,5 +1375,5 @@ declare class TooltipDirective implements OnChanges, OnDestroy, OnInit {
1331
1375
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TooltipDirective, "[ndwTooltip]", never, { "text": { "alias": "ndwTooltip"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
1332
1376
  }
1333
1377
 
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 };
1378
+ 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
1379
  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.0",
4
4
  "peerDependencies": {
5
5
  "@angular/animations": "^20.0.0",
6
6
  "@angular/cdk": "^20.0.0",
@@ -10,6 +10,7 @@
10
10
  "@angular/material": "^20.0.0",
11
11
  "@angular/router": "^20.0.0",
12
12
  "@ndwnu/core": "2.1.0",
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);