@ascentgl/ads-ui 22.1.0 → 22.7.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ascentgl/ads-ui",
3
- "version": "22.1.0",
3
+ "version": "22.7.0",
4
4
  "peerDependencies": {
5
5
  "@angular/animations": ">=22.0.0",
6
6
  "date-fns": ">=4.1.0",
@@ -2249,6 +2249,12 @@ interface AdsMenuDropDownItem {
2249
2249
  icon?: adsIcon;
2250
2250
  /** Whether the item is disabled (skipped during keyboard navigation and not selectable) */
2251
2251
  disabled?: boolean;
2252
+ /**
2253
+ * When true, a horizontal divider is rendered directly above this item (unless it is the
2254
+ * first item). Use to visually group actions — e.g. separating a "Set as default" action
2255
+ * from the rest of the menu. Purely presentational; does not affect keyboard navigation.
2256
+ */
2257
+ separatorBefore?: boolean;
2252
2258
  }
2253
2259
 
2254
2260
  declare class AdsMenuDropDownComponent implements AfterViewInit {
@@ -3327,11 +3333,18 @@ type AdsNavItemV2 = {
3327
3333
  href?: string;
3328
3334
  subItems?: AdsNavSubItemV2[];
3329
3335
  showDividerAfterItem?: boolean;
3336
+ /** Force the item highlighted regardless of the router (for click-driven, non-route items). */
3337
+ active?: boolean;
3330
3338
  };
3331
3339
  type AdsNavSubItemV2 = {
3332
3340
  label: string;
3333
3341
  icon?: adsIcon;
3334
- href: string;
3342
+ /** Optional: omit for click-driven items that are not routes (emit `itemSelect` instead). */
3343
+ href?: string;
3344
+ /** Caller context carried through `itemSelect` (e.g. a tab index). */
3345
+ id?: string;
3346
+ /** Force the item highlighted regardless of the router (for click-driven, non-route items). */
3347
+ active?: boolean;
3335
3348
  };
3336
3349
 
3337
3350
  declare class AdsSideNavBarV2Component implements OnInit, OnDestroy {
@@ -3347,6 +3360,8 @@ declare class AdsSideNavBarV2Component implements OnInit, OnDestroy {
3347
3360
  collapsed: i0.InputSignal<boolean | undefined>;
3348
3361
  /** Emits when collapsed state changes */
3349
3362
  collapsedChange: i0.OutputEmitterRef<boolean>;
3363
+ /** Emits when a click-driven sub-item (one without an `href`) is selected. */
3364
+ itemSelect: i0.OutputEmitterRef<AdsNavSubItemV2>;
3350
3365
  /** @ignore */
3351
3366
  isMobile: i0.WritableSignal<boolean>;
3352
3367
  /** @ignore */
@@ -3365,16 +3380,18 @@ declare class AdsSideNavBarV2Component implements OnInit, OnDestroy {
3365
3380
  toggleCollapsed(): void;
3366
3381
  /** @ignore */
3367
3382
  onNavItemClick(): void;
3383
+ /** @ignore Click handler for sub-items; emits `itemSelect` for non-route (hrefless) items. */
3384
+ onSubItemClick(item: AdsNavSubItemV2): void;
3368
3385
  /** @ignore */
3369
3386
  private checkMobile;
3370
3387
  /** @ignore */
3371
3388
  hasActiveLink(item: AdsNavItemV2): boolean;
3372
- /** @ignore */
3389
+ /** @ignore Explicit `active` flag wins; falls back to a router match when `href` is set. */
3373
3390
  hasActiveSubLink(item: AdsNavSubItemV2): boolean;
3374
3391
  /** @ignore */
3375
3392
  private isActive;
3376
3393
  static ɵfac: i0.ɵɵFactoryDeclaration<AdsSideNavBarV2Component, never>;
3377
- static ɵcmp: i0.ɵɵComponentDeclaration<AdsSideNavBarV2Component, "ads-side-nav-bar-v2", never, { "navItems": { "alias": "navItems"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; }, { "collapsedChange": "collapsedChange"; }, never, never, true, never>;
3394
+ static ɵcmp: i0.ɵɵComponentDeclaration<AdsSideNavBarV2Component, "ads-side-nav-bar-v2", never, { "navItems": { "alias": "navItems"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; }, { "collapsedChange": "collapsedChange"; "itemSelect": "itemSelect"; }, never, never, true, never>;
3378
3395
  }
3379
3396
 
3380
3397
  type MainMenuItem = {
@@ -3857,6 +3874,12 @@ interface Tab {
3857
3874
  disabled?: boolean;
3858
3875
  template?: TemplateRef<unknown>;
3859
3876
  headerTemplate?: TemplateRef<unknown>;
3877
+ /** CSS class applied to the tab's header element (mat-tab `labelClass`). */
3878
+ labelClass?: string;
3879
+ /** Context object passed to `headerTemplate` and `template` so one template can render per-tab data. */
3880
+ templateContext?: unknown;
3881
+ /** When `true`, the tab content renders lazily via `matTabContent` (only while the tab is active). */
3882
+ lazy?: boolean;
3860
3883
  }
3861
3884
  declare class AdsTabsComponent implements AfterViewInit {
3862
3885
  tabGroup: i0.Signal<MatTabGroup>;
@@ -3868,6 +3891,10 @@ declare class AdsTabsComponent implements AfterViewInit {
3868
3891
  activeColor: Colors | undefined;
3869
3892
  /** When `true`, the border-bottom on inactive (non-active, non-disabled) tabs is hidden. Defaults to `false`. */
3870
3893
  hideInactiveBorder: boolean;
3894
+ /** When `false`, tab headers size to their content instead of stretching to fill the width. Defaults to `true`. */
3895
+ stretchTabs: boolean;
3896
+ /** Tab change animation duration forwarded to `mat-tab-group` (e.g. `'500ms'`). When `undefined`, Material's default is used. */
3897
+ animationDuration: string | number | undefined;
3871
3898
  selectedIndexChange: EventEmitter<number>;
3872
3899
  tabChange: EventEmitter<{
3873
3900
  index: number;
@@ -3877,7 +3904,7 @@ declare class AdsTabsComponent implements AfterViewInit {
3877
3904
  get _activeColorVar(): string | null;
3878
3905
  ngAfterViewInit(): void;
3879
3906
  static ɵfac: i0.ɵɵFactoryDeclaration<AdsTabsComponent, never>;
3880
- static ɵcmp: i0.ɵɵComponentDeclaration<AdsTabsComponent, "ads-tabs", never, { "tabs": { "alias": "tabs"; "required": false; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; }; "tabWidth": { "alias": "tabWidth"; "required": false; }; "activeColor": { "alias": "activeColor"; "required": false; }; "hideInactiveBorder": { "alias": "hideInactiveBorder"; "required": false; }; }, { "selectedIndexChange": "selectedIndexChange"; "tabChange": "tabChange"; }, never, never, true, never>;
3907
+ static ɵcmp: i0.ɵɵComponentDeclaration<AdsTabsComponent, "ads-tabs", never, { "tabs": { "alias": "tabs"; "required": false; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; }; "tabWidth": { "alias": "tabWidth"; "required": false; }; "activeColor": { "alias": "activeColor"; "required": false; }; "hideInactiveBorder": { "alias": "hideInactiveBorder"; "required": false; }; "stretchTabs": { "alias": "stretchTabs"; "required": false; }; "animationDuration": { "alias": "animationDuration"; "required": false; }; }, { "selectedIndexChange": "selectedIndexChange"; "tabChange": "tabChange"; }, never, never, true, never>;
3881
3908
  }
3882
3909
 
3883
3910
  declare enum CountryCode {