@koobiq/components 19.0.0 → 19.1.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 (80) hide show
  1. package/app-switcher/app-switcher.d.ts +4 -3
  2. package/checkbox/checkbox.scss +5 -21
  3. package/core/locales/en-US.d.ts +8 -0
  4. package/core/locales/es-LA.d.ts +8 -0
  5. package/core/locales/locale-service.d.ts +40 -0
  6. package/core/locales/pt-BR.d.ts +8 -0
  7. package/core/locales/ru-RU.d.ts +8 -0
  8. package/core/locales/tk-TM.d.ts +8 -0
  9. package/core/locales/types.d.ts +21 -0
  10. package/core/option/option.d.ts +1 -0
  11. package/core/styles/common/_visually-hidden.scss +1 -0
  12. package/core/styles/theming/_scrollbar-theme.scss +1 -0
  13. package/datepicker/datepicker-input.directive.d.ts +1 -1
  14. package/fesm2022/koobiq-components-app-switcher.mjs +19 -16
  15. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  16. package/fesm2022/koobiq-components-checkbox.mjs +2 -2
  17. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  18. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  19. package/fesm2022/koobiq-components-core.mjs +54 -12
  20. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  21. package/fesm2022/koobiq-components-datepicker.mjs +0 -1
  22. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  23. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  24. package/fesm2022/koobiq-components-file-upload.mjs +106 -64
  25. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  26. package/fesm2022/koobiq-components-filter-bar.mjs +75 -38
  27. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  28. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  29. package/fesm2022/koobiq-components-loader-overlay.mjs +2 -2
  30. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  31. package/fesm2022/koobiq-components-modal.mjs +2 -2
  32. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  33. package/fesm2022/koobiq-components-navbar-ic.mjs.map +1 -1
  34. package/fesm2022/koobiq-components-popover.mjs +4 -4
  35. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  36. package/fesm2022/koobiq-components-progress-spinner.mjs +3 -2
  37. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  38. package/fesm2022/koobiq-components-risk-level.mjs +6 -0
  39. package/fesm2022/koobiq-components-risk-level.mjs.map +1 -1
  40. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  41. package/fesm2022/koobiq-components-select.mjs +4 -2
  42. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  43. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  44. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  45. package/fesm2022/koobiq-components-timepicker.mjs +3 -4
  46. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  47. package/fesm2022/koobiq-components-title.mjs +15 -2
  48. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  49. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  50. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  51. package/fesm2022/koobiq-components-tooltip.mjs +2 -2
  52. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  53. package/fesm2022/koobiq-components-tree.mjs +2 -2
  54. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  55. package/file-upload/file-upload.d.ts +22 -3
  56. package/file-upload/multiple-file-upload.component.d.ts +15 -27
  57. package/file-upload/single-file-upload.component.d.ts +16 -12
  58. package/filter-bar/pipes/pipe-multi-select.d.ts +4 -1
  59. package/filter-bar/pipes/pipe-multi-tree-select.d.ts +5 -0
  60. package/loader-overlay/loader-overlay.scss +22 -31
  61. package/modal/modal.scss +1 -1
  62. package/package.json +6 -6
  63. package/popover/_popover-theme.scss +2 -2
  64. package/progress-spinner/_progress-spinner-theme.scss +14 -4
  65. package/progress-spinner/progress-spinner-tokens.scss +2 -0
  66. package/progress-spinner/progress-spinner.scss +1 -1
  67. package/risk-level/risk-level.component.d.ts +3 -0
  68. package/risk-level/risk-level.module.d.ts +3 -0
  69. package/schematics/migrations/new-icons-pack/README.md +52 -4
  70. package/schematics/migrations/new-icons-pack/data.js +1142 -1142
  71. package/schematics/migrations/new-icons-pack/index.js +18 -7
  72. package/schematics/migrations/new-icons-pack/migration.json +4570 -0
  73. package/schematics/migrations/new-icons-pack/replacement.json +18 -0
  74. package/schematics/migrations/new-icons-pack/schema.json +13 -0
  75. package/schematics/ng-add/index.js +4 -4
  76. package/timepicker/timepicker.directive.d.ts +2 -2
  77. package/title/title.directive.d.ts +3 -0
  78. package/tooltip/_tooltip-theme.scss +5 -6
  79. package/tooltip/tooltip.scss +1 -0
  80. package/tree/tree-option.scss +1 -1
