@akcelik/strct 1.11.0 → 1.12.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": "@akcelik/strct",
3
- "version": "1.11.0",
3
+ "version": "1.12.0",
4
4
  "description": "UIStruct — a standalone Angular component library with a tokenised, multi-palette theme system, built for datacenter / infrastructure management UIs.",
5
5
  "author": "Serkan Akcelik <serkan.akcelik@gmail.com>",
6
6
  "license": "MIT",
@@ -330,9 +330,17 @@ declare class StrctIcon {
330
330
  private readonly sanitizer;
331
331
  /**
332
332
  * Icon name. Typed to autocomplete the built-in set while still accepting
333
- * any string, since `registerStrctIcon` can add names at runtime.
333
+ * any string, since `registerStrctIcon` can add names at runtime. For a
334
+ * compile-time guarantee use `strictName` instead.
334
335
  */
335
336
  readonly name: _angular_core.InputSignal<StrctIconName | (string & {})>;
337
+ /**
338
+ * Strict alternative to `name`: typed as the bare `StrctIconName` union, so
339
+ * a mistyped built-in name is a BUILD error under strict templates —
340
+ * `strictName="sheildCheck"` fails to compile. Wins over `name` when both
341
+ * are set. Use `name` for runtime-registered custom icons.
342
+ */
343
+ readonly strictName: _angular_core.InputSignal<StrctIconName | null>;
336
344
  /** Icon size in pixels. */
337
345
  readonly size: _angular_core.InputSignal<number>;
338
346
  /** Stroke width for outline icons. */
@@ -341,12 +349,14 @@ declare class StrctIcon {
341
349
  readonly badge: _angular_core.InputSignal<StrctIconBadge>;
342
350
  /** Accessible label for the icon. When empty the icon is hidden from assistive tech. */
343
351
  readonly ariaLabel: _angular_core.InputSignal<string>;
352
+ /** The effective name: `strictName` wins when set. */
353
+ protected readonly iconName: _angular_core.Signal<StrctIconName | (string & {})>;
344
354
  /** True when the named icon is a full-SVG (raw) icon registered by the app. */
345
355
  protected readonly isRaw: _angular_core.Signal<boolean>;
346
356
  protected readonly svg: _angular_core.Signal<SafeHtml>;
347
357
  protected readonly rawSvg: _angular_core.Signal<SafeHtml>;
348
358
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctIcon, never>;
349
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctIcon, "strct-icon", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
359
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctIcon, "strct-icon", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "strictName": { "alias": "strictName"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
350
360
  }
351
361
 
352
362
  /** Overlay positioning strategies. */
@@ -2799,6 +2809,14 @@ declare class StrctDatagrid {
2799
2809
  protected startEdit(row: StrctRow, col: StrctDatagridColumn): void;
2800
2810
  protected commitEdit(row: StrctRow, col: StrctDatagridColumn, event: Event): void;
2801
2811
  protected cancelEdit(event?: Event): void;
2812
+ /**
2813
+ * `singleLine` reveal: hovering a cell whose content is actually clipped
2814
+ * gets the full text as a native `title`. Hover-lazy (one delegated
2815
+ * listener, zero render cost — virtual grids pay nothing for unhovered
2816
+ * cells), covers plain and `strctCell`-templated cells alike via
2817
+ * `textContent`, and self-corrects after a column resize.
2818
+ */
2819
+ protected revealIfClipped(event: Event): void;
2802
2820
  /** Active (non-empty) filter entries. */
2803
2821
  private readonly activeFilters;
2804
2822
  private readonly quickTerm;