@forgeroute/ui 0.3.12 → 0.3.13
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/fesm2022/forgeroute-ui.mjs +426 -5
- package/fesm2022/forgeroute-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/forgeroute-ui.d.ts +154 -1
package/package.json
CHANGED
package/types/forgeroute-ui.d.ts
CHANGED
|
@@ -1971,6 +1971,107 @@ export declare class ProgressBarComponent {
|
|
|
1971
1971
|
};
|
|
1972
1972
|
}, {}, never, never, true, never>;
|
|
1973
1973
|
}
|
|
1974
|
+
export type ProgressRingVariant = 'blue' | 'green' | 'amber' | 'red' | 'slate' | 'sky';
|
|
1975
|
+
/**
|
|
1976
|
+
* Circular progress ring with the rounded percentage (or a custom `label`) in the middle.
|
|
1977
|
+
* Pass `value` and `max` (default 100); the arc is clamped to 0–100% and starts at 12 o'clock. A value of 0 draws no arc; invalid numbers
|
|
1978
|
+
* (NaN, a negative or infinite max) draw an empty ring.
|
|
1979
|
+
*
|
|
1980
|
+
* The arc color follows completion exactly like `ui-progress-bar` (red up to 25%, amber up to 50%, blue up to 75%, green above 75%);
|
|
1981
|
+
* `variant` fixes it for a ring whose color means something else (e.g. one ring per metric). The ring is a `role="progressbar"`
|
|
1982
|
+
* (name it with `ariaLabel` or `ariaLabelledby`; `valueText` adds a human reading such as "$200K of $300K"). The arc animates unless
|
|
1983
|
+
* `prefers-reduced-motion` is set and stays visible in forced-colors mode.
|
|
1984
|
+
*
|
|
1985
|
+
* <ui-progress-ring [value]="67" ariaLabel="Gross income progress" variant="green" />
|
|
1986
|
+
* <ui-progress-ring [value]="done" [max]="total" [size]="72" [strokeWidth]="6" [label]="done + '/' + total" ariaLabel="Checklist" />
|
|
1987
|
+
*/
|
|
1988
|
+
export declare class ProgressRingComponent {
|
|
1989
|
+
/** Completed amount. */
|
|
1990
|
+
readonly value: import("@angular/core").InputSignal<number>;
|
|
1991
|
+
/** Total amount (default 100, so `value` is a percentage); 0 renders an empty ring. */
|
|
1992
|
+
readonly max: import("@angular/core").InputSignal<number>;
|
|
1993
|
+
/** Diameter in px. */
|
|
1994
|
+
readonly size: import("@angular/core").InputSignal<number>;
|
|
1995
|
+
/** Ring thickness in px. */
|
|
1996
|
+
readonly strokeWidth: import("@angular/core").InputSignal<number>;
|
|
1997
|
+
/** Optional fixed arc color. Leave it out and the color follows completion (red / amber / blue / green). */
|
|
1998
|
+
readonly variant: import("@angular/core").InputSignal<ProgressRingVariant | null | undefined>;
|
|
1999
|
+
/** Text in the middle instead of the rounded percentage, e.g. "3/5". */
|
|
2000
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
2001
|
+
/** `false` draws the ring without any text in the middle. */
|
|
2002
|
+
readonly showValue: import("@angular/core").InputSignal<boolean>;
|
|
2003
|
+
readonly ariaLabel: import("@angular/core").InputSignal<string>;
|
|
2004
|
+
/** Id of an element that names the ring (wins over `ariaLabel`). */
|
|
2005
|
+
readonly ariaLabelledby: import("@angular/core").InputSignal<string>;
|
|
2006
|
+
/** Human text for `aria-valuetext`, e.g. "$200K of $300K". Empty = not set. */
|
|
2007
|
+
readonly valueText: import("@angular/core").InputSignal<string>;
|
|
2008
|
+
/** `max` made safe: NaN / negative / infinite become 0 (empty ring, no division by zero). */
|
|
2009
|
+
protected readonly safeMax: import("@angular/core").Signal<number>;
|
|
2010
|
+
protected readonly clampedValue: import("@angular/core").Signal<number>;
|
|
2011
|
+
/** Exact completion in % (0–100). */
|
|
2012
|
+
private readonly exact;
|
|
2013
|
+
/** Rounded completion in %, shown in the middle. */
|
|
2014
|
+
protected readonly percent: import("@angular/core").Signal<number>;
|
|
2015
|
+
protected readonly center: import("@angular/core").Signal<number>;
|
|
2016
|
+
protected readonly radius: import("@angular/core").Signal<number>;
|
|
2017
|
+
protected readonly circumference: import("@angular/core").Signal<number>;
|
|
2018
|
+
protected readonly dashOffset: import("@angular/core").Signal<number>;
|
|
2019
|
+
/** The override when given, else the completion band: up to 25% red, up to 50% amber, up to 75% blue, above 75% green. */
|
|
2020
|
+
protected readonly effectiveVariant: import("@angular/core").Signal<ProgressRingVariant>;
|
|
2021
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ProgressRingComponent, never>;
|
|
2022
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ProgressRingComponent, "ui-progress-ring", never, {
|
|
2023
|
+
"value": {
|
|
2024
|
+
"alias": "value";
|
|
2025
|
+
"required": false;
|
|
2026
|
+
"isSignal": true;
|
|
2027
|
+
};
|
|
2028
|
+
"max": {
|
|
2029
|
+
"alias": "max";
|
|
2030
|
+
"required": false;
|
|
2031
|
+
"isSignal": true;
|
|
2032
|
+
};
|
|
2033
|
+
"size": {
|
|
2034
|
+
"alias": "size";
|
|
2035
|
+
"required": false;
|
|
2036
|
+
"isSignal": true;
|
|
2037
|
+
};
|
|
2038
|
+
"strokeWidth": {
|
|
2039
|
+
"alias": "strokeWidth";
|
|
2040
|
+
"required": false;
|
|
2041
|
+
"isSignal": true;
|
|
2042
|
+
};
|
|
2043
|
+
"variant": {
|
|
2044
|
+
"alias": "variant";
|
|
2045
|
+
"required": false;
|
|
2046
|
+
"isSignal": true;
|
|
2047
|
+
};
|
|
2048
|
+
"label": {
|
|
2049
|
+
"alias": "label";
|
|
2050
|
+
"required": false;
|
|
2051
|
+
"isSignal": true;
|
|
2052
|
+
};
|
|
2053
|
+
"showValue": {
|
|
2054
|
+
"alias": "showValue";
|
|
2055
|
+
"required": false;
|
|
2056
|
+
"isSignal": true;
|
|
2057
|
+
};
|
|
2058
|
+
"ariaLabel": {
|
|
2059
|
+
"alias": "ariaLabel";
|
|
2060
|
+
"required": false;
|
|
2061
|
+
"isSignal": true;
|
|
2062
|
+
};
|
|
2063
|
+
"ariaLabelledby": {
|
|
2064
|
+
"alias": "ariaLabelledby";
|
|
2065
|
+
"required": false;
|
|
2066
|
+
"isSignal": true;
|
|
2067
|
+
};
|
|
2068
|
+
"valueText": {
|
|
2069
|
+
"alias": "valueText";
|
|
2070
|
+
"required": false;
|
|
2071
|
+
"isSignal": true;
|
|
2072
|
+
};
|
|
2073
|
+
}, {}, never, never, true, never>;
|
|
2074
|
+
}
|
|
1974
2075
|
/**
|
|
1975
2076
|
* Audio player for a recording (a call, a voicemail, a message): the browser's own controls (play / pause, seek, time, volume,
|
|
1976
2077
|
* keyboard and screen-reader support, the same in Chrome, Edge, Firefox and Safari) in the library's look, plus a readable message
|
|
@@ -8157,6 +8258,9 @@ export type KpiCardValueColor = 'default' | 'green' | 'blue';
|
|
|
8157
8258
|
* role="button", focusable (tabindex 0, visible focus ring), and Enter / Space fire the host's (click). Give it an
|
|
8158
8259
|
* accessible name with [attr.aria-label] when the label alone isn't enough (e.g. "Net Commission: $12.5K — show details").
|
|
8159
8260
|
*
|
|
8261
|
+
* Optional ring: `[progress]="67"` (+ `progressMax`, `progressVariant`, `progressSize`) draws a ui-progress-ring beside the label; extra lines
|
|
8262
|
+
* (a pace badge, a projection…) go in an element with the `kpi-footer` attribute.
|
|
8263
|
+
*
|
|
8160
8264
|
* <ui-kpi-card label="Deals Closed" [value]="'' + deals" subtitle="Year to Date" icon="check-circle" color="blue" />
|
|
8161
8265
|
* <ui-kpi-card label="Net Commission" [value]="net" icon="dollar" color="green" [highlight]="true"
|
|
8162
8266
|
* [clickable]="true" (click)="openDetails()" />
|
|
@@ -8173,6 +8277,20 @@ export declare class KpiCardComponent {
|
|
|
8173
8277
|
readonly highlight: import("@angular/core").InputSignal<boolean>;
|
|
8174
8278
|
readonly clickable: import("@angular/core").InputSignal<boolean>;
|
|
8175
8279
|
readonly valueColor: import("@angular/core").InputSignal<KpiCardValueColor>;
|
|
8280
|
+
/** Completed amount shown as a `ui-progress-ring` beside the label. `null` (default) = no ring. */
|
|
8281
|
+
readonly progress: import("@angular/core").InputSignal<number | null>;
|
|
8282
|
+
/** Total for `progress` (default 100, so `progress` is a percentage). */
|
|
8283
|
+
readonly progressMax: import("@angular/core").InputSignal<number>;
|
|
8284
|
+
/** Ring diameter in px. */
|
|
8285
|
+
readonly progressSize: import("@angular/core").InputSignal<number>;
|
|
8286
|
+
readonly progressStrokeWidth: import("@angular/core").InputSignal<number>;
|
|
8287
|
+
/** Fixed ring color; leave it out and the color follows completion (red / amber / blue / green). */
|
|
8288
|
+
readonly progressVariant: import("@angular/core").InputSignal<ProgressRingVariant | null | undefined>;
|
|
8289
|
+
/** Accessible name of the ring; default "<label> progress". */
|
|
8290
|
+
readonly progressAriaLabel: import("@angular/core").InputSignal<string>;
|
|
8291
|
+
/** Human reading of the ring for assistive tech, e.g. "$200K of $300K". */
|
|
8292
|
+
readonly progressValueText: import("@angular/core").InputSignal<string>;
|
|
8293
|
+
protected readonly hasProgress: import("@angular/core").Signal<boolean>;
|
|
8176
8294
|
/** Enter / Space on a clickable card act like a click (Space would otherwise scroll the page). */
|
|
8177
8295
|
protected onActivateKey(event: Event): void;
|
|
8178
8296
|
protected readonly iconSvg: import("@angular/core").Signal<SafeHtml | null>;
|
|
@@ -8218,7 +8336,42 @@ export declare class KpiCardComponent {
|
|
|
8218
8336
|
"required": false;
|
|
8219
8337
|
"isSignal": true;
|
|
8220
8338
|
};
|
|
8221
|
-
|
|
8339
|
+
"progress": {
|
|
8340
|
+
"alias": "progress";
|
|
8341
|
+
"required": false;
|
|
8342
|
+
"isSignal": true;
|
|
8343
|
+
};
|
|
8344
|
+
"progressMax": {
|
|
8345
|
+
"alias": "progressMax";
|
|
8346
|
+
"required": false;
|
|
8347
|
+
"isSignal": true;
|
|
8348
|
+
};
|
|
8349
|
+
"progressSize": {
|
|
8350
|
+
"alias": "progressSize";
|
|
8351
|
+
"required": false;
|
|
8352
|
+
"isSignal": true;
|
|
8353
|
+
};
|
|
8354
|
+
"progressStrokeWidth": {
|
|
8355
|
+
"alias": "progressStrokeWidth";
|
|
8356
|
+
"required": false;
|
|
8357
|
+
"isSignal": true;
|
|
8358
|
+
};
|
|
8359
|
+
"progressVariant": {
|
|
8360
|
+
"alias": "progressVariant";
|
|
8361
|
+
"required": false;
|
|
8362
|
+
"isSignal": true;
|
|
8363
|
+
};
|
|
8364
|
+
"progressAriaLabel": {
|
|
8365
|
+
"alias": "progressAriaLabel";
|
|
8366
|
+
"required": false;
|
|
8367
|
+
"isSignal": true;
|
|
8368
|
+
};
|
|
8369
|
+
"progressValueText": {
|
|
8370
|
+
"alias": "progressValueText";
|
|
8371
|
+
"required": false;
|
|
8372
|
+
"isSignal": true;
|
|
8373
|
+
};
|
|
8374
|
+
}, {}, never, ["[kpi-footer]"], true, never>;
|
|
8222
8375
|
}
|
|
8223
8376
|
export type DatePreset = 'today' | '7days' | '30days' | 'month' | 'quarter' | 'ytd' | 'all' | 'custom';
|
|
8224
8377
|
export interface DateRange {
|