@forgeroute/ui 0.4.31 → 0.4.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forgeroute/ui",
3
- "version": "0.4.31",
3
+ "version": "0.4.33",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=22.0.0",
6
6
  "@angular/core": ">=22.0.0",
@@ -1999,7 +1999,7 @@ export declare class SidePanelComponent implements OnDestroy {
1999
1999
  readonly cancelLabel: import("@angular/core").InputSignal<string>;
2000
2000
  /** Right-aligned primary action button label. Empty string = hidden. */
2001
2001
  readonly primaryLabel: import("@angular/core").InputSignal<string>;
2002
- readonly primaryVariant: import("@angular/core").InputSignal<"primary" | "danger" | "warning">;
2002
+ readonly primaryVariant: import("@angular/core").InputSignal<"danger" | "warning" | "primary">;
2003
2003
  readonly primaryLoading: import("@angular/core").InputSignal<boolean>;
2004
2004
  readonly primaryDisabled: import("@angular/core").InputSignal<boolean>;
2005
2005
  /** `data-testid` of the Cancel button; none when empty (default). */
@@ -2741,7 +2741,7 @@ export declare class CheckboxComponent implements ControlValueAccessor, Validato
2741
2741
  * clicking it still toggles the box - e.g. a product name that is both the heading of its card and the label of its checkbox.
2742
2742
  * Default null: plain label text, exactly as before. Single mode only.
2743
2743
  */
2744
- readonly headingLevel: import("@angular/core").InputSignal<1 | 2 | 3 | 4 | 5 | 6 | null>;
2744
+ readonly headingLevel: import("@angular/core").InputSignal<1 | 2 | 6 | 3 | 5 | 4 | null>;
2745
2745
  readonly indeterminate: import("@angular/core").InputSignal<boolean>;
2746
2746
  readonly checked: import("@angular/core").ModelSignal<boolean>;
2747
2747
  /**
@@ -3139,7 +3139,7 @@ export declare class StepperComponent {
3139
3139
  * its circle, one continuous line behind the circles that fills as steps complete; a complete step shows a check, the current step an
3140
3140
  * accent ring with a dot, an upcoming step an empty circle (no numbers). Circles are 40px (32px with `size="sm"`).
3141
3141
  */
3142
- readonly labelPosition: import("@angular/core").InputSignal<"beside" | "below">;
3142
+ readonly labelPosition: import("@angular/core").InputSignal<"below" | "beside">;
3143
3143
  /** Viewport width in px below which a horizontal stepper is drawn vertical (labels beside the circles), e.g. `640`. null (default) = never. */
3144
3144
  readonly stackBelow: import("@angular/core").InputSignal<number | null>;
3145
3145
  /** CSS length (e.g. `10.5rem`): horizontal only - the list gets `min-width: calc(<step count> * <value>)`. Empty (default) = no minimum. */
@@ -3766,7 +3766,7 @@ export declare class ButtonComponent {
3766
3766
  * `ghost-start`: a ghost button for list / section toggles - a full-width row with its content aligned to the start, transparent
3767
3767
  * background, hover tint and the normal focus ring. Pair it with `ariaExpanded` / `ariaPressed`; the label may contain a heading element.
3768
3768
  */
3769
- readonly variant: import("@angular/core").InputSignal<"primary" | "secondary" | "danger" | "warning" | "link" | "ghost" | "ghost-start" | "tab" | "icon" | "icon-danger">;
3769
+ readonly variant: import("@angular/core").InputSignal<"link" | "danger" | "icon" | "warning" | "primary" | "secondary" | "ghost" | "ghost-start" | "tab" | "icon-danger">;
3770
3770
  /** Renders an anchor to this route instead of a button (use with `variant="link"` for an inline text link). `['/settings']` or `'/settings'`. While `disabled` or `loading` it renders a non-clickable `<span role="link" aria-disabled>` with no href (like `href`). */
3771
3771
  readonly routerLink: import("@angular/core").InputSignal<string | readonly unknown[] | null>;
3772
3772
  /** Query params of the `routerLink` (e.g. `{ section: 'deal-defaults' }`). */
@@ -3941,10 +3941,31 @@ export declare class ButtonComponent {
3941
3941
  };
3942
3942
  }, {}, never, ["*"], true, never>;
3943
3943
  }
