@koobiq/components 18.25.0 → 18.27.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 (183) hide show
  1. package/badge/_badge-theme.scss +1 -1
  2. package/breadcrumbs/breadcrumbs.scss +0 -1
  3. package/button/_button-theme.scss +1 -1
  4. package/button-toggle/_button-toggle-theme.scss +1 -1
  5. package/checkbox/checkbox-tokens.scss +0 -2
  6. package/checkbox/checkbox.scss +17 -11
  7. package/code-block/code-block.scss +2 -0
  8. package/core/locales/en-US.d.ts +1 -0
  9. package/core/locales/es-LA.d.ts +1 -0
  10. package/core/locales/fa-IR.d.ts +1 -0
  11. package/core/locales/locale-service.d.ts +7 -0
  12. package/core/locales/pt-BR.d.ts +1 -0
  13. package/core/locales/ru-RU.d.ts +1 -0
  14. package/core/locales/tk-TM.d.ts +1 -0
  15. package/core/locales/zh-CN.d.ts +1 -0
  16. package/core/option/_option-action-theme.scss +3 -3
  17. package/core/option/_option-theme.scss +1 -1
  18. package/core/option/option.d.ts +3 -1
  19. package/core/pop-up/pop-up-trigger.d.ts +2 -1
  20. package/core/styles/common/_select.scss +1 -2
  21. package/core/styles/typography/_typography.scss +2 -0
  22. package/core/styles/visual/_layout-media.scss +1 -0
  23. package/core/styles/visual/_layout.scss +2 -0
  24. package/dropdown/_dropdown-theme.scss +7 -7
  25. package/dropdown/dropdown.scss +3 -3
  26. package/esm2022/alert/alert.component.mjs +3 -2
  27. package/esm2022/badge/badge.component.mjs +2 -2
  28. package/esm2022/breadcrumbs/breadcrumbs.mjs +3 -3
  29. package/esm2022/button/button.component.mjs +2 -2
  30. package/esm2022/button-toggle/button-toggle.component.mjs +2 -2
  31. package/esm2022/checkbox/checkbox.mjs +2 -2
  32. package/esm2022/core/locales/en-US.mjs +3 -2
  33. package/esm2022/core/locales/es-LA.mjs +3 -2
  34. package/esm2022/core/locales/fa-IR.mjs +3 -2
  35. package/esm2022/core/locales/pt-BR.mjs +3 -2
  36. package/esm2022/core/locales/ru-RU.mjs +3 -2
  37. package/esm2022/core/locales/tk-TM.mjs +3 -2
  38. package/esm2022/core/locales/zh-CN.mjs +3 -2
  39. package/esm2022/core/option/action.mjs +2 -2
  40. package/esm2022/core/option/option.mjs +9 -5
  41. package/esm2022/core/pop-up/pop-up-trigger.mjs +9 -5
  42. package/esm2022/core/version.mjs +2 -2
  43. package/esm2022/datepicker/calendar-header.component.mjs +1 -1
  44. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  45. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +1 -2
  46. package/esm2022/file-upload/multiple-file-upload.component.mjs +5 -6
  47. package/esm2022/file-upload/single-file-upload.component.mjs +8 -9
  48. package/esm2022/filter-bar/filter-bar.mjs +3 -3
  49. package/esm2022/filter-bar/filter-bar.types.mjs +4 -1
  50. package/esm2022/filter-bar/pipe-add.mjs +2 -2
  51. package/esm2022/filter-bar/pipes/base-pipe.mjs +2 -2
  52. package/esm2022/filter-bar/pipes/pipe-button.mjs +13 -6
  53. package/esm2022/filter-bar/pipes/pipe-date.mjs +2 -2
  54. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +2 -2
  55. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +46 -5
  56. package/esm2022/filter-bar/pipes/pipe-readonly.mjs +71 -0
  57. package/esm2022/filter-bar/pipes/pipe-select.mjs +2 -2
  58. package/esm2022/filter-bar/pipes/pipe-state.mjs +9 -2
  59. package/esm2022/filter-bar/pipes/pipe-text.mjs +2 -2
  60. package/esm2022/filter-bar/public-api.mjs +2 -1
  61. package/esm2022/form-field/form-field.mjs +2 -2
  62. package/esm2022/form-field/hint.mjs +2 -2
  63. package/esm2022/form-field/password-hint.mjs +2 -2
  64. package/esm2022/input/input-number.mjs +2 -2
  65. package/esm2022/list/list-selection.component.mjs +2 -2
  66. package/esm2022/list/list.component.mjs +2 -2
  67. package/esm2022/modal/modal.component.mjs +2 -2
  68. package/esm2022/navbar/navbar-item.component.mjs +6 -4
  69. package/esm2022/navbar/navbar.component.mjs +4 -4
  70. package/esm2022/navbar/vertical-navbar.component.mjs +5 -4
  71. package/esm2022/popover/popover.component.mjs +20 -1
  72. package/esm2022/select/select.component.mjs +9 -5
  73. package/esm2022/sidepanel/sidepanel-container.component.mjs +2 -2
  74. package/esm2022/tags/tag-list.component.mjs +12 -6
  75. package/esm2022/timezone/timezone-option.component.mjs +2 -2
  76. package/esm2022/timezone/timezone-select.component.mjs +2 -2
  77. package/esm2022/toast/toast-container.component.mjs +2 -2
  78. package/esm2022/toast/toast.component.mjs +3 -3
  79. package/esm2022/toast/toast.service.mjs +18 -15
  80. package/esm2022/toast/toast.type.mjs +19 -2
  81. package/esm2022/toggle/toggle.component.mjs +18 -12
  82. package/esm2022/top-bar/top-bar.mjs +14 -6
  83. package/esm2022/tree/toggle.mjs +2 -2
  84. package/esm2022/tree/tree-selection.component.mjs +2 -2
  85. package/esm2022/tree/tree.mjs +2 -2
  86. package/esm2022/tree-select/tree-select.component.mjs +8 -4
  87. package/fesm2022/koobiq-components-alert.mjs +2 -1
  88. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  89. package/fesm2022/koobiq-components-badge.mjs +2 -2
  90. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  91. package/fesm2022/koobiq-components-breadcrumbs.mjs +2 -2
  92. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  93. package/fesm2022/koobiq-components-button-toggle.mjs +2 -2
  94. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  95. package/fesm2022/koobiq-components-button.mjs +2 -2
  96. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  97. package/fesm2022/koobiq-components-checkbox.mjs +2 -2
  98. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  99. package/fesm2022/koobiq-components-core.mjs +33 -18
  100. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  101. package/fesm2022/koobiq-components-datepicker.mjs +1 -1
  102. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  103. package/fesm2022/koobiq-components-dropdown.mjs +2 -2
  104. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  105. package/fesm2022/koobiq-components-ellipsis-center.mjs +0 -1
  106. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  107. package/fesm2022/koobiq-components-file-upload.mjs +11 -13
  108. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  109. package/fesm2022/koobiq-components-filter-bar.mjs +139 -22
  110. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  111. package/fesm2022/koobiq-components-form-field.mjs +6 -6
  112. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  113. package/fesm2022/koobiq-components-input.mjs +1 -1
  114. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  115. package/fesm2022/koobiq-components-list.mjs +4 -4
  116. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  117. package/fesm2022/koobiq-components-modal.mjs +2 -2
  118. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  119. package/fesm2022/koobiq-components-navbar.mjs +11 -9
  120. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  121. package/fesm2022/koobiq-components-popover.mjs +19 -0
  122. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  123. package/fesm2022/koobiq-components-select.mjs +8 -4
  124. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  125. package/fesm2022/koobiq-components-sidepanel.mjs +2 -2
  126. package/fesm2022/koobiq-components-tags.mjs +11 -5
  127. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  128. package/fesm2022/koobiq-components-timezone.mjs +4 -4
  129. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  130. package/fesm2022/koobiq-components-toast.mjs +40 -20
  131. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  132. package/fesm2022/koobiq-components-toggle.mjs +16 -10
  133. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  134. package/fesm2022/koobiq-components-top-bar.mjs +13 -5
  135. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  136. package/fesm2022/koobiq-components-tree-select.mjs +7 -3
  137. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-tree.mjs +6 -6
  139. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  140. package/file-upload/_file-upload-theme.scss +17 -15
  141. package/file-upload/file-upload.scss +6 -3
  142. package/file-upload/multiple-file-upload.component.scss +2 -0
  143. package/file-upload/single-file-upload.component.scss +2 -0
  144. package/filter-bar/_filter-bar-theme.scss +1 -1
  145. package/filter-bar/filter-bar.types.d.ts +6 -3
  146. package/filter-bar/pipes/pipe-button.d.ts +4 -1
  147. package/filter-bar/pipes/pipe-multi-select.d.ts +15 -1
  148. package/filter-bar/pipes/pipe-readonly.d.ts +7 -0
  149. package/filter-bar/pipes/pipe-state.d.ts +6 -0
  150. package/filter-bar/public-api.d.ts +1 -0
  151. package/form-field/_form-field-theme.scss +2 -2
  152. package/form-field/_hint-theme.scss +1 -1
  153. package/link/_link-theme.scss +1 -1
  154. package/list/_list-theme.scss +11 -21
  155. package/list/list.scss +20 -6
  156. package/markdown/markdown.scss +2 -0
  157. package/modal/modal-tokens.scss +1 -1
  158. package/modal/modal.scss +8 -3
  159. package/navbar/_navbar-theme.scss +1 -1
  160. package/package.json +4 -4
  161. package/popover/popover.component.d.ts +5 -3
  162. package/prebuilt-themes/dark-theme.css +1 -1
  163. package/prebuilt-themes/light-theme.css +1 -1
  164. package/prebuilt-themes/theme.css +1 -1
  165. package/schematics/ng-add/index.js +2 -2
  166. package/scrollbar/scrollbar.component.scss +2 -0
  167. package/select/select.component.d.ts +1 -0
  168. package/sidepanel/sidepanel-tokens.scss +4 -4
  169. package/sidepanel/sidepanel.scss +1 -0
  170. package/tabs/_tabs-theme.scss +1 -1
  171. package/tags/_tag-theme.scss +1 -1
  172. package/textarea/textarea-tokens.scss +1 -1
  173. package/toast/toast-container.component.scss +29 -3
  174. package/toast/toast-tokens.scss +5 -1
  175. package/toast/toast.service.d.ts +0 -1
  176. package/toast/toast.type.d.ts +12 -2
  177. package/toggle/toggle.component.d.ts +6 -2
  178. package/toggle/toggle.scss +3 -0
  179. package/top-bar/top-bar-tokens.scss +4 -3
  180. package/top-bar/top-bar.d.ts +7 -0
  181. package/top-bar/top-bar.scss +27 -3
  182. package/tree/_tree-theme.scss +4 -4
  183. package/tree-select/tree-select.component.d.ts +1 -0
