@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
@@ -1,10 +1,12 @@
1
- import { CdkConnectedOverlay, CdkOverlayOrigin, ScrollStrategy } from '@angular/cdk/overlay';
2
- import { TemplateRef } from '@angular/core';
1
+ import { CdkConnectedOverlay, ScrollStrategy } from '@angular/cdk/overlay';
2
+ import { ElementRef, TemplateRef } from '@angular/core';
3
3
  import { KbqComponentColors, PopUpPlacements } from '@koobiq/components/core';
4
4
  import { KbqDropdownTrigger } from '@koobiq/components/dropdown';
5
5
  import { KbqFormField, KbqLabel } from '@koobiq/components/form-field';
6
6
  import { KbqTooltipTrigger } from '@koobiq/components/tooltip';
7
7
  import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/cdk/a11y";
9
+ export type KbqInlineEditMode = 'view' | 'edit';
8
10
  /** @docs-private */
9
11
  export declare class KbqFocusRegionItem {
10
12
  readonly tabOut: import("@angular/core").OutputEmitterRef<KeyboardEvent>;
@@ -35,11 +37,10 @@ export declare class KbqInlineEditMenu {
35
37
  * Edit mode opens in a positioned overlay that matches the view mode width or can be customized.
36
38
  */
37
39
  export declare class KbqInlineEdit {
38
- private readonly elementRef;
39
- private readonly focusMonitor;
40
40
  private readonly overlay;
41
41
  private readonly document;
42
42
  private readonly resizeObserver;
43
+ protected readonly elementRef: ElementRef<HTMLElement>;
43
44
  /**
44
45
  * Whether to show save/cancel action buttons in edit mode.
45
46
  * @default false
@@ -65,16 +66,22 @@ export declare class KbqInlineEdit {
65
66
  readonly getValueHandler: import("@angular/core").InputSignal<(() => unknown) | undefined>;
66
67
  /** Handler function to update the value */
67
68
  readonly setValueHandler: import("@angular/core").InputSignal<((value: any) => void) | undefined>;
69
+ /** Customizable function that checks if saving on enter available. */
70
+ readonly canSaveOnEnter: import("@angular/core").InputSignal<(event: KeyboardEvent) => boolean>;
68
71
  /**
69
- * Customizable function that checks if saving on enter available.
72
+ * CSS selectors for elements in view mode that should handle clicks instead of opening edit mode.
73
+ * Override to replace or extend the default list.
74
+ *
75
+ * @example
76
+ * `<kbq-inline-edit [interactiveSelectors]="['a', 'kbq-tag', 'button']">`
70
77
  */
71
- readonly canSaveOnEnter: import("@angular/core").InputSignal<(event: KeyboardEvent) => boolean>;
78
+ readonly interactiveSelectors: import("@angular/core").InputSignal<string[]>;
72
79
  /** Emitted when the inline edit is saved successfully. */
73
80
  protected readonly saved: import("@angular/core").OutputEmitterRef<void>;
74
81
  /** Emitted when the inline edit is canceled and changes are discarded. */
75
82
  protected readonly canceled: import("@angular/core").OutputEmitterRef<void>;
76
83
  /** Emitted when mode switched to edit/view */
77
- protected readonly modeChange: import("@angular/core").OutputEmitterRef<"view" | "edit">;
84
+ protected readonly modeChange: import("@angular/core").OutputEmitterRef<KbqInlineEditMode>;
78
85
  /** @docs-private */
79
86
  protected readonly menu: import("@angular/core").Signal<KbqInlineEditMenu | undefined>;
80
87
  /** @docs-private */
@@ -82,21 +89,25 @@ export declare class KbqInlineEdit {
82
89
  /** @docs-private */
83
90
  protected readonly formFieldRef: import("@angular/core").Signal<KbqFormField | undefined>;
84
91
  /** @docs-private */
85
- protected readonly overlayOrigin: import("@angular/core").Signal<CdkOverlayOrigin>;
92
+ protected readonly formFieldRefList: import("@angular/core").Signal<readonly KbqFormField[]>;
93
+ /** @docs-private */
94
+ protected overlayOrigin: HTMLElement;
86
95
  /** @docs-private */
87
96
  protected readonly tooltipTrigger: import("@angular/core").Signal<KbqTooltipTrigger | undefined>;
88
97
  /** @docs-private */
98
+ protected readonly viewContainer: import("@angular/core").Signal<ElementRef<HTMLElement>>;
99
+ /** @docs-private */
89
100
  protected readonly overlayDir: import("@angular/core").Signal<CdkConnectedOverlay | undefined>;
90
101
  /** @docs-private */
91
102
  protected readonly regionItems: import("@angular/core").Signal<readonly KbqFocusRegionItem[]>;
92
103
  /** @docs-private */
93
- protected readonly mode: import("@angular/core").WritableSignal<"view" | "edit">;
104
+ protected readonly mode: import("@angular/core").WritableSignal<KbqInlineEditMode>;
94
105
  /** @docs-private */
95
106
  protected readonly overlayWidth: import("@angular/core").WritableSignal<string | number>;
96
107
  /** @docs-private */
97
108
  protected readonly scrollStrategy: import("@angular/core").WritableSignal<ScrollStrategy>;
98
109
  /** @docs-private */
99
- readonly modeAsReadonly: import("@angular/core").Signal<"view" | "edit">;
110
+ readonly modeAsReadonly: import("@angular/core").Signal<KbqInlineEditMode>;
100
111
  /** @docs-private */
101
112
  protected readonly className: import("@angular/core").Signal<string>;
102
113
  /** @docs-private */
@@ -121,6 +132,13 @@ export declare class KbqInlineEdit {
121
132
  protected cancel(): void;
122
133
  /** @docs-private */
123
134
  protected onOverlayKeydown(event: KeyboardEvent): void;
135
+ /**
136
+ * Block propagation of overlay outside click.
137
+ * Used to prevent reopening when target is inline edit itself.
138
+ * @docs-private
139
+ */
140
+ protected onOverlayOutsideClick($event: Event): void;
141
+ private isInteractiveElement;
124
142
  /**
125
143
  * Sets up Tab key listeners on region items.
126
144
  * Single item: Tab moves to next edit.
@@ -135,6 +153,7 @@ export declare class KbqInlineEdit {
135
153
  private setOverlayWidth;
136
154
  private openPanel;
137
155
  private getInputNativeElement;
156
+ private markAllAsTouched;
138
157
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqInlineEdit, never>;
139
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqInlineEdit, "kbq-inline-edit", ["kbqInlineEdit"], { "showActions": { "alias": "showActions"; "required": false; "isSignal": true; }; "showTooltipOnError": { "alias": "showTooltipOnError"; "required": false; "isSignal": true; }; "validationTooltip": { "alias": "validationTooltip"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "editModeWidth": { "alias": "editModeWidth"; "required": false; "isSignal": true; }; "tooltipPlacement": { "alias": "tooltipPlacement"; "required": false; "isSignal": true; }; "getValueHandler": { "alias": "getValueHandler"; "required": false; "isSignal": true; }; "setValueHandler": { "alias": "setValueHandler"; "required": false; "isSignal": true; }; "canSaveOnEnter": { "alias": "canSaveOnEnter"; "required": false; "isSignal": true; }; }, { "saved": "saved"; "canceled": "canceled"; "modeChange": "modeChange"; }, ["menu", "label", "formFieldRef"], ["kbq-label", "[kbqInlineEditViewMode]", "[kbqInlineEditMenu]", "[kbqInlineEditEditMode]"], true, never>;
158
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqInlineEdit, "kbq-inline-edit", ["kbqInlineEdit"], { "showActions": { "alias": "showActions"; "required": false; "isSignal": true; }; "showTooltipOnError": { "alias": "showTooltipOnError"; "required": false; "isSignal": true; }; "validationTooltip": { "alias": "validationTooltip"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "editModeWidth": { "alias": "editModeWidth"; "required": false; "isSignal": true; }; "tooltipPlacement": { "alias": "tooltipPlacement"; "required": false; "isSignal": true; }; "getValueHandler": { "alias": "getValueHandler"; "required": false; "isSignal": true; }; "setValueHandler": { "alias": "setValueHandler"; "required": false; "isSignal": true; }; "canSaveOnEnter": { "alias": "canSaveOnEnter"; "required": false; "isSignal": true; }; "interactiveSelectors": { "alias": "interactiveSelectors"; "required": false; "isSignal": true; }; }, { "saved": "saved"; "canceled": "canceled"; "modeChange": "modeChange"; }, ["menu", "label", "formFieldRefList"], ["kbq-label", "[kbqInlineEditViewMode]", "[kbqInlineEditMenu]", "[kbqInlineEditEditMode]"], true, [{ directive: typeof i1.CdkMonitorFocus; inputs: {}; outputs: {}; }]>;
140
159
  }
@@ -29,7 +29,8 @@
29
29
 
30
30
  .kbq-mask__fade {
31
31
  background: var(--kbq-mask-background, transparent);
32
- mask-image: linear-gradient(90deg, transparent, var(--kbq-black-default));
32
+ // @TODO remove fallback (#DS-3002)
33
+ mask-image: linear-gradient(90deg, transparent, var(--kbq-plt-black, var(--kbq-black-default)));
33
34
  }
34
35
 
35
36
  .kbq-mask__container {
@@ -39,6 +40,17 @@
39
40
  }
40
41
 
41
42
  @mixin _inline-edit-theme {
43
+ background: var(--kbq-inline-edit-background);
44
+
45
+ &:focus-visible {
46
+ outline: none;
47
+ }
48
+
49
+ &.cdk-keyboard-focused {
50
+ box-shadow: inset 0 0 0.1px 1px var(--kbq-states-line-focus-theme);
51
+ border-color: var(--kbq-states-line-focus-theme);
52
+ }
53
+
42
54
  &.kbq-inline-edit_view {
43
55
  &:not(.kbq-inline-edit_disabled) {
44
56
  &:hover {
@@ -68,18 +80,8 @@
68
80
  }
69
81
 
70
82
  .kbq-inline-edit__focus_container {
71
- background: var(--kbq-inline-edit-background);
72
- border-color: var(--kbq-inline-edit-background);
73
-
74
- &:focus-visible {
75
- outline: none;
76
- }
77
-
78
- &.cdk-keyboard-focused {
79
- $focused-color: var(--kbq-states-line-focus-theme);
80
- outline: 1px solid $focused-color;
81
- border-color: $focused-color;
82
- }
83
+ display: flex;
84
+ flex-direction: column;
83
85
  }
84
86
  }
85
87
 
@@ -91,16 +93,18 @@
91
93
  display: flex;
92
94
  flex-direction: column;
93
95
  justify-content: center;
96
+ box-sizing: border-box;
97
+
98
+ border: var(--kbq-size-border-width) solid transparent;
94
99
  border-radius: var(--kbq-size-border-radius);
95
100
  padding: var(--kbq-inline-edit-padding-vertical) var(--kbq-inline-edit-padding-horizontal);
96
101
  min-height: var(--kbq-inline-edit-height);
97
- box-sizing: border-box;
98
102
 
99
103
  @include _inline-edit-theme();
100
104
  @include _inline-edit-typography();
101
105
 
102
106
  &:not(.kbq-inline-edit_with-label) {
103
- --kbq-inline-edit-padding-horizontal: var(--kbq-size-m);
107
+ --kbq-inline-edit-padding-horizontal: calc(var(--kbq-size-m) - var(--kbq-size-border-width));
104
108
  }
105
109
 
106
110
  &.kbq-inline-edit_with-label {
@@ -120,6 +124,12 @@
120
124
 
121
125
  &.kbq-inline-edit_view {
122
126
  .kbq-inline-edit__view-container {
127
+ display: flex;
128
+ text-overflow: ellipsis;
129
+ }
130
+
131
+ .kbq-inline-edit__view-content {
132
+ display: inline-block;
123
133
  text-overflow: ellipsis;
124
134
  }
125
135
  }
@@ -137,14 +147,14 @@
137
147
 
138
148
  @include _mask(
139
149
  (
140
- 'top': 0,
141
- 'right': 0
150
+ 'top': calc(var(--kbq-size-border-width) * -1),
151
+ 'right': calc(var(--kbq-size-border-width) * -1)
142
152
  )
143
153
  );
144
154
 
145
155
  .kbq-inline-edit__menu-mask {
146
156
  opacity: 0;
147
- height: 100%;
157
+ height: calc(100% + 2 * var(--kbq-size-border-width));
148
158
  justify-content: flex-end;
149
159
  border-top-right-radius: var(--kbq-size-border-radius);
150
160
  border-bottom-right-radius: var(--kbq-size-border-radius);
@@ -171,18 +181,6 @@
171
181
  z-index: 2;
172
182
  }
173
183
  }
174
-
175
- .kbq-inline-edit__focus_container {
176
- position: absolute;
177
- top: 0;
178
- left: 0;
179
- width: calc(100% - 2 * var(--kbq-size-border-width));
180
- height: calc(100% - 2 * var(--kbq-size-border-width));
181
- border: var(--kbq-size-border-width) solid transparent;
182
- border-radius: var(--kbq-size-border-radius);
183
- // set z-index to hide mask borders
184
- z-index: 1;
185
- }
186
184
  }
187
185
 
188
186
  .kbq-inline-edit__panel {
@@ -171,7 +171,9 @@
171
171
  }
172
172
 
173
173
  &.cdk-keyboard-focused {
174
- outline: var(--kbq-link-state-focused-outline) solid;
174
+ outline-style: solid;
175
+ outline-width: var(--kbq-link-size-state-focused-outline-width);
176
+ outline-color: var(--kbq-link-state-focused-outline);
175
177
  }
176
178
 
177
179
  &.kbq-disabled {
@@ -8,17 +8,18 @@
8
8
  --kbq-link-underline-width: 1px;
9
9
  /* THEME TOKENS */
10
10
  --kbq-link-text: var(--kbq-foreground-theme);
11
- --kbq-link-border-bottom: var(--kbq-line-theme-less);
11
+ --kbq-link-border-bottom: var(--kbq-line-theme-fade);
12
12
  --kbq-link-state-visited-text: var(--kbq-foreground-visited);
13
- --kbq-link-state-visited-border-bottom: var(--kbq-line-visited);
13
+ /* @TODO (#DS-3002) */
14
+ --kbq-link-state-visited-border-bottom: var(--kbq-line-visited-fade, var(--kbq-line-visited));
14
15
  --kbq-link-state-visited-hover-text: var(--kbq-states-foreground-visited-hover);
15
- --kbq-link-state-visited-hover-border-bottom: var(--kbq-line-visited);
16
+ --kbq-link-state-visited-hover-border-bottomm: var(--kbq-line-visited-fade, var(--kbq-line-visited));
16
17
  --kbq-link-state-visited-active-text: var(--kbq-states-foreground-visited-active);
17
- --kbq-link-state-visited-active-border-bottom: var(--kbq-line-visited);
18
+ --kbq-link-state-visited-active-border-bottomm: var(--kbq-line-visited-fade, var(--kbq-line-visited));
18
19
  --kbq-link-state-hover-text: var(--kbq-states-foreground-theme-hover);
19
- --kbq-link-state-hover-border-bottom: var(--kbq-line-theme-less);
20
+ --kbq-link-state-hover-border-bottom: var(--kbq-line-theme-fade);
20
21
  --kbq-link-state-active-text: var(--kbq-states-foreground-theme-active);
21
- --kbq-link-state-active-border-bottom: var(--kbq-line-theme-less);
22
+ --kbq-link-state-active-border-bottom: var(--kbq-line-theme-fade);
22
23
  --kbq-link-state-focused-outline: var(--kbq-states-line-focus-theme);
23
24
  --kbq-link-state-disabled-text: var(--kbq-states-foreground-disabled);
24
25
  --kbq-link-state-disabled-border-bottom: var(--kbq-states-line-disabled);
@@ -1,12 +1,11 @@
1
1
  import { FocusMonitor } from '@angular/cdk/a11y';
2
- import { AfterContentInit, AfterViewInit, ChangeDetectorRef, DestroyRef, ElementRef, OnDestroy, QueryList, Renderer2 } from '@angular/core';
2
+ import { AfterContentInit, AfterViewInit, DestroyRef, ElementRef, OnDestroy, QueryList, Renderer2 } from '@angular/core';
3
3
  import { KbqIcon } from '@koobiq/components/icon';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare const baseURLRegex: RegExp;
6
6
  export declare class KbqLink implements AfterContentInit, AfterViewInit, OnDestroy {
7
7
  private elementRef;
8
8
  private focusMonitor;
9
- private changeDetector;
10
9
  protected readonly renderer: Renderer2;
11
10
  protected readonly destroyRef: DestroyRef;
12
11
  protected readonly nativeElement: HTMLElement;
@@ -14,7 +13,8 @@ export declare class KbqLink implements AfterContentInit, AfterViewInit, OnDestr
14
13
  /** Whether the link is disabled. */
15
14
  get disabled(): boolean;
16
15
  set disabled(value: boolean);
17
- private _disabled;
16
+ /** @docs-private */
17
+ readonly disabledSignal: import("@angular/core").WritableSignal<boolean>;
18
18
  get tabIndex(): number;
19
19
  set tabIndex(value: number);
20
20
  private _tabIndex;
@@ -30,8 +30,9 @@ export declare class KbqLink implements AfterContentInit, AfterViewInit, OnDestr
30
30
  private _print;
31
31
  printMode: boolean;
32
32
  printUrl: string;
33
+ private _disabled;
33
34
  icon: KbqIcon;
34
- constructor(elementRef: ElementRef<HTMLAnchorElement>, focusMonitor: FocusMonitor, changeDetector: ChangeDetectorRef);
35
+ constructor(elementRef: ElementRef<HTMLAnchorElement>, focusMonitor: FocusMonitor);
35
36
  ngAfterViewInit(): void;
36
37
  ngOnDestroy(): void;
37
38
  focus(): void;
@@ -29,6 +29,18 @@
29
29
  color: var(--kbq-loader-overlay-transparent-caption-color);
30
30
  }
31
31
  }
32
+
33
+ .kbq-loader-overlay_card {
34
+ &.kbq-loader-overlay_filled,
35
+ &.kbq-loader-overlay_transparent {
36
+ background: color-mix(
37
+ in srgb,
38
+ var(--kbq-loader-overlay-card-overlay-background) /* color-mix only allows percentage value */
39
+ calc(var(--kbq-opacity-overlay) * 100%),
40
+ transparent
41
+ );
42
+ }
43
+ }
32
44
  }
33
45
 
34
46
  @mixin kbq-loader-overlay-typography() {
@@ -15,4 +15,5 @@
15
15
  --kbq-loader-overlay-filled-overlay-background: var(--kbq-background-bg);
16
16
  --kbq-loader-overlay-filled-text-color: var(--kbq-foreground-contrast);
17
17
  --kbq-loader-overlay-filled-caption-color: var(--kbq-foreground-contrast-secondary);
18
+ --kbq-loader-overlay-card-overlay-background: var(--kbq-background-card);
18
19
  }
@@ -20,6 +20,11 @@ export declare class KbqLoaderOverlay implements OnInit, OnDestroy {
20
20
  caption: string;
21
21
  size: KbqDefaultSizes;
22
22
  transparent: boolean;
23
+ /**
24
+ * Uses a semi-transparent background to blend
25
+ * with the underlying card or modal surface. When enabled, overrides `transparent`.
26
+ */
27
+ card: boolean;
23
28
  private parent;
24
29
  get isExternalIndicator(): boolean;
25
30
  get isExternalText(): boolean;
@@ -37,5 +42,6 @@ export declare class KbqLoaderOverlay implements OnInit, OnDestroy {
37
42
  ngOnInit(): void;
38
43
  ngOnDestroy(): void;
39
44
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqLoaderOverlay, never>;
40
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqLoaderOverlay, "kbq-loader-overlay", never, { "text": { "alias": "text"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "size": { "alias": "size"; "required": false; }; "transparent": { "alias": "transparent"; "required": false; }; }, {}, ["externalIndicator", "externalText", "externalCaption"], ["[kbq-loader-overlay-indicator]", "[kbq-loader-overlay-text]", "[kbq-loader-overlay-caption]"], true, never>;
45
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqLoaderOverlay, "kbq-loader-overlay", never, { "text": { "alias": "text"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "size": { "alias": "size"; "required": false; }; "transparent": { "alias": "transparent"; "required": false; }; "card": { "alias": "card"; "required": false; }; }, {}, ["externalIndicator", "externalText", "externalCaption"], ["[kbq-loader-overlay-indicator]", "[kbq-loader-overlay-text]", "[kbq-loader-overlay-caption]"], true, never>;
46
+ static ngAcceptInputType_card: unknown;
41
47
  }
@@ -30,7 +30,7 @@
30
30
  }
31
31
 
32
32
  .kbq-markdown__pre,
33
- .kbq-markdown__code:not(.kbq-markdown__a .kbq-markdown__code) {
33
+ .kbq-markdown__code:not(.kbq-markdown__pre > .kbq-markdown__code, .kbq-markdown__a .kbq-markdown__code) {
34
34
  color: var(--kbq-markdown-code-text);
35
35
  background-color: var(--kbq-markdown-code-background);
36
36
  }
@@ -39,36 +39,8 @@
39
39
  background-color: var(--kbq-markdown-code-background);
40
40
  }
41
41
 
42
- .kbq-markdown__a {
43
- color: var(--kbq-markdown-link-text, var(--kbq-foreground-theme));
44
- border-bottom-color: var(--kbq-markdown-link-border-bottom, var(--kbq-line-theme-less));
45
-
46
- &:has(.kbq-markdown__code) {
47
- display: inline;
48
- border-bottom: none;
49
- }
50
-
51
- &:visited {
52
- color: var(--kbq-markdown-link-state-visited-text, var(--kbq-foreground-visited));
53
- border-bottom-color: var(--kbq-markdown-link-state-visited-border-bottom, var(--kbq-line-visited));
54
- }
55
-
56
- &:hover {
57
- color: var(--kbq-markdown-link-state-hover-text, var(--kbq-states-foreground-theme-hover));
58
- transition: color 0ms;
59
- border-bottom-color: var(--kbq-markdown-link-state-hover-border-bottom, var(--kbq-line-theme-less));
60
- }
61
-
62
- &:active {
63
- color: var(--kbq-markdown-link-state-active, var(--kbq-states-foreground-theme-active));
64
- }
65
-
66
- &:focus {
67
- outline: var(--kbq-markdown-link-state-focused-outline, var(--kbq-link-state-focused-outline)) solid
68
- var(--kbq-markdown-link-size-state-focused-outline-width, var(--kbq-size-3xs));
69
-
70
- outline-offset: var(--kbq-markdown-link-size-state-focused-outline-offset, 0);
71
- }
42
+ .kbq-markdown__a:has(.kbq-markdown__code) {
43
+ text-decoration-line: none;
72
44
  }
73
45
 
74
46
  .kbq-markdown__img + em {
@@ -41,9 +41,6 @@
41
41
  --kbq-markdown-code-size-multiline-padding: var(--kbq-size-m) var(--kbq-size-l);
42
42
  --kbq-markdown-code-size-border-radius: var(--kbq-size-border-radius);
43
43
  --kbq-markdown-code-size-border-width: var(--kbq-size-border-width);
44
- --kbq-markdown-link-size-icon-margin: var(--kbq-link-size-normal-content-padding, var(--kbq-size-xxs));
45
- --kbq-markdown-link-size-state-focused-outline-offset: var(--kbq-link-size-state-focused-outline-offset);
46
- --kbq-markdown-link-size-state-focused-outline-width: var(--kbq-link-size-state-focused-outline-width);
47
44
  --kbq-markdown-image-size-max-width: var(--kbq-markdown-size-max-width);
48
45
  --kbq-markdown-image-size-margin-top: var(--kbq-size-m);
49
46
  --kbq-markdown-image-size-margin-bottom: var(--kbq-size-m);
@@ -71,14 +68,6 @@
71
68
  --kbq-markdown-code-text: var(--kbq-foreground-contrast);
72
69
  --kbq-markdown-code-background: var(--kbq-background-contrast-fade);
73
70
  --kbq-markdown-code-border: var(--kbq-line-contrast-less);
74
- --kbq-markdown-link-text: var(--kbq-link-text);
75
- --kbq-markdown-link-border-bottom: var(--kbq-link-border-bottom);
76
- --kbq-markdown-link-state-visited-text: var(--kbq-link-state-visited-text);
77
- --kbq-markdown-link-state-visited-border-bottom: var(--kbq-link-state-visited-border-bottom);
78
- --kbq-markdown-link-state-hover-text: var(--kbq-link-state-hover-text);
79
- --kbq-markdown-link-state-hover-border-bottom: var(--kbq-link-state-hover-border-bottom);
80
- --kbq-markdown-link-state-active: var(--kbq-link-state-active-text);
81
- --kbq-markdown-link-state-focused-outline: var(--kbq-link-state-focused-outline);
82
71
  --kbq-markdown-image-caption-text: var(--kbq-foreground-contrast-secondary);
83
72
  --kbq-markdown-hr-color: var(--kbq-line-contrast-less);
84
73
  --kbq-markdown-table-header: var(--kbq-foreground-contrast-secondary);
@@ -1,4 +1,4 @@
1
- import { ChangeDetectorRef, InjectionToken, Provider } from '@angular/core';
1
+ import { InjectionToken, OnDestroy, Provider } from '@angular/core';
2
2
  import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
3
3
  import { MarkedOptions } from 'marked';
4
4
  import { KbqMarkdownService } from './markdown.service';
@@ -8,19 +8,24 @@ export declare const KBQ_MARKDOWN_MARKED_OPTIONS: InjectionToken<MarkedOptions<s
8
8
  /** Utility provider for `KBQ_MARKDOWN_MARKED_OPTIONS`. */
9
9
  export declare const kbqMarkdownMarkedOptionsProvider: (options: MarkedOptions) => Provider;
10
10
  /** Component which allows to convert `Markdown` into `HTML` */
11
- export declare class KbqMarkdown {
11
+ export declare class KbqMarkdown implements OnDestroy {
12
12
  private readonly markdownService;
13
- private readonly cdr;
14
13
  private sanitizer;
15
14
  private readonly markedOptions?;
16
15
  private readonly contentWrapper;
16
+ private readonly outputWrapper;
17
+ protected resultHtml: import("@angular/core").WritableSignal<SafeHtml | null>;
17
18
  /** `Markdown` text. */
18
19
  get markdownText(): string | null;
19
20
  set markdownText(value: string | null);
20
21
  private _markdownText;
21
- protected resultHtml: SafeHtml;
22
- constructor(markdownService: KbqMarkdownService, cdr: ChangeDetectorRef, sanitizer: DomSanitizer, markedOptions?: MarkedOptions | undefined);
22
+ private readonly focusMonitor;
23
+ private readonly links;
24
+ constructor(markdownService: KbqMarkdownService, sanitizer: DomSanitizer, markedOptions?: MarkedOptions | undefined);
25
+ ngOnDestroy(): void;
23
26
  private getResultHTML;
24
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqMarkdown, [null, null, null, { optional: true; }]>;
27
+ private startMonitoringLinks;
28
+ private stopMonitoringLinks;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqMarkdown, [null, null, { optional: true; }]>;
25
30
  static ɵcmp: i0.ɵɵComponentDeclaration<KbqMarkdown, "kbq-markdown", never, { "markdownText": { "alias": "markdownText"; "required": false; }; }, {}, never, ["*"], true, never>;
26
31
  }
@@ -33,17 +33,6 @@
33
33
  }
34
34
  }
35
35
 
36
- .kbq-markdown__a {
37
- display: inline;
38
-
39
- text-decoration: none;
40
- cursor: pointer;
41
-
42
- border-bottom-style: solid;
43
- border-bottom-width: 1px;
44
- transition: color ease-out 300ms;
45
- }
46
-
47
36
  .kbq-markdown__p {
48
37
  margin-top: var(--kbq-markdown-p-size-margin-top);
49
38
  margin-bottom: var(--kbq-markdown-p-size-margin-bottom);
@@ -1,8 +1,11 @@
1
1
  @use '../core/styles/common/tokens' as *;
2
+ @use '../core/styles/common/overlay';
2
3
 
3
4
  @use './navbar-theme' as *;
4
5
 
5
6
  .kbq-navbar {
7
+ z-index: overlay.$overlay-z-index;
8
+
6
9
  display: flex;
7
10
  flex-direction: row;
8
11
  justify-content: space-between;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koobiq/components",
3
- "version": "19.5.0",
3
+ "version": "19.7.0",
4
4
  "description": "koobiq",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,12 +25,11 @@
25
25
  "@angular/cdk": "^19.0.0",
26
26
  "@angular/core": "^19.0.0",
27
27
  "@angular/forms": "^19.0.0",
28
- "@koobiq/cdk": "19.5.0",
29
- "@koobiq/angular-moment-adapter": "19.5.0",
30
- "@koobiq/angular-luxon-adapter": "19.5.0",
28
+ "@koobiq/cdk": "19.7.0",
29
+ "@koobiq/angular-moment-adapter": "19.7.0",
30
+ "@koobiq/angular-luxon-adapter": "19.7.0",
31
31
  "@koobiq/date-formatter": "^3.2.3",
32
32
  "@koobiq/icons": "^11.1.3",
33
- "@koobiq/tokens-builder": "3.11.0",
34
33
  "@koobiq/design-tokens": "3.14.0"
35
34
  },
36
35
  "dependencies": {
@@ -39,7 +39,11 @@ export declare const KBQ_POPOVER_SCROLL_STRATEGY_FACTORY_PROVIDER: {
39
39
  /** Creates an error to be thrown if the user supplied an invalid popover position. */
40
40
  export declare function getKbqPopoverInvalidPositionError(position: string): Error;
41
41
  export declare class KbqPopoverTrigger extends KbqPopUpTrigger<KbqPopoverComponent> implements AfterContentInit, OnInit {
42
+ private overlayContainer;
43
+ private renderer;
42
44
  protected scrollStrategy: () => ScrollStrategy;
45
+ /** Controls whether the component should be hidden when it is not visible in the viewport. */
46
+ readonly hideIfNotInViewPort: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
43
47
  /** prevents closure by any event */
44
48
  preventClose: boolean;
45
49
  /** disables default padding for all popover elements (header, content and footer) */
@@ -105,8 +109,15 @@ export declare class KbqPopoverTrigger extends KbqPopUpTrigger<KbqPopoverCompone
105
109
  readonly visibleChange: EventEmitter<boolean>;
106
110
  protected originSelector: string;
107
111
  protected get overlayConfig(): OverlayConfig;
112
+ private classAddedToOverlayContainer;
108
113
  ngOnInit(): void;
109
114
  ngAfterContentInit(): void;
115
+ /**
116
+ * Overrides the base `show` method to display the overlay component with the
117
+ * specified entry delay and apply default positioning offsets.
118
+ */
119
+ show(delay?: number): void;
120
+ hide(delay?: number): void;
110
121
  updateData(): void;
111
122
  /** Updates the position of the current popover. */
112
123
  updatePosition(reapplyPosition?: boolean): void;
@@ -115,9 +126,11 @@ export declare class KbqPopoverTrigger extends KbqPopUpTrigger<KbqPopoverCompone
115
126
  closingActionsForClick(): import("rxjs").Observable<MouseEvent>[];
116
127
  defaultClosingActions(): import("rxjs").Observable<MouseEvent>[];
117
128
  closingActions(): import("rxjs").Observable<void | CdkScrollable | MouseEvent>;
118
- private hideIfNotInViewPort;
129
+ private hideIfScrolledOutOfView;
130
+ private addClassToOverlayContainer;
131
+ private removeClassFromOverlayContainer;
119
132
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqPopoverTrigger, never>;
120
- static ɵdir: i0.ɵɵDirectiveDeclaration<KbqPopoverTrigger, "[kbqPopover]", ["kbqPopover"], { "preventClose": { "alias": "kbqPopoverPreventClose"; "required": false; }; "defaultPaddings": { "alias": "defaultPaddings"; "required": false; }; "popoverVisible": { "alias": "kbqPopoverVisible"; "required": false; }; "popoverPlacement": { "alias": "kbqPopoverPlacement"; "required": false; }; "popoverPlacementPriority": { "alias": "kbqPopoverPlacementPriority"; "required": false; }; "stickToWindow": { "alias": "kbqPopoverStickToWindow"; "required": false; }; "container": { "alias": "container"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "header": { "alias": "kbqPopoverHeader"; "required": false; }; "content": { "alias": "kbqPopoverContent"; "required": false; }; "footer": { "alias": "kbqPopoverFooter"; "required": false; }; "disabled": { "alias": "kbqPopoverDisabled"; "required": false; }; "trigger": { "alias": "kbqTrigger"; "required": false; }; "size": { "alias": "kbqPopoverSize"; "required": false; }; "customClass": { "alias": "kbqPopoverClass"; "required": false; }; "context": { "alias": "kbqPopoverContext"; "required": false; }; "hasCloseButton": { "alias": "hasCloseButton"; "required": false; }; "closeOnScroll": { "alias": "closeOnScroll"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "arrow": { "alias": "kbqPopoverArrow"; "required": false; }; "offset": { "alias": "kbqPopoverOffset"; "required": false; }; "leaveDelay": { "alias": "kbqLeaveDelay"; "required": false; }; }, { "placementChange": "kbqPopoverPlacementChange"; "visibleChange": "kbqPopoverVisibleChange"; }, never, never, true, never>;
133
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqPopoverTrigger, "[kbqPopover]", ["kbqPopover"], { "hideIfNotInViewPort": { "alias": "hideIfNotInViewPort"; "required": false; "isSignal": true; }; "preventClose": { "alias": "kbqPopoverPreventClose"; "required": false; }; "defaultPaddings": { "alias": "defaultPaddings"; "required": false; }; "popoverVisible": { "alias": "kbqPopoverVisible"; "required": false; }; "popoverPlacement": { "alias": "kbqPopoverPlacement"; "required": false; }; "popoverPlacementPriority": { "alias": "kbqPopoverPlacementPriority"; "required": false; }; "stickToWindow": { "alias": "kbqPopoverStickToWindow"; "required": false; }; "container": { "alias": "container"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "header": { "alias": "kbqPopoverHeader"; "required": false; }; "content": { "alias": "kbqPopoverContent"; "required": false; }; "footer": { "alias": "kbqPopoverFooter"; "required": false; }; "disabled": { "alias": "kbqPopoverDisabled"; "required": false; }; "trigger": { "alias": "kbqTrigger"; "required": false; }; "size": { "alias": "kbqPopoverSize"; "required": false; }; "customClass": { "alias": "kbqPopoverClass"; "required": false; }; "context": { "alias": "kbqPopoverContext"; "required": false; }; "hasCloseButton": { "alias": "hasCloseButton"; "required": false; }; "closeOnScroll": { "alias": "closeOnScroll"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "arrow": { "alias": "kbqPopoverArrow"; "required": false; }; "offset": { "alias": "kbqPopoverOffset"; "required": false; }; "leaveDelay": { "alias": "kbqLeaveDelay"; "required": false; }; }, { "placementChange": "kbqPopoverPlacementChange"; "visibleChange": "kbqPopoverVisibleChange"; }, never, never, true, never>;
121
134
  static ngAcceptInputType_preventClose: unknown;
122
135
  static ngAcceptInputType_defaultPaddings: unknown;
123
136
  static ngAcceptInputType_arrow: unknown;