@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.
Files changed (239) hide show
  1. package/README.md +56 -88
  2. package/accordion/package.json +4 -0
  3. package/alert/package.json +4 -0
  4. package/autocomplete/package.json +4 -0
  5. package/avatar/package.json +4 -0
  6. package/badge/package.json +4 -0
  7. package/block-ui/package.json +4 -0
  8. package/breadcrumb/package.json +4 -0
  9. package/button/package.json +4 -0
  10. package/card/package.json +4 -0
  11. package/chart/package.json +4 -0
  12. package/checkbox/package.json +4 -0
  13. package/chip/package.json +4 -0
  14. package/code-block/package.json +4 -0
  15. package/color-picker/package.json +4 -0
  16. package/command-palette/package.json +4 -0
  17. package/confirm-dialog/package.json +4 -0
  18. package/context-menu/package.json +4 -0
  19. package/dashboard-grid/package.json +4 -0
  20. package/date-input/package.json +4 -0
  21. package/divider/package.json +4 -0
  22. package/empty-state/package.json +4 -0
  23. package/fesm2022/neural-ui-core-accordion.mjs +162 -0
  24. package/fesm2022/neural-ui-core-accordion.mjs.map +1 -0
  25. package/fesm2022/neural-ui-core-alert.mjs +116 -0
  26. package/fesm2022/neural-ui-core-alert.mjs.map +1 -0
  27. package/fesm2022/neural-ui-core-autocomplete.mjs +406 -0
  28. package/fesm2022/neural-ui-core-autocomplete.mjs.map +1 -0
  29. package/fesm2022/neural-ui-core-avatar.mjs +109 -0
  30. package/fesm2022/neural-ui-core-avatar.mjs.map +1 -0
  31. package/fesm2022/neural-ui-core-badge.mjs +54 -0
  32. package/fesm2022/neural-ui-core-badge.mjs.map +1 -0
  33. package/fesm2022/neural-ui-core-block-ui.mjs +95 -0
  34. package/fesm2022/neural-ui-core-block-ui.mjs.map +1 -0
  35. package/fesm2022/neural-ui-core-breadcrumb.mjs +84 -0
  36. package/fesm2022/neural-ui-core-breadcrumb.mjs.map +1 -0
  37. package/fesm2022/neural-ui-core-button.mjs +125 -0
  38. package/fesm2022/neural-ui-core-button.mjs.map +1 -0
  39. package/fesm2022/neural-ui-core-card.mjs +69 -0
  40. package/fesm2022/neural-ui-core-card.mjs.map +1 -0
  41. package/fesm2022/neural-ui-core-chart.mjs +287 -0
  42. package/fesm2022/neural-ui-core-chart.mjs.map +1 -0
  43. package/fesm2022/neural-ui-core-checkbox.mjs +138 -0
  44. package/fesm2022/neural-ui-core-checkbox.mjs.map +1 -0
  45. package/fesm2022/neural-ui-core-chip.mjs +130 -0
  46. package/fesm2022/neural-ui-core-chip.mjs.map +1 -0
  47. package/fesm2022/neural-ui-core-code-block.mjs +250 -0
  48. package/fesm2022/neural-ui-core-code-block.mjs.map +1 -0
  49. package/fesm2022/neural-ui-core-color-picker.mjs +435 -0
  50. package/fesm2022/neural-ui-core-color-picker.mjs.map +1 -0
  51. package/fesm2022/neural-ui-core-command-palette.mjs +235 -0
  52. package/fesm2022/neural-ui-core-command-palette.mjs.map +1 -0
  53. package/fesm2022/neural-ui-core-confirm-dialog.mjs +118 -0
  54. package/fesm2022/neural-ui-core-confirm-dialog.mjs.map +1 -0
  55. package/fesm2022/neural-ui-core-context-menu.mjs +158 -0
  56. package/fesm2022/neural-ui-core-context-menu.mjs.map +1 -0
  57. package/fesm2022/neural-ui-core-dashboard-grid.mjs +144 -0
  58. package/fesm2022/neural-ui-core-dashboard-grid.mjs.map +1 -0
  59. package/fesm2022/neural-ui-core-date-input.mjs +1332 -0
  60. package/fesm2022/neural-ui-core-date-input.mjs.map +1 -0
  61. package/fesm2022/neural-ui-core-divider.mjs +54 -0
  62. package/fesm2022/neural-ui-core-divider.mjs.map +1 -0
  63. package/fesm2022/neural-ui-core-empty-state.mjs +84 -0
  64. package/fesm2022/neural-ui-core-empty-state.mjs.map +1 -0
  65. package/fesm2022/neural-ui-core-filter-bar.mjs +118 -0
  66. package/fesm2022/neural-ui-core-filter-bar.mjs.map +1 -0
  67. package/fesm2022/neural-ui-core-icon.mjs +50 -0
  68. package/fesm2022/neural-ui-core-icon.mjs.map +1 -0
  69. package/fesm2022/neural-ui-core-image-viewer.mjs +309 -0
  70. package/fesm2022/neural-ui-core-image-viewer.mjs.map +1 -0
  71. package/fesm2022/neural-ui-core-input-otp.mjs +192 -0
  72. package/fesm2022/neural-ui-core-input-otp.mjs.map +1 -0
  73. package/fesm2022/neural-ui-core-input.mjs +320 -0
  74. package/fesm2022/neural-ui-core-input.mjs.map +1 -0
  75. package/fesm2022/neural-ui-core-knob.mjs +323 -0
  76. package/fesm2022/neural-ui-core-knob.mjs.map +1 -0
  77. package/fesm2022/neural-ui-core-meter-group.mjs +122 -0
  78. package/fesm2022/neural-ui-core-meter-group.mjs.map +1 -0
  79. package/fesm2022/neural-ui-core-modal.mjs +156 -0
  80. package/fesm2022/neural-ui-core-modal.mjs.map +1 -0
  81. package/fesm2022/neural-ui-core-multiselect.mjs +825 -0
  82. package/fesm2022/neural-ui-core-multiselect.mjs.map +1 -0
  83. package/fesm2022/neural-ui-core-nav.mjs +952 -0
  84. package/fesm2022/neural-ui-core-nav.mjs.map +1 -0
  85. package/fesm2022/neural-ui-core-notification-center.mjs +264 -0
  86. package/fesm2022/neural-ui-core-notification-center.mjs.map +1 -0
  87. package/fesm2022/neural-ui-core-number-input.mjs +331 -0
  88. package/fesm2022/neural-ui-core-number-input.mjs.map +1 -0
  89. package/fesm2022/neural-ui-core-pagination.mjs +198 -0
  90. package/fesm2022/neural-ui-core-pagination.mjs.map +1 -0
  91. package/fesm2022/neural-ui-core-popover.mjs +207 -0
  92. package/fesm2022/neural-ui-core-popover.mjs.map +1 -0
  93. package/fesm2022/neural-ui-core-progress-bar.mjs +105 -0
  94. package/fesm2022/neural-ui-core-progress-bar.mjs.map +1 -0
  95. package/fesm2022/neural-ui-core-radio.mjs +171 -0
  96. package/fesm2022/neural-ui-core-radio.mjs.map +1 -0
  97. package/fesm2022/neural-ui-core-rating.mjs +151 -0
  98. package/fesm2022/neural-ui-core-rating.mjs.map +1 -0
  99. package/fesm2022/neural-ui-core-select.mjs +710 -0
  100. package/fesm2022/neural-ui-core-select.mjs.map +1 -0
  101. package/fesm2022/neural-ui-core-sidebar.mjs +214 -0
  102. package/fesm2022/neural-ui-core-sidebar.mjs.map +1 -0
  103. package/fesm2022/neural-ui-core-skeleton.mjs +40 -0
  104. package/fesm2022/neural-ui-core-skeleton.mjs.map +1 -0
  105. package/fesm2022/neural-ui-core-slider.mjs +146 -0
  106. package/fesm2022/neural-ui-core-slider.mjs.map +1 -0
  107. package/fesm2022/neural-ui-core-spinner.mjs +113 -0
  108. package/fesm2022/neural-ui-core-spinner.mjs.map +1 -0
  109. package/fesm2022/neural-ui-core-split-button.mjs +252 -0
  110. package/fesm2022/neural-ui-core-split-button.mjs.map +1 -0
  111. package/fesm2022/neural-ui-core-splitter.mjs +174 -0
  112. package/fesm2022/neural-ui-core-splitter.mjs.map +1 -0
  113. package/fesm2022/neural-ui-core-stats-card.mjs +163 -0
  114. package/fesm2022/neural-ui-core-stats-card.mjs.map +1 -0
  115. package/fesm2022/neural-ui-core-stepper.mjs +204 -0
  116. package/fesm2022/neural-ui-core-stepper.mjs.map +1 -0
  117. package/fesm2022/neural-ui-core-switch.mjs +111 -0
  118. package/fesm2022/neural-ui-core-switch.mjs.map +1 -0
  119. package/fesm2022/neural-ui-core-table.mjs +1872 -0
  120. package/fesm2022/neural-ui-core-table.mjs.map +1 -0
  121. package/fesm2022/neural-ui-core-tabs.mjs +338 -0
  122. package/fesm2022/neural-ui-core-tabs.mjs.map +1 -0
  123. package/fesm2022/neural-ui-core-textarea.mjs +188 -0
  124. package/fesm2022/neural-ui-core-textarea.mjs.map +1 -0
  125. package/fesm2022/neural-ui-core-timeline.mjs +117 -0
  126. package/fesm2022/neural-ui-core-timeline.mjs.map +1 -0
  127. package/fesm2022/neural-ui-core-toast.mjs +171 -0
  128. package/fesm2022/neural-ui-core-toast.mjs.map +1 -0
  129. package/fesm2022/neural-ui-core-toggle-button-group.mjs +162 -0
  130. package/fesm2022/neural-ui-core-toggle-button-group.mjs.map +1 -0
  131. package/fesm2022/neural-ui-core-toolbar.mjs +67 -0
  132. package/fesm2022/neural-ui-core-toolbar.mjs.map +1 -0
  133. package/fesm2022/neural-ui-core-tooltip.mjs +151 -0
  134. package/fesm2022/neural-ui-core-tooltip.mjs.map +1 -0
  135. package/fesm2022/neural-ui-core-url-state.mjs +96 -0
  136. package/fesm2022/neural-ui-core-url-state.mjs.map +1 -0
  137. package/fesm2022/neural-ui-core-virtual-list.mjs +126 -0
  138. package/fesm2022/neural-ui-core-virtual-list.mjs.map +1 -0
  139. package/fesm2022/neural-ui-core.mjs +11 -8544
  140. package/fesm2022/neural-ui-core.mjs.map +1 -1
  141. package/filter-bar/package.json +4 -0
  142. package/icon/package.json +4 -0
  143. package/image-viewer/package.json +4 -0
  144. package/input/package.json +4 -0
  145. package/input-otp/package.json +4 -0
  146. package/knob/package.json +4 -0
  147. package/meter-group/package.json +4 -0
  148. package/modal/package.json +4 -0
  149. package/multiselect/package.json +4 -0
  150. package/nav/package.json +4 -0
  151. package/notification-center/package.json +4 -0
  152. package/number-input/package.json +4 -0
  153. package/package.json +252 -5
  154. package/pagination/package.json +4 -0
  155. package/popover/package.json +4 -0
  156. package/progress-bar/package.json +4 -0
  157. package/radio/package.json +4 -0
  158. package/rating/package.json +4 -0
  159. package/select/package.json +4 -0
  160. package/sidebar/package.json +4 -0
  161. package/skeleton/package.json +4 -0
  162. package/slider/package.json +4 -0
  163. package/spinner/package.json +4 -0
  164. package/split-button/package.json +4 -0
  165. package/splitter/package.json +4 -0
  166. package/stats-card/package.json +4 -0
  167. package/stepper/package.json +4 -0
  168. package/styles/_tokens.scss +202 -0
  169. package/styles.scss +1 -0
  170. package/switch/package.json +4 -0
  171. package/table/package.json +4 -0
  172. package/tabs/package.json +4 -0
  173. package/textarea/package.json +4 -0
  174. package/timeline/package.json +4 -0
  175. package/toast/package.json +4 -0
  176. package/toggle-button-group/package.json +4 -0
  177. package/toolbar/package.json +4 -0
  178. package/tooltip/package.json +4 -0
  179. package/types/neural-ui-core-accordion.d.ts +55 -0
  180. package/types/neural-ui-core-alert.d.ts +47 -0
  181. package/types/neural-ui-core-autocomplete.d.ts +75 -0
  182. package/types/neural-ui-core-avatar.d.ts +39 -0
  183. package/types/neural-ui-core-badge.d.ts +36 -0
  184. package/types/neural-ui-core-block-ui.d.ts +46 -0
  185. package/types/neural-ui-core-breadcrumb.d.ts +38 -0
  186. package/types/neural-ui-core-button.d.ts +55 -0
  187. package/types/neural-ui-core-card.d.ts +37 -0
  188. package/types/neural-ui-core-chart.d.ts +236 -0
  189. package/types/neural-ui-core-checkbox.d.ts +33 -0
  190. package/types/neural-ui-core-chip.d.ts +53 -0
  191. package/types/neural-ui-core-code-block.d.ts +55 -0
  192. package/types/neural-ui-core-color-picker.d.ts +55 -0
  193. package/types/neural-ui-core-command-palette.d.ts +56 -0
  194. package/types/neural-ui-core-confirm-dialog.d.ts +50 -0
  195. package/types/neural-ui-core-context-menu.d.ts +66 -0
  196. package/types/neural-ui-core-dashboard-grid.d.ts +41 -0
  197. package/types/neural-ui-core-date-input.d.ts +178 -0
  198. package/types/neural-ui-core-divider.d.ts +20 -0
  199. package/types/neural-ui-core-empty-state.d.ts +32 -0
  200. package/types/neural-ui-core-filter-bar.d.ts +49 -0
  201. package/types/neural-ui-core-icon.d.ts +33 -0
  202. package/types/neural-ui-core-image-viewer.d.ts +67 -0
  203. package/types/neural-ui-core-input-otp.d.ts +49 -0
  204. package/types/neural-ui-core-input.d.ts +86 -0
  205. package/types/neural-ui-core-knob.d.ts +68 -0
  206. package/types/neural-ui-core-meter-group.d.ts +52 -0
  207. package/types/neural-ui-core-modal.d.ts +54 -0
  208. package/types/neural-ui-core-multiselect.d.ts +138 -0
  209. package/types/neural-ui-core-nav.d.ts +69 -0
  210. package/types/neural-ui-core-notification-center.d.ts +60 -0
  211. package/types/neural-ui-core-number-input.d.ts +63 -0
  212. package/types/neural-ui-core-pagination.d.ts +30 -0
  213. package/types/neural-ui-core-popover.d.ts +73 -0
  214. package/types/neural-ui-core-progress-bar.d.ts +35 -0
  215. package/types/neural-ui-core-radio.d.ts +51 -0
  216. package/types/neural-ui-core-rating.d.ts +34 -0
  217. package/types/neural-ui-core-select.d.ts +170 -0
  218. package/types/neural-ui-core-sidebar.d.ts +57 -0
  219. package/types/neural-ui-core-skeleton.d.ts +22 -0
  220. package/types/neural-ui-core-slider.d.ts +42 -0
  221. package/types/neural-ui-core-spinner.d.ts +38 -0
  222. package/types/neural-ui-core-split-button.d.ts +65 -0
  223. package/types/neural-ui-core-splitter.d.ts +28 -0
  224. package/types/neural-ui-core-stats-card.d.ts +39 -0
  225. package/types/neural-ui-core-stepper.d.ts +51 -0
  226. package/types/neural-ui-core-switch.d.ts +34 -0
  227. package/types/neural-ui-core-table.d.ts +285 -0
  228. package/types/neural-ui-core-tabs.d.ts +88 -0
  229. package/types/neural-ui-core-textarea.d.ts +52 -0
  230. package/types/neural-ui-core-timeline.d.ts +33 -0
  231. package/types/neural-ui-core-toast.d.ts +70 -0
  232. package/types/neural-ui-core-toggle-button-group.d.ts +63 -0
  233. package/types/neural-ui-core-toolbar.d.ts +36 -0
  234. package/types/neural-ui-core-tooltip.d.ts +48 -0
  235. package/types/neural-ui-core-url-state.d.ts +58 -0
  236. package/types/neural-ui-core-virtual-list.d.ts +60 -0
  237. package/types/neural-ui-core.d.ts +3 -2105
  238. package/url-state/package.json +4 -0
  239. package/virtual-list/package.json +4 -0
