@besaitech/ng-design-system 0.0.32 → 0.0.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.
@@ -1474,6 +1474,26 @@ class SdsCalendar {
1474
1474
  firstDayOfWeek = input(1, ...(ngDevMode ? [{ debugName: "firstDayOfWeek" }] : []));
1475
1475
  locale = input('fr-FR', ...(ngDevMode ? [{ debugName: "locale" }] : []));
1476
1476
  showActions = input(true, ...(ngDevMode ? [{ debugName: "showActions" }] : []));
1477
+ /**
1478
+ * Accessible name for the calendar container. French default so existing consumers are unchanged,
1479
+ * but an app serving more than one language MUST translate it.
1480
+ */
1481
+ calendarLabel = input('Calendrier', ...(ngDevMode ? [{ debugName: "calendarLabel" }] : []));
1482
+ /**
1483
+ * Accessible name for the "previous" nav button. It is icon-only, so this string is its ONLY
1484
+ * accessible name — a hardcoded French one is simply wrong in every other locale. Translate it in
1485
+ * the consuming app.
1486
+ */
1487
+ previousLabel = input('Précédent', ...(ngDevMode ? [{ debugName: "previousLabel" }] : []));
1488
+ /** Accessible name for the icon-only "next" nav button. See {@link previousLabel}. */
1489
+ nextLabel = input('Suivant', ...(ngDevMode ? [{ debugName: "nextLabel" }] : []));
1490
+ /**
1491
+ * Visible text of the "today" action (shown when {@link showActions} is true). Translate it in the
1492
+ * consuming app — the library ships no i18n of its own.
1493
+ */
1494
+ todayActionLabel = input("Aujourd'hui", ...(ngDevMode ? [{ debugName: "todayActionLabel" }] : []));
1495
+ /** Visible text of the "clear" action. See {@link todayActionLabel}. */
1496
+ clearActionLabel = input('Effacer', ...(ngDevMode ? [{ debugName: "clearActionLabel" }] : []));
1477
1497
  /** Emitted when a concrete date is picked (day click or "Aujourd'hui"). */
1478
1498
  dateSelect = output();
1479
1499
  view = signal('day', ...(ngDevMode ? [{ debugName: "view" }] : []));
@@ -1707,15 +1727,15 @@ class SdsCalendar {
1707
1727
  return cls;
1708
1728
  }
1709
1729
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdsCalendar, deps: [], target: i0.ɵɵFactoryTarget.Component });
1710
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdsCalendar, isStandalone: true, selector: "sds-calendar", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, showActions: { classPropertyName: "showActions", publicName: "showActions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", dateSelect: "dateSelect" }, host: { classAttribute: "block" }, ngImport: i0, template: `
1730
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdsCalendar, isStandalone: true, selector: "sds-calendar", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, showActions: { classPropertyName: "showActions", publicName: "showActions", isSignal: true, isRequired: false, transformFunction: null }, calendarLabel: { classPropertyName: "calendarLabel", publicName: "calendarLabel", isSignal: true, isRequired: false, transformFunction: null }, previousLabel: { classPropertyName: "previousLabel", publicName: "previousLabel", isSignal: true, isRequired: false, transformFunction: null }, nextLabel: { classPropertyName: "nextLabel", publicName: "nextLabel", isSignal: true, isRequired: false, transformFunction: null }, todayActionLabel: { classPropertyName: "todayActionLabel", publicName: "todayActionLabel", isSignal: true, isRequired: false, transformFunction: null }, clearActionLabel: { classPropertyName: "clearActionLabel", publicName: "clearActionLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", dateSelect: "dateSelect" }, host: { classAttribute: "block" }, ngImport: i0, template: `
1711
1731
  <div
1712
1732
  class="w-[20rem] select-none rounded-card border border-border bg-surface p-3 shadow-lg"
1713
1733
  role="group"
1714
- aria-label="Calendrier"
1734
+ [attr.aria-label]="calendarLabel()"
1715
1735
  >
1716
1736
  <!-- Header -->
1717
1737
  <div class="mb-2 flex items-center justify-between">
1718
- <button type="button" [class]="navBtn" aria-label="Précédent" (click)="prev()">
1738
+ <button type="button" [class]="navBtn" [attr.aria-label]="previousLabel()" (click)="prev()">
1719
1739
  <sds-icon name="chevron-left" [size]="18" />
1720
1740
  </button>
1721
1741
 
@@ -1740,7 +1760,7 @@ class SdsCalendar {
1740
1760
  }
1741
1761
  </div>
1742
1762
 
1743
- <button type="button" [class]="navBtn" aria-label="Suivant" (click)="next()">
1763
+ <button type="button" [class]="navBtn" [attr.aria-label]="nextLabel()" (click)="next()">
1744
1764
  <sds-icon name="chevron-right" [size]="18" />
1745
1765
  </button>
1746
1766
  </div>
@@ -1824,9 +1844,9 @@ class SdsCalendar {
1824
1844
  [disabled]="todayDisabled()"
1825
1845
  (click)="goToday()"
1826
1846
  >
1827
- Aujourd'hui
1847
+ {{ todayActionLabel() }}
1828
1848
  </button>
1829
- <button type="button" [class]="actionBtn" (click)="clear()">Effacer</button>
1849
+ <button type="button" [class]="actionBtn" (click)="clear()">{{ clearActionLabel() }}</button>
1830
1850
  </div>
1831
1851
  }
1832
1852
  </div>
@@ -1843,11 +1863,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
1843
1863
  <div
1844
1864
  class="w-[20rem] select-none rounded-card border border-border bg-surface p-3 shadow-lg"
1845
1865
  role="group"
1846
- aria-label="Calendrier"
1866
+ [attr.aria-label]="calendarLabel()"
1847
1867
  >
1848
1868
  <!-- Header -->
1849
1869
  <div class="mb-2 flex items-center justify-between">
1850
- <button type="button" [class]="navBtn" aria-label="Précédent" (click)="prev()">
1870
+ <button type="button" [class]="navBtn" [attr.aria-label]="previousLabel()" (click)="prev()">
1851
1871
  <sds-icon name="chevron-left" [size]="18" />
1852
1872
  </button>
1853
1873
 
@@ -1872,7 +1892,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
1872
1892
  }
1873
1893
  </div>
1874
1894
 
1875
- <button type="button" [class]="navBtn" aria-label="Suivant" (click)="next()">
1895
+ <button type="button" [class]="navBtn" [attr.aria-label]="nextLabel()" (click)="next()">
1876
1896
  <sds-icon name="chevron-right" [size]="18" />
1877
1897
  </button>
1878
1898
  </div>
@@ -1956,15 +1976,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
1956
1976
  [disabled]="todayDisabled()"
1957
1977
  (click)="goToday()"
1958
1978
  >
1959
- Aujourd'hui
1979
+ {{ todayActionLabel() }}
1960
1980
  </button>
1961
- <button type="button" [class]="actionBtn" (click)="clear()">Effacer</button>
1981
+ <button type="button" [class]="actionBtn" (click)="clear()">{{ clearActionLabel() }}</button>
1962
1982
  </div>
1963
1983
  }
