@muxima-ui/core 1.4.1 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/README.md +11 -0
  2. package/fesm2022/muxima-ui-core-alert.mjs +5 -3
  3. package/fesm2022/muxima-ui-core-alert.mjs.map +1 -1
  4. package/fesm2022/muxima-ui-core-breadcrumb.mjs +5 -3
  5. package/fesm2022/muxima-ui-core-breadcrumb.mjs.map +1 -1
  6. package/fesm2022/muxima-ui-core-carousel.mjs +19 -17
  7. package/fesm2022/muxima-ui-core-carousel.mjs.map +1 -1
  8. package/fesm2022/muxima-ui-core-chips.mjs +19 -14
  9. package/fesm2022/muxima-ui-core-chips.mjs.map +1 -1
  10. package/fesm2022/muxima-ui-core-clipboard.mjs +10 -6
  11. package/fesm2022/muxima-ui-core-clipboard.mjs.map +1 -1
  12. package/fesm2022/muxima-ui-core-color-picker.mjs +53 -50
  13. package/fesm2022/muxima-ui-core-color-picker.mjs.map +1 -1
  14. package/fesm2022/muxima-ui-core-combobox.mjs +15 -12
  15. package/fesm2022/muxima-ui-core-combobox.mjs.map +1 -1
  16. package/fesm2022/muxima-ui-core-command.mjs +21 -16
  17. package/fesm2022/muxima-ui-core-command.mjs.map +1 -1
  18. package/fesm2022/muxima-ui-core-data-grid.mjs +50 -52
  19. package/fesm2022/muxima-ui-core-data-grid.mjs.map +1 -1
  20. package/fesm2022/muxima-ui-core-date-picker.mjs +97 -69
  21. package/fesm2022/muxima-ui-core-date-picker.mjs.map +1 -1
  22. package/fesm2022/muxima-ui-core-editor.mjs +25 -19
  23. package/fesm2022/muxima-ui-core-editor.mjs.map +1 -1
  24. package/fesm2022/muxima-ui-core-file-upload.mjs +30 -25
  25. package/fesm2022/muxima-ui-core-file-upload.mjs.map +1 -1
  26. package/fesm2022/muxima-ui-core-i18n.mjs +550 -0
  27. package/fesm2022/muxima-ui-core-i18n.mjs.map +1 -0
  28. package/fesm2022/muxima-ui-core-image-cropper.mjs +27 -24
  29. package/fesm2022/muxima-ui-core-image-cropper.mjs.map +1 -1
  30. package/fesm2022/muxima-ui-core-kanban.mjs +22 -19
  31. package/fesm2022/muxima-ui-core-kanban.mjs.map +1 -1
  32. package/fesm2022/muxima-ui-core-notification-center.mjs +41 -36
  33. package/fesm2022/muxima-ui-core-notification-center.mjs.map +1 -1
  34. package/fesm2022/muxima-ui-core-pagination.mjs +29 -26
  35. package/fesm2022/muxima-ui-core-pagination.mjs.map +1 -1
  36. package/fesm2022/muxima-ui-core-progress.mjs +5 -3
  37. package/fesm2022/muxima-ui-core-progress.mjs.map +1 -1
  38. package/fesm2022/muxima-ui-core-rating.mjs +12 -8
  39. package/fesm2022/muxima-ui-core-rating.mjs.map +1 -1
  40. package/fesm2022/muxima-ui-core-select.mjs +14 -11
  41. package/fesm2022/muxima-ui-core-select.mjs.map +1 -1
  42. package/fesm2022/muxima-ui-core-sidebar.mjs +10 -7
  43. package/fesm2022/muxima-ui-core-sidebar.mjs.map +1 -1
  44. package/fesm2022/muxima-ui-core-slider.mjs +8 -6
  45. package/fesm2022/muxima-ui-core-slider.mjs.map +1 -1
  46. package/fesm2022/muxima-ui-core-stepper.mjs +5 -3
  47. package/fesm2022/muxima-ui-core-stepper.mjs.map +1 -1
  48. package/fesm2022/muxima-ui-core-table.mjs +4 -4
  49. package/fesm2022/muxima-ui-core-table.mjs.map +1 -1
  50. package/fesm2022/muxima-ui-core-time-picker.mjs +7 -5
  51. package/fesm2022/muxima-ui-core-time-picker.mjs.map +1 -1
  52. package/fesm2022/muxima-ui-core-toast.mjs +8 -5
  53. package/fesm2022/muxima-ui-core-toast.mjs.map +1 -1
  54. package/fesm2022/muxima-ui-core-tour.mjs +10 -11
  55. package/fesm2022/muxima-ui-core-tour.mjs.map +1 -1
  56. package/fesm2022/muxima-ui-core.mjs +1 -1
  57. package/fesm2022/muxima-ui-core.mjs.map +1 -1
  58. package/package.json +5 -1
  59. package/types/muxima-ui-core-alert.d.ts +3 -1
  60. package/types/muxima-ui-core-breadcrumb.d.ts +6 -4
  61. package/types/muxima-ui-core-carousel.d.ts +4 -2
  62. package/types/muxima-ui-core-chips.d.ts +23 -3
  63. package/types/muxima-ui-core-clipboard.d.ts +6 -3
  64. package/types/muxima-ui-core-color-picker.d.ts +40 -7
  65. package/types/muxima-ui-core-combobox.d.ts +6 -3
  66. package/types/muxima-ui-core-command.d.ts +7 -3
  67. package/types/muxima-ui-core-data-grid.d.ts +31 -11
  68. package/types/muxima-ui-core-date-picker.d.ts +59 -14
  69. package/types/muxima-ui-core-editor.d.ts +13 -2
  70. package/types/muxima-ui-core-file-upload.d.ts +22 -6
  71. package/types/muxima-ui-core-i18n.d.ts +322 -0
  72. package/types/muxima-ui-core-image-cropper.d.ts +19 -6
  73. package/types/muxima-ui-core-kanban.d.ts +16 -3
  74. package/types/muxima-ui-core-notification-center.d.ts +30 -8
  75. package/types/muxima-ui-core-pagination.d.ts +16 -1
  76. package/types/muxima-ui-core-progress.d.ts +10 -8
  77. package/types/muxima-ui-core-rating.d.ts +6 -2
  78. package/types/muxima-ui-core-select.d.ts +6 -3
  79. package/types/muxima-ui-core-sidebar.d.ts +6 -3
  80. package/types/muxima-ui-core-slider.d.ts +4 -2
  81. package/types/muxima-ui-core-stepper.d.ts +10 -8
  82. package/types/muxima-ui-core-table.d.ts +3 -3
  83. package/types/muxima-ui-core-time-picker.d.ts +3 -1
  84. package/types/muxima-ui-core-toast.d.ts +3 -0
  85. package/types/muxima-ui-core-tour.d.ts +6 -1
  86. package/types/muxima-ui-core.d.ts +1 -1
