@forgeroute/ui 0.4.13 → 0.4.15

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.13",
3
+ "version": "0.4.15",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=22.0.0",
6
6
  "@angular/core": ">=22.0.0",
@@ -961,7 +961,7 @@ export declare class SelectComponent implements ControlValueAccessor, Validator,
961
961
  readonly error: import("@angular/core").InputSignal<string>;
962
962
  /** Reveal the built-in error messages now (e.g. after a failed Save click), without waiting for blur. */
963
963
  readonly showErrors: import("@angular/core").InputSignal<boolean>;
964
- readonly size: import("@angular/core").InputSignal<"default" | "sm">;
964
+ readonly size: import("@angular/core").InputSignal<"sm" | "default">;
965
965
  readonly _disabledInput: import("@angular/core").InputSignal<boolean>;
966
966
  private readonly _cvaDisabled;
967
967
  protected readonly disabled: import("@angular/core").Signal<boolean>;
@@ -2279,7 +2279,7 @@ export declare class AudioPlayerComponent {
2279
2279
  /** Accessible name of the player. */
2280
2280
  readonly ariaLabel: import("@angular/core").InputSignal<string>;
2281
2281
  /** How much to load before play: 'metadata' (default), 'auto' or 'none'. */
2282
- readonly preload: import("@angular/core").InputSignal<"none" | "auto" | "metadata">;
2282
+ readonly preload: import("@angular/core").InputSignal<"none" | "metadata" | "auto">;
2283
2283
  /** Fires when the browser can't load or decode the source. */
2284
2284
  readonly playbackError: import("@angular/core").OutputEmitterRef<void>;
2285
2285
  protected readonly failed: import("@angular/core").WritableSignal<boolean>;
@@ -2390,7 +2390,8 @@ export declare class TooltipDirective {
2390
2390
  /**
2391
2391
  * A small gold star with a hover / focus tooltip: `<ui-star tooltip="Authorization Form" />`.
2392
2392
  *
2393
- * The star is always gold (there is no color input). `tooltip` is the text the user sees on hover or keyboard focus (library `uiTooltip`);
2393
+ * The star is gold by default (there is no color input); `[filled]="false"` draws an uncolored outline star instead, and `[interactive]="true"`
2394
+ * makes it a button that emits `(starClick)` — e.g. an outline star "Click to make primary photo" next to the gold primary one. `tooltip` is the text the user sees on hover or keyboard focus (library `uiTooltip`);
2394
2395
  * it is also the star's accessible name, so a screen reader reads it too. Without a tooltip the star is decorative (hidden from assistive tech).
2395
2396
  * In `<ui-data-table>` use `ColumnDef.starFn` to put one to the left of a text cell (e.g. the name column).
2396
2397
  */
@@ -2399,6 +2400,11 @@ export declare class StarComponent {
2399
2400
  readonly tooltip: import("@angular/core").InputSignal<string>;
2400
2401
  /** Star size in px. Default 16. */
2401
2402
  readonly size: import("@angular/core").InputSignal<number>;
2403
+ /** true (default) = the gold star. false = an uncolored outline star (e.g. "not the primary one"). */
2404
+ readonly filled: import("@angular/core").InputSignal<boolean>;
2405
+ /** true = the star is a real button (keyboard + click) that emits `starClick`; `tooltip` is then its accessible name. Default false (a plain marker). */
2406
+ readonly interactive: import("@angular/core").InputSignal<boolean>;
2407
+ readonly starClick: import("@angular/core").OutputEmitterRef<MouseEvent>;
2402
2408
  protected readonly hasTooltip: import("@angular/core").Signal<boolean>;
2403
2409
  static ɵfac: i0.ɵɵFactoryDeclaration<StarComponent, never>;
2404
2410
  static ɵcmp: i0.ɵɵComponentDeclaration<StarComponent, "ui-star", never, {
@@ -2412,7 +2418,19 @@ export declare class StarComponent {
2412
2418
  "required": false;
2413
2419
  "isSignal": true;
2414
2420
  };
2415
- }, {}, never, never, true, never>;
2421
+ "filled": {
2422
+ "alias": "filled";
2423
+ "required": false;
2424
+ "isSignal": true;
2425
+ };
2426
+ "interactive": {
2427
+ "alias": "interactive";
2428
+ "required": false;
2429
+ "isSignal": true;
2430
+ };
2431
+ }, {
2432
+ "starClick": "starClick";
2433
+ }, never, never, true, never>;
2416
2434
  }
2417
2435
  export type ImageRepositionShape = 'circle' | 'rounded';
2418
2436
  /**
@@ -2511,7 +2529,7 @@ export declare class CheckboxComponent implements ControlValueAccessor, Validato
2511
2529
  * clicking it still toggles the box - e.g. a product name that is both the heading of its card and the label of its checkbox.
2512
2530
  * Default null: plain label text, exactly as before. Single mode only.
2513
2531
  */
2514
- readonly headingLevel: import("@angular/core").InputSignal<1 | 2 | 3 | 4 | 5 | 6 | null>;
2532
+ readonly headingLevel: import("@angular/core").InputSignal<3 | 1 | 2 | 5 | 6 | 4 | null>;
2515
2533
  readonly indeterminate: import("@angular/core").InputSignal<boolean>;
2516
2534
  readonly checked: import("@angular/core").ModelSignal<boolean>;
2517
2535
  /**
@@ -3392,7 +3410,7 @@ export declare class PhoneNumberPickerComponent {
3392
3410
  protected readonly modeCtl: FormControl<string>;
3393
3411
  protected readonly zipCtl: FormControl<string>;
3394
3412
  protected readonly areaCtl: FormControl<string>;
3395
- protected readonly step: import("@angular/core").WritableSignal<1 | 2 | 3>;
3413
+ protected readonly step: import("@angular/core").WritableSignal<3 | 1 | 2>;
3396
3414
  protected readonly mode: import("@angular/core").WritableSignal<PhoneNumberSearchMode>;
3397
3415
  private readonly _zip;
3398
3416
  private readonly _area;
@@ -3506,7 +3524,7 @@ export declare class ButtonComponent {
3506
3524
  * `ghost-start`: a ghost button for list / section toggles - a full-width row with its content aligned to the start, transparent
3507
3525
  * background, hover tint and the normal focus ring. Pair it with `ariaExpanded` / `ariaPressed`; the label may contain a heading element.
3508
3526
  */
3509
- readonly variant: import("@angular/core").InputSignal<"primary" | "secondary" | "danger" | "warning" | "link" | "ghost" | "ghost-start" | "tab" | "icon" | "icon-danger">;
3527
+ readonly variant: import("@angular/core").InputSignal<"link" | "primary" | "secondary" | "danger" | "warning" | "ghost" | "ghost-start" | "tab" | "icon" | "icon-danger">;
3510
3528
  /** Renders an anchor to this route instead of a button (use with `variant="link"` for an inline text link). `['/settings']` or `'/settings'`. While `disabled` or `loading` it renders a non-clickable `<span role="link" aria-disabled>` with no href (like `href`). */
3511
3529
  readonly routerLink: import("@angular/core").InputSignal<string | readonly unknown[] | null>;
3512
3530
  /** Query params of the `routerLink` (e.g. `{ section: 'deal-defaults' }`). */
@@ -3552,7 +3570,7 @@ export declare class ButtonComponent {
3552
3570
  readonly color: import("@angular/core").InputSignal<string | undefined>;
3553
3571
  readonly active: import("@angular/core").InputSignal<boolean>;
3554
3572
  readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" | "xs">;
3555
- readonly type: import("@angular/core").InputSignal<"reset" | "submit" | "button">;
3573
+ readonly type: import("@angular/core").InputSignal<"button" | "reset" | "submit">;
3556
3574
  readonly disabled: import("@angular/core").InputSignal<boolean>;
3557
3575
  readonly loading: import("@angular/core").InputSignal<boolean>;
3558
3576
  readonly fullWidth: import("@angular/core").InputSignal<boolean>;
@@ -5667,7 +5685,7 @@ export declare class FormSectionComponent {
5667
5685
  }, {}, never, ["*"], true, never>;
5668
5686
  }
5669
5687
  export declare class FormRowComponent {
5670
- readonly cols: import("@angular/core").InputSignal<1 | 2 | 3 | 4>;
5688
+ readonly cols: import("@angular/core").InputSignal<3 | 1 | 2 | 4>;
5671
5689
  static ɵfac: i0.ɵɵFactoryDeclaration<FormRowComponent, never>;
5672
5690
  static ɵcmp: i0.ɵɵComponentDeclaration<FormRowComponent, "ui-form-row", never, {
5673
5691
  "cols": {
@@ -5684,7 +5702,7 @@ export declare class FormRowComponent {
5684
5702
  * child simply takes the full width. Keep a numeric span within the row's `cols` (use `all` for the whole row).
5685
5703
  */
5686
5704
  export declare class FormColSpanDirective {
5687
- readonly uiColSpan: import("@angular/core").InputSignal<"" | "2" | "3" | 2 | 3 | "all">;
5705
+ readonly uiColSpan: import("@angular/core").InputSignal<"" | 3 | 2 | "2" | "3" | "all">;
5688
5706
  protected readonly _class: import("@angular/core").Signal<string>;
5689
5707
  static ɵfac: i0.ɵɵFactoryDeclaration<FormColSpanDirective, never>;
5690
5708
  static ɵdir: i0.ɵɵDirectiveDeclaration<FormColSpanDirective, "[uiColSpan]", never, {
@@ -8263,7 +8281,7 @@ export declare class DetailCardComponent {
8263
8281
  /** true (default) = the title is displayed in capitals (CSS only); false = shown as written. The text, aria-label and heading name are never changed. */
8264
8282
  readonly uppercaseTitle: import("@angular/core").InputSignal<boolean>;
8265
8283
  /** 1-6 makes the title a real heading for screen readers (role=heading, aria-level); null keeps it plain text. */
8266
- readonly headingLevel: import("@angular/core").InputSignal<1 | 2 | 3 | 4 | 5 | 6 | null>;
8284
+ readonly headingLevel: import("@angular/core").InputSignal<3 | 1 | 2 | 5 | 6 | 4 | null>;
8267
8285
  /** Optional id for the title text; the card is then labelled by it. Without it the title is the card's aria-label. */
8268
8286
  readonly titleId: import("@angular/core").InputSignal<string>;
8269
8287
  /** Accessible name of the card when the header gives none (no header, or no title). A visible title wins; blank = no name. */
@@ -9322,8 +9340,8 @@ export declare class CalendarComponent {
9322
9340
  private lastRangeKey;
9323
9341
  private readonly injector;
9324
9342
  protected readonly hours: import("@angular/core").Signal<number[]>;
9325
- protected readonly monthCells: import("@angular/core").Signal<CalendarDay[]>;
9326
- protected readonly weekDays: import("@angular/core").Signal<CalendarDay[]>;
9343
+ protected readonly monthCells: import("@angular/core").Signal<import("@forgeroute/ui").CalendarDay[]>;
9344
+ protected readonly weekDays: import("@angular/core").Signal<import("@forgeroute/ui").CalendarDay[]>;
9327
9345
  protected readonly periodLabel: import("@angular/core").Signal<string>;
9328
9346
  /** The period label split for styling: in the month view the month is the strong part and the year the muted one ("October" + "2026"). */
9329
9347
  protected readonly periodParts: import("@angular/core").Signal<{
@@ -9343,7 +9361,7 @@ export declare class CalendarComponent {
9343
9361
  protected readonly monthRows: import("@angular/core").Signal<{
9344
9362
  key: string;
9345
9363
  cells: {
9346
- day: CalendarDay;
9364
+ day: import("@forgeroute/ui").CalendarDay;
9347
9365
  items: CalendarItem[];
9348
9366
  visible: CalendarItem[];
9349
9367
  overflow: number;
@@ -9353,7 +9371,7 @@ export declare class CalendarComponent {
9353
9371
  }[]>;
9354
9372
  /** The 7 week columns with all-day items and the timed items laid out side by side when they overlap. */
9355
9373
  protected readonly weekColumns: import("@angular/core").Signal<{
9356
- day: CalendarDay;
9374
+ day: import("@forgeroute/ui").CalendarDay;
9357
9375
  label: string;
9358
9376
  clickable: boolean;
9359
9377
  allDay: CalendarItem[];