@sinequa/atomic-angular 2.4.1 → 2.5.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/atomic-angular",
3
- "version": "2.4.1",
3
+ "version": "2.5.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -2595,7 +2595,7 @@ export declare class WorkspaceMentionNew implements AfterContentInit {
2595
2595
  /** The button's colour scheme. */
2596
2596
  readonly scheme: import("@angular/core").InputSignal<"default" | "neutral" | null | undefined>;
2597
2597
  /** The button's size. */
2598
- readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" | "small" | "xs" | "xsmall" | "medium" | "large" | null | undefined>;
2598
+ readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" | "small" | "medium" | "xs" | "xsmall" | "large" | null | undefined>;
2599
2599
  private readonly mention;
2600
2600
  private readonly slot;
2601
2601
  /** Whether the host put its own content inside: the icon and the label then stay out. */
@@ -1053,7 +1053,7 @@ export declare class MetadataComponent {
1053
1053
  }>;
1054
1054
  class: import("@angular/core").InputSignal<string | undefined>;
1055
1055
  variant: import("@angular/core").InputSignal<"primary" | "secondary" | null | undefined>;
1056
- size: import("@angular/core").InputSignal<"small" | "sm" | "md" | "xs" | "xsmall" | "medium" | null | undefined>;
1056
+ size: import("@angular/core").InputSignal<"small" | "medium" | "sm" | "md" | "xs" | "xsmall" | null | undefined>;
1057
1057
  scheme: import("@angular/core").InputSignal<"error" | "sage" | "success" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "warning" | "info" | null | undefined>;
1058
1058
  metadata: import("@angular/core").InputSignal<(string & Record<never, never>) | KeyOf<Article>>;
1059
1059
  article: import("@angular/core").InputSignal<Partial<Article> | (string & Record<never, never>)>;
@@ -1620,12 +1620,24 @@ export declare class MultiSelectionToolbarComponent {
1620
1620
  } | undefined;
1621
1621
  readonly class: import("@angular/core").InputSignal<string>;
1622
1622
  readonly variant: import("@angular/core").InputSignal<"light" | "dark" | "glassy" | null | undefined>;
1623
+ /**
1624
+ * Texte ajouté à l'annonce lecteur d'écran lors de la **première** sélection (ex. « F6 pour accéder
1625
+ * aux actions »). Il est fourni par l'application : seule elle sait par quel raccourci elle rend la
1626
+ * barre atteignable, la librairie n'en suppose aucun.
1627
+ */
1628
+ readonly hint: import("@angular/core").InputSignal<string | undefined>;
1623
1629
  readonly updatedCollections: import("@angular/core").OutputEmitterRef<void>;
1630
+ /** La sélection vient d'être vidée (bouton, Échap) : l'application replace le focus, la barre devient inerte. */
1631
+ readonly cleared: import("@angular/core").OutputEmitterRef<void>;
1624
1632
  readonly count: import("@angular/core").Signal<number>;
1625
1633
  readonly variants: import("@angular/core").Signal<string>;
1626
1634
  readonly ids: import("@angular/core").Signal<string[]>;
1627
1635
  readonly instanceId: import("@angular/core").Signal<string>;
1628
1636
  readonly enabledUserInput: import("@angular/core").Signal<boolean>;
1637
+ /** Vrai uniquement à la première sélection : ensuite, seul le décompte est annoncé. */
1638
+ protected readonly showHint: import("@angular/core").WritableSignal<boolean>;
1639
+ private armed;
1640
+ constructor();
1629
1641
  clearSelection: () => void;
1630
1642
  openCollectionDialog: () => Promise<void>;
1631
1643
  openExportDialog: () => void;
@@ -1642,8 +1654,14 @@ export declare class MultiSelectionToolbarComponent {
1642
1654
  "required": false;
1643
1655
  "isSignal": true;
1644
1656
  };
1657
+ "hint": {
1658
+ "alias": "hint";
1659
+ "required": false;
1660
+ "isSignal": true;
1661
+ };
1645
1662
  }, {
1646
1663
  "updatedCollections": "updatedCollections";
1664
+ "cleared": "cleared";
1647
1665
  }, never, never, true, never>;
