@koobiq/components 19.4.1 → 19.5.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 (171) hide show
  1. package/LICENSE +1 -1
  2. package/accordion/accordion-content.d.ts +1 -1
  3. package/accordion/accordion-content.directive.d.ts +18 -7
  4. package/accordion/accordion-header.directive.d.ts +2 -2
  5. package/accordion/accordion-item.d.ts +74 -3
  6. package/accordion/accordion-trigger.component.d.ts +15 -2
  7. package/accordion/accordion-trigger.directive.d.ts +9 -5
  8. package/accordion/accordion.component.d.ts +67 -6
  9. package/accordion/accordion.component.scss +9 -27
  10. package/accordion/public-api.d.ts +0 -2
  11. package/checkbox/checkbox.scss +5 -5
  12. package/clamped-text/clamped-list.d.ts +41 -0
  13. package/clamped-text/clamped-text.d.ts +10 -6
  14. package/clamped-text/constants.d.ts +21 -1
  15. package/clamped-text/index.d.ts +1 -0
  16. package/clamped-text/module.d.ts +2 -1
  17. package/code-block/code-block.d.ts +10 -3
  18. package/code-block/code-block.module.d.ts +1 -1
  19. package/code-block/code-block.scss +1 -0
  20. package/code-block/types.d.ts +9 -0
  21. package/core/common-behaviors/flex.d.ts +4 -0
  22. package/core/common-behaviors/index.d.ts +1 -0
  23. package/core/form-field/form-field-ref.d.ts +3 -1
  24. package/core/locales/en-US.d.ts +2 -0
  25. package/core/locales/es-LA.d.ts +2 -0
  26. package/core/locales/locale-service.d.ts +10 -0
  27. package/core/locales/pt-BR.d.ts +2 -0
  28. package/core/locales/ru-RU.d.ts +2 -0
  29. package/core/locales/tk-TM.d.ts +2 -0
  30. package/core/locales/types.d.ts +2 -0
  31. package/core/option/_option-theme.scss +4 -17
  32. package/core/option/option.d.ts +5 -1
  33. package/core/pop-up/pop-up-trigger.d.ts +10 -1
  34. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +2 -2
  35. package/core/styles/common/_overlay.scss +1 -1
  36. package/dropdown/dropdown.component.d.ts +2 -1
  37. package/fesm2022/koobiq-components-accordion.mjs +278 -236
  38. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  39. package/fesm2022/koobiq-components-actions-panel.mjs +10 -10
  40. package/fesm2022/koobiq-components-alert.mjs +16 -16
  41. package/fesm2022/koobiq-components-app-switcher.mjs +19 -19
  42. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  43. package/fesm2022/koobiq-components-autocomplete.mjs +13 -13
  44. package/fesm2022/koobiq-components-badge.mjs +13 -13
  45. package/fesm2022/koobiq-components-breadcrumbs.mjs +25 -25
  46. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  47. package/fesm2022/koobiq-components-button-toggle.mjs +10 -10
  48. package/fesm2022/koobiq-components-button.mjs +13 -13
  49. package/fesm2022/koobiq-components-checkbox.mjs +11 -11
  50. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  51. package/fesm2022/koobiq-components-clamped-text.mjs +134 -47
  52. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  53. package/fesm2022/koobiq-components-code-block.mjs +35 -16
  54. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  55. package/fesm2022/koobiq-components-content-panel.mjs +28 -28
  56. package/fesm2022/koobiq-components-core.mjs +267 -233
  57. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  58. package/fesm2022/koobiq-components-datepicker.mjs +40 -40
  59. package/fesm2022/koobiq-components-divider.mjs +7 -7
  60. package/fesm2022/koobiq-components-dl.mjs +13 -13
  61. package/fesm2022/koobiq-components-dropdown.mjs +29 -21
  62. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  63. package/fesm2022/koobiq-components-dynamic-translation.mjs +13 -13
  64. package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -7
  65. package/fesm2022/koobiq-components-empty-state.mjs +19 -19
  66. package/fesm2022/koobiq-components-file-upload.mjs +39 -39
  67. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  68. package/fesm2022/koobiq-components-filter-bar.mjs +88 -88
  69. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-form-field.mjs +68 -63
  71. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  72. package/fesm2022/koobiq-components-icon.mjs +14 -14
  73. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  74. package/fesm2022/koobiq-components-inline-edit.mjs +26 -16
  75. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  76. package/fesm2022/koobiq-components-input.mjs +28 -26
  77. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-link.mjs +13 -7
  79. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-list.mjs +19 -19
  81. package/fesm2022/koobiq-components-loader-overlay.mjs +16 -16
  82. package/fesm2022/koobiq-components-markdown.mjs +10 -10
  83. package/fesm2022/koobiq-components-modal.mjs +90 -63
  84. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  85. package/fesm2022/koobiq-components-navbar-ic.mjs +34 -34
  86. package/fesm2022/koobiq-components-navbar.mjs +51 -44
  87. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  88. package/fesm2022/koobiq-components-notification-center.mjs +16 -16
  89. package/fesm2022/koobiq-components-overflow-items.mjs +29 -17
  90. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  91. package/fesm2022/koobiq-components-popover.mjs +16 -16
  92. package/fesm2022/koobiq-components-progress-bar.mjs +13 -13
  93. package/fesm2022/koobiq-components-progress-spinner.mjs +13 -13
  94. package/fesm2022/koobiq-components-radio.mjs +10 -10
  95. package/fesm2022/koobiq-components-resizer.mjs +10 -10
  96. package/fesm2022/koobiq-components-risk-level.mjs +7 -7
  97. package/fesm2022/koobiq-components-scrollbar.mjs +10 -10
  98. package/fesm2022/koobiq-components-search-expandable.mjs +8 -8
  99. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-select.mjs +13 -12
  101. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-sidebar.mjs +13 -13
  103. package/fesm2022/koobiq-components-sidepanel.mjs +49 -40
  104. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  105. package/fesm2022/koobiq-components-skeleton.mjs +26 -10
  106. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  107. package/fesm2022/koobiq-components-split-button.mjs +7 -7
  108. package/fesm2022/koobiq-components-splitter.mjs +16 -16
  109. package/fesm2022/koobiq-components-table.mjs +10 -10
  110. package/fesm2022/koobiq-components-tabs.mjs +54 -54
  111. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-tags.mjs +42 -45
  113. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-textarea.mjs +10 -9
  115. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-time-range.mjs +24 -24
  117. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  118. package/fesm2022/koobiq-components-timepicker.mjs +10 -10
  119. package/fesm2022/koobiq-components-timezone.mjs +24 -24
  120. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  121. package/fesm2022/koobiq-components-title.mjs +7 -7
  122. package/fesm2022/koobiq-components-toast.mjs +16 -16
  123. package/fesm2022/koobiq-components-toggle.mjs +7 -7
  124. package/fesm2022/koobiq-components-tooltip.mjs +28 -18
  125. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  126. package/fesm2022/koobiq-components-top-bar.mjs +13 -13
  127. package/fesm2022/koobiq-components-tree-select.mjs +10 -9
  128. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  129. package/fesm2022/koobiq-components-tree.mjs +63 -50
  130. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  131. package/fesm2022/koobiq-components-username.mjs +27 -27
  132. package/filter-bar/pipes/pipe-date.scss +3 -15
  133. package/form-field/form-field.d.ts +7 -1
  134. package/form-field/form-field.scss +4 -0
  135. package/icon/icon-button.scss +4 -0
  136. package/inline-edit/inline-edit.d.ts +1 -0
  137. package/input/input-password.d.ts +1 -0
  138. package/input/input.d.ts +1 -0
  139. package/link/_link-theme.scss +15 -7
  140. package/link/link-tokens.scss +2 -0
  141. package/link/link.component.d.ts +4 -1
  142. package/markdown/markdown.component.d.ts +1 -1
  143. package/modal/modal-ref.class.d.ts +1 -0
  144. package/modal/modal.component.d.ts +14 -8
  145. package/modal/modal.scss +1 -0
  146. package/modal/modal.type.d.ts +5 -0
  147. package/navbar/navbar-item.component.d.ts +3 -1
  148. package/overflow-items/overflow-items.d.ts +8 -2
  149. package/package.json +4 -4
  150. package/prebuilt-themes/dark-theme.css +1 -1
  151. package/prebuilt-themes/light-theme.css +1 -1
  152. package/prebuilt-themes/theme.css +1 -1
  153. package/schematics/ng-add/index.js +4 -5
  154. package/select/select.component.d.ts +1 -0
  155. package/sidepanel/_sidepanel-theme.scss +1 -7
  156. package/sidepanel/sidepanel-config.d.ts +4 -1
  157. package/sidepanel/sidepanel.service.d.ts +0 -1
  158. package/skeleton/skeleton.d.ts +5 -0
  159. package/skeleton/skeleton.scss +3 -2
  160. package/tabs/_tabs-common.scss +2 -1
  161. package/tags/tag-input.d.ts +4 -3
  162. package/tags/tag-list.component.d.ts +1 -0
  163. package/textarea/textarea.component.d.ts +1 -0
  164. package/tooltip/tooltip.component.d.ts +2 -0
  165. package/tree/_tree-theme.scss +0 -19
  166. package/tree/tree-option.component.d.ts +9 -3
  167. package/tree/tree-option.scss +2 -5
  168. package/tree/tree-selection.component.d.ts +2 -0
  169. package/tree-select/tree-select.component.d.ts +1 -0
  170. package/accordion/accordion-item.directive.d.ts +0 -72
  171. package/accordion/accordion-root.directive.d.ts +0 -64
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025
3
+ Copyright (c) 2026
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -2,5 +2,5 @@ import * as i0 from "@angular/core";
2
2
  import * as i1 from "./accordion-content.directive";
