@neural-ui/core 1.7.1 → 1.7.3

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 (129) hide show
  1. package/bottom-sheet/package.json +4 -0
  2. package/confirm-popup/package.json +4 -0
  3. package/data-view/package.json +4 -0
  4. package/fesm2022/neural-ui-core-alert.mjs +48 -21
  5. package/fesm2022/neural-ui-core-alert.mjs.map +1 -1
  6. package/fesm2022/neural-ui-core-autocomplete.mjs +153 -71
  7. package/fesm2022/neural-ui-core-autocomplete.mjs.map +1 -1
  8. package/fesm2022/neural-ui-core-block-ui.mjs +2 -2
  9. package/fesm2022/neural-ui-core-block-ui.mjs.map +1 -1
  10. package/fesm2022/neural-ui-core-bottom-sheet.mjs +121 -0
  11. package/fesm2022/neural-ui-core-bottom-sheet.mjs.map +1 -0
  12. package/fesm2022/neural-ui-core-breadcrumb.mjs +2 -2
  13. package/fesm2022/neural-ui-core-breadcrumb.mjs.map +1 -1
  14. package/fesm2022/neural-ui-core-button.mjs +2 -2
  15. package/fesm2022/neural-ui-core-button.mjs.map +1 -1
  16. package/fesm2022/neural-ui-core-calendar.mjs +2 -2
  17. package/fesm2022/neural-ui-core-calendar.mjs.map +1 -1
  18. package/fesm2022/neural-ui-core-checkbox.mjs +69 -39
  19. package/fesm2022/neural-ui-core-checkbox.mjs.map +1 -1
  20. package/fesm2022/neural-ui-core-chip.mjs +2 -2
  21. package/fesm2022/neural-ui-core-chip.mjs.map +1 -1
  22. package/fesm2022/neural-ui-core-code-block.mjs +2 -2
  23. package/fesm2022/neural-ui-core-code-block.mjs.map +1 -1
  24. package/fesm2022/neural-ui-core-confirm-popup.mjs +105 -0
  25. package/fesm2022/neural-ui-core-confirm-popup.mjs.map +1 -0
  26. package/fesm2022/neural-ui-core-dashboard-grid.mjs +9 -3
  27. package/fesm2022/neural-ui-core-dashboard-grid.mjs.map +1 -1
  28. package/fesm2022/neural-ui-core-data-view.mjs +386 -0
  29. package/fesm2022/neural-ui-core-data-view.mjs.map +1 -0
  30. package/fesm2022/neural-ui-core-date-input.mjs +185 -10
  31. package/fesm2022/neural-ui-core-date-input.mjs.map +1 -1
  32. package/fesm2022/neural-ui-core-empty-state.mjs +19 -5
  33. package/fesm2022/neural-ui-core-empty-state.mjs.map +1 -1
  34. package/fesm2022/neural-ui-core-form-field.mjs +81 -0
  35. package/fesm2022/neural-ui-core-form-field.mjs.map +1 -0
  36. package/fesm2022/neural-ui-core-inline-editor.mjs +428 -0
  37. package/fesm2022/neural-ui-core-inline-editor.mjs.map +1 -0
  38. package/fesm2022/neural-ui-core-input-mask.mjs +110 -0
  39. package/fesm2022/neural-ui-core-input-mask.mjs.map +1 -0
  40. package/fesm2022/neural-ui-core-input.mjs +2 -2
  41. package/fesm2022/neural-ui-core-input.mjs.map +1 -1
  42. package/fesm2022/neural-ui-core-listbox.mjs +219 -0
  43. package/fesm2022/neural-ui-core-listbox.mjs.map +1 -0
  44. package/fesm2022/neural-ui-core-menu.mjs +229 -0
  45. package/fesm2022/neural-ui-core-menu.mjs.map +1 -0
  46. package/fesm2022/neural-ui-core-modal.mjs +34 -10
  47. package/fesm2022/neural-ui-core-modal.mjs.map +1 -1
  48. package/fesm2022/neural-ui-core-multiselect.mjs +170 -179
  49. package/fesm2022/neural-ui-core-multiselect.mjs.map +1 -1
  50. package/fesm2022/neural-ui-core-number-input.mjs +2 -2
  51. package/fesm2022/neural-ui-core-number-input.mjs.map +1 -1
  52. package/fesm2022/neural-ui-core-panel.mjs +92 -0
  53. package/fesm2022/neural-ui-core-panel.mjs.map +1 -0
  54. package/fesm2022/neural-ui-core-password.mjs +106 -0
  55. package/fesm2022/neural-ui-core-password.mjs.map +1 -0
  56. package/fesm2022/neural-ui-core-pick-list.mjs +133 -0
  57. package/fesm2022/neural-ui-core-pick-list.mjs.map +1 -0
  58. package/fesm2022/neural-ui-core-select.mjs +128 -166
  59. package/fesm2022/neural-ui-core-select.mjs.map +1 -1
  60. package/fesm2022/neural-ui-core-sidebar.mjs +14 -3
  61. package/fesm2022/neural-ui-core-sidebar.mjs.map +1 -1
  62. package/fesm2022/neural-ui-core-slider.mjs +2 -2
  63. package/fesm2022/neural-ui-core-slider.mjs.map +1 -1
  64. package/fesm2022/neural-ui-core-spinner.mjs +19 -9
  65. package/fesm2022/neural-ui-core-spinner.mjs.map +1 -1
  66. package/fesm2022/neural-ui-core-split-button.mjs +2 -2
  67. package/fesm2022/neural-ui-core-split-button.mjs.map +1 -1
  68. package/fesm2022/neural-ui-core-table.mjs +503 -62
  69. package/fesm2022/neural-ui-core-table.mjs.map +1 -1
  70. package/fesm2022/neural-ui-core-tabs.mjs +11 -4
  71. package/fesm2022/neural-ui-core-tabs.mjs.map +1 -1
  72. package/fesm2022/neural-ui-core-tags.mjs +134 -0
  73. package/fesm2022/neural-ui-core-tags.mjs.map +1 -0
  74. package/fesm2022/neural-ui-core-textarea.mjs +2 -2
  75. package/fesm2022/neural-ui-core-textarea.mjs.map +1 -1
  76. package/fesm2022/neural-ui-core-toggle-button-group.mjs +2 -2
  77. package/fesm2022/neural-ui-core-toggle-button-group.mjs.map +1 -1
  78. package/fesm2022/neural-ui-core-toolbar.mjs +16 -4
  79. package/fesm2022/neural-ui-core-toolbar.mjs.map +1 -1
  80. package/fesm2022/neural-ui-core-tree-select.mjs +259 -0
  81. package/fesm2022/neural-ui-core-tree-select.mjs.map +1 -0
  82. package/fesm2022/neural-ui-core-tree-table.mjs +267 -8
  83. package/fesm2022/neural-ui-core-tree-table.mjs.map +1 -1
  84. package/fesm2022/neural-ui-core-tree.mjs +15 -14
  85. package/fesm2022/neural-ui-core-tree.mjs.map +1 -1
  86. package/fesm2022/neural-ui-core-uploader.mjs +103 -12
  87. package/fesm2022/neural-ui-core-uploader.mjs.map +1 -1
  88. package/form-field/package.json +4 -0
  89. package/inline-editor/package.json +4 -0
  90. package/input-mask/package.json +4 -0
  91. package/listbox/package.json +4 -0
  92. package/menu/package.json +4 -0
  93. package/package.json +53 -1
  94. package/panel/package.json +4 -0
  95. package/password/package.json +4 -0
  96. package/pick-list/package.json +4 -0
  97. package/styles/_tokens.scss +33 -17
  98. package/tags/package.json +4 -0
  99. package/tree-select/package.json +4 -0
  100. package/types/neural-ui-core-alert.d.ts +2 -1
  101. package/types/neural-ui-core-autocomplete.d.ts +22 -2
  102. package/types/neural-ui-core-bottom-sheet.d.ts +20 -0
  103. package/types/neural-ui-core-checkbox.d.ts +6 -1
  104. package/types/neural-ui-core-confirm-popup.d.ts +38 -0
  105. package/types/neural-ui-core-dashboard-grid.d.ts +1 -0
  106. package/types/neural-ui-core-data-view.d.ts +95 -0
  107. package/types/neural-ui-core-date-input.d.ts +35 -5
  108. package/types/neural-ui-core-empty-state.d.ts +11 -1
  109. package/types/neural-ui-core-form-field.d.ts +33 -0
  110. package/types/neural-ui-core-inline-editor.d.ts +66 -0
  111. package/types/neural-ui-core-input-mask.d.ts +26 -0
  112. package/types/neural-ui-core-listbox.d.ts +54 -0
  113. package/types/neural-ui-core-menu.d.ts +49 -0
  114. package/types/neural-ui-core-modal.d.ts +10 -2
  115. package/types/neural-ui-core-multiselect.d.ts +10 -1
  116. package/types/neural-ui-core-panel.d.ts +25 -0
  117. package/types/neural-ui-core-password.d.ts +29 -0
  118. package/types/neural-ui-core-pick-list.d.ts +40 -0
  119. package/types/neural-ui-core-select.d.ts +7 -1
  120. package/types/neural-ui-core-sidebar.d.ts +5 -1
  121. package/types/neural-ui-core-spinner.d.ts +4 -2
  122. package/types/neural-ui-core-table.d.ts +89 -5
  123. package/types/neural-ui-core-tabs.d.ts +2 -0
  124. package/types/neural-ui-core-tags.d.ts +32 -0
  125. package/types/neural-ui-core-toolbar.d.ts +8 -2
  126. package/types/neural-ui-core-tree-select.d.ts +57 -0
  127. package/types/neural-ui-core-tree-table.d.ts +111 -4
  128. package/types/neural-ui-core-tree.d.ts +1 -1
  129. package/types/neural-ui-core-uploader.d.ts +26 -3
