@koobiq/components 17.3.0 → 17.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/alert/_alert-theme.scss +16 -20
  2. package/alert/alert-tokens.scss +132 -0
  3. package/alert/alert.component.scss +11 -6
  4. package/autocomplete/_autocomplete-theme.scss +3 -5
  5. package/autocomplete/autocomplete-tokens.scss +16 -0
  6. package/autocomplete/autocomplete.scss +4 -0
  7. package/badge/_badge-theme.scss +22 -25
  8. package/badge/badge-tokens.scss +185 -0
  9. package/badge/badge.component.scss +5 -0
  10. package/button/_button-theme.scss +20 -29
  11. package/button/button-tokens.scss +278 -0
  12. package/button/button.scss +5 -0
  13. package/button-toggle/_button-toggle-theme.scss +16 -28
  14. package/button-toggle/button-toggle-tokens.scss +78 -0
  15. package/button-toggle/button-toggle.scss +7 -2
  16. package/checkbox/_checkbox-theme.scss +27 -58
  17. package/checkbox/checkbox-tokens.scss +140 -0
  18. package/checkbox/checkbox.scss +6 -4
  19. package/code-block/_code-block-theme.scss +212 -212
  20. package/core/highlight/_highlight-theme.scss +1 -1
  21. package/core/pop-up/pop-up-styles.d.ts +2 -2
  22. package/core/pop-up/pop-up-trigger.d.ts +8 -9
  23. package/core/pop-up/pop-up.d.ts +3 -3
  24. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +12 -15
  25. package/core/selection/pseudo-checkbox/pseudo-checkbox-tokens.scss +140 -0
  26. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +3 -2
  27. package/core/styles/_koobiq-theme.scss +3 -42
  28. package/core/styles/theming/_theming.scss +1 -0
  29. package/datepicker/_datepicker-theme.scss +17 -43
  30. package/datepicker/calendar-header.component.d.ts +1 -0
  31. package/datepicker/calendar.scss +0 -3
  32. package/datepicker/datepicker-content.scss +5 -6
  33. package/datepicker/datepicker-tokens.scss +59 -0
  34. package/dropdown/_dropdown-theme.scss +15 -24
  35. package/dropdown/dropdown-tokens.scss +111 -0
  36. package/dropdown/dropdown.scss +5 -0
  37. package/ellipsis-center/ellipsis-center.directive.d.ts +2 -6
  38. package/esm2022/alert/alert.component.mjs +3 -3
  39. package/esm2022/autocomplete/autocomplete.component.mjs +3 -3
  40. package/esm2022/badge/badge.component.mjs +3 -3
  41. package/esm2022/button/button.component.mjs +3 -3
  42. package/esm2022/button-toggle/button-toggle.component.mjs +3 -3
  43. package/esm2022/checkbox/checkbox.mjs +3 -3
  44. package/esm2022/core/common-behaviors/common-module.mjs +2 -2
  45. package/esm2022/core/pop-up/pop-up-styles.mjs +7 -9
  46. package/esm2022/core/pop-up/pop-up-trigger.mjs +13 -16
  47. package/esm2022/core/pop-up/pop-up.mjs +7 -6
  48. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +3 -3
  49. package/esm2022/core/version.mjs +2 -2
  50. package/esm2022/datepicker/calendar-header.component.mjs +7 -3
  51. package/esm2022/datepicker/datepicker.component.mjs +3 -3
  52. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  53. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +12 -23
  54. package/esm2022/form-field/form-field.mjs +3 -3
  55. package/esm2022/form-field/hint.mjs +3 -3
  56. package/esm2022/form-field/password-hint.mjs +2 -2
  57. package/esm2022/form-field/password-toggle.mjs +10 -21
  58. package/esm2022/form-field/stepper.mjs +2 -2
  59. package/esm2022/icon/icon-button.component.mjs +3 -3
  60. package/esm2022/icon/icon-item.component.mjs +3 -3
  61. package/esm2022/icon/icon.component.mjs +3 -3
  62. package/esm2022/markdown/markdown.component.mjs +2 -2
  63. package/esm2022/modal/modal-ref.class.mjs +1 -1
  64. package/esm2022/modal/modal.component.mjs +1 -1
  65. package/esm2022/modal/modal.service.mjs +19 -13
  66. package/esm2022/modal/modal.type.mjs +1 -1
  67. package/esm2022/navbar/navbar-item.component.mjs +16 -30
  68. package/esm2022/popover/popover-confirm.component.mjs +13 -22
  69. package/esm2022/popover/popover.component.mjs +71 -34
  70. package/esm2022/popover/popover.module.mjs +6 -4
  71. package/esm2022/select/select-option.directive.mjs +7 -18
  72. package/esm2022/timezone/timezone-option.directive.mjs +7 -18
  73. package/esm2022/title/title.directive.mjs +7 -18
  74. package/esm2022/tooltip/tooltip.component.mjs +26 -45
  75. package/fesm2022/koobiq-components-alert.mjs +2 -2
  76. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  77. package/fesm2022/koobiq-components-autocomplete.mjs +2 -2
  78. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  79. package/fesm2022/koobiq-components-badge.mjs +2 -2
  80. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  81. package/fesm2022/koobiq-components-button-toggle.mjs +2 -2
  82. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  83. package/fesm2022/koobiq-components-button.mjs +2 -2
  84. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  85. package/fesm2022/koobiq-components-checkbox.mjs +2 -2
  86. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  87. package/fesm2022/koobiq-components-core.mjs +29 -32
  88. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  89. package/fesm2022/koobiq-components-datepicker.mjs +8 -4
  90. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  91. package/fesm2022/koobiq-components-dropdown.mjs +2 -2
  92. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  93. package/fesm2022/koobiq-components-ellipsis-center.mjs +11 -19
  94. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  95. package/fesm2022/koobiq-components-form-field.mjs +27 -34
  96. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  97. package/fesm2022/koobiq-components-icon.mjs +6 -6
  98. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  99. package/fesm2022/koobiq-components-markdown.mjs +2 -2
  100. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  101. package/fesm2022/koobiq-components-modal.mjs +18 -12
  102. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  103. package/fesm2022/koobiq-components-navbar.mjs +14 -26
  104. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  105. package/fesm2022/koobiq-components-popover.mjs +86 -53
  106. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  107. package/fesm2022/koobiq-components-select.mjs +14 -20
  108. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  109. package/fesm2022/koobiq-components-timezone.mjs +10 -17
  110. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  111. package/fesm2022/koobiq-components-title.mjs +6 -14
  112. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  113. package/fesm2022/koobiq-components-tooltip.mjs +25 -42
  114. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  115. package/form-field/_form-field-theme.scss +21 -47
  116. package/form-field/_hint-theme.scss +13 -17
  117. package/form-field/form-field-tokens.scss +69 -0
  118. package/form-field/form-field.scss +4 -2
  119. package/form-field/hint-tokens.scss +60 -0
  120. package/form-field/hint.scss +5 -0
  121. package/form-field/password-toggle.d.ts +3 -6
  122. package/form-field/stepper.scss +4 -0
  123. package/icon/_icon-button-theme.scss +27 -65
  124. package/icon/_icon-item-theme.scss +14 -17
  125. package/icon/_icon-theme.scss +7 -12
  126. package/icon/icon-button-tokens.scss +67 -0
  127. package/icon/icon-button.scss +4 -0
  128. package/icon/icon-item-tokens.scss +52 -0
  129. package/icon/icon-item.scss +4 -0
  130. package/icon/icon-tokens.scss +17 -0
  131. package/icon/icon.scss +4 -0
  132. package/input/_input-theme.scss +1 -5
  133. package/input/input-tokens.scss +12 -0
  134. package/input/input.scss +4 -5
  135. package/link/_link-theme.scss +18 -26
  136. package/link/link-tokens.scss +67 -0
  137. package/markdown/markdown.scss +11 -6
  138. package/modal/modal-ref.class.d.ts +3 -3
  139. package/modal/modal.component.d.ts +2 -2
  140. package/modal/modal.service.d.ts +16 -11
  141. package/modal/modal.type.d.ts +9 -6
  142. package/navbar/_navbar-theme.scss +2 -2
  143. package/navbar/navbar-item.component.d.ts +5 -7
  144. package/package.json +13 -9
  145. package/popover/_popover-theme.scss +5 -0
  146. package/popover/popover-confirm.component.d.ts +3 -6
  147. package/popover/popover.component.d.ts +20 -9
  148. package/popover/popover.module.d.ts +3 -1
  149. package/popover/popover.scss +32 -0
  150. package/prebuilt-themes/dark-theme.css +1 -1
  151. package/prebuilt-themes/light-theme.css +1 -1
  152. package/schematics/ng-add/index.js +4 -4
  153. package/select/select-option.directive.d.ts +3 -6
  154. package/splitter/splitter.scss +3 -3
  155. package/table/_table-theme.scss +2 -2
  156. package/timezone/timezone-option.directive.d.ts +3 -6
  157. package/title/title.directive.d.ts +3 -6
  158. package/tooltip/tooltip.component.d.ts +8 -11
