@akcelik/strct 4.11.0 → 4.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": "4.11.0",
3
+ "version": "4.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",
@@ -352,6 +352,27 @@ declare class StrctIcon {
352
352
  readonly badge: _angular_core.InputSignal<StrctIconBadge>;
353
353
  /** Accessible label for the icon. When empty the icon is hidden from assistive tech. */
354
354
  readonly ariaLabel: _angular_core.InputSignal<string>;
355
+ /**
356
+ * A count on the icon's top end corner — "a bell with seven alarms says 7".
357
+ * `null` or `0` draws nothing, and a count replaces `badge` (an icon says one
358
+ * thing at a time). Above `countMax` it reads "99+".
359
+ */
360
+ readonly count: _angular_core.InputSignal<number | null>;
361
+ /** The highest number shown in full; above it the badge reads "<max>+". */
362
+ readonly countMax: _angular_core.InputSignal<number>;
363
+ /** Badge tone — `--{status}` background with `--inv` text. */
364
+ readonly countStatus: _angular_core.InputSignal<StrctStatus>;
365
+ /**
366
+ * How the count reads to assistive tech, appended to `ariaLabel` (so an icon
367
+ * with no label stays decorative and the count belongs to its button).
368
+ */
369
+ readonly countLabel: _angular_core.InputSignal<(n: number) => string>;
370
+ /** The badge's text, or null when there is nothing to say. */
371
+ protected readonly countText: _angular_core.Signal<string | null>;
372
+ /** 1.2em of the icon size, floored at 14px, as the badge's box. */
373
+ protected readonly countFontSize: _angular_core.Signal<number>;
374
+ /** The label the glyph carries: its own, plus the count when both are set. */
375
+ protected readonly accessibleLabel: _angular_core.Signal<string>;
355
376
  /** The effective name: `strictName` wins when set. */
356
377
  protected readonly iconName: _angular_core.Signal<StrctIconName | (string & {})>;
357
378
  /** True when the named icon is a full-SVG (raw) icon registered by the app. */
@@ -359,7 +380,7 @@ declare class StrctIcon {
359
380
  protected readonly svg: _angular_core.Signal<SafeHtml>;
360
381
  protected readonly rawSvg: _angular_core.Signal<SafeHtml>;
361
382
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctIcon, never>;
362
- 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>;
383
+ 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; }; "count": { "alias": "count"; "required": false; "isSignal": true; }; "countMax": { "alias": "countMax"; "required": false; "isSignal": true; }; "countStatus": { "alias": "countStatus"; "required": false; "isSignal": true; }; "countLabel": { "alias": "countLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
363
384
  }
364
385
 
365
386
  /** Overlay positioning strategies. */
@@ -710,7 +731,7 @@ declare class StrctSectionHeader {
710
731
  }
711
732
 
712
733
  /** Button visual variants. */
713
- type StrctButtonVariant = 'primary' | 'critical' | 'outline' | 'flat' | 'neutral';
734
+ type StrctButtonVariant = 'primary' | 'critical' | 'outline' | 'flat' | 'neutral' | 'link';
714
735
  /** Button size variants. */
715
736
  type StrctButtonSize = 'md' | 'sm' | 'mini';
716
737
  /**
@@ -1976,8 +1997,18 @@ declare class StrctBreadcrumb {
1976
1997
  declare class StrctBreadcrumbItem {
1977
1998
  /** Mark as the current page. */
1978
1999
  readonly current: _angular_core.InputSignalWithTransform<boolean, unknown>;
2000
+ /**
2001
+ * The crumb itself is the control — for a trail that does not route, such as
2002
+ * a folder path. It is stated rather than inferred from `(activated)` having
2003
+ * a listener, which Angular's output API does not expose;
2004
+ * `strct-list-item` and `strct-tag` read the same way.
2005
+ */
2006
+ readonly interactive: _angular_core.InputSignalWithTransform<boolean, unknown>;
2007
+ /** Emitted when an `interactive` crumb is activated (click / Enter / Space). */
2008
+ readonly activated: _angular_core.OutputEmitterRef<void>;
2009
+ protected onActivate(): void;
1979
2010
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctBreadcrumbItem, never>;
1980
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctBreadcrumbItem, "strct-breadcrumb-item", never, { "current": { "alias": "current"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
2011
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctBreadcrumbItem, "strct-breadcrumb-item", never, { "current": { "alias": "current"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; }, { "activated": "activated"; }, never, ["*"], true, never>;
1981
2012
  }
1982
2013
 
1983
2014
  type PageToken = number | 'dots';
@@ -4825,7 +4856,7 @@ declare class StrctAlert {
4825
4856
  readonly dismissLabel: _angular_core.InputSignal<string>;
4826
4857
  /** Emitted when the alert is dismissed. */
4827
4858
  readonly closed: _angular_core.OutputEmitterRef<void>;
4828
- protected readonly icon: _angular_core.Signal<"info" | "success" | "warning" | "critical">;
4859
+ protected readonly icon: _angular_core.Signal<"success" | "warning" | "critical" | "info">;
4829
4860
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctAlert, never>;
4830
4861
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctAlert, "strct-alert", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "dismissLabel": { "alias": "dismissLabel"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*"], true, never>;
4831
4862
  }