@koobiq/components 19.5.0 → 19.7.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 (197) hide show
  1. package/accordion/accordion-content.directive.d.ts +4 -0
  2. package/accordion/accordion-trigger.directive.d.ts +4 -0
  3. package/actions-panel/actions-panel-container.scss +6 -0
  4. package/actions-panel/actions-panel-tokens.scss +4 -1
  5. package/autocomplete/autocomplete.component.d.ts +6 -1
  6. package/autocomplete/autocomplete.module.d.ts +1 -1
  7. package/autocomplete/autocomplete.scss +14 -3
  8. package/badge/badge-tokens.scss +3 -3
  9. package/breadcrumbs/breadcrumbs.scss +0 -4
  10. package/button/button-group.d.ts +45 -0
  11. package/button/button-group.scss +17 -0
  12. package/button/button.component.d.ts +3 -0
  13. package/button/button.module.d.ts +2 -1
  14. package/button/public-api.d.ts +1 -0
  15. package/button-toggle/button-toggle-tokens.scss +1 -1
  16. package/checkbox/checkbox.d.ts +5 -4
  17. package/code-block/code-block-highlight.d.ts +1 -0
  18. package/code-block/code-block-tokens.scss +35 -16
  19. package/code-block/code-block.d.ts +8 -3
  20. package/core/error/error-state-matcher.d.ts +10 -0
  21. package/core/forms/_forms.scss +10 -3
  22. package/core/option/_option-action-theme.scss +1 -0
  23. package/core/option/action-container.scss +4 -6
  24. package/core/option/option.d.ts +8 -0
  25. package/core/option/option.scss +5 -0
  26. package/core/pop-up/pop-up-trigger.d.ts +1 -1
  27. package/core/select/common.d.ts +4 -4
  28. package/core/styles/common/_groups-mixins.scss +79 -0
  29. package/core/styles/common/_groups.scss +4 -34
  30. package/core/styles/common/_overlay.scss +4 -0
  31. package/core/styles/common/_select.scss +4 -0
  32. package/core/styles/theming/scrollbar-tokens.scss +6 -6
  33. package/core/styles/visual/_layout.scss +0 -2
  34. package/core/utils/utils.d.ts +2 -0
  35. package/core/validation/validation.d.ts +1 -1
  36. package/datepicker/datepicker-input.directive.d.ts +1 -0
  37. package/dropdown/dropdown-trigger.directive.d.ts +5 -0
  38. package/ellipsis-center/ellipsis-center.directive.d.ts +0 -1
  39. package/fesm2022/koobiq-components-accordion.mjs +52 -30
  40. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  41. package/fesm2022/koobiq-components-actions-panel.mjs +12 -12
  42. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  43. package/fesm2022/koobiq-components-alert.mjs +16 -16
  44. package/fesm2022/koobiq-components-app-switcher.mjs +25 -25
  45. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  46. package/fesm2022/koobiq-components-autocomplete.mjs +39 -23
  47. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  48. package/fesm2022/koobiq-components-badge.mjs +14 -14
  49. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  50. package/fesm2022/koobiq-components-breadcrumbs.mjs +26 -26
  51. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  52. package/fesm2022/koobiq-components-button-toggle.mjs +12 -12
  53. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  54. package/fesm2022/koobiq-components-button.mjs +146 -24
  55. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  56. package/fesm2022/koobiq-components-checkbox.mjs +17 -19
  57. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  58. package/fesm2022/koobiq-components-clamped-text.mjs +13 -13
  59. package/fesm2022/koobiq-components-code-block.mjs +43 -27
  60. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  61. package/fesm2022/koobiq-components-content-panel.mjs +28 -28
  62. package/fesm2022/koobiq-components-core.mjs +290 -250
  63. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  64. package/fesm2022/koobiq-components-datepicker.mjs +40 -64
  65. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  66. package/fesm2022/koobiq-components-divider.mjs +7 -7
  67. package/fesm2022/koobiq-components-dl.mjs +13 -13
  68. package/fesm2022/koobiq-components-dropdown.mjs +38 -21
  69. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-dynamic-translation.mjs +13 -13
  71. package/fesm2022/koobiq-components-ellipsis-center.mjs +8 -9
  72. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  73. package/fesm2022/koobiq-components-empty-state.mjs +19 -19
  74. package/fesm2022/koobiq-components-file-upload.mjs +39 -39
  75. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  76. package/fesm2022/koobiq-components-filter-bar.mjs +109 -97
  77. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-form-field.mjs +67 -60
  79. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-icon.mjs +31 -27
  81. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  82. package/fesm2022/koobiq-components-inline-edit.mjs +108 -68
  83. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  84. package/fesm2022/koobiq-components-input.mjs +22 -22
  85. package/fesm2022/koobiq-components-link.mjs +17 -17
  86. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  87. package/fesm2022/koobiq-components-list.mjs +19 -19
  88. package/fesm2022/koobiq-components-loader-overlay.mjs +28 -19
  89. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  90. package/fesm2022/koobiq-components-markdown.mjs +54 -22
  91. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  92. package/fesm2022/koobiq-components-modal.mjs +40 -32
  93. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  94. package/fesm2022/koobiq-components-navbar-ic.mjs +34 -34
  95. package/fesm2022/koobiq-components-navbar.mjs +45 -45
  96. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  97. package/fesm2022/koobiq-components-notification-center.mjs +16 -16
  98. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  99. package/fesm2022/koobiq-components-overflow-items.mjs +16 -16
  100. package/fesm2022/koobiq-components-popover.mjs +52 -23
  101. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-progress-bar.mjs +13 -13
  103. package/fesm2022/koobiq-components-progress-spinner.mjs +14 -14
  104. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  105. package/fesm2022/koobiq-components-radio.mjs +10 -10
  106. package/fesm2022/koobiq-components-resizer.mjs +10 -10
  107. package/fesm2022/koobiq-components-risk-level.mjs +7 -7
  108. package/fesm2022/koobiq-components-scrollbar.mjs +12 -12
  109. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  110. package/fesm2022/koobiq-components-search-expandable.mjs +17 -8
  111. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-select.mjs +368 -63
  113. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-sidebar.mjs +13 -13
  115. package/fesm2022/koobiq-components-sidepanel.mjs +27 -27
  116. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  117. package/fesm2022/koobiq-components-skeleton.mjs +51 -18
  118. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  119. package/fesm2022/koobiq-components-split-button.mjs +9 -9
  120. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  121. package/fesm2022/koobiq-components-splitter.mjs +16 -16
  122. package/fesm2022/koobiq-components-table.mjs +10 -10
  123. package/fesm2022/koobiq-components-tabs.mjs +52 -52
  124. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  125. package/fesm2022/koobiq-components-tags.mjs +79 -64
  126. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  127. package/fesm2022/koobiq-components-textarea.mjs +7 -7
  128. package/fesm2022/koobiq-components-time-range.mjs +24 -24
  129. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  130. package/fesm2022/koobiq-components-timepicker.mjs +10 -10
  131. package/fesm2022/koobiq-components-timezone.mjs +26 -26
  132. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  133. package/fesm2022/koobiq-components-title.mjs +8 -9
  134. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  135. package/fesm2022/koobiq-components-toast.mjs +16 -16
  136. package/fesm2022/koobiq-components-toggle.mjs +12 -9
  137. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-tooltip.mjs +84 -51
  139. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  140. package/fesm2022/koobiq-components-top-bar.mjs +15 -15
  141. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  142. package/fesm2022/koobiq-components-tree-select.mjs +12 -10
  143. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  144. package/fesm2022/koobiq-components-tree.mjs +41 -42
  145. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  146. package/fesm2022/koobiq-components-username.mjs +28 -28
  147. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  148. package/filter-bar/filter-search.d.ts +10 -1
  149. package/filter-bar/pipes/pipe-date.scss +2 -1
  150. package/form-field/_form-field-theme.scss +10 -2
  151. package/form-field/form-field-tokens.scss +1 -0
  152. package/form-field/form-field.d.ts +19 -1
  153. package/form-field/form-field.scss +41 -2
  154. package/icon/icon-button.component.d.ts +3 -0
  155. package/inline-edit/inline-edit-tokens.scss +3 -3
  156. package/inline-edit/inline-edit.d.ts +30 -11
  157. package/inline-edit/inline-edit.scss +28 -30
  158. package/link/_link-theme.scss +3 -1
  159. package/link/link-tokens.scss +7 -6
  160. package/link/link.component.d.ts +5 -4
  161. package/loader-overlay/_loader-overlay-theme.scss +12 -0
  162. package/loader-overlay/loader-overlay-tokens.scss +1 -0
  163. package/loader-overlay/loader-overlay.component.d.ts +7 -1
  164. package/markdown/_markdown-theme.scss +3 -31
  165. package/markdown/markdown-tokens.scss +0 -11
  166. package/markdown/markdown.component.d.ts +11 -6
  167. package/markdown/markdown.scss +0 -11
  168. package/navbar/navbar.scss +3 -0
  169. package/package.json +4 -5
  170. package/popover/popover.component.d.ts +15 -2
  171. package/prebuilt-themes/dark-theme.css +1 -1
  172. package/prebuilt-themes/light-theme.css +1 -1
  173. package/prebuilt-themes/theme.css +1 -1
  174. package/progress-spinner/progress-spinner.scss +1 -0
  175. package/schematics/ng-add/index.js +4 -5
  176. package/scrollbar/scrollbar-tokens.scss +7 -7
  177. package/search-expandable/search-expandable.d.ts +6 -2
  178. package/select/public-api.d.ts +1 -0
  179. package/select/select-common.d.ts +30 -0
  180. package/select/select-tokens.scss +2 -2
  181. package/select/select.component.d.ts +201 -29
  182. package/select/select.module.d.ts +3 -2
  183. package/sidepanel/sidepanel-config.d.ts +6 -1
  184. package/skeleton/skeleton.d.ts +8 -4
  185. package/skeleton/skeleton.scss +19 -5
  186. package/split-button/_split-button-theme.scss +2 -1
  187. package/tags/tag-list.component.d.ts +15 -11
  188. package/tags/tag-tokens.scss +4 -4
  189. package/tags/tag.component.d.ts +5 -2
  190. package/timezone/timezone-option-tokens.scss +0 -10
  191. package/title/title.directive.d.ts +0 -1
  192. package/toggle/toggle.component.d.ts +4 -3
  193. package/tooltip/_tooltip-theme.scss +5 -1
  194. package/tooltip/tooltip-tokens.scss +4 -4
  195. package/tooltip/tooltip.component.d.ts +20 -2
  196. package/top-bar/top-bar.scss +3 -0
  197. package/tree/tree-option.scss +7 -0
