@koobiq/components 20.3.2 → 20.3.3

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.
@@ -22,7 +22,7 @@
22
22
  border-radius: var(--kbq-navbar-item-size-content-border-radius);
23
23
  }
24
24
 
25
- & .kbq-navbar-title {
25
+ &:not(.kbq-disabled) .kbq-navbar-title {
26
26
  cursor: pointer;
27
27
  }
28
28
  }
@@ -112,14 +112,21 @@ a.kbq-navbar-brand {
112
112
  .kbq-navbar-brand {
113
113
  @include navbar-theme.kbq-navbar-item(default);
114
114
 
115
+ // Explicit, or the text of an `<a>` without `href` falls back to the I-beam.
116
+ &.kbq-disabled {
117
+ cursor: default;
118
+ }
119
+
115
120
  &.kbq-navbar-brand_link {
116
- cursor: pointer;
121
+ &:not(.kbq-disabled) {
122
+ cursor: pointer;
123
+ }
117
124
 
118
125
  &:hover:not(.kbq-disabled) {
119
126
  @include navbar-theme.kbq-navbar-item(states-hover);
120
127
  }
121
128
 
122
- &.cdk-focused.cdk-keyboard-focused {
129
+ &.cdk-focused.cdk-keyboard-focused:not(.kbq-disabled) {
123
130
  outline: none;
124
131
 
125
132
  &:after {
@@ -133,13 +140,13 @@ a.kbq-navbar-brand {
133
140
  @include navbar-theme.kbq-navbar-item(states-selected);
134
141
  }
135
142
 
136
- &.kbq-vertical:hover {
143
+ &.kbq-vertical:hover:not(.kbq-disabled) {
137
144
  .kbq-navbar-logo {
138
145
  transform: scale(1.06);
139
146
  }
140
147
  }
141
148
 
142
- &.kbq-horizontal:hover {
149
+ &.kbq-horizontal:hover:not(.kbq-disabled) {
143
150
  .kbq-navbar-logo {
144
151
  z-index: 1;
145
152
  }
@@ -93,8 +93,11 @@
93
93
  margin-right: var(--kbq-size-3xs);
94
94
  }
95
95
 
96
+ // The dot keeps its width once read, or the title gains that width and rewraps under the pointer.
97
+ // Placed before the time, so the time keeps the position it had before the dot was hidden.
96
98
  &.kbq-notification-item-time_read .kbq-notification-item-time__state {
97
- display: none;
99
+ visibility: hidden;
100
+ order: -1;
98
101
  }
99
102
  }
100
103
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koobiq/components",
3
- "version": "20.3.2",
3
+ "version": "20.3.3",
4
4
  "description": "koobiq",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,8 +25,8 @@
25
25
  "@angular/cdk": ">=20.0.0",
26
26
  "@angular/core": ">=20.0.0",
27
27
  "@angular/forms": ">=20.0.0",
28
- "@koobiq/angular-moment-adapter": "20.3.2",
29
- "@koobiq/angular-luxon-adapter": "20.3.2",
28
+ "@koobiq/angular-moment-adapter": "20.3.3",
29
+ "@koobiq/angular-luxon-adapter": "20.3.3",
30
30
  "@koobiq/date-formatter": "^3.2.3",
31
31
  "@koobiq/icons": "^11.1.3",
32
32
  "@koobiq/design-tokens": "^3.14.0"
@@ -27,7 +27,7 @@ function ngAdd(options) {
27
27
  }
28
28
  // Installing dependencies
29
29
  utils_packageConfig.addPackageToPackageJson(tree, '@angular/cdk', "^20.2.14");
30
- utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/angular-luxon-adapter', "^20.3.2");
30
+ utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/angular-luxon-adapter', "^20.3.3");
31
31
  utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/date-formatter', "^3.5.1");
32
32
  utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/date-adapter', "^3.5.1");
33
33
  utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/icons', "^12.2.0");
package/select/index.d.ts CHANGED
@@ -552,6 +552,12 @@ declare class KbqSelect extends KbqAbstractSelect implements AfterContentInit, O
552
552
  get firstSelected(): KbqOptionBase | null;
553
553
  /** Whether the first selected option is filtered (not visible in the list). */
554
554
  get firstFiltered(): boolean;
555
+ /**
556
+ * Whether the legacy `KbqValidateDirective` marks this control. The class it writes never changes
557
+ * after the host is created, so it is probed once instead of on every change detection pass.
558
+ */
559
+ private hasLegacyValidateDirective;
560
+ private readonly invalidState;
555
561
  /** @docs-private */
556
562
  get colorForState(): KbqComponentColors;
557
563
  /** Whether multiple choice is enabled. True if multiple or multiline mode is active. */
@@ -584,6 +590,7 @@ declare class KbqSelect extends KbqAbstractSelect implements AfterContentInit, O
584
590
  ngOnDestroy(): void;
585
591
  /** Updates the error state based on the error state matcher. */
586
592
  updateErrorState(): void;
593
+ private syncInvalidState;
587
594
  /**
588
595
  * Formats the hidden items text with the number of hidden items.
589
596
  * @param hiddenItemsText Template string with {{ number }} placeholder.
@@ -235,9 +235,16 @@ declare class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipComponent> imp
235
235
  * Set when that pop-up opens and released only once the pointer or the focus genuinely leaves the host,
236
236
  * never on the pop-up closing. Both matter: a pop-up restores focus to its trigger when it closes (see
237
237
  * `KbqPopoverComponent.onEscape`), and removing its backdrop replays `mouseenter` on the trigger without
238
- * the pointer having moved — either would otherwise pop the tooltip up out of nowhere.
238
+ * the pointer having moved — either would otherwise pop the tooltip up out of nowhere. A pointer that left
239
+ * the host while the pop-up was open (see `pointerLeftWhileMuted`) releases it by coming back once the
240
+ * pop-up is closed.
239
241
  */
240
242
  private mutedBySiblingPopup;
243
+ /**
244
+ * Whether the pointer left the host while muted. A backdrop inserted under the resting pointer fires
245
+ * `mouseleave` as well, but with the pointer still within the host — that one does not count.
246
+ */
247
+ private pointerLeftWhileMuted;
241
248
  /**
242
249
  * Sets up an effect that mirrors a `forDisabledComponent`'s disabled signal: when that component is disabled it
243
250
  * makes the host focusable (so the tooltip can still be triggered) and enables the tooltip, otherwise disables it.
@@ -273,6 +280,11 @@ declare class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipComponent> imp
273
280
  * not be mistaken for the user leaving.
274
281
  */
275
282
  hide(delay?: number): void;
283
+ /**
284
+ * Records whether the pointer left the host while muted, see `pointerLeftWhileMuted`.
285
+ * @docs-private
286
+ */
287
+ protected trackPointerLeave(event: MouseEvent): void;
276
288
  /**
277
289
  * Hides the tooltip because something else took its place — another tooltip became visible, or a pop-up
278
290
  * anchored to the same element opened.