@koobiq/components 17.3.0 → 17.4.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 (42) hide show
  1. package/alert/alert.component.scss +6 -6
  2. package/code-block/_code-block-theme.scss +212 -212
  3. package/core/styles/theming/_theming.scss +1 -0
  4. package/datepicker/calendar-header.component.d.ts +1 -0
  5. package/esm2022/core/version.mjs +2 -2
  6. package/esm2022/datepicker/calendar-header.component.mjs +7 -3
  7. package/esm2022/form-field/stepper.mjs +2 -2
  8. package/esm2022/markdown/markdown.component.mjs +2 -2
  9. package/esm2022/modal/modal-ref.class.mjs +1 -1
  10. package/esm2022/modal/modal.service.mjs +4 -6
  11. package/esm2022/modal/modal.type.mjs +1 -1
  12. package/esm2022/popover/popover-confirm.component.mjs +3 -3
  13. package/esm2022/popover/popover.component.mjs +58 -14
  14. package/esm2022/popover/popover.module.mjs +6 -4
  15. package/fesm2022/koobiq-components-core.mjs +1 -1
  16. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  17. package/fesm2022/koobiq-components-datepicker.mjs +6 -2
  18. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  19. package/fesm2022/koobiq-components-form-field.mjs +2 -2
  20. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  21. package/fesm2022/koobiq-components-markdown.mjs +2 -2
  22. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  23. package/fesm2022/koobiq-components-modal.mjs +3 -5
  24. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  25. package/fesm2022/koobiq-components-popover.mjs +68 -24
  26. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  27. package/form-field/stepper.scss +4 -0
  28. package/markdown/markdown.scss +5 -6
  29. package/modal/modal-ref.class.d.ts +2 -2
  30. package/modal/modal.service.d.ts +9 -9
  31. package/modal/modal.type.d.ts +6 -6
  32. package/navbar/_navbar-theme.scss +2 -2
  33. package/package.json +12 -8
  34. package/popover/_popover-theme.scss +5 -0
  35. package/popover/popover.component.d.ts +17 -4
  36. package/popover/popover.module.d.ts +3 -1
  37. package/popover/popover.scss +32 -0
  38. package/prebuilt-themes/dark-theme.css +1 -1
  39. package/prebuilt-themes/light-theme.css +1 -1
  40. package/schematics/ng-add/index.js +4 -4
  41. package/splitter/splitter.scss +3 -3
  42. package/table/_table-theme.scss +2 -2
@@ -20,7 +20,6 @@ $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);
26
25
  }
@@ -38,14 +37,12 @@ $tokens: meta.module-variables(tokens) !default;
38
37
  }
39
38
 
40
39
  .kbq-markdown__p {
41
- max-width: kbq-css-variable(markdown-p-size-max-width);
42
40
  margin-top: kbq-css-variable(markdown-p-size-margin-top);
43
41
  margin-bottom: kbq-css-variable(markdown-p-size-margin-bottom);
44
42
  }
45
43
 
46
44
  .kbq-markdown__ul,
47
45
  .kbq-markdown__ol {
48
- max-width: kbq-css-variable(markdown-list-size-max-width);
49
46
  margin-top: kbq-css-variable(markdown-list-size-margin-top);
50
47
  margin-bottom: kbq-css-variable(markdown-list-size-margin-bottom);
51
48
 
@@ -93,7 +90,6 @@ $tokens: meta.module-variables(tokens) !default;
93
90
  }
94
91
 
95
92
  .kbq-markdown__blockquote {
96
- max-width: kbq-css-variable(markdown-blockquote-size-max-width);
97
93
  margin-top: kbq-css-variable(markdown-blockquote-size-margin-top);
98
94
  margin-left: 0;
99
95
  margin-bottom: kbq-css-variable(markdown-blockquote-size-margin-bottom);
@@ -129,12 +125,11 @@ $tokens: meta.module-variables(tokens) !default;
129
125
  }
130
126
 
131
127
  .kbq-markdown__p > .kbq-markdown__code {
132
- max-width: kbq-css-variable(markdown-code-size-max-width);
133
128
  padding: kbq-css-variable(markdown-code-size-inline-padding);
134
129
  }
135
130
 
136
131
  .kbq-markdown__img {
137
- max-width: kbq-css-variable(markdown-image-size-max-width);
132
+ max-width: 100%;
138
133
  margin-top: kbq-css-variable(markdown-image-size-margin-top);
139
134
  margin-bottom: kbq-css-variable(markdown-image-size-margin-bottom);
140
135
 
@@ -197,3 +192,7 @@ $tokens: meta.module-variables(tokens) !default;
197
192
  }
198
193
  }
199
194
  }
