@forgeroute/ui 0.4.24 → 0.4.25

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": "@forgeroute/ui",
3
- "version": "0.4.24",
3
+ "version": "0.4.25",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=22.0.0",
6
6
  "@angular/core": ">=22.0.0",
@@ -489,6 +489,8 @@ export declare class PaginationComponent {
489
489
  readonly detached: import("@angular/core").InputSignal<boolean>;
490
490
  /** Embedded look for a container that already has its own background and edge (a `ui-detail-card` footer, a panel): transparent, no border, no radius, no padding. Default false: unchanged. Wins over `detached`. */
491
491
  readonly embedded: import("@angular/core").InputSignal<boolean>;
492
+ /** Accessible name of the pager's navigation landmark (default `Pagination`). Give each pager of a page its own name (`Contacts pages`) so assistive tech can tell them apart; empty or blank falls back to the default. */
493
+ readonly ariaLabel: import("@angular/core").InputSignal<string>;
492
494
  readonly pageChange: import("@angular/core").OutputEmitterRef<number>;
493
495
  readonly totalPages: import("@angular/core").Signal<number>;
494
496
  readonly startItem: import("@angular/core").Signal<number>;
@@ -522,6 +524,11 @@ export declare class PaginationComponent {
522
524
  "required": false;
523
525
  "isSignal": true;
524
526
  };
527
+ "ariaLabel": {
528
+ "alias": "ariaLabel";
529
+ "required": false;
530
+ "isSignal": true;
531
+ };
525
532
  }, {
526
533
  "pageChange": "pageChange";
527
534
  }, never, never, true, never>;
@@ -1320,6 +1327,12 @@ export declare class DataTableComponent<T extends Record<string, any>> implement
1320
1327
  * tabs are all off, the header row is not rendered at all.
1321
1328
  */
1322
1329
  readonly showQuickTabs: import("@angular/core").InputSignal<boolean>;
1330
+ /**
1331
+ * Keep the Actions column (the row "⋮" menu) pinned to the right edge while the table scrolls sideways, so a wide table never hides it
1332
+ * off-screen. Default false: every existing table is unchanged. Only matters when the table is wider than its container (columns scroll);
1333
+ * phones use the card list, which has no sideways scroll.
1334
+ */
1335
+ readonly stickyActions: import("@angular/core").InputSignal<boolean>;
1323
1336
  /**
1324
1337
  * Optional heading shown at the start of the header row, on the same row as the search box / tabs on the left and the
1325
1338
  * Export / primary buttons on the right (rendered as an `<h3>`, also while the table is loading and when it is empty).
@@ -1859,6 +1872,11 @@ export declare class DataTableComponent<T extends Record<string, any>> implement
1859
1872
  "required": false;
1860
1873
  "isSignal": true;
1861
1874
  };
1875
+ "stickyActions": {
1876
+ "alias": "stickyActions";
1877
+ "required": false;
1878
+ "isSignal": true;
1879
+ };
1862
1880
  "tableTitle": {
1863
1881
  "alias": "tableTitle";
1864
1882
  "required": false;
@@ -6882,6 +6900,18 @@ export interface PanelInfoSection {
6882
6900
  label: string;
6883
6901
  url: string;
6884
6902
  };
6903
+ /**
6904
+ * A small secondary button at the end of the section's header bar (e.g. "Add item" for a list of line items). `action` runs on
6905
+ * click; `ariaLabel` is the accessible name when the visible label is not enough (default: the label). The header bar is shown
6906
+ * for a section with a `headerAction` even when it has no `title`. Not rendered for a section with no visible items unless
6907
+ * `showEmptyState` keeps the section.
6908
+ */
6909
+ headerAction?: {
6910
+ label: string;
6911
+ action: () => void;
6912
+ ariaLabel?: string;
6913
+ disabled?: boolean;
6914
+ };
6885
6915
  items: PanelInfoItem[];
6886
6916
  columns?: 2;
6887
6917
  }
@@ -6954,6 +6984,9 @@ export declare class PanelInfoListComponent {
6954
6984
  * readers announce it as pressed / not pressed. A dismissible chip is a removable tag, not a toggle, so it carries no
6955
6985
  * `aria-pressed` (the ✕ button is named "Remove <label>").
6956
6986
  *
6987
+ * Dismissible chips can be removed from the keyboard: Tab to the ✕ (focusable, named "Remove <label>") and press Enter or
6988
+ * Space, or press Delete / Backspace while the chip itself is focused.
6989
+ *
6957
6990
  * Dismissible (shows an ✕ button — parent removes the chip on dismiss):
6958
6991
  * <ui-chip label="Austin" size="sm" [dismissible]="true" (dismiss)="removeCity('Austin')" />
6959
6992
  *
@@ -6992,6 +7025,11 @@ export declare class ChipComponent implements ControlValueAccessor {
6992
7025
  protected _onTouched: () => void;
6993
7026
  protected onClick(): void;
6994
7027
  protected onDismiss(event: Event): void;
7028
+ /**
7029
+ * Keyboard removal: Enter / Space on the focused ✕, or Delete / Backspace on the chip itself (dismissible chips only).
7030
+ * Handled here so the key never also toggles the chip.
7031
+ */
7032
+ protected onDismissKey(event: Event): void;
6995
7033
  writeValue(v: boolean): void;
6996
7034
  registerOnChange(fn: (v: boolean) => void): void;
6997
7035
  registerOnTouched(fn: () => void): void;
@@ -7259,7 +7297,7 @@ export declare class AppShellComponent implements OnInit, OnDestroy {
7259
7297
  };
7260
7298
  }, {
7261
7299
  "logoutClick": "logoutClick";
7262
- }, never, ["[shell-brand]", "[shell-header-end]", "[shell-banners]", "*"], true, never>;
7300
+ }, never, ["[shell-brand]", "[shell-header-start]", "[shell-header-end]", "[shell-banners]", "*"], true, never>;
7263
7301
  }
7264
7302
  export type AlertVariant = 'info' | 'success' | 'warning' | 'danger' | 'neutral';
7265
7303
  /**
@@ -7277,6 +7315,11 @@ export declare class AlertComponent {
7277
7315
  readonly variant: import("@angular/core").InputSignal<AlertVariant>;
7278
7316
  readonly title: import("@angular/core").InputSignal<string>;
7279
7317
  readonly dismissible: import("@angular/core").InputSignal<boolean>;
7318
+ /**
7319
+ * Accessible name of the dismiss (X) button. Default "Dismiss". In a list of alerts give each its own name
7320
+ * ("Dismiss Significant alert from Sep 20, 2026") so a screen-reader user can tell the buttons apart.
7321
+ */
7322
+ readonly dismissAriaLabel: import("@angular/core").InputSignal<string>;
7280
7323
  /**
7281
7324
  * Quiet: no live-region role, so a screen reader does NOT announce it when it appears. Use it for an alert that is already on
7282
7325
  * the page when the user gets there, or for each item of a long list of alerts (e.g. one per failed import row — 500 danger
@@ -7310,6 +7353,11 @@ export declare class AlertComponent {
7310
7353
  "required": false;
7311
7354
  "isSignal": true;
7312
7355
  };
7356
+ "dismissAriaLabel": {
7357
+ "alias": "dismissAriaLabel";
7358
+ "required": false;
7359
+ "isSignal": true;
7360
+ };
7313
7361
  "quiet": {
7314
7362
  "alias": "quiet";
7315
7363
  "required": false;