@koobiq/components 18.21.0 → 18.22.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 (224) hide show
  1. package/badge/badge.component.d.ts +0 -1
  2. package/breadcrumbs/breadcrumbs.d.ts +19 -22
  3. package/breadcrumbs/breadcrumbs.scss +13 -4
  4. package/breadcrumbs/breadcrumbs.types.d.ts +22 -0
  5. package/breadcrumbs/public-api.d.ts +1 -0
  6. package/button/button.component.d.ts +11 -16
  7. package/checkbox/checkbox.d.ts +13 -18
  8. package/core/common-behaviors/color.d.ts +11 -0
  9. package/core/common-behaviors/index.d.ts +1 -1
  10. package/core/option/action.d.ts +5 -7
  11. package/core/option/optgroup.d.ts +6 -7
  12. package/core/pop-up/pop-up-trigger.d.ts +2 -2
  13. package/core/pop-up/pop-up.d.ts +8 -2
  14. package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +3 -12
  15. package/core/utils/utils.d.ts +3 -0
  16. package/dropdown/dropdown-item.component.d.ts +6 -8
  17. package/empty-state/_empty-state-theme.scss +15 -5
  18. package/empty-state/empty-state-tokens.scss +12 -2
  19. package/empty-state/empty-state.component.d.ts +7 -2
  20. package/empty-state/empty-state.scss +29 -0
  21. package/esm2022/accordion/accordion-trigger.component.mjs +1 -1
  22. package/esm2022/actions-panel/actions-panel-container.mjs +2 -2
  23. package/esm2022/badge/badge.component.mjs +2 -5
  24. package/esm2022/breadcrumbs/breadcrumbs.mjs +55 -22
  25. package/esm2022/breadcrumbs/breadcrumbs.types.mjs +2 -0
  26. package/esm2022/breadcrumbs/public-api.mjs +2 -1
  27. package/esm2022/button/button.component.mjs +23 -27
  28. package/esm2022/button-toggle/button-toggle.component.mjs +4 -3
  29. package/esm2022/checkbox/checkbox.mjs +23 -24
  30. package/esm2022/code-block/code-block.mjs +2 -2
  31. package/esm2022/core/common-behaviors/color.mjs +35 -1
  32. package/esm2022/core/common-behaviors/disabled.mjs +2 -1
  33. package/esm2022/core/common-behaviors/error-state.mjs +2 -1
  34. package/esm2022/core/common-behaviors/index.mjs +2 -2
  35. package/esm2022/core/common-behaviors/tabindex.mjs +2 -1
  36. package/esm2022/core/option/action.mjs +17 -12
  37. package/esm2022/core/option/optgroup.mjs +18 -12
  38. package/esm2022/core/option/option.mjs +1 -1
  39. package/esm2022/core/pop-up/pop-up-trigger.mjs +7 -7
  40. package/esm2022/core/pop-up/pop-up.mjs +21 -5
  41. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +10 -19
  42. package/esm2022/core/utils/utils.mjs +7 -1
  43. package/esm2022/core/version.mjs +2 -2
  44. package/esm2022/datepicker/calendar-header.component.mjs +1 -1
  45. package/esm2022/datepicker/datepicker-toggle.component.mjs +1 -1
  46. package/esm2022/dropdown/dropdown-item.component.mjs +19 -14
  47. package/esm2022/empty-state/empty-state.component.mjs +13 -8
  48. package/esm2022/file-upload/multiple-file-upload.component.mjs +2 -2
  49. package/esm2022/file-upload/single-file-upload.component.mjs +2 -2
  50. package/esm2022/filter-bar/filter-refresher.mjs +2 -2
  51. package/esm2022/filter-bar/filter-reset.mjs +1 -1
  52. package/esm2022/filter-bar/filter-search.mjs +2 -2
  53. package/esm2022/filter-bar/filters.mjs +2 -2
  54. package/esm2022/filter-bar/pipe-add.mjs +2 -2
  55. package/esm2022/filter-bar/pipes/pipe-button.mjs +2 -2
  56. package/esm2022/filter-bar/pipes/pipe-date.mjs +2 -2
  57. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +2 -2
  58. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +2 -2
  59. package/esm2022/filter-bar/pipes/pipe-select.mjs +2 -2
  60. package/esm2022/filter-bar/pipes/pipe-text.mjs +2 -2
  61. package/esm2022/form-field/cleaner.mjs +1 -1
  62. package/esm2022/form-field/form-field.mjs +13 -22
  63. package/esm2022/form-field/hint.mjs +10 -18
  64. package/esm2022/form-field/password-hint.mjs +7 -7
  65. package/esm2022/form-field/password-toggle.mjs +1 -1
  66. package/esm2022/form-field/stepper.mjs +1 -1
  67. package/esm2022/icon/icon-button.component.mjs +13 -21
  68. package/esm2022/icon/icon-item.component.mjs +8 -15
  69. package/esm2022/icon/icon.component.mjs +15 -27
  70. package/esm2022/input/input-password.mjs +20 -5
  71. package/esm2022/input/input.mjs +21 -22
  72. package/esm2022/link/link.component.mjs +46 -14
  73. package/esm2022/list/list-selection.component.mjs +19 -15
  74. package/esm2022/loader-overlay/loader-overlay.component.mjs +14 -9
  75. package/esm2022/modal/modal.component.mjs +1 -1
  76. package/esm2022/modal/modal.directive.mjs +1 -1
  77. package/esm2022/navbar/navbar-item.component.mjs +2 -2
  78. package/esm2022/popover/popover-confirm.component.mjs +2 -2
  79. package/esm2022/popover/popover.component.mjs +5 -4
  80. package/esm2022/progress-bar/progress-bar.component.mjs +14 -21
  81. package/esm2022/progress-spinner/progress-spinner.component.mjs +17 -24
  82. package/esm2022/radio/radio.component.mjs +25 -35
  83. package/esm2022/select/select.component.mjs +56 -37
  84. package/esm2022/sidepanel/sidepanel-directives.mjs +2 -2
  85. package/esm2022/tabs/paginated-tab-header.mjs +7 -4
  86. package/esm2022/tabs/tab-group.component.mjs +23 -19
  87. package/esm2022/tabs/tab-header.component.mjs +3 -3
  88. package/esm2022/tabs/tab-label-wrapper.directive.mjs +16 -13
  89. package/esm2022/tabs/tab-nav-bar.mjs +2 -2
  90. package/esm2022/tabs/tab.component.mjs +17 -12
  91. package/esm2022/tags/tag-list.component.mjs +27 -22
  92. package/esm2022/tags/tag.component.mjs +7 -14
  93. package/esm2022/textarea/textarea.component.mjs +21 -22
  94. package/esm2022/timezone/timezone-select.component.mjs +3 -3
  95. package/esm2022/toast/toast.component.mjs +2 -2
  96. package/esm2022/toggle/toggle.component.mjs +20 -19
  97. package/esm2022/tree/toggle.mjs +19 -14
  98. package/esm2022/tree/tree-option.component.mjs +1 -1
  99. package/esm2022/tree/tree-selection.component.mjs +1 -1
  100. package/esm2022/tree-select/tree-select.component.mjs +58 -38
  101. package/fesm2022/koobiq-components-accordion.mjs +1 -1
  102. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  103. package/fesm2022/koobiq-components-actions-panel.mjs +1 -1
  104. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  105. package/fesm2022/koobiq-components-badge.mjs +2 -5
  106. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  107. package/fesm2022/koobiq-components-breadcrumbs.mjs +54 -21
  108. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  109. package/fesm2022/koobiq-components-button-toggle.mjs +3 -3
  110. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  111. package/fesm2022/koobiq-components-button.mjs +23 -27
  112. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  113. package/fesm2022/koobiq-components-checkbox.mjs +23 -24
  114. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  115. package/fesm2022/koobiq-components-code-block.mjs +1 -1
  116. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  117. package/fesm2022/koobiq-components-core.mjs +107 -46
  118. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  119. package/fesm2022/koobiq-components-datepicker.mjs +2 -2
  120. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  121. package/fesm2022/koobiq-components-dropdown.mjs +18 -13
  122. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  123. package/fesm2022/koobiq-components-empty-state.mjs +12 -7
  124. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  125. package/fesm2022/koobiq-components-file-upload.mjs +2 -2
  126. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  127. package/fesm2022/koobiq-components-filter-bar.mjs +11 -11
  128. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  129. package/fesm2022/koobiq-components-form-field.mjs +26 -43
  130. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  131. package/fesm2022/koobiq-components-icon.mjs +33 -57
  132. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  133. package/fesm2022/koobiq-components-input.mjs +40 -25
  134. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  135. package/fesm2022/koobiq-components-link.mjs +46 -14
  136. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  137. package/fesm2022/koobiq-components-list.mjs +19 -15
  138. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  139. package/fesm2022/koobiq-components-loader-overlay.mjs +13 -8
  140. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  141. package/fesm2022/koobiq-components-modal.mjs +2 -2
  142. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  143. package/fesm2022/koobiq-components-navbar.mjs +2 -2
  144. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  145. package/fesm2022/koobiq-components-popover.mjs +5 -4
  146. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  147. package/fesm2022/koobiq-components-progress-bar.mjs +13 -20
  148. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  149. package/fesm2022/koobiq-components-progress-spinner.mjs +16 -23
  150. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  151. package/fesm2022/koobiq-components-radio.mjs +25 -35
  152. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  153. package/fesm2022/koobiq-components-select.mjs +56 -37
  154. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  155. package/fesm2022/koobiq-components-sidepanel.mjs +1 -1
  156. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  157. package/fesm2022/koobiq-components-tabs.mjs +60 -44
  158. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  159. package/fesm2022/koobiq-components-tags.mjs +32 -34
  160. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  161. package/fesm2022/koobiq-components-textarea.mjs +21 -22
  162. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  163. package/fesm2022/koobiq-components-timezone.mjs +2 -2
  164. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  165. package/fesm2022/koobiq-components-toast.mjs +1 -1
  166. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  167. package/fesm2022/koobiq-components-toggle.mjs +20 -19
  168. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  169. package/fesm2022/koobiq-components-tree-select.mjs +57 -37
  170. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  171. package/fesm2022/koobiq-components-tree.mjs +21 -15
  172. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  173. package/file-upload/multiple-file-upload.component.d.ts +2 -2
  174. package/file-upload/single-file-upload.component.d.ts +2 -2
  175. package/form-field/form-field.d.ts +4 -12
  176. package/form-field/hint.d.ts +3 -12
  177. package/form-field/password-hint.d.ts +3 -3
  178. package/icon/icon-button.component.d.ts +5 -8
  179. package/icon/icon-item.component.d.ts +3 -7
  180. package/icon/icon.component.d.ts +7 -14
  181. package/input/input-password.d.ts +8 -2
  182. package/input/input.d.ts +9 -18
  183. package/link/_link-theme.scss +17 -8
  184. package/link/link.component.d.ts +13 -9
  185. package/list/list-selection.component.d.ts +8 -10
  186. package/loader-overlay/_loader-overlay-theme.scss +18 -8
  187. package/loader-overlay/loader-overlay-tokens.scss +6 -3
  188. package/loader-overlay/loader-overlay.component.d.ts +7 -2
  189. package/loader-overlay/loader-overlay.scss +19 -5
  190. package/package.json +4 -4
  191. package/prebuilt-themes/dark-theme.css +1 -1
  192. package/prebuilt-themes/light-theme.css +1 -1
  193. package/prebuilt-themes/theme.css +1 -1
  194. package/progress-bar/progress-bar.component.d.ts +4 -12
  195. package/progress-spinner/progress-spinner.component.d.ts +4 -12
  196. package/radio/radio.component.d.ts +11 -25
  197. package/schematics/collection.json +10 -0
  198. package/schematics/migrations/css-selectors/README.md +19 -0
  199. package/schematics/migrations/deprecated-icons/README.md +21 -0
  200. package/schematics/migrations/empty-state-size-attr/README.md +62 -0
  201. package/schematics/migrations/empty-state-size-attr/index.js +74 -0
  202. package/schematics/migrations/empty-state-size-attr/schema.json +15 -0
  203. package/schematics/migrations/loader-overlay-size-attr/README.md +62 -0
  204. package/schematics/migrations/loader-overlay-size-attr/index.js +74 -0
  205. package/schematics/migrations/loader-overlay-size-attr/schema.json +15 -0
  206. package/schematics/migrations/new-icons-pack/README.md +21 -0
  207. package/schematics/ng-add/index.js +2 -2
  208. package/schematics/utils/angular-parsing.js +153 -0
  209. package/schematics/utils/ast.js +28 -0
  210. package/schematics/utils/package-config.js +46 -0
  211. package/schematics/utils/typescript.js +171 -0
  212. package/select/select.component.d.ts +26 -25
  213. package/tabs/paginated-tab-header.d.ts +2 -1
  214. package/tabs/tab-group.component.d.ts +11 -13
  215. package/tabs/tab-header.component.d.ts +1 -1
  216. package/tabs/tab-label-wrapper.directive.d.ts +6 -8
  217. package/tabs/tab.component.d.ts +7 -8
  218. package/tags/tag-list.component.d.ts +15 -18
  219. package/tags/tag.component.d.ts +3 -10
  220. package/textarea/textarea.component.d.ts +8 -17
  221. package/toggle/toggle.component.d.ts +8 -12
  222. package/tree/toggle.d.ts +7 -9
  223. package/tree/tree-selection.component.d.ts +2 -2
  224. package/tree-select/tree-select.component.d.ts +24 -26
