@cdevhub/ngx-tw 0.2.1 → 0.3.0

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 (139) hide show
  1. package/README.md +264 -49
  2. package/fesm2022/cdevhub-ngx-tw-accordion.mjs +11 -7
  3. package/fesm2022/cdevhub-ngx-tw-accordion.mjs.map +1 -1
  4. package/fesm2022/cdevhub-ngx-tw-alert.mjs +43 -29
  5. package/fesm2022/cdevhub-ngx-tw-alert.mjs.map +1 -1
  6. package/fesm2022/cdevhub-ngx-tw-aspect-ratio.mjs +103 -0
  7. package/fesm2022/cdevhub-ngx-tw-aspect-ratio.mjs.map +1 -0
  8. package/fesm2022/cdevhub-ngx-tw-avatar.mjs +56 -31
  9. package/fesm2022/cdevhub-ngx-tw-avatar.mjs.map +1 -1
  10. package/fesm2022/cdevhub-ngx-tw-badge.mjs +61 -35
  11. package/fesm2022/cdevhub-ngx-tw-badge.mjs.map +1 -1
  12. package/fesm2022/cdevhub-ngx-tw-breadcrumbs.mjs +154 -93
  13. package/fesm2022/cdevhub-ngx-tw-breadcrumbs.mjs.map +1 -1
  14. package/fesm2022/cdevhub-ngx-tw-button.mjs +24 -15
  15. package/fesm2022/cdevhub-ngx-tw-button.mjs.map +1 -1
  16. package/fesm2022/cdevhub-ngx-tw-calendar-luxon.mjs +3 -3
  17. package/fesm2022/cdevhub-ngx-tw-calendar-luxon.mjs.map +1 -1
  18. package/fesm2022/cdevhub-ngx-tw-calendar.mjs +408 -215
  19. package/fesm2022/cdevhub-ngx-tw-calendar.mjs.map +1 -1
  20. package/fesm2022/cdevhub-ngx-tw-card.mjs +33 -24
  21. package/fesm2022/cdevhub-ngx-tw-card.mjs.map +1 -1
  22. package/fesm2022/cdevhub-ngx-tw-carousel.mjs +144 -79
  23. package/fesm2022/cdevhub-ngx-tw-carousel.mjs.map +1 -1
  24. package/fesm2022/cdevhub-ngx-tw-checkbox.mjs +99 -47
  25. package/fesm2022/cdevhub-ngx-tw-checkbox.mjs.map +1 -1
  26. package/fesm2022/cdevhub-ngx-tw-code-block.mjs +34 -20
  27. package/fesm2022/cdevhub-ngx-tw-code-block.mjs.map +1 -1
  28. package/fesm2022/cdevhub-ngx-tw-collapsible.mjs +46 -29
  29. package/fesm2022/cdevhub-ngx-tw-collapsible.mjs.map +1 -1
  30. package/fesm2022/cdevhub-ngx-tw-combobox.mjs +195 -110
  31. package/fesm2022/cdevhub-ngx-tw-combobox.mjs.map +1 -1
  32. package/fesm2022/cdevhub-ngx-tw-command-palette.mjs +140 -73
  33. package/fesm2022/cdevhub-ngx-tw-command-palette.mjs.map +1 -1
  34. package/fesm2022/cdevhub-ngx-tw-core.mjs +16 -11
  35. package/fesm2022/cdevhub-ngx-tw-core.mjs.map +1 -1
  36. package/fesm2022/cdevhub-ngx-tw-date-picker.mjs +393 -149
  37. package/fesm2022/cdevhub-ngx-tw-date-picker.mjs.map +1 -1
  38. package/fesm2022/cdevhub-ngx-tw-date-range-picker.mjs +305 -150
  39. package/fesm2022/cdevhub-ngx-tw-date-range-picker.mjs.map +1 -1
  40. package/fesm2022/cdevhub-ngx-tw-dialog.mjs +56 -43
  41. package/fesm2022/cdevhub-ngx-tw-dialog.mjs.map +1 -1
  42. package/fesm2022/cdevhub-ngx-tw-empty-state.mjs +51 -33
  43. package/fesm2022/cdevhub-ngx-tw-empty-state.mjs.map +1 -1
  44. package/fesm2022/cdevhub-ngx-tw-file-upload.mjs +905 -0
  45. package/fesm2022/cdevhub-ngx-tw-file-upload.mjs.map +1 -0
  46. package/fesm2022/cdevhub-ngx-tw-flip-card.mjs +49 -26
  47. package/fesm2022/cdevhub-ngx-tw-flip-card.mjs.map +1 -1
  48. package/fesm2022/cdevhub-ngx-tw-form-field.mjs +133 -74
  49. package/fesm2022/cdevhub-ngx-tw-form-field.mjs.map +1 -1
  50. package/fesm2022/cdevhub-ngx-tw-icon-lucide.mjs +2 -2
  51. package/fesm2022/cdevhub-ngx-tw-icon-lucide.mjs.map +1 -1
  52. package/fesm2022/cdevhub-ngx-tw-icon.mjs +28 -17
  53. package/fesm2022/cdevhub-ngx-tw-icon.mjs.map +1 -1
  54. package/fesm2022/cdevhub-ngx-tw-input.mjs +37 -21
  55. package/fesm2022/cdevhub-ngx-tw-input.mjs.map +1 -1
  56. package/fesm2022/cdevhub-ngx-tw-item.mjs +33 -24
  57. package/fesm2022/cdevhub-ngx-tw-item.mjs.map +1 -1
  58. package/fesm2022/cdevhub-ngx-tw-menu.mjs +63 -48
  59. package/fesm2022/cdevhub-ngx-tw-menu.mjs.map +1 -1
  60. package/fesm2022/cdevhub-ngx-tw-number-input.mjs +622 -0
  61. package/fesm2022/cdevhub-ngx-tw-number-input.mjs.map +1 -0
  62. package/fesm2022/cdevhub-ngx-tw-paginator.mjs +137 -71
  63. package/fesm2022/cdevhub-ngx-tw-paginator.mjs.map +1 -1
  64. package/fesm2022/cdevhub-ngx-tw-popover.mjs +101 -46
  65. package/fesm2022/cdevhub-ngx-tw-popover.mjs.map +1 -1
  66. package/fesm2022/cdevhub-ngx-tw-progress-bar.mjs +57 -30
  67. package/fesm2022/cdevhub-ngx-tw-progress-bar.mjs.map +1 -1
  68. package/fesm2022/cdevhub-ngx-tw-radio.mjs +108 -57
  69. package/fesm2022/cdevhub-ngx-tw-radio.mjs.map +1 -1
  70. package/fesm2022/cdevhub-ngx-tw-segmented-control.mjs +46 -26
  71. package/fesm2022/cdevhub-ngx-tw-segmented-control.mjs.map +1 -1
  72. package/fesm2022/cdevhub-ngx-tw-select.mjs +217 -122
  73. package/fesm2022/cdevhub-ngx-tw-select.mjs.map +1 -1
  74. package/fesm2022/cdevhub-ngx-tw-separator.mjs +21 -12
  75. package/fesm2022/cdevhub-ngx-tw-separator.mjs.map +1 -1
  76. package/fesm2022/cdevhub-ngx-tw-sheet.mjs +58 -44
  77. package/fesm2022/cdevhub-ngx-tw-sheet.mjs.map +1 -1
  78. package/fesm2022/cdevhub-ngx-tw-skeleton.mjs +25 -14
  79. package/fesm2022/cdevhub-ngx-tw-skeleton.mjs.map +1 -1
  80. package/fesm2022/cdevhub-ngx-tw-slider.mjs +155 -79
  81. package/fesm2022/cdevhub-ngx-tw-slider.mjs.map +1 -1
  82. package/fesm2022/cdevhub-ngx-tw-sort.mjs +44 -25
  83. package/fesm2022/cdevhub-ngx-tw-sort.mjs.map +1 -1
  84. package/fesm2022/cdevhub-ngx-tw-spinner.mjs +29 -16
  85. package/fesm2022/cdevhub-ngx-tw-spinner.mjs.map +1 -1
  86. package/fesm2022/cdevhub-ngx-tw-split.mjs +72 -42
  87. package/fesm2022/cdevhub-ngx-tw-split.mjs.map +1 -1
  88. package/fesm2022/cdevhub-ngx-tw-stat.mjs +107 -64
  89. package/fesm2022/cdevhub-ngx-tw-stat.mjs.map +1 -1
  90. package/fesm2022/cdevhub-ngx-tw-stepper.mjs +113 -47
  91. package/fesm2022/cdevhub-ngx-tw-stepper.mjs.map +1 -1
  92. package/fesm2022/cdevhub-ngx-tw-switch.mjs +61 -32
  93. package/fesm2022/cdevhub-ngx-tw-switch.mjs.map +1 -1
  94. package/fesm2022/cdevhub-ngx-tw-tab-nav.mjs +88 -42
  95. package/fesm2022/cdevhub-ngx-tw-tab-nav.mjs.map +1 -1
  96. package/fesm2022/cdevhub-ngx-tw-table.mjs +266 -118
  97. package/fesm2022/cdevhub-ngx-tw-table.mjs.map +1 -1
  98. package/fesm2022/cdevhub-ngx-tw-tabs.mjs +101 -51
  99. package/fesm2022/cdevhub-ngx-tw-tabs.mjs.map +1 -1
  100. package/fesm2022/cdevhub-ngx-tw-tags-input.mjs +798 -0
  101. package/fesm2022/cdevhub-ngx-tw-tags-input.mjs.map +1 -0
  102. package/fesm2022/cdevhub-ngx-tw-textarea.mjs +11 -7
  103. package/fesm2022/cdevhub-ngx-tw-textarea.mjs.map +1 -1
  104. package/fesm2022/cdevhub-ngx-tw-theme.mjs +22 -14
  105. package/fesm2022/cdevhub-ngx-tw-theme.mjs.map +1 -1
  106. package/fesm2022/cdevhub-ngx-tw-time-picker.mjs +243 -95
  107. package/fesm2022/cdevhub-ngx-tw-time-picker.mjs.map +1 -1
  108. package/fesm2022/cdevhub-ngx-tw-timeline.mjs +149 -82
  109. package/fesm2022/cdevhub-ngx-tw-timeline.mjs.map +1 -1
  110. package/fesm2022/cdevhub-ngx-tw-toast.mjs +89 -55
  111. package/fesm2022/cdevhub-ngx-tw-toast.mjs.map +1 -1
  112. package/fesm2022/cdevhub-ngx-tw-tooltip.mjs +50 -28
  113. package/fesm2022/cdevhub-ngx-tw-tooltip.mjs.map +1 -1
  114. package/fesm2022/cdevhub-ngx-tw-transfer.mjs +1129 -0
  115. package/fesm2022/cdevhub-ngx-tw-transfer.mjs.map +1 -0
  116. package/fesm2022/cdevhub-ngx-tw-tree.mjs +554 -0
  117. package/fesm2022/cdevhub-ngx-tw-tree.mjs.map +1 -0
  118. package/fesm2022/cdevhub-ngx-tw.mjs +7 -0
  119. package/fesm2022/cdevhub-ngx-tw.mjs.map +1 -1
  120. package/package.json +45 -20
  121. package/theme/index.css +10 -2
  122. package/types/cdevhub-ngx-tw-aspect-ratio.d.ts +40 -0
  123. package/types/cdevhub-ngx-tw-calendar.d.ts +39 -8
  124. package/types/cdevhub-ngx-tw-command-palette.d.ts +7 -0
  125. package/types/cdevhub-ngx-tw-date-picker.d.ts +36 -10
  126. package/types/cdevhub-ngx-tw-file-upload.d.ts +250 -0
  127. package/types/cdevhub-ngx-tw-form-field.d.ts +22 -3
  128. package/types/cdevhub-ngx-tw-icon-lucide.d.ts +21 -3
  129. package/types/cdevhub-ngx-tw-number-input.d.ts +130 -0
  130. package/types/cdevhub-ngx-tw-popover.d.ts +8 -0
  131. package/types/cdevhub-ngx-tw-stepper.d.ts +30 -2
  132. package/types/cdevhub-ngx-tw-tab-nav.d.ts +8 -0
  133. package/types/cdevhub-ngx-tw-table.d.ts +30 -1
  134. package/types/cdevhub-ngx-tw-tabs.d.ts +8 -0
  135. package/types/cdevhub-ngx-tw-tags-input.d.ts +217 -0
  136. package/types/cdevhub-ngx-tw-time-picker.d.ts +31 -6
  137. package/types/cdevhub-ngx-tw-transfer.d.ts +330 -0
  138. package/types/cdevhub-ngx-tw-tree.d.ts +189 -0
  139. package/types/cdevhub-ngx-tw.d.ts +7 -0
