@neural-ui/core 1.7.1 → 1.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/bottom-sheet/package.json +4 -0
  2. package/confirm-popup/package.json +4 -0
  3. package/data-view/package.json +4 -0
  4. package/fesm2022/neural-ui-core-alert.mjs +48 -21
  5. package/fesm2022/neural-ui-core-alert.mjs.map +1 -1
  6. package/fesm2022/neural-ui-core-autocomplete.mjs +153 -71
  7. package/fesm2022/neural-ui-core-autocomplete.mjs.map +1 -1
  8. package/fesm2022/neural-ui-core-block-ui.mjs +2 -2
  9. package/fesm2022/neural-ui-core-block-ui.mjs.map +1 -1
  10. package/fesm2022/neural-ui-core-bottom-sheet.mjs +121 -0
  11. package/fesm2022/neural-ui-core-bottom-sheet.mjs.map +1 -0
  12. package/fesm2022/neural-ui-core-breadcrumb.mjs +2 -2
  13. package/fesm2022/neural-ui-core-breadcrumb.mjs.map +1 -1
  14. package/fesm2022/neural-ui-core-button.mjs +2 -2
  15. package/fesm2022/neural-ui-core-button.mjs.map +1 -1
  16. package/fesm2022/neural-ui-core-calendar.mjs +2 -2
  17. package/fesm2022/neural-ui-core-calendar.mjs.map +1 -1
  18. package/fesm2022/neural-ui-core-checkbox.mjs +69 -39
  19. package/fesm2022/neural-ui-core-checkbox.mjs.map +1 -1
  20. package/fesm2022/neural-ui-core-chip.mjs +2 -2
  21. package/fesm2022/neural-ui-core-chip.mjs.map +1 -1
  22. package/fesm2022/neural-ui-core-code-block.mjs +2 -2
  23. package/fesm2022/neural-ui-core-code-block.mjs.map +1 -1
  24. package/fesm2022/neural-ui-core-confirm-popup.mjs +105 -0
  25. package/fesm2022/neural-ui-core-confirm-popup.mjs.map +1 -0
  26. package/fesm2022/neural-ui-core-dashboard-grid.mjs +9 -3
  27. package/fesm2022/neural-ui-core-dashboard-grid.mjs.map +1 -1
  28. package/fesm2022/neural-ui-core-data-view.mjs +386 -0
  29. package/fesm2022/neural-ui-core-data-view.mjs.map +1 -0
  30. package/fesm2022/neural-ui-core-date-input.mjs +185 -10
  31. package/fesm2022/neural-ui-core-date-input.mjs.map +1 -1
  32. package/fesm2022/neural-ui-core-empty-state.mjs +19 -5
  33. package/fesm2022/neural-ui-core-empty-state.mjs.map +1 -1
  34. package/fesm2022/neural-ui-core-form-field.mjs +81 -0
  35. package/fesm2022/neural-ui-core-form-field.mjs.map +1 -0
  36. package/fesm2022/neural-ui-core-inline-editor.mjs +428 -0
  37. package/fesm2022/neural-ui-core-inline-editor.mjs.map +1 -0
  38. package/fesm2022/neural-ui-core-input-mask.mjs +110 -0
  39. package/fesm2022/neural-ui-core-input-mask.mjs.map +1 -0
  40. package/fesm2022/neural-ui-core-input.mjs +2 -2
  41. package/fesm2022/neural-ui-core-input.mjs.map +1 -1
  42. package/fesm2022/neural-ui-core-listbox.mjs +219 -0
  43. package/fesm2022/neural-ui-core-listbox.mjs.map +1 -0
  44. package/fesm2022/neural-ui-core-menu.mjs +229 -0
  45. package/fesm2022/neural-ui-core-menu.mjs.map +1 -0
  46. package/fesm2022/neural-ui-core-modal.mjs +34 -10
  47. package/fesm2022/neural-ui-core-modal.mjs.map +1 -1
  48. package/fesm2022/neural-ui-core-multiselect.mjs +170 -179
  49. package/fesm2022/neural-ui-core-multiselect.mjs.map +1 -1
  50. package/fesm2022/neural-ui-core-number-input.mjs +2 -2
  51. package/fesm2022/neural-ui-core-number-input.mjs.map +1 -1
  52. package/fesm2022/neural-ui-core-panel.mjs +92 -0
  53. package/fesm2022/neural-ui-core-panel.mjs.map +1 -0
  54. package/fesm2022/neural-ui-core-password.mjs +106 -0
  55. package/fesm2022/neural-ui-core-password.mjs.map +1 -0
  56. package/fesm2022/neural-ui-core-pick-list.mjs +133 -0
  57. package/fesm2022/neural-ui-core-pick-list.mjs.map +1 -0
  58. package/fesm2022/neural-ui-core-select.mjs +128 -166
  59. package/fesm2022/neural-ui-core-select.mjs.map +1 -1
  60. package/fesm2022/neural-ui-core-sidebar.mjs +14 -3
  61. package/fesm2022/neural-ui-core-sidebar.mjs.map +1 -1
  62. package/fesm2022/neural-ui-core-slider.mjs +2 -2
  63. package/fesm2022/neural-ui-core-slider.mjs.map +1 -1
  64. package/fesm2022/neural-ui-core-spinner.mjs +19 -9
  65. package/fesm2022/neural-ui-core-spinner.mjs.map +1 -1
  66. package/fesm2022/neural-ui-core-split-button.mjs +2 -2
  67. package/fesm2022/neural-ui-core-split-button.mjs.map +1 -1
  68. package/fesm2022/neural-ui-core-table.mjs +503 -62
  69. package/fesm2022/neural-ui-core-table.mjs.map +1 -1
  70. package/fesm2022/neural-ui-core-tabs.mjs +11 -4
  71. package/fesm2022/neural-ui-core-tabs.mjs.map +1 -1
  72. package/fesm2022/neural-ui-core-tags.mjs +134 -0
  73. package/fesm2022/neural-ui-core-tags.mjs.map +1 -0
  74. package/fesm2022/neural-ui-core-textarea.mjs +2 -2
  75. package/fesm2022/neural-ui-core-textarea.mjs.map +1 -1
  76. package/fesm2022/neural-ui-core-toggle-button-group.mjs +2 -2
  77. package/fesm2022/neural-ui-core-toggle-button-group.mjs.map +1 -1
  78. package/fesm2022/neural-ui-core-toolbar.mjs +16 -4
  79. package/fesm2022/neural-ui-core-toolbar.mjs.map +1 -1
  80. package/fesm2022/neural-ui-core-tree-select.mjs +259 -0
  81. package/fesm2022/neural-ui-core-tree-select.mjs.map +1 -0
  82. package/fesm2022/neural-ui-core-tree-table.mjs +267 -8
  83. package/fesm2022/neural-ui-core-tree-table.mjs.map +1 -1
  84. package/fesm2022/neural-ui-core-tree.mjs +15 -14
  85. package/fesm2022/neural-ui-core-tree.mjs.map +1 -1
  86. package/fesm2022/neural-ui-core-uploader.mjs +103 -12
  87. package/fesm2022/neural-ui-core-uploader.mjs.map +1 -1
  88. package/form-field/package.json +4 -0
  89. package/inline-editor/package.json +4 -0
  90. package/input-mask/package.json +4 -0
  91. package/listbox/package.json +4 -0
  92. package/menu/package.json +4 -0
  93. package/package.json +53 -1
  94. package/panel/package.json +4 -0
  95. package/password/package.json +4 -0
  96. package/pick-list/package.json +4 -0
  97. package/styles/_tokens.scss +33 -17
  98. package/tags/package.json +4 -0
  99. package/tree-select/package.json +4 -0
  100. package/types/neural-ui-core-alert.d.ts +2 -1
  101. package/types/neural-ui-core-autocomplete.d.ts +22 -2
  102. package/types/neural-ui-core-bottom-sheet.d.ts +20 -0
  103. package/types/neural-ui-core-checkbox.d.ts +6 -1
  104. package/types/neural-ui-core-confirm-popup.d.ts +38 -0
  105. package/types/neural-ui-core-dashboard-grid.d.ts +1 -0
  106. package/types/neural-ui-core-data-view.d.ts +95 -0
  107. package/types/neural-ui-core-date-input.d.ts +35 -5
  108. package/types/neural-ui-core-empty-state.d.ts +11 -1
  109. package/types/neural-ui-core-form-field.d.ts +33 -0
  110. package/types/neural-ui-core-inline-editor.d.ts +66 -0
  111. package/types/neural-ui-core-input-mask.d.ts +26 -0
  112. package/types/neural-ui-core-listbox.d.ts +54 -0
  113. package/types/neural-ui-core-menu.d.ts +49 -0
  114. package/types/neural-ui-core-modal.d.ts +10 -2
  115. package/types/neural-ui-core-multiselect.d.ts +10 -1
  116. package/types/neural-ui-core-panel.d.ts +25 -0
  117. package/types/neural-ui-core-password.d.ts +29 -0
  118. package/types/neural-ui-core-pick-list.d.ts +40 -0
  119. package/types/neural-ui-core-select.d.ts +7 -1
  120. package/types/neural-ui-core-sidebar.d.ts +5 -1
  121. package/types/neural-ui-core-spinner.d.ts +4 -2
  122. package/types/neural-ui-core-table.d.ts +89 -5
  123. package/types/neural-ui-core-tabs.d.ts +2 -0
  124. package/types/neural-ui-core-tags.d.ts +32 -0
  125. package/types/neural-ui-core-toolbar.d.ts +8 -2
  126. package/types/neural-ui-core-tree-select.d.ts +57 -0
  127. package/types/neural-ui-core-tree-table.d.ts +111 -4
  128. package/types/neural-ui-core-tree.d.ts +1 -1
  129. package/types/neural-ui-core-uploader.d.ts +26 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neural-ui/core",
