@forgeroute/ui 0.4.5 → 0.4.6

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.5",
3
+ "version": "0.4.6",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=22.0.0",
6
6
  "@angular/core": ">=22.0.0",
@@ -3040,6 +3040,11 @@ export interface RadioOption {
3040
3040
  * Built-in validation: `required` -> "<label> is required."; a non-empty value that is not one of the `options` ->
3041
3041
  * "Select a valid option." (not checked while `options` is empty). Disabled groups are never invalid.
3042
3042
  *
3043
+ * Option content (`<ng-template uiRadioOptionContent="value">`) is rendered right under its option, inside the fieldset, so the layout and
3044
+ * keyboard flow stay as they are. Because it is not a radio, it is exposed as its own `role="group"` named by that option's label
3045
+ * (`aria-labelledby` = the radio's label id, e.g. "Deliver, group") instead of being read as part of the radio group. Groups without
3046
+ * templates render no extra attributes or ids.
3047
+ *
3043
3048
  * Validity API (same on every ui input): Angular `Validator`, signals `invalid` + `errorMessage`, `invalidChange` output,
3044
3049
  * provides `UiFieldValidity`. Messages show after the group lost focus or while `[showErrors]="true"`; a host `[error]` wins.
3045
3050
  */
@@ -3065,6 +3070,8 @@ export declare class RadioGroupComponent implements ControlValueAccessor, Valida
3065
3070
  protected readonly _descId: string;
3066
3071
  /** Id of the content block under the selected option; that radio points at it with aria-controls. */
3067
3072
  protected readonly _nestedId: string;
3073
+ /** Id of an option's label text (set on the radio only for options that have nested content); the nested group is named by it. */
3074
+ protected _optionLabelId(index: number): string;
3068
3075
  protected readonly _value: import("@angular/core").WritableSignal<string>;
3069
3076
  private readonly _reveal;
3070
3077
  private readonly _issue;
@@ -7003,7 +7010,10 @@ export declare class RadioComponent {
7003
7010
  /** Public so a host template can bind `[disabled]` (a protected input fails strict template type-checking). */
7004
7011
  readonly _disabledInput: import("@angular/core").InputSignal<boolean>;
7005
7012
  protected readonly disabled: import("@angular/core").InputSignal<boolean>;
7006
- protected readonly _labelId: string;
7013
+ /** Id of the visible label text. Optional: a host (e.g. `ui-radio-group`) can set it to point another element at the label with `aria-labelledby`; a unique id is generated when empty. */
7014
+ readonly labelId: import("@angular/core").InputSignal<string>;
7015
+ private readonly _generatedLabelId;
7016
+ protected readonly _labelId: import("@angular/core").Signal<string>;
7007
7017
  /** With a description inside the <label>, the accessible name would read "Email We send a message": name the input by the label text only. */
7008
7018
  protected readonly _labelledBy: import("@angular/core").Signal<string | null>;
7009
7019
  protected readonly _descriptionId: string;
@@ -7064,6 +7074,11 @@ export declare class RadioComponent {
7064
7074
  "required": false;
7065
7075
  "isSignal": true;
7066
7076
  };
7077
+ "labelId": {
7078
+ "alias": "labelId";
7079
+ "required": false;
7080
+ "isSignal": true;
7081
+ };
7067
7082
  }, {
7068
7083
  "selected": "selected";
7069
7084
  }, never, ["*"], true, never>;
@@ -7414,6 +7429,14 @@ export declare class SignaturePadComponent implements ControlValueAccessor {
7414
7429
  * `state="ready"` is a clickable button (`label`), `"blocked"` the same button disabled (`blockedLabel`, e.g. "create your signature first"),
7415
7430
  * and `"signed"` shows the applied `image` (a signature data URL) contained inside the box instead (signed without an image is a disabled button showing `label`). The box size comes from the document
7416
7431
  * so the text is scaled to it (height x 0.25, clamped to 7-11px); on touch devices the tap area is extended to at least 44px tall.
7432
+ *
7433
+ * Inside an ancestor scaled with CSS `transform: scale(s)` (e.g. a PDF page shrunk to fit a phone), pass that factor as `scale` so the tap area
7434
+ * stays at least 44 CSS px on screen (the area is made 44 / s px tall before the ancestor shrinks it). Default 1; values <= 0, NaN or
7435
+ * non-finite count as 1. Only the touch tap area changes, not the look, font size or accessibility.
7436
+ *
7437
+ * <div [style.transform]="'scale(' + s + ')'" style="transform-origin: top left">
7438
+ * <ui-pdf-hotspot ... [scale]="s" /> <!-- s = 0.5 -> tap area at least 88px tall before scaling = 44px on screen -->
7439
+ * </div>
7417
7440
  */
7418
7441
  export declare class PdfHotspotComponent {
7419
7442
  /** Position and size in pixels, from the page's top-left corner. */
@@ -7434,8 +7457,12 @@ export declare class PdfHotspotComponent {
7434
7457
  /** The applied signature (data URL), shown when `state` is `signed`. */
7435
7458
  readonly image: import("@angular/core").InputSignal<string | null>;
7436
7459
  readonly imageAlt: import("@angular/core").InputSignal<string>;
7460
+ /** The CSS scale factor an ancestor applies (`transform: scale(s)`); keeps the touch tap area at least 44px on screen. Invalid values count as 1. */
7461
+ readonly scale: import("@angular/core").InputSignal<number>;
7437
7462
  /** The ready button was clicked. */
7438
7463
  readonly activate: import("@angular/core").OutputEmitterRef<void>;
7464
+ /** `--ph-scale` value, or null (no property at all) for scale 1 and invalid values. */
7465
+ protected readonly _scaleVar: import("@angular/core").Signal<string | null>;
7439
7466
  protected readonly fontSize: import("@angular/core").Signal<number>;
7440
7467
  static ɵfac: i0.ɵɵFactoryDeclaration<PdfHotspotComponent, never>;
7441
7468
  static ɵcmp: i0.ɵɵComponentDeclaration<PdfHotspotComponent, "ui-pdf-hotspot", never, {
@@ -7494,6 +7521,11 @@ export declare class PdfHotspotComponent {
7494
7521
  "required": false;
7495
7522
  "isSignal": true;
7496
7523
  };
7524
+ "scale": {
7525
+ "alias": "scale";
7526
+ "required": false;
7527
+ "isSignal": true;
7528
+ };
7497
7529
  }, {
7498
7530
  "activate": "activate";
7499
7531
  }, never, never, true, never>;