@@ -1,4 +1,5 @@
1
- import * as i0 from '@angular/core';
1
+ import * as _muxima_ui_core_i18n from '@muxima-ui/core/i18n';
2
+ import * as _angular_core from '@angular/core';
2
3
 
3
4
  /**
4
5
  * Migalhas: mostram onde a página está na hierarquia.
@@ -16,9 +17,10 @@ import * as i0 from '@angular/core';
16
17
  * Os separadores são desenhados em CSS, por isso o leitor de ecrã não os lê.
17
18
  */
18
19
  declare class MxBreadcrumb {
19
- readonly ariaLabel: i0.InputSignal<string>;
20
- static ɵfac: i0.ɵɵFactoryDeclaration<MxBreadcrumb, never>;
21
- static ɵdir: i0.ɵɵDirectiveDeclaration<MxBreadcrumb, "nav[mxBreadcrumb]", never, { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
20
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
21
+ protected readonly i18n: _angular_core.Signal<_muxima_ui_core_i18n.MxMessages>;
22
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MxBreadcrumb, never>;
23
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MxBreadcrumb, "nav[mxBreadcrumb]", never, { "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
22
24
  }
23
25
 
24
26
  export { MxBreadcrumb };
@@ -1,3 +1,4 @@
1
+ import * as _muxima_ui_core_i18n from '@muxima-ui/core/i18n';
1
2
  import * as _angular_core from '@angular/core';
2
3
 
3
4
  /** Um diapositivo. O carrossel dá-lhe o nome "2 de 5" e tira do teclado os que não se vêem. */
@@ -37,8 +38,9 @@ declare class MxCarousel {
37
38
  readonly indicators: _angular_core.InputSignalWithTransform<boolean, unknown>;
38
39
  /** Botões anterior e seguinte. Sem eles, dá à pessoa outra forma de mudar ([(index)]). */
39
40
  readonly controls: _angular_core.InputSignalWithTransform<boolean, unknown>;
40
- readonly prevLabel: _angular_core.InputSignal<string>;
41
- readonly nextLabel: _angular_core.InputSignal<string>;
41
+ readonly prevLabel: _angular_core.InputSignal<string | undefined>;
42
+ readonly nextLabel: _angular_core.InputSignal<string | undefined>;
43
+ readonly i18n: _angular_core.Signal<_muxima_ui_core_i18n.MxMessages>;
42
44
  readonly slides: _angular_core.Signal<readonly MxCarouselSlide[]>;
43
45
  private readonly viewport;
44
46
  private readonly reducedMotion;
@@ -19,8 +19,18 @@ declare class MxChip {
19
19
  readonly variant: _angular_core.InputSignal<"default" | "outline" | "accent">;
20
20
  readonly size: _angular_core.InputSignal<"sm" | "md">;
21
21
  /** Verbo do botão de remover, seguido do texto do chip. */
22
- readonly removeLabel: _angular_core.InputSignal<string>;
22
+ readonly removeLabel: _angular_core.InputSignal<string | undefined>;
23
23
  readonly removed: _angular_core.OutputEmitterRef<void>;
24
+ protected readonly msg: _angular_core.Signal<{
25
+ remove: string;
26
+ list: string;
27
+ help: string;
28
+ added: (tag: string) => string;
29
+ removed: (tag: string) => string;
30
+ max: (max: number) => string;
31
+ duplicate: (tag: string) => string;
32
+ }>;
33
+ private readonly i18n;
24
34
  private readonly label;
25
35
  protected readonly text: _angular_core.WritableSignal<string>;
26
36
  constructor();
@@ -67,8 +77,8 @@ declare class MxTagInput implements ControlValueAccessor, MxFormFieldControl {
67
77
  /** Valida cada etiqueta antes de a acrescentar (ex.: email). Devolve a mensagem de erro ou null. */
68
78
  readonly validate: _angular_core.InputSignal<(tag: string) => string | null>;
69
79
  /** Nome da lista para o leitor de ecrã. */
70
- readonly listLabel: _angular_core.InputSignal<string>;
71
- readonly helpText: _angular_core.InputSignal<string>;
80
+ readonly listLabel: _angular_core.InputSignal<string | undefined>;
81
+ readonly helpText: _angular_core.InputSignal<string | undefined>;
72
82
  readonly size: _angular_core.InputSignal<"sm" | "md" | "lg">;
73
83
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
74
84
  readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
@@ -83,6 +93,16 @@ declare class MxTagInput implements ControlValueAccessor, MxFormFieldControl {
83
93
  protected readonly field: MxFormField | null;
84
94
  private readonly ngControl;
85
95
  private readonly announcer;
96
+ private readonly i18n;
97
+ protected readonly msg: _angular_core.Signal<{
98
+ remove: string;
99
+ list: string;
100
+ help: string;
101
+ added: (tag: string) => string;
102
+ removed: (tag: string) => string;
103
+ max: (max: number) => string;
104
+ duplicate: (tag: string) => string;
105
+ }>;
86
106
  private readonly host;
87
107
  private readonly input;
88
108
  private readonly injector;
@@ -1,3 +1,4 @@
1
+ import * as _muxima_ui_core_i18n from '@muxima-ui/core/i18n';
1
2
  import * as _angular_core from '@angular/core';
2
3
 
3
4
  /**
@@ -11,7 +12,8 @@ import * as _angular_core from '@angular/core';
11
12
  declare class MxCopy {
12
13
  readonly text: _angular_core.InputSignal<string>;
13
14
  /** Mensagem anunciada ao copiar. */
14
- readonly copiedMessage: _angular_core.InputSignal<string>;
15
+ readonly copiedMessage: _angular_core.InputSignal<string | undefined>;
16
+ private readonly i18n;
15
17
  readonly copiedChange: _angular_core.OutputEmitterRef<boolean>;
16
18
  private readonly clipboard;
17
19
  private readonly announcer;
@@ -32,8 +34,9 @@ declare class MxCopy {
32
34
  */
33
35
  declare class MxCopyButton {
34
36
  protected readonly copy: MxCopy;
35
- readonly label: _angular_core.InputSignal<string>;
36
- readonly copiedLabel: _angular_core.InputSignal<string>;
37
+ protected readonly i18n: _angular_core.Signal<_muxima_ui_core_i18n.MxMessages>;
38
+ readonly label: _angular_core.InputSignal<string | undefined>;
39
+ readonly copiedLabel: _angular_core.InputSignal<string | undefined>;
37
40
  readonly size: _angular_core.InputSignal<"sm" | "md">;
38
41
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MxCopyButton, never>;
39
42
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<MxCopyButton, "button[mxCopyButton]", ["mxCopyButton"], { "label": { "alias": "label"; "required": false; "isSignal": true; }; "copiedLabel": { "alias": "copiedLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof MxCopy; inputs: { "mxCopy": "value"; }; outputs: { "mxCopied": "mxCopied"; }; }]>;
@@ -1,3 +1,5 @@
1
+ import * as _muxima_ui_core_i18n from '@muxima-ui/core/i18n';
2
+ import { MxColorNames } from '@muxima-ui/core/i18n';
1
3
  import * as _angular_core from '@angular/core';
2
4
  import { ConnectedPosition } from '@angular/cdk/overlay';
3
5
  import { ControlValueAccessor } from '@angular/forms';
@@ -25,8 +27,11 @@ declare function mxHexToHsva(hex: string): MxHsva;
25
27
  declare function mxHsvaToHex({ h, s, v, a }: MxHsva): string;
26
28
  /** Contraste WCAG entre duas cores (1 a 21). */
27
29
  declare function mxContrast(a: string, b: string): number;
28
- /** Nome aproximado da cor em português, para o leitor de ecrã: "azul escuro", "cinzento claro". */
29
- declare function mxColorName(hex: string): string;
30
+ /**
31
+ * Nome aproximado da cor, para o leitor de ecrã: "azul escuro", "cinzento claro".
32
+ * Por omissão em português; passa `names` para outro idioma (ex.: `MX_MESSAGES_EN.colorPicker.names`).
33
+ */
34
+ declare function mxColorName(hex: string, names?: MxColorNames): string;
30
35
 
31
36
  /** Amostra pronta: só a cor, ou cor e nome. */
32
37
  type MxColorSwatch = string | {
@@ -54,10 +59,24 @@ declare class MxColorPanel {
54
59
  /** Só as amostras: uma paleta fechada, sem área nem matiz. */
55
60
  readonly swatchesOnly: _angular_core.InputSignalWithTransform<boolean, unknown>;
56
61
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
57
- readonly areaLabel: _angular_core.InputSignal<string>;
58
- readonly hueLabel: _angular_core.InputSignal<string>;
59
- readonly alphaLabel: _angular_core.InputSignal<string>;
60
- readonly swatchesLabel: _angular_core.InputSignal<string>;
62
+ readonly areaLabel: _angular_core.InputSignal<string | undefined>;
63
+ private readonly i18n;
64
+ protected readonly msg: _angular_core.Signal<{
65
+ choose: string;
66
+ change: (name: string, hex: string) => string;
67
+ area: string;
68
+ hue: string;
69
+ alpha: string;
70
+ swatches: string;
71
+ eyeDropper: string;
72
+ hex: string;
73
+ areaValue: (saturation: number, brightness: number, name: string) => string;
74
+ hueValue: (degrees: number, name: string) => string;
75
+ names: _muxima_ui_core_i18n.MxColorNames;
76
+ }>;
77
+ readonly hueLabel: _angular_core.InputSignal<string | undefined>;
78
+ readonly alphaLabel: _angular_core.InputSignal<string | undefined>;
79
+ readonly swatchesLabel: _angular_core.InputSignal<string | undefined>;
61
80
  /** Emite ao largar o rato, escolher amostra ou terminar de escrever (para guardar). */
62
81
  readonly committed: _angular_core.OutputEmitterRef<string>;
63
82
  private readonly area;
@@ -106,7 +125,21 @@ declare class MxColorPicker implements ControlValueAccessor, MxFormFieldControl
106
125
  readonly alpha: _angular_core.InputSignalWithTransform<boolean, unknown>;
107
126
  readonly swatches: _angular_core.InputSignal<MxColorSwatch[]>;
108
127
  readonly placeholder: _angular_core.InputSignal<string>;
109
- readonly dialogLabel: _angular_core.InputSignal<string>;
128
+ readonly dialogLabel: _angular_core.InputSignal<string | undefined>;
129
+ private readonly i18n;
130
+ protected readonly msg: _angular_core.Signal<{
131
+ choose: string;
132
+ change: (name: string, hex: string) => string;
133
+ area: string;
134
+ hue: string;
135
+ alpha: string;
136
+ swatches: string;
137
+ eyeDropper: string;
138
+ hex: string;
139
+ areaValue: (saturation: number, brightness: number, name: string) => string;
140
+ hueValue: (degrees: number, name: string) => string;
141
+ names: _muxima_ui_core_i18n.MxColorNames;
142
+ }>;
110
143
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
111
144
  readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
112
145
  readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
@@ -1,3 +1,4 @@
1
+ import * as _muxima_ui_core_i18n from '@muxima-ui/core/i18n';
1
2
  import * as _angular_core from '@angular/core';
2
3
  import { ConnectedPosition } from '@angular/cdk/overlay';
3
4
  import { ControlValueAccessor } from '@angular/forms';
@@ -21,11 +22,13 @@ declare class MxCombobox<T = unknown> implements ControlValueAccessor, MxFormFie
21
22
  /** Texto de cada opção. Por omissão, String(opção). */
22
23
  readonly displayWith: _angular_core.InputSignal<(option: T) => string>;
23
24
  readonly compareWith: _angular_core.InputSignal<(a: T | null, b: T | null) => boolean>;
24
- readonly placeholder: _angular_core.InputSignal<string>;
25
- readonly emptyText: _angular_core.InputSignal<string>;
25
+ readonly placeholder: _angular_core.InputSignal<string | undefined>;
26
+ protected readonly i18n: _angular_core.Signal<_muxima_ui_core_i18n.MxMessages>;
27
+ protected readonly placeholderText: _angular_core.Signal<string>;
28
+ readonly emptyText: _angular_core.InputSignal<string | undefined>;
26
29
  /** Resultados a chegar (pesquisa no servidor): mostra um indicador no campo e na lista. */
27
30
  readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
28
- readonly loadingText: _angular_core.InputSignal<string>;
31
+ readonly loadingText: _angular_core.InputSignal<string | undefined>;
29
32
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
30
33
  readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
31
34
  readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
@@ -1,3 +1,4 @@
1
+ import * as _muxima_ui_core_i18n from '@muxima-ui/core/i18n';
1
2
  import * as _angular_core from '@angular/core';
2
3
  import { TemplateRef } from '@angular/core';
3
4
  import { DialogRef } from '@angular/cdk/dialog';
@@ -33,9 +34,11 @@ declare class MxCommandItemTemplate {
33
34
  */
34
35
  declare class MxCommand<D = unknown> {
35
36
  readonly items: _angular_core.InputSignal<readonly MxCommandItem<D>[]>;
36
- readonly placeholder: _angular_core.InputSignal<string>;
37
- readonly emptyText: _angular_core.InputSignal<string>;
38
- readonly ariaLabel: _angular_core.InputSignal<string>;
37
+ readonly placeholder: _angular_core.InputSignal<string | undefined>;
38
+ readonly emptyText: _angular_core.InputSignal<string | undefined>;
39
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
40
+ protected readonly i18n: _angular_core.Signal<_muxima_ui_core_i18n.MxMessages>;
41
+ protected readonly labelText: _angular_core.Signal<string>;
39
42
  readonly selected: _angular_core.OutputEmitterRef<MxCommandItem<D>>;
40
43
  protected readonly itemTemplate: _angular_core.Signal<MxCommandItemTemplate | undefined>;
41
44
  private readonly host;
@@ -81,6 +84,7 @@ declare class MxCommandPaletteDialog {
81
84
  */
82
85
  declare class MxCommandPalette {
83
86
  private readonly dialog;
87
+ private readonly i18n;
84
88
  open<D>(items: MxCommandItem<D>[], options?: {
85
89
  placeholder?: string;
86
90
  label?: string;
@@ -85,18 +85,38 @@ declare class MxDataGrid<T = any> {
85
85
  readonly density: _angular_core.InputSignal<"comfortable" | "compact">;
86
86
  readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
87
87
  readonly columnMenu: _angular_core.InputSignalWithTransform<boolean, unknown>;
88
- readonly ariaLabel: _angular_core.InputSignal<string>;
88
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
89
+ private readonly i18n;
90
+ protected readonly msg: _angular_core.Signal<{
91
+ label: string;
92
+ empty: string;
93
+ loading: string;
94
+ columns: string;
95
+ filter: string;
96
+ all: string;
97
+ selectAll: string;
98
+ selectRow: string;
99
+ selection: string;
100
+ resizeHint: string;
101
+ numberFilter: (filter: string, column: string) => string;
102
+ rows: (n: string, count: number) => string;
103
+ of: (total: string) => string;
104
+ selected: (n: string, count: number) => string;
105
+ sorted: (column: string, direction: "asc" | "desc") => string;
106
+ unsorted: string;
107
+ width: (column: string, px: number) => string;
108
+ }>;
89
109
  /** Coluna cujo texto identifica a linha nos nomes ("Seleccionar FT 2026/0201"). */
90
110
  readonly labelKey: _angular_core.InputSignal<string | null>;
91
- readonly emptyText: _angular_core.InputSignal<string>;
92
- readonly loadingText: _angular_core.InputSignal<string>;
93
- readonly columnsText: _angular_core.InputSignal<string>;
94
- readonly filterText: _angular_core.InputSignal<string>;
95
- readonly allText: _angular_core.InputSignal<string>;
96
- readonly selectAllText: _angular_core.InputSignal<string>;
97
- readonly selectRowText: _angular_core.InputSignal<string>;
98
- readonly selectText: _angular_core.InputSignal<string>;
99
- readonly resizeHint: _angular_core.InputSignal<string>;
111
+ readonly emptyText: _angular_core.InputSignal<string | undefined>;
112
+ readonly loadingText: _angular_core.InputSignal<string | undefined>;
113
+ readonly columnsText: _angular_core.InputSignal<string | undefined>;
114
+ readonly filterText: _angular_core.InputSignal<string | undefined>;
115
+ readonly allText: _angular_core.InputSignal<string | undefined>;
116
+ readonly selectAllText: _angular_core.InputSignal<string | undefined>;
117
+ readonly selectRowText: _angular_core.InputSignal<string | undefined>;
118
+ readonly selectText: _angular_core.InputSignal<string | undefined>;
119
+ readonly resizeHint: _angular_core.InputSignal<string | undefined>;
100
120
  /** Enter ou duplo clique numa linha. */
101
121
  readonly rowActivate: _angular_core.OutputEmitterRef<T>;
102
122
  private readonly cells;
@@ -115,7 +135,7 @@ declare class MxDataGrid<T = any> {
115
135
  /** Célula activa: linha e coluna na grelha (0 = cabeçalho). */
116
136
  private readonly active;
117
137
  protected readonly showToolbar: _angular_core.Signal<boolean>;
118
- protected readonly offset: _angular_core.Signal<1 | 0>;
138
+ protected readonly offset: _angular_core.Signal<0 | 1>;
119
139
  protected readonly hasFilters: _angular_core.Signal<boolean>;
120
140
  protected readonly headerRows: _angular_core.Signal<number>;
121
141
  protected readonly hideableColumns: _angular_core.Signal<MxGridColumn<T>[]>;
@@ -2,6 +2,7 @@ import * as _angular_core from '@angular/core';
2
2
  import { ConnectedPosition } from '@angular/cdk/overlay';
3
3
  import { ControlValueAccessor } from '@angular/forms';
4
4
  import { MxFormFieldControl, MxFormField } from '@muxima-ui/core/form-field';
5
+ import { MxMessages } from '@muxima-ui/core/i18n';
5
6
 
6
7
  /** Data sem horas, para comparar dias. */
7
8
  declare function mxStartOfDay(d: Date): Date;
@@ -31,9 +32,22 @@ declare class MxCalendar {
31
32
  readonly max: _angular_core.InputSignal<Date | null>;
32
33
  /** Dias que não se podem escolher (ex.: fins-de-semana). */
33
34
  readonly dateDisabled: _angular_core.InputSignal<(d: Date) => boolean>;
34
- readonly locale: _angular_core.InputSignal<string>;
35
- /** Primeiro dia da semana: 1 = segunda-feira. */
36
- readonly firstDayOfWeek: _angular_core.InputSignal<number>;
35
+ /** Locale dos nomes dos meses e dos dias; por omissão o do idioma activo. */
36
+ readonly locale: _angular_core.InputSignal<string | undefined>;
37
+ /** Primeiro dia da semana: 0 = domingo, 1 = segunda-feira. Por omissão o do idioma activo. */
38
+ readonly firstDayOfWeek: _angular_core.InputSignal<number | undefined>;
39
+ private readonly i18n;
40
+ protected readonly msg: _angular_core.Signal<{
41
+ previousMonth: (month: string) => string;
42
+ nextMonth: (month: string) => string;
43
+ rangeStart: string;
44
+ rangeEnd: string;
45
+ rangeStartEnd: string;
46
+ rangeHint: (start: string, end: string) => string;
47
+ rangeStartHint: (start: string) => string;
48
+ }>;
49
+ private readonly loc;
50
+ private readonly firstDay;
37
51
  readonly selected: _angular_core.OutputEmitterRef<Date>;
38
52
  /** `single` escolhe um dia; `range` escolhe um intervalo em [(range)]. */
39
53
  readonly mode: _angular_core.InputSignal<"single" | "range">;
@@ -88,8 +102,10 @@ declare class MxCalendar {
88
102
  }
89
103
 
90
104
  /** Converte "dd/mm/aaaa" numa data. Aceita também "-" e "." como separadores. */
91
- declare function mxParseDate(text: string): Date | null;
92
- declare function mxFormatDate(d: Date | null): string;
105
+ /** Ordem do dia (d), mês (m) e ano (y) numa data escrita. */
106
+ type MxDateOrder = 'dmy' | 'mdy' | 'ymd';
107
+ declare function mxParseDate(text: string, order?: MxDateOrder): Date | null;
108
+ declare function mxFormatDate(d: Date | null, order?: MxDateOrder): string;
93
109
  /**
94
110
  * Campo de data: escreve-se "dd/mm/aaaa" ou escolhe-se no calendário.
95
111
  * O calendário abre num diálogo não modal com foco no dia; Escape fecha.
@@ -109,8 +125,17 @@ declare class MxDatePicker implements ControlValueAccessor, MxFormFieldControl {
109
125
  readonly min: _angular_core.InputSignal<Date | null>;
110
126
  readonly max: _angular_core.InputSignal<Date | null>;
111
127
  readonly dateDisabled: _angular_core.InputSignal<(d: Date) => boolean>;
112
- readonly locale: _angular_core.InputSignal<string>;
113
- readonly placeholder: _angular_core.InputSignal<string>;
128
+ /** Locale dos nomes dos meses e dos dias; por omissão o do idioma activo. */
129
+ readonly locale: _angular_core.InputSignal<string | undefined>;
130
+ /** Por omissão "dd/mm/aaaa" em português e "mm/dd/yyyy" em inglês. */
131
+ readonly placeholder: _angular_core.InputSignal<string | undefined>;
132
+ private readonly i18n;
133
+ protected readonly msg: _angular_core.Signal<{
134
+ placeholder: string;
135
+ choose: string;
136
+ change: (date: string) => string;
137
+ }>;
138
+ protected readonly loc: _angular_core.Signal<string>;
114
139
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
115
140
  readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
116
141
  readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
@@ -166,8 +191,12 @@ interface MxDateRangePreset {
166
191
  end: Date;
167
192
  };
168
193
  }
169
- /** Atalhos comuns: últimos 7 e 30 dias, este mês e o mês passado. */
170
- declare function mxDefaultRangePresets(): MxDateRangePreset[];
194
+ /**
195
+ * Atalhos comuns: últimos 7 e 30 dias, este mês e o mês passado.
196
+ * Os nomes vêm de `labels` (por omissão em português); para o idioma activo,
197
+ * usa `mxDefaultRangePresets(inject(MxI18n).messages().dateRangePicker)`.
198
+ */
199
+ declare function mxDefaultRangePresets(labels?: MxMessages['dateRangePicker']): MxDateRangePreset[];
171
200
  /**
172
201
  * Campo de intervalo de datas: dois campos (início e fim) que se escrevem em "dd/mm/aaaa"
173
202
  * ou se escolhem num calendário, com atalhos opcionais.
@@ -188,10 +217,26 @@ declare class MxDateRangePicker implements ControlValueAccessor, MxFormFieldCont
188
217
  readonly max: _angular_core.InputSignal<Date | null>;
189
218
  readonly dateDisabled: _angular_core.InputSignal<(d: Date) => boolean>;
190
219
  readonly presets: _angular_core.InputSignal<MxDateRangePreset[]>;
191
- readonly locale: _angular_core.InputSignal<string>;
192
- readonly placeholder: _angular_core.InputSignal<string>;
193
- readonly startLabel: _angular_core.InputSignal<string>;
194
- readonly endLabel: _angular_core.InputSignal<string>;
220
+ /** Locale dos nomes dos meses e dos dias; por omissão o do idioma activo. */
221
+ readonly locale: _angular_core.InputSignal<string | undefined>;
222
+ /** Por omissão "dd/mm/aaaa" em português e "mm/dd/yyyy" em inglês. */
223
+ readonly placeholder: _angular_core.InputSignal<string | undefined>;
224
+ readonly startLabel: _angular_core.InputSignal<string | undefined>;
225
+ readonly endLabel: _angular_core.InputSignal<string | undefined>;
226
+ private readonly i18n;
227
+ protected readonly msg: _angular_core.Signal<{
228
+ start: string;
229
+ end: string;
230
+ choose: string;
231
+ change: (start: string, end: string) => string;
232
+ presets: string;
233
+ last7Days: string;
234
+ last30Days: string;
235
+ thisMonth: string;
236
+ lastMonth: string;
237
+ }>;
238
+ protected readonly loc: _angular_core.Signal<string>;
239
+ protected readonly placeholderText: _angular_core.Signal<string>;
195
240
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
196
241
  readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
197
242
  readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
@@ -258,4 +303,4 @@ declare function mxDateRangeComplete(control: {
258
303
  } | null;
259
304
 
260
305
  export { MxCalendar, MxDatePicker, MxDateRangePicker, mxDateRangeComplete, mxDefaultRangePresets, mxFormatDate, mxParseDate, mxSameDay, mxStartOfDay };
261
- export type { MxDateRange, MxDateRangePreset };
306
+ export type { MxDateOrder, MxDateRange, MxDateRangePreset };
@@ -48,8 +48,19 @@ declare class MxEditor implements ControlValueAccessor, MxFormFieldControl {
48
48
  readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
49
49
  readonly id: _angular_core.InputSignal<string | undefined>;
50
50
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
51
- readonly toolbarLabel: _angular_core.InputSignal<string>;
52
- readonly linkLabel: _angular_core.InputSignal<string>;
51
+ readonly toolbarLabel: _angular_core.InputSignal<string | undefined>;
52
+ readonly linkLabel: _angular_core.InputSignal<string | undefined>;
53
+ private readonly i18n;
54
+ protected readonly msg: _angular_core.Signal<{
55
+ toolbar: string;
56
+ link: string;
57
+ apply: string;
58
+ remove: string;
59
+ cancel: string;
60
+ characters: string;
61
+ tools: Record<"bold" | "italic" | "underline" | "strike" | "code" | "heading2" | "heading3" | "paragraph" | "bulletList" | "orderedList" | "blockquote" | "link" | "undo" | "redo", string>;
62
+ }>;
63
+ protected toolLabel(t: MxEditorTool): string;
53
64
  protected readonly field: MxFormField | null;
54
65
  private readonly ngControl;
55
66
  private readonly content;
@@ -38,14 +38,30 @@ declare class MxFileUpload implements ControlValueAccessor, MxFormFieldControl {
38
38
  readonly progress: _angular_core.InputSignal<Record<string, number>>;
39
39
  /** Erro de envio por nome de ficheiro. */
40
40
  readonly errors: _angular_core.InputSignal<Record<string, string>>;
41
- readonly dropText: _angular_core.InputSignal<string>;
42
- readonly buttonText: _angular_core.InputSignal<string>;
41
+ readonly dropText: _angular_core.InputSignal<string | undefined>;
42
+ private readonly i18n;
43
+ protected readonly msg: _angular_core.Signal<{
44
+ drop: string;
45
+ browse: string;
46
+ list: string;
47
+ remove: string;
48
+ done: string;
49
+ uploading: (name: string) => string;
50
+ rejectedType: (name: string) => string;
51
+ rejectedSize: (name: string, size: string, max: string) => string;
52
+ rejectedCount: (name: string, max: number) => string;
53
+ addedOne: (name: string) => string;
54
+ addedMany: (n: number) => string;
55
+ removed: (name: string) => string;
56
+ }>;
57
+ readonly buttonText: _angular_core.InputSignal<string | undefined>;
43
58
  /** Linha de ajuda dentro da área (ex.: "PDF até 5 MB"). */
44
59
  readonly description: _angular_core.InputSignal<string>;
45
- readonly listLabel: _angular_core.InputSignal<string>;
46
- readonly removeText: _angular_core.InputSignal<string>;
47
- readonly doneText: _angular_core.InputSignal<string>;
48
- readonly locale: _angular_core.InputSignal<string>;
60
+ readonly listLabel: _angular_core.InputSignal<string | undefined>;
61
+ readonly removeText: _angular_core.InputSignal<string | undefined>;
62
+ readonly doneText: _angular_core.InputSignal<string | undefined>;
63
+ /** Locale dos tamanhos ("1,2 MB"); por omissão o do idioma activo. */
64
+ readonly locale: _angular_core.InputSignal<string | undefined>;
49
65
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
50
66
  readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
51
67
  readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;