@koobiq/components 18.37.0 → 18.38.1

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 (75) hide show
  1. package/core/locales/en-US.d.ts +6 -0
  2. package/core/locales/es-LA.d.ts +6 -0
  3. package/core/locales/formatters.d.ts +1 -0
  4. package/core/locales/locale-service.d.ts +37 -5
  5. package/core/locales/pt-BR.d.ts +6 -0
  6. package/core/locales/ru-RU.d.ts +6 -0
  7. package/core/locales/tk-TM.d.ts +6 -0
  8. package/core/pop-up/pop-up-trigger.d.ts +3 -1
  9. package/core/pop-up/pop-up.d.ts +1 -0
  10. package/core/validation/validation.d.ts +1 -1
  11. package/esm2022/core/locales/en-US.mjs +7 -1
  12. package/esm2022/core/locales/es-LA.mjs +7 -1
  13. package/esm2022/core/locales/formatters.mjs +4 -3
  14. package/esm2022/core/locales/locale-service.mjs +22 -9
  15. package/esm2022/core/locales/pt-BR.mjs +7 -1
  16. package/esm2022/core/locales/ru-RU.mjs +7 -1
  17. package/esm2022/core/locales/tk-TM.mjs +7 -1
  18. package/esm2022/core/pop-up/pop-up-trigger.mjs +1 -1
  19. package/esm2022/core/pop-up/pop-up.mjs +36 -2
  20. package/esm2022/core/validation/validation.mjs +2 -2
  21. package/esm2022/core/version.mjs +2 -2
  22. package/esm2022/dropdown/dropdown-trigger.directive.mjs +3 -2
  23. package/esm2022/filter-bar/filters.mjs +2 -2
  24. package/esm2022/filter-bar/pipes/pipe-date.mjs +2 -2
  25. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +2 -2
  26. package/esm2022/filter-bar/pipes/pipe-text.mjs +2 -2
  27. package/esm2022/input/input-number.mjs +17 -12
  28. package/esm2022/navbar/navbar-brand.component.mjs +105 -0
  29. package/esm2022/navbar/navbar-item.component.mjs +18 -168
  30. package/esm2022/navbar/navbar-toggle.component.mjs +88 -0
  31. package/esm2022/navbar/navbar.component.mjs +2 -2
  32. package/esm2022/navbar/navbar.module.mjs +4 -2
  33. package/esm2022/navbar/public-api.mjs +3 -1
  34. package/esm2022/navbar/vertical-navbar.component.mjs +28 -6
  35. package/esm2022/notification-center/notification-center.mjs +9 -33
  36. package/esm2022/popover/popover.component.mjs +9 -3
  37. package/esm2022/time-range/time-range.mjs +2 -2
  38. package/esm2022/title/title.directive.mjs +9 -2
  39. package/fesm2022/koobiq-components-core.mjs +90 -13
  40. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  41. package/fesm2022/koobiq-components-dropdown.mjs +2 -1
  42. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  43. package/fesm2022/koobiq-components-filter-bar.mjs +4 -4
  44. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  45. package/fesm2022/koobiq-components-input.mjs +16 -11
  46. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  47. package/fesm2022/koobiq-components-navbar.mjs +789 -739
  48. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  49. package/fesm2022/koobiq-components-notification-center.mjs +8 -32
  50. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  51. package/fesm2022/koobiq-components-popover.mjs +8 -2
  52. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  53. package/fesm2022/koobiq-components-time-range.mjs +1 -1
  54. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  55. package/fesm2022/koobiq-components-title.mjs +8 -1
  56. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  57. package/input/input-number.d.ts +3 -3
  58. package/navbar/_navbar-item_vertical.scss +44 -53
  59. package/navbar/_navbar-theme.scss +14 -35
  60. package/navbar/navbar-brand.component.d.ts +39 -0
  61. package/navbar/navbar-brand.scss +78 -48
  62. package/navbar/navbar-divider.scss +1 -1
  63. package/navbar/navbar-item.component.d.ts +4 -36
  64. package/navbar/navbar-toggle.component.d.ts +23 -0
  65. package/navbar/navbar-toggle.scss +64 -0
  66. package/navbar/navbar-tokens.scss +1 -0
  67. package/navbar/navbar.module.d.ts +8 -6
  68. package/navbar/public-api.d.ts +2 -0
  69. package/navbar/vertical-navbar.component.d.ts +20 -2
  70. package/navbar/vertical-navbar.scss +14 -10
  71. package/notification-center/notification-center.d.ts +12 -9
  72. package/package.json +4 -4
  73. package/popover/popover.component.d.ts +8 -1
  74. package/schematics/ng-add/index.js +2 -2
  75. package/title/title.directive.d.ts +2 -0
@@ -21,24 +21,30 @@
21
21
  }
22
22
  }
23
23
 