@@ -9,11 +9,16 @@ interface NeuDateRange {
9
9
  start: Date | null;
10
10
  end: Date | null;
11
11
  }
12
+ interface NeuDatePreset {
13
+ label: string;
14
+ range: NeuDateRange | (() => NeuDateRange);
15
+ }
12
16
  interface CalendarDay {
13
17
  date: Date;
14
18
  inMonth: boolean;
15
19
  isToday: boolean;
16
20
  isSelected: boolean;
21
+ disabled: boolean;
17
22
  }
18
23
  interface DrumSlot {
19
24
  value: number;
@@ -31,6 +36,7 @@ interface RangeCell {
31
36
  rangeEnd: boolean;
32
37
  inRange: boolean;
33
38
  label: string;
39
+ disabled: boolean;
34
40
  }
35
41
  /**
36
42
  * NeuralUI DateInput — campo de fecha/hora unificado con modo rango.
@@ -75,12 +81,22 @@ declare class NeuDateInputComponent implements ControlValueAccessor, OnDestroy {
75
81
  step: _angular_core.InputSignal<number | null>;
76
82
  /** Locale explícito opcional / Optional explicit locale */
77
83
  locale: _angular_core.InputSignal<string | null>;
78
- /** Placeholder del trigger de rango / Range trigger placeholder */
84
+ /** Fechas deshabilitadas / Disabled dates */
85
+ disabledDates: _angular_core.InputSignal<(string | Date)[] | ((date: Date) => boolean)>;
86
+ /** Permite seleccionar varias fechas en type="date" / Multiple date selection for type="date" */
87
+ multiple: _angular_core.InputSignal<boolean>;
88
+ /** Muestra selectores de mes/año en el calendario / Shows month/year picker controls */
89
+ showMonthYearPicker: _angular_core.InputSignal<boolean>;
90
+ /** Rango de años para el selector / Year picker range */
91
+ yearRange: _angular_core.InputSignal<number>;
92
+ /** Placeholder del trigger / Trigger placeholder */
79
93
  placeholder: _angular_core.InputSignal<string>;
80
94
  /** Formato de fecha en modo rango / Date display format in range mode */
81
95
  dateFormat: _angular_core.InputSignal<"short" | "medium" | "long" | "full" | "numeric">;
82
96
  /** Etiqueta flotante / Floating label */
83
97
  floatingLabel: _angular_core.InputSignal<boolean>;
98
+ /** Presets rápidos para rangos / Quick range presets */
99
+ presets: _angular_core.InputSignal<NeuDatePreset[]>;
84
100
  /** Emitido al confirmar el rango / Emitted when range is confirmed */
85
101
  readonly rangeChange: _angular_core.OutputEmitterRef<NeuDateRange>;
86
102
  protected readonly _id: string;
@@ -103,6 +119,7 @@ declare class NeuDateInputComponent implements ControlValueAccessor, OnDestroy {
103
119
  protected readonly _selDay: _angular_core.WritableSignal<number | null>;
104
120
  protected readonly _selHour: _angular_core.WritableSignal<number>;
105
121
  protected readonly _selMinute: _angular_core.WritableSignal<number>;
122
+ protected readonly _selectedDates: _angular_core.WritableSignal<string[]>;
106
123
  private readonly _today;
107
124
  private readonly _documentLang;
108
125
  private readonly _pickStart;
@@ -130,6 +147,8 @@ declare class NeuDateInputComponent implements ControlValueAccessor, OnDestroy {
130
147
  timePlaceholder: string;
131
148
  datePlaceholder: string;
132
149
  dateTimePlaceholder: string;
150
+ chooseMonth: string;
151
+ chooseYear: string;
133
152
  }>;
134
153
  readonly _weekDayLabels: _angular_core.Signal<string[]>;
135
154
  readonly _leftTitle: _angular_core.Signal<string>;
@@ -151,11 +170,17 @@ declare class NeuDateInputComponent implements ControlValueAccessor, OnDestroy {
151
170
  _selectDay(date: Date): void;
152
171
  _hoverDay(date: Date): void;
153
172
  _applyRange(): void;
173
+ _applyPreset(preset: NeuDatePreset): void;
154
174
  _clearRange(): void;
155
175
  readonly displayValue: _angular_core.Signal<string>;
156
176
  readonly placeholderText: _angular_core.Signal<string>;
157
177
  readonly monthLabel: _angular_core.Signal<string>;
158
178
  readonly weekdays: _angular_core.Signal<string[]>;
179
+ readonly monthOptions: _angular_core.Signal<{
180
+ value: number;
181
+ label: string;
182
+ }[]>;
183
+ readonly yearOptions: _angular_core.Signal<number[]>;
159
184
  readonly calendarDays: _angular_core.Signal<CalendarDay[]>;
160
185
  readonly hourSlots: _angular_core.Signal<DrumSlot[]>;
161
186
  readonly minuteSlots: _angular_core.Signal<DrumSlot[]>;
@@ -166,6 +191,8 @@ declare class NeuDateInputComponent implements ControlValueAccessor, OnDestroy {
166
191
  prevMonth(): void;
167
192
  nextMonth(): void;
168
193
  selectDay(day: CalendarDay): void;
194
+ setViewMonth(value: string | number): void;
195
+ setViewYear(value: string | number): void;
169
196
  formatDayLabel(date: Date): string;
170
197
  today(): void;
171
198
  clear(): void;
@@ -174,13 +201,16 @@ declare class NeuDateInputComponent implements ControlValueAccessor, OnDestroy {
174
201
  onHourWheel(e: WheelEvent): void;
175
202
  onMinuteWheel(e: WheelEvent): void;
176
203
  private _emitValue;
177
- writeValue(value: string | NeuDateRange | null): void;
178
- registerOnChange(fn: (v: string | NeuDateRange) => void): void;
204
+ isDateSelected(date: Date): boolean;
205
+ isDateDisabled(date: Date): boolean;
206
+ private _toDateValue;
207
+ writeValue(value: string | string[] | NeuDateRange | null): void;
208
+ registerOnChange(fn: (v: string | string[] | NeuDateRange) => void): void;
179
209
  registerOnTouched(fn: () => void): void;
180
210
  setDisabledState(isDisabled: boolean): void;
181
211
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuDateInputComponent, never>;
182
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuDateInputComponent, "neu-date-input", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "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; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "dateFormat": { "alias": "dateFormat"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; }, { "rangeChange": "rangeChange"; }, never, never, true, never>;
212
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuDateInputComponent, "neu-date-input", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "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; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "disabledDates": { "alias": "disabledDates"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "showMonthYearPicker": { "alias": "showMonthYearPicker"; "required": false; "isSignal": true; }; "yearRange": { "alias": "yearRange"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "dateFormat": { "alias": "dateFormat"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; }, { "rangeChange": "rangeChange"; }, never, never, true, never>;
183
213
  }
184
214
 
185
215
  export { NeuDateInputComponent };
186
- export type { NeuDateRange };
216
+ export type { NeuDatePreset, NeuDateRange };
@@ -1,5 +1,7 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
 
3
+ type NeuEmptyStateSize = 'sm' | 'md' | 'lg';
4
+ type NeuEmptyStateTone = 'neutral' | 'info' | 'warning' | 'danger' | 'success';
3
5
  /**
4
6
  * NeuEmptyState — Estado vacío con icono Lucide, título, descripción y acción.
5
7
  *
@@ -23,10 +25,18 @@ declare class NeuEmptyStateComponent {
23
25
  description: _angular_core.InputSignal<string>;
24
26
  /** Texto del botón de acción. Si está vacío, no se muestra el botón. / Action button text. If empty, the button is not shown. */
25
27
  actionLabel: _angular_core.InputSignal<string>;
28
+ /** Tamaño visual del estado vacío / Visual empty state size */
29
+ size: _angular_core.InputSignal<NeuEmptyStateSize>;
30
+ /** Tono semántico del icono y fondo / Semantic tone for icon and background */
31
+ tone: _angular_core.InputSignal<NeuEmptyStateTone>;
32
+ /** Reduce espaciado para tablas, listas y overlays compactos / Reduces spacing for tables, lists and compact overlays */
33
+ compact: _angular_core.InputSignal<boolean>;
26
34
  /** Emite cuando el usuario hace clic en el botón de acción. / Emits when the user clicks the action button. */
27
35
  action: _angular_core.OutputEmitterRef<void>;
36
+ hostClasses(): Record<string, boolean>;
28
37
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuEmptyStateComponent, never>;
29
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuEmptyStateComponent, "neu-empty-state", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "actionLabel": { "alias": "actionLabel"; "required": false; "isSignal": true; }; }, { "action": "action"; }, never, never, true, never>;
38
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuEmptyStateComponent, "neu-empty-state", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "actionLabel": { "alias": "actionLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; }, { "action": "action"; }, never, never, true, never>;
30
39
  }
31
40
 
32
41
  export { NeuEmptyStateComponent };
42
+ export type { NeuEmptyStateSize, NeuEmptyStateTone };
@@ -0,0 +1,33 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ type NeuFormFieldSize = 'sm' | 'md' | 'lg';
4
+ declare class NeuFormFieldComponent {
5
+ readonly label: _angular_core.InputSignal<string>;
6
+ readonly hint: _angular_core.InputSignal<string>;
7
+ readonly error: _angular_core.InputSignal<string>;
8
+ readonly prefix: _angular_core.InputSignal<string>;
9
+ readonly suffix: _angular_core.InputSignal<string>;
10
+ readonly forId: _angular_core.InputSignal<string>;
11
+ readonly size: _angular_core.InputSignal<NeuFormFieldSize>;
12
+ readonly classes: _angular_core.Signal<{
13
+ [x: string]: boolean;
14
+ 'neu-form-field': boolean;
15
+ 'neu-form-field--error': boolean;
16
+ }>;
17
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuFormFieldComponent, never>;
18
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuFormFieldComponent, "neu-form-field", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "prefix": { "alias": "prefix"; "required": false; "isSignal": true; }; "suffix": { "alias": "suffix"; "required": false; "isSignal": true; }; "forId": { "alias": "forId"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
19
+ }
20
+ declare class NeuInputGroupComponent {
21
+ readonly size: _angular_core.InputSignal<NeuFormFieldSize>;
22
+ readonly attached: _angular_core.InputSignal<boolean>;
23
+ readonly classes: _angular_core.Signal<{
24
+ [x: string]: boolean;
25
+ 'neu-input-group': boolean;
26
+ 'neu-input-group--attached': boolean;
27
+ }>;
28
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuInputGroupComponent, never>;
29
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuInputGroupComponent, "neu-input-group", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "attached": { "alias": "attached"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
30
+ }
31
+
32
+ export { NeuFormFieldComponent, NeuInputGroupComponent };
33
+ export type { NeuFormFieldSize };
@@ -0,0 +1,66 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { ControlValueAccessor, FormControl } from '@angular/forms';
3
+ import { NeuSelectOption } from '@neural-ui/core/select';
4
+
5
+ type NeuInlineEditorType = 'text' | 'number' | 'select' | 'textarea' | 'date';
6
+ type NeuInlineEditorSize = 'sm' | 'md' | 'lg';
7
+ interface NeuInlineEditorCommitEvent<T = string | number | null> {
8
+ previousValue: T;
9
+ value: T;
10
+ }
11
+ declare class NeuInlineEditorComponent implements ControlValueAccessor {
12
+ private readonly _host;
13
+ readonly value: _angular_core.InputSignal<string | number | null>;
14
+ readonly type: _angular_core.InputSignal<NeuInlineEditorType>;
15
+ readonly size: _angular_core.InputSignal<NeuInlineEditorSize>;
16
+ readonly options: _angular_core.InputSignal<NeuSelectOption[]>;
17
+ readonly placeholder: _angular_core.InputSignal<string>;
18
+ readonly emptyLabel: _angular_core.InputSignal<string>;
19
+ readonly editLabel: _angular_core.InputSignal<string>;
20
+ readonly saveLabel: _angular_core.InputSignal<string>;
21
+ readonly cancelLabel: _angular_core.InputSignal<string>;
22
+ readonly disabled: _angular_core.InputSignal<boolean>;
23
+ readonly readonly: _angular_core.InputSignal<boolean>;
24
+ readonly startInEdit: _angular_core.InputSignal<boolean>;
25
+ readonly saveOnBlur: _angular_core.InputSignal<boolean>;
26
+ readonly min: _angular_core.InputSignal<number>;
27
+ readonly max: _angular_core.InputSignal<number>;
28
+ readonly step: _angular_core.InputSignal<number>;
29
+ readonly rows: _angular_core.InputSignal<number>;
30
+ readonly valueChange: _angular_core.OutputEmitterRef<string | number | null>;
31
+ readonly editStart: _angular_core.OutputEmitterRef<string | number | null>;
32
+ readonly editCancel: _angular_core.OutputEmitterRef<string | number | null>;
33
+ readonly editCommit: _angular_core.OutputEmitterRef<NeuInlineEditorCommitEvent<string | number | null>>;
34
+ readonly stringControl: FormControl<string | null>;
35
+ readonly numberControl: FormControl<number>;
36
+ readonly editing: _angular_core.WritableSignal<boolean>;
37
+ private readonly _value;
38
+ private readonly _snapshot;
39
+ private readonly _cvaDisabled;
40
+ private _onChange;
41
+ private _onTouched;
42
+ readonly isDisabled: _angular_core.Signal<boolean>;
43
+ readonly isEmpty: _angular_core.Signal<boolean>;
44
+ readonly displayValue: _angular_core.Signal<string>;
45
+ constructor();
46
+ writeValue(value: string | number | null): void;
47
+ registerOnChange(fn: (value: string | number | null) => void): void;
48
+ registerOnTouched(fn: () => void): void;
49
+ setDisabledState(isDisabled: boolean): void;
50
+ beginEdit(): void;
51
+ commit(): void;
52
+ cancel(): void;
53
+ onEditKeydown(event: KeyboardEvent): void;
54
+ onEditFocusout(event: FocusEvent): void;
55
+ hostClasses(): Record<string, boolean>;
56
+ private _setValue;
57
+ private _normalizeValue;
58
+ private _syncControls;
59
+ private _syncDisabledState;
60
+ private _focusFirstControl;
61
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuInlineEditorComponent, never>;
62
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuInlineEditorComponent, "neu-inline-editor", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "emptyLabel": { "alias": "emptyLabel"; "required": false; "isSignal": true; }; "editLabel": { "alias": "editLabel"; "required": false; "isSignal": true; }; "saveLabel": { "alias": "saveLabel"; "required": false; "isSignal": true; }; "cancelLabel": { "alias": "cancelLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "startInEdit": { "alias": "startInEdit"; "required": false; "isSignal": true; }; "saveOnBlur": { "alias": "saveOnBlur"; "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; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "editStart": "editStart"; "editCancel": "editCancel"; "editCommit": "editCommit"; }, never, never, true, never>;
63
+ }
64
+
65
+ export { NeuInlineEditorComponent };
66
+ export type { NeuInlineEditorCommitEvent, NeuInlineEditorSize, NeuInlineEditorType };
@@ -0,0 +1,26 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { ControlValueAccessor } from '@angular/forms';
3
+
4
+ declare class NeuInputMaskComponent implements ControlValueAccessor {
5
+ readonly mask: _angular_core.InputSignal<string>;
6
+ readonly label: _angular_core.InputSignal<string>;
7
+ readonly placeholder: _angular_core.InputSignal<string>;
8
+ readonly hint: _angular_core.InputSignal<string>;
9
+ readonly disabled: _angular_core.InputSignal<boolean>;
10
+ readonly valueChange: _angular_core.OutputEmitterRef<string>;
11
+ readonly inputId: string;
12
+ readonly value: _angular_core.WritableSignal<string>;
13
+ readonly cvaDisabled: _angular_core.WritableSignal<boolean>;
14
+ private onChange;
15
+ onTouched: () => void;
16
+ writeValue(value: string | null): void;
17
+ registerOnChange(fn: (value: string) => void): void;
18
+ registerOnTouched(fn: () => void): void;
19
+ setDisabledState(isDisabled: boolean): void;
20
+ onInput(raw: string): void;
21
+ private applyMask;
22
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuInputMaskComponent, never>;
23
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuInputMaskComponent, "neu-input-mask", never, { "mask": { "alias": "mask"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
24
+ }
25
+
26
+ export { NeuInputMaskComponent };
@@ -0,0 +1,54 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef } from '@angular/core';
3
+ import { ControlValueAccessor } from '@angular/forms';
4
+
5
+ interface NeuListboxOption {
6
+ value: string;
7
+ label: string;
8
+ disabled?: boolean;
9
+ data?: unknown;
10
+ }
11
+ declare class NeuListboxItemDirective {
12
+ readonly templateRef: TemplateRef<{
13
+ $implicit: NeuListboxOption;
14
+ }>;
15
+ constructor(templateRef: TemplateRef<{
16
+ $implicit: NeuListboxOption;
17
+ }>);
18
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuListboxItemDirective, never>;
19
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NeuListboxItemDirective, "ng-template[neuListboxItem]", never, {}, {}, never, never, true, never>;
20
+ }
21
+ declare class NeuListboxComponent implements ControlValueAccessor {
22
+ readonly options: _angular_core.InputSignal<NeuListboxOption[]>;
23
+ readonly label: _angular_core.InputSignal<string>;
24
+ readonly ariaLabel: _angular_core.InputSignal<string>;
25
+ readonly hint: _angular_core.InputSignal<string>;
26
+ readonly emptyLabel: _angular_core.InputSignal<string>;
27
+ readonly multiple: _angular_core.InputSignal<boolean>;
28
+ readonly searchable: _angular_core.InputSignal<boolean>;
29
+ readonly searchPlaceholder: _angular_core.InputSignal<string>;
30
+ readonly disabled: _angular_core.InputSignal<boolean>;
31
+ readonly selectionChange: _angular_core.OutputEmitterRef<NeuListboxOption[]>;
32
+ readonly itemTpl: _angular_core.Signal<NeuListboxItemDirective | undefined>;
33
+ readonly query: _angular_core.WritableSignal<string>;
34
+ readonly activeIndex: _angular_core.WritableSignal<number>;
35
+ readonly values: _angular_core.WritableSignal<string[]>;
36
+ readonly cvaDisabled: _angular_core.WritableSignal<boolean>;
37
+ readonly labelId: string;
38
+ readonly isDisabled: _angular_core.Signal<boolean>;
39
+ readonly filteredOptions: _angular_core.Signal<NeuListboxOption[]>;
40
+ private onChange;
41
+ private onTouched;
42
+ writeValue(value: string | string[] | null): void;
43
+ registerOnChange(fn: (value: string | string[] | null) => void): void;
44
+ registerOnTouched(fn: () => void): void;
45
+ setDisabledState(isDisabled: boolean): void;
46
+ isSelected(value: string): boolean;
47
+ toggleOption(option: NeuListboxOption): void;
48
+ onKeyDown(event: KeyboardEvent): void;
49
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuListboxComponent, never>;
50
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuListboxComponent, "neu-listbox", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "emptyLabel": { "alias": "emptyLabel"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, ["itemTpl"], never, true, never>;
51
+ }
52
+
53
+ export { NeuListboxComponent, NeuListboxItemDirective };
54
+ export type { NeuListboxOption };
@@ -0,0 +1,49 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ interface NeuMenuItem {
4
+ key: string;
5
+ label: string;
6
+ icon?: string;
7
+ shortcut?: string;
8
+ disabled?: boolean;
9
+ separator?: boolean;
10
+ children?: NeuMenuItem[];
11
+ data?: unknown;
12
+ }
13
+ declare class NeuMenuComponent {
14
+ readonly items: _angular_core.InputSignal<NeuMenuItem[]>;
15
+ readonly ariaLabel: _angular_core.InputSignal<string>;
16
+ readonly itemClick: _angular_core.OutputEmitterRef<NeuMenuItem>;
17
+ activate(item: NeuMenuItem): void;
18
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuMenuComponent, never>;
19
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuMenuComponent, "neu-menu", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; }, never, never, true, never>;
20
+ }
21
+ declare class NeuMenuButtonComponent {
22
+ readonly items: _angular_core.InputSignal<NeuMenuItem[]>;
23
+ readonly label: _angular_core.InputSignal<string>;
24
+ readonly itemClick: _angular_core.OutputEmitterRef<NeuMenuItem>;
25
+ readonly openChange: _angular_core.OutputEmitterRef<boolean>;
26
+ readonly open: _angular_core.WritableSignal<boolean>;
27
+ toggle(): void;
28
+ close(): void;
29
+ onItemClick(item: NeuMenuItem): void;
30
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuMenuButtonComponent, never>;
31
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuMenuButtonComponent, "neu-menu-button", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; "openChange": "openChange"; }, never, ["*"], true, never>;
32
+ }
33
+ declare class NeuMenubarComponent {
34
+ readonly items: _angular_core.InputSignal<NeuMenuItem[]>;
35
+ readonly ariaLabel: _angular_core.InputSignal<string>;
36
+ readonly itemClick: _angular_core.OutputEmitterRef<NeuMenuItem>;
37
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuMenubarComponent, never>;
38
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuMenubarComponent, "neu-menubar", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; }, never, never, true, never>;
39
+ }
40
+ declare class NeuTieredMenuComponent {
41
+ readonly items: _angular_core.InputSignal<NeuMenuItem[]>;
42
+ readonly ariaLabel: _angular_core.InputSignal<string>;
43
+ readonly itemClick: _angular_core.OutputEmitterRef<NeuMenuItem>;
44
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuTieredMenuComponent, never>;
45
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuTieredMenuComponent, "neu-tiered-menu", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; }, never, never, true, never>;
46
+ }
47
+
48
+ export { NeuMenuButtonComponent, NeuMenuComponent, NeuMenubarComponent, NeuTieredMenuComponent };
49
+ export type { NeuMenuItem };
@@ -26,17 +26,24 @@ declare class NeuDialogComponent {
26
26
  size: _angular_core.InputSignal<NeuDialogSize>;
27
27
  /** Si es true, el backdrop y el botón cerrar no funcionan. / If true, the backdrop and close button do not work. */
28
28
  disableClose: _angular_core.InputSignal<boolean>;
29
+ /** Adapta el panel a mobile/full-width cuando el viewport es estrecho. */
30
+ responsive: _angular_core.InputSignal<boolean>;
31
+ /** Devuelve el foco al elemento activo antes de abrir. */
32
+ restoreFocus: _angular_core.InputSignal<boolean>;
29
33
  /** Emite cuando el usuario cierra el diálogo. / Emits when the user closes the dialog. */
30
- closed: _angular_core.OutputEmitterRef<void>;
34
+ closed: _angular_core.OutputEmitterRef<unknown>;
31
35
  private readonly panelRef;
36
+ private previousActiveElement;
32
37
  /** @internal — ID único para aria-labelledby / Unique ID for aria-labelledby */
33
38
  readonly _uid: string;
34
39
  constructor();
40
+ close(result?: unknown): void;
35
41
  onPanelKeydown(event: KeyboardEvent): void;
36
42
  private focusInitialElement;
43
+ private restorePreviousFocus;
37
44
  private getFocusableElements;
38
45
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuDialogComponent, never>;
39
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuDialogComponent, "neu-dialog", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disableClose": { "alias": "disableClose"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*", "[neu-dialog-footer]"], true, never>;
46
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuDialogComponent, "neu-dialog", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disableClose": { "alias": "disableClose"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; "restoreFocus": { "alias": "restoreFocus"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*", "[neu-dialog-footer]"], true, never>;
40
47
  }
41
48
 
42
49
  /** Datos que se inyectan en el componente del diálogo / Data injected into the dialog component */
@@ -51,6 +58,7 @@ declare class NeuDialogService {
51
58
  data?: T;
52
59
  size?: NeuDialogSize;
53
60
  disableClose?: boolean;
61
+ restoreFocus?: boolean;
54
62
  }): DialogRef<R>;
