yukit-web 0.5.0 → 0.6.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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "yukit-web",
3
3
  "description": "Angular UI component library for Yurest web applications.",
4
- "version": "0.5.0",
4
+ "version": "0.6.0",
5
5
  "author": {
6
6
  "name": "Yurest Solutions",
7
7
  "email": "develop@yurest.com"
@@ -15,6 +15,10 @@
15
15
  "types": "./types/yukit-web.d.ts",
16
16
  "default": "./fesm2022/yukit-web.mjs"
17
17
  },
18
+ "./chart": {
19
+ "types": "./types/yukit-web-chart.d.ts",
20
+ "default": "./fesm2022/yukit-web-chart.mjs"
21
+ },
18
22
  "./helm/accordion": {
19
23
  "types": "./types/yukit-web-helm-accordion.d.ts",
20
24
  "default": "./fesm2022/yukit-web-helm-accordion.mjs"
@@ -268,12 +272,22 @@
268
272
  "@angular/router": "^21.0.0",
269
273
  "@ng-icons/core": "^32.2.0",
270
274
  "@ng-icons/lucide": "^32.2.0",
271
- "@spartan-ng/brain": "^1.3.4",
275
+ "@spartan-ng/brain": "^1.7.0",
272
276
  "@tanstack/angular-table": "^9.0.0",
277
+ "d3-scale": "^4.0.2",
278
+ "d3-shape": "^3.2.0",
273
279
  "embla-carousel-angular": "^21.0.0",
274
280
  "ngx-scrollbar": "^19.1.5",
275
281
  "rxjs": "^7.8.0"
276
282
  },
