@koobiq/components 19.5.0 → 19.6.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 (185) 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/button/button-group.d.ts +45 -0
  10. package/button/button-group.scss +17 -0
  11. package/button/button.component.d.ts +3 -0
  12. package/button/button.module.d.ts +2 -1
  13. package/button/public-api.d.ts +1 -0
  14. package/button-toggle/button-toggle-tokens.scss +1 -1
  15. package/checkbox/checkbox.d.ts +5 -4
  16. package/code-block/code-block-tokens.scss +35 -16
  17. package/code-block/code-block.d.ts +8 -3
  18. package/core/error/error-state-matcher.d.ts +10 -0
  19. package/core/forms/_forms.scss +10 -3
  20. package/core/option/_option-action-theme.scss +1 -0
  21. package/core/option/action-container.scss +4 -6
  22. package/core/option/option.scss +5 -0
  23. package/core/pop-up/pop-up-trigger.d.ts +1 -1
  24. package/core/select/common.d.ts +4 -4
  25. package/core/styles/common/_groups-mixins.scss +79 -0
  26. package/core/styles/common/_groups.scss +4 -34
  27. package/core/styles/common/_overlay.scss +4 -0
  28. package/core/styles/common/_select.scss +4 -0
  29. package/core/styles/theming/scrollbar-tokens.scss +6 -6
  30. package/core/styles/visual/_layout.scss +0 -2
  31. package/core/utils/utils.d.ts +2 -0
  32. package/datepicker/datepicker-input.directive.d.ts +1 -0
  33. package/dropdown/dropdown-trigger.directive.d.ts +5 -0
  34. package/ellipsis-center/ellipsis-center.directive.d.ts +0 -1
  35. package/fesm2022/koobiq-components-accordion.mjs +52 -30
  36. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  37. package/fesm2022/koobiq-components-actions-panel.mjs +12 -12
  38. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  39. package/fesm2022/koobiq-components-alert.mjs +16 -16
  40. package/fesm2022/koobiq-components-app-switcher.mjs +25 -25
  41. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  42. package/fesm2022/koobiq-components-autocomplete.mjs +39 -23
  43. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  44. package/fesm2022/koobiq-components-badge.mjs +14 -14
  45. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  46. package/fesm2022/koobiq-components-breadcrumbs.mjs +25 -25
  47. package/fesm2022/koobiq-components-button-toggle.mjs +12 -12
  48. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  49. package/fesm2022/koobiq-components-button.mjs +146 -24
  50. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  51. package/fesm2022/koobiq-components-checkbox.mjs +17 -19
  52. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  53. package/fesm2022/koobiq-components-clamped-text.mjs +13 -13
  54. package/fesm2022/koobiq-components-code-block.mjs +33 -20
  55. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  56. package/fesm2022/koobiq-components-content-panel.mjs +28 -28
  57. package/fesm2022/koobiq-components-core.mjs +260 -238
  58. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  59. package/fesm2022/koobiq-components-datepicker.mjs +40 -64
  60. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  61. package/fesm2022/koobiq-components-divider.mjs +7 -7
  62. package/fesm2022/koobiq-components-dl.mjs +13 -13
  63. package/fesm2022/koobiq-components-dropdown.mjs +38 -21
  64. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  65. package/fesm2022/koobiq-components-dynamic-translation.mjs +13 -13
  66. package/fesm2022/koobiq-components-ellipsis-center.mjs +8 -9
  67. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  68. package/fesm2022/koobiq-components-empty-state.mjs +19 -19
  69. package/fesm2022/koobiq-components-file-upload.mjs +39 -39
  70. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  71. package/fesm2022/koobiq-components-filter-bar.mjs +109 -97
  72. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  73. package/fesm2022/koobiq-components-form-field.mjs +67 -60
  74. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  75. package/fesm2022/koobiq-components-icon.mjs +31 -27
  76. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  77. package/fesm2022/koobiq-components-inline-edit.mjs +108 -68
  78. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  79. package/fesm2022/koobiq-components-input.mjs +22 -22
  80. package/fesm2022/koobiq-components-link.mjs +17 -17
  81. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  82. package/fesm2022/koobiq-components-list.mjs +19 -19
  83. package/fesm2022/koobiq-components-loader-overlay.mjs +28 -19
  84. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  85. package/fesm2022/koobiq-components-markdown.mjs +54 -22
  86. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  87. package/fesm2022/koobiq-components-modal.mjs +34 -28
  88. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  89. package/fesm2022/koobiq-components-navbar-ic.mjs +34 -34
  90. package/fesm2022/koobiq-components-navbar.mjs +45 -45
  91. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  92. package/fesm2022/koobiq-components-notification-center.mjs +16 -16
  93. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  94. package/fesm2022/koobiq-components-overflow-items.mjs +16 -16
  95. package/fesm2022/koobiq-components-popover.mjs +52 -23
  96. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  97. package/fesm2022/koobiq-components-progress-bar.mjs +13 -13
  98. package/fesm2022/koobiq-components-progress-spinner.mjs +14 -14
  99. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-radio.mjs +10 -10
  101. package/fesm2022/koobiq-components-resizer.mjs +10 -10
  102. package/fesm2022/koobiq-components-risk-level.mjs +7 -7
  103. package/fesm2022/koobiq-components-scrollbar.mjs +12 -12
  104. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  105. package/fesm2022/koobiq-components-search-expandable.mjs +17 -8
  106. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  107. package/fesm2022/koobiq-components-select.mjs +340 -57
  108. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  109. package/fesm2022/koobiq-components-sidebar.mjs +13 -13
  110. package/fesm2022/koobiq-components-sidepanel.mjs +27 -27
  111. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-skeleton.mjs +51 -18
  113. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-split-button.mjs +9 -9
  115. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-splitter.mjs +16 -16
  117. package/fesm2022/koobiq-components-table.mjs +10 -10
  118. package/fesm2022/koobiq-components-tabs.mjs +52 -52
  119. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  120. package/fesm2022/koobiq-components-tags.mjs +30 -30
  121. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  122. package/fesm2022/koobiq-components-textarea.mjs +7 -7
  123. package/fesm2022/koobiq-components-time-range.mjs +24 -24
  124. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  125. package/fesm2022/koobiq-components-timepicker.mjs +10 -10
  126. package/fesm2022/koobiq-components-timezone.mjs +26 -26
  127. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  128. package/fesm2022/koobiq-components-title.mjs +8 -9
  129. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  130. package/fesm2022/koobiq-components-toast.mjs +16 -16
  131. package/fesm2022/koobiq-components-toggle.mjs +12 -9
  132. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  133. package/fesm2022/koobiq-components-tooltip.mjs +84 -51
  134. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  135. package/fesm2022/koobiq-components-top-bar.mjs +15 -15
  136. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  137. package/fesm2022/koobiq-components-tree-select.mjs +12 -10
  138. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  139. package/fesm2022/koobiq-components-tree.mjs +40 -41
  140. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  141. package/fesm2022/koobiq-components-username.mjs +28 -28
  142. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  143. package/filter-bar/filter-search.d.ts +10 -1
  144. package/filter-bar/pipes/pipe-date.scss +2 -1
  145. package/form-field/form-field.d.ts +19 -1
  146. package/form-field/form-field.scss +22 -2
  147. package/icon/icon-button.component.d.ts +3 -0
  148. package/inline-edit/inline-edit-tokens.scss +3 -3
  149. package/inline-edit/inline-edit.d.ts +30 -11
  150. package/inline-edit/inline-edit.scss +28 -30
  151. package/link/_link-theme.scss +3 -1
  152. package/link/link-tokens.scss +7 -6
  153. package/link/link.component.d.ts +5 -4
  154. package/loader-overlay/_loader-overlay-theme.scss +12 -0
  155. package/loader-overlay/loader-overlay-tokens.scss +1 -0
  156. package/loader-overlay/loader-overlay.component.d.ts +7 -1
  157. package/markdown/_markdown-theme.scss +3 -31
  158. package/markdown/markdown-tokens.scss +0 -11
  159. package/markdown/markdown.component.d.ts +11 -6
  160. package/markdown/markdown.scss +0 -11
  161. package/navbar/navbar.scss +3 -0
  162. package/package.json +4 -5
  163. package/popover/popover.component.d.ts +15 -2
  164. package/prebuilt-themes/dark-theme.css +1 -1
  165. package/prebuilt-themes/light-theme.css +1 -1
  166. package/prebuilt-themes/theme.css +1 -1
  167. package/progress-spinner/progress-spinner.scss +1 -0
  168. package/schematics/ng-add/index.js +4 -5
  169. package/scrollbar/scrollbar-tokens.scss +7 -7
  170. package/search-expandable/search-expandable.d.ts +6 -2
  171. package/select/public-api.d.ts +1 -0
  172. package/select/select-common.d.ts +30 -0
  173. package/select/select.component.d.ts +192 -29
  174. package/select/select.module.d.ts +3 -2
  175. package/sidepanel/sidepanel-config.d.ts +6 -1
  176. package/skeleton/skeleton.d.ts +8 -4
  177. package/skeleton/skeleton.scss +19 -5
  178. package/split-button/_split-button-theme.scss +2 -1
  179. package/tags/tag-tokens.scss +4 -4
  180. package/title/title.directive.d.ts +0 -1
  181. package/toggle/toggle.component.d.ts +4 -3
  182. package/tooltip/tooltip-tokens.scss +4 -4
  183. package/tooltip/tooltip.component.d.ts +20 -2
  184. package/top-bar/top-bar.scss +3 -0
  185. package/tree/tree-option.scss +7 -0