3
- "version": "1.7.1",
3
+ "version": "1.7.3",
4
4
  "description": "Modern Angular UI component library built with signals, standalone components, and OnPush change detection.",
5
5
  "author": "PedroMorenoTrujillo",
6
6
  "keywords": [
@@ -82,6 +82,10 @@
82
82
  "types": "./types/neural-ui-core-block-ui.d.ts",
83
83
  "default": "./fesm2022/neural-ui-core-block-ui.mjs"
84
84
  },
85
+ "./bottom-sheet": {
86
+ "types": "./types/neural-ui-core-bottom-sheet.d.ts",
87
+ "default": "./fesm2022/neural-ui-core-bottom-sheet.mjs"
88
+ },
85
89
  "./breadcrumb": {
86
90
  "types": "./types/neural-ui-core-breadcrumb.d.ts",
87
91
  "default": "./fesm2022/neural-ui-core-breadcrumb.mjs"
@@ -126,6 +130,10 @@
126
130
  "types": "./types/neural-ui-core-confirm-dialog.d.ts",
127
131
  "default": "./fesm2022/neural-ui-core-confirm-dialog.mjs"
128
132
  },
133
+ "./confirm-popup": {
134
+ "types": "./types/neural-ui-core-confirm-popup.d.ts",
135
+ "default": "./fesm2022/neural-ui-core-confirm-popup.mjs"
136
+ },
129
137
  "./context-menu": {
130
138
  "types": "./types/neural-ui-core-context-menu.d.ts",
131
139
  "default": "./fesm2022/neural-ui-core-context-menu.mjs"
@@ -134,6 +142,10 @@
134
142
  "types": "./types/neural-ui-core-dashboard-grid.d.ts",
135
143
  "default": "./fesm2022/neural-ui-core-dashboard-grid.mjs"
136
144
  },
