@joanroucoux/cairn-ui 0.8.2 → 0.9.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.
Files changed (124) hide show
  1. package/CHANGELOG.md +99 -0
  2. package/fesm2022/joanroucoux-cairn-ui-action-bar.mjs +57 -53
  3. package/fesm2022/joanroucoux-cairn-ui-action-bar.mjs.map +1 -1
  4. package/fesm2022/joanroucoux-cairn-ui-alert.mjs +155 -47
  5. package/fesm2022/joanroucoux-cairn-ui-alert.mjs.map +1 -1
  6. package/fesm2022/joanroucoux-cairn-ui-amount.mjs +220 -110
  7. package/fesm2022/joanroucoux-cairn-ui-amount.mjs.map +1 -1
  8. package/fesm2022/joanroucoux-cairn-ui-async.mjs +392 -216
  9. package/fesm2022/joanroucoux-cairn-ui-async.mjs.map +1 -1
  10. package/fesm2022/joanroucoux-cairn-ui-avatar.mjs +145 -68
  11. package/fesm2022/joanroucoux-cairn-ui-avatar.mjs.map +1 -1
  12. package/fesm2022/joanroucoux-cairn-ui-back-link.mjs +87 -47
  13. package/fesm2022/joanroucoux-cairn-ui-back-link.mjs.map +1 -1
  14. package/fesm2022/joanroucoux-cairn-ui-badge.mjs +83 -43
  15. package/fesm2022/joanroucoux-cairn-ui-badge.mjs.map +1 -1
  16. package/fesm2022/joanroucoux-cairn-ui-button.mjs +184 -104
  17. package/fesm2022/joanroucoux-cairn-ui-button.mjs.map +1 -1
  18. package/fesm2022/joanroucoux-cairn-ui-card.mjs +232 -137
  19. package/fesm2022/joanroucoux-cairn-ui-card.mjs.map +1 -1
  20. package/fesm2022/joanroucoux-cairn-ui-choice-chips.mjs +298 -102
  21. package/fesm2022/joanroucoux-cairn-ui-choice-chips.mjs.map +1 -1
  22. package/fesm2022/joanroucoux-cairn-ui-control.mjs +4 -17
  23. package/fesm2022/joanroucoux-cairn-ui-control.mjs.map +1 -1
  24. package/fesm2022/joanroucoux-cairn-ui-delta.mjs +150 -83
  25. package/fesm2022/joanroucoux-cairn-ui-delta.mjs.map +1 -1
  26. package/fesm2022/joanroucoux-cairn-ui-dialog.mjs +508 -471
  27. package/fesm2022/joanroucoux-cairn-ui-dialog.mjs.map +1 -1
  28. package/fesm2022/joanroucoux-cairn-ui-donut.mjs +255 -157
  29. package/fesm2022/joanroucoux-cairn-ui-donut.mjs.map +1 -1
  30. package/fesm2022/joanroucoux-cairn-ui-drawer.mjs +303 -0
  31. package/fesm2022/joanroucoux-cairn-ui-drawer.mjs.map +1 -0
  32. package/fesm2022/joanroucoux-cairn-ui-empty.mjs +76 -35
  33. package/fesm2022/joanroucoux-cairn-ui-empty.mjs.map +1 -1
  34. package/fesm2022/joanroucoux-cairn-ui-external-link.mjs +40 -31
  35. package/fesm2022/joanroucoux-cairn-ui-external-link.mjs.map +1 -1
  36. package/fesm2022/joanroucoux-cairn-ui-fact.mjs +188 -79
  37. package/fesm2022/joanroucoux-cairn-ui-fact.mjs.map +1 -1
  38. package/fesm2022/joanroucoux-cairn-ui-field.mjs +309 -173
  39. package/fesm2022/joanroucoux-cairn-ui-field.mjs.map +1 -1
  40. package/fesm2022/joanroucoux-cairn-ui-filter-chips.mjs +165 -87
  41. package/fesm2022/joanroucoux-cairn-ui-filter-chips.mjs.map +1 -1
  42. package/fesm2022/joanroucoux-cairn-ui-group-header.mjs +269 -0
  43. package/fesm2022/joanroucoux-cairn-ui-group-header.mjs.map +1 -0
  44. package/fesm2022/joanroucoux-cairn-ui-input.mjs +205 -85
  45. package/fesm2022/joanroucoux-cairn-ui-input.mjs.map +1 -1
  46. package/fesm2022/joanroucoux-cairn-ui-line-chart.mjs +838 -512
  47. package/fesm2022/joanroucoux-cairn-ui-line-chart.mjs.map +1 -1
  48. package/fesm2022/joanroucoux-cairn-ui-menu.mjs +401 -225
  49. package/fesm2022/joanroucoux-cairn-ui-menu.mjs.map +1 -1
  50. package/fesm2022/joanroucoux-cairn-ui-meter.mjs +143 -57
  51. package/fesm2022/joanroucoux-cairn-ui-meter.mjs.map +1 -1
  52. package/fesm2022/joanroucoux-cairn-ui-motion.mjs +367 -399
  53. package/fesm2022/joanroucoux-cairn-ui-motion.mjs.map +1 -1
  54. package/fesm2022/joanroucoux-cairn-ui-nav-item.mjs +73 -44
  55. package/fesm2022/joanroucoux-cairn-ui-nav-item.mjs.map +1 -1
  56. package/fesm2022/joanroucoux-cairn-ui-result-group.mjs +191 -0
  57. package/fesm2022/joanroucoux-cairn-ui-result-group.mjs.map +1 -0
  58. package/fesm2022/joanroucoux-cairn-ui-row.mjs +376 -146
  59. package/fesm2022/joanroucoux-cairn-ui-row.mjs.map +1 -1
  60. package/fesm2022/joanroucoux-cairn-ui-segmented.mjs +183 -81
  61. package/fesm2022/joanroucoux-cairn-ui-segmented.mjs.map +1 -1
  62. package/fesm2022/joanroucoux-cairn-ui-select-pill.mjs +233 -0
  63. package/fesm2022/joanroucoux-cairn-ui-select-pill.mjs.map +1 -0
  64. package/fesm2022/joanroucoux-cairn-ui-select.mjs +121 -67
  65. package/fesm2022/joanroucoux-cairn-ui-select.mjs.map +1 -1
  66. package/fesm2022/joanroucoux-cairn-ui-skeleton.mjs +129 -51
  67. package/fesm2022/joanroucoux-cairn-ui-skeleton.mjs.map +1 -1
  68. package/fesm2022/joanroucoux-cairn-ui-stale-link.mjs +80 -39
  69. package/fesm2022/joanroucoux-cairn-ui-stale-link.mjs.map +1 -1
  70. package/fesm2022/joanroucoux-cairn-ui-stat.mjs +85 -55
  71. package/fesm2022/joanroucoux-cairn-ui-stat.mjs.map +1 -1
  72. package/fesm2022/joanroucoux-cairn-ui-switch.mjs +48 -35
  73. package/fesm2022/joanroucoux-cairn-ui-switch.mjs.map +1 -1
  74. package/fesm2022/joanroucoux-cairn-ui-tab-bar.mjs +113 -69
  75. package/fesm2022/joanroucoux-cairn-ui-tab-bar.mjs.map +1 -1
  76. package/fesm2022/joanroucoux-cairn-ui-table.mjs +1036 -310
  77. package/fesm2022/joanroucoux-cairn-ui-table.mjs.map +1 -1
  78. package/fesm2022/joanroucoux-cairn-ui-toast.mjs +240 -127
  79. package/fesm2022/joanroucoux-cairn-ui-toast.mjs.map +1 -1
  80. package/fesm2022/joanroucoux-cairn-ui.mjs +0 -4
  81. package/package.json +17 -1
  82. package/styles/motion.css +1 -13
  83. package/styles/tokens.css +35 -64
  84. package/types/joanroucoux-cairn-ui-action-bar.d.ts +9 -14
  85. package/types/joanroucoux-cairn-ui-alert.d.ts +29 -15
  86. package/types/joanroucoux-cairn-ui-amount.d.ts +64 -32
  87. package/types/joanroucoux-cairn-ui-async.d.ts +85 -38
  88. package/types/joanroucoux-cairn-ui-avatar.d.ts +34 -22
  89. package/types/joanroucoux-cairn-ui-back-link.d.ts +20 -15
  90. package/types/joanroucoux-cairn-ui-badge.d.ts +22 -14
  91. package/types/joanroucoux-cairn-ui-button.d.ts +36 -18
  92. package/types/joanroucoux-cairn-ui-card.d.ts +48 -23
  93. package/types/joanroucoux-cairn-ui-choice-chips.d.ts +91 -35
  94. package/types/joanroucoux-cairn-ui-control.d.ts +9 -18
  95. package/types/joanroucoux-cairn-ui-delta.d.ts +46 -24
  96. package/types/joanroucoux-cairn-ui-dialog.d.ts +124 -57
  97. package/types/joanroucoux-cairn-ui-donut.d.ts +83 -46
  98. package/types/joanroucoux-cairn-ui-drawer.d.ts +73 -0
  99. package/types/joanroucoux-cairn-ui-empty.d.ts +20 -13
  100. package/types/joanroucoux-cairn-ui-external-link.d.ts +6 -10
  101. package/types/joanroucoux-cairn-ui-fact.d.ts +49 -25
  102. package/types/joanroucoux-cairn-ui-field.d.ts +72 -49
  103. package/types/joanroucoux-cairn-ui-filter-chips.d.ts +35 -20
  104. package/types/joanroucoux-cairn-ui-group-header.d.ts +58 -0
  105. package/types/joanroucoux-cairn-ui-input.d.ts +59 -37
  106. package/types/joanroucoux-cairn-ui-line-chart.d.ts +199 -89
  107. package/types/joanroucoux-cairn-ui-menu.d.ts +81 -44
  108. package/types/joanroucoux-cairn-ui-meter.d.ts +44 -22
  109. package/types/joanroucoux-cairn-ui-motion.d.ts +61 -75
  110. package/types/joanroucoux-cairn-ui-nav-item.d.ts +15 -13
  111. package/types/joanroucoux-cairn-ui-result-group.d.ts +52 -0
  112. package/types/joanroucoux-cairn-ui-row.d.ts +79 -37
  113. package/types/joanroucoux-cairn-ui-segmented.d.ts +51 -27
  114. package/types/joanroucoux-cairn-ui-select-pill.d.ts +52 -0
  115. package/types/joanroucoux-cairn-ui-select.d.ts +28 -18
  116. package/types/joanroucoux-cairn-ui-skeleton.d.ts +35 -18
  117. package/types/joanroucoux-cairn-ui-stale-link.d.ts +23 -16
  118. package/types/joanroucoux-cairn-ui-stat.d.ts +26 -21
  119. package/types/joanroucoux-cairn-ui-switch.d.ts +7 -11
  120. package/types/joanroucoux-cairn-ui-tab-bar.d.ts +20 -17
  121. package/types/joanroucoux-cairn-ui-table.d.ts +251 -89
  122. package/types/joanroucoux-cairn-ui-toast.d.ts +46 -36
  123. package/types/joanroucoux-cairn-ui.d.ts +1 -2
  124. package/fesm2022/joanroucoux-cairn-ui.mjs.map +0 -1
