mn-angular-lib 1.0.162 → 1.0.163

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": "mn-angular-lib",
3
- "version": "1.0.162",
3
+ "version": "1.0.163",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.1.3",
6
6
  "@angular/core": "^21.1.3",
@@ -2826,6 +2826,8 @@ type MnMultiSelectUIConfig = {
2826
2826
  errorMessages?: Record<string, string>;
2827
2827
  /** Text shown when no options match the search filter */
2828
2828
  noOptionsFound?: string;
2829
+ /** Placeholder and accessible name for the dropdown's search input */
2830
+ searchPlaceholder?: string;
2829
2831
  };
2830
2832
 
2831
2833
  declare const MN_MULTI_SELECT_CONFIG: InjectionToken<MnMultiSelectUIConfig>;
@@ -3047,6 +3049,34 @@ declare class MnMultiSelect implements OnInit {
3047
3049
  * is selected, then `collapsePlaceholder`, then `"{count} selected"`.
3048
3050
  */
3049
3051
  get collapseSummaryText(): string;
3052
+ /** Trigger text shown while nothing is selected. */
3053
+ get placeholderLabel(): string;
3054
+ /**
3055
+ * Placeholder and accessible name of the dropdown's search input.
3056
+ *
3057
+ * Search auto-enables at `searchThreshold` options, so this box appears without any
3058
+ * call site opting in — which is exactly why it must be translatable without one.
3059
+ */
3060
+ get searchPlaceholderLabel(): string;
3061
+ /** Empty text shown when the search filters every option away. */
3062
+ get noOptionsLabel(): string;
3063
+ /**
3064
+ * Resolves one of the component's own labels, preferring what the caller gave it
3065
+ * and falling back through the config layer, a conventional translation key and
3066
+ * finally a readable English default.
3067
+ *
3068
+ * Mirrors `MnCollectionBase.resolveLabel`. Every string this component puts on
3069
+ * screen that is not caller data goes through here: without the key step a
3070
+ * consumer could only translate these by repeating the same literal at every call
3071
+ * site, which is how "Search..." ends up in English on an otherwise Dutch page.
3072
+ *
3073
+ * @param explicit The label the caller passed through `props`, if any.
3074
+ * @param key The conventional translation key to try next.
3075
+ * @param fallback The English text used when neither resolves.
3076
+ * @param configured The value the config layer resolved, if any.
3077
+ * @returns The resolved label.
3078
+ */
3079
+ private resolveLabel;
3050
3080
  handleBlur(): void;
3051
3081
  get control(): _angular_forms.AbstractControl<any, any, any> | null;
3052
3082
  get showError(): boolean;
@@ -3964,6 +3994,8 @@ type MnSelectUIConfig = {
3964
3994
  errorMessages?: Record<string, string>;
3965
3995
  /** Text shown when no options match the search filter */
3966
3996
  noOptionsFound?: string;
3997
+ /** Placeholder and accessible name for the dropdown's search input */
3998
+ searchPlaceholder?: string;
3967
3999
  };
3968
4000
 
3969
4001
  declare const MN_SELECT_CONFIG: InjectionToken<MnSelectUIConfig>;
@@ -4077,6 +4109,30 @@ declare class MnSelect implements OnInit {
4077
4109
  get selectedOption(): MnSelectOption | undefined;
4078
4110
  /** The label shown in the trigger: the selected option, else the placeholder. */
4079
4111
  get displayText(): string;
4112
+ /** Trigger text shown while no option is selected. */
4113
+ get placeholderLabel(): string;
4114
+ /** Placeholder and accessible name of the dropdown's search input. */
4115
+ get searchPlaceholderLabel(): string;
4116
+ /** Empty text shown when the search filters every option away. */
4117
+ get noOptionsLabel(): string;
4118
+ /**
4119
+ * Resolves one of the component's own labels, preferring what the caller gave it
4120
+ * and falling back through the config layer, a conventional translation key and
4121
+ * finally a readable English default.
4122
+ *
4123
+ * Mirrors `MnCollectionBase.resolveLabel` and its twin in `MnMultiSelect`. Without
4124
+ * the key step a consumer could only translate these by repeating the same literal
4125
+ * at every call site, and the search box in particular auto-enables on option
4126
+ * count — it appears without anyone asking for it, so it must be translatable
4127
+ * without anyone asking either.
4128
+ *
4129
+ * @param explicit The label the caller passed through `props`, if any.
4130
+ * @param key The conventional translation key to try next.
4131
+ * @param fallback The English text used when neither resolves.
4132
+ * @param configured The value the config layer resolved, if any.
4133
+ * @returns The resolved label.
4134
+ */
4135
+ private resolveLabel;
4080
4136
  get showError(): boolean;
4081
4137
  get errorMessages(): string[];
4082
4138
  get errorMessage(): string | null;
@@ -7362,6 +7418,8 @@ declare class MnList<T = unknown> extends MnSelectableCollectionBase<T, ListData
7362
7418
  protected applyFilter(searchForItems: boolean): void;
7363
7419
  /** Accessible name for the scrollable list region. */
7364
7420
  get listRegionLabel(): string;
7421
+ /** Label on the header checkbox that selects or clears every visible row. */
7422
+ get selectAllLabel(): string;
7365
7423
  static ɵfac: i0.ɵɵFactoryDeclaration<MnList<any>, never>;
7366
7424
  static ɵcmp: i0.ɵɵComponentDeclaration<MnList<any>, "mn-list", never, {}, { "itemClick": "itemClick"; }, never, never, true, never>;
7367
7425
  }
@@ -8804,8 +8862,12 @@ declare class MnBreadcrumbs {
8804
8862
  crumbClick: EventEmitter<MnBreadcrumbItem>;
8805
8863
  /** Emits when the fallback "Back" control is activated. */
8806
8864
  back: EventEmitter<void>;
8807
- /** Default translation key / literal for the Back control's label. */
8808
- private static readonly DEFAULT_BACK_LABEL;
8865
+ /** Conventional key an app defines to translate the Back control's label. */
8866
+ private static readonly BACK_LABEL_KEY;
8867
+ /** Conventional key an app defines to name the navigation landmark. */
8868
+ private static readonly NAV_LABEL_KEY;
8869
+ /** Resolves this component's own labels against the app's bundle. */
8870
+ private readonly lang;
8809
8871
  /** Resolved tailwind-variants slot functions for the current size. */
8810
8872
  get styles(): {
8811
8873
  root: (slotProps?: ({
@@ -8846,9 +8908,25 @@ declare class MnBreadcrumbs {
8846
8908
  size?: "sm" | "md" | undefined;
8847
8909
  } & tailwind_variants.ClassProp<tailwind_merge.ClassNameValue>) | undefined) => string;
8848
8910
  } & {};
8911
+ /**
8912
+ * Accessible name of the `<nav>` landmark.
8913
+ *
8914
+ * A landmark's name is announced verbatim, so leaving it as a hardcoded English
8915
+ * "Breadcrumb" put one English word into every page of a translated app — in the
8916
+ * one place only screen-reader users hear.
8917
+ */
8918
+ get navLabel(): string;
8849
8919
  /** Whether a linkable trail should render (vs the Back fallback). */
8850
8920
  get hasTrail(): boolean;
8851
- /** Label for the Back control — the configured key/literal, or the default. */
8921
+ /**
8922
+ * Text of the Back control, already translated.
8923
+ *
8924
+ * `data.backLabel` is a key (or a literal, which `translate` passes through
8925
+ * unchanged). Without one this falls back to the conventional key and then to
8926
+ * English — never to a raw key: the old default was the bare key `'back'`, which
8927
+ * the template's translate pipe echoed as lowercase "back" in every app that had
8928
+ * not happened to define it.
8929
+ */
8852
8930
  get backLabel(): string;
8853
8931
  /** The last crumb is the current page and is rendered as plain text. */
8854
8932
  isCurrent(index: number): boolean;