@koobiq/components 19.0.0 → 19.2.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 (106) hide show
  1. package/app-switcher/app-switcher.d.ts +11 -4
  2. package/checkbox/checkbox.scss +5 -21
  3. package/core/locales/en-US.d.ts +8 -4
  4. package/core/locales/es-LA.d.ts +8 -4
  5. package/core/locales/locale-service.d.ts +40 -20
  6. package/core/locales/pt-BR.d.ts +8 -4
  7. package/core/locales/ru-RU.d.ts +8 -4
  8. package/core/locales/tk-TM.d.ts +8 -4
  9. package/core/locales/types.d.ts +17 -0
  10. package/core/option/option.d.ts +1 -0
  11. package/core/styles/common/_animation.scss +2 -1
  12. package/core/styles/common/_visually-hidden.scss +1 -0
  13. package/core/styles/theming/_scrollbar-theme.scss +1 -0
  14. package/datepicker/datepicker-input.directive.d.ts +1 -1
  15. package/dropdown/dropdown.scss +3 -1
  16. package/fesm2022/koobiq-components-app-switcher.mjs +60 -30
  17. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  18. package/fesm2022/koobiq-components-button.mjs +2 -2
  19. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  20. package/fesm2022/koobiq-components-checkbox.mjs +2 -2
  21. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  22. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  23. package/fesm2022/koobiq-components-core.mjs +61 -39
  24. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  25. package/fesm2022/koobiq-components-datepicker.mjs +0 -1
  26. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  27. package/fesm2022/koobiq-components-dropdown.mjs +2 -2
  28. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  29. package/fesm2022/koobiq-components-file-upload.mjs +114 -80
  30. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  31. package/fesm2022/koobiq-components-filter-bar.mjs +161 -64
  32. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  33. package/fesm2022/koobiq-components-form-field.mjs +1 -1
  34. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  35. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  36. package/fesm2022/koobiq-components-loader-overlay.mjs +2 -2
  37. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  38. package/fesm2022/koobiq-components-modal.mjs +2 -2
  39. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  40. package/fesm2022/koobiq-components-navbar-ic.mjs.map +1 -1
  41. package/fesm2022/koobiq-components-navbar.mjs +6 -6
  42. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  43. package/fesm2022/koobiq-components-popover.mjs +8 -4
  44. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  45. package/fesm2022/koobiq-components-progress-spinner.mjs +3 -2
  46. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  47. package/fesm2022/koobiq-components-risk-level.mjs +6 -0
  48. package/fesm2022/koobiq-components-risk-level.mjs.map +1 -1
  49. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  50. package/fesm2022/koobiq-components-select.mjs +4 -2
  51. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  52. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  53. package/fesm2022/koobiq-components-sidepanel.mjs +2 -2
  54. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  55. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  56. package/fesm2022/koobiq-components-timepicker.mjs +3 -4
  57. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  58. package/fesm2022/koobiq-components-title.mjs +17 -4
  59. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  60. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  61. package/fesm2022/koobiq-components-toggle.mjs +2 -2
  62. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  63. package/fesm2022/koobiq-components-tooltip.mjs +2 -2
  64. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  65. package/fesm2022/koobiq-components-tree.mjs +8 -8
  66. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  67. package/fesm2022/koobiq-components-username.mjs +2 -2
  68. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  69. package/file-upload/_file-upload-theme.scss +0 -256
  70. package/file-upload/file-upload-tokens.scss +25 -18
  71. package/file-upload/file-upload.d.ts +22 -3
  72. package/file-upload/file-upload.scss +8 -4
  73. package/file-upload/multiple-file-upload.component.d.ts +17 -33
  74. package/file-upload/multiple-file-upload.component.scss +209 -91
  75. package/file-upload/primitives/file-drop.d.ts +1 -2
  76. package/file-upload/single-file-upload.component.d.ts +16 -13
  77. package/file-upload/single-file-upload.component.scss +117 -36
  78. package/filter-bar/filter-bar-button.d.ts +5 -0
  79. package/filter-bar/filters.d.ts +38 -6
  80. package/filter-bar/pipes/pipe-multi-select.d.ts +4 -1
  81. package/filter-bar/pipes/pipe-multi-tree-select.d.ts +5 -0
  82. package/loader-overlay/loader-overlay.scss +22 -31
  83. package/modal/modal.scss +1 -1
  84. package/navbar/_navbar-item_vertical.scss +8 -0
  85. package/navbar/navbar-brand.scss +2 -2
  86. package/package.json +6 -6
  87. package/popover/_popover-theme.scss +2 -2
  88. package/popover/popover.component.d.ts +3 -1
  89. package/progress-spinner/_progress-spinner-theme.scss +14 -4
  90. package/progress-spinner/progress-spinner-tokens.scss +2 -0
  91. package/progress-spinner/progress-spinner.scss +1 -1
  92. package/risk-level/risk-level.component.d.ts +3 -0
  93. package/risk-level/risk-level.module.d.ts +3 -0
  94. package/schematics/migrations/new-icons-pack/README.md +52 -4
  95. package/schematics/migrations/new-icons-pack/data.js +1142 -1142
  96. package/schematics/migrations/new-icons-pack/index.js +18 -7
  97. package/schematics/migrations/new-icons-pack/migration.json +4570 -0
  98. package/schematics/migrations/new-icons-pack/replacement.json +18 -0
  99. package/schematics/migrations/new-icons-pack/schema.json +13 -0
  100. package/schematics/ng-add/index.js +4 -4
  101. package/timepicker/timepicker.directive.d.ts +2 -2
  102. package/title/title.directive.d.ts +3 -0
  103. package/tooltip/_tooltip-theme.scss +5 -6
  104. package/tooltip/tooltip.scss +1 -0
  105. package/tree/_tree-theme.scss +11 -5
  106. package/tree/tree-option.scss +2 -1