145
+ "./data-view": {
146
+ "types": "./types/neural-ui-core-data-view.d.ts",
147
+ "default": "./fesm2022/neural-ui-core-data-view.mjs"
148
+ },
137
149
  "./date-input": {
138
150
  "types": "./types/neural-ui-core-date-input.d.ts",
139
151
  "default": "./fesm2022/neural-ui-core-date-input.mjs"
@@ -150,6 +162,10 @@
150
162
  "types": "./types/neural-ui-core-filter-bar.d.ts",
151
163
  "default": "./fesm2022/neural-ui-core-filter-bar.mjs"
152
164
  },
165
+ "./form-field": {
166
+ "types": "./types/neural-ui-core-form-field.d.ts",
167
+ "default": "./fesm2022/neural-ui-core-form-field.mjs"
168
+ },
153
169
  "./icon": {
154
170
  "types": "./types/neural-ui-core-icon.d.ts",
155
171
  "default": "./fesm2022/neural-ui-core-icon.mjs"
@@ -162,10 +178,18 @@
162
178
  "types": "./types/neural-ui-core-image-viewer.d.ts",
163
179
  "default": "./fesm2022/neural-ui-core-image-viewer.mjs"
164
180
  },
181
+ "./inline-editor": {
182
+ "types": "./types/neural-ui-core-inline-editor.d.ts",
183
+ "default": "./fesm2022/neural-ui-core-inline-editor.mjs"
184
+ },
165
185
  "./input": {
166
186
  "types": "./types/neural-ui-core-input.d.ts",
167
187
  "default": "./fesm2022/neural-ui-core-input.mjs"
168
188
  },
189
+ "./input-mask": {
190
+ "types": "./types/neural-ui-core-input-mask.d.ts",
191
+ "default": "./fesm2022/neural-ui-core-input-mask.mjs"
192
+ },
169
193
  "./input-otp": {
170
194
  "types": "./types/neural-ui-core-input-otp.d.ts",
171
195
  "default": "./fesm2022/neural-ui-core-input-otp.mjs"
@@ -178,6 +202,14 @@
178
202
  "types": "./types/neural-ui-core-knob.d.ts",
179
203
  "default": "./fesm2022/neural-ui-core-knob.mjs"
180
204
  },
205
+ "./listbox": {
206
+ "types": "./types/neural-ui-core-listbox.d.ts",
207
+ "default": "./fesm2022/neural-ui-core-listbox.mjs"
208
+ },
209
+ "./menu": {
210
+ "types": "./types/neural-ui-core-menu.d.ts",
211
+ "default": "./fesm2022/neural-ui-core-menu.mjs"
212
+ },
181
213
  "./meter-group": {
182
214
  "types": "./types/neural-ui-core-meter-group.d.ts",
183
215
  "default": "./fesm2022/neural-ui-core-meter-group.mjs"
@@ -206,6 +238,18 @@
206
238
  "types": "./types/neural-ui-core-pagination.d.ts",
207
239
  "default": "./fesm2022/neural-ui-core-pagination.mjs"
208
240
  },
241
+ "./panel": {
242
+ "types": "./types/neural-ui-core-panel.d.ts",
243
+ "default": "./fesm2022/neural-ui-core-panel.mjs"
244
+ },
245
+ "./password": {
246
+ "types": "./types/neural-ui-core-password.d.ts",
247
+ "default": "./fesm2022/neural-ui-core-password.mjs"
248
+ },
249
+ "./pick-list": {
250
+ "types": "./types/neural-ui-core-pick-list.d.ts",
251
+ "default": "./fesm2022/neural-ui-core-pick-list.mjs"
252
+ },
209
253
  "./popover": {
210
254
  "types": "./types/neural-ui-core-popover.d.ts",
211
255
  "default": "./fesm2022/neural-ui-core-popover.mjs"
@@ -278,6 +322,10 @@
278
322
  "types": "./types/neural-ui-core-tabs.d.ts",
279
323
  "default": "./fesm2022/neural-ui-core-tabs.mjs"
280
324
  },