@@ -17,7 +17,6 @@ export declare class KbqBadgeCaption {
17
17
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqBadgeCaption, never>;
18
18
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqBadgeCaption, "[kbq-badge-caption]", never, {}, {}, never, never, false, never>;
19
19
  }
20
- export declare const getNodesWithoutComments: (nodes: NodeList) => Node[];
21
20
  export declare const leftIconClassName = "kbq-icon_left";
22
21
  export declare const rightIconClassName = "kbq-icon_right";
23
22
  export declare const badgeLeftIconClassName = "kbq-badge-icon_left";
@@ -2,21 +2,9 @@ import { AfterContentInit, InjectionToken, OnInit, Provider, QueryList, Template
2
2
  import { RouterLink } from '@angular/router';
3
3
  import { KbqButtonStyles } from '@koobiq/components/button';
4
4
  import { KbqComponentColors, KbqDefaultSizes, PopUpPlacements } from '@koobiq/components/core';
5
+ import { KbqBreadcrumbsConfiguration, KbqBreadcrumbsWrapMode } from './breadcrumbs.types';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@radix-ng/primitives/roving-focus";
7
- export type KbqBreadcrumbsConfiguration = {
8
- /**
9
- * Specifies the maximum number of breadcrumb items to display.
10
- * - If a number is provided, only that many items will be shown.
11
- * - If `null`, no limit is applied, and all breadcrumb items are displayed.
12
- */
13
- max: number | null;
14
- size: KbqDefaultSizes;
15
- /**
16
- * Determines if a negative margin should be applied to the first breadcrumb item.
17
- */
18
- firstItemNegativeMargin: boolean;
19
- };
20
8
  /** Breadcrumbs options global configuration provider. */
21
9
  export declare const KBQ_BREADCRUMBS_CONFIGURATION: InjectionToken<KbqBreadcrumbsConfiguration>;
22
10
  /** Utility provider for `KBQ_BREADCRUMBS_CONFIGURATION`. */
@@ -103,26 +91,35 @@ export declare class KbqBreadcrumbs implements AfterContentInit {
103
91
  * When disabled, user interactions are blocked.
104
92
  */
105
93
  disabled: boolean;
94
+ /**
95
+ * Wrapping behavior of the breadcrumb items.
96
+ */
97
+ wrapMode: KbqBreadcrumbsWrapMode;
106
98
  protected readonly separator?: TemplateRef<any>;
107
99
  protected readonly items: QueryList<KbqBreadcrumbItem>;
100
+ private readonly result;
101
+ private readonly overflowItems;
108
102
  /**
109
103
  * Ensures at least minimum number of breadcrumb items are shown.
110
- *
111
- * This prevents the appearance of unnecessary expand button that would hide only a single breadcrumb.
112
104
  */
113
- readonly minVisibleItems = 2;
114
- private readonly destroyRef;
115
- private readonly cdr;
105
+ protected readonly minVisibleItems = 2;
116
106
  protected readonly KbqComponentColors: typeof KbqComponentColors;
117
107
  protected readonly KbqButtonStyles: typeof KbqButtonStyles;
118
108
  protected readonly PopUpPlacements: typeof PopUpPlacements;
109
+ private readonly cdr;
110
+ private readonly destroyRef;
119
111
  /** @docs-private */
120
- protected get hiddenBreadcrumbItems(): KbqBreadcrumbItem[];
121
- /** @docs-private */
122
- protected get visibleBreadcrumbItems(): KbqBreadcrumbItem[];
112
+ protected get itemsExcludingEdges(): KbqBreadcrumbItem[];
113
+ /**
114
+ * Calculates the total width of visible items based on the `max` value and overflow items.
115
+ * @returns {number | null} The computed max width for overflow items or null if conditions are not met.
116
+ * @docs-private
117
+ */
118
+ protected get maxWidth(): number | null;
123
119
  ngAfterContentInit(): void;
120
+ private getItemWidth;
124
121
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqBreadcrumbs, never>;
125
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqBreadcrumbs, "kbq-breadcrumbs,[kbq-breadcrumbs]", never, { "firstItemNegativeMargin": { "alias": "firstItemNegativeMargin"; "required": false; }; "size": { "alias": "size"; "required": false; }; "max": { "alias": "max"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, ["separator", "items"], never, true, [{ directive: typeof i1.RdxRovingFocusGroupDirective; inputs: {}; outputs: {}; }]>;
122
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqBreadcrumbs, "kbq-breadcrumbs,[kbq-breadcrumbs]", never, { "firstItemNegativeMargin": { "alias": "firstItemNegativeMargin"; "required": false; }; "size": { "alias": "size"; "required": false; }; "max": { "alias": "max"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "wrapMode": { "alias": "wrapMode"; "required": false; }; }, {}, ["separator", "items"], never, true, [{ directive: typeof i1.RdxRovingFocusGroupDirective; inputs: {}; outputs: {}; }]>;
126
123
  static ngAcceptInputType_firstItemNegativeMargin: unknown;
127
124
  static ngAcceptInputType_disabled: unknown;
128
125
  }
@@ -5,6 +5,13 @@
5
5
  display: flex;
6
6
  align-items: center;
7
7
  gap: var(--kbq-breadcrumbs-gap);
8
+ flex-grow: 1;
9
+ flex-wrap: wrap;
10
+
11
+ .kbq-overflow-items {
12
+ // add space not to cut focus outline
13
+ padding: 1px;
14
+ }
8
15
 
9
16
  .kbq-breadcrumb-item__container {
10
17
  display: inline-flex;
@@ -12,13 +19,15 @@
12
19
  }
13
20
 
14
21
  &.kbq-breadcrumbs_first-item-negative-margin {
15
- .kbq-breadcrumb-item__container {
16
- &:first-of-type {
17
- margin-left: var(--kbq-breadcrumb-item-negative-margin);
18
- }
22
+ .kbq-overflow-items {
23
+ margin-left: var(--kbq-breadcrumb-item-negative-margin);
19
24
  }
20
25
  }
21
26
 
27
+ &.kbq-breadcrumbs_wrap {
28
+ flex-wrap: wrap;
29
+ }
30
+
22
31
  &.kbq-breadcrumbs_compact {
23
32
  .kbq-breadcrumb-item {
24
33
  &.kbq-button,
@@ -0,0 +1,22 @@
1
+ import { KbqDefaultSizes } from '@koobiq/components/core';
2
+ export type KbqBreadcrumbsWrapMode = 'auto' | 'wrap' | 'none';
3
+ export type KbqBreadcrumbsConfiguration = {
4
+ /**
5
+ * Specifies the maximum number of breadcrumb items to display.
6
+ * - If a number is provided, only that many items will be shown.
7
+ * - If `null`, no limit is applied, and all breadcrumb items are displayed.
8
+ */
9
+ max: number | null;
10
+ size: KbqDefaultSizes;
11
+ /**
12
+ * Determines if a negative margin should be applied to the first breadcrumb item.
13
+ */
14
+ firstItemNegativeMargin: boolean;
15
+ /**
16
+ * Manages breadcrumb items when space is limited:
17
+ * - `auto`: Adjusts based on space and item count.
18
+ * - `wrap`: Moves items to the next line if needed.
19
+ * - `none`: Prevents wrapping, allowing overflow.
20
+ */
21
+ wrapMode: KbqBreadcrumbsWrapMode;
22
+ };
@@ -1,2 +1,3 @@
1
1
  export * from './breadcrumbs';
2
2
  export * from './breadcrumbs.module';
3
+ export * from './breadcrumbs.types';
@@ -1,6 +1,6 @@
1
1
  import { FocusMonitor } from '@angular/cdk/a11y';
2
2
  import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, OnDestroy, QueryList, Renderer2 } from '@angular/core';
3
- import { CanColor, CanColorCtor, CanDisable, HasTabIndexCtor, KbqTitleTextRef } from '@koobiq/components/core';
3
+ import { KbqColorDirective, KbqTitleTextRef } from '@koobiq/components/core';
4
4
  import { KbqIcon } from '@koobiq/components/icon';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare enum KbqButtonStyles {
@@ -8,11 +8,8 @@ export declare enum KbqButtonStyles {
8
8
  Outline = "outline",
9
9
  Transparent = "transparent"
10
10
  }
11
- export declare const leftIconClassName = "kbq-icon_left";
12
- export declare const rightIconClassName = "kbq-icon_right";
13
11
  export declare const buttonLeftIconClassName = "kbq-button-icon_left";
14
12
  export declare const buttonRightIconClassName = "kbq-button-icon_right";
15
- export declare const getNodesWithoutComments: (nodes: NodeList) => Node[];
16
13
  export declare class KbqButtonCssStyler implements AfterContentInit {
17
14
  private renderer;
18
15
  private cdr;
@@ -25,14 +22,7 @@ export declare class KbqButtonCssStyler implements AfterContentInit {
25
22
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqButtonCssStyler, [null, null, { skipSelf: true; }]>;
26
23
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqButtonCssStyler, "[kbq-button]", never, {}, {}, ["icons"], never, false, never>;
27
24
  }
28
- /** @docs-private */
29
- export declare class KbqButtonBase {
30
- elementRef: ElementRef;
31
- constructor(elementRef: ElementRef);
32
- }
33
- /** @docs-private */
34
- export declare const KbqButtonMixinBase: HasTabIndexCtor & CanColorCtor & typeof KbqButtonBase;
35
- export declare class KbqButton extends KbqButtonMixinBase implements OnDestroy, AfterViewInit, CanDisable, CanColor, KbqTitleTextRef {
25
+ export declare class KbqButton extends KbqColorDirective implements OnDestroy, AfterViewInit, KbqTitleTextRef {
36
26
  private focusMonitor;
37
27
  private styler;
38
28
  hasFocus: boolean;
@@ -40,10 +30,13 @@ export declare class KbqButton extends KbqButtonMixinBase implements OnDestroy,
40
30
  get kbqStyle(): string;
41
31
  set kbqStyle(value: string | KbqButtonStyles);
42
32
  private _kbqStyle;
43
- get disabled(): any;
44
- set disabled(value: any);
33
+ get disabled(): boolean;
34
+ set disabled(value: boolean);
45
35
  private _disabled;
46
- constructor(elementRef: ElementRef, focusMonitor: FocusMonitor, styler: KbqButtonCssStyler);
36
+ get tabIndex(): number;
37
+ set tabIndex(value: number);
38
+ private _tabIndex;
39
+ constructor(focusMonitor: FocusMonitor, styler: KbqButtonCssStyler);
47
40
  ngAfterViewInit(): void;
48
41
  ngOnDestroy(): void;
49
42
  onFocus($event: any): void;
@@ -56,5 +49,7 @@ export declare class KbqButton extends KbqButtonMixinBase implements OnDestroy,
56
49
  private runFocusMonitor;
57
50
  private stopFocusMonitor;
58
51
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqButton, never>;
59
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqButton, "[kbq-button]", never, { "color": { "alias": "color"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "kbqStyle": { "alias": "kbqStyle"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, ["*"], false, never>;
52
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqButton, "[kbq-button]", never, { "kbqStyle": { "alias": "kbqStyle"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, {}, never, ["*"], false, never>;
53
+ static ngAcceptInputType_disabled: unknown;
54
+ static ngAcceptInputType_tabIndex: unknown;
60
55
  }
@@ -1,7 +1,7 @@
1
1
  import { FocusMonitor } from '@angular/cdk/a11y';
2
2
  import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy } from '@angular/core';
3
3
  import { ControlValueAccessor } from '@angular/forms';
4
- import { CanColor, CanColorCtor, CanDisable, CanDisableCtor, HasTabIndex, HasTabIndexCtor } from '@koobiq/components/core';
4
+ import { KbqColorDirective } from '@koobiq/components/core';
5
5
  import { KbqCheckboxClickAction } from './checkbox-config';
6
6
  import * as i0 from "@angular/core";
7
7
  /**
@@ -31,13 +31,6 @@ export declare class KbqCheckboxChange {
31
31
  /** The new `checked` value of the checkbox. */
32
32
  checked: boolean;
33
33
  }
34
- /** @docs-private */
35
- export declare class KbqCheckboxBase {
36
- elementRef: ElementRef;
37
- constructor(elementRef: ElementRef);
38
- }
39
- /** @docs-private */
40
- export declare const KbqCheckboxMixinBase: HasTabIndexCtor & CanColorCtor & CanDisableCtor & typeof KbqCheckboxBase;
41
34
  /**
42
35
  * A Koobiq checkbox component. Supports all of the functionality of an HTML5 checkbox,
43
36
  * and exposes a similar API. A KbqCheckbox can be either checked, unchecked, indeterminate, or
@@ -45,7 +38,7 @@ export declare const KbqCheckboxMixinBase: HasTabIndexCtor & CanColorCtor & CanD
45
38
  * so there is no need to provide them yourself. However, if you want to omit a label and still
46
39
  * have the checkbox be accessible, you may supply an [aria-label] input.
47
40
  */
48
- export declare class KbqCheckbox extends KbqCheckboxMixinBase implements ControlValueAccessor, AfterViewInit, OnDestroy, CanColor, CanDisable, HasTabIndex {
41
+ export declare class KbqCheckbox extends KbqColorDirective implements ControlValueAccessor, AfterViewInit, OnDestroy {
49
42
  private changeDetectorRef;
50
43
  private focusMonitor;
51
44
  private clickAction;
@@ -74,13 +67,13 @@ export declare class KbqCheckbox extends KbqCheckboxMixinBase implements Control
74
67
  get checked(): boolean;
75
68
  set checked(value: boolean);
76
69
  private _checked;
77
- /**
78
- * Whether the checkbox is disabled. This fully overrides the implementation provided by
79
- * mixinDisabled, but the mixin is still required because mixinTabIndex requires it.
80
- */
81
- get disabled(): any;
82
- set disabled(value: any);
70
+ /** Whether the checkbox is disabled. */
71
+ get disabled(): boolean;
72
+ set disabled(value: boolean);
83
73
  private _disabled;
74
+ get tabIndex(): number;
75
+ set tabIndex(value: number);
76
+ private _tabIndex;
84
77
  /**
85
78
  * Whether the checkbox is indeterminate. This is also known as "mixed" mode and can be used to
86
79
  * represent a checkbox with three states, e.g. a checkbox that represents a nested list of
@@ -93,7 +86,7 @@ export declare class KbqCheckbox extends KbqCheckboxMixinBase implements Control
93
86
  private uniqueId;
94
87
  private currentAnimationClass;
95
88
  private currentCheckState;
96
- constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, focusMonitor: FocusMonitor, clickAction: KbqCheckboxClickAction);
89
+ constructor(changeDetectorRef: ChangeDetectorRef, focusMonitor: FocusMonitor, clickAction: KbqCheckboxClickAction);
97
90
  /**
98
91
  * Called when the checkbox is blurred. Needed to properly implement ControlValueAccessor.
99
92
  * @docs-private
@@ -126,7 +119,9 @@ export declare class KbqCheckbox extends KbqCheckboxMixinBase implements Control
126
119
  private emitChangeEvent;
127
120
  /** Function is called whenever the focus changes for the input element. */
128
121
  private onInputFocusChange;
129
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqCheckbox, [null, null, null, { optional: true; }]>;
130
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqCheckbox, "kbq-checkbox", ["kbqCheckbox"], { "color": { "alias": "color"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "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; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; }, { "change": "change"; "indeterminateChange": "indeterminateChange"; }, never, ["*", "kbq-hint"], false, never>;
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"], false, never>;
131
124
  static ngAcceptInputType_required: unknown;
125
+ static ngAcceptInputType_disabled: unknown;
126
+ static ngAcceptInputType_tabIndex: unknown;
132
127
  }
@@ -1,5 +1,6 @@
1
1
  import { ElementRef } from '@angular/core';
2
2
  import { AbstractConstructor, Constructor } from './constructor';
3
+ import * as i0 from "@angular/core";
3
4
  export interface CanColor {
4
5
  color: KbqComponentColors | ThemePalette | string;
5
6
  }
@@ -31,3 +32,13 @@ export declare enum KbqComponentColors {
31
32
  }
32
33
  /** Mixin to augment a directive with a `color` property. */
33
34
  export declare function mixinColor<T extends AbstractConstructor<HasElementRef>>(base: T, defaultColor?: KbqComponentColors | ThemePalette): CanColorCtor & T;
35
+ export declare class KbqColorDirective {
36
+ readonly elementRef: ElementRef<any>;
37
+ get colorClassName(): KbqComponentColors | ThemePalette | string;
38
+ get color(): KbqComponentColors | ThemePalette | string;
39
+ set color(color: KbqComponentColors | ThemePalette | string);
40
+ protected _color: KbqComponentColors | ThemePalette | string;
41
+ constructor();
42
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqColorDirective, never>;
43
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqColorDirective, never, never, { "color": { "alias": "color"; "required": false; }; }, {}, never, never, true, never>;
44
+ }
@@ -1,5 +1,5 @@
1
1
  import { InjectionToken } from '@angular/core';
2
- export { CanColor, CanColorCtor, KbqComponentColors, mixinColor, ThemePalette } from './color';
2
+ export { CanColor, CanColorCtor, KbqColorDirective, KbqComponentColors, mixinColor, ThemePalette } from './color';
3
3
  export { KBQ_SANITY_CHECKS, KbqCommonModule } from './common-module';
4
4
  export { CanDisable, CanDisableCtor, mixinDisabled } from './disabled';
5
5
  export { CanUpdateErrorState, CanUpdateErrorStateCtor, mixinErrorState } from './error-state';
@@ -1,6 +1,5 @@
1
1
  import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';
2
2
  import { AfterViewInit, ElementRef, EventEmitter, InjectionToken, OnDestroy } from '@angular/core';
3
- import { CanDisableCtor, HasTabIndexCtor } from '../common-behaviors';
4
3
  import * as i0 from "@angular/core";
5
4
  export interface KbqOptionActionParent {
6
5
  dropdownTrigger: {
@@ -17,16 +16,14 @@ export interface KbqOptionActionParent {
17
16
  focus(): void;
18
17
  }
19
18
  export declare const KBQ_OPTION_ACTION_PARENT: InjectionToken<KbqOptionActionParent>;
20
- /** @docs-private */
21
- export declare class KbqOptionActionBase {
22
- }
23
- /** @docs-private */
24
- export declare const KbqOptionActionMixinBase: HasTabIndexCtor & CanDisableCtor & typeof KbqOptionActionBase;
25
- export declare class KbqOptionActionComponent extends KbqOptionActionMixinBase implements AfterViewInit, OnDestroy {
19
+ export declare class KbqOptionActionComponent implements AfterViewInit, OnDestroy {
26
20
  private elementRef;
27
21
  private focusMonitor;
28
22
  private option;
29
23
  customIcon: ElementRef;
24
+ get disabled(): boolean;
25
+ set disabled(value: boolean);
26
+ private _disabled;
30
27
  hasFocus: boolean;
31
28
  get active(): boolean;
32
29
  private readonly destroyRef;
@@ -41,4 +38,5 @@ export declare class KbqOptionActionComponent extends KbqOptionActionMixinBase i
41
38
  private preventShowingTooltip;
42
39
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqOptionActionComponent, never>;
43
40
  static ɵcmp: i0.ɵɵComponentDeclaration<KbqOptionActionComponent, "kbq-option-action", ["kbqOptionAction"], { "disabled": { "alias": "disabled"; "required": false; }; }, {}, ["customIcon"], ["[kbq-icon]"], false, never>;
41
+ static ngAcceptInputType_disabled: unknown;
44
42
  }
@@ -1,17 +1,16 @@
1
- import { CanDisable, CanDisableCtor } from '../common-behaviors';
2
1
  import * as i0 from "@angular/core";
3
- /** @docs-private */
4
- export declare class KbqOptgroupBase {
5
- }
6
- export declare const KbqOptgroupMixinBase: CanDisableCtor & typeof KbqOptgroupBase;
7
2
  /**
8
3
  * Component that is used to group instances of `kbq-option`.
9
4
  * When options aren't provided as `ng-content`, used as a Group Header with styling.
10
5
  */
11
- export declare class KbqOptgroup extends KbqOptgroupMixinBase implements CanDisable {
6
+ export declare class KbqOptgroup {
12
7
  label: string;
8
+ get disabled(): boolean;
9
+ set disabled(value: boolean);
10
+ private _disabled;
13
11
  /** Unique id for the underlying label. */
14
12
  labelId: string;
15
13
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqOptgroup, never>;
16
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqOptgroup, "kbq-optgroup", ["kbqOptgroup"], { "disabled": { "alias": "disabled"; "required": false; }; "label": { "alias": "label"; "required": false; }; }, {}, never, ["kbq-option, kbq-list-option, kbq-timezone-option, ng-container"], false, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqOptgroup, "kbq-optgroup", ["kbqOptgroup"], { "label": { "alias": "label"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, ["kbq-option, kbq-list-option, kbq-timezone-option, ng-container"], false, never>;
15
+ static ngAcceptInputType_disabled: unknown;
17
16
  }
@@ -17,6 +17,7 @@ export declare abstract class KbqPopUpTrigger<T> implements OnInit, OnDestroy {
17
17
  isOpen: boolean;
18
18
  enterDelay: number;
19
19
  leaveDelay: number;
20
+ triggerName: string;
20
21
  abstract disabled: boolean;
21
22
  abstract arrow: boolean;
22
23
  abstract trigger: string;
@@ -40,7 +41,6 @@ export declare abstract class KbqPopUpTrigger<T> implements OnInit, OnDestroy {
40
41
  protected readonly availablePositions: {
41
42
  [key: string]: ConnectionPositionPair;
42
43
  };
43
- protected triggerName: string;
44
44
  protected mouseEvent?: MouseEvent;
45
45
  protected strategy: FlexibleConnectedPositionStrategy;
46
46
  abstract updateClassMap(newPlacement?: string): void;
@@ -55,7 +55,7 @@ export declare abstract class KbqPopUpTrigger<T> implements OnInit, OnDestroy {
55
55
  handleKeydown(event: KeyboardEvent): void;
56
56
  handleTouchend(): void;
57
57
  show(delay?: number): void;
58
- hide(delay?: number): void;
58
+ hide: (delay?: number) => void;
59
59
  detach: () => void;
60
60
  /** Create the overlay config and position strategy */
61
61
  createOverlay(): OverlayRef;
@@ -1,11 +1,16 @@
1
1
  import { AnimationEvent } from '@angular/animations';
2
- import { ChangeDetectorRef, EventEmitter, OnDestroy, Renderer2, TemplateRef } from '@angular/core';
3
- import { Observable, Subject } from 'rxjs';
2
+ import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, Renderer2, TemplateRef } from '@angular/core';
3
+ import { BehaviorSubject, Observable, Subject } from 'rxjs';
4
4
  import { PopUpVisibility } from './constants';
5
+ import { KbqPopUpTrigger } from './pop-up-trigger';
5
6
  import * as i0 from "@angular/core";
6
7
  export declare abstract class KbqPopUp implements OnDestroy {
7
8
  protected readonly renderer: Renderer2;
9
+ protected readonly elementRef: ElementRef<any>;
8
10
  protected readonly changeDetectorRef: ChangeDetectorRef;
11
+ /** Stream that emits when the popup item is hovered. */
12
+ readonly hovered: BehaviorSubject<boolean>;
13
+ trigger: KbqPopUpTrigger<unknown>;
9
14
  header: string | TemplateRef<any>;
10
15
  content: string | TemplateRef<any>;
11
16
  context: {
@@ -43,6 +48,7 @@ export declare abstract class KbqPopUp implements OnDestroy {
43
48
  animationStart(): void;
44
49
  animationDone({ toState }: AnimationEvent): void;
45
50
  handleBodyInteraction(): void;
51
+ protected addEventListenerForHide(): void;
46
52
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqPopUp, never>;
47
53
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqPopUp, never, never, {}, {}, never, never, false, never>;
48
54
  }
@@ -1,14 +1,6 @@
1
- import { ElementRef } from '@angular/core';
2
- import { CanColor, CanColorCtor, CanDisable, CanDisableCtor } from '../../common-behaviors';
1
+ import { KbqColorDirective } from '../../common-behaviors';
3
2
  import * as i0 from "@angular/core";
4
3
  export type KbqPseudoCheckboxState = 'unchecked' | 'checked' | 'indeterminate';
5
- /** @docs-private */
6
- export declare class KbqPseudoCheckboxBase {
7
- elementRef: ElementRef;
8
- constructor(elementRef: ElementRef);
9
- }
10
- /** @docs-private */
11
- export declare const KbqPseudoCheckboxMixinBase: CanColorCtor & CanDisableCtor & typeof KbqPseudoCheckboxBase;
12
4
  /**
13
5
  * Component that shows a simplified checkbox without including any kind of "real" checkbox.
14
6
  * Meant to be used when the checkbox is purely decorative and a large number of them will be
@@ -22,11 +14,10 @@ export declare const KbqPseudoCheckboxMixinBase: CanColorCtor & CanDisableCtor &
22
14
  * of more complex components that appropriately handle selected / checked state.
23
15
  * @docs-private
24
16
  */
25
- export declare class KbqPseudoCheckbox extends KbqPseudoCheckboxMixinBase implements CanColor, CanDisable {
17
+ export declare class KbqPseudoCheckbox extends KbqColorDirective {
26
18
  big: boolean;
27
19
  state: KbqPseudoCheckboxState;
28
20
  disabled: boolean;
29
- constructor(elementRef: ElementRef);
30
21
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqPseudoCheckbox, never>;
31
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqPseudoCheckbox, "kbq-pseudo-checkbox", never, { "color": { "alias": "color"; "required": false; }; "big": { "alias": "big"; "required": false; }; "state": { "alias": "state"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, false, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqPseudoCheckbox, "kbq-pseudo-checkbox", never, { "big": { "alias": "big"; "required": false; }; "state": { "alias": "state"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, false, never>;
32
23
  }
@@ -5,3 +5,6 @@ export declare function isBoolean(value: unknown): value is boolean;
5
5
  * @deprecated Use `booleanAttribute` instead
6
6
  */
7
7
  export declare function toBoolean(value: unknown): boolean;
8
+ export declare const getNodesWithoutComments: (nodes: NodeList) => Node[];
9
+ export declare const leftIconClassName = "kbq-icon_left";
10
+ export declare const rightIconClassName = "kbq-icon_right";
@@ -1,26 +1,24 @@
1
1
  import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';
2
2
  import { AfterViewInit, ElementRef, OnDestroy } from '@angular/core';
3
3
  import { IFocusableOption } from '@koobiq/cdk/a11y';
4
- import { CanDisable, CanDisableCtor, KbqTitleTextRef } from '@koobiq/components/core';
4
+ import { KbqTitleTextRef } from '@koobiq/components/core';
5
5
  import { KbqIcon } from '@koobiq/components/icon';
6
6
  import { Subject } from 'rxjs';
7
7
  import { KbqDropdownPanel } from './dropdown.types';
8
8
  import * as i0 from "@angular/core";
9
- /** @docs-private */
10
- declare class KbqDropdownItemBase {
11
- }
12
- /** @docs-private */
13
- declare const KbqDropdownItemMixinBase: CanDisableCtor & typeof KbqDropdownItemBase;
14
9
  /**
15
10
  * This directive is intended to be used inside an kbq-dropdown tag.
16
11
  * It exists mostly to set the role attribute.
17
12
  */
18
- export declare class KbqDropdownItem extends KbqDropdownItemMixinBase implements KbqTitleTextRef, IFocusableOption, CanDisable, AfterViewInit, OnDestroy {
13
+ export declare class KbqDropdownItem implements KbqTitleTextRef, IFocusableOption, AfterViewInit, OnDestroy {
19
14
  private elementRef;
20
15
  private focusMonitor;
21
16
  parentDropdownPanel?: KbqDropdownPanel | undefined;
22
17
  textElement: ElementRef;
23
18
  icon: KbqIcon;
19
+ get disabled(): boolean;
20
+ set disabled(value: boolean);
21
+ private _disabled;
24
22
  /** Stream that emits when the dropdown item is hovered. */
25
23
  readonly hovered: Subject<KbqDropdownItem>;
26
24
  /** Stream that emits when the menu item is focused. */
@@ -48,5 +46,5 @@ export declare class KbqDropdownItem extends KbqDropdownItemMixinBase implements
48
46
  haltDisabledEvents(event: Event): void;
49
47
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqDropdownItem, [null, null, { optional: true; }]>;
50
48
  static ɵcmp: i0.ɵɵComponentDeclaration<KbqDropdownItem, "kbq-dropdown-item, [kbq-dropdown-item]", ["kbqDropdownItem"], { "disabled": { "alias": "disabled"; "required": false; }; }, {}, ["icon"], ["[kbq-icon]", "*"], false, never>;
49
+ static ngAcceptInputType_disabled: unknown;
51
50
  }
52
- export {};
@@ -7,17 +7,17 @@
7
7
  }
8
8
 
9
9
  .kbq-empty-state-text {
10
- color: var(--kbq-empty-state-title);
10
+ color: var(--kbq-empty-state-color);
11
11
  }
12
12
  }
13
13
 
14
14
  .kbq-empty-state_error-color {
15
15
  .kbq-empty-state-title {
16
- color: var(--kbq-foreground-error);
16
+ color: var(--kbq-empty-state-error-title);
17
17
  }
18
18
 
19
19
  .kbq-empty-state-text {
20
- color: var(--kbq-foreground-error);
20
+ color: var(--kbq-empty-state-error-color);
21
21
  }
22
22
  }
23
23
  }
@@ -28,9 +28,19 @@
28
28
  text-align: center;
29
29
  }
30
30
 
31
+ .kbq-empty-state_compact {
32
+ .kbq-empty-state-title {
33
+ @include kbq-typography-level-to-styles-css-variables(typography, text-normal);
34
+ }
35
+
36
+ .kbq-empty-state-text {
37
+ @include kbq-typography-level-to-styles-css-variables(typography, text-compact);
38
+ }
39
+ }
40
+
31
41
  .kbq-empty-state_normal {
32
42
  .kbq-empty-state-title {
33
- @include kbq-typography-level-to-styles-css-variables(typography, text-big-strong);
43
+ @include kbq-typography-level-to-styles-css-variables(typography, subheading);
34
44
  }
35
45
 
36
46
  .kbq-empty-state-text {
@@ -44,7 +54,7 @@
44
54
  }
45
55
 
46
56
  .kbq-empty-state-text {
47
- @include kbq-typography-level-to-styles-css-variables(typography, text-normal);
57
+ @include kbq-typography-level-to-styles-css-variables(typography, text-big);
48
58
  }
49
59
  }
50
60
  }
@@ -1,4 +1,4 @@
1
- .kbq-empty-state {
1
+ :where(.kbq-empty-state) {
2
2
  --kbq-empty-state-size-big-max-width: 480px;
3
3
  --kbq-empty-state-size-big-padding-horizontal: var(--kbq-size-6xl);
4
4
  --kbq-empty-state-size-big-padding-top: var(--kbq-size-5xl);
@@ -15,7 +15,17 @@
15
15
  --kbq-empty-state-size-normal-image-margin-bottom: var(--kbq-size-xl);
16
16
  --kbq-empty-state-size-normal-image-addon-height: var(--kbq-size-xxl);
17
17
  --kbq-empty-state-size-normal-title-margin-bottom: var(--kbq-size-xxs);
18
+ --kbq-empty-state-size-compact-max-width: 320px;
19
+ --kbq-empty-state-size-compact-padding-horizontal: var(--kbq-size-3xl);
20
+ --kbq-empty-state-size-compact-padding-top: var(--kbq-size-3xl);
21
+ --kbq-empty-state-size-compact-padding-bottom: var(--kbq-size-3xl);
22
+ --kbq-empty-state-size-compact-actions-margin-top: var(--kbq-size-s);
23
+ --kbq-empty-state-size-compact-image-margin-bottom: var(--kbq-size-m);
24
+ --kbq-empty-state-size-compact-image-addon-height: 0;
25
+ --kbq-empty-state-size-compact-title-margin-bottom: var(--kbq-size-xxs);
18
26
  /* THEME TOKENS */
19
27
  --kbq-empty-state-title: var(--kbq-foreground-contrast);
20
- --kbq-empty-state-color: var(--kbq-foreground-contrast);
28
+ --kbq-empty-state-color: var(--kbq-foreground-contrast-secondary);
29
+ --kbq-empty-state-error-title: var(--kbq-foreground-error);
30
+ --kbq-empty-state-error-color: var(--kbq-foreground-error);
21
31
  }
@@ -1,4 +1,5 @@
1
1
  import { AfterContentInit } from '@angular/core';
2
+ import { KbqDefaultSizes } from '@koobiq/components/core';
2
3
  import { KbqIconItem } from '@koobiq/components/icon';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class KbqEmptyStateIcon {
@@ -22,10 +23,14 @@ export declare class KbqEmptyStateActions {
22
23
  }
23
24
  export declare class KbqEmptyState implements AfterContentInit {
24
25
  errorColor: boolean;
25
- big: boolean;
26
26
  alignTop: boolean;
27
+ size: KbqDefaultSizes;
27
28
  icon: KbqEmptyStateIcon | null;
29
+ /**
30
+ * @docs-private
31
+ */
32
+ protected get emptyStateSizeClass(): string;
28
33
  ngAfterContentInit(): void;
29
34
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqEmptyState, never>;
30
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqEmptyState, "kbq-empty-state", never, { "errorColor": { "alias": "errorColor"; "required": false; }; "big": { "alias": "big"; "required": false; }; "alignTop": { "alias": "alignTop"; "required": false; }; }, {}, ["icon"], ["[kbq-empty-state-icon]", "[kbq-empty-state-title]", "[kbq-empty-state-text]", "[kbq-empty-state-actions]"], false, never>;
35
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqEmptyState, "kbq-empty-state", never, { "errorColor": { "alias": "errorColor"; "required": false; }; "alignTop": { "alias": "alignTop"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, ["icon"], ["[kbq-empty-state-icon]", "[kbq-empty-state-title]", "[kbq-empty-state-text]", "[kbq-empty-state-actions]"], false, never>;
31
36
  }
@@ -9,6 +9,35 @@
9
9
 
10
10
  flex: 1;
11
11
 
12
+ &.kbq-empty-state_compact {
13
+ padding: var(--kbq-empty-state-size-compact-padding-top) var(--kbq-empty-state-size-compact-padding-horizontal)
14
+ var(--kbq-empty-state-size-compact-padding-bottom);
15
+
16
+ & .kbq-empty-state-icon {
17
+ margin-bottom: var(--kbq-empty-state-size-compact-image-margin-bottom);
18
+ }
19
+
20
+ & .kbq-empty-state-text {
21
+ max-width: var(--kbq-empty-state-size-compact-max-width);
22
+ }
23
+
24
+ & .kbq-empty-state-title {
25
+ max-width: var(--kbq-empty-state-size-compact-max-width);
26
+
27
+ margin-bottom: var(--kbq-empty-state-size-compact-title-margin-bottom);
28
+ }
29
+
30
+ & .kbq-empty-state-actions {
31
+ max-width: var(--kbq-empty-state-size-compact-max-width);
32
+
33
+ margin-top: var(--kbq-empty-state-size-compact-actions-margin-top);
34
+ }
35
+
36
+ &.kbq-empty-state_align-center.kbq-empty-state_has-icon {
37
+ margin-bottom: var(--kbq-empty-state-size-compact-image-addon-height);
38
+ }
39
+ }
40
+
12
41
  &.kbq-empty-state_normal {
13
42
  padding: var(--kbq-empty-state-size-normal-padding-top) var(--kbq-empty-state-size-normal-padding-horizontal)
14
43
  var(--kbq-empty-state-size-normal-padding-bottom);