@koobiq/components 18.34.0 → 18.35.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 (139) hide show
  1. package/button/_button-theme.scss +1 -0
  2. package/core/form-field/field-sizing-content.d.ts +21 -0
  3. package/core/form-field/index.d.ts +1 -0
  4. package/core/locales/en-US.d.ts +6 -0
  5. package/core/locales/es-LA.d.ts +6 -0
  6. package/core/locales/fa-IR.d.ts +6 -0
  7. package/core/locales/locale-service.d.ts +42 -0
  8. package/core/locales/pt-BR.d.ts +6 -0
  9. package/core/locales/ru-RU.d.ts +6 -0
  10. package/core/locales/tk-TM.d.ts +6 -0
  11. package/core/locales/zh-CN.d.ts +6 -0
  12. package/core/navbar/index.d.ts +1 -0
  13. package/core/navbar/rectangle-item.d.ts +14 -0
  14. package/core/option/option.d.ts +3 -1
  15. package/core/pop-up/pop-up-trigger.d.ts +2 -0
  16. package/core/public-api.d.ts +1 -0
  17. package/core/utils/dom.d.ts +9 -0
  18. package/core/utils/index.d.ts +1 -0
  19. package/core/utils/utils.d.ts +4 -0
  20. package/datepicker/datepicker-input.directive.d.ts +18 -7
  21. package/dropdown/dropdown-item.scss +1 -0
  22. package/dropdown/dropdown-trigger.directive.d.ts +7 -1
  23. package/esm2022/breadcrumbs/breadcrumbs.mjs +2 -2
  24. package/esm2022/button/button.component.mjs +2 -2
  25. package/esm2022/core/form-field/field-sizing-content.mjs +114 -0
  26. package/esm2022/core/form-field/index.mjs +2 -1
  27. package/esm2022/core/locales/en-US.mjs +7 -1
  28. package/esm2022/core/locales/es-LA.mjs +7 -1
  29. package/esm2022/core/locales/fa-IR.mjs +7 -1
  30. package/esm2022/core/locales/pt-BR.mjs +7 -1
  31. package/esm2022/core/locales/ru-RU.mjs +7 -1
  32. package/esm2022/core/locales/tk-TM.mjs +7 -1
  33. package/esm2022/core/locales/zh-CN.mjs +7 -1
  34. package/esm2022/core/navbar/index.mjs +2 -0
  35. package/esm2022/core/navbar/rectangle-item.mjs +39 -0
  36. package/esm2022/core/option/option.mjs +8 -4
  37. package/esm2022/core/pop-up/pop-up-trigger.mjs +5 -1
  38. package/esm2022/core/public-api.mjs +2 -1
  39. package/esm2022/core/utils/dom.mjs +14 -0
  40. package/esm2022/core/utils/index.mjs +2 -1
  41. package/esm2022/core/utils/utils.mjs +9 -1
  42. package/esm2022/core/version.mjs +2 -2
  43. package/esm2022/datepicker/calendar-header.component.mjs +1 -1
  44. package/esm2022/datepicker/datepicker-input.directive.mjs +24 -21
  45. package/esm2022/dropdown/dropdown-item.component.mjs +2 -2
  46. package/esm2022/dropdown/dropdown-trigger.directive.mjs +30 -10
  47. package/esm2022/file-upload/file-upload.mjs +6 -1
  48. package/esm2022/file-upload/multiple-file-upload.component.mjs +12 -7
  49. package/esm2022/file-upload/single-file-upload.component.mjs +14 -7
  50. package/esm2022/filter-bar/filter-bar.mjs +3 -3
  51. package/esm2022/filter-bar/filters.mjs +16 -4
  52. package/esm2022/filter-bar/pipe-add.mjs +2 -2
  53. package/esm2022/filter-bar/pipes/pipe-date.mjs +2 -2
  54. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +2 -2
  55. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +9 -9
  56. package/esm2022/filter-bar/pipes/pipe-select.mjs +2 -2
  57. package/esm2022/filter-bar/pipes/pipe-text.mjs +2 -2
  58. package/esm2022/form-field/fieldset.mjs +2 -2
  59. package/esm2022/form-field/form-field.mjs +2 -2
  60. package/esm2022/navbar-ic/index.mjs +2 -0
  61. package/esm2022/navbar-ic/koobiq-components-navbar-ic.mjs +5 -0
  62. package/esm2022/navbar-ic/navbar-ic-header.mjs +58 -0
  63. package/esm2022/navbar-ic/navbar-ic-item.mjs +399 -0
  64. package/esm2022/navbar-ic/navbar-ic.animation.mjs +9 -0
  65. package/esm2022/navbar-ic/navbar-ic.mjs +281 -0
  66. package/esm2022/navbar-ic/navbar-ic.module.mjs +74 -0
  67. package/esm2022/navbar-ic/public-api.mjs +5 -0
  68. package/esm2022/popover/popover-confirm.component.mjs +3 -3
  69. package/esm2022/popover/popover.component.mjs +10 -5
  70. package/esm2022/select/select.component.mjs +2 -2
  71. package/esm2022/tags/tag-list.component.mjs +24 -5
  72. package/esm2022/tags/tag.component.mjs +231 -22
  73. package/esm2022/tags/tag.module.mjs +16 -6
  74. package/esm2022/tooltip/tooltip.component.mjs +3 -3
  75. package/esm2022/tree-select/tree-select.component.mjs +2 -2
  76. package/fesm2022/koobiq-components-breadcrumbs.mjs +1 -1
  77. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-button.mjs +2 -2
  79. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-core.mjs +243 -31
  81. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  82. package/fesm2022/koobiq-components-datepicker.mjs +24 -22
  83. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  84. package/fesm2022/koobiq-components-dropdown.mjs +31 -11
  85. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  86. package/fesm2022/koobiq-components-file-upload.mjs +26 -9
  87. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  88. package/fesm2022/koobiq-components-filter-bar.mjs +29 -17
  89. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  90. package/fesm2022/koobiq-components-form-field.mjs +4 -4
  91. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  92. package/fesm2022/koobiq-components-navbar-ic.mjs +800 -0
  93. package/fesm2022/koobiq-components-navbar-ic.mjs.map +1 -0
  94. package/fesm2022/koobiq-components-popover.mjs +11 -6
  95. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  96. package/fesm2022/koobiq-components-select.mjs +1 -1
  97. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  98. package/fesm2022/koobiq-components-tags.mjs +271 -34
  99. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-tooltip.mjs +2 -2
  101. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-tree-select.mjs +1 -1
  103. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  104. package/file-upload/file-upload.d.ts +5 -2
  105. package/file-upload/multiple-file-upload.component.d.ts +3 -1
  106. package/file-upload/single-file-upload.component.d.ts +3 -1
  107. package/filter-bar/_filter-bar-theme.scss +2 -2
  108. package/filter-bar/filters.d.ts +1 -0
  109. package/form-field/form-field.scss +7 -1
  110. package/navbar-ic/_navbar-ic-theme.scss +81 -0
  111. package/navbar-ic/index.d.ts +1 -0
  112. package/navbar-ic/navbar-ic-divider.scss +7 -0
  113. package/navbar-ic/navbar-ic-header.d.ts +18 -0
  114. package/navbar-ic/navbar-ic-header.scss +53 -0
  115. package/navbar-ic/navbar-ic-item.d.ts +125 -0
  116. package/navbar-ic/navbar-ic-item.scss +96 -0
  117. package/navbar-ic/navbar-ic-tokens.scss +22 -0
  118. package/navbar-ic/navbar-ic.animation.d.ts +2 -0
  119. package/navbar-ic/navbar-ic.d.ts +103 -0
  120. package/navbar-ic/navbar-ic.module.d.ts +14 -0
  121. package/navbar-ic/navbar-ic.scss +32 -0
  122. package/navbar-ic/public-api.d.ts +4 -0
  123. package/package.json +10 -4
  124. package/popover/_popover-theme.scss +6 -2
  125. package/popover/popover-tokens.scss +2 -0
  126. package/popover/popover.component.d.ts +4 -1
  127. package/prebuilt-themes/dark-theme.css +1 -1
  128. package/prebuilt-themes/light-theme.css +1 -1
  129. package/prebuilt-themes/theme.css +1 -1
  130. package/schematics/ng-add/index.js +3 -3
  131. package/tags/_tag-theme.scss +10 -1
  132. package/tags/tag-list.component.d.ts +10 -2
  133. package/tags/tag-list.scss +5 -0
  134. package/tags/tag.component.d.ts +78 -8
  135. package/tags/tag.module.d.ts +1 -1
  136. package/tags/tag.scss +18 -0
  137. package/textarea/textarea-tokens.scss +1 -1
  138. package/tooltip/_tooltip-theme.scss +9 -2
  139. package/tooltip/tooltip-tokens.scss +2 -0