325
+ "./tags": {
326
+ "types": "./types/neural-ui-core-tags.d.ts",
327
+ "default": "./fesm2022/neural-ui-core-tags.mjs"
328
+ },
281
329
  "./textarea": {
282
330
  "types": "./types/neural-ui-core-textarea.d.ts",
283
331
  "default": "./fesm2022/neural-ui-core-textarea.mjs"
@@ -310,6 +358,10 @@
310
358
  "types": "./types/neural-ui-core-tree.d.ts",
311
359
  "default": "./fesm2022/neural-ui-core-tree.mjs"
312
360
  },
361
+ "./tree-select": {
362
+ "types": "./types/neural-ui-core-tree-select.d.ts",
363
+ "default": "./fesm2022/neural-ui-core-tree-select.mjs"
364
+ },
313
365
  "./tree-table": {
314
366
  "types": "./types/neural-ui-core-tree-table.d.ts",
315
367
  "default": "./fesm2022/neural-ui-core-tree-table.mjs"
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-panel.mjs",
3
+ "typings": "../types/neural-ui-core-panel.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-password.mjs",
3
+ "typings": "../types/neural-ui-core-password.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-pick-list.mjs",
3
+ "typings": "../types/neural-ui-core-pick-list.d.ts"
4
+ }
@@ -28,8 +28,14 @@
28
28
  // ------------------------------------------------
29
29
  --neu-bg: #f8fafc; // Slate-50 — fondo base
30
30
  --neu-surface: #ffffff; // Blanco puro — tarjetas
31
+ --neu-surface-1: var(--neu-surface); // Alias compatible para superficies base
31
32
  --neu-surface-2: #f1f5f9; // Slate-100 — fondos secundarios
32
33
  --neu-surface-3: #e2e8f0; // Slate-200 — hover, separadores
34
+ --neu-surface-raised: var(--neu-surface);
35
+ --neu-surface-hover: var(--neu-surface-2);
36
+ --neu-surface-muted: var(--neu-surface-2);
37
+ --neu-surface-inverse: #020617;
38
+ --neu-surface-rgb: 255, 255, 255;
33
39
 
34
40
  // ------------------------------------------------
35
41
  // Bordes
@@ -192,9 +198,12 @@
192
198
  --neu-alert-warning-text: var(--neu-warning-text);
193
199
  --neu-alert-warning-border: rgba(245, 158, 11, 0.2);
194
200
 
195
- --neu-alert-danger-bg: var(--neu-error-bg);
196
- --neu-alert-danger-text: var(--neu-error-text);
197
- --neu-alert-danger-border: rgba(239, 68, 68, 0.2);
201
+ --neu-alert-error-bg: var(--neu-error-bg);
202
+ --neu-alert-error-text: var(--neu-error-text);
203
+ --neu-alert-error-border: rgba(239, 68, 68, 0.2);
204
+ --neu-alert-danger-bg: var(--neu-alert-error-bg);
205
+ --neu-alert-danger-text: var(--neu-alert-error-text);
206
+ --neu-alert-danger-border: var(--neu-alert-error-border);
198
207
 
199
208
  // ------------------------------------------------
200
209
  // Popover (v1.3.0)
@@ -307,15 +316,16 @@
307
316
  // ------------------------------------------------
308
317
  --neu-code-block-bg: #1a1b26;
309
318
  --neu-code-block-bar-bg: #16161e;
310
- --neu-code-block-border: rgba(255, 255, 255, 0.06);
311
- --neu-code-block-text: #cdd6f4;
312
- --neu-code-block-accent: #7aa2f7;
319
+ --neu-code-block-border: rgba(255, 255, 255, 0.14);
320
+ --neu-code-block-text: #d9e2ff;
321
+ --neu-code-block-accent: #9ab8ff;
313
322
  --neu-code-block-muted: #565f89;
314
- --neu-code-block-copy-text: #a9b1d6;
315
- --neu-code-block-copy-hover-text: #c0caf5;
316
- --neu-code-block-copy-border: rgba(255, 255, 255, 0.1);
317
- --neu-code-block-copy-hover-bg: rgba(255, 255, 255, 0.1);
318
- --neu-code-block-copy-hover-border: rgba(255, 255, 255, 0.2);
323
+ --neu-code-block-copy-bg: rgba(255, 255, 255, 0.12);
324
+ --neu-code-block-copy-text: #d9e2ff;
325
+ --neu-code-block-copy-hover-text: #ffffff;
326
+ --neu-code-block-copy-border: rgba(255, 255, 255, 0.22);
327
+ --neu-code-block-copy-hover-bg: rgba(255, 255, 255, 0.18);
328
+ --neu-code-block-copy-hover-border: rgba(255, 255, 255, 0.34);
319
329
  }
320
330
 
321
331
  // ============================================================
@@ -329,7 +339,8 @@
329
339
  --neu-primary-light: #339dff;
330
340
  --neu-primary-50: rgba(0, 122, 255, 0.12);
331
341
  --neu-primary-100: rgba(0, 122, 255, 0.2);
332
- --neu-primary-solid: #007aff;
342
+ // Opaque blue chosen to keep white text above WCAG AA in dark surfaces.
343
+ --neu-primary-solid: #006ee6;
333
344
  --neu-primary-solid-hover: #005fcc;
334
345
 
