@neural-ui/core 1.6.1 → 1.6.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 (202) hide show
  1. package/accordion/package.json +4 -0
  2. package/alert/package.json +4 -0
  3. package/autocomplete/package.json +4 -0
  4. package/avatar/package.json +4 -0
  5. package/badge/package.json +4 -0
  6. package/block-ui/package.json +4 -0
  7. package/breadcrumb/package.json +4 -0
  8. package/button/package.json +4 -0
  9. package/calendar/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 +7 -11
  24. package/fesm2022/neural-ui-core-accordion.mjs.map +1 -1
  25. package/fesm2022/neural-ui-core-alert.mjs +14 -25
  26. package/fesm2022/neural-ui-core-alert.mjs.map +1 -1
  27. package/fesm2022/neural-ui-core-autocomplete.mjs +28 -53
  28. package/fesm2022/neural-ui-core-autocomplete.mjs.map +1 -1
  29. package/fesm2022/neural-ui-core-avatar.mjs +13 -23
  30. package/fesm2022/neural-ui-core-avatar.mjs.map +1 -1
  31. package/fesm2022/neural-ui-core-badge.mjs +9 -15
  32. package/fesm2022/neural-ui-core-badge.mjs.map +1 -1
  33. package/fesm2022/neural-ui-core-block-ui.mjs +11 -16
  34. package/fesm2022/neural-ui-core-block-ui.mjs.map +1 -1
  35. package/fesm2022/neural-ui-core-breadcrumb.mjs +6 -8
  36. package/fesm2022/neural-ui-core-breadcrumb.mjs.map +1 -1
  37. package/fesm2022/neural-ui-core-button.mjs +16 -29
  38. package/fesm2022/neural-ui-core-button.mjs.map +1 -1
  39. package/fesm2022/neural-ui-core-calendar.mjs +20 -37
  40. package/fesm2022/neural-ui-core-calendar.mjs.map +1 -1
  41. package/fesm2022/neural-ui-core-card.mjs +8 -13
  42. package/fesm2022/neural-ui-core-card.mjs.map +1 -1
  43. package/fesm2022/neural-ui-core-chart.mjs +24 -45
  44. package/fesm2022/neural-ui-core-chart.mjs.map +1 -1
  45. package/fesm2022/neural-ui-core-checkbox.mjs +9 -15
  46. package/fesm2022/neural-ui-core-checkbox.mjs.map +1 -1
  47. package/fesm2022/neural-ui-core-chip.mjs +13 -23
  48. package/fesm2022/neural-ui-core-chip.mjs.map +1 -1
  49. package/fesm2022/neural-ui-core-code-block.mjs +17 -31
  50. package/fesm2022/neural-ui-core-code-block.mjs.map +1 -1
  51. package/fesm2022/neural-ui-core-color-picker.mjs +11 -19
  52. package/fesm2022/neural-ui-core-color-picker.mjs.map +1 -1
  53. package/fesm2022/neural-ui-core-command-palette.mjs +11 -16
  54. package/fesm2022/neural-ui-core-command-palette.mjs.map +1 -1
  55. package/fesm2022/neural-ui-core-confirm-dialog.mjs +6 -6
  56. package/fesm2022/neural-ui-core-confirm-dialog.mjs.map +1 -1
  57. package/fesm2022/neural-ui-core-context-menu.mjs +9 -12
  58. package/fesm2022/neural-ui-core-context-menu.mjs.map +1 -1
  59. package/fesm2022/neural-ui-core-dashboard-grid.mjs +7 -11
  60. package/fesm2022/neural-ui-core-dashboard-grid.mjs.map +1 -1
  61. package/fesm2022/neural-ui-core-date-input.mjs +57 -111
  62. package/fesm2022/neural-ui-core-date-input.mjs.map +1 -1
  63. package/fesm2022/neural-ui-core-divider.mjs +5 -7
  64. package/fesm2022/neural-ui-core-divider.mjs.map +1 -1
  65. package/fesm2022/neural-ui-core-empty-state.mjs +8 -13
  66. package/fesm2022/neural-ui-core-empty-state.mjs.map +1 -1
  67. package/fesm2022/neural-ui-core-filter-bar.mjs +11 -19
  68. package/fesm2022/neural-ui-core-filter-bar.mjs.map +1 -1
  69. package/fesm2022/neural-ui-core-icon.mjs +7 -11
  70. package/fesm2022/neural-ui-core-icon.mjs.map +1 -1
  71. package/fesm2022/neural-ui-core-image-gallery.mjs +13 -23
  72. package/fesm2022/neural-ui-core-image-gallery.mjs.map +1 -1
  73. package/fesm2022/neural-ui-core-image-viewer.mjs +14 -22
  74. package/fesm2022/neural-ui-core-image-viewer.mjs.map +1 -1
  75. package/fesm2022/neural-ui-core-input-otp.mjs +11 -19
  76. package/fesm2022/neural-ui-core-input-otp.mjs.map +1 -1
  77. package/fesm2022/neural-ui-core-input.mjs +35 -67
  78. package/fesm2022/neural-ui-core-input.mjs.map +1 -1
  79. package/fesm2022/neural-ui-core-kanban.mjs +9 -15
  80. package/fesm2022/neural-ui-core-kanban.mjs.map +1 -1
  81. package/fesm2022/neural-ui-core-knob.mjs +22 -41
  82. package/fesm2022/neural-ui-core-knob.mjs.map +1 -1
  83. package/fesm2022/neural-ui-core-meter-group.mjs +13 -23
  84. package/fesm2022/neural-ui-core-meter-group.mjs.map +1 -1
  85. package/fesm2022/neural-ui-core-modal.mjs +11 -16
  86. package/fesm2022/neural-ui-core-modal.mjs.map +1 -1
  87. package/fesm2022/neural-ui-core-multiselect.mjs +39 -72
  88. package/fesm2022/neural-ui-core-multiselect.mjs.map +1 -1
  89. package/fesm2022/neural-ui-core-nav.mjs +13 -22
  90. package/fesm2022/neural-ui-core-nav.mjs.map +1 -1
  91. package/fesm2022/neural-ui-core-notification-center.mjs +9 -12
  92. package/fesm2022/neural-ui-core-notification-center.mjs.map +1 -1
  93. package/fesm2022/neural-ui-core-number-input.mjs +19 -35
  94. package/fesm2022/neural-ui-core-number-input.mjs.map +1 -1
  95. package/fesm2022/neural-ui-core-pagination.mjs +9 -15
  96. package/fesm2022/neural-ui-core-pagination.mjs.map +1 -1
  97. package/fesm2022/neural-ui-core-popover.mjs +14 -22
  98. package/fesm2022/neural-ui-core-popover.mjs.map +1 -1
  99. package/fesm2022/neural-ui-core-progress-bar.mjs +11 -19
  100. package/fesm2022/neural-ui-core-progress-bar.mjs.map +1 -1
  101. package/fesm2022/neural-ui-core-radio.mjs +15 -24
  102. package/fesm2022/neural-ui-core-radio.mjs.map +1 -1
  103. package/fesm2022/neural-ui-core-rating.mjs +8 -13
  104. package/fesm2022/neural-ui-core-rating.mjs.map +1 -1
  105. package/fesm2022/neural-ui-core-rich-text-editor.mjs +28 -53
  106. package/fesm2022/neural-ui-core-rich-text-editor.mjs.map +1 -1
  107. package/fesm2022/neural-ui-core-scheduler-gantt.mjs +22 -41
  108. package/fesm2022/neural-ui-core-scheduler-gantt.mjs.map +1 -1
  109. package/fesm2022/neural-ui-core-select.mjs +43 -77
  110. package/fesm2022/neural-ui-core-select.mjs.map +1 -1
  111. package/fesm2022/neural-ui-core-sidebar.mjs +12 -21
  112. package/fesm2022/neural-ui-core-sidebar.mjs.map +1 -1
  113. package/fesm2022/neural-ui-core-skeleton.mjs +7 -11
  114. package/fesm2022/neural-ui-core-skeleton.mjs.map +1 -1
  115. package/fesm2022/neural-ui-core-slider.mjs +13 -23
  116. package/fesm2022/neural-ui-core-slider.mjs.map +1 -1
  117. package/fesm2022/neural-ui-core-spinner.mjs +10 -17
  118. package/fesm2022/neural-ui-core-spinner.mjs.map +1 -1
  119. package/fesm2022/neural-ui-core-split-button.mjs +15 -27
  120. package/fesm2022/neural-ui-core-split-button.mjs.map +1 -1
  121. package/fesm2022/neural-ui-core-splitter.mjs +6 -9
  122. package/fesm2022/neural-ui-core-splitter.mjs.map +1 -1
  123. package/fesm2022/neural-ui-core-stats-card.mjs +11 -19
  124. package/fesm2022/neural-ui-core-stats-card.mjs.map +1 -1
  125. package/fesm2022/neural-ui-core-stepper.mjs +8 -13
  126. package/fesm2022/neural-ui-core-stepper.mjs.map +1 -1
  127. package/fesm2022/neural-ui-core-switch.mjs +9 -15
  128. package/fesm2022/neural-ui-core-switch.mjs.map +1 -1
  129. package/fesm2022/neural-ui-core-table.mjs +124 -242
  130. package/fesm2022/neural-ui-core-table.mjs.map +1 -1
  131. package/fesm2022/neural-ui-core-tabs.mjs +18 -30
  132. package/fesm2022/neural-ui-core-tabs.mjs.map +1 -1
  133. package/fesm2022/neural-ui-core-textarea.mjs +23 -43
  134. package/fesm2022/neural-ui-core-textarea.mjs.map +1 -1
  135. package/fesm2022/neural-ui-core-timeline-grid.mjs +12 -21
  136. package/fesm2022/neural-ui-core-timeline-grid.mjs.map +1 -1
  137. package/fesm2022/neural-ui-core-timeline.mjs +4 -5
  138. package/fesm2022/neural-ui-core-timeline.mjs.map +1 -1
  139. package/fesm2022/neural-ui-core-toast.mjs +8 -10
  140. package/fesm2022/neural-ui-core-toast.mjs.map +1 -1
  141. package/fesm2022/neural-ui-core-toggle-button-group.mjs +10 -17
  142. package/fesm2022/neural-ui-core-toggle-button-group.mjs.map +1 -1
  143. package/fesm2022/neural-ui-core-toolbar.mjs +8 -13
  144. package/fesm2022/neural-ui-core-toolbar.mjs.map +1 -1
  145. package/fesm2022/neural-ui-core-tooltip.mjs +11 -16
  146. package/fesm2022/neural-ui-core-tooltip.mjs.map +1 -1
  147. package/fesm2022/neural-ui-core-tree-table.mjs +30 -57
  148. package/fesm2022/neural-ui-core-tree-table.mjs.map +1 -1
  149. package/fesm2022/neural-ui-core-tree.mjs +17 -31
  150. package/fesm2022/neural-ui-core-tree.mjs.map +1 -1
  151. package/fesm2022/neural-ui-core-uploader.mjs +47 -91
  152. package/fesm2022/neural-ui-core-uploader.mjs.map +1 -1
  153. package/fesm2022/neural-ui-core-url-state.mjs +5 -7
  154. package/fesm2022/neural-ui-core-url-state.mjs.map +1 -1
  155. package/fesm2022/neural-ui-core-virtual-list.mjs +19 -32
  156. package/fesm2022/neural-ui-core-virtual-list.mjs.map +1 -1
  157. package/filter-bar/package.json +4 -0
  158. package/icon/package.json +4 -0
  159. package/image-gallery/package.json +4 -0
  160. package/image-viewer/package.json +4 -0
  161. package/input/package.json +4 -0
  162. package/input-otp/package.json +4 -0
  163. package/kanban/package.json +4 -0
  164. package/knob/package.json +4 -0
  165. package/meter-group/package.json +4 -0
  166. package/modal/package.json +4 -0
  167. package/multiselect/package.json +4 -0
  168. package/nav/package.json +4 -0
  169. package/notification-center/package.json +4 -0
  170. package/number-input/package.json +4 -0
  171. package/package.json +6 -6
  172. package/pagination/package.json +4 -0
  173. package/popover/package.json +4 -0
  174. package/progress-bar/package.json +4 -0
  175. package/radio/package.json +4 -0
  176. package/rating/package.json +4 -0
  177. package/rich-text-editor/package.json +4 -0
  178. package/scheduler-gantt/package.json +4 -0
  179. package/select/package.json +4 -0
  180. package/sidebar/package.json +4 -0
  181. package/skeleton/package.json +4 -0
  182. package/slider/package.json +4 -0
  183. package/spinner/package.json +4 -0
  184. package/split-button/package.json +4 -0
  185. package/splitter/package.json +4 -0
  186. package/stats-card/package.json +4 -0
  187. package/stepper/package.json +4 -0
  188. package/switch/package.json +4 -0
  189. package/table/package.json +4 -0
  190. package/tabs/package.json +4 -0
  191. package/textarea/package.json +4 -0
  192. package/timeline/package.json +4 -0
  193. package/timeline-grid/package.json +4 -0
  194. package/toast/package.json +4 -0
  195. package/toggle-button-group/package.json +4 -0
  196. package/toolbar/package.json +4 -0
  197. package/tooltip/package.json +4 -0
  198. package/tree/package.json +4 -0
  199. package/tree-table/package.json +4 -0
  200. package/uploader/package.json +4 -0
  201. package/url-state/package.json +4 -0
  202. package/virtual-list/package.json +4 -0
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-accordion.mjs",
3
+ "typings": "../types/neural-ui-core-accordion.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-alert.mjs",
3
+ "typings": "../types/neural-ui-core-alert.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-autocomplete.mjs",
3
+ "typings": "../types/neural-ui-core-autocomplete.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-avatar.mjs",
3
+ "typings": "../types/neural-ui-core-avatar.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-badge.mjs",
3
+ "typings": "../types/neural-ui-core-badge.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-block-ui.mjs",
3
+ "typings": "../types/neural-ui-core-block-ui.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-breadcrumb.mjs",
3
+ "typings": "../types/neural-ui-core-breadcrumb.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-button.mjs",
3
+ "typings": "../types/neural-ui-core-button.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-calendar.mjs",
3
+ "typings": "../types/neural-ui-core-calendar.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-card.mjs",
3
+ "typings": "../types/neural-ui-core-card.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-chart.mjs",
3
+ "typings": "../types/neural-ui-core-chart.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-checkbox.mjs",
3
+ "typings": "../types/neural-ui-core-checkbox.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-chip.mjs",
3
+ "typings": "../types/neural-ui-core-chip.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-code-block.mjs",
3
+ "typings": "../types/neural-ui-core-code-block.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-color-picker.mjs",
3
+ "typings": "../types/neural-ui-core-color-picker.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-command-palette.mjs",
3
+ "typings": "../types/neural-ui-core-command-palette.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-confirm-dialog.mjs",
3
+ "typings": "../types/neural-ui-core-confirm-dialog.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-context-menu.mjs",
3
+ "typings": "../types/neural-ui-core-context-menu.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-dashboard-grid.mjs",
3
+ "typings": "../types/neural-ui-core-dashboard-grid.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-date-input.mjs",
3
+ "typings": "../types/neural-ui-core-date-input.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-divider.mjs",
3
+ "typings": "../types/neural-ui-core-divider.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "module": "../fesm2022/neural-ui-core-empty-state.mjs",
3
+ "typings": "../types/neural-ui-core-empty-state.d.ts"
4
+ }
@@ -15,14 +15,11 @@ import { DomSanitizer } from '@angular/platform-browser';
15
15
  class NeuAccordionComponent {
16
16
  _sanitizer = inject(DomSanitizer);
17
17
  /** Lista de paneles / Panel list */
18
- items = input([], /* @ts-ignore */
19
- ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
18
+ items = input([], ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
20
19
  /** Permite varios paneles abiertos a la vez / Allows multiple panels open at once */
21
- multiple = input(false, /* @ts-ignore */
22
- ...(ngDevMode ? [{ debugName: "multiple" }] : /* istanbul ignore next */ []));
20
+ multiple = input(false, ...(ngDevMode ? [{ debugName: "multiple" }] : /* istanbul ignore next */ []));
23
21
  /** Borde exterior alrededor del accordion / Outer border around the accordion */
24
- bordered = input(true, /* @ts-ignore */
25
- ...(ngDevMode ? [{ debugName: "bordered" }] : /* istanbul ignore next */ []));
22
+ bordered = input(true, ...(ngDevMode ? [{ debugName: "bordered" }] : /* istanbul ignore next */ []));
26
23
  /** Emite el id del panel al abrirse/cerrarse / Emits the panel id on open/close */
27
24
  panelToggle = output();
28
25
  /**
@@ -31,8 +28,7 @@ class NeuAccordionComponent {
31
28
  * Después se vuelve un signal mutable independiente (no se resetea al cambiar items).
32
29
  */
33
30
  _expandedInit = false;
34
- _expanded = signal(new Set(), /* @ts-ignore */
35
- ...(ngDevMode ? [{ debugName: "_expanded" }] : /* istanbul ignore next */ []));
31
+ _expanded = signal(new Set(), ...(ngDevMode ? [{ debugName: "_expanded" }] : /* istanbul ignore next */ []));
36
32
  constructor() {
37
33
  // Inicialización única desde items.expanded (equivalente a linkedSignal source+computation)
38
34
  effect(() => {
@@ -64,8 +60,8 @@ class NeuAccordionComponent {
64
60
  this._expanded.set(current);
65
61
  this.panelToggle.emit({ id, expanded: willExpand });
66
62
  }
67
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NeuAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
68
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: NeuAccordionComponent, isStandalone: true, selector: "neu-accordion", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { panelToggle: "panelToggle" }, ngImport: i0, template: `
63
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: NeuAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
64
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: NeuAccordionComponent, isStandalone: true, selector: "neu-accordion", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { panelToggle: "panelToggle" }, ngImport: i0, template: `
69
65
  <div class="neu-accordion" [class.neu-accordion--bordered]="bordered()">
70
66
  @for (item of items(); track item.id) {
71
67
  <div
@@ -111,7 +107,7 @@ class NeuAccordionComponent {
111
107
  </div>
112
108
  `, isInline: true, styles: [".neu-accordion{width:100%;font-family:var(--neu-font-sans)}.neu-accordion--bordered{border:1.5px solid var(--neu-border);border-radius:var(--neu-radius-lg);overflow:hidden}.neu-accordion__item{border-bottom:1.5px solid var(--neu-border)}.neu-accordion__item:last-child{border-bottom:none}.neu-accordion__item--disabled{opacity:.45;pointer-events:none}.neu-accordion__header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--neu-space-4);padding:var(--neu-space-4) var(--neu-space-5);background:var(--neu-surface);border:none;cursor:pointer;font-family:var(--neu-font-sans);text-align:left;transition:background var(--neu-transition);outline:none}.neu-accordion__header:hover{background:var(--neu-surface-2)}.neu-accordion__header:focus-visible{outline:2px solid var(--neu-primary);outline-offset:-2px}.neu-accordion__title{font-size:var(--neu-text-base);font-weight:600;color:var(--neu-text)}.neu-accordion__chevron{display:inline-flex;flex-shrink:0;color:var(--neu-text-muted);transition:transform .25s cubic-bezier(.4,0,.2,1)}.neu-accordion__item--expanded .neu-accordion__chevron{transform:rotate(180deg)}.neu-accordion__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s cubic-bezier(.4,0,.2,1)}.neu-accordion__item--expanded .neu-accordion__panel{grid-template-rows:1fr}.neu-accordion__body{overflow:hidden;font-size:var(--neu-text-sm);color:var(--neu-text-muted);line-height:1.7;padding:0;transition:padding .28s cubic-bezier(.4,0,.2,1)}.neu-accordion__item--expanded .neu-accordion__body{padding:var(--neu-space-4) var(--neu-space-5);padding-top:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
113
109
  }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NeuAccordionComponent, decorators: [{
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: NeuAccordionComponent, decorators: [{
115
111
  type: Component,
116
112
  args: [{ selector: 'neu-accordion', imports: [], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: `
117
113
  <div class="neu-accordion" [class.neu-accordion--bordered]="bordered()">
@@ -1 +1 @@
1
- {"version":3,"file":"neural-ui-core-accordion.mjs","sources":["../../../../projects/ui-core/accordion/neu-accordion.component.ts","../../../../projects/ui-core/accordion/neural-ui-core-accordion.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n effect,\n inject,\n input,\n output,\n SecurityContext,\n signal,\n untracked,\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\nexport interface NeuAccordionItem {\n /** ID único del panel / Unique panel ID */\n id: string;\n /** Título del encabezado / Header title */\n title: string;\n /** Contenido del cuerpo (HTML o texto plano) / Body content (HTML or plain text) */\n content: string;\n /** Inicia expandido / Starts expanded */\n expanded?: boolean;\n /** Deshabilita este panel / Disables this panel */\n disabled?: boolean;\n}\n\n/**\n * NeuralUI Accordion Component\n *\n * Paneles expandibles / colapsables con animación suave.\n * Soporta modo múltiple (varios abiertos a la vez) o exclusivo. / Supports multiple (several open at once) or exclusive mode.\n *\n * Uso:\n * <neu-accordion [items]=\"items\" />\n * <neu-accordion [items]=\"items\" [multiple]=\"true\" />\n */\n@Component({\n selector: 'neu-accordion',\n imports: [],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"neu-accordion\" [class.neu-accordion--bordered]=\"bordered()\">\n @for (item of items(); track item.id) {\n <div\n class=\"neu-accordion__item\"\n [class.neu-accordion__item--expanded]=\"isExpanded(item.id)\"\n [class.neu-accordion__item--disabled]=\"item.disabled\"\n >\n <button\n class=\"neu-accordion__header\"\n type=\"button\"\n [id]=\"'neu-acc-btn-' + item.id\"\n [attr.aria-expanded]=\"isExpanded(item.id)\"\n [attr.aria-controls]=\"'neu-acc-panel-' + item.id\"\n [disabled]=\"item.disabled\"\n (click)=\"toggle(item.id)\"\n >\n <span class=\"neu-accordion__title\">{{ item.title }}</span>\n <span class=\"neu-accordion__chevron\" aria-hidden=\"true\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n </span>\n </button>\n <div\n class=\"neu-accordion__panel\"\n [id]=\"'neu-acc-panel-' + item.id\"\n role=\"region\"\n [attr.aria-labelledby]=\"'neu-acc-btn-' + item.id\"\n >\n <div class=\"neu-accordion__body\" [innerHTML]=\"sanitize(item.content)\"></div>\n </div>\n </div>\n }\n </div>\n `,\n styleUrl: './neu-accordion.component.scss',\n})\nexport class NeuAccordionComponent {\n private readonly _sanitizer = inject(DomSanitizer);\n\n /** Lista de paneles / Panel list */\n items = input<NeuAccordionItem[]>([]);\n\n /** Permite varios paneles abiertos a la vez / Allows multiple panels open at once */\n multiple = input<boolean>(false);\n\n /** Borde exterior alrededor del accordion / Outer border around the accordion */\n bordered = input<boolean>(true);\n\n /** Emite el id del panel al abrirse/cerrarse / Emits the panel id on open/close */\n panelToggle = output<{ id: string; expanded: boolean }>();\n\n /**\n * Set de IDs actualmente expandidos.\n * Se inicializa desde los ítems con `expanded: true` en el primer render.\n * Después se vuelve un signal mutable independiente (no se resetea al cambiar items).\n */\n private _expandedInit = false;\n private readonly _expanded = signal<Set<string>>(new Set());\n\n constructor() {\n // Inicialización única desde items.expanded (equivalente a linkedSignal source+computation)\n effect(() => {\n const items = this.items();\n untracked(() => {\n if (!this._expandedInit) {\n this._expanded.set(new Set(items.filter((i) => i.expanded).map((i) => i.id)));\n this._expandedInit = true;\n }\n });\n });\n }\n\n readonly isExpanded = (id: string) => this._expanded().has(id);\n\n sanitize(html: string): SafeHtml {\n return this._sanitizer.sanitize(SecurityContext.HTML, html) ?? '';\n }\n\n toggle(id: string): void {\n const current = new Set(this._expanded());\n const willExpand = !current.has(id);\n\n if (!this.multiple()) {\n current.clear();\n }\n\n if (willExpand) {\n current.add(id);\n } else {\n current.delete(id);\n }\n\n this._expanded.set(current);\n this.panelToggle.emit({ id, expanded: willExpand });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"neural-ui-core-accordion.mjs","sources":["../../../../projects/ui-core/accordion/neu-accordion.component.ts","../../../../projects/ui-core/accordion/neural-ui-core-accordion.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n effect,\n inject,\n input,\n output,\n SecurityContext,\n signal,\n untracked,\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\nexport interface NeuAccordionItem {\n /** ID único del panel / Unique panel ID */\n id: string;\n /** Título del encabezado / Header title */\n title: string;\n /** Contenido del cuerpo (HTML o texto plano) / Body content (HTML or plain text) */\n content: string;\n /** Inicia expandido / Starts expanded */\n expanded?: boolean;\n /** Deshabilita este panel / Disables this panel */\n disabled?: boolean;\n}\n\n/**\n * NeuralUI Accordion Component\n *\n * Paneles expandibles / colapsables con animación suave.\n * Soporta modo múltiple (varios abiertos a la vez) o exclusivo. / Supports multiple (several open at once) or exclusive mode.\n *\n * Uso:\n * <neu-accordion [items]=\"items\" />\n * <neu-accordion [items]=\"items\" [multiple]=\"true\" />\n */\n@Component({\n selector: 'neu-accordion',\n imports: [],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"neu-accordion\" [class.neu-accordion--bordered]=\"bordered()\">\n @for (item of items(); track item.id) {\n <div\n class=\"neu-accordion__item\"\n [class.neu-accordion__item--expanded]=\"isExpanded(item.id)\"\n [class.neu-accordion__item--disabled]=\"item.disabled\"\n >\n <button\n class=\"neu-accordion__header\"\n type=\"button\"\n [id]=\"'neu-acc-btn-' + item.id\"\n [attr.aria-expanded]=\"isExpanded(item.id)\"\n [attr.aria-controls]=\"'neu-acc-panel-' + item.id\"\n [disabled]=\"item.disabled\"\n (click)=\"toggle(item.id)\"\n >\n <span class=\"neu-accordion__title\">{{ item.title }}</span>\n <span class=\"neu-accordion__chevron\" aria-hidden=\"true\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n </span>\n </button>\n <div\n class=\"neu-accordion__panel\"\n [id]=\"'neu-acc-panel-' + item.id\"\n role=\"region\"\n [attr.aria-labelledby]=\"'neu-acc-btn-' + item.id\"\n >\n <div class=\"neu-accordion__body\" [innerHTML]=\"sanitize(item.content)\"></div>\n </div>\n </div>\n }\n </div>\n `,\n styleUrl: './neu-accordion.component.scss',\n})\nexport class NeuAccordionComponent {\n private readonly _sanitizer = inject(DomSanitizer);\n\n /** Lista de paneles / Panel list */\n items = input<NeuAccordionItem[]>([]);\n\n /** Permite varios paneles abiertos a la vez / Allows multiple panels open at once */\n multiple = input<boolean>(false);\n\n /** Borde exterior alrededor del accordion / Outer border around the accordion */\n bordered = input<boolean>(true);\n\n /** Emite el id del panel al abrirse/cerrarse / Emits the panel id on open/close */\n panelToggle = output<{ id: string; expanded: boolean }>();\n\n /**\n * Set de IDs actualmente expandidos.\n * Se inicializa desde los ítems con `expanded: true` en el primer render.\n * Después se vuelve un signal mutable independiente (no se resetea al cambiar items).\n */\n private _expandedInit = false;\n private readonly _expanded = signal<Set<string>>(new Set());\n\n constructor() {\n // Inicialización única desde items.expanded (equivalente a linkedSignal source+computation)\n effect(() => {\n const items = this.items();\n untracked(() => {\n if (!this._expandedInit) {\n this._expanded.set(new Set(items.filter((i) => i.expanded).map((i) => i.id)));\n this._expandedInit = true;\n }\n });\n });\n }\n\n readonly isExpanded = (id: string) => this._expanded().has(id);\n\n sanitize(html: string): SafeHtml {\n return this._sanitizer.sanitize(SecurityContext.HTML, html) ?? '';\n }\n\n toggle(id: string): void {\n const current = new Set(this._expanded());\n const willExpand = !current.has(id);\n\n if (!this.multiple()) {\n current.clear();\n }\n\n if (willExpand) {\n current.add(id);\n } else {\n current.delete(id);\n }\n\n this._expanded.set(current);\n this.panelToggle.emit({ id, expanded: willExpand });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;AA2BA;;;;;;;;;AASG;MAqDU,qBAAqB,CAAA;AACf,IAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC;;AAGlD,IAAA,KAAK,GAAG,KAAK,CAAqB,EAAE,4EAAC;;AAGrC,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,+EAAC;;AAGhC,IAAA,QAAQ,GAAG,KAAK,CAAU,IAAI,+EAAC;;IAG/B,WAAW,GAAG,MAAM,EAAqC;AAEzD;;;;AAIG;IACK,aAAa,GAAG,KAAK;AACZ,IAAA,SAAS,GAAG,MAAM,CAAc,IAAI,GAAG,EAAE,gFAAC;AAE3D,IAAA,WAAA,GAAA;;QAEE,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;YAC1B,SAAS,CAAC,MAAK;AACb,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,oBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7E,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI;gBAC3B;AACF,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AAES,IAAA,UAAU,GAAG,CAAC,EAAU,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;AAE9D,IAAA,QAAQ,CAAC,IAAY,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;IACnE;AAEA,IAAA,MAAM,CAAC,EAAU,EAAA;QACf,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;AAEnC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACpB,OAAO,CAAC,KAAK,EAAE;QACjB;QAEA,IAAI,UAAU,EAAE;AACd,YAAA,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACjB;aAAO;AACL,YAAA,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACpB;AAEA,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;AAC3B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IACrD;wGA1DW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA/CtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,klDAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;4FAGU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBApDjC,SAAS;+BACE,eAAe,EAAA,OAAA,EAChB,EAAE,EAAA,aAAA,EACI,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,klDAAA,CAAA,EAAA;;;ACtFH;;AAEG;;;;"}
@@ -19,35 +19,25 @@ let _seq = 0;
19
19
  */
20
20
  class NeuAlertComponent {
21
21
  /** Tipo semántico / Semantic type */
22
- type = input('info', /* @ts-ignore */
23
- ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
22
+ type = input('info', ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
24
23
  /** Título opcional sobre el mensaje / Optional title above message */
25
- title = input('', /* @ts-ignore */
26
- ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
24
+ title = input('', ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
27
25
  /** Icono personalizado. Vacío = usa el icono por defecto del tipo / Custom icon. Empty = use default type icon */
28
- icon = input('', /* @ts-ignore */
29
- ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
26
+ icon = input('', ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
30
27
  /** Muestra el icono / Shows the icon */
31
- showIcon = input(true, /* @ts-ignore */
32
- ...(ngDevMode ? [{ debugName: "showIcon" }] : /* istanbul ignore next */ []));
28
+ showIcon = input(true, ...(ngDevMode ? [{ debugName: "showIcon" }] : /* istanbul ignore next */ []));
33
29
  /** Permite cerrarse / Can be dismissed */
34
- closable = input(false, /* @ts-ignore */
35
- ...(ngDevMode ? [{ debugName: "closable" }] : /* istanbul ignore next */ []));
30
+ closable = input(false, ...(ngDevMode ? [{ debugName: "closable" }] : /* istanbul ignore next */ []));
36
31
  /** Variante outline (sin fondo sólido) / Outline variant (no solid background) */
37
- outline = input(false, /* @ts-ignore */
38
- ...(ngDevMode ? [{ debugName: "outline" }] : /* istanbul ignore next */ []));
32
+ outline = input(false, ...(ngDevMode ? [{ debugName: "outline" }] : /* istanbul ignore next */ []));
39
33
  /** Aria-label para el botón de cierre / Aria-label for the close button */
40
- closeLabel = input('Cerrar alerta', /* @ts-ignore */
41
- ...(ngDevMode ? [{ debugName: "closeLabel" }] : /* istanbul ignore next */ []));
34
+ closeLabel = input('Cerrar alerta', ...(ngDevMode ? [{ debugName: "closeLabel" }] : /* istanbul ignore next */ []));
42
35
  /** Emitido cuando se descarta la alerta / Emitted when the alert is dismissed */
43
36
  closed = output();
44
37
  _id = `neu-alert-${++_seq}`;
45
- _dismissed = signal(false, /* @ts-ignore */
46
- ...(ngDevMode ? [{ debugName: "_dismissed" }] : /* istanbul ignore next */ []));
47
- _resolvedIcon = computed(() => this.icon() || DEFAULT_ICONS[this.type()], /* @ts-ignore */
48
- ...(ngDevMode ? [{ debugName: "_resolvedIcon" }] : /* istanbul ignore next */ []));
49
- liveRegion = computed(() => (this.type() === 'error' ? 'assertive' : 'polite'), /* @ts-ignore */
50
- ...(ngDevMode ? [{ debugName: "liveRegion" }] : /* istanbul ignore next */ []));
38
+ _dismissed = signal(false, ...(ngDevMode ? [{ debugName: "_dismissed" }] : /* istanbul ignore next */ []));
39
+ _resolvedIcon = computed(() => this.icon() || DEFAULT_ICONS[this.type()], ...(ngDevMode ? [{ debugName: "_resolvedIcon" }] : /* istanbul ignore next */ []));
40
+ liveRegion = computed(() => (this.type() === 'error' ? 'assertive' : 'polite'), ...(ngDevMode ? [{ debugName: "liveRegion" }] : /* istanbul ignore next */ []));
51
41
  hostClasses = computed(() => ({
52
42
  'neu-alert': true,
53
43
  [`neu-alert--${this.type()}`]: true,
@@ -55,14 +45,13 @@ class NeuAlertComponent {
55
45
  'neu-alert--closable': this.closable(),
56
46
  'neu-alert--with-icon': this.showIcon(),
57
47
  'neu-alert--dismissed': this._dismissed(),
58
- }), /* @ts-ignore */
59
- ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
48
+ }), ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
60
49
  dismiss() {
61
50
  this._dismissed.set(true);
62
51
  this.closed.emit();
63
52
  }
64
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NeuAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
65
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: NeuAlertComponent, isStandalone: true, selector: "neu-alert", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, outline: { classPropertyName: "outline", publicName: "outline", isSignal: true, isRequired: false, transformFunction: null }, closeLabel: { classPropertyName: "closeLabel", publicName: "closeLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, host: { attributes: { "role": "alert" }, properties: { "class": "hostClasses()", "attr.aria-live": "liveRegion()" } }, ngImport: i0, template: `
53
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: NeuAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
54
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: NeuAlertComponent, isStandalone: true, selector: "neu-alert", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, outline: { classPropertyName: "outline", publicName: "outline", isSignal: true, isRequired: false, transformFunction: null }, closeLabel: { classPropertyName: "closeLabel", publicName: "closeLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, host: { attributes: { "role": "alert" }, properties: { "class": "hostClasses()", "attr.aria-live": "liveRegion()" } }, ngImport: i0, template: `
66
55
  @if (!_dismissed()) {
67
56
  @if (showIcon()) {
68
57
  <span class="neu-alert__icon" aria-hidden="true">{{ _resolvedIcon() }}</span>
@@ -89,7 +78,7 @@ class NeuAlertComponent {
89
78
  }
90
79
  `, isInline: true, styles: ["@charset \"UTF-8\";.neu-alert{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-radius:var(--neu-radius-md, 8px);border:1px solid transparent;font-size:.875rem;line-height:1.5;position:relative}.neu-alert--dismissed{display:none}.neu-alert--info{background:var(--neu-alert-info-bg, #eff6ff);border-color:var(--neu-alert-info-border, #bfdbfe);color:var(--neu-alert-info-text, #1d4ed8)}.neu-alert--success{background:var(--neu-alert-success-bg, #f0fdf4);border-color:var(--neu-alert-success-border, #bbf7d0);color:var(--neu-alert-success-text, #15803d)}.neu-alert--warning{background:var(--neu-alert-warning-bg, #fffbeb);border-color:var(--neu-alert-warning-border, #fde68a);color:var(--neu-alert-warning-text, #b45309)}.neu-alert--error{background:var(--neu-alert-error-bg, #fef2f2);border-color:var(--neu-alert-error-border, #fecaca);color:var(--neu-alert-error-text, #b91c1c)}.neu-alert--outline{background:transparent}.neu-alert__icon{flex-shrink:0;font-size:1.1em;line-height:1.5;font-style:normal}.neu-alert__body{flex:1;min-width:0}.neu-alert__title{display:block;font-weight:600;margin-bottom:2px}.neu-alert__content{opacity:.9}.neu-alert__close{all:unset;cursor:pointer;flex-shrink:0;font-size:1.1rem;line-height:1;opacity:.6;transition:opacity .15s;padding:2px 4px;border-radius:var(--neu-radius-sm, 4px)}.neu-alert__close:hover{opacity:1;background:var(--neu-alert-dismiss-hover-bg)}.neu-alert__close:focus-visible{outline:2px solid var(--neu-focus-ring, #0ea5e9);outline-offset:1px;opacity:1}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
91
80
  }
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NeuAlertComponent, decorators: [{
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: NeuAlertComponent, decorators: [{
93
82
  type: Component,
94
83
  args: [{ selector: 'neu-alert', imports: [], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { '[class]': 'hostClasses()', role: 'alert', '[attr.aria-live]': 'liveRegion()' }, template: `
95
84
  @if (!_dismissed()) {
@@ -1 +1 @@
1
- {"version":3,"file":"neural-ui-core-alert.mjs","sources":["../../../../projects/ui-core/alert/neu-alert.component.ts","../../../../projects/ui-core/alert/neural-ui-core-alert.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n output,\n signal,\n} from '@angular/core';\n\nexport type NeuAlertType = 'info' | 'success' | 'warning' | 'error';\n\n/** Icono por defecto para cada tipo */\nconst DEFAULT_ICONS: Record<NeuAlertType, string> = {\n info: 'ℹ',\n success: '✓',\n warning: '⚠',\n error: '✕',\n};\n\nlet _seq = 0;\n\n/**\n * NeuralUI Alert Component\n *\n * Mensaje de alerta contextual con soporte de icono personalizado, slot de acciones y cierre.\n *\n * Uso: <neu-alert type=\"success\">Operación completada</neu-alert>\n * <neu-alert type=\"error\" [closable]=\"true\" (closed)=\"onClosed()\">Error de red</neu-alert>\n */\n@Component({\n selector: 'neu-alert',\n imports: [],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'hostClasses()', role: 'alert', '[attr.aria-live]': 'liveRegion()' },\n template: `\n @if (!_dismissed()) {\n @if (showIcon()) {\n <span class=\"neu-alert__icon\" aria-hidden=\"true\">{{ _resolvedIcon() }}</span>\n }\n <div class=\"neu-alert__body\">\n @if (title()) {\n <strong class=\"neu-alert__title\">{{ title() }}</strong>\n }\n <div class=\"neu-alert__content\">\n <ng-content />\n </div>\n <ng-content select=\"[neu-alert-actions]\" />\n </div>\n @if (closable()) {\n <button\n class=\"neu-alert__close\"\n type=\"button\"\n [attr.aria-label]=\"closeLabel()\"\n (click)=\"dismiss()\"\n >\n ×\n </button>\n }\n }\n `,\n styleUrl: './neu-alert.component.scss',\n})\nexport class NeuAlertComponent {\n /** Tipo semántico / Semantic type */\n readonly type = input<NeuAlertType>('info');\n\n /** Título opcional sobre el mensaje / Optional title above message */\n readonly title = input<string>('');\n\n /** Icono personalizado. Vacío = usa el icono por defecto del tipo / Custom icon. Empty = use default type icon */\n readonly icon = input<string>('');\n\n /** Muestra el icono / Shows the icon */\n readonly showIcon = input<boolean>(true);\n\n /** Permite cerrarse / Can be dismissed */\n readonly closable = input<boolean>(false);\n\n /** Variante outline (sin fondo sólido) / Outline variant (no solid background) */\n readonly outline = input<boolean>(false);\n\n /** Aria-label para el botón de cierre / Aria-label for the close button */\n readonly closeLabel = input<string>('Cerrar alerta');\n\n /** Emitido cuando se descarta la alerta / Emitted when the alert is dismissed */\n readonly closed = output<void>();\n\n readonly _id = `neu-alert-${++_seq}`;\n readonly _dismissed = signal(false);\n\n readonly _resolvedIcon = computed(() => this.icon() || DEFAULT_ICONS[this.type()]);\n\n readonly liveRegion = computed(() => (this.type() === 'error' ? 'assertive' : 'polite'));\n\n readonly hostClasses = computed(() => ({\n 'neu-alert': true,\n [`neu-alert--${this.type()}`]: true,\n 'neu-alert--outline': this.outline(),\n 'neu-alert--closable': this.closable(),\n 'neu-alert--with-icon': this.showIcon(),\n 'neu-alert--dismissed': this._dismissed(),\n }));\n\n dismiss(): void {\n this._dismissed.set(true);\n this.closed.emit();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"neural-ui-core-alert.mjs","sources":["../../../../projects/ui-core/alert/neu-alert.component.ts","../../../../projects/ui-core/alert/neural-ui-core-alert.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n output,\n signal,\n} from '@angular/core';\n\nexport type NeuAlertType = 'info' | 'success' | 'warning' | 'error';\n\n/** Icono por defecto para cada tipo */\nconst DEFAULT_ICONS: Record<NeuAlertType, string> = {\n info: 'ℹ',\n success: '✓',\n warning: '⚠',\n error: '✕',\n};\n\nlet _seq = 0;\n\n/**\n * NeuralUI Alert Component\n *\n * Mensaje de alerta contextual con soporte de icono personalizado, slot de acciones y cierre.\n *\n * Uso: <neu-alert type=\"success\">Operación completada</neu-alert>\n * <neu-alert type=\"error\" [closable]=\"true\" (closed)=\"onClosed()\">Error de red</neu-alert>\n */\n@Component({\n selector: 'neu-alert',\n imports: [],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class]': 'hostClasses()', role: 'alert', '[attr.aria-live]': 'liveRegion()' },\n template: `\n @if (!_dismissed()) {\n @if (showIcon()) {\n <span class=\"neu-alert__icon\" aria-hidden=\"true\">{{ _resolvedIcon() }}</span>\n }\n <div class=\"neu-alert__body\">\n @if (title()) {\n <strong class=\"neu-alert__title\">{{ title() }}</strong>\n }\n <div class=\"neu-alert__content\">\n <ng-content />\n </div>\n <ng-content select=\"[neu-alert-actions]\" />\n </div>\n @if (closable()) {\n <button\n class=\"neu-alert__close\"\n type=\"button\"\n [attr.aria-label]=\"closeLabel()\"\n (click)=\"dismiss()\"\n >\n ×\n </button>\n }\n }\n `,\n styleUrl: './neu-alert.component.scss',\n})\nexport class NeuAlertComponent {\n /** Tipo semántico / Semantic type */\n readonly type = input<NeuAlertType>('info');\n\n /** Título opcional sobre el mensaje / Optional title above message */\n readonly title = input<string>('');\n\n /** Icono personalizado. Vacío = usa el icono por defecto del tipo / Custom icon. Empty = use default type icon */\n readonly icon = input<string>('');\n\n /** Muestra el icono / Shows the icon */\n readonly showIcon = input<boolean>(true);\n\n /** Permite cerrarse / Can be dismissed */\n readonly closable = input<boolean>(false);\n\n /** Variante outline (sin fondo sólido) / Outline variant (no solid background) */\n readonly outline = input<boolean>(false);\n\n /** Aria-label para el botón de cierre / Aria-label for the close button */\n readonly closeLabel = input<string>('Cerrar alerta');\n\n /** Emitido cuando se descarta la alerta / Emitted when the alert is dismissed */\n readonly closed = output<void>();\n\n readonly _id = `neu-alert-${++_seq}`;\n readonly _dismissed = signal(false);\n\n readonly _resolvedIcon = computed(() => this.icon() || DEFAULT_ICONS[this.type()]);\n\n readonly liveRegion = computed(() => (this.type() === 'error' ? 'assertive' : 'polite'));\n\n readonly hostClasses = computed(() => ({\n 'neu-alert': true,\n [`neu-alert--${this.type()}`]: true,\n 'neu-alert--outline': this.outline(),\n 'neu-alert--closable': this.closable(),\n 'neu-alert--with-icon': this.showIcon(),\n 'neu-alert--dismissed': this._dismissed(),\n }));\n\n dismiss(): void {\n this._dismissed.set(true);\n this.closed.emit();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -23,32 +23,21 @@ let _seq = 0;
23
23
  */
24
24
  class NeuAutocompleteComponent {
25
25
  // ── Inputs / Outputs ────────────────────────────────────────────
26
- options = input([], /* @ts-ignore */
27
- ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
28
- placeholder = input('', /* @ts-ignore */
29
- ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
30
- label = input('', /* @ts-ignore */
31
- ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
32
- hint = input('', /* @ts-ignore */
33
- ...(ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []));
34
- errorMessage = input('', /* @ts-ignore */
35
- ...(ngDevMode ? [{ debugName: "errorMessage" }] : /* istanbul ignore next */ []));
36
- emptyLabel = input('Sin resultados', /* @ts-ignore */
37
- ...(ngDevMode ? [{ debugName: "emptyLabel" }] : /* istanbul ignore next */ []));
38
- minLength = input(0, /* @ts-ignore */
39
- ...(ngDevMode ? [{ debugName: "minLength" }] : /* istanbul ignore next */ []));
26
+ options = input([], ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
27
+ placeholder = input('', ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
28
+ label = input('', ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
29
+ hint = input('', ...(ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []));
30
+ errorMessage = input('', ...(ngDevMode ? [{ debugName: "errorMessage" }] : /* istanbul ignore next */ []));
31
+ emptyLabel = input('Sin resultados', ...(ngDevMode ? [{ debugName: "emptyLabel" }] : /* istanbul ignore next */ []));
32
+ minLength = input(0, ...(ngDevMode ? [{ debugName: "minLength" }] : /* istanbul ignore next */ []));
40
33
  /** 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) */
41
- floatingLabel = input(false, /* @ts-ignore */
42
- ...(ngDevMode ? [{ debugName: "floatingLabel" }] : /* istanbul ignore next */ []));
34
+ floatingLabel = input(false, ...(ngDevMode ? [{ debugName: "floatingLabel" }] : /* istanbul ignore next */ []));
43
35
  /** Tamaño del campo: 'sm' = 36px | 'md' = 48px | 'lg' = 56px / Field size */
44
- size = input('md', /* @ts-ignore */
45
- ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
36
+ size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
46
37
  /** Habilita scroll virtual para listas largas / Enables virtual scrolling for large result lists */
47
- virtualScroll = input(false, /* @ts-ignore */
48
- ...(ngDevMode ? [{ debugName: "virtualScroll" }] : /* istanbul ignore next */ []));
38
+ virtualScroll = input(false, ...(ngDevMode ? [{ debugName: "virtualScroll" }] : /* istanbul ignore next */ []));
49
39
  /** Número de resultados visibles en el viewport virtual / Number of visible results in the virtual viewport */
50
- virtualScrollVisibleItems = input(8, /* @ts-ignore */
51
- ...(ngDevMode ? [{ debugName: "virtualScrollVisibleItems" }] : /* istanbul ignore next */ []));
40
+ virtualScrollVisibleItems = input(8, ...(ngDevMode ? [{ debugName: "virtualScrollVisibleItems" }] : /* istanbul ignore next */ []));
52
41
  /** Emitido al seleccionar una opción / Emitted when an option is selected */
53
42
  optionSelected = output();
54
43
  /** Emitido al cambiar el texto del input / Emitted on query change */
@@ -56,20 +45,13 @@ class NeuAutocompleteComponent {
56
45
  // ── Internal state ───────────────────────────────────────────────
57
46
  _id = `neu-autocomplete-${++_seq}`;
58
47
  _listId = `${this._id}-list`;
59
- _query = signal('', /* @ts-ignore */
60
- ...(ngDevMode ? [{ debugName: "_query" }] : /* istanbul ignore next */ []));
61
- _isOpen = signal(false, /* @ts-ignore */
62
- ...(ngDevMode ? [{ debugName: "_isOpen" }] : /* istanbul ignore next */ []));
63
- _activeIndex = signal(-1, /* @ts-ignore */
64
- ...(ngDevMode ? [{ debugName: "_activeIndex" }] : /* istanbul ignore next */ []));
65
- _cvaDisabled = signal(false, /* @ts-ignore */
66
- ...(ngDevMode ? [{ debugName: "_cvaDisabled" }] : /* istanbul ignore next */ []));
67
- _focused = signal(false, /* @ts-ignore */
68
- ...(ngDevMode ? [{ debugName: "_focused" }] : /* istanbul ignore next */ []));
69
- _viewport = viewChild(CdkVirtualScrollViewport, /* @ts-ignore */
70
- ...(ngDevMode ? [{ debugName: "_viewport" }] : /* istanbul ignore next */ []));
71
- overlayWidth = signal(null, /* @ts-ignore */
72
- ...(ngDevMode ? [{ debugName: "overlayWidth" }] : /* istanbul ignore next */ []));
48
+ _query = signal('', ...(ngDevMode ? [{ debugName: "_query" }] : /* istanbul ignore next */ []));
49
+ _isOpen = signal(false, ...(ngDevMode ? [{ debugName: "_isOpen" }] : /* istanbul ignore next */ []));
50
+ _activeIndex = signal(-1, ...(ngDevMode ? [{ debugName: "_activeIndex" }] : /* istanbul ignore next */ []));
51
+ _cvaDisabled = signal(false, ...(ngDevMode ? [{ debugName: "_cvaDisabled" }] : /* istanbul ignore next */ []));
52
+ _focused = signal(false, ...(ngDevMode ? [{ debugName: "_focused" }] : /* istanbul ignore next */ []));
53
+ _viewport = viewChild(CdkVirtualScrollViewport, ...(ngDevMode ? [{ debugName: "_viewport" }] : /* istanbul ignore next */ []));
54
+ overlayWidth = signal(null, ...(ngDevMode ? [{ debugName: "overlayWidth" }] : /* istanbul ignore next */ []));
73
55
  _viewportMargin = 16;
74
56
  overlayPositions = [
75
57
  {
@@ -116,15 +98,12 @@ class NeuAutocompleteComponent {
116
98
  if (q.length < this.minLength())
117
99
  return [];
118
100
  return this.options().filter((o) => o.label.toLowerCase().includes(q));
119
- }, /* @ts-ignore */
120
- ...(ngDevMode ? [{ debugName: "_filtered" }] : /* istanbul ignore next */ []));
101
+ }, ...(ngDevMode ? [{ debugName: "_filtered" }] : /* istanbul ignore next */ []));
121
102
  _activeId = computed(() => {
122
103
  const i = this._activeIndex();
123
104
  return i >= 0 ? this._optionId(i) : null;
124
- }, /* @ts-ignore */
125
- ...(ngDevMode ? [{ debugName: "_activeId" }] : /* istanbul ignore next */ []));
126
- hasError = computed(() => !!this.errorMessage(), /* @ts-ignore */
127
- ...(ngDevMode ? [{ debugName: "hasError" }] : /* istanbul ignore next */ []));
105
+ }, ...(ngDevMode ? [{ debugName: "_activeId" }] : /* istanbul ignore next */ []));
106
+ hasError = computed(() => !!this.errorMessage(), ...(ngDevMode ? [{ debugName: "hasError" }] : /* istanbul ignore next */ []));
128
107
  describedBy = computed(() => {
129
108
  if (this.hasError()) {
130
109
  return `${this._id}-error`;
@@ -133,8 +112,7 @@ class NeuAutocompleteComponent {
133
112
  return `${this._id}-hint`;
134
113
  }
135
114
  return null;
136
- }, /* @ts-ignore */
137
- ...(ngDevMode ? [{ debugName: "describedBy" }] : /* istanbul ignore next */ []));
115
+ }, ...(ngDevMode ? [{ debugName: "describedBy" }] : /* istanbul ignore next */ []));
138
116
  resultsAnnouncement = computed(() => {
139
117
  const query = this._query().trim();
140
118
  if (!query || !this._isOpen()) {
@@ -145,8 +123,7 @@ class NeuAutocompleteComponent {
145
123
  return this.emptyLabel();
146
124
  }
147
125
  return total === 1 ? '1 resultado disponible' : `${total} resultados disponibles`;
148
- }, /* @ts-ignore */
149
- ...(ngDevMode ? [{ debugName: "resultsAnnouncement" }] : /* istanbul ignore next */ []));
126
+ }, ...(ngDevMode ? [{ debugName: "resultsAnnouncement" }] : /* istanbul ignore next */ []));
150
127
  virtualScrollItemSize = computed(() => {
151
128
  switch (this.size()) {
152
129
  case 'sm':
@@ -156,10 +133,8 @@ class NeuAutocompleteComponent {
156
133
  default:
157
134
  return 40;
158
135
  }
159
- }, /* @ts-ignore */
160
- ...(ngDevMode ? [{ debugName: "virtualScrollItemSize" }] : /* istanbul ignore next */ []));
161
- virtualViewportHeight = computed(() => `${this.virtualScrollVisibleItems() * this.virtualScrollItemSize()}px`, /* @ts-ignore */
162
- ...(ngDevMode ? [{ debugName: "virtualViewportHeight" }] : /* istanbul ignore next */ []));
136
+ }, ...(ngDevMode ? [{ debugName: "virtualScrollItemSize" }] : /* istanbul ignore next */ []));
137
+ virtualViewportHeight = computed(() => `${this.virtualScrollVisibleItems() * this.virtualScrollItemSize()}px`, ...(ngDevMode ? [{ debugName: "virtualViewportHeight" }] : /* istanbul ignore next */ []));
163
138
  trackByOption = (index, option) => option.value ?? option.label ?? index;
164
139
  _optionId(i) {
165
140
  return `${this._listId}-opt-${i}`;
@@ -334,8 +309,8 @@ class NeuAutocompleteComponent {
334
309
  setDisabledState(d) {
335
310
  this._cvaDisabled.set(d);
336
311
  }
337
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NeuAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
338
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: NeuAutocompleteComponent, isStandalone: true, selector: "neu-autocomplete", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, emptyLabel: { classPropertyName: "emptyLabel", publicName: "emptyLabel", isSignal: true, isRequired: false, transformFunction: null }, minLength: { classPropertyName: "minLength", publicName: "minLength", isSignal: true, isRequired: false, transformFunction: null }, floatingLabel: { classPropertyName: "floatingLabel", publicName: "floatingLabel", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: true, isRequired: false, transformFunction: null }, virtualScrollVisibleItems: { classPropertyName: "virtualScrollVisibleItems", publicName: "virtualScrollVisibleItems", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { optionSelected: "optionSelected", queryChange: "queryChange" }, host: { listeners: { "document:mousedown": "onDocClick($event)", "window:resize": "onWindowResize()" }, properties: { "class.neu-autocomplete--open": "_isOpen()", "class.neu-autocomplete--disabled": "_cvaDisabled()", "class.neu-autocomplete--floating": "floatingLabel()", "class.neu-autocomplete--focused": "_focused()", "class.neu-autocomplete--has-value": "!!_query()", "class.neu-autocomplete--sm": "size() === \"sm\"", "class.neu-autocomplete--lg": "size() === \"lg\"", "style.--neu-autocomplete-option-height": "virtualScrollItemSize() + \"px\"" }, classAttribute: "neu-autocomplete" }, providers: [
312
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: NeuAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
313
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: NeuAutocompleteComponent, isStandalone: true, selector: "neu-autocomplete", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, emptyLabel: { classPropertyName: "emptyLabel", publicName: "emptyLabel", isSignal: true, isRequired: false, transformFunction: null }, minLength: { classPropertyName: "minLength", publicName: "minLength", isSignal: true, isRequired: false, transformFunction: null }, floatingLabel: { classPropertyName: "floatingLabel", publicName: "floatingLabel", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: true, isRequired: false, transformFunction: null }, virtualScrollVisibleItems: { classPropertyName: "virtualScrollVisibleItems", publicName: "virtualScrollVisibleItems", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { optionSelected: "optionSelected", queryChange: "queryChange" }, host: { listeners: { "document:mousedown": "onDocClick($event)", "window:resize": "onWindowResize()" }, properties: { "class.neu-autocomplete--open": "_isOpen()", "class.neu-autocomplete--disabled": "_cvaDisabled()", "class.neu-autocomplete--floating": "floatingLabel()", "class.neu-autocomplete--focused": "_focused()", "class.neu-autocomplete--has-value": "!!_query()", "class.neu-autocomplete--sm": "size() === \"sm\"", "class.neu-autocomplete--lg": "size() === \"lg\"", "style.--neu-autocomplete-option-height": "virtualScrollItemSize() + \"px\"" }, classAttribute: "neu-autocomplete" }, providers: [
339
314
  {
340
315
  provide: NG_VALUE_ACCESSOR,
341
316
  useExisting: forwardRef(() => NeuAutocompleteComponent),
@@ -467,7 +442,7 @@ class NeuAutocompleteComponent {
467
442
  }
468
443
  `, isInline: true, styles: ["@charset \"UTF-8\";.neu-autocomplete{position:relative;display:block}.neu-autocomplete--disabled{opacity:.55;pointer-events:none}.neu-autocomplete--sm .neu-autocomplete__input{height:36px;font-size:var(--neu-text-sm, .875rem)}.neu-autocomplete--lg .neu-autocomplete__input{height:56px}.neu-autocomplete--floating.neu-autocomplete--focused .neu-autocomplete__input::placeholder{color:var(--neu-text-disabled, #9ca3af)}.neu-autocomplete--floating.neu-autocomplete--focused .neu-autocomplete__input{border-color:var(--neu-primary, #0ea5e9);box-shadow:var(--neu-focus-ring, 0 0 0 3px rgba(14, 165, 233, .2))}.neu-autocomplete__label{display:block;margin-bottom:6px;font-size:var(--neu-text-sm, .875rem);font-weight:500;color:var(--neu-text, #0f172a);line-height:1.4}.neu-autocomplete__input-wrap{position:relative;display:flex;align-items:center}.neu-autocomplete__input{width:100%;height:48px;padding:0 36px 0 12px;border:1.5px solid var(--neu-border, #d1d5db);border-radius:var(--neu-radius, 8px);background:var(--neu-surface, #ffffff);color:var(--neu-text, #111);font-size:.875rem;line-height:1.4;outline:none;transition:border-color var(--neu-transition, .12s),box-shadow var(--neu-transition, .12s),background-color var(--neu-transition, .12s)}.neu-autocomplete__input:hover{border-color:var(--neu-border-hover, var(--neu-border, #d1d5db))}.neu-autocomplete__input:focus,.neu-autocomplete__input:focus-visible{border-color:var(--neu-primary, #0ea5e9);box-shadow:var(--neu-focus-ring, 0 0 0 3px rgba(14, 165, 233, .2))}.neu-autocomplete__input[disabled]{background:var(--neu-surface-2, #f3f4f6);color:var(--neu-text-disabled, #9ca3af)}.neu-autocomplete--floating .neu-autocomplete__input::placeholder{color:transparent;transition:color var(--neu-transition)}.neu-autocomplete__floating-label{position:absolute;left:var(--neu-space-3, 12px);top:50%;transform:translateY(-50%);font-size:var(--neu-text-base, .875rem);color:var(--neu-text-muted, #6b7280);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - var(--neu-space-6, 24px));transition:top var(--neu-transition, .12s),font-size var(--neu-transition, .12s),color var(--neu-transition, .12s),transform var(--neu-transition, .12s),padding var(--neu-transition, .12s),background var(--neu-transition, .12s)}.neu-autocomplete--focused .neu-autocomplete__floating-label,.neu-autocomplete--has-value .neu-autocomplete__floating-label{top:0;transform:translateY(-50%);font-size:12px;font-weight:600;letter-spacing:.01em;background:var(--neu-surface, #fff);padding:0 4px;left:calc(var(--neu-space-3, 12px) - 4px)}.neu-autocomplete--focused .neu-autocomplete__floating-label{color:var(--neu-primary, #0ea5e9)}.neu-autocomplete__clear{all:unset;position:absolute;right:10px;display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:.875rem;color:var(--neu-text-muted, #6b7280);cursor:pointer}.neu-autocomplete__clear:hover{color:var(--neu-text, #111);background:var(--neu-surface-3, #e5e7eb)}.neu-autocomplete__clear:focus-visible{outline:2px solid var(--neu-primary, #0ea5e9);outline-offset:2px}.neu-autocomplete__list{all:unset;display:block;position:relative;background:var(--neu-surface, #ffffff);border:1.5px solid var(--neu-border, #e5e7eb);border-radius:var(--neu-radius-lg, 12px);box-shadow:var(--neu-shadow-lg, 0 8px 20px -4px rgba(0, 0, 0, .1));max-height:240px;overflow-y:auto;padding:6px;z-index:1000;animation:neu-ac-in 80ms ease}.neu-autocomplete__list--virtual{padding:0;overflow:hidden}@keyframes neu-ac-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.neu-autocomplete__option{display:flex;align-items:center;padding:7px 10px;min-height:var(--neu-autocomplete-option-height, 40px);box-sizing:border-box;border-radius:var(--neu-radius-md, 8px);font-size:.875rem;color:var(--neu-text, #111);cursor:pointer}.neu-autocomplete__option:hover:not(.neu-autocomplete__option--disabled){background:var(--neu-surface-2, #f3f4f6)}.neu-autocomplete__option--active{background:var(--neu-primary-50, rgba(14, 165, 233, .12));color:var(--neu-primary, #0ea5e9);font-weight:500}.neu-autocomplete__option--disabled{opacity:.4;cursor:not-allowed}.neu-autocomplete__empty{position:relative;background:var(--neu-surface, #ffffff);border:1.5px solid var(--neu-border, #e5e7eb);border-radius:var(--neu-radius-lg, 12px);padding:12px 16px;font-size:.875rem;color:var(--neu-text-muted, #6b7280);text-align:center}.neu-autocomplete__hint,.neu-autocomplete__error{margin:6px 0 0;font-size:var(--neu-text-sm, .875rem);line-height:1.4}.neu-autocomplete__hint{color:var(--neu-text-muted, #6b7280)}.neu-autocomplete__error{color:var(--neu-danger, #dc2626)}.neu-autocomplete__sr-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n"], dependencies: [{ kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i1.ɵɵCdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i1.ɵɵCdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i1.ɵɵCdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: ScrollingModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
469
444
  }
470
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NeuAutocompleteComponent, decorators: [{
445
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: NeuAutocompleteComponent, decorators: [{
471
446
  type: Component,
472
447
  args: [{ selector: 'neu-autocomplete', imports: [OverlayModule, ScrollingModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
473
448
  {