Skip to content
This repository was archived by the owner on Sep 1, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"@angular/platform-browser": "^20.3.15",
"@angular/platform-browser-dynamic": "^20.3.15",
"@angular/router": "^20.3.15",
"@tylertech/forge": "^3.14.0",
"@tylertech/forge": "^3.15.2",
"@tylertech/tyler-icons": "^2.0.4",
"rxjs": "^7.8.2",
"tslib": "^2.8.1",
Expand All @@ -38,12 +38,12 @@
"@angular/build": "^20.3.13",
"@angular/cli": "^20.3.13",
"@angular/compiler-cli": "^20.3.15",
"@schematics/angular": "^20.3.13",
"@auto-it/conventional-commits": "^11.3.6",
"@auto-it/first-time-contributor": "^11.3.6",
"@auto-it/npm": "^11.3.6",
"@commitlint/cli": "^20.1.0",
"@commitlint/config-conventional": "^20.0.0",
"@schematics/angular": "^20.3.13",
"@tylertech-eslint/eslint-plugin": "^1.0.16",
"@tylertech/forge-schematics": "^2.0.0",
"@types/jasmine": "^5.1.13",
Expand Down
12 changes: 10 additions & 2 deletions projects/forge-angular/src/lib/forge.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,10 @@ import { ForgeTooltipModule } from './tooltip';
import { ForgeViewModule } from './view';
import { ForgeViewSwitcherModule } from './view-switcher';
import { ForgeTreeModule } from './tree';
import { ForgeTabPanelModule } from './tab-panel/tab-panel.module';
import { ForgeTimelineModule } from './timeline/timeline.module';
import { ForgeTimelineBreakModule } from './timeline-break/timeline-break.module';
import { ForgeTimelineItemModule } from './timeline-item/timeline-item.module';

@NgModule({
exports: [
Expand Down Expand Up @@ -168,15 +172,19 @@ import { ForgeTreeModule } from './tree';
ForgeSwitchModule,
ForgeTabModule,
ForgeTabBarModule,
ForgeTabPanelModule,
ForgeTableModule,
ForgeTextFieldModule,
ForgeTimelineBreakModule,
ForgeTimelineItemModule,
ForgeTimelineModule,
ForgeTimePickerModule,
ForgeToastModule,
ForgeToolbarModule,
ForgeTooltipModule,
ForgeTreeModule,
ForgeViewModule,
ForgeViewSwitcherModule
]
ForgeViewSwitcherModule,
],
})
export class ForgeModule {}
79 changes: 78 additions & 1 deletion projects/forge-angular/src/lib/skeleton/skeleton.component.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// This code was generated by the angular-custom-elements-schematic. Any changes will be overwritten next time it runs.
import { Component, ElementRef, ChangeDetectionStrategy, ChangeDetectorRef, NgZone, Input, inject } from '@angular/core';
import { booleanAttribute, Component, ElementRef, ChangeDetectionStrategy, ChangeDetectorRef, NgZone, Input, inject } from '@angular/core';
import { SkeletonComponent as SkeletonComponentCustomElement, defineSkeletonComponent } from '@tylertech/forge';