1964
1984
  </div>
1965
1985
  `,
1966
1986
  }]
1967
- }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], firstDayOfWeek: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstDayOfWeek", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], showActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "showActions", required: false }] }], dateSelect: [{ type: i0.Output, args: ["dateSelect"] }] } });
1987
+ }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], firstDayOfWeek: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstDayOfWeek", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], showActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "showActions", required: false }] }], calendarLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "calendarLabel", required: false }] }], previousLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousLabel", required: false }] }], nextLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextLabel", required: false }] }], todayActionLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "todayActionLabel", required: false }] }], clearActionLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearActionLabel", required: false }] }], dateSelect: [{ type: i0.Output, args: ["dateSelect"] }] } });
1968
1988
 
1969
1989
  const SIZES$5 = {
1970
1990
  sm: 'h-9 text-sm',
@@ -1999,6 +2019,31 @@ class SdsDatePicker {
1999
2019
  disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
2000
2020
  /** Custom display formatter (default dd/MM/yyyy). */
2001
2021
  format = input(formatDdMmYyyy, ...(ngDevMode ? [{ debugName: "format" }] : []));
2022
+ /**
2023
+ * Accessible name for the clear button. French default so existing consumers are unchanged, but an
2024
+ * app serving more than one language MUST translate it — it is an icon-only control, so this string
2025
+ * is its only name.
2026
+ */
2027
+ clearLabel = input('Effacer la date', ...(ngDevMode ? [{ debugName: "clearLabel" }] : []));
2028
+ /**
2029
+ * Accessible name for the icon-only calendar toggle while the panel is CLOSED. See
2030
+ * {@link clearLabel} for why this has to be translatable.
2031
+ */
2032
+ openCalendarLabel = input('Ouvrir le calendrier', ...(ngDevMode ? [{ debugName: "openCalendarLabel" }] : []));
2033
+ /** Accessible name for the calendar toggle while the panel is OPEN. See {@link openCalendarLabel}. */
2034
+ closeCalendarLabel = input('Fermer le calendrier', ...(ngDevMode ? [{ debugName: "closeCalendarLabel" }] : []));
2035
+ /** Accessible name for the overlay dialog that holds the calendar. */
2036
+ panelLabel = input('Sélection de date', ...(ngDevMode ? [{ debugName: "panelLabel" }] : []));
2037
+ /**
2038
+ * Labels forwarded to the embedded <sds-calendar>. They live here because the picker is how the
2039
+ * calendar is normally reached — without forwarding, a consumer could translate the field but not
2040
+ * the panel it opens. Defaults match SdsCalendar's own, so nothing changes for existing consumers.
2041
+ */
2042
+ calendarLabel = input('Calendrier', ...(ngDevMode ? [{ debugName: "calendarLabel" }] : []));
2043
+ previousLabel = input('Précédent', ...(ngDevMode ? [{ debugName: "previousLabel" }] : []));
2044
+ nextLabel = input('Suivant', ...(ngDevMode ? [{ debugName: "nextLabel" }] : []));
2045
+ todayActionLabel = input("Aujourd'hui", ...(ngDevMode ? [{ debugName: "todayActionLabel" }] : []));
2046
+ clearActionLabel = input('Effacer', ...(ngDevMode ? [{ debugName: "clearActionLabel" }] : []));
2002
2047
  value = signal(null, ...(ngDevMode ? [{ debugName: "value" }] : []));
2003
2048
  open = signal(false, ...(ngDevMode ? [{ debugName: "open" }] : []));
2004
2049
  cvaDisabled = signal(false, ...(ngDevMode ? [{ debugName: "cvaDisabled" }] : []));
@@ -2146,7 +2191,7 @@ class SdsDatePicker {
2146
2191
  this.cvaDisabled.set(isDisabled);
2147
2192
  }
2148
2193
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdsDatePicker, deps: [], target: i0.ɵɵFactoryTarget.Component });
2149
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdsDatePicker, isStandalone: true, selector: "sds-date-picker", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, inline: { classPropertyName: "inline", publicName: "inline", isSignal: true, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, showActions: { classPropertyName: "showActions", publicName: "showActions", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:click": "onDocumentClick($event)", "keydown.escape": "close(true)" }, classAttribute: "block" }, providers: [
2194
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdsDatePicker, isStandalone: true, selector: "sds-date-picker", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, inline: { classPropertyName: "inline", publicName: "inline", isSignal: true, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, showActions: { classPropertyName: "showActions", publicName: "showActions", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, clearLabel: { classPropertyName: "clearLabel", publicName: "clearLabel", isSignal: true, isRequired: false, transformFunction: null }, openCalendarLabel: { classPropertyName: "openCalendarLabel", publicName: "openCalendarLabel", isSignal: true, isRequired: false, transformFunction: null }, closeCalendarLabel: { classPropertyName: "closeCalendarLabel", publicName: "closeCalendarLabel", isSignal: true, isRequired: false, transformFunction: null }, panelLabel: { classPropertyName: "panelLabel", publicName: "panelLabel", isSignal: true, isRequired: false, transformFunction: null }, calendarLabel: { classPropertyName: "calendarLabel", publicName: "calendarLabel", isSignal: true, isRequired: false, transformFunction: null }, previousLabel: { classPropertyName: "previousLabel", publicName: "previousLabel", isSignal: true, isRequired: false, transformFunction: null }, nextLabel: { classPropertyName: "nextLabel", publicName: "nextLabel", isSignal: true, isRequired: false, transformFunction: null }, todayActionLabel: { classPropertyName: "todayActionLabel", publicName: "todayActionLabel", isSignal: true, isRequired: false, transformFunction: null }, clearActionLabel: { classPropertyName: "clearActionLabel", publicName: "clearActionLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:click": "onDocumentClick($event)", "keydown.escape": "close(true)" }, classAttribute: "block" }, providers: [
2150
2195
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SdsDatePicker), multi: true },
2151
2196
  ], viewQueries: [{ propertyName: "calendar", first: true, predicate: SdsCalendar, descendants: true, isSignal: true }, { propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true, isSignal: true }], ngImport: i0, template: `