@@ -0,0 +1,67 @@
1
+ .kbq-link {
2
+ --kbq-link-size-state-focused-outline-offset: 0px;
3
+ --kbq-link-size-state-focused-outline-width: 2px;
4
+ --kbq-link-size-compact-content-padding: 2px;
5
+ --kbq-link-size-normal-content-padding: 2px;
6
+ --kbq-link-size-big-content-padding: 4px;
7
+ --kbq-link-font-compact-font-size: 12px;
8
+ --kbq-link-font-compact-line-height: 16px;
9
+ --kbq-link-font-compact-letter-spacing: normal;
10
+ --kbq-link-font-compact-font-weight: normal;
11
+ --kbq-link-font-compact-font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial,
12
+ sans-serif;
13
+ --kbq-link-font-compact-text-transform: null;
14
+ --kbq-link-font-compact-font-feature-settings: 'calt', 'kern', 'liga', 'ss01', 'ss04';
15
+ --kbq-link-font-normal-font-size: 14px;
16
+ --kbq-link-font-normal-line-height: 20px;
17
+ --kbq-link-font-normal-letter-spacing: -0.006em;
18
+ --kbq-link-font-normal-font-weight: normal;
19
+ --kbq-link-font-normal-font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial,
20
+ sans-serif;
21
+ --kbq-link-font-normal-text-transform: null;
22
+ --kbq-link-font-normal-font-feature-settings: 'calt', 'kern', 'liga', 'ss01', 'ss04';
23
+ --kbq-link-font-big-font-size: 16px;
24
+ --kbq-link-font-big-line-height: 24px;
25
+ --kbq-link-font-big-letter-spacing: -0.011em;
26
+ --kbq-link-font-big-font-weight: normal;
27
+ --kbq-link-font-big-font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial,
28
+ sans-serif;
29
+ --kbq-link-font-big-text-transform: null;
30
+ --kbq-link-font-big-font-feature-settings: 'calt', 'kern', 'liga', 'ss01', 'ss04';
31
+ }
32
+
33
+ :where(.kbq-light, .theme-light, .kbq-theme-light) {
34
+ --kbq-link-text: hsla(216, 100%, 50%, 100%);
35
+ --kbq-link-border-bottom: hsla(216, 100%, 85%, 100%);
36
+ --kbq-link-state-visited-text: hsla(277, 72%, 45%, 100%);
37
+ --kbq-link-state-visited-border-bottom: hsla(277, 72%, 80%, 100%);
38
+ --kbq-link-state-visited-hover-text: hsla(277, 72%, 40%, 100%);
39
+ --kbq-link-state-visited-hover-border-bottom: hsla(277, 72%, 80%, 100%);
40
+ --kbq-link-state-visited-active-text: hsla(277, 72%, 35%, 100%);
41
+ --kbq-link-state-visited-active-border-bottom: hsla(277, 72%, 80%, 100%);
42
+ --kbq-link-state-hover-text: hsla(216, 100%, 45%, 100%);
43
+ --kbq-link-state-hover-border-bottom: hsla(216, 100%, 85%, 100%);
44
+ --kbq-link-state-active-text: hsla(216, 100%, 40%, 100%);
45
+ --kbq-link-state-active-border-bottom: hsla(216, 100%, 85%, 100%);
46
+ --kbq-link-state-focused-outline: hsla(216, 100%, 60%, 100%);
47
+ --kbq-link-state-disabled-text: hsla(229, 15%, 15%, 32%);
48
+ --kbq-link-state-disabled-border-bottom: hsla(229, 15%, 15%, 32%);
49
+ }
50
+
51
+ :where(.kbq-dark, .theme-dark, .kbq-theme-dark) {
52
+ --kbq-link-text: hsla(216, 100%, 65%, 100%);
53
+ --kbq-link-border-bottom: hsla(216, 100%, 27%, 100%);
54
+ --kbq-link-state-visited-text: hsla(277, 72%, 50%, 100%);
55
+ --kbq-link-state-visited-border-bottom: hsla(277, 72%, 30%, 100%);
56
+ --kbq-link-state-visited-hover-text: hsla(277, 72%, 55%, 100%);
57
+ --kbq-link-state-visited-hover-border-bottom: hsla(277, 72%, 30%, 100%);
58
+ --kbq-link-state-visited-active-text: hsla(277, 72%, 60%, 100%);
59
+ --kbq-link-state-visited-active-border-bottom: hsla(277, 72%, 30%, 100%);
60
+ --kbq-link-state-hover-text: hsla(216, 100%, 65%, 100%);
61
+ --kbq-link-state-hover-border-bottom: hsla(216, 100%, 27%, 100%);
62
+ --kbq-link-state-active-text: hsla(216, 100%, 70%, 100%);
63
+ --kbq-link-state-active-border-bottom: hsla(216, 100%, 27%, 100%);
64
+ --kbq-link-state-focused-outline: hsla(216, 100%, 60%, 100%);
65
+ --kbq-link-state-disabled-text: hsla(229, 15%, 40%, 100%);
66
+ --kbq-link-state-disabled-border-bottom: hsla(229, 15%, 50%, 32%);
67
+ }
@@ -20,9 +20,14 @@ $tokens: meta.module-variables(tokens) !default;
20
20
  // h1, h2, h3, h4, h5, h6
