@eagami/ui 5.68.0 → 5.70.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.
@@ -74,6 +74,14 @@ export interface EagamiMessages {
74
74
  point: (series: string, label: string, value: string) => string;
75
75
  /** Announces the highlighted slice of a pie chart. */
76
76
  slice: (label: string, value: string, percent: string) => string;
77
+ /** Caption beneath the total in a donut's hole. */
78
+ total: string;
79
+ /** Default accessible name of a sparkline. */
80
+ trend: string;
81
+ /** Describes a sparkline by its first, last, lowest, and highest values. */
82
+ trendSummary: (first: string, last: string, low: string, high: string) => string;
83
+ /** Reads out a reference line; `label` is empty when the line has none. */
84
+ referenceLine: (label: string, value: string) => string;
77
85
  };
78
86
  codeInput: {
79
87
  groupLabel: (length: number) => string;
@@ -144,6 +152,8 @@ export interface EagamiMessages {
144
152
  fieldLabel: {
145
153
  /** Accessible name of the button that reveals a field label's help. */
146
154
  help: (label: string) => string;
155
+ /** Note after the label of a field that may be left empty, parentheses included. */
156
+ optional: string;
147
157
  };
148
158
  fileUploader: {
149
159
  prompt: string;
@@ -899,6 +909,8 @@ export declare class AutocompleteComponent implements ControlValueAccessor {
899
909
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
900
910
  /** Help revealed by an info button beside the label, as plain text or a template. */
901
911
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
912
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
913
+ readonly optional: import("@angular/core").InputSignal<boolean>;
902
914
  /** Accessible name for the input and suggestion list when no visible label is provided. */
903
915
  readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
904
916
  readonly placeholder: import("@angular/core").InputSignal<string>;
@@ -994,6 +1006,11 @@ export declare class AutocompleteComponent implements ControlValueAccessor {
994
1006
  "required": false;
995
1007
  "isSignal": true;
996
1008
  };
1009
+ "optional": {
1010
+ "alias": "optional";
1011
+ "required": false;
1012
+ "isSignal": true;
1013
+ };
997
1014
  "ariaLabel": {
998
1015
  "alias": "ariaLabel";
999
1016
  "required": false;
@@ -1403,6 +1420,16 @@ interface ChartPointEvent {
1403
1420
  label: string;
1404
1421
  value: number;
1405
1422
  }
1423
+ /** A dashed rule across a line or bar chart's plot at a value, such as a target or an average. */
1424
+ interface ChartReferenceLine {
1425
+ value: number;
1426
+ /** Text printed at the line's end and read out with the chart's data. */
1427
+ label?: string;
1428
+ /** Any CSS color; defaults to the strong border color. */
1429
+ color?: string;
1430
+ }
1431
+ /** How a line bends between points. */
1432
+ type ChartCurve = 'linear' | 'smooth' | 'step';
1406
1433
  /** Number of categorical colors in the `--color-chart-*` palette. */
1407
1434
  declare const CHART_COLOR_COUNT = 8;
1408
1435
  /** Resolves a series' color, falling back to its slot of the chart palette. */
@@ -1418,9 +1445,18 @@ interface NiceScale {
1418
1445
  * where a gap would otherwise exceed `maxStep`.
1419
1446
  */
1420
1447
  declare function niceScale(min: number, max: number, maxTicks?: number, maxStep?: number): NiceScale;
1448
+ /** A plotted point in pixels. */
1449
+ interface CurvePoint {
1450
+ x: number;
1451
+ y: number;
1452
+ }
1453
+ /** SVG path data tracing a run of points with each curve. */
1454
+ declare const CHART_CURVES: Record<ChartCurve, (points: CurvePoint[]) => string>;
1455
+ /** Reference lines with a finite value, the only ones a chart can place. */
1456
+ declare function plottableReferenceLines(lines: readonly ChartReferenceLine[]): ChartReferenceLine[];
1421
1457
  /** Rough rendered width of `text` in px, for reserving axis room without a layout pass. */
1422
1458
  declare function estimateTextWidth(text: string, fontPx: number): number;
1423
- /** Live size of a chart's host, re-measured on resize and whenever `size` changes. */
1459
+ /** Live size of a chart's host, re-measured on resize and whenever `remeasureOn` changes. */
1424
1460
  interface ChartViewport {
1425
1461
  width: Signal<number>;
1426
1462
  fontSize: Signal<number>;
@@ -1429,7 +1465,7 @@ interface ChartViewport {
1429
1465
  * Measures the host's width and font-size so the chart can lay out its SVG in
1430
1466
  * real pixels, keeping text and stroke widths crisp at every width.
1431
1467
  */
1432
- declare function injectChartViewport(size: Signal<ChartSize>): ChartViewport;
1468
+ declare function injectChartViewport(remeasureOn: Signal<unknown>): ChartViewport;
1433
1469
  /** Localized value formatter honouring a consumer's own `formatValue`. */
1434
1470
  declare function injectChartFormatter(formatValue: Signal<((value: number) => string) | null>): Signal<(value: number) => string>;
1435
1471
  /** Keeps a value inside `[min, max]`. */
@@ -1473,7 +1509,7 @@ export type BarChartOrientation = 'vertical' | 'horizontal';
1473
1509
  * another, and `fade` fades the bars in.
1474
1510
  */
1475
1511
  export type BarChartAnimation = 'grow' | 'cascade' | 'fade' | 'none';
1476
- interface PlotBar {
1512
+ interface PlotBar$1 {
1477
1513
  series: number;
1478
1514
  index: number;
1479
1515
  value: number;
@@ -1521,6 +1557,11 @@ export declare class BarChartComponent {
1521
1557
  * zero, when every value is positive, and marks the cut with a break symbol.
1522
1558
  */
1523
1559
  readonly showAxisBreak: import("@angular/core").InputSignal<boolean>;
1560
+ /**
1561
+ * Dashed rules across the plot at set values, such as a target or an
1562
+ * average. The value axis widens to take them in.
1563
+ */
1564
+ readonly referenceLines: import("@angular/core").InputSignal<readonly ChartReferenceLine[]>;
1524
1565
  /** Height of the plot in pixels; the width fills the container. */
1525
1566
  readonly height: import("@angular/core").InputSignal<number>;
1526
1567
  /** Visual size; scales the axis, legend, and tooltip text and the bar thickness cap. */
@@ -1543,6 +1584,7 @@ export declare class BarChartComponent {
1543
1584
  protected readonly label: import("@angular/core").Signal<string>;
1544
1585
  protected readonly count: import("@angular/core").Signal<number>;
1545
1586
  protected readonly hasData: import("@angular/core").Signal<boolean>;
1587
+ protected readonly references: import("@angular/core").Signal<ChartReferenceLine[]>;
1546
1588
  protected readonly renderPass: import("@angular/core").Signal<{}[]>;
1547
1589
  protected readonly hostClasses: import("@angular/core").Signal<{
1548
1590
  [x: string]: boolean;
@@ -1571,8 +1613,18 @@ export declare class BarChartComponent {
1571
1613
  index: number;
1572
1614
  pos: number;
1573
1615
  }[];
1574
- bars: PlotBar[];
1616
+ bars: PlotBar$1[];
1575
1617
  valueLabels: PlotValueLabel[];
1618
+ referenceLines: {
1619
+ labelX: number;
1620
+ labelY: number;
1621
+ anchor: "start" | "end";
1622
+ key: number;
1623
+ pos: number;
1624
+ value: number;
1625
+ label?: string;
1626
+ color?: string;
1627
+ }[];
1576
1628
  valuePos: (v: number) => number;
1577
1629
  axisY: number;
1578
1630
  tickEndY: number;
@@ -1607,7 +1659,8 @@ export declare class BarChartComponent {
1607
1659
  protected readonly announcement: import("@angular/core").Signal<string>;
1608
1660
  protected readonly showsLegend: import("@angular/core").Signal<boolean>;
1609
1661
  protected seriesColor(index: number): string;
1610
- protected isDimmed(bar: PlotBar): boolean;
1662
+ protected isDimmed(bar: PlotBar$1): boolean;
1663
+ protected referenceText(line: ChartReferenceLine): string;
1611
1664
  protected tableValue(value: number | null | undefined): string;
1612
1665
  protected onPointerMove(event: PointerEvent): void;
1613
1666
  protected onPointerLeave(): void;
@@ -1667,6 +1720,11 @@ export declare class BarChartComponent {
1667
1720
  "required": false;
1668
1721
  "isSignal": true;
1669
1722
  };
1723
+ "referenceLines": {
1724
+ "alias": "referenceLines";
1725
+ "required": false;
1726
+ "isSignal": true;
1727
+ };
1670
1728
  "height": {
1671
1729
  "alias": "height";
1672
1730
  "required": false;
@@ -2463,6 +2521,8 @@ export declare class ColorPickerComponent implements ControlValueAccessor {
2463
2521
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
2464
2522
  /** Help revealed by an info button beside the label, as plain text or a template. */
2465
2523
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
2524
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
2525
+ readonly optional: import("@angular/core").InputSignal<boolean>;
2466
2526
  readonly placeholder: import("@angular/core").InputSignal<string | undefined>;
2467
2527
  readonly size: import("@angular/core").InputSignal<EaSize>;
2468
2528
  readonly disabled: import("@angular/core").InputSignal<boolean>;
@@ -2641,6 +2701,11 @@ export declare class ColorPickerComponent implements ControlValueAccessor {
2641
2701
  "required": false;
2642
2702
  "isSignal": true;
2643
2703
  };
2704
+ "optional": {
2705
+ "alias": "optional";
2706
+ "required": false;
2707
+ "isSignal": true;
2708
+ };
2644
2709
  "placeholder": {
2645
2710
  "alias": "placeholder";
2646
2711
  "required": false;
@@ -3478,6 +3543,8 @@ export declare class CodeInputComponent implements ControlValueAccessor {
3478
3543
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
3479
3544
  /** Help revealed by an info button beside the label, as plain text or a template. */
3480
3545
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
3546
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
3547
+ readonly optional: import("@angular/core").InputSignal<boolean>;
3481
3548
  /** Placeholder text spread one character per cell (cell i shows character i). */
3482
3549
  readonly placeholder: import("@angular/core").InputSignal<string>;
3483
3550
  readonly length: import("@angular/core").InputSignal<number>;
@@ -3543,6 +3610,11 @@ export declare class CodeInputComponent implements ControlValueAccessor {
3543
3610
  "required": false;
3544
3611
  "isSignal": true;
3545
3612
  };
3613
+ "optional": {
3614
+ "alias": "optional";
3615
+ "required": false;
3616
+ "isSignal": true;
3617
+ };
3546
3618
  "placeholder": {
3547
3619
  "alias": "placeholder";
3548
3620
  "required": false;
@@ -3649,6 +3721,8 @@ export declare class DatePickerComponent implements ControlValueAccessor {
3649
3721
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
3650
3722
  /** Help revealed by an info button beside the label, as plain text or a template. */
3651
3723
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
3724
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
3725
+ readonly optional: import("@angular/core").InputSignal<boolean>;
3652
3726
  /** Placeholder shown in the field when no date is selected. */
3653
3727
  readonly placeholder: import("@angular/core").InputSignal<string | undefined>;
3654
3728
  /** Space-separated ids of the elements whose text names the field, such as a label outside the component. */
@@ -3783,6 +3857,11 @@ export declare class DatePickerComponent implements ControlValueAccessor {
3783
3857
  "required": false;
3784
3858
  "isSignal": true;
3785
3859
  };
3860
+ "optional": {
3861
+ "alias": "optional";
3862
+ "required": false;
3863
+ "isSignal": true;
3864
+ };
3786
3865
  "placeholder": {
3787
3866
  "alias": "placeholder";
3788
3867
  "required": false;
@@ -4304,6 +4383,8 @@ export declare class DropdownComponent implements ControlValueAccessor {
4304
4383
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
4305
4384
  /** Help revealed by an info button beside the label, as plain text or a template. */
4306
4385
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
4386
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
4387
+ readonly optional: import("@angular/core").InputSignal<boolean>;
4307
4388
  readonly placeholder: import("@angular/core").InputSignal<string | undefined>;
4308
4389
  /** Selectable options, either flat or split into groups. */
4309
4390
  readonly options: import("@angular/core").InputSignal<SelectOptions>;
@@ -4414,6 +4495,11 @@ export declare class DropdownComponent implements ControlValueAccessor {
4414
4495
  "required": false;
4415
4496
  "isSignal": true;
4416
4497
  };
4498
+ "optional": {
4499
+ "alias": "optional";
4500
+ "required": false;
4501
+ "isSignal": true;
4502
+ };
4417
4503
  "placeholder": {
4418
4504
  "alias": "placeholder";
4419
4505
  "required": false;
@@ -4604,11 +4690,15 @@ export declare class FieldLabelComponent {
4604
4690
  readonly help: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
4605
4691
  readonly forId: import("@angular/core").InputSignal<string | undefined>;
4606
4692
  readonly required: import("@angular/core").InputSignal<boolean>;
4693
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
4694
+ readonly optional: import("@angular/core").InputSignal<boolean>;
4607
4695
  readonly labelId: import("@angular/core").InputSignal<string | undefined>;
4608
4696
  protected readonly helpOpen: import("@angular/core").WritableSignal<boolean>;
4609
4697
  protected readonly helpId: string;
4610
4698
  protected readonly helpTemplate: import("@angular/core").Signal<TemplateRef<unknown> | null>;
4611
4699
  protected readonly helpTriggerLabel: import("@angular/core").Signal<string>;
4700
+ protected readonly showOptional: import("@angular/core").Signal<boolean>;
4701
+ protected readonly optionalText: import("@angular/core").Signal<string>;
4612
4702
  private readonly helpEl;
4613
4703
  private readonly helpTrigger;
4614
4704
  private readonly helpBubble;
@@ -4644,6 +4734,11 @@ export declare class FieldLabelComponent {
4644
4734
  "required": false;
4645
4735
  "isSignal": true;
4646
4736
  };
4737
+ "optional": {
4738
+ "alias": "optional";
4739
+ "required": false;
4740
+ "isSignal": true;
4741
+ };
4647
4742
  "labelId": {
4648
4743
  "alias": "labelId";
4649
4744
  "required": false;
@@ -4697,6 +4792,8 @@ export declare class FormFieldComponent {
4697
4792
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
4698
4793
  /** Help revealed by an info button beside the label, as plain text or a template. */
4699
4794
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
4795
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
4796
+ readonly optional: import("@angular/core").InputSignal<boolean>;
4700
4797
  /** Helper text shown below the control; hidden while an error is showing. */
4701
4798
  readonly hint: import("@angular/core").InputSignal<string | undefined>;
4702
4799
  /** Error message shown below the control; replaces the hint and flags the field invalid. */
@@ -4737,6 +4834,11 @@ export declare class FormFieldComponent {
4737
4834
  "required": false;
4738
4835
  "isSignal": true;
4739
4836
  };
4837
+ "optional": {
4838
+ "alias": "optional";
4839
+ "required": false;
4840
+ "isSignal": true;
4841
+ };
4740
4842
  "hint": {
4741
4843
  "alias": "hint";
4742
4844
  "required": false;
@@ -4874,6 +4976,8 @@ export declare class FileUploaderComponent implements ControlValueAccessor {
4874
4976
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
4875
4977
  /** Help revealed by an info button beside the label, as plain text or a template. */
4876
4978
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
4979
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
4980
+ readonly optional: import("@angular/core").InputSignal<boolean>;
4877
4981
  readonly hint: import("@angular/core").InputSignal<string | undefined>;
4878
4982
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
4879
4983
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
@@ -5007,6 +5111,11 @@ export declare class FileUploaderComponent implements ControlValueAccessor {
5007
5111
  "required": false;
5008
5112
  "isSignal": true;
5009
5113
  };
5114
+ "optional": {
5115
+ "alias": "optional";
5116
+ "required": false;
5117
+ "isSignal": true;
5118
+ };
5010
5119
  "hint": {
5011
5120
  "alias": "hint";
5012
5121
  "required": false;
@@ -5129,6 +5238,8 @@ export declare class InputComponent implements ControlValueAccessor {
5129
5238
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
5130
5239
  /** Help revealed by an info button beside the label, as plain text or a template. */
5131
5240
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
5241
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
5242
+ readonly optional: import("@angular/core").InputSignal<boolean>;
5132
5243
  /** Accessible name for the control when no visible `label` is set. */
5133
5244
  readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
5134
5245
  /** ARIA role applied to the native input, e.g. `combobox` for a typeahead host. */
@@ -5253,6 +5364,11 @@ export declare class InputComponent implements ControlValueAccessor {
5253
5364
  "required": false;
5254
5365
  "isSignal": true;
5255
5366
  };
5367
+ "optional": {
5368
+ "alias": "optional";
5369
+ "required": false;
5370
+ "isSignal": true;
5371
+ };
5256
5372
  "ariaLabel": {
5257
5373
  "alias": "aria-label";
5258
5374
  "required": false;
@@ -5410,7 +5526,7 @@ export declare class InputComponent implements ControlValueAccessor {
5410
5526
  }, never, ["[slot=prefix]", "[slot=suffix]"], true, never>;
5411
5527
  }
5412
5528
  /** How the line bends between points. */
5413
- export type LineChartCurve = 'linear' | 'smooth' | 'step';
5529
+ export type LineChartCurve = ChartCurve;
5414
5530
  /**
5415
5531
  * Entrance animation, replayed whenever the data changes. `draw` traces each
5416
5532
  * line along its length, `reveal` wipes every line in together from left to
@@ -5500,7 +5616,7 @@ export declare class LineChartComponent {
5500
5616
  */
5501
5617
  readonly visibleXSpan: import("@angular/core").InputSignal<number | null>;
5502
5618
  /** How the line bends between points. */
5503
- readonly curve: import("@angular/core").InputSignal<LineChartCurve>;
5619
+ readonly curve: import("@angular/core").InputSignal<ChartCurve>;
5504
5620
  /** Fills the area beneath each line with a light wash of its color. */
5505
5621
  readonly showArea: import("@angular/core").InputSignal<boolean>;
5506
5622
  /** Marks every value with a point. */
@@ -5515,6 +5631,12 @@ export declare class LineChartComponent {
5515
5631
  readonly yMax: import("@angular/core").InputSignal<number | undefined>;
5516
5632
  /** Largest gap between y-axis ticks; a wider range gets more ticks instead of wider gaps. */
5517
5633
  readonly maxYStep: import("@angular/core").InputSignal<number | undefined>;
5634
+ /**
5635
+ * Dashed rules across the plot at set values, such as a target or an
5636
+ * average. The y-axis widens to take them in, unless `yMin` or `yMax` cuts
5637
+ * them off.
5638
+ */
5639
+ readonly referenceLines: import("@angular/core").InputSignal<readonly ChartReferenceLine[]>;
5518
5640
  /** How the x-axis labels are set; `auto` turns them as they run out of room. */
5519
5641
  readonly xLabelOrientation: import("@angular/core").InputSignal<ChartLabelOrientation>;
5520
5642
  /** Marks the foot of a y-axis that stops short of zero with a break symbol. */
@@ -5556,6 +5678,7 @@ export declare class LineChartComponent {
5556
5678
  private readonly positions;
5557
5679
  protected readonly domain: import("@angular/core").Signal<XDomain>;
5558
5680
  protected readonly windowed: import("@angular/core").Signal<boolean>;
5681
+ protected readonly references: import("@angular/core").Signal<ChartReferenceLine[]>;
5559
5682
  protected readonly renderPass: import("@angular/core").Signal<{}[]>;
5560
5683
  protected readonly hostClasses: import("@angular/core").Signal<{
5561
5684
  [x: string]: boolean;
@@ -5564,6 +5687,7 @@ export declare class LineChartComponent {
5564
5687
  }>;
5565
5688
  private readonly runs;
5566
5689
  private readonly visibleValues;
5690
+ private withReferences;
5567
5691
  protected readonly layout: import("@angular/core").Signal<{
5568
5692
  width: number;
5569
5693
  height: number;
@@ -5586,6 +5710,14 @@ export declare class LineChartComponent {
5586
5710
  }[];
5587
5711
  xLabels: PlacedXLabel[];
5588
5712
  series: PlotSeries[];
5713
+ references: {
5714
+ labelY: number;
5715
+ key: number;
5716
+ y: number;
5717
+ value: number;
5718
+ label?: string;
5719
+ color?: string;
5720
+ }[];
5589
5721
  x: (i: number) => number;
5590
5722
  y: (v: number) => number;
5591
5723
  }>;
@@ -5620,6 +5752,7 @@ export declare class LineChartComponent {
5620
5752
  protected seriesColor(index: number): string;
5621
5753
  protected isDimmed(index: number): boolean;
5622
5754
  protected isActivePoint(seriesIndex: number, index: number): boolean;
5755
+ protected referenceText(line: ChartReferenceLine): string;
5623
5756
  protected tableValue(value: number | null | undefined): string;
5624
5757
  protected onPointerDown(event: PointerEvent): void;
5625
5758
  protected onPointerMove(event: PointerEvent): void;
@@ -5722,6 +5855,11 @@ export declare class LineChartComponent {
5722
5855
  "required": false;
5723
5856
  "isSignal": true;
5724
5857
  };
5858
+ "referenceLines": {
5859
+ "alias": "referenceLines";
5860
+ "required": false;
5861
+ "isSignal": true;
5862
+ };
5725
5863
  "xLabelOrientation": {
5726
5864
  "alias": "xLabelOrientation";
5727
5865
  "required": false;
@@ -5847,6 +5985,8 @@ export declare class MultiSelectComponent implements ControlValueAccessor {
5847
5985
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
5848
5986
  /** Help revealed by an info button beside the label, as plain text or a template. */
5849
5987
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
5988
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
5989
+ readonly optional: import("@angular/core").InputSignal<boolean>;
5850
5990
  /** Accessible name for the combobox when no visible `label` is set. */
5851
5991
  readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
5852
5992
  /** Space-separated ids of the elements whose text names the combobox, such as a label outside the component. */
@@ -6042,6 +6182,11 @@ export declare class MultiSelectComponent implements ControlValueAccessor {
6042
6182
  "required": false;
6043
6183
  "isSignal": true;
6044
6184
  };
6185
+ "optional": {
6186
+ "alias": "optional";
6187
+ "required": false;
6188
+ "isSignal": true;
6189
+ };
6045
6190
  "ariaLabel": {
6046
6191
  "alias": "aria-label";
6047
6192
  "required": false;
@@ -6170,6 +6315,8 @@ export declare class NumberInputComponent implements ControlValueAccessor {
6170
6315
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
6171
6316
  /** Help revealed by an info button beside the label, as plain text or a template. */
6172
6317
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
6318
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
6319
+ readonly optional: import("@angular/core").InputSignal<boolean>;
6173
6320
  /** Placeholder shown while the field is empty. */
6174
6321
  readonly placeholder: import("@angular/core").InputSignal<string>;
6175
6322
  /** Visual size of the field. */
@@ -6263,6 +6410,11 @@ export declare class NumberInputComponent implements ControlValueAccessor {
6263
6410
  "required": false;
6264
6411
  "isSignal": true;
6265
6412
  };
6413
+ "optional": {
6414
+ "alias": "optional";
6415
+ "required": false;
6416
+ "isSignal": true;
6417
+ };
6266
6418
  "placeholder": {
6267
6419
  "alias": "placeholder";
6268
6420
  "required": false;
@@ -6525,6 +6677,10 @@ export declare class PieChartComponent {
6525
6677
  readonly showLegend: import("@angular/core").InputSignal<boolean>;
6526
6678
  /** Adds each slice's share of the total to its legend entry. */
6527
6679
  readonly showPercentages: import("@angular/core").InputSignal<boolean>;
6680
+ /** Prints the total of every slice in the middle of a donut. */
6681
+ readonly showTotal: import("@angular/core").InputSignal<boolean>;
6682
+ /** Caption beneath a donut's total; defaults to a localized "Total". */
6683
+ readonly totalLabel: import("@angular/core").InputSignal<string | undefined>;
6528
6684
  /** Largest diameter of the chart in pixels; it shrinks to fit a narrower container. */
6529
6685
  readonly height: import("@angular/core").InputSignal<number>;
6530
6686
  /** Visual size; scales the legend and tooltip text. */
@@ -6559,6 +6715,12 @@ export declare class PieChartComponent {
6559
6715
  inner: number;
6560
6716
  slices: PlotSlice[];
6561
6717
  }>;
6718
+ protected readonly center: import("@angular/core").Signal<{
6719
+ value: string;
6720
+ caption: string;
6721
+ room: number;
6722
+ valuePx: number;
6723
+ } | null>;
6562
6724
  protected readonly legend: import("@angular/core").Signal<{
6563
6725
  label: string;
6564
6726
  color: string;
@@ -6583,6 +6745,7 @@ export declare class PieChartComponent {
6583
6745
  protected readonly announcement: import("@angular/core").Signal<string>;
6584
6746
  protected tableValue(slice: PieChartSlice): string;
6585
6747
  protected tablePercent(index: number): string;
6748
+ protected totalPercent(): string;
6586
6749
  protected isDimmed(index: number): boolean;
6587
6750
  protected offset(slice: PlotSlice): string | null;
6588
6751
  protected onPointerMove(event: PointerEvent): void;
@@ -6618,6 +6781,16 @@ export declare class PieChartComponent {
6618
6781
  "required": false;
6619
6782
  "isSignal": true;
6620
6783
  };
6784
+ "showTotal": {
6785
+ "alias": "showTotal";
6786
+ "required": false;
6787
+ "isSignal": true;
6788
+ };
6789
+ "totalLabel": {
6790
+ "alias": "totalLabel";
6791
+ "required": false;
6792
+ "isSignal": true;
6793
+ };
6621
6794
  "height": {
6622
6795
  "alias": "height";
6623
6796
  "required": false;
@@ -6752,6 +6925,8 @@ export declare class RadioGroupComponent implements ControlValueAccessor {
6752
6925
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
6753
6926
  /** Help revealed by an info button beside the label, as plain text or a template. */
6754
6927
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
6928
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
6929
+ readonly optional: import("@angular/core").InputSignal<boolean>;
6755
6930
  readonly hint: import("@angular/core").InputSignal<string | undefined>;
6756
6931
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
6757
6932
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
@@ -6824,6 +6999,11 @@ export declare class RadioGroupComponent implements ControlValueAccessor {
6824
6999
  "required": false;
6825
7000
  "isSignal": true;
6826
7001
  };
7002
+ "optional": {
7003
+ "alias": "optional";
7004
+ "required": false;
7005
+ "isSignal": true;
7006
+ };
6827
7007
  "hint": {
6828
7008
  "alias": "hint";
6829
7009
  "required": false;
@@ -6930,6 +7110,8 @@ export declare class RangeSliderComponent implements ControlValueAccessor {
6930
7110
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
6931
7111
  /** Help revealed by an info button beside the label, as plain text or a template. */
6932
7112
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
7113
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
7114
+ readonly optional: import("@angular/core").InputSignal<boolean>;
6933
7115
  readonly hint: import("@angular/core").InputSignal<string | undefined>;
6934
7116
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
6935
7117
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
@@ -7012,6 +7194,11 @@ export declare class RangeSliderComponent implements ControlValueAccessor {
7012
7194
  "required": false;
7013
7195
  "isSignal": true;
7014
7196
  };
7197
+ "optional": {
7198
+ "alias": "optional";
7199
+ "required": false;
7200
+ "isSignal": true;
7201
+ };
7015
7202
  "hint": {
7016
7203
  "alias": "hint";
7017
7204
  "required": false;
@@ -7137,6 +7324,8 @@ export declare class RatingComponent implements ControlValueAccessor {
7137
7324
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
7138
7325
  /** Help revealed by an info button beside the label, as plain text or a template. */
7139
7326
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
7327
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
7328
+ readonly optional: import("@angular/core").InputSignal<boolean>;
7140
7329
  readonly hint: import("@angular/core").InputSignal<string | undefined>;
7141
7330
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
7142
7331
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
@@ -7227,6 +7416,11 @@ export declare class RatingComponent implements ControlValueAccessor {
7227
7416
  "required": false;
7228
7417
  "isSignal": true;
7229
7418
  };
7419
+ "optional": {
7420
+ "alias": "optional";
7421
+ "required": false;
7422
+ "isSignal": true;
7423
+ };
7230
7424
  "hint": {
7231
7425
  "alias": "hint";
7232
7426
  "required": false;
@@ -7323,6 +7517,8 @@ export declare class SegmentedComponent implements ControlValueAccessor {
7323
7517
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
7324
7518
  /** Help revealed by an info button beside the label, as plain text or a template. */
7325
7519
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
7520
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
7521
+ readonly optional: import("@angular/core").InputSignal<boolean>;
7326
7522
  readonly hint: import("@angular/core").InputSignal<string | undefined>;
7327
7523
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
7328
7524
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
@@ -7387,6 +7583,11 @@ export declare class SegmentedComponent implements ControlValueAccessor {
7387
7583
  "required": false;
7388
7584
  "isSignal": true;
7389
7585
  };
7586
+ "optional": {
7587
+ "alias": "optional";
7588
+ "required": false;
7589
+ "isSignal": true;
7590
+ };
7390
7591
  "hint": {
7391
7592
  "alias": "hint";
7392
7593
  "required": false;
@@ -7498,6 +7699,8 @@ export declare class SliderComponent implements ControlValueAccessor {
7498
7699
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
7499
7700
  /** Help revealed by an info button beside the label, as plain text or a template. */
7500
7701
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
7702
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
7703
+ readonly optional: import("@angular/core").InputSignal<boolean>;
7501
7704
  readonly hint: import("@angular/core").InputSignal<string | undefined>;
7502
7705
  readonly errorMsg: import("@angular/core").InputSignal<string | undefined>;
7503
7706
  /** Per-validator-key message overrides for a bound form control (e.g. `{ required: '...' }`). */
@@ -7582,6 +7785,11 @@ export declare class SliderComponent implements ControlValueAccessor {
7582
7785
  "required": false;
7583
7786
  "isSignal": true;
7584
7787
  };
7788
+ "optional": {
7789
+ "alias": "optional";
7790
+ "required": false;
7791
+ "isSignal": true;
7792
+ };
7585
7793
  "hint": {
7586
7794
  "alias": "hint";
7587
7795
  "required": false;
@@ -7682,6 +7890,183 @@ export declare class SliderComponent implements ControlValueAccessor {
7682
7890
  "changed": "changed";
7683
7891
  }, never, never, true, never>;
7684
7892
  }
7893
+ /** How a sparkline draws its values. */
7894
+ export type SparklineVariant = 'line' | 'area' | 'bar';
7895
+ /**
7896
+ * Values a sparkline singles out: `last` the latest one, `extremes` the
7897
+ * highest and lowest as well, and `all` every value. A line or area marks them
7898
+ * with a dot; bars dim every other bar.
7899
+ */
7900
+ export type SparklineMarkers = 'none' | 'last' | 'extremes' | 'all';
7901
+ /**
7902
+ * Entrance animation, replayed whenever the data changes. `draw` traces the
7903
+ * line or grows the bars, and `fade` fades the sparkline in.
7904
+ */
7905
+ export type SparklineAnimation = 'draw' | 'fade' | 'none';
7906
+ interface PlotBar {
7907
+ index: number;
7908
+ x: number;
7909
+ y: number;
7910
+ width: number;
7911
+ height: number;
7912
+ }
7913
+ interface PlotPosition {
7914
+ index: number;
7915
+ x: number;
7916
+ y: number;
7917
+ }
7918
+ /**
7919
+ * A small, axis-free trend of one run of values, as a line, an area, or bars,
7920
+ * sized to sit in a stat tile, a table cell, or a line of text. It is a single
7921
+ * image to assistive technology, named by `aria-label` and described by its
7922
+ * first, last, lowest, and highest values.
7923
+ */
7924
+ export declare class SparklineComponent {
7925
+ protected readonly i18n: EagamiI18nService;
7926
+ /** The values to plot, oldest first; `null` leaves a gap. */
7927
+ readonly data: import("@angular/core").InputSignal<(number | null)[]>;
7928
+ /** Draws the values as a line, a line over a filled area, or bars. */
7929
+ readonly variant: import("@angular/core").InputSignal<SparklineVariant>;
7930
+ /** How a line or area bends between values. */
7931
+ readonly curve: import("@angular/core").InputSignal<ChartCurve>;
7932
+ /** Values singled out with a dot, or on bars by dimming the rest. */
7933
+ readonly markers: import("@angular/core").InputSignal<SparklineMarkers>;
7934
+ /** Any CSS color; defaults to the first color of the chart palette. */
7935
+ readonly color: import("@angular/core").InputSignal<string | undefined>;
7936
+ /**
7937
+ * Starts the scale of a line or area at zero, so its height shows the true
7938
+ * size of each value rather than a close-up of how they vary. Bars always
7939
+ * start at zero.
7940
+ */
7941
+ readonly startAtZero: import("@angular/core").InputSignal<boolean>;
7942
+ /** Shows the value under the pointer in a tooltip, on hover or while a finger slides along. */
7943
+ readonly showTooltip: import("@angular/core").InputSignal<boolean>;
7944
+ /** Height in pixels; the width fills the container. */
7945
+ readonly height: import("@angular/core").InputSignal<number>;
7946
+ /** Entrance animation, replayed whenever the data changes. */
7947
+ readonly animation: import("@angular/core").InputSignal<SparklineAnimation>;
7948
+ /** Length of the entrance animation in milliseconds. */
7949
+ readonly animationDuration: import("@angular/core").InputSignal<number>;
7950
+ /** Formats the values in the tooltip and those read out to assistive technology; locale-grouped by default. */
7951
+ readonly formatValue: import("@angular/core").InputSignal<((value: number) => string) | null>;
7952
+ /** Accessible name for the sparkline; defaults to a localized "Trend". */
7953
+ readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
7954
+ private readonly viewport;
7955
+ private readonly format;
7956
+ protected readonly summaryId: string;
7957
+ protected readonly active: import("@angular/core").WritableSignal<number | null>;
7958
+ protected readonly label: import("@angular/core").Signal<string>;
7959
+ private readonly values;
7960
+ private readonly known;
7961
+ protected readonly hasData: import("@angular/core").Signal<boolean>;
7962
+ protected readonly renderPass: import("@angular/core").Signal<{}[]>;
7963
+ protected readonly hostClasses: import("@angular/core").Signal<{
7964
+ [x: string]: boolean;
7965
+ 'ea-sparkline--interactive': boolean;
7966
+ }>;
7967
+ protected readonly stroke: import("@angular/core").Signal<string>;
7968
+ private readonly marked;
7969
+ protected readonly layout: import("@angular/core").Signal<{
7970
+ width: number;
7971
+ height: number;
7972
+ baseline: number;
7973
+ bars: PlotBar[];
7974
+ paths: never[];
7975
+ areas: never[];
7976
+ markers: never[];
7977
+ positions: PlotPosition[];
7978
+ } | {
7979
+ width: number;
7980
+ height: number;
7981
+ baseline: number;
7982
+ bars: never[];
7983
+ paths: string[];
7984
+ areas: string[];
7985
+ markers: {
7986
+ r: number;
7987
+ x: number;
7988
+ y: number;
7989
+ }[];
7990
+ positions: PlotPosition[];
7991
+ }>;
7992
+ protected readonly activePosition: import("@angular/core").Signal<PlotPosition | null>;
7993
+ protected readonly activeRadius = 4.5;
7994
+ protected readonly tooltips: import("@angular/core").Signal<{
7995
+ key: number;
7996
+ text: string;
7997
+ index: number;
7998
+ x: number;
7999
+ y: number;
8000
+ }[]>;
8001
+ protected isDimmed(bar: PlotBar): boolean;
8002
+ protected onPointer(event: PointerEvent): void;
8003
+ protected onPointerUp(event: PointerEvent): void;
8004
+ protected clear(): void;
8005
+ protected readonly summary: import("@angular/core").Signal<string>;
8006
+ static ɵfac: i0.ɵɵFactoryDeclaration<SparklineComponent, never>;
8007
+ static ɵcmp: i0.ɵɵComponentDeclaration<SparklineComponent, "ea-sparkline", never, {
8008
+ "data": {
8009
+ "alias": "data";
8010
+ "required": false;
8011
+ "isSignal": true;
8012
+ };
8013
+ "variant": {
8014
+ "alias": "variant";
8015
+ "required": false;
8016
+ "isSignal": true;
8017
+ };
8018
+ "curve": {
8019
+ "alias": "curve";
8020
+ "required": false;
8021
+ "isSignal": true;
8022
+ };
8023
+ "markers": {
8024
+ "alias": "markers";
8025
+ "required": false;
8026
+ "isSignal": true;
8027
+ };
8028
+ "color": {
8029
+ "alias": "color";
8030
+ "required": false;
8031
+ "isSignal": true;
8032
+ };
8033
+ "startAtZero": {
8034
+ "alias": "startAtZero";
8035
+ "required": false;
8036
+ "isSignal": true;
8037
+ };
8038
+ "showTooltip": {
8039
+ "alias": "showTooltip";
8040
+ "required": false;
8041
+ "isSignal": true;
8042
+ };
8043
+ "height": {
8044
+ "alias": "height";
8045
+ "required": false;
8046
+ "isSignal": true;
8047
+ };
8048
+ "animation": {
8049
+ "alias": "animation";
8050
+ "required": false;
8051
+ "isSignal": true;
8052
+ };
8053
+ "animationDuration": {
8054
+ "alias": "animationDuration";
8055
+ "required": false;
8056
+ "isSignal": true;
8057
+ };
8058
+ "formatValue": {
8059
+ "alias": "formatValue";
8060
+ "required": false;
8061
+ "isSignal": true;
8062
+ };
8063
+ "ariaLabel": {
8064
+ "alias": "aria-label";
8065
+ "required": false;
8066
+ "isSignal": true;
8067
+ };
8068
+ }, {}, never, never, true, never>;
8069
+ }
7685
8070
  /** Visual size of the spinner. */
7686
8071
  export type SpinnerSize = EaSize;
7687
8072
  /**
@@ -8393,6 +8778,8 @@ export declare class TextareaComponent implements ControlValueAccessor {
8393
8778
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
8394
8779
  /** Help revealed by an info button beside the label, as plain text or a template. */
8395
8780
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
8781
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
8782
+ readonly optional: import("@angular/core").InputSignal<boolean>;
8396
8783
  /** Accessible name for the control when no visible `label` is set. */
8397
8784
  readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
8398
8785
  readonly placeholder: import("@angular/core").InputSignal<string>;
@@ -8479,6 +8866,11 @@ export declare class TextareaComponent implements ControlValueAccessor {
8479
8866
  "required": false;
8480
8867
  "isSignal": true;
8481
8868
  };
8869
+ "optional": {
8870
+ "alias": "optional";
8871
+ "required": false;
8872
+ "isSignal": true;
8873
+ };
8482
8874
  "ariaLabel": {
8483
8875
  "alias": "aria-label";
8484
8876
  "required": false;
@@ -8613,6 +9005,8 @@ export declare class TimePickerComponent implements ControlValueAccessor {
8613
9005
  readonly labelIcon: import("@angular/core").InputSignal<Type<unknown> | undefined>;
8614
9006
  /** Help revealed by an info button beside the label, as plain text or a template. */
8615
9007
  readonly labelHelp: import("@angular/core").InputSignal<string | TemplateRef<unknown> | undefined>;
9008
+ /** Adds a muted "(optional)" note after the label, unless `required` is also set. */
9009
+ readonly optional: import("@angular/core").InputSignal<boolean>;
8616
9010
  readonly placeholder: import("@angular/core").InputSignal<string | undefined>;
8617
9011
  readonly size: import("@angular/core").InputSignal<EaSize>;
8618
9012
  readonly disabled: import("@angular/core").InputSignal<boolean>;
@@ -8788,6 +9182,11 @@ export declare class TimePickerComponent implements ControlValueAccessor {
8788
9182
  "required": false;
8789
9183
  "isSignal": true;
8790
9184
  };
9185
+ "optional": {
9186
+ "alias": "optional";
9187
+ "required": false;
9188
+ "isSignal": true;
9189
+ };
8791
9190
  "placeholder": {
8792
9191
  "alias": "placeholder";
8793
9192
  "required": false;
@@ -13565,4 +13964,4 @@ export declare class ZoomOutIconComponent extends IconComponentBase {
13565
13964
  static ɵfac: i0.ɵɵFactoryDeclaration<ZoomOutIconComponent, never>;
13566
13965
  static ɵcmp: i0.ɵɵComponentDeclaration<ZoomOutIconComponent, "ea-icon-zoom-out", never, {}, {}, never, never, true, never>;
13567
13966
  }
13568
- export type { ChartLabelOrientation, ChartPointEvent, ChartSeries, ChartSize, EaErrorMessages, EaValidationErrorKey };
13967
+ export type { ChartCurve, ChartLabelOrientation, ChartPointEvent, ChartReferenceLine, ChartSeries, ChartSize, EaErrorMessages, EaValidationErrorKey };