24
+ button {
25
+ &.kbq-navbar-item,
26
+ &.kbq-navbar-brand {
27
+ background: transparent;
28
+ border: none;
29
+ }
30
+ }
31
+
24
32
  @mixin kbq-navbar-theme() {
25
- .kbq-navbar,
26
- .kbq-vertical-navbar .kbq-vertical-navbar__container {
33
+ .kbq-navbar {
27
34
  background-color: var(--kbq-navbar-background);
28
35
  }
29
36
 
30
37
  .kbq-vertical-navbar .kbq-vertical-navbar__container {
38
+ background-color: var(--kbq-navbar-vertical-background);
31
39
  border-right: 1px solid var(--kbq-navbar-border);
32
40
  }
33
41
 
34
- .kbq-navbar-item,
35
- .kbq-navbar-brand,
36
- .kbq-navbar-toggle {
42
+ .kbq-navbar-item {
37
43
  cursor: pointer;
38
44
 
39
45
  @include kbq-navbar-item(default);
40
46
 
41
- &:hover:not(.kbq-disabled, .kbq-vertical.kbq-navbar-brand) {
47
+ &:hover:not(.kbq-disabled) {
42
48
  @include kbq-navbar-item(states-hover);
43
49
  }
44
50
 
@@ -51,8 +57,8 @@
51
57
  }
52
58
  }
53
59
 
54
- &:active:not(.kbq-disabled, .kbq-vertical.kbq-navbar-brand),
55
- &.kbq-active:not(.kbq-disabled, .kbq-vertical.kbq-navbar-brand) {
60
+ &:active:not(.kbq-disabled),
61
+ &.kbq-active:not(.kbq-disabled) {
56
62
  @include kbq-navbar-item(states-selected);
57
63
  }
58
64
 
@@ -68,40 +74,13 @@
68
74
  }
69
75
  }
70
76
 
71
- .kbq-navbar-brand.kbq-vertical:hover {
72
- .kbq-navbar-logo {
73
- transform: scale(1.06);
74
- }
75
- }
76
-
77
- .kbq-navbar-brand.kbq-horizontal:hover {
78
- .kbq-navbar-logo {
79
- z-index: 1;
80
- }
81
- }
82
-
83
77
  .kbq-navbar-divider {
84
78
  background: var(--kbq-line-contrast-less);
85
79
  }
86
80
  }
87
81
 
88
- button {
89
- &.kbq-navbar-item,
90
- &.kbq-navbar-brand,
91
- &.kbq-navbar-toggle {
92
- background: transparent;
93
- border: none;
94
- }
95
- }
96
-
97
82
  @mixin kbq-navbar-typography() {
98
83
  .kbq-navbar-title {
99
84
  @include kbq-typography-level-to-styles-css-variables(typography, text-normal-medium);
100
85
  }
101
-
102
- .kbq-navbar-brand {
103
- .kbq-navbar-title {
104
- @include kbq-typography-level-to-styles-css-variables(typography, navbar-title);
105
- }
106
- }
107
86
  }
@@ -0,0 +1,39 @@
1
+ import { AfterContentInit, ChangeDetectorRef } from '@angular/core';
2
+ import { KbqTooltipTrigger } from '@koobiq/components/tooltip';
3
+ import { KbqNavbarFocusableItem, KbqNavbarRectangleElement, KbqNavbarTitle } from './navbar-item.component';
4
+ import * as i0 from "@angular/core";
5
+ export declare class KbqNavbarBrand extends KbqTooltipTrigger implements AfterContentInit {
6
+ /** @docs-private */
7
+ protected readonly nativeElement: HTMLElement;
8
+ /** @docs-private */
9
+ protected readonly changeDetectorRef: ChangeDetectorRef;
10
+ /** @docs-private */
11
+ protected readonly rectangleElement: KbqNavbarRectangleElement;
12
+ /** @docs-private */
13
+ protected readonly navbarFocusableItem: KbqNavbarFocusableItem;
14
+ /** @docs-private */
15
+ title: KbqNavbarTitle;
16
+ /** alternative display of the brand name in two lines */
17
+ longTitle: boolean;
18
+ /** text that will be displayed in the tooltip. By default, the text is taken from kbq-navbar-title. */
19
+ collapsedText: string;
20
+ get isLink(): boolean;
21
+ /** @docs-private */
22
+ get croppedText(): string;
23
+ /** @docs-private */
24
+ get hasCroppedText(): boolean;
25
+ /** @docs-private */
26
+ get titleText(): string | null;
27
+ /** @docs-private */
28
+ get disabled(): boolean;
29
+ set disabled(value: boolean);
30
+ /** @docs-private */
31
+ get collapsed(): boolean;
32
+ set collapsed(value: boolean);
33
+ private _collapsed;
34
+ constructor();
35
+ ngAfterContentInit(): void;
36
+ private updateTooltip;
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarBrand, never>;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqNavbarBrand, "kbq-navbar-brand, [kbq-navbar-brand]", ["kbqNavbarBrand"], { "longTitle": { "alias": "longTitle"; "required": false; }; "collapsedText": { "alias": "collapsedText"; "required": false; }; }, {}, ["title"], ["*"], false, never>;
39
+ }
@@ -1,5 +1,6 @@
1
1
  @use '../core/styles/tokens';
2
2
  @use '../core/styles/common/tokens' as *;
3
+ @use './navbar-theme';
3
4
 
4
5
  .kbq-navbar-logo {
5
6
  display: flex;
@@ -50,6 +51,18 @@ a.kbq-navbar-brand {
50
51
  }
51
52
 
52
53
  .kbq-navbar-brand.kbq-vertical {
54
+ flex-direction: row;
55
+ align-items: center;
56
+
57
+ padding: var(--kbq-size-xxs) var(--kbq-size-m) var(--kbq-size-m);
58
+
59
+ &:after {
60
+ top: 0;
61
+ right: var(--kbq-size-s);
62
+ bottom: var(--kbq-size-s);
63
+ left: var(--kbq-size-s);
64
+ }
65
+
53
66
  & .kbq-navbar-logo {
54
67
  align-items: center;
55
68
  }
@@ -58,68 +71,85 @@ a.kbq-navbar-brand {
58
71
  display: block;
59
72
  align-items: center;
60
73
 
61
- padding-top: var(--kbq-size-xxs);
62
- padding-bottom: var(--kbq-size-xxs);
63
-
64
- height: var(--kbq-size-3xl);
65
-
66
- padding-left: 0;
67
-
68
- text-overflow: ellipsis;
69
- white-space: nowrap;
70
- overflow: hidden;
74
+ padding-left: var(--kbq-size-s);
71
75
  }
72
76
 
73
77
  &.kbq-expanded {
74
- position: relative;
75
-
76
- height: var(--kbq-size-4xl);
77
- width: var(--kbq-size-4xl);
78
-
79
- margin-top: var(--kbq-size-s);
80
- margin-right: var(--kbq-size-l);
81
- margin-left: var(--kbq-size-l);
82
- margin-bottom: 60px;
83
-
84
- flex-direction: column;
85
-
86
- &:after {
87
- top: 0;
88
- right: 0;
89
- bottom: 0;
90
- left: 0;
78
+ & .kbq-navbar-title {
79
+ max-width: 200px;
91
80
  }
81
+ }
92
82
 
93
- & .kbq-navbar-logo {
94
- min-height: var(--kbq-size-4xl);
95
-
96
- justify-content: center;
83
+ &.kbq-collapsed {
84
+ & .kbq-navbar-title {
85
+ display: none !important;
97
86
  }
87
+ }
98
88
 
99
- & .kbq-navbar-title {
100
- position: absolute;
89
+ &.kbq-navbar-brand_long-title .kbq-navbar-title {
90
+ display: -webkit-box;
101
91
 
102
- left: var(--kbq-size-xxs);
103
- top: var(--kbq-size-6xl);
104
- max-width: 200px;
105
- }
92
+ -webkit-box-orient: vertical;
93
+ -webkit-line-clamp: 2;
94
+ white-space: normal;
106
95
  }
96
+ }
107
97
 
108
- &.kbq-collapsed {
109
- height: var(--kbq-size-5xl);
110
- width: var(--kbq-size-5xl);
111
-
112
- &:after {
113
- top: var(--kbq-size-xxs);
114
- right: var(--kbq-size-xxs);
115
- bottom: var(--kbq-size-xxs);
116
- left: var(--kbq-size-xxs);
98
+ @mixin kbq-navbar-brand-theme() {
99
+ .kbq-navbar-brand {
100
+ @include navbar-theme.kbq-navbar-item(default);
101
+
102
+ &.kbq-navbar-brand_link {
103
+ cursor: pointer;
104
+
105
+ &:hover:not(.kbq-disabled) {
106
+ @include navbar-theme.kbq-navbar-item(states-hover);
107
+ }
108
+
109
+ &.cdk-focused.cdk-keyboard-focused {
110
+ outline: none;
111
+
112
+ &:after {
113
+ display: block;
114
+ box-shadow: inset 0 0 0 2px var(--kbq-states-line-focus-theme);
115
+ }
116
+ }
117
+
118
+ &:active:not(.kbq-disabled, .kbq-vertical.kbq-navbar-brand),
119
+ &.kbq-active:not(.kbq-disabled, .kbq-vertical.kbq-navbar-brand) {
120
+ @include navbar-theme.kbq-navbar-item(states-selected);
121
+ }
122
+
123
+ &.kbq-vertical:hover {
124
+ .kbq-navbar-logo {
125
+ transform: scale(1.06);
126
+ }
127
+ }
128
+
129
+ &.kbq-horizontal:hover {
130
+ .kbq-navbar-logo {
131
+ z-index: 1;
132
+ }
133
+ }
117
134
  }
118
135
 
136
+ &.kbq-navbar-focusable-item {
137
+ outline: none;
138
+ }
139
+ }
140
+ }
141
+
142
+ @mixin kbq-navbar-brand-typography() {
143
+ .kbq-navbar-brand {
119
144
  & .kbq-navbar-title {
120
- display: none;
145
+ @include kbq-typography-level-to-styles-css-variables(typography, navbar-title);
121
146
  }
122
147
 
123
- justify-content: center;
148
+ &.kbq-navbar-brand_long-title .kbq-navbar-title {
149
+ @include kbq-typography-level-to-styles-css-variables(typography, text-normal-strong);
150
+ }
124
151
  }
125
152
  }
153
+
154
+ @include kbq-navbar-brand-theme();
155
+ @include kbq-navbar-brand-typography();
@@ -7,7 +7,7 @@
7
7
  .kbq-navbar-divider.kbq-vertical {
8
8
  height: 1px;
9
9
 
10
- margin: var(--kbq-size-s) var(--kbq-size-l);
10
+ margin: var(--kbq-size-xs) var(--kbq-size-l);
11
11
  }
12
12
 
13
13
  .kbq-navbar-divider.kbq-horizontal {
@@ -1,13 +1,12 @@
1
1
  import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';
2
- import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, NgZone, OnDestroy, TemplateRef } from '@angular/core';
2
+ import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, NgZone, OnDestroy } from '@angular/core';
3
3
  import { IFocusableOption } from '@koobiq/cdk/a11y';
4
4
  import { KbqButton, KbqButtonCssStyler } from '@koobiq/components/button';
5
5
  import { KbqDropdownTrigger } from '@koobiq/components/dropdown';
6
6
  import { KbqFormField } from '@koobiq/components/form-field';
7
7
  import { KbqIcon } from '@koobiq/components/icon';
8
- import { KbqTooltipTrigger, TooltipModifier } from '@koobiq/components/tooltip';
8
+ import { KbqTooltipTrigger } from '@koobiq/components/tooltip';
9
9
  import { Subject } from 'rxjs';
10
- import { KbqVerticalNavbar } from './vertical-navbar.component';
11
10
  import * as i0 from "@angular/core";
12
11
  export interface KbqNavbarFocusableItemEvent {
13
12
  item: KbqNavbarFocusableItem;
@@ -36,18 +35,6 @@ export declare class KbqNavbarTitle implements AfterViewInit {
36
35
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarTitle, never>;
37
36
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqNavbarTitle, "kbq-navbar-title, [kbq-navbar-title]", never, {}, {}, never, never, false, never>;
38
37
  }
39
- export declare class KbqNavbarBrand implements AfterContentInit {
40
- private navbar;
41
- logo: KbqNavbarLogo;
42
- title: KbqNavbarTitle;
43
- hovered: boolean;
44
- get hasBento(): boolean;
45
- private readonly destroyRef;
46
- constructor(navbar: KbqVerticalNavbar);
47
- ngAfterContentInit(): void;
48
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarBrand, [{ optional: true; }]>;
49
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqNavbarBrand, "kbq-navbar-brand, [kbq-navbar-brand]", ["kbqNavbarBrand"], {}, {}, ["logo", "title"], ["*"], false, never>;
50
- }
51
38
  export declare class KbqNavbarDivider {
52
39
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarDivider, never>;
53
40
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqNavbarDivider, "kbq-navbar-divider", never, {}, {}, never, never, false, never>;
@@ -112,7 +99,6 @@ export declare class KbqNavbarItem extends KbqTooltipTrigger implements AfterCon
112
99
  private changeDetectorRef;
113
100
  private dropdownTrigger;
114
101
  private bento;
115
- private tooltip;
116
102
  title: KbqNavbarTitle;
117
103
  icon: KbqIcon;
118
104
  collapsedText: string;
@@ -132,29 +118,11 @@ export declare class KbqNavbarItem extends KbqTooltipTrigger implements AfterCon
132
118
  get showVerticalDropDownAngle(): boolean;
133
119
  get showHorizontalDropDownAngle(): boolean;
134
120
  get hasCroppedText(): boolean;
135
- constructor(rectangleElement: KbqNavbarRectangleElement, navbarFocusableItem: KbqNavbarFocusableItem, changeDetectorRef: ChangeDetectorRef, dropdownTrigger: KbqDropdownTrigger, bento: KbqNavbarBento, tooltip: KbqTooltipTrigger);
121
+ constructor(rectangleElement: KbqNavbarRectangleElement, navbarFocusableItem: KbqNavbarFocusableItem, changeDetectorRef: ChangeDetectorRef, dropdownTrigger: KbqDropdownTrigger, bento: KbqNavbarBento);
136
122
  ngAfterContentInit(): void;
137
123
  updateTooltip(): void;
138
124
  getTitleWidth(): number;
139
125
  onKeyDown($event: KeyboardEvent): void;
140
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarItem, [null, null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
126
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarItem, [null, null, null, { optional: true; }, { optional: true; }]>;
141
127
  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>;
142
128
  }
143
- export declare class KbqNavbarToggle extends KbqTooltipTrigger implements OnDestroy {
144
- navbar: KbqVerticalNavbar;
145
- private changeDetectorRef;
146
- protected readonly document: Document;
147
- private readonly window;
148
- customIcon: KbqIcon;
149
- get content(): string | TemplateRef<any>;
150
- set content(content: string | TemplateRef<any>);
151
- get disabled(): boolean;
152
- protected modifier: TooltipModifier;
153
- constructor(navbar: KbqVerticalNavbar, changeDetectorRef: ChangeDetectorRef);
154
- onKeydown($event: KeyboardEvent): void;
155
- ngOnDestroy(): void;
156
- toggle: () => void;
157
- private windowToggleHandler;
158
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarToggle, never>;
159
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqNavbarToggle, "kbq-navbar-toggle", never, { "content": { "alias": "kbqCollapsedTooltip"; "required": false; }; }, {}, ["customIcon"], ["[kbq-icon]", "kbq-navbar-title"], false, never>;
160
- }
@@ -0,0 +1,23 @@
1
+ import { OnDestroy } from '@angular/core';
2
+ import { KbqVerticalNavbar } from './vertical-navbar.component';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/cdk/a11y";
5
+ import * as i2 from "@koobiq/components/tooltip";
6
+ export declare class KbqNavbarToggle implements OnDestroy {
7
+ private readonly window;
8
+ private readonly ngZone;
9
+ private readonly changeDetectorRef;
10
+ private readonly tooltip;
11
+ /** @docs-private */
12
+ protected readonly navbar: KbqVerticalNavbar;
13
+ constructor();
14
+ ngOnDestroy(): void;
15
+ /** @docs-private */
16
+ keydownHandler($event: KeyboardEvent): void;
17
+ /** toggles the state of the navbar */
18
+ toggle(): void;
19
+ private updateTooltipContent;
20
+ private windowToggleHandler;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarToggle, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqNavbarToggle, "kbq-navbar-toggle, [kbq-navbar-toggle]", never, {}, {}, never, ["[kbq-icon]"], false, [{ directive: typeof i1.CdkMonitorFocus; inputs: {}; outputs: {}; }, { directive: typeof i2.KbqTooltipTrigger; inputs: {}; outputs: {}; }]>;
23
+ }
@@ -0,0 +1,64 @@
1
+ .kbq-navbar-toggle {
2
+ position: absolute;
3
+
4
+ top: var(--kbq-size-3xl);
5
+ right: calc(-1 * var(--kbq-size-l));
6
+ z-index: 1;
7
+
8
+ display: flex;
9
+ justify-content: center;
10
+ align-items: center;
11
+
12
+ padding: var(--kbq-size-3xs);
13
+ border-width: 0;
14
+
15
+ cursor: pointer;
16
+
17
+ & .kbq-navbar-toggle__circle {
18
+ display: flex;
19
+ justify-content: center;
20
+ align-items: center;
21
+
22
+ width: 28px;
23
+ height: 28px;
24
+
25
+ border-radius: 50%;
26
+ }
27
+ }
28
+
29
+ @mixin kbq-navbar-toggle-theme() {
30
+ .kbq-navbar-toggle {
31
+ outline: none;
32
+ border-color: transparent;
33
+
34
+ background: transparent;
35
+
36
+ & .kbq-navbar-toggle__circle {
37
+ background: var(--kbq-background-card);
38
+
39
+ box-shadow:
40
+ 0 3px 8px 0 var(--kbq-shadow-ambient),
41
+ 0 2px 8px 0 var(--kbq-shadow-key),
42
+ 0 0 0 1px var(--kbq-shadow-outline);
43
+ }
44
+
45
+ & .kbq-icon {
46
+ color: var(--kbq-icon-contrast-fade);
47
+ }
48
+
49
+ &:hover,
50
+ &:active,
51
+ &.kbq-hover,
52
+ &.kbq-active {
53
+ & .kbq-icon {
54
+ color: var(--kbq-states-icon-contrast-hover);
55
+ }
56
+ }
57
+
58
+ &.cdk-keyboard-focused .kbq-navbar-toggle__circle {
59
+ box-shadow: 0 0 0 2px var(--kbq-states-line-focus-theme);
60
+ }
61
+ }
62
+ }
63
+
64
+ @include kbq-navbar-toggle-theme();
@@ -3,6 +3,7 @@
3
3
  --kbq-navbar-item-size-content-border-radius: var(--kbq-size-border-radius);
4
4
  /* THEME TOKENS */
5
5
  --kbq-navbar-background: var(--kbq-background-bg);
6
+ --kbq-navbar-vertical-background: var(--kbq-background-bg-tertiary);
6
7
  --kbq-navbar-border: var(--kbq-line-contrast-less);
7
8
  --kbq-navbar-item-default-content-text: var(--kbq-foreground-contrast);
8
9
  --kbq-navbar-item-default-content-background: transparent;
@@ -1,13 +1,15 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./navbar.component";
3
3
  import * as i2 from "./navbar-item.component";
4
- import * as i3 from "./vertical-navbar.component";
5
- import * as i4 from "@angular/cdk/a11y";
6
- import * as i5 from "@angular/cdk/platform";
7
- import * as i6 from "@koobiq/components/icon";
8
- import * as i7 from "@koobiq/components/tooltip";
4
+ import * as i3 from "./navbar-brand.component";
5
+ import * as i4 from "./navbar-toggle.component";
6
+ import * as i5 from "./vertical-navbar.component";
7
+ import * as i6 from "@angular/cdk/a11y";
8
+ import * as i7 from "@angular/cdk/platform";
9
+ import * as i8 from "@koobiq/components/icon";
10
+ import * as i9 from "@koobiq/components/tooltip";
9
11
  export declare class KbqNavbarModule {
10
12
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarModule, never>;
11
- static ɵmod: i0.ɵɵNgModuleDeclaration<KbqNavbarModule, [typeof i1.KbqNavbar, typeof i1.KbqNavbarContainer, typeof i2.KbqNavbarTitle, typeof i2.KbqNavbarItem, typeof i2.KbqNavbarBrand, typeof i2.KbqNavbarLogo, typeof i2.KbqNavbarToggle, typeof i3.KbqVerticalNavbar, typeof i2.KbqNavbarDivider, typeof i2.KbqNavbarFocusableItem, typeof i2.KbqNavbarRectangleElement, typeof i2.KbqNavbarBento], [typeof i4.A11yModule, typeof i5.PlatformModule, typeof i6.KbqIconModule, typeof i7.KbqToolTipModule], [typeof i1.KbqNavbar, typeof i1.KbqNavbarContainer, typeof i2.KbqNavbarTitle, typeof i2.KbqNavbarItem, typeof i2.KbqNavbarBrand, typeof i2.KbqNavbarLogo, typeof i2.KbqNavbarToggle, typeof i3.KbqVerticalNavbar, typeof i2.KbqNavbarDivider, typeof i2.KbqNavbarFocusableItem, typeof i2.KbqNavbarRectangleElement, typeof i2.KbqNavbarBento]>;
13
+ static ɵmod: i0.ɵɵNgModuleDeclaration<KbqNavbarModule, [typeof i1.KbqNavbar, typeof i1.KbqNavbarContainer, typeof i2.KbqNavbarTitle, typeof i2.KbqNavbarItem, typeof i3.KbqNavbarBrand, typeof i2.KbqNavbarLogo, typeof i4.KbqNavbarToggle, typeof i5.KbqVerticalNavbar, typeof i2.KbqNavbarDivider, typeof i2.KbqNavbarFocusableItem, typeof i2.KbqNavbarRectangleElement, typeof i2.KbqNavbarBento], [typeof i6.A11yModule, typeof i7.PlatformModule, typeof i8.KbqIconModule, typeof i9.KbqToolTipModule], [typeof i1.KbqNavbar, typeof i1.KbqNavbarContainer, typeof i2.KbqNavbarTitle, typeof i2.KbqNavbarItem, typeof i3.KbqNavbarBrand, typeof i2.KbqNavbarLogo, typeof i4.KbqNavbarToggle, typeof i5.KbqVerticalNavbar, typeof i2.KbqNavbarDivider, typeof i2.KbqNavbarFocusableItem, typeof i2.KbqNavbarRectangleElement, typeof i2.KbqNavbarBento]>;
12
14
  static ɵinj: i0.ɵɵInjectorDeclaration<KbqNavbarModule>;
13
15
  }
@@ -1,4 +1,6 @@
1
+ export * from './navbar-brand.component';
1
2
  export * from './navbar-item.component';
3
+ export * from './navbar-toggle.component';
2
4
  export * from './navbar.component';
3
5
  export * from './navbar.module';
4
6
  export * from './vertical-navbar.component';
@@ -1,11 +1,27 @@
1
1
  import { FocusMonitor } from '@angular/cdk/a11y';
2
- import { AfterContentInit, ChangeDetectorRef, ElementRef, QueryList } from '@angular/core';
2
+ import { AfterContentInit, ChangeDetectorRef, ElementRef, InjectionToken, QueryList } from '@angular/core';
3
3
  import { Subject } from 'rxjs';
4
4
  import { KbqNavbarBento, KbqNavbarItem } from './navbar-item.component';
5
5
  import { KbqFocusableComponent } from './navbar.component';
6
6
  import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/cdk/a11y";
8
+ /** default configuration of navbar */
9
+ /** @docs-private */
10
+ export declare const KBQ_VERTICAL_NAVBAR_DEFAULT_CONFIGURATION: {
11
+ toggle: {
12
+ expand: string;
13
+ collapse: string;
14
+ };
15
+ };
16
+ /** Injection Token for providing configuration of navbar */
17
+ /** @docs-private */
18
+ export declare const KBQ_VERTICAL_NAVBAR_CONFIGURATION: InjectionToken<unknown>;
7
19
  export declare class KbqVerticalNavbar extends KbqFocusableComponent implements AfterContentInit {
8
20
  protected elementRef: ElementRef<HTMLElement>;
21
+ /** @docs-private */
22
+ protected readonly localeService: import("@koobiq/components/core").KbqLocaleService | null;
23
+ readonly externalConfiguration: unknown;
24
+ configuration: any;
9
25
  rectangleElements: import("@angular/core").Signal<readonly any[]>;
10
26
  items: QueryList<KbqNavbarItem>;
11
27
  bento: KbqNavbarBento;
@@ -24,6 +40,8 @@ export declare class KbqVerticalNavbar extends KbqFocusableComponent implements
24
40
  private setItemVerticalStateAndUpdateExpandedState;
25
41
  private setItemVerticalState;
26
42
  private updateItemExpandedState;
43
+ private updateLocaleParams;
44
+ private initDefaultParams;
27
45
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqVerticalNavbar, never>;
28
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqVerticalNavbar, "kbq-vertical-navbar", ["KbqVerticalNavbar"], { "openOver": { "alias": "openOver"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; }, {}, ["rectangleElements", "bento", "items"], ["[kbq-navbar-container], kbq-navbar-container", "[kbq-navbar-toggle], kbq-navbar-toggle"], false, never>;
46
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqVerticalNavbar, "kbq-vertical-navbar", ["KbqVerticalNavbar"], { "openOver": { "alias": "openOver"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; }, {}, ["rectangleElements", "bento", "items"], ["[kbq-navbar-container], kbq-navbar-container", "[kbq-navbar-toggle], kbq-navbar-toggle"], false, [{ directive: typeof i1.CdkMonitorFocus; inputs: {}; outputs: {}; }]>;
29
47
  }
@@ -3,9 +3,15 @@
3
3
  @use './navbar-theme' as *;
4
4
 
5
5
  .kbq-vertical-navbar {
6
- min-width: 48px;
6
+ position: relative;
7
+
8
+ min-width: var(--kbq-size-5xl);
7
9
  height: 100%;
8
10
 
11
+ &:not(:hover, .cdk-keyboard-focused) .kbq-navbar-toggle {
12
+ display: none;
13
+ }
14
+
9
15
  & .kbq-navbar-container {
10
16
  flex-direction: column;
11
17
  align-items: unset;
@@ -13,17 +19,19 @@
13
19
 
14
20
  & .kbq-navbar-container + .kbq-navbar-container {
15
21
  padding-top: var(--kbq-size-xxl);
16
- padding-bottom: var(--kbq-size-xxs);
22
+ padding-bottom: var(--kbq-size-s);
17
23
  }
18
24
 
19
25
  & .kbq-vertical-navbar__container {
26
+ position: relative;
27
+
20
28
  display: flex;
21
29
  flex-direction: column;
22
30
  justify-content: space-between;
23
31
  height: 100%;
24
32
 
25
33
  &.kbq-collapsed {
26
- width: var(--kbq-size-5xl);
34
+ width: var(--kbq-size-6xl);
27
35
  }
28
36
 
29
37
  &.kbq-expanded {
@@ -31,13 +39,9 @@
31
39
  }
32
40
  }
33
41
 
34
- &.kbq-vertical-navbar_open-over {
35
- position: relative;
36
-
37
- & .kbq-vertical-navbar__container {
38
- position: absolute;
39
- z-index: 998;
40
- }
42
+ &.kbq-vertical-navbar_open-over .kbq-vertical-navbar__container {
43
+ position: absolute;
44
+ z-index: 998;
41
45
  }
42
46
  }
43
47
 
@@ -1,5 +1,5 @@
1
- import { CdkScrollable, Overlay, OverlayConfig, ScrollStrategy } from '@angular/cdk/overlay';
2
- import { AfterContentInit, AfterViewInit, ChangeDetectorRef, EventEmitter, InjectionToken, OnInit, TemplateRef, Type } from '@angular/core';
1
+ import { Overlay, OverlayConfig, ScrollStrategy } from '@angular/cdk/overlay';
2
+ import { AfterContentInit, AfterViewInit, ChangeDetectorRef, EventEmitter, InjectionToken, TemplateRef, Type } from '@angular/core';
3
3
  import { KbqButton } from '@koobiq/components/button';
4
4
  import { DateAdapter, KbqPopUp, KbqPopUpTrigger, PopUpPlacements, PopUpSizes } from '@koobiq/components/core';
5
5
  import { Subscription } from 'rxjs';
@@ -73,7 +73,7 @@ export declare class KbqNotificationCenterComponent extends KbqPopUp implements
73
73
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqNotificationCenterComponent, never>;
74
74
  static ɵcmp: i0.ɵɵComponentDeclaration<KbqNotificationCenterComponent, "kbq-notification-center", never, {}, {}, never, never, true, never>;
75
75
  }
76
- export declare class KbqNotificationCenterTrigger extends KbqPopUpTrigger<KbqNotificationCenterComponent> implements AfterContentInit, OnInit {
76
+ export declare class KbqNotificationCenterTrigger extends KbqPopUpTrigger<KbqNotificationCenterComponent> implements AfterContentInit {
77
77
  /** @docs-private */
78
78
  protected scrollStrategy: () => ScrollStrategy;
79
79
  /** @docs-private */
@@ -92,8 +92,6 @@ export declare class KbqNotificationCenterTrigger extends KbqPopUpTrigger<KbqNot
92
92
  header: string | TemplateRef<any>;
93
93
  /** @docs-private */
94
94
  footer: string | TemplateRef<any>;
95
- /** @docs-private */
96
- private closeOnScroll;
97
95
  /** Number of unread notifications */
98
96
  get unreadItemsCounter(): import("rxjs").Observable<string>;
99
97
  /** Placement of popUp */
@@ -115,6 +113,13 @@ export declare class KbqNotificationCenterTrigger extends KbqPopUpTrigger<KbqNot
115
113
  /** Whether the trigger is disabled. */
116
114
  get disabled(): boolean;
117
115
  set disabled(value: boolean);
116
+ /**
117
+ * Additionally positions the element relative to the window side (Top, Right, Bottom and Left).
118
+ * If container is specified, the positioning will be relative to it.
119
+ * */
120
+ stickToWindow: PopUpPlacements.Top | PopUpPlacements.Right | PopUpPlacements.Bottom | PopUpPlacements.Left | string;
121
+ /** Container for additional positioning, used with stickToWindow */
122
+ container: HTMLElement;
118
123
  /** @docs-private */
119
124
  get hasClickTrigger(): boolean;
120
125
  /** Emits a change event whenever the placement state changes. */
@@ -130,7 +135,6 @@ export declare class KbqNotificationCenterTrigger extends KbqPopUpTrigger<KbqNot
130
135
  /** @docs-private */
131
136
  protected preventClosingByInnerScrollSubscription: Subscription;
132
137
  constructor();
133
- ngOnInit(): void;
134
138
  ngAfterContentInit(): void;
135
139
  /** @docs-private */
136
140
  updateData(): void;
@@ -143,10 +147,9 @@ export declare class KbqNotificationCenterTrigger extends KbqPopUpTrigger<KbqNot
143
147
  /** @docs-private */
144
148
  updateClassMap(newPlacement?: string): void;
145
149
  /** @docs-private */
146
- closingActions(): import("rxjs").Observable<void | CdkScrollable | MouseEvent>;
147
- private hideIfNotInViewPort;
150
+ closingActions(): import("rxjs").Observable<void | import("@angular/cdk/scrolling").CdkScrollable | MouseEvent>;
148
151
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqNotificationCenterTrigger, never>;
149
- static ɵdir: i0.ɵɵDirectiveDeclaration<KbqNotificationCenterTrigger, "[kbqNotificationCenterTrigger]", ["kbqNotificationCenterTrigger"], { "placement": { "alias": "kbqNotificationCenterPlacement"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "panelClass": { "alias": "kbqNotificationCenterPanelClass"; "required": false; }; "offset": { "alias": "offset"; "required": false; }; "popoverMode": { "alias": "popoverMode"; "required": false; }; "popoverHeight": { "alias": "popoverHeight"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "placementChange": "kbqPlacementChange"; "visibleChange": "kbqVisibleChange"; }, never, never, true, never>;
152
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqNotificationCenterTrigger, "[kbqNotificationCenterTrigger]", ["kbqNotificationCenterTrigger"], { "placement": { "alias": "kbqNotificationCenterPlacement"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "panelClass": { "alias": "kbqNotificationCenterPanelClass"; "required": false; }; "offset": { "alias": "offset"; "required": false; }; "popoverMode": { "alias": "popoverMode"; "required": false; }; "popoverHeight": { "alias": "popoverHeight"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "stickToWindow": { "alias": "stickToWindow"; "required": false; }; "container": { "alias": "container"; "required": false; }; }, { "placementChange": "kbqPlacementChange"; "visibleChange": "kbqVisibleChange"; }, never, never, true, never>;
150
153
  static ngAcceptInputType_offset: unknown;
151
154
  static ngAcceptInputType_popoverMode: unknown;
152
155
  static ngAcceptInputType_disabled: unknown;