@koobiq/components 20.1.0 → 20.2.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 (120) hide show
  1. package/accordion/_accordion-theme.scss +1 -1
  2. package/accordion/accordion-tokens.scss +1 -0
  3. package/accordion/{accordion-trigger.component.scss → accordion-trigger.scss} +4 -0
  4. package/accordion/{accordion.component.scss → accordion.scss} +3 -3
  5. package/accordion/index.d.ts +215 -119
  6. package/alert/_alert-theme.scss +14 -0
  7. package/alert/alert.component.scss +24 -13
  8. package/alert/index.d.ts +63 -29
  9. package/autocomplete/autocomplete.scss +2 -1
  10. package/autocomplete/index.d.ts +35 -29
  11. package/badge/index.d.ts +2 -3
  12. package/clamped-text/index.d.ts +3 -2
  13. package/core/index.d.ts +116 -11
  14. package/core/styles/_core.scss +2 -0
  15. package/core/styles/common/_animation.scss +31 -24
  16. package/core/styles/common/_connected-overlay.scss +36 -0
  17. package/core/styles/common/_select.scss +7 -2
  18. package/dropdown/dropdown-item.scss +16 -0
  19. package/dropdown/dropdown-tokens.scss +2 -1
  20. package/dropdown/dropdown.scss +9 -0
  21. package/dropdown/index.d.ts +73 -6
  22. package/fesm2022/koobiq-components-accordion.mjs +406 -303
  23. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  24. package/fesm2022/koobiq-components-actions-panel.mjs +1 -1
  25. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  26. package/fesm2022/koobiq-components-alert.mjs +88 -48
  27. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  28. package/fesm2022/koobiq-components-app-switcher.mjs +1 -1
  29. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  30. package/fesm2022/koobiq-components-autocomplete.mjs +37 -23
  31. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  32. package/fesm2022/koobiq-components-badge.mjs +5 -4
  33. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  34. package/fesm2022/koobiq-components-breadcrumbs.mjs +1 -1
  35. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  36. package/fesm2022/koobiq-components-clamped-text.mjs +5 -0
  37. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  38. package/fesm2022/koobiq-components-code-block.mjs +1 -1
  39. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  40. package/fesm2022/koobiq-components-core.mjs +98 -4
  41. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  42. package/fesm2022/koobiq-components-datepicker.mjs +10 -7
  43. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  44. package/fesm2022/koobiq-components-dropdown.mjs +99 -20
  45. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  46. package/fesm2022/koobiq-components-file-upload.mjs +2 -2
  47. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  48. package/fesm2022/koobiq-components-filter-bar.mjs +203 -32
  49. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  50. package/fesm2022/koobiq-components-form-field.mjs +4 -4
  51. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  52. package/fesm2022/koobiq-components-icon.mjs +14 -5
  53. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  54. package/fesm2022/koobiq-components-inline-edit.mjs +4 -2
  55. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  56. package/fesm2022/koobiq-components-navbar.mjs +117 -22
  57. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  58. package/fesm2022/koobiq-components-notification-center.mjs +19 -4
  59. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  60. package/fesm2022/koobiq-components-popover.mjs +5 -0
  61. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  62. package/fesm2022/koobiq-components-search-expandable.mjs +43 -8
  63. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  64. package/fesm2022/koobiq-components-select.mjs +36 -45
  65. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  66. package/fesm2022/koobiq-components-split-button.mjs +3 -10
  67. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  68. package/fesm2022/koobiq-components-tabs.mjs +29 -17
  69. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-tags.mjs +1 -1
  71. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  72. package/fesm2022/koobiq-components-timepicker.mjs +3 -4
  73. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  74. package/fesm2022/koobiq-components-timezone.mjs +3 -5
  75. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  76. package/fesm2022/koobiq-components-toast.mjs +1 -1
  77. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-tooltip.mjs +118 -6
  79. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-tree-select.mjs +39 -31
  81. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  82. package/filter-bar/_filter-bar-theme.scss +0 -4
  83. package/filter-bar/filter-bar-tokens.scss +3 -0
  84. package/filter-bar/filters.scss +3 -2
  85. package/filter-bar/index.d.ts +62 -3
  86. package/filter-bar/pipes/base-pipe.scss +0 -11
  87. package/filter-bar/pipes/pipe-input.scss +10 -0
  88. package/icon/icon-button.scss +3 -1
  89. package/icon/index.d.ts +15 -2
  90. package/navbar/_navbar-item_vertical.scss +7 -5
  91. package/navbar/index.d.ts +38 -4
  92. package/navbar/navbar-brand.scss +17 -7
  93. package/notification-center/index.d.ts +2 -1
  94. package/package.json +3 -3
  95. package/prebuilt-themes/dark-theme.css +1 -1
  96. package/prebuilt-themes/light-theme.css +1 -1
  97. package/prebuilt-themes/theme.css +1 -1
  98. package/schematics/collection.json +10 -0
  99. package/schematics/migrations/alert-signals/README.md +64 -0
  100. package/schematics/migrations/alert-signals/data.js +70 -0
  101. package/schematics/migrations/alert-signals/index.js +350 -0
  102. package/schematics/migrations/alert-signals/schema.json +20 -0
  103. package/schematics/migrations/autocomplete-panel-width-auto/README.md +68 -0
  104. package/schematics/migrations/autocomplete-panel-width-auto/index.js +70 -0
  105. package/schematics/migrations/autocomplete-panel-width-auto/schema.json +15 -0
  106. package/schematics/migrations/filter-bar-signals/README.md +1 -1
  107. package/schematics/migrations.json +11 -1
  108. package/schematics/ng-add/index.js +1 -1
  109. package/schematics/utils/angular-parsing.js +11 -2
  110. package/search-expandable/index.d.ts +3 -0
  111. package/select/index.d.ts +51 -24
  112. package/tabs/_tabs-common.scss +60 -31
  113. package/tabs/_tabs-theme.scss +12 -0
  114. package/tabs/index.d.ts +2 -2
  115. package/tabs/tab-header.scss +14 -0
  116. package/tabs/tab-nav-bar.scss +4 -0
  117. package/tabs/tabs-tokens.scss +1 -0
  118. package/timezone/index.d.ts +1 -3
  119. package/tooltip/index.d.ts +73 -4
  120. package/tree-select/index.d.ts +46 -22
package/alert/index.d.ts CHANGED
@@ -1,54 +1,88 @@
1
- import * as i0 from '@angular/core';
2
- import { AfterContentInit } from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
3
2
  import { KbqButton } from '@koobiq/components/button';
4
3
  import { KbqIconItem, KbqIcon } from '@koobiq/components/icon';
5
- import * as i1 from '@angular/cdk/a11y';
6
- import * as i2 from '@angular/cdk/platform';
7
4
 
5
+ /** Visual style of an alert. */
8
6
  declare enum KbqAlertStyles {
7
+ /** Neutral background; the status is conveyed by the icon color only. */
9
8
  Default = "default",
9
+ /** Colored background matching the status — use to draw attention when a default alert gets lost on screen. */
10
10
  Colored = "colored"
11
11
  }
12
+ /** Status conveyed by an alert. Drives the background (colored style) and the auto-tinted status icon. */
12
13
  declare enum KbqAlertColors {
13
14
  Error = "error",
14
15
  Warning = "warning",
15
16
  Success = "success",
16
17
  Info = "info"
17
18
  }
19
+ /** Marks the projected alert heading. */
18
20
  declare class KbqAlertTitle {
19
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqAlertTitle, never>;
20
- static ɵdir: i0.ɵɵDirectiveDeclaration<KbqAlertTitle, "[kbq-alert-title]", never, {}, {}, never, never, true, never>;
21
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqAlertTitle, never>;
22
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KbqAlertTitle, "[kbq-alert-title]", ["kbqAlertTitle"], {}, {}, never, never, true, never>;
21
23
  }
24
+ /** Marks the projected close control (place it on a native `<button>` with an accessible name). */
22
25
  declare class KbqAlertCloseButton {
23
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqAlertCloseButton, never>;
24
- static ɵdir: i0.ɵɵDirectiveDeclaration<KbqAlertCloseButton, "[kbq-alert-close-button]", never, {}, {}, never, never, true, never>;
26
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqAlertCloseButton, never>;
27
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KbqAlertCloseButton, "[kbq-alert-close-button]", ["kbqAlertCloseButton"], {}, {}, never, never, true, never>;
25
28
  }
