File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -60,34 +60,37 @@ export class DocksCommand extends DocksWidget {
6060 @state ( )
6161 private dropdownContributions : Contribution [ ] = [ ]
6262
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+
6373 private handleClick ( event ?: Event ) {
6474 if ( this . disabled ) return
6575
6676 if ( event ) {
6777 event . stopPropagation ( )
6878 }
6979
80+ this . closeParentDropdown ( )
81+
7082 if ( this . action ) {
7183 this . action ( event )
7284 return
7385 }
7486
7587 if ( this . cmd ) {
76- const dropdown = this . closest ( 'wa-dropdown' ) as any ;
77- if ( dropdown && dropdown . open !== undefined ) {
78- dropdown . open = false ;
79- }
8088 void this . executeCommand ( this . cmd , this . params ) ;
8189 }
8290 }
8391
8492 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 } )
9194 }
9295
9396 private isInDropdown ( ) : boolean {
Original file line number Diff line number Diff line change @@ -469,13 +469,27 @@ export class DocksTabs extends DocksContainer {
469469 overflow : hidden;
470470 }
471471
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 ) {
473474 display : grid;
474475 grid-template-rows : auto minmax (0 , 1fr );
475476 height : 100% ;
476477 width : 100% ;
477478 }
478479
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+
479493 : host (: is ([placement = "start" ], [placement = "end" ])) wa-tab-group ::part (base ) {
480494 height : 100% ;
481495 width : 100% ;
Original file line number Diff line number Diff line change 1717 "./api" : {
1818 "types" : " ./dist/api.d.ts" ,
1919 "import" : " ./dist/api.js"
20+ },
21+ "./table" : {
22+ "types" : " ./dist/docks-data-table.d.ts" ,
23+ "import" : " ./dist/table.js"
2024 }
2125 },
2226 "files" : [
Original file line number Diff line number Diff line change @@ -22,6 +22,7 @@ export default defineConfig({
2222 entry : {
2323 index : path . resolve ( __dirname , 'src/index.ts' ) ,
2424 api : path . resolve ( __dirname , 'src/api.ts' ) ,
25+ table : path . resolve ( __dirname , 'src/docks-data-table.ts' ) ,
2526 } ,
2627 formats : [ 'es' ] ,
2728 fileName : ( _ , name ) => `${ name } .js` ,
You can’t perform that action at this time.
0 commit comments