@@ -1,54 +1,135 @@
1
1
  @use '../core/styles/common/tokens' as *;
2
2
 
3
- .kbq-single-file-upload .kbq-file-upload {
4
- padding: kbq-difference-series-css-variables(
5
- [ file-upload-size-single-container-padding-vertical,
6
- file-upload-size-single-container-border-width]
7
- )
8
- kbq-difference-series-css-variables(
9
- [ file-upload-size-single-container-padding-horizontal,
10
- file-upload-size-single-container-border-width]
11
- );
12
- min-height: var(--kbq-file-upload-single-min-height);
13
-
14
- border-radius: var(--kbq-file-upload-size-single-container-border-radius);
15
- border-width: var(--kbq-file-upload-size-single-container-border-width);
16
- border-style: dashed;
17
-
18
- & .kbq-file-dropzone__text {
19
- padding-top: var(--kbq-file-upload-size-single-text-block-padding-vertical);
20
-
21
- padding-bottom: var(--kbq-file-upload-size-single-text-block-padding-vertical);
22
-
23
- gap: var(--kbq-file-upload-size-single-text-block-content-gap-horizontal);
3
+ @mixin _kbq-single-file-upload-theme() {
4
+ background-color: var(--kbq-file-upload-single-default-container-background);
5
+ border-color: var(--kbq-file-upload-single-default-container-border) !important;
6
+
7
+ &:not(.kbq-disabled, .kbq-error) {
8
+ .kbq-file-upload__dropzone-icon {
9
+ color: var(--kbq-file-upload-single-default-dropzone-icon-color);
10
+ }
11
+
12
+ .kbq-file-item__text-wrapper .kbq-icon.kbq-empty {
13
+ color: var(--kbq-file-upload-single-default-left-icon-color);
14
+ }
15
+
16
+ .kbq-file-item__size {
17
+ color: var(--kbq-file-upload-single-default-file-size-text-color);
18
+ }
24
19
  }
25
20
 
26
- & .kbq-file-dropzone {
27
- gap: var(--kbq-file-upload-size-single-container-content-gap-horizontal);
21
+ &.kbq-file-drop_dragover {
22
+ background-color: var(--kbq-file-upload-single-states-on-drag-container-background);
23
+ border-color: var(--kbq-file-upload-single-states-on-drag-container-border) !important;
28
24
  }
29
25
 
30
- .kbq-file-item {
31
- width: 100%;
26
+ &.kbq-error:not(.kbq-disabled) {
27
+ &:not(.kbq-file-drop_dragover) {
28
+ background-color: var(--kbq-file-upload-single-states-error-container-background);
29
+ border-color: var(--kbq-file-upload-single-states-error-container-border) !important;
30
+ }
32
31
 
33
- .kbq-file-item__text-wrapper {
34
- display: flex;
35
- align-items: center;
36
- width: 100%;
32
+ .kbq-file-upload__dropzone-icon {
33
+ color: var(--kbq-file-upload-single-states-error-dropzone-icon-color);
34
+ }
37
35
 
38
- gap: var(--kbq-file-upload-size-single-container-content-gap-horizontal);
36
+ .kbq-file-item__text-wrapper .kbq-icon.kbq-empty {
37
+ color: var(--kbq-file-upload-single-states-error-left-icon-color);
38
+ }
39
39
 
40
- .kbq-file-item__text {
41
- width: 120px;
42
- flex-grow: 1;
43
- }
40
+ .kbq-file-item__text,
41
+ .kbq-file-upload__dropzone-caption:not(.kbq-link) {
42
+ color: var(--kbq-file-upload-single-states-error-text-block-color);
43
+ }
44
+
45
+ .kbq-file-item__size {
46
+ color: var(--kbq-file-upload-single-states-error-file-size-text-color);
47
+ }
48
+ }
49
+
50
+ &.kbq-disabled {
51
+ background-color: var(--kbq-file-upload-single-states-disabled-container-background);
52
+ border-color: var(--kbq-file-upload-single-states-disabled-container-border) !important;
53
+
54
+ .kbq-file-upload__dropzone-icon {
55
+ color: var(--kbq-file-upload-single-states-disabled-dropzone-icon-color);
56
+ }
57
+
58
+ .kbq-file-item__text-wrapper .kbq-icon.kbq-empty {
59
+ color: var(--kbq-file-upload-single-states-disabled-left-icon-color);
60
+ }
61
+
62
+ .kbq-file-upload__dropzone-caption,
63
+ .kbq-file-item__text {
64
+ color: var(--kbq-file-upload-single-states-disabled-text-block-color);
44
65
  }
45
66
 
46
67
  .kbq-file-item__size {
47
- padding: 0 var(--kbq-size-s);
68
+ color: var(--kbq-file-upload-single-states-disabled-file-size-text-color);
69
+ }
70
+ }
71
+ }
72
+
73
+ .kbq-single-file-upload {
74
+ &.kbq-single-file-upload_selected .kbq-file-upload {
75
+ .kbq-file-item {
76
+ padding: kbq-difference-series-css-variables(
77
+ [ file-upload-size-single-container-padding-vertical,
78
+ file-upload-size-single-container-border-width]
79
+ )
80
+ kbq-difference-series-css-variables(
81
+ [ file-upload-size-single-container-padding-horizontal,
82
+ file-upload-size-single-container-border-width]
83
+ );
84
+ padding-right: 0;
85
+ }
86
+ }
87
+
88
+ &:not(.kbq-single-file-upload_selected) .kbq-file-upload {
89
+ padding: calc(
90
+ var(--kbq-file-upload-size-single-container-padding-vertical) - var(
91
+ --kbq-file-upload-size-single-container-border-width
92
+ )
93
+ )
94
+ calc(
95
+ var(--kbq-file-upload-size-single-container-padding-horizontal) - var(
96
+ --kbq-file-upload-size-single-container-border-width
97
+ )
98
+ );
99
+ }
100
+
101
+ .kbq-file-upload {
102
+ min-height: var(--kbq-file-upload-single-min-height);
103
+
104
+ border-radius: var(--kbq-file-upload-size-single-container-border-radius);
105
+ border-width: var(--kbq-file-upload-size-single-container-border-width);
106
+ border-style: dashed;
107
+
108
+ .kbq-file-item {
109
+ width: 100%;
110
+
111
+ .kbq-file-item__text-wrapper {
112
+ display: flex;
113
+ align-items: center;
114
+ width: 100%;
115
+
116
+ gap: var(--kbq-file-upload-size-single-container-content-gap-horizontal);
117
+
118
+ .kbq-file-item__text {
119
+ width: 120px;
120
+ flex-grow: 1;
121
+ }
122
+ }
123
+
124
+ .kbq-file-item__size {
125
+ padding: 0 var(--kbq-size-s);
126
+ }
48
127
  }
49
128
 
50
129
  .kbq-file-upload__action {
51
- padding: var(--kbq-size-xxs);
130
+ padding: 13px;
52
131
  }
132
+
133
+ @include _kbq-single-file-upload-theme();
53
134
  }
54
135
  }
@@ -1,9 +1,14 @@
1
+ import { KbqFilters } from './filters';
1
2
  import * as i0 from "@angular/core";
2
3
  export declare class KbqFilterBarButton {
3
4
  private readonly button;
4
5
  /** KbqFilterBar instance */
5
6
  private readonly filterBar;
7
+ /** KbqFilters instance */
8
+ protected readonly filters: KbqFilters;
6
9
  constructor();
10
+ /** @docs-private */
11
+ saveFocusedElement(): void;
7
12
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqFilterBarButton, never>;
8
13
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqFilterBarButton, "[kbqFilterBarButton]", never, {}, {}, never, never, true, never>;
9
14
  }
@@ -1,12 +1,21 @@
1
- import { EventEmitter, OnInit } from '@angular/core';
1
+ import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';
2
+ import { DestroyRef, ElementRef, EventEmitter, OnInit } from '@angular/core';
2
3
  import { FormControl, UntypedFormControl } from '@angular/forms';
3
- import { KbqButtonStyles } from '@koobiq/components/button';
4
+ import { KbqButton, KbqButtonStyles } from '@koobiq/components/button';
4
5
  import { KbqComponentColors, PopUpPlacements, PopUpSizes } from '@koobiq/components/core';
6
+ import { KbqDropdownTrigger } from '@koobiq/components/dropdown';
7
+ import { KbqPopoverTrigger } from '@koobiq/components/popover';
5
8
  import { Observable } from 'rxjs';
6
9
  import { KbqFilterBar } from './filter-bar';
7
10
  import { KbqFilter, KbqSaveFilterError, KbqSaveFilterEvent } from './filter-bar.types';
8
11
  import * as i0 from "@angular/core";
9
12
  export declare class KbqFilters implements OnInit {
13
+ /** @docs-private */
14
+ protected readonly elementRef: ElementRef<any>;
15
+ /** @docs-private */
16
+ protected readonly destroyRef: DestroyRef;
17
+ /** @docs-private */
18
+ protected readonly focusMonitor: FocusMonitor;
10
19
  /** @docs-private */
11
20
  protected readonly placements: typeof PopUpPlacements;
12
21
  /** @docs-private */
@@ -17,9 +26,18 @@ export declare class KbqFilters implements OnInit {
17
26
  protected readonly filterBar: KbqFilterBar;
18
27
  /** @docs-private */
19
28
  private readonly changeDetectorRef;
20
- private button;
21
- private popover;
22
- private dropdown;
29
+ /** @docs-private */
30
+ protected mainButton: KbqButton;
31
+ /** @docs-private */
32
+ protected saveNewFilterButton: KbqButton;
33
+ /** @docs-private */
34
+ protected filterActionsButton: KbqButton;
35
+ /** @docs-private */
36
+ protected popover: KbqPopoverTrigger;
37
+ /** @docs-private */
38
+ protected dropdown: KbqDropdownTrigger;
39
+ /** @docs-private */
40
+ protected filterActionsDropdown: KbqDropdownTrigger;
23
41
  private search;
24
42
  private newFilterName;
25
43
  private saveFilterButton;
@@ -29,6 +47,8 @@ export declare class KbqFilters implements OnInit {
29
47
  filteredOptions: Observable<KbqFilter[]>;
30
48
  /** @docs-private */
31
49
  popoverSize: PopUpSizes;
50
+ /** @docs-private */
51
+ popoverOffset: number;
32
52
  /** new filter name for saving */
33
53
  filterName: FormControl<string | null>;
34
54
  /** true if saving a new filter, false if saving changes in filter */
@@ -54,6 +74,8 @@ export declare class KbqFilters implements OnInit {
54
74
  get popoverHeader(): string;
55
75
  /** Component state. true if opened dropdown or popup */
56
76
  get opened(): boolean;
77
+ /** Component state. true if opened dropdown or popup of filterActions */
78
+ get filterActionsOpened(): boolean;
57
79
  /** Selected filter */
58
80
  get filter(): KbqFilter | null;
59
81
  /** Component state. True if 'filters' input contains no elements. */
@@ -61,8 +83,15 @@ export declare class KbqFilters implements OnInit {
61
83
  /** localized data
62
84
  * @docs-private */
63
85
  get localeData(): any;
86
+ /** Current focus origin state.
87
+ * @docs-private */
88
+ get focusOrigin(): FocusOrigin;
89
+ private _focusOrigin;
90
+ private focusedElementBeforeOpen;
64
91
  constructor();
65
92
  ngOnInit(): void;
93
+ /** @docs-private */
94
+ focusedElementBeforeIs(button: KbqButton): boolean;
66
95
  selectFilter(filter: KbqFilter): void;
67
96
  saveChanges(): void;
68
97
  saveAsNew(event?: Event): void;
@@ -71,7 +100,9 @@ export declare class KbqFilters implements OnInit {
71
100
  preparePopover(): void;
72
101
  openSaveAsNewFilterPopover(): void;
73
102
  openChangeFilterNamePopover(): void;
74
- closePopover: () => void;
103
+ /** @docs-private */
104
+ saveFocusedElement(button?: KbqButton): void;
105
+ closePopover: (restoreFocus?: boolean) => void;
75
106
  /** @docs-private */
76
107
  stopEventPropagation(event: Event): void;
77
108
  /** @docs-private */
@@ -79,6 +110,7 @@ export declare class KbqFilters implements OnInit {
79
110
  /** @docs-private */
80
111
  onDropdownOpen(): void;
81
112
  resetFilterChanges(): void;
113
+ removeFilter(): void;
82
114
  /** Hide the popup and restore focus.
83
115
  * Use this method in the onSave, onSaveAsNew, or onChangeFilter events after the data has been successfully saved. */
84
116
  filterSavedSuccessfully(): void;
@@ -28,6 +28,7 @@ export declare class KbqPipeMultiSelectComponent extends KbqBasePipe<KbqSelectVa
28
28
  get selectedAllEqualsSelectedNothing(): boolean;
29
29
  private get visibleOptions();
30
30
  private selectionAllInProgress;
31
+ private internalSelected;
31
32
  /** @docs-private */
32
33
  ngOnInit(): void;
33
34
  ngAfterViewInit(): void;
@@ -39,14 +40,16 @@ export declare class KbqPipeMultiSelectComponent extends KbqBasePipe<KbqSelectVa
39
40
  toggleSelectionAllByEnterKey(): void;
40
41
  /** @docs-private */
41
42
  toggleSelectionAll(emitEvent?: boolean): void;
42
- private emitChangePipeEvent;
43
43
  /** Comparator of selected options */
44
44
  compareByValue: (o1: any, o2: any) => boolean;
45
45
  /** handler for select all options in select */
46
46
  selectAllHandler: (event: KeyboardEvent) => void;
47
+ /** @docs-private */
47
48
  onClose(): void;
48
49
  /** opens select */
49
50
  open(): void;
51
+ private updateInternalSelected;
52
+ private emitChangePipeEvent;
50
53
  private getFilteredOptions;
51
54
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqPipeMultiSelectComponent, never>;
52
55
  static ɵcmp: i0.ɵɵComponentDeclaration<KbqPipeMultiSelectComponent, "kbq-pipe-multi-select", never, {}, {}, never, never, true, never>;
@@ -31,6 +31,7 @@ export declare class KbqPipeMultiTreeSelectComponent extends KbqBasePipe<KbqSele
31
31
  get selectedAllEqualsSelectedNothing(): boolean;
32
32
  /** true if all visible options selected */
33
33
  get allVisibleOptionsSelected(): boolean;
34
+ private internalSelected;
34
35
  constructor();
35
36
  ngOnInit(): void;
36
37
  ngAfterViewInit(): void;
@@ -45,10 +46,14 @@ export declare class KbqPipeMultiTreeSelectComponent extends KbqBasePipe<KbqSele
45
46
  updateTemplates: (templates: KbqPipeTemplate[] | null) => void;
46
47
  /** opens select */
47
48
  open(): void;
49
+ onClear(): void;
50
+ /** @docs-private */
48
51
  onOpen(): void;
52
+ /** @docs-private */
49
53
  onClose(): void;
50
54
  /** handler for select all options in select */
51
55
  selectAllHandler: (event: KeyboardEvent) => void;
56
+ private updateInternalSelected;
52
57
  private emitChangePipeEvent;
53
58
  private toggleParents;
54
59
  private transformer;
@@ -14,6 +14,10 @@
14
14
  }
15
15
 
16
16
  .kbq-loader-overlay {
17
+ --padding-horizontal: var(--kbq-size-3xl);
18
+ --loader-margin-bottom: var(--kbq-size-xxl);
19
+ --content-gap-vertical: var(--kbq-size-l);
20
+
17
21
  position: absolute;
18
22
 
19
23
  display: flex;
@@ -41,46 +45,33 @@
41
45
  max-width: 80%;
42
46
  }
43
47
 
44
- &.kbq-loader-overlay_big {
45
- padding-left: var(--kbq-loader-overlay-size-big-overlay-padding-horizontal);
48
+ padding-left: var(--padding-horizontal);
49
+ padding-right: var(--padding-horizontal);
46
50
 
47
- padding-right: var(--kbq-loader-overlay-size-big-overlay-padding-horizontal);
51
+ .kbq-progress-spinner:has(+ .kbq-loader-overlay-text, + .kbq-loader-overlay-caption) {
52
+ margin-bottom: var(--loader-margin-bottom);
53
+ }
48
54
 
49
- .kbq-progress-spinner {
50
- margin-bottom: var(--kbq-loader-overlay-size-big-loader-margin-bottom);
51
- }
55
+ .kbq-loader-overlay-text {
56
+ margin-bottom: var(--content-gap-vertical);
57
+ }
52
58
 
53
- .kbq-loader-overlay-text {
54
- margin-bottom: var(--kbq-loader-overlay-size-big-content-content-gap-vertical);
55
- }
59
+ &.kbq-loader-overlay_big {
60
+ --padding-horizontal: var(--kbq-loader-overlay-size-big-overlay-padding-horizontal);
61
+ --loader-margin-bottom: var(--kbq-loader-overlay-size-big-loader-margin-bottom);
62
+ --content-gap-vertical: var(--kbq-loader-overlay-size-big-content-content-gap-vertical);
56
63
  }
57
64
 
58
65
  &.kbq-loader-overlay_normal {
59
- padding-left: var(--kbq-loader-overlay-size-normal-overlay-padding-horizontal);
60
-
61
- padding-right: var(--kbq-loader-overlay-size-normal-overlay-padding-horizontal);
62
-
63
- .kbq-progress-spinner {
64
- margin-bottom: var(--kbq-loader-overlay-size-normal-loader-margin-bottom);
65
- }
66
-
67
- .kbq-loader-overlay-text {
68
- margin-bottom: var(--kbq-loader-overlay-size-normal-content-content-gap-vertical);
69
- }
66
+ --padding-horizontal: var(--kbq-loader-overlay-size-normal-overlay-padding-horizontal);
67
+ --loader-margin-bottom: var(--kbq-loader-overlay-size-normal-loader-margin-bottom);
68
+ --content-gap-vertical: var(--kbq-loader-overlay-size-normal-content-content-gap-vertical);
70
69
  }
71
70
 
72
71
  &.kbq-loader-overlay_compact {
73
- padding-left: var(--kbq-loader-overlay-size-compact-overlay-padding-horizontal);
74
-
75
- padding-right: var(--kbq-loader-overlay-size-compact-overlay-padding-horizontal);
76
-
77
- .kbq-progress-spinner {
78
- margin-bottom: var(--kbq-loader-overlay-size-compact-loader-margin-bottom);
79
- }
80
-
81
- .kbq-loader-overlay-text {
82
- margin-bottom: var(--kbq-loader-overlay-size-compact-content-content-gap-vertical);
83
- }
72
+ --padding-horizontal: var(--kbq-loader-overlay-size-compact-overlay-padding-horizontal);
73
+ --loader-margin-bottom: var(--kbq-loader-overlay-size-compact-loader-margin-bottom);
74
+ --content-gap-vertical: var(--kbq-loader-overlay-size-compact-content-content-gap-vertical);
84
75
  }
85
76
  }
86
77
 
package/modal/modal.scss CHANGED
@@ -110,7 +110,7 @@
110
110
  padding: var(--kbq-modal-size-content-padding-top-without-header) var(--kbq-modal-size-content-padding-horizontal)
111
111
  var(--kbq-modal-size-content-padding-bottom) var(--kbq-modal-size-content-padding-horizontal);
112
112
 
113
- word-wrap: break-word;
113
+ overflow-wrap: break-word;
114
114
 
115
115
  & > * {
116
116
  position: relative;
@@ -31,6 +31,14 @@
31
31
  top: var(--kbq-size-s);
32
32
  bottom: 0;
33
33
  }
34
+
35
+ & + .kbq-navbar-brand.kbq-vertical {
36
+ padding: var(--kbq-size-xxs) var(--kbq-size-m) var(--kbq-size-m);
37
+
38
+ &:after {
39
+ top: 0;
40
+ }
41
+ }
34
42
  }
35
43
 
36
44
  &.kbq-expanded {
@@ -54,10 +54,10 @@ a.kbq-navbar-brand {
54
54
  flex-direction: row;
55
55
  align-items: center;
56
56
 
57
- padding: var(--kbq-size-xxs) var(--kbq-size-m) var(--kbq-size-m);
57
+ padding: var(--kbq-size-m);
58
58
 
59
59
  &:after {
60
- top: 0;
60
+ top: var(--kbq-size-s);
61
61
  right: var(--kbq-size-s);
62
62
  bottom: var(--kbq-size-s);
63
63
  left: var(--kbq-size-s);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koobiq/components",
3
- "version": "19.0.0",
3
+ "version": "19.2.0",
4
4
  "description": "koobiq",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,9 +24,9 @@
24
24
  "@angular/cdk": "^19.0.0",
25
25
  "@angular/core": "^19.0.0",
26
26
  "@angular/forms": "^19.0.0",
27
- "@koobiq/cdk": "19.0.0",
28
- "@koobiq/angular-moment-adapter": "19.0.0",
29
- "@koobiq/angular-luxon-adapter": "19.0.0",
27
+ "@koobiq/cdk": "19.2.0",
28
+ "@koobiq/angular-moment-adapter": "19.2.0",
29
+ "@koobiq/angular-luxon-adapter": "19.2.0",
30
30
  "@koobiq/date-formatter": "^3.2.3",
31
31
  "@koobiq/icons": "^11.1.3",
32
32
  "@koobiq/tokens-builder": "3.11.0",
@@ -319,7 +319,7 @@
319
319
  }
320
320
  },
321
321
  "schematics": "./schematics/collection.json",
322
+ "sideEffects": false,
322
323
  "module": "fesm2022/koobiq-components.mjs",
323
- "typings": "index.d.ts",
324
- "sideEffects": false
324
+ "typings": "index.d.ts"
325
325
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  @mixin kbq-popover-theme() {
4
4
  .kbq-popover {
5
- box-shadow: var(--kbq-popover-borderless-shadow);
5
+ box-shadow: var(--kbq-popover-container-shadow);
6
6
 
7
7
  &.kbq-popover_arrowless {
8
8
  box-shadow: var(--kbq-popover-container-shadow);
@@ -14,7 +14,7 @@
14
14
  }
15
15
 
16
16
  .kbq-popover__arrow {
17
- box-shadow: var(--kbq-popover-borderless-shadow);
17
+ box-shadow: var(--kbq-popover-container-shadow);
18
18
  background: var(--kbq-popover-container-background);
19
19
  }
20
20
 
@@ -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, OnInit, TemplateRef, Type } from '@angular/core';
3
+ import { AfterContentInit, AfterViewInit, DestroyRef, ElementRef, EventEmitter, InjectionToken, OnInit, TemplateRef, Type } from '@angular/core';
4
4
  import { KbqComponentColors, KbqPopUp, KbqPopUpPlacementValues, KbqPopUpSizeValues, KbqPopUpTrigger, KbqStickToWindowPlacementValues } from '@koobiq/components/core';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare const defaultOffsetYWithArrow = 8;
@@ -94,6 +94,8 @@ export declare class KbqPopoverTrigger extends KbqPopUpTrigger<KbqPopoverCompone
94
94
  set closeOnScroll(value: boolean);
95
95
  private _closeOnScroll;
96
96
  get hasClickTrigger(): boolean;
97
+ /** @docs-private */
98
+ get instanceDestroyRef(): DestroyRef;
97
99
  backdropClass: string;
98
100
  arrow: boolean;
99
101
  offset: number | null;
@@ -1,9 +1,19 @@
1
- @use '../core/styles/common/tokens' as *;
1
+ @use '../core/styles/common/tokens';
2
2
 
3
3
  @mixin kbq-progress-spinner-theme() {
4
4
  .kbq-progress-spinner {
5
+ --stroke: var(--kbq-progress-spinner-circle-background);
6
+
5
7
  .kbq-progress-spinner__circle {
6
- stroke: var(--kbq-progress-spinner-circle-background);
8
+ stroke: var(--stroke);
9
+ }
10
+
11
+ &.kbq-contrast {
12
+ --stroke: var(--kbq-progress-spinner-circle-contrast-background);
13
+ }
14
+
15
+ &.kbq-contrast-fade {
16
+ --stroke: var(--kbq-progress-spinner-circle-contrast-fade-background);
7
17
  }
8
18
  }
9
19
 
@@ -18,10 +28,10 @@
18
28
 
19
29
  @mixin kbq-progress-spinner-typography() {
20
30
  .kbq-progress-spinner-text {
21
- @include kbq-typography-level-to-styles-css-variables(typography, text-normal);
31
+ @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-normal);
22
32
  }
23
33
 
24
34
  .kbq-progress-spinner-caption {
25
- @include kbq-typography-level-to-styles-css-variables(typography, text-compact);
35
+ @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-compact);
26
36
  }
27
37
  }
@@ -9,6 +9,8 @@
9
9
  --kbq-progress-spinner-size-big-content-gap-horizontal: var(--kbq-size-s);
10
10
  /* THEME TOKENS */
11
11
  --kbq-progress-spinner-circle-background: var(--kbq-icon-theme);
12
+ --kbq-progress-spinner-circle-contrast-background: var(--kbq-icon-contrast);
13
+ --kbq-progress-spinner-circle-contrast-fade-background: var(--kbq-icon-contrast-fade);
12
14
  --kbq-progress-spinner-text-color: var(--kbq-foreground-contrast);
13
15
  --kbq-progress-spinner-caption-color: var(--kbq-foreground-contrast-secondary);
14
16
  }
@@ -13,7 +13,7 @@
13
13
  .kbq-progress-spinner {
14
14
  display: flex;
15
15
  flex-direction: row;
16
- overflow-y: hidden;
16
+ overflow: hidden;
17
17
  }
18
18
 
19
19
  .kbq-progress-spinner__circle {
@@ -8,6 +8,9 @@ export declare enum KbqRiskLevelColors {
8
8
  Warning = "warning",
9
9
  Error = "error"
10
10
  }
11
+ /**
12
+ * @deprecated Will be removed in next major release, use `KbqBadgeModule` instead.
13
+ */
11
14
  export declare class KbqRiskLevel {
12
15
  outline: boolean;
13
16
  get riskLevelColor(): string;
@@ -2,6 +2,9 @@ import * as i0 from "@angular/core";
2
2
  import * as i1 from "@angular/cdk/a11y";
3
3
  import * as i2 from "@angular/cdk/platform";
4
4
  import * as i3 from "./risk-level.component";
5
+ /**
6
+ * @deprecated Will be removed in next major release, use `KbqBadgeModule` instead.
7
+ */
5
8
  export declare class KbqRiskLevelModule {
6
9
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqRiskLevelModule, never>;
7
10
  static ɵmod: i0.ɵɵNgModuleDeclaration<KbqRiskLevelModule, never, [typeof i1.A11yModule, typeof i2.PlatformModule, typeof i3.KbqRiskLevel], [typeof i3.KbqRiskLevel]>;
@@ -2,20 +2,68 @@
2
2
 
3
3
  This schematic provides migration for update icons pack. It includes:
4
4
 
5
- - Change prefixes from `mc` to `kbq` for ts, html, styles
5
+ - Change prefixes from `mc` to `kbq` for TS, HTML, and styles
6
6
  - Update icon names for updated/removed icons according to [mapping](data.ts)
7
7
  - Fix icons package prefix in styles
8
+ - Optionally use custom migration and replacement data
8
9
 
9
- [Params](schema.ts)
10
+ ---
10
11
 
11
- Usage for Angular Cli:
12
+ ### Parameters
13
+
14
+ The schematic supports the following options:
15
+
16
+ - **`--fix`** (`boolean`)
17
+ Applies fixes automatically without prompting.
18
+
19
+ - **`--project`** (`string`)
20
+ Target Angular/Nx project name.
21
+
22
+ - **`--update-prefix`** (`boolean`)
23
+ Whether to change icon prefixes during migration.
24
+
25
+ - **`--custom-data-path`** (`string`)
26
+ Path to a custom migration data file.
27
+ When provided, use `migration.json` file as a default.
28
+ Use this option if you want to override the default icon mapping data.
29
+
30
+ - **`--custom-icon-replacement-path`** (`string`)
31
+ Path to a custom icon attributes replacement file.
32
+ When provided, use `replacement.json` file as a default.
33
+ Use this option to customize how icon attributes are replaced during migration.
34
+
35
+ The schema definition can be found in [`schema.ts`](schema.ts).
36
+
37
+ ### Usage
38
+
39
+ #### Angular CLI
12
40
 
13
41
  ```shell
14
42
  ng g @koobiq/components:new-icons-pack --fix=true --project <your project>
15
43
  ```
16
44
 
17
- Usage for Nx:
45
+ #### Angular CLI with custom data
46
+
47
+ ```shell
48
+ ng g @koobiq/components:new-icons-pack \
49
+ --custom-data-path migration.json \
50
+ --custom-icon-replacement-path replacement.json \
51
+ --fix=true \
52
+ --project <your-project>
53
+ ```
54
+
55
+ #### Nx
18
56
 
19
57
  ```shell
20
58
  nx g @koobiq/components:new-icons-pack --fix=true --project <your project>
21
59
  ```
60
+
61
+ #### Nx with custom data
62
+
63
+ ```shell
64
+ nx g @koobiq/components:new-icons-pack \
65
+ --custom-data-path migration.json \
66
+ --custom-icon-replacement-path replacement.json \
67
+ --fix=true \
68
+ --project <your-project>
69
+ ```