@sinequa/galactik 2.2.0 → 2.4.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,6 +1,6 @@
1
1
  {
2
2
  "name": "@sinequa/galactik",
3
- "version": "2.2.0",
3
+ "version": "2.4.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -14,6 +14,14 @@ import { ToolbarWidget } from "@angular/aria/toolbar";
14
14
  import * as i1$1 from "@angular/aria/listbox";
15
15
  import * as i1 from "@angular/aria/tree";
16
16
  import { Tree, TreeItem, TreeItemGroup } from "@angular/aria/tree";
17
+ /**
18
+ * Whether the user is on an Apple platform (macOS, iPadOS, iOS).
19
+ *
20
+ * An iPad in desktop mode reports itself as a Mac, which is the right answer for its hardware keyboard.
21
+ * Meant for adapting a *hint* or *adding* a key (a MacBook has no dedicated `Delete`, only `fn+⌫`) — never
22
+ * for restricting one.
23
+ */
24
+ export declare function isApplePlatform(): boolean;
17
25
  export declare class ArrowDownIcon {
18
26
  class: import("@angular/core").InputSignal<string | undefined>;
19
27
  classes: import("@angular/core").Signal<string>;
@@ -1352,6 +1360,23 @@ export declare class LoadingCircleIcon {
1352
1360
  */
1353
1361
  export declare const LoadingCircleIconComponent: typeof LoadingCircleIcon;
1354
1362
  export type LoadingCircleIconComponent = LoadingCircleIcon;
1363
+ export declare class LockIcon {
1364
+ class: import("@angular/core").InputSignal<string | undefined>;
1365
+ classes: import("@angular/core").Signal<string>;
1366
+ static ɵfac: i0.ɵɵFactoryDeclaration<LockIcon, never>;
1367
+ static ɵcmp: i0.ɵɵComponentDeclaration<LockIcon, "lock, lock-icon, Lock, LockIcon", never, {
1368
+ "class": {
1369
+ "alias": "class";
1370
+ "required": false;
1371
+ "isSignal": true;
1372
+ };
1373
+ }, {}, never, never, true, never>;
1374
+ }
1375
+ /**
1376
+ * @deprecated Use LockIcon instead.
1377
+ */
1378
+ export declare const LockIconComponent: typeof LockIcon;
1379
+ export type LockIconComponent = LockIcon;
1355
1380
  export declare class MagnifyingGlassIcon {
1356
1381
  class: import("@angular/core").InputSignal<string | undefined>;
1357
1382
  classes: import("@angular/core").Signal<string>;
@@ -2708,7 +2733,24 @@ export declare class MenuComponent {
2708
2733
  classes: import("@angular/core").Signal<string>;
2709
2734
  ngMenu: Menu<any>;
2710
2735
  readonly popover: PopoverDirective;
2736
+ private readonly host;
2737
+ /** Whether a submenu was open when the last Escape keydown started its way down to its target. */
2738
+ private submenuOpenAtEscape;
2711
2739
  constructor();
2740
+ /**
2741
+ * Escape closes the menu and gives the focus back to its trigger.
2742
+ *
2743
+ * Left to the browser, it does nothing: a `popover="auto"` is dismissed by Escape through the browser's
2744
+ * close request, but `@angular/aria` handles the same keydown and calls `preventDefault()` on it, which
2745
+ * cancels that request — while its own Escape only closes a *sub*menu (a standalone `ngMenu` has no
2746
+ * trigger of its own to close). Hence it is done here.
2747
+ *
2748
+ * While a submenu is open, Escape stays with `@angular/aria`: it closes that submenu alone and puts the
2749
+ * focus back on the parent item (APG: one level per press); the next Escape then reaches this method.
2750
+ * Whether a submenu was open is read in the capture phase (see the constructor): by the time this bubbling
2751
+ * listener runs, `@angular/aria` has already closed it.
2752
+ */
2753
+ onEscape(): void;
2712
2754
  onClick(event: MouseEvent): void;
2713
2755
  static ɵfac: i0.ɵɵFactoryDeclaration<MenuComponent, never>;
2714
2756
  static ɵdir: i0.ɵɵDirectiveDeclaration<MenuComponent, "Menu,menu", ["menu"], {
@@ -3737,7 +3779,7 @@ export declare class ButtonComponent {
3737
3779
  variant: import("@angular/core").InputSignal<"primary" | "secondary" | "none" | "light-accent" | "accent" | "tertiary" | null | undefined>;
3738
3780
  scheme: import("@angular/core").InputSignal<"default" | "neutral" | null | undefined>;
3739
3781
  iconOnly: import("@angular/core").InputSignal<boolean | null | undefined>;
3740
- size: import("@angular/core").InputSignal<"small" | "sm" | "md" | "xs" | "lg" | "xsmall" | "medium" | "large" | null | undefined>;
3782
+ size: import("@angular/core").InputSignal<"small" | "medium" | "large" | "xs" | "sm" | "md" | "lg" | "xsmall" | null | undefined>;
3741
3783
  variants: import("@angular/core").Signal<string | undefined>;
3742
3784
  static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
3743
3785
  static ɵdir: i0.ɵɵDirectiveDeclaration<ButtonComponent, "button", never, {
@@ -3781,7 +3823,7 @@ declare const BUTTON_ICON_SOLO_CLASS = "btn-icon-solo";
3781
3823
  declare const buttonVariants: (props?: ({
3782
3824
  variant?: "primary" | "secondary" | "none" | "light-accent" | "accent" | "tertiary" | null | undefined;
3783
3825
  scheme?: "default" | "neutral" | null | undefined;
3784
- size?: "small" | "sm" | "md" | "xs" | "lg" | "xsmall" | "medium" | "large" | null | undefined;
3826
+ size?: "small" | "medium" | "large" | "xs" | "sm" | "md" | "lg" | "xsmall" | null | undefined;
3785
3827
  iconOnly?: boolean | null | undefined;
3786
3828
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
3787
3829
  type ButtonVariants = VariantProps<typeof buttonVariants>;
@@ -3805,7 +3847,7 @@ export declare class ToggleComponent {
3805
3847
  /** Palette : `unique` (primaire) ou `multi` (secondaire). */
3806
3848
  readonly variant: import("@angular/core").InputSignal<"multi" | "unique" | null | undefined>;
3807
3849
  /** Taille (`sm`/`md`, alias `small`/`medium`). */
3808
- readonly size: import("@angular/core").InputSignal<"small" | "sm" | "md" | "medium" | null | undefined>;
3850
+ readonly size: import("@angular/core").InputSignal<"small" | "medium" | "sm" | "md" | null | undefined>;
3809
3851
  /** Pilule carrée (icône seule). */
3810
3852
  readonly iconOnly: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
3811
3853
  /** Discriminant de rendu d'icône (piloté par le consommateur). */
@@ -3878,7 +3920,7 @@ export declare class ToggleItemComponent {
3878
3920
  /** Palette explicite ; à défaut, héritée du `<ToggleGroup>` parent, sinon `unique`. */
3879
3921
  readonly variant: import("@angular/core").InputSignal<"multi" | "unique" | null | undefined>;
3880
3922
  /** Taille (`sm`/`md`, alias `small`/`medium`). */
3881
- readonly size: import("@angular/core").InputSignal<"small" | "sm" | "md" | "medium" | null | undefined>;
3923
+ readonly size: import("@angular/core").InputSignal<"small" | "medium" | "sm" | "md" | null | undefined>;
3882
3924
  /** Pilule carrée (icône seule). */
3883
3925
  readonly iconOnly: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
3884
3926
  /** Discriminant de rendu d'icône (piloté par le consommateur). */
@@ -4015,7 +4057,7 @@ export declare const TOGGLE_ICON_CLASS = "toggle-icon";
4015
4057
  export declare const TOGGLE_LABEL_CLASS = "toggle-label";
4016
4058
  export declare const toggleVariants: (props?: ({
4017
4059
  variant?: "multi" | "unique" | null | undefined;
4018
- size?: "small" | "sm" | "md" | "medium" | null | undefined;
4060
+ size?: "small" | "medium" | "sm" | "md" | null | undefined;
4019
4061
  iconOnly?: boolean | null | undefined;
4020
4062
  showIcon?: boolean | null | undefined;
4021
4063
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -4070,6 +4112,17 @@ export declare class ListComponent {
4070
4112
  * `list-navigation` / `list-menu`.
4071
4113
  */
4072
4114
  readonly size: import("@angular/core").InputSignal<"small" | "medium" | null | undefined>;
4115
+ private readonly host;
4116
+ private readonly keyboardFocusState;
4117
+ /**
4118
+ * Vrai tant que le focus **clavier** est dans la liste (`:focus-visible` : un clic à la souris sur une
4119
+ * ligne ne compte pas). Permet à l'application d'afficher une aide de navigation (« ↑ ↓ pour naviguer »)
4120
+ * exactement quand elle sert, sans aller lire le DOM de la liste.
4121
+ */
4122
+ readonly keyboardFocused: import("@angular/core").Signal<boolean>;
4123
+ protected onFocusIn(event: FocusEvent): void;
4124
+ /** Le focus passe d'une ligne à l'autre par un `focusout` suivi d'un `focusin` : seul un départ de la liste éteint l'état. */
4125
+ protected onFocusOut(event: FocusEvent): void;
4073
4126
  /** Le CVA ne stylise pas le conteneur : classes minimales de layout + `class` consommateur. */
4074
4127
  protected readonly variants: import("@angular/core").Signal<string>;
4075
4128
  static ɵfac: i0.ɵɵFactoryDeclaration<ListComponent, never>;
@@ -4108,28 +4161,6 @@ export declare class ListComponent {
4108
4161
  };
4109
4162
  }]>;
4110
4163
  }
4111
- /**
4112
- * `<ListItem>` — item d'un `<List>`, bâti sur la primitive accessible `@angular/aria/listbox`
4113
- * (`Option` → `role="option"`, `aria-selected`/`aria-disabled` reflétés automatiquement, ce que
4114
- * le CVA `listItemVariants` stylise via ses sélecteurs d'attributs).
4115
- *
4116
- * `variant`/`size` sont hérités du `<List>` parent (via {@link LIST_REF}) sauf s'ils sont fournis
4117
- * explicitement sur l'item. `depth` applique l'indentation d'arbre (`getListDepthStyle`).
4118
- *
4119
- * La sélection appartient au modèle `value` du `<List>` (listbox) — on ne pilote donc pas de
4120
- * `selected` manuel ici.
4121
- *
4122
- * @example
4123
- * ```html
4124
- * <ListItem [value]="u.id">
4125
- * <ListItemLeft>
4126
- * <ListItemAvatar>{{ u.initials }}</ListItemAvatar>
4127
- * <ListItemText [subtext]="u.email">{{ u.name }}</ListItemText>
4128
- * </ListItemLeft>
4129
- * <ListItemAction ariaLabel="Supprimer" (click)="remove(u)"><trash-icon /></ListItemAction>
4130
- * </ListItem>
4131
- * ```
4132
- */
4133
4164
  export declare class ListItemComponent {
4134
4165
  /** Classe(s) additionnelle(s), fusionnée(s) via `cn`. */
4135
4166
  readonly class: import("@angular/core").InputSignal<string | undefined>;
@@ -4149,13 +4180,24 @@ export declare class ListItemComponent {
4149
4180
  protected readonly variants: import("@angular/core").Signal<string>;
4150
4181
  /** Indentation d'arbre (réutilise le helper du CVA) ; `null` à la racine (depth 0). */
4151
4182
  protected readonly paddingLeft: import("@angular/core").Signal<string | null>;
4152
- private readonly host;
4153
- /** Vrai quand la ligne projette une `<ListItemAction>` — conditionne `aria-keyshortcuts`. */
4183
+ /**
4184
+ * Vrai quand la ligne projette une `<ListItemAction>` **utilisable** — conditionne `aria-keyshortcuts`.
4185
+ * Une action désactivée ignore sa touche : l'annoncer promettrait une action qui ne fait rien.
4186
+ */
4154
4187
  protected readonly hasAction: import("@angular/core").Signal<boolean>;
4155
4188
  private readonly action;
4189
+ /** Les touches de l'action, au format de `aria-keyshortcuts` (« Delete Backspace »). */
4190
+ protected readonly keyShortcuts: import("@angular/core").Signal<string | null>;
4191
+ /**
4192
+ * Relie la ligne au texte masqué de son action. `aria-keyshortcuts` n'est pas lu de façon fiable
4193
+ * (selon le lecteur, le réglage et le navigateur, et alors en anglais brut) : seul un texte relié
4194
+ * garantit que l'utilisateur apprend que `Suppr` supprime la ligne.
4195
+ */
4196
+ protected readonly actionDescriptionId: import("@angular/core").Signal<string | null>;
4156
4197
  /**
4157
- * `Suppr` déclenche l'action de fin de ligne. Celle-ci n'est pas un contrôle focusable (une
4158
- * option de listbox ne peut pas en contenir), donc c'est le seul chemin clavier vers elle.
4198
+ * La touche de l'action (`keys` de `<ListItemAction>`, `Delete` par défaut) la déclenche. Celle-ci n'est
4199
+ * pas un contrôle focusable (une option de listbox ne peut pas en contenir), donc c'est le seul chemin
4200
+ * clavier vers elle.
4159
4201
  */
4160
4202
  protected onKeydown(event: KeyboardEvent): void;
4161
4203
  static ɵfac: i0.ɵɵFactoryDeclaration<ListItemComponent, never>;
@@ -4281,6 +4323,20 @@ export declare class ListItemAvatarDirective {
4281
4323
  * L'accès clavier passe donc par `<ListItem>`, qui déclenche l'action sur `Suppr` et l'annonce via
4282
4324
  * `aria-keyshortcuts`. Le `<span>` reste la cible souris, et garde tout son style (le CVA cible la
4283
4325
  * classe, jamais la balise).
4326
+ *
4327
+ * Une ligne n'est pas faite pour contenir un champ de saisie ni aucun contrôle : une `option` de listbox
4328
+ * n'en admet pas, et la ligne prend `Suppr` quelle que soit la cible du clavier. Une ligne éditable relève de
4329
+ * `RowGrid`, pas de `<List>`.
4330
+ *
4331
+ * Une action par ligne : `<ListItem>` ne déclenche que la première, par la touche de `keys` (`Delete`
4332
+ * par défaut). La corbeille n'est qu'une icône posée en contenu : l'action est ce que fait le `(click)`.
4333
+ *
4334
+ * Un utilisateur voyant n'apprend rien d'`aria-keyshortcuts` : tant que la ligne a le focus clavier, une
4335
+ * seconde ligne, dans la ligne, écrit donc la phrase `description` avec la touche en `<kbd>` (« Appuyez
4336
+ * sur Suppr pour supprimer »). Sans `description`, il n'y a pas de seconde ligne : la ligne garde sa hauteur.
4337
+ * Le CVA la garde masquée hors focus clavier : la souris dispose du clic, et l'afficher au survol ferait
4338
+ * bouger les lignes sous le pointeur. Cette ligne est `aria-hidden` : la
4339
+ * même phrase, reliée par `aria-describedby`, porte l'annonce.
4284
4340
  */
4285
4341
  export declare class ListItemActionComponent {
4286
4342
  /**
@@ -4289,9 +4345,48 @@ export declare class ListItemActionComponent {
4289
4345
  * porté par `<ListItem>`. Le nom de l'entrée est conservé pour ne pas casser les appelants.
4290
4346
  */
4291
4347
  readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
4292
- /** Désactive le bouton d'action. */
4348
+ /**
4349
+ * Désactive l'action : `Suppr` ne la déclenche plus, et ni l'aide visible, ni la phrase reliée par
4350
+ * `aria-describedby`, ni `aria-keyshortcuts` n'annoncent plus un raccourci qui ne ferait rien.
4351
+ */
4293
4352
  readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
4353
+ /**
4354
+ * Les touches (`KeyboardEvent.key`) qui déclenchent l'action quand sa ligne a le focus. `Delete` par
4355
+ * défaut. La première nomme l'action dans `aria-keyshortcuts` et, à défaut de `shortcut`, dans l'aide.
4356
+ *
4357
+ * Ajouter une touche qui n'existe que sur certains claviers est à l'appelant (un Mac n'a pas de
4358
+ * `Delete` dédié : `["Delete", "Backspace"]` quand `isApplePlatform()`), la librairie ne le devine pas.
4359
+ */
4360
+ readonly keys: import("@angular/core").InputSignal<readonly string[]>;
4361
+ /**
4362
+ * Nom de la touche écrit dans la ligne d'aide quand la ligne a le focus clavier (ex. « Suppr »). Il
4363
+ * doit apparaître tel quel dans `description` pour y être mis en forme. La librairie ne dépend pas de
4364
+ * transloco : à l'application de le traduire. Par défaut, le nom de la première de `keys` (`Del` pour
4365
+ * `Delete`).
4366
+ */
4367
+ readonly shortcut: import("@angular/core").InputSignal<string | undefined>;
4368
+ /**
4369
+ * Phrase lue par un lecteur d'écran quand la ligne prend le focus (ex. « Appuyez sur Suppr pour
4370
+ * supprimer »), reliée à la ligne par `aria-describedby`. À traduire par l'application ; sans elle,
4371
+ * seul `aria-keyshortcuts` renseigne les technologies d'assistance.
4372
+ */
4373
+ readonly description: import("@angular/core").InputSignal<string | undefined>;
4374
+ readonly descriptionId: string;
4375
+ protected readonly keyName: import("@angular/core").Signal<string>;
4376
+ private readonly trigger$;
4377
+ /** Déclenche l'action comme le ferait un clic sur son icône (`<ListItem>` l'appelle sur la touche). */
4378
+ trigger(): void;
4379
+ /**
4380
+ * La phrase coupée autour du nom de la touche, qui prend alors la forme d'un `<kbd>`. Une phrase qui ne
4381
+ * contient pas le nom est écrite telle quelle, sans touche.
4382
+ */
4383
+ protected readonly hint: import("@angular/core").Signal<{
4384
+ before: string;
4385
+ after: string;
4386
+ withKey: boolean;
4387
+ }>;
4294
4388
  protected readonly btnClass = "list-item-icon-right";
4389
+ protected readonly hintClass = "list-item-action-hint";
4295
4390
  static ɵfac: i0.ɵɵFactoryDeclaration<ListItemActionComponent, never>;
4296
4391
  static ɵcmp: i0.ɵɵComponentDeclaration<ListItemActionComponent, "ListItemAction,list-item-action,listitemaction", ["listItemAction"], {
4297
4392
  "ariaLabel": {
@@ -4304,6 +4399,21 @@ export declare class ListItemActionComponent {
4304
4399
  "required": false;
4305
4400
  "isSignal": true;
4306
4401
  };
4402
+ "keys": {
4403
+ "alias": "keys";
4404
+ "required": false;
4405
+ "isSignal": true;
4406
+ };
4407
+ "shortcut": {
4408
+ "alias": "shortcut";
4409
+ "required": false;
4410
+ "isSignal": true;
4411
+ };
4412
+ "description": {
4413
+ "alias": "description";
4414
+ "required": false;
4415
+ "isSignal": true;
4416
+ };
4307
4417
  }, {}, never, ["*"], true, never>;
4308
4418
  }
4309
4419
  /**
@@ -4352,6 +4462,7 @@ export declare const LIST_ITEM_EXPANDER_CLASS = "list-item-expander";
4352
4462
  export declare const LIST_ITEM_EXPANDER_BUTTON_CLASS = "list-item-expander-btn";
4353
4463
  export declare const LIST_ITEM_AVATAR_CLASS = "list-item-avatar";
4354
4464
  export declare const LIST_ITEM_ICON_RIGHT_CLASS = "list-item-icon-right";
4465
+ declare const LIST_ITEM_ACTION_HINT_CLASS = "list-item-action-hint";
4355
4466
  export declare const LIST_ITEM_CHEVRON_RIGHT_CLASS = "list-item-chevron-right";
4356
4467
  export declare function getListDepthStyle(depth?: number): {
4357
4468
  paddingLeft: string;
@@ -4927,7 +5038,7 @@ export declare class TagComponent {
4927
5038
  class: import("@angular/core").InputSignal<string | undefined>;
4928
5039
  variant: import("@angular/core").InputSignal<"primary" | "secondary" | null | undefined>;
4929
5040
  scheme: import("@angular/core").InputSignal<"error" | "sage" | "success" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "warning" | "info" | null | undefined>;
4930
- size: import("@angular/core").InputSignal<"small" | "sm" | "md" | "xs" | "xsmall" | "medium" | null | undefined>;
5041
+ size: import("@angular/core").InputSignal<"small" | "medium" | "xs" | "sm" | "md" | "xsmall" | null | undefined>;
4931
5042
  variants: import("@angular/core").Signal<string>;
4932
5043
  static ɵfac: i0.ɵɵFactoryDeclaration<TagComponent, never>;
4933
5044
  static ɵdir: i0.ɵɵDirectiveDeclaration<TagComponent, "tag, Tag", never, {
@@ -4959,7 +5070,7 @@ declare const TAG_FLAG_CLASS = "tag-flag";
4959
5070
  declare const tagVariants: (props?: ({
4960
5071
  variant?: "primary" | "secondary" | null | undefined;
4961
5072
  scheme?: "error" | "sage" | "success" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "warning" | "info" | null | undefined;
4962
- size?: "small" | "sm" | "md" | "xs" | "xsmall" | "medium" | null | undefined;
5073
+ size?: "small" | "medium" | "xs" | "sm" | "md" | "xsmall" | null | undefined;
4963
5074
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
4964
5075
  type TagVariants = VariantProps<typeof tagVariants>;
4965
5076
  /**
@@ -5170,7 +5281,7 @@ export declare class BadgeComponent {
5170
5281
  variant: import("@angular/core").InputSignal<"number" | "icon" | null | undefined>;
5171
5282
  fill: import("@angular/core").InputSignal<"primary" | "secondary" | null | undefined>;
5172
5283
  scheme: import("@angular/core").InputSignal<"error" | "sage" | "success" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "warning" | "info" | null | undefined>;
5173
- size: import("@angular/core").InputSignal<"sm" | "md" | "xs" | null | undefined>;
5284
+ size: import("@angular/core").InputSignal<"xs" | "sm" | "md" | null | undefined>;
5174
5285
  ariaLabel: import("@angular/core").InputSignal<string | undefined>;
5175
5286
  variants: import("@angular/core").Signal<string>;
5176
5287
  static ɵfac: i0.ɵɵFactoryDeclaration<BadgeComponent, never>;
@@ -5214,7 +5325,7 @@ declare const badgeVariants: (props?: ({
5214
5325
  variant?: "number" | "icon" | null | undefined;
5215
5326
  style?: "primary" | "secondary" | null | undefined;
5216
5327
  scheme?: "error" | "sage" | "success" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "warning" | "info" | null | undefined;
5217
- size?: "sm" | "md" | "xs" | null | undefined;
5328
+ size?: "xs" | "sm" | "md" | null | undefined;
5218
5329
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5219
5330
  type BadgeVariants = VariantProps<typeof badgeVariants>;
5220
5331
  /**
@@ -5236,7 +5347,7 @@ export declare class BulletComponent {
5236
5347
  readonly class: import("@angular/core").InputSignal<string | undefined>;
5237
5348
  readonly scheme: import("@angular/core").InputSignal<"error" | "sage" | "success" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "warning" | "info" | null | undefined>;
5238
5349
  readonly fill: import("@angular/core").InputSignal<"primary" | "secondary" | null | undefined>;
5239
- readonly size: import("@angular/core").InputSignal<"sm" | "md" | "xs" | null | undefined>;
5350
+ readonly size: import("@angular/core").InputSignal<"xs" | "sm" | "md" | null | undefined>;
5240
5351
  /**
5241
5352
  * Wraps the dot in an expanding, fading halo — the "live" status light. Off by default; it
5242
5353
  * animates nothing under `prefers-reduced-motion`.
@@ -5281,7 +5392,7 @@ export declare class BulletComponent {
5281
5392
  declare const bulletVariants: (props?: ({
5282
5393
  scheme?: "error" | "sage" | "success" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "warning" | "info" | null | undefined;
5283
5394
  fill?: "primary" | "secondary" | null | undefined;
5284
- size?: "sm" | "md" | "xs" | null | undefined;
5395
+ size?: "xs" | "sm" | "md" | null | undefined;
5285
5396
  pulse?: boolean | null | undefined;
5286
5397
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5287
5398
  type BulletVariants = VariantProps<typeof bulletVariants>;
@@ -5295,7 +5406,7 @@ type BulletVariants = VariantProps<typeof bulletVariants>;
5295
5406
  */
5296
5407
  export declare class KbdComponent {
5297
5408
  class: import("@angular/core").InputSignal<string | undefined>;
5298
- size: import("@angular/core").InputSignal<"sm" | "md" | "xs" | null | undefined>;
5409
+ size: import("@angular/core").InputSignal<"xs" | "sm" | "md" | null | undefined>;
5299
5410
  variants: import("@angular/core").Signal<string>;
5300
5411
  static ɵfac: i0.ɵɵFactoryDeclaration<KbdComponent, never>;
5301
5412
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbdComponent, "kbd, Kbd", never, {
@@ -5349,7 +5460,7 @@ export declare class KbdGroupComponent {
5349
5460
  * n'aurait pas de sens et gêne le copier d'un texte l'entourant.
5350
5461
  */
5351
5462
  declare const kbdVariants: (props?: ({
5352
- size?: "sm" | "md" | "xs" | null | undefined;
5463
+ size?: "xs" | "sm" | "md" | null | undefined;
5353
5464
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5354
5465
  type KbdVariants = VariantProps<typeof kbdVariants>;
5355
5466
  /**
@@ -5363,14 +5474,14 @@ export declare class AvatarFallbackComponent {
5363
5474
  canrender: import("@angular/core").WritableSignal<boolean>;
5364
5475
  class: import("@angular/core").InputSignal<string | undefined>;
5365
5476
  /** Explicite ; à défaut, hérité de l'`<avatar>` parent, sinon `"large"` (aligné sur le cva). */
5366
- size: import("@angular/core").InputSignal<"small" | "xsmall" | "medium" | "large" | null | undefined>;
5477
+ size: import("@angular/core").InputSignal<"small" | "medium" | "large" | "xsmall" | null | undefined>;
5367
5478
  /** Explicite ; à défaut, hérité de l'`<avatar>` parent, sinon `"primary"`. */
5368
5479
  fill: import("@angular/core").InputSignal<"primary" | "secondary" | null | undefined>;
5369
5480
  /** Explicite ; à défaut, hérité de l'`<avatar>` parent, sinon `"sage"`. */
5370
5481
  scheme: import("@angular/core").InputSignal<"error" | "sage" | "success" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "warning" | "info" | null | undefined>;
5371
5482
  /** Conteneur parent, pour hériter size/fill/scheme par défaut. */
5372
5483
  private readonly avatar;
5373
- protected readonly resolvedSize: import("@angular/core").Signal<NonNullable<"small" | "xsmall" | "medium" | "large" | null | undefined>>;
5484
+ protected readonly resolvedSize: import("@angular/core").Signal<NonNullable<"small" | "medium" | "large" | "xsmall" | null | undefined>>;
5374
5485
  protected readonly resolvedFill: import("@angular/core").Signal<NonNullable<"primary" | "secondary" | null | undefined>>;
5375
5486
  protected readonly resolvedScheme: import("@angular/core").Signal<NonNullable<"error" | "sage" | "success" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "warning" | "info" | null | undefined>>;
5376
5487
  variants: import("@angular/core").Signal<string>;
@@ -5452,7 +5563,7 @@ export declare class AvatarComponent {
5452
5563
  avatarImage: import("@angular/core").Signal<AvatarImageComponent | undefined>;
5453
5564
  avatarFallback: import("@angular/core").Signal<AvatarFallbackComponent | undefined>;
5454
5565
  class: import("@angular/core").InputSignal<string | undefined>;
5455
- size: import("@angular/core").InputSignal<"small" | "xsmall" | "medium" | "large" | null | undefined>;
5566
+ size: import("@angular/core").InputSignal<"small" | "medium" | "large" | "xsmall" | null | undefined>;
5456
5567
  fill: import("@angular/core").InputSignal<"primary" | "secondary" | null | undefined>;
5457
5568
  scheme: import("@angular/core").InputSignal<"error" | "sage" | "success" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "warning" | "info" | null | undefined>;
5458
5569
  variants: import("@angular/core").Signal<string>;
@@ -5513,7 +5624,7 @@ declare const avatarVariants: (props?: ({
5513
5624
  content?: "picture" | "initials" | null | undefined;
5514
5625
  style?: "primary" | "secondary" | null | undefined;
5515
5626
  scheme?: "error" | "sage" | "success" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "warning" | "info" | null | undefined;
5516
- size?: "small" | "xsmall" | "medium" | "large" | null | undefined;
5627
+ size?: "small" | "medium" | "large" | "xsmall" | null | undefined;
5517
5628
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5518
5629
  type AvatarVariants = VariantProps<typeof avatarVariants>;
5519
5630
  /** Left icon slot — tags its host with the `link-icon-left` class and pins it to the start. */
@@ -5571,7 +5682,7 @@ export declare class LinkIconRightDirective {
5571
5682
  */
5572
5683
  export declare class LinkComponent {
5573
5684
  class: import("@angular/core").InputSignal<string | undefined>;
5574
- size: import("@angular/core").InputSignal<"small" | "sm" | "md" | "medium" | null | undefined>;
5685
+ size: import("@angular/core").InputSignal<"small" | "medium" | "sm" | "md" | null | undefined>;
5575
5686
  visited: import("@angular/core").InputSignal<boolean | null | undefined>;
5576
5687
  icon: import("@angular/core").InputSignal<boolean | null | undefined>;
5577
5688
  openWindow: import("@angular/core").InputSignal<boolean | null | undefined>;
@@ -5630,13 +5741,13 @@ export declare class LinkComponent {
5630
5741
  }
5631
5742
  export declare const LINK_LABEL_CLASS = "link-label";
5632
5743
  declare const linkVariants: (props?: ({
5633
- size?: "small" | "sm" | "md" | "medium" | null | undefined;
5744
+ size?: "small" | "medium" | "sm" | "md" | null | undefined;
5634
5745
  visited?: boolean | null | undefined;
5635
5746
  icon?: boolean | null | undefined;
5636
5747
  openWindow?: boolean | null | undefined;
5637
5748
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5638
5749
  export declare const linkIconVariants: (props?: ({
5639
- size?: "small" | "sm" | "md" | "medium" | null | undefined;
5750
+ size?: "small" | "medium" | "sm" | "md" | null | undefined;
5640
5751
  position?: "right" | "left" | null | undefined;
5641
5752
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5642
5753
  type LinkVariants = VariantProps<typeof linkVariants>;
@@ -5987,7 +6098,7 @@ declare abstract class SearchInputBase implements FormValueControl<string> {
5987
6098
  * The clear button is a square box: it drops to `xs` (16px) with small text, and always at `size="sm"`
5988
6099
  * so it fits inside the 24px field whatever the text size.
5989
6100
  */
5990
- buttonSize: import("@angular/core").Signal<"sm" | "xs">;
6101
+ buttonSize: import("@angular/core").Signal<"xs" | "sm">;
5991
6102
  /** Icon size follows the text: below the default 16px with small text, like `SearchBar`'s `small`. */
5992
6103
  iconClass: import("@angular/core").Signal<"" | "size-3">;
5993
6104
  /** Leading magnifier: focus-rotation animation + size-aware sizing. */
@@ -6124,7 +6235,14 @@ declare abstract class SearchBarBase implements FormValueControl<string> {
6124
6235
  * (`<SearchBar [formField]="form.query" />`).
6125
6236
  */
6126
6237
  value: import("@angular/core").ModelSignal<string>;
6127
- /** Emitted with the current query when the built-in send button is activated (click or Enter). */
6238
+ /**
6239
+ * Emitted with the current query, always a `string`: when the built-in send button is activated (click or Enter on
6240
+ * it) and, on the plain bar, when Enter is pressed in the field. The bar with `suggestions` is a combobox, so
6241
+ * Enter in its field commits the active option instead and does not emit.
6242
+ *
6243
+ * The native DOM `search` event of the inner `<input type="search">` (fired by Chromium on Enter) is stopped
6244
+ * inside the component: `(search)` on the host never receives an `Event`.
6245
+ */
6128
6246
  search: import("@angular/core").OutputEmitterRef<string>;
6129
6247
  placeholder: import("@angular/core").InputSignal<string>;
6130
6248
  /**
@@ -6159,7 +6277,7 @@ declare abstract class SearchBarBase implements FormValueControl<string> {
6159
6277
  * Icon-only action buttons (clear / send) shrink to `xs` at the `small`
6160
6278
  * size so their square box fits inside the `h-6` pill instead of overflowing.
6161
6279
  */
6162
- buttonSize: import("@angular/core").Signal<"sm" | "xs">;
6280
+ buttonSize: import("@angular/core").Signal<"xs" | "sm">;
6163
6281
  /**
6164
6282
  * Trailing/leading icons drop below the default 16px at the `small` size
6165
6283
  * so they leave breathing room inside the smaller buttons/pill.
@@ -6173,6 +6291,12 @@ declare abstract class SearchBarBase implements FormValueControl<string> {
6173
6291
  searchIconClass: import("@angular/core").Signal<string>;
6174
6292
  clearSearch(e: Event): void;
6175
6293
  emitSearch(e: Event): void;
6294
+ /**
6295
+ * Enter in the field of the plain bar: emits the current text, and leaves the keydown to bubble up to the host
6296
+ * (unlike `emitSearch`, which is for the buttons). Ignored while an IME composition is running — that Enter
6297
+ * validates the candidate, not the search — and while disabled.
6298
+ */
6299
+ emitSearchOnEnter(e: Event): void;
6176
6300
  static ɵfac: i0.ɵɵFactoryDeclaration<SearchBarBase, never>;
6177
6301
  static ɵdir: i0.ɵɵDirectiveDeclaration<SearchBarBase, never, never, {
6178
6302
  "value": {