@koobiq/components 18.13.0 → 18.15.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 (107) hide show
  1. package/LICENSE +1 -1
  2. package/accordion/accordion.component.d.ts +5 -5
  3. package/button/button.component.d.ts +3 -2
  4. package/button-toggle/_button-toggle-theme.scss +0 -4
  5. package/button-toggle/button-toggle-tokens.scss +1 -4
  6. package/button-toggle/button-toggle.component.d.ts +3 -2
  7. package/button-toggle/button-toggle.scss +11 -0
  8. package/core/locales/formatters.d.ts +36 -0
  9. package/core/locales/index.d.ts +1 -0
  10. package/core/locales/locale-service.d.ts +79 -0
  11. package/core/locales/tk-TM.d.ts +45 -0
  12. package/core/pop-up/constants.d.ts +6 -0
  13. package/core/pop-up/pop-up-trigger.d.ts +6 -0
  14. package/core/select/common.d.ts +17 -0
  15. package/core/select/constants.d.ts +0 -18
  16. package/esm2022/accordion/accordion.component.mjs +11 -10
  17. package/esm2022/button/button.component.mjs +3 -1
  18. package/esm2022/button-toggle/button-toggle.component.mjs +6 -4
  19. package/esm2022/core/locales/formatters.mjs +37 -1
  20. package/esm2022/core/locales/index.mjs +2 -1
  21. package/esm2022/core/locales/locale-service.mjs +7 -4
  22. package/esm2022/core/locales/tk-TM.mjs +44 -0
  23. package/esm2022/core/option/action.mjs +3 -4
  24. package/esm2022/core/pop-up/constants.mjs +8 -1
  25. package/esm2022/core/pop-up/pop-up-trigger.mjs +50 -3
  26. package/esm2022/core/select/common.mjs +63 -1
  27. package/esm2022/core/select/constants.mjs +1 -19
  28. package/esm2022/core/version.mjs +2 -2
  29. package/esm2022/form-field/form-field.mjs +5 -5
  30. package/esm2022/icon/icon-button.component.mjs +3 -1
  31. package/esm2022/link/link.component.mjs +4 -2
  32. package/esm2022/navbar/navbar-item.component.mjs +4 -2
  33. package/esm2022/navbar/navbar.component.mjs +6 -4
  34. package/esm2022/overflow-items/index.mjs +3 -0
  35. package/esm2022/overflow-items/koobiq-components-overflow-items.mjs +5 -0
  36. package/esm2022/overflow-items/module.mjs +25 -0
  37. package/esm2022/overflow-items/overflow-items.mjs +269 -0
  38. package/esm2022/popover/popover.component.mjs +4 -2
  39. package/esm2022/select/select-option.directive.mjs +17 -19
  40. package/esm2022/select/select.component.mjs +4 -78
  41. package/esm2022/tabs/tab-header.component.mjs +2 -2
  42. package/esm2022/tabs/tab-nav-bar.mjs +18 -18
  43. package/esm2022/timezone/timezone-option.directive.mjs +15 -12
  44. package/esm2022/title/title.directive.mjs +9 -18
  45. package/esm2022/toggle/toggle.component.mjs +12 -10
  46. package/esm2022/tooltip/tooltip.component.mjs +30 -27
  47. package/esm2022/tree-select/tree-select.component.mjs +21 -56
  48. package/fesm2022/koobiq-components-accordion.mjs +9 -7
  49. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  50. package/fesm2022/koobiq-components-button-toggle.mjs +5 -3
  51. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  52. package/fesm2022/koobiq-components-button.mjs +2 -0
  53. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  54. package/fesm2022/koobiq-components-core.mjs +219 -41
  55. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  56. package/fesm2022/koobiq-components-form-field.mjs +4 -4
  57. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  58. package/fesm2022/koobiq-components-icon.mjs +2 -0
  59. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  60. package/fesm2022/koobiq-components-link.mjs +3 -1
  61. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  62. package/fesm2022/koobiq-components-navbar.mjs +8 -4
  63. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  64. package/fesm2022/koobiq-components-overflow-items.mjs +298 -0
  65. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -0
  66. package/fesm2022/koobiq-components-popover.mjs +3 -1
  67. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  68. package/fesm2022/koobiq-components-select.mjs +19 -95
  69. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-tabs.mjs +19 -19
  71. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  72. package/fesm2022/koobiq-components-timezone.mjs +14 -11
  73. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  74. package/fesm2022/koobiq-components-title.mjs +8 -17
  75. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  76. package/fesm2022/koobiq-components-toggle.mjs +11 -9
  77. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-tooltip.mjs +30 -27
  79. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-tree-select.mjs +19 -54
  81. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  82. package/form-field/_form-field-theme.scss +2 -2
  83. package/icon/icon-button.component.d.ts +3 -2
  84. package/link/_link-theme.scss +6 -4
  85. package/link/link.component.d.ts +3 -2
  86. package/navbar/navbar-item.component.d.ts +2 -1
  87. package/navbar/navbar.component.d.ts +2 -1
  88. package/overflow-items/index.d.ts +2 -0
  89. package/overflow-items/module.d.ts +7 -0
  90. package/overflow-items/overflow-items.d.ts +132 -0
  91. package/overflow-items/overflow-items.scss +20 -0
  92. package/package.json +10 -4
  93. package/popover/popover.component.d.ts +1 -0
  94. package/prebuilt-themes/dark-theme.css +1 -1
  95. package/prebuilt-themes/light-theme.css +1 -1
  96. package/prebuilt-themes/theme.css +1 -1
  97. package/schematics/ng-add/index.js +4 -4
  98. package/select/select-option.directive.d.ts +3 -1
  99. package/select/select.component.d.ts +2 -15
  100. package/tabs/_tabs-common.scss +14 -0
  101. package/tabs/tab-header.scss +0 -14
  102. package/tabs/tab-nav-bar.d.ts +0 -1
  103. package/timezone/timezone-option.directive.d.ts +1 -0
  104. package/title/title.directive.d.ts +2 -2
  105. package/toggle/toggle.component.d.ts +6 -5
  106. package/tooltip/tooltip.component.d.ts +3 -3
  107. package/tree-select/tree-select.component.d.ts +5 -16