@@ -9,7 +9,7 @@ import { ComponentPortal } from '@angular/cdk/portal';
9
9
  import { Platform } from '@angular/cdk/platform';
10
10
  import { FocusMonitor, LiveAnnouncer } from '@angular/cdk/a11y';
11
11
  import { tv } from 'tailwind-variants';
12
- import { FormFieldComponent, TW_FORM_FIELD_CONTROL } from '@cdevhub/ngx-tw/form-field';
12
+ import { TW_FORM_FIELD, TW_FORM_FIELD_CONTROL } from '@cdevhub/ngx-tw/form-field';
13
13
  import { NgTemplateOutlet } from '@angular/common';
14
14
 
15
15
  /**
@@ -23,47 +23,65 @@ class ComboboxOverlayComponent {
23
23
  hostElement = inject((ElementRef));
24
24
  // ── Config signals pushed by the parent ──
25
25
  /** @internal */
26
- listboxId = signal('', ...(ngDevMode ? [{ debugName: "listboxId" }] : /* istanbul ignore next */ []));
26
+ listboxId = signal('', /* @ts-ignore */
27
+ ...(ngDevMode ? [{ debugName: "listboxId" }] : /* istanbul ignore next */ []));
27
28
  /** @internal */
28
- labelledBy = signal('', ...(ngDevMode ? [{ debugName: "labelledBy" }] : /* istanbul ignore next */ []));
29
+ labelledBy = signal('', /* @ts-ignore */
30
+ ...(ngDevMode ? [{ debugName: "labelledBy" }] : /* istanbul ignore next */ []));
29
31
  /** @internal */
30
- panelMaxHeight = signal(256, ...(ngDevMode ? [{ debugName: "panelMaxHeight" }] : /* istanbul ignore next */ []));
32
+ panelMaxHeight = signal(256, /* @ts-ignore */
33
+ ...(ngDevMode ? [{ debugName: "panelMaxHeight" }] : /* istanbul ignore next */ []));
31
34
  /** @internal */
32
- emptyMessage = signal('No results', ...(ngDevMode ? [{ debugName: "emptyMessage" }] : /* istanbul ignore next */ []));
35
+ emptyMessage = signal('No results', /* @ts-ignore */
36
+ ...(ngDevMode ? [{ debugName: "emptyMessage" }] : /* istanbul ignore next */ []));
33
37
  /** @internal */
34
- query = signal('', ...(ngDevMode ? [{ debugName: "query" }] : /* istanbul ignore next */ []));
38
+ query = signal('', /* @ts-ignore */
39
+ ...(ngDevMode ? [{ debugName: "query" }] : /* istanbul ignore next */ []));
35
40
  /** @internal */