@@ -1,4 +1,6 @@
1
- @use '../core/styles/common/tokens' as *;
1
+ // @TODO should remove "selector-class-pattern" rule ignore (#DS-3753)
2
+ /* stylelint-disable selector-class-pattern */
3
+ @use '../core/styles/common/tokens';
2
4
 
3
5
  @mixin kbq-file-upload-theme() {
4
6
  .kbq-file-upload {
@@ -26,7 +28,7 @@
26
28
  }
27
29
 
28
30
  :not(.kbq-link),
29
- .kbq-icon {
31
+ .kbq-icon.kbq-empty {
30
32
  color: var(--kbq-file-upload-single-states-error-text-block-color);
31
33
  }
32
34
  }
@@ -36,7 +38,7 @@
36
38
  border-color: var(--kbq-file-upload-single-states-disabled-container-border) !important;
37
39
 
38
40
  &,
39
- .kbq-icon,
41
+ .kbq-icon.kbq-empty,
40
42
  .kbq-link {
41
43
  color: var(--kbq-file-upload-single-states-disabled-container-border);
42
44
  }
@@ -77,7 +79,7 @@
77
79
  border-color: var(--kbq-file-upload-multiple-states-disabled-container-border) !important;
78
80
 
79
81
  &,
80
- .kbq-icon,
82
+ .kbq-icon.kbq-empty,
81
83
  .kbq-link {
82
84
  color: var(--kbq-file-upload-multiple-states-disabled-container-border);
83
85
  }
@@ -95,7 +97,7 @@
95
97
  border-color: var(--kbq-line-error) !important;
96
98
 
97
99
  :not(.kbq-link),
98
- .kbq-icon {
100
+ .kbq-icon.kbq-empty {
99
101
  color: var(--kbq-foreground-error);
100
102
  }
101
103
  }
@@ -105,7 +107,7 @@
105
107
  background-color: var(--kbq-background-error-less);
106
108
 
107
109
  :not(.kbq-link),
108
- .kbq-icon {
110
+ .kbq-icon.kbq-empty {
109
111
  color: var(--kbq-foreground-error);
110
112
  }
111
113
  }
@@ -113,11 +115,11 @@
113
115
  }