@@ -39,9 +39,13 @@ export declare class KbqSearchExpandable implements ControlValueAccessor, AfterV
39
39
  isEmitValueByEnterEnabled: boolean;
40
40
  /** Timeout in milliseconds for emit event. The default value is taken from defaultEmitValueTimeout */
41
41
  emitValueTimeout: number;
42
+ /** Tooltip text for the search button. When set, overrides localeData.tooltip */
43
+ get tooltipText(): string;
44
+ set tooltipText(value: string | null);
45
+ private _tooltipText;
42
46
  /** Placeholder for input when expanded */
43
47
  get placeholder(): string;
44
- set placeholder(value: string);
48
+ set placeholder(value: string | null);
45
49
  private _placeholder;
46
50
  get disabled(): boolean;
47
51
  set disabled(value: boolean);
@@ -77,7 +81,7 @@ export declare class KbqSearchExpandable implements ControlValueAccessor, AfterV
77
81
  private runFocusMonitor;
78
82
  private stopFocusMonitor;
79
83
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSearchExpandable, never>;
80
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqSearchExpandable, "kbq-search-expandable", never, { "isOpened": { "alias": "isOpened"; "required": false; }; "isEmitValueByEnterEnabled": { "alias": "isEmitValueByEnterEnabled"; "required": false; }; "emitValueTimeout": { "alias": "emitValueTimeout"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "isOpenedChange": "isOpenedChange"; }, never, never, true, never>;
84
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqSearchExpandable, "kbq-search-expandable", never, { "isOpened": { "alias": "isOpened"; "required": false; }; "isEmitValueByEnterEnabled": { "alias": "isEmitValueByEnterEnabled"; "required": false; }; "emitValueTimeout": { "alias": "emitValueTimeout"; "required": false; }; "tooltipText": { "alias": "tooltipText"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "isOpenedChange": "isOpenedChange"; }, never, never, true, never>;
81
85
  static ngAcceptInputType_isOpened: unknown;
82
86
  static ngAcceptInputType_emitValueTimeout: unknown;
83
87
  static ngAcceptInputType_disabled: unknown;
@@ -1,3 +1,4 @@
1
+ export * from './select-common';
1
2
  export * from './select-option.directive';
2
3
  export * from './select.component';
3
4
  export * from './select.module';
@@ -0,0 +1,30 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class KbqSelectLoading {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelectLoading, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqSelectLoading, "kbq-select-loading, [kbq-select-loading]", ["kbqSelectLoading"], {}, {}, never, ["kbq-progress-spinner"], true, never>;
5
+ }
6
+ /**
7
+ * This component renders the error for a Select component.
8
+ * The error message can be displayed in two visual variants: a default centered layout (when [paging] is falsy)
9
+ * or a variant with left‑aligned text suitable for pagination controls (when [paging] is truthy).
10
+ */
11
+ export declare class KbqSelectError {
12
+ /** Indicates whether styles for pagination controls should be used. */
13
+ paging: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelectError, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqSelectError, "kbq-select-error, [kbq-select-error]", ["kbqSelectError"], { "paging": { "alias": "paging"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
16
+ }
17
+ /**
18
+ * Marks an element as the error text container for a *KbqSelect* component.
19
+ */
20
+ export declare class KbqSelectErrorText {
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelectErrorText, never>;
22
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqSelectErrorText, "[kbq-select-error-text]", ["kbqSelectErrorText"], {}, {}, never, never, true, never>;
23
+ }
24
+ /**
25
+ * Component that represents the empty state of a select dropdown.
26
+ */
27
+ export declare class KbqSelectNoOptions {
28
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelectNoOptions, never>;
29
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqSelectNoOptions, "kbq-select-no-options, [kbq-select-no-options]", ["kbqSelectNoOptions"], {}, {}, never, ["*"], true, never>;
30
+ }
@@ -1,8 +1,8 @@
1
1
  .kbq-select,
2
2
  .kbq-tree-select,
3
3
  .kbq-select__panel {
4
- --kbq-select-size-single-padding-left: var(--kbq-form-field-size-infix-padding);
5
- --kbq-select-size-single-padding-right: var(--kbq-form-field-size-suffix-padding);
4
+ --kbq-select-size-single-padding-left: 0;
5
+ --kbq-select-size-single-padding-right: 0;
6
6
  --kbq-select-size-single-padding-vertical: var(--kbq-size-xs);
7
7
  --kbq-select-size-single-content-gap: var(--kbq-size-xxs);
8
8
  --kbq-select-size-multiple-padding-left: 0;
@@ -5,7 +5,7 @@ import { CdkVirtualForOf } from '@angular/cdk/scrolling';
5
5
  import { AfterContentInit, ChangeDetectorRef, DestroyRef, DoCheck, ElementRef, EventEmitter, InjectionToken, NgZone, OnDestroy, OnInit, Provider, QueryList, Renderer2, TemplateRef } from '@angular/core';
6
6
  import { ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';
7
7
  import { ActiveDescendantKeyManager } from '@koobiq/cdk/a11y';
8
- import { CanUpdateErrorState, ErrorStateMatcher, KbqAbstractSelect, KbqComponentColors, KbqLocaleService, KbqOptgroup, KbqOption, KbqOptionBase, KbqOptionSelectionChange, KbqSelectMatcher, KbqSelectSearch, KbqSelectTrigger } from '@koobiq/components/core';
8
+ import { CanUpdateErrorState, ErrorStateMatcher, KbqAbstractSelect, KbqComponentColors, KbqLocaleService, KbqOptgroup, KbqOption, KbqOptionBase, KbqOptionSelectionChange, KbqSelectMatcher, KbqSelectSearch, KbqSelectSearchEmptyResult, KbqSelectTrigger } from '@koobiq/components/core';
9
9
  import { KbqCleaner, KbqFormField, KbqFormFieldControl } from '@koobiq/components/form-field';
10
10
  import { KbqTag } from '@koobiq/components/tags';
11
11
  import { Observable, Subject } from 'rxjs';
@@ -60,6 +60,10 @@ export declare const KBQ_SELECT_OPTIONS: InjectionToken<Partial<{
60
60
  }>>;
61
61
  /** Utility provider for `KBQ_SELECT_OPTIONS`. */
62
62
  export declare const kbqSelectOptionsProvider: (options: KbqSelectOptions) => Provider;
63
+ /** Delay in milliseconds before displaying a result when there are no options. */
64
+ export declare const delayBeforeDisplayingResultWithoutOptions = 101;
65
+ /** Minimum time in milliseconds to display the loading state. */
66
+ export declare const minimumTimeToDisplayLoading = 300;
63
67
  export declare class KbqSelect extends KbqAbstractSelect implements AfterContentInit, OnDestroy, OnInit, DoCheck, ControlValueAccessor, KbqFormFieldControl<any>, CanUpdateErrorState {
64
68
  private readonly _changeDetectorRef;
65
69
  private readonly _ngZone;
@@ -111,14 +115,15 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
111
115
  hiddenItems: number;
112
116
  /** The last measured value for the trigger's client bounding rect. */
113
117
  triggerRect: DOMRect;
114
- /** The cached font-size of the trigger element. */
118
+ /** The cached font-size of the trigger element in pixels. */
115
119
  triggerFontSize: number;
116
- /** Deals with the selection logic. */
120
+ /** Deals with the selection logic. Manages selected options and their states. */
117
121
  selectionModel: SelectionModel<KbqOptionBase>;
122
+ /** Previously selected options before the current selection was made. */
118
123
  previousSelectionModelSelected: KbqOptionBase[];
119
124
  /** Manages keyboard events for options in the panel. */
120
125
  keyManager: ActiveDescendantKeyManager<KbqOption>;
121
- /** The value of the select panel's transform-origin property. */
126
+ /** The value of the select panel's transform-origin property for animations. */
122
127
  transformOrigin: string;
123
128
  /** Emits when the panel element is finished transforming in. */
124
129
  panelDoneAnimatingStream: Subject<string>;
@@ -126,7 +131,7 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
126
131
  scrollStrategy: any;
127
132
  /**
128
133
  * The y-offset of the overlay panel in relation to the trigger's top start corner.
129
- * This must be adjusted to align the selected option text over the trigger text.
134
+ * This must be adjusted to align the selected option text over the trigger text
130
135
  * when the panel opens. Will change based on the y-position of the selected option.
131
136
  */
132
137
  offsetY: number;
@@ -141,27 +146,50 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
141
146
  * Trigger - is a clickable field to open select dropdown panel
142
147
  */
143
148
  trigger: ElementRef;
149
+ /** Reference to the overlay panel element. */
144
150
  panel: ElementRef;
151
+ /** Reference to the container element that holds the options. */
145
152
  optionsContainer: ElementRef;
153
+ /** Reference to the CDK connected overlay directive. */
146
154
  overlayDir: CdkConnectedOverlay;
155
+ /** Reference to the optional footer element in the panel. */
147
156
  footer?: ElementRef;
157
+ /** Reference to the CDK virtual scroll directive for virtual scrolling support. */
148
158
  cdkVirtualForOf?: CdkVirtualForOf<any>;
159
+ /** Query list of tags displayed in multiple selection mode. */
149
160
  tags: QueryList<KbqTag>;
150
- /** User-supplied override of the trigger element. */
161
+ /** User-supplied override of the trigger element for custom rendering. */
151
162
  customTrigger: KbqSelectTrigger;
163
+ /** User-supplied matcher component for custom value matching logic. */
152
164
  customMatcher: KbqSelectMatcher;
165
+ /** Custom template reference for rendering tag content. */
153
166
  customTagTemplateRef: TemplateRef<any>;
167
+ /** Reference to the optional cleaner element for clearing selection. */
154
168
  cleaner: KbqCleaner;
155
169
  /** All of the defined select options. */
156
170
  options: QueryList<KbqOption>;
157
171
  /** All of the defined groups of options. */
158
172
  optionGroups: QueryList<KbqOptgroup>;
173
+ /** Reference to the optional search component. */
159
174
  search: KbqSelectSearch;
175
+ /** Reference to the optional empty search result component. */
176
+ searchEmpty: KbqSelectSearchEmptyResult;
177
+ /** Template string for hidden items text. Supports {{ number }} placeholder. */
160
178
  hiddenItemsText: string;
179
+ /** Determines whether preselected values are displayed. */
180
+ showPreselectedValues: boolean;
181
+ /**
182
+ * Specifies the maximum number of trigger values allowed.
183
+ * This constant limits the size of the trigger values array to ensure performance
184
+ * and prevent excessive memory usage.
185
+ * A value of `0` indicates that there is no limit.
186
+ */
187
+ triggerValuesLimit: number;
161
188
  /** Classes to be passed to the select panel. Supports the same syntax as `ngClass`. */
162
189
  panelClass: string | string[] | Set<string> | {
163
190
  [key: string]: any;
164
191
  };
192
+ /** Classes to be passed to the overlay backdrop. */
165
193
  backdropClass: string;
166
194
  /** Object used to control when error messages are shown. */
167
195
  errorStateMatcher: ErrorStateMatcher;
@@ -171,13 +199,14 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
171
199
  */
172
200
  sortComparator: (a: KbqOptionBase, b: KbqOptionBase, options: KbqOptionBase[]) => number;
173
201
  /**
174
- * Whether to use a multiline matcher or not. Default is false
202
+ * Whether to use a multiline matcher or not. Default is false.
203
+ * When true, allows multiple lines of text in the selected value display.
175
204
  */
176
205
  multiline: boolean;
177
206
  /**
178
207
  * Controls when the search functionality is displayed based on the number of available options.
179
208
  *
180
- * Automatically enables search hiding if value provided, even if `defaultOptions.minOptionsThreshold` is provided.
209
+ * Automatically enables search hiding if value provided, even if `defaultOptions.searchMinOptionsThreshold` is provided.
181
210
  * @default undefined
182
211
  */
183
212
  set searchMinOptionsThreshold(value: 'auto' | number | undefined);
@@ -185,8 +214,10 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
185
214
  private _searchMinOptionsThreshold;
186
215
  /** Combined stream of all of the child options' change events. */
187
216
  readonly optionSelectionChanges: Observable<KbqOptionSelectionChange>;
188
- /** Event emitted when the select panel has been toggled. */
217
+ /** Event emitted when the select panel has been toggled. Emits true when opened, false when closed. */
189
218
  readonly openedChange: EventEmitter<boolean>;
219
+ /** Event emitted before the select panel starts opening. */
220
+ readonly beforeOpened: import("@angular/core").OutputEmitterRef<void>;
190
221
  /** Event emitted when the select has been opened. */
191
222
  readonly openedStream: Observable<void>;
192
223
  /** Event emitted when the select has been closed. */
@@ -199,27 +230,47 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
199
230
  * @docs-private
200
231
  */
201
232
  readonly valueChange: EventEmitter<any>;
233
+ /**
234
+ * Whether the overlay should have a backdrop.
235
+ * When true, clicking the backdrop will close the select.
236
+ */
202
237
  get hasBackdrop(): boolean;
203
238
  set hasBackdrop(value: boolean);
204
239
  private _hasBackdrop;
240
+ /**
241
+ * Placeholder text to be shown when no value is selected.
242
+ * Displayed in the trigger when the select is closed and no value is selected.
243
+ */
205
244
  get placeholder(): string;
206
245
  set placeholder(value: string);
207
246
  private _placeholder;
247
+ /**
248
+ * Whether the select is required. Affects validation and display of placeholder.
249
+ */
208
250
  get required(): boolean;
209
251
  set required(value: boolean);
210
252
  private _required;
253
+ /**
254
+ * Whether multiple options can be selected.
255
+ * Note: This cannot be changed dynamically after initialization.
256
+ */
211
257
  get multiple(): boolean;
212
258
  set multiple(value: boolean);
213
259
  private _multiple;
214
260
  /**
215
- * Function to compare the option values with the selected values. The first argument
216
- * is a value from an option. The second is a value from the selection. A boolean
217
- * should be returned.
261
+ * Function to compare the option values with the selected values.
262
+ * The first argument is a value from an option.
263
+ * The second is a value from the selection.
264
+ * Should return true if the values match.
265
+ * Defaults to strict equality comparison.
218
266
  */
219
267
  get compareWith(): (o1: any, o2: any) => boolean;
220
268
  set compareWith(fn: (o1: any, o2: any) => boolean);
221
269
  /**
222
- * Function for handling the combination Ctrl + A (select all). By default, the internal handler is used.
270
+ * Function for handling the Ctrl + A (select all) keyboard combination.
271
+ * By default, the internal handler selects all options.
272
+ * @param event The keyboard event that triggered the handler.
273
+ * @param select Reference to this select component.
223
274
  */
224
275
  get selectAllHandler(): (event: KeyboardEvent, select: KbqSelect) => void;
225
276
  set selectAllHandler(fn: (event: KeyboardEvent, select: KbqSelect) => void);
@@ -229,71 +280,126 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
229
280
  */
230
281
  panelWidth: KbqSelectPanelWidth;
231
282
  /**
232
- * Minimum width of the panel.
283
+ * Minimum width of the panel in pixels.
233
284
  * If minWidth is larger than window width, it will be ignored.
234
285
  */
235
286
  panelMinWidth: Exclude<KbqSelectPanelWidth, 'auto'>;
236
- /** Value of the select control. */
287
+ /** Value of the select control. Can be a single value or array of values for multiple selection. */
237
288
  get value(): any;
238
289
  set value(newValue: any);
239
290
  private _value;
291
+ /**
292
+ * Unique identifier for the select component.
293
+ * Auto-generates an ID if not provided.
294
+ */
240
295
  get id(): string;
241
296
  set id(value: string);
242
297
  private _id;
298
+ /**
299
+ * Sets the tabIndex of the select element.
300
+ * Automatically set to -1 when disabled.
301
+ */
243
302
  get tabIndex(): number;
244
303
  set tabIndex(value: number);
245
304
  private _tabIndex;
305
+ /**
306
+ * Whether the select is disabled.
307
+ * When disabled, the select cannot be opened and its value cannot be changed.
308
+ */
246
309
  get disabled(): boolean;
247
310
  set disabled(value: boolean);
248
311
  private _disabled;
249
312
  /** Whether the select is focused. */
250
313
  get focused(): boolean;
251
314
  set focused(value: boolean);
315
+ /** Whether the select panel is currently open. */
252
316
  panelOpen: boolean;
253
- /** true if virtual scrolling is used. */
317
+ /** Whether virtual scrolling is enabled for the options panel. */
254
318
  withVirtualScroll: boolean;
255
319
  private _focused;
320
+ /** Whether the search returned no results. */
256
321
  get isEmptySearchResult(): boolean;
322
+ /** Whether the cleaner (clear button) should be shown. */
257
323
  get canShowCleaner(): boolean;
324
+ /** Returns the currently selected option(s). Single value or array for multiple selection. */
258
325
  get selected(): KbqOptionBase | KbqOptionBase[];
326
+ /** Returns the display value for the trigger element. */
259
327
  get triggerValue(): string;
328
+ /** Returns all selected options in display order. */
260
329
  get triggerValues(): KbqOptionBase[];
330
+ /** Whether no option is currently selected. */
261
331
  get empty(): boolean;
332
+ /** Whether there are no options available. */
333
+ get noOptions(): boolean;
334
+ /** Returns the first selected option that is not disabled. */
262
335
  get firstSelected(): KbqOptionBase | null;
336
+ /** Whether the first selected option is filtered (not visible in the list). */
263
337
  get firstFiltered(): boolean;
264
338
  /** @docs-private */
265
339
  get colorForState(): KbqComponentColors;
266
- /** Whether multiple choice is enabled or not. True if multiple or multiline */
340
+ /** Whether multiple choice is enabled. True if multiple or multiline mode is active. */
267
341
  get multiSelection(): boolean;
342
+ /** Subscription to the close event of the overlay. */
268
343
  private closeSubscription;
269
344
  /** The scroll position of the overlay panel, calculated to center the selected option. */
270
345
  private scrollTop;
271
- /** Unique id for this input. */
346
+ /** Unique id for this input. Auto-incremented for each instance. */
272
347
  private readonly uid;
348
+ /** Subject that emits when the component visibility changes. */
273
349
  private visibleChanges;
274
- /** Width of the overlay panel. */
350
+ /** Width of the overlay panel in pixels or as a string. */
275
351
  protected overlayWidth: string | number;
276
- /** Min width of the overlay panel. */
352
+ /** Minimum width of the overlay panel in pixels. */
277
353
  protected overlayMinWidth: string | number;
278
- /** Origin for the overlay panel. */
354
+ /** Origin element for the overlay panel positioning. */
279
355
  protected overlayOrigin?: CdkOverlayOrigin | ElementRef;
356
+ /** Flag indicating if the dropdown class has been added to the overlay container. */
357
+ private classAddedToOverlayContainer;
358
+ private openPanelTimeout;
280
359
  constructor(_changeDetectorRef: ChangeDetectorRef, _ngZone: NgZone, _renderer: Renderer2, defaultErrorStateMatcher: ErrorStateMatcher, elementRef: ElementRef<HTMLElement>, overlayContainer: OverlayContainer, _dir: Directionality, parentForm: NgForm, parentFormGroup: FormGroupDirective, parentFormField: KbqFormField, ngControl: NgControl, scrollStrategyFactory: any, localeService?: KbqLocaleService | undefined);
360
+ /** Lifecycle hook called after component initialization. Initializes selection model and subscriptions. */
281
361
  ngOnInit(): void;
362
+ /** Lifecycle hook for change detection. Updates visibility and error state. */
282
363
  ngDoCheck(): void;
364
+ /** Lifecycle hook after content initialization. Sets up key manager and option subscriptions. */
283
365
  ngAfterContentInit(): void;
366
+ /** Lifecycle hook when component is destroyed. Cleans up subscriptions. */
284
367
  ngOnDestroy(): void;
368
+ /** Updates the error state based on the error state matcher. */
285
369
  updateErrorState(): void;
370
+ /**
371
+ * Formats the hidden items text with the number of hidden items.
372
+ * @param hiddenItemsText Template string with {{ number }} placeholder.
373
+ * @param hiddenItems Number of hidden items to display.
374
+ * @returns Formatted string with the number of hidden items.
375
+ */
286
376
  hiddenItemsTextFormatter(hiddenItemsText: string, hiddenItems: number): string;
377
+ /**
378
+ * Clears the current selection.
379
+ * @param $event Mouse event to prevent default behavior.
380
+ */
287
381
  clearValue($event: any): void;
288
382
  /** `View -> model callback called when value changes` */
289
383
  onChange: (value: any) => void;
290
384
  /** `View -> model callback called when select has been touched` */
291
385
  onTouched: () => void;
386
+ /** Resets the search component if present. */
292
387
  resetSearch(): void;
293
388
  /** Toggles the overlay panel open or closed. */
294
389
  toggle(): void;
295
- /** Opens the overlay panel. */
390
+ /**
391
+ * Triggers the opening of the panel component.
392
+ * If the component is disabled or the panel is already open, the call is ignored.
393
+ * Otherwise, the (beforeOpened) event is emitted.
394
+ * When no options are available, the panel is opened after a short delay;
395
+ * if options exist, it opens immediately.
396
+ */
296
397
  open(): void;
398
+ /**
399
+ * Internal method to open the panel. Handles overlay positioning and sizing.
400
+ * Sets up the overlay dimensions based on trigger size and configured options.
401
+ */
402
+ openPanel(): void;
297
403
  /** Closes the overlay panel and focuses the host element. */
298
404
  close(): void;
299
405
  /**
@@ -326,8 +432,18 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
326
432
  * @param isDisabled Sets whether the component is disabled.
327
433
  */
328
434
  setDisabledState(isDisabled: boolean): void;
435
+ /**
436
+ * Checks if the current direction is RTL (right-to-left).
437
+ * @returns True if RTL mode is active, false otherwise.
438
+ */
329
439
  isRtl(): boolean;
440
+ /**
441
+ * Handles all keyboard events for the select.
442
+ * Delegates to appropriate handler based on panel state.
443
+ * @param event The keyboard event to handle.
444
+ */
330
445
  handleKeydown(event: KeyboardEvent): void;
446
+ /** Handles focus event on the select element. */
331
447
  onFocus(): void;
332
448
  /**
333
449
  * Calls the touched callback only if the panel is closed. Otherwise, the trigger will
@@ -336,9 +452,10 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
336
452
  onBlur(): void;
337
453
  /**
338
454
  * Callback that is invoked when the overlay panel has been attached.
455
+ * Sets up position change subscription and closing actions.
339
456
  */
340
457
  onAttached(): void;
341
- /** Returns the theme to be used on the panel. */
458
+ /** Returns the theme to be used on the panel based on parent form field color. */
342
459
  getPanelTheme(): string;
343
460
  /** Focuses the select element. */
344
461
  focus(): void;
@@ -347,34 +464,77 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
347
464
  * @docs-private
348
465
  */
349
466
  onContainerClick(): void;
350
- /** Invoked when an option is clicked. */
467
+ /**
468
+ * Handles removal of a matched item in the trigger.
469
+ * @param option The option to remove from selection.
470
+ * @param $event The mouse event that triggered the removal.
471
+ */
351
472
  onRemoveMatcherItem(option: KbqOptionBase, $event: any): void;
473
+ /**
474
+ * Calculates the number of hidden items in multiple selection mode.
475
+ * Updates the hiddenItems property and triggers change detection.
476
+ */
352
477
  calculateHiddenItems: () => void;
478
+ /**
479
+ * Gets the height of a single option item.
480
+ * @returns The height in pixels of the first option, or 0 if no options exist.
481
+ */
353
482
  getItemHeight(): number;
483
+ /**
484
+ * Handles click events on the select.
485
+ * Closes the panel if click is inside the footer.
486
+ * @param $event The mouse event to handle.
487
+ */
354
488
  handleClick($event: MouseEvent): void;
355
489
  /** @docs-private */
356
490
  setSelectedOptionsByClick(option: KbqOption): void;
357
491
  /** @docs-private */
358
492
  protected shouldShowSearch(): boolean;
493
+ /** Updates locale parameters from the locale service. */
359
494
  private updateLocaleParams;
495
+ /** Checks if the component is currently visible in the viewport. */
360
496
  private isVisible;
497
+ /** Gets the current overlay position index in the container. */
361
498
  private currentOverlayPosition;
499
+ /** Gets the position index of modal overlay in the container. */
362
500
  private modalOverlayPosition;
501
+ /**
502
+ * Creates an observable of actions that should close the select panel.
503
+ * Includes outside pointer events and overlay detachments.
504
+ */
363
505
  private closingActions;
506
+ /** Gets the height of the options container element. */
364
507
  private getHeightOfOptionsContainer;
508
+ /** Updates the keyboard manager scroll size based on options container height. */
365
509
  private updateScrollSize;
510
+ /** Calculates the total width of all selected items in the matcher. */
366
511
  private getTotalItemsWidthInMatcher;
512
+ /**
513
+ * Calculates the width of a single item including margins.
514
+ * @param element The DOM element to measure.
515
+ * @returns Total width including margins and gap.
516
+ */
367
517
  private getItemWidth;
368
518
  /** Handles keyboard events while the select is closed. */
369
519
  private handleClosedKeydown;
370
- /** Handles keyboard events when the selected is open. */
520
+ /** Handles keyboard events when the select is open. */
371
521
  private handleOpenKeydown;
522
+ /**
523
+ * Initializes the selection based on the current value.
524
+ * Defers execution to avoid change detection errors.
525
+ */
372
526
  private initializeSelection;
373
527
  /**
374
- * Sets the selected option based on a value. If no option can be
375
- * found with the designated value, the select trigger is cleared.
528
+ * Sets the selected option based on a value.
529
+ * If no option can be found with the designated value, the select trigger is cleared.
530
+ * @param value The value to select. Can be a single value or array for multiple selection.
376
531
  */
377
532
  private setSelectionByValue;
533
+ /**
534
+ * Finds the option that corresponds to the given value.
535
+ * @param value The value to find.
536
+ * @returns The matching option or undefined if not found.
537
+ */
378
538
  private getCorrespondOption;
379
539
  /**
380
540
  * Finds and selects and option based on its value.
@@ -387,7 +547,7 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
387
547
  private resetOptions;
388
548
  /** Invoked when an option is clicked. */
389
549
  private onSelect;
390
- /** Sorts the selected values in the selected based on their order in the panel. */
550
+ /** Sorts the selected values based on their order in the panel. */
391
551
  private sortValues;
392
552
  /** Emits change event to set the model value. */
393
553
  private propagateChanges;
@@ -404,10 +564,22 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
404
564
  private _compareWith;
405
565
  /** Function for handling the combination Ctrl + A (select all). By default, the internal handler is used. */
406
566
  private _selectAllHandler;
567
+ /**
568
+ * Calculates the total width and count of visible items.
569
+ * @returns Tuple of [totalVisibleItemsWidth, visibleItemsCount].
570
+ */
407
571
  private getTotalVisibleItems;
572
+ /**
573
+ * Creates a hidden clone of the trigger element for width calculations.
574
+ * @returns Clone of the trigger element positioned off-screen.
575
+ */
408
576
  private buildTriggerClone;
577
+ /** Adds the dropdown class to the overlay container when first select opens. */
578
+ private addClassToOverlayContainer;
579
+ /** Removes the dropdown class from the overlay container when select closes. */
580
+ private removeClassFromOverlayContainer;
409
581
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelect, [null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; host: true; }, { optional: true; self: true; }, null, { optional: true; }]>;
410
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqSelect, "kbq-select", ["kbqSelect"], { "hiddenItemsText": { "alias": "hiddenItemsText"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "sortComparator": { "alias": "sortComparator"; "required": false; }; "multiline": { "alias": "multiline"; "required": false; }; "searchMinOptionsThreshold": { "alias": "searchMinOptionsThreshold"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "selectAllHandler": { "alias": "selectAllHandler"; "required": false; }; "panelWidth": { "alias": "panelWidth"; "required": false; }; "panelMinWidth": { "alias": "panelMinWidth"; "required": false; }; "value": { "alias": "value"; "required": false; }; "id": { "alias": "id"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "hiddenItemsTextFormatter": { "alias": "hiddenItemsTextFormatter"; "required": false; }; }, { "openedChange": "openedChange"; "openedStream": "opened"; "closedStream": "closed"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, ["footer", "cdkVirtualForOf", "customTrigger", "customMatcher", "customTagTemplateRef", "cleaner", "search", "options", "optionGroups"], ["kbq-select-matcher, [kbq-select-matcher]", "kbq-select-trigger, [kbq-select-trigger]", "kbq-cleaner", "[kbqSelectSearch]", "[kbq-select-search-empty-result]", "*", "kbq-select-footer,[kbq-select-footer]"], true, never>;
582
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqSelect, "kbq-select", ["kbqSelect"], { "hiddenItemsText": { "alias": "hiddenItemsText"; "required": false; }; "showPreselectedValues": { "alias": "showPreselectedValues"; "required": false; }; "triggerValuesLimit": { "alias": "triggerValuesLimit"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "sortComparator": { "alias": "sortComparator"; "required": false; }; "multiline": { "alias": "multiline"; "required": false; }; "searchMinOptionsThreshold": { "alias": "searchMinOptionsThreshold"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "selectAllHandler": { "alias": "selectAllHandler"; "required": false; }; "panelWidth": { "alias": "panelWidth"; "required": false; }; "panelMinWidth": { "alias": "panelMinWidth"; "required": false; }; "value": { "alias": "value"; "required": false; }; "id": { "alias": "id"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "hiddenItemsTextFormatter": { "alias": "hiddenItemsTextFormatter"; "required": false; }; }, { "openedChange": "openedChange"; "beforeOpened": "beforeOpened"; "openedStream": "opened"; "closedStream": "closed"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, ["footer", "cdkVirtualForOf", "customTrigger", "customMatcher", "customTagTemplateRef", "cleaner", "search", "searchEmpty", "options", "optionGroups"], ["kbq-select-matcher, [kbq-select-matcher]", "kbq-select-trigger, [kbq-select-trigger]", "kbq-cleaner", "[kbqSelectSearch]", "[kbq-select-search-empty-result]", "*", "kbq-select-footer,[kbq-select-footer]"], true, never>;
411
583
  static ngAcceptInputType_multiline: unknown;
412
584
  static ngAcceptInputType_multiple: unknown;
413
585
  static ngAcceptInputType_panelMinWidth: unknown;
@@ -8,9 +8,10 @@ import * as i6 from "@angular/common";
8
8
  import * as i7 from "@angular/cdk/a11y";
9
9
  import * as i8 from "./select.component";
10
10
  import * as i9 from "./select-option.directive";
11
- import * as i10 from "@koobiq/components/form-field";
11
+ import * as i10 from "./select-common";
12
+ import * as i11 from "@koobiq/components/form-field";
12
13
  export declare class KbqSelectModule {
13
14
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelectModule, never>;
14
- static ɵmod: i0.ɵɵNgModuleDeclaration<KbqSelectModule, never, [typeof i1.OverlayModule, typeof i2.KbqOptionModule, typeof i3.KbqIconModule, typeof i4.KbqTagsModule, typeof i5.KbqToolTipModule, typeof i2.KbqSelectSearch, typeof i2.KbqSelectFooter, typeof i2.KbqSelectMatcher, typeof i2.KbqSelectTrigger, typeof i2.KbqSelectSearchEmptyResult, typeof i6.NgClass, typeof i6.NgTemplateOutlet, typeof i7.A11yModule, typeof i8.KbqSelect, typeof i9.KbqOptionTooltip], [typeof i8.KbqSelect, typeof i9.KbqOptionTooltip, typeof i2.KbqOptionModule, typeof i2.KbqSelectSearch, typeof i2.KbqSelectFooter, typeof i2.KbqSelectMatcher, typeof i2.KbqSelectTrigger, typeof i2.KbqSelectSearchEmptyResult, typeof i10.KbqFormFieldModule]>;
15
+ static ɵmod: i0.ɵɵNgModuleDeclaration<KbqSelectModule, never, [typeof i1.OverlayModule, typeof i2.KbqOptionModule, typeof i3.KbqIconModule, typeof i4.KbqTagsModule, typeof i5.KbqToolTipModule, typeof i2.KbqSelectSearch, typeof i2.KbqSelectFooter, typeof i2.KbqSelectMatcher, typeof i2.KbqSelectTrigger, typeof i2.KbqSelectSearchEmptyResult, typeof i6.NgClass, typeof i6.NgTemplateOutlet, typeof i7.A11yModule, typeof i8.KbqSelect, typeof i9.KbqOptionTooltip, typeof i10.KbqSelectLoading, typeof i10.KbqSelectError, typeof i10.KbqSelectNoOptions, typeof i10.KbqSelectErrorText], [typeof i8.KbqSelect, typeof i9.KbqOptionTooltip, typeof i2.KbqOptionModule, typeof i2.KbqSelectSearch, typeof i2.KbqSelectFooter, typeof i2.KbqSelectMatcher, typeof i2.KbqSelectTrigger, typeof i2.KbqSelectSearchEmptyResult, typeof i10.KbqSelectLoading, typeof i11.KbqFormFieldModule, typeof i10.KbqSelectError, typeof i10.KbqSelectNoOptions, typeof i10.KbqSelectErrorText]>;
15
16
  static ɵinj: i0.ɵɵInjectorDeclaration<KbqSelectModule>;
16
17
  }
@@ -1,4 +1,4 @@
1
- import { InjectionToken } from '@angular/core';
1
+ import { InjectionToken, Injector } from '@angular/core';
2
2
  /** Injection token that can be used to access the data that was passed in to a sidepanel. */
3
3
  export declare const KBQ_SIDEPANEL_DATA: InjectionToken<any>;
4
4
  export declare enum KbqSidepanelPosition {
@@ -35,4 +35,9 @@ export declare class KbqSidepanelConfig<D = any> {
35
35
  disableClose?: boolean;
36
36
  /** Custom class for the overlay pane. */
37
37
  overlayPanelClass?: string | string[];
38
+ /**
39
+ * Injector used for the instantiation of the component to be attached.
40
+ * Allows to pass a custom injector to provide a dependency injection hierarchy for the sidepanel content.
41
+ */
42
+ injector?: Injector;
38
43
  }
@@ -1,13 +1,17 @@
1
+ import { OnDestroy } from '@angular/core';
1
2
  import * as i0 from "@angular/core";
2
3
  /**
3
- * Component representing a skeleton placeholder.
4
+ * Directive representing a skeleton placeholder.
4
5
  */
5
- export declare class KbqSkeleton {
6
+ export declare class KbqSkeleton implements OnDestroy {
7
+ private readonly styleLoader;
6
8
  private readonly element;
7
9
  private readonly window;
8
- private readonly createdAt;
10
+ /** Whether the skeleton is enabled. */
11
+ readonly enabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
9
12
  constructor();
13
+ ngOnDestroy(): void;
10
14
  private syncAnimation;
11
15
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSkeleton, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqSkeleton, "kbq-skeleton", ["kbqSkeleton"], {}, {}, never, never, true, never>;
16
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqSkeleton, "kbq-skeleton, [kbqSkeleton]", ["kbqSkeleton"], { "enabled": { "alias": "kbqSkeleton"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
13
17
  }
@@ -8,22 +8,35 @@
8
8
  }
9
9
  }
10
10
 
11
- .kbq-skeleton {
11
+ .kbq-skeleton:not(.kbq-skeleton_disabled) {
12
12
  --kbq-skeleton-min-height: var(--kbq-size-l);
13
13
  --kbq-skeleton-animation-duration: 1200ms;
14
14
  --kbq-skeleton-animation-delay: 0ms;
15
15
  --kbq-skeleton-border-radius: var(--kbq-size-xxs);
16
16
  --kbq-skeleton-wave-width: 100px;
17
+ --kbq-skeleton-z-index: 1;
18
+
19
+ &:is(kbq-skeleton) {
20
+ display: flex;
21
+ min-height: var(--kbq-skeleton-min-height);
22
+ border-radius: var(--kbq-skeleton-border-radius);
23
+ }
17
24
 
18
25
  position: relative;
19
- display: flex;
20
- min-height: var(--kbq-skeleton-min-height);
21
- border-radius: var(--kbq-skeleton-border-radius);
22
- background-color: var(--kbq-skeleton-background);
23
26
  overflow: hidden;
24
27
  clip-path: inset(0);
25
28
  user-select: none;
26
29
  pointer-events: none;
30
+ border-color: transparent;
31
+ outline-color: transparent;
32
+
33
+ &::before {
34
+ content: '';
35
+ position: absolute;
36
+ inset: 0;
37
+ background-color: var(--kbq-skeleton-background);
38
+ z-index: var(--kbq-skeleton-z-index);
39
+ }
27
40
 
28
41
  &::after {
29
42
  content: '';
@@ -31,6 +44,7 @@
31
44
  inset-block: 0;
32
45
  left: calc(var(--kbq-skeleton-wave-width) * -1);
33
46
  width: var(--kbq-skeleton-wave-width);
47
+ z-index: var(--kbq-skeleton-z-index);
34
48
  background: linear-gradient(
35
49
  90deg,
36
50
  var(--kbq-skeleton-animation-wave-start) 0%,