36
- loading = signal(false, ...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
41
+ loading = signal(false, /* @ts-ignore */
42
+ ...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
37
43
  /** @internal */
38
- activeIndex = signal(-1, ...(ngDevMode ? [{ debugName: "activeIndex" }] : /* istanbul ignore next */ []));
44
+ activeIndex = signal(-1, /* @ts-ignore */
45
+ ...(ngDevMode ? [{ debugName: "activeIndex" }] : /* istanbul ignore next */ []));
39
46
  /** @internal */
40
- renderedRows = signal([], ...(ngDevMode ? [{ debugName: "renderedRows" }] : /* istanbul ignore next */ []));
47
+ renderedRows = signal([], /* @ts-ignore */
48
+ ...(ngDevMode ? [{ debugName: "renderedRows" }] : /* istanbul ignore next */ []));
41
49
  /** @internal */
42
- isSelected = signal(() => false, ...(ngDevMode ? [{ debugName: "isSelected" }] : /* istanbul ignore next */ []));
50
+ isSelected = signal(() => false, /* @ts-ignore */
51
+ ...(ngDevMode ? [{ debugName: "isSelected" }] : /* istanbul ignore next */ []));
43
52
  /** @internal */
44
- optionIdFn = signal((i) => `option-${i}`, ...(ngDevMode ? [{ debugName: "optionIdFn" }] : /* istanbul ignore next */ []));
53
+ optionIdFn = signal((i) => `option-${i}`, /* @ts-ignore */
54
+ ...(ngDevMode ? [{ debugName: "optionIdFn" }] : /* istanbul ignore next */ []));
45
55
  /** @internal */
46
- groupHeaderIdFn = signal((g) => `group-${g}`, ...(ngDevMode ? [{ debugName: "groupHeaderIdFn" }] : /* istanbul ignore next */ []));
56
+ groupHeaderIdFn = signal((g) => `group-${g}`, /* @ts-ignore */
57
+ ...(ngDevMode ? [{ debugName: "groupHeaderIdFn" }] : /* istanbul ignore next */ []));
47
58
  /** @internal */
48
- customPanelClass = signal('', ...(ngDevMode ? [{ debugName: "customPanelClass" }] : /* istanbul ignore next */ []));
59
+ customPanelClass = signal('', /* @ts-ignore */
60
+ ...(ngDevMode ? [{ debugName: "customPanelClass" }] : /* istanbul ignore next */ []));
49
61
  /** @internal */
50
- optionTemplate = signal(undefined, ...(ngDevMode ? [{ debugName: "optionTemplate" }] : /* istanbul ignore next */ []));
62
+ optionTemplate = signal(undefined, /* @ts-ignore */
63
+ ...(ngDevMode ? [{ debugName: "optionTemplate" }] : /* istanbul ignore next */ []));
51
64
  /** @internal */
52
- emptyTemplate = signal(undefined, ...(ngDevMode ? [{ debugName: "emptyTemplate" }] : /* istanbul ignore next */ []));
65
+ emptyTemplate = signal(undefined, /* @ts-ignore */
66
+ ...(ngDevMode ? [{ debugName: "emptyTemplate" }] : /* istanbul ignore next */ []));
53
67
  /** @internal */
54
- loadingTemplate = signal(undefined, ...(ngDevMode ? [{ debugName: "loadingTemplate" }] : /* istanbul ignore next */ []));
68
+ loadingTemplate = signal(undefined, /* @ts-ignore */
69
+ ...(ngDevMode ? [{ debugName: "loadingTemplate" }] : /* istanbul ignore next */ []));
55
70
  // ── Callbacks pushed by the parent ──
56
71
  /** @internal */
57
- onOptionPick = signal(() => { }, ...(ngDevMode ? [{ debugName: "onOptionPick" }] : /* istanbul ignore next */ []));
72
+ onOptionPick = signal(() => { }, /* @ts-ignore */
73
+ ...(ngDevMode ? [{ debugName: "onOptionPick" }] : /* istanbul ignore next */ []));
58
74
  /** @internal */
59
- onOptionHover = signal(() => { }, ...(ngDevMode ? [{ debugName: "onOptionHover" }] : /* istanbul ignore next */ []));
75
+ onOptionHover = signal(() => { }, /* @ts-ignore */
76
+ ...(ngDevMode ? [{ debugName: "onOptionHover" }] : /* istanbul ignore next */ []));
60
77
  // ── Computed classes ──
61
78
  /** @internal */
62
79
  panelClasses = computed(() => {
63
80
  const base = 'block w-full bg-surface-overlay border border-border rounded-md shadow-md overflow-hidden';
64
81
  const custom = this.customPanelClass();
65
82
  return custom ? `${base} ${custom}` : base;
66
- }, ...(ngDevMode ? [{ debugName: "panelClasses" }] : /* istanbul ignore next */ []));
83
+ }, /* @ts-ignore */
84
+ ...(ngDevMode ? [{ debugName: "panelClasses" }] : /* istanbul ignore next */ []));
67
85
  /** @internal */