114
116
 
115
117
  .multiple__uploaded-item {
116
- & .kbq-file-upload__file .kbq-icon {
118
+ & .kbq-file-upload__file .kbq-icon.kbq-empty {
117
119
  color: var(--kbq-file-upload-multiple-default-left-icon-color);
118
120
  }
119
121
 
120
- & .kbq-file-upload__action .kbq-icon {
122
+ & .kbq-file-upload__action .kbq-icon.kbq-empty {
121
123
  color: var(--kbq-file-upload-multiple-default-icon-button-color);
122
124
  }
123
125
  }
@@ -135,39 +137,39 @@
135
137
  .kbq-single-file-upload {
136
138
  & .file-item__text-wrapper,
137
139
  & .dropzone__text {
138
- @include kbq-typography-level-to-styles-css-variables(typography, text-normal);
140
+ @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-normal);
139
141
  }
140
142
  }
141
143
 
142
144
  .kbq-multiple-file-upload {
143
145
  .multiple__header {
144
- @include kbq-typography-level-to-styles-css-variables(typography, subheading);
146
+ @include tokens.kbq-typography-level-to-styles-css-variables(typography, subheading);
145
147
  }
146
148
 
147
149
  .multiple__caption {
148
150
  &,
149
151
  .kbq-link {
150
- @include kbq-typography-level-to-styles-css-variables(typography, text-normal);
152
+ @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-normal);
151
153
  }
152
154
  }
153
155
 
154
156
  .kbq-file-multiple-uploaded__header {
155
- @include kbq-typography-level-to-styles-css-variables(typography, text-normal);
157
+ @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-normal);
156
158
  }