@@ -1,37 +1,63 @@
1
- import * as _angular_core from '@angular/core';
2
- import { ElementRef } from '@angular/core';
3
-
1
+ import * as i0 from "@angular/core";
2
+ import { ElementRef } from "@angular/core";
4
3
  type ChartPoint = {
5
- t: number;
6
- v: number;
4
+ t: number;
5
+ v: number;
7
6
  };
8
7
  type PlottedPoint = ChartPoint & {
8
+ x: number;
9
+ y: number;
10
+ };
11
+ type ChartGeometry = {
12
+ line: string;
13
+ end: {
9
14
  x: number;
10
15
  y: number;
16
+ };
17
+ start: {
18
+ y: number;
19
+ };
20
+ points: PlottedPoint[];
21
+ plotBottom: number;
22
+ plotTop: number;
11
23
  };
12
- type ChartGeometry = {
13
- line: string;
14
- end: {
15
- x: number;
16
- y: number;
17
- };
18
- start: {
19
- y: number;
20
- };
21
- points: PlottedPoint[];
22
- plotBottom: number;
23
- plotTop: number;
24
+ type GeometryPadding = {
25
+ x?: number;
26
+ top?: number;
27
+ bottom?: number;
24
28
  };
25
-
29
+ declare const CURVE: import("d3-shape").CurveFactory;
30
+ declare const buildGeometry: (points: ChartPoint[], width: number, height: number, padding?: GeometryPadding) => ChartGeometry | null;
31
+ declare const axisTicks: <T extends PlottedPoint>(points: readonly T[], maxTicks?: number) => T[];
32
+ declare const isCoreTick: (index: number, count: number) => boolean;
26
33
  type TickLabel = {
27
- text: string;
28
- classes: string;
34
+ text: string;
35
+ classes: string;
29
36
  };
30
-
37
+ declare const tickLabels: (ticks: readonly {
38
+ t: number;
39
+ }[], format: (time: number) => string, mode: 3 | 5 | "auto") => (TickLabel | null)[];
40
+ declare const START_LABEL_HEIGHT = 16;
31
41
  declare const TOOLTIP_SIZES: readonly ["compact", "large"];
32
42
  type TooltipSize = (typeof TOOLTIP_SIZES)[number];
43
+ declare const TOOLTIP_CLASSES: Record<TooltipSize, {
44
+ box: string;
45
+ value: string;
46
+ delta: string;
47
+ }>;
48
+ declare const plotHeightFor: (height: number, sparkline: boolean, axisGap: number | "auto", wide: boolean) => number;
49
+ declare const plotPaddingFor: (plotHeight: number, sparkline: boolean) => number;
50
+ declare const startLabelBaseline: (boxBottom: number) => number;
51
+ declare const tooltipPlacement: (ratio: number) => string;
52
+ declare const deltaTone: (delta: number) => string;
53
+ declare const DEFAULT_WIDTH = 640;
54
+ declare const DEFAULT_HEIGHT = 240;
55
+ declare const identityValue: (value: number) => string;
56
+ declare const identityDelta: (delta: number) => string;
57
+ declare const identityTime: (time: number) => string;
33
58
  type AxisTicks = 3 | 5 | 'auto';
34
-
59
+ declare const parseAxisTicks: (value: AxisTicks | string) => AxisTicks;
60
+ declare const tooltipClassesFor: (size: TooltipSize | "auto", wide: boolean) => (typeof TOOLTIP_CLASSES)[TooltipSize];
35
61
  type PlotRef = ElementRef<SVGSVGElement>;
36
62
  type LineRef = ElementRef<SVGPathElement>;
37
63
  type EndRef = ElementRef<SVGCircleElement>;
@@ -39,76 +65,160 @@ type EndRef = ElementRef<SVGCircleElement>;
39
65
  * Value over time: a monotone curve with a dashed line at the starting value and a tooltip.
40
66
  *
41
67
  * Axis labels are never repeated: a tick whose `axisFormat` text equals the previous drawn label is
42
- * not rendered. The first tick always is, so only the last edge label can drop. With `axisTicks="3"`
43
- * only the first, middle and last ticks count; with `auto` every tick counts from `sm` up and the
44
- * three core ticks below it. Tick positions are unchanged.
68
+ * not rendered, so only the last edge label can drop.
45
69
  *
46
- * A new series interpolates from the drawn curve, fading the start label and the dashed line. With
47
- * `rangeKey` bound, only a series that comes with a new key does so: a new series under the same key
48
- * (a reload after a buy) is drawn at once, with no fade. The key may change before its series arrives.
70
+ * A new series animates from the drawn curve. With `rangeKey` bound, only a series that comes with
71
+ * a new key does: a new series under the same key (a reload) is drawn at once. The key may change
72
+ * before its series arrives.
49
73
  *
50
74
  * @example
51
75
  * <ui-line-chart [points]="points" label="Net worth over one month" startLabel="Since" [valueFormat]="formatEur" />
52
76
  */
53
- declare class UiLineChart {
54
- #private;
55
- readonly points: _angular_core.InputSignal<ChartPoint[]>;
56
- readonly label: _angular_core.InputSignal<string>;
57
- readonly valueFormat: _angular_core.InputSignal<(value: number) => string>;
58
- readonly tooltipFormat: _angular_core.InputSignal<((point: ChartPoint) => string) | undefined>;
59
- readonly deltaFormat: _angular_core.InputSignal<(delta: number) => string>;
60
- readonly timeFormat: _angular_core.InputSignal<(time: number) => string>;
61
- readonly axisFormat: _angular_core.InputSignal<(time: number) => string>;
62
- readonly startLabel: _angular_core.InputSignal<string>;
63
- readonly timeColumnLabel: _angular_core.InputSignal<string>;
64
- readonly valueColumnLabel: _angular_core.InputSignal<string>;
65
- readonly sparkline: _angular_core.InputSignalWithTransform<boolean, unknown>;
66
- readonly tooltip: _angular_core.InputSignal<"auto" | "compact" | "large">;
67
- readonly tooltipDelta: _angular_core.InputSignalWithTransform<boolean, unknown>;
68
- readonly axisGap: _angular_core.InputSignal<number | "auto">;
69
- readonly axisTicks: _angular_core.InputSignalWithTransform<AxisTicks, string | 5 | 3>;
70
- readonly rangeKey: _angular_core.InputSignal<string | null>;
71
- protected readonly svgRef: _angular_core.Signal<PlotRef>;
72
- protected readonly lineRef: _angular_core.Signal<LineRef | undefined>;
73
- protected readonly endRef: _angular_core.Signal<EndRef | undefined>;
74
- protected readonly activeIndex: _angular_core.WritableSignal<number | null>;
75
- protected readonly held: _angular_core.WritableSignal<ChartGeometry | null>;
76
- protected readonly measuredSize: _angular_core.WritableSignal<{
77
- width: number;
78
- height: number;
79
- } | null>;
80
- protected readonly effectiveWidth: _angular_core.Signal<number>;
81
- protected readonly effectiveHeight: _angular_core.Signal<number>;
82
- protected readonly plotHeight: _angular_core.Signal<number>;
83
- protected readonly tooltipStyle: (point: PlottedPoint) => string;
84
- protected readonly tooltipClasses: _angular_core.Signal<{
85
- box: string;
86
- value: string;
87
- delta: string;
88
- }>;
89
- protected readonly geometry: _angular_core.Signal<ChartGeometry | null>;
90
- protected readonly shown: _angular_core.Signal<ChartGeometry | null>;
91
- protected readonly startFade: _angular_core.Signal<"opacity-0 duration-(--duration-exit)" | "duration-(--duration-fast)">;
92
- protected readonly ticks: _angular_core.Signal<PlottedPoint[]>;
93
- protected readonly tickTexts: _angular_core.Signal<(TickLabel | null)[]>;
94
- protected readonly active: _angular_core.Signal<PlottedPoint | null>;
95
- protected readonly startLabelInfo: _angular_core.Signal<{
96
- label: string;
97
- placement: {
98
- y: number;
99
- x: number;
100
- anchor: "start" | "end";
101
- };
102
- } | null>;
103
- constructor();
104
- protected deltaFor(point: PlottedPoint): number;
105
- protected deltaClasses(point: PlottedPoint): string;
106
- protected onPointerMove(event: PointerEvent): void;
107
- protected onPointerLeave(): void;
108
- protected onKeydown(event: KeyboardEvent): void;
109
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<UiLineChart, never>;
110
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<UiLineChart, "ui-line-chart", never, { "points": { "alias": "points"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "valueFormat": { "alias": "valueFormat"; "required": false; "isSignal": true; }; "tooltipFormat": { "alias": "tooltipFormat"; "required": false; "isSignal": true; }; "deltaFormat": { "alias": "deltaFormat"; "required": false; "isSignal": true; }; "timeFormat": { "alias": "timeFormat"; "required": false; "isSignal": true; }; "axisFormat": { "alias": "axisFormat"; "required": false; "isSignal": true; }; "startLabel": { "alias": "startLabel"; "required": false; "isSignal": true; }; "timeColumnLabel": { "alias": "timeColumnLabel"; "required": false; "isSignal": true; }; "valueColumnLabel": { "alias": "valueColumnLabel"; "required": false; "isSignal": true; }; "sparkline": { "alias": "sparkline"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "tooltipDelta": { "alias": "tooltipDelta"; "required": false; "isSignal": true; }; "axisGap": { "alias": "axisGap"; "required": false; "isSignal": true; }; "axisTicks": { "alias": "axisTicks"; "required": false; "isSignal": true; }; "rangeKey": { "alias": "rangeKey"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
77
+ export declare class UiLineChart {
78
+ #private;
79
+ readonly points: import("@angular/core").InputSignal<ChartPoint[]>;
80
+ readonly label: import("@angular/core").InputSignal<string>;
81
+ readonly valueFormat: import("@angular/core").InputSignal<(value: number) => string>;
82
+ readonly tooltipFormat: import("@angular/core").InputSignal<((point: ChartPoint) => string) | undefined>;
83
+ readonly deltaFormat: import("@angular/core").InputSignal<(delta: number) => string>;
84
+ readonly deltaSuffix: import("@angular/core").InputSignal<string>;
85
+ readonly timeFormat: import("@angular/core").InputSignal<(time: number) => string>;
86
+ readonly axisFormat: import("@angular/core").InputSignal<(time: number) => string>;
87
+ readonly startLabel: import("@angular/core").InputSignal<string>;
88
+ readonly timeColumnLabel: import("@angular/core").InputSignal<string>;
89
+ readonly valueColumnLabel: import("@angular/core").InputSignal<string>;
90
+ readonly sparkline: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
91
+ readonly tooltip: import("@angular/core").InputSignal<"auto" | "compact" | "large">;
92
+ readonly tooltipDelta: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
93
+ readonly axisGap: import("@angular/core").InputSignal<number | "auto">;
94
+ readonly axisTicks: import("@angular/core").InputSignalWithTransform<AxisTicks, string | 5 | 3>;
95
+ readonly rangeKey: import("@angular/core").InputSignal<string | null>;
96
+ protected readonly svgRef: import("@angular/core").Signal<PlotRef>;
97
+ protected readonly lineRef: import("@angular/core").Signal<LineRef | undefined>;
98
+ protected readonly endRef: import("@angular/core").Signal<EndRef | undefined>;
99
+ protected readonly activeIndex: import("@angular/core").WritableSignal<number | null>;
100
+ protected readonly held: import("@angular/core").WritableSignal<ChartGeometry | null>;
101
+ protected readonly measuredSize: import("@angular/core").WritableSignal<{
102
+ width: number;
103
+ height: number;
104
+ } | null>;
105
+ protected readonly spacedDeltaSuffix: import("@angular/core").Signal<string>;
106
+ protected readonly effectiveWidth: import("@angular/core").Signal<number>;
107
+ protected readonly effectiveHeight: import("@angular/core").Signal<number>;
108
+ protected readonly plotHeight: import("@angular/core").Signal<number>;
109
+ protected readonly tooltipStyle: (point: PlottedPoint) => string;
110
+ protected readonly tooltipClasses: import("@angular/core").Signal<{
111
+ box: string;
112
+ value: string;
113
+ delta: string;
114
+ }>;
115
+ protected readonly geometry: import("@angular/core").Signal<ChartGeometry | null>;
116
+ protected readonly shown: import("@angular/core").Signal<ChartGeometry | null>;
117
+ protected readonly startFade: import("@angular/core").Signal<"opacity-0 duration-(--duration-exit)" | "duration-(--duration-fast)">;
118
+ protected readonly ticks: import("@angular/core").Signal<PlottedPoint[]>;
119
+ protected readonly tickTexts: import("@angular/core").Signal<(TickLabel | null)[]>;
120
+ protected readonly active: import("@angular/core").Signal<PlottedPoint | null>;
121
+ protected readonly startLabelInfo: import("@angular/core").Signal<{
122
+ label: string;
123
+ placement: {
124
+ y: number;
125
+ x: number;
126
+ anchor: "start" | "end";
127
+ };
128
+ } | null>;
129
+ constructor();
130
+ protected deltaFor(point: PlottedPoint): number;
131
+ protected deltaClasses(point: PlottedPoint): string;
132
+ protected onPointerMove(event: PointerEvent): void;
133
+ protected onPointerLeave(): void;
134
+ protected onKeydown(event: KeyboardEvent): void;
135
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiLineChart, never>;
136
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiLineChart, "ui-line-chart", never, {
137
+ "points": {
138
+ "alias": "points";
139
+ "required": true;
140
+ "isSignal": true;
141
+ };
142
+ "label": {
143
+ "alias": "label";
144
+ "required": true;
145
+ "isSignal": true;
146
+ };
147
+ "valueFormat": {
148
+ "alias": "valueFormat";
149
+ "required": false;
150
+ "isSignal": true;
151
+ };
152
+ "tooltipFormat": {
153
+ "alias": "tooltipFormat";
154
+ "required": false;
155
+ "isSignal": true;
156
+ };
157
+ "deltaFormat": {
158
+ "alias": "deltaFormat";
159
+ "required": false;
160
+ "isSignal": true;
161
+ };
162
+ "deltaSuffix": {
163
+ "alias": "deltaSuffix";
164
+ "required": false;
165
+ "isSignal": true;
166
+ };
167
+ "timeFormat": {
168
+ "alias": "timeFormat";
169
+ "required": false;
170
+ "isSignal": true;
171
+ };
172
+ "axisFormat": {
173
+ "alias": "axisFormat";
174
+ "required": false;
175
+ "isSignal": true;
176
+ };
177
+ "startLabel": {
178
+ "alias": "startLabel";
179
+ "required": false;
180
+ "isSignal": true;
181
+ };
182
+ "timeColumnLabel": {
183
+ "alias": "timeColumnLabel";
184
+ "required": false;
185
+ "isSignal": true;
186
+ };
187
+ "valueColumnLabel": {
188
+ "alias": "valueColumnLabel";
189
+ "required": false;
190
+ "isSignal": true;
191
+ };
192
+ "sparkline": {
193
+ "alias": "sparkline";
194
+ "required": false;
195
+ "isSignal": true;
196
+ };
197
+ "tooltip": {
198
+ "alias": "tooltip";
199
+ "required": false;
200
+ "isSignal": true;
201
+ };
202
+ "tooltipDelta": {
203
+ "alias": "tooltipDelta";
204
+ "required": false;
205
+ "isSignal": true;
206
+ };
207
+ "axisGap": {
208
+ "alias": "axisGap";
209
+ "required": false;
210
+ "isSignal": true;
211
+ };
212
+ "axisTicks": {
213
+ "alias": "axisTicks";
214
+ "required": false;
215
+ "isSignal": true;
216
+ };
217
+ "rangeKey": {
218
+ "alias": "rangeKey";
219
+ "required": false;
220
+ "isSignal": true;
221
+ };
222
+ }, {}, never, never, true, never>;
111
223
  }
112
-
113
- export { UiLineChart };
114
- export type { AxisTicks, ChartPoint, TooltipSize };
224
+ export type { AxisTicks, ChartPoint, TooltipSize };
@@ -1,26 +1,39 @@
1
- import * as _angular_core from '@angular/core';
2
-
1
+ import * as i0 from "@angular/core";
3
2
  /**
4
- * One action of a `ui-menu`; `destructive` paints it in `--negative`.
3
+ * One action of a `ui-menu`; `destructive` paints it in `--negative`. Giving it `checked` makes it a radio
4
+ * choice (`menuitemradio`): the current one carries a check mark and `aria-checked="true"`.
5
5
  *
6
6
  * @example
7
7
  * <button uiMenuItem destructive (click)="remove()">Delete the line</button>
8
+ * <button uiMenuItem [checked]="account() === 'pea'" (click)="account.set('pea')">Northwind PEA</button>
8
9
  */
9
- declare class UiMenuItem {
10
- #private;
11
- readonly destructive: _angular_core.InputSignalWithTransform<boolean, unknown>;
12
- protected readonly classes: _angular_core.Signal<string>;
13
- focus(): void;
14
- hasFocus(): boolean;
15
- protected onClick(): void;
16
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<UiMenuItem, never>;
17
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<UiMenuItem, "button[uiMenuItem]", never, { "destructive": { "alias": "destructive"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
10
+ export declare class UiMenuItem {
11
+ #private;
12
+ readonly destructive: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
13
+ readonly checked: import("@angular/core").InputSignal<boolean | undefined>;
14
+ protected readonly role: import("@angular/core").Signal<"menuitem" | "menuitemradio">;
15
+ protected readonly classes: import("@angular/core").Signal<string>;
16
+ focus(): void;
17
+ hasFocus(): boolean;
18
+ protected onClick(): void;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiMenuItem, never>;
20
+ static ɵdir: i0.ɵɵDirectiveDeclaration<UiMenuItem, "button[uiMenuItem]", never, {
21
+ "destructive": {
22
+ "alias": "destructive";
23
+ "required": false;
24
+ "isSignal": true;
25
+ };
26
+ "checked": {
27
+ "alias": "checked";
28
+ "required": false;
29
+ "isSignal": true;
30
+ };
31
+ }, {}, never, never, true, never>;
18
32
  }
19
33
  /**
20
34
  * Secondary actions menu, opened from its trigger through the native Popover API. With `sheet`, below
21
- * 64rem it opens as a bottom action sheet above the tab bar instead of beside its trigger, and
22
- * `heading` names what the actions apply to. `width` fixes the outer popover width in pixels (the sheet
23
- * always spans the screen below 64rem); without it the menu fits its content.
35
+ * 64rem it opens as a bottom action sheet instead of beside its trigger, and `heading` names what
36
+ * the actions apply to. `width` fixes the popover width in pixels; without it the menu fits its content.
24
37
  *
25
38
  * @example
26
39
  * <button ui-button size="icon" aria-label="More" [uiMenuTrigger]="menu">...</button>
@@ -29,38 +42,62 @@ declare class UiMenuItem {
29
42
  * <button uiMenuItem destructive (click)="remove()">Delete the line</button>
30
43
  * </ui-menu>
31
44
  */
32
- declare class UiMenu {
33
- #private;
34
- readonly label: _angular_core.InputSignal<string>;
35
- readonly sheet: _angular_core.InputSignalWithTransform<boolean, unknown>;
36
- readonly heading: _angular_core.InputSignal<string | undefined>;
37
- readonly width: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
38
- readonly menuId: string;
39
- readonly isOpen: _angular_core.WritableSignal<boolean>;
40
- protected readonly hasWidth: _angular_core.Signal<boolean>;
41
- protected readonly widthVar: _angular_core.Signal<string | null>;
42
- protected readonly classes: _angular_core.Signal<string>;
43
- protected readonly items: _angular_core.Signal<readonly UiMenuItem[]>;
44
- open(trigger: HTMLElement): void;
45
- close(): void;
46
- protected onToggle(event: Event): void;
47
- protected onKeydown(event: KeyboardEvent): void;
48
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<UiMenu, never>;
49
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<UiMenu, "ui-menu", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "sheet": { "alias": "sheet"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; }, {}, ["items"], ["*"], true, never>;
45
+ export declare class UiMenu {
46
+ #private;
47
+ readonly label: import("@angular/core").InputSignal<string>;
48
+ readonly sheet: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
49
+ readonly heading: import("@angular/core").InputSignal<string | undefined>;
50
+ readonly width: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
51
+ readonly menuId: string;
52
+ readonly isOpen: import("@angular/core").WritableSignal<boolean>;
53
+ protected readonly hasWidth: import("@angular/core").Signal<boolean>;
54
+ protected readonly widthVar: import("@angular/core").Signal<string | null>;
55
+ protected readonly classes: import("@angular/core").Signal<string>;
56
+ protected readonly items: import("@angular/core").Signal<readonly UiMenuItem[]>;
57
+ open(trigger: HTMLElement): void;
58
+ close(): void;
59
+ protected onToggle(event: Event): void;
60
+ protected onKeydown(event: KeyboardEvent): void;
61
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiMenu, never>;
62
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiMenu, "ui-menu", never, {
63
+ "label": {
64
+ "alias": "label";
65
+ "required": true;
66
+ "isSignal": true;
67
+ };
68
+ "sheet": {
69
+ "alias": "sheet";
70
+ "required": false;
71
+ "isSignal": true;
72
+ };
73
+ "heading": {
74
+ "alias": "heading";
75
+ "required": false;
76
+ "isSignal": true;
77
+ };
78
+ "width": {
79
+ "alias": "width";
80
+ "required": false;
81
+ "isSignal": true;
82
+ };
83
+ }, {}, ["items"], ["*"], true, never>;
50
84
  }
51
85
  /**
52
- * Opens a `ui-menu` from a trigger element and wires `aria-haspopup`, `aria-expanded` and
53
- * `aria-controls` on it.
86
+ * Opens a `ui-menu` from a trigger element and wires its ARIA attributes.
54
87
  *
55
88
  * @example
56
89
  * <button ui-button size="icon" aria-label="More" [uiMenuTrigger]="menu">...</button>
57
90
  */
58
- declare class UiMenuTrigger {
59
- #private;
60
- readonly uiMenuTrigger: _angular_core.InputSignal<UiMenu>;
61
- protected toggle(): void;
62
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<UiMenuTrigger, never>;
63
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<UiMenuTrigger, "[uiMenuTrigger]", never, { "uiMenuTrigger": { "alias": "uiMenuTrigger"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
64
- }
65
-
66
- export { UiMenu, UiMenuItem, UiMenuTrigger };
91
+ export declare class UiMenuTrigger {
92
+ #private;
93
+ readonly uiMenuTrigger: import("@angular/core").InputSignal<UiMenu>;
94
+ protected toggle(): void;
95
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiMenuTrigger, never>;
96
+ static ɵdir: i0.ɵɵDirectiveDeclaration<UiMenuTrigger, "[uiMenuTrigger]", never, {
97
+ "uiMenuTrigger": {
98
+ "alias": "uiMenuTrigger";
99
+ "required": true;
100
+ "isSignal": true;
101
+ };
102
+ }, {}, never, never, true, never>;
103
+ }
@@ -1,30 +1,52 @@
1
- import * as _angular_core from '@angular/core';
2
-
3
- /** Track thicknesses. `MeterSize` is derived from this tuple. */
4
- declare const METER_SIZES: readonly ["md", "sm"];
1
+ import * as i0 from "@angular/core";
2
+ /** Track thicknesses. */
3
+ export declare const METER_SIZES: readonly ["md", "sm"];
5
4
  type MeterSize = (typeof METER_SIZES)[number];
6
- /** Ramp step used to paint the fill. `MeterTone` is derived from this tuple. */
7
- declare const METER_TONES: readonly [1, 2, 3, 4, 5, 6];
5
+ /** Ramp step used to paint the fill. */
6
+ export declare const METER_TONES: readonly [1, 2, 3, 4, 5, 6];
8
7
  type MeterTone = (typeof METER_TONES)[number];
9
8
  /**
10
- * Proportion of a whole, drawn as a single bar. One bar per category, never a stacked
11
- * strip: without hue to separate segments, length has to do the work alone.
9
+ * Proportion of a whole, drawn as a single bar. One bar per category, never a stacked strip.
12
10
  *
13
11
  * @example
14
12
  * <ui-meter [value]="0.463" label="Funds" valueText="46.3% - 128,656.00 EUR" [tone]="1" />
15
13
  */
16
- declare class UiMeter {
17
- readonly value: _angular_core.InputSignal<number>;
18
- readonly label: _angular_core.InputSignal<string>;
19
- readonly valueText: _angular_core.InputSignal<string>;
20
- readonly tone: _angular_core.InputSignal<2 | 1 | 3 | 4 | 5 | 6>;
21
- readonly size: _angular_core.InputSignal<"md" | "sm">;
22
- protected readonly trackClasses: _angular_core.Signal<string>;
23
- protected readonly percent: _angular_core.Signal<number>;
24
- protected readonly fillClasses: _angular_core.Signal<string>;
25
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<UiMeter, never>;
26
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<UiMeter, "ui-meter", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "valueText": { "alias": "valueText"; "required": true; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
14
+ export declare class UiMeter {
15
+ readonly value: import("@angular/core").InputSignal<number>;
16
+ readonly label: import("@angular/core").InputSignal<string>;
17
+ readonly valueText: import("@angular/core").InputSignal<string>;
18
+ readonly tone: import("@angular/core").InputSignal<2 | 1 | 3 | 4 | 5 | 6>;
19
+ readonly size: import("@angular/core").InputSignal<"md" | "sm">;
20
+ protected readonly trackClasses: import("@angular/core").Signal<string>;
21
+ protected readonly percent: import("@angular/core").Signal<number>;
22
+ protected readonly fillClasses: import("@angular/core").Signal<string>;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiMeter, never>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiMeter, "ui-meter", never, {
25
+ "value": {
26
+ "alias": "value";
27
+ "required": true;
28
+ "isSignal": true;
29
+ };
30
+ "label": {
31
+ "alias": "label";
32
+ "required": true;
33
+ "isSignal": true;
34
+ };
35
+ "valueText": {
36
+ "alias": "valueText";
37
+ "required": true;
38
+ "isSignal": true;
39
+ };
40
+ "tone": {
41
+ "alias": "tone";
42
+ "required": false;
43
+ "isSignal": true;
44
+ };
45
+ "size": {
46
+ "alias": "size";
47
+ "required": false;
48
+ "isSignal": true;
49
+ };
50
+ }, {}, never, never, true, never>;
27
51
  }
28
-
29
- export { METER_SIZES, METER_TONES, UiMeter };
30
- export type { MeterSize, MeterTone };
52
+ export type { MeterSize, MeterTone };