68
86
  optionClass(index, disabled) {
69
87
  const base = 'flex cursor-pointer items-center gap-2 px-3 py-2 text-sm text-fg select-none transition-colors duration-normal motion-reduce:transition-none';
@@ -119,8 +137,8 @@ class ComboboxOverlayComponent {
119
137
  return;
120
138
  this.onOptionHover()(index);
121
139
  }
122
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ComboboxOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
123
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: ComboboxOverlayComponent, isStandalone: true, selector: "tw-combobox-overlay", host: { properties: { "class": "panelClasses()", "animate.enter": "\"scale-in\"", "animate.leave": "\"scale-out\"" } }, ngImport: i0, template: `
140
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ComboboxOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
141
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: ComboboxOverlayComponent, isStandalone: true, selector: "tw-combobox-overlay", host: { properties: { "class": "panelClasses()", "animate.enter": "\"scale-in\"", "animate.leave": "\"scale-out\"" } }, ngImport: i0, template: `
124
142
  @if (loading()) {
125
143
  @if (loadingTemplate(); as tpl) {
126
144
  <ng-container *ngTemplateOutlet="tpl" />
@@ -214,7 +232,7 @@ class ComboboxOverlayComponent {
214
232
  </ul>
215
233
  `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
216
234
  }
217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ComboboxOverlayComponent, decorators: [{
235
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ComboboxOverlayComponent, decorators: [{
218
236
  type: Component,
219
237
  args: [{
220
238
  selector: 'tw-combobox-overlay',
@@ -427,10 +445,10 @@ class ComboboxOptionTemplateDirective {
427
445
  static ngTemplateContextGuard(_dir, _ctx) {
428
446
  return true;
429
447
  }
430
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ComboboxOptionTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
431
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: ComboboxOptionTemplateDirective, isStandalone: true, selector: "[twComboboxOption]", ngImport: i0 });
448
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ComboboxOptionTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
449
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: ComboboxOptionTemplateDirective, isStandalone: true, selector: "[twComboboxOption]", ngImport: i0 });
432
450
  }
433
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ComboboxOptionTemplateDirective, decorators: [{
451
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ComboboxOptionTemplateDirective, decorators: [{
434
452
  type: Directive,
435
453
  args: [{ selector: '[twComboboxOption]' }]
436
454
  }] });
@@ -442,10 +460,10 @@ class ComboboxEmptyTemplateDirective {
442
460
  static ngTemplateContextGuard(_dir, _ctx) {
443
461
  return true;
444
462
  }
445
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ComboboxEmptyTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
446
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: ComboboxEmptyTemplateDirective, isStandalone: true, selector: "[twComboboxEmpty]", ngImport: i0 });
463
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ComboboxEmptyTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
464
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: ComboboxEmptyTemplateDirective, isStandalone: true, selector: "[twComboboxEmpty]", ngImport: i0 });
447
465
  }
448
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ComboboxEmptyTemplateDirective, decorators: [{
466
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ComboboxEmptyTemplateDirective, decorators: [{
449
467
  type: Directive,
450
468
  args: [{ selector: '[twComboboxEmpty]' }]
451
469
  }] });
@@ -453,19 +471,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
453
471
  class ComboboxLoadingTemplateDirective {
454
472
  /** @internal */
455
473
  templateRef = inject((TemplateRef));
456
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ComboboxLoadingTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
457
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: ComboboxLoadingTemplateDirective, isStandalone: true, selector: "[twComboboxLoading]", ngImport: i0 });
474
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ComboboxLoadingTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
475
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: ComboboxLoadingTemplateDirective, isStandalone: true, selector: "[twComboboxLoading]", ngImport: i0 });
458
476
  }
459
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ComboboxLoadingTemplateDirective, decorators: [{
477
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ComboboxLoadingTemplateDirective, decorators: [{
460
478
  type: Directive,
461
479
  args: [{ selector: '[twComboboxLoading]' }]
462
480
  }] });
463
481
  /** Attribute directive marking a leading adornment projected inside the input row. */
464
482
  class ComboboxPrefixDirective {
465
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ComboboxPrefixDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
466
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: ComboboxPrefixDirective, isStandalone: true, selector: "[twComboboxPrefix]", host: { classAttribute: "flex items-center shrink-0 text-fg-muted" }, ngImport: i0 });
483
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ComboboxPrefixDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
484
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: ComboboxPrefixDirective, isStandalone: true, selector: "[twComboboxPrefix]", host: { classAttribute: "flex items-center shrink-0 text-fg-muted" }, ngImport: i0 });
467
485
  }
468
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ComboboxPrefixDirective, decorators: [{
486
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ComboboxPrefixDirective, decorators: [{
469
487
  type: Directive,
470
488
  args: [{
471
489
  selector: '[twComboboxPrefix]',
@@ -474,10 +492,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
474
492
  }] });
475
493
  /** Attribute directive marking a trailing adornment projected inside the input row, before the clear button. */
476
494
  class ComboboxSuffixDirective {
477
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ComboboxSuffixDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
478
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: ComboboxSuffixDirective, isStandalone: true, selector: "[twComboboxSuffix]", host: { classAttribute: "flex items-center shrink-0 text-fg-muted" }, ngImport: i0 });
495
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ComboboxSuffixDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
496
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: ComboboxSuffixDirective, isStandalone: true, selector: "[twComboboxSuffix]", host: { classAttribute: "flex items-center shrink-0 text-fg-muted" }, ngImport: i0 });
479
497
  }
480
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ComboboxSuffixDirective, decorators: [{
498
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ComboboxSuffixDirective, decorators: [{
481
499
  type: Directive,
482
500
  args: [{
483
501
  selector: '[twComboboxSuffix]',
@@ -496,63 +514,87 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
496
514
  class ComboboxComponent {
497
515
  // ── Inputs ──
498
516
  /** Array of options to render in the popover. Accepts plain records or `TwComboboxOption<T>`. */
499
- options = input([], ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
517
+ options = input([], /* @ts-ignore */
518
+ ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
500
519
  /** Accessor returning the visible label for an option. Used by the default filter and the trigger label resolver. */
501
- optionLabel = input(defaultOptionLabel, ...(ngDevMode ? [{ debugName: "optionLabel" }] : /* istanbul ignore next */ []));
520
+ optionLabel = input(defaultOptionLabel, /* @ts-ignore */
521
+ ...(ngDevMode ? [{ debugName: "optionLabel" }] : /* istanbul ignore next */ []));
502
522
  /** Accessor returning the value emitted via `valueCommit` when this option is picked. */
503
- optionValue = input(defaultOptionValue, ...(ngDevMode ? [{ debugName: "optionValue" }] : /* istanbul ignore next */ []));
523
+ optionValue = input(defaultOptionValue, /* @ts-ignore */
524
+ ...(ngDevMode ? [{ debugName: "optionValue" }] : /* istanbul ignore next */ []));
504
525
  /** Accessor returning whether an option is non-interactive. */
505
- optionDisabled = input(defaultOptionDisabled, ...(ngDevMode ? [{ debugName: "optionDisabled" }] : /* istanbul ignore next */ []));
526
+ optionDisabled = input(defaultOptionDisabled, /* @ts-ignore */
527
+ ...(ngDevMode ? [{ debugName: "optionDisabled" }] : /* istanbul ignore next */ []));
506
528
  /** Accessor returning a group label. Options sharing a group render under a labelled `role="group"` region. */
507
- optionGroup = input(defaultOptionGroup, ...(ngDevMode ? [{ debugName: "optionGroup" }] : /* istanbul ignore next */ []));
529
+ optionGroup = input(defaultOptionGroup, /* @ts-ignore */
530
+ ...(ngDevMode ? [{ debugName: "optionGroup" }] : /* istanbul ignore next */ []));
508
531
  /** Accessor returning an optional secondary description rendered under the label in the default option row. */
509
- optionDescription = input(defaultOptionDescription, ...(ngDevMode ? [{ debugName: "optionDescription" }] : /* istanbul ignore next */ []));
532
+ optionDescription = input(defaultOptionDescription, /* @ts-ignore */
533
+ ...(ngDevMode ? [{ debugName: "optionDescription" }] : /* istanbul ignore next */ []));
510
534
  /** Filter function applied client-side whenever `inputValue` changes. Pass `null` to disable client filtering (async mode). Defaults to case-insensitive `startsWith` on the label. */
511
- filterFn = input(defaultStartsWithFilter, ...(ngDevMode ? [{ debugName: "filterFn" }] : /* istanbul ignore next */ []));
535
+ filterFn = input(defaultStartsWithFilter, /* @ts-ignore */
536
+ ...(ngDevMode ? [{ debugName: "filterFn" }] : /* istanbul ignore next */ []));
512
537
  /** When `true`, free-text commits are rejected — the input reverts to the last committed label on blur. */
513
- strict = input(false, ...(ngDevMode ? [{ debugName: "strict" }] : /* istanbul ignore next */ []));
538
+ strict = input(false, /* @ts-ignore */
539
+ ...(ngDevMode ? [{ debugName: "strict" }] : /* istanbul ignore next */ []));
514
540
  /** Placeholder shown when the input is empty. */
515
- placeholder = input(undefined, ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
541
+ placeholder = input(undefined, /* @ts-ignore */
542
+ ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
516
543
  /** Disables the input and prevents the popover from opening. */
517
544
  disabledInput = input(false, { ...(ngDevMode ? { debugName: "disabledInput" } : /* istanbul ignore next */ {}), alias: 'disabled' });
518
545
  /** Sets `aria-required="true"` on the input. */
519
546
  requiredInput = input(false, { ...(ngDevMode ? { debugName: "requiredInput" } : /* istanbul ignore next */ {}), alias: 'required' });
520
547
  /** Controls trigger padding and font size per the inline padding scale. */
521
- size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
548
+ size = input('md', /* @ts-ignore */
549
+ ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
522
550
  /** Semantic color for the focus ring. */
523
- color = input('primary', ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
551
+ color = input('primary', /* @ts-ignore */
552
+ ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
524
553
  /** Whether the trailing chevron affordance is rendered. */
525
554
  // TRUE-default: the chevron signals the dropdown affordance; without it the
526
555
  // combobox reads as a plain input. Opt-out is for inline search inputs.
527
- showChevron = input(true, ...(ngDevMode ? [{ debugName: "showChevron" }] : /* istanbul ignore next */ []));
556
+ showChevron = input(true, /* @ts-ignore */
557
+ ...(ngDevMode ? [{ debugName: "showChevron" }] : /* istanbul ignore next */ []));
528
558
  /** Whether the inline clear (×) button appears while `inputValue` is non-empty. */
529
559
  // TRUE-default: the clear affordance is the expected combobox UX once a value
530
560
  // is set; opt-out is for required-only flows.
531
- clearable = input(true, ...(ngDevMode ? [{ debugName: "clearable" }] : /* istanbul ignore next */ []));
561
+ clearable = input(true, /* @ts-ignore */
562
+ ...(ngDevMode ? [{ debugName: "clearable" }] : /* istanbul ignore next */ []));
532
563
  /** When `true`, shows an in-popover spinner and an inline spinner in the trigger while the popover is open. */
533
- loading = input(false, ...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
564
+ loading = input(false, /* @ts-ignore */
565
+ ...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
534
566
  /** Debounce window (ms) before `queryChange` emits. Local filtering is not debounced. */
535
- queryDebounce = input(150, ...(ngDevMode ? [{ debugName: "queryDebounce" }] : /* istanbul ignore next */ []));
567
+ queryDebounce = input(150, /* @ts-ignore */
568
+ ...(ngDevMode ? [{ debugName: "queryDebounce" }] : /* istanbul ignore next */ []));
536
569
  /** Minimum query length before the popover opens automatically. `0` opens on focus. */
537
- minQueryLength = input(0, ...(ngDevMode ? [{ debugName: "minQueryLength" }] : /* istanbul ignore next */ []));
570
+ minQueryLength = input(0, /* @ts-ignore */
571
+ ...(ngDevMode ? [{ debugName: "minQueryLength" }] : /* istanbul ignore next */ []));
538
572
  /** Whether the popover opens automatically when the input receives focus. */
539
573
  // TRUE-default: clicking into a combobox opens the dropdown — standard select-
540
574
  // like UX. Opt-out is for command-palette-style flows triggered only by typing.
541
- openOnFocus = input(true, ...(ngDevMode ? [{ debugName: "openOnFocus" }] : /* istanbul ignore next */ []));
575
+ openOnFocus = input(true, /* @ts-ignore */
576
+ ...(ngDevMode ? [{ debugName: "openOnFocus" }] : /* istanbul ignore next */ []));
542
577
  /** Maximum height (px) of the popover scroll region. */
543
- panelMaxHeight = input(256, ...(ngDevMode ? [{ debugName: "panelMaxHeight" }] : /* istanbul ignore next */ []));
578
+ panelMaxHeight = input(256, /* @ts-ignore */
579
+ ...(ngDevMode ? [{ debugName: "panelMaxHeight" }] : /* istanbul ignore next */ []));
544
580
  /** Overlay width strategy. `'trigger'` matches input width; `'auto'` lets content decide; a number is applied as px; a string is passed as a CSS length. */
545
- panelWidth = input('trigger', ...(ngDevMode ? [{ debugName: "panelWidth" }] : /* istanbul ignore next */ []));
581
+ panelWidth = input('trigger', /* @ts-ignore */
582
+ ...(ngDevMode ? [{ debugName: "panelWidth" }] : /* istanbul ignore next */ []));
546
583
  /** Extra class(es) appended to the overlay panel for consumer customization. */
547
- panelClass = input('', ...(ngDevMode ? [{ debugName: "panelClass" }] : /* istanbul ignore next */ []));
584
+ panelClass = input('', /* @ts-ignore */
585
+ ...(ngDevMode ? [{ debugName: "panelClass" }] : /* istanbul ignore next */ []));
548
586
  /** CDK overlay scroll strategy. */
549
- scrollStrategy = input('reposition', ...(ngDevMode ? [{ debugName: "scrollStrategy" }] : /* istanbul ignore next */ []));
587
+ scrollStrategy = input('reposition', /* @ts-ignore */
588
+ ...(ngDevMode ? [{ debugName: "scrollStrategy" }] : /* istanbul ignore next */ []));
550
589
  /** Pixel offset between the input and the popover. */
551
- offset = input(4, ...(ngDevMode ? [{ debugName: "offset" }] : /* istanbul ignore next */ []));
590
+ offset = input(4, /* @ts-ignore */
591
+ ...(ngDevMode ? [{ debugName: "offset" }] : /* istanbul ignore next */ []));
552
592
  /** Fallback empty-state message when no `*twComboboxEmpty` template is projected. */
553
- emptyMessage = input('No results', ...(ngDevMode ? [{ debugName: "emptyMessage" }] : /* istanbul ignore next */ []));
593
+ emptyMessage = input('No results', /* @ts-ignore */
594
+ ...(ngDevMode ? [{ debugName: "emptyMessage" }] : /* istanbul ignore next */ []));
554
595
  /** Equality comparator used to reconcile `value` with options during `writeValue`. */
555
- compareWith = input(Object.is, ...(ngDevMode ? [{ debugName: "compareWith" }] : /* istanbul ignore next */ []));
596
+ compareWith = input(Object.is, /* @ts-ignore */
597
+ ...(ngDevMode ? [{ debugName: "compareWith" }] : /* istanbul ignore next */ []));
556
598
  /** Accessible name for the combobox input. */
557
599
  ariaLabel = input(undefined, { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
558
600
  /** ID of an external label element. */
@@ -560,14 +602,18 @@ class ComboboxComponent {
560
602
  /** ID of an external descriptor element. */
561
603
  ariaDescribedby = input(undefined, { ...(ngDevMode ? { debugName: "ariaDescribedby" } : /* istanbul ignore next */ {}), alias: 'aria-describedby' });
562
604
  /** Per-instance override of the {@link ErrorStateMatcher}. When omitted, the combobox uses the `TW_ERROR_STATE_MATCHER` token's value. */
563
- errorStateMatcher = input(undefined, ...(ngDevMode ? [{ debugName: "errorStateMatcher" }] : /* istanbul ignore next */ []));
605
+ errorStateMatcher = input(undefined, /* @ts-ignore */
606
+ ...(ngDevMode ? [{ debugName: "errorStateMatcher" }] : /* istanbul ignore next */ []));
564
607
  // ── Models ──
565
608
  /** Two-way bound committed value. May be an option's value (`T`), a typed string (free-text mode), or `null`. */
566
- value = model(null, ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
609
+ value = model(null, /* @ts-ignore */
610
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
567
611
  /** Two-way bound visible text in the input. Bound separately from `value` so async consumers can drive the query. */
568
- inputValue = model('', ...(ngDevMode ? [{ debugName: "inputValue" }] : /* istanbul ignore next */ []));
612
+ inputValue = model('', /* @ts-ignore */
613
+ ...(ngDevMode ? [{ debugName: "inputValue" }] : /* istanbul ignore next */ []));
569
614
  /** Two-way bound open state of the popover. */
570
- open = model(false, ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
615
+ open = model(false, /* @ts-ignore */
616
+ ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
571
617
  // ── Outputs ──
572
618
  /** Fires after the query text changes, debounced by `queryDebounce`. Async-mode consumers subscribe to this to fetch results. */
573
619
  queryChange = output();
@@ -579,14 +625,19 @@ class ComboboxComponent {
579
625
  openedChange = output();
580
626
  // ── Content queries ──
581
627
  /** @internal */
582
- optionTemplateChild = contentChild(ComboboxOptionTemplateDirective, ...(ngDevMode ? [{ debugName: "optionTemplateChild" }] : /* istanbul ignore next */ []));
628
+ optionTemplateChild = contentChild(ComboboxOptionTemplateDirective, /* @ts-ignore */
629
+ ...(ngDevMode ? [{ debugName: "optionTemplateChild" }] : /* istanbul ignore next */ []));
583
630
  /** @internal */
584
- emptyTemplateChild = contentChild(ComboboxEmptyTemplateDirective, ...(ngDevMode ? [{ debugName: "emptyTemplateChild" }] : /* istanbul ignore next */ []));
631
+ emptyTemplateChild = contentChild(ComboboxEmptyTemplateDirective, /* @ts-ignore */
632
+ ...(ngDevMode ? [{ debugName: "emptyTemplateChild" }] : /* istanbul ignore next */ []));
585
633
  /** @internal */
586
- loadingTemplateChild = contentChild(ComboboxLoadingTemplateDirective, ...(ngDevMode ? [{ debugName: "loadingTemplateChild" }] : /* istanbul ignore next */ []));
634
+ loadingTemplateChild = contentChild(ComboboxLoadingTemplateDirective, /* @ts-ignore */
635
+ ...(ngDevMode ? [{ debugName: "loadingTemplateChild" }] : /* istanbul ignore next */ []));
587
636
  // ── View queries ──
588
- inputRef = viewChild('inputEl', ...(ngDevMode ? [{ debugName: "inputRef" }] : /* istanbul ignore next */ []));
589
- triggerSurfaceRef = viewChild('triggerSurface', ...(ngDevMode ? [{ debugName: "triggerSurfaceRef" }] : /* istanbul ignore next */ []));
637
+ inputRef = viewChild('inputEl', /* @ts-ignore */
638
+ ...(ngDevMode ? [{ debugName: "inputRef" }] : /* istanbul ignore next */ []));
639
+ triggerSurfaceRef = viewChild('triggerSurface', /* @ts-ignore */
640
+ ...(ngDevMode ? [{ debugName: "triggerSurfaceRef" }] : /* istanbul ignore next */ []));
590
641
  // ── Injected deps ──
591
642
  overlayService = inject(Overlay);
592
643
  elementRef = inject((ElementRef));
@@ -596,7 +647,7 @@ class ComboboxComponent {
596
647
  focusMonitor = inject(FocusMonitor);
597
648
  liveAnnouncer = inject(LiveAnnouncer);
598
649
  platform = inject(Platform);
599
- formField = inject(FormFieldComponent, { optional: true });
650
+ formField = inject(TW_FORM_FIELD, { optional: true });
600
651
  ngControl = inject(NgControl, { optional: true, self: true });
601
652
  parentForm = inject(NgForm, { optional: true });
602
653
  parentFormGroup = inject(FormGroupDirective, { optional: true });
@@ -613,24 +664,35 @@ class ComboboxComponent {
613
664
  groupHeaderId = (group) => `${this.hostId}-group-${group.replace(/\s+/g, '-').toLowerCase()}`;
614
665
  // ── Internal state signals ──
615
666
  /** @internal */
616
- composing = signal(false, ...(ngDevMode ? [{ debugName: "composing" }] : /* istanbul ignore next */ []));
617
- /** @internal */
618
- focusedSignal = signal(false, ...(ngDevMode ? [{ debugName: "focusedSignal" }] : /* istanbul ignore next */ []));
619
- cvaDisabled = signal(false, ...(ngDevMode ? [{ debugName: "cvaDisabled" }] : /* istanbul ignore next */ []));
620
- _ngControlRev = signal(0, ...(ngDevMode ? [{ debugName: "_ngControlRev" }] : /* istanbul ignore next */ []));
621
- _formSubmitRev = signal(0, ...(ngDevMode ? [{ debugName: "_formSubmitRev" }] : /* istanbul ignore next */ []));
622
- describedByIdsSignal = signal([], ...(ngDevMode ? [{ debugName: "describedByIdsSignal" }] : /* istanbul ignore next */ []));
623
- labelledByIdsSignal = signal([], ...(ngDevMode ? [{ debugName: "labelledByIdsSignal" }] : /* istanbul ignore next */ []));
624
- /** @internal */
625
- lastCommittedLabel = signal('', ...(ngDevMode ? [{ debugName: "lastCommittedLabel" }] : /* istanbul ignore next */ []));
626
- pendingWriteValue = signal(UNRESOLVED, ...(ngDevMode ? [{ debugName: "pendingWriteValue" }] : /* istanbul ignore next */ []));
627
- closingSignal = signal(false, ...(ngDevMode ? [{ debugName: "closingSignal" }] : /* istanbul ignore next */ []));
667
+ composing = signal(false, /* @ts-ignore */
668
+ ...(ngDevMode ? [{ debugName: "composing" }] : /* istanbul ignore next */ []));
669
+ /** @internal */
670
+ focusedSignal = signal(false, /* @ts-ignore */
671
+ ...(ngDevMode ? [{ debugName: "focusedSignal" }] : /* istanbul ignore next */ []));
672
+ cvaDisabled = signal(false, /* @ts-ignore */
673
+ ...(ngDevMode ? [{ debugName: "cvaDisabled" }] : /* istanbul ignore next */ []));
674
+ _ngControlRev = signal(0, /* @ts-ignore */
675
+ ...(ngDevMode ? [{ debugName: "_ngControlRev" }] : /* istanbul ignore next */ []));
676
+ _formSubmitRev = signal(0, /* @ts-ignore */
677
+ ...(ngDevMode ? [{ debugName: "_formSubmitRev" }] : /* istanbul ignore next */ []));
678
+ describedByIdsSignal = signal([], /* @ts-ignore */
679
+ ...(ngDevMode ? [{ debugName: "describedByIdsSignal" }] : /* istanbul ignore next */ []));
680
+ labelledByIdsSignal = signal([], /* @ts-ignore */
681
+ ...(ngDevMode ? [{ debugName: "labelledByIdsSignal" }] : /* istanbul ignore next */ []));
682
+ /** @internal */
683
+ lastCommittedLabel = signal('', /* @ts-ignore */
684
+ ...(ngDevMode ? [{ debugName: "lastCommittedLabel" }] : /* istanbul ignore next */ []));
685
+ pendingWriteValue = signal(UNRESOLVED, /* @ts-ignore */
686
+ ...(ngDevMode ? [{ debugName: "pendingWriteValue" }] : /* istanbul ignore next */ []));
687
+ closingSignal = signal(false, /* @ts-ignore */
688
+ ...(ngDevMode ? [{ debugName: "closingSignal" }] : /* istanbul ignore next */ []));
628
689
  /** Re-runs the input handler once after IME composition ends. */
629
690
  composingPendingValue = null;
630
691
  onChange = () => { };
631
692
  onTouched = () => { };
632
693
  overlayRef = null;
633
- overlayInstanceSignal = signal(null, ...(ngDevMode ? [{ debugName: "overlayInstanceSignal" }] : /* istanbul ignore next */ []));
694
+ overlayInstanceSignal = signal(null, /* @ts-ignore */
695
+ ...(ngDevMode ? [{ debugName: "overlayInstanceSignal" }] : /* istanbul ignore next */ []));
634
696
  closeTimer = null;
635
697
  queryDebounceTimer = null;
636
698
  announceTimer = null;
@@ -640,9 +702,11 @@ class ComboboxComponent {
640
702
  }
641
703
  // ── Derived state ──
642
704
  /** @internal */
643
- isDisabled = computed(() => this.disabledInput() || this.cvaDisabled(), ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
705
+ isDisabled = computed(() => this.disabledInput() || this.cvaDisabled(), /* @ts-ignore */
706
+ ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
644
707
  /** @internal Auto-naked when wrapped in tw-form-field. */
645
- naked = computed(() => !!this.formField, ...(ngDevMode ? [{ debugName: "naked" }] : /* istanbul ignore next */ []));
708
+ naked = computed(() => !!this.formField, /* @ts-ignore */
709
+ ...(ngDevMode ? [{ debugName: "naked" }] : /* istanbul ignore next */ []));
646
710
  /** @internal Resolved visible options (after filter, with derived view fields). */
647
711
  visibleOptions = computed(() => {
648
712
  const opts = this.options();
@@ -662,7 +726,8 @@ class ComboboxComponent {
662
726
  group: groupFn(option),
663
727
  description: descFn(option),
664
728
  }));
665
- }, ...(ngDevMode ? [{ debugName: "visibleOptions" }] : /* istanbul ignore next */ []));
729
+ }, /* @ts-ignore */
730
+ ...(ngDevMode ? [{ debugName: "visibleOptions" }] : /* istanbul ignore next */ []));
666
731
  /** @internal Rendered rows (group headers + option rows). */
667
732
  renderedRows = computed(() => {
668
733
  const visible = this.visibleOptions();
@@ -678,7 +743,8 @@ class ComboboxComponent {
678
743
  rows.push({ kind: 'option', option: v, index });
679
744
  });
680
745
  return rows;
681
- }, ...(ngDevMode ? [{ debugName: "renderedRows" }] : /* istanbul ignore next */ []));
746
+ }, /* @ts-ignore */
747
+ ...(ngDevMode ? [{ debugName: "renderedRows" }] : /* istanbul ignore next */ []));
682
748
  /** Returns the index of the first enabled option, or -1 when none. */
683
749
  firstEnabledIndex(visible = this.visibleOptions()) {
684
750
  for (let i = 0; i < visible.length; i++) {
@@ -711,20 +777,25 @@ class ComboboxComponent {
711
777
  if (idx < 0 || idx >= visible.length)
712
778
  return null;
713
779
  return visible[idx];
714
- }, ...(ngDevMode ? [{ debugName: "activeOption" }] : /* istanbul ignore next */ []));
780
+ }, /* @ts-ignore */
781
+ ...(ngDevMode ? [{ debugName: "activeOption" }] : /* istanbul ignore next */ []));
715
782
  /** @internal */
716
783
  activeOptionId = computed(() => {
717
784
  const idx = this.activeIndex();
718
785
  if (idx < 0 || idx >= this.visibleOptions().length)
719
786
  return null;
720
787
  return this.optionId(idx);
721
- }, ...(ngDevMode ? [{ debugName: "activeOptionId" }] : /* istanbul ignore next */ []));
788
+ }, /* @ts-ignore */
789
+ ...(ngDevMode ? [{ debugName: "activeOptionId" }] : /* istanbul ignore next */ []));
722
790
  /** @internal */
723
- isEmpty = computed(() => this.inputValue().length === 0 && this.value() == null, ...(ngDevMode ? [{ debugName: "isEmpty" }] : /* istanbul ignore next */ []));
791
+ isEmpty = computed(() => this.inputValue().length === 0 && this.value() == null, /* @ts-ignore */
792
+ ...(ngDevMode ? [{ debugName: "isEmpty" }] : /* istanbul ignore next */ []));
724
793
  /** @internal */
725
- showClearButton = computed(() => this.clearable() && !this.isDisabled() && this.inputValue().length > 0, ...(ngDevMode ? [{ debugName: "showClearButton" }] : /* istanbul ignore next */ []));
794
+ showClearButton = computed(() => this.clearable() && !this.isDisabled() && this.inputValue().length > 0, /* @ts-ignore */
795
+ ...(ngDevMode ? [{ debugName: "showClearButton" }] : /* istanbul ignore next */ []));
726
796
  /** @internal */
727
- showSpinner = computed(() => this.loading(), ...(ngDevMode ? [{ debugName: "showSpinner" }] : /* istanbul ignore next */ []));
797
+ showSpinner = computed(() => this.loading(), /* @ts-ignore */
798
+ ...(ngDevMode ? [{ debugName: "showSpinner" }] : /* istanbul ignore next */ []));
728
799
  /** @internal */
729
800
  resolvedDescribedBy = computed(() => {
730
801
  const extra = this.describedByIdsSignal();
@@ -733,7 +804,8 @@ class ComboboxComponent {
733
804
  if (user)
734
805
  merged.push(...user.split(/\s+/).filter(Boolean));
735
806
  return merged.length ? merged.join(' ') : '';
736
- }, ...(ngDevMode ? [{ debugName: "resolvedDescribedBy" }] : /* istanbul ignore next */ []));
807
+ }, /* @ts-ignore */
808
+ ...(ngDevMode ? [{ debugName: "resolvedDescribedBy" }] : /* istanbul ignore next */ []));
737
809
  /** @internal */
738
810
  resolvedLabelledBy = computed(() => {
739
811
  const extra = this.labelledByIdsSignal();
@@ -742,7 +814,8 @@ class ComboboxComponent {
742
814
  if (user)
743
815
  merged.push(...user.split(/\s+/).filter(Boolean));
744
816
  return merged.length ? merged.join(' ') : '';
745
- }, ...(ngDevMode ? [{ debugName: "resolvedLabelledBy" }] : /* istanbul ignore next */ []));
817
+ }, /* @ts-ignore */
818
+ ...(ngDevMode ? [{ debugName: "resolvedLabelledBy" }] : /* istanbul ignore next */ []));
746
819
  /** @internal Error-state per the configured `ErrorStateMatcher`. Reads the bound `NgControl.invalid` through the matcher. */
747
820
  errorState = computed(() => {
748
821
  this._ngControlRev();
@@ -751,7 +824,8 @@ class ComboboxComponent {
751
824
  const form = this.parentFormGroup ??
752
825
  this.parentForm;
753
826
  return matcher.isErrorState(this.ngControl?.control ?? null, form);
754
- }, ...(ngDevMode ? [{ debugName: "errorState" }] : /* istanbul ignore next */ []));
827
+ }, /* @ts-ignore */
828
+ ...(ngDevMode ? [{ debugName: "errorState" }] : /* istanbul ignore next */ []));
755
829
  // ── tv() output ──
756
830
  variantResult = computed(() => comboboxVariants({
757
831
  size: this.size(),
@@ -760,22 +834,30 @@ class ComboboxComponent {
760
834
  open: this.open(),
761
835
  naked: this.naked(),
762
836
  errorState: this.errorState(),
763
- }), ...(ngDevMode ? [{ debugName: "variantResult" }] : /* istanbul ignore next */ []));
837
+ }), /* @ts-ignore */
838
+ ...(ngDevMode ? [{ debugName: "variantResult" }] : /* istanbul ignore next */ []));
764
839
  /** @internal */
765
- rootClasses = computed(() => this.variantResult().root(), ...(ngDevMode ? [{ debugName: "rootClasses" }] : /* istanbul ignore next */ []));
840
+ rootClasses = computed(() => this.variantResult().root(), /* @ts-ignore */
841
+ ...(ngDevMode ? [{ debugName: "rootClasses" }] : /* istanbul ignore next */ []));
766
842
  /** @internal */
767
- triggerClasses = computed(() => this.variantResult().trigger(), ...(ngDevMode ? [{ debugName: "triggerClasses" }] : /* istanbul ignore next */ []));
843
+ triggerClasses = computed(() => this.variantResult().trigger(), /* @ts-ignore */
844
+ ...(ngDevMode ? [{ debugName: "triggerClasses" }] : /* istanbul ignore next */ []));
768
845
  /** @internal */
769
- inputClasses = computed(() => this.variantResult().input(), ...(ngDevMode ? [{ debugName: "inputClasses" }] : /* istanbul ignore next */ []));
846
+ inputClasses = computed(() => this.variantResult().input(), /* @ts-ignore */
847
+ ...(ngDevMode ? [{ debugName: "inputClasses" }] : /* istanbul ignore next */ []));
770
848
  /** @internal */
771
- clearButtonClasses = computed(() => this.variantResult().clearButton(), ...(ngDevMode ? [{ debugName: "clearButtonClasses" }] : /* istanbul ignore next */ []));
849
+ clearButtonClasses = computed(() => this.variantResult().clearButton(), /* @ts-ignore */
850
+ ...(ngDevMode ? [{ debugName: "clearButtonClasses" }] : /* istanbul ignore next */ []));
772
851
  /** @internal */
773
- chevronClasses = computed(() => this.variantResult().chevron(), ...(ngDevMode ? [{ debugName: "chevronClasses" }] : /* istanbul ignore next */ []));
852
+ chevronClasses = computed(() => this.variantResult().chevron(), /* @ts-ignore */
853
+ ...(ngDevMode ? [{ debugName: "chevronClasses" }] : /* istanbul ignore next */ []));
774
854
  /** @internal */
775
- spinnerClasses = computed(() => this.variantResult().spinner(), ...(ngDevMode ? [{ debugName: "spinnerClasses" }] : /* istanbul ignore next */ []));
855
+ spinnerClasses = computed(() => this.variantResult().spinner(), /* @ts-ignore */
856
+ ...(ngDevMode ? [{ debugName: "spinnerClasses" }] : /* istanbul ignore next */ []));
776
857
  // ── FormFieldControl impl ──
777
858
  /** @internal */
778
- id = computed(() => this.hostId, ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
859
+ id = computed(() => this.hostId, /* @ts-ignore */
860
+ ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
779
861
  /** @internal */
780
862
  focused = this.focusedSignal.asReadonly();
781
863
  /** @internal */
@@ -783,13 +865,16 @@ class ComboboxComponent {
783
865
  /** @internal */
784
866
  disabled = this.isDisabled;
785
867
  /** @internal */
786
- required = computed(() => this.requiredInput(), ...(ngDevMode ? [{ debugName: "required" }] : /* istanbul ignore next */ []));
868
+ required = computed(() => this.requiredInput(), /* @ts-ignore */
869
+ ...(ngDevMode ? [{ debugName: "required" }] : /* istanbul ignore next */ []));
787
870
  /** @internal */
788
871
  controlType = 'combobox';
789
872
  /** @internal */
790
- userAriaDescribedBy = computed(() => this.ariaDescribedby(), ...(ngDevMode ? [{ debugName: "userAriaDescribedBy" }] : /* istanbul ignore next */ []));
873
+ userAriaDescribedBy = computed(() => this.ariaDescribedby(), /* @ts-ignore */
874
+ ...(ngDevMode ? [{ debugName: "userAriaDescribedBy" }] : /* istanbul ignore next */ []));
791
875
  /** @internal */
792
- userAriaLabelledby = computed(() => this.ariaLabelledby(), ...(ngDevMode ? [{ debugName: "userAriaLabelledby" }] : /* istanbul ignore next */ []));
876
+ userAriaLabelledby = computed(() => this.ariaLabelledby(), /* @ts-ignore */
877
+ ...(ngDevMode ? [{ debugName: "userAriaLabelledby" }] : /* istanbul ignore next */ []));
793
878
  // ── Constructor ──
794
879
  constructor() {
795
880
  // Material-style CVA wiring: declare ourselves as the value accessor on any
@@ -1519,8 +1604,8 @@ class ComboboxComponent {
1519
1604
  .subscribe(() => this._formSubmitRev.update((n) => n + 1));
1520
1605
  }
1521
1606
  }
1522
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ComboboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1523
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: ComboboxComponent, isStandalone: true, selector: "tw-combobox", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: true, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: false, transformFunction: null }, optionDisabled: { classPropertyName: "optionDisabled", publicName: "optionDisabled", isSignal: true, isRequired: false, transformFunction: null }, optionGroup: { classPropertyName: "optionGroup", publicName: "optionGroup", isSignal: true, isRequired: false, transformFunction: null }, optionDescription: { classPropertyName: "optionDescription", publicName: "optionDescription", isSignal: true, isRequired: false, transformFunction: null }, filterFn: { classPropertyName: "filterFn", publicName: "filterFn", isSignal: true, isRequired: false, transformFunction: null }, strict: { classPropertyName: "strict", publicName: "strict", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, requiredInput: { classPropertyName: "requiredInput", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, showChevron: { classPropertyName: "showChevron", publicName: "showChevron", isSignal: true, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, queryDebounce: { classPropertyName: "queryDebounce", publicName: "queryDebounce", isSignal: true, isRequired: false, transformFunction: null }, minQueryLength: { classPropertyName: "minQueryLength", publicName: "minQueryLength", isSignal: true, isRequired: false, transformFunction: null }, openOnFocus: { classPropertyName: "openOnFocus", publicName: "openOnFocus", isSignal: true, isRequired: false, transformFunction: null }, panelMaxHeight: { classPropertyName: "panelMaxHeight", publicName: "panelMaxHeight", isSignal: true, isRequired: false, transformFunction: null }, panelWidth: { classPropertyName: "panelWidth", publicName: "panelWidth", isSignal: true, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: "panelClass", publicName: "panelClass", isSignal: true, isRequired: false, transformFunction: null }, scrollStrategy: { classPropertyName: "scrollStrategy", publicName: "scrollStrategy", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: true, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: true, isRequired: false, transformFunction: null }, compareWith: { classPropertyName: "compareWith", publicName: "compareWith", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedby: { classPropertyName: "ariaDescribedby", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, errorStateMatcher: { classPropertyName: "errorStateMatcher", publicName: "errorStateMatcher", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, inputValue: { classPropertyName: "inputValue", publicName: "inputValue", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", inputValue: "inputValueChange", open: "openChange", queryChange: "queryChange", optionSelected: "optionSelected", valueCommit: "valueCommit", openedChange: "openedChange" }, host: { properties: { "class": "rootClasses()" } }, providers: [
1607
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ComboboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1608
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: ComboboxComponent, isStandalone: true, selector: "tw-combobox", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: true, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: false, transformFunction: null }, optionDisabled: { classPropertyName: "optionDisabled", publicName: "optionDisabled", isSignal: true, isRequired: false, transformFunction: null }, optionGroup: { classPropertyName: "optionGroup", publicName: "optionGroup", isSignal: true, isRequired: false, transformFunction: null }, optionDescription: { classPropertyName: "optionDescription", publicName: "optionDescription", isSignal: true, isRequired: false, transformFunction: null }, filterFn: { classPropertyName: "filterFn", publicName: "filterFn", isSignal: true, isRequired: false, transformFunction: null }, strict: { classPropertyName: "strict", publicName: "strict", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, requiredInput: { classPropertyName: "requiredInput", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, showChevron: { classPropertyName: "showChevron", publicName: "showChevron", isSignal: true, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, queryDebounce: { classPropertyName: "queryDebounce", publicName: "queryDebounce", isSignal: true, isRequired: false, transformFunction: null }, minQueryLength: { classPropertyName: "minQueryLength", publicName: "minQueryLength", isSignal: true, isRequired: false, transformFunction: null }, openOnFocus: { classPropertyName: "openOnFocus", publicName: "openOnFocus", isSignal: true, isRequired: false, transformFunction: null }, panelMaxHeight: { classPropertyName: "panelMaxHeight", publicName: "panelMaxHeight", isSignal: true, isRequired: false, transformFunction: null }, panelWidth: { classPropertyName: "panelWidth", publicName: "panelWidth", isSignal: true, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: "panelClass", publicName: "panelClass", isSignal: true, isRequired: false, transformFunction: null }, scrollStrategy: { classPropertyName: "scrollStrategy", publicName: "scrollStrategy", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: true, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: true, isRequired: false, transformFunction: null }, compareWith: { classPropertyName: "compareWith", publicName: "compareWith", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedby: { classPropertyName: "ariaDescribedby", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, errorStateMatcher: { classPropertyName: "errorStateMatcher", publicName: "errorStateMatcher", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, inputValue: { classPropertyName: "inputValue", publicName: "inputValue", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", inputValue: "inputValueChange", open: "openChange", queryChange: "queryChange", optionSelected: "optionSelected", valueCommit: "valueCommit", openedChange: "openedChange" }, host: { properties: { "class": "rootClasses()" } }, providers: [
1524
1609
  {
1525
1610
  provide: TW_FORM_FIELD_CONTROL,
1526
1611
  useExisting: forwardRef(() => ComboboxComponent),
@@ -1616,7 +1701,7 @@ class ComboboxComponent {
1616
1701
  </span>
1617
1702
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1618
1703
  }
1619
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: ComboboxComponent, decorators: [{
1704
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ComboboxComponent, decorators: [{
1620
1705
  type: Component,
1621
1706
  args: [{
1622
1707
  selector: 'tw-combobox',