@neural-ui/core 1.7.1 → 1.7.2

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 (123) 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 +141 -68
  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-data-view.mjs +386 -0
  27. package/fesm2022/neural-ui-core-data-view.mjs.map +1 -0
  28. package/fesm2022/neural-ui-core-date-input.mjs +185 -10
  29. package/fesm2022/neural-ui-core-date-input.mjs.map +1 -1
  30. package/fesm2022/neural-ui-core-empty-state.mjs +19 -5
  31. package/fesm2022/neural-ui-core-empty-state.mjs.map +1 -1
  32. package/fesm2022/neural-ui-core-form-field.mjs +81 -0
  33. package/fesm2022/neural-ui-core-form-field.mjs.map +1 -0
  34. package/fesm2022/neural-ui-core-inline-editor.mjs +428 -0
  35. package/fesm2022/neural-ui-core-inline-editor.mjs.map +1 -0
  36. package/fesm2022/neural-ui-core-input-mask.mjs +110 -0
  37. package/fesm2022/neural-ui-core-input-mask.mjs.map +1 -0
  38. package/fesm2022/neural-ui-core-input.mjs +2 -2
  39. package/fesm2022/neural-ui-core-input.mjs.map +1 -1
  40. package/fesm2022/neural-ui-core-listbox.mjs +219 -0
  41. package/fesm2022/neural-ui-core-listbox.mjs.map +1 -0
  42. package/fesm2022/neural-ui-core-menu.mjs +229 -0
  43. package/fesm2022/neural-ui-core-menu.mjs.map +1 -0
  44. package/fesm2022/neural-ui-core-modal.mjs +34 -10
  45. package/fesm2022/neural-ui-core-modal.mjs.map +1 -1
  46. package/fesm2022/neural-ui-core-multiselect.mjs +159 -174
  47. package/fesm2022/neural-ui-core-multiselect.mjs.map +1 -1
  48. package/fesm2022/neural-ui-core-number-input.mjs +2 -2
  49. package/fesm2022/neural-ui-core-number-input.mjs.map +1 -1
  50. package/fesm2022/neural-ui-core-panel.mjs +92 -0
  51. package/fesm2022/neural-ui-core-panel.mjs.map +1 -0
  52. package/fesm2022/neural-ui-core-password.mjs +106 -0
  53. package/fesm2022/neural-ui-core-password.mjs.map +1 -0
  54. package/fesm2022/neural-ui-core-pick-list.mjs +133 -0
  55. package/fesm2022/neural-ui-core-pick-list.mjs.map +1 -0
  56. package/fesm2022/neural-ui-core-select.mjs +118 -162
  57. package/fesm2022/neural-ui-core-select.mjs.map +1 -1
  58. package/fesm2022/neural-ui-core-sidebar.mjs +14 -3
  59. package/fesm2022/neural-ui-core-sidebar.mjs.map +1 -1
  60. package/fesm2022/neural-ui-core-slider.mjs +2 -2
  61. package/fesm2022/neural-ui-core-slider.mjs.map +1 -1
  62. package/fesm2022/neural-ui-core-spinner.mjs +19 -9
  63. package/fesm2022/neural-ui-core-spinner.mjs.map +1 -1
  64. package/fesm2022/neural-ui-core-split-button.mjs +2 -2
  65. package/fesm2022/neural-ui-core-split-button.mjs.map +1 -1
  66. package/fesm2022/neural-ui-core-table.mjs +501 -62
  67. package/fesm2022/neural-ui-core-table.mjs.map +1 -1
  68. package/fesm2022/neural-ui-core-tags.mjs +134 -0
  69. package/fesm2022/neural-ui-core-tags.mjs.map +1 -0
  70. package/fesm2022/neural-ui-core-textarea.mjs +2 -2
  71. package/fesm2022/neural-ui-core-textarea.mjs.map +1 -1
  72. package/fesm2022/neural-ui-core-toggle-button-group.mjs +2 -2
  73. package/fesm2022/neural-ui-core-toggle-button-group.mjs.map +1 -1
  74. package/fesm2022/neural-ui-core-toolbar.mjs +16 -4
  75. package/fesm2022/neural-ui-core-toolbar.mjs.map +1 -1
  76. package/fesm2022/neural-ui-core-tree-select.mjs +259 -0
  77. package/fesm2022/neural-ui-core-tree-select.mjs.map +1 -0
  78. package/fesm2022/neural-ui-core-tree-table.mjs +267 -8
  79. package/fesm2022/neural-ui-core-tree-table.mjs.map +1 -1
  80. package/fesm2022/neural-ui-core-tree.mjs +15 -14
  81. package/fesm2022/neural-ui-core-tree.mjs.map +1 -1
  82. package/fesm2022/neural-ui-core-uploader.mjs +103 -12
  83. package/fesm2022/neural-ui-core-uploader.mjs.map +1 -1
  84. package/form-field/package.json +4 -0
  85. package/inline-editor/package.json +4 -0
  86. package/input-mask/package.json +4 -0
  87. package/listbox/package.json +4 -0
  88. package/menu/package.json +4 -0
  89. package/package.json +53 -1
  90. package/panel/package.json +4 -0
  91. package/password/package.json +4 -0
  92. package/pick-list/package.json +4 -0
  93. package/styles/_tokens.scss +30 -15
  94. package/tags/package.json +4 -0
  95. package/tree-select/package.json +4 -0
  96. package/types/neural-ui-core-alert.d.ts +2 -1
  97. package/types/neural-ui-core-autocomplete.d.ts +20 -2
  98. package/types/neural-ui-core-bottom-sheet.d.ts +20 -0
  99. package/types/neural-ui-core-checkbox.d.ts +6 -1
  100. package/types/neural-ui-core-confirm-popup.d.ts +38 -0
  101. package/types/neural-ui-core-data-view.d.ts +95 -0
  102. package/types/neural-ui-core-date-input.d.ts +35 -5
  103. package/types/neural-ui-core-empty-state.d.ts +11 -1
  104. package/types/neural-ui-core-form-field.d.ts +33 -0
  105. package/types/neural-ui-core-inline-editor.d.ts +66 -0
  106. package/types/neural-ui-core-input-mask.d.ts +26 -0
  107. package/types/neural-ui-core-listbox.d.ts +54 -0
  108. package/types/neural-ui-core-menu.d.ts +49 -0
  109. package/types/neural-ui-core-modal.d.ts +10 -2
  110. package/types/neural-ui-core-multiselect.d.ts +8 -1
  111. package/types/neural-ui-core-panel.d.ts +25 -0
  112. package/types/neural-ui-core-password.d.ts +29 -0
  113. package/types/neural-ui-core-pick-list.d.ts +40 -0
  114. package/types/neural-ui-core-select.d.ts +5 -1
  115. package/types/neural-ui-core-sidebar.d.ts +5 -1
  116. package/types/neural-ui-core-spinner.d.ts +4 -2
  117. package/types/neural-ui-core-table.d.ts +89 -5
  118. package/types/neural-ui-core-tags.d.ts +32 -0
  119. package/types/neural-ui-core-toolbar.d.ts +8 -2
  120. package/types/neural-ui-core-tree-select.d.ts +57 -0
  121. package/types/neural-ui-core-tree-table.d.ts +111 -4
  122. package/types/neural-ui-core-tree.d.ts +1 -1
  123. package/types/neural-ui-core-uploader.d.ts +26 -3