29
+ /** Marks a projected action control (link or button) shown in the alert's button stack. */
26
30
  declare class KbqAlertControl {
27
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqAlertControl, never>;
28
- static ɵdir: i0.ɵɵDirectiveDeclaration<KbqAlertControl, "[kbq-alert-control]", never, {}, {}, never, never, true, never>;
31
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqAlertControl, never>;
32
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KbqAlertControl, "[kbq-alert-control]", ["kbqAlertControl"], {}, {}, never, never, true, never>;
29
33
  }
30
- declare class KbqAlert implements AfterContentInit {
31
- readonly iconItem: i0.Signal<KbqIconItem | undefined>;
32
- readonly icon: i0.Signal<KbqIcon | undefined>;
33
- readonly button: i0.Signal<KbqButton | undefined>;
34
- readonly title: i0.Signal<KbqAlertTitle | undefined>;
35
- readonly control: i0.Signal<KbqAlertControl | undefined>;
36
- readonly closeButton: i0.Signal<KbqAlertCloseButton | undefined>;
37
- readonly compact: i0.InputSignal<boolean>;
38
- readonly alertStyle: i0.InputSignal<string>;
39
- get alertColor(): string;
40
- set alertColor(value: string | KbqAlertColors);
41
- private _alertColor;
42
- get isColored(): boolean;
43
- ngAfterContentInit(): void;
44
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqAlert, never>;
45
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqAlert, "kbq-alert", never, { "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "alertStyle": { "alias": "alertStyle"; "required": false; "isSignal": true; }; "alertColor": { "alias": "alertColor"; "required": false; }; }, {}, ["iconItem", "icon", "button", "title", "control", "closeButton"], ["[kbq-icon-item],[kbq-icon]", "[kbq-alert-title]", "*", "[kbq-alert-control]", "[kbq-alert-close-button]"], true, never>;
34
+ /**
35
+ * Shows important information on a page. Can carry a hint, signal a status change, or indicate a problem.
36
+ *
37
+ * ```html
38
+ * <kbq-alert [alertColor]="'error'" [alertStyle]="'colored'">Something went wrong</kbq-alert>
39
+ * ```
40
+ *
41
+ * For a dynamically inserted alert, add `role="alert"` (or `aria-live`) on the host so assistive
42
+ * technology announces it — see the component guide.
43
+ */
44
+ declare class KbqAlert {
45
+ /** @docs-private */
46
+ protected readonly iconItem: _angular_core.Signal<KbqIconItem | undefined>;
47
+ /** @docs-private */
48
+ protected readonly icon: _angular_core.Signal<KbqIcon | undefined>;
49
+ /** @docs-private */
50
+ protected readonly button: _angular_core.Signal<KbqButton | undefined>;
51
+ /** @docs-private */
52
+ protected readonly title: _angular_core.Signal<KbqAlertTitle | undefined>;
53
+ /** @docs-private */
54
+ protected readonly control: _angular_core.Signal<KbqAlertControl | undefined>;
55
+ /** @docs-private */
56
+ protected readonly closeButton: _angular_core.Signal<KbqAlertCloseButton | undefined>;
57
+ /** Whether the alert uses the denser compact size. */
58
+ readonly compact: _angular_core.InputSignalWithTransform<boolean, unknown>;
59
+ /** Visual style — neutral `default` or the attention-drawing `colored` background. */
60
+ readonly alertStyle: _angular_core.InputSignal<"default" | "colored">;
61
+ /**
62
+ * Status of the alert. Drives the background in the `colored` style and auto-tints an uncolored
63
+ * projected status icon to the matching color (`info` icons become `contrast`).
64
+ * @default 'info'
65
+ */
66
+ readonly alertColor: _angular_core.InputSignalWithTransform<"error" | "warning" | "success" | "info", "error" | "warning" | "success" | "info" | null | undefined>;
67
+ /** Emitted when the projected close control is activated. The consumer is responsible for hiding the alert. */
68
+ readonly closed: _angular_core.OutputEmitterRef<void>;
69
+ /** @docs-private */
70
+ protected readonly alertColorClass: _angular_core.Signal<string>;
71
+ /** @docs-private */
72
+ protected readonly isColored: _angular_core.Signal<boolean>;
73
+ /** The projected status icon, whichever slot it came from. @docs-private */
74
+ protected readonly projectedIcon: _angular_core.Signal<KbqIcon | undefined>;
75
+ /** Last color this component auto-assigned to the icon; lets us correct color on change without ignoring consumer's color. */
76
+ private lastAutoColor;
77
+ constructor();
78
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqAlert, never>;
79
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqAlert, "kbq-alert", ["kbqAlert"], { "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "alertStyle": { "alias": "alertStyle"; "required": false; "isSignal": true; }; "alertColor": { "alias": "alertColor"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, ["iconItem", "icon", "button", "title", "control", "closeButton"], ["[kbq-icon-item],[kbq-icon]", "[kbq-alert-title]", "*", "[kbq-alert-control]", "[kbq-alert-close-button]"], true, never>;
46
80
  }
47
81
 
48
82
  declare class KbqAlertModule {
49
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqAlertModule, never>;
50
- static ɵmod: i0.ɵɵNgModuleDeclaration<KbqAlertModule, never, [typeof i1.A11yModule, typeof i2.PlatformModule, typeof KbqAlert, typeof KbqAlertTitle, typeof KbqAlertCloseButton, typeof KbqAlertControl], [typeof KbqAlert, typeof KbqAlertTitle, typeof KbqAlertCloseButton, typeof KbqAlertControl]>;
51
- static ɵinj: i0.ɵɵInjectorDeclaration<KbqAlertModule>;
83
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqAlertModule, never>;
84
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<KbqAlertModule, never, [typeof KbqAlert, typeof KbqAlertTitle, typeof KbqAlertCloseButton, typeof KbqAlertControl], [typeof KbqAlert, typeof KbqAlertTitle, typeof KbqAlertCloseButton, typeof KbqAlertControl]>;
85
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<KbqAlertModule>;
52
86
  }
53
87
 
54
88
  export { KbqAlert, KbqAlertCloseButton, KbqAlertColors, KbqAlertControl, KbqAlertModule, KbqAlertStyles, KbqAlertTitle };
@@ -14,7 +14,8 @@
14
14
  box-sizing: border-box;
15
15
  min-width: 100%;
16
16
  width: 100%;
17
- max-width: none;
17
+ // See `%kbq-select-panel` — same soft cap, same token.
18
+ max-width: var(--kbq-panel-size-width-max, 640px);
18
19
 
19
20
  border-radius: var(--kbq-autocomplete-size-panel-border-radius, var(--kbq-size-border-radius));
20
21
  max-height: var(--kbq-autocomplete-size-panel-max-height);
@@ -1,10 +1,10 @@
1
- import * as i0 from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
2
2
  import { ElementRef, AfterContentInit, TemplateRef, QueryList, InjectionToken, Provider, AfterViewInit, OnDestroy } from '@angular/core';
3
3
  import * as i2 from '@angular/cdk/overlay';
4
4
  import { ScrollStrategy, Overlay } from '@angular/cdk/overlay';
5
5
  import { ControlValueAccessor } from '@angular/forms';
6
6
  import * as i1 from '@koobiq/components/core';
7
- import { ActiveDescendantKeyManager, KbqOption, KbqOptgroup, KeyboardNavigationHandler, KbqOptionSelectionChange } from '@koobiq/components/core';
7
+ import { ActiveDescendantKeyManager, KbqOption, KbqOptgroup, KbqPanelWidth, KbqPanelMaxWidth, KeyboardNavigationHandler, KbqOptionSelectionChange } from '@koobiq/components/core';
8
8
  import { Observable } from 'rxjs';
9
9
 
10
10
  /**
@@ -13,14 +13,14 @@ import { Observable } from 'rxjs';
13
13
  */
14
14
  declare class KbqAutocompleteOrigin {
15
15
  elementRef: ElementRef<HTMLElement>;
16
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqAutocompleteOrigin, never>;
17
- static ɵdir: i0.ɵɵDirectiveDeclaration<KbqAutocompleteOrigin, "[kbqAutocompleteOrigin]", ["kbqAutocompleteOrigin"], {}, {}, never, never, true, never>;
16
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqAutocompleteOrigin, never>;
17
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KbqAutocompleteOrigin, "[kbqAutocompleteOrigin]", ["kbqAutocompleteOrigin"], {}, {}, never, never, true, never>;
18
18
  }
19
19
 
20
20
  /** Footer that is rendered below the autocomplete options panel. */
21
21
  declare class KbqAutocompleteFooter {
22
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqAutocompleteFooter, never>;
23
- static ɵdir: i0.ɵɵDirectiveDeclaration<KbqAutocompleteFooter, "[kbqAutocompleteFooter], kbq-autocomplete-footer", never, {}, {}, never, never, true, never>;
22
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqAutocompleteFooter, never>;
23
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KbqAutocompleteFooter, "[kbqAutocompleteFooter], kbq-autocomplete-footer", never, {}, {}, never, never, true, never>;
24
24
  }
25
25
  declare class KbqAutocompleteSelectedEvent {
26
26
  source: KbqAutocomplete;
@@ -46,28 +46,36 @@ declare class KbqAutocomplete implements AfterContentInit {
46
46
  keyManager: ActiveDescendantKeyManager<KbqOption>;
47
47
  /** Whether the autocomplete panel should be visible, depending on option length. */
48
48
  showPanel: boolean;
49
- readonly template: i0.Signal<TemplateRef<any>>;
50
- readonly panel: i0.Signal<ElementRef<any>>;
49
+ readonly template: _angular_core.Signal<TemplateRef<any>>;
50
+ readonly panel: _angular_core.Signal<ElementRef<any>>;
51
51
  options: QueryList<KbqOption>;
52
- readonly optionGroups: i0.Signal<readonly KbqOptgroup[]>;
52
+ readonly optionGroups: _angular_core.Signal<readonly KbqOptgroup[]>;
53
53
  /** Function that maps an option's control value to its display value in the trigger. */
54
54
  displayWith: ((value: any) => string) | null;
55
55
  /**
56
- * Specify the width of the autocomplete panel. Can be any CSS sizing value, otherwise it will
57
- * match the width of its host.
56
+ * Specify the width of the autocomplete panel. If set to `auto`, the panel will match the width of
57
+ * its host, but will never be narrower than `panelMinWidth`. Any other CSS sizing value is used as an
58
+ * exact width, and `panelMinWidth` is not applied. When not set, the panel sizes to its content and is
59
+ * at least as wide as its host.
58
60
  */
59
- panelWidth: string | number;
61
+ readonly panelWidth: _angular_core.InputSignal<KbqPanelWidth | undefined>;
60
62
  /**
61
63
  * Minimum width of the panel in pixels.
62
64
  * When panelWidth is not set, the panel will be at least as wide as its host and no less than panelMinWidth.
63
65
  */
64
- panelMinWidth: number;
66
+ readonly panelMinWidth: _angular_core.InputSignalWithTransform<number, unknown>;
67
+ /**
68
+ * Maximum width of the panel in pixels. Caps how far the panel grows with its content — it never makes
69
+ * the panel narrower than its host, and never clamps an explicit `panelWidth`.
70
+ * When null, the `--kbq-panel-size-width-max` token applies.
71
+ */
72
+ readonly panelMaxWidth: _angular_core.InputSignalWithTransform<KbqPanelMaxWidth, unknown>;
65
73
  /** Event that is emitted whenever an option from the list is selected. */
66
- readonly optionSelected: i0.OutputEmitterRef<KbqAutocompleteSelectedEvent>;
74
+ readonly optionSelected: _angular_core.OutputEmitterRef<KbqAutocompleteSelectedEvent>;
67
75
  /** Event that is emitted when the autocomplete panel is opened. */
68
- readonly opened: i0.OutputEmitterRef<void>;
76
+ readonly opened: _angular_core.OutputEmitterRef<void>;
69
77
  /** Event that is emitted when the autocomplete panel is closed. */
70
- readonly closed: i0.OutputEmitterRef<void>;
78
+ readonly closed: _angular_core.OutputEmitterRef<void>;
71
79
  /**
72
80
  * Takes classes set on the host kbq-autocomplete element and applies them to the panel
73
81
  * inside the overlay container to allow for easy styling.
@@ -96,9 +104,8 @@ declare class KbqAutocomplete implements AfterContentInit {
96
104
  emitSelectEvent(option: KbqOption): void;
97
105
  onKeydown(event: KeyboardEvent): any;
98
106
  private updateFocusClass;
99
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqAutocomplete, never>;
100
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqAutocomplete, "kbq-autocomplete", ["kbqAutocomplete"], { "displayWith": { "alias": "displayWith"; "required": false; }; "panelWidth": { "alias": "panelWidth"; "required": false; }; "panelMinWidth": { "alias": "panelMinWidth"; "required": false; }; "classList": { "alias": "class"; "required": false; }; "autoActiveFirstOption": { "alias": "autoActiveFirstOption"; "required": false; }; "openOnFocus": { "alias": "openOnFocus"; "required": false; }; }, { "optionSelected": "optionSelected"; "opened": "opened"; "closed": "closed"; }, ["optionGroups", "options"], ["*", "[kbqAutocompleteFooter], kbq-autocomplete-footer"], true, never>;
101
- static ngAcceptInputType_panelMinWidth: unknown;
107
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqAutocomplete, never>;
108
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqAutocomplete, "kbq-autocomplete", ["kbqAutocomplete"], { "displayWith": { "alias": "displayWith"; "required": false; }; "panelWidth": { "alias": "panelWidth"; "required": false; "isSignal": true; }; "panelMinWidth": { "alias": "panelMinWidth"; "required": false; "isSignal": true; }; "panelMaxWidth": { "alias": "panelMaxWidth"; "required": false; "isSignal": true; }; "classList": { "alias": "class"; "required": false; }; "autoActiveFirstOption": { "alias": "autoActiveFirstOption"; "required": false; }; "openOnFocus": { "alias": "openOnFocus"; "required": false; }; }, { "optionSelected": "optionSelected"; "opened": "opened"; "closed": "closed"; }, ["optionGroups", "options"], ["*", "[kbqAutocompleteFooter], kbq-autocomplete-footer"], true, never>;
102
109
  }
103
110
 
104
111
  /**
@@ -141,17 +148,17 @@ declare class KbqAutocompleteTrigger implements AfterViewInit, ControlValueAcces
141
148
  get activeOption(): KbqOption | null;
142
149
  get panelOpen(): boolean;
143
150
  /** The autocomplete panel to be attached to this trigger. */
144
- readonly autocomplete: i0.InputSignal<KbqAutocomplete>;
151
+ readonly autocomplete: _angular_core.InputSignal<KbqAutocomplete>;
145
152
  /**
146
153
  * Reference relative to which to position the autocomplete panel.
147
154
  * Defaults to the autocomplete trigger element.
148
155
  */
149
- readonly connectedTo: i0.InputSignal<KbqAutocompleteOrigin>;
156
+ readonly connectedTo: _angular_core.InputSignal<KbqAutocompleteOrigin>;
150
157
  /**
151
158
  * `autocomplete` attribute to be set on the input element.
152
159
  * @docs-private
153
160
  */
154
- readonly autocompleteAttribute: i0.InputSignal<string>;
161
+ readonly autocompleteAttribute: _angular_core.InputSignal<string>;
155
162
  /**
156
163
  * Whether the autocomplete is disabled. When disabled, the element will
157
164
  * act as a regular input and the user won't be able to open the panel.
@@ -163,7 +170,7 @@ declare class KbqAutocompleteTrigger implements AfterViewInit, ControlValueAcces
163
170
  * Determines whether the blur event is triggered outside the specific target
164
171
  * @returns A boolean indicating if the blur event happened outside the target element
165
172
  */
166
- readonly onInputBlur: i0.InputSignal<(event: FocusEvent) => boolean>;
173
+ readonly onInputBlur: _angular_core.InputSignal<(event: FocusEvent) => boolean>;
167
174
  private _autocompleteDisabled;
168
175
  private overlayAttached;
169
176
  private overlayRef;
@@ -242,7 +249,6 @@ declare class KbqAutocompleteTrigger implements AfterViewInit, ControlValueAcces
242
249
  private getOverlayConfig;
243
250
  private getOverlayPosition;
244
251
  private getConnectedElement;
245
- private getPanelMinWidth;
246
252
  private getOverlaySize;
247
253
  private getHostWidth;
248
254
  /**
@@ -251,14 +257,14 @@ declare class KbqAutocompleteTrigger implements AfterViewInit, ControlValueAcces
251
257
  */
252
258
  private resetActiveItem;
253
259
  private canOpen;
254
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqAutocompleteTrigger, never>;
255
- static ɵdir: i0.ɵɵDirectiveDeclaration<KbqAutocompleteTrigger, "input[kbqAutocomplete], textarea[kbqAutocomplete]", ["kbqAutocompleteTrigger"], { "autocomplete": { "alias": "kbqAutocomplete"; "required": false; "isSignal": true; }; "connectedTo": { "alias": "kbqAutocompleteConnectedTo"; "required": false; "isSignal": true; }; "autocompleteAttribute": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "autocompleteDisabled": { "alias": "kbqAutocompleteDisabled"; "required": false; }; "onInputBlur": { "alias": "kbqAutocompleteOnBlur"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
260
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqAutocompleteTrigger, never>;
261
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KbqAutocompleteTrigger, "input[kbqAutocomplete], textarea[kbqAutocomplete]", ["kbqAutocompleteTrigger"], { "autocomplete": { "alias": "kbqAutocomplete"; "required": false; "isSignal": true; }; "connectedTo": { "alias": "kbqAutocompleteConnectedTo"; "required": false; "isSignal": true; }; "autocompleteAttribute": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "autocompleteDisabled": { "alias": "kbqAutocompleteDisabled"; "required": false; }; "onInputBlur": { "alias": "kbqAutocompleteOnBlur"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
256
262
  }
257
263
 
258
264
  declare class KbqAutocompleteModule {
259
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqAutocompleteModule, never>;
260
- static ɵmod: i0.ɵɵNgModuleDeclaration<KbqAutocompleteModule, never, [typeof i1.KbqOptionModule, typeof i2.OverlayModule, typeof KbqAutocomplete, typeof KbqAutocompleteTrigger, typeof KbqAutocompleteOrigin, typeof KbqAutocompleteFooter], [typeof KbqAutocomplete, typeof i1.KbqOptionModule, typeof KbqAutocompleteTrigger, typeof KbqAutocompleteOrigin, typeof KbqAutocompleteFooter]>;
261
- static ɵinj: i0.ɵɵInjectorDeclaration<KbqAutocompleteModule>;
265
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqAutocompleteModule, never>;
266
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<KbqAutocompleteModule, never, [typeof i1.KbqOptionModule, typeof i2.OverlayModule, typeof KbqAutocomplete, typeof KbqAutocompleteTrigger, typeof KbqAutocompleteOrigin, typeof KbqAutocompleteFooter], [typeof KbqAutocomplete, typeof i1.KbqOptionModule, typeof KbqAutocompleteTrigger, typeof KbqAutocompleteOrigin, typeof KbqAutocompleteFooter]>;
267
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<KbqAutocompleteModule>;
262
268
  }
263
269
 
264
270
  export { AUTOCOMPLETE_PANEL_HEIGHT, KBQ_AUTOCOMPLETE_DEFAULT_OPTIONS, KBQ_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY, KBQ_AUTOCOMPLETE_SCROLL_STRATEGY, KBQ_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY, KBQ_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER, KBQ_AUTOCOMPLETE_VALUE_ACCESSOR, KbqAutocomplete, KbqAutocompleteFooter, KbqAutocompleteModule, KbqAutocompleteOrigin, KbqAutocompleteSelectedEvent, KbqAutocompleteTrigger, getKbqAutocompleteMissingPanelError };
package/badge/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import * as i0 from '@angular/core';
2
- import { AfterContentInit } from '@angular/core';
3
2
  import { KbqIconItem } from '@koobiq/components/icon';
4
3
  import * as i1 from '@angular/cdk/a11y';
5
4
  import * as i2 from '@angular/cdk/platform';
@@ -25,14 +24,14 @@ declare const leftIconClassName = "kbq-icon_left";
25
24
  declare const rightIconClassName = "kbq-icon_right";
26
25
  declare const badgeLeftIconClassName = "kbq-badge-icon_left";
27
26
  declare const badgeRightIconClassName = "kbq-badge-icon_right";
28
- declare class KbqBadgeCssStyler implements AfterContentInit {
27
+ declare class KbqBadgeCssStyler {
29
28
  private renderer;
30
29
  private cdr;
31
30
  readonly icons: i0.Signal<readonly any[]>;
32
31
  nativeElement: HTMLElement;
33
32
  isIconButton: boolean;
34
33
  constructor();
35
- ngAfterContentInit(): void;
34
+ /** @docs-private */
36
35
  updateClassModifierForIcons(): void;
37
36
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqBadgeCssStyler, never>;
38
37
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqBadgeCssStyler, "kbq-badge", never, {}, {}, ["icons"], never, true, never>;
@@ -1,7 +1,7 @@
1
1
  import * as _koobiq_components_core from '@koobiq/components/core';
2
2
  import { KbqClampedTextLocaleConfig } from '@koobiq/components/core';
3
3
  import * as _angular_core from '@angular/core';
4
- import { Signal, InjectionToken, Provider, AfterViewInit, ElementRef } from '@angular/core';
4
+ import { Signal, InjectionToken, Provider, OnInit, AfterViewInit, ElementRef } from '@angular/core';
5
5
 
6
6
  /**
7
7
  * Default maximum number of visible rows for the clamped text component
@@ -76,7 +76,7 @@ declare class KbqClampedListTrigger {
76
76
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KbqClampedListTrigger, "[kbqClampedListTrigger]", ["kbqClampedListTrigger"], {}, {}, never, never, true, never>;
77
77
  }
78
78
 
79
- declare class KbqClampedText implements KbqClamped, AfterViewInit {
79
+ declare class KbqClampedText implements KbqClamped, OnInit, AfterViewInit {
80
80
  /**
81
81
  * Max rows before text is clamped.
82
82
  * @default kbqClampedTextDefaultMaxRows
@@ -120,6 +120,7 @@ declare class KbqClampedText implements KbqClamped, AfterViewInit {
120
120
  */
121
121
  private isEventFromToggle;
122
122
  constructor();
123
+ ngOnInit(): void;
123
124
  ngAfterViewInit(): void;
124
125
  /** @docs-private */
125
126
  toggle(event: Event): void;
package/core/index.d.ts CHANGED
@@ -6,7 +6,7 @@ import { AnimationTriggerMetadata, AnimationEvent } from '@angular/animations';
6
6
  import { DateAdapter as DateAdapter$1, DateFormats } from '@koobiq/date-adapter';
7
7
  import { AbstractControl, FormGroupDirective, NgForm, NgControl, ValidatorFn } from '@angular/forms';
8
8
  import { FormatterDurationTemplate, DateFormatter as DateFormatter$1, DateTimeOptions } from '@koobiq/date-formatter';
9
- import { ConnectionPositionPair, Overlay, ScrollStrategy, OverlayContainer, ScrollDispatcher, CdkScrollable, OverlayRef, OverlayConfig, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange, CdkConnectedOverlay, RepositionScrollStrategy } from '@angular/cdk/overlay';
9
+ import { ConnectionPositionPair, Overlay, ScrollStrategy, CdkOverlayOrigin, OverlayContainer, ScrollDispatcher, CdkScrollable, OverlayRef, OverlayConfig, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange, CdkConnectedOverlay, RepositionScrollStrategy } from '@angular/cdk/overlay';
10
10
  import { Directionality } from '@angular/cdk/bidi';
11
11
  import { ComponentPortal } from '@angular/cdk/portal';
12
12
  import { ViewportRuler } from '@angular/cdk/scrolling';
@@ -1645,6 +1645,27 @@ type KbqNumberFormatOptions = {
1645
1645
  /** Overrides the default group separator in the formatted output */
1646
1646
  viewGroupSeparator?: string;
1647
1647
  };
1648
+ /**
1649
+ * Locale configuration for number rounding used by `KbqRoundDecimalPipe`.
1650
+ *
1651
+ * Maps each rounding unit to its localized label and carries the surrounding
1652
+ * formatting options.
1653
+ * @docs-private
1654
+ */
1655
+ type KbqNumberRoundingLocaleConfig = {
1656
+ /** Separator placed between the number and its rounding unit label. */
1657
+ separator: string;
1658
+ /** Separator placed between the integer and fractional parts. */
1659
+ groupSeparator: string;
1660
+ /** Label for the thousand unit. */
1661
+ thousand: string;
1662
+ /** Label for the million unit. */
1663
+ million: string;
1664
+ /** Label for the billion unit. */
1665
+ billion: string;
1666
+ /** Label for the trillion unit (always provided). */
1667
+ trillion: string;
1668
+ };
1648
1669
  /** Locale configuration for `KbqNumberInput`. */
1649
1670
  type KbqNumberInputLocaleConfig = {
1650
1671
  /** Characters recognized as group (thousands) separators. */
@@ -3195,17 +3216,13 @@ interface KbqNumericPipe {
3195
3216
  transform(value: unknown, digitsInfo?: string, locale?: string): string | null;
3196
3217
  }
3197
3218
  declare const NUMBER_FORMAT_REGEXP: RegExp;
3198
- interface RoundDecimalOptions {
3199
- separator: string;
3200
- groupSeparator: string;
3201
- thousands?: string;
3219
+ type RoundDecimalOptions = KbqNumberRoundingLocaleConfig & {
3220
+ /** Label for the ten-thousand unit. */
3202
3221
  tenThousand?: string;
3203
- million?: string;
3222
+ /** Label for the one-hundred-millions unit. */
3204
3223
  oneHundredMillions?: string;
3205
- billion?: string;
3206
- trillion: string;
3207
3224
  rtl?: boolean;
3208
- }
3225
+ };
3209
3226
  declare class ParsedDigitsInfo {
3210
3227
  useGrouping: boolean;
3211
3228
  minimumIntegerDigits: number;
@@ -4044,6 +4061,65 @@ declare const KBQ_CUSTOM_SCROLL_STRATEGY_PROVIDER: <T>(token: InjectionToken<T>,
4044
4061
  useFactory: (overlay: Overlay) => () => ScrollStrategy;
4045
4062
  };
4046
4063
 
4064
+ /**
4065
+ * Default minimum width of an overlay panel, in pixels.
4066
+ *
4067
+ * Kept in sync by hand with `--kbq-dropdown-size-container-width-min` in `dropdown-tokens.scss`,
4068
+ * which expresses the same default for the dropdown's CSS-driven sizing.
4069
+ */
4070
+ declare const KBQ_PANEL_DEFAULT_MIN_WIDTH = 200;
4071
+ /**
4072
+ * Width of an overlay panel.
4073
+ *
4074
+ * - `'auto'` — matches the trigger width, but never narrower than `panelMinWidth`.
4075
+ * - `number` — an explicit width in pixels. `panelMinWidth` is not applied.
4076
+ * - `string` — an explicit CSS width (e.g. `fit-content`, `20rem`). `panelMinWidth` is not applied.
4077
+ * - `null`/`''` — the panel sizes to its content, but never narrower than the trigger or `panelMinWidth`.
4078
+ */
4079
+ type KbqPanelWidth = 'auto' | number | (string & {}) | null | '';
4080
+ /** Minimum width of an overlay panel, in pixels. `null` applies no additional minimum. */
4081
+ type KbqPanelMinWidth = number | null;
4082
+ /**
4083
+ * Maximum width of an overlay panel, in pixels. `null` falls back to the `--kbq-panel-size-width-max`
4084
+ * design token.
4085
+ *
4086
+ * The cap is soft: it limits how far a panel grows with its content, but never makes a panel narrower
4087
+ * than its trigger, and never overrides an explicit `panelWidth`.
4088
+ */
4089
+ type KbqPanelMaxWidth = number | null;
4090
+ /**
4091
+ * Anything an overlay panel can be measured against.
4092
+ * @docs-private
4093
+ */
4094
+ type KbqPanelWidthOrigin = ElementRef<HTMLElement> | CdkOverlayOrigin | HTMLElement;
4095
+ /**
4096
+ * Resolved size of an overlay pane.
4097
+ *
4098
+ * Both keys are always present so that the result can be passed straight to `OverlayRef.updateSize()`,
4099
+ * which shallow-merges into the existing config — an omitted key would leave a stale value applied.
4100
+ * @docs-private
4101
+ */
4102
+ interface KbqResolvedPanelWidth {
4103
+ width: number | string;
4104
+ minWidth: number | string;
4105
+ }
4106
+ /**
4107
+ * Measures the rendered width of a panel's trigger.
4108
+ *
4109
+ * Uses `getBoundingClientRect()` because `getComputedStyle().width` resolves to the used
4110
+ * content-box width regardless of `box-sizing`, so subtracting borders from it double-counts them.
4111
+ * @docs-private
4112
+ */
4113
+ declare function kbqGetPanelWidthOrigin(origin: KbqPanelWidthOrigin): number;
4114
+ /**
4115
+ * Resolves `panelWidth` and `panelMinWidth` into the `width` and `minWidth` of the overlay pane.
4116
+ *
4117
+ * `panelWidth` selects the sizing policy. The "never narrower than the trigger" rule belongs to the
4118
+ * automatic policies (`null` and `'auto'`); an explicit width is taken at face value.
4119
+ * @docs-private
4120
+ */
4121
+ declare function kbqResolvePanelWidth(panelWidth: KbqPanelWidth | undefined, panelMinWidth: KbqPanelMinWidth | undefined, triggerWidth: number): KbqResolvedPanelWidth;
4122
+
4047
4123
  /**
4048
4124
  * Reference to the element used to locate the shadow root that should host the CDK overlay container.
4049
4125
  *
@@ -4196,6 +4272,21 @@ type KbqPopUpSizeValues = KbqEnumValues<PopUpSizes>;
4196
4272
  * Tags Input, Timezone, TreeSelect).
4197
4273
  */
4198
4274
  declare const defaultOffsetY: number;
4275
+ /**
4276
+ * Pane class applied to a connected overlay whose panel is positioned BELOW its trigger.
4277
+ *
4278
+ * Used instead of a physical `offsetY` gap: the pane sits flush with the trigger and the visual gap is
4279
+ * recreated as transparent `padding-top` inside the pane (see the `kbq-connected-overlay-gap` styles), so the
4280
+ * gap is covered by the pane (`pointer-events: auto`) and can no longer be clicked/hovered through.
4281
+ */
4282
+ declare const KBQ_CONNECTED_OVERLAY_BELOW_CLASS = "kbq-connected-overlay_below";
4283
+ /**
4284
+ * Pane class applied to a connected overlay whose panel is positioned ABOVE its trigger (flipped).
4285
+ *
4286
+ * Mirror of {@link KBQ_CONNECTED_OVERLAY_BELOW_CLASS}: the visual gap is recreated as transparent
4287
+ * `padding-bottom` inside the pane so the flipped gap is not click/hover-through.
4288
+ */
4289
+ declare const KBQ_CONNECTED_OVERLAY_ABOVE_CLASS = "kbq-connected-overlay_above";
4199
4290
  /**
4200
4291
  * Variable used for offsetY(X) calculations when applying Angular Overlay
4201
4292
  *
@@ -4547,6 +4638,20 @@ declare abstract class KbqAbstractSelect {
4547
4638
  protected triggerRect: DOMRect;
4548
4639
  /** Overlay panel class. */
4549
4640
  protected readonly overlayPanelClass = "kbq-select-overlay";
4641
+ /** Width of the overlay panel. */
4642
+ protected overlayWidth: string | number;
4643
+ /** Minimum width of the overlay panel. */
4644
+ protected overlayMinWidth: string | number;
4645
+ /**
4646
+ * Resolves the overlay panel size for the current trigger geometry and stores it for the
4647
+ * `cdkConnectedOverlay` width bindings.
4648
+ */
4649
+ protected updateOverlayWidth(panelWidth: KbqPanelWidth, panelMinWidth: KbqPanelMinWidth, origin: KbqPanelWidthOrigin): void;
4650
+ /**
4651
+ * Freezes the panel at its rendered width so that filtering the options does not reflow it.
4652
+ * Does nothing when the width is already pinned.
4653
+ */
4654
+ protected lockOverlayWidthForSearch(panel: ElementRef<HTMLElement> | undefined): void;
4550
4655
  protected setOverlayPosition(): void;
4551
4656
  protected calculateOverlayOffsetX(baseOffsetX: number): number[];
4552
4657
  protected getOverlayRect(): DOMRect;
@@ -4790,5 +4895,5 @@ declare const validationTooltipHideDelay = 3000;
4790
4895
 
4791
4896
  declare const VERSION: Version;
4792
4897
 
4793
- export { A, ALT, APOSTROPHE, ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT, AT_SIGN, AbsoluteDateFormatterImpurePipe, AbsoluteDateFormatterPipe, AbsoluteDateShortFormatterImpurePipe, AbsoluteDateShortFormatterPipe, AbsoluteDateTimeFormatterImpurePipe, AbsoluteDateTimeFormatterPipe, AbsoluteShortDateTimeFormatterImpurePipe, AbsoluteShortDateTimeFormatterPipe, ActiveDescendantKeyManager, B, BACKSLASH, BACKSPACE, BOTTOM_LEFT_POSITION_PRIORITY, BOTTOM_POSITION_PRIORITY, BOTTOM_RIGHT_POSITION_PRIORITY, BaseFormatterPipe, BaseLocaleAwareFormatterPipe, C, CAPS_LOCK, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, D, DASH, DELETE, DOWN_ARROW, DateAdapter, DateFormatter, E, EIGHT, END, ENTER, EQUALS, ESCAPE, EXTENDED_OVERLAY_POSITIONS, EmptyFocusTrapStrategy, ErrorStateMatcher, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FOUR, FileValidators, FocusKeyManager, G, H, HOME, I, INSERT, J, K, KBQ_CUSTOM_SCROLL_STRATEGY_PROVIDER, KBQ_DATE_FORMATS, KBQ_DATE_LOCALE, KBQ_DATE_LOCALE_FACTORY, KBQ_DEFAULT_LOCALE_DATA_FACTORY, KBQ_DEFAULT_LOCALE_ID, KBQ_DEFAULT_PRECISION_SEPARATOR, KBQ_FORM_FIELD_REF, KBQ_INVALID_VALUE_ERROR, KBQ_LOCALE_DATA, KBQ_LOCALE_ID, KBQ_LOCALE_SERVICE, KBQ_LOCALE_SERVICE_LANG_ATTR_NAME, KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS, KBQ_NUMBER_FORMATTER_OPTIONS, KBQ_OPTION_ACTION_PARENT, KBQ_OPTION_PARENT_COMPONENT, KBQ_OVERFLOW_SHADOW_SOURCE, KBQ_PARENT_ANIMATION_COMPONENT, KBQ_PARENT_POPUP, KBQ_SELECT_SCROLL_STRATEGY, KBQ_SELECT_SCROLL_STRATEGY_PROVIDER, KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD, KBQ_SHADOW_DOM_OVERLAY_HOST, KBQ_SIZE_UNITS_CONFIG, KBQ_SIZE_UNITS_DEFAULT_CONFIG, KBQ_TITLE_TEXT_REF, KBQ_WINDOW, KbqAbsoluteLongDatePipe, KbqAbsoluteLongDateTimePipe, KbqAbsoluteShortDatePipe, KbqAbsoluteShortDateTimePipe, KbqAbstractSelect, KbqActionContainer, KbqAnimationCurves, KbqAnimationDurations, KbqColorDirective, KbqComponentColors, KbqDataSizePipe, KbqDecimalPipe, KbqDefaultThemes, KbqErrorStateTracker, KbqFieldSizingContent, KbqForm, KbqFormElement, KbqFormattersModule, KbqFormsModule, KbqHighlightBackgroundPipe, KbqHighlightModule, KbqHighlightPipe, KbqHover, KbqLine, KbqLineSetter, KbqLocaleService, KbqLocaleServiceModule, KbqMeasureScrollbarService, KbqMeasurementSystem, KbqNormalizeWhitespace, KbqOptgroup, KbqOption, KbqOptionActionComponent, KbqOptionBase, KbqOptionModule, KbqOptionSelectionChange, KbqOverflowShadowBottom, KbqOverflowShadowContainer, KbqOverflowShadowTop, KbqPopUp, KbqPopUpTrigger, KbqPseudoCheckbox, KbqPseudoCheckboxModule, KbqRangeLongDatePipe, KbqRangeLongDateTimePipe, KbqRangeMiddleDateTimePipe, KbqRangeShortDatePipe, KbqRangeShortDateTimePipe, KbqReadStateDirective, KbqRectangleItem, KbqRelativeLongDatePipe, KbqRelativeLongDateTimePipe, KbqRelativeShortDatePipe, KbqRelativeShortDateTimePipe, KbqRoundDecimalPipe, KbqSelectAllEvent, KbqSelectFooter, KbqSelectMatcher, KbqSelectSearch, KbqSelectSearchEmptyResult, KbqSelectTrigger, KbqShadowDomOverlayContainer, KbqTableNumberPipe, KbqThemeSelector, KbqVirtualOption, L, LAST_MEDIA, LEFT_ARROW, LEFT_BOTTOM_POSITION_PRIORITY, LEFT_POSITION_PRIORITY, LEFT_TOP_POSITION_PRIORITY, ListKeyManager, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, META, MUTE, MockNgZone, MultipleMode, N, NINE, NUMBER_FORMAT_REGEXP, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PAUSE, PERIOD, PLUS_SIGN, POSITION_MAP, POSITION_PRIORITY_STRATEGY, POSITION_TO_CSS_MAP, PRINT_SCREEN, PasswordValidators, PopUpPlacements, PopUpSizes, PopUpTriggers, PopUpVisibility, Q, QUESTION_MARK, R, RIGHT_ARROW, RIGHT_BOTTOM_POSITION_PRIORITY, RIGHT_POSITION_PRIORITY, RIGHT_TOP_POSITION_PRIORITY, RangeDateFormatterImpurePipe, RangeDateFormatterPipe, RangeDateTimeFormatterImpurePipe, RangeDateTimeFormatterPipe, RangeMiddleDateTimeFormatterImpurePipe, RangeMiddleDateTimeFormatterPipe, RangeShortDateFormatterImpurePipe, RangeShortDateFormatterPipe, RangeShortDateTimeFormatterImpurePipe, RangeShortDateTimeFormatterPipe, RelativeDateFormatterImpurePipe, RelativeDateFormatterPipe, RelativeDateTimeFormatterImpurePipe, RelativeDateTimeFormatterPipe, RelativeShortDateFormatterImpurePipe, RelativeShortDateFormatterPipe, RelativeShortDateTimeFormatterImpurePipe, RelativeShortDateTimeFormatterPipe, S, SCROLL_LOCK, SELECT_PANEL_VIEWPORT_PADDING, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, ShowOnControlDirtyErrorStateMatcher, ShowOnFormSubmitErrorStateMatcher, ShowRequiredOnSubmitErrorStateMatcher, T, TAB, THREE, TILDE, TOP_LEFT_POSITION_PRIORITY, TOP_POSITION_PRIORITY, TOP_RIGHT_POSITION_PRIORITY, TWO, ThemePalette, ThemeService, U, UP_ARROW, V, VERSION, VOLUME_DOWN, VOLUME_UP, W, X, Y, Z, ZERO, applyPopupMargins, checkAndNormalizeLocalizedNumber, countGroupLabelsBeforeOption, createFakeEvent, createKeyboardEvent, createMouseEvent, createTouchEvent, defaultOffsetY, dispatchEvent, dispatchFakeEvent, dispatchKeyboardEvent, dispatchMouseEvent, dispatchTouchEvent, enUSFormattersData, enUSLocaleData, esLAFormattersData, esLALocaleData, escapeRegExp, fadeAnimation, formatNumberWithLocale, getFormattedSizeParts, getHumanizedBytes, getKbqSelectDynamicMultipleError, getKbqSelectNonArrayValueError, getKbqSelectNonFunctionValueError, getNodesWithoutComments, getOptionScrollPosition, hasModifierKey, isBoolean, isControl, isCopy, isDigit, isElement, isFunctionKey, isHorizontalMovement, isHtmlElement, isHtmlElementOrNull, isInput, isLeftBracket, isLetterKey, isMac, isNull, isNumberKey, isNumpadKey, isRightBracket, isSelectAll, isUndefined, isVerticalMovement, isWithin, kbqErrorStateMatcherProvider, kbqFilesizeFormatterConfigurationProvider, kbqHighlightBackgroundMark, kbqHighlightMark, kbqInjectNativeElement, kbqLocaleServiceLangAttrNameProvider, kbqSelectAnimations, kbqSelectScrollStrategyProviderFactory, kbqShadowDomOverlayProvider, leftIconClassName, mixinColor, mixinDisabled, mixinErrorState, mixinTabIndex, normalizeNumber, numberByParts, patchElementFocus, ptBRFormattersData, ptBRLocaleData, rightIconClassName, ruRUFormattersData, ruRULocaleData, selectEvents, shouldSelectSearchText, tkTMFormattersData, tkTMLocaleData, toggleSelectAll, typeInElement, validationTooltipHideDelay, validationTooltipShowDelay, wrappedErrorMessage };
4794
- export type { CanColor, CanColorCtor, CanDisable, CanDisableCtor, CanUpdateErrorState, CanUpdateErrorStateCtor, HasTabIndex, HasTabIndexCtor, Highlightable, IFocusableOption, KbqActionsPanelLocaleConfiguration, KbqBaseFileUploadLocaleConfig, KbqCheckedState, KbqClampedTextLocaleConfig, KbqCodeBlockLocaleConfiguration, KbqDateFormats, KbqDefaultSizes, KbqEnumValues, KbqFileTypeSpecifier, KbqFileUploadLocaleConfig, KbqFlexDirection, KbqFlexWrap, KbqFormFieldRef, KbqMeasurementSystemType, KbqMultipleFileUploadLocaleConfig, KbqNumberFormatOptions, KbqNumberInputLocaleConfig, KbqNumericPipe, KbqOptionActionParent, KbqOptionParentComponent, KbqOrientation, KbqOverflowShadowSource, KbqOverflowShadowState, KbqParentPopup, KbqPopUpPlacementValues, KbqPopUpSizeValues, KbqPseudoCheckboxState, KbqSelectAllAdapter, KbqShadowDomOverlayHost, KbqSizeUnitsConfig, KbqStickToWindowPlacementValues, KbqTheme, KbqTimeRangeLocaleConfig, KbqTitleTextRef, KbqToggleSelectAllOptions, KbqUnitSystem, KeyboardNavigationHandler, ListKeyManagerModifierKey, ListKeyManagerOption };
4898
+ export { A, ALT, APOSTROPHE, ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT, AT_SIGN, AbsoluteDateFormatterImpurePipe, AbsoluteDateFormatterPipe, AbsoluteDateShortFormatterImpurePipe, AbsoluteDateShortFormatterPipe, AbsoluteDateTimeFormatterImpurePipe, AbsoluteDateTimeFormatterPipe, AbsoluteShortDateTimeFormatterImpurePipe, AbsoluteShortDateTimeFormatterPipe, ActiveDescendantKeyManager, B, BACKSLASH, BACKSPACE, BOTTOM_LEFT_POSITION_PRIORITY, BOTTOM_POSITION_PRIORITY, BOTTOM_RIGHT_POSITION_PRIORITY, BaseFormatterPipe, BaseLocaleAwareFormatterPipe, C, CAPS_LOCK, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, D, DASH, DELETE, DOWN_ARROW, DateAdapter, DateFormatter, E, EIGHT, END, ENTER, EQUALS, ESCAPE, EXTENDED_OVERLAY_POSITIONS, EmptyFocusTrapStrategy, ErrorStateMatcher, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FOUR, FileValidators, FocusKeyManager, G, H, HOME, I, INSERT, J, K, KBQ_CONNECTED_OVERLAY_ABOVE_CLASS, KBQ_CONNECTED_OVERLAY_BELOW_CLASS, KBQ_CUSTOM_SCROLL_STRATEGY_PROVIDER, KBQ_DATE_FORMATS, KBQ_DATE_LOCALE, KBQ_DATE_LOCALE_FACTORY, KBQ_DEFAULT_LOCALE_DATA_FACTORY, KBQ_DEFAULT_LOCALE_ID, KBQ_DEFAULT_PRECISION_SEPARATOR, KBQ_FORM_FIELD_REF, KBQ_INVALID_VALUE_ERROR, KBQ_LOCALE_DATA, KBQ_LOCALE_ID, KBQ_LOCALE_SERVICE, KBQ_LOCALE_SERVICE_LANG_ATTR_NAME, KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS, KBQ_NUMBER_FORMATTER_OPTIONS, KBQ_OPTION_ACTION_PARENT, KBQ_OPTION_PARENT_COMPONENT, KBQ_OVERFLOW_SHADOW_SOURCE, KBQ_PANEL_DEFAULT_MIN_WIDTH, KBQ_PARENT_ANIMATION_COMPONENT, KBQ_PARENT_POPUP, KBQ_SELECT_SCROLL_STRATEGY, KBQ_SELECT_SCROLL_STRATEGY_PROVIDER, KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD, KBQ_SHADOW_DOM_OVERLAY_HOST, KBQ_SIZE_UNITS_CONFIG, KBQ_SIZE_UNITS_DEFAULT_CONFIG, KBQ_TITLE_TEXT_REF, KBQ_WINDOW, KbqAbsoluteLongDatePipe, KbqAbsoluteLongDateTimePipe, KbqAbsoluteShortDatePipe, KbqAbsoluteShortDateTimePipe, KbqAbstractSelect, KbqActionContainer, KbqAnimationCurves, KbqAnimationDurations, KbqColorDirective, KbqComponentColors, KbqDataSizePipe, KbqDecimalPipe, KbqDefaultThemes, KbqErrorStateTracker, KbqFieldSizingContent, KbqForm, KbqFormElement, KbqFormattersModule, KbqFormsModule, KbqHighlightBackgroundPipe, KbqHighlightModule, KbqHighlightPipe, KbqHover, KbqLine, KbqLineSetter, KbqLocaleService, KbqLocaleServiceModule, KbqMeasureScrollbarService, KbqMeasurementSystem, KbqNormalizeWhitespace, KbqOptgroup, KbqOption, KbqOptionActionComponent, KbqOptionBase, KbqOptionModule, KbqOptionSelectionChange, KbqOverflowShadowBottom, KbqOverflowShadowContainer, KbqOverflowShadowTop, KbqPopUp, KbqPopUpTrigger, KbqPseudoCheckbox, KbqPseudoCheckboxModule, KbqRangeLongDatePipe, KbqRangeLongDateTimePipe, KbqRangeMiddleDateTimePipe, KbqRangeShortDatePipe, KbqRangeShortDateTimePipe, KbqReadStateDirective, KbqRectangleItem, KbqRelativeLongDatePipe, KbqRelativeLongDateTimePipe, KbqRelativeShortDatePipe, KbqRelativeShortDateTimePipe, KbqRoundDecimalPipe, KbqSelectAllEvent, KbqSelectFooter, KbqSelectMatcher, KbqSelectSearch, KbqSelectSearchEmptyResult, KbqSelectTrigger, KbqShadowDomOverlayContainer, KbqTableNumberPipe, KbqThemeSelector, KbqVirtualOption, L, LAST_MEDIA, LEFT_ARROW, LEFT_BOTTOM_POSITION_PRIORITY, LEFT_POSITION_PRIORITY, LEFT_TOP_POSITION_PRIORITY, ListKeyManager, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, META, MUTE, MockNgZone, MultipleMode, N, NINE, NUMBER_FORMAT_REGEXP, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PAUSE, PERIOD, PLUS_SIGN, POSITION_MAP, POSITION_PRIORITY_STRATEGY, POSITION_TO_CSS_MAP, PRINT_SCREEN, PasswordValidators, PopUpPlacements, PopUpSizes, PopUpTriggers, PopUpVisibility, Q, QUESTION_MARK, R, RIGHT_ARROW, RIGHT_BOTTOM_POSITION_PRIORITY, RIGHT_POSITION_PRIORITY, RIGHT_TOP_POSITION_PRIORITY, RangeDateFormatterImpurePipe, RangeDateFormatterPipe, RangeDateTimeFormatterImpurePipe, RangeDateTimeFormatterPipe, RangeMiddleDateTimeFormatterImpurePipe, RangeMiddleDateTimeFormatterPipe, RangeShortDateFormatterImpurePipe, RangeShortDateFormatterPipe, RangeShortDateTimeFormatterImpurePipe, RangeShortDateTimeFormatterPipe, RelativeDateFormatterImpurePipe, RelativeDateFormatterPipe, RelativeDateTimeFormatterImpurePipe, RelativeDateTimeFormatterPipe, RelativeShortDateFormatterImpurePipe, RelativeShortDateFormatterPipe, RelativeShortDateTimeFormatterImpurePipe, RelativeShortDateTimeFormatterPipe, S, SCROLL_LOCK, SELECT_PANEL_VIEWPORT_PADDING, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, ShowOnControlDirtyErrorStateMatcher, ShowOnFormSubmitErrorStateMatcher, ShowRequiredOnSubmitErrorStateMatcher, T, TAB, THREE, TILDE, TOP_LEFT_POSITION_PRIORITY, TOP_POSITION_PRIORITY, TOP_RIGHT_POSITION_PRIORITY, TWO, ThemePalette, ThemeService, U, UP_ARROW, V, VERSION, VOLUME_DOWN, VOLUME_UP, W, X, Y, Z, ZERO, applyPopupMargins, checkAndNormalizeLocalizedNumber, countGroupLabelsBeforeOption, createFakeEvent, createKeyboardEvent, createMouseEvent, createTouchEvent, defaultOffsetY, dispatchEvent, dispatchFakeEvent, dispatchKeyboardEvent, dispatchMouseEvent, dispatchTouchEvent, enUSFormattersData, enUSLocaleData, esLAFormattersData, esLALocaleData, escapeRegExp, fadeAnimation, formatNumberWithLocale, getFormattedSizeParts, getHumanizedBytes, getKbqSelectDynamicMultipleError, getKbqSelectNonArrayValueError, getKbqSelectNonFunctionValueError, getNodesWithoutComments, getOptionScrollPosition, hasModifierKey, isBoolean, isControl, isCopy, isDigit, isElement, isFunctionKey, isHorizontalMovement, isHtmlElement, isHtmlElementOrNull, isInput, isLeftBracket, isLetterKey, isMac, isNull, isNumberKey, isNumpadKey, isRightBracket, isSelectAll, isUndefined, isVerticalMovement, isWithin, kbqErrorStateMatcherProvider, kbqFilesizeFormatterConfigurationProvider, kbqGetPanelWidthOrigin, kbqHighlightBackgroundMark, kbqHighlightMark, kbqInjectNativeElement, kbqLocaleServiceLangAttrNameProvider, kbqResolvePanelWidth, kbqSelectAnimations, kbqSelectScrollStrategyProviderFactory, kbqShadowDomOverlayProvider, leftIconClassName, mixinColor, mixinDisabled, mixinErrorState, mixinTabIndex, normalizeNumber, numberByParts, patchElementFocus, ptBRFormattersData, ptBRLocaleData, rightIconClassName, ruRUFormattersData, ruRULocaleData, selectEvents, shouldSelectSearchText, tkTMFormattersData, tkTMLocaleData, toggleSelectAll, typeInElement, validationTooltipHideDelay, validationTooltipShowDelay, wrappedErrorMessage };
4899
+ export type { CanColor, CanColorCtor, CanDisable, CanDisableCtor, CanUpdateErrorState, CanUpdateErrorStateCtor, HasTabIndex, HasTabIndexCtor, Highlightable, IFocusableOption, KbqActionsPanelLocaleConfiguration, KbqBaseFileUploadLocaleConfig, KbqCheckedState, KbqClampedTextLocaleConfig, KbqCodeBlockLocaleConfiguration, KbqDateFormats, KbqDefaultSizes, KbqEnumValues, KbqFileTypeSpecifier, KbqFileUploadLocaleConfig, KbqFlexDirection, KbqFlexWrap, KbqFormFieldRef, KbqMeasurementSystemType, KbqMultipleFileUploadLocaleConfig, KbqNumberFormatOptions, KbqNumberInputLocaleConfig, KbqNumberRoundingLocaleConfig, KbqNumericPipe, KbqOptionActionParent, KbqOptionParentComponent, KbqOrientation, KbqOverflowShadowSource, KbqOverflowShadowState, KbqPanelMaxWidth, KbqPanelMinWidth, KbqPanelWidth, KbqPanelWidthOrigin, KbqParentPopup, KbqPopUpPlacementValues, KbqPopUpSizeValues, KbqPseudoCheckboxState, KbqResolvedPanelWidth, KbqSelectAllAdapter, KbqShadowDomOverlayHost, KbqSizeUnitsConfig, KbqStickToWindowPlacementValues, KbqTheme, KbqTimeRangeLocaleConfig, KbqTitleTextRef, KbqToggleSelectAllOptions, KbqUnitSystem, KeyboardNavigationHandler, ListKeyManagerModifierKey, ListKeyManagerOption };
@@ -1,8 +1,10 @@
1
1
  @use 'common/overlay' as *;
2
+ @use 'common/connected-overlay' as *;
2
3
  @use 'common/visually-hidden' as *;
3
4
 
4
5
  // Mixin that renders all of the core styles that are not theme-dependent.
5
6
  @mixin kbq-core() {
6
7
  @include a11y-visually-hidden();
7
8
  @include overlay();
9
+ @include kbq-connected-overlay-gap();
8
10
  }
@@ -8,34 +8,41 @@
8
8
  }
9
9
  }
10
10
 
11
+ // Renders the striped "loading" shimmer used by .kbq-progress. Extracted into a mixin so
12
+ // components whose `::before`/`::after` pseudo-elements are already spoken for (e.g. kbq-dropdown-item's
13
+ // hit-area extension) can apply the same overlay to a real element instead.
14
+ @mixin kbq-progress-overlay() {
15
+ content: '';
16
+ position: absolute;
17
+ border-radius: inherit;
18
+
19
+ top: 0;
20
+ right: 0;
21
+ bottom: 0;
22
+ left: 0;
23
+
24
+ $lighter: rgba(255, 255, 255, 0.1);
25
+ $darker: rgba(0, 0, 0, 0.04);
26
+
27
+ background: linear-gradient(
28
+ 135deg,
29
+ $darker 12px,
30
+ $lighter 12px,
31
+ $lighter 22px,
32
+ $darker 22px,
33
+ $darker 34px,
34
+ $lighter 34px
35
+ )
36
+ repeat;
37
+ background-size: 32px 32px;
38
+ animation: kbq-progress 1s linear infinite;
39
+ }
40
+
11
41
  .kbq-progress {
12
42
  position: relative;
13
43
 
14
44
  &:after {
15
- content: '';
16
- position: absolute;
17
- border-radius: inherit;
18
-
19
- top: 0;
20
- right: 0;
21
- bottom: 0;
22
- left: 0;
23
-
24
- $lighter: rgba(255, 255, 255, 0.1);
25
- $darker: rgba(0, 0, 0, 0.04);
26
-
27
- background: linear-gradient(
28
- 135deg,
29
- $darker 12px,
30
- $lighter 12px,
31
- $lighter 22px,
32
- $darker 22px,
33
- $darker 34px,
34
- $lighter 34px
35
- )
36
- repeat;
37
- background-size: 32px 32px;
38
- animation: kbq-progress 1s linear infinite;
45
+ @include kbq-progress-overlay();
39
46
 
40
47
  @media (prefers-reduced-motion: reduce) {
41
48
  animation: none;