/** */
Expand All @@ -16,6 +16,83 @@ export class SkeletonComponent {
/** The forge-skeleton element. */
public readonly nativeElement = this.elementRef.nativeElement;

/** Applies form field styles to the skeleton. */
@Input({ transform: booleanAttribute })
public set formField(value: SkeletonComponentCustomElement['formField']) {
this.zone.runOutsideAngular(() => {
this.nativeElement.formField = value;
});
}
public get formField(): SkeletonComponentCustomElement['formField'] {
return this.nativeElement.formField;
}

/** Applies button styles to the skeleton. */
@Input({ transform: booleanAttribute })
public set button(value: SkeletonComponentCustomElement['button']) {
this.zone.runOutsideAngular(() => {
this.nativeElement.button = value;
});
}
public get button(): SkeletonComponentCustomElement['button'] {
return this.nativeElement.button;
}

/** Applies chip styles to the skeleton. */
@Input({ transform: booleanAttribute })
public set chip(value: SkeletonComponentCustomElement['chip']) {
this.zone.runOutsideAngular(() => {
this.nativeElement.chip = value;
});
}
public get chip(): SkeletonComponentCustomElement['chip'] {
return this.nativeElement.chip;
}

/** Applies list item styles to the skeleton. */
@Input({ transform: booleanAttribute })
public set listItem(value: SkeletonComponentCustomElement['listItem']) {
this.zone.runOutsideAngular(() => {
this.nativeElement.listItem = value;
});
}
public get listItem(): SkeletonComponentCustomElement['listItem'] {
return this.nativeElement.listItem;
}

/** Applies text styles to the skeleton. */
@Input({ transform: booleanAttribute })
public set text(value: SkeletonComponentCustomElement['text']) {
this.zone.runOutsideAngular(() => {
this.nativeElement.text = value;
});
}
public get text(): SkeletonComponentCustomElement['text'] {
return this.nativeElement.text;
}

/** Applies avatar styles to the skeleton. */
@Input({ transform: booleanAttribute })
public set avatar(value: SkeletonComponentCustomElement['avatar']) {
this.zone.runOutsideAngular(() => {
this.nativeElement.avatar = value;
});
}
public get avatar(): SkeletonComponentCustomElement['avatar'] {
return this.nativeElement.avatar;
}

/** Applies stretch styles to the skeleton. */
@Input({ transform: booleanAttribute })
public set stretch(value: SkeletonComponentCustomElement['stretch']) {
this.zone.runOutsideAngular(() => {
this.nativeElement.stretch = value;
});
}
public get stretch(): SkeletonComponentCustomElement['stretch'] {
return this.nativeElement.stretch;
}

constructor() {
defineSkeletonComponent();
const changeDetectorRef = inject(ChangeDetectorRef);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ export class SkipLinkComponent {
return this.nativeElement.persistent;
}

/** Whether or not the skip link renders within its container. */
/** Whether or not the skip link is positioned within its container. */
@Input({ transform: booleanAttribute })
public set inline(value: SkipLinkComponentCustomElement['inline']) {
this.zone.runOutsideAngular(() => {
Expand Down
49 changes: 45 additions & 4 deletions projects/forge-angular/src/lib/tab-bar/tab-bar.component.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// This code was generated by the angular-custom-elements-schematic. Any changes will be overwritten next time it runs.
import { booleanAttribute, Component, ElementRef, ChangeDetectionStrategy, ChangeDetectorRef, NgZone, numberAttribute, Input, inject } from '@angular/core';
import { booleanAttribute, Component, ElementRef, ChangeDetectionStrategy, ChangeDetectorRef, NgZone, Input, inject } from '@angular/core';
import { TabBarComponent as TabBarComponentCustomElement, defineTabBarComponent } from '@tylertech/forge';

/** */
Expand All @@ -16,7 +16,12 @@ export class TabBarComponent {
/** The forge-tab-bar element. */
public readonly nativeElement = this.elementRef.nativeElement;

/** Sets the disabled state of all child tabs. If true, any new tabs added to the DOM will be disabled by default. This can be used instead of setting individual tab disabled properties, mixing the two methods of disabling is not supported. */
/**
* Sets the disabled state of all child tabs. If true, any new tabs added to the DOM will be
* disabled by default. This can be used instead of setting individual tab disabled properties,
* mixing the two methods of disabling is not supported. Disabled tabs remain focusable but are
* not interactive.
*/
@Input({ transform: booleanAttribute })
public set disabled(value: TabBarComponentCustomElement['disabled']) {
this.zone.runOutsideAngular(() => {
Expand All @@ -28,7 +33,7 @@ export class TabBarComponent {
}

/** The index of the active tab. */
@Input({ transform: numberAttribute })
@Input()
public set activeTab(value: TabBarComponentCustomElement['activeTab']) {
this.zone.runOutsideAngular(() => {
this.nativeElement.activeTab = value;
Expand All @@ -38,6 +43,17 @@ export class TabBarComponent {
return this.nativeElement.activeTab;
}

/** The name of the active tab. */
@Input()
public set activeTabName(value: TabBarComponentCustomElement['activeTabName']) {
this.zone.runOutsideAngular(() => {
this.nativeElement.activeTabName = value;
});
}
public get activeTabName(): TabBarComponentCustomElement['activeTabName'] {
return this.nativeElement.activeTabName;
}

/** Controls whether the tab bar is vertical or horizontal. */
@Input({ transform: booleanAttribute })
public set vertical(value: TabBarComponentCustomElement['vertical']) {
Expand All @@ -49,7 +65,10 @@ export class TabBarComponent {
return this.nativeElement.vertical;
}

/** Controls whether the tabs stretch the full width of their container or cluster together at their minimum width. */
/**
* Controls whether the tabs stretch the full width of their container or cluster together at
* their minimum width.
*/
@Input({ transform: booleanAttribute })
public set clustered(value: TabBarComponentCustomElement['clustered']) {
this.zone.runOutsideAngular(() => {
Expand Down Expand Up @@ -93,6 +112,17 @@ export class TabBarComponent {
return this.nativeElement.inverted;
}

/** Controls whether the tabs can be closed with the delete key. */
@Input({ transform: booleanAttribute })
public set closable(value: TabBarComponentCustomElement['closable']) {
this.zone.runOutsideAngular(() => {
this.nativeElement.closable = value;
});
}
public get closable(): TabBarComponentCustomElement['closable'] {
return this.nativeElement.closable;
}

/** Controls whether the tabs are automatically activated when receiving focus. */
@Input({ transform: booleanAttribute })
public set autoActivate(value: TabBarComponentCustomElement['autoActivate']) {
Expand All @@ -115,6 +145,17 @@ export class TabBarComponent {
return this.nativeElement.scrollButtons;
}

/** The tab bar's theme. */
@Input()
public set theme(value: TabBarComponentCustomElement['theme']) {
this.zone.runOutsideAngular(() => {
this.nativeElement.theme = value;
});
}
public get theme(): TabBarComponentCustomElement['theme'] {
return this.nativeElement.theme;
}

constructor() {
defineTabBarComponent();
const changeDetectorRef = inject(ChangeDetectorRef);
Expand Down
16 changes: 8 additions & 8 deletions projects/forge-angular/src/lib/tab-bar/tab-bar.module.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
// This code was generated by the angular-custom-elements-schematic. Any changes will be overwritten next time it runs.
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { NgModule } from '@angular/core';
import { defineTabBarComponent } from '@tylertech/forge';

import { ForgeTabModule } from '../tab/tab.module';
import { TabBarComponent } from './tab-bar.component';

@NgModule({
imports: [CommonModule, ForgeTabModule],
declarations: [TabBarComponent],
exports: [TabBarComponent, ForgeTabModule]
imports: [CommonModule, ForgeTabModule],
declarations: [TabBarComponent],
exports: [TabBarComponent, ForgeTabModule],
})
export class ForgeTabBarModule {
constructor() {
defineTabBarComponent();
}
}
constructor() {
defineTabBarComponent();
}
}
2 changes: 2 additions & 0 deletions projects/forge-angular/src/lib/tab-panel/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export * from './tab-panel.component';
export * from './tab-panel.module';
Loading
Loading