3
3
  export declare class KbqAccordionContent {
4
4
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqAccordionContent, never>;
5
- static ɵdir: i0.ɵɵDirectiveDeclaration<KbqAccordionContent, "kbq-accordion-content, [kbq-accordion-content]", never, {}, {}, never, never, true, [{ directive: typeof i1.KbqAccordionContentDirective; inputs: {}; outputs: {}; }]>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqAccordionContent, "kbq-accordion-content, [kbq-accordion-content]", never, {}, {}, never, ["*"], true, [{ directive: typeof i1.KbqAccordionContentDirective; inputs: {}; outputs: {}; }]>;
6
6
  }
@@ -1,11 +1,22 @@
1
- import { KbqAccordionItemDirective } from './accordion-item.directive';
1
+ import { AfterContentInit, AfterViewInit } from '@angular/core';
2
+ import { KbqAccordionItem } from './accordion-item';
2
3
  import * as i0 from "@angular/core";
3
- export declare class KbqAccordionContentDirective {
4
- protected readonly item: KbqAccordionItemDirective;
5
- protected readonly nativeElement: any;
6
- protected hidden: boolean;
7
- protected onAnimationEnd(): void;
8
- onToggle(): void;
4
+ export declare class KbqAccordionContentDirective implements AfterContentInit, AfterViewInit {
5
+ private readonly renderer;
6
+ /** @docs-private */
7
+ protected readonly nativeElement: HTMLElement;
8
+ /** @docs-private */
9
+ protected readonly item: KbqAccordionItem;
10
+ /** @docs-private */
11
+ protected readonly hidden: import("@angular/core").WritableSignal<boolean>;
12
+ private savedTransition;
13
+ private readonly afterRenderRef?;
14
+ constructor();
15
+ ngAfterViewInit(): void;
16
+ ngAfterContentInit(): void;
17
+ toggle(): void;
18
+ disableAnimation(): void;
19
+ enableAnimation(): void;
9
20
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqAccordionContentDirective, never>;
10
21
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqAccordionContentDirective, "[kbqAccordionContent]", ["kbqAccordionContent"], {}, {}, never, never, true, never>;
11
22
  }
@@ -1,7 +1,7 @@
1
- import { KbqAccordionItemDirective } from './accordion-item.directive';
1
+ import { KbqAccordionItem } from './accordion-item';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class KbqAccordionHeaderDirective {
4
- protected readonly item: KbqAccordionItemDirective;
4
+ protected readonly item: KbqAccordionItem;
5
5
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqAccordionHeaderDirective, never>;
6
6
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqAccordionHeaderDirective, "[kbqAccordionHeader]", never, {}, {}, never, never, true, never>;
7
7
  }
@@ -1,6 +1,77 @@
1
+ import { UniqueSelectionDispatcher } from '@angular/cdk/collections';
2
+ import { ChangeDetectorRef, EventEmitter, OnDestroy } from '@angular/core';
3
+ import { KbqAccordionContentDirective } from './accordion-content.directive';
4
+ import { KbqAccordionTrigger } from './accordion-trigger.component';
5
+ import { KbqAccordionTriggerDirective } from './accordion-trigger.directive';
6
+ import { KbqAccordion, KbqAccordionOrientation } from './accordion.component';
1
7
  import * as i0 from "@angular/core";
2
- import * as i1 from "./accordion-item.directive";
3
- export declare class KbqAccordionItem {
8
+ /** @deprecated Use KbqAccordionItemState instead. */
9
+ export type RdxAccordionItemState = 'open' | 'closed';
10
+ export type KbqAccordionItemState = 'open' | 'closed';
11
+ export declare class KbqAccordionItem implements OnDestroy {
12
+ /** @docs-private */
13
+ protected readonly accordion: KbqAccordion;
14
+ /** @docs-private */
15
+ protected readonly changeDetectorRef: ChangeDetectorRef;
16
+ /** @docs-private */
17
+ protected readonly expansionDispatcher: UniqueSelectionDispatcher;
18
+ /** @docs-private */
19
+ trigger: KbqAccordionTriggerDirective;
20
+ /** @docs-private */
21
+ triggerComponent: KbqAccordionTrigger;
22
+ /** @docs-private */
23
+ content: KbqAccordionContentDirective;
24
+ /** The unique AccordionItem id. */
25
+ get id(): string;
26
+ private _id;
27
+ get dataState(): KbqAccordionItemState;
28
+ get orientation(): KbqAccordionOrientation;
29
+ /** Whether the AccordionItem is expanded. */
30
+ get expanded(): boolean;
31
+ set expanded(expanded: boolean);
32
+ private _expanded;
33
+ set value(value: string);
34
+ get value(): string;
35
+ private _value?;
36
+ /** Whether the AccordionItem is disabled. */
37
+ get disabled(): boolean;
38
+ set disabled(value: boolean);
39
+ private _disabled;
40
+ /** Event emitted every time the AccordionItem is closed. */
41
+ readonly closed: EventEmitter<void>;
42
+ /** Event emitted every time the AccordionItem is opened. */
43
+ readonly opened: EventEmitter<void>;
44
+ /**
45
+ * Event emitted when the AccordionItem is destroyed.
46
+ * @docs-private
47
+ */
48
+ readonly destroyed: EventEmitter<void>;
49
+ /**
50
+ * Emits whenever the expanded state of the accordion changes.
51
+ * Primarily used to facilitate two-way binding.
52
+ * @docs-private
53
+ */
54
+ readonly expandedChange: EventEmitter<boolean>;
55
+ /** Unregister function for expansionDispatcher. */
56
+ private removeUniqueSelectionListener;
57
+ /** Subscription to openAll/closeAll events. */
58
+ private openCloseAllSubscription;
59
+ constructor();
60
+ /** Emits an event for the accordion item being destroyed. */
61
+ ngOnDestroy(): void;
62
+ focus(): void;
63
+ /** Toggles the expanded state of the accordion item. */
64
+ toggle(): void;
65
+ /** Sets the expanded state of the accordion item to false. */
66
+ close(): void;
67
+ /** Sets the expanded state of the accordion item to true. */
68
+ open(): void;
69
+ getState(): any;
70
+ disableAnimation(): void;
71
+ enableAnimation(): void;
72
+ private subscribeToOpenCloseAllActions;
4
73
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqAccordionItem, never>;
5
- static ɵdir: i0.ɵɵDirectiveDeclaration<KbqAccordionItem, "kbq-accordion-item, [kbq-accordion-item]", never, {}, {}, never, never, true, [{ directive: typeof i1.KbqAccordionItemDirective; inputs: { "expanded": "expanded"; "disabled": "disabled"; "value": "value"; }; outputs: { "closed": "closed"; "opened": "opened"; "expandedChange": "expandedChange"; }; }]>;
74
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqAccordionItem, "kbq-accordion-item, [kbq-accordion-item]", never, { "expanded": { "alias": "expanded"; "required": false; }; "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "closed": "closed"; "opened": "opened"; "expandedChange": "expandedChange"; }, ["trigger", "triggerComponent", "content"], never, true, never>;
75
+ static ngAcceptInputType_expanded: unknown;
76
+ static ngAcceptInputType_disabled: unknown;
6
77
  }
@@ -1,11 +1,24 @@
1
+ import { AfterViewInit } from '@angular/core';
2
+ import { KbqIcon } from '@koobiq/components/icon';
1
3
  import { KbqAccordion } from './accordion.component';
2
4
  import * as i0 from "@angular/core";
3
5
  import * as i1 from "./accordion-trigger.directive";
4
- export declare class KbqAccordionTrigger {
5
- protected accordion: KbqAccordion;
6
+ export declare class KbqAccordionTrigger implements AfterViewInit {
7
+ /** @docs-private */
8
+ protected readonly nativeElement: HTMLElement;
9
+ /** @docs-private */
10
+ protected readonly accordion: KbqAccordion;
11
+ /** @docs-private */
12
+ icon: KbqIcon;
13
+ private savedTransition;
14
+ private readonly afterRenderRef?;
6
15
  get isFill(): boolean;
7
16
  get isHug(): boolean;
8
17
  get isHugSpaceBetween(): boolean;
18
+ constructor();
19
+ ngAfterViewInit(): void;
20
+ disableAnimation(): void;
21
+ enableAnimation(): void;
9
22
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqAccordionTrigger, never>;
10
23
  static ɵcmp: i0.ɵɵComponentDeclaration<KbqAccordionTrigger, "kbq-accordion-trigger, [kbq-accordion-trigger]", never, {}, {}, never, ["*"], true, [{ directive: typeof i1.KbqAccordionTriggerDirective; inputs: {}; outputs: {}; }]>;
11
24
  }
@@ -1,12 +1,16 @@
1
- import { KbqAccordionItemDirective } from './accordion-item.directive';
2
- import { KbqAccordionRootDirective } from './accordion-root.directive';
1
+ import { KbqAccordionItem } from './accordion-item';
2
+ import { KbqAccordion } from './accordion.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class KbqAccordionTriggerDirective {
5
- protected readonly nativeElement: any;
6
- protected readonly accordionRoot: KbqAccordionRootDirective;
7
- protected readonly item: KbqAccordionItemDirective;
5
+ /** @docs-private */
6
+ protected readonly nativeElement: HTMLElement;
7
+ /** @docs-private */
8
+ protected readonly accordion: KbqAccordion;
9
+ /** @docs-private */
10
+ protected readonly item: KbqAccordionItem;
8
11
  /** Fires when trigger clicked */
9
12
  onClick(): void;
13
+ /** @docs-private */
10
14
  focus(): void;
11
15
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqAccordionTriggerDirective, never>;
12
16
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqAccordionTriggerDirective, "[kbqAccordionTrigger]", never, {}, {}, never, never, true, never>;
@@ -1,18 +1,79 @@
1
- import { FocusMonitor } from '@angular/cdk/a11y';
2
- import { AfterViewInit, ElementRef, OnDestroy } from '@angular/core';
1
+ import { FocusKeyManager, FocusMonitor } from '@angular/cdk/a11y';
2
+ import { Directionality } from '@angular/cdk/bidi';
3
+ import { UniqueSelectionDispatcher } from '@angular/cdk/collections';
4
+ import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, QueryList } from '@angular/core';
5
+ import { Subject } from 'rxjs';
6
+ import { KbqAccordionItem } from './accordion-item';
3
7
  import * as i0 from "@angular/core";
4
- import * as i1 from "./accordion-root.directive";
5
8
  export declare enum KbqAccordionVariant {
6
9
  fill = "fill",
7
10
  hug = "hug",
8
11
  hugSpaceBetween = "hugSpaceBetween"
9
12
  }
10
- export declare class KbqAccordion implements OnDestroy, AfterViewInit {
13
+ export type KbqAccordionType = 'single' | 'multiple';
14
+ export type KbqAccordionOrientation = 'horizontal' | 'vertical';
15
+ export declare class KbqAccordion implements OnDestroy, AfterViewInit, AfterContentInit {
16
+ private readonly isBrowser;
17
+ private readonly localStorage;
18
+ /** @docs-private */
11
19
  protected readonly focusMonitor: FocusMonitor;
12
- protected readonly elementRef: ElementRef<HTMLElement>;
20
+ /** @docs-private */
21
+ protected readonly elementRef: ElementRef<any>;
22
+ /** @docs-private */
23
+ protected readonly changeDetectorRef: ChangeDetectorRef;
24
+ /** @docs-private */
25
+ protected readonly selectionDispatcher: UniqueSelectionDispatcher;
26
+ /** @docs-private */
27
+ protected readonly dir: Directionality | null;
28
+ /** @docs-private */
29
+ protected keyManager: FocusKeyManager<KbqAccordionItem>;
30
+ /** @docs-private */
31
+ readonly openCloseAllActions: Subject<boolean>;
32
+ /** @docs-private */
33
+ items: QueryList<KbqAccordionItem>;
34
+ /** Specifies whether the accordion saves its states. Default is false */
35
+ useStateSaving: boolean;
13
36
  variant: KbqAccordionVariant | string;
37
+ /** Whether the Accordion is disabled. */
38
+ disabled: boolean;
39
+ /** The orientation of the accordion. */
40
+ orientation: KbqAccordionOrientation;
41
+ /**
42
+ * The value of the item to expand when initially rendered and type is "single". Use when you do not need to control the state of the items.
43
+ */
44
+ get defaultValue(): string[] | string;
45
+ set defaultValue(value: string[] | string);
46
+ /** Determines whether one or multiple items can be opened at the same time. */
47
+ type: KbqAccordionType;
48
+ collapsible: boolean;
49
+ /** The controlled value of the item to expand */
50
+ get value(): string[] | string;
51
+ set value(value: string[] | string);
52
+ readonly onValueChange: EventEmitter<void>;
53
+ get id(): string;
54
+ get isMultiple(): boolean;
55
+ get hasSavedState(): boolean;
56
+ private _value?;
57
+ private _defaultValue;
58
+ private onValueChangeSubscription;
59
+ private _id;
60
+ private state;
61
+ constructor();
62
+ ngAfterContentInit(): void;
14
63
  ngAfterViewInit(): void;
15
64
  ngOnDestroy(): void;
65
+ /** @docs-private */
66
+ keydownHandler(event: KeyboardEvent): void;
67
+ /** Opens all enabled accordion items in an accordion where multi is enabled. */
68
+ openAll(): void;
69
+ /** Closes all enabled accordion items. */
70
+ closeAll(): void;
71
+ /** @docs-private */
72
+ setActiveItem(item: KbqAccordionItem): void;
73
+ /** @docs-private */
74
+ saveItemState(item: KbqAccordionItem, force?: boolean): void;
75
+ private getSavedState;
16
76
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqAccordion, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqAccordion, "kbq-accordion, [kbq-accordion]", never, { "variant": { "alias": "variant"; "required": false; }; }, {}, never, ["*"], true, [{ directive: typeof i1.KbqAccordionRootDirective; inputs: { "type": "type"; "collapsible": "collapsible"; "disabled": "disabled"; "defaultValue": "defaultValue"; "value": "value"; }; outputs: { "onValueChange": "onValueChange"; }; }]>;
77
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqAccordion, "kbq-accordion, [kbq-accordion]", never, { "variant": { "alias": "variant"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "type": { "alias": "type"; "required": false; }; "collapsible": { "alias": "collapsible"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "onValueChange": "onValueChange"; }, ["items"], ["*"], true, never>;
78
+ static ngAcceptInputType_disabled: unknown;
18
79
  }
@@ -1,29 +1,5 @@
1
1
  @use './accordion-theme' as *;
2
2
 
3
- @keyframes slideDown {
4
- from {
5
- height: 0;
6
- padding-bottom: 0;
7
- }
8
-
9
- to {
10
- height: var(--radix-accordion-content-height);
11
- padding-bottom: 0;
12
- }
13
- }
14
-
15
- @keyframes slideUp {
16
- from {
17
- height: var(--radix-accordion-content-height);
18
- padding-bottom: 0;
19
- }
20
-
21
- to {
22
- height: 0;
23
- padding-bottom: 0;
24
- }
25
- }
26
-
27
3
  .kbq-accordion {
28
4
  display: block;
29
5
  }
@@ -46,14 +22,20 @@
46
22
  .kbq-accordion-content {
47
23
  display: block;
48
24
  overflow: hidden;
49
- padding: var(--kbq-accordion-size-item-content-padding);
25
+
26
+ & > p {
27
+ margin: unset;
28
+ padding: var(--kbq-accordion-size-item-content-padding);
29
+ }
50
30
 
51
31
  &[data-state='open'] {
52
- animation: slideDown 300ms ease-out;
32
+ transition: 300ms ease-out;
33
+ height: var(--radix-accordion-content-height);
53
34
  }
54
35
 
55
36
  &[data-state='closed'] {
56
- animation: slideUp 300ms ease-out;
37
+ transition: 300ms ease-out;
38
+ height: 0;
57
39
  }
58
40
  }
59
41
 
@@ -3,8 +3,6 @@ export * from './accordion-content.directive';
3
3
  export * from './accordion-header';
4
4
  export * from './accordion-header.directive';
5
5
  export * from './accordion-item';
6
- export * from './accordion-item.directive';
7
- export * from './accordion-root.directive';
8
6
  export * from './accordion-trigger.component';
9
7
  export * from './accordion-trigger.directive';
10
8
  export * from './accordion.component';
@@ -1,10 +1,5 @@
1
1
  @use './checkbox-theme' as *;
2
2
 
3
- .kbq-checkbox-checkmark,
4
- .kbq-checkbox-mixedmark {
5
- display: none;
6
- }
7
-
8
3
  .kbq-checkbox__frame {
9
4
  display: flex;
10
5
  align-items: center;
@@ -66,6 +61,11 @@
66
61
 
67
62
  max-width: 100%;
68
63
 
64
+ .kbq-checkbox-checkmark,
65
+ .kbq-checkbox-mixedmark {
66
+ display: none;
67
+ }
68
+
69
69
  &.kbq-checked {
70
70
  .kbq-checkbox-checkmark {
71
71
  display: block;
@@ -0,0 +1,41 @@
1
+ import { KbqClamped } from './constants';
2
+ import * as i0 from "@angular/core";
3
+ export declare class KbqClampedList<T> implements KbqClamped {
4
+ /** Collapsed state: `true` = collapsed, `false` = expanded, `undefined` = expanded. */
5
+ readonly isCollapsed: import("@angular/core").ModelSignal<boolean>;
6
+ /** The list of items to display. */
7
+ readonly items: import("@angular/core").InputSignal<T[]>;
8
+ /**
9
+ * Maximum number of items visible in collapsed state.
10
+ * @default 10
11
+ */
12
+ readonly collapsedVisibleCount: import("@angular/core").InputSignalWithTransform<number, unknown>;
13
+ /**
14
+ * Minimum number of hidden items required to show the toggle trigger.
15
+ * @default 6
16
+ */
17
+ readonly hiddenThreshold: import("@angular/core").InputSignalWithTransform<number, unknown>;
18
+ /** Number of items hidden when the list is collapsed. */
19
+ readonly exceededItemCount: import("@angular/core").Signal<number>;
20
+ /** Whether the number of hidden items meets the threshold to render the toggle trigger. */
21
+ readonly hasToggle: import("@angular/core").Signal<boolean>;
22
+ /** Slice of items currently rendered — truncated to `minVisibleCount` when collapsed, a full list otherwise. */
23
+ readonly visibleItems: import("@angular/core").Signal<T[]>;
24
+ /** Localized "show more" label with the exceeded item count interpolated into the `{exceededItemCount}` placeholder. */
25
+ readonly showMoreCountText: import("@angular/core").Signal<string>;
26
+ /** Clamped text locale configuration. */
27
+ readonly localeConfiguration: import("@angular/core").Signal<import("@koobiq/components/core").KbqClampedTextLocaleConfig>;
28
+ /** Toggles the collapsed state of the list. Stops event propagation. */
29
+ toggle(event: Event): void;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqClampedList<any>, never>;
31
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqClampedList<any>, "[kbqClampedList]", ["kbqClampedList"], { "isCollapsed": { "alias": "isCollapsed"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "collapsedVisibleCount": { "alias": "collapsedVisibleCount"; "required": false; "isSignal": true; }; "hiddenThreshold": { "alias": "hiddenThreshold"; "required": false; "isSignal": true; }; }, { "isCollapsed": "isCollapsedChange"; }, never, never, true, never>;
32
+ }
33
+ /**
34
+ * Clamped list trigger.
35
+ * Used for calling toggle collapsed state on click events
36
+ */
37
+ export declare class KbqClampedListTrigger {
38
+ protected readonly root: KbqClamped | null;
39
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqClampedListTrigger, never>;
40
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqClampedListTrigger, "[kbqClampedListTrigger]", ["kbqClampedListTrigger"], {}, {}, never, never, true, never>;
41
+ }
@@ -1,7 +1,7 @@
1
1
  import { AfterViewInit, ElementRef } from '@angular/core';
2
- import { KbqClampedTextLocaleConfig } from '@koobiq/components/core';
2
+ import { KbqClamped } from './constants';
3
3
  import * as i0 from "@angular/core";
4
- export declare class KbqClampedText implements AfterViewInit {
4
+ export declare class KbqClampedText implements KbqClamped, AfterViewInit {
5
5
  /**
6
6
  * Max rows before text is clamped.
7
7
  * @default kbqClampedTextDefaultMaxRows
@@ -28,18 +28,17 @@ export declare class KbqClampedText implements AfterViewInit {
28
28
  /** @docs-private */
29
29
  protected readonly isToggleCollapsed: import("@angular/core").WritableSignal<boolean | undefined>;
30
30
  /** @docs-private */
31
- protected readonly hasToggle: import("@angular/core").WritableSignal<boolean>;
32
- /** @docs-private */
33
31
  protected readonly lineClamp: import("@angular/core").WritableSignal<number | null>;
32
+ /** @docs-private */
33
+ readonly hasToggle: import("@angular/core").WritableSignal<boolean>;
34
34
  private readonly destroyRef;
35
35
  private readonly elementRef;
36
36
  private readonly resizeObserver;
37
- private readonly localeService;
38
37
  /**
39
38
  * Clamped text locale configuration.
40
39
  * @docs-private
41
40
  */
42
- protected readonly localeConfiguration: import("@angular/core").Signal<KbqClampedTextLocaleConfig | undefined>;
41
+ readonly localeConfiguration: import("@angular/core").Signal<import("@koobiq/components/core").KbqClampedTextLocaleConfig>;
43
42
  /**
44
43
  * This flag is used to prevent trigger resize observer on toggle click.
45
44
  */
@@ -47,6 +46,11 @@ export declare class KbqClampedText implements AfterViewInit {
47
46
  constructor();
48
47
  ngAfterViewInit(): void;
49
48
  /** @docs-private */
49
+ toggle(event: Event): void;
50
+ /**
51
+ * @docs-private
52
+ * @deprecated Will be removed in next major release
53
+ */
50
54
  toggleIsCollapsed(event: Event): void;
51
55
  private updateToggleVisibilityState;
52
56
  private updateCollapsedState;
@@ -1,4 +1,4 @@
1
- import { InjectionToken, Provider } from '@angular/core';
1
+ import { InjectionToken, Provider, Signal } from '@angular/core';
2
2
  import { KbqClampedTextLocaleConfig } from '@koobiq/components/core';
3
3
  /**
4
4
  * Default maximum number of visible rows for the clamped text component
@@ -12,3 +12,23 @@ export declare const KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION: InjectionToken<KbqCl
12
12
  * @see KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION
13
13
  */
14
14
  export declare const kbqClampedTextLocaleConfigurationProvider: (configuration: KbqClampedTextLocaleConfig) => Provider;
15
+ export declare const KbqClampedRoot: InjectionToken<KbqClamped>;
16
+ export interface KbqClamped {
17
+ /**
18
+ * Collapsed state: `true` = collapsed, `false` = expanded, `undefined` = auto.
19
+ * Behavior for auto may vary according to clamped-list/clamped-text
20
+ */
21
+ isCollapsed: Signal<boolean | undefined>;
22
+ /** Whether the toggle trigger should be shown. */
23
+ hasToggle: Signal<boolean>;
24
+ /** Reactive locale strings for open/close labels. */
25
+ localeConfiguration: Signal<KbqClampedTextLocaleConfig>;
26
+ /** Toggles the collapsed state of the list. Stops event propagation. */
27
+ toggle(event: Event): void;
28
+ }
29
+ /**
30
+ * Injection function that creates a reactive locale configuration signal.
31
+ * @see {KbqClampedText, KbqClampedList}
32
+ * @docs-private
33
+ */
34
+ export declare function kbqInjectKbqClampedLocaleConfiguration(): Signal<KbqClampedTextLocaleConfig>;
@@ -1,3 +1,4 @@
1
+ export * from './clamped-list';
1
2
  export * from './clamped-text';
2
3
  export * from './constants';
3
4
  export * from './module';
@@ -1,7 +1,8 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./clamped-text";
3
+ import * as i2 from "./clamped-list";
3
4
  export declare class KbqClampedTextModule {
4
5
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqClampedTextModule, never>;
5
- static ɵmod: i0.ɵɵNgModuleDeclaration<KbqClampedTextModule, never, [typeof i1.KbqClampedText], [typeof i1.KbqClampedText]>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<KbqClampedTextModule, never, [typeof i1.KbqClampedText, typeof i2.KbqClampedList, typeof i2.KbqClampedListTrigger], [typeof i1.KbqClampedText, typeof i2.KbqClampedList, typeof i2.KbqClampedListTrigger]>;
6
7
  static ɵinj: i0.ɵɵInjectorDeclaration<KbqClampedTextModule>;
7
8
  }
@@ -1,8 +1,8 @@
1
1
  import { CdkScrollable } from '@angular/cdk/scrolling';
2
- import { AfterViewInit, EventEmitter, InjectionToken, Provider } from '@angular/core';
2
+ import { AfterViewInit, EventEmitter, InjectionToken, Provider, TemplateRef } from '@angular/core';
3
3
  import { KbqButtonStyles } from '@koobiq/components/button';
4
4
  import { KbqCodeBlockLocaleConfiguration, KbqComponentColors } from '@koobiq/components/core';
5
- import { KbqCodeBlockFile } from './types';
5
+ import { KbqCodeBlockFile, KbqTabLinkTemplateContext } from './types';
6
6
  import * as i0 from "@angular/core";
7
7
  /** Localization configuration provider. */
8
8
  export declare const KBQ_CODE_BLOCK_LOCALE_CONFIGURATION: InjectionToken<KbqCodeBlockLocaleConfiguration>;
@@ -12,6 +12,11 @@ export declare const kbqCodeBlockLocaleConfigurationProvider: (configuration: Kb
12
12
  export declare const KBQ_CODE_BLOCK_FALLBACK_FILE_NAME: InjectionToken<string>;
13
13
  /** Utility provider for `KBQ_CODE_BLOCK_FALLBACK_FILE_NAME`. */
14
14
  export declare const kbqCodeBlockFallbackFileNameProvider: (fileName: string) => Provider;
15
+ /** Marks a template as a custom tab link. */
16
+ export declare class KbqCodeBlockTabLinkContent {
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqCodeBlockTabLinkContent, never>;
18
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqCodeBlockTabLinkContent, "ng-template[kbqCodeBlockTabLinkContent]", ["kbqCodeBlockTabLinkContent"], {}, {}, never, never, true, never>;
19
+ }
15
20
  /**
16
21
  * Component which highlights blocks of code.
17
22
  */
@@ -21,6 +26,8 @@ export declare class KbqCodeBlock implements AfterViewInit {
21
26
  * Reference to the scrollable code content.
22
27
  */
23
28
  readonly scrollableCodeContent: CdkScrollable;
29
+ /** @docs-private */
30
+ protected readonly tabLinkTemplate: TemplateRef<KbqTabLinkTemplateContext>;
24
31
  /** Whether to display line numbers. */
25
32
  lineNumbers: boolean;
26
33
  /** Whether the code block should be filled. */
@@ -218,7 +225,7 @@ export declare class KbqCodeBlock implements AfterViewInit {
218
225
  */
219
226
  protected downloadCode(): void;
220
227
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqCodeBlock, never>;
221
- 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"; }, never, never, true, 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>;
222
229
  static ngAcceptInputType_lineNumbers: unknown;
223
230
  static ngAcceptInputType_filled: unknown;
224
231
  static ngAcceptInputType_canToggleSoftWrap: unknown;
@@ -2,6 +2,6 @@ import * as i0 from "@angular/core";
2
2
  import * as i1 from "./code-block";
3
3
  export declare class KbqCodeBlockModule {
4
4
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqCodeBlockModule, never>;
5
- static ɵmod: i0.ɵɵNgModuleDeclaration<KbqCodeBlockModule, never, [typeof i1.KbqCodeBlock], [typeof i1.KbqCodeBlock]>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<KbqCodeBlockModule, never, [typeof i1.KbqCodeBlock, typeof i1.KbqCodeBlockTabLinkContent], [typeof i1.KbqCodeBlock, typeof i1.KbqCodeBlockTabLinkContent]>;
6
6
  static ɵinj: i0.ɵɵInjectorDeclaration<KbqCodeBlockModule>;
7
7
  }
@@ -114,6 +114,7 @@
114
114
  &.kbq-code-block_soft-wrap {
115
115
  .kbq-code-block__code {
116
116
  white-space: pre-wrap;
117
+ overflow-wrap: anywhere;
117
118
  }
118
119
  }
119
120
 
@@ -1,3 +1,12 @@
1
+ /**
2
+ * Context provided to the tab link template.
3
+ * @property $implicit - Code block file for the current tab.
4
+ * @property fallbackFileName - Displayed when the file has no explicit name.
5
+ */
6
+ export type KbqTabLinkTemplateContext = {
7
+ $implicit: KbqCodeBlockFile;
8
+ fallbackFileName: string;
9
+ };
1
10
  /** Code block file object. */
2
11
  export type KbqCodeBlockFile = {
3
12
  /**
@@ -0,0 +1,4 @@
1
+ /** Controls the direction of flex items: horizontal (`'row'`) or vertical (`'column'`). */
2
+ export type KbqFlexDirection = 'row' | 'column';
3
+ /** Controls flex item wrapping: single-line (`'nowrap'`) or multi-line (`'wrap'`). */
4
+ export type KbqFlexWrap = 'nowrap' | 'wrap';
@@ -5,6 +5,7 @@ export { CanColor, CanColorCtor, KbqColorDirective, KbqComponentColors, mixinCol
5
5
  export { KBQ_SANITY_CHECKS, KbqCommonModule } from './common-module';
6
6
  export { CanDisable, CanDisableCtor, mixinDisabled } from './disabled';
7
7
  export { CanUpdateErrorState, CanUpdateErrorStateCtor, KbqErrorStateTracker, mixinErrorState } from './error-state';
8
+ export * from './flex';
8
9
  export * from './hover';
9
10
  export * from './orientation';
10
11
  export * from './read-state';
@@ -1,10 +1,12 @@
1
- import { InjectionToken } from '@angular/core';
1
+ import { InjectionToken, ModelSignal } from '@angular/core';
2
2
  /**
3
3
  * @deprecated Will be removed in next major release, use `KbqFormField` instead.
4
4
  */
5
5
  export interface KbqFormFieldRef {
6
6
  control: any;
7
7
  canCleanerClearByEsc: boolean;
8
+ /** Use when KbqFormField is in an overlay container. */
9
+ inOverlay: ModelSignal<boolean>;
8
10
  /**
9
11
  * @TODO should be removed, is private method (#DS-2915)
10
12
  * @deprecated use `formField.control?.errorState` instead
@@ -95,6 +95,8 @@ export declare const enUSLocaleData: {
95
95
  clampedText: {
96
96
  openText: string;
97
97
  closeText: string;
98
+ showMoreText: string;
99
+ moreText: string;
98
100
  };
99
101
  navbarIc: {
100
102
  toggle: {
@@ -94,6 +94,8 @@ export declare const esLALocaleData: {
94
94
  clampedText: {
95
95
  openText: string;
96
96
  closeText: string;
97
+ showMoreText: string;
98
+ moreText: string;
97
99
  };
98
100
  navbarIc: {
99
101
  toggle: {