@neural-ui/core 1.2.1 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +56 -88
- package/accordion/package.json +4 -0
- package/alert/package.json +4 -0
- package/autocomplete/package.json +4 -0
- package/avatar/package.json +4 -0
- package/badge/package.json +4 -0
- package/block-ui/package.json +4 -0
- package/breadcrumb/package.json +4 -0
- package/button/package.json +4 -0
- package/card/package.json +4 -0
- package/chart/package.json +4 -0
- package/checkbox/package.json +4 -0
- package/chip/package.json +4 -0
- package/code-block/package.json +4 -0
- package/color-picker/package.json +4 -0
- package/command-palette/package.json +4 -0
- package/confirm-dialog/package.json +4 -0
- package/context-menu/package.json +4 -0
- package/dashboard-grid/package.json +4 -0
- package/date-input/package.json +4 -0
- package/divider/package.json +4 -0
- package/empty-state/package.json +4 -0
- package/fesm2022/neural-ui-core-accordion.mjs +162 -0
- package/fesm2022/neural-ui-core-accordion.mjs.map +1 -0
- package/fesm2022/neural-ui-core-alert.mjs +116 -0
- package/fesm2022/neural-ui-core-alert.mjs.map +1 -0
- package/fesm2022/neural-ui-core-autocomplete.mjs +406 -0
- package/fesm2022/neural-ui-core-autocomplete.mjs.map +1 -0
- package/fesm2022/neural-ui-core-avatar.mjs +109 -0
- package/fesm2022/neural-ui-core-avatar.mjs.map +1 -0
- package/fesm2022/neural-ui-core-badge.mjs +54 -0
- package/fesm2022/neural-ui-core-badge.mjs.map +1 -0
- package/fesm2022/neural-ui-core-block-ui.mjs +95 -0
- package/fesm2022/neural-ui-core-block-ui.mjs.map +1 -0
- package/fesm2022/neural-ui-core-breadcrumb.mjs +84 -0
- package/fesm2022/neural-ui-core-breadcrumb.mjs.map +1 -0
- package/fesm2022/neural-ui-core-button.mjs +125 -0
- package/fesm2022/neural-ui-core-button.mjs.map +1 -0
- package/fesm2022/neural-ui-core-card.mjs +69 -0
- package/fesm2022/neural-ui-core-card.mjs.map +1 -0
- package/fesm2022/neural-ui-core-chart.mjs +287 -0
- package/fesm2022/neural-ui-core-chart.mjs.map +1 -0
- package/fesm2022/neural-ui-core-checkbox.mjs +138 -0
- package/fesm2022/neural-ui-core-checkbox.mjs.map +1 -0
- package/fesm2022/neural-ui-core-chip.mjs +130 -0
- package/fesm2022/neural-ui-core-chip.mjs.map +1 -0
- package/fesm2022/neural-ui-core-code-block.mjs +250 -0
- package/fesm2022/neural-ui-core-code-block.mjs.map +1 -0
- package/fesm2022/neural-ui-core-color-picker.mjs +435 -0
- package/fesm2022/neural-ui-core-color-picker.mjs.map +1 -0
- package/fesm2022/neural-ui-core-command-palette.mjs +235 -0
- package/fesm2022/neural-ui-core-command-palette.mjs.map +1 -0
- package/fesm2022/neural-ui-core-confirm-dialog.mjs +118 -0
- package/fesm2022/neural-ui-core-confirm-dialog.mjs.map +1 -0
- package/fesm2022/neural-ui-core-context-menu.mjs +158 -0
- package/fesm2022/neural-ui-core-context-menu.mjs.map +1 -0
- package/fesm2022/neural-ui-core-dashboard-grid.mjs +144 -0
- package/fesm2022/neural-ui-core-dashboard-grid.mjs.map +1 -0
- package/fesm2022/neural-ui-core-date-input.mjs +1332 -0
- package/fesm2022/neural-ui-core-date-input.mjs.map +1 -0
- package/fesm2022/neural-ui-core-divider.mjs +54 -0
- package/fesm2022/neural-ui-core-divider.mjs.map +1 -0
- package/fesm2022/neural-ui-core-empty-state.mjs +84 -0
- package/fesm2022/neural-ui-core-empty-state.mjs.map +1 -0
- package/fesm2022/neural-ui-core-filter-bar.mjs +118 -0
- package/fesm2022/neural-ui-core-filter-bar.mjs.map +1 -0
- package/fesm2022/neural-ui-core-icon.mjs +50 -0
- package/fesm2022/neural-ui-core-icon.mjs.map +1 -0
- package/fesm2022/neural-ui-core-image-viewer.mjs +309 -0
- package/fesm2022/neural-ui-core-image-viewer.mjs.map +1 -0
- package/fesm2022/neural-ui-core-input-otp.mjs +192 -0
- package/fesm2022/neural-ui-core-input-otp.mjs.map +1 -0
- package/fesm2022/neural-ui-core-input.mjs +320 -0
- package/fesm2022/neural-ui-core-input.mjs.map +1 -0
- package/fesm2022/neural-ui-core-knob.mjs +323 -0
- package/fesm2022/neural-ui-core-knob.mjs.map +1 -0
- package/fesm2022/neural-ui-core-meter-group.mjs +122 -0
- package/fesm2022/neural-ui-core-meter-group.mjs.map +1 -0
- package/fesm2022/neural-ui-core-modal.mjs +156 -0
- package/fesm2022/neural-ui-core-modal.mjs.map +1 -0
- package/fesm2022/neural-ui-core-multiselect.mjs +825 -0
- package/fesm2022/neural-ui-core-multiselect.mjs.map +1 -0
- package/fesm2022/neural-ui-core-nav.mjs +952 -0
- package/fesm2022/neural-ui-core-nav.mjs.map +1 -0
- package/fesm2022/neural-ui-core-notification-center.mjs +264 -0
- package/fesm2022/neural-ui-core-notification-center.mjs.map +1 -0
- package/fesm2022/neural-ui-core-number-input.mjs +331 -0
- package/fesm2022/neural-ui-core-number-input.mjs.map +1 -0
- package/fesm2022/neural-ui-core-pagination.mjs +198 -0
- package/fesm2022/neural-ui-core-pagination.mjs.map +1 -0
- package/fesm2022/neural-ui-core-popover.mjs +207 -0
- package/fesm2022/neural-ui-core-popover.mjs.map +1 -0
- package/fesm2022/neural-ui-core-progress-bar.mjs +105 -0
- package/fesm2022/neural-ui-core-progress-bar.mjs.map +1 -0
- package/fesm2022/neural-ui-core-radio.mjs +171 -0
- package/fesm2022/neural-ui-core-radio.mjs.map +1 -0
- package/fesm2022/neural-ui-core-rating.mjs +151 -0
- package/fesm2022/neural-ui-core-rating.mjs.map +1 -0
- package/fesm2022/neural-ui-core-select.mjs +710 -0
- package/fesm2022/neural-ui-core-select.mjs.map +1 -0
- package/fesm2022/neural-ui-core-sidebar.mjs +214 -0
- package/fesm2022/neural-ui-core-sidebar.mjs.map +1 -0
- package/fesm2022/neural-ui-core-skeleton.mjs +40 -0
- package/fesm2022/neural-ui-core-skeleton.mjs.map +1 -0
- package/fesm2022/neural-ui-core-slider.mjs +146 -0
- package/fesm2022/neural-ui-core-slider.mjs.map +1 -0
- package/fesm2022/neural-ui-core-spinner.mjs +113 -0
- package/fesm2022/neural-ui-core-spinner.mjs.map +1 -0
- package/fesm2022/neural-ui-core-split-button.mjs +252 -0
- package/fesm2022/neural-ui-core-split-button.mjs.map +1 -0
- package/fesm2022/neural-ui-core-splitter.mjs +174 -0
- package/fesm2022/neural-ui-core-splitter.mjs.map +1 -0
- package/fesm2022/neural-ui-core-stats-card.mjs +163 -0
- package/fesm2022/neural-ui-core-stats-card.mjs.map +1 -0
- package/fesm2022/neural-ui-core-stepper.mjs +204 -0
- package/fesm2022/neural-ui-core-stepper.mjs.map +1 -0
- package/fesm2022/neural-ui-core-switch.mjs +111 -0
- package/fesm2022/neural-ui-core-switch.mjs.map +1 -0
- package/fesm2022/neural-ui-core-table.mjs +1872 -0
- package/fesm2022/neural-ui-core-table.mjs.map +1 -0
- package/fesm2022/neural-ui-core-tabs.mjs +338 -0
- package/fesm2022/neural-ui-core-tabs.mjs.map +1 -0
- package/fesm2022/neural-ui-core-textarea.mjs +188 -0
- package/fesm2022/neural-ui-core-textarea.mjs.map +1 -0
- package/fesm2022/neural-ui-core-timeline.mjs +117 -0
- package/fesm2022/neural-ui-core-timeline.mjs.map +1 -0
- package/fesm2022/neural-ui-core-toast.mjs +171 -0
- package/fesm2022/neural-ui-core-toast.mjs.map +1 -0
- package/fesm2022/neural-ui-core-toggle-button-group.mjs +162 -0
- package/fesm2022/neural-ui-core-toggle-button-group.mjs.map +1 -0
- package/fesm2022/neural-ui-core-toolbar.mjs +67 -0
- package/fesm2022/neural-ui-core-toolbar.mjs.map +1 -0
- package/fesm2022/neural-ui-core-tooltip.mjs +151 -0
- package/fesm2022/neural-ui-core-tooltip.mjs.map +1 -0
- package/fesm2022/neural-ui-core-url-state.mjs +96 -0
- package/fesm2022/neural-ui-core-url-state.mjs.map +1 -0
- package/fesm2022/neural-ui-core-virtual-list.mjs +126 -0
- package/fesm2022/neural-ui-core-virtual-list.mjs.map +1 -0
- package/fesm2022/neural-ui-core.mjs +11 -8544
- package/fesm2022/neural-ui-core.mjs.map +1 -1
- package/filter-bar/package.json +4 -0
- package/icon/package.json +4 -0
- package/image-viewer/package.json +4 -0
- package/input/package.json +4 -0
- package/input-otp/package.json +4 -0
- package/knob/package.json +4 -0
- package/meter-group/package.json +4 -0
- package/modal/package.json +4 -0
- package/multiselect/package.json +4 -0
- package/nav/package.json +4 -0
- package/notification-center/package.json +4 -0
- package/number-input/package.json +4 -0
- package/package.json +252 -5
- package/pagination/package.json +4 -0
- package/popover/package.json +4 -0
- package/progress-bar/package.json +4 -0
- package/radio/package.json +4 -0
- package/rating/package.json +4 -0
- package/select/package.json +4 -0
- package/sidebar/package.json +4 -0
- package/skeleton/package.json +4 -0
- package/slider/package.json +4 -0
- package/spinner/package.json +4 -0
- package/split-button/package.json +4 -0
- package/splitter/package.json +4 -0
- package/stats-card/package.json +4 -0
- package/stepper/package.json +4 -0
- package/styles/_tokens.scss +202 -0
- package/styles.scss +1 -0
- package/switch/package.json +4 -0
- package/table/package.json +4 -0
- package/tabs/package.json +4 -0
- package/textarea/package.json +4 -0
- package/timeline/package.json +4 -0
- package/toast/package.json +4 -0
- package/toggle-button-group/package.json +4 -0
- package/toolbar/package.json +4 -0
- package/tooltip/package.json +4 -0
- package/types/neural-ui-core-accordion.d.ts +55 -0
- package/types/neural-ui-core-alert.d.ts +47 -0
- package/types/neural-ui-core-autocomplete.d.ts +75 -0
- package/types/neural-ui-core-avatar.d.ts +39 -0
- package/types/neural-ui-core-badge.d.ts +36 -0
- package/types/neural-ui-core-block-ui.d.ts +46 -0
- package/types/neural-ui-core-breadcrumb.d.ts +38 -0
- package/types/neural-ui-core-button.d.ts +55 -0
- package/types/neural-ui-core-card.d.ts +37 -0
- package/types/neural-ui-core-chart.d.ts +236 -0
- package/types/neural-ui-core-checkbox.d.ts +33 -0
- package/types/neural-ui-core-chip.d.ts +53 -0
- package/types/neural-ui-core-code-block.d.ts +55 -0
- package/types/neural-ui-core-color-picker.d.ts +55 -0
- package/types/neural-ui-core-command-palette.d.ts +56 -0
- package/types/neural-ui-core-confirm-dialog.d.ts +50 -0
- package/types/neural-ui-core-context-menu.d.ts +66 -0
- package/types/neural-ui-core-dashboard-grid.d.ts +41 -0
- package/types/neural-ui-core-date-input.d.ts +178 -0
- package/types/neural-ui-core-divider.d.ts +20 -0
- package/types/neural-ui-core-empty-state.d.ts +32 -0
- package/types/neural-ui-core-filter-bar.d.ts +49 -0
- package/types/neural-ui-core-icon.d.ts +33 -0
- package/types/neural-ui-core-image-viewer.d.ts +67 -0
- package/types/neural-ui-core-input-otp.d.ts +49 -0
- package/types/neural-ui-core-input.d.ts +86 -0
- package/types/neural-ui-core-knob.d.ts +68 -0
- package/types/neural-ui-core-meter-group.d.ts +52 -0
- package/types/neural-ui-core-modal.d.ts +54 -0
- package/types/neural-ui-core-multiselect.d.ts +138 -0
- package/types/neural-ui-core-nav.d.ts +69 -0
- package/types/neural-ui-core-notification-center.d.ts +60 -0
- package/types/neural-ui-core-number-input.d.ts +63 -0
- package/types/neural-ui-core-pagination.d.ts +30 -0
- package/types/neural-ui-core-popover.d.ts +73 -0
- package/types/neural-ui-core-progress-bar.d.ts +35 -0
- package/types/neural-ui-core-radio.d.ts +51 -0
- package/types/neural-ui-core-rating.d.ts +34 -0
- package/types/neural-ui-core-select.d.ts +170 -0
- package/types/neural-ui-core-sidebar.d.ts +57 -0
- package/types/neural-ui-core-skeleton.d.ts +22 -0
- package/types/neural-ui-core-slider.d.ts +42 -0
- package/types/neural-ui-core-spinner.d.ts +38 -0
- package/types/neural-ui-core-split-button.d.ts +65 -0
- package/types/neural-ui-core-splitter.d.ts +28 -0
- package/types/neural-ui-core-stats-card.d.ts +39 -0
- package/types/neural-ui-core-stepper.d.ts +51 -0
- package/types/neural-ui-core-switch.d.ts +34 -0
- package/types/neural-ui-core-table.d.ts +285 -0
- package/types/neural-ui-core-tabs.d.ts +88 -0
- package/types/neural-ui-core-textarea.d.ts +52 -0
- package/types/neural-ui-core-timeline.d.ts +33 -0
- package/types/neural-ui-core-toast.d.ts +70 -0
- package/types/neural-ui-core-toggle-button-group.d.ts +63 -0
- package/types/neural-ui-core-toolbar.d.ts +36 -0
- package/types/neural-ui-core-tooltip.d.ts +48 -0
- package/types/neural-ui-core-url-state.d.ts +58 -0
- package/types/neural-ui-core-virtual-list.d.ts +60 -0
- package/types/neural-ui-core.d.ts +3 -2105
- package/url-state/package.json +4 -0
- package/virtual-list/package.json +4 -0
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { EnvironmentProviders, Signal, TemplateRef, InjectionToken, AfterViewInit, OnDestroy, Type } from '@angular/core';
|
|
3
|
-
import { Params } from '@angular/router';
|
|
4
|
-
import { ControlValueAccessor } from '@angular/forms';
|
|
5
|
-
import * as _neural_ui_core from '@neural-ui/core';
|
|
6
|
-
import { SafeHtml } from '@angular/platform-browser';
|
|
7
|
-
import { DialogRef } from '@angular/cdk/dialog';
|
|
1
|
+
import { EnvironmentProviders } from '@angular/core';
|
|
8
2
|
|
|
9
3
|
interface NeuralUIConfig {
|
|
10
4
|
/** Tamaño por defecto de los iconos. Por defecto: '1.25rem' / Default icon size. Default: '1.25rem' */
|
|
@@ -32,2101 +26,5 @@ interface NeuralUIConfig {
|
|
|
32
26
|
*/
|
|
33
27
|
declare function provideNeuralUI(config?: NeuralUIConfig): EnvironmentProviders;
|
|
34
28
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
*
|
|
38
|
-
* Sincroniza el estado de la UI con los QueryParams de la URL.
|
|
39
|
-
* Completamente reactivo via Angular Signals.
|
|
40
|
-
*
|
|
41
|
-
* Uso:
|
|
42
|
-
* const urlState = inject(NeuUrlStateService);
|
|
43
|
-
* const page = urlState.getParam('page'); // Signal<string | null>
|
|
44
|
-
* urlState.setParam('menu', 'open'); // Actualiza ?menu=open
|
|
45
|
-
* urlState.patchParams({ page: '2', q: 'filter' }); // Actualiza múltiples
|
|
46
|
-
*/
|
|
47
|
-
declare class NeuUrlStateService {
|
|
48
|
-
private readonly router;
|
|
49
|
-
/**
|
|
50
|
-
* Signal con el mapa completo de queryParams actual.
|
|
51
|
-
* Se actualiza automáticamente en cada NavigationEnd.
|
|
52
|
-
*/
|
|
53
|
-
readonly params: Signal<Params>;
|
|
54
|
-
/**
|
|
55
|
-
* Devuelve un Signal reactivo con el valor del parámetro indicado.
|
|
56
|
-
* Memorizar el resultado: no llamar en bucle pues crea un computed nuevo c/vez.
|
|
57
|
-
*
|
|
58
|
-
* @example
|
|
59
|
-
* readonly menuOpen = computed(() => this.urlState.getParam('menu')() === 'open');
|
|
60
|
-
*/
|
|
61
|
-
getParam(key: string): Signal<string | null>;
|
|
62
|
-
/**
|
|
63
|
-
* Establece un único queryParam en la URL.
|
|
64
|
-
*
|
|
65
|
-
* @param key Nombre del parámetro
|
|
66
|
-
* @param value Valor. Pasar `null` para eliminarlo de la URL.
|
|
67
|
-
* @param replaceUrl Si true (default) usa replaceState — no ensucia el historial.
|
|
68
|
-
* Pasar false para acciones que el usuario debe poder deshacer con Atrás.
|
|
69
|
-
*/
|
|
70
|
-
setParam(key: string, value: string | null, replaceUrl?: boolean): void;
|
|
71
|
-
/**
|
|
72
|
-
* Actualiza múltiples queryParams en una sola navegación.
|
|
73
|
-
*
|
|
74
|
-
* @example
|
|
75
|
-
* urlState.patchParams({ page: '1', q: 'Angular' });
|
|
76
|
-
*/
|
|
77
|
-
patchParams(params: Record<string, string | null>, replaceUrl?: boolean): void;
|
|
78
|
-
/**
|
|
79
|
-
* Elimina todos los queryParams de la URL de una vez.
|
|
80
|
-
*/
|
|
81
|
-
clearParams(replaceUrl?: boolean): void;
|
|
82
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuUrlStateService, never>;
|
|
83
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<NeuUrlStateService>;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
type NeuToastType = 'success' | 'error' | 'info' | 'warning';
|
|
87
|
-
type NeuToastPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
|
|
88
|
-
interface NeuToastOptions {
|
|
89
|
-
/** Mensaje del toast / Toast message */
|
|
90
|
-
message: string;
|
|
91
|
-
/** Tipo semántico — controla color e icono / Semantic type — controls color and icon */
|
|
92
|
-
type?: NeuToastType;
|
|
93
|
-
/** Duración en ms antes de ocultarse automáticamente. 0 = sin auto-hide / Duration in ms before auto-hiding. 0 = no auto-hide */
|
|
94
|
-
duration?: number;
|
|
95
|
-
/** Título opcional / Optional title */
|
|
96
|
-
title?: string;
|
|
97
|
-
}
|
|
98
|
-
interface NeuToastItem extends Required<Omit<NeuToastOptions, 'title'>> {
|
|
99
|
-
id: string;
|
|
100
|
-
title: string;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* NeuralUI Toast Service
|
|
105
|
-
*
|
|
106
|
-
* Lanza notificaciones flotantes desde cualquier punto de la app.
|
|
107
|
-
* Requiere que `<neu-toast-container>` esté presente en la raíz del app.
|
|
108
|
-
*
|
|
109
|
-
* Uso:
|
|
110
|
-
* const toast = inject(NeuToastService);
|
|
111
|
-
* toast.success('Guardado correctamente');
|
|
112
|
-
* toast.error('Ha ocurrido un error', { title: 'Error', duration: 8000 });
|
|
113
|
-
*/
|
|
114
|
-
declare class NeuToastService {
|
|
115
|
-
/** Lista reactiva de toasts activos / Reactive list of active toasts */
|
|
116
|
-
readonly toasts: _angular_core.WritableSignal<NeuToastItem[]>;
|
|
117
|
-
/** Posición del contenedor de toasts / Toast container position */
|
|
118
|
-
readonly position: _angular_core.WritableSignal<NeuToastPosition>;
|
|
119
|
-
setPosition(position: NeuToastPosition): void;
|
|
120
|
-
show(options: NeuToastOptions): string;
|
|
121
|
-
success(message: string, opts?: Partial<NeuToastOptions>): string;
|
|
122
|
-
error(message: string, opts?: Partial<NeuToastOptions>): string;
|
|
123
|
-
info(message: string, opts?: Partial<NeuToastOptions>): string;
|
|
124
|
-
warning(message: string, opts?: Partial<NeuToastOptions>): string;
|
|
125
|
-
dismiss(id: string): void;
|
|
126
|
-
clear(): void;
|
|
127
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuToastService, never>;
|
|
128
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<NeuToastService>;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* NeuralUI Checkbox Component
|
|
133
|
-
*
|
|
134
|
-
* Checkbox personalizado y accesible para Angular Forms.
|
|
135
|
-
*
|
|
136
|
-
* Uso:
|
|
137
|
-
* <neu-checkbox label="Acepto los términos" [formControl]="termsCtrl" />
|
|
138
|
-
*/
|
|
139
|
-
declare class NeuCheckboxComponent implements ControlValueAccessor {
|
|
140
|
-
readonly label: _angular_core.InputSignal<string>;
|
|
141
|
-
readonly name: _angular_core.InputSignal<string>;
|
|
142
|
-
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
143
|
-
readonly _id: string;
|
|
144
|
-
protected readonly _checked: _angular_core.WritableSignal<boolean>;
|
|
145
|
-
/** Estado disabled interno — combina el input `disabled` con el CVA setDisabledState / Internal disabled state — combines the `disabled` input with CVA setDisabledState */
|
|
146
|
-
private readonly _cvaDisabled;
|
|
147
|
-
protected readonly _isDisabled: _angular_core.Signal<boolean>;
|
|
148
|
-
private _onChange;
|
|
149
|
-
private _onTouched;
|
|
150
|
-
onChange(event: Event): void;
|
|
151
|
-
onBlur(): void;
|
|
152
|
-
writeValue(val: unknown): void;
|
|
153
|
-
registerOnChange(fn: (v: boolean) => void): void;
|
|
154
|
-
registerOnTouched(fn: () => void): void;
|
|
155
|
-
setDisabledState(isDisabled: boolean): void;
|
|
156
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuCheckboxComponent, never>;
|
|
157
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuCheckboxComponent, "neu-checkbox", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
interface CalendarDay {
|
|
161
|
-
date: Date;
|
|
162
|
-
inMonth: boolean;
|
|
163
|
-
isToday: boolean;
|
|
164
|
-
isSelected: boolean;
|
|
165
|
-
}
|
|
166
|
-
interface DrumSlot {
|
|
167
|
-
value: number;
|
|
168
|
-
offset: number;
|
|
169
|
-
label: string;
|
|
170
|
-
}
|
|
171
|
-
declare class NeuDateInputComponent implements ControlValueAccessor {
|
|
172
|
-
private readonly el;
|
|
173
|
-
/** Tipo: date | time | datetime-local / Type: date | time | datetime-local */
|
|
174
|
-
type: _angular_core.InputSignal<"date" | "time" | "datetime-local">;
|
|
175
|
-
/** Etiqueta del campo / Field label */
|
|
176
|
-
label: _angular_core.InputSignal<string>;
|
|
177
|
-
/** Texto de ayuda / Help text */
|
|
178
|
-
hint: _angular_core.InputSignal<string>;
|
|
179
|
-
/** Mensaje de error / Error message */
|
|
180
|
-
errorMessage: _angular_core.InputSignal<string>;
|
|
181
|
-
/** Deshabilita el campo / Disables the field */
|
|
182
|
-
disabled: _angular_core.InputSignal<boolean>;
|
|
183
|
-
/** Solo lectura / Read only */
|
|
184
|
-
readonly: _angular_core.InputSignal<boolean>;
|
|
185
|
-
/** Nombre del campo (formularios nativos) / Field name (native forms) */
|
|
186
|
-
name: _angular_core.InputSignal<string>;
|
|
187
|
-
/** ID accesible / Accessible ID */
|
|
188
|
-
inputId: _angular_core.InputSignal<string>;
|
|
189
|
-
/** Requerido / Required */
|
|
190
|
-
required: _angular_core.InputSignal<boolean>;
|
|
191
|
-
/** Mínimo (no implementado visualmente en v1) / Minimum (not visually implemented in v1) */
|
|
192
|
-
min: _angular_core.InputSignal<string | null>;
|
|
193
|
-
/** Máximo (no implementado visualmente en v1) / Maximum (not visually implemented in v1) */
|
|
194
|
-
max: _angular_core.InputSignal<string | null>;
|
|
195
|
-
/** Paso / Step */
|
|
196
|
-
step: _angular_core.InputSignal<number | null>;
|
|
197
|
-
protected readonly _id: string;
|
|
198
|
-
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
199
|
-
protected readonly _value: _angular_core.WritableSignal<string>;
|
|
200
|
-
protected readonly _viewYear: _angular_core.WritableSignal<number>;
|
|
201
|
-
protected readonly _viewMonth: _angular_core.WritableSignal<number>;
|
|
202
|
-
protected readonly _selYear: _angular_core.WritableSignal<number | null>;
|
|
203
|
-
protected readonly _selMonth: _angular_core.WritableSignal<number | null>;
|
|
204
|
-
protected readonly _selDay: _angular_core.WritableSignal<number | null>;
|
|
205
|
-
protected readonly _selHour: _angular_core.WritableSignal<number>;
|
|
206
|
-
protected readonly _selMinute: _angular_core.WritableSignal<number>;
|
|
207
|
-
readonly hasError: _angular_core.Signal<boolean>;
|
|
208
|
-
readonly displayValue: _angular_core.Signal<string>;
|
|
209
|
-
readonly placeholderText: _angular_core.Signal<"hh:mm" | "dd/mm/aaaa, hh:mm" | "dd/mm/aaaa">;
|
|
210
|
-
readonly monthLabel: _angular_core.Signal<string>;
|
|
211
|
-
readonly weekdays: string[];
|
|
212
|
-
readonly calendarDays: _angular_core.Signal<CalendarDay[]>;
|
|
213
|
-
readonly hourSlots: _angular_core.Signal<DrumSlot[]>;
|
|
214
|
-
readonly minuteSlots: _angular_core.Signal<DrumSlot[]>;
|
|
215
|
-
private _drumSlots;
|
|
216
|
-
toggle(): void;
|
|
217
|
-
close(): void;
|
|
218
|
-
onDocumentClick(event: MouseEvent): void;
|
|
219
|
-
prevMonth(): void;
|
|
220
|
-
nextMonth(): void;
|
|
221
|
-
selectDay(day: CalendarDay): void;
|
|
222
|
-
formatDayLabel(date: Date): string;
|
|
223
|
-
today(): void;
|
|
224
|
-
clear(): void;
|
|
225
|
-
changeHour(delta: number): void;
|
|
226
|
-
changeMinute(delta: number): void;
|
|
227
|
-
onHourWheel(e: WheelEvent): void;
|
|
228
|
-
onMinuteWheel(e: WheelEvent): void;
|
|
229
|
-
private _emitValue;
|
|
230
|
-
private _onChange;
|
|
231
|
-
private _onTouched;
|
|
232
|
-
writeValue(value: string | null): void;
|
|
233
|
-
registerOnChange(fn: (v: string) => void): void;
|
|
234
|
-
registerOnTouched(fn: () => void): void;
|
|
235
|
-
private readonly _cvaDisabled;
|
|
236
|
-
setDisabledState(isDisabled: boolean): void;
|
|
237
|
-
readonly isDisabledFinal: _angular_core.Signal<boolean>;
|
|
238
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuDateInputComponent, never>;
|
|
239
|
-
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; }; "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; }; }, {}, never, never, true, never>;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
type NeuInputType = 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search';
|
|
243
|
-
/**
|
|
244
|
-
* NeuralUI Input Component
|
|
245
|
-
*
|
|
246
|
-
* Input con floating label, iconos y soporte completo para Angular Forms.
|
|
247
|
-
* Compatible con ReactiveFormsModule y ngModel.
|
|
248
|
-
*
|
|
249
|
-
* Uso standalone:
|
|
250
|
-
* <neu-input label="Correo" type="email" />
|
|
251
|
-
*
|
|
252
|
-
* Con Reactive Forms:
|
|
253
|
-
* <neu-input label="Correo" [formControl]="emailCtrl" [errorMessage]="emailError()" />
|
|
254
|
-
*/
|
|
255
|
-
declare class NeuInputComponent implements ControlValueAccessor {
|
|
256
|
-
/** Tipo de input HTML / HTML input type */
|
|
257
|
-
type: _angular_core.InputSignal<NeuInputType>;
|
|
258
|
-
/** Texto del floating label / Floating label text */
|
|
259
|
-
label: _angular_core.InputSignal<string>;
|
|
260
|
-
/** Placeholder visible cuando floatingLabel=false / Visible placeholder when floatingLabel=false */
|
|
261
|
-
placeholder: _angular_core.InputSignal<string>;
|
|
262
|
-
/** Muestra el label como flotante (true) o estático encima del campo (false) / Shows the label as floating (true) or static above the field (false) */
|
|
263
|
-
floatingLabel: _angular_core.InputSignal<boolean>;
|
|
264
|
-
/** Hint de ayuda (visible cuando no hay error) / Help hint (visible when there is no error) */
|
|
265
|
-
hint: _angular_core.InputSignal<string>;
|
|
266
|
-
/** Mensaje de error (activa el estado de error) / Error message (activates the error state) */
|
|
267
|
-
errorMessage: _angular_core.InputSignal<string>;
|
|
268
|
-
/** Deshabilita el campo / Disables the field */
|
|
269
|
-
disabled: _angular_core.InputSignal<boolean>;
|
|
270
|
-
/** Atributo autocomplete HTML / HTML autocomplete attribute */
|
|
271
|
-
autocomplete: _angular_core.InputSignal<string>;
|
|
272
|
-
/** Muestra zona para icono al inicio / Shows icon slot at the start */
|
|
273
|
-
startIcon: _angular_core.InputSignal<boolean>;
|
|
274
|
-
/** Muestra zona para icono al final / Shows icon slot at the end */
|
|
275
|
-
endIcon: _angular_core.InputSignal<boolean>;
|
|
276
|
-
/** Nombre del icono lucide a renderizar dentro del campo / Lucide icon name to render inside the field */
|
|
277
|
-
icon: _angular_core.InputSignal<string>;
|
|
278
|
-
/** Posición del icono cuando se usa `icon` / Icon position when using `icon` */
|
|
279
|
-
iconPosition: _angular_core.InputSignal<"left" | "right">;
|
|
280
|
-
/** ID accesible para el input — generado con contador estable (seguro en SSR) / Accessible ID for the input — generated with stable counter (SSR-safe) */
|
|
281
|
-
inputId: _angular_core.InputSignal<string>;
|
|
282
|
-
/** Nombre del campo para formularios nativos / Field name for native forms */
|
|
283
|
-
name: _angular_core.InputSignal<string>;
|
|
284
|
-
/** Marca el campo como requerido / Marks the field as required */
|
|
285
|
-
required: _angular_core.InputSignal<boolean>;
|
|
286
|
-
/** Hace el campo de solo lectura / Makes the field read-only */
|
|
287
|
-
readonly: _angular_core.InputSignal<boolean>;
|
|
288
|
-
/** Longitud máxima de caracteres / Maximum character length */
|
|
289
|
-
maxlength: _angular_core.InputSignal<number | null>;
|
|
290
|
-
/** Longitud mínima de caracteres / Minimum character length */
|
|
291
|
-
minlength: _angular_core.InputSignal<number | null>;
|
|
292
|
-
/** Valor mínimo (para type=number/date) / Minimum value (for type=number/date) */
|
|
293
|
-
min: _angular_core.InputSignal<string | null>;
|
|
294
|
-
/** Valor máximo (para type=number/date) / Maximum value (for type=number/date) */
|
|
295
|
-
max: _angular_core.InputSignal<string | null>;
|
|
296
|
-
/** Patrón de validación HTML5 / HTML5 validation pattern */
|
|
297
|
-
pattern: _angular_core.InputSignal<string | null>;
|
|
298
|
-
protected readonly _value: _angular_core.WritableSignal<string>;
|
|
299
|
-
protected readonly _focused: _angular_core.WritableSignal<boolean>;
|
|
300
|
-
readonly hasValue: _angular_core.Signal<boolean>;
|
|
301
|
-
readonly hasError: _angular_core.Signal<boolean>;
|
|
302
|
-
readonly startIconPath: _angular_core.Signal<string>;
|
|
303
|
-
readonly hasStartContent: _angular_core.Signal<boolean>;
|
|
304
|
-
readonly _hasIconLeft: _angular_core.Signal<boolean>;
|
|
305
|
-
readonly _hasIconRight: _angular_core.Signal<boolean>;
|
|
306
|
-
private _onChange;
|
|
307
|
-
private _onTouched;
|
|
308
|
-
writeValue(val: unknown): void;
|
|
309
|
-
registerOnChange(fn: (v: string) => void): void;
|
|
310
|
-
registerOnTouched(fn: () => void): void;
|
|
311
|
-
private readonly _cvaDisabled;
|
|
312
|
-
setDisabledState(isDisabled: boolean): void;
|
|
313
|
-
readonly isDisabledFinal: _angular_core.Signal<boolean>;
|
|
314
|
-
onInput(event: Event): void;
|
|
315
|
-
onFocus(): void;
|
|
316
|
-
onBlur(): void;
|
|
317
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuInputComponent, never>;
|
|
318
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuInputComponent, "neu-input", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "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; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "startIcon": { "alias": "startIcon"; "required": false; "isSignal": true; }; "endIcon": { "alias": "endIcon"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconPosition": { "alias": "iconPosition"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; "minlength": { "alias": "minlength"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "pattern": { "alias": "pattern"; "required": false; "isSignal": true; }; }, {}, never, ["[neu-input-start]", "[neu-input-end]"], true, never>;
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
interface NeuSelectOption {
|
|
322
|
-
value: string;
|
|
323
|
-
label: string;
|
|
324
|
-
disabled?: boolean;
|
|
325
|
-
group?: string;
|
|
326
|
-
/** Objeto de origen para adjuntar sin transformación (p.ej. entidad de la API). Accesible vía (selectionChange). / Origin object to attach without transformation (e.g. API entity). Accessible via (selectionChange). */
|
|
327
|
-
data?: unknown;
|
|
328
|
-
}
|
|
329
|
-
interface NeuSelectGroup {
|
|
330
|
-
label: string;
|
|
331
|
-
options: NeuSelectOption[];
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
/**
|
|
335
|
-
* Directiva para personalizar el template de cada ítem del dropdown de Multiselect. / Directive to customize the template of each Multiselect dropdown item.
|
|
336
|
-
*
|
|
337
|
-
* Uso:
|
|
338
|
-
* ```html
|
|
339
|
-
* <neu-multiselect [options]="opts" [(ngModel)]="values">
|
|
340
|
-
* <ng-template neuMultiselectItem let-item>
|
|
341
|
-
* <span class="flag flag-{{ item.value }}"></span>
|
|
342
|
-
* {{ item.label }}
|
|
343
|
-
* </ng-template>
|
|
344
|
-
* </neu-multiselect>
|
|
345
|
-
* ```
|
|
346
|
-
*/
|
|
347
|
-
declare class NeuMultiselectItemDirective {
|
|
348
|
-
readonly templateRef: TemplateRef<{
|
|
349
|
-
$implicit: NeuSelectOption;
|
|
350
|
-
}>;
|
|
351
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuMultiselectItemDirective, never>;
|
|
352
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NeuMultiselectItemDirective, "[neuMultiselectItem]", never, {}, {}, never, never, true, never>;
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
/**
|
|
356
|
-
* NeuralUI Multiselect Component
|
|
357
|
-
*
|
|
358
|
-
* Dropdown de selección múltiple con chips, búsqueda integrada y soporte / Multiple selection dropdown with chips, integrated search and support
|
|
359
|
-
* completo para Angular Forms (ngModel y Reactive Forms). / for Angular Forms (ngModel and Reactive Forms).
|
|
360
|
-
*
|
|
361
|
-
* Uso:
|
|
362
|
-
* <neu-multiselect label="Tecnologías" [options]="opts" [(ngModel)]="selected" />
|
|
363
|
-
*/
|
|
364
|
-
declare class NeuMultiselectComponent implements ControlValueAccessor {
|
|
365
|
-
private readonly elementRef;
|
|
366
|
-
private readonly _urlState;
|
|
367
|
-
constructor();
|
|
368
|
-
/** @internal */
|
|
369
|
-
readonly _triggerId: string;
|
|
370
|
-
/** Template personalizado para cada opción del dropdown / Custom template for each dropdown option */
|
|
371
|
-
readonly itemTpl: _angular_core.Signal<NeuMultiselectItemDirective | undefined>;
|
|
372
|
-
/** Opciones del dropdown / Dropdown options */
|
|
373
|
-
options: _angular_core.InputSignal<NeuSelectOption[]>;
|
|
374
|
-
/** Etiqueta del componente / Component label */
|
|
375
|
-
label: _angular_core.InputSignal<string>;
|
|
376
|
-
/** Muestra el label como flotante dentro del campo (true) o estático encima (false) / Shows the label as floating inside the field (true) or static above (false) */
|
|
377
|
-
floatingLabel: _angular_core.InputSignal<boolean>;
|
|
378
|
-
/** Placeholder cuando no hay selección / Placeholder when there is no selection */
|
|
379
|
-
placeholder: _angular_core.InputSignal<string>;
|
|
380
|
-
/** Mensaje de error / Error message */
|
|
381
|
-
errorMessage: _angular_core.InputSignal<string>;
|
|
382
|
-
/** Deshabilita el componente / Disables the component */
|
|
383
|
-
disabled: _angular_core.InputSignal<boolean>;
|
|
384
|
-
/** Activa input de búsqueda/filtro en el panel / Activates the search/filter input in the panel */
|
|
385
|
-
searchable: _angular_core.InputSignal<boolean>;
|
|
386
|
-
/** Placeholder del input de búsqueda / Search input placeholder */
|
|
387
|
-
searchPlaceholder: _angular_core.InputSignal<string>;
|
|
388
|
-
/** Texto cuando no hay opciones tras filtrar / Text when no options remain after filtering */
|
|
389
|
-
noResultsMessage: _angular_core.InputSignal<string>;
|
|
390
|
-
/** Texto del botón de limpiar todas las selecciones / Button text to clear all selections */
|
|
391
|
-
clearAllLabel: _angular_core.InputSignal<string>;
|
|
392
|
-
/** Muestra un botón × en el trigger para limpiar la selección de una vez / Shows a × button in the trigger to clear the selection at once */
|
|
393
|
-
clearable: _angular_core.InputSignal<boolean>;
|
|
394
|
-
/** Aria-label del botón clear que aparece en el trigger / Aria-label for the clear button shown in the trigger */
|
|
395
|
-
clearAriaLabel: _angular_core.InputSignal<string>;
|
|
396
|
-
/**
|
|
397
|
-
* Sincroniza los valores seleccionados con este query param de la URL.
|
|
398
|
-
* Los valores se codifican como lista separada por comas: `?{urlParam}=a,b,c`.
|
|
399
|
-
* Pasar `null` (default) deshabilita la sincronización.
|
|
400
|
-
*/
|
|
401
|
-
urlParam: _angular_core.InputSignal<string | null>;
|
|
402
|
-
/**
|
|
403
|
-
* Emite el array de NeuSelectOption completo (incluyendo data) al cambiar la selección.
|
|
404
|
-
* Emite [] al limpiar toda la selección.
|
|
405
|
-
* Los valores de ngModel / formControl siguen siendo string[].
|
|
406
|
-
*/
|
|
407
|
-
readonly selectionChange: _angular_core.OutputEmitterRef<NeuSelectOption[]>;
|
|
408
|
-
protected readonly _values: _angular_core.WritableSignal<string[]>;
|
|
409
|
-
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
410
|
-
readonly searchQuery: _angular_core.WritableSignal<string>;
|
|
411
|
-
readonly _chipMode: _angular_core.WritableSignal<"chips" | "count">;
|
|
412
|
-
readonly _visibleChips: _angular_core.Signal<string[]>;
|
|
413
|
-
readonly hasError: _angular_core.Signal<boolean>;
|
|
414
|
-
readonly filteredOptions: _angular_core.Signal<NeuSelectOption[]>;
|
|
415
|
-
private _onChange;
|
|
416
|
-
private _onTouched;
|
|
417
|
-
writeValue(value: string[] | null): void;
|
|
418
|
-
registerOnChange(fn: (v: string[]) => void): void;
|
|
419
|
-
registerOnTouched(fn: () => void): void;
|
|
420
|
-
private readonly _cvaDisabled;
|
|
421
|
-
setDisabledState(isDisabled: boolean): void;
|
|
422
|
-
readonly isDisabledFinal: _angular_core.Signal<boolean>;
|
|
423
|
-
protected labelFor(value: string): string;
|
|
424
|
-
protected isSelected(value: string): boolean;
|
|
425
|
-
protected toggle(): void;
|
|
426
|
-
/** Abre el panel y mueve el foco al primer item / Opens the panel and moves focus to the first item */
|
|
427
|
-
onTriggerKey(event: Event): void;
|
|
428
|
-
/** Navega entre opciones con flechas / Navigates between options with arrows */
|
|
429
|
-
focusOptionByIndex(event: Event, current: NeuSelectOption, dir: 1 | -1): void;
|
|
430
|
-
protected close(): void;
|
|
431
|
-
protected toggleOption(option: NeuSelectOption): void;
|
|
432
|
-
protected removeValue(value: string, event: MouseEvent): void;
|
|
433
|
-
protected clearAll(event: MouseEvent): void;
|
|
434
|
-
protected toggleChipMode(event: MouseEvent): void;
|
|
435
|
-
protected onDocumentClick(event: MouseEvent): void;
|
|
436
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuMultiselectComponent, never>;
|
|
437
|
-
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; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "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; }; "clearAriaLabel": { "alias": "clearAriaLabel"; "required": false; "isSignal": true; }; "urlParam": { "alias": "urlParam"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, ["itemTpl"], never, true, never>;
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
/** Token para que neu-radio encuentre a su grupo padre / Token for neu-radio to find its parent group */
|
|
441
|
-
declare const NEU_RADIO_GROUP: InjectionToken<NeuRadioGroupComponent>;
|
|
442
|
-
declare class NeuRadioGroupComponent implements ControlValueAccessor {
|
|
443
|
-
readonly direction: _angular_core.InputSignal<"row" | "column">;
|
|
444
|
-
/** Etiqueta accesible del grupo (WCAG 4.1.2). Usar cuando no hay <legend> visible. / Accessible label for the group (WCAG 4.1.2). Use when there is no visible <legend>. */
|
|
445
|
-
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
446
|
-
/** Nombre HTML compartido por todos los neu-radio hijos — garantiza la exclusión mutua nativa / HTML name shared by all child neu-radio — guarantees native mutual exclusion */
|
|
447
|
-
readonly _name: string;
|
|
448
|
-
readonly _value: _angular_core.WritableSignal<unknown>;
|
|
449
|
-
readonly _isDisabled: _angular_core.WritableSignal<boolean>;
|
|
450
|
-
private _onChange;
|
|
451
|
-
private _onTouched;
|
|
452
|
-
select(value: unknown): void;
|
|
453
|
-
writeValue(val: unknown): void;
|
|
454
|
-
registerOnChange(fn: (v: unknown) => void): void;
|
|
455
|
-
registerOnTouched(fn: () => void): void;
|
|
456
|
-
setDisabledState(isDisabled: boolean): void;
|
|
457
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuRadioGroupComponent, never>;
|
|
458
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuRadioGroupComponent, "neu-radio-group", never, { "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
/**
|
|
462
|
-
* NeuralUI Radio Component
|
|
463
|
-
*
|
|
464
|
-
* Opción individual dentro de un neu-radio-group.
|
|
465
|
-
*
|
|
466
|
-
* Uso:
|
|
467
|
-
* <neu-radio value="opcion-a" label="Opción A" />
|
|
468
|
-
*/
|
|
469
|
-
declare class NeuRadioComponent {
|
|
470
|
-
readonly value: _angular_core.InputSignal<unknown>;
|
|
471
|
-
readonly label: _angular_core.InputSignal<string>;
|
|
472
|
-
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
473
|
-
readonly group: _neural_ui_core.NeuRadioGroupComponent;
|
|
474
|
-
readonly _id: string;
|
|
475
|
-
/** Toma el nombre del grupo padre — así todos los radios del grupo comparten el mismo `name` nativo / Takes the parent group name — so all radios in the group share the same native `name` */
|
|
476
|
-
readonly _groupName: string;
|
|
477
|
-
readonly isChecked: _angular_core.Signal<boolean>;
|
|
478
|
-
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
479
|
-
onSelect(): void;
|
|
480
|
-
onBlur(): void;
|
|
481
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuRadioComponent, never>;
|
|
482
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuRadioComponent, "neu-radio", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
/**
|
|
486
|
-
* Directiva para personalizar el template de cada ítem del dropdown.
|
|
487
|
-
*
|
|
488
|
-
* Uso:
|
|
489
|
-
* ```html
|
|
490
|
-
* <neu-select [options]="opts" [(ngModel)]="value">
|
|
491
|
-
* <ng-template neuSelectItem let-item>
|
|
492
|
-
* <span class="flag flag-{{ item.value }}"></span>
|
|
493
|
-
* {{ item.label }}
|
|
494
|
-
* </ng-template>
|
|
495
|
-
* </neu-select>
|
|
496
|
-
* ```
|
|
497
|
-
*/
|
|
498
|
-
declare class NeuSelectItemDirective {
|
|
499
|
-
readonly templateRef: TemplateRef<{
|
|
500
|
-
$implicit: NeuSelectOption;
|
|
501
|
-
}>;
|
|
502
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSelectItemDirective, never>;
|
|
503
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NeuSelectItemDirective, "[neuSelectItem]", never, {}, {}, never, never, true, never>;
|
|
504
|
-
}
|
|
505
|
-
/**
|
|
506
|
-
* Directiva para personalizar el template del ítem seleccionado (trigger).
|
|
507
|
-
*
|
|
508
|
-
* Uso:
|
|
509
|
-
* ```html
|
|
510
|
-
* <neu-select [options]="opts" [(ngModel)]="value">
|
|
511
|
-
* <ng-template neuSelectSelected let-item>
|
|
512
|
-
* <strong>{{ item?.label }}</strong>
|
|
513
|
-
* </ng-template>
|
|
514
|
-
* </neu-select>
|
|
515
|
-
* ```
|
|
516
|
-
*/
|
|
517
|
-
declare class NeuSelectSelectedDirective {
|
|
518
|
-
readonly templateRef: TemplateRef<{
|
|
519
|
-
$implicit: NeuSelectOption | null;
|
|
520
|
-
}>;
|
|
521
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSelectSelectedDirective, never>;
|
|
522
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NeuSelectSelectedDirective, "[neuSelectSelected]", never, {}, {}, never, never, true, never>;
|
|
523
|
-
}
|
|
524
|
-
|
|
525
|
-
/**
|
|
526
|
-
* NeuralUI Select Component
|
|
527
|
-
*
|
|
528
|
-
* Dropdown personalizado con soporte para Angular Forms.
|
|
529
|
-
* Cierra automáticamente al hacer clic fuera del componente.
|
|
530
|
-
*
|
|
531
|
-
* Uso:
|
|
532
|
-
* <neu-select label="País" [options]="paises" [(ngModel)]="country" />
|
|
533
|
-
*
|
|
534
|
-
* Con Reactive Forms:
|
|
535
|
-
* <neu-select label="País" [options]="paises" [formControl]="countryCtrl" />
|
|
536
|
-
*/
|
|
537
|
-
declare class NeuSelectComponent implements ControlValueAccessor {
|
|
538
|
-
private readonly elementRef;
|
|
539
|
-
private readonly _urlState;
|
|
540
|
-
constructor();
|
|
541
|
-
/** @internal — ID \u00fanico para asociar label con trigger */
|
|
542
|
-
readonly _triggerId: string;
|
|
543
|
-
/** Template personalizado para cada opción del dropdown / Custom template for each dropdown option */
|
|
544
|
-
readonly itemTpl: _angular_core.Signal<NeuSelectItemDirective | undefined>;
|
|
545
|
-
/** Template personalizado para el valor seleccionado en el trigger / Custom template for the selected value in the trigger */
|
|
546
|
-
readonly selectedItemTpl: _angular_core.Signal<NeuSelectSelectedDirective | undefined>;
|
|
547
|
-
/** Opciones del dropdown / Dropdown options */
|
|
548
|
-
options: _angular_core.InputSignal<NeuSelectOption[]>;
|
|
549
|
-
/** Texto del floating label / Floating label text */
|
|
550
|
-
label: _angular_core.InputSignal<string>;
|
|
551
|
-
/** Placeholder cuando no hay selección / Placeholder when there is no selection */
|
|
552
|
-
placeholder: _angular_core.InputSignal<string>;
|
|
553
|
-
/** Mensaje de error / Error message */
|
|
554
|
-
errorMessage: _angular_core.InputSignal<string>;
|
|
555
|
-
/** Deshabilita el select / Disables the select */
|
|
556
|
-
disabled: _angular_core.InputSignal<boolean>;
|
|
557
|
-
/** Muestra el label como flotante (true) o como label estático encima (false, por defecto) / Shows the label as floating (true) or static above (false, default) */
|
|
558
|
-
floatingLabel: _angular_core.InputSignal<boolean>;
|
|
559
|
-
/** Activa input de búsqueda/filtro en el panel / Activates the search/filter input in the panel */
|
|
560
|
-
searchable: _angular_core.InputSignal<boolean>;
|
|
561
|
-
/** Placeholder del input de búsqueda / Search input placeholder */
|
|
562
|
-
searchPlaceholder: _angular_core.InputSignal<string>;
|
|
563
|
-
/** Muestra un botón para limpiar la selección / Shows a button to clear the selection */
|
|
564
|
-
clearable: _angular_core.InputSignal<boolean>;
|
|
565
|
-
/** Texto cuando no hay opciones tras filtrar / Text when no options remain after filtering */
|
|
566
|
-
noResultsMessage: _angular_core.InputSignal<string>;
|
|
567
|
-
/** Aria-label del botón de limpiar / Aria-label for the clear button */
|
|
568
|
-
clearAriaLabel: _angular_core.InputSignal<string>;
|
|
569
|
-
/**
|
|
570
|
-
* Sincroniza el valor seleccionado con este query param de la URL.
|
|
571
|
-
* Al seleccionar una opción se añade `?{urlParam}=value` a la URL.
|
|
572
|
-
* Pasar `null` (default) deshabilita la sincronización.
|
|
573
|
-
*/
|
|
574
|
-
urlParam: _angular_core.InputSignal<string | null>;
|
|
575
|
-
/**
|
|
576
|
-
* Emite el objeto NeuSelectOption completo (incluyendo data) al seleccionar una opción.
|
|
577
|
-
* Emite null al limpiar la selección.
|
|
578
|
-
* El valor de ngModel / formControl sigue siendo string.
|
|
579
|
-
*/
|
|
580
|
-
readonly selectionChange: _angular_core.OutputEmitterRef<NeuSelectOption | null>;
|
|
581
|
-
protected readonly _value: _angular_core.WritableSignal<string | null>;
|
|
582
|
-
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
583
|
-
readonly searchQuery: _angular_core.WritableSignal<string>;
|
|
584
|
-
readonly hasError: _angular_core.Signal<boolean>;
|
|
585
|
-
readonly filteredOptions: _angular_core.Signal<NeuSelectOption[]>;
|
|
586
|
-
readonly selectedLabel: _angular_core.Signal<string | null>;
|
|
587
|
-
readonly _selectedOption: _angular_core.Signal<NeuSelectOption | null>;
|
|
588
|
-
private _onChange;
|
|
589
|
-
private _onTouched;
|
|
590
|
-
writeValue(val: string | null): void;
|
|
591
|
-
registerOnChange(fn: (v: string | null) => void): void;
|
|
592
|
-
registerOnTouched(fn: () => void): void;
|
|
593
|
-
private readonly _cvaDisabled;
|
|
594
|
-
setDisabledState(isDisabled: boolean): void;
|
|
595
|
-
readonly isDisabledFinal: _angular_core.Signal<boolean>;
|
|
596
|
-
toggle(): void;
|
|
597
|
-
close(): void;
|
|
598
|
-
/** Abre el panel y navega con flechas desde el trigger / Opens the panel and navigates with arrows from the trigger */
|
|
599
|
-
onTriggerKey(event: Event): void;
|
|
600
|
-
/** Navega entre opciones con flechas / Navigates between options with arrows */
|
|
601
|
-
focusOptionByIndex(event: Event, current: NeuSelectOption, dir: 1 | -1): void;
|
|
602
|
-
clearValue(event: MouseEvent): void;
|
|
603
|
-
selectOption(option: NeuSelectOption): void;
|
|
604
|
-
onDocumentClick(event: MouseEvent): void;
|
|
605
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSelectComponent, never>;
|
|
606
|
-
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; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "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; }; "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>;
|
|
607
|
-
}
|
|
608
|
-
|
|
609
|
-
/**
|
|
610
|
-
* NeuralUI Slider Component
|
|
611
|
-
*
|
|
612
|
-
* Control deslizante accesible que envuelve el <input type="range">
|
|
613
|
-
* nativo con estilos personalizados y tooltips de valor.
|
|
614
|
-
*
|
|
615
|
-
* Uso:
|
|
616
|
-
* <neu-slider [value]="volume" (valueChange)="volume = $event" />
|
|
617
|
-
* <neu-slider [value]="50" [min]="0" [max]="100" [step]="5" [showValue]="true" />
|
|
618
|
-
*/
|
|
619
|
-
declare class NeuSliderComponent {
|
|
620
|
-
private static _idCounter;
|
|
621
|
-
protected readonly sliderId: string;
|
|
622
|
-
/** Valor actual / Current value */
|
|
623
|
-
value: _angular_core.InputSignal<number>;
|
|
624
|
-
/** Valor mínimo / Minimum value */
|
|
625
|
-
min: _angular_core.InputSignal<number>;
|
|
626
|
-
/** Valor máximo / Maximum value */
|
|
627
|
-
max: _angular_core.InputSignal<number>;
|
|
628
|
-
/** Paso / Step */
|
|
629
|
-
step: _angular_core.InputSignal<number>;
|
|
630
|
-
/** Etiqueta / Label */
|
|
631
|
-
label: _angular_core.InputSignal<string>;
|
|
632
|
-
/** Muestra el valor numerico / Shows the numeric value */
|
|
633
|
-
showValue: _angular_core.InputSignal<boolean>;
|
|
634
|
-
/** Muestra min/mid/max bajo la barra / Shows min/mid/max below the bar */
|
|
635
|
-
showTicks: _angular_core.InputSignal<boolean>;
|
|
636
|
-
/** Unidad a mostrar junto al valor / Unit to display next to the value */
|
|
637
|
-
unit: _angular_core.InputSignal<string>;
|
|
638
|
-
/** Deshabilitado / Disabled */
|
|
639
|
-
disabled: _angular_core.InputSignal<boolean>;
|
|
640
|
-
/** Emite al mover el slider / Emits when the slider moves */
|
|
641
|
-
valueChange: _angular_core.OutputEmitterRef<number>;
|
|
642
|
-
readonly fillPercent: _angular_core.Signal<number>;
|
|
643
|
-
onInput(event: Event): void;
|
|
644
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSliderComponent, never>;
|
|
645
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuSliderComponent, "neu-slider", never, { "value": { "alias": "value"; "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; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "showValue": { "alias": "showValue"; "required": false; "isSignal": true; }; "showTicks": { "alias": "showTicks"; "required": false; "isSignal": true; }; "unit": { "alias": "unit"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
646
|
-
}
|
|
647
|
-
|
|
648
|
-
/**
|
|
649
|
-
* NeuralUI Switch Component
|
|
650
|
-
*
|
|
651
|
-
* Toggle animado para formularios de configuración en dashboards.
|
|
652
|
-
* Usa el Electric-Blue (--neu-primary) cuando está activo.
|
|
653
|
-
*
|
|
654
|
-
* Uso:
|
|
655
|
-
* <neu-switch label="Notificaciones" [formControl]="notifsCtrl" />
|
|
656
|
-
*/
|
|
657
|
-
declare class NeuSwitchComponent implements ControlValueAccessor {
|
|
658
|
-
readonly label: _angular_core.InputSignal<string>;
|
|
659
|
-
readonly name: _angular_core.InputSignal<string>;
|
|
660
|
-
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
661
|
-
readonly _id: string;
|
|
662
|
-
protected readonly _checked: _angular_core.WritableSignal<boolean>;
|
|
663
|
-
/** Estado disabled interno — combina el input `disabled` con el CVA setDisabledState / Internal disabled state — combines the `disabled` input with CVA setDisabledState */
|
|
664
|
-
private readonly _cvaDisabled;
|
|
665
|
-
protected readonly _isDisabled: _angular_core.Signal<boolean>;
|
|
666
|
-
private _onChange;
|
|
667
|
-
private _onTouched;
|
|
668
|
-
onChange(event: Event): void;
|
|
669
|
-
onBlur(): void;
|
|
670
|
-
writeValue(val: unknown): void;
|
|
671
|
-
registerOnChange(fn: (v: boolean) => void): void;
|
|
672
|
-
registerOnTouched(fn: () => void): void;
|
|
673
|
-
setDisabledState(isDisabled: boolean): void;
|
|
674
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSwitchComponent, never>;
|
|
675
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuSwitchComponent, "neu-switch", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
676
|
-
}
|
|
677
|
-
|
|
678
|
-
/**
|
|
679
|
-
* NeuralUI Textarea Component
|
|
680
|
-
*
|
|
681
|
-
* Textarea con floating label y soporte completo para Angular Forms.
|
|
682
|
-
* Soporta auto-resize opcional.
|
|
683
|
-
*
|
|
684
|
-
* Uso:
|
|
685
|
-
* <neu-textarea label="Descripción" [formControl]="ctrl" />
|
|
686
|
-
* <neu-textarea label="Bio" [rows]="5" [autoResize]="true" />
|
|
687
|
-
*/
|
|
688
|
-
declare class NeuTextareaComponent implements ControlValueAccessor {
|
|
689
|
-
readonly label: _angular_core.InputSignal<string>;
|
|
690
|
-
readonly rows: _angular_core.InputSignal<number>;
|
|
691
|
-
readonly autoResize: _angular_core.InputSignal<boolean>;
|
|
692
|
-
/** Permite al usuario redimensionar el campo manualmente (por defecto: true) / Allows the user to manually resize the field (default: true) */
|
|
693
|
-
readonly resizable: _angular_core.InputSignal<boolean>;
|
|
694
|
-
readonly errorMessage: _angular_core.InputSignal<string>;
|
|
695
|
-
readonly hint: _angular_core.InputSignal<string>;
|
|
696
|
-
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
697
|
-
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
698
|
-
readonly required: _angular_core.InputSignal<boolean>;
|
|
699
|
-
readonly name: _angular_core.InputSignal<string>;
|
|
700
|
-
readonly maxlength: _angular_core.InputSignal<number | null>;
|
|
701
|
-
readonly _id: string;
|
|
702
|
-
protected readonly _value: _angular_core.WritableSignal<string>;
|
|
703
|
-
protected readonly _focused: _angular_core.WritableSignal<boolean>;
|
|
704
|
-
protected readonly _isDisabled: _angular_core.WritableSignal<boolean>;
|
|
705
|
-
readonly _isDisabledState: _angular_core.Signal<boolean>;
|
|
706
|
-
readonly hasValue: _angular_core.Signal<boolean>;
|
|
707
|
-
readonly hasError: _angular_core.Signal<boolean>;
|
|
708
|
-
readonly _resizeStyle: _angular_core.Signal<"none" | "vertical">;
|
|
709
|
-
private readonly _textareaRef;
|
|
710
|
-
private _onChange;
|
|
711
|
-
private _onTouched;
|
|
712
|
-
constructor();
|
|
713
|
-
onInput(event: Event): void;
|
|
714
|
-
onFocus(): void;
|
|
715
|
-
onBlur(): void;
|
|
716
|
-
writeValue(val: unknown): void;
|
|
717
|
-
registerOnChange(fn: (v: string) => void): void;
|
|
718
|
-
registerOnTouched(fn: () => void): void;
|
|
719
|
-
setDisabledState(isDisabled: boolean): void;
|
|
720
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuTextareaComponent, never>;
|
|
721
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuTextareaComponent, "neu-textarea", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "autoResize": { "alias": "autoResize"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "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; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
722
|
-
}
|
|
723
|
-
|
|
724
|
-
type NeuButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger' | 'outline';
|
|
725
|
-
type NeuButtonSize = 'sm' | 'md' | 'lg';
|
|
726
|
-
type NeuButtonIconPosition = 'left' | 'right';
|
|
727
|
-
/**
|
|
728
|
-
* NeuralUI Button Component
|
|
729
|
-
*
|
|
730
|
-
* Uso: <button neu-button variant="primary" size="md">Texto</button>
|
|
731
|
-
* Con icono: <button neu-button icon="lucideSave">Guardar</button>
|
|
732
|
-
* Solo icono: <button neu-button icon="lucideTrash2" [iconOnly]="true" />
|
|
733
|
-
*
|
|
734
|
-
* Signals: variant, size, disabled, loading, fullWidth, icon, iconPosition, iconOnly
|
|
735
|
-
* son inputs reactivos. El estado se computa automáticamente con computed().
|
|
736
|
-
*/
|
|
737
|
-
declare class NeuButtonComponent {
|
|
738
|
-
/** Variante visual del botón / Visual button variant */
|
|
739
|
-
variant: _angular_core.InputSignal<NeuButtonVariant>;
|
|
740
|
-
/** Tamaño del botón / Button size */
|
|
741
|
-
size: _angular_core.InputSignal<NeuButtonSize>;
|
|
742
|
-
/** Deshabilita el botón y bloquea la interacción / Disables the button and blocks interaction */
|
|
743
|
-
disabled: _angular_core.InputSignal<boolean>;
|
|
744
|
-
/** Muestra un spinner y deshabilita mientras se procesa / Shows a spinner and disables while processing */
|
|
745
|
-
loading: _angular_core.InputSignal<boolean>;
|
|
746
|
-
/** Ocupa el 100% del ancho de su contenedor / Takes up 100% of its container width */
|
|
747
|
-
fullWidth: _angular_core.InputSignal<boolean>;
|
|
748
|
-
/** Nombre del icono Lucide (ej: 'lucideSave', 'lucidePlus') / Lucide icon name (e.g. 'lucideSave', 'lucidePlus') */
|
|
749
|
-
icon: _angular_core.InputSignal<string>;
|
|
750
|
-
/** Posición del icono respecto al texto */
|
|
751
|
-
iconPosition: _angular_core.InputSignal<NeuButtonIconPosition>;
|
|
752
|
-
/** Modo solo-icono: aplica padding cuadrado y oculta el ng-content / Icon-only mode: applies square padding and hides ng-content */
|
|
753
|
-
iconOnly: _angular_core.InputSignal<boolean>;
|
|
754
|
-
/** Etiqueta accesible obligatoria cuando se usa iconOnly (WCAG 4.1.2) / Required accessible label when using iconOnly (WCAG 4.1.2) */
|
|
755
|
-
ariaLabel: _angular_core.InputSignal<string>;
|
|
756
|
-
/** Emite el evento de click cuando el botón está activo / Emits the click event when the button is active */
|
|
757
|
-
neuClick: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
758
|
-
/** @internal — reenvía el click nativo al output Angular / forwards the native click to the Angular output */
|
|
759
|
-
_onHostClick(event: MouseEvent): void;
|
|
760
|
-
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
761
|
-
readonly hasIcon: _angular_core.Signal<boolean>;
|
|
762
|
-
readonly iconSize: _angular_core.Signal<string>;
|
|
763
|
-
readonly hostClasses: _angular_core.Signal<{
|
|
764
|
-
[x: string]: boolean;
|
|
765
|
-
'neu-button': boolean;
|
|
766
|
-
'neu-button--loading': boolean;
|
|
767
|
-
'neu-button--disabled': boolean;
|
|
768
|
-
'neu-button--full-width': boolean;
|
|
769
|
-
'neu-button--icon-only': boolean;
|
|
770
|
-
}>;
|
|
771
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuButtonComponent, never>;
|
|
772
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuButtonComponent, "button[neu-button]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconPosition": { "alias": "iconPosition"; "required": false; "isSignal": true; }; "iconOnly": { "alias": "iconOnly"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "neuClick": "neuClick"; }, never, ["*"], true, never>;
|
|
773
|
-
}
|
|
774
|
-
|
|
775
|
-
interface NeuToggleOption<T = unknown> {
|
|
776
|
-
/** Texto visible del botón / Visible button text */
|
|
777
|
-
label: string;
|
|
778
|
-
/** Valor asociado a esta opción / Value associated with this option */
|
|
779
|
-
value: T;
|
|
780
|
-
/** Nombre de icono Lucide (opcional) / Lucide icon name (optional) */
|
|
781
|
-
icon?: string;
|
|
782
|
-
/** Deshabilita solo esta opción / Disables this option only */
|
|
783
|
-
disabled?: boolean;
|
|
784
|
-
}
|
|
785
|
-
/**
|
|
786
|
-
* NeuralUI ToggleButtonGroup Component
|
|
787
|
-
*
|
|
788
|
-
* Grupo de botones de selección (single o múltiple). / Selection button group (single or multiple).
|
|
789
|
-
* Equivalente técnicamente superior al SelectButton de PrimeNG. / Technically superior equivalent to PrimeNG's SelectButton.
|
|
790
|
-
*
|
|
791
|
-
* Uso (single):
|
|
792
|
-
* <neu-toggle-button-group [options]="opts" [(ngModel)]="value" />
|
|
793
|
-
*
|
|
794
|
-
* Uso (múltiple):
|
|
795
|
-
* <neu-toggle-button-group [options]="opts" [multiple]="true" [(ngModel)]="values" />
|
|
796
|
-
*/
|
|
797
|
-
declare class NeuToggleButtonGroupComponent<T = unknown> implements ControlValueAccessor {
|
|
798
|
-
/** Lista de opciones del grupo / Group option list */
|
|
799
|
-
options: _angular_core.InputSignal<NeuToggleOption<T>[]>;
|
|
800
|
-
/**
|
|
801
|
-
* Permite seleccionar múltiples opciones.
|
|
802
|
-
* - false (por defecto): valor es `T | null`
|
|
803
|
-
* - true: valor es `T[]`
|
|
804
|
-
*/
|
|
805
|
-
multiple: _angular_core.InputSignal<boolean>;
|
|
806
|
-
/** Tamaño visual / Visual size */
|
|
807
|
-
size: _angular_core.InputSignal<NeuButtonSize>;
|
|
808
|
-
/** Deshabilita todo el grupo / Disables the entire group */
|
|
809
|
-
disabled: _angular_core.InputSignal<boolean>;
|
|
810
|
-
/** Emite el nuevo valor al cambiar (útil sin formControl) / Emits the new value on change (useful without formControl) */
|
|
811
|
-
neuChange: _angular_core.OutputEmitterRef<T | T[] | null>;
|
|
812
|
-
readonly _value: _angular_core.WritableSignal<T | T[] | null>;
|
|
813
|
-
readonly _isDisabled: _angular_core.WritableSignal<boolean>;
|
|
814
|
-
readonly groupClasses: _angular_core.Signal<{
|
|
815
|
-
[x: string]: boolean;
|
|
816
|
-
'neu-toggle-group': boolean;
|
|
817
|
-
'neu-toggle-group--disabled': boolean;
|
|
818
|
-
}>;
|
|
819
|
-
isSelected(value: T): boolean;
|
|
820
|
-
toggle(opt: NeuToggleOption<T>): void;
|
|
821
|
-
onBlur(): void;
|
|
822
|
-
private _onChange;
|
|
823
|
-
private _onTouched;
|
|
824
|
-
writeValue(val: T | T[] | null): void;
|
|
825
|
-
registerOnChange(fn: (v: unknown) => void): void;
|
|
826
|
-
registerOnTouched(fn: () => void): void;
|
|
827
|
-
setDisabledState(isDisabled: boolean): void;
|
|
828
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuToggleButtonGroupComponent<any>, never>;
|
|
829
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuToggleButtonGroupComponent<any>, "neu-toggle-button-group", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "neuChange": "neuChange"; }, never, never, true, never>;
|
|
830
|
-
}
|
|
831
|
-
|
|
832
|
-
interface NeuBreadcrumbItem {
|
|
833
|
-
/** Etiqueta visible / Visible label */
|
|
834
|
-
label: string;
|
|
835
|
-
/** Ruta interna (RouterLink) / Internal route (RouterLink) */
|
|
836
|
-
route?: string | string[];
|
|
837
|
-
/** URL externa / External URL */
|
|
838
|
-
url?: string;
|
|
839
|
-
/** Icono Lucide opcional / Optional Lucide icon */
|
|
840
|
-
icon?: string;
|
|
841
|
-
}
|
|
842
|
-
/**
|
|
843
|
-
* NeuralUI Breadcrumb Component
|
|
844
|
-
*
|
|
845
|
-
* Ruta de navegación jerárquica. El último elemento se muestra
|
|
846
|
-
* como activo (sin enlace).
|
|
847
|
-
*
|
|
848
|
-
* Uso:
|
|
849
|
-
* <neu-breadcrumb [items]="breadcrumbs" />
|
|
850
|
-
*
|
|
851
|
-
* items = [
|
|
852
|
-
* { label: 'Inicio', route: '/' },
|
|
853
|
-
* { label: 'Componentes', route: '/components' },
|
|
854
|
-
* { label: 'Breadcrumb' },
|
|
855
|
-
* ];
|
|
856
|
-
*/
|
|
857
|
-
declare class NeuBreadcrumbComponent {
|
|
858
|
-
/** Lista de ítems de navegación / Navigation item list */
|
|
859
|
-
items: _angular_core.InputSignal<NeuBreadcrumbItem[]>;
|
|
860
|
-
/** Separador personalizable / Customizable separator */
|
|
861
|
-
separator: _angular_core.InputSignal<string>;
|
|
862
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuBreadcrumbComponent, never>;
|
|
863
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuBreadcrumbComponent, "neu-breadcrumb", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
864
|
-
}
|
|
865
|
-
|
|
866
|
-
/**
|
|
867
|
-
* Ítem de navegación con soporte para 3 niveles de profundidad.
|
|
868
|
-
*
|
|
869
|
-
* Destino del enlace — usa UNO de los dos:
|
|
870
|
-
* - `route` → navegación interna Angular (RouterLink)
|
|
871
|
-
* - `href` → URL externa, se abre en nueva pestaña con rel="noopener noreferrer"
|
|
872
|
-
*
|
|
873
|
-
* Los ítems con `children` actúan como grupo acordeón (sin destino propio).
|
|
874
|
-
* Máximo 3 niveles: raíz → hijos → nietos.
|
|
875
|
-
* Los nietos no pueden tener `children`.
|
|
876
|
-
*/
|
|
877
|
-
interface NeuNavItem {
|
|
878
|
-
id: string;
|
|
879
|
-
label: string;
|
|
880
|
-
icon: string;
|
|
881
|
-
/** Ruta Angular interna (RouterLink). Excluye `href`. / Internal Angular route (RouterLink). Excludes `href`. */
|
|
882
|
-
route?: string;
|
|
883
|
-
/** URL externa. Se abre en nueva pestaña. Excluye `route`. / External URL. Opens in a new tab. Excludes `route`. */
|
|
884
|
-
href?: string;
|
|
885
|
-
/** Ítems hijo (nivel 2). Cada hijo puede tener sus propios `children` (nivel 3). / Child items (level 2). Each child can have its own `children` (level 3). */
|
|
886
|
-
children?: NeuNavItem[];
|
|
887
|
-
badge?: string;
|
|
888
|
-
badgeVariant?: 'default' | 'success' | 'warning' | 'danger' | 'info';
|
|
889
|
-
disabled?: boolean;
|
|
890
|
-
}
|
|
891
|
-
declare class NeuNavComponent {
|
|
892
|
-
private readonly router;
|
|
893
|
-
private readonly currentUrl;
|
|
894
|
-
/** Lista de ítems de navegación / Navigation item list */
|
|
895
|
-
items: _angular_core.InputSignal<NeuNavItem[]>;
|
|
896
|
-
/** Estado inicial colapsado / Initial collapsed state */
|
|
897
|
-
collapsed: _angular_core.InputSignal<boolean>;
|
|
898
|
-
/** Muestra el botón de colapsar/expandir / Shows the collapse/expand button */
|
|
899
|
-
collapsible: _angular_core.InputSignal<boolean>;
|
|
900
|
-
/** Etiqueta accesible del <nav> / Accessible label for the <nav> */
|
|
901
|
-
ariaLabel: _angular_core.InputSignal<string>;
|
|
902
|
-
/** Aria-label del botón cuando el nav está colapsado / Aria-label for the button when the nav is collapsed */
|
|
903
|
-
expandLabel: _angular_core.InputSignal<string>;
|
|
904
|
-
/** Aria-label del botón cuando el nav está expandido / Aria-label for the button when the nav is expanded */
|
|
905
|
-
collapseLabel: _angular_core.InputSignal<string>;
|
|
906
|
-
/** Emite cuando cambia el estado colapsado / Emits when the collapsed state changes */
|
|
907
|
-
collapsedChange: _angular_core.OutputEmitterRef<boolean>;
|
|
908
|
-
readonly isCollapsed: _angular_core.WritableSignal<boolean>;
|
|
909
|
-
private readonly openGroups;
|
|
910
|
-
readonly flyoutState: _angular_core.WritableSignal<{
|
|
911
|
-
item: NeuNavItem;
|
|
912
|
-
top: number;
|
|
913
|
-
left: number;
|
|
914
|
-
} | null>;
|
|
915
|
-
private _flyoutTimer;
|
|
916
|
-
constructor();
|
|
917
|
-
toggleCollapse(): void;
|
|
918
|
-
toggleGroup(id: string): void;
|
|
919
|
-
isGroupOpen(id: string): boolean;
|
|
920
|
-
isCurrentRoute(route: string): boolean;
|
|
921
|
-
isGroupActive(item: NeuNavItem): boolean;
|
|
922
|
-
onGroupMouseEnter(item: NeuNavItem, event: MouseEvent): void;
|
|
923
|
-
onGroupMouseLeave(): void;
|
|
924
|
-
onFlyoutMouseEnter(): void;
|
|
925
|
-
onFlyoutMouseLeave(): void;
|
|
926
|
-
private _openActiveGroup;
|
|
927
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuNavComponent, never>;
|
|
928
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuNavComponent, "neu-nav", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "expandLabel": { "alias": "expandLabel"; "required": false; "isSignal": true; }; "collapseLabel": { "alias": "collapseLabel"; "required": false; "isSignal": true; }; }, { "collapsedChange": "collapsedChange"; }, never, ["[neu-nav-brand-icon]", "[neu-nav-brand]", "[neu-nav-footer]"], true, never>;
|
|
929
|
-
}
|
|
930
|
-
|
|
931
|
-
/**
|
|
932
|
-
* NeuralUI Pagination Component
|
|
933
|
-
*
|
|
934
|
-
* Paginación accesible con navegación por páginas, primera/última y ellipsis.
|
|
935
|
-
*
|
|
936
|
-
* Uso:
|
|
937
|
-
* <neu-pagination [total]="200" [pageSize]="10" [page]="currentPage"
|
|
938
|
-
* (pageChange)="currentPage = $event" />
|
|
939
|
-
*/
|
|
940
|
-
declare class NeuPaginationComponent {
|
|
941
|
-
/** Página actual (1-indexed) / Current page (1-indexed) */
|
|
942
|
-
page: _angular_core.InputSignal<number>;
|
|
943
|
-
/** Total de ítems / Total items */
|
|
944
|
-
total: _angular_core.InputSignal<number>;
|
|
945
|
-
/** Ítems por página / Items per page */
|
|
946
|
-
pageSize: _angular_core.InputSignal<number>;
|
|
947
|
-
/** Número máximo de botones de página visibles (sin contar anterior/siguiente) / Maximum number of visible page buttons (not counting prev/next) */
|
|
948
|
-
maxVisible: _angular_core.InputSignal<number>;
|
|
949
|
-
/** Emite la nueva página al hacer click / Emits the new page on click */
|
|
950
|
-
pageChange: _angular_core.OutputEmitterRef<number>;
|
|
951
|
-
readonly totalPages: _angular_core.Signal<number>;
|
|
952
|
-
readonly pages: _angular_core.Signal<number[]>;
|
|
953
|
-
go(page: number): void;
|
|
954
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuPaginationComponent, never>;
|
|
955
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuPaginationComponent, "neu-pagination", never, { "page": { "alias": "page"; "required": false; "isSignal": true; }; "total": { "alias": "total"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "maxVisible": { "alias": "maxVisible"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; }, never, never, true, never>;
|
|
956
|
-
}
|
|
957
|
-
|
|
958
|
-
/**
|
|
959
|
-
* NeuralUI Sidebar Component
|
|
960
|
-
*
|
|
961
|
-
* El estado abierto/cerrado se gestiona automáticamente desde la URL / The open/closed state is automatically managed from the URL
|
|
962
|
-
* via NeuUrlStateService (?menu=open por defecto). / via NeuUrlStateService (?menu=open by default).
|
|
963
|
-
*
|
|
964
|
-
* Modos:
|
|
965
|
-
* - overlay (default): panel flotante sobre el contenido con backdrop / floating panel above content with backdrop
|
|
966
|
-
* - persistent: sidebar fijo integrado en el layout (desktop) / fixed sidebar integrated in the layout (desktop)
|
|
967
|
-
*
|
|
968
|
-
* Uso:
|
|
969
|
-
* <neu-sidebar urlParam="menu" [persistent]="isDesktop()">
|
|
970
|
-
* <span neu-sidebar-header>Mi App</span>
|
|
971
|
-
* <nav>...</nav>
|
|
972
|
-
* <div neu-sidebar-footer>...</div>
|
|
973
|
-
* </neu-sidebar>
|
|
974
|
-
*
|
|
975
|
-
* Abrir desde cualquier parte: / Open from anywhere:
|
|
976
|
-
* inject(NeuUrlStateService).setParam('menu', 'open', false);
|
|
977
|
-
*/
|
|
978
|
-
declare class NeuSidebarComponent {
|
|
979
|
-
private readonly urlState;
|
|
980
|
-
/** Posición del sidebar: izquierda o derecha de la pantalla / Sidebar position: left or right of the screen */
|
|
981
|
-
side: _angular_core.InputSignal<"left" | "right">;
|
|
982
|
-
/** QueryParam que controla el estado. Default: 'menu' (?menu=open) / QueryParam that controls the state. Default: 'menu' (?menu=open) */
|
|
983
|
-
urlParam: _angular_core.InputSignal<string>;
|
|
984
|
-
/**
|
|
985
|
-
* Modo persistente: el sidebar está siempre visible como parte del layout.
|
|
986
|
-
* Usar en desktop (≥768px). El overlay y el toggle por URL no aplican.
|
|
987
|
-
*/
|
|
988
|
-
persistent: _angular_core.InputSignal<boolean>;
|
|
989
|
-
/**
|
|
990
|
-
* Ocultar la cabecera del sidebar. Útil cuando el header ya está en el layout
|
|
991
|
-
* principal y el sidebar persistente no necesita su propio header.
|
|
992
|
-
*/
|
|
993
|
-
hideHeader: _angular_core.InputSignal<boolean>;
|
|
994
|
-
/** Etiqueta accesible para el <aside> / Accessible label for the <aside> */
|
|
995
|
-
ariaLabel: _angular_core.InputSignal<string>;
|
|
996
|
-
/** Etiqueta accesible para el botón cerrar / Accessible label for the close button */
|
|
997
|
-
closeLabel: _angular_core.InputSignal<string>;
|
|
998
|
-
/** Emite cuando el usuario cierra el sidebar (overlay click o botón) / Emits when the user closes the sidebar (overlay click or button) */
|
|
999
|
-
closeRequested: _angular_core.OutputEmitterRef<void>;
|
|
1000
|
-
/** Signal reactivo: true si el sidebar debe mostrarse / Reactive signal: true if the sidebar should be shown */
|
|
1001
|
-
readonly isOpen: _angular_core.Signal<boolean>;
|
|
1002
|
-
/** Abre el sidebar — añade ?{urlParam}=open a la URL / Opens the sidebar — adds ?{urlParam}=open to the URL */
|
|
1003
|
-
open(replaceUrl?: boolean): void;
|
|
1004
|
-
/** Cierra el sidebar — elimina el parámetro de la URL / Closes the sidebar — removes the URL parameter */
|
|
1005
|
-
close(): void;
|
|
1006
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSidebarComponent, never>;
|
|
1007
|
-
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; }; }, { "closeRequested": "closeRequested"; }, never, ["[neu-sidebar-header]", "*", "[neu-sidebar-footer]"], true, never>;
|
|
1008
|
-
}
|
|
1009
|
-
|
|
1010
|
-
interface NeuStepperStep {
|
|
1011
|
-
/** Etiqueta del paso / Step label */
|
|
1012
|
-
label: string;
|
|
1013
|
-
/** Descripción corta opcional / Optional short description */
|
|
1014
|
-
description?: string;
|
|
1015
|
-
/** Marca el paso como completado externamente / Marks the step as completed externally */
|
|
1016
|
-
completed?: boolean;
|
|
1017
|
-
/** Desactiva el paso / Disables the step */
|
|
1018
|
-
disabled?: boolean;
|
|
1019
|
-
}
|
|
1020
|
-
/**
|
|
1021
|
-
* NeuralUI Stepper Component
|
|
1022
|
-
*
|
|
1023
|
-
* Wizard paso a paso con estado de completado, lineal u opcional.
|
|
1024
|
-
* Expone métodos next() / prev() y emite stepChange.
|
|
1025
|
-
*
|
|
1026
|
-
* Uso:
|
|
1027
|
-
* <neu-stepper [steps]="steps" [activeStep]="step" (stepChange)="step = $event">
|
|
1028
|
-
* <ng-template neuStepContent>Contenido paso 1</ng-template>
|
|
1029
|
-
* <ng-template neuStepContent>Contenido paso 2</ng-template>
|
|
1030
|
-
* </neu-stepper>
|
|
1031
|
-
*/
|
|
1032
|
-
declare class NeuStepperComponent {
|
|
1033
|
-
/** Pasos del wizard / Wizard steps */
|
|
1034
|
-
steps: _angular_core.InputSignal<NeuStepperStep[]>;
|
|
1035
|
-
/** Índice del paso activo (0-based) / Active step index (0-based) */
|
|
1036
|
-
activeStep: _angular_core.InputSignal<number>;
|
|
1037
|
-
/** Si true, solo permite ir hacia adelante secuencialmente / If true, only allows moving forward sequentially */
|
|
1038
|
-
linear: _angular_core.InputSignal<boolean>;
|
|
1039
|
-
/** Emite el nuevo índice al cambiar / Emits the new index on change */
|
|
1040
|
-
stepChange: _angular_core.OutputEmitterRef<number>;
|
|
1041
|
-
/** Set de pasos completados / Set of completed steps */
|
|
1042
|
-
private readonly _completed;
|
|
1043
|
-
readonly isCompleted: (i: number) => boolean;
|
|
1044
|
-
goTo(i: number): void;
|
|
1045
|
-
/** Marca el paso actual como completado y avanza al siguiente / Marks the current step as completed and advances to the next */
|
|
1046
|
-
next(): void;
|
|
1047
|
-
prev(): void;
|
|
1048
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuStepperComponent, never>;
|
|
1049
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuStepperComponent, "neu-stepper", never, { "steps": { "alias": "steps"; "required": false; "isSignal": true; }; "activeStep": { "alias": "activeStep"; "required": false; "isSignal": true; }; "linear": { "alias": "linear"; "required": false; "isSignal": true; }; }, { "stepChange": "stepChange"; }, never, ["*"], true, never>;
|
|
1050
|
-
}
|
|
1051
|
-
|
|
1052
|
-
declare const NEU_TABS_CONTEXT: InjectionToken<NeuTabsComponent>;
|
|
1053
|
-
interface NeuTab {
|
|
1054
|
-
/** ID único de la pestaña — se usa como valor en la URL / Unique tab ID — used as the URL value */
|
|
1055
|
-
id: string;
|
|
1056
|
-
/** Etiqueta visible / Visible label */
|
|
1057
|
-
label: string;
|
|
1058
|
-
/** Badge opcional junto al label / Optional badge next to the label */
|
|
1059
|
-
badge?: string;
|
|
1060
|
-
/** Deshabilita la pestaña sin ocultarla / Disables the tab without hiding it */
|
|
1061
|
-
disabled?: boolean;
|
|
1062
|
-
}
|
|
1063
|
-
/**
|
|
1064
|
-
* NeuralUI Tabs Component
|
|
1065
|
-
*
|
|
1066
|
-
* Sistema de pestañas con estado sincronizado a la URL via NeuUrlStateService. / Tab system with state synchronized to the URL via NeuUrlStateService.
|
|
1067
|
-
* El panel activo se determina por ?{tabParam}={tabId}. / The active panel is determined by ?{tabParam}={tabId}.
|
|
1068
|
-
*
|
|
1069
|
-
* Uso:
|
|
1070
|
-
* <neu-tabs [tabs]="tabs" tabParam="tab">
|
|
1071
|
-
* <neu-tab-panel tabId="preview">...</neu-tab-panel>
|
|
1072
|
-
* <neu-tab-panel tabId="api">...</neu-tab-panel>
|
|
1073
|
-
* </neu-tabs>
|
|
1074
|
-
*/
|
|
1075
|
-
declare class NeuTabsComponent implements AfterViewInit, OnDestroy {
|
|
1076
|
-
private readonly urlState;
|
|
1077
|
-
private readonly elRef;
|
|
1078
|
-
private resizeObserver?;
|
|
1079
|
-
constructor();
|
|
1080
|
-
/** Definición de pestañas / Tab definitions */
|
|
1081
|
-
tabs: _angular_core.InputSignal<NeuTab[]>;
|
|
1082
|
-
/** QueryParam que almacena la pestaña activa / QueryParam that stores the active tab */
|
|
1083
|
-
tabParam: _angular_core.InputSignal<string>;
|
|
1084
|
-
/** Si true, elimina el padding interno de los paneles / If true, removes the internal padding from panels */
|
|
1085
|
-
flush: _angular_core.InputSignal<boolean>;
|
|
1086
|
-
/** Etiqueta accesible del rol tablist / Accessible label for the tablist role */
|
|
1087
|
-
ariaLabel: _angular_core.InputSignal<string>;
|
|
1088
|
-
/** Emite al cambiar de pestaña / Emits when the tab changes */
|
|
1089
|
-
tabChange: _angular_core.OutputEmitterRef<string>;
|
|
1090
|
-
/** ID de la pestaña activa (de la URL o la primera disponible) / Active tab ID (from the URL or the first available) */
|
|
1091
|
-
readonly activeTabId: _angular_core.Signal<string>;
|
|
1092
|
-
/** Posición del indicador calculada mediante medición DOM / Indicator position calculated via DOM measurement */
|
|
1093
|
-
private readonly _indicatorLeft;
|
|
1094
|
-
private readonly _indicatorWidth;
|
|
1095
|
-
readonly indicatorStyle: _angular_core.Signal<string>;
|
|
1096
|
-
ngAfterViewInit(): void;
|
|
1097
|
-
ngOnDestroy(): void;
|
|
1098
|
-
private _updateIndicator;
|
|
1099
|
-
selectTab(tab: NeuTab): void;
|
|
1100
|
-
/** Mueve el foco entre tabs con flechas (roving tabindex — WAI-ARIA Tabs Pattern) / Moves focus between tabs with arrows (roving tabindex — WAI-ARIA Tabs Pattern) */
|
|
1101
|
-
focusTab(event: Event, dir: 1 | -1 | 'first' | 'last'): void;
|
|
1102
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuTabsComponent, never>;
|
|
1103
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuTabsComponent, "neu-tabs", never, { "tabs": { "alias": "tabs"; "required": false; "isSignal": true; }; "tabParam": { "alias": "tabParam"; "required": false; "isSignal": true; }; "flush": { "alias": "flush"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "tabChange": "tabChange"; }, never, ["*"], true, never>;
|
|
1104
|
-
}
|
|
1105
|
-
/**
|
|
1106
|
-
* NeuralUI Tab Panel
|
|
1107
|
-
*
|
|
1108
|
-
* Panel de contenido asociado a una pestaña de NeuTabsComponent. / Content panel associated with a NeuTabsComponent tab.
|
|
1109
|
-
* Solo se renderiza (no oculta con CSS) cuando la pestaña está activa. / Only rendered (not hidden with CSS) when the tab is active.
|
|
1110
|
-
*
|
|
1111
|
-
* Uso: hijo directo de <neu-tabs>
|
|
1112
|
-
* <neu-tab-panel tabId="api">...</neu-tab-panel>
|
|
1113
|
-
*/
|
|
1114
|
-
declare class NeuTabPanelComponent {
|
|
1115
|
-
private readonly tabs;
|
|
1116
|
-
/** ID que debe coincidir con NeuTab.id del padre / ID that must match the parent NeuTab.id */
|
|
1117
|
-
tabId: _angular_core.InputSignal<string>;
|
|
1118
|
-
readonly isActive: _angular_core.Signal<boolean>;
|
|
1119
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuTabPanelComponent, never>;
|
|
1120
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuTabPanelComponent, "neu-tab-panel", never, { "tabId": { "alias": "tabId"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
1121
|
-
}
|
|
1122
|
-
|
|
1123
|
-
interface NeuAccordionItem {
|
|
1124
|
-
/** ID único del panel / Unique panel ID */
|
|
1125
|
-
id: string;
|
|
1126
|
-
/** Título del encabezado / Header title */
|
|
1127
|
-
title: string;
|
|
1128
|
-
/** Contenido del cuerpo (HTML o texto plano) / Body content (HTML or plain text) */
|
|
1129
|
-
content: string;
|
|
1130
|
-
/** Inicia expandido / Starts expanded */
|
|
1131
|
-
expanded?: boolean;
|
|
1132
|
-
/** Deshabilita este panel / Disables this panel */
|
|
1133
|
-
disabled?: boolean;
|
|
1134
|
-
}
|
|
1135
|
-
/**
|
|
1136
|
-
* NeuralUI Accordion Component
|
|
1137
|
-
*
|
|
1138
|
-
* Paneles expandibles / colapsables con animación suave.
|
|
1139
|
-
* Soporta modo múltiple (varios abiertos a la vez) o exclusivo. / Supports multiple (several open at once) or exclusive mode.
|
|
1140
|
-
*
|
|
1141
|
-
* Uso:
|
|
1142
|
-
* <neu-accordion [items]="items" />
|
|
1143
|
-
* <neu-accordion [items]="items" [multiple]="true" />
|
|
1144
|
-
*/
|
|
1145
|
-
declare class NeuAccordionComponent {
|
|
1146
|
-
private readonly _sanitizer;
|
|
1147
|
-
/** Lista de paneles / Panel list */
|
|
1148
|
-
items: _angular_core.InputSignal<NeuAccordionItem[]>;
|
|
1149
|
-
/** Permite varios paneles abiertos a la vez / Allows multiple panels open at once */
|
|
1150
|
-
multiple: _angular_core.InputSignal<boolean>;
|
|
1151
|
-
/** Borde exterior alrededor del accordion / Outer border around the accordion */
|
|
1152
|
-
bordered: _angular_core.InputSignal<boolean>;
|
|
1153
|
-
/** Emite el id del panel al abrirse/cerrarse / Emits the panel id on open/close */
|
|
1154
|
-
panelToggle: _angular_core.OutputEmitterRef<{
|
|
1155
|
-
id: string;
|
|
1156
|
-
expanded: boolean;
|
|
1157
|
-
}>;
|
|
1158
|
-
/**
|
|
1159
|
-
* Set de IDs actualmente expandidos.
|
|
1160
|
-
* Se inicializa desde los ítems con `expanded: true` en el primer render.
|
|
1161
|
-
* Después se vuelve un signal mutable independiente (no se resetea al cambiar items).
|
|
1162
|
-
*/
|
|
1163
|
-
private _expandedInit;
|
|
1164
|
-
private readonly _expanded;
|
|
1165
|
-
constructor();
|
|
1166
|
-
readonly isExpanded: (id: string) => boolean;
|
|
1167
|
-
sanitize(html: string): SafeHtml;
|
|
1168
|
-
toggle(id: string): void;
|
|
1169
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuAccordionComponent, never>;
|
|
1170
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuAccordionComponent, "neu-accordion", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; }, { "panelToggle": "panelToggle"; }, never, never, true, never>;
|
|
1171
|
-
}
|
|
1172
|
-
|
|
1173
|
-
type NeuCardPadding = 'none' | 'sm' | 'md' | 'lg';
|
|
1174
|
-
/**
|
|
1175
|
-
* NeuralUI Card Component
|
|
1176
|
-
*
|
|
1177
|
-
* Contenedor con sombras y bordes Neural. Soporta header, body y footer
|
|
1178
|
-
* via content projection.
|
|
1179
|
-
*
|
|
1180
|
-
* Uso:
|
|
1181
|
-
* <neu-card>
|
|
1182
|
-
* <div neu-card-header>Título</div>
|
|
1183
|
-
* <p>Contenido</p>
|
|
1184
|
-
* <div neu-card-footer>Acciones</div>
|
|
1185
|
-
* </neu-card>
|
|
1186
|
-
*/
|
|
1187
|
-
declare class NeuCardComponent {
|
|
1188
|
-
/** Espaciado interior del cuerpo / Inner body padding */
|
|
1189
|
-
padding: _angular_core.InputSignal<NeuCardPadding>;
|
|
1190
|
-
/** Efecto hover con elevación de sombra / Hover effect with shadow elevation */
|
|
1191
|
-
hoverable: _angular_core.InputSignal<boolean>;
|
|
1192
|
-
/** Borde con acento de color primario / Border with primary color accent */
|
|
1193
|
-
bordered: _angular_core.InputSignal<boolean>;
|
|
1194
|
-
/** Card compacta sin bordes ni sombras / Compact card without borders or shadows */
|
|
1195
|
-
flat: _angular_core.InputSignal<boolean>;
|
|
1196
|
-
readonly hostClasses: _angular_core.Signal<{
|
|
1197
|
-
'neu-card': boolean;
|
|
1198
|
-
'neu-card--hoverable': boolean;
|
|
1199
|
-
'neu-card--bordered': boolean;
|
|
1200
|
-
'neu-card--flat': boolean;
|
|
1201
|
-
}>;
|
|
1202
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuCardComponent, never>;
|
|
1203
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuCardComponent, "neu-card", never, { "padding": { "alias": "padding"; "required": false; "isSignal": true; }; "hoverable": { "alias": "hoverable"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "flat": { "alias": "flat"; "required": false; "isSignal": true; }; }, {}, never, ["[neu-card-header]", "*", "[neu-card-footer]"], true, never>;
|
|
1204
|
-
}
|
|
1205
|
-
|
|
1206
|
-
/**
|
|
1207
|
-
* NeuralUI Divider
|
|
1208
|
-
*
|
|
1209
|
-
* Separador visual para secciones de contenido.
|
|
1210
|
-
*
|
|
1211
|
-
* Uso:
|
|
1212
|
-
* <neu-divider />
|
|
1213
|
-
* <neu-divider label="O continúa con" />
|
|
1214
|
-
* <neu-divider orientation="vertical" />
|
|
1215
|
-
*/
|
|
1216
|
-
declare class NeuDividerComponent {
|
|
1217
|
-
label: _angular_core.InputSignal<string>;
|
|
1218
|
-
orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
1219
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuDividerComponent, never>;
|
|
1220
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuDividerComponent, "neu-divider", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1221
|
-
}
|
|
1222
|
-
|
|
1223
|
-
type NeuDialogSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
1224
|
-
/** Datos que se inyectan en el componente del diálogo / Data injected into the dialog component */
|
|
1225
|
-
interface NeuDialogData<T = unknown> {
|
|
1226
|
-
title?: string;
|
|
1227
|
-
data?: T;
|
|
1228
|
-
}
|
|
1229
|
-
declare class NeuDialogService {
|
|
1230
|
-
private readonly dialog;
|
|
1231
|
-
open<T = unknown, R = unknown>(component: Type<unknown>, config?: {
|
|
1232
|
-
title?: string;
|
|
1233
|
-
data?: T;
|
|
1234
|
-
size?: NeuDialogSize;
|
|
1235
|
-
disableClose?: boolean;
|
|
1236
|
-
}): DialogRef<R>;
|
|
1237
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuDialogService, never>;
|
|
1238
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<NeuDialogService>;
|
|
1239
|
-
}
|
|
1240
|
-
/**
|
|
1241
|
-
* NeuDialogComponent — Diálogo accesible con header, body y footer. / Accessible dialog with header, body and footer.
|
|
1242
|
-
* Úsalo directamente como componente declarativo pasando `open` como signal. / Use it directly as a declarative component passing `open` as a signal.
|
|
1243
|
-
*
|
|
1244
|
-
* Para uso programático, utiliza NeuDialogService.open().
|
|
1245
|
-
*
|
|
1246
|
-
* Uso declarativo:
|
|
1247
|
-
* <neu-dialog [open]="isOpen()" title="Editar usuario" (closed)="isOpen.set(false)">
|
|
1248
|
-
* <p>Contenido del diálogo</p>
|
|
1249
|
-
* <div neu-dialog-footer>
|
|
1250
|
-
* <neu-button (click)="save()">Guardar</neu-button>
|
|
1251
|
-
* </div>
|
|
1252
|
-
* </neu-dialog>
|
|
1253
|
-
*/
|
|
1254
|
-
declare class NeuDialogComponent {
|
|
1255
|
-
/** Controla la visibilidad del diálogo. / Controls dialog visibility. */
|
|
1256
|
-
open: _angular_core.InputSignal<boolean>;
|
|
1257
|
-
/** Título que aparece en el header. / Title shown in the header. */
|
|
1258
|
-
title: _angular_core.InputSignal<string>;
|
|
1259
|
-
/** Tamaño del panel: sm | md | lg | xl | full. / Panel size: sm | md | lg | xl | full. */
|
|
1260
|
-
size: _angular_core.InputSignal<NeuDialogSize>;
|
|
1261
|
-
/** Si es true, el backdrop y el botón cerrar no funcionan. / If true, the backdrop and close button do not work. */
|
|
1262
|
-
disableClose: _angular_core.InputSignal<boolean>;
|
|
1263
|
-
/** Emite cuando el usuario cierra el diálogo. / Emits when the user closes the dialog. */
|
|
1264
|
-
closed: _angular_core.OutputEmitterRef<void>;
|
|
1265
|
-
/** @internal — ID único para aria-labelledby / Unique ID for aria-labelledby */
|
|
1266
|
-
readonly _uid: string;
|
|
1267
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuDialogComponent, never>;
|
|
1268
|
-
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>;
|
|
1269
|
-
}
|
|
1270
|
-
|
|
1271
|
-
/**
|
|
1272
|
-
* Directiva para definir el template de expansión de fila en NeuTable.
|
|
1273
|
-
*
|
|
1274
|
-
* Uso:
|
|
1275
|
-
* ```html
|
|
1276
|
-
* <neu-table [expandable]="true" [columns]="cols" [data]="rows">
|
|
1277
|
-
* <ng-template neuTableExpand let-row>
|
|
1278
|
-
* <div>{{ row.details }}</div>
|
|
1279
|
-
* </ng-template>
|
|
1280
|
-
* </neu-table>
|
|
1281
|
-
* ```
|
|
1282
|
-
*/
|
|
1283
|
-
declare class NeuTableExpandDirective {
|
|
1284
|
-
readonly templateRef: TemplateRef<{
|
|
1285
|
-
$implicit: Record<string, unknown>;
|
|
1286
|
-
}>;
|
|
1287
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuTableExpandDirective, never>;
|
|
1288
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NeuTableExpandDirective, "ng-template[neuTableExpand]", never, {}, {}, never, never, true, never>;
|
|
1289
|
-
}
|
|
1290
|
-
|
|
1291
|
-
type NeuTableBadgeVariant = 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'default';
|
|
1292
|
-
interface NeuTableBadgeConfig {
|
|
1293
|
-
/** Etiqueta a mostrar (si omit, usa el valor bruto) / Label to display (if omitted, uses the raw value) */
|
|
1294
|
-
label?: string;
|
|
1295
|
-
variant: NeuTableBadgeVariant;
|
|
1296
|
-
}
|
|
1297
|
-
interface NeuTableColumn<T = Record<string, unknown>> {
|
|
1298
|
-
/** Clave del campo en el objeto de datos / Field key in the data object */
|
|
1299
|
-
key: string;
|
|
1300
|
-
/** Texto del encabezado de columna / Column header text */
|
|
1301
|
-
header: string;
|
|
1302
|
-
/** Ancho fijo (CSS: '120px', '20%', etc.) / Fixed width (CSS: '120px', '20%', etc.) */
|
|
1303
|
-
width?: string;
|
|
1304
|
-
/** Alineación del contenido / Content alignment */
|
|
1305
|
-
align?: 'left' | 'center' | 'right';
|
|
1306
|
-
/** Renderer personalizado: recibe la fila completa y devuelve texto / Custom renderer: receives the full row and returns text */
|
|
1307
|
-
cell?: (row: T) => string;
|
|
1308
|
-
/** Clases CSS adicionales para las celdas de esta columna / Additional CSS classes for cells in this column */
|
|
1309
|
-
cellClass?: string;
|
|
1310
|
-
/** Esta columna es ordenable (requiere [sortable]=true en la tabla) / This column is sortable (requires [sortable]=true on the table) */
|
|
1311
|
-
sortable?: boolean;
|
|
1312
|
-
/**
|
|
1313
|
-
* Tipo de renderizado de la celda.
|
|
1314
|
-
* - `'text'` (default): texto plano
|
|
1315
|
-
* - `'badge'`: chip de color usando `badgeMap`
|
|
1316
|
-
*/
|
|
1317
|
-
type?: 'text' | 'badge';
|
|
1318
|
-
/**
|
|
1319
|
-
* Mapa valor → configuración de badge. Requiere `type: 'badge'`.
|
|
1320
|
-
* Ejemplo: `{ active: { label: 'Activo', variant: 'success' } }`
|
|
1321
|
-
*/
|
|
1322
|
-
badgeMap?: Record<string, NeuTableBadgeConfig>;
|
|
1323
|
-
/**
|
|
1324
|
-
* Template personalizado para la cabecera de esta columna.
|
|
1325
|
-
* Contexto de la plantilla: `{ $implicit: col }`.
|
|
1326
|
-
*
|
|
1327
|
-
* Ejemplo:
|
|
1328
|
-
* ```html
|
|
1329
|
-
* <ng-template #myHeader let-col>
|
|
1330
|
-
* <span class="custom-header">{{ col.header }}</span>
|
|
1331
|
-
* </ng-template>
|
|
1332
|
-
* <neu-table [columns]="[{ key: 'name', header: 'Nombre', headerTemplate: myHeader }]" ... />
|
|
1333
|
-
* ```
|
|
1334
|
-
*/
|
|
1335
|
-
headerTemplate?: TemplateRef<any>;
|
|
1336
|
-
}
|
|
1337
|
-
|
|
1338
|
-
type Row = Record<string, unknown>;
|
|
1339
|
-
/**
|
|
1340
|
-
* NeuralUI Table — Componente Estrella
|
|
1341
|
-
*
|
|
1342
|
-
* Tabla de datos con:
|
|
1343
|
-
* - Búsqueda/filtrado → ?q=...
|
|
1344
|
-
* - Paginación → ?page=...
|
|
1345
|
-
* - Ordenación → ?sort=col&sortDir=asc|desc
|
|
1346
|
-
* - Selección de filas (múltiple) opcional
|
|
1347
|
-
* - Skeleton de carga animado
|
|
1348
|
-
* - Scroll horizontal elegante en mobile (<400px)
|
|
1349
|
-
*
|
|
1350
|
-
* Uso básico:
|
|
1351
|
-
* <neu-table [columns]="cols" [data]="rows" />
|
|
1352
|
-
*
|
|
1353
|
-
* Múltiples tablas por página:
|
|
1354
|
-
* <neu-table pageParam="userPage" searchParam="userQ" sortParam="userSort" ... />
|
|
1355
|
-
*/
|
|
1356
|
-
declare class NeuTableComponent {
|
|
1357
|
-
private readonly urlState;
|
|
1358
|
-
readonly expandTemplate: _angular_core.Signal<NeuTableExpandDirective | undefined>;
|
|
1359
|
-
columns: _angular_core.InputSignal<NeuTableColumn<Record<string, unknown>>[]>;
|
|
1360
|
-
data: _angular_core.InputSignal<object[]>;
|
|
1361
|
-
pageSize: _angular_core.InputSignal<number>;
|
|
1362
|
-
loading: _angular_core.InputSignal<boolean>;
|
|
1363
|
-
title: _angular_core.InputSignal<string>;
|
|
1364
|
-
emptyMessage: _angular_core.InputSignal<string>;
|
|
1365
|
-
skeletonRows: _angular_core.InputSignal<number[]>;
|
|
1366
|
-
searchable: _angular_core.InputSignal<boolean>;
|
|
1367
|
-
searchPlaceholder: _angular_core.InputSignal<string>;
|
|
1368
|
-
exactMatchable: _angular_core.InputSignal<boolean>;
|
|
1369
|
-
exactMatchLabel: _angular_core.InputSignal<string>;
|
|
1370
|
-
/** Aria-label del input de búsqueda / Aria-label for the search input */
|
|
1371
|
-
searchAriaLabel: _angular_core.InputSignal<string>;
|
|
1372
|
-
/** Aria-label del botón de limpiar búsqueda / Aria-label for the search clear button */
|
|
1373
|
-
clearSearchAriaLabel: _angular_core.InputSignal<string>;
|
|
1374
|
-
/** Texto del botón que elimina el filtro activo / Button text that removes the active filter */
|
|
1375
|
-
clearFilterLabel: _angular_core.InputSignal<string>;
|
|
1376
|
-
/** Aria-label del botón de página anterior / Aria-label for the previous page button */
|
|
1377
|
-
previousPageAriaLabel: _angular_core.InputSignal<string>;
|
|
1378
|
-
/** Aria-label del botón de página siguiente / Aria-label for the next page button */
|
|
1379
|
-
nextPageAriaLabel: _angular_core.InputSignal<string>;
|
|
1380
|
-
sortable: _angular_core.InputSignal<boolean>;
|
|
1381
|
-
selectable: _angular_core.InputSignal<boolean>;
|
|
1382
|
-
expandable: _angular_core.InputSignal<boolean>;
|
|
1383
|
-
exportable: _angular_core.InputSignal<boolean>;
|
|
1384
|
-
exportFileName: _angular_core.InputSignal<string>;
|
|
1385
|
-
pageSizeOptions: _angular_core.InputSignal<number[]>;
|
|
1386
|
-
stickyHeader: _angular_core.InputSignal<boolean>;
|
|
1387
|
-
/** Clave del campo que identifica de forma única cada fila / Field key that uniquely identifies each row */
|
|
1388
|
-
rowKey: _angular_core.InputSignal<string>;
|
|
1389
|
-
pageParam: _angular_core.InputSignal<string>;
|
|
1390
|
-
searchParam: _angular_core.InputSignal<string>;
|
|
1391
|
-
sortParam: _angular_core.InputSignal<string>;
|
|
1392
|
-
sortDirParam: _angular_core.InputSignal<string>;
|
|
1393
|
-
rowSelectionChange: _angular_core.OutputEmitterRef<Row[]>;
|
|
1394
|
-
readonly currentPage: _angular_core.Signal<number>;
|
|
1395
|
-
readonly searchQuery: _angular_core.Signal<string>;
|
|
1396
|
-
readonly sortKey: _angular_core.Signal<string>;
|
|
1397
|
-
readonly sortDir: _angular_core.Signal<"desc" | "asc">;
|
|
1398
|
-
private readonly rows;
|
|
1399
|
-
readonly exactMatch: _angular_core.WritableSignal<boolean>;
|
|
1400
|
-
readonly filteredData: _angular_core.Signal<Row[]>;
|
|
1401
|
-
readonly sortedData: _angular_core.Signal<Row[]>;
|
|
1402
|
-
private readonly _dynamicPageSize;
|
|
1403
|
-
readonly effectivePageSize: _angular_core.Signal<number>;
|
|
1404
|
-
readonly totalPages: _angular_core.Signal<number>;
|
|
1405
|
-
readonly paginatedData: _angular_core.Signal<Row[]>;
|
|
1406
|
-
readonly pageNumbers: _angular_core.Signal<number[]>;
|
|
1407
|
-
readonly paginationInfo: _angular_core.Signal<string>;
|
|
1408
|
-
readonly totalColspan: _angular_core.Signal<number>;
|
|
1409
|
-
private readonly _expandedKeys;
|
|
1410
|
-
isRowExpanded(row: Row): boolean;
|
|
1411
|
-
toggleExpand(row: Row): void;
|
|
1412
|
-
private readonly _selectedKeys;
|
|
1413
|
-
readonly selectedCount: _angular_core.Signal<number>;
|
|
1414
|
-
readonly isAllSelected: _angular_core.Signal<boolean>;
|
|
1415
|
-
readonly isSomeSelected: _angular_core.Signal<boolean>;
|
|
1416
|
-
isRowSelected(row: Row): boolean;
|
|
1417
|
-
toggleRow(row: Row): void;
|
|
1418
|
-
toggleAll(): void;
|
|
1419
|
-
clearSelection(): void;
|
|
1420
|
-
private _emitSelection;
|
|
1421
|
-
goToPage(page: number): void;
|
|
1422
|
-
sortBy(key: string): void;
|
|
1423
|
-
onSearch(event: Event): void;
|
|
1424
|
-
clearSearch(): void;
|
|
1425
|
-
onPageSizeChange(event: Event): void;
|
|
1426
|
-
exportCsv(): void;
|
|
1427
|
-
getRowKey(row: Row): unknown;
|
|
1428
|
-
getCellValue(row: Row, col: NeuTableColumn): string;
|
|
1429
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuTableComponent, never>;
|
|
1430
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuTableComponent, "neu-table", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "exactMatchable": { "alias": "exactMatchable"; "required": false; "isSignal": true; }; "exactMatchLabel": { "alias": "exactMatchLabel"; "required": false; "isSignal": true; }; "searchAriaLabel": { "alias": "searchAriaLabel"; "required": false; "isSignal": true; }; "clearSearchAriaLabel": { "alias": "clearSearchAriaLabel"; "required": false; "isSignal": true; }; "clearFilterLabel": { "alias": "clearFilterLabel"; "required": false; "isSignal": true; }; "previousPageAriaLabel": { "alias": "previousPageAriaLabel"; "required": false; "isSignal": true; }; "nextPageAriaLabel": { "alias": "nextPageAriaLabel"; "required": false; "isSignal": true; }; "sortable": { "alias": "sortable"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "exportable": { "alias": "exportable"; "required": false; "isSignal": true; }; "exportFileName": { "alias": "exportFileName"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "rowKey": { "alias": "rowKey"; "required": false; "isSignal": true; }; "pageParam": { "alias": "pageParam"; "required": false; "isSignal": true; }; "searchParam": { "alias": "searchParam"; "required": false; "isSignal": true; }; "sortParam": { "alias": "sortParam"; "required": false; "isSignal": true; }; "sortDirParam": { "alias": "sortDirParam"; "required": false; "isSignal": true; }; }, { "rowSelectionChange": "rowSelectionChange"; }, ["expandTemplate"], never, true, never>;
|
|
1431
|
-
}
|
|
1432
|
-
|
|
1433
|
-
type NeuAvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
1434
|
-
type NeuAvatarShape = 'circle' | 'square';
|
|
1435
|
-
type NeuAvatarColor = 'blue' | 'violet' | 'green' | 'amber' | 'red' | 'slate';
|
|
1436
|
-
type NeuAvatarStatus = 'online' | 'offline' | 'busy' | 'away' | '';
|
|
1437
|
-
/**
|
|
1438
|
-
* NeuAvatar — Avatar circular o cuadrado para foto o iniciales.
|
|
1439
|
-
*
|
|
1440
|
-
* Uso:
|
|
1441
|
-
* <neu-avatar name="Pedro Moreno" />
|
|
1442
|
-
* <neu-avatar src="/assets/avatar.jpg" alt="Pedro" size="lg" />
|
|
1443
|
-
* <neu-avatar name="PM" size="lg" color="blue" status="online" />
|
|
1444
|
-
*/
|
|
1445
|
-
declare class NeuAvatarComponent {
|
|
1446
|
-
/** URL de la imagen. Si falla la carga, muestra las iniciales. / Image URL. If loading fails, shows the initials. */
|
|
1447
|
-
src: _angular_core.InputSignal<string>;
|
|
1448
|
-
/** Texto alternativo de la imagen. / Image alternative text. */
|
|
1449
|
-
alt: _angular_core.InputSignal<string>;
|
|
1450
|
-
/** Nombre completo — se usan las iniciales como fallback. / Full name — initials are used as fallback. */
|
|
1451
|
-
name: _angular_core.InputSignal<string>;
|
|
1452
|
-
/** Tamaño: xs (24) | sm (32) | md (40) | lg (48) | xl (64). Por defecto 'md'. / Size: xs (24) | sm (32) | md (40) | lg (48) | xl (64). Default 'md'. */
|
|
1453
|
-
size: _angular_core.InputSignal<NeuAvatarSize>;
|
|
1454
|
-
/** Forma: 'circle' (default) o 'square'. / Shape: 'circle' (default) or 'square'. */
|
|
1455
|
-
shape: _angular_core.InputSignal<NeuAvatarShape>;
|
|
1456
|
-
/** Color de fondo para iniciales. / Background color for initials. */
|
|
1457
|
-
color: _angular_core.InputSignal<NeuAvatarColor>;
|
|
1458
|
-
/** Indicador de presencia. / Presence indicator. */
|
|
1459
|
-
status: _angular_core.InputSignal<NeuAvatarStatus>;
|
|
1460
|
-
/** @internal Imagen fallida / Failed image */
|
|
1461
|
-
protected readonly imgError: _angular_core.WritableSignal<boolean>;
|
|
1462
|
-
protected readonly initials: _angular_core.Signal<string>;
|
|
1463
|
-
protected readonly hostClasses: _angular_core.Signal<string[]>;
|
|
1464
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuAvatarComponent, never>;
|
|
1465
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuAvatarComponent, "neu-avatar", never, { "src": { "alias": "src"; "required": false; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1466
|
-
}
|
|
1467
|
-
|
|
1468
|
-
type NeuBadgeVariant = 'default' | 'success' | 'info' | 'warning' | 'danger';
|
|
1469
|
-
type NeuBadgeSize = 'sm' | 'md';
|
|
1470
|
-
/**
|
|
1471
|
-
* NeuralUI Badge Component
|
|
1472
|
-
*
|
|
1473
|
-
* Etiqueta de estado compacta y semántica. / Compact and semantic status label.
|
|
1474
|
-
*
|
|
1475
|
-
* Uso: <neu-badge variant="success">Activo</neu-badge>
|
|
1476
|
-
* <neu-badge variant="danger" [dot]="true">Error</neu-badge>
|
|
1477
|
-
*/
|
|
1478
|
-
declare class NeuBadgeComponent {
|
|
1479
|
-
/** Variante semántica / Semantic variant */
|
|
1480
|
-
variant: _angular_core.InputSignal<NeuBadgeVariant>;
|
|
1481
|
-
/** Tamaño / Size */
|
|
1482
|
-
size: _angular_core.InputSignal<NeuBadgeSize>;
|
|
1483
|
-
/** Muestra un punto de color a la izquierda / Shows a colored dot on the left */
|
|
1484
|
-
dot: _angular_core.InputSignal<boolean>;
|
|
1485
|
-
/** Estilo con solo borde (outline) sin relleno / Border-only style (outline) without fill */
|
|
1486
|
-
outline: _angular_core.InputSignal<boolean>;
|
|
1487
|
-
/** Estilo completamente redondeado (pill) / Fully rounded style (pill) */
|
|
1488
|
-
pill: _angular_core.InputSignal<boolean>;
|
|
1489
|
-
readonly hostClasses: _angular_core.Signal<{
|
|
1490
|
-
[x: string]: boolean;
|
|
1491
|
-
'neu-badge': boolean;
|
|
1492
|
-
'neu-badge--outline': boolean;
|
|
1493
|
-
'neu-badge--pill': boolean;
|
|
1494
|
-
'neu-badge--dot': boolean;
|
|
1495
|
-
}>;
|
|
1496
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuBadgeComponent, never>;
|
|
1497
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuBadgeComponent, "neu-badge", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "dot": { "alias": "dot"; "required": false; "isSignal": true; }; "outline": { "alias": "outline"; "required": false; "isSignal": true; }; "pill": { "alias": "pill"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
1498
|
-
}
|
|
1499
|
-
|
|
1500
|
-
type NeuChartType = 'line' | 'area' | 'bar' | 'bar-stacked' | 'bar-horizontal' | 'bar-horizontal-stacked' | 'pareto' | 'donut' | 'pie' | 'radialBar';
|
|
1501
|
-
interface NeuChartSeries {
|
|
1502
|
-
name: string;
|
|
1503
|
-
data: number[];
|
|
1504
|
-
}
|
|
1505
|
-
/**
|
|
1506
|
-
* NeuChart — Wrapper reactivo de ApexCharts con estética Neural-Blue.
|
|
1507
|
-
*
|
|
1508
|
-
* Tipos soportados:
|
|
1509
|
-
* line · area · bar · bar-stacked · bar-horizontal · bar-horizontal-stacked · pareto · donut · pie · radialBar
|
|
1510
|
-
*
|
|
1511
|
-
* Uso:
|
|
1512
|
-
* <neu-chart
|
|
1513
|
-
* type="bar-stacked"
|
|
1514
|
-
* [series]="series()"
|
|
1515
|
-
* [categories]="months()"
|
|
1516
|
-
* height="280"
|
|
1517
|
-
* />
|
|
1518
|
-
*/
|
|
1519
|
-
declare class NeuChartComponent {
|
|
1520
|
-
/** Tipo de gráfica. / Chart type. */
|
|
1521
|
-
type: _angular_core.InputSignal<NeuChartType>;
|
|
1522
|
-
/** Series para gráficas de ejes (line, area, bar, pareto…). / Series for axis-based charts (line, area, bar, pareto…). */
|
|
1523
|
-
series: _angular_core.InputSignal<NeuChartSeries[]>;
|
|
1524
|
-
/** Series para gráficas sin ejes (donut, pie). / Series for non-axis charts (donut, pie). */
|
|
1525
|
-
pieSeries: _angular_core.InputSignal<number[]>;
|
|
1526
|
-
/** Etiquetas del eje X. / X-axis labels. */
|
|
1527
|
-
categories: _angular_core.InputSignal<string[]>;
|
|
1528
|
-
/** Etiquetas para donut/pie. / Labels for donut/pie. */
|
|
1529
|
-
labels: _angular_core.InputSignal<string[]>;
|
|
1530
|
-
/** Altura en px. / Height in px. */
|
|
1531
|
-
height: _angular_core.InputSignal<number>;
|
|
1532
|
-
/** Colores custom. Si no se proveen, usa la paleta Neural-Blue. / Custom colors. If not provided, uses the Neural-Blue palette. */
|
|
1533
|
-
colors: _angular_core.InputSignal<string[]>;
|
|
1534
|
-
/** Muestra/oculta las etiquetas de datos. / Shows/hides data labels. */
|
|
1535
|
-
showDataLabels: _angular_core.InputSignal<boolean>;
|
|
1536
|
-
/** Título de la gráfica. / Chart title. */
|
|
1537
|
-
title: _angular_core.InputSignal<string>;
|
|
1538
|
-
private get _isBar();
|
|
1539
|
-
private get _isStacked();
|
|
1540
|
-
private get _isHorizontal();
|
|
1541
|
-
protected readonly resolvedColors: _angular_core.Signal<string[]>;
|
|
1542
|
-
protected readonly resolvedSeries: _angular_core.Signal<any>;
|
|
1543
|
-
protected readonly chartConfig: _angular_core.Signal<{
|
|
1544
|
-
type: any;
|
|
1545
|
-
height: number;
|
|
1546
|
-
stacked: boolean;
|
|
1547
|
-
fontFamily: string;
|
|
1548
|
-
foreColor: string;
|
|
1549
|
-
background: string;
|
|
1550
|
-
toolbar: {
|
|
1551
|
-
show: boolean;
|
|
1552
|
-
};
|
|
1553
|
-
sparkline: {
|
|
1554
|
-
enabled: boolean;
|
|
1555
|
-
};
|
|
1556
|
-
zoom: {
|
|
1557
|
-
enabled: boolean;
|
|
1558
|
-
};
|
|
1559
|
-
animations: {
|
|
1560
|
-
enabled: boolean;
|
|
1561
|
-
speed: number;
|
|
1562
|
-
};
|
|
1563
|
-
}>;
|
|
1564
|
-
protected readonly xaxisConfig: _angular_core.Signal<{
|
|
1565
|
-
categories: string[];
|
|
1566
|
-
labels: {
|
|
1567
|
-
style: {
|
|
1568
|
-
fontSize: string;
|
|
1569
|
-
fontFamily: string;
|
|
1570
|
-
colors: string;
|
|
1571
|
-
};
|
|
1572
|
-
};
|
|
1573
|
-
axisBorder: {
|
|
1574
|
-
show: boolean;
|
|
1575
|
-
};
|
|
1576
|
-
axisTicks: {
|
|
1577
|
-
show: boolean;
|
|
1578
|
-
};
|
|
1579
|
-
}>;
|
|
1580
|
-
protected readonly yaxisConfig: _angular_core.Signal<any>;
|
|
1581
|
-
protected readonly strokeConfig: _angular_core.Signal<{
|
|
1582
|
-
show: boolean;
|
|
1583
|
-
width?: undefined;
|
|
1584
|
-
curve?: undefined;
|
|
1585
|
-
lineCap?: undefined;
|
|
1586
|
-
} | {
|
|
1587
|
-
show: boolean;
|
|
1588
|
-
width: number[];
|
|
1589
|
-
curve: any;
|
|
1590
|
-
lineCap: "round";
|
|
1591
|
-
} | {
|
|
1592
|
-
curve: "smooth";
|
|
1593
|
-
width: number;
|
|
1594
|
-
show?: undefined;
|
|
1595
|
-
lineCap?: undefined;
|
|
1596
|
-
}>;
|
|
1597
|
-
protected readonly fillConfig: _angular_core.Signal<{
|
|
1598
|
-
type: "gradient";
|
|
1599
|
-
gradient: {
|
|
1600
|
-
shadeIntensity: number;
|
|
1601
|
-
opacityFrom: number;
|
|
1602
|
-
opacityTo: number;
|
|
1603
|
-
stops: number[];
|
|
1604
|
-
};
|
|
1605
|
-
opacity?: undefined;
|
|
1606
|
-
} | {
|
|
1607
|
-
opacity: number;
|
|
1608
|
-
type?: undefined;
|
|
1609
|
-
gradient?: undefined;
|
|
1610
|
-
}>;
|
|
1611
|
-
protected readonly dataLabelsConfig: _angular_core.Signal<{
|
|
1612
|
-
enabled: boolean;
|
|
1613
|
-
style: {
|
|
1614
|
-
fontSize: string;
|
|
1615
|
-
fontFamily: string;
|
|
1616
|
-
};
|
|
1617
|
-
}>;
|
|
1618
|
-
protected readonly gridConfig: _angular_core.Signal<{
|
|
1619
|
-
borderColor: string;
|
|
1620
|
-
strokeDashArray: number;
|
|
1621
|
-
xaxis: {
|
|
1622
|
-
lines: {
|
|
1623
|
-
show: boolean;
|
|
1624
|
-
};
|
|
1625
|
-
};
|
|
1626
|
-
yaxis: {
|
|
1627
|
-
lines: {
|
|
1628
|
-
show: boolean;
|
|
1629
|
-
};
|
|
1630
|
-
};
|
|
1631
|
-
padding: {
|
|
1632
|
-
left: number;
|
|
1633
|
-
right: number;
|
|
1634
|
-
};
|
|
1635
|
-
}>;
|
|
1636
|
-
protected readonly legendConfig: _angular_core.Signal<{
|
|
1637
|
-
position: "bottom";
|
|
1638
|
-
fontFamily: string;
|
|
1639
|
-
fontSize: string;
|
|
1640
|
-
markers: {
|
|
1641
|
-
size: number;
|
|
1642
|
-
};
|
|
1643
|
-
itemMargin: {
|
|
1644
|
-
horizontal: number;
|
|
1645
|
-
};
|
|
1646
|
-
}>;
|
|
1647
|
-
protected readonly tooltipConfig: _angular_core.Signal<{
|
|
1648
|
-
theme: "light";
|
|
1649
|
-
style: {
|
|
1650
|
-
fontSize: string;
|
|
1651
|
-
fontFamily: string;
|
|
1652
|
-
};
|
|
1653
|
-
} | {
|
|
1654
|
-
y: {
|
|
1655
|
-
formatter: (v: number) => string;
|
|
1656
|
-
}[];
|
|
1657
|
-
theme: "light";
|
|
1658
|
-
style: {
|
|
1659
|
-
fontSize: string;
|
|
1660
|
-
fontFamily: string;
|
|
1661
|
-
};
|
|
1662
|
-
}>;
|
|
1663
|
-
protected readonly plotOptionsConfig: _angular_core.Signal<{
|
|
1664
|
-
pie: {
|
|
1665
|
-
donut: {
|
|
1666
|
-
size: string;
|
|
1667
|
-
};
|
|
1668
|
-
};
|
|
1669
|
-
bar?: undefined;
|
|
1670
|
-
} | {
|
|
1671
|
-
bar: {
|
|
1672
|
-
horizontal: boolean;
|
|
1673
|
-
borderRadius: number;
|
|
1674
|
-
columnWidth: string;
|
|
1675
|
-
barHeight: string;
|
|
1676
|
-
dataLabels: {
|
|
1677
|
-
total: {
|
|
1678
|
-
enabled: boolean;
|
|
1679
|
-
};
|
|
1680
|
-
};
|
|
1681
|
-
};
|
|
1682
|
-
pie?: undefined;
|
|
1683
|
-
} | {
|
|
1684
|
-
pie?: undefined;
|
|
1685
|
-
bar?: undefined;
|
|
1686
|
-
}>;
|
|
1687
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuChartComponent, never>;
|
|
1688
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuChartComponent, "neu-chart", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "series": { "alias": "series"; "required": false; "isSignal": true; }; "pieSeries": { "alias": "pieSeries"; "required": false; "isSignal": true; }; "categories": { "alias": "categories"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "colors": { "alias": "colors"; "required": false; "isSignal": true; }; "showDataLabels": { "alias": "showDataLabels"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1689
|
-
}
|
|
1690
|
-
|
|
1691
|
-
type NeuChipVariant = 'default' | 'primary' | 'success' | 'warning' | 'danger';
|
|
1692
|
-
type NeuChipSize = 'sm' | 'md';
|
|
1693
|
-
/**
|
|
1694
|
-
* NeuralUI Chip Component
|
|
1695
|
-
*
|
|
1696
|
-
* Etiqueta compacta seleccionable y/o eliminable. Ideal para filtros,
|
|
1697
|
-
* listas de tags y multiselección visual.
|
|
1698
|
-
*
|
|
1699
|
-
* Uso:
|
|
1700
|
-
* <neu-chip>Angular</neu-chip>
|
|
1701
|
-
* <neu-chip [removable]="true" (removed)="onRemove()">CSS</neu-chip>
|
|
1702
|
-
* <neu-chip [selected]="true" (selectedChange)="toggle()">TypeScript</neu-chip>
|
|
1703
|
-
*/
|
|
1704
|
-
declare class NeuChipComponent {
|
|
1705
|
-
/** Variante de color / Color variant */
|
|
1706
|
-
variant: _angular_core.InputSignal<NeuChipVariant>;
|
|
1707
|
-
/** Tamaño / Size */
|
|
1708
|
-
size: _angular_core.InputSignal<NeuChipSize>;
|
|
1709
|
-
/** Estado seleccionado / Selected state */
|
|
1710
|
-
selected: _angular_core.InputSignal<boolean>;
|
|
1711
|
-
/** Muestra botón de cierre / Shows close button */
|
|
1712
|
-
removable: _angular_core.InputSignal<boolean>;
|
|
1713
|
-
/** Deshabilitado / Disabled */
|
|
1714
|
-
disabled: _angular_core.InputSignal<boolean>;
|
|
1715
|
-
/** Aria-label del botón de eliminar / Aria-label for the delete button */
|
|
1716
|
-
removeAriaLabel: _angular_core.InputSignal<string>;
|
|
1717
|
-
/** Emite al hacer clic o pulsar espacio/enter / Emits on click or space/enter press */
|
|
1718
|
-
selectedChange: _angular_core.OutputEmitterRef<boolean>;
|
|
1719
|
-
/** Emite al pulsar el botón de cierre / Emits when the close button is pressed */
|
|
1720
|
-
removed: _angular_core.OutputEmitterRef<void>;
|
|
1721
|
-
readonly hostClasses: _angular_core.Signal<{
|
|
1722
|
-
[x: string]: boolean;
|
|
1723
|
-
'neu-chip': boolean;
|
|
1724
|
-
'neu-chip--selected': boolean;
|
|
1725
|
-
'neu-chip--removable': boolean;
|
|
1726
|
-
'neu-chip--disabled': boolean;
|
|
1727
|
-
}>;
|
|
1728
|
-
onToggle(): void;
|
|
1729
|
-
onRemove(): void;
|
|
1730
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuChipComponent, never>;
|
|
1731
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuChipComponent, "neu-chip", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "removeAriaLabel": { "alias": "removeAriaLabel"; "required": false; "isSignal": true; }; }, { "selectedChange": "selectedChange"; "removed": "removed"; }, never, ["*"], true, never>;
|
|
1732
|
-
}
|
|
1733
|
-
|
|
1734
|
-
/**
|
|
1735
|
-
* NeuralUI Code Block
|
|
1736
|
-
*
|
|
1737
|
-
* Bloque de código con estilo editor oscuro (Tokyo Night).
|
|
1738
|
-
* Incluye botón de copiar al portapapeles, badge del lenguaje
|
|
1739
|
-
* y soporte para resaltado futuro con ngx-highlightjs.
|
|
1740
|
-
*
|
|
1741
|
-
* Uso:
|
|
1742
|
-
* <neu-code-block [code]="snippet" lang="TypeScript" />
|
|
1743
|
-
*
|
|
1744
|
-
* Con ngx-highlightjs instalado, envuelve el <pre> con
|
|
1745
|
-
* [highlight]="code" para resaltado automático.
|
|
1746
|
-
*/
|
|
1747
|
-
declare class NeuCodeBlockComponent {
|
|
1748
|
-
private readonly doc;
|
|
1749
|
-
/** Código fuente a mostrar / Source code to display */
|
|
1750
|
-
code: _angular_core.InputSignal<string>;
|
|
1751
|
-
/** Nombre del lenguaje (decorativo) / Language name (decorative) */
|
|
1752
|
-
lang: _angular_core.InputSignal<string>;
|
|
1753
|
-
/** Texto del botón cuando no se ha copiado / Button text when not yet copied */
|
|
1754
|
-
copyLabel: _angular_core.InputSignal<string>;
|
|
1755
|
-
/** Texto del botón tras copiar / Button text after copying */
|
|
1756
|
-
copiedLabel: _angular_core.InputSignal<string>;
|
|
1757
|
-
/** Aria-label del botón copiar / Aria-label for the copy button */
|
|
1758
|
-
copyAriaLabel: _angular_core.InputSignal<string>;
|
|
1759
|
-
/** Aria-label del botón tras copiar / Aria-label for the button after copying */
|
|
1760
|
-
copiedAriaLabel: _angular_core.InputSignal<string>;
|
|
1761
|
-
protected readonly copied: _angular_core.WritableSignal<boolean>;
|
|
1762
|
-
private _copyTimer?;
|
|
1763
|
-
copy(): void;
|
|
1764
|
-
private _markCopied;
|
|
1765
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuCodeBlockComponent, never>;
|
|
1766
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuCodeBlockComponent, "neu-code-block", never, { "code": { "alias": "code"; "required": false; "isSignal": true; }; "lang": { "alias": "lang"; "required": false; "isSignal": true; }; "copyLabel": { "alias": "copyLabel"; "required": false; "isSignal": true; }; "copiedLabel": { "alias": "copiedLabel"; "required": false; "isSignal": true; }; "copyAriaLabel": { "alias": "copyAriaLabel"; "required": false; "isSignal": true; }; "copiedAriaLabel": { "alias": "copiedAriaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1767
|
-
}
|
|
1768
|
-
|
|
1769
|
-
/**
|
|
1770
|
-
* NeuEmptyState — Estado vacío con icono Lucide, título, descripción y acción.
|
|
1771
|
-
*
|
|
1772
|
-
* Uso:
|
|
1773
|
-
* <neu-empty-state
|
|
1774
|
-
* icon="lucideInbox"
|
|
1775
|
-
* title="Sin resultados"
|
|
1776
|
-
* description="Prueba con otros filtros."
|
|
1777
|
-
* actionLabel="Limpiar filtros"
|
|
1778
|
-
* (action)="clearFilters()"
|
|
1779
|
-
* />
|
|
1780
|
-
*/
|
|
1781
|
-
declare class NeuEmptyStateComponent {
|
|
1782
|
-
/** Nombre del icono Lucide registrado con provideIcons(). / Lucide icon name registered with provideIcons(). */
|
|
1783
|
-
icon: _angular_core.InputSignal<string>;
|
|
1784
|
-
/** Tamaño del icono. Por defecto 3rem. / Icon size. Default 3rem. */
|
|
1785
|
-
iconSize: _angular_core.InputSignal<string>;
|
|
1786
|
-
/** Título principal del estado vacío. / Main title of the empty state. */
|
|
1787
|
-
title: _angular_core.InputSignal<string>;
|
|
1788
|
-
/** Descripción secundaria opcional. / Optional secondary description. */
|
|
1789
|
-
description: _angular_core.InputSignal<string>;
|
|
1790
|
-
/** 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. */
|
|
1791
|
-
actionLabel: _angular_core.InputSignal<string>;
|
|
1792
|
-
/** Emite cuando el usuario hace clic en el botón de acción. / Emits when the user clicks the action button. */
|
|
1793
|
-
action: _angular_core.OutputEmitterRef<void>;
|
|
1794
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuEmptyStateComponent, never>;
|
|
1795
|
-
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>;
|
|
1796
|
-
}
|
|
1797
|
-
|
|
1798
|
-
/**
|
|
1799
|
-
* NeuIconComponent — Wrapper delgado sobre NgIcon de @ng-icons/core
|
|
1800
|
-
*
|
|
1801
|
-
* Hereda el color del elemento padre mediante `color: currentColor`.
|
|
1802
|
-
* El grosor del trazo se controla con la variable CSS `--ng-icon__stroke-width`
|
|
1803
|
-
* que viene configurada globalmente vía `provideNgIconsConfig`.
|
|
1804
|
-
*
|
|
1805
|
-
* Uso básico:
|
|
1806
|
-
* <neu-icon name="lucideX" />
|
|
1807
|
-
* <neu-icon name="lucideAlertCircle" size="1rem" />
|
|
1808
|
-
*/
|
|
1809
|
-
declare class NeuIconComponent {
|
|
1810
|
-
/** Nombre del icono registrado con provideIcons() / Icon name registered with provideIcons() */
|
|
1811
|
-
name: _angular_core.InputSignal<string>;
|
|
1812
|
-
/**
|
|
1813
|
-
* Grosor del trazo. Default '2' para estética fina y técnica.
|
|
1814
|
-
* Puede sobrescribirse por instancia.
|
|
1815
|
-
*/
|
|
1816
|
-
strokeWidth: _angular_core.InputSignal<string>;
|
|
1817
|
-
/**
|
|
1818
|
-
* Tamaño del icono. Acepta cualquier unidad CSS válida.
|
|
1819
|
-
* Si no se especifica, usa la variable CSS `--neu-icon-size` (1.25rem por defecto).
|
|
1820
|
-
*/
|
|
1821
|
-
size: _angular_core.InputSignal<string>;
|
|
1822
|
-
/** Tamaño resuelto: usa el input `size` o cae al token CSS. / Resolved size: uses the `size` input or falls back to the CSS token. */
|
|
1823
|
-
readonly resolvedSize: _angular_core.Signal<string>;
|
|
1824
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuIconComponent, never>;
|
|
1825
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuIconComponent, "neu-icon", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1826
|
-
}
|
|
1827
|
-
|
|
1828
|
-
type NeuProgressVariant = 'primary' | 'success' | 'warning' | 'danger';
|
|
1829
|
-
/**
|
|
1830
|
-
* NeuralUI ProgressBar Component
|
|
1831
|
-
*
|
|
1832
|
-
* Barra de progreso accesible con valor, etiqueta y variantes semánticas.
|
|
1833
|
-
* Soporte para modo indeterminado (animación continua).
|
|
1834
|
-
*
|
|
1835
|
-
* Uso:
|
|
1836
|
-
* <neu-progress-bar [value]="75" />
|
|
1837
|
-
* <neu-progress-bar [value]="75" label="Cargando..." variant="success" [showValue]="true" />
|
|
1838
|
-
* <neu-progress-bar [indeterminate]="true" />
|
|
1839
|
-
*/
|
|
1840
|
-
declare class NeuProgressBarComponent {
|
|
1841
|
-
/** Valor de 0 a 100 / Value from 0 to 100 */
|
|
1842
|
-
value: _angular_core.InputSignal<number>;
|
|
1843
|
-
/** Variante de color / Color variant */
|
|
1844
|
-
variant: _angular_core.InputSignal<NeuProgressVariant>;
|
|
1845
|
-
/** Etiqueta descriptiva sobre la barra / Descriptive label above the bar */
|
|
1846
|
-
label: _angular_core.InputSignal<string>;
|
|
1847
|
-
/** Muestra el % a la derecha / Shows the % on the right */
|
|
1848
|
-
showValue: _angular_core.InputSignal<boolean>;
|
|
1849
|
-
/** Modo indeterminado (animación continua) / Indeterminate mode (continuous animation) */
|
|
1850
|
-
indeterminate: _angular_core.InputSignal<boolean>;
|
|
1851
|
-
/** Altura de la barra / Bar height */
|
|
1852
|
-
size: _angular_core.InputSignal<"sm" | "md" | "lg">;
|
|
1853
|
-
readonly clampedValue: _angular_core.Signal<number>;
|
|
1854
|
-
readonly hostClasses: _angular_core.Signal<string>;
|
|
1855
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuProgressBarComponent, never>;
|
|
1856
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuProgressBarComponent, "neu-progress-bar", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "showValue": { "alias": "showValue"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1857
|
-
}
|
|
1858
|
-
|
|
1859
|
-
/**
|
|
1860
|
-
* NeuralUI Rating Component
|
|
1861
|
-
*
|
|
1862
|
-
* Selector de valoración con estrellas (o icono personalizable).
|
|
1863
|
-
* Soporta valores medios (half-star) y modo solo-lectura.
|
|
1864
|
-
*
|
|
1865
|
-
* Uso:
|
|
1866
|
-
* <neu-rating [value]="rating" (valueChange)="rating = $event" />
|
|
1867
|
-
* <neu-rating [value]="4.5" [readonly]="true" />
|
|
1868
|
-
*/
|
|
1869
|
-
declare class NeuRatingComponent {
|
|
1870
|
-
protected readonly Math: Math;
|
|
1871
|
-
/** Valor actual (1 a stars) / Current value (1 to stars) */
|
|
1872
|
-
value: _angular_core.InputSignal<number>;
|
|
1873
|
-
/** Número de estrellas / Number of stars */
|
|
1874
|
-
stars: _angular_core.InputSignal<number>;
|
|
1875
|
-
/** Modo solo lectura / Read-only mode */
|
|
1876
|
-
readonly: _angular_core.InputSignal<boolean>;
|
|
1877
|
-
/** Emite el nuevo valor al seleccionar / Emits the new value on selection */
|
|
1878
|
-
valueChange: _angular_core.OutputEmitterRef<number>;
|
|
1879
|
-
protected readonly hovered: _angular_core.WritableSignal<number | null>;
|
|
1880
|
-
readonly starsArray: _angular_core.Signal<number[]>;
|
|
1881
|
-
onHover(i: number): void;
|
|
1882
|
-
onLeave(): void;
|
|
1883
|
-
select(i: number): void;
|
|
1884
|
-
isInteger(n: number): boolean;
|
|
1885
|
-
getFill(i: number): string;
|
|
1886
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuRatingComponent, never>;
|
|
1887
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuRatingComponent, "neu-rating", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "stars": { "alias": "stars"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
1888
|
-
}
|
|
1889
|
-
|
|
1890
|
-
/**
|
|
1891
|
-
* NeuralUI Skeleton Component
|
|
1892
|
-
*
|
|
1893
|
-
* Placeholder animado para simular la carga de contenido.
|
|
1894
|
-
*
|
|
1895
|
-
* Uso:
|
|
1896
|
-
* <neu-skeleton width="100%" height="20px" />
|
|
1897
|
-
* <neu-skeleton variant="circle" width="40px" height="40px" />
|
|
1898
|
-
* <neu-skeleton variant="text" />
|
|
1899
|
-
*/
|
|
1900
|
-
declare class NeuSkeletonComponent {
|
|
1901
|
-
readonly variant: _angular_core.InputSignal<"text" | "circle" | "rect">;
|
|
1902
|
-
readonly width: _angular_core.InputSignal<string>;
|
|
1903
|
-
readonly height: _angular_core.InputSignal<string>;
|
|
1904
|
-
readonly borderRadius: _angular_core.InputSignal<string>;
|
|
1905
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSkeletonComponent, never>;
|
|
1906
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuSkeletonComponent, "neu-skeleton", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "borderRadius": { "alias": "borderRadius"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1907
|
-
}
|
|
1908
|
-
|
|
1909
|
-
type NeuSpinnerSeverity = 'primary' | 'success' | 'warning' | 'danger' | 'info';
|
|
1910
|
-
/**
|
|
1911
|
-
* NeuralUI Spinner Component
|
|
1912
|
-
*
|
|
1913
|
-
* Indicador de carga circular animado, similar al ProgressSpinner de PrimeNG.
|
|
1914
|
-
* Permite personalizar color via severity o color CSS directo.
|
|
1915
|
-
*
|
|
1916
|
-
* Uso básico:
|
|
1917
|
-
* <neu-spinner />
|
|
1918
|
-
*
|
|
1919
|
-
* Con severity:
|
|
1920
|
-
* <neu-spinner severity="success" size="48px" />
|
|
1921
|
-
*
|
|
1922
|
-
* Con color personalizado:
|
|
1923
|
-
* <neu-spinner color="#ff6b35" strokeWidth="6" />
|
|
1924
|
-
*/
|
|
1925
|
-
declare class NeuSpinnerComponent {
|
|
1926
|
-
/** Variante de color semántica / Semantic color variant */
|
|
1927
|
-
severity: _angular_core.InputSignal<NeuSpinnerSeverity>;
|
|
1928
|
-
/** Color CSS directo — sobreescribe severity / Direct CSS color — overrides severity */
|
|
1929
|
-
color: _angular_core.InputSignal<string>;
|
|
1930
|
-
/** Grosor del trazo SVG (unidades SVG) / SVG stroke width (SVG units) */
|
|
1931
|
-
strokeWidth: _angular_core.InputSignal<string>;
|
|
1932
|
-
/** Tamaño del spinner (CSS: '40px', '2rem', etc.) / Spinner size (CSS: '40px', '2rem', etc.) */
|
|
1933
|
-
size: _angular_core.InputSignal<string>;
|
|
1934
|
-
/** Duración de la animación de rotación / Rotation animation duration */
|
|
1935
|
-
animationDuration: _angular_core.InputSignal<string>;
|
|
1936
|
-
/** Texto accesible para lectores de pantalla / Accessible text for screen readers */
|
|
1937
|
-
ariaLabel: _angular_core.InputSignal<string>;
|
|
1938
|
-
readonly _severityColor: _angular_core.Signal<string>;
|
|
1939
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSpinnerComponent, never>;
|
|
1940
|
-
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>;
|
|
1941
|
-
}
|
|
1942
|
-
|
|
1943
|
-
interface NeuSplitButtonAction {
|
|
1944
|
-
/** Identificador único de la acción / Unique action identifier */
|
|
1945
|
-
id: string;
|
|
1946
|
-
/** Texto visible / Visible text */
|
|
1947
|
-
label: string;
|
|
1948
|
-
/** Icono opcional (SVG string o nombre) / Optional icon (SVG string or name) */
|
|
1949
|
-
icon?: string;
|
|
1950
|
-
/** Deshabilita esta acción individualmente / Disables this action individually */
|
|
1951
|
-
disabled?: boolean;
|
|
1952
|
-
/** Separador visual encima de este item / Visual separator above this item */
|
|
1953
|
-
divider?: boolean;
|
|
1954
|
-
}
|
|
1955
|
-
/**
|
|
1956
|
-
* NeuralUI SplitButton Component
|
|
1957
|
-
*
|
|
1958
|
-
* Botón principal con un dropdown de acciones adicionales. / Primary button with a dropdown of additional actions.
|
|
1959
|
-
*
|
|
1960
|
-
* Uso:
|
|
1961
|
-
* <neu-split-button
|
|
1962
|
-
* label="Guardar"
|
|
1963
|
-
* [actions]="actions"
|
|
1964
|
-
* (primaryClick)="save()"
|
|
1965
|
-
* (actionClick)="onAction($event)"
|
|
1966
|
-
* />
|
|
1967
|
-
*/
|
|
1968
|
-
declare class NeuSplitButtonComponent {
|
|
1969
|
-
private readonly el;
|
|
1970
|
-
/** Texto del botón principal / Primary button text */
|
|
1971
|
-
label: _angular_core.InputSignal<string>;
|
|
1972
|
-
/** Variante visual / Visual variant */
|
|
1973
|
-
variant: _angular_core.InputSignal<NeuButtonVariant>;
|
|
1974
|
-
/** Tamaño / Size */
|
|
1975
|
-
size: _angular_core.InputSignal<NeuButtonSize>;
|
|
1976
|
-
/** Deshabilita todo el componente / Disables the entire component */
|
|
1977
|
-
disabled: _angular_core.InputSignal<boolean>;
|
|
1978
|
-
/** Muestra spinner en el botón principal / Shows spinner on the primary button */
|
|
1979
|
-
loading: _angular_core.InputSignal<boolean>;
|
|
1980
|
-
/** Acciones del dropdown / Dropdown actions */
|
|
1981
|
-
actions: _angular_core.InputSignal<NeuSplitButtonAction[]>;
|
|
1982
|
-
/** Aria-label del botón de desplegable / Aria-label for the dropdown button */
|
|
1983
|
-
moreActionsAriaLabel: _angular_core.InputSignal<string>;
|
|
1984
|
-
/** Aria-label del menú desplegable / Aria-label for the dropdown menu */
|
|
1985
|
-
actionsAriaLabel: _angular_core.InputSignal<string>;
|
|
1986
|
-
/** Emite al hacer click en el botón principal / Emits on primary button click */
|
|
1987
|
-
primaryClick: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
1988
|
-
/** Emite al seleccionar una acción del dropdown / Emits when a dropdown action is selected */
|
|
1989
|
-
actionClick: _angular_core.OutputEmitterRef<NeuSplitButtonAction>;
|
|
1990
|
-
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
1991
|
-
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
1992
|
-
readonly mainClasses: _angular_core.Signal<string>;
|
|
1993
|
-
readonly chevronClasses: _angular_core.Signal<string>;
|
|
1994
|
-
toggleDropdown(event: MouseEvent): void;
|
|
1995
|
-
closeDropdown(): void;
|
|
1996
|
-
onDocumentClick(event: MouseEvent): void;
|
|
1997
|
-
onPrimaryClick(event: MouseEvent): void;
|
|
1998
|
-
onActionClick(action: NeuSplitButtonAction): void;
|
|
1999
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSplitButtonComponent, never>;
|
|
2000
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuSplitButtonComponent, "neu-split-button", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "moreActionsAriaLabel": { "alias": "moreActionsAriaLabel"; "required": false; "isSignal": true; }; "actionsAriaLabel": { "alias": "actionsAriaLabel"; "required": false; "isSignal": true; }; }, { "primaryClick": "primaryClick"; "actionClick": "actionClick"; }, never, never, true, never>;
|
|
2001
|
-
}
|
|
2002
|
-
|
|
2003
|
-
type NeuStatsTrend = 'up' | 'down' | 'neutral';
|
|
2004
|
-
/**
|
|
2005
|
-
* NeuStatsCard — Card de métrica con título, valor, tendencia y sparkline.
|
|
2006
|
-
*
|
|
2007
|
-
* Uso:
|
|
2008
|
-
* <neu-stats-card
|
|
2009
|
-
* title="Ingresos"
|
|
2010
|
-
* value="$12,450"
|
|
2011
|
-
* change="+12.5%"
|
|
2012
|
-
* trend="up"
|
|
2013
|
-
* icon="lucideDollarSign"
|
|
2014
|
-
* [sparkData]="[30,45,38,52,60,55,70]"
|
|
2015
|
-
* />
|
|
2016
|
-
*/
|
|
2017
|
-
declare class NeuStatsCardComponent {
|
|
2018
|
-
/** Título o etiqueta de la métrica. / Metric title or label. */
|
|
2019
|
-
title: _angular_core.InputSignal<string>;
|
|
2020
|
-
/** Valor principal formateado (p.ej. "$12,450" o "98.2%"). / Main formatted value (e.g. "$12,450" or "98.2%"). */
|
|
2021
|
-
value: _angular_core.InputSignal<string>;
|
|
2022
|
-
/** Cambio porcentual o absoluto (p.ej. "+12.5%" o "-3"). / Percentage or absolute change (e.g. "+12.5%" or "-3"). */
|
|
2023
|
-
change: _angular_core.InputSignal<string>;
|
|
2024
|
-
/** Dirección del cambio. Afecta el color del change. / Change direction. Affects the change color. */
|
|
2025
|
-
trend: _angular_core.InputSignal<NeuStatsTrend>;
|
|
2026
|
-
/** Texto auxiliar bajo el cambio (p.ej. "vs. mes anterior"). / Auxiliary text below the change (e.g. "vs. previous month"). */
|
|
2027
|
-
label: _angular_core.InputSignal<string>;
|
|
2028
|
-
/** Nombre del icono Lucide para el encabezado. / Lucide icon name for the header. */
|
|
2029
|
-
icon: _angular_core.InputSignal<string>;
|
|
2030
|
-
/** Array de valores numéricos para la sparkline. Mín. 2 puntos. / Array of numeric values for the sparkline. Min. 2 points. */
|
|
2031
|
-
sparkData: _angular_core.InputSignal<number[]>;
|
|
2032
|
-
/** @internal Genera los puntos SVG de la sparkline / Generates the SVG sparkline points */
|
|
2033
|
-
protected readonly sparkPoints: _angular_core.Signal<string>;
|
|
2034
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuStatsCardComponent, never>;
|
|
2035
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuStatsCardComponent, "neu-stats-card", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "change": { "alias": "change"; "required": false; "isSignal": true; }; "trend": { "alias": "trend"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "sparkData": { "alias": "sparkData"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2036
|
-
}
|
|
2037
|
-
|
|
2038
|
-
type NeuTimelineItemVariant = 'default' | 'success' | 'warning' | 'danger' | 'info';
|
|
2039
|
-
interface NeuTimelineItem {
|
|
2040
|
-
/** Etiqueta de tiempo (ej. "Hace 2h", "12 Mar") / Time label (e.g. "2h ago", "Mar 12") */
|
|
2041
|
-
time?: string;
|
|
2042
|
-
/** Título del evento / Event title */
|
|
2043
|
-
title: string;
|
|
2044
|
-
/** Descripción opcional / Optional description */
|
|
2045
|
-
description?: string;
|
|
2046
|
-
/** Variante de color del punto / Dot color variant */
|
|
2047
|
-
variant?: NeuTimelineItemVariant;
|
|
2048
|
-
/** Icono SVG path opcional / Optional SVG path icon */
|
|
2049
|
-
icon?: string;
|
|
2050
|
-
}
|
|
2051
|
-
/**
|
|
2052
|
-
* NeuralUI Timeline Component
|
|
2053
|
-
*
|
|
2054
|
-
* Lista vertical de eventos cronológicos con línea conectora. / Vertical list of chronological events with a connector line.
|
|
2055
|
-
*
|
|
2056
|
-
* Uso:
|
|
2057
|
-
* <neu-timeline [items]="events" />
|
|
2058
|
-
* <neu-timeline [items]="events" align="right" />
|
|
2059
|
-
*/
|
|
2060
|
-
declare class NeuTimelineComponent {
|
|
2061
|
-
/** Eventos a mostrar / Events to display */
|
|
2062
|
-
items: _angular_core.InputSignal<NeuTimelineItem[]>;
|
|
2063
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuTimelineComponent, never>;
|
|
2064
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuTimelineComponent, "neu-timeline", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2065
|
-
}
|
|
2066
|
-
|
|
2067
|
-
/**
|
|
2068
|
-
* NeuralUI Toast Container Component
|
|
2069
|
-
*
|
|
2070
|
-
* Renderiza los toasts activos del NeuToastService.
|
|
2071
|
-
* Añade este componente una sola vez en la raíz del app (app.html).
|
|
2072
|
-
*
|
|
2073
|
-
* Diseño mobile-first:
|
|
2074
|
-
* - < 400px: banner inferior centrado
|
|
2075
|
-
* - ≥ 400px: stack en la esquina superior derecha
|
|
2076
|
-
*
|
|
2077
|
-
* Uso:
|
|
2078
|
-
* <!-- en app.html -->
|
|
2079
|
-
* <neu-toast-container />
|
|
2080
|
-
*/
|
|
2081
|
-
declare class NeuToastContainerComponent {
|
|
2082
|
-
readonly toastService: NeuToastService;
|
|
2083
|
-
getIcon(type: NeuToastType): string;
|
|
2084
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuToastContainerComponent, never>;
|
|
2085
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuToastContainerComponent, "neu-toast-container", never, {}, {}, never, never, true, never>;
|
|
2086
|
-
}
|
|
2087
|
-
|
|
2088
|
-
/** @internal — componente flotante del tooltip, renderizado vía CDK Portal / floating tooltip component, rendered via CDK Portal */
|
|
2089
|
-
declare class NeuTooltipOverlayComponent {
|
|
2090
|
-
readonly text: _angular_core.InputSignal<string>;
|
|
2091
|
-
readonly tooltipId: _angular_core.InputSignal<string>;
|
|
2092
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuTooltipOverlayComponent, never>;
|
|
2093
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuTooltipOverlayComponent, "neu-tooltip-overlay", never, { "text": { "alias": "text"; "required": true; "isSignal": true; }; "tooltipId": { "alias": "tooltipId"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2094
|
-
}
|
|
2095
|
-
|
|
2096
|
-
type NeuTooltipPosition = 'top' | 'bottom' | 'left' | 'right';
|
|
2097
|
-
/**
|
|
2098
|
-
* NeuralUI Tooltip Directive
|
|
2099
|
-
*
|
|
2100
|
-
* Muestra un globo informativo al hacer hover/focus sobre el elemento host.
|
|
2101
|
-
* Usa CDK Overlay para posicionamiento robusto.
|
|
2102
|
-
*
|
|
2103
|
-
* Uso:
|
|
2104
|
-
* <button [neuTooltip]="'Guardar cambios'">Guardar</button>
|
|
2105
|
-
* <button [neuTooltip]="'Eliminar'" neuTooltipPosition="bottom">Eliminar</button>
|
|
2106
|
-
*/
|
|
2107
|
-
declare class NeuTooltipDirective implements OnDestroy {
|
|
2108
|
-
readonly neuTooltip: _angular_core.InputSignal<string>;
|
|
2109
|
-
readonly neuTooltipPosition: _angular_core.InputSignal<NeuTooltipPosition>;
|
|
2110
|
-
readonly neuTooltipDisabled: _angular_core.InputSignal<boolean>;
|
|
2111
|
-
private readonly _overlay;
|
|
2112
|
-
private readonly _elementRef;
|
|
2113
|
-
private readonly _injector;
|
|
2114
|
-
readonly _tooltipId: string;
|
|
2115
|
-
/** Elementos HTML nativamente focusables que no necesitan tabindex extra / Natively focusable HTML elements that don't need extra tabindex */
|
|
2116
|
-
private readonly _NATIVE_FOCUSABLE;
|
|
2117
|
-
protected readonly _needsTabindex: () => boolean;
|
|
2118
|
-
private _overlayRef;
|
|
2119
|
-
private _tooltipRef;
|
|
2120
|
-
private _hideTimeout;
|
|
2121
|
-
show(): void;
|
|
2122
|
-
hide(): void;
|
|
2123
|
-
private _createOverlay;
|
|
2124
|
-
private _getPositions;
|
|
2125
|
-
private _detach;
|
|
2126
|
-
ngOnDestroy(): void;
|
|
2127
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuTooltipDirective, never>;
|
|
2128
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NeuTooltipDirective, "[neuTooltip]", never, { "neuTooltip": { "alias": "neuTooltip"; "required": true; "isSignal": true; }; "neuTooltipPosition": { "alias": "neuTooltipPosition"; "required": false; "isSignal": true; }; "neuTooltipDisabled": { "alias": "neuTooltipDisabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2129
|
-
}
|
|
2130
|
-
|
|
2131
|
-
export { NEU_RADIO_GROUP, NEU_TABS_CONTEXT, NeuAccordionComponent, NeuAvatarComponent, NeuBadgeComponent, NeuBreadcrumbComponent, NeuButtonComponent, NeuCardComponent, NeuChartComponent, NeuCheckboxComponent, NeuChipComponent, NeuCodeBlockComponent, NeuDateInputComponent, NeuDialogComponent, NeuDialogService, NeuDividerComponent, NeuEmptyStateComponent, NeuIconComponent, NeuInputComponent, NeuMultiselectComponent, NeuMultiselectItemDirective, NeuNavComponent, NeuPaginationComponent, NeuProgressBarComponent, NeuRadioComponent, NeuRadioGroupComponent, NeuRatingComponent, NeuSelectComponent, NeuSelectItemDirective, NeuSelectSelectedDirective, NeuSidebarComponent, NeuSkeletonComponent, NeuSliderComponent, NeuSpinnerComponent, NeuSplitButtonComponent, NeuStatsCardComponent, NeuStepperComponent, NeuSwitchComponent, NeuTabPanelComponent, NeuTableComponent, NeuTableExpandDirective, NeuTabsComponent, NeuTextareaComponent, NeuTimelineComponent, NeuToastContainerComponent, NeuToastService, NeuToggleButtonGroupComponent, NeuTooltipDirective, NeuTooltipOverlayComponent, NeuUrlStateService, provideNeuralUI };
|
|
2132
|
-
export type { NeuAccordionItem, NeuAvatarColor, NeuAvatarShape, NeuAvatarSize, NeuAvatarStatus, NeuBadgeSize, NeuBadgeVariant, NeuBreadcrumbItem, NeuButtonIconPosition, NeuButtonSize, NeuButtonVariant, NeuCardPadding, NeuChartSeries, NeuChartType, NeuChipSize, NeuChipVariant, NeuDialogData, NeuDialogSize, NeuInputType, NeuNavItem, NeuProgressVariant, NeuSelectGroup, NeuSelectOption, NeuSpinnerSeverity, NeuSplitButtonAction, NeuStatsTrend, NeuStepperStep, NeuTab, NeuTableBadgeConfig, NeuTableBadgeVariant, NeuTableColumn, NeuTimelineItem, NeuTimelineItemVariant, NeuToastItem, NeuToastOptions, NeuToastPosition, NeuToastType, NeuToggleOption, NeuTooltipPosition, NeuralUIConfig };
|
|
29
|
+
export { provideNeuralUI };
|
|
30
|
+
export type { NeuralUIConfig };
|