157
159
 
158
160
  .multiple__uploaded-item {
159
- @include kbq-typography-level-to-styles-css-variables(typography, text-normal);
161
+ @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-normal);
160
162
  }
161
163
 
162
164
  .kbq-file-upload {
163
165
  .kbq-list-item,
164
166
  .kbq-list-option {
165
- @include kbq-typography-level-to-styles-css-variables(typography, text-normal);
167
+ @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-normal);
166
168
  }
167
169
  }
168
170
  }
169
171
 
170
172
  .kbq-file-upload__hint .kbq-hint .kbq-hint__text {
171
- @include kbq-typography-level-to-styles-css-variables(typography, text-compact);
173
+ @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-compact);
172
174
  }
173
175
  }
@@ -1,4 +1,7 @@
1
- @use './file-upload-theme' as *;
1
+ // @TODO should remove "selector-class-pattern" rule ignore (#DS-3753)
2
+ /* stylelint-disable selector-class-pattern */
3
+
4
+ @use './file-upload-theme' as theme;
2
5
 
3
6
  .kbq-file-upload {
4
7
  box-sizing: border-box;
@@ -37,5 +40,5 @@
37
40
  }
38
41
  }
39
42
 
40
- @include kbq-file-upload-theme();
41
- @include kbq-file-upload-typography();
43
+ @include theme.kbq-file-upload-theme();
44
+ @include theme.kbq-file-upload-typography();
@@ -1,3 +1,5 @@
1
+ // @TODO should remove "selector-class-pattern" rule ignore (#DS-3753)
2
+ /* stylelint-disable selector-class-pattern */
1
3
  @use '../core/styles/common/tokens' as *;
2
4
 
3
5
  // todo нужно рефакторить со стилями тут сложно
@@ -1,3 +1,5 @@
1
+ // @TODO should remove "selector-class-pattern" rule ignore (#DS-3753)
2
+ /* stylelint-disable selector-class-pattern */
1
3
  @use '../core/styles/common/tokens' as *;
2
4
 
3
5
  .kbq-single-file-upload .kbq-file-upload {
@@ -7,7 +7,7 @@
7
7
  }
8
8
 