195
+
196
+ .docs-live-example.kbq-markdown {
197
+ margin-bottom: 128px;
198
+ }
@@ -4,7 +4,7 @@ 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 = any> {
8
8
  abstract afterOpen: Observable<void>;
9
9
  abstract afterClose: Observable<R>;
10
10
  abstract open(): 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
  */
@@ -6,7 +6,8 @@ import { KbqModalComponent } from './modal.component';
6
6
  import { ConfirmType, IModalOptionsForService } from './modal.type';
7
7
  import * as i0 from "@angular/core";
8
8
  export declare class ModalBuilderForService {
9
- private overlay;
9
+ private readonly overlay;
10
+ readonly options: IModalOptionsForService;
10
11
  private modalRef;
11
12
  private overlayRef;
12
13
  constructor(overlay: Overlay, options?: IModalOptionsForService);
@@ -16,18 +17,17 @@ export declare class ModalBuilderForService {
16
17
  private createModal;
17
18
  }
18
19
  export declare class KbqModalService {
19
- private overlay;
20
- private modalControl;
20
+ private readonly overlay;
21
+ private readonly modalControl;
21
22
  get openModals(): KbqModalRef[];
22
23
  get afterAllClose(): Observable<void>;
23
24
  constructor(overlay: Overlay, modalControl: KbqModalControlService);
24
25
  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;
26
+ create<C, R>(options?: IModalOptionsForService<C>): KbqModalRef<C, R>;
27
+ confirm<C, R>(options?: IModalOptionsForService<C>, confirmType?: ConfirmType): KbqModalRef<C, R>;
28
+ open<C, R>(options?: IModalOptionsForService<C>): KbqModalRef<C, R>;
29
+ success<C, R>(options?: IModalOptionsForService<C>): KbqModalRef<C, R>;
30
+ delete<C, R>(options?: IModalOptionsForService<C>): KbqModalRef<C, R>;
31
31
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqModalService, never>;
32
32
  static ɵprov: i0.ɵɵInjectableDeclaration<KbqModalService>;
33
33
  }
@@ -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,15 @@ 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
22
  kbqComponentParams?: any;
23
23
  kbqClosable?: boolean;
24
24
  kbqMask?: boolean;
25
25
  kbqMaskClosable?: boolean;
26
26
  kbqMaskStyle?: object;
27
27
  kbqBodyStyle?: object;
28
- kbqFooter?: string | TemplateRef<{}> | IModalButtonOptions<T>[];
28
+ kbqFooter?: string | TemplateRef<{}> | IModalButtonOptions<C>[];
29
29
  kbqGetContainer?: HTMLElement | OverlayRef | (() => HTMLElement | OverlayRef) | null;
30
30
  kbqAfterOpen?: EventEmitter<void>;
31
31
  kbqAfterClose?: EventEmitter<R>;
@@ -34,10 +34,10 @@ export interface ModalOptions<T = any, R = any> {
34
34
  kbqOkText?: string;
35
35
  kbqOkType?: string;
36
36
  kbqOkLoading?: boolean;
37
- kbqOnOk?: EventEmitter<T> | OnClickCallback<T>;
37
+ kbqOnOk?: EventEmitter<C> | OnClickCallback<C>;
38
38
  kbqCancelText?: string;
39
39
  kbqCancelLoading?: boolean;
40
- kbqOnCancel?: EventEmitter<T> | OnClickCallback<T>;
40
+ kbqOnCancel?: EventEmitter<C> | OnClickCallback<C>;
41
41
  }
42
42
  export interface IModalOptionsForService<T = any> extends ModalOptions<T> {
43
43
  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 {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koobiq/components",
3
- "version": "17.3.0",
3
+ "version": "17.4.0",
4
4
  "description": "koobiq",
5
5
  "repository": {
6
6
  "type": "git",
@@ -8,8 +8,12 @@
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": {
@@ -19,13 +23,13 @@
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.4.0",
27
+ "@koobiq/angular-moment-adapter": "17.4.0",
28
+ "@koobiq/angular-luxon-adapter": "17.4.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.4.0",
32
+ "@koobiq/design-tokens": "3.4.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,16 +1,26 @@
1
1
  import { Directionality } from '@angular/cdk/bidi';
2
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';
3
+ import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, InjectionToken, NgZone, TemplateRef, Type, ViewContainerRef } from '@angular/core';
4
+ import { KbqComponentColors, KbqPopUp, KbqPopUpTrigger, PopUpPlacements, PopUpSizes } from '@koobiq/components/core';
5
5
  import * as i0 from "@angular/core";
6
- export declare class KbqPopoverComponent extends KbqPopUp {
6
+ export declare class KbqPopoverComponent extends KbqPopUp implements AfterViewInit {
7
7
  prefix: string;
8
8
  header: string | TemplateRef<any>;
9
9
  footer: string | TemplateRef<any>;
10
10
  isTrapFocus: boolean;
11
+ hasCloseButton: boolean;
12
+ popoverContent: ElementRef<HTMLDivElement>;
13
+ private debounceTime;
14
+ private readonly destroyRef;
15
+ isContentTopOverflow: boolean;
16
+ isContentBottomOverflow: boolean;
11
17
  constructor(changeDetectorRef: ChangeDetectorRef);
18
+ ngAfterViewInit(): void;
19
+ onContentChange(): void;
20
+ checkContentOverflow(contentElement: HTMLElement): void;
12
21
  updateClassMap(placement: string, customClass: string, size: PopUpSizes): void;
13
22
  updateTrapFocus(isTrapFocus: boolean): void;
23
+ protected readonly componentColors: typeof KbqComponentColors;
14
24
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqPopoverComponent, never>;
15
25
  static ɵcmp: i0.ɵɵComponentDeclaration<KbqPopoverComponent, "kbq-popover-component", never, {}, {}, never, never, false, never>;
16
26
  }
@@ -53,6 +63,9 @@ export declare class KbqPopoverTrigger extends KbqPopUpTrigger<KbqPopoverCompone
53
63
  private _size;
54
64
  get customClass(): string;
55
65
  set customClass(value: string);
66
+ get hasCloseButton(): boolean;
67
+ set hasCloseButton(value: boolean);
68
+ private _hasCloseButton;
56
69
  /**
57
70
  * Controls the behavior of closing the component on scroll.
58
71
  * The default value is `false`.
@@ -77,5 +90,5 @@ export declare class KbqPopoverTrigger extends KbqPopUpTrigger<KbqPopoverCompone
77
90
  closingActionsForClick(): import("rxjs").Observable<MouseEvent>[];
78
91
  closingActions(): import("rxjs").Observable<void | MouseEvent | CdkScrollable>;
79
92
  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>;
93
+ 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
94
  }
@@ -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
+ }