@besaitech/ng-design-system 0.0.40 → 0.0.42

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/index.d.ts CHANGED
@@ -40,6 +40,9 @@ declare const SDS_ICONS: {
40
40
  readonly 'chevron-right': "<path d=\"m9 18 6-6-6-6\"/>";
41
41
  readonly 'chevron-left': "<path d=\"m15 18-6-6 6-6\"/>";
42
42
  readonly 'chevron-down': "<path d=\"m6 9 6 6 6-6\"/>";
43
+ readonly 'chevron-up': "<path d=\"m18 15-6-6-6 6\"/>";
44
+ readonly plus: "<path d=\"M5 12h14\"/><path d=\"M12 5v14\"/>";
45
+ readonly minus: "<path d=\"M5 12h14\"/>";
43
46
  readonly 'chevrons-left': "<path d=\"m11 17-5-5 5-5\"/><path d=\"m18 17-5-5 5-5\"/>";
44
47
  readonly 'chevrons-right': "<path d=\"m6 17 5-5-5-5\"/><path d=\"m13 17 5-5-5-5\"/>";
45
48
  readonly x: "<path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/>";
@@ -96,7 +99,7 @@ type SdsIconSize = 'sm' | 'md' | 'lg' | 'xl';
96
99
  declare class SdsIcon {
97
100
  private readonly sanitizer;
98
101
  /** Icon identifier from the registry. */
99
- readonly name: _angular_core.InputSignal<"chart-column" | "clipboard-list" | "credit-card" | "external-link" | "languages" | "megaphone" | "monitor" | "store" | "user-round" | "home" | "user-plus" | "user-check" | "hand" | "users" | "bike" | "building-2" | "package" | "package-plus" | "package-open" | "rotate-ccw" | "bar-chart-3" | "search" | "log-out" | "panel-left-close" | "panel-left-open" | "panel-left" | "calendar" | "chevron-right" | "chevron-left" | "chevron-down" | "chevrons-left" | "chevrons-right" | "x" | "check" | "alert-circle" | "info" | "copy" | "type" | "tag" | "square" | "circle-user" | "layout-grid" | "panels-top-left" | "panel-top" | "rows-3" | "book-open" | "palette" | "bell" | "phone" | "settings" | "align-left" | "toggle-left" | "arrow-up" | "arrow-down" | "chevrons-up-down" | "filter" | "table" | "eye" | "eye-off" | "user" | "check-circle" | "arrows-clockwise" | "menu" | "file-text" | "hash" | "map-pin" | "inbox" | "arrow-right" | "refresh-cw" | "loader-circle" | "bug" | "scroll-text">;
102
+ readonly name: _angular_core.InputSignal<"chart-column" | "clipboard-list" | "credit-card" | "external-link" | "languages" | "megaphone" | "monitor" | "store" | "user-round" | "home" | "user-plus" | "user-check" | "hand" | "users" | "bike" | "building-2" | "package" | "package-plus" | "package-open" | "rotate-ccw" | "bar-chart-3" | "search" | "log-out" | "panel-left-close" | "panel-left-open" | "panel-left" | "calendar" | "chevron-right" | "chevron-left" | "chevron-down" | "chevron-up" | "plus" | "minus" | "chevrons-left" | "chevrons-right" | "x" | "check" | "alert-circle" | "info" | "copy" | "type" | "tag" | "square" | "circle-user" | "layout-grid" | "panels-top-left" | "panel-top" | "rows-3" | "book-open" | "palette" | "bell" | "phone" | "settings" | "align-left" | "toggle-left" | "arrow-up" | "arrow-down" | "chevrons-up-down" | "filter" | "table" | "eye" | "eye-off" | "user" | "check-circle" | "arrows-clockwise" | "menu" | "file-text" | "hash" | "map-pin" | "inbox" | "arrow-right" | "refresh-cw" | "loader-circle" | "bug" | "scroll-text">;
100
103
  /** Square size: a pixel number, a numeric string, or a keyword (sm·md·lg·xl). */
101
104
  readonly size: _angular_core.InputSignalWithTransform<number, string | number>;
102
105
  /** Stroke width of the line icon. */
@@ -188,8 +191,8 @@ declare class SdsInput implements ControlValueAccessor {
188
191
  * is its only name.
189
192
  */
190
193
  readonly clearLabel: _angular_core.InputSignal<string>;
191
- readonly leadingIcon: _angular_core.InputSignal<"chart-column" | "clipboard-list" | "credit-card" | "external-link" | "languages" | "megaphone" | "monitor" | "store" | "user-round" | "home" | "user-plus" | "user-check" | "hand" | "users" | "bike" | "building-2" | "package" | "package-plus" | "package-open" | "rotate-ccw" | "bar-chart-3" | "search" | "log-out" | "panel-left-close" | "panel-left-open" | "panel-left" | "calendar" | "chevron-right" | "chevron-left" | "chevron-down" | "chevrons-left" | "chevrons-right" | "x" | "check" | "alert-circle" | "info" | "copy" | "type" | "tag" | "square" | "circle-user" | "layout-grid" | "panels-top-left" | "panel-top" | "rows-3" | "book-open" | "palette" | "bell" | "phone" | "settings" | "align-left" | "toggle-left" | "arrow-up" | "arrow-down" | "chevrons-up-down" | "filter" | "table" | "eye" | "eye-off" | "user" | "check-circle" | "arrows-clockwise" | "menu" | "file-text" | "hash" | "map-pin" | "inbox" | "arrow-right" | "refresh-cw" | "loader-circle" | "bug" | "scroll-text" | null>;
192
- readonly trailingIcon: _angular_core.InputSignal<"chart-column" | "clipboard-list" | "credit-card" | "external-link" | "languages" | "megaphone" | "monitor" | "store" | "user-round" | "home" | "user-plus" | "user-check" | "hand" | "users" | "bike" | "building-2" | "package" | "package-plus" | "package-open" | "rotate-ccw" | "bar-chart-3" | "search" | "log-out" | "panel-left-close" | "panel-left-open" | "panel-left" | "calendar" | "chevron-right" | "chevron-left" | "chevron-down" | "chevrons-left" | "chevrons-right" | "x" | "check" | "alert-circle" | "info" | "copy" | "type" | "tag" | "square" | "circle-user" | "layout-grid" | "panels-top-left" | "panel-top" | "rows-3" | "book-open" | "palette" | "bell" | "phone" | "settings" | "align-left" | "toggle-left" | "arrow-up" | "arrow-down" | "chevrons-up-down" | "filter" | "table" | "eye" | "eye-off" | "user" | "check-circle" | "arrows-clockwise" | "menu" | "file-text" | "hash" | "map-pin" | "inbox" | "arrow-right" | "refresh-cw" | "loader-circle" | "bug" | "scroll-text" | null>;
194
+ readonly leadingIcon: _angular_core.InputSignal<"chart-column" | "clipboard-list" | "credit-card" | "external-link" | "languages" | "megaphone" | "monitor" | "store" | "user-round" | "home" | "user-plus" | "user-check" | "hand" | "users" | "bike" | "building-2" | "package" | "package-plus" | "package-open" | "rotate-ccw" | "bar-chart-3" | "search" | "log-out" | "panel-left-close" | "panel-left-open" | "panel-left" | "calendar" | "chevron-right" | "chevron-left" | "chevron-down" | "chevron-up" | "plus" | "minus" | "chevrons-left" | "chevrons-right" | "x" | "check" | "alert-circle" | "info" | "copy" | "type" | "tag" | "square" | "circle-user" | "layout-grid" | "panels-top-left" | "panel-top" | "rows-3" | "book-open" | "palette" | "bell" | "phone" | "settings" | "align-left" | "toggle-left" | "arrow-up" | "arrow-down" | "chevrons-up-down" | "filter" | "table" | "eye" | "eye-off" | "user" | "check-circle" | "arrows-clockwise" | "menu" | "file-text" | "hash" | "map-pin" | "inbox" | "arrow-right" | "refresh-cw" | "loader-circle" | "bug" | "scroll-text" | null>;
195
+ readonly trailingIcon: _angular_core.InputSignal<"chart-column" | "clipboard-list" | "credit-card" | "external-link" | "languages" | "megaphone" | "monitor" | "store" | "user-round" | "home" | "user-plus" | "user-check" | "hand" | "users" | "bike" | "building-2" | "package" | "package-plus" | "package-open" | "rotate-ccw" | "bar-chart-3" | "search" | "log-out" | "panel-left-close" | "panel-left-open" | "panel-left" | "calendar" | "chevron-right" | "chevron-left" | "chevron-down" | "chevron-up" | "plus" | "minus" | "chevrons-left" | "chevrons-right" | "x" | "check" | "alert-circle" | "info" | "copy" | "type" | "tag" | "square" | "circle-user" | "layout-grid" | "panels-top-left" | "panel-top" | "rows-3" | "book-open" | "palette" | "bell" | "phone" | "settings" | "align-left" | "toggle-left" | "arrow-up" | "arrow-down" | "chevrons-up-down" | "filter" | "table" | "eye" | "eye-off" | "user" | "check-circle" | "arrows-clockwise" | "menu" | "file-text" | "hash" | "map-pin" | "inbox" | "arrow-right" | "refresh-cw" | "loader-circle" | "bug" | "scroll-text" | null>;
193
196
  /**
194
197
  * A CLICKABLE trailing icon, for the affordances that belong to the field itself — password reveal
195
198
  * above all. Distinct from {@link trailingIcon}, which is decorative and explicitly
@@ -199,7 +202,7 @@ declare class SdsInput implements ControlValueAccessor {
199
202
  * Always pair it with {@link trailingActionLabel} — an icon-only button with no accessible name is
200
203
  * unusable by a screen reader. For a toggle, also bind {@link trailingActionPressed}.
201
204
  */
202
- readonly trailingAction: _angular_core.InputSignal<"chart-column" | "clipboard-list" | "credit-card" | "external-link" | "languages" | "megaphone" | "monitor" | "store" | "user-round" | "home" | "user-plus" | "user-check" | "hand" | "users" | "bike" | "building-2" | "package" | "package-plus" | "package-open" | "rotate-ccw" | "bar-chart-3" | "search" | "log-out" | "panel-left-close" | "panel-left-open" | "panel-left" | "calendar" | "chevron-right" | "chevron-left" | "chevron-down" | "chevrons-left" | "chevrons-right" | "x" | "check" | "alert-circle" | "info" | "copy" | "type" | "tag" | "square" | "circle-user" | "layout-grid" | "panels-top-left" | "panel-top" | "rows-3" | "book-open" | "palette" | "bell" | "phone" | "settings" | "align-left" | "toggle-left" | "arrow-up" | "arrow-down" | "chevrons-up-down" | "filter" | "table" | "eye" | "eye-off" | "user" | "check-circle" | "arrows-clockwise" | "menu" | "file-text" | "hash" | "map-pin" | "inbox" | "arrow-right" | "refresh-cw" | "loader-circle" | "bug" | "scroll-text" | null>;
205
+ readonly trailingAction: _angular_core.InputSignal<"chart-column" | "clipboard-list" | "credit-card" | "external-link" | "languages" | "megaphone" | "monitor" | "store" | "user-round" | "home" | "user-plus" | "user-check" | "hand" | "users" | "bike" | "building-2" | "package" | "package-plus" | "package-open" | "rotate-ccw" | "bar-chart-3" | "search" | "log-out" | "panel-left-close" | "panel-left-open" | "panel-left" | "calendar" | "chevron-right" | "chevron-left" | "chevron-down" | "chevron-up" | "plus" | "minus" | "chevrons-left" | "chevrons-right" | "x" | "check" | "alert-circle" | "info" | "copy" | "type" | "tag" | "square" | "circle-user" | "layout-grid" | "panels-top-left" | "panel-top" | "rows-3" | "book-open" | "palette" | "bell" | "phone" | "settings" | "align-left" | "toggle-left" | "arrow-up" | "arrow-down" | "chevrons-up-down" | "filter" | "table" | "eye" | "eye-off" | "user" | "check-circle" | "arrows-clockwise" | "menu" | "file-text" | "hash" | "map-pin" | "inbox" | "arrow-right" | "refresh-cw" | "loader-circle" | "bug" | "scroll-text" | null>;
203
206
  /** Accessible name for {@link trailingAction}. Translate it in the consuming app. */
204
207
  readonly trailingActionLabel: _angular_core.InputSignal<string>;
205
208
  /** `aria-pressed` for a toggling action (e.g. show/hide password). Null renders no attribute. */
@@ -227,6 +230,206 @@ declare class SdsInput implements ControlValueAccessor {
227
230
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdsInput, "sds-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "clearLabel": { "alias": "clearLabel"; "required": false; "isSignal": true; }; "leadingIcon": { "alias": "leadingIcon"; "required": false; "isSignal": true; }; "trailingIcon": { "alias": "trailingIcon"; "required": false; "isSignal": true; }; "trailingAction": { "alias": "trailingAction"; "required": false; "isSignal": true; }; "trailingActionLabel": { "alias": "trailingActionLabel"; "required": false; "isSignal": true; }; "trailingActionPressed": { "alias": "trailingActionPressed"; "required": false; "isSignal": true; }; }, { "trailingActionClick": "trailingActionClick"; }, never, never, true, never>;
228
231
  }
229
232
 
233
+ type SdsInputNumberSize = 'sm' | 'md' | 'lg';
234
+ type SdsInputNumberAppearance = 'default' | 'filled';
235
+ /**
236
+ * Formatting behaviour, backed by `Intl.NumberFormat`:
237
+ * - `decimal` — a plain grouped number (`42 723`).
238
+ * - `currency` — a monetary amount; pair with {@link SdsInputNumber.currency} (ISO 4217).
239
+ *
240
+ * For percentages, units or any other affix, use {@link SdsInputNumber.prefix} /
241
+ * {@link SdsInputNumber.suffix} on top of `decimal` — the stored value then stays the plain magnitude.
242
+ */
243
+ type SdsInputNumberMode = 'decimal' | 'currency';
244
+ /** How the currency is shown in `currency` mode — a symbol (€), the ISO code (EUR) or the name (euros). */
245
+ type SdsInputNumberCurrencyDisplay = 'symbol' | 'code' | 'name';
246
+ /**
247
+ * Placement of the increment/decrement spinner buttons:
248
+ * - `stacked` — a two-button column at the trailing edge (chevrons).
249
+ * - `horizontal` — a minus button before and a plus button after the field.
250
+ * - `vertical` — a plus button above and a minus button below the field.
251
+ */
252
+ type SdsInputNumberButtonLayout = 'stacked' | 'horizontal' | 'vertical';
253
+ /**
254
+ * Numeric input with locale-aware formatting, optional currency, prefix/suffix affixes, min/max/step
255
+ * boundaries and spinner buttons — the design-system counterpart of PrimeNG's `InputNumber`.
256
+ *
257
+ * The value is a `number | null` bound through ControlValueAccessor, so it works with reactive forms
258
+ * or `[(ngModel)]`: `<sds-input-number [(ngModel)]="amount" mode="currency" currency="EUR" />`.
259
+ *
260
+ * The field formats **live as you type**: the currency symbol, grouping separators and prefix/suffix
261
+ * stay visible on every keystroke, and the caret is kept where it belongs. The value is clamped to
262
+ * {@link min}/{@link max} on blur and on every spinner step; ArrowUp / ArrowDown also step it.
263
+ */
264
+ declare class SdsInputNumber implements ControlValueAccessor {
265
+ readonly inputId: string;
266
+ private readonly fieldRef;
267
+ readonly label: _angular_core.InputSignal<string>;
268
+ /** Accessible name used when no visible [label] is provided. */
269
+ readonly ariaLabel: _angular_core.InputSignal<string>;
270
+ readonly placeholder: _angular_core.InputSignal<string>;
271
+ readonly hint: _angular_core.InputSignal<string>;
272
+ readonly error: _angular_core.InputSignal<string>;
273
+ readonly size: _angular_core.InputSignal<SdsInputNumberSize>;
274
+ /** `filled` is a borderless field on a muted ground; `default` is the bordered white field. */
275
+ readonly appearance: _angular_core.InputSignal<SdsInputNumberAppearance>;
276
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
277
+ /** Read-only: the value is shown and selectable but cannot be typed or stepped. */
278
+ readonly readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
279
+ readonly mode: _angular_core.InputSignal<SdsInputNumberMode>;
280
+ /** BCP 47 locale for grouping/decimal symbols (e.g. `fr-FR`). Empty follows the runtime locale. */
281
+ readonly locale: _angular_core.InputSignal<string>;
282
+ /** ISO 4217 code, required when {@link mode} is `currency` (e.g. `EUR`, `USD`). */
283
+ readonly currency: _angular_core.InputSignal<string>;
284
+ readonly currencyDisplay: _angular_core.InputSignal<SdsInputNumberCurrencyDisplay>;
285
+ /** Thousands/grouping separators. */
286
+ readonly useGrouping: _angular_core.InputSignalWithTransform<boolean, unknown>;
287
+ readonly minFractionDigits: _angular_core.InputSignal<number | null>;
288
+ readonly maxFractionDigits: _angular_core.InputSignal<number | null>;
289
+ /** Text shown before the value (e.g. `↑ `). */
290
+ readonly prefix: _angular_core.InputSignal<string>;
291
+ /** Text shown after the value (e.g. ` kg`, `%`). */
292
+ readonly suffix: _angular_core.InputSignal<string>;
293
+ readonly min: _angular_core.InputSignal<number | null>;
294
+ readonly max: _angular_core.InputSignal<number | null>;
295
+ readonly step: _angular_core.InputSignalWithTransform<number, unknown>;
296
+ /** Show the increment/decrement spinner buttons. */
297
+ readonly showButtons: _angular_core.InputSignalWithTransform<boolean, unknown>;
298
+ readonly buttonLayout: _angular_core.InputSignal<SdsInputNumberButtonLayout>;
299
+ /** Override the increment button icon (defaults: chevron-up when stacked, plus otherwise). */
300
+ readonly incrementIcon: _angular_core.InputSignal<"chart-column" | "clipboard-list" | "credit-card" | "external-link" | "languages" | "megaphone" | "monitor" | "store" | "user-round" | "home" | "user-plus" | "user-check" | "hand" | "users" | "bike" | "building-2" | "package" | "package-plus" | "package-open" | "rotate-ccw" | "bar-chart-3" | "search" | "log-out" | "panel-left-close" | "panel-left-open" | "panel-left" | "calendar" | "chevron-right" | "chevron-left" | "chevron-down" | "chevron-up" | "plus" | "minus" | "chevrons-left" | "chevrons-right" | "x" | "check" | "alert-circle" | "info" | "copy" | "type" | "tag" | "square" | "circle-user" | "layout-grid" | "panels-top-left" | "panel-top" | "rows-3" | "book-open" | "palette" | "bell" | "phone" | "settings" | "align-left" | "toggle-left" | "arrow-up" | "arrow-down" | "chevrons-up-down" | "filter" | "table" | "eye" | "eye-off" | "user" | "check-circle" | "arrows-clockwise" | "menu" | "file-text" | "hash" | "map-pin" | "inbox" | "arrow-right" | "refresh-cw" | "loader-circle" | "bug" | "scroll-text" | null>;
301
+ /** Override the decrement button icon (defaults: chevron-down when stacked, minus otherwise). */
302
+ readonly decrementIcon: _angular_core.InputSignal<"chart-column" | "clipboard-list" | "credit-card" | "external-link" | "languages" | "megaphone" | "monitor" | "store" | "user-round" | "home" | "user-plus" | "user-check" | "hand" | "users" | "bike" | "building-2" | "package" | "package-plus" | "package-open" | "rotate-ccw" | "bar-chart-3" | "search" | "log-out" | "panel-left-close" | "panel-left-open" | "panel-left" | "calendar" | "chevron-right" | "chevron-left" | "chevron-down" | "chevron-up" | "plus" | "minus" | "chevrons-left" | "chevrons-right" | "x" | "check" | "alert-circle" | "info" | "copy" | "type" | "tag" | "square" | "circle-user" | "layout-grid" | "panels-top-left" | "panel-top" | "rows-3" | "book-open" | "palette" | "bell" | "phone" | "settings" | "align-left" | "toggle-left" | "arrow-up" | "arrow-down" | "chevrons-up-down" | "filter" | "table" | "eye" | "eye-off" | "user" | "check-circle" | "arrows-clockwise" | "menu" | "file-text" | "hash" | "map-pin" | "inbox" | "arrow-right" | "refresh-cw" | "loader-circle" | "bug" | "scroll-text" | null>;
303
+ /** Allow an empty (null) value. When false, blurring an empty field falls back to {@link min} or 0. */
304
+ readonly allowEmpty: _angular_core.InputSignalWithTransform<boolean, unknown>;
305
+ readonly clearable: _angular_core.InputSignalWithTransform<boolean, unknown>;
306
+ /**
307
+ * Accessible names for the icon-only controls. French defaults so existing consumers are unchanged;
308
+ * translate them in a multi-language app.
309
+ */
310
+ readonly clearLabel: _angular_core.InputSignal<string>;
311
+ readonly incrementLabel: _angular_core.InputSignal<string>;
312
+ readonly decrementLabel: _angular_core.InputSignal<string>;
313
+ /** The committed numeric value (driven by CVA + user input). */
314
+ protected readonly value: _angular_core.WritableSignal<number | null>;
315
+ private readonly cvaDisabled;
316
+ protected readonly isDisabled: _angular_core.Signal<boolean>;
317
+ protected readonly describedBy: _angular_core.Signal<string | null>;
318
+ protected readonly clearVisible: _angular_core.Signal<boolean>;
319
+ protected readonly incrementIconName: _angular_core.Signal<"chart-column" | "clipboard-list" | "credit-card" | "external-link" | "languages" | "megaphone" | "monitor" | "store" | "user-round" | "home" | "user-plus" | "user-check" | "hand" | "users" | "bike" | "building-2" | "package" | "package-plus" | "package-open" | "rotate-ccw" | "bar-chart-3" | "search" | "log-out" | "panel-left-close" | "panel-left-open" | "panel-left" | "calendar" | "chevron-right" | "chevron-left" | "chevron-down" | "chevron-up" | "plus" | "minus" | "chevrons-left" | "chevrons-right" | "x" | "check" | "alert-circle" | "info" | "copy" | "type" | "tag" | "square" | "circle-user" | "layout-grid" | "panels-top-left" | "panel-top" | "rows-3" | "book-open" | "palette" | "bell" | "phone" | "settings" | "align-left" | "toggle-left" | "arrow-up" | "arrow-down" | "chevrons-up-down" | "filter" | "table" | "eye" | "eye-off" | "user" | "check-circle" | "arrows-clockwise" | "menu" | "file-text" | "hash" | "map-pin" | "inbox" | "arrow-right" | "refresh-cw" | "loader-circle" | "bug" | "scroll-text">;
320
+ protected readonly decrementIconName: _angular_core.Signal<"chart-column" | "clipboard-list" | "credit-card" | "external-link" | "languages" | "megaphone" | "monitor" | "store" | "user-round" | "home" | "user-plus" | "user-check" | "hand" | "users" | "bike" | "building-2" | "package" | "package-plus" | "package-open" | "rotate-ccw" | "bar-chart-3" | "search" | "log-out" | "panel-left-close" | "panel-left-open" | "panel-left" | "calendar" | "chevron-right" | "chevron-left" | "chevron-down" | "chevron-up" | "plus" | "minus" | "chevrons-left" | "chevrons-right" | "x" | "check" | "alert-circle" | "info" | "copy" | "type" | "tag" | "square" | "circle-user" | "layout-grid" | "panels-top-left" | "panel-top" | "rows-3" | "book-open" | "palette" | "bell" | "phone" | "settings" | "align-left" | "toggle-left" | "arrow-up" | "arrow-down" | "chevrons-up-down" | "filter" | "table" | "eye" | "eye-off" | "user" | "check-circle" | "arrows-clockwise" | "menu" | "file-text" | "hash" | "map-pin" | "inbox" | "arrow-right" | "refresh-cw" | "loader-circle" | "bug" | "scroll-text">;
321
+ protected readonly canIncrement: _angular_core.Signal<boolean>;
322
+ protected readonly canDecrement: _angular_core.Signal<boolean>;
323
+ /** Locale grouping/decimal separators, derived from Intl so parsing matches formatting. */
324
+ private readonly separators;
325
+ /** Base Intl options (style/currency/grouping) without any fraction-digit constraints. */
326
+ private baseOptions;
327
+ private readonly committedOptions;
328
+ /** The most fraction digits the field will keep — the resolved Intl maximum (2 for USD, 0 for JPY…). */
329
+ private readonly maxFrac;
330
+ protected readonly wrapperClasses: _angular_core.Signal<string>;
331
+ protected readonly fieldCellClasses: _angular_core.Signal<string>;
332
+ protected readonly inputClasses: _angular_core.Signal<string>;
333
+ private readonly buttonBase;
334
+ protected readonly edgeButtonClasses: _angular_core.Signal<string>;
335
+ protected readonly stackedButtonClasses: _angular_core.Signal<string>;
336
+ constructor();
337
+ private isActive;
338
+ /** Paint the committed value into the field imperatively (used by spin/clear/blur). */
339
+ private paintCommitted;
340
+ /** Format a committed value with the configured min/max fraction digits (used at rest and on blur). */
341
+ private format;
342
+ /**
343
+ * Format a partially-typed value, keeping exactly the fraction digits the user has entered (so
344
+ * trailing zeros and a lone decimal separator survive) while still grouping the integer part and
345
+ * showing the currency symbol / affixes.
346
+ */
347
+ private formatLive;
348
+ private toNumber;
349
+ /** Pull the sign / integer / fraction fragments out of a formatted, partially-typed string. */
350
+ private parseInput;
351
+ /** Characters that "carry meaning" for caret placement (digits, minus, the decimal separator). */
352
+ private isSignificant;
353
+ private significantBefore;
354
+ /** The caret index in `formatted` that sits just after `target` significant characters. */
355
+ private caretAfter;
356
+ private clamp;
357
+ /** Trim binary-float drift (0.1 + 0.2) back to a clean decimal. */
358
+ private tidy;
359
+ protected onInput(event: Event): void;
360
+ protected onKeydown(event: KeyboardEvent): void;
361
+ protected onBlur(): void;
362
+ protected spin(direction: 1 | -1): void;
363
+ protected clear(): void;
364
+ private onChange;
365
+ protected onTouched: () => void;
366
+ writeValue(value: number | null): void;
367
+ registerOnChange(fn: (value: number | null) => void): void;
368
+ registerOnTouched(fn: () => void): void;
369
+ setDisabledState(isDisabled: boolean): void;
370
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdsInputNumber, never>;
371
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdsInputNumber, "sds-input-number", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "currency": { "alias": "currency"; "required": false; "isSignal": true; }; "currencyDisplay": { "alias": "currencyDisplay"; "required": false; "isSignal": true; }; "useGrouping": { "alias": "useGrouping"; "required": false; "isSignal": true; }; "minFractionDigits": { "alias": "minFractionDigits"; "required": false; "isSignal": true; }; "maxFractionDigits": { "alias": "maxFractionDigits"; "required": false; "isSignal": true; }; "prefix": { "alias": "prefix"; "required": false; "isSignal": true; }; "suffix": { "alias": "suffix"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "showButtons": { "alias": "showButtons"; "required": false; "isSignal": true; }; "buttonLayout": { "alias": "buttonLayout"; "required": false; "isSignal": true; }; "incrementIcon": { "alias": "incrementIcon"; "required": false; "isSignal": true; }; "decrementIcon": { "alias": "decrementIcon"; "required": false; "isSignal": true; }; "allowEmpty": { "alias": "allowEmpty"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "clearLabel": { "alias": "clearLabel"; "required": false; "isSignal": true; }; "incrementLabel": { "alias": "incrementLabel"; "required": false; "isSignal": true; }; "decrementLabel": { "alias": "decrementLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
372
+ }
373
+
374
+ /** A translatable string held per language code — e.g. `{ fr: 'Titre', nl: 'Titel' }`. */
375
+ type SdsLocalizedValue = Record<string, string>;
376
+ type SdsLocalizedInputSize = 'sm' | 'md' | 'lg';
377
+ /**
378
+ * One language-aware text field for editing a translated value (a {@link SdsLocalizedValue} — a title,
379
+ * label or description in several languages). Only one language is edited at a time; a compact switcher
380
+ * sitting **inside the field** flips which translation you are editing, and a dot marks the languages that
381
+ * already have content, so a partially-translated value is obvious at a glance.
382
+ *
383
+ * The active language defaults to {@link currentLanguage} when it is one of {@link languages}, otherwise the
384
+ * first accepted language — so the field "opens on the language you are working in". Empty translations are
385
+ * pruned from the emitted value, keeping the stored map clean.
386
+ *
387
+ * Implements ControlValueAccessor over the map — use with reactive forms or `[(ngModel)]`:
388
+ * `<sds-localized-input [languages]="['fr','nl','en']" [(ngModel)]="title" />`.
389
+ */
390
+ declare class SdsLocalizedInput implements ControlValueAccessor {
391
+ readonly inputId: string;
392
+ readonly label: _angular_core.InputSignal<string>;
393
+ readonly hint: _angular_core.InputSignal<string>;
394
+ readonly placeholder: _angular_core.InputSignal<string>;
395
+ /** The accepted language codes, in display order (e.g. `['fr','nl','en']`). */
396
+ readonly languages: _angular_core.InputSignal<string[]>;
397
+ /** Language to pre-select; used when it is one of {@link languages}, else the first accepted language. */
398
+ readonly currentLanguage: _angular_core.InputSignal<string | null>;
399
+ readonly multiline: _angular_core.InputSignalWithTransform<boolean, unknown>;
400
+ readonly rows: _angular_core.InputSignalWithTransform<number, unknown>;
401
+ readonly size: _angular_core.InputSignal<SdsLocalizedInputSize>;
402
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
403
+ /**
404
+ * Accessible name for the in-field language switcher, and the "no translation yet" title suffix on each
405
+ * language button. French defaults so existing consumers are unchanged; translate them in a multi-language
406
+ * app (the buttons are letter-only, so the title carries their meaning).
407
+ */
408
+ readonly languageSwitcherLabel: _angular_core.InputSignal<string>;
409
+ readonly untranslatedLabel: _angular_core.InputSignal<string>;
410
+ private readonly valueMap;
411
+ /** Language chosen via the switcher; null means "follow currentLanguage / the first language". */
412
+ private readonly manual;
413
+ private readonly cvaDisabled;
414
+ protected readonly isDisabled: _angular_core.Signal<boolean>;
415
+ protected readonly wrapperClasses: _angular_core.Signal<string>;
416
+ /** The language currently being edited. */
417
+ protected readonly activeLang: _angular_core.Signal<string>;
418
+ protected readonly current: _angular_core.Signal<string>;
419
+ protected filled(lang: string): boolean;
420
+ protected fieldPlaceholder(): string;
421
+ protected select(lang: string): void;
422
+ protected write(event: Event): void;
423
+ private onChange;
424
+ protected onTouched: () => void;
425
+ writeValue(value: SdsLocalizedValue | null): void;
426
+ registerOnChange(fn: (value: SdsLocalizedValue) => void): void;
427
+ registerOnTouched(fn: () => void): void;
428
+ setDisabledState(isDisabled: boolean): void;
429
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdsLocalizedInput, never>;
430
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdsLocalizedInput, "sds-localized-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "languages": { "alias": "languages"; "required": false; "isSignal": true; }; "currentLanguage": { "alias": "currentLanguage"; "required": false; "isSignal": true; }; "multiline": { "alias": "multiline"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "languageSwitcherLabel": { "alias": "languageSwitcherLabel"; "required": false; "isSignal": true; }; "untranslatedLabel": { "alias": "untranslatedLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
431
+ }
432
+
230
433
  type SdsOtpInputSize = 'md' | 'lg';
231
434
  /**
232
435
  * A segmented one-time-code field: one box per character, for the short numeric codes emailed or
@@ -378,9 +581,9 @@ declare class SdsToggleSwitch implements ControlValueAccessor {
378
581
  /** Value emitted/stored when the switch is off. */
379
582
  readonly falseValue: _angular_core.InputSignal<unknown>;
380
583
  /** Icon shown on the knob when checked. */
381
- readonly onIcon: _angular_core.InputSignal<"chart-column" | "clipboard-list" | "credit-card" | "external-link" | "languages" | "megaphone" | "monitor" | "store" | "user-round" | "home" | "user-plus" | "user-check" | "hand" | "users" | "bike" | "building-2" | "package" | "package-plus" | "package-open" | "rotate-ccw" | "bar-chart-3" | "search" | "log-out" | "panel-left-close" | "panel-left-open" | "panel-left" | "calendar" | "chevron-right" | "chevron-left" | "chevron-down" | "chevrons-left" | "chevrons-right" | "x" | "check" | "alert-circle" | "info" | "copy" | "type" | "tag" | "square" | "circle-user" | "layout-grid" | "panels-top-left" | "panel-top" | "rows-3" | "book-open" | "palette" | "bell" | "phone" | "settings" | "align-left" | "toggle-left" | "arrow-up" | "arrow-down" | "chevrons-up-down" | "filter" | "table" | "eye" | "eye-off" | "user" | "check-circle" | "arrows-clockwise" | "menu" | "file-text" | "hash" | "map-pin" | "inbox" | "arrow-right" | "refresh-cw" | "loader-circle" | "bug" | "scroll-text" | null>;
584
+ readonly onIcon: _angular_core.InputSignal<"chart-column" | "clipboard-list" | "credit-card" | "external-link" | "languages" | "megaphone" | "monitor" | "store" | "user-round" | "home" | "user-plus" | "user-check" | "hand" | "users" | "bike" | "building-2" | "package" | "package-plus" | "package-open" | "rotate-ccw" | "bar-chart-3" | "search" | "log-out" | "panel-left-close" | "panel-left-open" | "panel-left" | "calendar" | "chevron-right" | "chevron-left" | "chevron-down" | "chevron-up" | "plus" | "minus" | "chevrons-left" | "chevrons-right" | "x" | "check" | "alert-circle" | "info" | "copy" | "type" | "tag" | "square" | "circle-user" | "layout-grid" | "panels-top-left" | "panel-top" | "rows-3" | "book-open" | "palette" | "bell" | "phone" | "settings" | "align-left" | "toggle-left" | "arrow-up" | "arrow-down" | "chevrons-up-down" | "filter" | "table" | "eye" | "eye-off" | "user" | "check-circle" | "arrows-clockwise" | "menu" | "file-text" | "hash" | "map-pin" | "inbox" | "arrow-right" | "refresh-cw" | "loader-circle" | "bug" | "scroll-text" | null>;
382
585
  /** Icon shown on the knob when unchecked. */
383
- readonly offIcon: _angular_core.InputSignal<"chart-column" | "clipboard-list" | "credit-card" | "external-link" | "languages" | "megaphone" | "monitor" | "store" | "user-round" | "home" | "user-plus" | "user-check" | "hand" | "users" | "bike" | "building-2" | "package" | "package-plus" | "package-open" | "rotate-ccw" | "bar-chart-3" | "search" | "log-out" | "panel-left-close" | "panel-left-open" | "panel-left" | "calendar" | "chevron-right" | "chevron-left" | "chevron-down" | "chevrons-left" | "chevrons-right" | "x" | "check" | "alert-circle" | "info" | "copy" | "type" | "tag" | "square" | "circle-user" | "layout-grid" | "panels-top-left" | "panel-top" | "rows-3" | "book-open" | "palette" | "bell" | "phone" | "settings" | "align-left" | "toggle-left" | "arrow-up" | "arrow-down" | "chevrons-up-down" | "filter" | "table" | "eye" | "eye-off" | "user" | "check-circle" | "arrows-clockwise" | "menu" | "file-text" | "hash" | "map-pin" | "inbox" | "arrow-right" | "refresh-cw" | "loader-circle" | "bug" | "scroll-text" | null>;
586
+ readonly offIcon: _angular_core.InputSignal<"chart-column" | "clipboard-list" | "credit-card" | "external-link" | "languages" | "megaphone" | "monitor" | "store" | "user-round" | "home" | "user-plus" | "user-check" | "hand" | "users" | "bike" | "building-2" | "package" | "package-plus" | "package-open" | "rotate-ccw" | "bar-chart-3" | "search" | "log-out" | "panel-left-close" | "panel-left-open" | "panel-left" | "calendar" | "chevron-right" | "chevron-left" | "chevron-down" | "chevron-up" | "plus" | "minus" | "chevrons-left" | "chevrons-right" | "x" | "check" | "alert-circle" | "info" | "copy" | "type" | "tag" | "square" | "circle-user" | "layout-grid" | "panels-top-left" | "panel-top" | "rows-3" | "book-open" | "palette" | "bell" | "phone" | "settings" | "align-left" | "toggle-left" | "arrow-up" | "arrow-down" | "chevrons-up-down" | "filter" | "table" | "eye" | "eye-off" | "user" | "check-circle" | "arrows-clockwise" | "menu" | "file-text" | "hash" | "map-pin" | "inbox" | "arrow-right" | "refresh-cw" | "loader-circle" | "bug" | "scroll-text" | null>;
384
587
  readonly hint: _angular_core.InputSignal<string>;
385
588
  readonly error: _angular_core.InputSignal<string>;
386
589
  /**
@@ -1736,6 +1939,65 @@ declare class SdsTableRowExpansion {
1736
1939
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SdsTableRowExpansion, "ng-template[sdsRowExpansion]", never, {}, {}, never, never, true, never>;
1737
1940
  }
1738
1941
 
1942
+ type SdsToastKind = 'success' | 'error' | 'info';
1943
+ interface SdsToast {
1944
+ id: number;
1945
+ kind: SdsToastKind;
1946
+ text: string;
1947
+ }
1948
+ /**
1949
+ * A tiny transient-notification bus. Application code calls {@link success} / {@link error} / {@link info}
1950
+ * after an action; a single {@link SdsToastHost} mounted in the app shell renders the queue and each toast
1951
+ * auto-dismisses. Deliberately minimal — no positions, no actions-in-toast — because it exists to confirm
1952
+ * an action, not to be a notification centre.
1953
+ *
1954
+ * `providedIn: 'root'`, so injecting it anywhere shares one queue:
1955
+ *
1956
+ * ```ts
1957
+ * private readonly toasts = inject(SdsToastService);
1958
+ * this.toasts.success('Enregistré.');
1959
+ * ```
1960
+ *
1961
+ * Mount the host once (e.g. in the shell): `<sds-toast-host />`.
1962
+ */
1963
+ declare class SdsToastService {
1964
+ private seq;
1965
+ readonly toasts: _angular_core.WritableSignal<SdsToast[]>;
1966
+ /** How long a toast stays, in ms, by kind. Errors linger; success/info are brief. */
1967
+ private static readonly TTL;
1968
+ success(text: string): void;
1969
+ error(text: string): void;
1970
+ info(text: string): void;
1971
+ dismiss(id: number): void;
1972
+ private push;
1973
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdsToastService, never>;
1974
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<SdsToastService>;
1975
+ }
1976
+
1977
+ /**
1978
+ * Renders the {@link SdsToastService} queue, fixed bottom-centre. Mount it once, in the app shell:
1979
+ * `<sds-toast-host />`. Application code pushes toasts through the injected service.
1980
+ *
1981
+ * Accessibility: the two live regions are ALWAYS in the DOM (even when empty), because a live region must
1982
+ * pre-exist for its later content changes to be announced. Errors go to an assertive `role="alert"` region
1983
+ * so a failure interrupts; success/info go to a polite region so they queue.
1984
+ */
1985
+ declare class SdsToastHost {
1986
+ readonly toasts: SdsToastService;
1987
+ /**
1988
+ * Accessible name for each toast's close button. French default so existing consumers are unchanged; the
1989
+ * button is icon-only, so an app serving more than one language MUST translate it.
1990
+ */
1991
+ readonly closeLabel: _angular_core.InputSignal<string>;
1992
+ protected readonly errors: _angular_core.Signal<SdsToast[]>;
1993
+ protected readonly notices: _angular_core.Signal<SdsToast[]>;
1994
+ protected icon(kind: SdsToastKind): SdsIconName;
1995
+ protected tone(kind: SdsToastKind): string;
1996
+ protected border(kind: SdsToast['kind']): string;
1997
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdsToastHost, never>;
1998
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdsToastHost, "sds-toast-host", never, { "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1999
+ }
2000
+
1739
2001
  /**
1740
2002
  * Shared collapse state for the sidebar and its nav items.
1741
2003
  *
@@ -1891,7 +2153,7 @@ declare class SdsNavGroup {
1891
2153
  /** Turn the label into an expand/collapse control. */
1892
2154
  readonly collapsible: _angular_core.InputSignalWithTransform<boolean, unknown>;
1893
2155
  /** Icon for a collapsible header, so it reads at the same weight as the items it sits among. */
1894
- readonly icon: _angular_core.InputSignal<"chart-column" | "clipboard-list" | "credit-card" | "external-link" | "languages" | "megaphone" | "monitor" | "store" | "user-round" | "home" | "user-plus" | "user-check" | "hand" | "users" | "bike" | "building-2" | "package" | "package-plus" | "package-open" | "rotate-ccw" | "bar-chart-3" | "search" | "log-out" | "panel-left-close" | "panel-left-open" | "panel-left" | "calendar" | "chevron-right" | "chevron-left" | "chevron-down" | "chevrons-left" | "chevrons-right" | "x" | "check" | "alert-circle" | "info" | "copy" | "type" | "tag" | "square" | "circle-user" | "layout-grid" | "panels-top-left" | "panel-top" | "rows-3" | "book-open" | "palette" | "bell" | "phone" | "settings" | "align-left" | "toggle-left" | "arrow-up" | "arrow-down" | "chevrons-up-down" | "filter" | "table" | "eye" | "eye-off" | "user" | "check-circle" | "arrows-clockwise" | "menu" | "file-text" | "hash" | "map-pin" | "inbox" | "arrow-right" | "refresh-cw" | "loader-circle" | "bug" | "scroll-text" | null>;
2156
+ readonly icon: _angular_core.InputSignal<"chart-column" | "clipboard-list" | "credit-card" | "external-link" | "languages" | "megaphone" | "monitor" | "store" | "user-round" | "home" | "user-plus" | "user-check" | "hand" | "users" | "bike" | "building-2" | "package" | "package-plus" | "package-open" | "rotate-ccw" | "bar-chart-3" | "search" | "log-out" | "panel-left-close" | "panel-left-open" | "panel-left" | "calendar" | "chevron-right" | "chevron-left" | "chevron-down" | "chevron-up" | "plus" | "minus" | "chevrons-left" | "chevrons-right" | "x" | "check" | "alert-circle" | "info" | "copy" | "type" | "tag" | "square" | "circle-user" | "layout-grid" | "panels-top-left" | "panel-top" | "rows-3" | "book-open" | "palette" | "bell" | "phone" | "settings" | "align-left" | "toggle-left" | "arrow-up" | "arrow-down" | "chevrons-up-down" | "filter" | "table" | "eye" | "eye-off" | "user" | "check-circle" | "arrows-clockwise" | "menu" | "file-text" | "hash" | "map-pin" | "inbox" | "arrow-right" | "refresh-cw" | "loader-circle" | "bug" | "scroll-text" | null>;
1895
2157
  /**
1896
2158
  * URL prefix owned by this group, e.g. `/payments`. While the active route starts with it the
1897
2159
  * group counts as active and opens itself — unless the person has explicitly toggled it since.
@@ -1943,7 +2205,7 @@ declare class SdsNavGroup {
1943
2205
  */
1944
2206
  declare class SdsNavItem {
1945
2207
  protected readonly store: SidebarStore;
1946
- readonly icon: _angular_core.InputSignal<"chart-column" | "clipboard-list" | "credit-card" | "external-link" | "languages" | "megaphone" | "monitor" | "store" | "user-round" | "home" | "user-plus" | "user-check" | "hand" | "users" | "bike" | "building-2" | "package" | "package-plus" | "package-open" | "rotate-ccw" | "bar-chart-3" | "search" | "log-out" | "panel-left-close" | "panel-left-open" | "panel-left" | "calendar" | "chevron-right" | "chevron-left" | "chevron-down" | "chevrons-left" | "chevrons-right" | "x" | "check" | "alert-circle" | "info" | "copy" | "type" | "tag" | "square" | "circle-user" | "layout-grid" | "panels-top-left" | "panel-top" | "rows-3" | "book-open" | "palette" | "bell" | "phone" | "settings" | "align-left" | "toggle-left" | "arrow-up" | "arrow-down" | "chevrons-up-down" | "filter" | "table" | "eye" | "eye-off" | "user" | "check-circle" | "arrows-clockwise" | "menu" | "file-text" | "hash" | "map-pin" | "inbox" | "arrow-right" | "refresh-cw" | "loader-circle" | "bug" | "scroll-text" | null>;
2208
+ readonly icon: _angular_core.InputSignal<"chart-column" | "clipboard-list" | "credit-card" | "external-link" | "languages" | "megaphone" | "monitor" | "store" | "user-round" | "home" | "user-plus" | "user-check" | "hand" | "users" | "bike" | "building-2" | "package" | "package-plus" | "package-open" | "rotate-ccw" | "bar-chart-3" | "search" | "log-out" | "panel-left-close" | "panel-left-open" | "panel-left" | "calendar" | "chevron-right" | "chevron-left" | "chevron-down" | "chevron-up" | "plus" | "minus" | "chevrons-left" | "chevrons-right" | "x" | "check" | "alert-circle" | "info" | "copy" | "type" | "tag" | "square" | "circle-user" | "layout-grid" | "panels-top-left" | "panel-top" | "rows-3" | "book-open" | "palette" | "bell" | "phone" | "settings" | "align-left" | "toggle-left" | "arrow-up" | "arrow-down" | "chevrons-up-down" | "filter" | "table" | "eye" | "eye-off" | "user" | "check-circle" | "arrows-clockwise" | "menu" | "file-text" | "hash" | "map-pin" | "inbox" | "arrow-right" | "refresh-cw" | "loader-circle" | "bug" | "scroll-text" | null>;
1947
2209
  readonly label: _angular_core.InputSignal<string>;
1948
2210
  /** Router link target; when null, the item behaves as a button. */
1949
2211
  readonly link: _angular_core.InputSignal<string | unknown[] | null>;
@@ -1957,5 +2219,5 @@ declare class SdsNavItem {
1957
2219
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdsNavItem, "sds-nav-item", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "link": { "alias": "link"; "required": false; "isSignal": true; }; "exact": { "alias": "exact"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; }, { "select": "select"; }, never, never, true, never>;
1958
2220
  }
1959
2221
 
1960
- export { SDS_ICONS, SDS_PHONE_COUNTRIES, SdsAccordion, SdsAccordionContent, SdsAccordionHeader, SdsAccordionPanel, SdsAccordionStore, SdsAvatar, SdsBadge, SdsButton, SdsCalendar, SdsCard, SdsCheckbox, SdsDatePicker, SdsIcon, SdsInput, SdsMultiSelect, SdsNavGroup, SdsNavItem, SdsOtpInput, SdsPaginator, SdsPhoneInput, SdsSelect, SdsShell, SdsSidebar, SdsTab, SdsTabList, SdsTabPanel, SdsTabPanels, SdsTable, SdsTableCell, SdsTableRowExpansion, SdsTabs, SdsTabsStore, SdsTextarea, SdsToggleSwitch, SdsTopbar, SidebarStore, addDays, addMonths, addMonthsKeepDay, formatDdMmYyyy, formatHhMm, isOutOfRange, isSameDay, isoDay, pad2, sdsFormatNational, sdsMatchDialCode, sdsNormalizeSignificant, startOfDay, startOfMonth };
1961
- export type { SdsAccordionActive, SdsAccordionValue, SdsAvatarStatus, SdsBadgeSize, SdsBadgeVariant, SdsButtonShape, SdsButtonSize, SdsButtonVariant, SdsCardVariant, SdsCheckboxSize, SdsDatePickerSize, SdsIconName, SdsIconSize, SdsInputAppearance, SdsInputShape, SdsInputSize, SdsInputType, SdsMultiSelectDisplay, SdsMultiSelectSize, SdsOtpInputSize, SdsPaginatorSize, SdsPaginatorState, SdsPhoneCountry, SdsPhoneInputSize, SdsPhoneValue, SdsSelectAppearance, SdsSelectSize, SdsSortOrder, SdsTabValue, SdsTableCellContext, SdsTableColumn, SdsTableLazyEvent, SdsTableRowExpansionContext, SdsTableSize, SdsTableSortEvent, SdsTextareaResize, SdsTextareaSize, SdsToggleSwitchSize, SdsTopbarAppearance };
2222
+ export { SDS_ICONS, SDS_PHONE_COUNTRIES, SdsAccordion, SdsAccordionContent, SdsAccordionHeader, SdsAccordionPanel, SdsAccordionStore, SdsAvatar, SdsBadge, SdsButton, SdsCalendar, SdsCard, SdsCheckbox, SdsDatePicker, SdsIcon, SdsInput, SdsInputNumber, SdsLocalizedInput, SdsMultiSelect, SdsNavGroup, SdsNavItem, SdsOtpInput, SdsPaginator, SdsPhoneInput, SdsSelect, SdsShell, SdsSidebar, SdsTab, SdsTabList, SdsTabPanel, SdsTabPanels, SdsTable, SdsTableCell, SdsTableRowExpansion, SdsTabs, SdsTabsStore, SdsTextarea, SdsToastHost, SdsToastService, SdsToggleSwitch, SdsTopbar, SidebarStore, addDays, addMonths, addMonthsKeepDay, formatDdMmYyyy, formatHhMm, isOutOfRange, isSameDay, isoDay, pad2, sdsFormatNational, sdsMatchDialCode, sdsNormalizeSignificant, startOfDay, startOfMonth };
2223
+ export type { SdsAccordionActive, SdsAccordionValue, SdsAvatarStatus, SdsBadgeSize, SdsBadgeVariant, SdsButtonShape, SdsButtonSize, SdsButtonVariant, SdsCardVariant, SdsCheckboxSize, SdsDatePickerSize, SdsIconName, SdsIconSize, SdsInputAppearance, SdsInputNumberAppearance, SdsInputNumberButtonLayout, SdsInputNumberCurrencyDisplay, SdsInputNumberMode, SdsInputNumberSize, SdsInputShape, SdsInputSize, SdsInputType, SdsLocalizedInputSize, SdsLocalizedValue, SdsMultiSelectDisplay, SdsMultiSelectSize, SdsOtpInputSize, SdsPaginatorSize, SdsPaginatorState, SdsPhoneCountry, SdsPhoneInputSize, SdsPhoneValue, SdsSelectAppearance, SdsSelectSize, SdsSortOrder, SdsTabValue, SdsTableCellContext, SdsTableColumn, SdsTableLazyEvent, SdsTableRowExpansionContext, SdsTableSize, SdsTableSortEvent, SdsTextareaResize, SdsTextareaSize, SdsToast, SdsToastKind, SdsToggleSwitchSize, SdsTopbarAppearance };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@besaitech/ng-design-system",
3
- "version": "0.0.40",
3
+ "version": "0.0.42",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org/",
6
6
  "access": "public"