@eclipse-docks/core 0.7.109 → 0.7.110

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-docks/core",
3
- "version": "0.7.109",
3
+ "version": "0.7.110",
4
4
  "description": "Eclipse Docks platform core: registries, services, parts, widgets, and API",
5
5
  "type": "module",
6
6
  "license": "EPL-2.0",
@@ -60,6 +60,16 @@ export class DocksCommand extends DocksWidget {
60
60
  @state()
61
61
  private dropdownContributions: Contribution[] = []
62
62
 
63
+ private closeDropdown(dropdown: { open?: boolean } | null | undefined) {
64
+ if (dropdown && dropdown.open !== undefined) {
65
+ dropdown.open = false
66
+ }
67
+ }
68
+
69
+ private closeParentDropdown() {
70
+ this.closeDropdown(this.closest('wa-dropdown') as { open?: boolean } | null)
71
+ }
72
+
63
73
  private handleClick(event?: Event) {
64
74
  if (this.disabled) return
65
75
 
@@ -67,27 +77,20 @@ export class DocksCommand extends DocksWidget {
67
77
  event.stopPropagation()
68
78
  }
69
79
 
80
+ this.closeParentDropdown()
81
+
70
82
  if (this.action) {
71
83
  this.action(event)
72
84
  return
73
85
  }
74
86
 
75
87
  if (this.cmd) {
76
- const dropdown = this.closest('wa-dropdown') as any;
77
- if (dropdown && dropdown.open !== undefined) {
78
- dropdown.open = false;
79
- }
80
88
  void this.executeCommand(this.cmd, this.params);
81
89
  }
82
90
  }
83
91
 
84
92
  private handleSelect(event: CustomEvent) {
85
- // Close dropdown immediately when any item is selected
86
- // This ensures the dropdown is hidden before the command executes
87
- const dropdown = event.target as any;
88
- if (dropdown && dropdown.open !== undefined) {
89
- dropdown.open = false;
90
- }
93
+ this.closeDropdown(event.target as { open?: boolean })
91
94
  }
92
95
 
93
96
  private isInDropdown(): boolean {
package/src/parts/tabs.ts CHANGED
@@ -469,13 +469,27 @@ export class DocksTabs extends DocksContainer {
469
469
  overflow: hidden;
470
470
  }
471
471
 
472
- :host(:is([placement="top"], [placement="bottom"])) wa-tab-group::part(base) {
472
+ /* Top: nav (order 0) → row 1 auto, body (order 2) → row 2 1fr. */
473
+ :host([placement="top"]) wa-tab-group::part(base) {
473
474
  display: grid;
474
475
  grid-template-rows: auto minmax(0, 1fr);
475
476
  height: 100%;
476
477
  width: 100%;
477
478
  }
478
479
 
480
+ /* Bottom: body (order 1) → row 1 1fr, nav (order 2) → row 2 auto. */
481
+ :host([placement="bottom"]) wa-tab-group::part(base) {
482
+ display: grid;
483
+ grid-template-rows: minmax(0, 1fr) auto;
484
+ height: 100%;
485
+ width: 100%;
486
+ }
487
+
488
+ :host([placement="bottom"]) wa-tab-group::part(body) {
489
+ min-height: 0;
490
+ overflow: hidden;
491
+ }
492
+
479
493
  :host(:is([placement="start"], [placement="end"])) wa-tab-group::part(base) {
480
494
  height: 100%;
481
495
  width: 100%;