335
346
  // ---- Fondos / Backgrounds ----
@@ -337,6 +348,8 @@
337
348
  --neu-surface: #161b22; // Tarjetas, paneles
338
349
  --neu-surface-2: #21262d; // Hover, fondos secundarios
339
350
  --neu-surface-3: #30363d; // Separadores, track de switch
351
+ --neu-surface-inverse: #e6edf3;
352
+ --neu-surface-rgb: 22, 27, 34;
340
353
 
341
354
  // ---- Bordes / Borders ----
342
355
  --neu-border: rgba(255, 255, 255, 0.08);
@@ -344,8 +357,8 @@
344
357
 
345
358
  // ---- Texto / Text ----
346
359
  --neu-text: #e6edf3; // Casi blanco — texto principal
347
- --neu-text-muted: #8b949e; // Slate-400 equivalent subtítulos
348
- --neu-text-disabled: #484f58; // Elementos deshabilitados
360
+ --neu-text-muted: #a9b2bc; // AA-safe secondary text on dark surfaces
361
+ --neu-text-disabled: #a9b2bc; // Keeps disabled form labels legible on surface-2
349
362
  --neu-knob-display-color: #f8fafc;
350
363
  --neu-knob-label-color: #8b949e;
351
364
 
@@ -391,9 +404,12 @@
391
404
  --neu-alert-warning-text: #fcd34d;
392
405
  --neu-alert-warning-border: rgba(245, 158, 11, 0.3);
393
406
 
394
- --neu-alert-danger-bg: rgba(239, 68, 68, 0.15);
395
- --neu-alert-danger-text: #fca5a5;
396
- --neu-alert-danger-border: rgba(239, 68, 68, 0.3);
407
+ --neu-alert-error-bg: rgba(239, 68, 68, 0.15);
408
+ --neu-alert-error-text: #fca5a5;
409
+ --neu-alert-error-border: rgba(239, 68, 68, 0.3);
410
+ --neu-alert-danger-bg: var(--neu-alert-error-bg);
411
+ --neu-alert-danger-text: var(--neu-alert-error-text);
412
+ --neu-alert-danger-border: var(--neu-alert-error-border);
397
413
 
398
414
  // ---- Block UI dark override (v1.3.0) ----