283
+ "peerDependenciesMeta": {
284
+ "d3-scale": {
285
+ "optional": true
286
+ },
287
+ "d3-shape": {
288
+ "optional": true
289
+ }
290
+ },
277
291
  "dependencies": {
278
292
  "@tanstack/table-core": "^9.0.0",
279
293
  "class-variance-authority": "^0.7.1",
@@ -1,4 +1,5 @@
1
1
  [data-slot='accordion-trigger'][aria-expanded='true'] ng-icon.group-aria-expanded\/accordion-trigger\:hidden,
2
- [data-slot='accordion-trigger'][aria-expanded='false'] ng-icon.group-aria-\[expanded\=false\]\/accordion-trigger\:hidden {
2
+ [data-slot='accordion-trigger'][aria-expanded='false']
3
+ ng-icon.group-aria-\[expanded\=false\]\/accordion-trigger\:hidden {
3
4
  display: none;
4
5
  }
@@ -323,6 +323,16 @@
323
323
 
324
324
  --black: var(--neutrals-dark);
325
325
  --black-foreground: var(--neutrals-on-fill);
326
+
327
+ /** || Chart series: 3:1 against the page and surface backgrounds || */
328
+ --chart-1: var(--primary-6);
329
+ --chart-2: var(--blue-4);
330
+ --chart-3: var(--teal-4);
331
+ --chart-4: var(--yellow-5);
332
+ --chart-5: var(--violet-4);
333
+ --chart-6: var(--pink-4);
334
+ --chart-7: var(--secondary-6);
335
+ --chart-8: var(--green-4);
326
336
  }
327
337
 
328
338
  .dark {
@@ -512,6 +522,16 @@
512
522
  --teal-border-light: var(--teal-5);
513
523
  --teal-text: var(--teal-2);
514
524
  --teal-text-strong: var(--teal-1);
525
+
526
+ /** || Chart series || */
527
+ --chart-1: var(--primary-4);
528
+ --chart-2: var(--blue-3);
529
+ --chart-3: var(--teal-3);
530
+ --chart-4: var(--yellow-3);
531
+ --chart-5: var(--violet-3);
532
+ --chart-6: var(--pink-3);
533
+ --chart-7: var(--secondary-5);
534
+ --chart-8: var(--green-3);
515
535
  }
516
536
 
517
537
  @theme inline {
@@ -526,4 +546,7 @@
526
546
  --color-additional-foreground: var(--additional-foreground);
527
547
  --color-ink: var(--black);
528
548
  --color-ink-foreground: var(--black-foreground);
549
+ --color-chart-6: var(--chart-6);
550
+ --color-chart-7: var(--chart-7);
551
+ --color-chart-8: var(--chart-8);
529
552
  }
@@ -0,0 +1,219 @@
1
+ import * as yukit_web_chart from 'yukit-web/chart';
2
+ import * as _angular_core from '@angular/core';
3
+
4
+ /** Theme token a series is painted with; `chart-n` resolves to the `--chart-n` custom property of `yukit-web/theme.css`. */
5
+ type YuwChartColorDto = 'chart-1' | 'chart-2' | 'chart-3' | 'chart-4' | 'chart-5' | 'chart-6' | 'chart-7' | 'chart-8';
6
+ /** Every chart token, in palette order. */
7
+ declare const YUW_CHART_COLORS: readonly YuwChartColorDto[];
8
+ /**
9
+ * How one series is shown: its label, already translated by the consumer, and its color token.
10
+ */
11
+ interface YuwChartSeriesDto {
12
+ readonly color: YuwChartColorDto;
13
+ readonly label: string;
14
+ }
15
+ /**
16
+ * Series of a chart keyed by the data field holding their values. The key order is the drawing, stacking, legend
17
+ * and tooltip order.
18
+ */
19
+ type YuwChartConfigDto = Readonly<Record<string, YuwChartSeriesDto>>;
20
+ /** One data row: the category under `categoryKey` and one number per series key. */
21
+ type YuwChartRowDto = Readonly<Record<string, unknown>>;
22
+ /**
23
+ * Chart kind. Bars group their series side by side unless the kind is `-stacked`; `bar-horizontal` lays the categories
24
+ * on the vertical axis. `pie` and `donut` draw one slice per series, its value summed across every row.
25
+ */
26
+ type YuwChartKindDto = 'area' | 'area-stacked' | 'bar' | 'bar-horizontal' | 'bar-horizontal-stacked' | 'bar-stacked' | 'donut' | 'line' | 'pie';
27
+ /** Turns a value into the text shown on axes, tooltips and the accessible table, e.g. a localized currency. */
28
+ type YuwChartValueFormatDto = (value: number) => string;
29
+ /** Turns the value under `categoryKey` into its label, e.g. a localized month name. */
30
+ type YuwChartCategoryFormatDto = (category: unknown) => string;
31
+ /** Color token of the series at `index`, cycling through the palette: builds a config for a dynamic set of series. */
32
+ declare function yuwChartColorAt(index: number): YuwChartColorDto;
33
+
34
+ /** How a mark is painted: a filled shape, a translucent area or a line. */
35
+ type YuwChartMarkPaintDto = 'area' | 'fill' | 'stroke';
36
+ /** A drawn path. `hit` is the position in `YuwChartScene.hits` it belongs to, or `null` when it spans all of them. */
37
+ interface YuwChartMark {
38
+ readonly color: string;
39
+ readonly d: string;
40
+ readonly hit: number | null;
41
+ readonly key: string;
42
+ readonly paint: YuwChartMarkPaintDto;
43
+ }
44
+ /** A dot drawn on a line or area at the active position. */
45
+ interface YuwChartPoint {
46
+ readonly color: string;
47
+ readonly cx: number;
48
+ readonly cy: number;
49
+ readonly key: string;
50
+ }
51
+ interface YuwChartTooltipItem {
52
+ readonly color: string;
53
+ readonly key: string;
54
+ readonly label: string;
55
+ readonly value: string;
56
+ }
57
+ interface YuwChartTooltip {
58
+ readonly items: readonly YuwChartTooltipItem[];
59
+ readonly title: string | null;
60
+ }
61
+ /**
62
+ * One position the pointer and the keyboard can activate: a category of a cartesian chart, a slice of a pie. `d` is
63
+ * the area that reacts to the pointer, `cursor` what highlights it, `anchor` where its tooltip points.
64
+ */
65
+ interface YuwChartHit {
66
+ readonly anchor: {
67
+ readonly x: number;
68
+ readonly y: number;
69
+ };
70
+ readonly cursor: string | null;
71
+ readonly d: string;
72
+ readonly points: readonly YuwChartPoint[];
73
+ readonly tooltip: YuwChartTooltip;
74
+ }
75
+ interface YuwChartTick {
76
+ readonly anchor: 'end' | 'middle' | 'start';
77
+ readonly label: string;
78
+ readonly x: number;
79
+ readonly y: number;
80
+ }
81
+ interface YuwChartTableRow {
82
+ readonly cells: readonly string[];
83
+ readonly header: string | null;
84
+ }
85
+ /** The text alternative: the same numbers as a table, with a corner header only when rows have headers. */
86
+ interface YuwChartTable {
87
+ readonly corner: string | null;
88
+ readonly head: readonly string[];
89
+ readonly rows: readonly YuwChartTableRow[];
90
+ }
91
+ /** Everything a chart kind draws, in pixels of the measured plot. */
92
+ interface YuwChartScene {
93
+ readonly cursorPaint: 'band' | 'line';
94
+ readonly empty: boolean;
95
+ readonly grid: readonly string[];
96
+ readonly hits: readonly YuwChartHit[];
97
+ readonly marks: readonly YuwChartMark[];
98
+ /** Where marks and hit areas are drawn from; anchors, ticks and the grid are absolute. */
99
+ readonly origin: {
100
+ readonly x: number;
101
+ readonly y: number;
102
+ };
103
+ readonly table: YuwChartTable;
104
+ readonly ticks: readonly YuwChartTick[];
105
+ }
106
+
107
+ interface YuwChartSize {
108
+ readonly height: number;
109
+ readonly width: number;
110
+ }
111
+
112
+ /**
113
+ * Chart drawn as SVG from a series `config` and `data` rows, with a tooltip and a legend that read the same config.
114
+ *
115
+ * Every series is a key of `config` naming the row field that holds its values, plus its label (already translated)
116
+ * and a `chart-n` color token, so light and dark mode recolor through the theme with no redraw. `kind` picks the
117
+ * drawing: bars (grouped, stacked, horizontal), lines, areas, or a pie / donut with one slice per series summed across
118
+ * the rows. The chart fills its root element and redraws when it resizes; size it with `class` (default `h-72`).
119
+ *
120
+ * The pointer and the keyboard (focus the plot, then the arrow keys, Home, End and Escape) move a tooltip across the
121
+ * categories or slices, announced politely to screen readers. The same numbers are always available to assistive
122
+ * technology as a visually hidden table, which also renders on the server, where the plot is not drawn.
123
+ *
124
+ * The library hardcodes no locale: `valueFormat` and `categoryFormat` turn values and categories into text.
125
+ *
126
+ * Inputs:
127
+ * - `ariaLabel`: Required accessible name of the chart, e.g. its title. The app supplies and translates it.
128
+ * - `categoryFormat`: Turns the value under `categoryKey` into its label. Cartesian kinds only. Default is `String`.
129
+ * - `categoryKey`: Row field holding each category, e.g. the period. Cartesian kinds only. Default is `undefined`.
130
+ * - `categoryLabel`: Header of the category column in the accessible table, e.g. "Month". Cartesian kinds only.
131
+ * Default is `undefined`.
132
+ * - `config`: Required series, keyed by the row field holding their values (`YuwChartConfigDto`). Its order is the
133
+ * drawing, stacking, legend and tooltip order.
134
+ * - `data`: Required rows (`YuwChartRowDto[]`). A non-numeric value is a gap, never a zero.
135
+ * - `description`: Accessible description, e.g. the period the chart covers. Default is `undefined`.
136
+ * - `emptyText`: Required message shown when there is nothing to draw. The app supplies and translates it.
137
+ * - `kind`: The drawing (`YuwChartKindDto`). Default is `'bar'`.
138
+ * - `legend`: Shows the legend under the plot. Default is `true`.
139
+ * - `loading`: Shows a skeleton instead of the plot and marks the chart busy. Default is `false`.
140
+ * - `valueFormat`: Turns a value into the text of axes, tooltips and the accessible table, e.g. a localized currency.
141
+ * Default is `String`.
142
+ * - `class`: Extra classes merged last onto the root element; set its height here.
143
+ *
144
+ * Usage:
145
+ * ```html
146
+ * <yuw-chart
147
+ * kind="bar-stacked"
148
+ * ariaLabel="Purchases per month"
149
+ * emptyText="No purchases in this period"
150
+ * categoryKey="month"
151
+ * categoryLabel="Month"
152
+ * [config]="config"
153
+ * [data]="rows"
154
+ * [valueFormat]="formatEuros"
155
+ * class="h-80"
156
+ * />
157
+ * ```
158
+ */
159
+ declare class YuwChartComponent {
160
+ private readonly _id;
161
+ private readonly _plot;
162
+ readonly ariaLabel: _angular_core.InputSignal<string>;
163
+ readonly categoryFormat: _angular_core.InputSignal<YuwChartCategoryFormatDto>;
164
+ readonly categoryKey: _angular_core.InputSignal<string | undefined>;
165
+ readonly categoryLabel: _angular_core.InputSignal<string | undefined>;
166
+ readonly config: _angular_core.InputSignal<Readonly<Record<string, yukit_web_chart.YuwChartSeriesDto>>>;
167
+ readonly data: _angular_core.InputSignal<readonly Readonly<Record<string, unknown>>[]>;
168
+ readonly description: _angular_core.InputSignal<string | undefined>;
169
+ readonly emptyText: _angular_core.InputSignal<string>;
170
+ readonly kind: _angular_core.InputSignal<YuwChartKindDto>;
171
+ readonly legend: _angular_core.InputSignalWithTransform<boolean, unknown>;
172
+ readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
173
+ readonly userClass: _angular_core.InputSignal<string>;
174
+ readonly valueFormat: _angular_core.InputSignal<YuwChartValueFormatDto>;
175
+ protected readonly descriptionId: string;
176
+ protected readonly size: _angular_core.Signal<YuwChartSize>;
177
+ protected readonly scene: _angular_core.Signal<YuwChartScene>;
178
+ protected readonly active: _angular_core.WritableSignal<number | null>;
179
+ protected readonly activeHit: _angular_core.Signal<YuwChartHit | null>;
180
+ protected readonly activePoints: _angular_core.Signal<readonly YuwChartPoint[]>;
181
+ protected readonly announcement: _angular_core.Signal<string>;
182
+ protected readonly cursorClass: _angular_core.Signal<string>;
183
+ protected readonly describedBy: _angular_core.Signal<string | null>;
184
+ protected readonly drawable: _angular_core.Signal<boolean>;
185
+ protected readonly interactive: _angular_core.Signal<boolean>;
186
+ protected readonly legendItems: _angular_core.Signal<{
187
+ key: string;
188
+ label: string;
189
+ color: string;
190
+ }[]>;
191
+ protected readonly marks: _angular_core.Signal<{
192
+ d: string;
193
+ key: string;
194
+ class: string;
195
+ style: {
196
+ [x: string]: string;
197
+ };
198
+ }[]>;
199
+ protected readonly origin: _angular_core.Signal<string>;
200
+ protected readonly rootClass: _angular_core.Signal<string>;
201
+ protected readonly showLegend: _angular_core.Signal<boolean>;
202
+ protected readonly tooltip: _angular_core.Signal<{
203
+ left: number;
204
+ top: number;
205
+ class: string;
206
+ items: readonly YuwChartTooltipItem[];
207
+ title: string | null;
208
+ } | null>;
209
+ protected readonly viewBox: _angular_core.Signal<string>;
210
+ protected activate(index: number): void;
211
+ protected clear(): void;
212
+ protected onFocus(event: FocusEvent): void;
213
+ protected onKeydown(event: KeyboardEvent): void;
214
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwChartComponent, never>;
215
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<YuwChartComponent, "yuw-chart", never, { "ariaLabel": { "alias": "ariaLabel"; "required": true; "isSignal": true; }; "categoryFormat": { "alias": "categoryFormat"; "required": false; "isSignal": true; }; "categoryKey": { "alias": "categoryKey"; "required": false; "isSignal": true; }; "categoryLabel": { "alias": "categoryLabel"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": true; "isSignal": true; }; "kind": { "alias": "kind"; "required": false; "isSignal": true; }; "legend": { "alias": "legend"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "valueFormat": { "alias": "valueFormat"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
216
+ }
217
+
218
+ export { YUW_CHART_COLORS, YuwChartComponent, yuwChartColorAt };
219
+ export type { YuwChartCategoryFormatDto, YuwChartColorDto, YuwChartConfigDto, YuwChartKindDto, YuwChartRowDto, YuwChartSeriesDto, YuwChartValueFormatDto };
@@ -3241,6 +3241,140 @@ declare class YuwTabContentDirective {
3241
3241
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<YuwTabContentDirective, "ng-template[yuwTabContent]", never, { "entryId": { "alias": "yuwTabContent"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
3242
3242
  }
3243
3243
 
3244
+ /** A single step in `<yuw-stepper>`, pairing its header text with the id used to match its panel. */
3245
+ interface YuwStepItemDto {
3246
+ id: string;
3247
+ label: string;
3248
+ description?: string;
3249
+ disabled?: boolean;
3250
+ completed?: boolean;
3251
+ }
3252
+ type YuwStepStateDto = 'completed' | 'active' | 'upcoming';
3253
+ /** Context handed to a `yuwStepIndicator` template: `let-state` is implicit, `let-step` and `let-index` are named. */
3254
+ interface YuwStepIndicatorContextDto {
3255
+ $implicit: YuwStepStateDto;
3256
+ step: YuwStepItemDto;
3257
+ index: number;
3258
+ }
3259
+
3260
+ /**
3261
+ * Replaces the content of every step's indicator circle (the number, or the check once completed).
3262
+ * The circle itself keeps its shape and state colors.
3263
+ *
3264
+ * Usage:
3265
+ * ```html
3266
+ * <ng-template yuwStepIndicator let-state let-step="step">
3267
+ * <ng-icon [name]="icons[step.id]" />
3268
+ * </ng-template>
3269
+ * ```
3270
+ */
3271
+ declare class YuwStepIndicatorDirective {
3272
+ readonly templateRef: TemplateRef<YuwStepIndicatorContextDto>;
3273
+ static ngTemplateContextGuard(_dir: YuwStepIndicatorDirective, _ctx: unknown): _ctx is YuwStepIndicatorContextDto;
3274
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwStepIndicatorDirective, never>;
3275
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<YuwStepIndicatorDirective, "ng-template[yuwStepIndicator]", never, {}, {}, never, never, true, never>;
3276
+ }
3277
+
3278
+ /**
3279
+ * Declares the content of a single `<yuw-stepper>` step. Apply it to an `<ng-template>` and pass the
3280
+ * id of the step it belongs to, matching an entry in the `steps` input.
3281
+ *
3282
+ * Inputs:
3283
+ * - `yuwStepPanel`: Required string; id of the step this panel renders for.
3284
+ */
3285
+ declare class YuwStepPanelDirective {
3286
+ readonly templateRef: TemplateRef<unknown>;
3287
+ readonly stepId: _angular_core.InputSignal<string>;
3288
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwStepPanelDirective, never>;
3289
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<YuwStepPanelDirective, "ng-template[yuwStepPanel]", never, { "stepId": { "alias": "yuwStepPanel"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
3290
+ }
3291
+
3292
+ type YuwStepperOrientationDto = 'horizontal' | 'vertical';
3293
+
3294
+ /**
3295
+ * Multi-step flow: a header of numbered steps and the panel of the active one.
3296
+ *
3297
+ * Steps come from the `steps` input; each panel is an `<ng-template yuwStepPanel="<id>">` whose id matches a step.
3298
+ * A horizontal header that does not fit scrolls sideways (touch, trackpad, mouse wheel or drag), its edges fading out.
3299
+ * Only the active panel is rendered, so state that must survive a step change belongs to the parent (a form group).
3300
+ * Navigation buttons are the consumer's: grab the stepper with a template reference and call `next()` / `previous()`,
3301
+ * disabling them with `hasNext()` / `hasPrevious()`.
3302
+ *
3303
+ * Inputs / Models:
3304
+ * - `steps`: The step definitions (`YuwStepItemDto[]`), in order.
3305
+ * - `activeStep`: Two-way id of the current step.
3306
+ * - `linear`: A step ahead can only be reached once every step before it has `completed: true`. Default is `false`.
3307
+ * - `orientation`: `'horizontal'` header above the panel, or `'vertical'` header beside it. Default is `'horizontal'`.
3308
+ * - `iconOnly`: Hides each step's label and description visually; they stay announced to screen readers and the label
3309
+ * shows as a tooltip. Pair it with a `yuwStepIndicator` template so the circles carry an icon. Default is `false`.
3310
+ * - `color`: Accent of the active and completed steps (any `YuwColorDto`). Default is `'primary'`.
3311
+ * - `class`: Extra classes merged last onto the root element.
3312
+ *
3313
+ * Content:
3314
+ * - `<ng-template yuwStepIndicator let-state let-step="step" let-index="index">` replaces the number/check inside
3315
+ * every indicator.
3316
+ *
3317
+ * Usage:
3318
+ * ```html
3319
+ * <yuw-stepper #stepper [steps]="steps" [(activeStep)]="current" linear>
3320
+ * <ng-template yuwStepPanel="account">…</ng-template>
3321
+ * <ng-template yuwStepPanel="billing">…</ng-template>
3322
+ * </yuw-stepper>
3323
+ * <yuw-button [disabled]="!stepper.hasNext()" (clicked)="stepper.next()">{{ 'next' | translate }}</yuw-button>
3324
+ * ```
3325
+ */
3326
+ declare class YuwStepperComponent {
3327
+ private readonly _idPrefix;
3328
+ private readonly _window;
3329
+ private readonly _list;
3330
+ protected readonly indicator: _angular_core.Signal<YuwStepIndicatorDirective | undefined>;
3331
+ protected readonly panels: _angular_core.Signal<readonly YuwStepPanelDirective[]>;
3332
+ readonly activeStep: _angular_core.ModelSignal<string>;
3333
+ readonly color: _angular_core.InputSignal<YuwColorDto>;
3334
+ readonly iconOnly: _angular_core.InputSignalWithTransform<boolean, unknown>;
3335
+ readonly linear: _angular_core.InputSignalWithTransform<boolean, unknown>;
3336
+ readonly orientation: _angular_core.InputSignal<YuwStepperOrientationDto>;
3337
+ readonly steps: _angular_core.InputSignal<YuwStepItemDto[]>;
3338
+ readonly userClass: _angular_core.InputSignal<string>;
3339
+ protected readonly _activePanel: _angular_core.Signal<_angular_core.TemplateRef<unknown> | undefined>;
3340
+ protected readonly _activeTriggerId: _angular_core.Signal<string>;
3341
+ readonly activeIndex: _angular_core.Signal<number>;
3342
+ protected readonly _items: _angular_core.Signal<{
3343
+ triggerId: string;
3344
+ ariaCurrent: string | null;
3345
+ triggerClass: string;
3346
+ indicatorClass: string;
3347
+ separatorClass: string;
3348
+ step: YuwStepItemDto;
3349
+ index: number;
3350
+ state: yukit_web.YuwStepStateDto;
3351
+ reachable: boolean;
3352
+ context: yukit_web.YuwStepIndicatorContextDto;
3353
+ }[]>;
3354
+ protected readonly _labelClass: _angular_core.Signal<"sr-only" | "flex flex-col">;
3355
+ protected readonly _listClass: _angular_core.Signal<string>;
3356
+ protected readonly _rootClass: _angular_core.Signal<string>;
3357
+ protected readonly _stepClass: _angular_core.Signal<string>;
3358
+ protected readonly _tooltipPosition: _angular_core.Signal<YuwTooltipPositionDto>;
3359
+ readonly hasNext: _angular_core.Signal<boolean>;
3360
+ readonly hasPrevious: _angular_core.Signal<boolean>;
3361
+ readonly isLast: _angular_core.Signal<boolean>;
3362
+ constructor();
3363
+ next(): void;
3364
+ previous(): void;
3365
+ protected select(id: string): void;
3366
+ private _goTo;
3367
+ /** Closest reachable step in `direction`, skipping disabled ones. */
3368
+ private _neighbour;
3369
+ /**
3370
+ * Centers the active step inside a horizontally overflowing header by scrolling the list itself, never
3371
+ * `scrollIntoView`, which would also scroll the page to a stepper below the fold on first render.
3372
+ */
3373
+ private _revealActive;
3374
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuwStepperComponent, never>;
3375
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<YuwStepperComponent, "yuw-stepper", never, { "activeStep": { "alias": "activeStep"; "required": true; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "iconOnly": { "alias": "iconOnly"; "required": false; "isSignal": true; }; "linear": { "alias": "linear"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "steps": { "alias": "steps"; "required": true; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, { "activeStep": "activeStepChange"; }, ["indicator", "panels"], never, true, never>;
3376
+ }
3377
+
3244
3378
  /**
3245
3379
  * Container directive for a single file attachment card.
3246
3380
  *
@@ -4865,9 +4999,10 @@ declare class YuwsFilterContentDirective {
4865
4999
 
4866
5000
  /**
4867
5001
  * Toolbar of a list page: filters on the leading edge, search, export and column visibility on the
4868
- * trailing one, and projected content after them. The trailing actions keep the room they need (the
4869
- * search grows into it when expanded) and the filter row takes the rest, scrolling its active
4870
- * filters horizontally with faded edges when they do not fit. Below `md` the active filters move to a
5002
+ * trailing one, and projected content after them. The filter row never shrinks below its star and
5003
+ * add button; the trailing actions take the room they need above that (the search grows into it when
5004
+ * expanded, and shrinks back to fit when that room runs out) and the filter row takes the rest,
5005
+ * scrolling its active filters horizontally with faded edges when they do not fit. Below `md` the active filters move to a
4871
5006
  * full-width second line, still a single scrolling row, and the trailing actions stay on the first.
4872
5007
  *
4873
5008
  * Each control renders only when its input is set: `filterGroups`, `searchPlaceholder`,
@@ -4959,5 +5094,5 @@ declare class YuwsTitleSkeletonDirective {
4959
5094
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<YuwsTitleSkeletonDirective, "yuws-page-header[yuwsTitleSkeleton]", never, { "loading": { "alias": "yuwsTitleSkeleton"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
4960
5095
  }
4961
5096
 
4962
- export { DATATABLE_ALIGN_CLASS, DATATABLE_LAYOUT_CLASS, DATATABLE_WRAP_CONTENT_CLASS, YUWS_NO_DATA_PLACEHOLDER, YUW_DATATABLE_FEATURES, YUW_DATATABLE_WRAP_MIN_WIDTH, YUW_PASSWORD_REVEAL_STATES, YUW_SIDEBAR_RAIL_ICON_SIZE, YUW_SIDEBAR_RAIL_PADDING, YUW_SIDEBAR_RAIL_WIDTH, YuwAccordion, YuwAccordionContentComponent, YuwAccordionImports, YuwAccordionItem, YuwAccordionTriggerComponent, YuwActionsCellComponent, YuwAlertActionDirective, YuwAlertComponent, YuwAlertDescriptionDirective, YuwAlertDialogComponent, YuwAlertDialogMediaDirective, YuwAlertDialogTriggerDirective, YuwAlertImports, YuwAlertTitleDirective, YuwAttachmentActionDirective, YuwAttachmentActionsDirective, YuwAttachmentContentDirective, YuwAttachmentDescriptionDirective, YuwAttachmentDirective, YuwAttachmentGroupDirective, YuwAttachmentMediaDirective, YuwAttachmentTitleDirective, YuwAttachmentTriggerDirective, YuwAvatarComponent, YuwBadgeComponent, YuwBreadcrumbComponent, YuwBreadcrumbTrailService, YuwButtonComponent, YuwButtonGroupComponent, YuwButtonGroupContentDirective, YuwCaptionDirective, YuwCardActionDirective, YuwCardContentDirective, YuwCardDescriptionDirective, YuwCardDirective, YuwCardFooterDirective, YuwCardHeaderDirective, YuwCardImports, YuwCardTitleDirective, YuwCheckboxComponent, YuwClassDirective, YuwComboboxComponent, YuwComboboxItemDirective, YuwComboboxTriggerButtonDirective, YuwComboboxTriggerDirective, YuwCommandComponent, YuwCommandDialogComponent, YuwContextMenuCheckboxDirective, YuwContextMenuCheckboxIndicatorComponent, YuwContextMenuDirective, YuwContextMenuGroupDirective, YuwContextMenuImports, YuwContextMenuItemDirective, YuwContextMenuLabelDirective, YuwContextMenuRadioDirective, YuwContextMenuRadioIndicatorComponent, YuwContextMenuSeparatorDirective, YuwContextMenuShortcutDirective, YuwContextMenuSubDirective, YuwContextMenuSubIndicatorComponent, YuwContextMenuSubTriggerDirective, YuwContextMenuTriggerDirective, YuwDatatableComponent, YuwDatatablePaginationDirective, YuwDatatableRowSelect, YuwDatepickerComponent, YuwDialogCloseDirective, YuwDialogComponent, YuwDialogFooterDirective, YuwDialogImports, YuwDialogTriggerDirective, YuwEmptyContentDirective, YuwEmptyDescriptionDirective, YuwEmptyDirective, YuwEmptyHeaderDirective, YuwEmptyImports, YuwEmptyMediaDirective, YuwEmptyTitleDirective, YuwFieldBase, YuwInputAddonImports, YuwInputComponent, YuwInputFileComponent, YuwInputOtpComponent, YuwItemActionsDirective, YuwItemContentDirective, YuwItemDescriptionDirective, YuwItemDirective, YuwItemFooterDirective, YuwItemGroupDirective, YuwItemHeaderDirective, YuwItemImports, YuwItemMediaDirective, YuwItemSeparatorDirective, YuwItemTitleDirective, YuwLabel, YuwLeftAddonDirective, YuwMouseScrollXDirective, YuwMouseScrollYDirective, YuwPaginationComponent, YuwPasswordInputComponent, YuwPopoverComponent, YuwPopoverTriggerDirective, YuwRadioGroupComponent, YuwRightAddonDirective, YuwSearchInputComponent, YuwSheetCloseDirective, YuwSheetComponent, YuwSheetFooterDirective, YuwSheetHeaderDirective, YuwSheetImports, YuwSheetTriggerDirective, YuwSidebarComponent, YuwSidebarContentDirective, YuwSidebarContentExtraDirective, YuwSidebarFooterDirective, YuwSidebarFooterExtraDirective, YuwSidebarGroupContentDirective, YuwSidebarGroupDirective, YuwSidebarGroupLabelDirective, YuwSidebarHeaderDirective, YuwSidebarInsetDirective, YuwSidebarMenuAvatarButtonDirective, YuwSidebarMenuBadgeDirective, YuwSidebarMenuButtonDirective, YuwSidebarMenuDirective, YuwSidebarMenuItemDirective, YuwSidebarMenuSubButtonDirective, YuwSidebarMenuSubDirective, YuwSidebarMenuSubItemDirective, YuwSidebarRailDirective, YuwSidebarRailService, YuwSidebarSeparatorDirective, YuwSidebarSubmenuService, YuwSidebarTriggerComponent, YuwSidebarWrapperDirective, YuwSkeletonDirective, YuwSpinnerComponent, YuwSwitchComponent, YuwTBodyDirective, YuwTFootDirective, YuwTHeadDirective, YuwTabContentDirective, YuwTabPanelDirective, YuwTableContainerDirective, YuwTableDirective, YuwTableImports, YuwTabsComponent, YuwTdDirective, YuwTextFieldBase, YuwTextareaComponent, YuwThDirective, YuwToasterComponent, YuwTooltipDirective, YuwTrDirective, YuwValueAccessorBase, YuwsActiveStatusCellComponent, YuwsAdvanceOnEnterDirective, YuwsAvatarNameCellComponent, YuwsCardGridComponent, YuwsCardGridItemComponent, YuwsClampedTextCellComponent, YuwsConfirmDialogComponent, YuwsCopyButtonComponent, YuwsFilterComboboxComponent, YuwsFilterContentDirective, YuwsFlagCellComponent, YuwsFormSheetComponent, YuwsIconActionCellComponent, YuwsImageCellComponent, YuwsImageFieldComponent, YuwsImageUploadComponent, YuwsLinkCellComponent, YuwsListPaginationComponent, YuwsListTableComponent, YuwsListToolbarComponent, YuwsPageHeaderComponent, YuwsPageSizeComponent, YuwsStatusToggleCellComponent, YuwsTitleSkeletonDirective, buildInputOtpGroups, buildYuwActionsColumn, buildYuwsActiveStatusColumn, buildYuwsDateTimeColumn, buildYuwsIconActionColumn, buildYuwsOptionalTextColumn, buildYuwsStatusToggleColumn, cn, createPagedList, createYuwsSheetEditor, datatableCellVariants, datatableContainerVariants, datatableHeadVariants, datatableHeaderCellVariants, datatableRowVariants, getPaginationRange, provideValueAccessor, totalInputOtpLength, yuwCommandDefaultFilter, yuwsInitialsOf, yuwsMediaQuerySignal, yuwsPendingRowClass, yuwsReadFileAsDataUrl };
4963
- export type { YuwAlertDialogSizeDto, YuwAlertVariantDto, YuwAvatarGroupItemDto, YuwAvatarSizeDto, YuwBreadcrumbCrumb, YuwBreadcrumbItemDto, YuwBreadcrumbRouteData, YuwButtonGroupClickDto, YuwButtonGroupItemDto, YuwColorDto, YuwComboboxItemContext, YuwComboboxOptionDto, YuwComboboxTriggerContext, YuwComboboxValue, YuwCommandGroupDto, YuwCommandItemDto, YuwDatatableAlign, YuwDatatableAppearanceDto, YuwDatatableColumnDef, YuwDatatableColumnMeta, YuwDatatableFeatures, YuwDatatableRowClass, YuwDatepickerModeDto, YuwDatepickerValue, YuwFieldSizeDto, YuwInputFileVariantDto, YuwInputModeDto, YuwInputOtpGroupDto, YuwInputOtpModeDto, YuwInputTypeDto, YuwPageQuery, YuwPageRange, YuwPageSort, YuwPagedList, YuwPagedListOptions, YuwPaginationRangeItem, YuwPaginationSizeDto, YuwPasswordRevealStateDto, YuwPopoverAlignDto, YuwRadioOptionDto, YuwSearchInputCollapseFromDto, YuwSheetScrollStrategyDto, YuwSheetSideDto, YuwSidebarAvatarDto, YuwSidebarCollapsibleDto, YuwSidebarContentDto, YuwSidebarGroupDto, YuwSidebarItemClickDto, YuwSidebarItemDto, YuwSidebarSideDto, YuwSidebarSubItemDto, YuwSidebarVariantDto, YuwSwitchSizeDto, YuwTabItemDto, YuwTabsActivationModeDto, YuwTabsOrientationDto, YuwTabsVariantDto, YuwTextFieldContract, YuwToasterPositionDto, YuwToasterThemeDto, YuwTooltipPositionDto, YuwsAvatarNameCellSize, YuwsConfirmationState, YuwsFilterContentContext, YuwsFilterGroupDto, YuwsFilterGroupMode, YuwsFilterOptionDto, YuwsFilterSelection, YuwsFilterSetDto, YuwsFilterSetLabels, YuwsFilterSetRenameDto, YuwsFilterSetSaveDto, YuwsFilterValue, YuwsFormSheetLabels, YuwsIconActionColumn, YuwsImageCellSize, YuwsListPaginationLabels, YuwsListToolbarColumnsLabels, YuwsListToolbarFilterLabels, YuwsListToolbarLabels, YuwsListToolbarSearchLabels, YuwsListToolbarViewModeIcons, YuwsListToolbarViewModeLabels, YuwsPageSizeLabels, YuwsSheetEditor, YuwsStateLabels, YuwsStatusToggleColumn, YuwsTextColumnOptions, YuwsViewMode };
5097
+ export { DATATABLE_ALIGN_CLASS, DATATABLE_LAYOUT_CLASS, DATATABLE_WRAP_CONTENT_CLASS, YUWS_NO_DATA_PLACEHOLDER, YUW_DATATABLE_FEATURES, YUW_DATATABLE_WRAP_MIN_WIDTH, YUW_PASSWORD_REVEAL_STATES, YUW_SIDEBAR_RAIL_ICON_SIZE, YUW_SIDEBAR_RAIL_PADDING, YUW_SIDEBAR_RAIL_WIDTH, YuwAccordion, YuwAccordionContentComponent, YuwAccordionImports, YuwAccordionItem, YuwAccordionTriggerComponent, YuwActionsCellComponent, YuwAlertActionDirective, YuwAlertComponent, YuwAlertDescriptionDirective, YuwAlertDialogComponent, YuwAlertDialogMediaDirective, YuwAlertDialogTriggerDirective, YuwAlertImports, YuwAlertTitleDirective, YuwAttachmentActionDirective, YuwAttachmentActionsDirective, YuwAttachmentContentDirective, YuwAttachmentDescriptionDirective, YuwAttachmentDirective, YuwAttachmentGroupDirective, YuwAttachmentMediaDirective, YuwAttachmentTitleDirective, YuwAttachmentTriggerDirective, YuwAvatarComponent, YuwBadgeComponent, YuwBreadcrumbComponent, YuwBreadcrumbTrailService, YuwButtonComponent, YuwButtonGroupComponent, YuwButtonGroupContentDirective, YuwCaptionDirective, YuwCardActionDirective, YuwCardContentDirective, YuwCardDescriptionDirective, YuwCardDirective, YuwCardFooterDirective, YuwCardHeaderDirective, YuwCardImports, YuwCardTitleDirective, YuwCheckboxComponent, YuwClassDirective, YuwComboboxComponent, YuwComboboxItemDirective, YuwComboboxTriggerButtonDirective, YuwComboboxTriggerDirective, YuwCommandComponent, YuwCommandDialogComponent, YuwContextMenuCheckboxDirective, YuwContextMenuCheckboxIndicatorComponent, YuwContextMenuDirective, YuwContextMenuGroupDirective, YuwContextMenuImports, YuwContextMenuItemDirective, YuwContextMenuLabelDirective, YuwContextMenuRadioDirective, YuwContextMenuRadioIndicatorComponent, YuwContextMenuSeparatorDirective, YuwContextMenuShortcutDirective, YuwContextMenuSubDirective, YuwContextMenuSubIndicatorComponent, YuwContextMenuSubTriggerDirective, YuwContextMenuTriggerDirective, YuwDatatableComponent, YuwDatatablePaginationDirective, YuwDatatableRowSelect, YuwDatepickerComponent, YuwDialogCloseDirective, YuwDialogComponent, YuwDialogFooterDirective, YuwDialogImports, YuwDialogTriggerDirective, YuwEmptyContentDirective, YuwEmptyDescriptionDirective, YuwEmptyDirective, YuwEmptyHeaderDirective, YuwEmptyImports, YuwEmptyMediaDirective, YuwEmptyTitleDirective, YuwFieldBase, YuwInputAddonImports, YuwInputComponent, YuwInputFileComponent, YuwInputOtpComponent, YuwItemActionsDirective, YuwItemContentDirective, YuwItemDescriptionDirective, YuwItemDirective, YuwItemFooterDirective, YuwItemGroupDirective, YuwItemHeaderDirective, YuwItemImports, YuwItemMediaDirective, YuwItemSeparatorDirective, YuwItemTitleDirective, YuwLabel, YuwLeftAddonDirective, YuwMouseScrollXDirective, YuwMouseScrollYDirective, YuwPaginationComponent, YuwPasswordInputComponent, YuwPopoverComponent, YuwPopoverTriggerDirective, YuwRadioGroupComponent, YuwRightAddonDirective, YuwSearchInputComponent, YuwSheetCloseDirective, YuwSheetComponent, YuwSheetFooterDirective, YuwSheetHeaderDirective, YuwSheetImports, YuwSheetTriggerDirective, YuwSidebarComponent, YuwSidebarContentDirective, YuwSidebarContentExtraDirective, YuwSidebarFooterDirective, YuwSidebarFooterExtraDirective, YuwSidebarGroupContentDirective, YuwSidebarGroupDirective, YuwSidebarGroupLabelDirective, YuwSidebarHeaderDirective, YuwSidebarInsetDirective, YuwSidebarMenuAvatarButtonDirective, YuwSidebarMenuBadgeDirective, YuwSidebarMenuButtonDirective, YuwSidebarMenuDirective, YuwSidebarMenuItemDirective, YuwSidebarMenuSubButtonDirective, YuwSidebarMenuSubDirective, YuwSidebarMenuSubItemDirective, YuwSidebarRailDirective, YuwSidebarRailService, YuwSidebarSeparatorDirective, YuwSidebarSubmenuService, YuwSidebarTriggerComponent, YuwSidebarWrapperDirective, YuwSkeletonDirective, YuwSpinnerComponent, YuwStepIndicatorDirective, YuwStepPanelDirective, YuwStepperComponent, YuwSwitchComponent, YuwTBodyDirective, YuwTFootDirective, YuwTHeadDirective, YuwTabContentDirective, YuwTabPanelDirective, YuwTableContainerDirective, YuwTableDirective, YuwTableImports, YuwTabsComponent, YuwTdDirective, YuwTextFieldBase, YuwTextareaComponent, YuwThDirective, YuwToasterComponent, YuwTooltipDirective, YuwTrDirective, YuwValueAccessorBase, YuwsActiveStatusCellComponent, YuwsAdvanceOnEnterDirective, YuwsAvatarNameCellComponent, YuwsCardGridComponent, YuwsCardGridItemComponent, YuwsClampedTextCellComponent, YuwsConfirmDialogComponent, YuwsCopyButtonComponent, YuwsFilterComboboxComponent, YuwsFilterContentDirective, YuwsFlagCellComponent, YuwsFormSheetComponent, YuwsIconActionCellComponent, YuwsImageCellComponent, YuwsImageFieldComponent, YuwsImageUploadComponent, YuwsLinkCellComponent, YuwsListPaginationComponent, YuwsListTableComponent, YuwsListToolbarComponent, YuwsPageHeaderComponent, YuwsPageSizeComponent, YuwsStatusToggleCellComponent, YuwsTitleSkeletonDirective, buildInputOtpGroups, buildYuwActionsColumn, buildYuwsActiveStatusColumn, buildYuwsDateTimeColumn, buildYuwsIconActionColumn, buildYuwsOptionalTextColumn, buildYuwsStatusToggleColumn, cn, createPagedList, createYuwsSheetEditor, datatableCellVariants, datatableContainerVariants, datatableHeadVariants, datatableHeaderCellVariants, datatableRowVariants, getPaginationRange, provideValueAccessor, totalInputOtpLength, yuwCommandDefaultFilter, yuwsInitialsOf, yuwsMediaQuerySignal, yuwsPendingRowClass, yuwsReadFileAsDataUrl };
5098
+ export type { YuwAlertDialogSizeDto, YuwAlertVariantDto, YuwAvatarGroupItemDto, YuwAvatarSizeDto, YuwBreadcrumbCrumb, YuwBreadcrumbItemDto, YuwBreadcrumbRouteData, YuwButtonGroupClickDto, YuwButtonGroupItemDto, YuwColorDto, YuwComboboxItemContext, YuwComboboxOptionDto, YuwComboboxTriggerContext, YuwComboboxValue, YuwCommandGroupDto, YuwCommandItemDto, YuwDatatableAlign, YuwDatatableAppearanceDto, YuwDatatableColumnDef, YuwDatatableColumnMeta, YuwDatatableFeatures, YuwDatatableRowClass, YuwDatepickerModeDto, YuwDatepickerValue, YuwFieldSizeDto, YuwInputFileVariantDto, YuwInputModeDto, YuwInputOtpGroupDto, YuwInputOtpModeDto, YuwInputTypeDto, YuwPageQuery, YuwPageRange, YuwPageSort, YuwPagedList, YuwPagedListOptions, YuwPaginationRangeItem, YuwPaginationSizeDto, YuwPasswordRevealStateDto, YuwPopoverAlignDto, YuwRadioOptionDto, YuwSearchInputCollapseFromDto, YuwSheetScrollStrategyDto, YuwSheetSideDto, YuwSidebarAvatarDto, YuwSidebarCollapsibleDto, YuwSidebarContentDto, YuwSidebarGroupDto, YuwSidebarItemClickDto, YuwSidebarItemDto, YuwSidebarSideDto, YuwSidebarSubItemDto, YuwSidebarVariantDto, YuwStepIndicatorContextDto, YuwStepItemDto, YuwStepStateDto, YuwStepperOrientationDto, YuwSwitchSizeDto, YuwTabItemDto, YuwTabsActivationModeDto, YuwTabsOrientationDto, YuwTabsVariantDto, YuwTextFieldContract, YuwToasterPositionDto, YuwToasterThemeDto, YuwTooltipPositionDto, YuwsAvatarNameCellSize, YuwsConfirmationState, YuwsFilterContentContext, YuwsFilterGroupDto, YuwsFilterGroupMode, YuwsFilterOptionDto, YuwsFilterSelection, YuwsFilterSetDto, YuwsFilterSetLabels, YuwsFilterSetRenameDto, YuwsFilterSetSaveDto, YuwsFilterValue, YuwsFormSheetLabels, YuwsIconActionColumn, YuwsImageCellSize, YuwsListPaginationLabels, YuwsListToolbarColumnsLabels, YuwsListToolbarFilterLabels, YuwsListToolbarLabels, YuwsListToolbarSearchLabels, YuwsListToolbarViewModeIcons, YuwsListToolbarViewModeLabels, YuwsPageSizeLabels, YuwsSheetEditor, YuwsStateLabels, YuwsStatusToggleColumn, YuwsTextColumnOptions, YuwsViewMode };