@@ -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>;
@@ -73,6 +73,11 @@ declare class NeuMultiselectComponent implements ControlValueAccessor {
73
73
  searchable: _angular_core.InputSignal<boolean>;
74
74
  /** Placeholder del input de búsqueda / Search input placeholder */
75
75
  searchPlaceholder: _angular_core.InputSignal<string>;
76
+ loading: _angular_core.InputSignal<boolean>;
77
+ loadingLabel: _angular_core.InputSignal<string>;
78
+ selectAll: _angular_core.InputSignal<boolean>;
79
+ selectAllLabel: _angular_core.InputSignal<string>;
80
+ unselectAllLabel: _angular_core.InputSignal<string>;
76
81
  /** Texto cuando no hay opciones tras filtrar / Text when no options remain after filtering */
77
82
  noResultsMessage: _angular_core.InputSignal<string>;
78
83
  /** Texto del botón de limpiar todas las selecciones / Button text to clear all selections */
@@ -114,6 +119,7 @@ declare class NeuMultiselectComponent implements ControlValueAccessor {
114
119
  readonly hasError: Signal<boolean>;
115
120
  readonly describedBy: Signal<string | null>;
116
121
  readonly filteredOptions: Signal<NeuSelectOption[]>;
122
+ readonly allFilteredSelected: Signal<boolean>;
117
123
  readonly resultsAnnouncement: Signal<string>;
118
124
  readonly virtualScrollItemSize: Signal<36 | 52 | 44>;
119
125
  readonly virtualViewportHeight: Signal<string>;
@@ -139,6 +145,7 @@ declare class NeuMultiselectComponent implements ControlValueAccessor {
139
145
  protected toggleOption(option: NeuSelectOption): void;
140
146
  protected removeValue(value: string, event: MouseEvent): void;
141
147
  protected clearAll(event: MouseEvent): void;
148
+ protected toggleAllFiltered(event: MouseEvent): void;
142
149
  protected toggleChipMode(event: MouseEvent): void;
143
150
  onDocumentClick(event: MouseEvent): void;
144
151
  onWindowResize(): void;
@@ -149,7 +156,7 @@ declare class NeuMultiselectComponent implements ControlValueAccessor {
149
156
  private resetPanelPosition;
150
157
  private refreshVirtualViewport;
151
158
  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>;
159
+ 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
160
  }
154
161
 
155
162
  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 };
@@ -110,6 +110,10 @@ declare class NeuSelectComponent implements ControlValueAccessor {
110
110
  searchable: _angular_core.InputSignal<boolean>;
111
111
  /** Placeholder del input de búsqueda / Search input placeholder */
112
112
  searchPlaceholder: _angular_core.InputSignal<string>;
113
+ /** Muestra estado de carga dentro del panel / Shows a loading state inside the panel */
114
+ loading: _angular_core.InputSignal<boolean>;
115
+ /** Texto del estado de carga / Loading state text */
116
+ loadingLabel: _angular_core.InputSignal<string>;
113
117
  /** Muestra un botón para limpiar la selección / Shows a button to clear the selection */
114
118
  clearable: _angular_core.InputSignal<boolean>;
115
119
  /** Habilita scroll virtual para listas largas / Enables virtual scrolling for large option lists */
@@ -182,7 +186,7 @@ declare class NeuSelectComponent implements ControlValueAccessor {
182
186
  private focusOption;
183
187
  private resetPanelPosition;
184
188
  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>;
189
+ 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
190
  }
187
191
 
188
192
  export { NeuSelectComponent, NeuSelectItemDirective, NeuSelectSelectedDirective };
@@ -44,6 +44,10 @@ declare class NeuSidebarComponent {
44
44
  ariaLabel: _angular_core.InputSignal<string>;
45
45
  /** Etiqueta accesible para el botón cerrar / Accessible label for the close button */
46
46
  closeLabel: _angular_core.InputSignal<string>;
47
+ /** Cierra el overlay al pulsar Escape / Closes the overlay when pressing Escape */
48
+ closeOnEscape: _angular_core.InputSignal<boolean>;
49
+ /** Devuelve el foco al elemento activo antes de abrir / Restores focus after close */
50
+ restoreFocus: _angular_core.InputSignal<boolean>;
47
51
  /**
48
52
  * Modo colapsado: el sidebar muestra solo iconos (icon-only en desktop).
49
53
  * Útil para sidebars persistentes en modo compact / Collapsed mode: sidebar shows only icons.
@@ -69,7 +73,7 @@ declare class NeuSidebarComponent {
69
73
  /** Focus trap: cicla entre elementos focusables con Tab/Shift+Tab / Focus trap cycling */
70
74
  onKeyDown(event: KeyboardEvent): void;
71
75
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSidebarComponent, never>;
72
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuSidebarComponent, "neu-sidebar", never, { "side": { "alias": "side"; "required": false; "isSignal": true; }; "urlParam": { "alias": "urlParam"; "required": false; "isSignal": true; }; "persistent": { "alias": "persistent"; "required": false; "isSignal": true; }; "hideHeader": { "alias": "hideHeader"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; }, { "closeRequested": "closeRequested"; "collapsedChange": "collapsedChange"; }, never, ["[neu-sidebar-header]", "*", "[neu-sidebar-footer]"], true, never>;
76
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuSidebarComponent, "neu-sidebar", never, { "side": { "alias": "side"; "required": false; "isSignal": true; }; "urlParam": { "alias": "urlParam"; "required": false; "isSignal": true; }; "persistent": { "alias": "persistent"; "required": false; "isSignal": true; }; "hideHeader": { "alias": "hideHeader"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "restoreFocus": { "alias": "restoreFocus"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; }, { "closeRequested": "closeRequested"; "collapsedChange": "collapsedChange"; }, never, ["[neu-sidebar-header]", "*", "[neu-sidebar-footer]"], true, never>;
73
77
  }
74
78
 
75
79
  export { NeuSidebarComponent };
@@ -27,11 +27,13 @@ declare class NeuSpinnerComponent {
27
27
  size: _angular_core.InputSignal<string>;
28
28
  /** Duración de la animación de rotación / Rotation animation duration */
29
29
  animationDuration: _angular_core.InputSignal<string>;
30
- /** Texto accesible para lectores de pantalla / Accessible text for screen readers */
30
+ /** Etiqueta visible opcional junto al spinner / Optional visible label beside the spinner */
31
+ label: _angular_core.InputSignal<string>;
32
+ /** Texto accesible cuando no se muestra label / Accessible text when label is not displayed */
31
33
  ariaLabel: _angular_core.InputSignal<string>;
32
34
  readonly _severityColor: _angular_core.Signal<string>;
33
35
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSpinnerComponent, never>;
34
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuSpinnerComponent, "neu-spinner", never, { "severity": { "alias": "severity"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "animationDuration": { "alias": "animationDuration"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
36
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuSpinnerComponent, "neu-spinner", never, { "severity": { "alias": "severity"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "animationDuration": { "alias": "animationDuration"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
35
37
  }
36
38
 
37
39
  export { NeuSpinnerComponent };