3944
+ /** A small icon button shown inside a toggle badge, after the label (e.g. Configure, Analytics). */
3945
+ export interface ToggleBadgeAction {
3946
+ /** Emitted by `(action)` when the button is clicked. */
3947
+ id: string;
3948
+ /** Accessible name of the button (also used as the tooltip when `tooltip` is empty). */
3949
+ label: string;
3950
+ /** SVG path data (`d`) of a 24x24 stroked icon. Several shapes can be joined in one string (`M..M..`). */
3951
+ icon: string;
3952
+ /** Text of the hover / focus tooltip. */
3953
+ tooltip?: string;
3954
+ disabled?: boolean;
3955
+ }
3956
+ /**
3957
+ * Pill that toggles on / off. Optional `actions` put small icon buttons INSIDE the pill, after the label and a divider, each with its own
3958
+ * tooltip; the label button and the icon buttons are separate buttons (never nested). Clicking an icon button emits `(action)` with its id and
3959
+ * never `(toggle)`. Content projected into the component (an icon) goes before the label, as before.
3960
+ */
3944
3961
  export declare class ToggleBadgeComponent {
3945
3962
  readonly label: import("@angular/core").InputSignal<string>;
3946
3963
  readonly active: import("@angular/core").InputSignal<boolean>;
3964
+ /** Icon buttons shown inside the pill after the label. Empty (default) = a plain pill, exactly as before. */
3965
+ readonly actions: import("@angular/core").InputSignal<ToggleBadgeAction[]>;
3947
3966
  readonly toggle: import("@angular/core").OutputEmitterRef<void>;
3967
+ /** An icon button was clicked: its `id`. Never emits `toggle`. */
3968
+ readonly action: import("@angular/core").OutputEmitterRef<string>;
3948
3969
  static ɵfac: i0.ɵɵFactoryDeclaration<ToggleBadgeComponent, never>;
3949
3970
  static ɵcmp: i0.ɵɵComponentDeclaration<ToggleBadgeComponent, "ui-toggle-badge", never, {
3950
3971
  "label": {
@@ -3957,8 +3978,14 @@ export declare class ToggleBadgeComponent {
3957
3978
  "required": false;
3958
3979
  "isSignal": true;
3959
3980
  };
3981
+ "actions": {
3982
+ "alias": "actions";
3983
+ "required": false;
3984
+ "isSignal": true;
3985
+ };
3960
3986
  }, {
3961
3987
  "toggle": "toggle";
3988
+ "action": "action";
3962
3989
  }, never, ["*"], true, never>;
3963
3990
  }
3964
3991
  export interface PillTab {
@@ -4207,7 +4234,7 @@ export declare class BulkMessagePanelComponent {
4207
4234
  readonly sending: import("@angular/core").InputSignal<boolean>;
4208
4235
  readonly closed: import("@angular/core").OutputEmitterRef<void>;
4209
4236
  readonly send: import("@angular/core").OutputEmitterRef<BulkMessageSendEvent>;
4210
- readonly channel: import("@angular/core").WritableSignal<"text" | "email">;
4237
+ readonly channel: import("@angular/core").WritableSignal<"email" | "text">;
4211
4238
  private readonly _subject;
4212
4239
  private readonly _body;
4213
4240
  get subject(): string;
@@ -4251,6 +4278,62 @@ export declare class BulkMessagePanelComponent {
4251
4278
  "send": "send";
4252
4279
  }, never, never, true, never>;
4253
4280
  }
4281
+ /**
4282
+ * The grid of source cards ("Follow Up Boss", "kvCORE", "Custom CSV" ...) of the import wizard's first step. Used inside the import window and
4283
+ * on its own (the setup wizard shows it inline so the user picks a source without opening the window first).
4284
+ *
4285
+ * <ui-import-source-grid [sources]="sources" [selected]="picked" ariaLabel="Select your Contact source" (sourceSelect)="picked = $event" />
4286
+ */
4287
+ export declare class ImportSourceGridComponent {
4288
+ readonly sources: import("@angular/core").InputSignal<ImportSource[]>;
4289
+ /** The `value` of the picked source (highlighted). `tile` only: the `card` appearance does not keep a selection. */
4290
+ readonly selected: import("@angular/core").InputSignal<string>;
4291
+ /** `tile`: the compact buttons of the import window. `card`: one `ui-detail-card` per source with its own select button (used on a page). */
4292
+ readonly appearance: import("@angular/core").InputSignal<"card" | "tile">;
4293
+ /** `card`: disables every card's button (for example while the page is saving). */
4294
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
4295
+ /** `card`: the text of each card's button. */
4296
+ readonly actionLabel: import("@angular/core").InputSignal<string>;
4297
+ /** Accessible name of the list. */
4298
+ readonly ariaLabel: import("@angular/core").InputSignal<string>;
4299
+ /** Emits the `value` of the clicked source. */
4300
+ readonly sourceSelect: import("@angular/core").OutputEmitterRef<string>;
4301
+ static ɵfac: i0.ɵɵFactoryDeclaration<ImportSourceGridComponent, never>;
4302
+ static ɵcmp: i0.ɵɵComponentDeclaration<ImportSourceGridComponent, "ui-import-source-grid", never, {
4303
+ "sources": {
4304
+ "alias": "sources";
4305
+ "required": true;
4306
+ "isSignal": true;
4307
+ };
4308
+ "selected": {
4309
+ "alias": "selected";
4310
+ "required": false;
4311
+ "isSignal": true;
4312
+ };
4313
+ "appearance": {
4314
+ "alias": "appearance";
4315
+ "required": false;
4316
+ "isSignal": true;
4317
+ };
4318
+ "disabled": {
4319
+ "alias": "disabled";
4320
+ "required": false;
4321
+ "isSignal": true;
4322
+ };
4323
+ "actionLabel": {
4324
+ "alias": "actionLabel";
4325
+ "required": false;
4326
+ "isSignal": true;
4327
+ };
4328
+ "ariaLabel": {
4329
+ "alias": "ariaLabel";
4330
+ "required": false;
4331
+ "isSignal": true;
4332
+ };
4333
+ }, {
4334
+ "sourceSelect": "sourceSelect";
4335
+ }, never, never, true, never>;
4336
+ }
4254
4337
  export interface ActiveConfirm {
4255
4338
  title: string;
4256
4339
  message: string;
@@ -4427,7 +4510,7 @@ export declare class TextInputComponent implements ControlValueAccessor, Validat
4427
4510
  readonly passwordRequirements: import("@angular/core").InputSignal<boolean>;
4428
4511
  /** Rules for `passwordRequirements`; default = the library's five rules (8+ characters, upper, lower, digit, special). */
4429
4512
  readonly passwordRules: import("@angular/core").InputSignal<readonly PasswordRule[] | undefined>;
4430
- readonly type: import("@angular/core").InputSignal<"number" | "text" | "email" | "tel" | "password" | "url">;
4513
+ readonly type: import("@angular/core").InputSignal<"number" | "email" | "text" | "password" | "tel" | "url">;
4431
4514
  readonly maxlength: import("@angular/core").InputSignal<number | undefined>;
4432
4515
  readonly required: import("@angular/core").InputSignal<boolean>;
4433
4516
  readonly autocomplete: import("@angular/core").InputSignal<string>;
@@ -4436,7 +4519,7 @@ export declare class TextInputComponent implements ControlValueAccessor, Validat
4436
4519
  * `search`, `text`, `none`). Empty (default) = the browser's default for the field, except `type="tel"`, which keeps `tel`.
4437
4520
  * It only picks the keyboard; it does not restrict what can be typed or pasted.
4438
4521
  */
4439
- readonly inputmode: import("@angular/core").InputSignal<"" | "none" | "text" | "search" | "email" | "tel" | "url" | "decimal" | "numeric">;
4522
+ readonly inputmode: import("@angular/core").InputSignal<"" | "email" | "none" | "text" | "tel" | "url" | "decimal" | "numeric" | "search">;
4440
4523
  readonly readonly: import("@angular/core").InputSignal<boolean>;
4441
4524
  readonly hint: import("@angular/core").InputSignal<string>;
4442
4525
  readonly error: import("@angular/core").InputSignal<string>;
@@ -4500,7 +4583,7 @@ export declare class TextInputComponent implements ControlValueAccessor, Validat
4500
4583
  protected readonly _stepAttr: import("@angular/core").Signal<string | null>;
4501
4584
  protected readonly _revealable: import("@angular/core").Signal<boolean>;
4502
4585
  protected readonly _shown: import("@angular/core").WritableSignal<boolean>;
4503
- protected readonly _inputType: import("@angular/core").Signal<"number" | "text" | "email" | "tel" | "password" | "url">;
4586
+ protected readonly _inputType: import("@angular/core").Signal<"number" | "email" | "text" | "password" | "tel" | "url">;
4504
4587
  protected readonly _eyePath: string;
4505
4588
  protected readonly _eyeOffPath: string;
4506
4589
  protected readonly _showRequirements: import("@angular/core").Signal<boolean>;
@@ -6046,7 +6129,7 @@ export declare class FormRowComponent {
6046
6129
  * child simply takes the full width. Keep a numeric span within the row's `cols` (use `all` for the whole row).
6047
6130
  */
6048
6131
  export declare class FormColSpanDirective {
6049
- readonly uiColSpan: import("@angular/core").InputSignal<"" | "2" | "3" | 2 | 3 | "all">;
6132
+ readonly uiColSpan: import("@angular/core").InputSignal<"" | 2 | 3 | "2" | "3" | "all">;
6050
6133
  protected readonly _class: import("@angular/core").Signal<string>;
6051
6134
  static ɵfac: i0.ɵɵFactoryDeclaration<FormColSpanDirective, never>;
6052
6135
  static ɵdir: i0.ɵɵDirectiveDeclaration<FormColSpanDirective, "[uiColSpan]", never, {
@@ -6096,7 +6179,7 @@ export type ListItemDetail = string | {
6096
6179
  export type ListItemIconColor = 'slate' | 'amber' | 'red' | 'blue' | 'green' | 'purple' | 'teal' | 'orange';
6097
6180
  export declare class ListItemComponent {
6098
6181
  /** Show a radio button, checkbox, or nothing on the left. */
6099
- readonly leading: import("@angular/core").InputSignal<"none" | "checkbox" | "radio">;
6182
+ readonly leading: import("@angular/core").InputSignal<"radio" | "checkbox" | "none">;
6100
6183
  /** `name` attribute for the radio/checkbox (groups radios together). */
6101
6184
  readonly inputName: import("@angular/core").InputSignal<string>;
6102
6185
  /** `id` attribute for the radio/checkbox (links the label). */
@@ -7073,9 +7156,9 @@ export declare class ChipGroupComponent {
7073
7156
  /** Space between each chip. */
7074
7157
  readonly gap: import("@angular/core").InputSignal<"sm" | "md" | "lg">;
7075
7158
  /** Space above the chip group. */
7076
- readonly spaceAbove: import("@angular/core").InputSignal<"none" | "sm" | "md">;
7159
+ readonly spaceAbove: import("@angular/core").InputSignal<"sm" | "md" | "none">;
7077
7160
  /** Space below the chip group. */
7078
- readonly spaceBelow: import("@angular/core").InputSignal<"none" | "sm" | "md">;
7161
+ readonly spaceBelow: import("@angular/core").InputSignal<"sm" | "md" | "none">;
7079
7162
  protected readonly _gap: import("@angular/core").Signal<"6px" | "12px" | "8px">;
7080
7163
  protected readonly _spaceAbove: import("@angular/core").Signal<"0" | "6px" | "12px">;
7081
7164
  protected readonly _spaceBelow: import("@angular/core").Signal<"0" | "6px" | "12px">;
@@ -7380,7 +7463,7 @@ export declare class AlertComponent {
7380
7463
  /** The SVG path (24×24 stroke icon) for an icon key, or undefined when the key is unknown. */
7381
7464
  export declare function iconPath(name: string): string | undefined;
7382
7465
  /** Keys with an icon of their own (the data-table action keys are accepted too — see `builtInActionIcon`). */
7383
- export type IconName = 'add' | 'close' | 'check' | 'upload' | 'image' | 'chevron-up' | 'chevron-down' | 'arrow-left' | 'bell' | 'print' | 'lock' | 'shield' | 'arrow-up' | 'arrow-down' | 'arrow-right' | 'document' | 'grip' | 'card' | 'bank' | 'view' | 'view-off' | 'edit' | 'delete' | 'download' | 'duplicate' | 'archive' | 'restore' | 'share' | 'email' | 'message' | 'call' | 'refund' | 'chevron-right' | 'link' | 'save' | 'chart' | 'clipboard';
7466
+ export type IconName = 'add' | 'close' | 'check' | 'upload' | 'image' | 'chevron-up' | 'chevron-down' | 'arrow-left' | 'bell' | 'print' | 'lock' | 'shield' | 'arrow-up' | 'arrow-down' | 'arrow-right' | 'document' | 'grip' | 'card' | 'bank' | 'view' | 'view-off' | 'edit' | 'delete' | 'download' | 'duplicate' | 'archive' | 'restore' | 'share' | 'email' | 'message' | 'call' | 'refund' | 'chevron-right' | 'link' | 'save' | 'chart' | 'clipboard' | 'unlink' | 'send' | 'refresh';
7384
7467
  /**
7385
7468
  * A clickable icon. The host passes a key (`name="delete"`) and the library draws that icon; clicking it emits
7386
7469
  * `iconClick`, and the host does the actual work (delete the row, open a panel, …).
@@ -7407,7 +7490,7 @@ export declare class IconComponent {
7407
7490
  readonly ariaLabel: import("@angular/core").InputSignal<string>;
7408
7491
  /** Icon size in px. */
7409
7492
  readonly size: import("@angular/core").InputSignal<number>;
7410
- readonly variant: import("@angular/core").InputSignal<"danger" | "default">;
7493
+ readonly variant: import("@angular/core").InputSignal<"default" | "danger">;
7411
7494
  readonly disabled: import("@angular/core").InputSignal<boolean>;
7412
7495
  /** The host is running the request this icon started: a spinner replaces the picture and the button is disabled (no click) until it is false again. */
7413
7496
  readonly loading: import("@angular/core").InputSignal<boolean>;
@@ -7519,7 +7602,7 @@ export declare class TimelineComponent {
7519
7602
  /** Any CSS length (e.g. `600px`). When set, the list scrolls inside a keyboard-focusable region of at most this height. Empty = no wrapper. */
7520
7603
  readonly maxHeight: import("@angular/core").InputSignal<string>;
7521
7604
  /** `below` (default): the time is under the title / description. `end`: the time sits right-aligned on the title row. */
7522
- readonly timePosition: import("@angular/core").InputSignal<"end" | "below">;
7605
+ readonly timePosition: import("@angular/core").InputSignal<"below" | "end">;
7523
7606
  /**
7524
7607
  * Group the items under a heading per calendar day of `dateTime` ("Today", "Yesterday", "Oct 3", "Oct 3, 2025"). Default false = no headings,
7525
7608
  * DOM unchanged. The given order is kept: consecutive items of one day share a heading, the same day appearing again later starts a new group.
@@ -8849,7 +8932,7 @@ export declare class PdfHotspotComponent {
8849
8932
  /** `ready`: clickable; `blocked`: disabled (a prerequisite is missing); `signed`: shows `image`. */
8850
8933
  readonly state: import("@angular/core").InputSignal<"ready" | "blocked" | "signed">;
8851
8934
  /** `warning` gives the ready state an amber look (e.g. for initials), default is blue. */
8852
- readonly tone: import("@angular/core").InputSignal<"primary" | "warning">;
8935
+ readonly tone: import("@angular/core").InputSignal<"warning" | "primary">;
8853
8936
  /** Text of the ready button (e.g. "Sign Here"). */
8854
8937
  readonly label: import("@angular/core").InputSignal<string>;
8855
8938
  /** Text of the blocked button (e.g. "Add signature above"). */
@@ -8983,7 +9066,7 @@ export declare class DetailCardComponent {
8983
9066
  /** true (default) = the title is displayed in capitals (CSS only); false = shown as written. The text, aria-label and heading name are never changed. */
8984
9067
  readonly uppercaseTitle: import("@angular/core").InputSignal<boolean>;
8985
9068
  /** 1-6 makes the title a real heading for screen readers (role=heading, aria-level); null keeps it plain text. */
8986
- readonly headingLevel: import("@angular/core").InputSignal<1 | 2 | 3 | 4 | 5 | 6 | null>;
9069
+ readonly headingLevel: import("@angular/core").InputSignal<1 | 2 | 6 | 3 | 5 | 4 | null>;
8987
9070
  /** Optional id for the title text; the card is then labelled by it. Without it the title is the card's aria-label. */
8988
9071
  readonly titleId: import("@angular/core").InputSignal<string>;
8989
9072
  /** Accessible name of the card when the header gives none (no header, or no title). A visible title wins; blank = no name. */
@@ -11081,6 +11164,8 @@ export interface SetupWizardTexts {
11081
11164
  exit: string;
11082
11165
  connect: string;
11083
11166
  reconnect: string;
11167
+ /** Button on each source card of an import step. */
11168
+ selectSource: string;
11084
11169
  connected: string;
11085
11170
  importMore: string;
11086
11171
  whatGetsImported: string;
@@ -11117,6 +11202,8 @@ export interface SetupStep {
11117
11202
  /** Unique within the list. */
11118
11203
  key: string;
11119
11204
  label: string;
11205
+ /** Title in the header bar of the card around the step. Omit it and the card has no header bar. */
11206
+ cardTitle?: string;
11120
11207
  /** The paragraph under the heading. */
11121
11208
  description?: string;
11122
11209
  /** `custom` shows the app's own `<ng-template uiSetupStep="key">`; `import` and `integrations` are built in. */
@@ -11185,6 +11272,28 @@ export declare class SetupWizardStepDirective {
11185
11272
  };
11186
11273
  }, {}, never, never, true, never>;
11187
11274
  }
11275
+ /**
11276
+ * Content for the right side of a step's card header (a search box, a small action): `<ng-template uiSetupStepHeader="key">…</ng-template>`.
11277
+ * It gets the same `let-wizard` as the step's own template. A step with this template shows the card header even without a `cardTitle`.
11278
+ */
11279
+ export declare class SetupWizardStepHeaderDirective {
11280
+ /** The `key` of the step this header content belongs to. */
11281
+ readonly key: import("@angular/core").InputSignal<string>;
11282
+ readonly template: TemplateRef<{
11283
+ $implicit: SetupWizardApi;
11284
+ }>;
11285
+ static ngTemplateContextGuard(_dir: SetupWizardStepHeaderDirective, _ctx: unknown): _ctx is {
11286
+ $implicit: SetupWizardApi;
11287
+ };
11288
+ static ɵfac: i0.ɵɵFactoryDeclaration<SetupWizardStepHeaderDirective, never>;
11289
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SetupWizardStepHeaderDirective, "ng-template[uiSetupStepHeader]", never, {
11290
+ "key": {
11291
+ "alias": "uiSetupStepHeader";
11292
+ "required": true;
11293
+ "isSignal": true;
11294
+ };
11295
+ }, {}, never, never, true, never>;
11296
+ }
11188
11297
  /** Splits a description into its first sentence (title) and the rest (text). A single sentence is all title. */
11189
11298
  export declare function splitIntro(description: string): {
11190
11299
  title: string;
@@ -11223,6 +11332,7 @@ export declare class SetupWizardComponent {
11223
11332
  /** The step that was just shown (its key). */
11224
11333
  readonly stepChange: import("@angular/core").OutputEmitterRef<string>;
11225
11334
  protected readonly stepTemplates: import("@angular/core").Signal<readonly SetupWizardStepDirective[]>;
11335
+ protected readonly headerTemplates: import("@angular/core").Signal<readonly SetupWizardStepHeaderDirective[]>;
11226
11336
  protected readonly importers: import("@angular/core").Signal<readonly ImportExportComponent[]>;
11227
11337
  protected readonly t: import("@angular/core").Signal<SetupWizardTexts>;
11228
11338
  protected readonly currentKey: import("@angular/core").WritableSignal<string>;
@@ -11252,6 +11362,9 @@ export declare class SetupWizardComponent {
11252
11362
  protected readonly stepperSteps: import("@angular/core").Signal<StepperStep[]>;
11253
11363
  protected readonly summarySections: import("@angular/core").Signal<PanelInfoSection[]>;
11254
11364
  constructor();
11365
+ protected headerTemplateFor(key: string): import("@angular/core").TemplateRef<{
11366
+ $implicit: SetupWizardApi;
11367
+ }> | null;
11255
11368
  protected templateFor(key: string): import("@angular/core").TemplateRef<{
11256
11369
  $implicit: SetupWizardApi;
11257
11370
  }> | null;
@@ -11266,6 +11379,8 @@ export declare class SetupWizardComponent {
11266
11379
  private run;
11267
11380
  /** The message to show for a failure: the server's own `{ message }` (or a thrown error's message); never the HTTP client's technical text. */
11268
11381
  private messageOf;
11382
+ /** A source card was picked on the step itself: opens the import window already past its source step (at the upload step for that source). */
11383
+ protected startImport(key: string, source: string): void;
11269
11384
  protected openImport(key: string): void;
11270
11385
  protected onImported(key: string): void;
11271
11386
  protected importResult(key: string): number | null;
@@ -11299,7 +11414,7 @@ export declare class SetupWizardComponent {
11299
11414
  "finished": "finished";
11300
11415
  "exited": "exited";
11301
11416
  "stepChange": "stepChange";
11302
- }, ["stepTemplates"], ["[setup-wizard-logo]"], true, never>;
11417
+ }, ["stepTemplates", "headerTemplates"], ["[setup-wizard-logo]"], true, never>;
11303
11418
  }
11304
11419
  /** One automated trigger a template can be assigned to (the host decides which exist). */
11305
11420
  export interface EmailTemplateAssignmentOption {
@@ -11490,7 +11605,7 @@ export declare class EmailTemplateEditorComponent {
11490
11605
  readonly sizeKey: import("@angular/core").WritableSignal<number>;
11491
11606
  readonly headingOptions: SelectOption<string>[];
11492
11607
  readonly fontSizeOptions: SelectOption<string>[];
11493
- readonly spacingOptions: SelectOption<string>[];
11608
+ readonly spacingTabs: PillTab[];
11494
11609
  readonly ctaTypeOptions: SelectOption<string>[];
11495
11610
  readonly playbackOptions: {
11496
11611
  value: string;