21
21
  @for $i from 1 through 6 {
22
22
  .kbq-markdown__h#{$i} {
23
- max-width: kbq-css-variable(markdown-h#{$i}-size-max-width);
24
23
  margin-top: kbq-css-variable(markdown-h#{$i}-size-margin-top);
25
24
  margin-bottom: kbq-css-variable(markdown-h#{$i}-size-margin-bottom);
25
+
26
+ @for $i from 1 through 6 {
27
+ & + .kbq-markdown__h#{$i} {
28
+ margin-top: 0;
29
+ }
30
+ }
26
31
  }
27
32
  }
28
33
 
@@ -38,14 +43,12 @@ $tokens: meta.module-variables(tokens) !default;
38
43
  }
39
44
 
40
45
  .kbq-markdown__p {
41
- max-width: kbq-css-variable(markdown-p-size-max-width);
42
46
  margin-top: kbq-css-variable(markdown-p-size-margin-top);
43
47
  margin-bottom: kbq-css-variable(markdown-p-size-margin-bottom);
44
48
  }
45
49
 
46
50
  .kbq-markdown__ul,
47
51
  .kbq-markdown__ol {
48
- max-width: kbq-css-variable(markdown-list-size-max-width);
49
52
  margin-top: kbq-css-variable(markdown-list-size-margin-top);
50
53
  margin-bottom: kbq-css-variable(markdown-list-size-margin-bottom);
51
54
 
@@ -93,7 +96,6 @@ $tokens: meta.module-variables(tokens) !default;
93
96
  }
94
97
 
95
98
  .kbq-markdown__blockquote {
96
- max-width: kbq-css-variable(markdown-blockquote-size-max-width);
97
99
  margin-top: kbq-css-variable(markdown-blockquote-size-margin-top);
98
100
  margin-left: 0;
99
101
  margin-bottom: kbq-css-variable(markdown-blockquote-size-margin-bottom);
@@ -129,12 +131,11 @@ $tokens: meta.module-variables(tokens) !default;
129
131
  }
130
132
 