@@ -0,0 +1 @@
1
+ export * from './public-api';
@@ -0,0 +1,7 @@
1
+ .kbq-navbar-ic-divider {
2
+ display: block;
3
+
4
+ height: 1px;
5
+
6
+ margin: var(--kbq-size-s) var(--kbq-size-l);
7
+ }
@@ -0,0 +1,18 @@
1
+ import { AfterContentInit, DestroyRef } from '@angular/core';
2
+ import { KbqTooltipTrigger } from '@koobiq/components/tooltip';
3
+ import { KbqNavbarIc } from './navbar-ic';
4
+ import { KbqNavbarIcLogo, KbqNavbarIcTitle } from './navbar-ic-item';
5
+ import * as i0 from "@angular/core";
6
+ export declare class KbqNavbarIcHeader extends KbqTooltipTrigger implements AfterContentInit {
7
+ protected readonly navbar: KbqNavbarIc;
8
+ protected readonly nativeElement: any;
9
+ protected readonly destroyRef: DestroyRef;
10
+ logo: KbqNavbarIcLogo;
11
+ title: KbqNavbarIcTitle;
12
+ get titleText(): string;
13
+ get isLink(): boolean;
14
+ constructor();
15
+ ngAfterContentInit(): void;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarIcHeader, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqNavbarIcHeader, "kbq-navbar-ic-header, [kbq-navbar-ic-header]", ["kbqNavbarIcHeader"], {}, {}, ["logo", "title"], ["*"], true, never>;
18
+ }
@@ -0,0 +1,53 @@
1
+ .kbq-navbar-ic-header {
2
+ display: block;
3
+
4
+ margin-top: var(--kbq-size-l);
5
+ margin-bottom: var(--kbq-size-l);
6
+
7
+ padding: var(--kbq-size-3xs) var(--kbq-size-m);
8
+
9
+ & .kbq-navbar-ic-header__inner {
10
+ display: flex;
11
+ flex-direction: row;
12
+
13
+ padding: var(--kbq-size-xs) var(--kbq-size-s);
14
+
15
+ gap: var(--kbq-size-s);
16
+
17
+ border-radius: var(--kbq-navbar-ic-item-size-content-border-radius);
18
+ }
19
+
20
+ & .kbq-navbar-ic-logo {
21
+ display: flex;
22
+ align-self: center;
23
+ }
24
+
25
+ & .kbq-navbar-ic-title {
26
+ display: block;
27
+ align-items: center;
28
+
29
+ text-overflow: ellipsis;
30
+ white-space: nowrap;
31
+ overflow: hidden;
32
+
33
+ &.kbq-navbar-ic-title_text-overflown {
34
+ display: -webkit-box;
35
+
36
+ -webkit-box-orient: vertical;
37
+ -webkit-line-clamp: 2;
38
+ white-space: normal;
39
+ }
40
+ }
41
+
42
+ &.kbq-navbar-ic-header_interactive {
43
+ cursor: pointer;
44
+ }
45
+
46
+ &.kbq-collapsed .kbq-navbar-ic-title {
47
+ display: none;
48
+ }
49
+ }
50
+
51
+ a.kbq-navbar-ic-header {
52
+ text-decoration: none;
53
+ }
@@ -0,0 +1,125 @@
1
+ import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';
2
+ import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, NgZone, OnDestroy } from '@angular/core';
3
+ import { IFocusableOption } from '@koobiq/cdk/a11y';
4
+ import { KbqButton, KbqButtonCssStyler } from '@koobiq/components/button';
5
+ import { KbqRectangleItem } from '@koobiq/components/core';
6
+ import { KbqFormField } from '@koobiq/components/form-field';
7
+ import { KbqIcon } from '@koobiq/components/icon';
8
+ import { KbqTooltipTrigger, TooltipModifier } from '@koobiq/components/tooltip';
9
+ import { Subject } from 'rxjs';
10
+ import { KbqNavbarIc } from './navbar-ic';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@koobiq/components/core";
13
+ /**
14
+ * The maximum number of characters that can be placed in a title without being wrapped.
15
+ */
16
+ export declare const kbqMaxSymbolsInHeaderTitle = 22;
17
+ export interface KbqNavbarFocusableItemEvent {
18
+ item: KbqNavbarIcFocusableItem;
19
+ }
20
+ export declare class KbqNavbarIcLogo {
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarIcLogo, never>;
22
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqNavbarIcLogo, "[kbqNavbarIcLogo]", never, {}, {}, never, never, true, never>;
23
+ }
24
+ export declare class KbqNavbarIcTitle implements AfterViewInit {
25
+ protected readonly isBrowser: boolean;
26
+ protected readonly nativeElement: any;
27
+ private readonly window;
28
+ readonly hovered: Subject<boolean>;
29
+ outerElementWidth: number;
30
+ isTextOverflown: boolean;
31
+ get text(): string;
32
+ get isOverflown(): boolean;
33
+ ngAfterViewInit(): void;
34
+ getOuterElementWidth(): number;
35
+ checkTextOverflown(): void;
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarIcTitle, never>;
37
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqNavbarIcTitle, "[kbqNavbarIcTitle]", never, {}, {}, never, never, true, never>;
38
+ }
39
+ export declare class KbqNavbarIcDivider {
40
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarIcDivider, never>;
41
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqNavbarIcDivider, "[kbqNavbarIcDivider]", never, {}, {}, never, never, true, never>;
42
+ }
43
+ export declare class KbqNavbarIcFocusableItem implements AfterContentInit, AfterViewInit, OnDestroy, IFocusableOption {
44
+ protected readonly elementRef: ElementRef<any>;
45
+ protected readonly changeDetector: ChangeDetectorRef;
46
+ protected readonly focusMonitor: FocusMonitor;
47
+ protected readonly ngZone: NgZone;
48
+ /** @docs-private */
49
+ title: KbqNavbarIcTitle;
50
+ /** @docs-private */
51
+ button: KbqButton;
52
+ /** @docs-private */
53
+ formField: KbqFormField;
54
+ get tooltip(): KbqTooltipTrigger;
55
+ private _tooltip;
56
+ readonly onFocus: Subject<KbqNavbarFocusableItemEvent>;
57
+ readonly onBlur: Subject<KbqNavbarFocusableItemEvent>;
58
+ get hasFocus(): boolean;
59
+ set hasFocus(value: boolean);
60
+ private _hasFocus;
61
+ /** Whether the item is disabled. */
62
+ get disabled(): boolean;
63
+ set disabled(value: boolean);
64
+ private _disabled;
65
+ ngAfterViewInit(): void;
66
+ ngAfterContentInit(): void;
67
+ ngOnDestroy(): void;
68
+ setTooltip(value: KbqTooltipTrigger): void;
69
+ focus(origin?: FocusOrigin): void;
70
+ /** @docs-private */
71
+ focusHandler(): void;
72
+ /** @docs-private */
73
+ blurHandler(): void;
74
+ getLabel(): string;
75
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarIcFocusableItem, never>;
76
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqNavbarIcFocusableItem, "kbq-navbar-ic-item, [kbq-navbar-ic-item], kbq-navbar-ic-header, [kbq-navbar-ic-header], kbq-navbar-ic-toggle", never, { "disabled": { "alias": "disabled"; "required": false; }; }, {}, ["title", "button", "formField"], never, true, never>;
77
+ static ngAcceptInputType_disabled: unknown;
78
+ }
79
+ export declare class KbqNavbarIcItem extends KbqTooltipTrigger implements AfterContentInit {
80
+ readonly rectangleElement: KbqRectangleItem;
81
+ readonly navbarFocusableItem: KbqNavbarIcFocusableItem;
82
+ private changeDetectorRef;
83
+ private dropdownTrigger;
84
+ private tooltip;
85
+ /** @docs-private */
86
+ title: KbqNavbarIcTitle;
87
+ /** @docs-private */
88
+ icon: KbqIcon;
89
+ /** @docs-private */
90
+ button: KbqButtonCssStyler;
91
+ get trigger(): string;
92
+ set trigger(value: string);
93
+ set collapsed(value: boolean);
94
+ private _collapsed;
95
+ get croppedText(): string;
96
+ get titleText(): string;
97
+ get disabled(): boolean;
98
+ set disabled(value: boolean);
99
+ get hasDropDownTrigger(): boolean;
100
+ get showDropDownAngle(): boolean;
101
+ get hasCroppedText(): boolean;
102
+ constructor();
103
+ ngAfterContentInit(): void;
104
+ /** @docs-private */
105
+ updateTooltip(): void;
106
+ /** @docs-private */
107
+ onKeyDown($event: KeyboardEvent): void;
108
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarIcItem, never>;
109
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqNavbarIcItem, "kbq-navbar-ic-item, [kbq-navbar-ic-item]", ["kbqNavbarIcItem"], { "trigger": { "alias": "kbqTrigger"; "required": false; }; }, {}, ["title", "icon", "button"], ["[kbq-icon]", "[kbqNavbarIcTitle]", "*"], true, [{ directive: typeof i1.KbqRectangleItem; inputs: {}; outputs: {}; }]>;
110
+ }
111
+ export declare class KbqNavbarIcToggle {
112
+ readonly navbar: KbqNavbarIc;
113
+ readonly rectangleElement: KbqRectangleItem;
114
+ protected readonly changeDetectorRef: ChangeDetectorRef;
115
+ protected modifier: TooltipModifier;
116
+ /** localized data
117
+ * @docs-private */
118
+ get localeData(): any;
119
+ constructor();
120
+ /** @docs-private */
121
+ onKeydown($event: KeyboardEvent): void;
122
+ toggle: () => void;
123
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarIcToggle, never>;
124
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqNavbarIcToggle, "kbq-navbar-ic-toggle", never, {}, {}, never, ["[kbqNavbarIcTitle]"], true, [{ directive: typeof i1.KbqRectangleItem; inputs: {}; outputs: {}; }]>;
125
+ }
@@ -0,0 +1,96 @@
1
+ .kbq-navbar-ic-item {
2
+ box-sizing: border-box;
3
+
4
+ display: flex;
5
+
6
+ padding: var(--kbq-size-3xs) var(--kbq-size-m);
7
+
8
+ & .kbq-icon {
9
+ min-width: var(--kbq-size-l);
10
+ min-height: var(--kbq-size-l);
11
+ }
12
+
13
+ & .kbq-navbar-ic-item__title-container {
14
+ gap: var(--kbq-size-m);
15
+ }
16
+
17
+ &.kbq-collapsed {
18
+ & .kbq-badge {
19
+ position: absolute;
20
+
21
+ z-index: 1;
22
+
23
+ top: 0;
24
+ right: 0;
25
+ }
26
+
27
+ & .kbq-navbar-ic-item__title-container {
28
+ display: none;
29
+ }
30
+ }
31
+
32
+ & > .kbq-icon {
33
+ display: flex;
34
+ justify-content: center;
35
+ align-items: center;
36
+ }
37
+ }
38
+
39
+ .kbq-navbar-ic-item__inner {
40
+ position: relative;
41
+
42
+ display: flex;
43
+ align-items: center;
44
+
45
+ height: 36px;
46
+ width: 100%;
47
+ max-width: calc(100% - var(--kbq-size-xxl));
48
+
49
+ gap: var(--kbq-size-m);
50
+
51
+ padding-left: var(--kbq-size-m);
52
+ padding-right: var(--kbq-size-m);
53
+
54
+ border-radius: var(--kbq-navbar-ic-item-size-content-border-radius);
55
+ }
56
+
57
+ .kbq-navbar-ic-title {
58
+ display: inline-block;
59
+
60
+ text-overflow: ellipsis;
61
+ white-space: nowrap;
62
+ overflow: hidden;
63
+ }
64
+
65
+ .kbq-navbar-ic-item__title-container {
66
+ display: flex;
67
+ flex-direction: row;
68
+
69
+ flex: 1 1 auto;
70
+ justify-content: space-between;
71
+
72
+ min-width: 0;
73
+
74
+ & .kbq-icon {
75
+ align-self: center;
76
+ }
77
+ }
78
+
79
+ a.kbq-navbar-ic-item,
80
+ a.kbq-navbar-ic-title {
81
+ text-decoration: none;
82
+ }
83
+
84
+ .kbq-navbar-ic-item,
85
+ .kbq-navbar-ic-header,
86
+ .kbq-navbar-ic-toggle {
87
+ & [kbq-button] {
88
+ z-index: 1;
89
+ }
90
+ }
91
+
92
+ .kbq-navbar-ic-toggle .kbq-navbar-ic-item__inner {
93
+ text-overflow: ellipsis;
94
+ white-space: nowrap;
95
+ overflow: hidden;
96
+ }
@@ -0,0 +1,22 @@
1
+ .kbq-navbar-ic {
2
+ --kbq-navbar-ic-item-size-content-border-radius: var(--kbq-size-border-radius);
3
+ /* THEME TOKENS */
4
+ --kbq-navbar-ic-background: var(--kbq-background-bg);
5
+ --kbq-navbar-ic-border: var(--kbq-shadow-overflow-compact-right);
6
+ --kbq-navbar-ic-item-default-content-text: var(--kbq-foreground-contrast);
7
+ --kbq-navbar-ic-item-default-content-background: transparent;
8
+ --kbq-navbar-ic-item-default-content-icon-left: var(--kbq-icon-contrast);
9
+ --kbq-navbar-ic-item-default-content-icon-right: var(--kbq-icon-contrast);
10
+ --kbq-navbar-ic-item-states-hover-content-text: var(--kbq-foreground-contrast);
11
+ --kbq-navbar-ic-item-states-hover-content-background: var(--kbq-states-background-transparent-hover);
12
+ --kbq-navbar-ic-item-states-hover-content-icon-left: var(--kbq-states-icon-contrast-hover);
13
+ --kbq-navbar-ic-item-states-hover-content-icon-right: var(--kbq-states-icon-contrast-hover);
14
+ --kbq-navbar-ic-item-states-selected-content-text: var(--kbq-foreground-contrast);
15
+ --kbq-navbar-ic-item-states-selected-content-background: var(--kbq-states-background-transparent-active);
16
+ --kbq-navbar-ic-item-states-selected-content-icon-left: var(--kbq-states-icon-contrast-active);
17
+ --kbq-navbar-ic-item-states-selected-content-icon-right: var(--kbq-states-icon-contrast-active);
18
+ --kbq-navbar-ic-item-states-disabled-content-text: var(--kbq-states-foreground-disabled);
19
+ --kbq-navbar-ic-item-states-disabled-content-background: transparent;
20
+ --kbq-navbar-ic-item-states-disabled-content-icon-left: var(--kbq-states-icon-disabled);
21
+ --kbq-navbar-ic-item-states-disabled-content-icon-right: var(--kbq-states-icon-disabled);
22
+ }
@@ -0,0 +1,2 @@
1
+ import { AnimationTriggerMetadata } from '@angular/animations';
2
+ export declare function toggleNavbarIcAnimation(): AnimationTriggerMetadata;
@@ -0,0 +1,103 @@
1
+ import { FocusMonitor } from '@angular/cdk/a11y';
2
+ import { AfterContentInit, AfterViewInit, ChangeDetectorRef, DestroyRef, ElementRef, InjectionToken, OnDestroy, QueryList } from '@angular/core';
3
+ import { FocusKeyManager } from '@koobiq/cdk/a11y';
4
+ import { BehaviorSubject, Observable, Subject } from 'rxjs';
5
+ import { KbqNavbarFocusableItemEvent, KbqNavbarIcFocusableItem, KbqNavbarIcItem } from './navbar-ic-item';
6
+ import * as i0 from "@angular/core";
7
+ export declare enum KbqExpandEvents {
8
+ toggle = 0,
9
+ hoverOrFocus = 1
10
+ }
11
+ /** default configuration of navbar-ic */
12
+ /** @docs-private */
13
+ export declare const KBQ_NAVBAR_IC_DEFAULT_CONFIGURATION: {
14
+ toggle: {
15
+ pinButton: string;
16
+ collapseButton: string;
17
+ };
18
+ };
19
+ /** Injection Token for providing configuration of navbar-ic */
20
+ /** @docs-private */
21
+ export declare const KBQ_NAVBAR_IC_CONFIGURATION: InjectionToken<unknown>;
22
+ export declare class KbqFocusable implements AfterContentInit, AfterViewInit, OnDestroy {
23
+ protected readonly changeDetectorRef: ChangeDetectorRef;
24
+ protected readonly elementRef: ElementRef<any>;
25
+ protected readonly destroyRef: DestroyRef;
26
+ protected readonly focusMonitor: FocusMonitor;
27
+ focusableItems: QueryList<KbqNavbarIcFocusableItem>;
28
+ keyManager: FocusKeyManager<KbqNavbarIcFocusableItem>;
29
+ get tabindex(): number;
30
+ set tabindex(value: number);
31
+ private _tabindex;
32
+ get itemFocusChanges(): Observable<KbqNavbarFocusableItemEvent>;
33
+ get itemBlurChanges(): Observable<KbqNavbarFocusableItemEvent>;
34
+ private itemFocusSubscription;
35
+ private itemBlurSubscription;
36
+ ngAfterContentInit(): void;
37
+ ngAfterViewInit(): void;
38
+ ngOnDestroy(): void;
39
+ /** @docs-private */
40
+ focusHandler(): void;
41
+ /** @docs-private */
42
+ blurHandler(): void;
43
+ protected resetOptions(): void;
44
+ protected dropSubscriptions(): void;
45
+ protected listenToItemsFocus(): void;
46
+ protected updateTabIndex(): void;
47
+ protected isValidIndex(index: number): boolean;
48
+ protected hasFocusedItem(): boolean;
49
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqFocusable, never>;
50
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqFocusable, never, never, { "tabindex": { "alias": "tabindex"; "required": false; }; }, {}, ["focusableItems"], never, false, never>;
51
+ static ngAcceptInputType_tabindex: unknown;
52
+ }
53
+ export declare class KbqNavbarIcContainer {
54
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarIcContainer, never>;
55
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqNavbarIcContainer, "kbq-navbar-ic-container", never, {}, {}, never, never, true, never>;
56
+ }
57
+ export declare class KbqNavbarIc extends KbqFocusable implements AfterContentInit {
58
+ /** @docs-private */
59
+ protected readonly localeService: import("@koobiq/components/core").KbqLocaleService | null;
60
+ readonly externalConfiguration: unknown;
61
+ configuration: any;
62
+ /** @docs-private */
63
+ rectangleElements: import("@angular/core").Signal<readonly any[]>;
64
+ /** @docs-private */
65
+ items: import("@angular/core").Signal<readonly any[]>;
66
+ /** @docs-private */
67
+ toggleElement: import("@angular/core").Signal<readonly any[]>;
68
+ /** @docs-private */
69
+ dropdownTrigger: import("@angular/core").Signal<readonly any[]>;
70
+ /** @docs-private */
71
+ popoverTrigger: import("@angular/core").Signal<readonly any[]>;
72
+ readonly hovered: BehaviorSubject<boolean>;
73
+ readonly focused: BehaviorSubject<boolean>;
74
+ readonly animationDone: Subject<void>;
75
+ expandEvent: KbqExpandEvents | null;
76
+ pinned: boolean;
77
+ collapsedWidth: number;
78
+ expandedWidth: number;
79
+ get expanded(): boolean;
80
+ set expanded(value: boolean);
81
+ private _expanded;
82
+ get hasOpenedPopUp(): boolean;
83
+ get expandedByToggle(): boolean;
84
+ get expandedByHoverOrFocus(): boolean;
85
+ get currentWidth(): number;
86
+ constructor();
87
+ /** @docs-private */
88
+ ngAfterContentInit(): void;
89
+ toggle(): void;
90
+ /** @docs-private */
91
+ onKeyDown(event: KeyboardEvent): void;
92
+ protected updateTooltipForItems: () => void;
93
+ protected updateExpandedStateForItems: () => void;
94
+ protected updateItemExpandedState: (item: KbqNavbarIcItem) => void;
95
+ private updateLocaleParams;
96
+ private initDefaultParams;
97
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarIc, never>;
98
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqNavbarIc, "kbq-navbar-ic", ["KbqNavbarIc"], { "pinned": { "alias": "pinned"; "required": false; }; "collapsedWidth": { "alias": "collapsedWidth"; "required": false; }; "expandedWidth": { "alias": "expandedWidth"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; }, {}, ["rectangleElements", "items", "toggleElement", "dropdownTrigger", "popoverTrigger"], ["[kbq-navbar-ic-container], kbq-navbar-ic-container", "[kbq-navbar-ic-toggle], kbq-navbar-ic-toggle"], true, never>;
99
+ static ngAcceptInputType_pinned: unknown;
100
+ static ngAcceptInputType_collapsedWidth: unknown;
101
+ static ngAcceptInputType_expandedWidth: unknown;
102
+ static ngAcceptInputType_expanded: unknown;
103
+ }
@@ -0,0 +1,14 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@angular/cdk/a11y";
3
+ import * as i2 from "@angular/cdk/platform";
4
+ import * as i3 from "@koobiq/components/icon";
5
+ import * as i4 from "@koobiq/components/tooltip";
6
+ import * as i5 from "./navbar-ic";
7
+ import * as i6 from "./navbar-ic-item";
8
+ import * as i7 from "./navbar-ic-header";
9
+ import * as i8 from "@koobiq/components/core";
10
+ export declare class KbqNavbarIcModule {
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqNavbarIcModule, never>;
12
+ static ɵmod: i0.ɵɵNgModuleDeclaration<KbqNavbarIcModule, never, [typeof i1.A11yModule, typeof i2.PlatformModule, typeof i3.KbqIconModule, typeof i4.KbqToolTipModule, typeof i5.KbqNavbarIc, typeof i6.KbqNavbarIcTitle, typeof i6.KbqNavbarIcItem, typeof i7.KbqNavbarIcHeader, typeof i6.KbqNavbarIcLogo, typeof i6.KbqNavbarIcToggle, typeof i6.KbqNavbarIcDivider, typeof i6.KbqNavbarIcFocusableItem, typeof i5.KbqNavbarIcContainer, typeof i8.KbqRectangleItem], [typeof i5.KbqNavbarIc, typeof i5.KbqNavbarIcContainer, typeof i6.KbqNavbarIcTitle, typeof i6.KbqNavbarIcItem, typeof i7.KbqNavbarIcHeader, typeof i6.KbqNavbarIcLogo, typeof i6.KbqNavbarIcToggle, typeof i6.KbqNavbarIcDivider, typeof i6.KbqNavbarIcFocusableItem]>;
13
+ static ɵinj: i0.ɵɵInjectorDeclaration<KbqNavbarIcModule>;
14
+ }
@@ -0,0 +1,32 @@
1
+ @use './navbar-ic-theme';
2
+
3
+ .kbq-navbar-ic-container {
4
+ display: flex;
5
+
6
+ flex-shrink: 0;
7
+ flex-direction: column;
8
+ justify-content: space-between;
9
+ }
10
+
11
+ .kbq-navbar-ic {
12
+ display: flex;
13
+ position: relative;
14
+
15
+ & .kbq-navbar-ic-container + .kbq-navbar-ic-container {
16
+ padding-top: var(--kbq-size-xxl);
17
+ padding-bottom: var(--kbq-size-m);
18
+ }
19
+
20
+ & .kbq-navbar-ic__top-layer {
21
+ position: absolute;
22
+ z-index: 998;
23
+
24
+ display: flex;
25
+ flex-direction: column;
26
+ justify-content: space-between;
27
+ min-height: 100%;
28
+ }
29
+ }
30
+
31
+ @include navbar-ic-theme.kbq-navbar-ic-theme();
32
+ @include navbar-ic-theme.kbq-navbar-ic-typography();
@@ -0,0 +1,4 @@
1
+ export * from './navbar-ic';
2
+ export * from './navbar-ic-header';
3
+ export * from './navbar-ic-item';
4
+ export * from './navbar-ic.module';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koobiq/components",
3
- "version": "18.34.0",
3
+ "version": "18.35.0",
4
4
  "description": "koobiq",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,9 +24,9 @@
24
24
  "@angular/cdk": "^18.0.0",
25
25
  "@angular/core": "^18.0.0",
26
26
  "@angular/forms": "^18.0.0",
27
- "@koobiq/cdk": "18.34.0",
28
- "@koobiq/angular-moment-adapter": "18.34.0",
29
- "@koobiq/angular-luxon-adapter": "18.34.0",
27
+ "@koobiq/cdk": "18.35.0",
28
+ "@koobiq/angular-moment-adapter": "18.35.0",
29
+ "@koobiq/angular-luxon-adapter": "18.35.0",
30
30
  "@koobiq/date-formatter": "^3.2.3",
31
31
  "@koobiq/icons": "^10.4.0",
32
32
  "@koobiq/tokens-builder": "3.11.0",
@@ -250,6 +250,12 @@
250
250
  "esm": "./esm2022/navbar/koobiq-components-navbar.mjs",
251
251
  "default": "./fesm2022/koobiq-components-navbar.mjs"
252
252
  },