@@ -8,6 +8,10 @@ export declare class KbqAccordionContentDirective implements AfterContentInit, A
8
8
  /** @docs-private */
9
9
  protected readonly item: KbqAccordionItem;
10
10
  /** @docs-private */
11
+ get contentId(): string;
12
+ /** @docs-private */
13
+ get triggerId(): string;
14
+ /** @docs-private */
11
15
  protected readonly hidden: import("@angular/core").WritableSignal<boolean>;
12
16
  private savedTransition;
13
17
  private readonly afterRenderRef?;
@@ -8,6 +8,10 @@ export declare class KbqAccordionTriggerDirective {
8
8
  protected readonly accordion: KbqAccordion;
9
9
  /** @docs-private */
10
10
  protected readonly item: KbqAccordionItem;
11
+ /** @docs-private */
12
+ get triggerId(): string;
13
+ /** @docs-private */
14
+ get contentId(): string;
11
15
  /** Fires when trigger clicked */
12
16
  onClick(): void;
13
17
  /** @docs-private */
@@ -23,6 +23,12 @@
23
23
  height: var(--kbq-actions-panel-vertical-divider-height) !important;
24
24
  margin: var(--kbq-actions-panel-vertical-divider-margin);
25
25
  }
26
+
27
+ .kbq-button,
28
+ .kbq-button-icon {
29
+ --kbq-button-filled-contrast-fade-off-background: transparent;
30
+ --kbq-button-filled-contrast-fade-on-background: transparent;
31
+ }
26
32
  }
27
33
 
28
34
  .kbq-actions-panel-overlay {
@@ -8,7 +8,10 @@
8
8
  --kbq-actions-panel-box-shadow: var(--kbq-shadow-card);
9
9
  --kbq-actions-panel-height: var(--kbq-size-5xl);
10
10
  /** Divider */
11
- --kbq-actions-panel-vertical-divider-background-color: var(--kbq-line-contrast-fade);
11
+ --kbq-actions-panel-vertical-divider-background-color: var(
12
+ --kbq-line-on-contrast-less,
13
+ var(--kbq-line-contrast-fade)
14
+ );
12
15
  --kbq-actions-panel-vertical-divider-height: var(--kbq-size-m);
13
16
  --kbq-actions-panel-vertical-divider-margin: 0 var(--kbq-size-s);
14
17
  }
@@ -3,6 +3,11 @@ import { ActiveDescendantKeyManager } from '@koobiq/cdk/a11y';
3
3
  import { KbqOptgroup, KbqOption } from '@koobiq/components/core';
4
4
  import { KbqFormField } from '@koobiq/components/form-field';
5
5
  import * as i0 from "@angular/core";