9
9
  @mixin _icon($left-icon, $right-icon) {
10
- .kbq-icon {
10
+ .kbq-icon.kbq-empty {
11
11
  color: $left-icon;
12
12
 
13
13
  &.kbq-icon_left {
@@ -34,6 +34,7 @@ export declare const KBQ_FILTER_BAR_DEFAULT_CONFIGURATION: {
34
34
  removeButtonTooltip: string;
35
35
  applyButton: string;
36
36
  emptySearchResult: string;
37
+ selectAll: string;
37
38
  };
38
39
  datePipe: {
39
40
  customPeriod: string;
@@ -51,6 +52,7 @@ export declare const KBQ_FILTER_BAR_PIPES: InjectionToken<any>;
51
52
  export declare const kbqFilterBarPipesProvider: () => Provider;
52
53
  /** list of pipe types available out of the box */
53
54
  export declare enum KbqPipeTypes {
55
+ ReadOnly = "readonly",
54
56
  Text = "text",
55
57
  Select = "select",
56
58
  MultiSelect = "multiselect",
@@ -83,10 +85,11 @@ export interface KbqPipe {
83
85
  type: KbqPipeType;
84
86
  value: unknown | null;
85
87
  search?: boolean;
88
+ selectAll?: boolean;
86
89
  required: boolean;
87
- cleanable: boolean;
88
- removable: boolean;
89
- disabled: boolean;
90
+ cleanable?: boolean;
91
+ removable?: boolean;
92
+ disabled?: boolean;
90
93
  }
91
94
  export interface KbqPipeData<V> extends KbqPipe {
92
95
  value: V | null;
@@ -9,10 +9,13 @@ export declare class KbqPipeButton {
9
9
  protected readonly filterBar: KbqFilterBar;
10
10
  /** @docs-private */
11
11
  protected readonly changeDetectorRef: ChangeDetectorRef;
12
+ /** enables/disables read-only state */
13
+ readonly: boolean;
12
14
  /** localized data
13
15
  * @docs-private */
14
16
  get localeData(): any;
15
17
  constructor();
16
18
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqPipeButton, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqPipeButton, "kbq-pipe-button", never, {}, {}, never, never, true, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqPipeButton, "kbq-pipe-button", never, { "readonly": { "alias": "readonly"; "required": false; }; }, {}, never, never, true, never>;
20
+ static ngAcceptInputType_readonly: unknown;
18
21
  }
@@ -1,5 +1,6 @@
1
- import { OnInit } from '@angular/core';
1
+ import { OnInit, QueryList } from '@angular/core';
2
2
  import { UntypedFormControl } from '@angular/forms';
3
+ import { KbqOption, KbqPseudoCheckboxState } from '@koobiq/components/core';
3
4
  import { KbqSelect } from '@koobiq/components/select';
4
5
  import { Observable } from 'rxjs';
5
6
  import { KbqSelectValue } from '../filter-bar.types';
@@ -12,13 +13,26 @@ export declare class KbqPipeMultiSelectComponent extends KbqBasePipe<KbqSelectVa
12
13
  filteredOptions: Observable<any[]>;
13
14
  /** @docs-private */
14
15
  select: KbqSelect;
16
+ /** @docs-private */
17
+ options: QueryList<KbqOption>;
15
18
  /** selected value */
16
19
  get selected(): KbqSelectValue[] | null;
17
20
  /** Whether the current pipe is empty. */
18
21
  get isEmpty(): boolean;
22
+ /** state for checkbox 'select all'. */
23
+ get checkboxState(): KbqPseudoCheckboxState;
24
+ private get visibleOptions();
25
+ private get allOptionsSelected();
26
+ /** @docs-private */
19
27
  ngOnInit(): void;
28
+ /** @docs-private */
20
29
  onSelect(item: KbqSelectValue[]): void;
30
+ /** @docs-private */
21
31
  onClear(): void;
32
+ /** @docs-private */
33
+ toggleSelectionAllByEnterKey(): void;
34
+ /** @docs-private */
35
+ toggleSelectionAll(): void;
22
36
  /** Comparator of selected options */
23
37
  compareByValue: (o1: any, o2: any) => boolean;
24
38
  /** opens select */
@@ -0,0 +1,7 @@
1
+ import { KbqBasePipe } from './base-pipe';
2
+ import * as i0 from "@angular/core";
3
+ export declare class KbqPipeReadonlyComponent extends KbqBasePipe<string | null> {
4
+ open(): void;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqPipeReadonlyComponent, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqPipeReadonlyComponent, "kbq-pipe-readonly", never, {}, {}, never, never, true, never>;
7
+ }
@@ -1,9 +1,15 @@
1
1
  import { OnInit } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class KbqPipeState<T> implements OnInit {
4
+ /** @docs-private */
4
5
  private readonly destroyRef;
6
+ /** @docs-private */
5
7
  private readonly button;
8
+ /** @docs-private */
6
9
  private readonly pipe;
10
+ /** KbqFilterBar instance
11
+ * @docs-private */
12
+ private readonly filterBar;
7
13
  /** calculates and updates styles of button from pipe state */
8
14
  set state(pipe: T | null);
9
15
  get state(): T | null;
@@ -13,6 +13,7 @@ export * from './pipes/pipe-button';
13
13
  export * from './pipes/pipe-date';
14
14
  export * from './pipes/pipe-datetime';
15
15
  export * from './pipes/pipe-multi-select';
16
+ export * from './pipes/pipe-readonly';
16
17
  export * from './pipes/pipe-select';
17
18
  export * from './pipes/pipe-state';
18
19
  export * from './pipes/pipe-text';
@@ -77,7 +77,7 @@
77
77
  &.kbq-disabled {
78
78
  @include kbq-form-field-state(states-disabled);
79
79
 
80
- .kbq-icon {
80
+ .kbq-icon.kbq-empty {
81
81
  color: var(--kbq-form-field-states-disabled-text);
82
82
  -webkit-text-fill-color: var(--kbq-form-field-states-disabled-text);
83
83
  }
@@ -86,7 +86,7 @@
86
86
 
87
87
  .kbq-form-field__prefix,
88
88
  .kbq-form-field__suffix {
89
- .kbq-icon {
89
+ .kbq-icon.kbq-empty {
90
90
  color: var(--kbq-icon-contrast-fade);
91
91
  }
92
92
  }
@@ -4,7 +4,7 @@
4
4
  @mixin kbq-hint-color($type, $style-name) {
5
5
  color: var(--kbq-hint-#{$type}-#{$style-name}-text);
6
6
 
7
- & .kbq-icon {
7
+ & .kbq-icon.kbq-empty {
8
8
  color: var(--kbq-hint-#{$type}-#{$style-name}-icon) !important;
9
9
  }
10
10
  }
@@ -108,7 +108,7 @@
108
108
  }
109
109
  }
110
110
 
111
- & .kbq-icon {
111
+ & .kbq-icon.kbq-empty {
112
112
  color: var(--kbq-#{$base-path}-text) !important;
113
113
  }
114
114
  }
@@ -1,17 +1,17 @@
1
- @use '../core/styles/common/tokens' as *;
1
+ @use '../core/styles/common/tokens';
2
2
 
3
- @mixin kbq-list-item($state-name) {
3
+ @mixin _kbq-list-item($state-name) {
4
4
  background: var(--kbq-list-#{$state-name}-container-background);
5
5
 
6
6
  .kbq-list-text {
7
7
  color: var(--kbq-list-#{$state-name}-text-color);
8
8
  }
9
9
 
10
- .kbq-icon {
10
+ .kbq-icon.kbq-empty {
11
11
  color: var(--kbq-list-#{$state-name}-icon-color);
12
12
  }
13
13
 
14
- .kbq-option-action .kbq-icon {
14
+ .kbq-option-action .kbq-icon.kbq-empty {
15
15
  color: var(--kbq-list-#{$state-name}-icon-button-color);
16
16
  }
17
17
 
@@ -22,32 +22,22 @@
22
22
 
23
23
  @mixin kbq-list-theme() {
24
24
  .kbq-list-option {
25
- @include kbq-list-item(default);
25
+ @include _kbq-list-item(default);
26
26
 
27
27
  &:hover:not(.kbq-disabled) {
28
- @include kbq-list-item(states-hover);
28
+ @include _kbq-list-item(states-hover);
29
29
  }
30
30
 
31
31
  &.kbq-selected {
32
- @include kbq-list-item(states-selected);
32
+ @include _kbq-list-item(states-selected);
33
33
 
34
34
  &:hover:not(.kbq-disabled) {
35
- @include kbq-list-item(states-selected-hover);
35
+ @include _kbq-list-item(states-selected-hover);
36
36
  }
37
37
  }
38
38
 
39
39
  &.kbq-disabled {
40
- @include kbq-list-item(states-disabled);
41
- }
42
-
43
- &:is(.kbq-selected, .kbq-focused):has(+ :is(.kbq-selected, .kbq-focused)) {
44
- border-bottom-left-radius: 0;
45
- border-bottom-right-radius: 0;
46
- }
47
-
48
- &:is(.kbq-selected, .kbq-focused) + :is(.kbq-selected, .kbq-focused) {
49
- border-top-left-radius: 0;
50
- border-top-right-radius: 0;
40
+ @include _kbq-list-item(states-disabled);
51
41
  }
52
42
  }
53
43
 
@@ -61,11 +51,11 @@
61
51
  @mixin kbq-list-typography() {
62
52
  .kbq-list-item,
63
53
  .kbq-list-option {
64
- @include kbq-typography-level-to-styles-css-variables(typography, text-normal);
54
+ @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-normal);
65
55
 
66
56
  .kbq-list-text {
67
57
  .kbq-list-option-caption {
68
- @include kbq-typography-level-to-styles-css-variables(typography, text-compact);
58
+ @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-compact);
69
59
  }
70
60
  }
71
61
  }
package/list/list.scss CHANGED
@@ -1,7 +1,22 @@
1
1
  @use '../core/styles/common/list';
2
- @use '../core/styles/common/tokens' as *;
3
2
  @use '../core/styles/common/vendor-prefixes';
4
- @use './list-theme' as *;
3
+ @use './list-theme' as theme;
4
+
5
+ @mixin _kbq-list-item-border-radius() {
6
+ $selectors: '.kbq-selected';
7
+
8
+ border-radius: var(--kbq-size-border-radius);
9
+
10
+ &:is(#{$selectors}):has(+ :is(#{$selectors})) {
11
+ border-bottom-left-radius: unset;
12
+ border-bottom-right-radius: unset;
13
+ }
14
+
15
+ &:is(#{$selectors}) + :is(#{$selectors}) {
16
+ border-top-left-radius: unset;
17
+ border-top-right-radius: unset;
18
+ }
19
+ }
5
20
 
6
21
  .kbq-list,
7
22
  .kbq-list-selection {
@@ -13,8 +28,7 @@
13
28
  .kbq-list-option {
14
29
  @include vendor-prefixes.user-select(none);
15
30
  @include list.kbq-list-item-base();
16
-
17
- border-radius: var(--kbq-size-border-radius);
31
+ @include _kbq-list-item-border-radius();
18
32
 
19
33
  &:not(.kbq-disabled) {
20
34
  cursor: pointer;
@@ -35,5 +49,5 @@
35
49
  }
36
50
  }
37
51
 
38
- @include kbq-list-theme();
39
- @include kbq-list-typography();
52
+ @include theme.kbq-list-theme();
53
+ @include theme.kbq-list-typography();
@@ -1,3 +1,5 @@
1
+ // @TODO should remove "selector-class-pattern" rule ignore (#DS-3753)
2
+ /* stylelint-disable selector-class-pattern */
1
3
  @use '../core/styles/common/tokens' as *;
2
4
 
3
5
  .kbq-markdown {
@@ -5,7 +5,7 @@
5
5
  --kbq-modal-size-border-radius: var(--kbq-size-s);
6
6
  --kbq-modal-size-header-padding-vertical: var(--kbq-size-l);
7
7
  --kbq-modal-size-header-padding-left: var(--kbq-size-xxl);
8
- --kbq-modal-size-header-padding-right: var(--kbq-size-5xl);
8
+ --kbq-modal-size-header-padding-right: var(--kbq-size-6xl);
9
9
  --kbq-modal-size-close-button-margin-left: var(--kbq-size-s);
10
10
  --kbq-modal-size-content-padding-horizontal: var(--kbq-size-xxl);
11
11
  --kbq-modal-size-content-padding-top: 0;
package/modal/modal.scss CHANGED
@@ -1,3 +1,5 @@
1
+ // @TODO should remove "selector-class-pattern" rule ignore (#DS-3753)
2
+ /* stylelint-disable selector-class-pattern */
1
3
  @use '../core/styles/common/tokens' as *;
2
4
 
3
5
  @use './modal-confirm';
@@ -9,7 +11,7 @@
9
11
 
10
12
  position: relative;
11
13
 
12
- top: 48px;
14
+ top: var(--kbq-size-5xl);
13
15
 
14
16
  border-radius: var(--kbq-modal-size-border-radius);
15
17
 
@@ -50,8 +52,8 @@
50
52
  & .kbq-modal-close {
51
53
  position: absolute;
52
54
 
53
- top: 16px;
54
- right: 8px;
55
+ top: var(--kbq-size-l);
56
+ right: var(--kbq-size-l);
55
57
  }
56
58
  }
57
59
 
@@ -95,6 +97,9 @@
95
97
  -webkit-box-orient: vertical;
96
98
  -webkit-line-clamp: 2;
97
99
  overflow: hidden;
100
+
101
+ padding-top: var(--kbq-size-3xs);
102
+ padding-bottom: var(--kbq-size-3xs);
98
103
  }
99
104
 
100
105
  .kbq-modal-body {
@@ -12,7 +12,7 @@
12
12
  color: var(--kbq-navbar-item-#{$state-name}-content-text);
13
13
  }
14
14
 
15
- & > .kbq-icon {
15
+ & > .kbq-icon.kbq-empty {
16
16
  color: var(--kbq-navbar-item-#{$state-name}-content-icon-left) !important;
17
17
  }
18
18
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koobiq/components",
3
- "version": "18.25.0",
3
+ "version": "18.27.0",
4
4
  "description": "koobiq",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,9 +24,9 @@
24
24
  "@angular/cdk": "^18.0.0",
25
25
  "@angular/core": "^18.0.0",
26
26
  "@angular/forms": "^18.0.0",
27
- "@koobiq/cdk": "18.25.0",
28
- "@koobiq/angular-moment-adapter": "18.25.0",
29
- "@koobiq/angular-luxon-adapter": "18.25.0",
27
+ "@koobiq/cdk": "18.27.0",
28
+ "@koobiq/angular-moment-adapter": "18.27.0",
29
+ "@koobiq/angular-luxon-adapter": "18.27.0",
30
30
  "@koobiq/date-formatter": "^3.2.3",
31
31
  "@koobiq/icons": "^9.4.0",
32
32
  "@koobiq/tokens-builder": "3.11.0",
@@ -1,6 +1,6 @@
1
1
  import { CdkTrapFocus } from '@angular/cdk/a11y';
2
2
  import { CdkScrollable, Overlay, OverlayConfig, ScrollStrategy } from '@angular/cdk/overlay';
3
- import { AfterContentInit, AfterViewInit, ElementRef, EventEmitter, InjectionToken, TemplateRef, Type } from '@angular/core';
3
+ import { AfterContentInit, AfterViewInit, ElementRef, EventEmitter, InjectionToken, OnInit, TemplateRef, Type } from '@angular/core';
4
4
  import { KbqComponentColors, KbqPopUp, KbqPopUpTrigger, PopUpPlacements, PopUpSizes } from '@koobiq/components/core';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class KbqPopoverComponent extends KbqPopUp implements AfterViewInit {
@@ -38,7 +38,7 @@ export declare const KBQ_POPOVER_SCROLL_STRATEGY_FACTORY_PROVIDER: {
38
38
  };
39
39
  /** Creates an error to be thrown if the user supplied an invalid popover position. */
40
40
  export declare function getKbqPopoverInvalidPositionError(position: string): Error;
41
- export declare class KbqPopoverTrigger extends KbqPopUpTrigger<KbqPopoverComponent> implements AfterContentInit {
41
+ export declare class KbqPopoverTrigger extends KbqPopUpTrigger<KbqPopoverComponent> implements AfterContentInit, OnInit {
42
42
  protected scrollStrategy: () => ScrollStrategy;
43
43
  get popoverVisible(): boolean;
44
44
  set popoverVisible(value: boolean);
@@ -86,6 +86,7 @@ export declare class KbqPopoverTrigger extends KbqPopUpTrigger<KbqPopoverCompone
86
86
  visibleChange: EventEmitter<boolean>;
87
87
  protected originSelector: string;
88
88
  protected get overlayConfig(): OverlayConfig;
89
+ ngOnInit(): void;
89
90
  ngAfterContentInit(): void;
90
91
  updateData(): void;
91
92
  /** Updates the position of the current popover. */
@@ -94,7 +95,8 @@ export declare class KbqPopoverTrigger extends KbqPopUpTrigger<KbqPopoverCompone
94
95
  updateClassMap(newPlacement?: string): void;
95
96
  closingActionsForClick(): import("rxjs").Observable<MouseEvent>[];
96
97
  defaultClosingActions(): import("rxjs").Observable<MouseEvent>[];
97
- closingActions(): import("rxjs").Observable<void | MouseEvent | CdkScrollable>;
98
+ closingActions(): import("rxjs").Observable<void | CdkScrollable | MouseEvent>;
99
+ private hideIfNotInViewPort;
98
100
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqPopoverTrigger, never>;
99
101
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqPopoverTrigger, "[kbqPopover]", ["kbqPopover"], { "popoverVisible": { "alias": "kbqPopoverVisible"; "required": false; }; "popoverPlacement": { "alias": "kbqPopoverPlacement"; "required": false; }; "popoverPlacementPriority": { "alias": "kbqPopoverPlacementPriority"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "header": { "alias": "kbqPopoverHeader"; "required": false; }; "content": { "alias": "kbqPopoverContent"; "required": false; }; "footer": { "alias": "kbqPopoverFooter"; "required": false; }; "disabled": { "alias": "kbqPopoverDisabled"; "required": false; }; "trigger": { "alias": "kbqTrigger"; "required": false; }; "size": { "alias": "kbqPopoverSize"; "required": false; }; "customClass": { "alias": "kbqPopoverClass"; "required": false; }; "hasCloseButton": { "alias": "hasCloseButton"; "required": false; }; "closeOnScroll": { "alias": "closeOnScroll"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "arrow": { "alias": "kbqPopoverArrow"; "required": false; }; "offset": { "alias": "kbqPopoverOffset"; "required": false; }; }, { "placementChange": "kbqPopoverPlacementChange"; "visibleChange": "kbqPopoverVisibleChange"; }, never, never, false, never>;
100
102
  static ngAcceptInputType_arrow: unknown;