253
+ "./navbar-ic": {
254
+ "types": "./navbar-ic/index.d.ts",
255
+ "esm2022": "./esm2022/navbar-ic/koobiq-components-navbar-ic.mjs",
256
+ "esm": "./esm2022/navbar-ic/koobiq-components-navbar-ic.mjs",
257
+ "default": "./fesm2022/koobiq-components-navbar-ic.mjs"
258
+ },
253
259
  "./overflow-items": {
254
260
  "types": "./overflow-items/index.d.ts",
255
261
  "esm2022": "./esm2022/overflow-items/koobiq-components-overflow-items.mjs",
@@ -2,7 +2,11 @@
2
2
 
3
3
  @mixin kbq-popover-theme() {
4
4
  .kbq-popover {
5
- box-shadow: var(--kbq-popover-container-shadow);
5
+ box-shadow: var(--kbq-popover-borderless-shadow);
6
+
7
+ &.kbq-popover_arrowless {
8
+ box-shadow: var(--kbq-popover-container-shadow);
9
+ }
6
10
  }
7
11
 
8
12
  .kbq-popover__container {
@@ -10,7 +14,7 @@
10
14
  }
11
15
 
12
16
  .kbq-popover__arrow {
13
- box-shadow: var(--kbq-popover-container-shadow);
17
+ box-shadow: var(--kbq-popover-borderless-shadow);
14
18
  background: var(--kbq-popover-container-background);
15
19
  }
16
20
 
@@ -24,4 +24,6 @@
24
24
  --kbq-popover-header-scroll-shadow: var(--kbq-shadow-overflow-normal-bottom);
25
25
  --kbq-popover-content-text-color: var(--kbq-foreground-contrast);
26
26
  --kbq-popover-footer-scroll-shadow: var(--kbq-shadow-overflow-normal-top);
27
+
28
+ --kbq-popover-borderless-shadow: 0 2px 8px var(--kbq-shadow-key), 0 3px 8px var(--kbq-shadow-ambient);
27
29
  }
@@ -39,6 +39,8 @@ export declare const KBQ_POPOVER_SCROLL_STRATEGY_FACTORY_PROVIDER: {
39
39
  export declare function getKbqPopoverInvalidPositionError(position: string): Error;
40
40
  export declare class KbqPopoverTrigger extends KbqPopUpTrigger<KbqPopoverComponent> implements AfterContentInit, OnInit {
41
41
  protected scrollStrategy: () => ScrollStrategy;
42
+ /** prevents closure by any event */
43
+ preventClose: boolean;
42
44
  get popoverVisible(): boolean;
43
45
  set popoverVisible(value: boolean);
44
46
  get popoverPlacement(): PopUpPlacements;
@@ -99,7 +101,8 @@ export declare class KbqPopoverTrigger extends KbqPopUpTrigger<KbqPopoverCompone
99
101
  closingActions(): import("rxjs").Observable<void | CdkScrollable | MouseEvent>;
100
102
  private hideIfNotInViewPort;
101
103
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqPopoverTrigger, never>;
102
- 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; }; "arrow": { "alias": "kbqPopoverArrow"; "required": false; }; "offset": { "alias": "kbqPopoverOffset"; "required": false; }; "leaveDelay": { "alias": "kbqLeaveDelay"; "required": false; }; }, { "placementChange": "kbqPopoverPlacementChange"; "visibleChange": "kbqPopoverVisibleChange"; }, never, never, false, never>;
104
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqPopoverTrigger, "[kbqPopover]", ["kbqPopover"], { "preventClose": { "alias": "kbqPopoverPreventClose"; "required": false; }; "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; }; "arrow": { "alias": "kbqPopoverArrow"; "required": false; }; "offset": { "alias": "kbqPopoverOffset"; "required": false; }; "leaveDelay": { "alias": "kbqLeaveDelay"; "required": false; }; }, { "placementChange": "kbqPopoverPlacementChange"; "visibleChange": "kbqPopoverVisibleChange"; }, never, never, false, never>;
105
+ static ngAcceptInputType_preventClose: unknown;
103
106
  static ngAcceptInputType_arrow: unknown;
104
107
  static ngAcceptInputType_offset: unknown;
105
108
  static ngAcceptInputType_leaveDelay: unknown;