@acontplus/ng-components 3.0.0 → 3.1.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 (30) hide show
  1. package/README.md +55 -6
  2. package/fesm2022/acontplus-ng-components.mjs +7326 -4620
  3. package/fesm2022/acontplus-ng-components.mjs.map +1 -1
  4. package/package.json +8 -2
  5. package/src/_index.scss +2 -0
  6. package/src/core/style/_breakpoints.scss +63 -0
  7. package/src/core/style/_variables.scss +9 -0
  8. package/src/core/theming/_all-theme.scss +16 -1
  9. package/src/core/theming/prebuilt/aqua.scss +1 -1
  10. package/src/core/theming/prebuilt/blue.scss +1 -1
  11. package/src/core/theming/prebuilt/cyan.scss +1 -1
  12. package/src/core/theming/prebuilt/green.scss +1 -1
  13. package/src/core/theming/prebuilt/orange.scss +1 -1
  14. package/src/core/theming/prebuilt/pink.scss +1 -1
  15. package/src/core/theming/prebuilt/purple.scss +1 -1
  16. package/src/core/theming/prebuilt/rose.scss +1 -1
  17. package/src/core/tokens/_global-variables.scss +53 -0
  18. package/src/lib/components/button/v2/button.scss +172 -12
  19. package/src/lib/components/card/card.scss +225 -0
  20. package/src/lib/components/context-menu/context-menu-panel.scss +283 -0
  21. package/src/lib/components/date-range-input/date-range-input.scss +4 -0
  22. package/src/lib/components/theme/header/header.scss +166 -0
  23. package/src/lib/components/theme/shell-layout/shell-layout.scss +237 -0
  24. package/src/lib/components/theme/sidebar/sidebar.scss +0 -0
  25. package/src/lib/components/theme/sidemenu/sidemenu.scss +169 -0
  26. package/src/lib/components/theme/topmenu/topmenu.scss +83 -0
  27. package/src/lib/components/theme/user-menu/user-menu.scss +194 -0
  28. package/src/lib/components/theme/user-panel/user-panel.scss +64 -0
  29. package/types/acontplus-ng-components.d.ts +1595 -37
  30. /package/src/lib/components/{theme-toggle → theme/theme-toggle}/theme-toggle.scss +0 -0
@@ -1,5 +1,7 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { EventEmitter, TemplateRef, Type, AfterViewInit, OnDestroy, Signal, ViewContainerRef, ElementRef, OnInit, OnChanges, SimpleChanges, NgZone, InjectionToken, QueryList, TrackByFunction, KeyValueChangeRecord, OutputEmitterRef, WritableSignal, ComponentRef, AfterContentInit, PipeTransform } from '@angular/core';
2
+ import { EventEmitter, TemplateRef, InjectionToken, OnDestroy, OnInit, ElementRef, Type, AfterViewInit, Signal, ViewContainerRef, OnChanges, SimpleChanges, NgZone, QueryList, TrackByFunction, KeyValueChangeRecord, OutputEmitterRef, WritableSignal, ComponentRef, AfterContentInit, PipeTransform } from '@angular/core';
3
+ import * as rxjs from 'rxjs';
4
+ import { Observable, Subject } from 'rxjs';
3
5
  import { MatDialogRef } from '@angular/material/dialog';
4
6
  import { ScrollStrategy } from '@angular/cdk/overlay';
5
7
  import { FormControl, ControlValueAccessor, FormGroup } from '@angular/forms';
@@ -16,8 +18,6 @@ import { MatBadgePosition, MatBadgeSize } from '@angular/material/badge';
16
18
  import { MatButtonAppearance } from '@angular/material/button';
17
19
  import { ThemePalette } from '@angular/material/core';
18
20
  import { TooltipPosition, TooltipTouchGestures } from '@angular/material/tooltip';
19
- import * as rxjs from 'rxjs';
20
- import { Observable, Subject } from 'rxjs';
21
21
  import { CdkDragDrop } from '@angular/cdk/drag-drop';
22
22
  import { MatMenu, MatMenuTrigger } from '@angular/material/menu';
23
23
  import { NgxDatexLocale, NgxDatexTheme, NgxDatexValue } from 'ngx-datex';
@@ -28,6 +28,8 @@ import { DialogRole, CdkDialogContainer, DialogRef } from '@angular/cdk/dialog';
28
28
  import { DateRange, MatCalendar } from '@angular/material/datepicker';
29
29
  import { MatCheckbox, MatCheckboxChange } from '@angular/material/checkbox';
30
30
  import * as _acontplus_ng_components from '@acontplus/ng-components';
31
+ import { MatSidenav, MatSidenavContent } from '@angular/material/sidenav';
32
+ import { RouterLinkActive } from '@angular/router';
31
33
 
32
34
  type AcpAlertType = 'default' | 'info' | 'success' | 'warning' | 'danger';