@@ -0,0 +1,35 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ type NeuProgressVariant = 'primary' | 'success' | 'warning' | 'danger';
4
+ /**
5
+ * NeuralUI ProgressBar Component
6
+ *
7
+ * Barra de progreso accesible con valor, etiqueta y variantes semánticas.
8
+ * Soporte para modo indeterminado (animación continua).
9
+ *
10
+ * Uso:
11
+ * <neu-progress-bar [value]="75" />
12
+ * <neu-progress-bar [value]="75" label="Cargando..." variant="success" [showValue]="true" />
13
+ * <neu-progress-bar [indeterminate]="true" />
14
+ */
15
+ declare class NeuProgressBarComponent {
16
+ /** Valor de 0 a 100 / Value from 0 to 100 */
17
+ value: _angular_core.InputSignal<number>;
18
+ /** Variante de color / Color variant */
19
+ variant: _angular_core.InputSignal<NeuProgressVariant>;
20
+ /** Etiqueta descriptiva sobre la barra / Descriptive label above the bar */
21
+ label: _angular_core.InputSignal<string>;
22
+ /** Muestra el % a la derecha / Shows the % on the right */
23
+ showValue: _angular_core.InputSignal<boolean>;
24
+ /** Modo indeterminado (animación continua) / Indeterminate mode (continuous animation) */
25
+ indeterminate: _angular_core.InputSignal<boolean>;
26
+ /** Altura de la barra / Bar height */
27
+ size: _angular_core.InputSignal<"sm" | "md" | "lg">;
28
+ readonly clampedValue: _angular_core.Signal<number>;
29
+ readonly hostClasses: _angular_core.Signal<string>;
30
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuProgressBarComponent, never>;
31
+ 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>;
32
+ }
33
+
34
+ export { NeuProgressBarComponent };
35
+ export type { NeuProgressVariant };
@@ -0,0 +1,51 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { InjectionToken } from '@angular/core';
3
+ import { ControlValueAccessor } from '@angular/forms';
4
+ import * as _neural_ui_core_radio from '@neural-ui/core/radio';
5
+
6
+ /** Token para que neu-radio encuentre a su grupo padre / Token for neu-radio to find its parent group */
7
+ declare const NEU_RADIO_GROUP: InjectionToken<NeuRadioGroupComponent>;
8
+ declare class NeuRadioGroupComponent implements ControlValueAccessor {
9
+ readonly direction: _angular_core.InputSignal<"row" | "column">;
10
+ /** 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>. */
11
+ readonly ariaLabel: _angular_core.InputSignal<string>;
12
+ /** 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 */
13
+ readonly _name: string;
14
+ readonly _value: _angular_core.WritableSignal<unknown>;
15
+ readonly _isDisabled: _angular_core.WritableSignal<boolean>;
16
+ private _onChange;
17
+ private _onTouched;
18
+ select(value: unknown): void;
19
+ writeValue(val: unknown): void;
20
+ registerOnChange(fn: (v: unknown) => void): void;
21
+ registerOnTouched(fn: () => void): void;
22
+ setDisabledState(isDisabled: boolean): void;
23
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuRadioGroupComponent, never>;
24
+ 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>;
25
+ }
26
+
27
+ /**
28
+ * NeuralUI Radio Component
29
+ *
30
+ * Opción individual dentro de un neu-radio-group.
31
+ *
32
+ * Uso:
33
+ * <neu-radio value="opcion-a" label="Opción A" />
34
+ */
35
+ declare class NeuRadioComponent {
36
+ readonly value: _angular_core.InputSignal<unknown>;
37
+ readonly label: _angular_core.InputSignal<string>;
38
+ readonly disabled: _angular_core.InputSignal<boolean>;
39
+ readonly group: _neural_ui_core_radio.NeuRadioGroupComponent;
40
+ readonly _id: string;
41
+ /** 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` */
42
+ readonly _groupName: string;
43
+ readonly isChecked: _angular_core.Signal<boolean>;
44
+ readonly isDisabled: _angular_core.Signal<boolean>;
45
+ onSelect(): void;
46
+ onBlur(): void;
47
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuRadioComponent, never>;
48
+ 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>;
49
+ }
50
+
51
+ export { NEU_RADIO_GROUP, NeuRadioComponent, NeuRadioGroupComponent };
@@ -0,0 +1,34 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ /**
4
+ * NeuralUI Rating Component
5
+ *
6
+ * Selector de valoración con estrellas (o icono personalizable).
7
+ * Soporta valores medios (half-star) y modo solo-lectura.
8
+ *
9
+ * Uso:
10
+ * <neu-rating [value]="rating" (valueChange)="rating = $event" />
11
+ * <neu-rating [value]="4.5" [readonly]="true" />
12
+ */
13
+ declare class NeuRatingComponent {
14
+ protected readonly Math: Math;
15
+ /** Valor actual (1 a stars) / Current value (1 to stars) */
16
+ value: _angular_core.InputSignal<number>;
17
+ /** Número de estrellas / Number of stars */
18
+ stars: _angular_core.InputSignal<number>;
19
+ /** Modo solo lectura / Read-only mode */
20
+ readonly: _angular_core.InputSignal<boolean>;
21
+ /** Emite el nuevo valor al seleccionar / Emits the new value on selection */
22
+ valueChange: _angular_core.OutputEmitterRef<number>;
23
+ protected readonly hovered: _angular_core.WritableSignal<number | null>;
24
+ readonly starsArray: _angular_core.Signal<number[]>;
25
+ onHover(i: number): void;
26
+ onLeave(): void;
27
+ select(i: number): void;
28
+ isInteger(n: number): boolean;
29
+ getFill(i: number): string;
30
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuRatingComponent, never>;
31
+ 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>;
32
+ }
33
+
34
+ export { NeuRatingComponent };
@@ -0,0 +1,170 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef, Signal } from '@angular/core';
3
+ import { ControlValueAccessor } from '@angular/forms';
4
+
5
+ interface NeuSelectOption {
6
+ value: string;
7
+ label: string;
8
+ disabled?: boolean;
9
+ group?: string;
10
+ /** 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). */
11
+ data?: unknown;
12
+ }
13
+ interface NeuSelectGroup {
14
+ label: string;
15
+ options: NeuSelectOption[];
16
+ }
17
+
18
+ /**
19
+ * Directiva para personalizar el template de cada ítem del dropdown.
20
+ *
21
+ * Uso:
22
+ * ```html
23
+ * <neu-select [options]="opts" [formControl]="valueCtrl">
24
+ * <ng-template neuSelectItem let-item>
25
+ * <span class="flag flag-{{ item.value }}"></span>
26
+ * {{ item.label }}
27
+ * </ng-template>
28
+ * </neu-select>
29
+ * ```
30
+ */
31
+ declare class NeuSelectItemDirective {
32
+ readonly templateRef: TemplateRef<{
33
+ $implicit: NeuSelectOption;
34
+ }>;
35
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSelectItemDirective, never>;
36
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NeuSelectItemDirective, "[neuSelectItem]", never, {}, {}, never, never, true, never>;
37
+ }
38
+ /**
39
+ * Directiva para personalizar el template del ítem seleccionado (trigger).
40
+ *
41
+ * Uso:
42
+ * ```html
43
+ * <neu-select [options]="opts" [formControl]="valueCtrl">
44
+ * <ng-template neuSelectSelected let-item>
45
+ * <strong>{{ item?.label }}</strong>
46
+ * </ng-template>
47
+ * </neu-select>
48
+ * ```
49
+ */
50
+ declare class NeuSelectSelectedDirective {
51
+ readonly templateRef: TemplateRef<{
52
+ $implicit: NeuSelectOption | null;
53
+ }>;
54
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSelectSelectedDirective, never>;
55
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NeuSelectSelectedDirective, "[neuSelectSelected]", never, {}, {}, never, never, true, never>;
56
+ }
57
+
58
+ /**
59
+ * NeuralUI Select Component
60
+ *
61
+ * Dropdown personalizado con soporte para ControlValueAccessor y Reactive Forms.
62
+ * Puede usarse dentro de un FormGroup o con un FormControl standalone.
63
+ * Cierra automáticamente al hacer clic fuera del componente.
64
+ *
65
+ * Uso:
66
+ * readonly countryCtrl = new FormControl<string | null>(null);
67
+ * <neu-select label="País" [options]="paises" [formControl]="countryCtrl" />
68
+ *
69
+ * Uso standalone fuera de un formulario completo:
70
+ * readonly sortCtrl = new FormControl<string | null>('name');
71
+ * <neu-select label="Orden" [options]="sortOptions" [formControl]="sortCtrl" />
72
+ */
73
+ declare class NeuSelectComponent implements ControlValueAccessor {
74
+ private readonly elementRef;
75
+ private readonly _urlState;
76
+ private readonly _mobileViewportMax;
77
+ private readonly _viewportMargin;
78
+ private readonly _urlParamSignals;
79
+ private _getUrlParamSignal;
80
+ constructor();
81
+ /** @internal — ID \u00fanico para asociar label con trigger */
82
+ readonly _triggerId: string;
83
+ readonly _panelId: string;
84
+ /** Template personalizado para cada opción del dropdown / Custom template for each dropdown option */
85
+ readonly itemTpl: Signal<NeuSelectItemDirective | undefined>;
86
+ /** Template personalizado para el valor seleccionado en el trigger / Custom template for the selected value in the trigger */
87
+ readonly selectedItemTpl: Signal<NeuSelectSelectedDirective | undefined>;
88
+ /** Opciones del dropdown / Dropdown options */
89
+ options: _angular_core.InputSignal<NeuSelectOption[]>;
90
+ /** Texto del floating label / Floating label text */
91
+ label: _angular_core.InputSignal<string>;
92
+ /** Placeholder cuando no hay selección / Placeholder when there is no selection */
93
+ placeholder: _angular_core.InputSignal<string>;
94
+ /** Mensaje de error / Error message */
95
+ errorMessage: _angular_core.InputSignal<string>;
96
+ /** Texto de ayuda bajo el campo / Helper text below the field */
97
+ hint: _angular_core.InputSignal<string>;
98
+ /** Deshabilita el select / Disables the select */
99
+ disabled: _angular_core.InputSignal<boolean>;
100
+ /** 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) */
101
+ floatingLabel: _angular_core.InputSignal<boolean>;
102
+ /** Tamaño del campo: 'sm' = 36px | 'md' = 48px | 'lg' = 56px / Field size */
103
+ size: _angular_core.InputSignal<"sm" | "md" | "lg">;
104
+ /** Activa input de búsqueda/filtro en el panel / Activates the search/filter input in the panel */
105
+ searchable: _angular_core.InputSignal<boolean>;
106
+ /** Placeholder del input de búsqueda / Search input placeholder */
107
+ searchPlaceholder: _angular_core.InputSignal<string>;
108
+ /** Muestra un botón para limpiar la selección / Shows a button to clear the selection */
109
+ clearable: _angular_core.InputSignal<boolean>;
110
+ /** Texto cuando no hay opciones tras filtrar / Text when no options remain after filtering */
111
+ noResultsMessage: _angular_core.InputSignal<string>;
112
+ /** Aria-label del botón de limpiar / Aria-label for the clear button */
113
+ clearAriaLabel: _angular_core.InputSignal<string>;
114
+ /**
115
+ * Sincroniza el valor seleccionado con este query param de la URL.
116
+ * Al seleccionar una opción se añade `?{urlParam}=value` a la URL.
117
+ * Pasar `null` (default) deshabilita la sincronización.
118
+ */
119
+ urlParam: _angular_core.InputSignal<string | null>;
120
+ /**
121
+ * Emite el objeto NeuSelectOption completo (incluyendo data) al seleccionar una opción.
122
+ * Emite null al limpiar la selección.
123
+ * El valor del formControl sigue siendo string.
124
+ */
125
+ readonly selectionChange: _angular_core.OutputEmitterRef<NeuSelectOption | null>;
126
+ protected readonly _value: _angular_core.WritableSignal<string | null>;
127
+ readonly isOpen: _angular_core.WritableSignal<boolean>;
128
+ readonly searchQuery: _angular_core.WritableSignal<string>;
129
+ readonly panelPosition: _angular_core.WritableSignal<{
130
+ position: string | null;
131
+ top: string | null;
132
+ left: string | null;
133
+ width: string | null;
134
+ maxHeight: string | null;
135
+ }>;
136
+ readonly hasError: Signal<boolean>;
137
+ readonly describedBy: Signal<string | null>;
138
+ readonly filteredOptions: Signal<NeuSelectOption[]>;
139
+ readonly selectedLabel: Signal<string | null>;
140
+ readonly _selectedOption: Signal<NeuSelectOption | null>;
141
+ readonly resultsAnnouncement: Signal<string>;
142
+ private _onChange;
143
+ private _onTouched;
144
+ writeValue(val: string | null): void;
145
+ registerOnChange(fn: (v: string | null) => void): void;
146
+ registerOnTouched(fn: () => void): void;
147
+ private readonly _cvaDisabled;
148
+ setDisabledState(isDisabled: boolean): void;
149
+ readonly isDisabledFinal: Signal<boolean>;
150
+ toggle(): void;
151
+ close(): void;
152
+ /** Abre el panel y navega con flechas desde el trigger / Opens the panel and navigates with arrows from the trigger */
153
+ onTriggerKey(event: Event): void;
154
+ onTriggerActionKey(event: KeyboardEvent): void;
155
+ focusTrigger(): void;
156
+ /** Navega entre opciones con flechas / Navigates between options with arrows */
157
+ focusOptionByIndex(event: Event, current: NeuSelectOption, dir: 1 | -1): void;
158
+ clearValue(event: MouseEvent): void;
159
+ selectOption(option: NeuSelectOption): void;
160
+ onDocumentClick(event: MouseEvent): void;
161
+ onWindowResize(): void;
162
+ onWindowScroll(): void;
163
+ private syncPanelPosition;
164
+ private resetPanelPosition;
165
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSelectComponent, never>;
166
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuSelectComponent, "neu-select", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "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>;
167
+ }
168
+
169
+ export { NeuSelectComponent, NeuSelectItemDirective, NeuSelectSelectedDirective };
170
+ export type { NeuSelectGroup, NeuSelectOption };
@@ -0,0 +1,57 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ /**
4
+ * NeuralUI Sidebar Component
5
+ *
6
+ * El estado abierto/cerrado se gestiona automáticamente desde la URL / The open/closed state is automatically managed from the URL
7
+ * via NeuUrlStateService (?menu=open por defecto). / via NeuUrlStateService (?menu=open by default).
8
+ *
9
+ * Modos:
10
+ * - overlay (default): panel flotante sobre el contenido con backdrop / floating panel above content with backdrop
11
+ * - persistent: sidebar fijo integrado en el layout (desktop) / fixed sidebar integrated in the layout (desktop)
12
+ *
13
+ * Uso:
14
+ * <neu-sidebar urlParam="menu" [persistent]="isDesktop()">
15
+ * <span neu-sidebar-header>Mi App</span>
16
+ * <nav>...</nav>
17
+ * <div neu-sidebar-footer>...</div>
18
+ * </neu-sidebar>
19
+ *
20
+ * Abrir desde cualquier parte: / Open from anywhere:
21
+ * inject(NeuUrlStateService).setParam('menu', 'open', false);
22
+ */
23
+ declare class NeuSidebarComponent {
24
+ private readonly document;
25
+ private readonly urlState;
26
+ /** Posición del sidebar: izquierda o derecha de la pantalla / Sidebar position: left or right of the screen */
27
+ side: _angular_core.InputSignal<"left" | "right">;
28
+ /** QueryParam que controla el estado. Default: 'menu' (?menu=open) / QueryParam that controls the state. Default: 'menu' (?menu=open) */
29
+ urlParam: _angular_core.InputSignal<string>;
30
+ /**
31
+ * Modo persistente: el sidebar está siempre visible como parte del layout.
32
+ * Usar en desktop (≥768px). El overlay y el toggle por URL no aplican.
33
+ */
34
+ persistent: _angular_core.InputSignal<boolean>;
35
+ /**
36
+ * Ocultar la cabecera del sidebar. Útil cuando el header ya está en el layout
37
+ * principal y el sidebar persistente no necesita su propio header.
38
+ */
39
+ hideHeader: _angular_core.InputSignal<boolean>;
40
+ /** Etiqueta accesible para el <aside> / Accessible label for the <aside> */
41
+ ariaLabel: _angular_core.InputSignal<string>;
42
+ /** Etiqueta accesible para el botón cerrar / Accessible label for the close button */
43
+ closeLabel: _angular_core.InputSignal<string>;
44
+ /** Emite cuando el usuario cierra el sidebar (overlay click o botón) / Emits when the user closes the sidebar (overlay click or button) */
45
+ closeRequested: _angular_core.OutputEmitterRef<void>;
46
+ /** Signal reactivo: true si el sidebar debe mostrarse / Reactive signal: true if the sidebar should be shown */
47
+ readonly isOpen: _angular_core.Signal<boolean>;
48
+ constructor();
49
+ /** Abre el sidebar — añade ?{urlParam}=open a la URL / Opens the sidebar — adds ?{urlParam}=open to the URL */
50
+ open(replaceUrl?: boolean): void;
51
+ /** Cierra el sidebar — elimina el parámetro de la URL / Closes the sidebar — removes the URL parameter */
52
+ close(): void;
53
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSidebarComponent, never>;
54
+ 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>;
55
+ }
56
+
57
+ export { NeuSidebarComponent };
@@ -0,0 +1,22 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ /**
4
+ * NeuralUI Skeleton Component
5
+ *
6
+ * Placeholder animado para simular la carga de contenido.
7
+ *
8
+ * Uso:
9
+ * <neu-skeleton width="100%" height="20px" />
10
+ * <neu-skeleton variant="circle" width="40px" height="40px" />
11
+ * <neu-skeleton variant="text" />
12
+ */
13
+ declare class NeuSkeletonComponent {
14
+ readonly variant: _angular_core.InputSignal<"text" | "circle" | "rect">;
15
+ readonly width: _angular_core.InputSignal<string>;
16
+ readonly height: _angular_core.InputSignal<string>;
17
+ readonly borderRadius: _angular_core.InputSignal<string>;
18
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSkeletonComponent, never>;
19
+ 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>;
20
+ }
21
+
22
+ export { NeuSkeletonComponent };
@@ -0,0 +1,42 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ /**
4
+ * NeuralUI Slider Component
5
+ *
6
+ * Control deslizante accesible que envuelve el <input type="range">
7
+ * nativo con estilos personalizados y tooltips de valor.
8
+ *
9
+ * Uso:
10
+ * <neu-slider [value]="volume" (valueChange)="volume = $event" />
11
+ * <neu-slider [value]="50" [min]="0" [max]="100" [step]="5" [showValue]="true" />
12
+ */
13
+ declare class NeuSliderComponent {
14
+ private static _idCounter;
15
+ protected readonly sliderId: string;
16
+ /** Valor actual / Current value */
17
+ value: _angular_core.InputSignal<number>;
18
+ /** Valor mínimo / Minimum value */
19
+ min: _angular_core.InputSignal<number>;
20
+ /** Valor máximo / Maximum value */
21
+ max: _angular_core.InputSignal<number>;
22
+ /** Paso / Step */
23
+ step: _angular_core.InputSignal<number>;
24
+ /** Etiqueta / Label */
25
+ label: _angular_core.InputSignal<string>;
26
+ /** Muestra el valor numerico / Shows the numeric value */
27
+ showValue: _angular_core.InputSignal<boolean>;
28
+ /** Muestra min/mid/max bajo la barra / Shows min/mid/max below the bar */
29
+ showTicks: _angular_core.InputSignal<boolean>;
30
+ /** Unidad a mostrar junto al valor / Unit to display next to the value */
31
+ unit: _angular_core.InputSignal<string>;
32
+ /** Deshabilitado / Disabled */
33
+ disabled: _angular_core.InputSignal<boolean>;
34
+ /** Emite al mover el slider / Emits when the slider moves */
35
+ valueChange: _angular_core.OutputEmitterRef<number>;
36
+ readonly fillPercent: _angular_core.Signal<number>;
37
+ onInput(event: Event): void;
38
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSliderComponent, never>;
39
+ 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>;
40
+ }
41
+
42
+ export { NeuSliderComponent };
@@ -0,0 +1,38 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ type NeuSpinnerSeverity = 'primary' | 'success' | 'warning' | 'danger' | 'info';
4
+ /**
5
+ * NeuralUI Spinner Component
6
+ *
7
+ * Indicador de carga circular animado para estados de espera.
8
+ * Permite personalizar color via severity o color CSS directo.
9
+ *
10
+ * Uso básico:
11
+ * <neu-spinner />
12
+ *
13
+ * Con severity:
14
+ * <neu-spinner severity="success" size="48px" />
15
+ *
16
+ * Con color personalizado:
17
+ * <neu-spinner color="#ff6b35" strokeWidth="6" />
18
+ */
19
+ declare class NeuSpinnerComponent {
20
+ /** Variante de color semántica / Semantic color variant */
21
+ severity: _angular_core.InputSignal<NeuSpinnerSeverity>;
22
+ /** Color CSS directo — sobreescribe severity / Direct CSS color — overrides severity */
23
+ color: _angular_core.InputSignal<string>;
24
+ /** Grosor del trazo SVG (unidades SVG) / SVG stroke width (SVG units) */
25
+ strokeWidth: _angular_core.InputSignal<string>;
26
+ /** Tamaño del spinner (CSS: '40px', '2rem', etc.) / Spinner size (CSS: '40px', '2rem', etc.) */
27
+ size: _angular_core.InputSignal<string>;
28
+ /** Duración de la animación de rotación / Rotation animation duration */
29
+ animationDuration: _angular_core.InputSignal<string>;
30
+ /** Texto accesible para lectores de pantalla / Accessible text for screen readers */
31
+ ariaLabel: _angular_core.InputSignal<string>;
32
+ readonly _severityColor: _angular_core.Signal<string>;
33
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSpinnerComponent, never>;
34
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuSpinnerComponent, "neu-spinner", never, { "severity": { "alias": "severity"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "animationDuration": { "alias": "animationDuration"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
35
+ }
36
+
37
+ export { NeuSpinnerComponent };
38
+ export type { NeuSpinnerSeverity };
@@ -0,0 +1,65 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { NeuButtonVariant, NeuButtonSize } from '@neural-ui/core/button';
3
+
4
+ interface NeuSplitButtonAction {
5
+ /** Identificador único de la acción / Unique action identifier */
6
+ id: string;
7
+ /** Texto visible / Visible text */
8
+ label: string;
9
+ /** Icono opcional (SVG string o nombre) / Optional icon (SVG string or name) */
10
+ icon?: string;
11
+ /** Deshabilita esta acción individualmente / Disables this action individually */
12
+ disabled?: boolean;
13
+ /** Separador visual encima de este item / Visual separator above this item */
14
+ divider?: boolean;
15
+ }
16
+ /**
17
+ * NeuralUI SplitButton Component
18
+ *
19
+ * Botón principal con un dropdown de acciones adicionales. / Primary button with a dropdown of additional actions.
20
+ *
21
+ * Uso:
22
+ * <neu-split-button
23
+ * label="Guardar"
24
+ * [actions]="actions"
25
+ * (primaryClick)="save()"
26
+ * (actionClick)="onAction($event)"
27
+ * />
28
+ */
29
+ declare class NeuSplitButtonComponent {
30
+ private readonly el;
31
+ /** Texto del botón principal / Primary button text */
32
+ label: _angular_core.InputSignal<string>;
33
+ /** Variante visual / Visual variant */
34
+ variant: _angular_core.InputSignal<NeuButtonVariant>;
35
+ /** Tamaño / Size */
36
+ size: _angular_core.InputSignal<NeuButtonSize>;
37
+ /** Deshabilita todo el componente / Disables the entire component */
38
+ disabled: _angular_core.InputSignal<boolean>;
39
+ /** Muestra spinner en el botón principal / Shows spinner on the primary button */
40
+ loading: _angular_core.InputSignal<boolean>;
41
+ /** Acciones del dropdown / Dropdown actions */
42
+ actions: _angular_core.InputSignal<NeuSplitButtonAction[]>;
43
+ /** Aria-label del botón de desplegable / Aria-label for the dropdown button */
44
+ moreActionsAriaLabel: _angular_core.InputSignal<string>;
45
+ /** Aria-label del menú desplegable / Aria-label for the dropdown menu */
46
+ actionsAriaLabel: _angular_core.InputSignal<string>;
47
+ /** Emite al hacer click en el botón principal / Emits on primary button click */
48
+ primaryClick: _angular_core.OutputEmitterRef<MouseEvent>;
49
+ /** Emite al seleccionar una acción del dropdown / Emits when a dropdown action is selected */
50
+ actionClick: _angular_core.OutputEmitterRef<NeuSplitButtonAction>;
51
+ readonly isOpen: _angular_core.WritableSignal<boolean>;
52
+ readonly isDisabled: _angular_core.Signal<boolean>;
53
+ readonly mainClasses: _angular_core.Signal<string>;
54
+ readonly chevronClasses: _angular_core.Signal<string>;
55
+ toggleDropdown(event: MouseEvent): void;
56
+ closeDropdown(): void;
57
+ onDocumentClick(event: MouseEvent): void;
58
+ onPrimaryClick(event: MouseEvent): void;
59
+ onActionClick(action: NeuSplitButtonAction): void;
60
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSplitButtonComponent, never>;
61
+ 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>;
62
+ }
63
+
64
+ export { NeuSplitButtonComponent };
65
+ export type { NeuSplitButtonAction };
@@ -0,0 +1,28 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ type NeuSplitterDirection = 'horizontal' | 'vertical';
4
+ interface NeuSplitterPane {
5
+ size?: number;
6
+ min?: number;
7
+ max?: number;
8
+ }
9
+ declare class NeuSplitterComponent {
10
+ readonly direction: _angular_core.InputSignal<NeuSplitterDirection>;
11
+ readonly panes: _angular_core.InputSignal<NeuSplitterPane[]>;
12
+ readonly sizeChange: _angular_core.OutputEmitterRef<number[]>;
13
+ private readonly _el;
14
+ readonly _sizes: _angular_core.WritableSignal<number[]>;
15
+ constructor();
16
+ private _dragIndex;
17
+ private _dragPos;
18
+ _startDrag(e: MouseEvent, index: number): void;
19
+ _startTouchDrag(e: TouchEvent, index: number): void;
20
+ _onHandleKey(e: KeyboardEvent, index: number): void;
21
+ private _onDragMove;
22
+ private _adjustPair;
23
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSplitterComponent, never>;
24
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuSplitterComponent, "neu-splitter", never, { "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "panes": { "alias": "panes"; "required": false; "isSignal": true; }; }, { "sizeChange": "sizeChange"; }, never, ["neu-splitter-pane"], true, never>;
25
+ }
26
+
27
+ export { NeuSplitterComponent };
28
+ export type { NeuSplitterDirection, NeuSplitterPane };
@@ -0,0 +1,39 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ type NeuStatsTrend = 'up' | 'down' | 'neutral';
4
+ /**
5
+ * NeuStatsCard — Card de métrica con título, valor, tendencia y sparkline.
6
+ *
7
+ * Uso:
8
+ * <neu-stats-card
9
+ * title="Ingresos"
10
+ * value="$12,450"
11
+ * change="+12.5%"
12
+ * trend="up"
13
+ * icon="lucideDollarSign"
14
+ * [sparkData]="[30,45,38,52,60,55,70]"
15
+ * />
16
+ */
17
+ declare class NeuStatsCardComponent {
18
+ /** Título o etiqueta de la métrica. / Metric title or label. */
19
+ title: _angular_core.InputSignal<string>;
20
+ /** Valor principal formateado (p.ej. "$12,450" o "98.2%"). / Main formatted value (e.g. "$12,450" or "98.2%"). */
21
+ value: _angular_core.InputSignal<string>;
22
+ /** Cambio porcentual o absoluto (p.ej. "+12.5%" o "-3"). / Percentage or absolute change (e.g. "+12.5%" or "-3"). */
23
+ change: _angular_core.InputSignal<string>;
24
+ /** Dirección del cambio. Afecta el color del change. / Change direction. Affects the change color. */
25
+ trend: _angular_core.InputSignal<NeuStatsTrend>;
26
+ /** Texto auxiliar bajo el cambio (p.ej. "vs. mes anterior"). / Auxiliary text below the change (e.g. "vs. previous month"). */
27
+ label: _angular_core.InputSignal<string>;
28
+ /** Nombre del icono Lucide para el encabezado. / Lucide icon name for the header. */
29
+ icon: _angular_core.InputSignal<string>;
30
+ /** Array de valores numéricos para la sparkline. Mín. 2 puntos. / Array of numeric values for the sparkline. Min. 2 points. */
31
+ sparkData: _angular_core.InputSignal<number[]>;
32
+ /** @internal Genera los puntos SVG de la sparkline / Generates the SVG sparkline points */
33
+ protected readonly sparkPoints: _angular_core.Signal<string>;
34
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuStatsCardComponent, never>;
35
+ 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>;
36
+ }
37
+
38
+ export { NeuStatsCardComponent };
39
+ export type { NeuStatsTrend };