2152
2197
  @if (label()) {
@@ -2163,6 +2208,11 @@ class SdsDatePicker {
2163
2208
  [firstDayOfWeek]="firstDayOfWeek()"
2164
2209
  [locale]="locale()"
2165
2210
  [showActions]="showActions()"
2211
+ [calendarLabel]="calendarLabel()"
2212
+ [previousLabel]="previousLabel()"
2213
+ [nextLabel]="nextLabel()"
2214
+ [todayActionLabel]="todayActionLabel()"
2215
+ [clearActionLabel]="clearActionLabel()"
2166
2216
  (valueChange)="onCalendarValue($event)"
2167
2217
  />
2168
2218
  } @else {
@@ -2192,7 +2242,7 @@ class SdsDatePicker {
2192
2242
  <button
2193
2243
  type="button"
2194
2244
  tabindex="-1"
2195
- aria-label="Effacer la date"
2245
+ [attr.aria-label]="clearLabel()"
2196
2246
  class="absolute right-10 inline-flex h-6 w-6 items-center justify-center rounded-full text-ink-faint hover:bg-black/5 hover:text-ink-soft"
2197
2247
  (click)="clear($event)"
2198
2248
  >
@@ -2203,7 +2253,7 @@ class SdsDatePicker {
2203
2253
  <button
2204
2254
  type="button"
2205
2255
  tabindex="-1"
2206
- [attr.aria-label]="open() ? 'Fermer le calendrier' : 'Ouvrir le calendrier'"
2256
+ [attr.aria-label]="open() ? closeCalendarLabel() : openCalendarLabel()"
2207
2257
  class="absolute right-2 inline-flex h-7 w-7 items-center justify-center rounded-control text-ink-soft hover:bg-muted"
2208
2258
  (click)="toggle($event)"
2209
2259
  >
@@ -2218,7 +2268,7 @@ class SdsDatePicker {
2218
2268
  class="fixed z-[1000]"
2219
2269
  role="dialog"
2220
2270
  aria-modal="false"
2221
- aria-label="Sélection de date"
2271
+ [attr.aria-label]="panelLabel()"
2222
2272
  (keydown.escape)="close(true)"
2223
2273
  >
2224
2274
  <sds-calendar
@@ -2228,6 +2278,11 @@ class SdsDatePicker {
2228
2278
  [firstDayOfWeek]="firstDayOfWeek()"
2229
2279
  [locale]="locale()"
2230
2280
  [showActions]="showActions()"
2281
+ [calendarLabel]="calendarLabel()"
2282
+ [previousLabel]="previousLabel()"
2283
+ [nextLabel]="nextLabel()"
2284
+ [todayActionLabel]="todayActionLabel()"
2285
+ [clearActionLabel]="clearActionLabel()"
2231
2286
  (valueChange)="onCalendarValue($event)"
2232
2287
  (dateSelect)="close(true)"
2233
2288
  />
@@ -2242,7 +2297,7 @@ class SdsDatePicker {
2242
2297
  @if (error()) {
2243
2298
  <p class="mt-1.5 text-xs font-medium text-danger">{{ error() }}</p>
2244
2299
  }
2245
- `, isInline: true, dependencies: [{ kind: "component", type: SdsIcon, selector: "sds-icon", inputs: ["name", "size", "strokeWidth"] }, { kind: "component", type: SdsCalendar, selector: "sds-calendar", inputs: ["value", "min", "max", "firstDayOfWeek", "locale", "showActions"], outputs: ["valueChange", "dateSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2300
+ `, isInline: true, dependencies: [{ kind: "component", type: SdsIcon, selector: "sds-icon", inputs: ["name", "size", "strokeWidth"] }, { kind: "component", type: SdsCalendar, selector: "sds-calendar", inputs: ["value", "min", "max", "firstDayOfWeek", "locale", "showActions", "calendarLabel", "previousLabel", "nextLabel", "todayActionLabel", "clearActionLabel"], outputs: ["valueChange", "dateSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2246
2301
  }
2247
2302
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdsDatePicker, decorators: [{
2248
2303
  type: Component,
@@ -2273,6 +2328,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
2273
2328
  [firstDayOfWeek]="firstDayOfWeek()"
2274
2329
  [locale]="locale()"
2275
2330
  [showActions]="showActions()"
2331
+ [calendarLabel]="calendarLabel()"
2332
+ [previousLabel]="previousLabel()"
2333
+ [nextLabel]="nextLabel()"
2334
+ [todayActionLabel]="todayActionLabel()"
2335
+ [clearActionLabel]="clearActionLabel()"
2276
2336
  (valueChange)="onCalendarValue($event)"
2277
2337
  />
2278
2338
  } @else {
@@ -2302,7 +2362,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
2302
2362
  <button
2303
2363
  type="button"
2304
2364
  tabindex="-1"
2305
- aria-label="Effacer la date"
2365
+ [attr.aria-label]="clearLabel()"
2306
2366
  class="absolute right-10 inline-flex h-6 w-6 items-center justify-center rounded-full text-ink-faint hover:bg-black/5 hover:text-ink-soft"
2307
2367
  (click)="clear($event)"
2308
2368
  >
@@ -2313,7 +2373,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
2313
2373
  <button
2314
2374
  type="button"
2315
2375
  tabindex="-1"
2316
- [attr.aria-label]="open() ? 'Fermer le calendrier' : 'Ouvrir le calendrier'"
2376
+ [attr.aria-label]="open() ? closeCalendarLabel() : openCalendarLabel()"
2317
2377
  class="absolute right-2 inline-flex h-7 w-7 items-center justify-center rounded-control text-ink-soft hover:bg-muted"
2318
2378
  (click)="toggle($event)"
2319
2379
  >
@@ -2328,7 +2388,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
2328
2388
  class="fixed z-[1000]"
2329
2389
  role="dialog"
2330
2390
  aria-modal="false"
2331
- aria-label="Sélection de date"
2391
+ [attr.aria-label]="panelLabel()"
2332
2392
  (keydown.escape)="close(true)"
2333
2393
  >
2334
2394
  <sds-calendar
@@ -2338,6 +2398,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
2338
2398
  [firstDayOfWeek]="firstDayOfWeek()"
2339
2399
  [locale]="locale()"
2340
2400
  [showActions]="showActions()"
2401
+ [calendarLabel]="calendarLabel()"
2402
+ [previousLabel]="previousLabel()"
2403
+ [nextLabel]="nextLabel()"
2404
+ [todayActionLabel]="todayActionLabel()"
2405
+ [clearActionLabel]="clearActionLabel()"
2341
2406
  (valueChange)="onCalendarValue($event)"
2342
2407
  (dateSelect)="close(true)"
2343
2408
  />
@@ -2354,7 +2419,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
2354
2419
  }
2355
2420
  `,
2356
2421
  }]
2357
- }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], hint: [{ type: i0.Input, args: [{ isSignal: true, alias: "hint", required: false }] }], error: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], firstDayOfWeek: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstDayOfWeek", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], inline: [{ type: i0.Input, args: [{ isSignal: true, alias: "inline", required: false }] }], clearable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearable", required: false }] }], showActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "showActions", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], calendar: [{ type: i0.ViewChild, args: [i0.forwardRef(() => SdsCalendar), { isSignal: true }] }], trigger: [{ type: i0.ViewChild, args: ['trigger', { isSignal: true }] }] } });
2422
+ }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], hint: [{ type: i0.Input, args: [{ isSignal: true, alias: "hint", required: false }] }], error: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], firstDayOfWeek: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstDayOfWeek", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], inline: [{ type: i0.Input, args: [{ isSignal: true, alias: "inline", required: false }] }], clearable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearable", required: false }] }], showActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "showActions", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], clearLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearLabel", required: false }] }], openCalendarLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "openCalendarLabel", required: false }] }], closeCalendarLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeCalendarLabel", required: false }] }], panelLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelLabel", required: false }] }], calendarLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "calendarLabel", required: false }] }], previousLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousLabel", required: false }] }], nextLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextLabel", required: false }] }], todayActionLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "todayActionLabel", required: false }] }], clearActionLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearActionLabel", required: false }] }], calendar: [{ type: i0.ViewChild, args: [i0.forwardRef(() => SdsCalendar), { isSignal: true }] }], trigger: [{ type: i0.ViewChild, args: ['trigger', { isSignal: true }] }] } });
2358
2423
  let nextId$6 = 0;
2359
2424
 
2360
2425
  const SIZES$4 = {
@@ -3782,6 +3847,40 @@ class SdsPhoneInput {
3782
3847
  /** Show an example number as a hint when no [hint] is provided. */
3783
3848
  showExampleHint = input(true, ...(ngDevMode ? [{ debugName: "showExampleHint", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
3784
3849
  requiredMessage = input('Numéro de téléphone requis', ...(ngDevMode ? [{ debugName: "requiredMessage" }] : []));
3850
+ /**
3851
+ * Accessible name of the country selector. `{country}` is replaced with the selected country's
3852
+ * name. A token rather than a prefix because word order differs per language. French default so
3853
+ * existing consumers are unchanged; translate it in any app serving more than one language.
3854
+ *
3855
+ * Note the interpolated country NAME still comes from the library's built-in country table, which
3856
+ * is French-only — translating this template fixes the wrapper, not the name inside it.
3857
+ */
3858
+ countryLabel = input('Indicatif pays : {country}', ...(ngDevMode ? [{ debugName: "countryLabel" }] : []));
3859
+ /**
3860
+ * Accessible name for the clear button. It is icon-only, so this string is its ONLY accessible
3861
+ * name — a hardcoded French one is simply wrong in every other locale.
3862
+ */
3863
+ clearLabel = input('Effacer', ...(ngDevMode ? [{ debugName: "clearLabel" }] : []));
3864
+ /** Accessible name for the country-search field inside the dropdown. */
3865
+ searchLabel = input('Rechercher un pays', ...(ngDevMode ? [{ debugName: "searchLabel" }] : []));
3866
+ /** Placeholder text of the country-search field. */
3867
+ searchPlaceholder = input('Rechercher un pays…', ...(ngDevMode ? [{ debugName: "searchPlaceholder" }] : []));
3868
+ /** Shown in place of the list when no country matches the filter. */
3869
+ noResultsLabel = input('Aucun pays', ...(ngDevMode ? [{ debugName: "noResultsLabel" }] : []));
3870
+ /**
3871
+ * Built-in validation messages. `{lengths}` is replaced with the country's accepted national
3872
+ * lengths, joined with {@link lengthSeparator}. Siblings of {@link requiredMessage}, which was
3873
+ * already translatable — these two were not, so an English or Dutch app showed French errors.
3874
+ */
3875
+ incompleteMessage = input('Numéro incomplet — {lengths} chiffres attendus', ...(ngDevMode ? [{ debugName: "incompleteMessage" }] : []));
3876
+ invalidMessage = input('Numéro invalide — {lengths} chiffres attendus', ...(ngDevMode ? [{ debugName: "invalidMessage" }] : []));
3877
+ /** Joins the accepted lengths when a country allows more than one (e.g. "8 ou 9"). */
3878
+ lengthSeparator = input(' ou ', ...(ngDevMode ? [{ debugName: "lengthSeparator" }] : []));
3879
+ /**
3880
+ * Auto-generated example hint (see {@link showExampleHint}). `{number}` is replaced with the
3881
+ * formatted international example number.
3882
+ */
3883
+ exampleHintTemplate = input('Ex. {number}', ...(ngDevMode ? [{ debugName: "exampleHintTemplate" }] : []));
3785
3884
  /** Emitted with the parsed parts whenever the number or country changes. */
3786
3885
  phoneChange = output();
3787
3886
  national = signal('', ...(ngDevMode ? [{ debugName: "national" }] : []));
@@ -3832,8 +3931,10 @@ class SdsPhoneInput {
3832
3931
  if (!this.showExampleHint())
3833
3932
  return '';
3834
3933
  const c = this.country();
3835
- return `Ex. +${c.dialCode} ${sdsFormatNational(c.example, c.format)}`;
3934
+ const number = `+${c.dialCode} ${sdsFormatNational(c.example, c.format)}`;
3935
+ return this.exampleHintTemplate().replace('{number}', number);
3836
3936
  }, ...(ngDevMode ? [{ debugName: "autoHint" }] : []));
3937
+ countryAriaLabel = computed(() => this.countryLabel().replace('{country}', this.country().name), ...(ngDevMode ? [{ debugName: "countryAriaLabel" }] : []));
3837
3938
  e164 = computed(() => {
3838
3939
  const d = this.national();
3839
3940
  return d ? `+${this.country().dialCode}${d}` : '';
@@ -3861,12 +3962,12 @@ class SdsPhoneInput {
3861
3962
  if (this.required() && !this.national())
3862
3963
  return this.requiredMessage();
3863
3964
  const lengths = this.country().lengths;
3864
- const expected = lengths.join(' ou ');
3965
+ const expected = lengths.join(this.lengthSeparator());
3865
3966
  const len = this.national().length;
3866
3967
  const min = Math.min(...lengths);
3867
3968
  if (len < min)
3868
- return `Numéro incomplet — ${expected} chiffres attendus`;
3869
- return `Numéro invalide — ${expected} chiffres attendus`;
3969
+ return this.incompleteMessage().replace('{lengths}', expected);
3970
+ return this.invalidMessage().replace('{lengths}', expected);
3870
3971
  }, ...(ngDevMode ? [{ debugName: "errorMessage" }] : []));
3871
3972
  describedBy = computed(() => {
3872
3973
  if (this.showError())
@@ -4149,7 +4250,7 @@ class SdsPhoneInput {
4149
4250
  this.onValidatorChange = fn;
4150
4251
  }
4151
4252
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdsPhoneInput, deps: [], target: i0.ɵɵFactoryTarget.Component });
4152
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdsPhoneInput, isStandalone: true, selector: "sds-phone-input", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, defaultCountry: { classPropertyName: "defaultCountry", publicName: "defaultCountry", isSignal: true, isRequired: false, transformFunction: null }, preferredCountries: { classPropertyName: "preferredCountries", publicName: "preferredCountries", isSignal: true, isRequired: false, transformFunction: null }, onlyCountries: { classPropertyName: "onlyCountries", publicName: "onlyCountries", isSignal: true, isRequired: false, transformFunction: null }, showExampleHint: { classPropertyName: "showExampleHint", publicName: "showExampleHint", isSignal: true, isRequired: false, transformFunction: null }, requiredMessage: { classPropertyName: "requiredMessage", publicName: "requiredMessage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { phoneChange: "phoneChange" }, host: { listeners: { "document:click": "onDocumentClick($event)" }, classAttribute: "block" }, providers: [
4253
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdsPhoneInput, isStandalone: true, selector: "sds-phone-input", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, defaultCountry: { classPropertyName: "defaultCountry", publicName: "defaultCountry", isSignal: true, isRequired: false, transformFunction: null }, preferredCountries: { classPropertyName: "preferredCountries", publicName: "preferredCountries", isSignal: true, isRequired: false, transformFunction: null }, onlyCountries: { classPropertyName: "onlyCountries", publicName: "onlyCountries", isSignal: true, isRequired: false, transformFunction: null }, showExampleHint: { classPropertyName: "showExampleHint", publicName: "showExampleHint", isSignal: true, isRequired: false, transformFunction: null }, requiredMessage: { classPropertyName: "requiredMessage", publicName: "requiredMessage", isSignal: true, isRequired: false, transformFunction: null }, countryLabel: { classPropertyName: "countryLabel", publicName: "countryLabel", isSignal: true, isRequired: false, transformFunction: null }, clearLabel: { classPropertyName: "clearLabel", publicName: "clearLabel", isSignal: true, isRequired: false, transformFunction: null }, searchLabel: { classPropertyName: "searchLabel", publicName: "searchLabel", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, noResultsLabel: { classPropertyName: "noResultsLabel", publicName: "noResultsLabel", isSignal: true, isRequired: false, transformFunction: null }, incompleteMessage: { classPropertyName: "incompleteMessage", publicName: "incompleteMessage", isSignal: true, isRequired: false, transformFunction: null }, invalidMessage: { classPropertyName: "invalidMessage", publicName: "invalidMessage", isSignal: true, isRequired: false, transformFunction: null }, lengthSeparator: { classPropertyName: "lengthSeparator", publicName: "lengthSeparator", isSignal: true, isRequired: false, transformFunction: null }, exampleHintTemplate: { classPropertyName: "exampleHintTemplate", publicName: "exampleHintTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { phoneChange: "phoneChange" }, host: { listeners: { "document:click": "onDocumentClick($event)" }, classAttribute: "block" }, providers: [
4153
4254
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SdsPhoneInput), multi: true },
4154
4255
  { provide: NG_VALIDATORS, useExisting: forwardRef(() => SdsPhoneInput), multi: true },
4155
4256
  ], viewQueries: [{ propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true, isSignal: true }, { propertyName: "field", first: true, predicate: ["field"], descendants: true, isSignal: true }], ngImport: i0, template: `
@@ -4172,7 +4273,7 @@ class SdsPhoneInput {
4172
4273
  [attr.aria-expanded]="open()"
4173
4274
  [attr.aria-controls]="listId"
4174
4275
  aria-haspopup="listbox"
4175
- [attr.aria-label]="'Indicatif pays : ' + country().name"
4276
+ [attr.aria-label]="countryAriaLabel()"
4176
4277
  class="flex shrink-0 items-center gap-1.5 rounded-l-control pl-2.5 pr-2 focus:outline-none"
4177
4278
  [class.cursor-not-allowed]="isDisabled()"
4178
4279
  (click)="toggle()"
@@ -4213,7 +4314,7 @@ class SdsPhoneInput {
4213
4314
  <button
4214
4315
  type="button"
4215
4316
  tabindex="-1"
4216
- aria-label="Effacer"
4317
+ [attr.aria-label]="clearLabel()"
4217
4318
  class="mr-1.5 inline-flex w-7 shrink-0 items-center justify-center rounded-full text-ink-faint hover:bg-black/5 hover:text-ink-soft"
4218
4319
  (click)="clear()"
4219
4320
  >
@@ -4235,8 +4336,8 @@ class SdsPhoneInput {
4235
4336
  type="text"
4236
4337
  [attr.aria-controls]="listId"
4237
4338
  [value]="filterText()"
4238
- placeholder="Rechercher un pays…"
4239
- aria-label="Rechercher un pays"
4339
+ [placeholder]="searchPlaceholder()"
4340
+ [attr.aria-label]="searchLabel()"
4240
4341
  class="h-9 w-full bg-transparent pl-8 pr-2 text-sm text-ink outline-none placeholder:text-ink-faint"
4241
4342
  (input)="onFilter($event)"
4242
4343
  (keydown)="onFilterKeydown($event)"
@@ -4262,7 +4363,7 @@ class SdsPhoneInput {
4262
4363
  <span class="text-ink-faint">+{{ c.dialCode }}</span>
4263
4364
  </li>
4264
4365
  } @empty {
4265
- <li class="px-3 py-2 text-sm text-ink-faint">Aucun pays</li>
4366
+ <li class="px-3 py-2 text-sm text-ink-faint">{{ noResultsLabel() }}</li>
4266
4367
  }
4267
4368
  </ul>
4268
4369
  </div>
@@ -4313,7 +4414,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
4313
4414
  [attr.aria-expanded]="open()"
4314
4415
  [attr.aria-controls]="listId"
4315
4416
  aria-haspopup="listbox"
4316
- [attr.aria-label]="'Indicatif pays : ' + country().name"
4417
+ [attr.aria-label]="countryAriaLabel()"
4317
4418
  class="flex shrink-0 items-center gap-1.5 rounded-l-control pl-2.5 pr-2 focus:outline-none"
4318
4419
  [class.cursor-not-allowed]="isDisabled()"
4319
4420
  (click)="toggle()"
@@ -4354,7 +4455,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
4354
4455
  <button
4355
4456
  type="button"
4356
4457
  tabindex="-1"
4357
- aria-label="Effacer"
4458
+ [attr.aria-label]="clearLabel()"
4358
4459
  class="mr-1.5 inline-flex w-7 shrink-0 items-center justify-center rounded-full text-ink-faint hover:bg-black/5 hover:text-ink-soft"
4359
4460
  (click)="clear()"
4360
4461
  >
@@ -4376,8 +4477,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
4376
4477
  type="text"
4377
4478
  [attr.aria-controls]="listId"
4378
4479
  [value]="filterText()"
4379
- placeholder="Rechercher un pays…"
4380
- aria-label="Rechercher un pays"
4480
+ [placeholder]="searchPlaceholder()"
4481
+ [attr.aria-label]="searchLabel()"
4381
4482
  class="h-9 w-full bg-transparent pl-8 pr-2 text-sm text-ink outline-none placeholder:text-ink-faint"
4382
4483
  (input)="onFilter($event)"
4383
4484
  (keydown)="onFilterKeydown($event)"
@@ -4403,7 +4504,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
4403
4504
  <span class="text-ink-faint">+{{ c.dialCode }}</span>
4404
4505
  </li>
4405
4506
  } @empty {
4406
- <li class="px-3 py-2 text-sm text-ink-faint">Aucun pays</li>
4507
+ <li class="px-3 py-2 text-sm text-ink-faint">{{ noResultsLabel() }}</li>
4407
4508
  }
4408
4509
  </ul>
4409
4510
  </div>
@@ -4420,7 +4521,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
4420
4521
  }
4421
4522
  `,
4422
4523
  }]
4423
- }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], hint: [{ type: i0.Input, args: [{ isSignal: true, alias: "hint", required: false }] }], error: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], clearable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearable", required: false }] }], defaultCountry: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultCountry", required: false }] }], preferredCountries: [{ type: i0.Input, args: [{ isSignal: true, alias: "preferredCountries", required: false }] }], onlyCountries: [{ type: i0.Input, args: [{ isSignal: true, alias: "onlyCountries", required: false }] }], showExampleHint: [{ type: i0.Input, args: [{ isSignal: true, alias: "showExampleHint", required: false }] }], requiredMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "requiredMessage", required: false }] }], phoneChange: [{ type: i0.Output, args: ["phoneChange"] }], anchor: [{ type: i0.ViewChild, args: ['anchor', { isSignal: true }] }], field: [{ type: i0.ViewChild, args: ['field', { isSignal: true }] }] } });
4524
+ }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], hint: [{ type: i0.Input, args: [{ isSignal: true, alias: "hint", required: false }] }], error: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], clearable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearable", required: false }] }], defaultCountry: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultCountry", required: false }] }], preferredCountries: [{ type: i0.Input, args: [{ isSignal: true, alias: "preferredCountries", required: false }] }], onlyCountries: [{ type: i0.Input, args: [{ isSignal: true, alias: "onlyCountries", required: false }] }], showExampleHint: [{ type: i0.Input, args: [{ isSignal: true, alias: "showExampleHint", required: false }] }], requiredMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "requiredMessage", required: false }] }], countryLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "countryLabel", required: false }] }], clearLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearLabel", required: false }] }], searchLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchLabel", required: false }] }], searchPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchPlaceholder", required: false }] }], noResultsLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "noResultsLabel", required: false }] }], incompleteMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "incompleteMessage", required: false }] }], invalidMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalidMessage", required: false }] }], lengthSeparator: [{ type: i0.Input, args: [{ isSignal: true, alias: "lengthSeparator", required: false }] }], exampleHintTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "exampleHintTemplate", required: false }] }], phoneChange: [{ type: i0.Output, args: ["phoneChange"] }], anchor: [{ type: i0.ViewChild, args: ['anchor', { isSignal: true }] }], field: [{ type: i0.ViewChild, args: ['field', { isSignal: true }] }] } });
4424
4525
 
4425
4526
  const SIZES$1 = {
4426
4527
  sm: 'h-8 min-w-8 text-xs',
@@ -4469,6 +4570,28 @@ class SdsPaginator {
4469
4570
  showJumpToPageInput = input(false, ...(ngDevMode ? [{ debugName: "showJumpToPageInput", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
4470
4571
  rowsPerPageLabel = input('Lignes par page', ...(ngDevMode ? [{ debugName: "rowsPerPageLabel" }] : []));
4471
4572
  jumpToPageLabel = input('Aller à', ...(ngDevMode ? [{ debugName: "jumpToPageLabel" }] : []));
4573
+ /**
4574
+ * Accessible name for the <nav> wrapping the page controls, and for the four icon-only
4575
+ * first/prev/next/last buttons. Those buttons have no text, so these strings are their ONLY
4576
+ * accessible names — the French defaults keep existing consumers unchanged, but an app serving more
4577
+ * than one language MUST pass translated values.
4578
+ */
4579
+ paginationLabel = input('Pagination', ...(ngDevMode ? [{ debugName: "paginationLabel" }] : []));
4580
+ firstPageLabel = input('Première page', ...(ngDevMode ? [{ debugName: "firstPageLabel" }] : []));
4581
+ previousPageLabel = input('Page précédente', ...(ngDevMode ? [{ debugName: "previousPageLabel" }] : []));
4582
+ nextPageLabel = input('Page suivante', ...(ngDevMode ? [{ debugName: "nextPageLabel" }] : []));
4583
+ lastPageLabel = input('Dernière page', ...(ngDevMode ? [{ debugName: "lastPageLabel" }] : []));
4584
+ /**
4585
+ * Accessible name of a numbered page link. `{page}` is replaced with the 1-based page number —
4586
+ * a token rather than a prefix because word order is not the same in every language.
4587
+ */
4588
+ pageLinkLabel = input('Page {page}', ...(ngDevMode ? [{ debugName: "pageLinkLabel" }] : []));
4589
+ /**
4590
+ * Accessible name of the jump-to-page field. Separate from the visible {@link jumpToPageLabel}
4591
+ * ("Aller à") on purpose: the visible text is terse because it sits next to the field, while the
4592
+ * accessible name has to stand alone.
4593
+ */
4594
+ jumpToPageAriaLabel = input('Aller à la page', ...(ngDevMode ? [{ debugName: "jumpToPageAriaLabel" }] : []));
4472
4595
  size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : []));
4473
4596
  disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
4474
4597
  /** Fires after any page or page-size change with the full paginator state. */
@@ -4504,6 +4627,9 @@ class SdsPaginator {
4504
4627
  const justify = this.showCurrentPageReport() ? 'justify-between' : 'justify-center';
4505
4628
  return `${base} ${justify}`;
4506
4629
  }, ...(ngDevMode ? [{ debugName: "hostClass" }] : []));
4630
+ pageLinkAriaLabel(page) {
4631
+ return this.pageLinkLabel().replace('{page}', String(page + 1));
4632
+ }
4507
4633
  navClass(isDisabled) {
4508
4634
  const cls = `${BTN_BASE} ${SIZES$1[this.size()]} px-0`;
4509
4635
  return isDisabled
@@ -4571,20 +4697,20 @@ class SdsPaginator {
4571
4697
  });
4572
4698
  }
4573
4699
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdsPaginator, deps: [], target: i0.ɵɵFactoryTarget.Component });
4574
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdsPaginator, isStandalone: true, selector: "sds-paginator", inputs: { totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: false, transformFunction: null }, first: { classPropertyName: "first", publicName: "first", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, rowsPerPageOptions: { classPropertyName: "rowsPerPageOptions", publicName: "rowsPerPageOptions", isSignal: true, isRequired: false, transformFunction: null }, pageLinkSize: { classPropertyName: "pageLinkSize", publicName: "pageLinkSize", isSignal: true, isRequired: false, transformFunction: null }, showFirstLastIcon: { classPropertyName: "showFirstLastIcon", publicName: "showFirstLastIcon", isSignal: true, isRequired: false, transformFunction: null }, showPageLinks: { classPropertyName: "showPageLinks", publicName: "showPageLinks", isSignal: true, isRequired: false, transformFunction: null }, showCurrentPageReport: { classPropertyName: "showCurrentPageReport", publicName: "showCurrentPageReport", isSignal: true, isRequired: false, transformFunction: null }, currentPageReportTemplate: { classPropertyName: "currentPageReportTemplate", publicName: "currentPageReportTemplate", isSignal: true, isRequired: false, transformFunction: null }, showJumpToPageInput: { classPropertyName: "showJumpToPageInput", publicName: "showJumpToPageInput", isSignal: true, isRequired: false, transformFunction: null }, rowsPerPageLabel: { classPropertyName: "rowsPerPageLabel", publicName: "rowsPerPageLabel", isSignal: true, isRequired: false, transformFunction: null }, jumpToPageLabel: { classPropertyName: "jumpToPageLabel", publicName: "jumpToPageLabel", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { first: "firstChange", rows: "rowsChange", pageChange: "pageChange" }, host: { properties: { "class": "hostClass()" } }, ngImport: i0, template: `
4700
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdsPaginator, isStandalone: true, selector: "sds-paginator", inputs: { totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: false, transformFunction: null }, first: { classPropertyName: "first", publicName: "first", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, rowsPerPageOptions: { classPropertyName: "rowsPerPageOptions", publicName: "rowsPerPageOptions", isSignal: true, isRequired: false, transformFunction: null }, pageLinkSize: { classPropertyName: "pageLinkSize", publicName: "pageLinkSize", isSignal: true, isRequired: false, transformFunction: null }, showFirstLastIcon: { classPropertyName: "showFirstLastIcon", publicName: "showFirstLastIcon", isSignal: true, isRequired: false, transformFunction: null }, showPageLinks: { classPropertyName: "showPageLinks", publicName: "showPageLinks", isSignal: true, isRequired: false, transformFunction: null }, showCurrentPageReport: { classPropertyName: "showCurrentPageReport", publicName: "showCurrentPageReport", isSignal: true, isRequired: false, transformFunction: null }, currentPageReportTemplate: { classPropertyName: "currentPageReportTemplate", publicName: "currentPageReportTemplate", isSignal: true, isRequired: false, transformFunction: null }, showJumpToPageInput: { classPropertyName: "showJumpToPageInput", publicName: "showJumpToPageInput", isSignal: true, isRequired: false, transformFunction: null }, rowsPerPageLabel: { classPropertyName: "rowsPerPageLabel", publicName: "rowsPerPageLabel", isSignal: true, isRequired: false, transformFunction: null }, jumpToPageLabel: { classPropertyName: "jumpToPageLabel", publicName: "jumpToPageLabel", isSignal: true, isRequired: false, transformFunction: null }, paginationLabel: { classPropertyName: "paginationLabel", publicName: "paginationLabel", isSignal: true, isRequired: false, transformFunction: null }, firstPageLabel: { classPropertyName: "firstPageLabel", publicName: "firstPageLabel", isSignal: true, isRequired: false, transformFunction: null }, previousPageLabel: { classPropertyName: "previousPageLabel", publicName: "previousPageLabel", isSignal: true, isRequired: false, transformFunction: null }, nextPageLabel: { classPropertyName: "nextPageLabel", publicName: "nextPageLabel", isSignal: true, isRequired: false, transformFunction: null }, lastPageLabel: { classPropertyName: "lastPageLabel", publicName: "lastPageLabel", isSignal: true, isRequired: false, transformFunction: null }, pageLinkLabel: { classPropertyName: "pageLinkLabel", publicName: "pageLinkLabel", isSignal: true, isRequired: false, transformFunction: null }, jumpToPageAriaLabel: { classPropertyName: "jumpToPageAriaLabel", publicName: "jumpToPageAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { first: "firstChange", rows: "rowsChange", pageChange: "pageChange" }, host: { properties: { "class": "hostClass()" } }, ngImport: i0, template: `
4575
4701
  @if (showCurrentPageReport()) {
4576
4702
  <span class="text-sm text-ink-soft">{{ reportText() }}</span>
4577
4703
  }
4578
4704
 
4579
4705
  <div class="flex flex-wrap items-center gap-x-4 gap-y-2">
4580
4706
  <!-- page navigation -->
4581
- <nav class="flex items-center gap-1" aria-label="Pagination">
4707
+ <nav class="flex items-center gap-1" [attr.aria-label]="paginationLabel()">
4582
4708
  @if (showFirstLastIcon()) {
4583
4709
  <button
4584
4710
  type="button"
4585
4711
  [class]="navClass(firstDisabled())"
4586
4712
  [disabled]="firstDisabled()"
4587
- aria-label="Première page"
4713
+ [attr.aria-label]="firstPageLabel()"
4588
4714
  (click)="firstPage()"
4589
4715
  >
4590
4716
  <sds-icon name="chevrons-left" [size]="iconSize()" />
@@ -4594,7 +4720,7 @@ class SdsPaginator {
4594
4720
  type="button"
4595
4721
  [class]="navClass(firstDisabled())"
4596
4722
  [disabled]="firstDisabled()"
4597
- aria-label="Page précédente"
4723
+ [attr.aria-label]="previousPageLabel()"
4598
4724
  (click)="prevPage()"
4599
4725
  >
4600
4726
  <sds-icon name="chevron-left" [size]="iconSize()" />
@@ -4605,7 +4731,7 @@ class SdsPaginator {
4605
4731
  <button
4606
4732
  type="button"
4607
4733
  [class]="linkClass(p === page())"
4608
- [attr.aria-label]="'Page ' + (p + 1)"
4734
+ [attr.aria-label]="pageLinkAriaLabel(p)"
4609
4735
  [attr.aria-current]="p === page() ? 'page' : null"
4610
4736
  [disabled]="disabled()"
4611
4737
  (click)="changePage(p)"
@@ -4619,7 +4745,7 @@ class SdsPaginator {
4619
4745
  type="button"
4620
4746
  [class]="navClass(lastDisabled())"
4621
4747
  [disabled]="lastDisabled()"
4622
- aria-label="Page suivante"
4748
+ [attr.aria-label]="nextPageLabel()"
4623
4749
  (click)="nextPage()"
4624
4750
  >
4625
4751
  <sds-icon name="chevron-right" [size]="iconSize()" />
@@ -4629,7 +4755,7 @@ class SdsPaginator {
4629
4755
  type="button"
4630
4756
  [class]="navClass(lastDisabled())"
4631
4757
  [disabled]="lastDisabled()"
4632
- aria-label="Dernière page"
4758
+ [attr.aria-label]="lastPageLabel()"
4633
4759
  (click)="lastPage()"
4634
4760
  >
4635
4761
  <sds-icon name="chevrons-right" [size]="iconSize()" />
@@ -4644,7 +4770,7 @@ class SdsPaginator {
4644
4770
  <span class="w-20">
4645
4771
  <sds-select
4646
4772
  size="sm"
4647
- ariaLabel="Lignes par page"
4773
+ [ariaLabel]="rowsPerPageLabel()"
4648
4774
  [options]="rowsPerPageOptions()"
4649
4775
  [ngModel]="rows()"
4650
4776
  (ngModelChange)="onRowsChange($event)"
@@ -4664,7 +4790,7 @@ class SdsPaginator {
4664
4790
  [max]="pageCount()"
4665
4791
  [value]="page() + 1"
4666
4792
  [disabled]="disabled()"
4667
- aria-label="Aller à la page"
4793
+ [attr.aria-label]="jumpToPageAriaLabel()"
4668
4794
  (change)="onJump($event)"
4669
4795
  class="h-9 w-16 rounded-control border border-border bg-white px-2 text-center text-sm text-ink outline-none transition-colors focus:border-brand-500 focus:ring-2 focus:ring-brand-500/25 disabled:opacity-60"
4670
4796
  />
@@ -4687,13 +4813,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
4687
4813
 
4688
4814
  <div class="flex flex-wrap items-center gap-x-4 gap-y-2">
4689
4815
  <!-- page navigation -->
4690
- <nav class="flex items-center gap-1" aria-label="Pagination">
4816
+ <nav class="flex items-center gap-1" [attr.aria-label]="paginationLabel()">
4691
4817
  @if (showFirstLastIcon()) {
4692
4818
  <button
4693
4819
  type="button"
4694
4820
  [class]="navClass(firstDisabled())"
4695
4821
  [disabled]="firstDisabled()"
4696
- aria-label="Première page"
4822
+ [attr.aria-label]="firstPageLabel()"
4697
4823
  (click)="firstPage()"
4698
4824
  >
4699
4825
  <sds-icon name="chevrons-left" [size]="iconSize()" />
@@ -4703,7 +4829,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
4703
4829
  type="button"
4704
4830
  [class]="navClass(firstDisabled())"
4705
4831
  [disabled]="firstDisabled()"
4706
- aria-label="Page précédente"
4832
+ [attr.aria-label]="previousPageLabel()"
4707
4833
  (click)="prevPage()"
4708
4834
  >
4709
4835
  <sds-icon name="chevron-left" [size]="iconSize()" />
@@ -4714,7 +4840,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
4714
4840
  <button
4715
4841
  type="button"
4716
4842
  [class]="linkClass(p === page())"
4717
- [attr.aria-label]="'Page ' + (p + 1)"
4843
+ [attr.aria-label]="pageLinkAriaLabel(p)"
4718
4844
  [attr.aria-current]="p === page() ? 'page' : null"
4719
4845
  [disabled]="disabled()"
4720
4846
  (click)="changePage(p)"
@@ -4728,7 +4854,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
4728
4854
  type="button"
4729
4855
  [class]="navClass(lastDisabled())"
4730
4856
  [disabled]="lastDisabled()"
4731
- aria-label="Page suivante"
4857
+ [attr.aria-label]="nextPageLabel()"
4732
4858
  (click)="nextPage()"
4733
4859
  >
4734
4860
  <sds-icon name="chevron-right" [size]="iconSize()" />
@@ -4738,7 +4864,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
4738
4864
  type="button"
4739
4865
  [class]="navClass(lastDisabled())"
4740
4866
  [disabled]="lastDisabled()"
4741
- aria-label="Dernière page"
4867
+ [attr.aria-label]="lastPageLabel()"
4742
4868
  (click)="lastPage()"
4743
4869
  >
4744
4870
  <sds-icon name="chevrons-right" [size]="iconSize()" />
@@ -4753,7 +4879,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
4753
4879
  <span class="w-20">
4754
4880
  <sds-select
4755
4881
  size="sm"
4756
- ariaLabel="Lignes par page"
4882
+ [ariaLabel]="rowsPerPageLabel()"
4757
4883
  [options]="rowsPerPageOptions()"
4758
4884
  [ngModel]="rows()"
4759
4885
  (ngModelChange)="onRowsChange($event)"
@@ -4773,7 +4899,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
4773
4899
  [max]="pageCount()"
4774
4900
  [value]="page() + 1"
4775
4901
  [disabled]="disabled()"
4776
- aria-label="Aller à la page"
4902
+ [attr.aria-label]="jumpToPageAriaLabel()"
4777
4903
  (change)="onJump($event)"
4778
4904
  class="h-9 w-16 rounded-control border border-border bg-white px-2 text-center text-sm text-ink outline-none transition-colors focus:border-brand-500 focus:ring-2 focus:ring-brand-500/25 disabled:opacity-60"
4779
4905
  />
@@ -4782,7 +4908,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
4782
4908
  </div>
4783
4909
  `,
4784
4910
  }]
4785
- }], propDecorators: { totalRecords: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalRecords", required: false }] }], first: [{ type: i0.Input, args: [{ isSignal: true, alias: "first", required: false }] }, { type: i0.Output, args: ["firstChange"] }], rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }, { type: i0.Output, args: ["rowsChange"] }], rowsPerPageOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowsPerPageOptions", required: false }] }], pageLinkSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageLinkSize", required: false }] }], showFirstLastIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showFirstLastIcon", required: false }] }], showPageLinks: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPageLinks", required: false }] }], showCurrentPageReport: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCurrentPageReport", required: false }] }], currentPageReportTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentPageReportTemplate", required: false }] }], showJumpToPageInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "showJumpToPageInput", required: false }] }], rowsPerPageLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowsPerPageLabel", required: false }] }], jumpToPageLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "jumpToPageLabel", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], pageChange: [{ type: i0.Output, args: ["pageChange"] }] } });
4911
+ }], propDecorators: { totalRecords: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalRecords", required: false }] }], first: [{ type: i0.Input, args: [{ isSignal: true, alias: "first", required: false }] }, { type: i0.Output, args: ["firstChange"] }], rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }, { type: i0.Output, args: ["rowsChange"] }], rowsPerPageOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowsPerPageOptions", required: false }] }], pageLinkSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageLinkSize", required: false }] }], showFirstLastIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showFirstLastIcon", required: false }] }], showPageLinks: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPageLinks", required: false }] }], showCurrentPageReport: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCurrentPageReport", required: false }] }], currentPageReportTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentPageReportTemplate", required: false }] }], showJumpToPageInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "showJumpToPageInput", required: false }] }], rowsPerPageLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowsPerPageLabel", required: false }] }], jumpToPageLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "jumpToPageLabel", required: false }] }], paginationLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "paginationLabel", required: false }] }], firstPageLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstPageLabel", required: false }] }], previousPageLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "previousPageLabel", required: false }] }], nextPageLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextPageLabel", required: false }] }], lastPageLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "lastPageLabel", required: false }] }], pageLinkLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageLinkLabel", required: false }] }], jumpToPageAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "jumpToPageAriaLabel", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], pageChange: [{ type: i0.Output, args: ["pageChange"] }] } });
4786
4912
 
4787
4913
  let nextId$2 = 0;
4788
4914
  /**
@@ -6226,7 +6352,7 @@ class SdsTable {
6226
6352
  </div>
6227
6353
  }
6228
6354
  </div>
6229
- `, isInline: true, dependencies: [{ kind: "component", type: SdsIcon, selector: "sds-icon", inputs: ["name", "size", "strokeWidth"] }, { kind: "component", type: SdsPaginator, selector: "sds-paginator", inputs: ["totalRecords", "first", "rows", "rowsPerPageOptions", "pageLinkSize", "showFirstLastIcon", "showPageLinks", "showCurrentPageReport", "currentPageReportTemplate", "showJumpToPageInput", "rowsPerPageLabel", "jumpToPageLabel", "size", "disabled"], outputs: ["firstChange", "rowsChange", "pageChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6355
+ `, isInline: true, dependencies: [{ kind: "component", type: SdsIcon, selector: "sds-icon", inputs: ["name", "size", "strokeWidth"] }, { kind: "component", type: SdsPaginator, selector: "sds-paginator", inputs: ["totalRecords", "first", "rows", "rowsPerPageOptions", "pageLinkSize", "showFirstLastIcon", "showPageLinks", "showCurrentPageReport", "currentPageReportTemplate", "showJumpToPageInput", "rowsPerPageLabel", "jumpToPageLabel", "paginationLabel", "firstPageLabel", "previousPageLabel", "nextPageLabel", "lastPageLabel", "pageLinkLabel", "jumpToPageAriaLabel", "size", "disabled"], outputs: ["firstChange", "rowsChange", "pageChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6230
6356
  }
6231
6357
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdsTable, decorators: [{
6232
6358
  type: Component,