@@ -1,6 +1,6 @@
1
1
  import { ChangeDetectorRef, DestroyRef, ElementRef, InjectionToken, InputSignal, Renderer2 } from '@angular/core';
2
2
  import { FormGroupDirective, NgControl, NgForm } from '@angular/forms';
3
- import { CanUpdateErrorState, ErrorStateMatcher } from '@koobiq/components/core';
3
+ import { CanUpdateErrorState, ErrorStateMatcher, KbqBaseFileUploadLocaleConfig, KbqEnumValues, KbqMultipleFileUploadLocaleConfig } from '@koobiq/components/core';
4
4
  import { BehaviorSubject, Subject } from 'rxjs';
5
5
  import { KbqFileList, KbqFileUploadContext } from './primitives';
6
6
  export interface KbqFile extends File {
@@ -22,20 +22,39 @@ export interface KbqInputFile {
22
22
  onFileSelectedViaClick(event: Event): void;
23
23
  onFileDropped(files: FileList | KbqFile[]): void;
24
24
  }
25
+ /**
26
+ * @docs-private
27
+ * @deprecated Will be removed in next major release
28
+ */
25
29
  export interface KbqInputFileLabel {
26
30
  captionText: string;
27
31
  browseLink: string;
28
32
  title?: string | undefined;
29
33
  }
34
+ /** Upload modes enum. */
35
+ export declare enum KbqFileUploadAllowedType {
36
+ File = "file",
37
+ Folder = "folder",
38
+ Mixed = "mixed"
39
+ }
40
+ /** Allowed upload modes for the upload component. */
41
+ export type KbqFileUploadAllowedTypeValues = KbqEnumValues<KbqFileUploadAllowedType>;
42
+ /** @docs-private */
43
+ export type KbqFileUploadCaptionContext = {
44
+ captionText: string;
45
+ browseLink?: string;
46
+ captionTextSeparator?: string;
47
+ browseLinkFolder?: string;
48
+ };
30
49
  /**
31
50
  * @deprecated use FormControl for validation
32
51
  */
33
52
  export type KbqFileValidatorFn = (file: File) => string | null;
34
- export declare const KBQ_FILE_UPLOAD_CONFIGURATION: InjectionToken<KbqInputFileLabel>;
53
+ export declare const KBQ_FILE_UPLOAD_CONFIGURATION: InjectionToken<KbqBaseFileUploadLocaleConfig | KbqMultipleFileUploadLocaleConfig>;
35
54
  /** @deprecated use `FileValidators.isCorrectExtension` instead. Will be removed in next major release. */
36
55
  export declare const isCorrectExtension: (file: File, accept?: string[]) => boolean;
37
56
  /** @docs-private */
38
- export declare abstract class KbqFileUploadBase<T = KbqInputFileLabel> implements CanUpdateErrorState {
57
+ export declare abstract class KbqFileUploadBase<T = KbqBaseFileUploadLocaleConfig> implements CanUpdateErrorState {
39
58
  protected abstract localeConfig: InputSignal<Partial<T> | undefined>;
40
59
  /** Tracks whether the component is in an error state based on the control, parent form,
41
60
  * and `errorStateMatcher`, triggering visual updates and state changes if needed. */
@@ -1,22 +1,16 @@
1
1
  import { FocusOrigin } from '@angular/cdk/a11y';
2
2
  import { AfterViewInit, DoCheck, ElementRef, EventEmitter, QueryList, TemplateRef } from '@angular/core';
3
3
  import { ControlValueAccessor } from '@angular/forms';
4
- import { ErrorStateMatcher } from '@koobiq/components/core';
4
+ import { ErrorStateMatcher, KbqMultipleFileUploadLocaleConfig } from '@koobiq/components/core';
5
5
  import { ProgressSpinnerMode } from '@koobiq/components/progress-spinner';
6
- import { KbqFile, KbqFileItem, KbqFileUploadBase, KbqFileValidatorFn, KbqInputFileLabel } from './file-upload';
6
+ import { KbqFile, KbqFileItem, KbqFileUploadBase, KbqFileUploadCaptionContext, KbqFileValidatorFn } from './file-upload';
7
7
  import { KbqFileLoader } from './primitives';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "./primitives/file-picker";
10
- export interface KbqInputFileMultipleLabel extends KbqInputFileLabel {
11
- captionTextWhenSelected: string;
12
- captionTextForCompactSize: string;
13
- gridHeaders: {
14
- file: string;
15
- size: string;
16
- };
10
+ export interface KbqInputFileMultipleLabel extends KbqMultipleFileUploadLocaleConfig {
17
11
  [k: string | number | symbol]: unknown;
18
12
  }
19
- export declare const KBQ_MULTIPLE_FILE_UPLOAD_DEFAULT_CONFIGURATION: KbqInputFileMultipleLabel;
13
+ export declare const KBQ_MULTIPLE_FILE_UPLOAD_DEFAULT_CONFIGURATION: KbqMultipleFileUploadLocaleConfig;
20
14
  export declare class KbqMultipleFileUploadComponent extends KbqFileUploadBase implements AfterViewInit, ControlValueAccessor, DoCheck {
21
15
  /**
22
16
  * A value responsible for progress spinner type.
@@ -41,8 +35,13 @@ export declare class KbqMultipleFileUploadComponent extends KbqFileUploadBase im
41
35
  errorStateMatcher: ErrorStateMatcher;
42
36
  get files(): KbqFileItem[];
43
37
  set files(currentFileList: KbqFileItem[]);
38
+ /**
39
+ * Determines which kind of items the upload component can accept.
40
+ * @default mixed
41
+ */
42
+ allowed: import("@angular/core").InputSignal<"file" | "folder" | "mixed">;
44
43
  /** Optional configuration to override default labels with localized text.*/
45
- readonly localeConfig: import("@angular/core").InputSignal<Partial<KbqInputFileMultipleLabel> | undefined>;
44
+ readonly localeConfig: import("@angular/core").InputSignal<Partial<KbqMultipleFileUploadLocaleConfig> | undefined>;
46
45
  /** Emits an event containing updated file list.
47
46
  * public output will be renamed to filesChange in next major release (#DS-3700) */
48
47
  readonly filesChange: EventEmitter<KbqFileItem[]>;
@@ -65,18 +64,9 @@ export declare class KbqMultipleFileUploadComponent extends KbqFileUploadBase im
65
64
  /** @docs-private */
66
65
  hasFocus: boolean;
67
66
  /** @docs-private */
68
- columnDefs: {
69
- header: string;
70
- cssClass: string;
71
- }[];
72
- /** @docs-private */
73
- config: KbqInputFileMultipleLabel;
74
- /** @docs-private */
75
- separatedCaptionText: string[];
76
- /** @docs-private */
77
- separatedCaptionTextWhenSelected: string[];
67
+ readonly resolvedLocaleConfig: import("@angular/core").Signal<KbqMultipleFileUploadLocaleConfig>;
78
68
  /** @docs-private */
79
- separatedCaptionTextForCompactSize: string[];
69
+ protected readonly captionContext: import("@angular/core").Signal<KbqFileUploadCaptionContext>;
80
70
  /** cvaOnChange function registered via registerOnChange (ControlValueAccessor).
81
71
  * @docs-private
82
72
  */
@@ -106,7 +96,8 @@ export declare class KbqMultipleFileUploadComponent extends KbqFileUploadBase im
106
96
  */
107
97
  protected get fileSizeCellMaxWidth(): number;
108
98
  /** @docs-private */
109
- readonly configuration: KbqInputFileMultipleLabel | null;
99
+ readonly configuration: KbqMultipleFileUploadLocaleConfig | null;
100
+ private readonly localeId;
110
101
  private readonly focusMonitor;
111
102
  private readonly platformId;
112
103
  constructor();
@@ -133,12 +124,9 @@ export declare class KbqMultipleFileUploadComponent extends KbqFileUploadBase im
133
124
  onFileDropped(files: KbqFile[]): void;
134
125
  /** @docs-private */
135
126
  deleteFile(index: number, event?: MouseEvent, origin?: FocusOrigin): void;
136
- private updateLocaleParams;
137
127
  private mapToFileItem;
138
128
  private validateFile;
139
- private initDefaultParams;
140
- private getCaptionText;
141
129
  private onFileAdded;
142
130
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqMultipleFileUploadComponent, never>;
143
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqMultipleFileUploadComponent, "kbq-multiple-file-upload,kbq-file-upload[multiple]", never, { "progressMode": { "alias": "progressMode"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "size": { "alias": "size"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "customValidation": { "alias": "customValidation"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "files": { "alias": "files"; "required": false; }; "localeConfig": { "alias": "localeConfig"; "required": false; "isSignal": true; }; }, { "filesChange": "fileQueueChanged"; "filesAdded": "filesAdded"; "fileRemoved": "fileRemoved"; }, ["customFileIcon", "hint"], ["kbq-hint"], true, [{ directive: typeof i1.KbqFileUploadContext; inputs: { "id": "id"; "disabled": "disabled"; "onlyDirectory": "onlyDirectory"; }; outputs: {}; }, { directive: typeof i1.KbqFileList; inputs: {}; outputs: { "listChange": "filesChange"; "itemsAdded": "itemsAdded"; "itemRemoved": "itemRemoved"; }; }]>;
131
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqMultipleFileUploadComponent, "kbq-multiple-file-upload,kbq-file-upload[multiple]", never, { "progressMode": { "alias": "progressMode"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "size": { "alias": "size"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "customValidation": { "alias": "customValidation"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "files": { "alias": "files"; "required": false; }; "allowed": { "alias": "allowed"; "required": false; "isSignal": true; }; "localeConfig": { "alias": "localeConfig"; "required": false; "isSignal": true; }; }, { "filesChange": "fileQueueChanged"; "filesAdded": "filesAdded"; "fileRemoved": "fileRemoved"; }, ["customFileIcon", "hint"], ["kbq-hint"], true, [{ directive: typeof i1.KbqFileUploadContext; inputs: { "id": "id"; "disabled": "disabled"; }; outputs: {}; }, { directive: typeof i1.KbqFileList; inputs: {}; outputs: { "listChange": "filesChange"; "itemsAdded": "itemsAdded"; "itemRemoved": "itemRemoved"; }; }]>;
144
132
  }
@@ -1,13 +1,13 @@
1
1
  import { FocusOrigin } from '@angular/cdk/a11y';
2
2
  import { AfterViewInit, DoCheck, ElementRef, EventEmitter } from '@angular/core';
3
3
  import { ControlValueAccessor } from '@angular/forms';
4
- import { ErrorStateMatcher } from '@koobiq/components/core';
4
+ import { ErrorStateMatcher, KbqBaseFileUploadLocaleConfig, KbqFileUploadLocaleConfig } from '@koobiq/components/core';
5
5
  import { ProgressSpinnerMode } from '@koobiq/components/progress-spinner';
6
- import { KbqFile, KbqFileItem, KbqFileUploadBase, KbqFileValidatorFn, KbqInputFileLabel } from './file-upload';
6
+ import { KbqFile, KbqFileItem, KbqFileUploadBase, KbqFileUploadCaptionContext, KbqFileValidatorFn } from './file-upload';
7
7
  import { KbqFileLoader } from './primitives';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "./primitives/file-picker";
10
- export declare const KBQ_SINGLE_FILE_UPLOAD_DEFAULT_CONFIGURATION: KbqInputFileLabel;
10
+ export declare const KBQ_SINGLE_FILE_UPLOAD_DEFAULT_CONFIGURATION: KbqFileUploadLocaleConfig['single'];
11
11
  export declare class KbqSingleFileUploadComponent extends KbqFileUploadBase implements AfterViewInit, ControlValueAccessor, DoCheck {
12
12
  /**
13
13
  * A value responsible for progress spinner type.
@@ -33,8 +33,13 @@ export declare class KbqSingleFileUploadComponent extends KbqFileUploadBase impl
33
33
  * @default true
34
34
  */
35
35
  showFileSize: boolean;
36
+ /**
37
+ * Determines which kind of items the upload component can accept.
38
+ * @default mixed
39
+ */
40
+ allowed: import("@angular/core").InputSignal<"file" | "folder" | "mixed">;
36
41
  /** Optional configuration to override default labels with localized text.*/
37
- readonly localeConfig: import("@angular/core").InputSignal<Partial<KbqInputFileLabel> | undefined>;
42
+ readonly localeConfig: import("@angular/core").InputSignal<Partial<KbqBaseFileUploadLocaleConfig> | undefined>;
38
43
  /** Emits an event containing updated file.
39
44
  * public output will be renamed to fileChange in next major release (#DS-3700) */
40
45
  readonly fileChange: EventEmitter<KbqFileItem | null>;
@@ -43,9 +48,6 @@ export declare class KbqSingleFileUploadComponent extends KbqFileUploadBase impl
43
48
  /** @docs-private */
44
49
  private readonly hint;
45
50
  /** @docs-private */
46
- config: KbqInputFileLabel;
47
- /** @docs-private */
48
- separatedCaptionText: string[];
49
51
  /** cvaOnChange function registered via registerOnChange (ControlValueAccessor).
50
52
  * @docs-private
51
53
  */
@@ -67,7 +69,12 @@ export declare class KbqSingleFileUploadComponent extends KbqFileUploadBase impl
67
69
  */
68
70
  get invalid(): boolean;
69
71
  /** @docs-private */
70
- readonly configuration: KbqInputFileLabel | null;
72
+ readonly configuration: KbqBaseFileUploadLocaleConfig | null;
73
+ /** @docs-private */
74
+ protected readonly captionContext: import("@angular/core").Signal<KbqFileUploadCaptionContext>;
75
+ private readonly localeId;
76
+ /** @docs-private */
77
+ readonly resolvedLocaleConfig: import("@angular/core").Signal<KbqBaseFileUploadLocaleConfig>;
71
78
  private readonly focusMonitor;
72
79
  private readonly platformId;
73
80
  constructor();
@@ -94,12 +101,9 @@ export declare class KbqSingleFileUploadComponent extends KbqFileUploadBase impl
94
101
  onFileDropped(files: KbqFile[]): void;
95
102
  /** @docs-private */
96
103
  deleteItem(event?: MouseEvent, origin?: FocusOrigin): void;
97
- private updateLocaleParams;
98
104
  private mapToFileItem;
99
105
  private validateFile;
100
- private initDefaultParams;
101
- private getCaptionText;
102
106
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSingleFileUploadComponent, never>;
103
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqSingleFileUploadComponent, "kbq-single-file-upload,kbq-file-upload:not([multiple])", never, { "progressMode": { "alias": "progressMode"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "customValidation": { "alias": "customValidation"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "file": { "alias": "file"; "required": false; }; "showFileSize": { "alias": "showFileSize"; "required": false; }; "localeConfig": { "alias": "localeConfig"; "required": false; "isSignal": true; }; }, { "fileChange": "fileQueueChange"; }, ["hint"], ["[kbq-icon]", "kbq-hint"], true, [{ directive: typeof i1.KbqFileUploadContext; inputs: { "id": "id"; "disabled": "disabled"; "multiple": "multiple"; "onlyDirectory": "onlyDirectory"; }; outputs: {}; }, { directive: typeof i1.KbqFileList; inputs: {}; outputs: { "listChange": "fileChange"; }; }]>;
107
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqSingleFileUploadComponent, "kbq-single-file-upload,kbq-file-upload:not([multiple])", never, { "progressMode": { "alias": "progressMode"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "customValidation": { "alias": "customValidation"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "file": { "alias": "file"; "required": false; }; "showFileSize": { "alias": "showFileSize"; "required": false; }; "allowed": { "alias": "allowed"; "required": false; "isSignal": true; }; "localeConfig": { "alias": "localeConfig"; "required": false; "isSignal": true; }; }, { "fileChange": "fileQueueChange"; }, ["hint"], ["[kbq-icon]", "kbq-hint"], true, [{ directive: typeof i1.KbqFileUploadContext; inputs: { "id": "id"; "disabled": "disabled"; "multiple": "multiple"; }; outputs: {}; }, { directive: typeof i1.KbqFileList; inputs: {}; outputs: { "listChange": "fileChange"; }; }]>;
104
108
  static ngAcceptInputType_showFileSize: unknown;
105
109
  }
@@ -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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koobiq/components",
3
- "version": "19.0.0",
3
+ "version": "19.1.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.1.0",
28
+ "@koobiq/angular-moment-adapter": "19.1.0",
29
+ "@koobiq/angular-luxon-adapter": "19.1.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,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
+ ```