399
415
  --neu-block-ui-bg: rgba(13, 17, 23, 0.7);
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-tags.mjs",
3
+ "typings": "../types/neural-ui-core-tags.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-tree-select.mjs",
3
+ "typings": "../types/neural-ui-core-tree-select.d.ts"
4
+ }
@@ -28,8 +28,9 @@ declare class NeuAlertComponent {
28
28
  readonly closed: _angular_core.OutputEmitterRef<void>;
29
29
  readonly _id: string;
30
30
  readonly _dismissed: _angular_core.WritableSignal<boolean>;
31
- readonly _resolvedIcon: _angular_core.Signal<string>;
31
+ readonly _defaultIconName: _angular_core.Signal<string>;
32
32
  readonly liveRegion: _angular_core.Signal<"assertive" | "polite">;
33
+ readonly alertRole: _angular_core.Signal<"alert" | "status">;
33
34
  readonly hostClasses: _angular_core.Signal<{
34
35
  [x: string]: boolean;
35
36
  'neu-alert': boolean;
@@ -1,6 +1,7 @@
1
1
  import * as _angular_cdk_overlay from '@angular/cdk/overlay';
2
2
  import { ConnectedPosition } from '@angular/cdk/overlay';
3
3
  import * as _angular_core from '@angular/core';
4
+ import { TemplateRef } from '@angular/core';
4
5
  import { ControlValueAccessor } from '@angular/forms';
5
6
 
6
7
  interface NeuAutocompleteOption {
@@ -11,6 +12,16 @@ interface NeuAutocompleteOption {
11
12
  /** Desactiva la opción / Disables the option */
12
13
  disabled?: boolean;
13
14
  }
15
+ declare class NeuAutocompleteItemDirective {
16
+ readonly templateRef: TemplateRef<{
17
+ $implicit: NeuAutocompleteOption;
18
+ }>;
19
+ constructor(templateRef: TemplateRef<{
20
+ $implicit: NeuAutocompleteOption;
21
+ }>);
22
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuAutocompleteItemDirective, never>;
23
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NeuAutocompleteItemDirective, "ng-template[neuAutocompleteItem]", never, {}, {}, never, never, true, never>;
24
+ }
14
25
  /**
15
26
  * NeuralUI Autocomplete
16
27
  *
@@ -33,6 +44,11 @@ declare class NeuAutocompleteComponent implements ControlValueAccessor {
33
44
  readonly errorMessage: _angular_core.InputSignal<string>;
34
45
  readonly emptyLabel: _angular_core.InputSignal<string>;
35
46
  readonly minLength: _angular_core.InputSignal<number>;
47
+ readonly loading: _angular_core.InputSignal<boolean>;
48
+ readonly loadingLabel: _angular_core.InputSignal<string>;
49
+ readonly dropdown: _angular_core.InputSignal<boolean>;
50
+ readonly dropdownAriaLabel: _angular_core.InputSignal<string>;
51
+ readonly forceSelection: _angular_core.InputSignal<boolean>;
36
52
  /** 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) */
37
53
  readonly floatingLabel: _angular_core.InputSignal<boolean>;
38
54
  /** Tamaño del campo: 'sm' = 36px | 'md' = 48px | 'lg' = 56px / Field size */
@@ -45,6 +61,7 @@ declare class NeuAutocompleteComponent implements ControlValueAccessor {
45
61
  readonly optionSelected: _angular_core.OutputEmitterRef<NeuAutocompleteOption>;
46
62
  /** Emitido al cambiar el texto del input / Emitted on query change */
47
63
  readonly queryChange: _angular_core.OutputEmitterRef<string>;
64
+ readonly itemTpl: _angular_core.Signal<NeuAutocompleteItemDirective | undefined>;
48
65
  readonly _id: string;
49
66
  readonly _listId: string;
50
67
  readonly _query: _angular_core.WritableSignal<string>;
@@ -57,6 +74,7 @@ declare class NeuAutocompleteComponent implements ControlValueAccessor {
57
74
  readonly _viewportMargin = 16;
58
75
  readonly overlayPositions: ConnectedPosition[];
59
76
  private readonly _document;
77
+ private readonly _platformId;
60
78
  private readonly _overlay;
61
79
  readonly overlayScrollStrategy: _angular_cdk_overlay.RepositionScrollStrategy;
62
80
  private _onChange;
@@ -76,6 +94,7 @@ declare class NeuAutocompleteComponent implements ControlValueAccessor {
76
94
  onQueryChange(q: string): void;
77
95
  _onFocus(): void;
78
96
  _onBlur(): void;
97
+ openAll(): void;
79
98
  onKeyDown(e: KeyboardEvent): void;
80
99
  private _moveActiveIndex;
81
100
  selectOption(opt: NeuAutocompleteOption): void;
@@ -83,13 +102,14 @@ declare class NeuAutocompleteComponent implements ControlValueAccessor {
83
102
  _closePanel(): void;
84
103
  private _scrollActiveOptionIntoView;
85
104
  private _syncOverlayWidth;
105
+ private _requestFrame;
86
106
  writeValue(val: unknown): void;
87
107
  registerOnChange(fn: (v: unknown) => void): void;
88
108
  registerOnTouched(fn: () => void): void;
89
109
  setDisabledState(d: boolean): void;
90
110
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuAutocompleteComponent, never>;
91
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuAutocompleteComponent, "neu-autocomplete", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "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; }; "emptyLabel": { "alias": "emptyLabel"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualScrollVisibleItems": { "alias": "virtualScrollVisibleItems"; "required": false; "isSignal": true; }; }, { "optionSelected": "optionSelected"; "queryChange": "queryChange"; }, never, never, true, never>;
111
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuAutocompleteComponent, "neu-autocomplete", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "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; }; "emptyLabel": { "alias": "emptyLabel"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingLabel": { "alias": "loadingLabel"; "required": false; "isSignal": true; }; "dropdown": { "alias": "dropdown"; "required": false; "isSignal": true; }; "dropdownAriaLabel": { "alias": "dropdownAriaLabel"; "required": false; "isSignal": true; }; "forceSelection": { "alias": "forceSelection"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualScrollVisibleItems": { "alias": "virtualScrollVisibleItems"; "required": false; "isSignal": true; }; }, { "optionSelected": "optionSelected"; "queryChange": "queryChange"; }, ["itemTpl"], never, true, never>;
92
112
  }
93
113
 
94
- export { NeuAutocompleteComponent };
114
+ export { NeuAutocompleteComponent, NeuAutocompleteItemDirective };
95
115
  export type { NeuAutocompleteOption };
@@ -0,0 +1,20 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ type NeuBottomSheetSize = 'sm' | 'md' | 'lg' | 'full';
4
+ declare class NeuBottomSheetComponent {
5
+ readonly open: _angular_core.InputSignal<boolean>;
6
+ readonly title: _angular_core.InputSignal<string>;
7
+ readonly ariaLabel: _angular_core.InputSignal<string>;
8
+ readonly closeLabel: _angular_core.InputSignal<string>;
9
+ readonly backdrop: _angular_core.InputSignal<boolean>;
10
+ readonly disableClose: _angular_core.InputSignal<boolean>;
11
+ readonly size: _angular_core.InputSignal<NeuBottomSheetSize>;
12
+ readonly closed: _angular_core.OutputEmitterRef<void>;
13
+ requestClose(): void;
14
+ onEscape(): void;
15
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuBottomSheetComponent, never>;
16
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuBottomSheetComponent, "neu-bottom-sheet", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; "backdrop": { "alias": "backdrop"; "required": false; "isSignal": true; }; "disableClose": { "alias": "disableClose"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*"], true, never>;
17
+ }
18
+
19
+ export { NeuBottomSheetComponent };
20
+ export type { NeuBottomSheetSize };
@@ -13,11 +13,16 @@ declare class NeuCheckboxComponent implements ControlValueAccessor {
13
13
  readonly label: _angular_core.InputSignal<string>;
14
14
  readonly name: _angular_core.InputSignal<string>;
15
15
  readonly disabled: _angular_core.InputSignal<boolean>;
16
+ readonly checked: _angular_core.InputSignal<boolean | undefined>;
17
+ readonly indeterminate: _angular_core.InputSignal<boolean>;
18
+ readonly ariaLabel: _angular_core.InputSignal<string>;
19
+ readonly checkedChange: _angular_core.OutputEmitterRef<boolean>;
16
20
  readonly _id: string;
17
21
  protected readonly _checked: _angular_core.WritableSignal<boolean>;
18
22
  /** Estado disabled interno — combina el input `disabled` con el CVA setDisabledState / Internal disabled state — combines the `disabled` input with CVA setDisabledState */
19
23
  private readonly _cvaDisabled;
20
24
  protected readonly _isDisabled: _angular_core.Signal<boolean>;
25
+ protected readonly _resolvedChecked: _angular_core.Signal<boolean>;
21
26
  private _onChange;
22
27
  private _onTouched;
23
28
  onChange(event: Event): void;
@@ -27,7 +32,7 @@ declare class NeuCheckboxComponent implements ControlValueAccessor {
27
32
  registerOnTouched(fn: () => void): void;
28
33
  setDisabledState(isDisabled: boolean): void;
29
34
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuCheckboxComponent, never>;
30
- 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>;
35
+ 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; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "checkedChange": "checkedChange"; }, never, never, true, never>;
31
36
  }
32
37
 
33
38
  export { NeuCheckboxComponent };
@@ -0,0 +1,38 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ interface NeuConfirmPopupOptions {
4
+ title?: string;
5
+ message: string;
6
+ acceptLabel?: string;
7
+ rejectLabel?: string;
8
+ }
9
+ declare class NeuConfirmPopupService {
10
+ readonly state: _angular_core.WritableSignal<NeuConfirmPopupOptions | null>;
11
+ private resolver;
12
+ confirm(options: NeuConfirmPopupOptions): Promise<boolean>;
13
+ close(value: boolean): void;
14
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuConfirmPopupService, never>;
15
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<NeuConfirmPopupService>;
16
+ }
17
+ declare class NeuConfirmPopupComponent {
18
+ readonly service: NeuConfirmPopupService;
19
+ readonly open: _angular_core.InputSignal<boolean>;
20
+ readonly title: _angular_core.InputSignal<string>;
21
+ readonly message: _angular_core.InputSignal<string>;
22
+ readonly acceptLabel: _angular_core.InputSignal<string>;
23
+ readonly rejectLabel: _angular_core.InputSignal<string>;
24
+ readonly accepted: _angular_core.OutputEmitterRef<void>;
25
+ readonly rejected: _angular_core.OutputEmitterRef<void>;
26
+ constructor(service: NeuConfirmPopupService);
27
+ currentTitle(): string;
28
+ currentMessage(): string;
29
+ currentAcceptLabel(): string;
30
+ currentRejectLabel(): string;
31
+ accept(): void;
32
+ reject(): void;
33
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuConfirmPopupComponent, never>;
34
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuConfirmPopupComponent, "neu-confirm-popup", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; "acceptLabel": { "alias": "acceptLabel"; "required": false; "isSignal": true; }; "rejectLabel": { "alias": "rejectLabel"; "required": false; "isSignal": true; }; }, { "accepted": "accepted"; "rejected": "rejected"; }, never, never, true, never>;
35
+ }
36
+
37
+ export { NeuConfirmPopupComponent, NeuConfirmPopupService };
38
+ export type { NeuConfirmPopupOptions };
@@ -24,6 +24,7 @@ interface NeuDashboardTileConfig {
24
24
  */
25
25
  declare class NeuDashboardGridComponent {
26
26
  private readonly _host;
27
+ private readonly _platformId;
27
28
  readonly tiles: _angular_core.InputSignal<NeuDashboardTileConfig[]>;
28
29
  readonly columns: _angular_core.InputSignal<number>;
29
30
  /** Emitido cuando el orden cambia / Emitted when order changes */
@@ -0,0 +1,95 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef } from '@angular/core';
3
+ import { FormControl } from '@angular/forms';
4
+ import { NeuSelectOption } from '@neural-ui/core/select';
5
+
6
+ type NeuDataViewMode = 'list' | 'grid' | 'table';
7
+ type NeuDataViewSortDirection = 'asc' | 'desc';
8
+ interface NeuDataViewSortOption {
9
+ label: string;
10
+ value: string;
11
+ direction?: NeuDataViewSortDirection;
12
+ }
13
+ interface NeuDataViewPageEvent {
14
+ page: number;
15
+ pageSize: number;
16
+ }
17
+ declare class NeuDataViewItemDirective {
18
+ readonly templateRef: TemplateRef<{
19
+ $implicit: unknown;
20
+ index: number;
21
+ }>;
22
+ constructor(templateRef: TemplateRef<{
23
+ $implicit: unknown;
24
+ index: number;
25
+ }>);
26
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuDataViewItemDirective, never>;
27
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NeuDataViewItemDirective, "ng-template[neuDataViewItem]", never, {}, {}, never, never, true, never>;
28
+ }
29
+ declare class NeuDataViewHeaderDirective {
30
+ readonly templateRef: TemplateRef<void>;
31
+ constructor(templateRef: TemplateRef<void>);
32
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuDataViewHeaderDirective, never>;
33
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NeuDataViewHeaderDirective, "ng-template[neuDataViewHeader]", never, {}, {}, never, never, true, never>;
34
+ }
35
+ declare class NeuDataViewFooterDirective {
36
+ readonly templateRef: TemplateRef<void>;
37
+ constructor(templateRef: TemplateRef<void>);
38
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuDataViewFooterDirective, never>;
39
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NeuDataViewFooterDirective, "ng-template[neuDataViewFooter]", never, {}, {}, never, never, true, never>;
40
+ }
41
+ declare class NeuDataViewComponent {
42
+ private readonly _destroyRef;
43
+ readonly items: _angular_core.InputSignal<unknown[]>;
44
+ readonly mode: _angular_core.InputSignal<NeuDataViewMode>;
45
+ readonly modes: _angular_core.InputSignal<NeuDataViewMode[]>;
46
+ readonly viewSwitcher: _angular_core.InputSignal<boolean>;
47
+ readonly viewAriaLabel: _angular_core.InputSignal<string>;
48
+ readonly searchable: _angular_core.InputSignal<boolean>;
49
+ readonly searchFields: _angular_core.InputSignal<string[]>;
50
+ readonly searchPlaceholder: _angular_core.InputSignal<string>;
51
+ readonly searchAriaLabel: _angular_core.InputSignal<string>;
52
+ readonly sortOptions: _angular_core.InputSignal<NeuDataViewSortOption[]>;
53
+ readonly sortAriaLabel: _angular_core.InputSignal<string>;
54
+ readonly pagination: _angular_core.InputSignal<boolean>;
55
+ readonly pageSize: _angular_core.InputSignal<number>;
56
+ readonly emptyLabel: _angular_core.InputSignal<string>;
57
+ readonly loading: _angular_core.InputSignal<boolean>;
58
+ readonly loadingLabel: _angular_core.InputSignal<string>;
59
+ readonly previousLabel: _angular_core.InputSignal<string>;
60
+ readonly nextLabel: _angular_core.InputSignal<string>;
61
+ readonly paginationAriaLabel: _angular_core.InputSignal<string>;
62
+ readonly trackBy: _angular_core.InputSignal<(index: number, item: unknown) => unknown>;
63
+ readonly modeChange: _angular_core.OutputEmitterRef<NeuDataViewMode>;
64
+ readonly searchChange: _angular_core.OutputEmitterRef<string>;
65
+ readonly sortChange: _angular_core.OutputEmitterRef<string>;
66
+ readonly pageChange: _angular_core.OutputEmitterRef<NeuDataViewPageEvent>;
67
+ readonly itemTpl: _angular_core.Signal<NeuDataViewItemDirective | undefined>;
68
+ readonly headerTpl: _angular_core.Signal<NeuDataViewHeaderDirective | undefined>;
69
+ readonly footerTpl: _angular_core.Signal<NeuDataViewFooterDirective | undefined>;
70
+ readonly query: _angular_core.WritableSignal<string>;
71
+ readonly page: _angular_core.WritableSignal<number>;
72
+ readonly sortKey: _angular_core.WritableSignal<string>;
73
+ readonly _sortControl: FormControl<string | null>;
74
+ readonly _selectSortOptions: _angular_core.Signal<NeuSelectOption[]>;
75
+ readonly showToolbar: _angular_core.Signal<boolean>;
76
+ readonly filteredItems: _angular_core.Signal<unknown[]>;
77
+ readonly pageCount: _angular_core.Signal<number>;
78
+ readonly pagedItems: _angular_core.Signal<unknown[]>;
79
+ constructor();
80
+ setMode(mode: NeuDataViewMode): void;
81
+ setQuery(value: string): void;
82
+ setSort(value: string): void;
83
+ previousPage(): void;
84
+ nextPage(): void;
85
+ trackItem(index: number, item: unknown): unknown;
86
+ displayItem(item: unknown): string;
87
+ private setPage;
88
+ private searchableText;
89
+ private valueFor;
90
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuDataViewComponent, never>;
91
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuDataViewComponent, "neu-data-view", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "modes": { "alias": "modes"; "required": false; "isSignal": true; }; "viewSwitcher": { "alias": "viewSwitcher"; "required": false; "isSignal": true; }; "viewAriaLabel": { "alias": "viewAriaLabel"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchFields": { "alias": "searchFields"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "searchAriaLabel": { "alias": "searchAriaLabel"; "required": false; "isSignal": true; }; "sortOptions": { "alias": "sortOptions"; "required": false; "isSignal": true; }; "sortAriaLabel": { "alias": "sortAriaLabel"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "emptyLabel": { "alias": "emptyLabel"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingLabel": { "alias": "loadingLabel"; "required": false; "isSignal": true; }; "previousLabel": { "alias": "previousLabel"; "required": false; "isSignal": true; }; "nextLabel": { "alias": "nextLabel"; "required": false; "isSignal": true; }; "paginationAriaLabel": { "alias": "paginationAriaLabel"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; }, { "modeChange": "modeChange"; "searchChange": "searchChange"; "sortChange": "sortChange"; "pageChange": "pageChange"; }, ["itemTpl", "headerTpl", "footerTpl"], never, true, never>;
92
+ }
93
+
94
+ export { NeuDataViewComponent, NeuDataViewFooterDirective, NeuDataViewHeaderDirective, NeuDataViewItemDirective };
95
+ export type { NeuDataViewMode, NeuDataViewPageEvent, NeuDataViewSortDirection, NeuDataViewSortOption };