33
35
  declare class AcpAlert {
@@ -241,6 +243,422 @@ declare class DynamicCard {
241
243
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicCard, "acp-dynamic-card", never, { "cardTitle": { "alias": "cardTitle"; "required": false; "isSignal": true; }; "cardSubtitle": { "alias": "cardSubtitle"; "required": false; "isSignal": true; }; "avatarImageUrl": { "alias": "avatarImageUrl"; "required": false; "isSignal": true; }; "isHeaderVisible": { "alias": "isHeaderVisible"; "required": false; "isSignal": true; }; "contentPadding": { "alias": "contentPadding"; "required": false; "isSignal": true; }; "hasDivider": { "alias": "hasDivider"; "required": false; "isSignal": true; }; "areActionsVisible": { "alias": "areActionsVisible"; "required": false; "isSignal": true; }; "primaryButtonText": { "alias": "primaryButtonText"; "required": false; "isSignal": true; }; "secondaryButtonText": { "alias": "secondaryButtonText"; "required": false; "isSignal": true; }; "primaryButtonIcon": { "alias": "primaryButtonIcon"; "required": false; "isSignal": true; }; "secondaryButtonIcon": { "alias": "secondaryButtonIcon"; "required": false; "isSignal": true; }; "buttonsPosition": { "alias": "buttonsPosition"; "required": false; "isSignal": true; }; }, { "primaryButtonClicked": "primaryButtonClicked"; "secondaryButtonClicked": "secondaryButtonClicked"; "cardClicked": "cardClicked"; "keyDown": "keyDown"; "keyUp": "keyUp"; "keyPress": "keyPress"; }, never, ["*"], true, never>;
242
244
  }
243
245
 
246
+ /**
247
+ * Context Menu Types and Interfaces
248
+ * Defines the API contract for the ContextMenu component
249
+ */
250
+ /**
251
+ * Represents a single item in the context menu
252
+ */
253
+ interface AcpContextMenuItem {
254
+ /** Unique identifier for the menu item */
255
+ id?: string;
256
+ /** Display label for the menu item (not required for separators) */
257
+ label?: string;
258
+ /** Material Icon name or SVG icon identifier */
259
+ icon?: string;
260
+ /** Badge text or number to display */
261
+ badge?: string | number;
262
+ /** Keyboard shortcut text to display (e.g., 'Ctrl+S') */
263
+ shortcut?: string;
264
+ /** Whether the menu item is disabled */
265
+ disabled?: boolean;
266
+ /** Whether the menu item is visible */
267
+ visible?: boolean;
268
+ /** Whether this is a separator line (ignores other properties) */
269
+ separator?: boolean;
270
+ /** Nested menu items for submenu support */
271
+ children?: AcpContextMenuItem[];
272
+ /** Callback function when item is clicked */
273
+ command?: (context: AcpContextMenuItemContext) => void;
274
+ /** Router link for navigation */
275
+ routerLink?: any;
276
+ /** External URL to navigate to */
277
+ url?: string;
278
+ /** Target for URL navigation (_blank, _self, etc) */
279
+ target?: string;
280
+ /** Whether this is a dangerous action (e.g., delete) */
281
+ danger?: boolean;
282
+ /** Whether the item is in loading state */
283
+ loading?: boolean;
284
+ /** Tooltip text for the menu item */
285
+ tooltip?: string;
286
+ /** Custom data associated with the menu item */
287
+ data?: unknown;
288
+ /** CSS class to apply to the menu item */
289
+ class?: string;
290
+ /** Whether to close menu after executing command */
291
+ closeOnClick?: boolean;
292
+ }
293
+ /**
294
+ * Context passed to the command callback
295
+ */
296
+ interface AcpContextMenuItemContext {
297
+ /** The menu item that was clicked */
298
+ item: AcpContextMenuItem;
299
+ /** The event that triggered the action */
300
+ event: MouseEvent | KeyboardEvent;
301
+ /** The element that triggered the context menu */
302
+ element?: HTMLElement;
303
+ /** Custom data passed to the context menu */
304
+ data?: unknown;
305
+ /** Row data (for DataGrid integration) */
306
+ row?: unknown;
307
+ /** Column data (for DataGrid integration) */
308
+ column?: unknown;
309
+ /** Row index (for DataGrid integration) */
310
+ index?: number;
311
+ }
312
+ /**
313
+ * Configuration for opening a context menu
314
+ */
315
+ interface AcpContextMenuOpenConfig {
316
+ /** X coordinate for menu position */
317
+ x: number;
318
+ /** Y coordinate for menu position */
319
+ y: number;
320
+ /** Element to position relative to (if not using x/y) */
321
+ element?: HTMLElement;
322
+ /** Custom data to pass to menu items */
323
+ data?: unknown;
324
+ /** Close menu when clicking outside */
325
+ closeOnOutsideClick?: boolean;
326
+ /** Close menu when pressing Escape */
327
+ closeOnEscape?: boolean;
328
+ /** Custom CSS classes for the menu panel */
329
+ panelClass?: string | string[];
330
+ /** Z-index for the menu overlay */
331
+ zIndex?: number;
332
+ }
333
+ /**
334
+ * Configuration for the context menu trigger
335
+ */
336
+ interface AcpContextMenuTriggerConfig {
337
+ /** Trigger on right-click (contextmenu event) */
338
+ rightClick?: boolean;
339
+ /** Trigger on left-click */
340
+ leftClick?: boolean;
341
+ /** Trigger on hover */
342
+ hover?: boolean;
343
+ /** Delay before opening on hover (ms) */
344
+ hoverDelay?: number;
345
+ /** Delay before closing on hover leave (ms) */
346
+ hoverLeaveDelay?: number;
347
+ /** Custom data to pass to menu items */
348
+ data?: unknown;
349
+ /** Close menu when clicking outside */
350
+ closeOnOutsideClick?: boolean;
351
+ /** Close menu when pressing Escape */
352
+ closeOnEscape?: boolean;
353
+ }
354
+ /**
355
+ * Position strategy for the context menu
356
+ */
357
+ type AcpContextMenuPosition = 'auto' | 'above' | 'below' | 'left' | 'right';
358
+ /**
359
+ * Reference to an open context menu
360
+ */
361
+ interface AcpContextMenuRef {
362
+ /** Close the context menu */
363
+ close(): void;
364
+ /** Update menu items */
365
+ updateItems(items: AcpContextMenuItem[]): void;
366
+ /** Get current menu items */
367
+ getItems(): AcpContextMenuItem[];
368
+ /** Update context data */
369
+ updateData(data: unknown): void;
370
+ /** Get current context data */
371
+ getData(): unknown;
372
+ /** Check if menu is open */
373
+ isOpen(): boolean;
374
+ }
375
+
376
+ declare const CONTEXT_MENU_ITEMS: InjectionToken<AcpContextMenuItem[]>;
377
+ declare const CONTEXT_MENU_DATA: InjectionToken<unknown>;
378
+ /**
379
+ * Service to manage context menu instances
380
+ * Handles overlay creation, positioning, and lifecycle management
381
+ */
382
+ declare class AcpContextMenuService {
383
+ private readonly overlay;
384
+ private readonly ngZone;
385
+ private readonly document;
386
+ private readonly injector;
387
+ private readonly openMenuRef;
388
+ private readonly menuItems;
389
+ private readonly contextData;
390
+ private readonly itemSelected$;
391
+ constructor();
392
+ /**
393
+ * Open a context menu at the specified position
394
+ */
395
+ open(items: AcpContextMenuItem[], config: AcpContextMenuOpenConfig): Promise<AcpContextMenuRef>;
396
+ /**
397
+ * Close all open context menus
398
+ */
399
+ closeAll(): void;
400
+ /**
401
+ * Check if any menu is open
402
+ */
403
+ isOpen(): boolean;
404
+ /**
405
+ * Get the item selection subject
406
+ */
407
+ getItemSelected$(): rxjs.Observable<AcpContextMenuItemContext>;
408
+ /**
409
+ * Emit item selection
410
+ */
411
+ selectItem(context: AcpContextMenuItemContext): void;
412
+ /**
413
+ * Create overlay reference with position strategy
414
+ */
415
+ private createOverlay;
416
+ /**
417
+ * Create position strategy for the overlay
418
+ */
419
+ private createPositionStrategy;
420
+ /**
421
+ * Create injector for the menu component
422
+ */
423
+ private createInjector;
424
+ /**
425
+ * Create menu reference object
426
+ */
427
+ private createMenuRef;
428
+ /**
429
+ * Setup handler for closing menu on outside click
430
+ */
431
+ private setupOutsideClickHandler;
432
+ /**
433
+ * Check if click is inside the menu
434
+ */
435
+ private isClickInsideMenu;
436
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpContextMenuService, never>;
437
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AcpContextMenuService>;
438
+ }
439
+
440
+ /**
441
+ * Directive to attach a context menu to any element
442
+ *
443
+ * @example
444
+ * ```html
445
+ * <div [acpContextMenu]="menuItems" [contextMenuData]="row">
446
+ * Right-click me
447
+ * </div>
448
+ * ```
449
+ *
450
+ * @example
451
+ * ```html
452
+ * <div
453
+ * [acpContextMenu]="items"
454
+ * [contextMenuTrigger]="{ leftClick: true }"
455
+ * (contextMenuItemSelected)="onItemSelected($event)">
456
+ * Left-click me
457
+ * </div>
458
+ * ```
459
+ */
460
+ declare class AcpContextMenuDirective implements OnDestroy {
461
+ private readonly elementRef;
462
+ private readonly contextMenuService;
463
+ private destroy$;
464
+ private menuRef;
465
+ private hoverTimeout;
466
+ /** Menu items to display */
467
+ acpContextMenu: AcpContextMenuItem[];
468
+ /** Custom data to pass to menu items */
469
+ contextMenuData?: unknown;
470
+ /** Trigger configuration */
471
+ contextMenuTrigger: AcpContextMenuTriggerConfig;
472
+ /** Emitted when a menu item is selected */
473
+ contextMenuItemSelected: EventEmitter<AcpContextMenuItemContext>;
474
+ /** Emitted when menu is opened */
475
+ contextMenuOpened: EventEmitter<AcpContextMenuRef>;
476
+ /** Emitted when menu is closed */
477
+ contextMenuClosed: EventEmitter<void>;
478
+ constructor();
479
+ ngOnDestroy(): void;
480
+ /**
481
+ * Handle right-click
482
+ */
483
+ onContextMenu(event: MouseEvent): void;
484
+ /**
485
+ * Handle left-click
486
+ */
487
+ onClick(event: MouseEvent): void;
488
+ /**
489
+ * Handle mouse enter for hover trigger
490
+ */
491
+ onMouseEnter(): void;
492
+ /**
493
+ * Handle mouse leave for hover trigger
494
+ */
495
+ onMouseLeave(): void;
496
+ /**
497
+ * Open the context menu
498
+ */
499
+ openMenu(x: number, y: number, _event: MouseEvent | KeyboardEvent, rowData?: unknown): void;
500
+ /**
501
+ * Close the context menu
502
+ */
503
+ closeMenu(): void;
504
+ /**
505
+ * Update menu items
506
+ */
507
+ updateItems(items: AcpContextMenuItem[]): void;
508
+ /**
509
+ * Update context data
510
+ */
511
+ updateData(data: unknown): void;
512
+ /**
513
+ * Check if menu is open
514
+ */
515
+ isOpen(): boolean;
516
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpContextMenuDirective, never>;
517
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AcpContextMenuDirective, "[acpContextMenu]", ["acpContextMenu"], { "acpContextMenu": { "alias": "acpContextMenu"; "required": false; }; "contextMenuData": { "alias": "contextMenuData"; "required": false; }; "contextMenuTrigger": { "alias": "contextMenuTrigger"; "required": false; }; }, { "contextMenuItemSelected": "contextMenuItemSelected"; "contextMenuOpened": "contextMenuOpened"; "contextMenuClosed": "contextMenuClosed"; }, never, never, true, never>;
518
+ }
519
+
520
+ /**
521
+ * Internal component that renders the context menu panel
522
+ * Not meant to be used directly - use ContextMenuService or ngContextMenu directive
523
+ */
524
+ declare class AcpContextMenuPanel implements OnInit, OnDestroy {
525
+ private readonly contextMenuService;
526
+ private readonly ngZone;
527
+ private readonly elementRef;
528
+ menuContainer?: ElementRef;
529
+ items: _angular_core.WritableSignal<AcpContextMenuItem[]>;
530
+ contextData: _angular_core.WritableSignal<unknown>;
531
+ selectedIndex: _angular_core.WritableSignal<number>;
532
+ expandedIndex: _angular_core.WritableSignal<number>;
533
+ private destroy$;
534
+ visibleItems: _angular_core.Signal<AcpContextMenuItem[]>;
535
+ ngOnInit(): void;
536
+ ngOnDestroy(): void;
537
+ /**
538
+ * Handle keyboard navigation
539
+ */
540
+ onKeyDown(event: KeyboardEvent): void;
541
+ /**
542
+ * Handle item click
543
+ */
544
+ onItemClick(item: AcpContextMenuItem, event: MouseEvent): void;
545
+ /**
546
+ * Handle item hover
547
+ */
548
+ onItemHover(index: number): void;
549
+ /**
550
+ * Check if item has children
551
+ */
552
+ hasChildren(item: AcpContextMenuItem): boolean;
553
+ /**
554
+ * Get item classes
555
+ */
556
+ getItemClasses(item: AcpContextMenuItem, index: number): Record<string, boolean>;
557
+ /**
558
+ * Select next item
559
+ */
560
+ private selectNext;
561
+ /**
562
+ * Select previous item
563
+ */
564
+ private selectPrevious;
565
+ /**
566
+ * Select first item
567
+ */
568
+ private selectFirst;
569
+ /**
570
+ * Select last item
571
+ */
572
+ private selectLast;
573
+ /**
574
+ * Expand selected item
575
+ */
576
+ private expandSelected;
577
+ /**
578
+ * Collapse selected item
579
+ */
580
+ private collapseSelected;
581
+ /**
582
+ * Activate selected item
583
+ */
584
+ private activateSelected;
585
+ /**
586
+ * Track by function for items
587
+ */
588
+ trackByIndex(index: number): number;
589
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpContextMenuPanel, never>;
590
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpContextMenuPanel, "acp-context-menu-panel", never, {}, {}, never, never, true, never>;
591
+ }
592
+
593
+ /**
594
+ * Declarative context menu component
595
+ *
596
+ * @example
597
+ * ```html
598
+ * <div #trigger>Right-click here</div>
599
+ * <acp-contextmenu #cm [model]="items" [target]="trigger" (onHide)="onHide()" />
600
+ *
601
+ * <button (click)="showMenu(event)">Show Menu</button>
602
+ * ```
603
+ *
604
+ * @example
605
+ * ```html
606
+ * <acp-contextmenu #cm [model]="items" (onHide)="onHide()" />
607
+ *
608
+ * <button (contextmenu)="onContextMenu($event)">Right-click</button>
609
+ * ```
610
+ */
611
+ declare class AcpContextMenu implements OnDestroy {
612
+ private readonly contextMenuService;
613
+ private destroy$;
614
+ private menuRef;
615
+ /** Menu items to display */
616
+ readonly model: _angular_core.InputSignal<AcpContextMenuItem[]>;
617
+ /** Target element to attach the context menu to */
618
+ readonly target: _angular_core.InputSignal<HTMLElement | undefined>;
619
+ /** Emitted when menu is hidden/closed */
620
+ readonly hide: _angular_core.OutputEmitterRef<void>;
621
+ /** Emitted when a menu item is selected */
622
+ readonly itemSelected: _angular_core.OutputEmitterRef<AcpContextMenuItemContext>;
623
+ constructor();
624
+ ngOnDestroy(): void;
625
+ /**
626
+ * Show the context menu at the specified position
627
+ *
628
+ * @param event - Mouse event or custom event with clientX/clientY
629
+ * @param data - Optional data to pass to menu items (e.g., row data)
630
+ */
631
+ show(event: MouseEvent | {
632
+ clientX: number;
633
+ clientY: number;
634
+ }, data?: unknown): void;
635
+ /**
636
+ * Show the context menu positioned relative to an element
637
+ *
638
+ * @param element - Element to position the menu relative to
639
+ * @param data - Optional data to pass to menu items
640
+ */
641
+ showForElement(element: HTMLElement, data?: unknown): void;
642
+ /**
643
+ * Close the context menu
644
+ */
645
+ close(): void;
646
+ /**
647
+ * Check if the menu is currently open
648
+ */
649
+ isOpen(): boolean;
650
+ /**
651
+ * Update the menu items
652
+ */
653
+ updateItems(items: AcpContextMenuItem[]): void;
654
+ /**
655
+ * Update the context data
656
+ */
657
+ updateData(data: unknown): void;
658
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpContextMenu, never>;
659
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpContextMenu, "acp-contextmenu", ["acpContextMenu"], { "model": { "alias": "model"; "required": true; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; }, { "hide": "hide"; "itemSelected": "itemSelected"; }, never, never, true, never>;
660
+ }
661
+
244
662
  type DialogSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl' | 'full';
245
663
  /**
246
664
  * @interface MatCustomDialogConfig
@@ -498,7 +916,7 @@ declare class DynamicSelect implements OnInit, OnDestroy {
498
916
  clearable: _angular_core.InputSignal<boolean>;
499
917
  searchable: _angular_core.InputSignal<boolean>;
500
918
  virtualScroll: _angular_core.InputSignal<boolean>;
501
- dropdownPosition: _angular_core.InputSignal<"auto" | "bottom" | "top">;
919
+ dropdownPosition: _angular_core.InputSignal<"auto" | "top" | "bottom">;
502
920
  closeOnSelect: _angular_core.InputSignal<boolean>;
503
921
  hideSelected: _angular_core.InputSignal<boolean>;
504
922
  multiple: _angular_core.InputSignal<boolean>;
@@ -725,12 +1143,16 @@ declare abstract class BaseButton {
725
1143
  icon: _angular_core.InputSignal<string | undefined>;
726
1144
  suffixIcon: _angular_core.InputSignal<string | undefined>;
727
1145
  loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
1146
+ showProgress: _angular_core.InputSignalWithTransform<boolean, unknown>;
1147
+ progressType: _angular_core.InputSignal<"text" | "spinner">;
1148
+ progressText: _angular_core.InputSignal<string>;
728
1149
  disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
729
1150
  disableRipple: _angular_core.InputSignalWithTransform<boolean, unknown>;
730
1151
  variant: _angular_core.InputSignal<AcpButtonVariant>;
731
1152
  appearance: _angular_core.InputSignal<AcpButtonAppearance>;
732
1153
  type: _angular_core.InputSignal<AcpButtonType>;
733
1154
  extended: _angular_core.InputSignalWithTransform<boolean, unknown>;
1155
+ block: _angular_core.InputSignalWithTransform<boolean, unknown>;
734
1156
  size: _angular_core.InputSignal<"small" | "medium" | "large">;
735
1157
  text: _angular_core.InputSignal<string | undefined>;
736
1158
  hasText: _angular_core.Signal<boolean>;
@@ -740,10 +1162,11 @@ declare abstract class BaseButton {
740
1162
  colorClass: _angular_core.Signal<string>;
741
1163
  sizeClass: _angular_core.Signal<string>;
742
1164
  squareClass: _angular_core.Signal<"" | "acp-square">;
1165
+ blockClass: _angular_core.Signal<"" | "acp-block">;
743
1166
  isDisabled: _angular_core.Signal<boolean>;
744
1167
  pointerEvents: _angular_core.Signal<"none" | "auto">;
745
1168
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseButton, never>;
746
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BaseButton, never, never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "square": { "alias": "square"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "suffixIcon": { "alias": "suffixIcon"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "disableRipple": { "alias": "disableRipple"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "extended": { "alias": "extended"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; "focused": "focused"; "blurred": "blurred"; }, never, never, true, never>;
1169
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BaseButton, never, never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "square": { "alias": "square"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "suffixIcon": { "alias": "suffixIcon"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "showProgress": { "alias": "showProgress"; "required": false; "isSignal": true; }; "progressType": { "alias": "progressType"; "required": false; "isSignal": true; }; "progressText": { "alias": "progressText"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "disableRipple": { "alias": "disableRipple"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "extended": { "alias": "extended"; "required": false; "isSignal": true; }; "block": { "alias": "block"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; "focused": "focused"; "blurred": "blurred"; }, never, never, true, never>;
747
1170
  }
748
1171
 
749
1172
  declare class AcpButton extends BaseButton {
@@ -907,7 +1330,7 @@ interface DataGridColumnButton<T = any> {
907
1330
  color?: ThemePalette;
908
1331
  class?: string;
909
1332
  disabled?: boolean | ((rowData: T) => boolean);
910
- click?: (rowData: T) => void;
1333
+ click?: (rowData: T, event: Event) => void;
911
1334
  iif?: (rowData: T) => boolean;
912
1335
  pop?: string | Observable<string> | DataGridColumnButtonPop;
913
1336
  tooltip?: string | Observable<string> | DataGridColumnButtonTooltip;
@@ -1006,7 +1429,7 @@ interface DataGridMenuItem<T = any> {
1006
1429
  svgIcon?: string;
1007
1430
  class?: string;
1008
1431
  disabled?: boolean | ((rowData: T) => boolean);
1009
- click?: (rowData: T) => void;
1432
+ click?: (rowData: T, event: Event) => void;
1010
1433
  iif?: (rowData: T) => boolean;
1011
1434
  children?: DataGridMenuItem[];
1012
1435
  }
@@ -1055,34 +1478,6 @@ declare class TabulatorTable implements OnChanges, AfterViewInit, OnDestroy {
1055
1478
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabulatorTable, "acp-tabulator-table", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "dataTree": { "alias": "dataTree"; "required": false; "isSignal": true; }; "dataTreeChildField": { "alias": "dataTreeChildField"; "required": false; "isSignal": true; }; "dataTreeStartExpanded": { "alias": "dataTreeStartExpanded"; "required": false; "isSignal": true; }; "dataTreeSelectPropagate": { "alias": "dataTreeSelectPropagate"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "reactiveData": { "alias": "reactiveData"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "autoResize": { "alias": "autoResize"; "required": false; "isSignal": true; }; "selectableRows": { "alias": "selectableRows"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "customClass": { "alias": "customClass"; "required": false; "isSignal": true; }; "rowFormatter": { "alias": "rowFormatter"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "rowDeleted": "rowDeleted"; "cellEdited": "cellEdited"; "rowClick": "rowClick"; "rowSelected": "rowSelected"; "tableReady": "tableReady"; }, never, never, true, never>;
1056
1479
  }
1057
1480
 
1058
- /**
1059
- * A theme toggle button component that allows users to switch between
1060
- * light and dark modes. Follows WAI-ARIA best practices for toggle buttons.
1061
- */
1062
- declare class ThemeToggle {
1063
- private readonly themeSwitcher;
1064
- /** Icon to display when in dark mode (clicking will switch to light) */
1065
- readonly lightModeIcon: _angular_core.InputSignal<string>;
1066
- /** Icon to display when in light mode (clicking will switch to dark) */
1067
- readonly darkModeIcon: _angular_core.InputSignal<string>;
1068
- /** Accessible label for when in dark mode */
1069
- readonly lightModeLabel: _angular_core.InputSignal<string>;
1070
- /** Accessible label for when in light mode */
1071
- readonly darkModeLabel: _angular_core.InputSignal<string>;
1072
- /** Test ID for automated testing */
1073
- readonly testId: _angular_core.InputSignal<string>;
1074
- /** Current dark mode state as a signal */
1075
- protected readonly isDarkMode: _angular_core.Signal<boolean>;
1076
- /** Computed icon based on current theme */
1077
- protected readonly currentIcon: _angular_core.Signal<string>;
1078
- /** Computed accessible label based on current theme */
1079
- protected readonly currentLabel: _angular_core.Signal<string>;
1080
- /** Toggle between dark and light mode */
1081
- toggleDarkMode(): void;
1082
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeToggle, never>;
1083
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThemeToggle, "acp-theme-toggle", never, { "lightModeIcon": { "alias": "lightModeIcon"; "required": false; "isSignal": true; }; "darkModeIcon": { "alias": "darkModeIcon"; "required": false; "isSignal": true; }; "lightModeLabel": { "alias": "lightModeLabel"; "required": false; "isSignal": true; }; "darkModeLabel": { "alias": "darkModeLabel"; "required": false; "isSignal": true; }; "testId": { "alias": "testId"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1084
- }
1085
-
1086
1481
  declare class AcpGridSelectableCell {
1087
1482
  ctrlKeyPressed: boolean;
1088
1483
  shiftKeyPressed: boolean;
@@ -3016,6 +3411,100 @@ declare class AcpCheckboxGroup implements AfterViewInit, OnDestroy, ControlValue
3016
3411
  static ngAcceptInputType_disabled: unknown;
3017
3412
  }
3018
3413
 
3414
+ /**
3415
+ * Card appearance variants
3416
+ */
3417
+ type AcpCardAppearance = 'default' | 'outlined' | 'elevated' | 'filled' | 'interactive' | 'compact';
3418
+ /**
3419
+ * Card elevation levels (Material Design)
3420
+ */
3421
+ type AcpCardElevation = 0 | 1 | 2 | 3 | 4 | 5;
3422
+ /**
3423
+ * Card padding options
3424
+ */
3425
+ type AcpCardPadding = 'none' | 'small' | 'medium' | 'large';
3426
+ /**
3427
+ * Card background color variants (Material Design)
3428
+ */
3429
+ type AcpCardBackgroundColor = 'primary' | 'primary-container' | 'secondary' | 'secondary-container' | 'error' | 'error-container' | 'surface' | 'surface-variant' | 'surface-container-highest' | 'surface-container-high' | 'surface-container' | 'surface-container-low' | 'surface-container-lowest' | 'inverse-surface' | 'disabled-bg';
3430
+ /**
3431
+ * Card image aspect ratio
3432
+ */
3433
+ type AcpCardImageRatio = '1:1' | '4:3' | '16:9' | '21:9' | '3:2' | '3:4';
3434
+ /**
3435
+ * Card configuration interface
3436
+ */
3437
+ interface AcpCardConfig {
3438
+ appearance?: AcpCardAppearance;
3439
+ elevation?: AcpCardElevation;
3440
+ rounded?: boolean | number;
3441
+ hover?: boolean;
3442
+ clickable?: boolean;
3443
+ outlined?: boolean;
3444
+ loading?: boolean;
3445
+ disabled?: boolean;
3446
+ padding?: AcpCardPadding;
3447
+ imageRatio?: AcpCardImageRatio;
3448
+ fullHeight?: boolean;
3449
+ fullWidth?: boolean;
3450
+ }
3451
+ /**
3452
+ * Card badge configuration
3453
+ */
3454
+ interface AcpCardBadge {
3455
+ content: string | number;
3456
+ color?: 'primary' | 'secondary' | 'accent' | 'error' | 'success' | 'warning' | 'info';
3457
+ position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
3458
+ }
3459
+ /**
3460
+ * Pass Through options for card sections
3461
+ * Allows customization of classes, styles, and attributes for each section
3462
+ */
3463
+ interface AcpCardPassThroughSection {
3464
+ class?: string | string[] | Record<string, boolean>;
3465
+ style?: Record<string, string>;
3466
+ [key: string]: any;
3467
+ }
3468
+ interface AcpCardPassThroughOptions {
3469
+ root?: AcpCardPassThroughSection | undefined;
3470
+ header?: AcpCardPassThroughSection | undefined;
3471
+ media?: AcpCardPassThroughSection | undefined;
3472
+ avatar?: AcpCardPassThroughSection | undefined;
3473
+ title?: AcpCardPassThroughSection | undefined;
3474
+ subtitle?: AcpCardPassThroughSection | undefined;
3475
+ content?: AcpCardPassThroughSection | undefined;
3476
+ actions?: AcpCardPassThroughSection | undefined;
3477
+ footer?: AcpCardPassThroughSection | undefined;
3478
+ }
3479
+
3480
+ declare class AcpCard {
3481
+ readonly appearance: _angular_core.InputSignal<AcpCardAppearance>;
3482
+ readonly elevation: _angular_core.InputSignal<AcpCardElevation>;
3483
+ readonly rounded: _angular_core.InputSignal<number | boolean>;
3484
+ readonly hover: _angular_core.InputSignalWithTransform<boolean, unknown>;
3485
+ readonly clickable: _angular_core.InputSignalWithTransform<boolean, unknown>;
3486
+ readonly outlined: _angular_core.InputSignalWithTransform<boolean, unknown>;
3487
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
3488
+ readonly padding: _angular_core.InputSignal<AcpCardPadding>;
3489
+ readonly imageRatio: _angular_core.InputSignal<AcpCardImageRatio>;
3490
+ readonly fullHeight: _angular_core.InputSignalWithTransform<boolean, unknown>;
3491
+ readonly fullWidth: _angular_core.InputSignalWithTransform<boolean, unknown>;
3492
+ readonly backgroundColor: _angular_core.InputSignal<AcpCardBackgroundColor | undefined>;
3493
+ readonly passThrough: _angular_core.InputSignal<AcpCardPassThroughOptions>;
3494
+ headerTemplate: TemplateRef<any>;
3495
+ mediaTemplate: TemplateRef<any>;
3496
+ avatarTemplate: TemplateRef<any>;
3497
+ titleTemplate: TemplateRef<any>;
3498
+ subtitleTemplate: TemplateRef<any>;
3499
+ actionsTemplate: TemplateRef<any>;
3500
+ footerTemplate: TemplateRef<any>;
3501
+ get role(): string;
3502
+ get tabindex(): string | null;
3503
+ get ariaDisabled(): string | null;
3504
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpCard, never>;
3505
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpCard, "acp-card", never, { "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "elevation": { "alias": "elevation"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "hover": { "alias": "hover"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; "outlined": { "alias": "outlined"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "padding": { "alias": "padding"; "required": false; "isSignal": true; }; "imageRatio": { "alias": "imageRatio"; "required": false; "isSignal": true; }; "fullHeight": { "alias": "fullHeight"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; "isSignal": true; }; "passThrough": { "alias": "passThrough"; "required": false; "isSignal": true; }; }, {}, ["headerTemplate", "mediaTemplate", "avatarTemplate", "titleTemplate", "subtitleTemplate", "actionsTemplate", "footerTemplate"], ["*"], true, never>;
3506
+ }
3507
+
3019
3508
  type AcpKpiCardColor = 'primary' | 'secondary' | 'success' | 'success-light' | 'warning' | 'warning-light' | 'error' | 'error-light' | 'info' | 'info-light' | 'neutral' | 'white' | 'custom';
3020
3509
  type AcpKpiCardVariant = 'default' | 'elevated' | 'outlined' | 'filled' | 'tonal';
3021
3510
  type AcpKpiCardSize = 'xs' | 'sm' | 'md' | 'lg';
@@ -3118,6 +3607,1075 @@ declare const KPI_CARD_TOKENS: {
3118
3607
  TREND_NONE: string;
3119
3608
  };
3120
3609
 
3610
+ declare class Branding {
3611
+ readonly logo: _angular_core.InputSignal<string | null>;
3612
+ readonly name: _angular_core.InputSignal<string | null>;
3613
+ readonly showName: _angular_core.InputSignal<boolean>;
3614
+ readonly link: _angular_core.InputSignal<string>;
3615
+ readonly brandingClick: _angular_core.OutputEmitterRef<void>;
3616
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Branding, never>;
3617
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Branding, "acp-branding", never, { "logo": { "alias": "logo"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "showName": { "alias": "showName"; "required": false; "isSignal": true; }; "link": { "alias": "link"; "required": false; "isSignal": true; }; }, { "brandingClick": "brandingClick"; }, never, never, true, never>;
3618
+ }
3619
+
3620
+ /**
3621
+ * AcpHeader Component
3622
+ *
3623
+ * Enterprise-grade header component following compound components pattern.
3624
+ * This is a layout-only component that provides structure for header regions.
3625
+ *
3626
+ * @example
3627
+ * ```html
3628
+ * <acp-header [elevated]="true" [sticky]="true">
3629
+ * <acp-header-start>
3630
+ * <button mat-icon-button>menu</button>
3631
+ * </acp-header-start>
3632
+ * <acp-header-branding [logo]="logo" [name]="name" />
3633
+ * <acp-header-center>
3634
+ * <span>Center content</span>
3635
+ * </acp-header-center>
3636
+ * <acp-header-end>
3637
+ * <acp-header-actions [actions]="actions" />
3638
+ * <acp-user-menu [user]="user" />
3639
+ * </acp-header-end>
3640
+ * </acp-header>
3641
+ * ```
3642
+ */
3643
+ declare class AcpHeader {
3644
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpHeader, never>;
3645
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpHeader, "acp-header", never, {}, {}, never, ["acp-header-start", "acp-header-branding", "acp-header-center", "acp-header-end"], true, never>;
3646
+ }
3647
+
3648
+ /**
3649
+ * AcpHeaderStart Component
3650
+ *
3651
+ * Left region of the header. Typically contains navigation toggle,
3652
+ * back button, or other primary actions.
3653
+ *
3654
+ * @example
3655
+ * ```html
3656
+ * <acp-header-start>
3657
+ * <button mat-icon-button (click)="toggleSidenav()">
3658
+ * <mat-icon>menu</mat-icon>
3659
+ * </button>
3660
+ * </acp-header-start>
3661
+ * ```
3662
+ */
3663
+ declare class AcpHeaderStart {
3664
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpHeaderStart, never>;
3665
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpHeaderStart, "acp-header-start", never, {}, {}, never, ["*"], true, never>;
3666
+ }
3667
+
3668
+ /**
3669
+ * AcpHeaderBranding Component
3670
+ *
3671
+ * Branding region of the header. Renders logo and/or app name.
3672
+ *
3673
+ * @example
3674
+ * ```html
3675
+ * <acp-header-branding
3676
+ * [logo]="logo"
3677
+ * [name]="appName"
3678
+ * [showName]="true"
3679
+ * [link]="'/'"
3680
+ * (selected)="onBrandingClick()"
3681
+ * />
3682
+ * ```
3683
+ */
3684
+ declare class AcpHeaderBranding {
3685
+ /**
3686
+ * URL or path to the logo image.
3687
+ */
3688
+ readonly logo: _angular_core.InputSignal<string | undefined>;
3689
+ /**
3690
+ * Brand name to display.
3691
+ */
3692
+ readonly name: _angular_core.InputSignal<string | undefined>;
3693
+ /**
3694
+ * Whether to show the brand name.
3695
+ * @default true
3696
+ */
3697
+ readonly showName: _angular_core.InputSignal<boolean>;
3698
+ /**
3699
+ * URL to navigate to when branding is clicked.
3700
+ * @default '/'
3701
+ */
3702
+ readonly link: _angular_core.InputSignal<string>;
3703
+ /**
3704
+ * Event emitted when branding is selected.
3705
+ */
3706
+ readonly selected: _angular_core.OutputEmitterRef<void>;
3707
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpHeaderBranding, never>;
3708
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpHeaderBranding, "acp-header-branding", never, { "logo": { "alias": "logo"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "showName": { "alias": "showName"; "required": false; "isSignal": true; }; "link": { "alias": "link"; "required": false; "isSignal": true; }; }, { "selected": "selected"; }, never, never, true, never>;
3709
+ }
3710
+
3711
+ /**
3712
+ * AcpHeaderCenter Component
3713
+ *
3714
+ * Center region of the header. Typically contains breadcrumb,
3715
+ * workspace selector, or page title.
3716
+ *
3717
+ * @example
3718
+ * ```html
3719
+ * <acp-header-center>
3720
+ * <acp-header-breadcrumb [items]="breadcrumbs" />
3721
+ * </acp-header-center>
3722
+ * ```
3723
+ */
3724
+ declare class AcpHeaderCenter {
3725
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpHeaderCenter, never>;
3726
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpHeaderCenter, "acp-header-center", never, {}, {}, never, ["*"], true, never>;
3727
+ }
3728
+
3729
+ /**
3730
+ * AcpHeaderEnd Component
3731
+ *
3732
+ * Right region of the header. Typically contains search, notifications,
3733
+ * user menu, theme switcher, and other secondary actions.
3734
+ *
3735
+ * @example
3736
+ * ```html
3737
+ * <acp-header-end>
3738
+ * <acp-header-search (search)="onSearch($event)" />
3739
+ * <acp-header-actions [actions]="actions" />
3740
+ * <acp-header-user-menu [user]="user" />
3741
+ * </acp-header-end>
3742
+ * ```
3743
+ */
3744
+ declare class AcpHeaderEnd {
3745
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpHeaderEnd, never>;
3746
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpHeaderEnd, "acp-header-end", never, {}, {}, never, ["*"], true, never>;
3747
+ }
3748
+
3749
+ /**
3750
+ * AcpHeader Component Types
3751
+ *
3752
+ * Type definitions for the AcpHeader component following SOLID principles
3753
+ * and Clean Architecture for enterprise-grade component libraries.
3754
+ */
3755
+ /**
3756
+ * Main configuration object for the AcpHeader component.
3757
+ * All configuration is centralized in this single interface to follow
3758
+ * Interface Segregation Principle and keep the API small and scalable.
3759
+ */
3760
+ interface AcpHeaderConfig {
3761
+ /**
3762
+ * Array of actions to display in the header.
3763
+ * Actions are rendered in their specified position (left or right).
3764
+ */
3765
+ actions?: AcpHeaderAction[];
3766
+ /**
3767
+ * Branding configuration for the header.
3768
+ * If not provided, no branding is displayed.
3769
+ */
3770
+ branding?: AcpHeaderBrandingConfig;
3771
+ /**
3772
+ * User menu configuration.
3773
+ * If not provided, no user menu is displayed.
3774
+ */
3775
+ userMenu?: AcpHeaderUserMenuConfig;
3776
+ /**
3777
+ * Whether to show elevation/shadow on the header.
3778
+ * @default false
3779
+ */
3780
+ elevation?: boolean;
3781
+ /**
3782
+ * Whether the header should stick to the top of the viewport.
3783
+ * @default false
3784
+ */
3785
+ sticky?: boolean;
3786
+ /**
3787
+ * Theme variant for the header.
3788
+ * @default 'auto'
3789
+ */
3790
+ theme?: 'light' | 'dark' | 'auto';
3791
+ }
3792
+ /**
3793
+ * Represents an action button in the header.
3794
+ * Actions can be placed in the left or right region of the header.
3795
+ */
3796
+ interface AcpHeaderAction {
3797
+ /**
3798
+ * Unique identifier for the action.
3799
+ * Used in event emissions to identify which action was clicked.
3800
+ */
3801
+ id: string;
3802
+ /**
3803
+ * Material Design icon name to display.
3804
+ * If not provided, the label is used instead.
3805
+ */
3806
+ icon?: string;
3807
+ /**
3808
+ * Text label for the action.
3809
+ * Used when icon is not provided or for accessibility.
3810
+ */
3811
+ label?: string;
3812
+ /**
3813
+ * Tooltip text to display on hover.
3814
+ */
3815
+ tooltip?: string;
3816
+ /**
3817
+ * Position where the action should be rendered.
3818
+ * @default 'right'
3819
+ */
3820
+ position?: 'left' | 'right';
3821
+ /**
3822
+ * Whether the action is disabled.
3823
+ * @default false
3824
+ */
3825
+ disabled?: boolean;
3826
+ /**
3827
+ * Whether the action is visible.
3828
+ * @default true
3829
+ */
3830
+ visible?: boolean;
3831
+ /**
3832
+ * Optional badge to display on the action button.
3833
+ * Can be a number (for notification count) or a string.
3834
+ */
3835
+ badge?: number | string;
3836
+ click?: ($event?: MouseEvent, action?: AcpHeaderAction) => void;
3837
+ }
3838
+ /**
3839
+ * Configuration for the branding section of the header.
3840
+ */
3841
+ interface AcpHeaderBrandingConfig {
3842
+ /**
3843
+ * URL or path to the logo image.
3844
+ */
3845
+ logo?: string;
3846
+ /**
3847
+ * Brand name to display.
3848
+ */
3849
+ name?: string;
3850
+ /**
3851
+ * Whether to show the brand name.
3852
+ * @default true
3853
+ */
3854
+ showName?: boolean;
3855
+ /**
3856
+ * URL to navigate to when branding is clicked.
3857
+ * @default '/'
3858
+ */
3859
+ link?: string;
3860
+ }
3861
+ /**
3862
+ * Configuration for the user menu section of the header.
3863
+ */
3864
+ interface AcpHeaderUserMenuConfig {
3865
+ /**
3866
+ * URL or path to the user avatar image.
3867
+ */
3868
+ avatar?: string;
3869
+ /**
3870
+ * User's display name.
3871
+ */
3872
+ name?: string;
3873
+ /**
3874
+ * User's email address.
3875
+ */
3876
+ email?: string;
3877
+ /**
3878
+ * Menu items to display in the user menu dropdown.
3879
+ */
3880
+ items?: AcpHeaderUserMenuItem[];
3881
+ }
3882
+ /**
3883
+ * Represents a single item in the user menu.
3884
+ */
3885
+ interface AcpHeaderUserMenuItem {
3886
+ /**
3887
+ * Unique identifier for the menu item.
3888
+ */
3889
+ id: string;
3890
+ /**
3891
+ * Display label for the menu item.
3892
+ */
3893
+ label: string;
3894
+ /**
3895
+ * Material Design icon name to display.
3896
+ */
3897
+ icon?: string;
3898
+ /**
3899
+ * Whether the menu item is disabled.
3900
+ * @default false
3901
+ */
3902
+ disabled?: boolean;
3903
+ /**
3904
+ * Whether to display a divider below this item.
3905
+ * @default false
3906
+ */
3907
+ divider?: boolean;
3908
+ /**
3909
+ * Callback function to execute when the item is clicked.
3910
+ * If provided, the item click event is not emitted.
3911
+ */
3912
+ action?: () => void;
3913
+ }
3914
+ /**
3915
+ * Event payload emitted when a header action is clicked.
3916
+ */
3917
+ interface AcpHeaderActionEvent {
3918
+ /**
3919
+ * The ID of the action that was clicked.
3920
+ */
3921
+ actionId: string;
3922
+ /**
3923
+ * The event name associated with the action.
3924
+ */
3925
+ event: string;
3926
+ /**
3927
+ * Optional data associated with the action.
3928
+ */
3929
+ data?: any;
3930
+ }
3931
+ /**
3932
+ * Event payload emitted when a user menu item is clicked.
3933
+ */
3934
+ interface AcpHeaderUserMenuItemEvent {
3935
+ /**
3936
+ * The ID of the menu item that was clicked.
3937
+ */
3938
+ itemId: string;
3939
+ /**
3940
+ * The menu item that was clicked.
3941
+ */
3942
+ item: AcpHeaderUserMenuItem;
3943
+ }
3944
+
3945
+ /**
3946
+ * AcpHeaderActions Component
3947
+ *
3948
+ * Helper component for rendering action buttons.
3949
+ *
3950
+ * @example
3951
+ * ```html
3952
+ * <acp-header-actions
3953
+ * [actions]="actions"
3954
+ * (action)="onAction($event)"
3955
+ * />
3956
+ * ```
3957
+ */
3958
+ declare class AcpHeaderActions {
3959
+ /**
3960
+ * Array of actions to display. Can be a signal or a plain array.
3961
+ */
3962
+ readonly actions: _angular_core.InputSignal<AcpHeaderAction[]>;
3963
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpHeaderActions, never>;
3964
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpHeaderActions, "acp-header-actions", never, { "actions": { "alias": "actions"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3965
+ }
3966
+
3967
+ /**
3968
+ * Notification item interface
3969
+ */
3970
+ interface AcpNotificationItem {
3971
+ id: string;
3972
+ title: string;
3973
+ message?: string;
3974
+ timestamp?: Date;
3975
+ read?: boolean;
3976
+ icon?: string;
3977
+ }
3978
+ /**
3979
+ * AcpHeaderNotifications Component
3980
+ *
3981
+ * Notification center for the header with badge and dropdown menu.
3982
+ *
3983
+ * @example
3984
+ * ```html
3985
+ * <acp-header-notifications
3986
+ * [notifications]="notifications"
3987
+ * [unreadCount]="unreadCount"
3988
+ * (notificationClick)="onNotificationClick($event)"
3989
+ * />
3990
+ * ```
3991
+ */
3992
+ declare class AcpHeaderNotifications {
3993
+ /**
3994
+ * Array of notification items.
3995
+ */
3996
+ readonly notifications: _angular_core.InputSignal<AcpNotificationItem[]>;
3997
+ /**
3998
+ * Number of unread notifications.
3999
+ */
4000
+ readonly unreadCount: _angular_core.InputSignal<number>;
4001
+ /**
4002
+ * Event emitted when a notification is clicked.
4003
+ */
4004
+ readonly notificationClick: _angular_core.OutputEmitterRef<AcpNotificationItem>;
4005
+ handleNotificationClick(notification: AcpNotificationItem): void;
4006
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpHeaderNotifications, never>;
4007
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpHeaderNotifications, "acp-header-notifications", never, { "notifications": { "alias": "notifications"; "required": false; "isSignal": true; }; "unreadCount": { "alias": "unreadCount"; "required": false; "isSignal": true; }; }, { "notificationClick": "notificationClick"; }, never, never, true, never>;
4008
+ }
4009
+
4010
+ /**
4011
+ * Workspace item interface
4012
+ */
4013
+ interface AcpWorkspaceItem {
4014
+ id: string;
4015
+ name: string;
4016
+ icon?: string;
4017
+ active?: boolean;
4018
+ }
4019
+ /**
4020
+ * AcpHeaderWorkspace Component
4021
+ *
4022
+ * Workspace selector for the header.
4023
+ *
4024
+ * @example
4025
+ * ```html
4026
+ * <acp-header-workspace
4027
+ * [workspaces]="workspaces"
4028
+ * [currentWorkspace]="currentWorkspace"
4029
+ * (workspaceChange)="onWorkspaceChange($event)"
4030
+ * />
4031
+ * ```
4032
+ */
4033
+ declare class AcpHeaderWorkspace {
4034
+ /**
4035
+ * Array of available workspaces.
4036
+ */
4037
+ readonly workspaces: _angular_core.InputSignal<AcpWorkspaceItem[]>;
4038
+ /**
4039
+ * Currently selected workspace.
4040
+ */
4041
+ readonly currentWorkspace: _angular_core.InputSignal<AcpWorkspaceItem | undefined>;
4042
+ /**
4043
+ * Event emitted when workspace is changed.
4044
+ */
4045
+ readonly workspaceChange: _angular_core.OutputEmitterRef<AcpWorkspaceItem>;
4046
+ handleWorkspaceChange(workspace: AcpWorkspaceItem): void;
4047
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpHeaderWorkspace, never>;
4048
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpHeaderWorkspace, "acp-header-workspace", never, { "workspaces": { "alias": "workspaces"; "required": false; "isSignal": true; }; "currentWorkspace": { "alias": "currentWorkspace"; "required": false; "isSignal": true; }; }, { "workspaceChange": "workspaceChange"; }, never, never, true, never>;
4049
+ }
4050
+
4051
+ /**
4052
+ * Language item interface
4053
+ */
4054
+ interface AcpLanguageItem {
4055
+ code: string;
4056
+ name: string;
4057
+ flag?: string;
4058
+ active?: boolean;
4059
+ }
4060
+ /**
4061
+ * AcpHeaderLanguage Component
4062
+ *
4063
+ * Language selector for the header.
4064
+ *
4065
+ * @example
4066
+ * ```html
4067
+ * <acp-header-language
4068
+ * [languages]="languages"
4069
+ * [currentLanguage]="currentLanguage"
4070
+ * (languageChange)="onLanguageChange($event)"
4071
+ * />
4072
+ * ```
4073
+ */
4074
+ declare class AcpHeaderLanguage {
4075
+ /**
4076
+ * Array of available languages.
4077
+ */
4078
+ readonly languages: _angular_core.InputSignal<AcpLanguageItem[]>;
4079
+ /**
4080
+ * Currently selected language.
4081
+ */
4082
+ readonly currentLanguage: _angular_core.InputSignal<AcpLanguageItem | undefined>;
4083
+ /**
4084
+ * Event emitted when language is changed.
4085
+ */
4086
+ readonly languageChange: _angular_core.OutputEmitterRef<AcpLanguageItem>;
4087
+ handleLanguageChange(language: AcpLanguageItem): void;
4088
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpHeaderLanguage, never>;
4089
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpHeaderLanguage, "acp-header-language", never, { "languages": { "alias": "languages"; "required": false; "isSignal": true; }; "currentLanguage": { "alias": "currentLanguage"; "required": false; "isSignal": true; }; }, { "languageChange": "languageChange"; }, never, never, true, never>;
4090
+ }
4091
+
4092
+ /**
4093
+ * Theme variant
4094
+ */
4095
+ type AcpThemeVariant = 'light' | 'dark' | 'auto';
4096
+ /**
4097
+ * AcpHeaderTheme Component
4098
+ *
4099
+ * Theme switcher for the header.
4100
+ *
4101
+ * @example
4102
+ * ```html
4103
+ * <acp-header-theme
4104
+ * [currentTheme]="currentTheme"
4105
+ * (themeChange)="onThemeChange($event)"
4106
+ * />
4107
+ * ```
4108
+ */
4109
+ declare class AcpHeaderTheme {
4110
+ /**
4111
+ * Currently selected theme.
4112
+ */
4113
+ readonly currentTheme: _angular_core.InputSignal<AcpThemeVariant>;
4114
+ /**
4115
+ * Event emitted when theme is changed.
4116
+ */
4117
+ readonly themeChange: _angular_core.OutputEmitterRef<AcpThemeVariant>;
4118
+ private readonly themeCycle;
4119
+ getThemeIcon: _angular_core.Signal<"light_mode" | "dark_mode" | "contrast">;
4120
+ toggleTheme(): void;
4121
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpHeaderTheme, never>;
4122
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpHeaderTheme, "acp-header-theme", never, { "currentTheme": { "alias": "currentTheme"; "required": false; "isSignal": true; }; }, { "themeChange": "themeChange"; }, never, never, true, never>;
4123
+ }
4124
+
4125
+ /**
4126
+ * A theme toggle button component that allows users to switch between
4127
+ * light and dark modes. Follows WAI-ARIA best practices for toggle buttons.
4128
+ */
4129
+ declare class ThemeToggle {
4130
+ private readonly themeSwitcher;
4131
+ /** Icon to display when in dark mode (clicking will switch to light) */
4132
+ readonly lightModeIcon: _angular_core.InputSignal<string>;
4133
+ /** Icon to display when in light mode (clicking will switch to dark) */
4134
+ readonly darkModeIcon: _angular_core.InputSignal<string>;
4135
+ /** Accessible label for when in dark mode */
4136
+ readonly lightModeLabel: _angular_core.InputSignal<string>;
4137
+ /** Accessible label for when in light mode */
4138
+ readonly darkModeLabel: _angular_core.InputSignal<string>;
4139
+ /** Test ID for automated testing */
4140
+ readonly testId: _angular_core.InputSignal<string>;
4141
+ /** Current dark mode state as a signal */
4142
+ protected readonly isDarkMode: _angular_core.Signal<boolean>;
4143
+ /** Computed icon based on current theme */
4144
+ protected readonly currentIcon: _angular_core.Signal<string>;
4145
+ /** Computed accessible label based on current theme */
4146
+ protected readonly currentLabel: _angular_core.Signal<string>;
4147
+ /** Toggle between dark and light mode */
4148
+ toggleDarkMode(): void;
4149
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeToggle, never>;
4150
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThemeToggle, "acp-theme-toggle", never, { "lightModeIcon": { "alias": "lightModeIcon"; "required": false; "isSignal": true; }; "darkModeIcon": { "alias": "darkModeIcon"; "required": false; "isSignal": true; }; "lightModeLabel": { "alias": "lightModeLabel"; "required": false; "isSignal": true; }; "darkModeLabel": { "alias": "darkModeLabel"; "required": false; "isSignal": true; }; "testId": { "alias": "testId"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
4151
+ }
4152
+
4153
+ /**
4154
+ * Represents a single item in the user menu.
4155
+ */
4156
+ interface UserMenuItem {
4157
+ /**
4158
+ * Unique identifier for the menu item.
4159
+ */
4160
+ id: string;
4161
+ /**
4162
+ * Display label for the menu item.
4163
+ */
4164
+ label: string;
4165
+ /**
4166
+ * Material Design icon name.
4167
+ */
4168
+ icon: string;
4169
+ /**
4170
+ * Optional badge number (e.g., notification count).
4171
+ */
4172
+ badge?: number;
4173
+ /**
4174
+ * Optional router link for navigation.
4175
+ */
4176
+ routerLink?: string;
4177
+ /**
4178
+ * Whether this item represents a dangerous action (e.g., logout).
4179
+ * Affects styling (red color).
4180
+ */
4181
+ danger?: boolean;
4182
+ /**
4183
+ * Optional click handler for custom actions.
4184
+ */
4185
+ click?: (event: MouseEvent, item: UserMenuItem) => void;
4186
+ }
4187
+ /**
4188
+ * User profile information displayed in the menu header.
4189
+ */
4190
+ interface UserProfile {
4191
+ /**
4192
+ * User's full name.
4193
+ */
4194
+ name: string;
4195
+ /**
4196
+ * User's email address.
4197
+ */
4198
+ email: string;
4199
+ /**
4200
+ * URL to user's avatar image.
4201
+ */
4202
+ avatar: string;
4203
+ /**
4204
+ * User's plan/subscription tier (e.g., 'Pro', 'Free').
4205
+ */
4206
+ plan?: string;
4207
+ }
4208
+ /**
4209
+ * Event emitted when a menu item is selected.
4210
+ */
4211
+ interface UserMenuSelectedEvent {
4212
+ /**
4213
+ * The selected menu item.
4214
+ */
4215
+ item: UserMenuItem;
4216
+ }
4217
+
4218
+ declare class UserMenu {
4219
+ /**
4220
+ * User profile information to display in the menu header.
4221
+ */
4222
+ readonly user: _angular_core.InputSignal<UserProfile>;
4223
+ /**
4224
+ * Menu items to display.
4225
+ */
4226
+ readonly items: _angular_core.InputSignal<UserMenuItem[]>;
4227
+ imageUrl: _angular_core.Signal<string>;
4228
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<UserMenu, never>;
4229
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<UserMenu, "acp-user-menu", never, { "user": { "alias": "user"; "required": true; "isSignal": true; }; "items": { "alias": "items"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
4230
+ }
4231
+
4232
+ declare class UserPanel {
4233
+ readonly avatar: _angular_core.InputSignal<string | null>;
4234
+ readonly name: _angular_core.InputSignal<string>;
4235
+ readonly email: _angular_core.InputSignal<string>;
4236
+ readonly profileLink: _angular_core.InputSignal<string>;
4237
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<UserPanel, never>;
4238
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<UserPanel, "acp-user-panel", never, { "avatar": { "alias": "avatar"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "email": { "alias": "email"; "required": false; "isSignal": true; }; "profileLink": { "alias": "profileLink"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
4239
+ }
4240
+
4241
+ interface MenuTag {
4242
+ color: string;
4243
+ value: string;
4244
+ }
4245
+ interface MenuPermissions {
4246
+ only?: string | string[];
4247
+ except?: string | string[];
4248
+ }
4249
+ interface MenuItem {
4250
+ route: string;
4251
+ name: string;
4252
+ type: 'link' | 'sub' | 'extLink' | 'extTabLink';
4253
+ icon?: string;
4254
+ label?: MenuTag;
4255
+ badge?: MenuTag;
4256
+ children?: MenuItem[];
4257
+ permissions?: MenuPermissions;
4258
+ }
4259
+
4260
+ declare class NavAccordionItemDirective implements OnInit, OnDestroy {
4261
+ private readonly nav;
4262
+ readonly route: _angular_core.InputSignal<string>;
4263
+ expanded: _angular_core.WritableSignal<boolean>;
4264
+ ngOnInit(): void;
4265
+ ngOnDestroy(): void;
4266
+ toggle(): void;
4267
+ setExpanded(value: boolean): void;
4268
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavAccordionItemDirective, never>;
4269
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NavAccordionItemDirective, "[acpNavAccordionItem]", ["acpNavAccordionItem"], { "route": { "alias": "route"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
4270
+ }
4271
+
4272
+ declare class NavAccordionDirective {
4273
+ private readonly router;
4274
+ private navItems;
4275
+ constructor();
4276
+ addItem(item: NavAccordionItemDirective): void;
4277
+ removeItem(item: NavAccordionItemDirective): void;
4278
+ closeOtherItems(openedItem: NavAccordionItemDirective): void;
4279
+ checkOpenedItems(): void;
4280
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavAccordionDirective, never>;
4281
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NavAccordionDirective, "[acpNavAccordion]", ["acpNavAccordion"], {}, {}, never, never, true, never>;
4282
+ }
4283
+
4284
+ declare class NavAccordionToggleDirective {
4285
+ private readonly navItem;
4286
+ onClick(): void;
4287
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavAccordionToggleDirective, never>;
4288
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NavAccordionToggleDirective, "[acpNavAccordionToggle]", ["acpNavAccordionToggle"], {}, {}, never, never, true, never>;
4289
+ }
4290
+
4291
+ declare class SidemenuComponent {
4292
+ readonly menuItems: _angular_core.InputSignal<MenuItem[]>;
4293
+ buildRoute(routeArr: string[]): string;
4294
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidemenuComponent, never>;
4295
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidemenuComponent, "acp-sidemenu", never, { "menuItems": { "alias": "menuItems"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
4296
+ }
4297
+
4298
+ /**
4299
+ * AcpSidebar Component
4300
+ *
4301
+ * Enterprise-grade sidebar component following compound components pattern.
4302
+ * This is a layout-only component that provides structure for sidebar regions.
4303
+ *
4304
+ * @example
4305
+ * ```html
4306
+ * <acp-sidebar [collapsed]="collapsed" [mode]="mode">
4307
+ * <acp-sidebar-header>
4308
+ * <acp-sidebar-branding>
4309
+ * <acp-sidebar-branding-content [logo]="logo" [name]="name" />
4310
+ * </acp-sidebar-branding>
4311
+ * <button mat-icon-button (click)="toggle()">menu</button>
4312
+ * </acp-sidebar-header>
4313
+ *
4314
+ * <acp-sidebar-user>
4315
+ * <acp-sidebar-user-content [avatar]="avatar" [name]="name" [email]="email" />
4316
+ * </acp-sidebar-user>
4317
+ *
4318
+ * <acp-sidebar-content>
4319
+ * <acp-sidemenu [menuItems]="menuItems" />
4320
+ * </acp-sidebar-content>
4321
+ * </acp-sidebar>
4322
+ * ```
4323
+ */
4324
+ declare class AcpSidebar {
4325
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpSidebar, never>;
4326
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpSidebar, "acp-sidebar", never, {}, {}, never, ["acp-sidebar-header", "acp-sidebar-user", "acp-sidebar-content"], true, never>;
4327
+ }
4328
+
4329
+ /**
4330
+ * AcpSidebarHeader Component
4331
+ *
4332
+ * Top region of the sidebar. Typically contains branding, toggle button,
4333
+ * and close button for mobile.
4334
+ *
4335
+ * @example
4336
+ * ```html
4337
+ * <acp-sidebar-header>
4338
+ * <acp-sidebar-branding>
4339
+ * <acp-sidebar-branding-content [logo]="logo" [name]="name" />
4340
+ * </acp-sidebar-branding>
4341
+ * <button mat-icon-button (click)="toggle()">menu</button>
4342
+ * </acp-sidebar-header>
4343
+ * ```
4344
+ */
4345
+ declare class AcpSidebarHeader {
4346
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpSidebarHeader, never>;
4347
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpSidebarHeader, "acp-sidebar-header", never, {}, {}, never, ["[start]", "[end]"], true, never>;
4348
+ }
4349
+
4350
+ declare class AcpSidebarBranding {
4351
+ readonly showName: _angular_core.InputSignal<boolean>;
4352
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpSidebarBranding, never>;
4353
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpSidebarBranding, "acp-sidebar-branding", never, { "showName": { "alias": "showName"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
4354
+ }
4355
+
4356
+ declare class AcpSidebarUserPanel {
4357
+ /**
4358
+ * User avatar URL.
4359
+ * @default ''
4360
+ */
4361
+ readonly avatar: _angular_core.InputSignal<string>;
4362
+ /**
4363
+ * User name.
4364
+ * @default ''
4365
+ */
4366
+ readonly name: _angular_core.InputSignal<string>;
4367
+ /**
4368
+ * User email.
4369
+ * @default ''
4370
+ */
4371
+ readonly email: _angular_core.InputSignal<string>;
4372
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpSidebarUserPanel, never>;
4373
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpSidebarUserPanel, "acp-sidebar-user-panel", never, { "avatar": { "alias": "avatar"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "email": { "alias": "email"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
4374
+ }
4375
+
4376
+ /**
4377
+ * AcpSidebarContent Component
4378
+ *
4379
+ * Main content region of the sidebar. Typically contains the sidemenu
4380
+ * with navigation items.
4381
+ *
4382
+ * @example
4383
+ * ```html
4384
+ * <acp-sidebar-content>
4385
+ * <acp-sidemenu [menuItems]="menuItems" />
4386
+ * </acp-sidebar-content>
4387
+ * ```
4388
+ */
4389
+ declare class AcpSidebarContent {
4390
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpSidebarContent, never>;
4391
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpSidebarContent, "acp-sidebar-content", never, {}, {}, never, ["[user-panel]", "[sidemenu]"], true, never>;
4392
+ }
4393
+
4394
+ declare class AcpSidebarToggle {
4395
+ readonly showToggle: _angular_core.InputSignal<boolean>;
4396
+ readonly toggleChecked: _angular_core.InputSignal<boolean>;
4397
+ readonly toggleCollapsed: _angular_core.OutputEmitterRef<void>;
4398
+ readonly closeSidenav: _angular_core.OutputEmitterRef<void>;
4399
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpSidebarToggle, never>;
4400
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpSidebarToggle, "acp-sidebar-toggle", never, { "showToggle": { "alias": "showToggle"; "required": false; "isSignal": true; }; "toggleChecked": { "alias": "toggleChecked"; "required": false; "isSignal": true; }; }, { "toggleCollapsed": "toggleCollapsed"; "closeSidenav": "closeSidenav"; }, never, never, true, never>;
4401
+ }
4402
+
4403
+ /**
4404
+ * `acpShellHeader` — replaces the entire header region.
4405
+ *
4406
+ * @example
4407
+ * ```html
4408
+ * <acp-shell-layout>
4409
+ * <ng-template acpShellHeader>
4410
+ * <app-custom-header />
4411
+ * </ng-template>
4412
+ * </acp-shell-layout>
4413
+ * ```
4414
+ */
4415
+ declare class AcpShellSlotHeader {
4416
+ readonly templateRef: TemplateRef<any>;
4417
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpShellSlotHeader, never>;
4418
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AcpShellSlotHeader, "ng-template[acpShellHeader]", never, {}, {}, never, never, true, never>;
4419
+ }
4420
+ /**
4421
+ * `acpShellSidebar` — replaces the entire sidebar region.
4422
+ *
4423
+ * @example
4424
+ * ```html
4425
+ * <acp-shell-layout>
4426
+ * <ng-template acpShellSidebar>
4427
+ * <app-custom-sidebar />
4428
+ * </ng-template>
4429
+ * </acp-shell-layout>
4430
+ * ```
4431
+ */
4432
+ declare class AcpShellSlotSidebar {
4433
+ readonly templateRef: TemplateRef<any>;
4434
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpShellSlotSidebar, never>;
4435
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AcpShellSlotSidebar, "ng-template[acpShellSidebar]", never, {}, {}, never, never, true, never>;
4436
+ }
4437
+ /**
4438
+ * `acpShellSidebarFooter` — projects content at the bottom of the sidebar
4439
+ * without replacing the whole sidebar (e.g. version badge, help link).
4440
+ *
4441
+ * @example
4442
+ * ```html
4443
+ * <acp-shell-layout>
4444
+ * <ng-template acpShellSidebarFooter>
4445
+ * <app-version-badge />
4446
+ * </ng-template>
4447
+ * </acp-shell-layout>
4448
+ * ```
4449
+ */
4450
+ declare class AcpShellSlotSidebarFooter {
4451
+ readonly templateRef: TemplateRef<any>;
4452
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpShellSlotSidebarFooter, never>;
4453
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AcpShellSlotSidebarFooter, "ng-template[acpShellSidebarFooter]", never, {}, {}, never, never, true, never>;
4454
+ }
4455
+ /**
4456
+ * `acpShellToolbar` — projects extra content into the header toolbar
4457
+ * alongside the default actions (e.g. breadcrumb, search bar).
4458
+ *
4459
+ * @example
4460
+ * ```html
4461
+ * <acp-shell-layout>
4462
+ * <ng-template acpShellToolbar>
4463
+ * <app-breadcrumb />
4464
+ * </ng-template>
4465
+ * </acp-shell-layout>
4466
+ * ```
4467
+ */
4468
+ declare class AcpShellSlotToolbar {
4469
+ readonly templateRef: TemplateRef<any>;
4470
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpShellSlotToolbar, never>;
4471
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AcpShellSlotToolbar, "ng-template[acpShellToolbar]", never, {}, {}, never, never, true, never>;
4472
+ }
4473
+ /**
4474
+ * `acpShellTopmenu` — projects horizontal top navigation into the page content.
4475
+ *
4476
+ * @example
4477
+ * ```html
4478
+ * <acp-shell-layout>
4479
+ * <ng-template acpShellTopmenu>
4480
+ * <app-topmenu />
4481
+ * </ng-template>
4482
+ * </acp-shell-layout>
4483
+ * ```
4484
+ */
4485
+ declare class AcpShellSlotTopmenu {
4486
+ readonly templateRef: TemplateRef<any>;
4487
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpShellSlotTopmenu, never>;
4488
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AcpShellSlotTopmenu, "ng-template[acpShellTopmenu]", never, {}, {}, never, never, true, never>;
4489
+ }
4490
+
4491
+ /**
4492
+ * Navigation position of the sidenav.
4493
+ * - `side`: sidebar always visible alongside content
4494
+ * - `top`: navigation rendered in a top menu bar instead
4495
+ */
4496
+ type AcpNavPos = 'side' | 'top';
4497
+ /**
4498
+ * Position of the header relative to the sidenav container.
4499
+ * - `above`: header spans full width above the sidenav container
4500
+ * - `fixed`: header is sticky inside the content area
4501
+ * - `below`: header scrolls with content
4502
+ */
4503
+ type AcpHeaderPos = 'above' | 'fixed' | 'below' | 'static';
4504
+ /**
4505
+ * Layout direction (RTL/LTR support).
4506
+ */
4507
+ type AcpDir = 'ltr' | 'rtl';
4508
+
4509
+ /**
4510
+ * AcpShellLayout
4511
+ *
4512
+ * Pure structural shell — provides the layout skeleton (header region,
4513
+ * sidenav, content area) with named ng-content slots so the host app
4514
+ * can project any component into any region without modifying the shell.
4515
+ *
4516
+ * ## Slot directives
4517
+ * - `acpShellHeader` — replaces the entire header bar
4518
+ * - `acpShellSidebar` — replaces the entire sidebar body
4519
+ * - `acpShellSidebarFooter` — appended at the bottom of the sidebar
4520
+ * - `acpShellToolbar` — injected inside the header center region
4521
+ *
4522
+ * ## Default content slot
4523
+ * Plain children (e.g. `<router-outlet />`) are projected into the
4524
+ * main page-content area.
4525
+ *
4526
+ * @example
4527
+ * ```html
4528
+ * <acp-shell-layout
4529
+ * [navPos]="options().navPos"
4530
+ * [headerPos]="options().headerPos"
4531
+ * [sidenavOpened]="options().sidenavOpened"
4532
+ * [sidenavCollapsed]="options().sidenavCollapsed"
4533
+ * [isMobile]="isMobile()"
4534
+ * [dir]="options().dir"
4535
+ * (sidenavOpenedChange)="onSidenavOpenedChange($event)"
4536
+ * >
4537
+ * <!-- header slot -->
4538
+ * <ng-template acpShellHeader>
4539
+ * <app-header (toggleSidenav)="layout.toggleSidenav()" />
4540
+ * </ng-template>
4541
+ *
4542
+ * <!-- sidebar slot -->
4543
+ * <ng-template acpShellSidebar>
4544
+ * <app-sidebar />
4545
+ * </ng-template>
4546
+ *
4547
+ * <!-- optional: footer inside sidebar -->
4548
+ * <ng-template acpShellSidebarFooter>
4549
+ * <app-version-badge />
4550
+ * </ng-template>
4551
+ *
4552
+ * <!-- page content -->
4553
+ * <router-outlet />
4554
+ * </acp-shell-layout>
4555
+ * ```
4556
+ */
4557
+ declare class AcpShellLayout {
4558
+ /** Reference to the primary MatSidenav — exposed so the app can toggle it. */
4559
+ readonly sidenav: _angular_core.Signal<MatSidenav>;
4560
+ /** Reference to the MatSidenavContent — exposed for scroll control. */
4561
+ readonly content: _angular_core.Signal<MatSidenavContent>;
4562
+ /** Custom header projected by the app. Falls back to empty when absent. */
4563
+ readonly headerSlot: _angular_core.Signal<AcpShellSlotHeader | undefined>;
4564
+ /** Custom sidebar body projected by the app. Falls back to empty when absent. */
4565
+ readonly sidebarSlot: _angular_core.Signal<AcpShellSlotSidebar | undefined>;
4566
+ /** Optional footer appended inside the sidebar. */
4567
+ readonly sidebarFooterSlot: _angular_core.Signal<AcpShellSlotSidebarFooter | undefined>;
4568
+ /** Optional toolbar content injected into the header center. */
4569
+ readonly toolbarSlot: _angular_core.Signal<AcpShellSlotToolbar | undefined>;
4570
+ /** Optional top navigation projected above the main page content. */
4571
+ readonly topmenuSlot: _angular_core.Signal<AcpShellSlotTopmenu | undefined>;
4572
+ /** Optional secondary sidenav (e.g. notifications panel, position end). */
4573
+ /** Navigation position. @default 'side' */
4574
+ readonly navPos: _angular_core.InputSignal<AcpNavPos>;
4575
+ /** Header position relative to the sidenav. @default 'fixed' */
4576
+ readonly headerPos: _angular_core.InputSignal<AcpHeaderPos>;
4577
+ /** Whether the sidenav is open. @default true */
4578
+ readonly sidenavOpened: _angular_core.InputSignal<boolean>;
4579
+ /** Whether the sidenav is in collapsed/narrow mode. @default false */
4580
+ readonly sidenavCollapsed: _angular_core.InputSignal<boolean>;
4581
+ /** Whether the viewport is in mobile mode (switches sidenav to "over"). @default false */
4582
+ readonly isMobile: _angular_core.InputSignal<boolean>;
4583
+ /** Layout direction for RTL support. @default 'ltr' */
4584
+ readonly dir: _angular_core.InputSignal<AcpDir>;
4585
+ /** Emitted when the sidenav opened/closed state changes internally. */
4586
+ readonly sidenavOpenedChange: _angular_core.OutputEmitterRef<boolean>;
4587
+ /** 'over' on mobile so the sidebar floats above content. */
4588
+ readonly sidenavMode: _angular_core.Signal<"side" | "over">;
4589
+ /**
4590
+ * Whether to render the header-above zone.
4591
+ * True when `headerPos === 'above'` — spans full width outside the sidenav container.
4592
+ */
4593
+ readonly showHeaderAbove: _angular_core.Signal<boolean>;
4594
+ /**
4595
+ * Whether to render the header inside the content area.
4596
+ * True for 'fixed' and 'below' positions.
4597
+ */
4598
+ readonly showHeaderInContent: _angular_core.Signal<boolean>;
4599
+ /** CSS modifier classes bound to the root container element. */
4600
+ readonly containerClasses: _angular_core.Signal<{
4601
+ 'acontplus-sidenav-collapsed': boolean;
4602
+ 'acontplus-navbar-side': boolean;
4603
+ 'acontplus-navbar-top': boolean;
4604
+ 'acontplus-header-above': boolean;
4605
+ 'acontplus-header-fixed': boolean;
4606
+ }>;
4607
+ /** Toggle the primary sidenav. Callable from parent via template ref. */
4608
+ toggleSidenav(): void;
4609
+ /** Close the primary sidenav. */
4610
+ closeSidenav(): void;
4611
+ /** Scroll the content area back to the top. */
4612
+ scrollToTop(): void;
4613
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpShellLayout, never>;
4614
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpShellLayout, "acp-shell-layout", never, { "navPos": { "alias": "navPos"; "required": false; "isSignal": true; }; "headerPos": { "alias": "headerPos"; "required": false; "isSignal": true; }; "sidenavOpened": { "alias": "sidenavOpened"; "required": false; "isSignal": true; }; "sidenavCollapsed": { "alias": "sidenavCollapsed"; "required": false; "isSignal": true; }; "isMobile": { "alias": "isMobile"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; }, { "sidenavOpenedChange": "sidenavOpenedChange"; }, ["headerSlot", "sidebarSlot", "sidebarFooterSlot", "toolbarSlot", "topmenuSlot"], never, true, never>;
4615
+ }
4616
+
4617
+ interface AcpTopmenuTag {
4618
+ color: string;
4619
+ value: string;
4620
+ }
4621
+ interface AcpTopmenuPermissions {
4622
+ only?: string | string[];
4623
+ except?: string | string[];
4624
+ }
4625
+ interface AcpTopmenuChildItem {
4626
+ route: string;
4627
+ name: string;
4628
+ type: 'link' | 'sub' | 'extLink' | 'extTabLink';
4629
+ children?: AcpTopmenuChildItem[];
4630
+ permissions?: AcpTopmenuPermissions;
4631
+ active?: WritableSignal<boolean>;
4632
+ }
4633
+ interface AcpTopmenuItem {
4634
+ route: string;
4635
+ name: string;
4636
+ type: 'link' | 'sub' | 'extLink' | 'extTabLink';
4637
+ icon: string;
4638
+ label?: AcpTopmenuTag;
4639
+ badge?: AcpTopmenuTag;
4640
+ children?: AcpTopmenuChildItem[];
4641
+ permissions?: AcpTopmenuPermissions;
4642
+ active?: WritableSignal<boolean>;
4643
+ }
4644
+
4645
+ declare class AcpTopmenu {
4646
+ private readonly router;
4647
+ private readonly destroyRef;
4648
+ readonly items: _angular_core.InputSignal<AcpTopmenuItem[]>;
4649
+ readonly buildRoute: _angular_core.InputSignal<(routeArr: string[]) => string>;
4650
+ readonly routeChange: _angular_core.OutputEmitterRef<{
4651
+ rla: RouterLinkActive;
4652
+ item: AcpTopmenuItem | AcpTopmenuChildItem;
4653
+ }>;
4654
+ constructor();
4655
+ onRouteChange(rla: RouterLinkActive, menuItem: AcpTopmenuItem): void;
4656
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpTopmenu, never>;
4657
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpTopmenu, "acp-topmenu", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "buildRoute": { "alias": "buildRoute"; "required": false; "isSignal": true; }; }, { "routeChange": "routeChange"; }, never, never, true, never>;
4658
+ }
4659
+
4660
+ declare class AcpTopmenuPanel {
4661
+ private readonly router;
4662
+ private readonly destroyRef;
4663
+ readonly menuPanel: _angular_core.Signal<MatMenu>;
4664
+ readonly items: _angular_core.InputSignal<AcpTopmenuChildItem[]>;
4665
+ readonly parentRoute: _angular_core.InputSignal<string[]>;
4666
+ readonly level: _angular_core.InputSignal<number>;
4667
+ readonly buildRoute: _angular_core.InputSignal<(routeArr: string[]) => string>;
4668
+ readonly routeChange: _angular_core.OutputEmitterRef<{
4669
+ rla: RouterLinkActive;
4670
+ item: AcpTopmenuChildItem;
4671
+ }>;
4672
+ constructor();
4673
+ onRouterLinkClick(rla: RouterLinkActive): void;
4674
+ onRouteChange(rla: RouterLinkActive, menuItem: AcpTopmenuChildItem): void;
4675
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AcpTopmenuPanel, never>;
4676
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AcpTopmenuPanel, "acp-topmenu-panel", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "parentRoute": { "alias": "parentRoute"; "required": false; "isSignal": true; }; "level": { "alias": "level"; "required": false; "isSignal": true; }; "buildRoute": { "alias": "buildRoute"; "required": false; "isSignal": true; }; }, { "routeChange": "routeChange"; }, never, never, true, never>;
4677
+ }
4678
+
3121
4679
  declare class ToUpperCase implements ControlValueAccessor {
3122
4680
  private readonly el;
3123
4681
  private readonly renderer;
@@ -3197,5 +4755,5 @@ declare class StatusDisplayPipe implements PipeTransform {
3197
4755
  static ɵpipe: _angular_core.ɵɵPipeDeclaration<StatusDisplayPipe, "statusDisplay", true>;
3198
4756
  }
3199
4757
 
3200
- export { ACP_ACTIVE_DATE_DEBOUNCE, ACP_BADGE_COLORS, ACP_BADGE_SHAPES, ACP_BADGE_SIZES, ACP_BADGE_VARIANTS, ACP_DATE_OPTION_TYPE, ACP_DEFAULT_DATE_OPTIONS, ACP_DRAWER_DATA, ACP_DRAWER_DEFAULT_OPTIONS, ACP_POPOVER_CONTENT, ACP_POPOVER_DEFAULT_OPTIONS, ACP_POPOVER_SCROLL_STRATEGY, AcpAlert, AcpBadge, AcpButton, AcpCheckboxBase, AcpCheckboxGroup, AcpDateRangeInput, AcpDrawer, AcpDrawerConfig, AcpDrawerContainer, AcpDrawerRef, AcpKpiCard, AcpPopover, AcpPopoverContent, AcpPopoverTarget, AcpPopoverTrigger, AcpSelectDateOption, AdvancedDialogService, Button, DATA_GRID_DEFAULT_OPTIONS, DataGrid, DateRangePicker, DialogWrapper, DialogZIndexService, DynamicCard, DynamicSelect, GetTotalPipe, IconRegistryService, InputChip, KPI_CARD_TOKENS, KPI_CARD_TREND_CONFIGS, KeyboardNavigationService, OverlayService, Pagination, Spinner, StatusDisplayPipe, SvgIcon, TREND_CONFIGS, TabulatorTable, ThemeSwitcher, ThemeToggle, ToUpperCase, UserIcon, _AcpPopoverContentBase, formatValue };
3201
- export type { AcpAlertType, AcpBadgeColor, AcpBadgeShape, AcpBadgeSize, AcpBadgeTrend, AcpBadgeTrendConfig, AcpBadgeVariant, AcpCheckboxGroupOption, AcpKpiCardColor, AcpKpiCardLayout, AcpKpiCardSize, AcpKpiCardTrend, AcpKpiCardTrendConfig, AcpKpiCardVariant, AcpPopoverDefaultOptions, AcpPopoverPanel, AcpPopoverPosition, AcpPopoverPositionEnd, AcpPopoverPositionStart, AcpPopoverTriggerEvent, AcpSelectedDateEvent, AutoFocusTarget, DataGridButtonType, DataGridCellTemplate, DataGridColumn, DataGridColumnButton, DataGridColumnButtonBadge, DataGridColumnButtonPop, DataGridColumnButtonTooltip, DataGridColumnPinOption, DataGridColumnPinValue, DataGridColumnTag, DataGridColumnTagValue, DataGridColumnType, DataGridColumnTypeParameter, DataGridDefaultOptions, DataGridMenuItem, DataGridRowClassFormatter, DataGridRowSelectionFormatter, DataGridSortProp, DateRangePickerOptions, DateRangeValue, DialogSize, DialogType, DialogWrapperConfig, DrawerPosition, FocusableElement, IAcpSelectDateOption, IconRegistryConfig, MatCustomDialogConfig, PaginationOptions, PopoverCloseReason, TabulatorColumn, TabulatorConfig, TabulatorEventHandlers, TabulatorTheme };
4758
+ export { ACP_ACTIVE_DATE_DEBOUNCE, ACP_BADGE_COLORS, ACP_BADGE_SHAPES, ACP_BADGE_SIZES, ACP_BADGE_VARIANTS, ACP_DATE_OPTION_TYPE, ACP_DEFAULT_DATE_OPTIONS, ACP_DRAWER_DATA, ACP_DRAWER_DEFAULT_OPTIONS, ACP_POPOVER_CONTENT, ACP_POPOVER_DEFAULT_OPTIONS, ACP_POPOVER_SCROLL_STRATEGY, AcpAlert, AcpBadge, AcpButton, AcpCard, AcpCheckboxBase, AcpCheckboxGroup, AcpContextMenu, AcpContextMenuDirective, AcpContextMenuPanel, AcpContextMenuService, AcpDateRangeInput, AcpDrawer, AcpDrawerConfig, AcpDrawerContainer, AcpDrawerRef, AcpHeader, AcpHeaderActions, AcpHeaderBranding, AcpHeaderCenter, AcpHeaderEnd, AcpHeaderLanguage, AcpHeaderNotifications, AcpHeaderStart, AcpHeaderTheme, AcpHeaderWorkspace, AcpKpiCard, AcpPopover, AcpPopoverContent, AcpPopoverTarget, AcpPopoverTrigger, AcpSelectDateOption, AcpShellLayout, AcpShellSlotHeader, AcpShellSlotSidebar, AcpShellSlotSidebarFooter, AcpShellSlotToolbar, AcpShellSlotTopmenu, AcpSidebar, AcpSidebarBranding, AcpSidebarContent, AcpSidebarHeader, AcpSidebarToggle, AcpSidebarUserPanel, AcpTopmenu, AcpTopmenuPanel, AdvancedDialogService, Branding, Button, CONTEXT_MENU_DATA, CONTEXT_MENU_ITEMS, DATA_GRID_DEFAULT_OPTIONS, DataGrid, DateRangePicker, DialogWrapper, DialogZIndexService, DynamicCard, DynamicSelect, GetTotalPipe, IconRegistryService, InputChip, KPI_CARD_TOKENS, KPI_CARD_TREND_CONFIGS, KeyboardNavigationService, NavAccordionDirective, NavAccordionItemDirective, NavAccordionToggleDirective, OverlayService, Pagination, SidemenuComponent, Spinner, StatusDisplayPipe, SvgIcon, TREND_CONFIGS, TabulatorTable, ThemeSwitcher, ThemeToggle, ToUpperCase, UserIcon, UserMenu, UserPanel, _AcpPopoverContentBase, formatValue };
4759
+ export type { AcpAlertType, AcpBadgeColor, AcpBadgeShape, AcpBadgeSize, AcpBadgeTrend, AcpBadgeTrendConfig, AcpBadgeVariant, AcpCardAppearance, AcpCardBackgroundColor, AcpCardBadge, AcpCardConfig, AcpCardElevation, AcpCardImageRatio, AcpCardPadding, AcpCardPassThroughOptions, AcpCardPassThroughSection, AcpCheckboxGroupOption, AcpContextMenuItem, AcpContextMenuItemContext, AcpContextMenuOpenConfig, AcpContextMenuPosition, AcpContextMenuRef, AcpContextMenuTriggerConfig, AcpDir, AcpHeaderAction, AcpHeaderActionEvent, AcpHeaderBrandingConfig, AcpHeaderConfig, AcpHeaderPos, AcpHeaderUserMenuConfig, AcpHeaderUserMenuItem, AcpHeaderUserMenuItemEvent, AcpKpiCardColor, AcpKpiCardLayout, AcpKpiCardSize, AcpKpiCardTrend, AcpKpiCardTrendConfig, AcpKpiCardVariant, AcpLanguageItem, AcpNavPos, AcpNotificationItem, AcpPopoverDefaultOptions, AcpPopoverPanel, AcpPopoverPosition, AcpPopoverPositionEnd, AcpPopoverPositionStart, AcpPopoverTriggerEvent, AcpSelectedDateEvent, AcpThemeVariant, AcpTopmenuChildItem, AcpTopmenuItem, AcpTopmenuPermissions, AcpTopmenuTag, AcpWorkspaceItem, AutoFocusTarget, DataGridButtonType, DataGridCellTemplate, DataGridColumn, DataGridColumnButton, DataGridColumnButtonBadge, DataGridColumnButtonPop, DataGridColumnButtonTooltip, DataGridColumnPinOption, DataGridColumnPinValue, DataGridColumnTag, DataGridColumnTagValue, DataGridColumnType, DataGridColumnTypeParameter, DataGridDefaultOptions, DataGridMenuItem, DataGridRowClassFormatter, DataGridRowSelectionFormatter, DataGridSortProp, DateRangePickerOptions, DateRangeValue, DialogSize, DialogType, DialogWrapperConfig, DrawerPosition, FocusableElement, IAcpSelectDateOption, IconRegistryConfig, MatCustomDialogConfig, MenuItem, MenuPermissions, MenuTag, PaginationOptions, PopoverCloseReason, TabulatorColumn, TabulatorConfig, TabulatorEventHandlers, TabulatorTheme, UserMenuItem, UserMenuSelectedEvent, UserProfile };