@@ -0,0 +1,132 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Template context for the `KbqOverflowItemsResult` directive.
5
+ *
6
+ * @see `KbqOverflowItemsResult`
7
+ */
8
+ export type KbqOverflowItemsResultContext = {
9
+ /**
10
+ * Set of hidden item ID's.
11
+ *
12
+ * Example:
13
+ *
14
+ * ```html
15
+ * <ng-template kbqOverflowItemsResult let-hiddenItemIDs>
16
+ * {{ hiddenItemIDs.size }}
17
+ * </ng-template>
18
+ * ````
19
+ */
20
+ $implicit: ReadonlySet<unknown>;
21
+ /**
22
+ * Set of hidden item ID's.
23
+ *
24
+ * Example:
25
+ *
26
+ * ```html
27
+ * <ng-template kbqOverflowItemsResult let-hiddenItemIDs="hiddenItemIDs">
28
+ * @if (hiddenItemIDs.has(SOME_ID)) {...}
29
+ * </ng-template>
30
+ * ````
31
+ */
32
+ hiddenItemIDs: ReadonlySet<unknown>;
33
+ };
34
+ /**
35
+ * Directive for providing `KbqOverflowItemsResultContext` to the `KbqOverflowItems` component.
36
+ *
37
+ * @see `KbqOverflowItemsResultContext`
38
+ */
39
+ export declare class KbqOverflowItemsResult {
40
+ /**
41
+ * TemplateRef for the overflow result.
42
+ *
43
+ * @docs-private
44
+ */
45
+ readonly templateRef: TemplateRef<KbqOverflowItemsResultContext>;
46
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqOverflowItemsResult, never>;
47
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqOverflowItemsResult, "ng-template[kbqOverflowItemsResult]", never, {}, {}, never, never, true, never>;
48
+ }
49
+ /**
50
+ * Structure directive for providing items to the `KbqOverflowItems`.
51
+ */
52
+ export declare class KbqOverflowItem {
53
+ /**
54
+ * Identifier for the item.
55
+ */
56
+ readonly id: import("@angular/core").InputSignal<unknown>;
57
+ /**
58
+ * Whether the item is hidden.
59
+ *
60
+ * @docs-private
61
+ */
62
+ readonly hidden: import("@angular/core").WritableSignal<boolean>;
63
+ /**
64
+ * TemplateRef for the item.
65
+ *
66
+ * @docs-private
67
+ */
68
+ readonly templateRef: TemplateRef<any>;
69
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqOverflowItem, never>;
70
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqOverflowItem, "[kbqOverflowItem]", never, { "id": { "alias": "kbqOverflowItem"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
71
+ }
72
+ /**
73
+ * Component for automatically hiding elements with dynamic adaptation to the container width.
74
+ */
75
+ export declare class KbqOverflowItems {
76
+ private readonly itemElementRefs;
77
+ /**
78
+ * `KbqOverflowItem` directive references.
79
+ *
80
+ * @docs-private
81
+ */
82
+ protected readonly items: import("@angular/core").Signal<readonly KbqOverflowItem[]>;
83
+ /**
84
+ * `KbqOverflowItemsResult` directive reference.
85
+ *
86
+ * @docs-private
87
+ */
88
+ protected readonly result: import("@angular/core").Signal<KbqOverflowItemsResult | undefined>;
89
+ private readonly resultElementRef;
90
+ /**
91
+ * Template context for the `KbqOverflowItemsResult` directive.
92
+ *
93
+ * @docs-private
94
+ */
95
+ protected readonly resultTemplateContext: import("@angular/core").Signal<KbqOverflowItemsResultContext>;
96
+ /**
97
+ * Whether the overflow result is hidden.
98
+ *
99
+ * @docs-private
100
+ */
101
+ protected readonly resultHidden: import("@angular/core").Signal<boolean>;
102
+ /**
103
+ * Whether the overflow order should be reversed.
104
+ * Also changes the position of the `resultTemplateRef`.
105
+ *
106
+ * @default false
107
+ */
108
+ readonly reverseOverflowOrder: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
109
+ private readonly elementRef;
110
+ private readonly resizeObserver;
111
+ private readonly contentObserver;
112
+ constructor();
113
+ /**
114
+ * Updates the visibility of items based on the container width.
115
+ *
116
+ * This method calculates whether items should be hidden or shown by comparing the scroll width of the container
117
+ * with its visible width. It determines which items are visible and which are hidden, and applies the hiding logic
118
+ * based on the `reverseOverflowOrder` flag.
119
+ *
120
+ * The function operates recursively to adjust the visibility of items until the overflow condition is resolved.
121
+ *
122
+ * - If the container is overflown, it hides the last visible item from the end (or start if `reverseOverflowOrder`)
123
+ * and checks if further adjustments are needed.
124
+ * - If the container is not overflown, it reveals the first hidden item from the start
125
+ * (or end if `reverseOverflowOrder`), ensuring it fits within the visible area.
126
+ */
127
+ private updateItemsVisibility;
128
+ /** @TODO Should use `Array.prototype.findLast` after migrating to ES2023 */
129
+ private findLast;
130
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqOverflowItems, never>;
131
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqOverflowItems, "kbq-overflow-items", never, { "reverseOverflowOrder": { "alias": "reverseOverflowOrder"; "required": false; "isSignal": true; }; }, {}, ["items", "result"], never, true, never>;
132
+ }
@@ -0,0 +1,20 @@
1
+ :host {
2
+ position: relative;
3
+ display: flex;
4
+ flex-grow: 1;
5
+ overflow: hidden;
6
+ flex-wrap: nowrap;
7
+ white-space: nowrap;
8
+ }
9
+
10
+ .kbq-overflow-items__item,
11
+ .kbq-overflow-items__result {
12
+ display: flex;
13
+ align-items: center;
14
+
15
+ &.kbq-overflow-items__item_hidden,
16
+ &.kbq-overflow-items__result_hidden {
17
+ visibility: hidden;
18
+ position: absolute;
19
+ }
20
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koobiq/components",
3
- "version": "18.13.0",
3
+ "version": "18.15.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.13.0",
28
- "@koobiq/angular-moment-adapter": "18.13.0",
29
- "@koobiq/angular-luxon-adapter": "18.13.0",
27
+ "@koobiq/cdk": "18.15.0",
28
+ "@koobiq/angular-moment-adapter": "18.15.0",
29
+ "@koobiq/angular-luxon-adapter": "18.15.0",
30
30
  "@koobiq/date-formatter": "^3.1.4",
31
31
  "@koobiq/icons": "^9.2.0",
32
32
  "@koobiq/tokens-builder": "3.10.0",
@@ -220,6 +220,12 @@
220
220
  "esm": "./esm2022/navbar/koobiq-components-navbar.mjs",
221
221
  "default": "./fesm2022/koobiq-components-navbar.mjs"
222
222
  },
223
+ "./overflow-items": {
224
+ "types": "./overflow-items/index.d.ts",
225
+ "esm2022": "./esm2022/overflow-items/koobiq-components-overflow-items.mjs",
226
+ "esm": "./esm2022/overflow-items/koobiq-components-overflow-items.mjs",
227
+ "default": "./fesm2022/koobiq-components-overflow-items.mjs"
228
+ },
223
229
  "./popover": {
224
230
  "types": "./popover/index.d.ts",
225
231
  "esm2022": "./esm2022/popover/koobiq-components-popover.mjs",
@@ -75,6 +75,7 @@ export declare class KbqPopoverTrigger extends KbqPopUpTrigger<KbqPopoverCompone
75
75
  private _closeOnScroll;
76
76
  get hasClickTrigger(): boolean;
77
77
  backdropClass: string;
78
+ arrow: boolean;
78
79
  placementChange: EventEmitter<any>;
79
80
  visibleChange: EventEmitter<boolean>;
80
81
  protected originSelector: string;