6
+ /** Footer that is rendered below the autocomplete options panel. */
7
+ export declare class KbqAutocompleteFooter {
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqAutocompleteFooter, never>;
9
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqAutocompleteFooter, "[kbqAutocompleteFooter], kbq-autocomplete-footer", never, {}, {}, never, never, true, never>;
10
+ }
6
11
  export declare class KbqAutocompleteSelectedEvent {
7
12
  source: KbqAutocomplete;
8
13
  option: KbqOption;
@@ -73,5 +78,5 @@ export declare class KbqAutocomplete implements AfterContentInit {
73
78
  onKeydown(event: KeyboardEvent): any;
74
79
  private updateFocusClass;
75
80
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqAutocomplete, [null, null, null, { optional: true; host: true; }]>;
76
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqAutocomplete, "kbq-autocomplete", ["kbqAutocomplete"], { "displayWith": { "alias": "displayWith"; "required": false; }; "panelWidth": { "alias": "panelWidth"; "required": false; }; "classList": { "alias": "class"; "required": false; }; "autoActiveFirstOption": { "alias": "autoActiveFirstOption"; "required": false; }; "openOnFocus": { "alias": "openOnFocus"; "required": false; }; }, { "optionSelected": "optionSelected"; "opened": "opened"; "closed": "closed"; }, ["options", "optionGroups"], ["*"], true, never>;
81
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqAutocomplete, "kbq-autocomplete", ["kbqAutocomplete"], { "displayWith": { "alias": "displayWith"; "required": false; }; "panelWidth": { "alias": "panelWidth"; "required": false; }; "classList": { "alias": "class"; "required": false; }; "autoActiveFirstOption": { "alias": "autoActiveFirstOption"; "required": false; }; "openOnFocus": { "alias": "openOnFocus"; "required": false; }; }, { "optionSelected": "optionSelected"; "opened": "opened"; "closed": "closed"; }, ["options", "optionGroups"], ["*", "[kbqAutocompleteFooter], kbq-autocomplete-footer"], true, never>;
77
82
  }
@@ -7,6 +7,6 @@ import * as i5 from "./autocomplete-trigger.directive";
7
7
  import * as i6 from "./autocomplete-origin.directive";
8
8
  export declare class KbqAutocompleteModule {
9
9
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqAutocompleteModule, never>;
10
- static ɵmod: i0.ɵɵNgModuleDeclaration<KbqAutocompleteModule, never, [typeof i1.KbqOptionModule, typeof i2.OverlayModule, typeof i3.NgClass, typeof i4.KbqAutocomplete, typeof i5.KbqAutocompleteTrigger, typeof i6.KbqAutocompleteOrigin], [typeof i4.KbqAutocomplete, typeof i1.KbqOptionModule, typeof i5.KbqAutocompleteTrigger, typeof i6.KbqAutocompleteOrigin]>;
10
+ static ɵmod: i0.ɵɵNgModuleDeclaration<KbqAutocompleteModule, never, [typeof i1.KbqOptionModule, typeof i2.OverlayModule, typeof i3.NgClass, typeof i4.KbqAutocomplete, typeof i5.KbqAutocompleteTrigger, typeof i6.KbqAutocompleteOrigin, typeof i4.KbqAutocompleteFooter], [typeof i4.KbqAutocomplete, typeof i1.KbqOptionModule, typeof i5.KbqAutocompleteTrigger, typeof i6.KbqAutocompleteOrigin, typeof i4.KbqAutocompleteFooter]>;
11
11
  static ɵinj: i0.ɵɵInjectorDeclaration<KbqAutocompleteModule>;
12
12
  }
@@ -8,8 +8,8 @@
8
8
 
9
9
  position: relative;
10
10
 
11
- overflow: hidden auto;
12
- -webkit-overflow-scrolling: touch; // for momentum scroll on mobile
11
+ display: flex;
12
+ flex-direction: column;
13
13
 
14
14
  box-sizing: border-box;
15
15
  min-width: 100%;
@@ -19,7 +19,18 @@
19
19
  border-radius: var(--kbq-autocomplete-size-panel-border-radius, var(--kbq-size-border-radius));
20
20
  max-height: var(--kbq-autocomplete-size-panel-max-height);
21
21
 
22
- padding: var(--kbq-size-xxs);
22
+ .kbq-autocomplete-panel__content {
23
+ flex: 1;
24
+ padding: var(--kbq-size-xxs);
25
+ overflow-x: hidden;
26
+ overflow-y: auto;
27
+ -webkit-overflow-scrolling: touch;
28
+ }
29
+
30
+ .kbq-autocomplete-footer {
31
+ @extend %kbq-select-footer;
32
+ border-color: var(--kbq-line-contrast-less);
33
+ }
23
34
 
24
35
  &.kbq-autocomplete_visible {
25
36
  visibility: visible;
@@ -36,9 +36,9 @@
36
36
  --kbq-badge-filled-fade-off-success-caption: var(--kbq-foreground-white);
37
37
  --kbq-badge-filled-fade-off-success-icon: var(--kbq-icon-white);
38
38
  --kbq-badge-filled-fade-off-warning-background: var(--kbq-background-warning);
39
- --kbq-badge-filled-fade-off-warning-color: var(--kbq-foreground-white);
40
- --kbq-badge-filled-fade-off-warning-caption: var(--kbq-foreground-white);
41
- --kbq-badge-filled-fade-off-warning-icon: var(--kbq-icon-white);
39
+ --kbq-badge-filled-fade-off-warning-color: var(--kbq-foreground-contrast);
40
+ --kbq-badge-filled-fade-off-warning-caption: var(--kbq-foreground-contrast-secondary);
41
+ --kbq-badge-filled-fade-off-warning-icon: var(--kbq-icon-contrast);
42
42
  --kbq-badge-filled-fade-off-error-background: var(--kbq-background-error);
43
43
  --kbq-badge-filled-fade-off-error-color: var(--kbq-foreground-white);
44
44
  --kbq-badge-filled-fade-off-error-caption: var(--kbq-foreground-white);
@@ -0,0 +1,45 @@
1
+ import { KbqColorDirective, KbqComponentColors, KbqOrientation, ThemePalette } from '@koobiq/components/core';
2
+ import { KbqButtonStyles } from './button.component';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Root directive that groups related buttons,
6
+ * propagating a shared style, color, and disabled state to every nested button
7
+ */
8
+ export declare class KbqButtonGroupRoot extends KbqColorDirective {
9
+ private readonly buttons;
10
+ /**
11
+ * Style applied to the group and propagated to every nested button.
12
+ * individual button's style preserved but updated when group input changed.
13
+ */
14
+ get kbqStyle(): string;
15
+ set kbqStyle(value: KbqButtonStyles | string);
16
+ private _kbqStyle;
17
+ /**
18
+ * Color applied to the group and propagated to every nested button.
19
+ * individual button's color preserved but updated when group input changed.
20
+ */
21
+ get color(): KbqComponentColors | ThemePalette | string;
22
+ set color(value: KbqComponentColors | ThemePalette | string);
23
+ /** Whether the root is disabled. */
24
+ get disabled(): boolean;
25
+ set disabled(value: boolean);
26
+ /** @docs-private */
27
+ protected _disabled: boolean;
28
+ constructor();
29
+ private updateColor;
30
+ private updateStyle;
31
+ private updateDisabledState;
32
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqButtonGroupRoot, never>;
33
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqButtonGroupRoot, "[kbqButtonGroupRoot]", never, { "kbqStyle": { "alias": "kbqStyle"; "required": false; }; "color": { "alias": "color"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, ["buttons"], never, true, never>;
34
+ static ngAcceptInputType_disabled: unknown;
35
+ }
36
+ /** Groups and styling related `KbqButton`s into a single visual unit. */
37
+ export declare class KbqButtonGroup {
38
+ /**
39
+ * Layout direction: `'horizontal'` or `'vertical'`
40
+ * @default 'horizontal'
41
+ */
42
+ readonly orientation: import("@angular/core").InputSignal<KbqOrientation>;
43
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqButtonGroup, never>;
44
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqButtonGroup, "kbq-button-group, [kbq-button-group]", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof KbqButtonGroupRoot; inputs: { "color": "color"; "kbqStyle": "kbqStyle"; "disabled": "disabled"; }; outputs: {}; }]>;
45
+ }
@@ -0,0 +1,17 @@
1
+ @use '../core/styles/common/groups-mixins';
2
+
3
+ .kbq-button-group {
4
+ &.kbq-button-group_horizontal {
5
+ @include groups-mixins.group(':is(.kbq-button, .kbq-button-icon)');
6
+ }
7
+
8
+ &.kbq-button-group_vertical {
9
+ @include groups-mixins.vertical-group(':is(.kbq-button, .kbq-button-icon)');
10
+ }
11
+
12
+ &:not(:has(> :not(.kbq-contrast-fade.kbq-button_filled))),
13
+ &:not(:has(> :not(.kbq-contrast.kbq-button_filled))) {
14
+ // @TODO tech debt (#DS-4847)
15
+ gap: var(--kbq-size-3xs);
16
+ }
17
+ }
@@ -31,9 +31,12 @@ export declare class KbqButton extends KbqColorDirective implements OnDestroy, A
31
31
  get kbqStyle(): string;
32
32
  set kbqStyle(value: string | KbqButtonStyles);
33
33
  private _kbqStyle;
34
+ /** Whether the button is disabled. */
34
35
  get disabled(): boolean;
35
36
  set disabled(value: boolean);
36
37
  private _disabled;
38
+ /** @docs-private */
39
+ readonly disabledSignal: import("@angular/core").WritableSignal<boolean>;
37
40
  get tabIndex(): number;
38
41
  set tabIndex(value: number);
39
42
  private _tabIndex;
@@ -4,8 +4,9 @@ import * as i2 from "@angular/cdk/platform";
4
4
  import * as i3 from "@angular/cdk/observers";
5
5
  import * as i4 from "./button.dropdown-trigger.directive";
6
6
  import * as i5 from "./button.component";
7
+ import * as i6 from "./button-group";
7
8
  export declare class KbqButtonModule {
8
9
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqButtonModule, never>;
9
- static ɵmod: i0.ɵɵNgModuleDeclaration<KbqButtonModule, never, [typeof i1.A11yModule, typeof i2.PlatformModule, typeof i3.ObserversModule, typeof i4.KbqButtonDropdownTrigger, typeof i5.KbqButton, typeof i5.KbqButtonCssStyler], [typeof i5.KbqButton, typeof i5.KbqButtonCssStyler, typeof i4.KbqButtonDropdownTrigger]>;
10
+ static ɵmod: i0.ɵɵNgModuleDeclaration<KbqButtonModule, never, [typeof i1.A11yModule, typeof i2.PlatformModule, typeof i3.ObserversModule, typeof i4.KbqButtonDropdownTrigger, typeof i5.KbqButton, typeof i5.KbqButtonCssStyler, typeof i6.KbqButtonGroup, typeof i6.KbqButtonGroupRoot], [typeof i5.KbqButton, typeof i5.KbqButtonCssStyler, typeof i4.KbqButtonDropdownTrigger, typeof i6.KbqButtonGroup, typeof i6.KbqButtonGroupRoot]>;
10
11
  static ɵinj: i0.ɵɵInjectorDeclaration<KbqButtonModule>;
11
12
  }
@@ -1,3 +1,4 @@
1
+ export * from './button-group';
1
2
  export * from './button.component';
2
3
  export * from './button.dropdown-trigger.directive';
3
4
  export * from './button.module';
@@ -11,7 +11,7 @@
11
11
  --kbq-button-toggle-size-item-focus-outline-width: var(--kbq-size-3xs);
12
12
  /* THEME TOKENS */
13
13
  --kbq-button-toggle-container-background: var(--kbq-background-contrast-fade);
14
- --kbq-button-toggle-item-default-background: var(--kbq-background-contrast-fade);
14
+ --kbq-button-toggle-item-default-background: var(--kbq-background-transparent);
15
15
  --kbq-button-toggle-item-default-text: var(--kbq-foreground-contrast);
16
16
  --kbq-button-toggle-item-default-icon: var(--kbq-icon-contrast-fade);
17
17
  --kbq-button-toggle-item-states-hover-background: var(--kbq-states-background-contrast-fade-hover);
@@ -41,7 +41,6 @@ export declare class KbqCheckboxChange {
41
41
  export declare class KbqCheckbox extends KbqColorDirective implements ControlValueAccessor, AfterViewInit, OnDestroy {
42
42
  private changeDetectorRef;
43
43
  private focusMonitor;
44
- private clickAction;
45
44
  big: boolean;
46
45
  /** A unique id for the checkbox input. If none is supplied, it will be auto-generated. */
47
46
  id: string;
@@ -55,6 +54,8 @@ export declare class KbqCheckbox extends KbqColorDirective implements ControlVal
55
54
  readonly indeterminateChange: EventEmitter<boolean>;
56
55
  /** The value attribute of the native input element */
57
56
  value: string;
57
+ /** Defines the behavior when a user clicks on the checkbox. */
58
+ clickAction: KbqCheckboxClickAction;
58
59
  /** The native `<input type="checkbox">` element */
59
60
  inputElement: ElementRef;
60
61
  /** Returns the unique id for the visual hidden input. */
@@ -86,7 +87,7 @@ export declare class KbqCheckbox extends KbqColorDirective implements ControlVal
86
87
  private uniqueId;
87
88
  private currentAnimationClass;
88
89
  private currentCheckState;
89
- constructor(changeDetectorRef: ChangeDetectorRef, focusMonitor: FocusMonitor, clickAction: KbqCheckboxClickAction);
90
+ constructor(changeDetectorRef: ChangeDetectorRef, focusMonitor: FocusMonitor);
90
91
  /**
91
92
  * Called when the checkbox is blurred. Needed to properly implement ControlValueAccessor.
92
93
  * @docs-private
@@ -119,8 +120,8 @@ export declare class KbqCheckbox extends KbqColorDirective implements ControlVal
119
120
  private emitChangeEvent;
120
121
  /** Function is called whenever the focus changes for the input element. */
121
122
  private onInputFocusChange;
122
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqCheckbox, [null, null, { optional: true; }]>;
123
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqCheckbox, "kbq-checkbox", ["kbqCheckbox"], { "big": { "alias": "big"; "required": false; }; "id": { "alias": "id"; "required": false; }; "labelPosition": { "alias": "labelPosition"; "required": false; }; "name": { "alias": "name"; "required": false; }; "value": { "alias": "value"; "required": false; }; "required": { "alias": "required"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; }, { "change": "change"; "indeterminateChange": "indeterminateChange"; }, never, ["*", "kbq-hint"], true, never>;
123
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqCheckbox, never>;
124
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqCheckbox, "kbq-checkbox", ["kbqCheckbox"], { "big": { "alias": "big"; "required": false; }; "id": { "alias": "id"; "required": false; }; "labelPosition": { "alias": "labelPosition"; "required": false; }; "name": { "alias": "name"; "required": false; }; "value": { "alias": "value"; "required": false; }; "clickAction": { "alias": "clickAction"; "required": false; }; "required": { "alias": "required"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; }, { "change": "change"; "indeterminateChange": "indeterminateChange"; }, never, ["*", "kbq-hint"], true, never>;
124
125
  static ngAcceptInputType_required: unknown;
125
126
  static ngAcceptInputType_disabled: unknown;
126
127
  static ngAcceptInputType_tabIndex: unknown;
@@ -149,14 +149,14 @@
149
149
  var(--kbq-background-bg) 100%
150
150
  );
151
151
  --kbq-code-block-outline-collapse-button-expand-background: var(--kbq-background-card);
152
- --kbq-code-block-hljs-addition-background: var(--kbq-palette-green-95);
153
- --kbq-code-block-hljs-addition-color: var(--kbq-palette-green-25);
152
+ --kbq-code-block-hljs-addition-background: var(--kbq-plt-green-a2, var(--kbq-palette-green-95));
153
+ --kbq-code-block-hljs-addition-color: var(--kbq-plt-green-a16, var(--kbq-palette-green-25));
154
154
  --kbq-code-block-hljs-attr-background: null;
155
155
  --kbq-code-block-hljs-attr-color: null;
156
156
  --kbq-code-block-hljs-attribute-background: null;
157
157
  --kbq-code-block-hljs-attribute-color: null;
158
158
  --kbq-code-block-hljs-built-in-background: null;
159
- --kbq-code-block-hljs-built-in-color: var(--kbq-palette-blue-35);
159
+ --kbq-code-block-hljs-built-in-color: var(--kbq-plt-blue-a16, var(--kbq-palette-blue-35));
160
160
  --kbq-code-block-hljs-bullet-background: null;
161
161
  --kbq-code-block-hljs-bullet-color: null;
162
162
  --kbq-code-block-hljs-char-escape-background: null;
@@ -166,9 +166,9 @@
166
166
  --kbq-code-block-hljs-code-background: null;
167
167
  --kbq-code-block-hljs-code-color: null;
168
168
  --kbq-code-block-hljs-comment-background: null;
169
- --kbq-code-block-hljs-comment-color: var(--kbq-palette-grey-60);
170
- --kbq-code-block-hljs-deletion-background: var(--kbq-palette-red-95);
171
- --kbq-code-block-hljs-deletion-color: var(--kbq-palette-red-35);
169
+ --kbq-code-block-hljs-comment-color: var(--kbq-plt-slate-a16, var(--kbq-palette-grey-60));
170
+ --kbq-code-block-hljs-deletion-background: var(--kbq-plt-red-a2, var(--kbq-palette-red-95));
171
+ --kbq-code-block-hljs-deletion-color: var(--kbq-plt-red-a16, var(--kbq-palette-red-35));
172
172
  --kbq-code-block-hljs-doctag-background: null;
173
173
  --kbq-code-block-hljs-doctag-color: null;
174
174
  --kbq-code-block-hljs-emphasis-background: null;
@@ -183,19 +183,19 @@
183
183
  --kbq-code-block-hljs-link-background: null;
184
184
  --kbq-code-block-hljs-link-color: null;
185
185
  --kbq-code-block-hljs-literal-background: null;
186
- --kbq-code-block-hljs-literal-color: var(--kbq-palette-purple-30);
186
+ --kbq-code-block-hljs-literal-color: var(--kbq-plt-purple-a16, var(--kbq-palette-purple-30));
187
187
  --kbq-code-block-hljs-meta-background: null;
188
- --kbq-code-block-hljs-meta-color: var(--kbq-palette-blue-35);
188
+ --kbq-code-block-hljs-meta-color: var(--kbq-plt-blue-a16, var(--kbq-palette-blue-35));
189
189
  --kbq-code-block-hljs-meta-keyword-background: null;
190
190
  --kbq-code-block-hljs-meta-keyword-color: null;
191
191
  --kbq-code-block-hljs-meta-string-background: null;
192
- --kbq-code-block-hljs-meta-string-color: var(--kbq-palette-blue-35);
192
+ --kbq-code-block-hljs-meta-string-color: var(--kbq-plt-blue-a16, var(--kbq-palette-blue-35));
193
193
  --kbq-code-block-hljs-meta-prompt-background: null;
194
194
  --kbq-code-block-hljs-meta-prompt-color: null;
195
195
  --kbq-code-block-hljs-name-background: null;
196
- --kbq-code-block-hljs-name-color: var(--kbq-palette-blue-35);
196
+ --kbq-code-block-hljs-name-color: var(--kbq-plt-blue-a16, var(--kbq-palette-blue-35));
197
197
  --kbq-code-block-hljs-number-background: null;
198
- --kbq-code-block-hljs-number-color: var(--kbq-palette-purple-30);
198
+ --kbq-code-block-hljs-number-color: var(--kbq-plt-purple-a16, var(--kbq-palette-purple-30));
199
199
  --kbq-code-block-hljs-operator-background: null;
200
200
  --kbq-code-block-hljs-operator-color: null;
201
201
  --kbq-code-block-hljs-params-background: null;
@@ -207,7 +207,7 @@
207
207
  --kbq-code-block-hljs-quote-background: null;
208
208
  --kbq-code-block-hljs-quote-color: null;
209
209
  --kbq-code-block-hljs-regexp-background: null;
210
- --kbq-code-block-hljs-regexp-color: var(--kbq-palette-green-25);
210
+ --kbq-code-block-hljs-regexp-color: var(--kbq-plt-green-a16, var(--kbq-palette-green-25));
211
211
  --kbq-code-block-hljs-section-background: null;
212
212
  --kbq-code-block-hljs-section-color: null;
213
213
  --kbq-code-block-hljs-selector-attr-background: null;
@@ -219,15 +219,15 @@
219
219
  --kbq-code-block-hljs-selector-pseudo-background: null;
220
220
  --kbq-code-block-hljs-selector-pseudo-color: null;
221
221
  --kbq-code-block-hljs-selector-tag-background: null;
222
- --kbq-code-block-hljs-selector-tag-color: var(--kbq-palette-blue-35);
222
+ --kbq-code-block-hljs-selector-tag-color: var(--kbq-plt-blue-a16, var(--kbq-palette-blue-35));
223
223
  --kbq-code-block-hljs-string-background: null;
224
- --kbq-code-block-hljs-string-color: var(--kbq-palette-green-25);
224
+ --kbq-code-block-hljs-string-color: var(--kbq-plt-green-a16, var(--kbq-palette-green-25));
225
225
  --kbq-code-block-hljs-strong-background: null;
226
226
  --kbq-code-block-hljs-strong-color: null;
227
227
  --kbq-code-block-hljs-subst-background: null;
228
228
  --kbq-code-block-hljs-subst-color: null;
229
229
  --kbq-code-block-hljs-symbol-background: null;
230
- --kbq-code-block-hljs-symbol-color: var(--kbq-palette-blue-35);
230
+ --kbq-code-block-hljs-symbol-color: var(--kbq-plt-blue-a16, var(--kbq-palette-blue-35));
231
231
  --kbq-code-block-hljs-tag-background: null;
232
232
  --kbq-code-block-hljs-tag-color: null;
233
233
  --kbq-code-block-hljs-template-tag-background: null;
@@ -235,7 +235,7 @@
235
235
  --kbq-code-block-hljs-template-variable-background: null;
236
236
  --kbq-code-block-hljs-template-variable-color: null;
237
237
  --kbq-code-block-hljs-title-background: null;
238
- --kbq-code-block-hljs-title-color: var(--kbq-palette-blue-35);
238
+ --kbq-code-block-hljs-title-color: var(--kbq-plt-blue-a16, var(--kbq-palette-blue-35));
239
239
  --kbq-code-block-hljs-title-class-background: null;
240
240
  --kbq-code-block-hljs-title-class-color: null;
241
241
  --kbq-code-block-hljs-title-class-inherited-background: null;
@@ -254,3 +254,22 @@
254
254
  --kbq-code-block-hljs-variable-language-color: null;
255
255
  --kbq-code-block-tab-size: 4;
256
256
  }
257
+
258
+ .kbq-dark .kbq-code-block {
259
+ --kbq-code-block-hljs-addition-background: var(--kbq-plt-dark-green-a5, var(--kbq-palette-green-95));
260
+ --kbq-code-block-hljs-addition-color: var(--kbq-plt-dark-green-a14, var(--kbq-palette-green-25));
261
+ --kbq-code-block-hljs-built-in-color: var(--kbq-plt-dark-blue-a14, var(--kbq-palette-blue-35));
262
+ --kbq-code-block-hljs-comment-color: var(--kbq-plt-dark-slate-a14, var(--kbq-palette-grey-60));
263
+ --kbq-code-block-hljs-deletion-background: var(--kbq-plt-dark-red-a5, var(--kbq-palette-red-95));
264
+ --kbq-code-block-hljs-deletion-color: var(--kbq-plt-dark-red-a14, var(--kbq-palette-red-35));
265
+ --kbq-code-block-hljs-literal-color: var(--kbq-plt-dark-purple-a14, var(--kbq-palette-purple-30));
266
+ --kbq-code-block-hljs-meta-color: var(--kbq-plt-dark-blue-a14, var(--kbq-palette-blue-35));
267
+ --kbq-code-block-hljs-meta-string-color: var(--kbq-plt-dark-blue-a14, var(--kbq-palette-blue-35));
268
+ --kbq-code-block-hljs-name-color: var(--kbq-plt-dark-blue-a14, var(--kbq-palette-blue-35));
269
+ --kbq-code-block-hljs-number-color: var(--kbq-plt-dark-purple-a14, var(--kbq-palette-purple-30));
270
+ --kbq-code-block-hljs-regexp-color: var(--kbq-plt-dark-green-a14, var(--kbq-palette-green-25));
271
+ --kbq-code-block-hljs-selector-tag-color: var(--kbq-plt-dark-blue-a14, var(--kbq-palette-blue-35));
272
+ --kbq-code-block-hljs-string-color: var(--kbq-plt-dark-green-a14, var(--kbq-palette-green-25));
273
+ --kbq-code-block-hljs-symbol-color: var(--kbq-plt-dark-blue-a14, var(--kbq-palette-blue-35));
274
+ --kbq-code-block-hljs-title-color: var(--kbq-plt-dark-blue-a14, var(--kbq-palette-blue-35));
275
+ }
@@ -96,6 +96,10 @@ export declare class KbqCodeBlock implements AfterViewInit {
96
96
  get hideTabs(): boolean;
97
97
  set hideTabs(value: boolean);
98
98
  private _hideTabs;
99
+ /**
100
+ * Output to support two-way binding on `[(hideTabs)]` property.
101
+ */
102
+ readonly hideTabsChange: EventEmitter<boolean>;
99
103
  /**
100
104
  * Component locale configuration.
101
105
  *
@@ -169,9 +173,10 @@ export declare class KbqCodeBlock implements AfterViewInit {
169
173
  */
170
174
  protected onSelectedTabChange(index: number): void;
171
175
  /**
172
- * Handles the hover event on the code block element and updates the actionbar display accordingly.
176
+ * Tracks hover events to show/hide the actionbar when `hideTabs` is `true`.
177
+ * Reacts to `hideTabs` changes dynamically.
173
178
  */
174
- private handleHover;
179
+ private trackHoverState;
175
180
  /**
176
181
  * Handles the scroll event on the scrollable code content element and updates the header shadow accordingly.
177
182
  */
@@ -225,7 +230,7 @@ export declare class KbqCodeBlock implements AfterViewInit {
225
230
  */
226
231
  protected downloadCode(): void;
227
232
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqCodeBlock, never>;
228
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqCodeBlock, "kbq-code-block", ["kbqCodeBlock"], { "lineNumbers": { "alias": "lineNumbers"; "required": false; }; "filled": { "alias": "filled"; "required": false; }; "canToggleSoftWrap": { "alias": "canToggleSoftWrap"; "required": false; }; "softWrap": { "alias": "softWrap"; "required": false; }; "viewAll": { "alias": "viewAll"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "canLoad": { "alias": "canLoad"; "required": false; }; "canDownload": { "alias": "canDownload"; "required": false; }; "canCopy": { "alias": "canCopy"; "required": false; }; "codeFiles": { "alias": "codeFiles"; "required": false; }; "files": { "alias": "files"; "required": false; }; "activeFileIndex": { "alias": "activeFileIndex"; "required": false; }; "noBorder": { "alias": "noBorder"; "required": false; }; "hideTabs": { "alias": "hideTabs"; "required": false; }; }, { "softWrapChange": "softWrapChange"; "viewAllChange": "viewAllChange"; "activeFileIndexChange": "activeFileIndexChange"; }, ["tabLinkTemplate"], never, true, never>;
233
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqCodeBlock, "kbq-code-block", ["kbqCodeBlock"], { "lineNumbers": { "alias": "lineNumbers"; "required": false; }; "filled": { "alias": "filled"; "required": false; }; "canToggleSoftWrap": { "alias": "canToggleSoftWrap"; "required": false; }; "softWrap": { "alias": "softWrap"; "required": false; }; "viewAll": { "alias": "viewAll"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "canLoad": { "alias": "canLoad"; "required": false; }; "canDownload": { "alias": "canDownload"; "required": false; }; "canCopy": { "alias": "canCopy"; "required": false; }; "codeFiles": { "alias": "codeFiles"; "required": false; }; "files": { "alias": "files"; "required": false; }; "activeFileIndex": { "alias": "activeFileIndex"; "required": false; }; "noBorder": { "alias": "noBorder"; "required": false; }; "hideTabs": { "alias": "hideTabs"; "required": false; }; }, { "softWrapChange": "softWrapChange"; "viewAllChange": "viewAllChange"; "activeFileIndexChange": "activeFileIndexChange"; "hideTabsChange": "hideTabsChange"; }, ["tabLinkTemplate"], never, true, never>;
229
234
  static ngAcceptInputType_lineNumbers: unknown;
230
235
  static ngAcceptInputType_filled: unknown;
231
236
  static ngAcceptInputType_canToggleSoftWrap: unknown;
@@ -12,6 +12,16 @@ export declare class ShowOnFormSubmitErrorStateMatcher implements ErrorStateMatc
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<ShowOnFormSubmitErrorStateMatcher, never>;
13
13
  static ɵprov: i0.ɵɵInjectableDeclaration<ShowOnFormSubmitErrorStateMatcher>;
14
14
  }
15
+ /**
16
+ * Error state matcher with split behavior based on error's type:
17
+ * - `required` errors are shown only after the form is submitted.
18
+ * - All other errors are shown as soon as the control is invalid and touched.
19
+ */
20
+ export declare class ShowRequiredOnSubmitErrorStateMatcher implements ErrorStateMatcher {
21
+ isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<ShowRequiredOnSubmitErrorStateMatcher, never>;
23
+ static ɵprov: i0.ɵɵInjectableDeclaration<ShowRequiredOnSubmitErrorStateMatcher>;
24
+ }
15
25
  /** Error state matcher that matches when a control is invalid and dirty or form is submitted. */
16
26
  export declare class ShowOnControlDirtyErrorStateMatcher implements ErrorStateMatcher {
17
27
  isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean;
@@ -12,19 +12,26 @@
12
12
  }
13
13
 
14
14
  .kbq-form-horizontal {
15
- $line-height: var(--kbq-typography-text-normal-line-height);
16
- $form-field-size-height: var(--kbq-form-field-size-height, var(--kbq-size-3xl));
15
+ --kbq-forms-horizontal-label-padding-top: var(--kbq-size-xs);
17
16
 
18
17
  & .kbq-form-row_margin {
19
18
  margin-bottom: var(--kbq-forms-size-horizontal-row-margin-bottom);
20
19
  }
21
20
 
22
21
  & .kbq-form__label {
23
- padding-top: calc(($form-field-size-height - $line-height) / 2);
22
+ padding-top: var(--kbq-forms-horizontal-label-padding-top);
24
23
 
25
24
  text-align: start;
26
25
  }
27
26
 
27
+ & .kbq-form__row:has(.kbq-toggle, .kbq-radio-group, .kbq-checkbox, .kbq-multiple-file-upload) {
28
+ --kbq-forms-horizontal-label-padding-top: 0;
29
+ }
30
+
31
+ & .kbq-form__row:has(.kbq-single-file-upload) {
32
+ --kbq-forms-horizontal-label-padding-top: var(--kbq-size-m);
33
+ }
34
+
28
35
  & .kbq-form__control {
29
36
  padding-left: var(--kbq-forms-size-horizontal-control-padding-left);
30
37
  }
@@ -3,6 +3,7 @@
3
3
  @mixin kbq-option-action-theme() {
4
4
  .kbq-option-action {
5
5
  &.cdk-keyboard-focused {
6
+ z-index: 1;
6
7
  border-color: var(--kbq-states-line-focus-theme);
7
8
  }
8
9
 
@@ -27,9 +27,9 @@
27
27
  width: var(--kbq-size-3xl);
28
28
  height: 100%;
29
29
 
30
- background:
31
- linear-gradient(to right, transparent 0%, var(--kbq-option-background) 70%),
32
- linear-gradient(to right, transparent 0%, var(--kbq-background-bg) 80%);
30
+ background: linear-gradient(var(--kbq-option-background), var(--kbq-option-background)), var(--kbq-background-bg);
31
+
32
+ mask-image: linear-gradient(to right, transparent 0%, black var(--kbq-size-xxl));
33
33
  }
34
34
 
35
35
  .kbq-action-container__box {
@@ -39,7 +39,5 @@
39
39
  align-items: center;
40
40
  justify-content: center;
41
41
 
42
- background:
43
- linear-gradient(to right, var(--kbq-option-background) 0%, var(--kbq-option-background) 100%),
44
- linear-gradient(to right, var(--kbq-background-bg) 0%, var(--kbq-background-bg) 100%);
42
+ background: linear-gradient(var(--kbq-option-background), var(--kbq-option-background)), var(--kbq-background-bg);
45
43
  }
@@ -6,6 +6,11 @@
6
6
  @include list.kbq-list-item-base();
7
7
  @include vendor-prefixes.user-select(none);
8
8
 
9
+ & > .kbq-pseudo-checkbox {
10
+ margin-top: var(--kbq-size-3xs);
11
+ align-self: baseline;
12
+ }
13
+
9
14
  border-radius: var(--kbq-option-border-radius);
10
15
 
11
16
  &:not(.kbq-disabled) {
@@ -71,7 +71,7 @@ export declare abstract class KbqPopUpTrigger<T> implements OnInit, OnDestroy {
71
71
  keydownHandler(event: KeyboardEvent): void;
72
72
  touchendHandler(): void;
73
73
  show(delay?: number): void;
74
- hide: (delay?: number) => void;
74
+ hide(delay?: number): void;
75
75
  detach: () => void;
76
76
  /** Create the overlay config and position strategy */
77
77
  createOverlay(): OverlayRef;
@@ -12,6 +12,10 @@ export declare class KbqSelectMatcher {
12
12
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqSelectMatcher, "kbq-select-matcher, [kbq-select-matcher]", never, { "useDefaultHandlers": { "alias": "useDefaultHandlers"; "required": false; }; }, {}, never, never, true, never>;
13
13
  static ngAcceptInputType_useDefaultHandlers: unknown;
14
14
  }
15
+ export declare class KbqSelectSearchEmptyResult {
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelectSearchEmptyResult, never>;
17
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqSelectSearchEmptyResult, "[kbq-select-search-empty-result]", ["kbqSelectSearchEmptyResult"], {}, {}, never, never, true, never>;
18
+ }
15
19
  export declare class KbqSelectFooter {
16
20
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelectFooter, never>;
17
21
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqSelectFooter, "kbq-select-footer, [kbq-select-footer]", never, {}, {}, never, never, true, never>;
@@ -34,10 +38,6 @@ export declare class KbqSelectSearch implements AfterContentInit, OnDestroy {
34
38
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelectSearch, [{ optional: true; }]>;
35
39
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqSelectSearch, "[kbqSelectSearch]", ["kbqSelectSearch"], {}, {}, never, never, true, never>;
36
40
  }
37
- export declare class KbqSelectSearchEmptyResult {
38
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelectSearchEmptyResult, never>;
39
- static ɵdir: i0.ɵɵDirectiveDeclaration<KbqSelectSearchEmptyResult, "[kbq-select-search-empty-result]", ["kbqSelectSearchEmptyResult"], {}, {}, never, never, true, never>;
40
- }
41
41
  /**
42
42
  * Abstract class representing a customizable select component with an overlay.
43
43
  *
@@ -0,0 +1,79 @@
1
+ @use 'sass:map';
2
+
3
+ @mixin border-top-radius($radius) {
4
+ border-top-right-radius: $radius;
5
+ border-top-left-radius: $radius;
6
+ }
7
+
8
+ @mixin border-bottom-radius($radius) {
9
+ border-bottom-right-radius: $radius;
10
+ border-bottom-left-radius: $radius;
11
+ }
12
+
13
+ @mixin border-right-radius($radius) {
14
+ border-bottom-right-radius: $radius;
15
+ border-top-right-radius: $radius;
16
+ }
17
+
18
+ @mixin border-left-radius($radius) {
19
+ border-bottom-left-radius: $radius;
20
+ border-top-left-radius: $radius;
21
+ }
22
+
23
+ @mixin group($item-selector: kbq-group-item) {
24
+ & {
25
+ display: flex;
26
+ flex-direction: row;
27
+
28
+ &_justified {
29
+ > #{$item-selector} {
30
+ width: 100%;
31
+ }
32
+ }
33
+
34
+ #{$item-selector} + #{$item-selector} {
35
+ margin-left: calc(-1 * #{var(--kbq-size-border-width)});
36
+ }
37
+
38
+ & > #{$item-selector}:first-child:not(:last-child) {
39
+ @include border-right-radius(0);
40
+ }
41
+
42
+ & > #{$item-selector}:last-child:not(:first-child) {
43
+ @include border-left-radius(0);
44
+ }
45
+
46
+ & > #{$item-selector}:not(:first-child):not(:last-child) {
47
+ border-radius: 0;
48
+ }
49
+ }
50
+ }
51
+
52
+ @mixin vertical-group($item-selector: kbq-group-item) {
53
+ & {
54
+ display: flex;
55
+ flex-direction: column;
56
+
57
+ > #{$item-selector} {
58
+ &:first-child:not(:last-child) {
59
+ @include border-bottom-radius(0);
60
+
61
+ border-top-right-radius: var(--kbq-size-border-radius);
62
+ }
63
+
64
+ &:last-child:not(:first-child) {
65
+ @include border-top-radius(0);
66
+
67
+ border-bottom-left-radius: var(--kbq-size-border-radius);
68
+ }
69
+
70
+ &:not(:first-child):not(:last-child) {
71
+ border-radius: 0;
72
+ }
73
+ }
74
+
75
+ #{$item-selector} + #{$item-selector} {
76
+ margin-top: calc(-1 * #{var(--kbq-size-border-width)});
77
+ }
78
+ }
79
+ }