131
133
  .kbq-markdown__p > .kbq-markdown__code {
132
- max-width: kbq-css-variable(markdown-code-size-max-width);
133
134
  padding: kbq-css-variable(markdown-code-size-inline-padding);
134
135
  }
135
136
 
136
137
  .kbq-markdown__img {
137
- max-width: kbq-css-variable(markdown-image-size-max-width);
138
+ max-width: 100%;
138
139
  margin-top: kbq-css-variable(markdown-image-size-margin-top);
139
140
  margin-bottom: kbq-css-variable(markdown-image-size-margin-bottom);
140
141
 
@@ -197,3 +198,7 @@ $tokens: meta.module-variables(tokens) !default;
197
198
  }
198
199
  }
199
200
  }
201
+
202
+ .docs-live-example.kbq-markdown {
203
+ margin-bottom: 128px;
204
+ }
@@ -4,9 +4,9 @@ import { KbqModalComponent } from './modal.component';
4
4
  * API class that public to users to handle the modal instance.
5
5
  * KbqModalRef is aim to avoid accessing to the modal instance directly by users.
6
6
  */
7
- export declare abstract class KbqModalRef<T = any, R = any> {
7
+ export declare abstract class KbqModalRef<C = any, R = unknown> {
8
8
  abstract afterOpen: Observable<void>;
9
- abstract afterClose: Observable<R>;
9
+ abstract afterClose: Observable<R | undefined>;
10
10
  abstract open(): void;
11
11
  abstract close(result?: R): void;
12
12
  abstract destroy(result?: R): void;
@@ -20,7 +20,7 @@ export declare abstract class KbqModalRef<T = any, R = any> {
20
20
  * Note: this method may return undefined if the Component has not ready yet.
21
21
  * (it only available after Modal's ngOnInit)
22
22
  */
23
- abstract getContentComponent(): T;
23
+ abstract getContentComponent(): C;
24
24
  /**
25
25
  * Get the dom element of this Modal
26
26
  */
@@ -47,7 +47,7 @@ export declare class KbqModalComponent<T = any, R = any> extends KbqModalRef<T,
47
47
  kbqMaskStyle: object;
48
48
  kbqBodyStyle: object;
49
49
  kbqAfterOpen: EventEmitter<void>;
50
- kbqAfterClose: EventEmitter<R>;
50
+ kbqAfterClose: EventEmitter<R | undefined>;
51
51
  kbqOkText: string;
52
52
  kbqOkType: KbqComponentColors;
53
53
  kbqRestoreFocus: boolean;
@@ -70,7 +70,7 @@ export declare class KbqModalComponent<T = any, R = any> extends KbqModalRef<T,
70
70
  modalAnimationClassMap: object;
71
71
  transformOrigin: string;
72
72
  get afterOpen(): Observable<void>;
73
- get afterClose(): Observable<R>;
73
+ get afterClose(): Observable<R | undefined>;
74
74
  get okText(): string;
75
75
  get cancelText(): string;
76
76
  get hidden(): boolean;
@@ -1,33 +1,38 @@
1
1
  import { Overlay } from '@angular/cdk/overlay';
2
+ import { InjectionToken, Injector } from '@angular/core';
2
3
  import { Observable } from 'rxjs';
3
4
  import { KbqModalControlService } from './modal-control.service';
4
5
  import { KbqModalRef } from './modal-ref.class';
5
6
  import { KbqModalComponent } from './modal.component';
6
7
  import { ConfirmType, IModalOptionsForService } from './modal.type';
7
8
  import * as i0 from "@angular/core";
9
+ /** Injection token that can be used to access the data that was passed in to a modal. */
10
+ export declare const KBQ_MODAL_DATA: InjectionToken<unknown>;
8
11
  export declare class ModalBuilderForService {
9
- private overlay;
12
+ private readonly overlay;
13
+ readonly options: IModalOptionsForService;
14
+ private readonly injector;
10
15
  private modalRef;
11
16
  private overlayRef;
12
- constructor(overlay: Overlay, options?: IModalOptionsForService);
17
+ constructor(overlay: Overlay, options: IModalOptionsForService, injector: Injector);
13
18
  getInstance(): KbqModalComponent | null;
14
19
  destroyModal(): void;
15
20
  private changeProps;
16
21
  private createModal;
17
22
  }
18
23
  export declare class KbqModalService {
19
- private overlay;
20
- private modalControl;
24
+ private readonly overlay;
25
+ private readonly modalControl;
26
+ private injector;
21
27
  get openModals(): KbqModalRef[];
22
28
  get afterAllClose(): Observable<void>;
23
- constructor(overlay: Overlay, modalControl: KbqModalControlService);
29
+ constructor(overlay: Overlay, modalControl: KbqModalControlService, injector: Injector);
24
30
  closeAll(): void;
25
- create<T>(options?: IModalOptionsForService<T>): KbqModalRef<T>;
26
- confirm<T>(options?: IModalOptionsForService<T>, confirmType?: ConfirmType): KbqModalRef<T>;
27
- open<T>(options?: IModalOptionsForService<T>): KbqModalRef<T>;
28
- success<T>(options?: IModalOptionsForService<T>): KbqModalRef<T>;
29
- delete<T>(options?: IModalOptionsForService<T>): KbqModalRef<T>;
30
- private simpleConfirm;
31
+ create<C, R = unknown>(options?: IModalOptionsForService<C>): KbqModalRef<C, R>;
32
+ confirm<C, R = unknown>(options?: IModalOptionsForService<C>, confirmType?: ConfirmType): KbqModalRef<C, R>;
33
+ open<C, R = unknown>(options?: IModalOptionsForService<C>): KbqModalRef<C, R>;
34
+ success<C, R = unknown>(options?: IModalOptionsForService<C>): KbqModalRef<C, R>;
35
+ delete<C, R = unknown>(options?: IModalOptionsForService<C>): KbqModalRef<C, R>;
31
36
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqModalService, never>;
32
37
  static ɵprov: i0.ɵɵInjectableDeclaration<KbqModalService>;
33
38
  }
@@ -8,7 +8,7 @@ export declare enum ModalSize {
8
8
  Medium = "medium",
9
9
  Large = "large"
10
10
  }
11
- export interface ModalOptions<T = any, R = any> {
11
+ export interface ModalOptions<C = any, R = any> {
12
12
  kbqModalType?: ModalType;
13
13
  kbqVisible?: boolean;
14
14
  kbqWidth?: number | string;
@@ -17,15 +17,16 @@ export interface ModalOptions<T = any, R = any> {
17
17
  kbqClassName?: string;
18
18
  kbqStyle?: object;
19
19
  kbqTitle?: string | TemplateRef<{}>;
20
- kbqContent?: string | TemplateRef<{}> | Type<T>;
21
- kbqComponent?: Type<T>;
20
+ kbqContent?: string | TemplateRef<{}> | Type<C>;
21
+ kbqComponent?: Type<C>;
22
+ /** deprecated. Use field data and KBQ_MODAL_DATA */
22
23
  kbqComponentParams?: any;
23
24
  kbqClosable?: boolean;
24
25
  kbqMask?: boolean;
25
26
  kbqMaskClosable?: boolean;
26
27
  kbqMaskStyle?: object;
27
28
  kbqBodyStyle?: object;
28
- kbqFooter?: string | TemplateRef<{}> | IModalButtonOptions<T>[];
29
+ kbqFooter?: string | TemplateRef<{}> | IModalButtonOptions<C>[];
29
30
  kbqGetContainer?: HTMLElement | OverlayRef | (() => HTMLElement | OverlayRef) | null;
30
31
  kbqAfterOpen?: EventEmitter<void>;
31
32
  kbqAfterClose?: EventEmitter<R>;
@@ -34,10 +35,12 @@ export interface ModalOptions<T = any, R = any> {
34
35
  kbqOkText?: string;
35
36
  kbqOkType?: string;
36
37
  kbqOkLoading?: boolean;
37
- kbqOnOk?: EventEmitter<T> | OnClickCallback<T>;
38
+ kbqOnOk?: EventEmitter<C> | OnClickCallback<C>;
38
39
  kbqCancelText?: string;
39
40
  kbqCancelLoading?: boolean;
40
- kbqOnCancel?: EventEmitter<T> | OnClickCallback<T>;
41
+ kbqOnCancel?: EventEmitter<C> | OnClickCallback<C>;
42
+ /** Data being injected into the child component. */
43
+ data?: any;
41
44
  }
42
45
  export interface IModalOptionsForService<T = any> extends ModalOptions<T> {
43
46
  kbqOnOk?: OnClickCallback<T>;
@@ -91,7 +91,7 @@
91
91
  }
92
92
 
93
93
  .kbq-navbar-divider {
94
- background: kbq-css-variable(line-contrast-fade, map.get($theme, line, contrast-fade));
94
+ background: kbq-css-variable(line-contrast-less, map.get($theme, line, contrast-less));
95
95
  }
96
96
  }
97
97
 
@@ -106,7 +106,7 @@ button {
106
106
 
107
107
  @mixin kbq-navbar-typography($config) {
108
108
  .kbq-navbar-title {
109
- @include kbq-typography-level-to-styles_css-variables(typography, text-normal-strong);
109
+ @include kbq-typography-level-to-styles_css-variables(typography, text-normal-medium);
110
110
  }
111
111
 
112
112
  .kbq-navbar-brand {
@@ -1,7 +1,5 @@
1
1
  import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';
2
- import { Directionality } from '@angular/cdk/bidi';
3
- import { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';
4
- import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, NgZone, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';
2
+ import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, NgZone, OnDestroy, TemplateRef } from '@angular/core';
5
3
  import { IFocusableOption } from '@koobiq/cdk/a11y';
6
4
  import { KbqButton, KbqButtonCssStyler } from '@koobiq/components/button';
7
5
  import { KbqDropdownTrigger } from '@koobiq/components/dropdown';
@@ -128,13 +126,13 @@ export declare class KbqNavbarItem extends KbqTooltipTrigger implements AfterCon
128
126
  get showVerticalDropDownAngle(): boolean;
129
127
  get showHorizontalDropDownAngle(): boolean;
130
128
  get hasCroppedText(): boolean;
131
- constructor(rectangleElement: KbqNavbarRectangleElement, navbarFocusableItem: KbqNavbarFocusableItem, changeDetectorRef: ChangeDetectorRef, overlay: Overlay, elementRef: ElementRef, ngZone: NgZone, scrollDispatcher: ScrollDispatcher, hostView: ViewContainerRef, scrollStrategy: any, focusMonitor: FocusMonitor, direction: Directionality, dropdownTrigger: KbqDropdownTrigger, bento: KbqNavbarBento);
129
+ constructor(rectangleElement: KbqNavbarRectangleElement, navbarFocusableItem: KbqNavbarFocusableItem, changeDetectorRef: ChangeDetectorRef, dropdownTrigger: KbqDropdownTrigger, bento: KbqNavbarBento);
132
130
  ngAfterContentInit(): void;
133
131
  updateTooltip(): void;
134
132
  getTitleWidth(): number;
135
133
  onKeyDown($event: KeyboardEvent): void;
136
134
  private updateCollapsedState;
137
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarItem, [null, null, null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
135
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarItem, [null, null, null, { optional: true; }, { optional: true; }]>;
138
136
  static ɵcmp: i0.ɵɵComponentDeclaration<KbqNavbarItem, "kbq-navbar-item, [kbq-navbar-item]", ["kbqNavbarItem"], { "collapsedText": { "alias": "collapsedText"; "required": false; }; "trigger": { "alias": "kbqTrigger"; "required": false; }; "collapsable": { "alias": "collapsable"; "required": false; }; }, {}, ["title", "icon"], ["[kbq-icon]", "kbq-navbar-title, [kbq-navbar-title]", "*"], false, never>;
139
137
  }
140
138
  export declare class KbqNavbarToggle extends KbqTooltipTrigger implements OnDestroy {
@@ -146,12 +144,12 @@ export declare class KbqNavbarToggle extends KbqTooltipTrigger implements OnDest
146
144
  set content(content: string | TemplateRef<any>);
147
145
  get disabled(): boolean;
148
146
  protected modifier: TooltipModifier;
149
- constructor(navbar: KbqVerticalNavbar, changeDetectorRef: ChangeDetectorRef, overlay: Overlay, elementRef: ElementRef, ngZone: NgZone, scrollDispatcher: ScrollDispatcher, hostView: ViewContainerRef, scrollStrategy: any, focusMonitor: FocusMonitor, direction: Directionality, document: any);
147
+ constructor(navbar: KbqVerticalNavbar, changeDetectorRef: ChangeDetectorRef, document: any);
150
148
  onKeydown($event: KeyboardEvent): void;
151
149
  ngOnDestroy(): void;
152
150
  toggle: () => void;
153
151
  private getWindow;
154
152
  private windowToggleHandler;
155
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarToggle, [null, null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }]>;
153
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarToggle, [null, null, { optional: true; }]>;
156
154
  static ɵcmp: i0.ɵɵComponentDeclaration<KbqNavbarToggle, "kbq-navbar-toggle", never, { "content": { "alias": "kbqCollapsedTooltip"; "required": false; }; }, {}, ["customIcon"], ["[kbq-icon]", "kbq-navbar-title"], false, never>;
157
155
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koobiq/components",
3
- "version": "17.3.0",
3
+ "version": "17.5.0",
4
4
  "description": "koobiq",
5
5
  "repository": {
6
6
  "type": "git",
@@ -8,24 +8,28 @@
8
8
  },
9
9
  "keywords": [
10
10
  "angular",
11
- "koobiq",
12
- "components"
11
+ "component",
12
+ "service",
13
+ "directive",
14
+ "development",
15
+ "kit",
16
+ "koobiq"
13
17
  ],
14
18
  "license": "MIT",
15
19
  "bugs": {
16
20
  "url": "https://github.com/koobiq/angular-components/issues"
17
21
  },
18
- "homepage": "https://github.com/koobiq/angular-components/blob/master/README.md",
22
+ "homepage": "https://github.com/koobiq/angular-components#readme",
19
23
  "peerDependencies": {
20
24
  "@angular/cdk": "^17.0.0",
21
25
  "@angular/forms": "^17.0.0",
22
- "@koobiq/cdk": "17.3.0",
23
- "@koobiq/angular-moment-adapter": "17.3.0",
24
- "@koobiq/angular-luxon-adapter": "17.3.0",
26
+ "@koobiq/cdk": "17.5.0",
27
+ "@koobiq/angular-moment-adapter": "17.5.0",
28
+ "@koobiq/angular-luxon-adapter": "17.5.0",
25
29
  "@koobiq/date-formatter": "^3.1.2",
26
30
  "@koobiq/icons": "^7.1.0",
27
- "@koobiq/tokens-builder": "3.3.1",
28
- "@koobiq/design-tokens": "3.3.1",
31
+ "@koobiq/tokens-builder": "3.5.0",
32
+ "@koobiq/design-tokens": "3.5.0",
29
33
  "marked": "^9.0.0",
30
34
  "overlayscrollbars": "^2.2.0",
31
35
  "ngx-highlightjs": "^10.0.0"
@@ -6,6 +6,7 @@
6
6
 
7
7
  @mixin kbq-popover-theme($theme) {
8
8
  $popover: map.get(map.get($theme, components), popover);
9
+ $background: map.get($theme, background);
9
10
 
10
11
  .kbq-popover {
11
12
  box-shadow: kbq-css-variable(popover-container-box-shadow, map.get($popover, container, box-shadow));
@@ -20,6 +21,10 @@
20
21
  background: kbq-css-variable(popover-container-background, map.get($popover, container, background));
21
22
  }
22
23
 
24
+ .kbq-popover__close {
25
+ background-color: map.get($background, overlay-inverse);
26
+ }
27
+
23
28
  .kbq-popover__header {
24
29
  color: kbq-css-variable(popover-header-text-color, map.get($popover, header, text));
25
30
  }
@@ -1,6 +1,4 @@
1
- import { Directionality } from '@angular/cdk/bidi';
2
- import { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';
3
- import { ChangeDetectorRef, ElementRef, EventEmitter, InjectionToken, NgZone, ViewContainerRef } from '@angular/core';
1
+ import { EventEmitter, InjectionToken } from '@angular/core';
4
2
  import { Subject } from 'rxjs';
5
3
  import { KbqPopoverComponent, KbqPopoverTrigger } from './popover.component';
6
4
  import * as i0 from "@angular/core";
@@ -10,7 +8,6 @@ export declare class KbqPopoverConfirmComponent extends KbqPopoverComponent {
10
8
  onConfirm: Subject<void>;
11
9
  confirmButtonText: string;
12
10
  confirmText: string;
13
- constructor(changeDetectorRef: ChangeDetectorRef);
14
11
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqPopoverConfirmComponent, never>;
15
12
  static ɵcmp: i0.ɵɵComponentDeclaration<KbqPopoverConfirmComponent, "kbq-popover-confirm-component", never, {}, {}, never, never, false, never>;
16
13
  }
@@ -22,10 +19,10 @@ export declare class KbqPopoverConfirmTrigger extends KbqPopoverTrigger {
22
19
  get confirmButtonText(): string;
23
20
  set confirmButtonText(value: string);
24
21
  private _confirmButtonText;
25
- constructor(overlay: Overlay, elementRef: ElementRef, ngZone: NgZone, scrollDispatcher: ScrollDispatcher, hostView: ViewContainerRef, scrollStrategy: any, direction: Directionality, confirmText: string, confirmButtonText: string);
22
+ constructor(confirmText: string, confirmButtonText: string);
26
23
  updateData(): void;
27
24
  setupButtonEvents(): void;
28
25
  getOverlayHandleComponentType(): typeof KbqPopoverConfirmComponent;
29
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqPopoverConfirmTrigger, [null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqPopoverConfirmTrigger, [{ optional: true; }, { optional: true; }]>;
30
27
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqPopoverConfirmTrigger, "[kbqPopoverConfirm]", ["kbqPopoverConfirm"], { "confirmText": { "alias": "kbqPopoverConfirmText"; "required": false; }; "confirmButtonText": { "alias": "kbqPopoverConfirmButtonText"; "required": false; }; }, { "confirm": "confirm"; }, never, never, false, never>;
31
28
  }
@@ -1,16 +1,24 @@
1
- import { Directionality } from '@angular/cdk/bidi';
2
- import { CdkScrollable, Overlay, OverlayConfig, ScrollDispatcher, ScrollStrategy } from '@angular/cdk/overlay';
3
- import { AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, InjectionToken, NgZone, TemplateRef, Type, ViewContainerRef } from '@angular/core';
4
- import { KbqPopUp, KbqPopUpTrigger, PopUpPlacements, PopUpSizes } from '@koobiq/components/core';
1
+ import { CdkScrollable, Overlay, OverlayConfig, ScrollStrategy } from '@angular/cdk/overlay';
2
+ import { AfterContentInit, AfterViewInit, ElementRef, EventEmitter, InjectionToken, TemplateRef, Type } from '@angular/core';
3
+ import { KbqComponentColors, KbqPopUp, KbqPopUpTrigger, PopUpPlacements, PopUpSizes } from '@koobiq/components/core';
5
4
  import * as i0 from "@angular/core";
6
- export declare class KbqPopoverComponent extends KbqPopUp {
5
+ export declare class KbqPopoverComponent extends KbqPopUp implements AfterViewInit {
7
6
  prefix: string;
8
7
  header: string | TemplateRef<any>;
9
8
  footer: string | TemplateRef<any>;
10
9
  isTrapFocus: boolean;
11
- constructor(changeDetectorRef: ChangeDetectorRef);
10
+ hasCloseButton: boolean;
11
+ popoverContent: ElementRef<HTMLDivElement>;
12
+ private debounceTime;
13
+ private readonly destroyRef;
14
+ isContentTopOverflow: boolean;
15
+ isContentBottomOverflow: boolean;
16
+ ngAfterViewInit(): void;
17
+ onContentChange(): void;
18
+ checkContentOverflow(contentElement: HTMLElement): void;
12
19
  updateClassMap(placement: string, customClass: string, size: PopUpSizes): void;
13
20
  updateTrapFocus(isTrapFocus: boolean): void;
21
+ protected readonly componentColors: typeof KbqComponentColors;
14
22
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqPopoverComponent, never>;
15
23
  static ɵcmp: i0.ɵɵComponentDeclaration<KbqPopoverComponent, "kbq-popover-component", never, {}, {}, never, never, false, never>;
16
24
  }
@@ -26,6 +34,7 @@ export declare const KBQ_POPOVER_SCROLL_STRATEGY_FACTORY_PROVIDER: {
26
34
  /** Creates an error to be thrown if the user supplied an invalid popover position. */
27
35
  export declare function getKbqPopoverInvalidPositionError(position: string): Error;
28
36
  export declare class KbqPopoverTrigger extends KbqPopUpTrigger<KbqPopoverComponent> implements AfterContentInit {
37
+ protected scrollStrategy: () => ScrollStrategy;
29
38
  get popoverVisible(): boolean;
30
39
  set popoverVisible(value: boolean);
31
40
  get popoverPlacement(): PopUpPlacements;
@@ -53,6 +62,9 @@ export declare class KbqPopoverTrigger extends KbqPopUpTrigger<KbqPopoverCompone
53
62
  private _size;
54
63
  get customClass(): string;
55
64
  set customClass(value: string);
65
+ get hasCloseButton(): boolean;
66
+ set hasCloseButton(value: boolean);
67
+ private _hasCloseButton;
56
68
  /**
57
69
  * Controls the behavior of closing the component on scroll.
58
70
  * The default value is `false`.
@@ -67,7 +79,6 @@ export declare class KbqPopoverTrigger extends KbqPopUpTrigger<KbqPopoverCompone
67
79
  visibleChange: EventEmitter<boolean>;
68
80
  protected originSelector: string;
69
81
  protected get overlayConfig(): OverlayConfig;
70
- constructor(overlay: Overlay, elementRef: ElementRef, ngZone: NgZone, scrollDispatcher: ScrollDispatcher, hostView: ViewContainerRef, scrollStrategy: any, direction: Directionality);
71
82
  ngAfterContentInit(): void;
72
83
  updateData(): void;
73
84
  /** Updates the position of the current popover. */
@@ -76,6 +87,6 @@ export declare class KbqPopoverTrigger extends KbqPopUpTrigger<KbqPopoverCompone
76
87
  updateClassMap(newPlacement?: string): void;
77
88
  closingActionsForClick(): import("rxjs").Observable<MouseEvent>[];
78
89
  closingActions(): import("rxjs").Observable<void | MouseEvent | CdkScrollable>;
79
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqPopoverTrigger, [null, null, null, null, null, null, { optional: true; }]>;
80
- 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; }; "closeOnScroll": { "alias": "closeOnScroll"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; }, { "placementChange": "kbqPopoverPlacementChange"; "visibleChange": "kbqPopoverVisibleChange"; }, never, never, false, never>;
90
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqPopoverTrigger, never>;
91
+ 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; }; }, { "placementChange": "kbqPopoverPlacementChange"; "visibleChange": "kbqPopoverVisibleChange"; }, never, never, false, never>;
81
92
  }
@@ -5,8 +5,10 @@ import * as i3 from "@angular/common";
5
5
  import * as i4 from "@angular/cdk/overlay";
6
6
  import * as i5 from "@koobiq/components/button";
7
7
  import * as i6 from "@angular/cdk/a11y";
8
+ import * as i7 from "@koobiq/components/icon";
9
+ import * as i8 from "@angular/cdk/observers";
8
10
  export declare class KbqPopoverModule {
9
11
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqPopoverModule, never>;
10
- static ɵmod: i0.ɵɵNgModuleDeclaration<KbqPopoverModule, [typeof i1.KbqPopoverComponent, typeof i1.KbqPopoverTrigger, typeof i2.KbqPopoverConfirmComponent, typeof i2.KbqPopoverConfirmTrigger], [typeof i3.CommonModule, typeof i4.OverlayModule, typeof i5.KbqButtonModule, typeof i6.A11yModule], [typeof i1.KbqPopoverComponent, typeof i1.KbqPopoverTrigger, typeof i2.KbqPopoverConfirmComponent, typeof i2.KbqPopoverConfirmTrigger]>;
12
+ static ɵmod: i0.ɵɵNgModuleDeclaration<KbqPopoverModule, [typeof i1.KbqPopoverComponent, typeof i1.KbqPopoverTrigger, typeof i2.KbqPopoverConfirmComponent, typeof i2.KbqPopoverConfirmTrigger], [typeof i3.CommonModule, typeof i4.OverlayModule, typeof i5.KbqButtonModule, typeof i6.A11yModule, typeof i7.KbqIconModule, typeof i8.CdkObserveContent], [typeof i1.KbqPopoverComponent, typeof i1.KbqPopoverTrigger, typeof i2.KbqPopoverConfirmComponent, typeof i2.KbqPopoverConfirmTrigger]>;
11
13
  static ɵinj: i0.ɵɵInjectorDeclaration<KbqPopoverModule>;
12
14
  }
@@ -69,6 +69,18 @@ $trigger-margin: 9px;
69
69
  }
70
70
  }
71
71
 
72
+ .kbq-popover__content .kbq-popover__close-container {
73
+ display: flex;
74
+ justify-content: flex-end;
75
+ height: 0;
76
+
77
+ .kbq-popover__close {
78
+ top: auto;
79
+ right: auto;
80
+ transform: translateY(-50%) translateX(50%);
81
+ }
82
+ }
83
+
72
84
  .kbq-popover__header {
73
85
  display: flex;
74
86
  align-items: center;
@@ -83,11 +95,23 @@ $trigger-margin: 9px;
83
95
  }
84
96
  }
85
97
 
98
+ .kbq-popover__header_top-overflow {
99
+ box-shadow: 0 9px 8px -12px rgba(138, 143, 168, 1);
100
+ }
101
+
102
+ .kbq-popover__header_with-close-button {
103
+ padding-right: kbq-css-variable(size-4xl);
104
+ }
105
+
86
106
  .kbq-popover__footer {
87
107
  padding: kbq-css-variable(popover-size-footer-padding-vertical)
88
108
  kbq-css-variable(popover-size-footer-padding-horizontal);
89
109
  }
90
110
 
111
+ .kbq-popover__footer_bottom-overflow {
112
+ box-shadow: 0 -9px 8px -12px rgba(138, 143, 168, 1);
113
+ }
114
+
91
115
  .kbq-popover__arrow {
92
116
  position: absolute;
93
117
 
@@ -103,3 +127,11 @@ $arrow-offset: calc(($arrow-size - 1px) / -2);
103
127
  $arrow-padding: calc(18px - $trigger-margin);
104
128
 
105
129
  @include pop-up.popup-arrow-positions(kbq-popover, $arrow-offset, $arrow-padding);
130
+
131
+ .kbq-popover__close {
132
+ position: absolute;
133
+ z-index: 2;
134
+ top: kbq-css-variable(size-s);
135
+ right: kbq-css-variable(size-s);
136
+ border-radius: kbq-css-variable(button-size-border-radius);
137
+ }