@truenas/ui-components 0.7.7 → 0.7.8

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": "@truenas/ui-components",
3
- "version": "0.7.7",
3
+ "version": "0.7.8",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org",
6
6
  "access": "public"
@@ -54,8 +54,8 @@ declare function kebabTestSegment(part: string | number): string;
54
54
  * re-implemented at each call site.
55
55
  *
56
56
  * Note this is *base-first*: the suffix trails the base. Fixed chrome whose role
57
- * should lead (e.g. `tn-dialog-shell`'s `button-close-<base>`) prepends the role
58
- * manually instead of calling this.
57
+ * should lead (e.g. `tn-dialog-shell`'s `button-close-<base>` and
58
+ * `dialog-title-<base>`) prepends the role manually instead of calling this.
59
59
  *
60
60
  * Falsy segments are preserved here (not filtered) so `composeTestId` can apply
61
61
  * its own drop/scoping rules — `scopeTestId(undefined, 'edit')` yields
@@ -1840,6 +1840,16 @@ declare class TnBannerComponent {
1840
1840
  message: _angular_core.InputSignal<string | undefined>;
1841
1841
  type: _angular_core.InputSignal<TnBannerType>;
1842
1842
  bordered: _angular_core.InputSignal<boolean>;
1843
+ /**
1844
+ * Semantic base for the banner's test id, rendered onto the banner root as
1845
+ * `banner-<testId>` through {@link TnTestIdDirective} — so the value follows
1846
+ * the library's own naming and honours `TN_TEST_ATTR`.
1847
+ *
1848
+ * The root, rather than the host element, because that is what carries the
1849
+ * live-region role: the element a test asserts a warning on is the same one
1850
+ * assistive tech announces.
1851
+ */
1852
+ testId: _angular_core.InputSignal<TnTestIdValue>;
1843
1853
  constructor();
1844
1854
  /**
1845
1855
  * Register all MDI icons used by the banner component
@@ -1865,7 +1875,7 @@ declare class TnBannerComponent {
1865
1875
  */
1866
1876
  classes: _angular_core.Signal<string[]>;
1867
1877
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TnBannerComponent, never>;
1868
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TnBannerComponent, "tn-banner", never, { "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; }, {}, ["actionContent"], ["*", "[tnBannerAction]"], true, never>;
1878
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TnBannerComponent, "tn-banner", never, { "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "testId": { "alias": "testId"; "required": false; "isSignal": true; }; }, {}, ["actionContent"], ["*", "[tnBannerAction]"], true, never>;
1869
1879
  }
1870
1880
 
1871
1881
  /**
@@ -14432,9 +14442,10 @@ declare class TnDialogShellComponent implements OnInit {
14432
14442
  /** Hide the actions footer. Same wrapper-case rationale as {@link hideContent}. */
14433
14443
  hideActions: _angular_core.InputSignal<boolean>;
14434
14444
  /**
14435
- * Optional semantic base that scopes the shell's chrome buttons. The close
14436
- * and fullscreen buttons emit `button-close` / `button-fullscreen` by default,
14437
- * or `button-close-<testId>` / `button-fullscreen-<testId>` when a base is
14445
+ * Optional semantic base that scopes the shell's chrome. The close and
14446
+ * fullscreen buttons emit `button-close` / `button-fullscreen` by default, and
14447
+ * the title heading `dialog-title`, or `button-close-<testId>` /
14448
+ * `button-fullscreen-<testId>` / `dialog-title-<testId>` when a base is
14438
14449
  * provided (useful when more than one dialog can be open).
14439
14450
  */
14440
14451
  testId: _angular_core.InputSignal<TnTestIdValue>;
@@ -14473,6 +14484,19 @@ declare class TnDialogShellComponent implements OnInit {
14473
14484
  protected closeTestId: Signal<(string | number | null | undefined)[]>;
14474
14485
  /** Role-first test-id segments for the fullscreen button: `button-fullscreen[-<base>]`. */
14475
14486
  protected fullscreenTestId: Signal<(string | number | null | undefined)[]>;
14487
+ /**
14488
+ * Role-first test-id segments for the title heading: `dialog-title[-<base>]`.
14489
+ *
14490
+ * The heading is fixed chrome like the two buttons, so it follows the same
14491
+ * role-first shape — and a test that knows a dialog's base knows its title's
14492
+ * id without being told separately, which is the point: dialogs raised
14493
+ * through one generic error path are otherwise indistinguishable by id, and
14494
+ * the only remaining handle is a match on their prose.
14495
+ *
14496
+ * There is no id when there is no title: the heading is not rendered at all
14497
+ * (see the template), so nothing is left behind to select.
14498
+ */
14499
+ protected titleTestId: Signal<(string | number | null | undefined)[]>;
14476
14500
  /** Stable id for the title heading, referenced by the dialog's aria-labelledby. */
14477
14501
  readonly titleId: string;
14478
14502
  isFullscreen: _angular_core.WritableSignal<boolean>;