55
63
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuDialogService, never>;
56
64
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<NeuDialogService>;
@@ -40,6 +40,7 @@ declare class NeuMultiselectItemDirective {
40
40
  declare class NeuMultiselectComponent implements ControlValueAccessor {
41
41
  private readonly elementRef;
42
42
  private readonly _document;
43
+ private readonly _platformId;
43
44
  private readonly _overlay;
44
45
  private readonly _urlState;
45
46
  readonly _viewportMargin = 16;
@@ -73,6 +74,11 @@ declare class NeuMultiselectComponent implements ControlValueAccessor {
73
74
  searchable: _angular_core.InputSignal<boolean>;
74
75
  /** Placeholder del input de búsqueda / Search input placeholder */
75
76
  searchPlaceholder: _angular_core.InputSignal<string>;
77
+ loading: _angular_core.InputSignal<boolean>;
78
+ loadingLabel: _angular_core.InputSignal<string>;
79
+ selectAll: _angular_core.InputSignal<boolean>;
80
+ selectAllLabel: _angular_core.InputSignal<string>;
81
+ unselectAllLabel: _angular_core.InputSignal<string>;
76
82
  /** Texto cuando no hay opciones tras filtrar / Text when no options remain after filtering */
77
83
  noResultsMessage: _angular_core.InputSignal<string>;
78
84
  /** Texto del botón de limpiar todas las selecciones / Button text to clear all selections */
@@ -114,6 +120,7 @@ declare class NeuMultiselectComponent implements ControlValueAccessor {
114
120
  readonly hasError: Signal<boolean>;
115
121
  readonly describedBy: Signal<string | null>;
116
122
  readonly filteredOptions: Signal<NeuSelectOption[]>;
123
+ readonly allFilteredSelected: Signal<boolean>;
117
124
  readonly resultsAnnouncement: Signal<string>;
118
125
  readonly virtualScrollItemSize: Signal<36 | 52 | 44>;
119
126
  readonly virtualViewportHeight: Signal<string>;
@@ -139,6 +146,7 @@ declare class NeuMultiselectComponent implements ControlValueAccessor {
139
146
  protected toggleOption(option: NeuSelectOption): void;
140
147
  protected removeValue(value: string, event: MouseEvent): void;
141
148
  protected clearAll(event: MouseEvent): void;
149
+ protected toggleAllFiltered(event: MouseEvent): void;
142
150
  protected toggleChipMode(event: MouseEvent): void;
143
151
  onDocumentClick(event: MouseEvent): void;
144
152
  onWindowResize(): void;
@@ -148,8 +156,9 @@ declare class NeuMultiselectComponent implements ControlValueAccessor {
148
156
  private focusOption;
149
157
  private resetPanelPosition;
150
158
  private refreshVirtualViewport;
159
+ private _requestFrame;
151
160
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuMultiselectComponent, never>;
152
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuMultiselectComponent, "neu-multiselect", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "noResultsMessage": { "alias": "noResultsMessage"; "required": false; "isSignal": true; }; "clearAllLabel": { "alias": "clearAllLabel"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualScrollVisibleItems": { "alias": "virtualScrollVisibleItems"; "required": false; "isSignal": true; }; "clearAriaLabel": { "alias": "clearAriaLabel"; "required": false; "isSignal": true; }; "urlParam": { "alias": "urlParam"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, ["itemTpl"], never, true, never>;
161
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuMultiselectComponent, "neu-multiselect", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingLabel": { "alias": "loadingLabel"; "required": false; "isSignal": true; }; "selectAll": { "alias": "selectAll"; "required": false; "isSignal": true; }; "selectAllLabel": { "alias": "selectAllLabel"; "required": false; "isSignal": true; }; "unselectAllLabel": { "alias": "unselectAllLabel"; "required": false; "isSignal": true; }; "noResultsMessage": { "alias": "noResultsMessage"; "required": false; "isSignal": true; }; "clearAllLabel": { "alias": "clearAllLabel"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualScrollVisibleItems": { "alias": "virtualScrollVisibleItems"; "required": false; "isSignal": true; }; "clearAriaLabel": { "alias": "clearAriaLabel"; "required": false; "isSignal": true; }; "urlParam": { "alias": "urlParam"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, ["itemTpl"], never, true, never>;
153
162
  }
154
163
 
155
164
  export { NeuMultiselectComponent, NeuMultiselectItemDirective };
@@ -0,0 +1,25 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ declare class NeuPanelComponent {
4
+ readonly header: _angular_core.InputSignal<string>;
5
+ readonly collapsible: _angular_core.InputSignal<boolean>;
6
+ readonly expandLabel: _angular_core.InputSignal<string>;
7
+ readonly collapseLabel: _angular_core.InputSignal<string>;
8
+ readonly collapsedChange: _angular_core.OutputEmitterRef<boolean>;
9
+ readonly collapsed: _angular_core.WritableSignal<boolean>;
10
+ toggle(): void;
11
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuPanelComponent, never>;
12
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuPanelComponent, "neu-panel", never, { "header": { "alias": "header"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "expandLabel": { "alias": "expandLabel"; "required": false; "isSignal": true; }; "collapseLabel": { "alias": "collapseLabel"; "required": false; "isSignal": true; }; }, { "collapsedChange": "collapsedChange"; }, never, ["*"], true, never>;
13
+ }
14
+ declare class NeuFieldsetComponent {
15
+ readonly legend: _angular_core.InputSignal<string>;
16
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuFieldsetComponent, never>;
17
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuFieldsetComponent, "neu-fieldset", never, { "legend": { "alias": "legend"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
18
+ }
19
+ declare class NeuScrollAreaComponent {
20
+ readonly maxHeight: _angular_core.InputSignal<string>;
21
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuScrollAreaComponent, never>;
22
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuScrollAreaComponent, "neu-scroll-area", never, { "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
23
+ }
24
+
25
+ export { NeuFieldsetComponent, NeuPanelComponent, NeuScrollAreaComponent };
@@ -0,0 +1,29 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { ControlValueAccessor } from '@angular/forms';
3
+
4
+ declare class NeuPasswordComponent implements ControlValueAccessor {
5
+ readonly label: _angular_core.InputSignal<string>;
6
+ readonly placeholder: _angular_core.InputSignal<string>;
7
+ readonly disabled: _angular_core.InputSignal<boolean>;
8
+ readonly toggleable: _angular_core.InputSignal<boolean>;
9
+ readonly showStrength: _angular_core.InputSignal<boolean>;
10
+ readonly showLabel: _angular_core.InputSignal<string>;
11
+ readonly hideLabel: _angular_core.InputSignal<string>;
12
+ readonly valueChange: _angular_core.OutputEmitterRef<string>;
13
+ readonly inputId: string;
14
+ readonly value: _angular_core.WritableSignal<string>;
15
+ readonly visible: _angular_core.WritableSignal<boolean>;
16
+ readonly cvaDisabled: _angular_core.WritableSignal<boolean>;
17
+ readonly strength: _angular_core.Signal<number>;
18
+ private onChange;
19
+ onTouched: () => void;
20
+ writeValue(value: string | null): void;
21
+ registerOnChange(fn: (value: string) => void): void;
22
+ registerOnTouched(fn: () => void): void;
23
+ setDisabledState(isDisabled: boolean): void;
24
+ setValue(value: string): void;
25
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuPasswordComponent, never>;
26
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuPasswordComponent, "neu-password", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "toggleable": { "alias": "toggleable"; "required": false; "isSignal": true; }; "showStrength": { "alias": "showStrength"; "required": false; "isSignal": true; }; "showLabel": { "alias": "showLabel"; "required": false; "isSignal": true; }; "hideLabel": { "alias": "hideLabel"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
27
+ }
28
+
29
+ export { NeuPasswordComponent };
@@ -0,0 +1,40 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ interface NeuTransferItem {
4
+ value: string;
5
+ label: string;
6
+ disabled?: boolean;
7
+ data?: unknown;
8
+ }
9
+ declare class NeuPickListComponent {
10
+ readonly source: _angular_core.InputSignal<NeuTransferItem[]>;
11
+ readonly target: _angular_core.InputSignal<NeuTransferItem[]>;
12
+ readonly sourceHeader: _angular_core.InputSignal<string>;
13
+ readonly targetHeader: _angular_core.InputSignal<string>;
14
+ readonly sourceChange: _angular_core.OutputEmitterRef<NeuTransferItem[]>;
15
+ readonly targetChange: _angular_core.OutputEmitterRef<NeuTransferItem[]>;
16
+ readonly itemsChange: _angular_core.OutputEmitterRef<{
17
+ source: NeuTransferItem[];
18
+ target: NeuTransferItem[];
19
+ }>;
20
+ readonly sourceSelection: _angular_core.WritableSignal<Set<string>>;
21
+ readonly targetSelection: _angular_core.WritableSignal<Set<string>>;
22
+ toggleSource(value: string): void;
23
+ toggleTarget(value: string): void;
24
+ moveToTarget(): void;
25
+ moveToSource(): void;
26
+ private commit;
27
+ private toggleSet;
28
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuPickListComponent, never>;
29
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuPickListComponent, "neu-pick-list", never, { "source": { "alias": "source"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; "sourceHeader": { "alias": "sourceHeader"; "required": false; "isSignal": true; }; "targetHeader": { "alias": "targetHeader"; "required": false; "isSignal": true; }; }, { "sourceChange": "sourceChange"; "targetChange": "targetChange"; "itemsChange": "itemsChange"; }, never, never, true, never>;
30
+ }
31
+ declare class NeuOrderListComponent {
32
+ readonly items: _angular_core.InputSignal<NeuTransferItem[]>;
33
+ readonly orderChange: _angular_core.OutputEmitterRef<NeuTransferItem[]>;
34
+ move(index: number, direction: -1 | 1): void;
35
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuOrderListComponent, never>;
36
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuOrderListComponent, "neu-order-list", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, { "orderChange": "orderChange"; }, never, never, true, never>;
37
+ }
38
+
39
+ export { NeuOrderListComponent, NeuPickListComponent };
40
+ export type { NeuTransferItem };
@@ -75,6 +75,7 @@ declare class NeuSelectSelectedDirective {
75
75
  declare class NeuSelectComponent implements ControlValueAccessor {
76
76
  private readonly elementRef;
77
77
  private readonly _document;
78
+ private readonly _platformId;
78
79
  private readonly _overlay;
79
80
  private readonly _urlState;
80
81
  readonly _viewportMargin = 16;
@@ -110,6 +111,10 @@ declare class NeuSelectComponent implements ControlValueAccessor {
110
111
  searchable: _angular_core.InputSignal<boolean>;
111
112
  /** Placeholder del input de búsqueda / Search input placeholder */
112
113
  searchPlaceholder: _angular_core.InputSignal<string>;
114
+ /** Muestra estado de carga dentro del panel / Shows a loading state inside the panel */
115
+ loading: _angular_core.InputSignal<boolean>;
116
+ /** Texto del estado de carga / Loading state text */
117
+ loadingLabel: _angular_core.InputSignal<string>;
113
118
  /** Muestra un botón para limpiar la selección / Shows a button to clear the selection */
114
119
  clearable: _angular_core.InputSignal<boolean>;
115
120
  /** Habilita scroll virtual para listas largas / Enables virtual scrolling for large option lists */
@@ -181,8 +186,9 @@ declare class NeuSelectComponent implements ControlValueAccessor {
181
186
  private focusFirstOption;
182
187
  private focusOption;
183
188
  private resetPanelPosition;
189
+ private _requestFrame;
184
190
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSelectComponent, never>;
185
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuSelectComponent, "neu-select", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualScrollVisibleItems": { "alias": "virtualScrollVisibleItems"; "required": false; "isSignal": true; }; "noResultsMessage": { "alias": "noResultsMessage"; "required": false; "isSignal": true; }; "clearAriaLabel": { "alias": "clearAriaLabel"; "required": false; "isSignal": true; }; "urlParam": { "alias": "urlParam"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, ["itemTpl", "selectedItemTpl"], never, true, never>;
191
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuSelectComponent, "neu-select", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingLabel": { "alias": "loadingLabel"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualScrollVisibleItems": { "alias": "virtualScrollVisibleItems"; "required": false; "isSignal": true; }; "noResultsMessage": { "alias": "noResultsMessage"; "required": false; "isSignal": true; }; "clearAriaLabel": { "alias": "clearAriaLabel"; "required": false; "isSignal": true; }; "urlParam": { "alias": "urlParam"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, ["itemTpl", "selectedItemTpl"], never, true, never>;
186
192
  }
187
193
 
188
194
  export { NeuSelectComponent, NeuSelectItemDirective, NeuSelectSelectedDirective };