1648
1666
  }
1649
1667
  export interface NavRouteTab {
@@ -11546,7 +11564,7 @@ export declare class SignedOutComponent {
11546
11564
  }
11547
11565
  export declare class BookmarkButtonComponent {
11548
11566
  variant: import("@angular/core").InputSignal<"primary" | "secondary" | "none" | "light-accent" | "accent" | "tertiary" | null | undefined>;
11549
- size: import("@angular/core").InputSignal<"small" | "sm" | "md" | "xs" | "xsmall" | "medium" | "lg" | "large" | null | undefined>;
11567
+ size: import("@angular/core").InputSignal<"small" | "medium" | "sm" | "md" | "xs" | "xsmall" | "lg" | "large" | null | undefined>;
11550
11568
  /**
11551
11569
  * Tab index applied to the inner button.
11552
11570
  *
@@ -11619,6 +11637,12 @@ declare class ListPanelComponent<T> {
11619
11637
  /** Accessible name of a row (typeahead/aria) — falls back to `getValue()` when omitted. */
11620
11638
  getLabel: import("@angular/core").InputSignal<((item: T) => string) | undefined>;
11621
11639
  deleteButtonTitle: import("@angular/core").InputSignal<string>;
11640
+ /**
11641
+ * Whether rows can be deleted. On by default. Off, rows carry no trash icon, `Delete` does nothing and
11642
+ * nothing announces it (no `aria-keyshortcuts`, no hint) — a list that cannot delete must not say
11643
+ * that it can.
11644
+ */
11645
+ deletable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
11622
11646
  /**
11623
11647
  * Nom accessible de la liste, posé sur le `<List role="listbox">` interne.
11624
11648
  *
@@ -11632,6 +11656,19 @@ declare class ListPanelComponent<T> {
11632
11656
  itemClick: import("@angular/core").OutputEmitterRef<T>;
11633
11657
  delete: import("@angular/core").OutputEmitterRef<ListPanelDeleteEvent<T>>;
11634
11658
  protected readonly itemTemplate: import("@angular/core").Signal<ListPanelItemDirective | undefined>;
11659
+ /**
11660
+ * `Delete`, plus `Backspace` sur une plateforme Apple : un MacBook n'a pas de touche `Delete` dédiée
11661
+ * (`fn+⌫`), et `⌫` seul émet `Backspace`. Ailleurs, `Backspace` dans une liste n'exprime aucune
11662
+ * intention de suppression.
11663
+ */
11664
+ protected readonly deleteKeys: string[];
11665
+ private readonly list;
11666
+ /**
11667
+ * Vrai tant que le focus clavier est dans la liste. À brancher sur `[navigationHint]` du pied de liste
11668
+ * (`<ListPanel #panel>` … `<ListPanelFooter [navigationHint]="panel.keyboardFocused()">`) : l'aide de
11669
+ * navigation ne s'affiche que quand elle sert.
11670
+ */
11671
+ readonly keyboardFocused: import("@angular/core").Signal<boolean>;
11635
11672
  private readonly host;
11636
11673
  private readonly injector;
11637
11674
  /** Index de la ligne supprimée, tant que le focus n'a pas été rendu à la liste. */
@@ -11677,6 +11714,11 @@ declare class ListPanelComponent<T> {
11677
11714
  "required": false;
11678
11715
  "isSignal": true;
11679
11716
  };
11717
+ "deletable": {
11718
+ "alias": "deletable";
11719
+ "required": false;
11720
+ "isSignal": true;
11721
+ };
11680
11722
  "ariaLabel": {
11681
11723
  "alias": "ariaLabel";
11682
11724
  "required": false;
@@ -15403,7 +15445,7 @@ export declare class AggregationComponent {
15403
15445
  *
15404
15446
  * @default "auto"
15405
15447
  */
15406
- type: import("@angular/core").InputSignal<"auto" | "list" | "tree" | "date">;
15448
+ type: import("@angular/core").InputSignal<"list" | "tree" | "date" | "auto">;
15407
15449
  /**
15408
15450
  * Whether the host removes itself from the layout (Tailwind's `hidden`, i.e.
15409
15451
  * `display: none`) when it resolves to zero items. When `false` (default), the
@@ -15828,7 +15870,7 @@ export declare class AppliedFiltersComponent {
15828
15870
  /** Chip colour scheme, passed to galactik's `tag`. */
15829
15871
  readonly scheme: import("@angular/core").InputSignal<"error" | "sage" | "success" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "warning" | "info" | null | undefined>;
15830
15872
  /** Chip size, passed to galactik's `tag`. */
15831
- readonly size: import("@angular/core").InputSignal<"small" | "sm" | "md" | "xs" | "xsmall" | "medium" | null | undefined>;
15873
+ readonly size: import("@angular/core").InputSignal<"small" | "medium" | "sm" | "md" | "xs" | "xsmall" | null | undefined>;
15832
15874
  /** Extra classes for each chip, merged by galactik's `tag`. */
15833
15875
  readonly chipClass: import("@angular/core").InputSignal<string>;
15834
15876
  /** A chip was removed. */
@@ -18657,6 +18699,9 @@ export declare class SettingsDialogComponent {
18657
18699
  labelKey: string;
18658
18700
  }[];
18659
18701
  protected readonly panel: import("@angular/core").WritableSignal<SettingsPanelId>;
18702
+ /** Once the user picks a panel, the focus is theirs: the account panel stops claiming it. */
18703
+ protected readonly navigated: import("@angular/core").WritableSignal<boolean>;
18704
+ protected navigate(id: SettingsPanelId): void;
18660
18705
  /** Set when another instance is already open: this one only redirects it, then ends. */
18661
18706
  protected readonly duplicate: boolean;
18662
18707
  constructor();
@@ -18673,6 +18718,18 @@ export declare const Settings: import("@sinequa/galactik").Callable<SettingsDial
18673
18718
  * mounts outside this panel's tree and would otherwise lose the scoped providers.
18674
18719
  */
18675
18720
  export declare class SettingsAccountPanelComponent {
18721
+ /**
18722
+ * Puts the focus on the first control of the profile once it is rendered. Off by default: when the
18723
+ * user reaches this panel from the navigation, the focus belongs to the navigation button they just
18724
+ * activated. The dialog turns it on only for the panel it opens on.
18725
+ *
18726
+ * The dialog itself lands the focus on its content, to be announced before Tab walks in — which
18727
+ * leaves a keyboard user a handful of Tabs (close, navigation, photo…) before the first field of
18728
+ * the profile they came to edit.
18729
+ */
18730
+ readonly focusOnOpen: import("@angular/core").InputSignal<boolean>;
18731
+ private readonly host;
18732
+ private readonly destroyRef;
18676
18733
  protected readonly principalStore: {
18677
18734
  id: import("@angular/core").Signal<string>;
18678
18735
  id2: import("@angular/core").Signal<string>;
@@ -18743,11 +18800,18 @@ export declare class SettingsAccountPanelComponent {
18743
18800
  protected readonly username: import("@angular/core").Signal<string | null>;
18744
18801
  /** Same conditions as the profile form: feature flag, credentials auth mode, editable partition. */
18745
18802
  protected readonly allowChangePassword: import("@angular/core").Signal<boolean>;
18803
+ constructor();
18746
18804
  protected resetSettings(): void;
18747
18805
  protected overrideUser(): void;
18748
18806
  protected revertOverride(): void;
18749
18807
  static ɵfac: i0.ɵɵFactoryDeclaration<SettingsAccountPanelComponent, never>;
18750
- static ɵcmp: i0.ɵɵComponentDeclaration<SettingsAccountPanelComponent, "settings-account-panel", never, {}, {}, never, never, true, never>;
18808
+ static ɵcmp: i0.ɵɵComponentDeclaration<SettingsAccountPanelComponent, "settings-account-panel", never, {
18809
+ "focusOnOpen": {
18810
+ "alias": "focusOnOpen";
18811
+ "required": false;
18812
+ "isSignal": true;
18813
+ };
18814
+ }, {}, never, never, true, never>;
18751
18815
  }
18752
18816
  /**
18753
18817
  * Theme and language of the user interface — both applied on the spot and persisted in the user