@scion/workbench 20.0.0-beta.7 → 20.0.0-beta.9

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/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as _angular_cdk_portal from '@angular/cdk/portal';
2
2
  import { ComponentType } from '@angular/cdk/portal';
3
3
  import * as i0 from '@angular/core';
4
- import { InjectionToken, Signal, Injector, Type, EnvironmentProviders, ElementRef, StaticProvider, ViewContainerRef, TemplateRef, WritableSignal, ComponentRef, Provider, OnDestroy, OnInit, AfterViewInit, AbstractType, PipeTransform } from '@angular/core';
4
+ import { InjectionToken, Signal, Injector, Type, EnvironmentProviders, ElementRef, StaticProvider, ViewContainerRef, TemplateRef, WritableSignal, ComponentRef, Provider, OnDestroy, OnInit, DestroyableInjector, AbstractType, PipeTransform } from '@angular/core';
5
5
  import { MicrofrontendPlatformConfig } from '@scion/microfrontend-platform';
6
6
  import * as _angular_router from '@angular/router';
7
7
  import { UrlSegment, NavigationExtras, ActivatedRoute, CanMatchFn } from '@angular/router';
@@ -175,7 +175,7 @@ type PopupId = `${typeof POPUP_ID_PREFIX}${string}`;
175
175
  *
176
176
  * Each activity is assigned a unique identifier (e.g., `activity.9fdf7ab4`, `activity.c6485225`, etc.).
177
177
  *
178
- * @docs-private Not public API, intended for internal use only.
178
+ * @docs-private Not public API. For internal use only.
179
179
  */
180
180
  type ActivityId = `${typeof ACTIVITY_ID_PREFIX}${string}`;
181
181
  /**
@@ -237,9 +237,9 @@ interface WorkbenchNavigationExtras extends NavigationExtras {
237
237
  * Controls where to open the view. Defaults to `auto`.
238
238
  *
239
239
  * One of:
240
- * - 'auto': Navigates existing views that match the path, or opens a new view otherwise. Matrix params do not affect view resolution.
241
- * - 'blank': Opens a new view and navigates it.
242
- * - <viewId>: Navigates the specified view. If already opened, replaces it, or opens a new view otherwise.
240
+ * - `auto`: Navigates existing views that match the path, or opens a new view otherwise. Matrix params do not affect view resolution.
241
+ * - `blank`: Opens a new view and navigates it.
242
+ * - `<viewId>`: Navigates the specified view. If already opened, replaces it, or opens a new view otherwise.
243
243
  */
244
244
  target?: ViewId | string | 'blank' | 'auto';
245
245
  /**
@@ -437,7 +437,7 @@ declare abstract class WorkbenchLayoutFactory {
437
437
  * The workbench layout is an arrangement of parts and views. Parts can be docked to the side or positioned relative to each other.
438
438
  * Views are stacked in parts and can be dragged to other parts. Content can be displayed in both parts and views.
439
439
  *
440
- * A typical workbench application has a main area part and other parts docked to the side, providing navigation and context-sensitive assistance to
440
+ * A typical workbench application has a main area part and parts docked to the side, providing navigation and context-sensitive assistance to
441
441
  * support the user's workflow.
442
442
  *
443
443
  * Multiple layouts, called perspectives, can be created. Users can switch between perspectives. Perspectives share the same main area, if any.
@@ -659,6 +659,14 @@ interface WorkbenchLayout {
659
659
  * @return a copy of this layout with the part activated.
660
660
  */
661
661
  activatePart(id: string): WorkbenchLayout;
662
+ /**
663
+ * Tests if given part is contained in the layout.
664
+ */
665
+ hasPart(id: string): boolean;
666
+ /**
667
+ * Tests if given view is contained in the layout.
668
+ */
669
+ hasView(id: string): boolean;
662
670
  /**
663
671
  * Applies a modification function to this layout, enabling conditional changes while maintaining method chaining.
664
672
  *
@@ -706,15 +714,16 @@ interface PartExtras {
706
714
  activate?: boolean;
707
715
  }
708
716
  /**
709
- * Controls the appearance and behavior of a docked part.
717
+ * Controls the appearance of a docked part and its toggle button.
710
718
  *
711
719
  * A docked part is a part that is docked to the left, right, or bottom side of the workbench.
720
+ *
712
721
  * Docked parts can be minimized to create more space for the main content. Users cannot drag
713
722
  * views into or out of docked parts.
714
723
  */
715
724
  interface DockedPartExtras {
716
725
  /**
717
- * Icon (key) of the toggle button in the sidebar, used to open or close the docked part.
726
+ * Icon (key) displayed in the toggle button.
718
727
  *
719
728
  * The actual icon is resolved through an {@link WorkbenchIconProviderFn} registered in {@link WorkbenchConfig.iconProvider}.
720
729
  *
@@ -729,13 +738,13 @@ interface DockedPartExtras {
729
738
  */
730
739
  icon: string;
731
740
  /**
732
- * Label of the toggle button in the sidebar.
741
+ * Label displayed in the toggle button.
733
742
  *
734
743
  * Can be text or a translation key. A translation key starts with the percent symbol (`%`) and may include parameters in matrix notation for text interpolation.
735
744
  */
736
745
  label: Translatable;
737
746
  /**
738
- * Tooltip displayed when hovering over the toggle button in the sidebar.
747
+ * Tooltip displayed when hovering over the toggle button.
739
748
  *
740
749
  * Can be text or a translation key. A translation key starts with the percent symbol (`%`) and may include parameters in matrix notation for text interpolation.
741
750
  */
@@ -752,10 +761,14 @@ interface DockedPartExtras {
752
761
  * CSS class(es) to add to the docked part and its toggle button, e.g., to locate the part in tests.
753
762
  */
754
763
  cssClass?: string | string[];
764
+ /**
765
+ * Controls whether to activate the docked part. Defaults to `false`.
766
+ */
767
+ activate?: boolean;
755
768
  /**
756
769
  * Internal identifier for the docked part.
757
770
  *
758
- * @docs-private Not public API, intended for internal use only.
771
+ * @docs-private Not public API. For internal use only.
759
772
  */
760
773
  ɵactivityId?: ActivityId;
761
774
  }
@@ -783,7 +796,7 @@ interface DockingArea {
783
796
  *
784
797
  * Refer to this part to align parts relative to the main area.
785
798
  *
786
- * The main area is a special part that can be added to the layout. The main area is where the workbench opens new views by default.
799
+ * The main area is a special part that can be added to the layout. The main area is where the workbench opens views by default.
787
800
  * It is shared between perspectives and its layout is not reset when resetting perspectives.
788
801
  */
789
802
  declare const MAIN_AREA: MAIN_AREA;
@@ -802,8 +815,8 @@ type MAIN_AREA = 'part.main-area';
802
815
  * The workbench layout is an arrangement of parts and views. Parts can be docked to the side or positioned relative to each other.
803
816
  * Views are stacked in parts and can be dragged to other parts. Content can be displayed in both parts and views.
804
817
  *
805
- * The layout typically has a main area part and other parts docked to the side, providing navigation and context-sensitive assistance to support
806
- * the user's workflow. Initially empty or displaying a welcome page, the main area is where the workbench opens new views by default.
818
+ * The layout typically has a main area part and parts docked to the side, providing navigation and context-sensitive assistance to support
819
+ * the user's workflow. Initially empty or displaying a welcome page, the main area is where the workbench opens views by default.
807
820
  * Unlike any other part, the main area is shared between perspectives, and its layout is not reset when resetting perspectives.
808
821
 
809
822
  * ## Steps to create the layout
@@ -959,8 +972,8 @@ interface WorkbenchPerspectiveDefinition {
959
972
  * A perspective defines an arrangement of parts and views. Parts can be docked to the side or positioned relative to each other.
960
973
  * Views are stacked in parts and can be dragged to other parts. Content can be displayed in both parts and views.
961
974
  *
962
- * A perspective typically has a main area part and other parts docked to the side, providing navigation and context-sensitive assistance to support
963
- * the user's workflow. Initially empty or displaying a welcome page, the main area is where the workbench opens new views by default.
975
+ * A perspective typically has a main area part and parts docked to the side, providing navigation and context-sensitive assistance to support
976
+ * the user's workflow. Initially empty or displaying a welcome page, the main area is where the workbench opens views by default.
964
977
  * Unlike any other part, the main area is shared between perspectives, and its layout is not reset when resetting perspectives.
965
978
  *
966
979
  * See {@link WorkbenchLayoutFn} for more information and an example.
@@ -1072,8 +1085,8 @@ declare abstract class WorkbenchConfig {
1072
1085
  * Parts can be docked to the side or positioned relative to each other. Views are stacked in parts and can be dragged to other parts.
1073
1086
  * Content can be displayed in both parts and views.
1074
1087
  *
1075
- * A perspective typically has a main area part and other parts docked to the side, providing navigation and context-sensitive assistance to support
1076
- * the user's workflow. Initially empty or displaying a welcome page, the main area is where the workbench opens new views by default.
1088
+ * A perspective typically has a main area part and parts docked to the side, providing navigation and context-sensitive assistance to support
1089
+ * the user's workflow. Initially empty or displaying a welcome page, the main area is where the workbench opens views by default.
1077
1090
  * Unlike any other part, the main area is shared between perspectives, and its layout is not reset when resetting perspectives.
1078
1091
  *
1079
1092
  * See {@link WorkbenchLayoutFn} for more information and an example.
@@ -1247,11 +1260,11 @@ declare abstract class WorkbenchConfig {
1247
1260
  */
1248
1261
  abstract dialog?: {
1249
1262
  /**
1250
- * Configures the area to block for application-modal dialogs. If not set, defaults to `workbench`.
1251
- *
1252
- * - **workbench:** blocks the {@link WorkbenchComponent|workbench element}, still allowing interaction with elements outside the workbench element.
1263
+ * Configures the area to block for application-modal dialogs. Defaults to `workbench`.
1253
1264
  *
1254
- * - **viewport** blocks the browser viewport, preventing interaction with the application until application-modal dialogs are closed.
1265
+ * One of:
1266
+ * - `workbench`: Blocks the workbench, still allowing interaction with elements outside the workbench.
1267
+ * - `viewport`: Blocks the browser viewport, preventing interaction with the application until application-modal dialogs are closed.
1255
1268
  */
1256
1269
  modalityScope?: 'workbench' | 'viewport';
1257
1270
  };
@@ -1405,11 +1418,11 @@ interface MenuItemConfig {
1405
1418
  * Parts can be docked to the side or positioned relative to each other. Views are stacked in parts and can be dragged to other parts.
1406
1419
  * Content can be displayed in both parts and views.
1407
1420
  *
1408
- * Users can personalize the layout of a perspective and switch between perspectives. The workbench remembers the last layout of each perspective,
1421
+ * Users can personalize the layout of a perspective and switch between perspectives. The workbench remembers the layout of a perspective,
1409
1422
  * restoring it the next time it is activated.
1410
1423
  *
1411
- * A perspective typically has a main area part and other parts docked to the side, providing navigation and context-sensitive assistance to support
1412
- * the user's workflow. Initially empty or displaying a welcome page, the main area is where the workbench opens new views by default. Users can split
1424
+ * A perspective typically has a main area part and parts docked to the side, providing navigation and context-sensitive assistance to support
1425
+ * the user's workflow. Initially empty or displaying a welcome page, the main area is where the workbench opens views by default. Users can split
1413
1426
  * the main area (or any other part) by dragging views side-by-side, vertically and horizontally, even across windows.
1414
1427
  *
1415
1428
  * Unlike any other part, the main area is shared between perspectives, and its layout is not reset when resetting perspectives. Having a main area and
@@ -1492,8 +1505,8 @@ interface Disposable {
1492
1505
  }
1493
1506
 
1494
1507
  /**
1495
- * A part is a visual workbench element to create the workbench layout. Parts can be docked to the side or
1496
- * positioned relative to each other. A part can be a stack of views or display content.
1508
+ * A part is a visual element of the workbench layout. Parts can be docked to the side or
1509
+ * positioned relative to each other. A part can display content or stack views.
1497
1510
  *
1498
1511
  * The part component can inject this handle to interact with the part.
1499
1512
  *
@@ -1971,34 +1984,28 @@ interface BottomRightPoint {
1971
1984
  }
1972
1985
 
1973
1986
  /**
1974
- * Configures the content to be displayed in a popup.
1975
- *
1976
- * A popup is a visual workbench component for displaying content above other content. It is positioned relative to an anchor,
1977
- * which can be either a page coordinate (x/y) or an HTML element. When using an element as the popup anchor, the popup also
1978
- * moves when the anchor element moves.
1987
+ * Controls the appearance and behavior of a popup.
1979
1988
  */
1980
1989
  declare abstract class PopupConfig {
1981
1990
  /**
1982
1991
  * Controls where to open the popup.
1983
1992
  *
1984
- * Can be an HTML element or coordinates:
1985
- * - Using an element: The popup opens and sticks to the element.
1986
- * - Using coordinates: The popup opens and sticks relative to the view or page bounds.
1993
+ * Can be an HTML element or a coordinate. The coordinate is relative to the {@link context}, defaulting to the calling context.
1987
1994
  *
1988
1995
  * Supported coordinate pairs:
1989
- * - x/y: Relative to the top/left corner of the view or page.
1996
+ * - x/y: Relative to the top/left corner of the context.
1990
1997
  * - top/left: Same as x/y.
1991
- * - top/right: Relative to the top/right corner.
1992
- * - bottom/left: Relative to the bottom/left corner.
1993
- * - bottom/right: Relative to the bottom/right corner.
1998
+ * - top/right: Relative to the top/right corner of the context.
1999
+ * - bottom/left: Relative to the bottom/left corner of the context.
2000
+ * - bottom/right: Relative to the bottom/right corner of the context.
1994
2001
  *
1995
- * Coordinates can be updated using an Observable. The popup displays when the Observable emits the first coordinate.
2002
+ * Passing an Observable allows for updating the coordinate.
1996
2003
  */
1997
2004
  abstract readonly anchor: ElementRef<Element> | Element | PopupOrigin | Observable<PopupOrigin>;
1998
2005
  /**
1999
2006
  * Specifies the component to display in the popup.
2000
2007
  *
2001
- * In the component, you can inject the popup handle {@link Popup} to interact with the popup, such as to close it
2008
+ * In the component, you can inject the popup handle {@link WorkbenchPopup} to interact with the popup, such as to close it
2002
2009
  * or obtain its input data.
2003
2010
  */
2004
2011
  abstract readonly component: Type<any>;
@@ -2039,7 +2046,7 @@ declare abstract class PopupConfig {
2039
2046
  */
2040
2047
  readonly align?: 'east' | 'west' | 'north' | 'south';
2041
2048
  /**
2042
- * Optional data to pass to the popup component. In the component, you can inject the popup handle {@link Popup} to read input data.
2049
+ * Optional data to pass to the popup component. In the component, you can inject the popup handle {@link WorkbenchPopup} to read input data.
2043
2050
  */
2044
2051
  readonly input?: any;
2045
2052
  /**
@@ -2055,26 +2062,20 @@ declare abstract class PopupConfig {
2055
2062
  */
2056
2063
  readonly cssClass?: string | string[];
2057
2064
  /**
2058
- * Specifies the context in which to open the popup.
2065
+ * Binds the popup to a context (e.g., a part or view). Defaults to the calling context.
2066
+ *
2067
+ * The popup is displayed only if the context is visible and closes when the context is disposed.
2068
+ *
2069
+ * Set to `null` to open the popup outside a context.
2059
2070
  */
2060
- readonly context?: {
2061
- /**
2062
- * Specifies the view the popup belongs to.
2063
- *
2064
- * Binds the popup to the lifecycle of a view so that it displays only if the view is active and closes when the view is closed.
2065
- *
2066
- * By default, if opening the popup in the context of a view, that view is used as the popup's contextual view.
2067
- * If you set the view id to `null`, the popup will open without referring to the contextual view.
2068
- */
2069
- viewId?: ViewId | null;
2070
- };
2071
+ abstract context?: ViewId | PartId | DialogId | PopupId | Context$2 | null;
2071
2072
  }
2072
2073
  /**
2073
2074
  * Specifies when to close the popup.
2074
2075
  */
2075
2076
  interface CloseStrategy {
2076
2077
  /**
2077
- * Controls if to close the popup on focus loss, returning the result set via {@link Popup#setResult} to the popup opener.
2078
+ * Controls if to close the popup on focus loss, returning the result set via {@link WorkbenchPopup#setResult} to the popup opener.
2078
2079
  * Defaults to `true`.
2079
2080
  */
2080
2081
  onFocusLost?: boolean;
@@ -2114,10 +2115,23 @@ interface PopupSize {
2114
2115
  maxWidth?: string;
2115
2116
  }
2116
2117
  /**
2117
- * Represents a handle that a popup component can inject to interact with the popup, for example,
2118
- * to read input data or the configured size, or to close the popup.
2118
+ * @deprecated since version 20.0.0-beta.9. Set view id directly. Migrate `{context: {viewId: 'view.x'}}` to `{context: 'view.x'}`. Marked for removal in version 22.
2119
2119
  */
2120
- declare abstract class Popup<T = unknown, R = unknown> {
2120
+ interface Context$2 {
2121
+ /**
2122
+ * @deprecated since version 20.0.0-beta.9. Set view id directly. Migrate `{context: {viewId: 'view.x'}}` to `{context: 'view.x'}`. Marked for removal in version 22.
2123
+ */
2124
+ viewId?: ViewId | null;
2125
+ }
2126
+
2127
+ /**
2128
+ * Handle to interact with a popup opened via {@link WorkbenchPopupService}.
2129
+ *
2130
+ * The popup component can inject this handle to interact with the popup.
2131
+ *
2132
+ * Popup inputs are available via {@link WorkbenchPopup.input} property.
2133
+ */
2134
+ declare abstract class WorkbenchPopup<T = unknown, R = unknown> {
2121
2135
  /**
2122
2136
  * Unique identity of this popup.
2123
2137
  */
@@ -2338,7 +2352,7 @@ interface WorkbenchTheme {
2338
2352
  /**
2339
2353
  * Union of workbench elements.
2340
2354
  */
2341
- type WorkbenchElement = WorkbenchPart | WorkbenchView | WorkbenchDialog | Popup;
2355
+ type WorkbenchElement = WorkbenchPart | WorkbenchView | WorkbenchDialog | WorkbenchPopup;
2342
2356
 
2343
2357
  /**
2344
2358
  * The central class of the SCION Workbench.
@@ -2351,11 +2365,11 @@ type WorkbenchElement = WorkbenchPart | WorkbenchView | WorkbenchDialog | Popup;
2351
2365
  * Parts can be docked to the side or positioned relative to each other. Views are stacked in parts and can be dragged to other parts.
2352
2366
  * Content can be displayed in both parts and views.
2353
2367
  *
2354
- * Users can personalize the layout of a perspective and switch between perspectives. The workbench remembers the last layout of each perspective,
2368
+ * Users can personalize the layout of a perspective and switch between perspectives. The workbench remembers the layout of a perspective,
2355
2369
  * restoring it the next time it is activated.
2356
2370
  *
2357
- * A perspective typically has a main area part and other parts docked to the side, providing navigation and context-sensitive assistance to support
2358
- * the user's workflow. Initially empty or displaying a welcome page, the main area is where the workbench opens new views by default. Users can split
2371
+ * A perspective typically has a main area part and parts docked to the side, providing navigation and context-sensitive assistance to support
2372
+ * the user's workflow. Initially empty or displaying a welcome page, the main area is where the workbench opens views by default. Users can split
2359
2373
  * the main area (or any other part) by dragging views side-by-side, vertically and horizontally, even across windows.
2360
2374
  *
2361
2375
  * Unlike any other part, the main area is shared between perspectives, and its layout is not reset when resetting perspectives. Having a main area and
@@ -2405,24 +2419,48 @@ declare abstract class WorkbenchService {
2405
2419
  * Each handle represents a part in the layout. The handle has methods to interact with the part. Parts are added to the layout via {@link WorkbenchRouter}.
2406
2420
  */
2407
2421
  abstract readonly parts: Signal<WorkbenchPart[]>;
2408
- /**
2409
- * Returns the handle of the specified part, or `null` if not found.
2410
- *
2411
- * A handle represents a part in the layout. The handle has methods to interact with the part. A part is added to the layout via {@link WorkbenchRouter}.
2412
- */
2413
- abstract getPart(partId: PartId): WorkbenchPart | null;
2414
2422
  /**
2415
2423
  * Provides the handles of the views in the current workbench layout.
2416
2424
  *
2417
2425
  * Each handle represents a view in the layout. The handle has methods to interact with the view. Views are opened via {@link WorkbenchRouter}.
2418
2426
  */
2419
2427
  abstract readonly views: Signal<WorkbenchView[]>;
2428
+ /**
2429
+ * Provides the handles of the dialogs opened in the workbench.
2430
+ *
2431
+ * Each handle represents a dialog. The handle has methods to interact with the dialog. Dialogs are opened via {@link WorkbenchDialogService}.
2432
+ */
2433
+ abstract readonly dialogs: Signal<WorkbenchDialog[]>;
2434
+ /**
2435
+ * Provides the handles of the popups opened in the workbench.
2436
+ *
2437
+ * Each handle represents a popup. The handle has methods to interact with the popup. Popups are opened via {@link WorkbenchPopupService}.
2438
+ */
2439
+ abstract readonly popups: Signal<WorkbenchPopup[]>;
2440
+ /**
2441
+ * Returns the handle of the specified part, or `null` if not found.
2442
+ *
2443
+ * A handle represents a part in the layout. The handle has methods to interact with the part. A part is added to the layout via {@link WorkbenchRouter}.
2444
+ */
2445
+ abstract getPart(partId: PartId): WorkbenchPart | null;
2420
2446
  /**
2421
2447
  * Returns the handle of the specified view, or `null` if not found.
2422
2448
  *
2423
2449
  * A handle represents a view in the layout. The handle has methods to interact with the view. A view is opened via {@link WorkbenchRouter}.
2424
2450
  */
2425
2451
  abstract getView(viewId: ViewId): WorkbenchView | null;
2452
+ /**
2453
+ * Returns the handle of the specified dialog, or `null` if not found.
2454
+ *
2455
+ * A handle represents a dialog opened in the workbench. The handle has methods to interact with the dialog. A dialog is opened via {@link WorkbenchDialogService}.
2456
+ */
2457
+ abstract getDialog(dialogId: DialogId): WorkbenchDialog | null;
2458
+ /**
2459
+ * Returns the handle of the specified popup, or `null` if not found.
2460
+ *
2461
+ * A handle represents a popup opened in the workbench. The handle has methods to interact with the popup. A popup is opened via {@link WorkbenchPopupService}.
2462
+ */
2463
+ abstract getPopup(popupId: PopupId): WorkbenchPopup | null;
2426
2464
  /**
2427
2465
  * Closes the specified workbench views.
2428
2466
  *
@@ -2629,7 +2667,7 @@ declare class MTreeNode {
2629
2667
  /**
2630
2668
  * Represents a part in the grid.
2631
2669
  *
2632
- * A part can be a stack of views or display content.
2670
+ * A part can display content or stack views.
2633
2671
  *
2634
2672
  * The M-prefix indicates this object is a model object that is serialized and stored, requiring migration on breaking change.
2635
2673
  */
@@ -2893,15 +2931,11 @@ declare class ɵWorkbenchLayout implements WorkbenchLayout {
2893
2931
  * Indicates if this layout contains activities.
2894
2932
  */
2895
2933
  hasActivities(): boolean;
2896
- /**
2897
- * Tests if given part is contained in the specified grid.
2898
- */
2934
+ /** @inheritDoc */
2899
2935
  hasPart(id: string, options?: {
2900
2936
  grid?: keyof WorkbenchGrids;
2901
2937
  }): boolean;
2902
- /**
2903
- * Tests if given view is contained in the specified grid.
2904
- */
2938
+ /** @inheritDoc */
2905
2939
  hasView(id: string, options?: {
2906
2940
  grid?: keyof WorkbenchGrids;
2907
2941
  }): boolean;
@@ -3570,7 +3604,7 @@ interface ReferenceElement extends ReferencePart {
3570
3604
  * TestBed.overrideProvider(MAIN_AREA_INITIAL_PART_ID, {useValue: 'part.initial'})
3571
3605
  * ```
3572
3606
  *
3573
- * @docs-private Not public API, intended for internal use only.
3607
+ * @docs-private Not public API. For internal use only.
3574
3608
  */
3575
3609
  declare const MAIN_AREA_INITIAL_PART_ID: InjectionToken<`part.${string}`>;
3576
3610
  /**
@@ -3760,6 +3794,51 @@ type ClassListScopes = 'layout' | 'navigation' | 'route' | 'application';
3760
3794
  */
3761
3795
  type ClassListMap = ReadonlyMap<ClassListScopes, string[]>;
3762
3796
 
3797
+ /**
3798
+ * Represents an object that is blocking another object, preventing user interaction with the other object.
3799
+ */
3800
+ interface Blocking {
3801
+ /**
3802
+ * Identifies the object that is blocking another object.
3803
+ */
3804
+ readonly id: string;
3805
+ /**
3806
+ * Instructs the blocking object to gain focus.
3807
+ */
3808
+ focus(): void;
3809
+ /**
3810
+ * Instructs the blocking object to signal the user to continue interacting with this object.
3811
+ */
3812
+ blink(): void;
3813
+ }
3814
+
3815
+ /**
3816
+ * Represents an object that can be blocked by another object, such as a dialog, preventing user interaction with the object.
3817
+ */
3818
+ interface Blockable {
3819
+ /**
3820
+ * Indicates whether an object (typically a dialog) blocks this object.
3821
+ */
3822
+ blockedBy: Signal<Blocking | null>;
3823
+ }
3824
+
3825
+ /**
3826
+ * Prevents user interaction of the host when blocked by placing a glass pane over the host element.
3827
+ *
3828
+ * Configure this direktive via the following DI tokens. These tokens must be provided at the component level.
3829
+ * - {@link GLASS_PANE_BLOCKABLE}: Represents the object to be blocked.
3830
+ * - {@link GLASS_PANE_TARGET_ELEMENT}: Controls the HTML element to block. Defaults to the directive's host element if not set.
3831
+ * - {@link GLASS_PANE_OPTIONS}: Configures the glass pane.
3832
+ */
3833
+ declare class GlassPaneDirective {
3834
+ private readonly _targetElement;
3835
+ private readonly _options;
3836
+ constructor();
3837
+ private installGlassPane;
3838
+ static ɵfac: i0.ɵɵFactoryDeclaration<GlassPaneDirective, never>;
3839
+ static ɵdir: i0.ɵɵDirectiveDeclaration<GlassPaneDirective, "[wbGlassPane]", never, {}, {}, never, never, true, never>;
3840
+ }
3841
+
3763
3842
  /**
3764
3843
  * Acts as a placeholder for a part's content that Angular fills based on the current router state of the associated part outlet.
3765
3844
  */
@@ -3788,7 +3867,7 @@ declare class PartSlotComponent implements OnAttach, OnDetach {
3788
3867
  */
3789
3868
  private unsetActiveElementOnPartDeactivate;
3790
3869
  static ɵfac: i0.ɵɵFactoryDeclaration<PartSlotComponent, never>;
3791
- static ɵcmp: i0.ɵɵComponentDeclaration<PartSlotComponent, "wb-part-slot", never, {}, {}, never, never, true, never>;
3870
+ static ɵcmp: i0.ɵɵComponentDeclaration<PartSlotComponent, "wb-part-slot", never, {}, {}, never, never, true, [{ directive: typeof GlassPaneDirective; inputs: {}; outputs: {}; }]>;
3792
3871
  }
3793
3872
 
3794
3873
  /**
@@ -4148,90 +4227,8 @@ declare class PartComponent implements OnInit {
4148
4227
  static ɵcmp: i0.ɵɵComponentDeclaration<PartComponent, "wb-part", never, {}, {}, never, never, true, never>;
4149
4228
  }
4150
4229
 
4151
- declare class ɵWorkbenchPart implements WorkbenchPart {
4152
- readonly id: PartId;
4153
- private readonly _partEnvironmentInjector;
4154
- private readonly _workbenchRouter;
4155
- private readonly _rootOutletContexts;
4156
- private readonly _focusMonitor;
4157
- private readonly _layout;
4158
- private readonly _title;
4159
- private readonly _titleComputed;
4160
- readonly alternativeId: string | undefined;
4161
- readonly navigation: WritableSignal<WorkbenchPartNavigation | undefined>;
4162
- readonly activationInstant: WritableSignal<number>;
4163
- readonly active: WritableSignal<boolean>;
4164
- readonly focused: Signal<boolean>;
4165
- readonly viewIds: Signal<`view.${string}`[]>;
4166
- readonly activeViewId: Signal<`view.${string}` | null>;
4167
- readonly mPart: WritableSignal<MPart>;
4168
- readonly gridName: WritableSignal<keyof WorkbenchGrids>;
4169
- readonly peripheral: WritableSignal<boolean>;
4170
- readonly referencePart: WritableSignal<boolean>;
4171
- readonly topLeft: WritableSignal<boolean>;
4172
- readonly topRight: WritableSignal<boolean>;
4173
- readonly activity: WritableSignal<MActivity | null>;
4174
- readonly canMinimize: Signal<boolean>;
4175
- readonly actions: Signal<WorkbenchPartAction[]>;
4176
- readonly activeView: Signal<ɵWorkbenchView | null>;
4177
- readonly views: Signal<ɵWorkbenchView[]>;
4178
- readonly classList: ClassList;
4179
- readonly portal: WbComponentPortal<MainAreaPartComponent | PartComponent>;
4180
- readonly slot: {
4181
- portal: WbComponentPortal<PartSlotComponent>;
4182
- };
4183
- private _isInMainArea;
4184
- constructor(id: PartId, layout: ɵWorkbenchLayout);
4185
- focus(): void;
4186
- private createPortal;
4187
- /**
4188
- * Method invoked when the workbench layout has changed.
4189
- *
4190
- * This method:
4191
- * - is called on every layout change, enabling the update of part properties defined in the layout (navigation hint, navigation data, ...).
4192
- * - is called on route activation (after destroyed the previous component (if any), but before constructing the new component).
4193
- */
4194
- private onLayoutChange;
4195
- private computeTitle;
4196
- /**
4197
- * Returns the component of this part. Returns `null` if not displaying navigated content.
4198
- */
4199
- getComponent<T = unknown>(): T | null;
4200
- /** @inheritDoc */
4201
- activate(): Promise<boolean>;
4202
- /** @inheritDoc */
4203
- get isInMainArea(): boolean;
4204
- /**
4205
- * Reference to the handle's injector. The injector will be destroyed when removing the part.
4206
- */
4207
- get injector(): Injector;
4208
- /** @inheritDoc */
4209
- get title(): Signal<Translatable | undefined>;
4210
- /** @inheritDoc */
4211
- set title(title: Translatable | undefined);
4212
- /** @inheritDoc */
4213
- set cssClass(cssClass: string | string[]);
4214
- /** @inheritDoc */
4215
- get cssClass(): Signal<string[]>;
4216
- /**
4217
- * Sets up automatic synchronization of {@link WorkbenchPart} on every layout change.
4218
- *
4219
- * If the operation is cancelled (e.g., due to a navigation failure), it reverts the changes.
4220
- */
4221
- private installModelUpdater;
4222
- /**
4223
- * Activates this part when focused.
4224
- */
4225
- private activateOnFocus;
4226
- /**
4227
- * Focuses this part when activated, either by focus or routing.
4228
- */
4229
- private focusOnActivate;
4230
- destroy(): void;
4231
- }
4232
-
4233
4230
  /**
4234
- * Controls how to open a dialog.
4231
+ * Controls the appearance and behavior of a dialog.
4235
4232
  */
4236
4233
  interface WorkbenchDialogOptions {
4237
4234
  /**
@@ -4246,16 +4243,24 @@ interface WorkbenchDialogOptions {
4246
4243
  [name: string]: unknown;
4247
4244
  };
4248
4245
  /**
4249
- * Controls which area of the application to block by the dialog.
4246
+ * Controls which area of the application to block by the dialog. Defaults to `context`.
4250
4247
  *
4251
- * - **Application-modal:**
4252
- * Use to block the workbench, or the browser's viewport if configured in {@link WorkbenchConfig.dialog.modalityScope}.
4248
+ * One of:
4249
+ * - 'none': Non-blocking dialog.
4250
+ * - `context`: Blocks a specific part of the application, as specified in {@link context}, defaulting to the calling context.
4251
+ * - `application`: Blocks the workbench or browser viewport, based on {@link WorkbenchConfig.dialog.modalityScope}.
4252
+ * - `view`: Deprecated. Same as `context`. Will be removed in version 22.
4253
+ */
4254
+ modality?: 'none' | 'context' | 'application' | ViewModality$1;
4255
+ /**
4256
+ * Binds the dialog to a context (e.g., a part or view). Defaults to the calling context.
4257
+ *
4258
+ * The dialog is displayed only if the context is visible and closes when the context is disposed.
4259
+ * The dialog is opened in the center of its context, if any, unless opened from the peripheral area.
4253
4260
  *
4254
- * - **View-modal:**
4255
- * Use to block only the contextual view of the dialog, allowing the user to interact with other views.
4256
- * This is the default if opening the dialog in the context of a view.
4261
+ * Set to `null` to open the dialog outside a context.
4257
4262
  */
4258
- modality?: 'application' | 'view';
4263
+ context?: ViewId | PartId | DialogId | PopupId | Context$1 | null;
4259
4264
  /**
4260
4265
  * Sets the injector for the instantiation of the dialog component, giving control over the objects available
4261
4266
  * for injection into the dialog component. If not specified, uses the application's root injector, or the view's
@@ -4280,17 +4285,19 @@ interface WorkbenchDialogOptions {
4280
4285
  * Controls whether to animate the opening of the dialog. Defaults to `false`.
4281
4286
  */
4282
4287
  animate?: boolean;
4288
+ }
4289
+ /**
4290
+ * @deprecated since version 20.0.0-beta.9. Renamed to `context`. Will be removed in version 22.
4291
+ */
4292
+ type ViewModality$1 = 'view';
4293
+ /**
4294
+ * @deprecated since version 20.0.0-beta.9. Set view id directly. Migrate `{context: {viewId: 'view.x'}}` to `{context: 'view.x'}`. Marked for removal in version 22.
4295
+ */
4296
+ interface Context$1 {
4283
4297
  /**
4284
- * Specifies the context in which to open the dialog.
4298
+ * @deprecated since version 20.0.0-beta.9. Set view id directly. Migrate `{context: {viewId: 'view.x'}}` to `{context: 'view.x'}`. Marked for removal in version 22.
4285
4299
  */
4286
- context?: {
4287
- /**
4288
- * Controls which view to block when opening a dialog view-modal.
4289
- *
4290
- * By default, if opening the dialog in the context of a view, that view is used as the contextual view.
4291
- */
4292
- viewId?: ViewId;
4293
- };
4300
+ viewId?: ViewId | null;
4294
4301
  }
4295
4302
 
4296
4303
  /**
@@ -4370,72 +4377,69 @@ declare class WorkbenchDialogHeaderDirective {
4370
4377
  }
4371
4378
 
4372
4379
  /**
4373
- * Represents an object that is blocking another object, preventing user interaction with the other object.
4380
+ * Information about the source of an invocation.
4374
4381
  */
4375
- interface Blocking {
4382
+ interface WorkbenchInvocationContext {
4376
4383
  /**
4377
- * Identifies the object that is blocking another object.
4384
+ * Identifies the element that initiated the interaction.
4378
4385
  */
4379
- readonly id: string;
4386
+ elementId: PartId | ViewId | DialogId | PopupId;
4380
4387
  /**
4381
- * Instructs the blocking object to gain focus.
4388
+ * Indicates whether the source is attached to the DOM.
4382
4389
  */
4383
- focus(): void;
4390
+ attached: Signal<boolean>;
4384
4391
  /**
4385
- * Instructs the blocking object to signal the user to continue interacting with this object.
4392
+ * Tracks the source's bounding box.
4386
4393
  */
4387
- blink(): void;
4388
- }
4389
-
4390
- /**
4391
- * Represents an object that can be blocked by another object, such as a dialog, preventing user interaction with the object.
4392
- */
4393
- interface Blockable {
4394
+ bounds: Signal<DOMRect | undefined>;
4395
+ /**
4396
+ * Indicates whether the source is located in the peripheral area of the workbench layout.
4397
+ */
4398
+ peripheral: Signal<boolean>;
4394
4399
  /**
4395
- * Emits the object blocking this object, or `null` if not blocked.
4400
+ * Indicates whether the source has been destroyed.
4396
4401
  */
4397
- blockedBy$: Observable<Blocking | null>;
4402
+ destroyed: Signal<boolean>;
4398
4403
  }
4399
4404
 
4400
4405
  /** @inheritDoc */
4401
4406
  declare class ɵWorkbenchDialog<R = unknown> implements WorkbenchDialog<R>, Blockable, Blocking {
4402
4407
  id: DialogId;
4403
4408
  component: ComponentType<unknown>;
4409
+ invocationContext: WorkbenchInvocationContext | null;
4404
4410
  private _options;
4405
- private readonly _dialogEnvironmentInjector;
4411
+ /** Injector for the dialog; destroyed when the dialog is closed. */
4412
+ readonly injector: DestroyableInjector;
4406
4413
  private readonly _overlayRef;
4407
4414
  private readonly _portal;
4408
4415
  private readonly _workbenchDialogRegistry;
4409
4416
  private readonly _workbenchConfig;
4410
- private readonly _destroyRef;
4411
4417
  private readonly _blink$;
4412
4418
  private readonly _focusMonitor;
4413
- private readonly _attached;
4414
4419
  private readonly _title;
4415
4420
  private readonly _closable;
4416
4421
  private readonly _resizable;
4417
4422
  private readonly _padding;
4418
4423
  private readonly _cssClass;
4419
- /**
4420
- * Result (or error) to be passed to the dialog opener.
4421
- */
4424
+ /** Result (or error) to be passed to the dialog opener. */
4422
4425
  private _result;
4423
4426
  private _componentRef;
4424
- /**
4425
- * Indicates whether this dialog is blocked by other dialog(s) that overlay this dialog.
4426
- */
4427
- readonly blockedBy$: BehaviorSubject<ɵWorkbenchDialog<unknown> | null>;
4427
+ readonly blockedBy: Signal<ɵWorkbenchDialog | null>;
4428
4428
  readonly size: WorkbenchDialogSize;
4429
4429
  readonly focused: Signal<boolean>;
4430
+ readonly attached: Signal<boolean>;
4431
+ readonly destroyed: i0.WritableSignal<boolean>;
4432
+ readonly bounds: Signal<DOMRect | undefined>;
4433
+ readonly modal: boolean;
4430
4434
  readonly blinking$: BehaviorSubject<boolean>;
4431
- readonly context: {
4432
- view: ɵWorkbenchView | null;
4433
- };
4434
4435
  header: WorkbenchDialogHeaderDirective | undefined;
4435
4436
  footer: WorkbenchDialogFooterDirective | undefined;
4436
4437
  actions: WorkbenchDialogActionDirective[];
4437
- constructor(id: DialogId, component: ComponentType<unknown>, _options: WorkbenchDialogOptions);
4438
- open(): Promise<R | undefined>;
4438
+ constructor(id: DialogId, component: ComponentType<unknown>, invocationContext: WorkbenchInvocationContext | null, _options: WorkbenchDialogOptions);
4439
+ /**
4440
+ * Waits for the dialog to close, resolving to its result or rejecting if closed with an error.
4441
+ */
4442
+ waitForClose(): Promise<R | undefined>;
4439
4443
  /** @inheritDoc */
4440
4444
  close(result?: R | Error): void;
4441
4445
  /**
@@ -4480,9 +4484,8 @@ declare class ɵWorkbenchDialog<R = unknown> implements WorkbenchDialog<R>, Bloc
4480
4484
  /** @inheritDoc */
4481
4485
  blink(): void;
4482
4486
  /**
4483
- * Reference to the handle's injector. The injector will be destroyed when closing the dialog.
4487
+ * Creates a portal to render {@link WorkbenchDialogComponent} in the dialog's injection context.
4484
4488
  */
4485
- get injector(): Injector;
4486
4489
  private createPortal;
4487
4490
  /**
4488
4491
  * Creates a dedicated overlay per dialog to place it on top of previously created overlays, such as dialogs, popups, dropdowns, etc.
@@ -4501,39 +4504,114 @@ declare class ɵWorkbenchDialog<R = unknown> implements WorkbenchDialog<R>, Bloc
4501
4504
  */
4502
4505
  private monitorHostElementAttached;
4503
4506
  /**
4504
- * Aligns this dialog with the boundaries of the host element.
4507
+ * Binds this dialog to its workbench host element, displaying it only when the host element is attached.
4508
+ *
4509
+ * Dialogs opened in non-peripheral area are displayed in the center of the host.
4505
4510
  */
4506
- private stickToHostElement;
4511
+ private bindToHostElement;
4507
4512
  /**
4508
- * Blocks this dialog if not the topmost dialog in its context.
4513
+ * Computes if this dialog is blocked by another dialog.
4509
4514
  */
4510
- private blockWhenNotOnTop;
4515
+ private computeBlocked;
4511
4516
  private blinkOnRequest;
4517
+ /**
4518
+ * Closes the dialog when the context element is destroyed.
4519
+ */
4520
+ private closeOnHostDestroy;
4512
4521
  /**
4513
4522
  * Destroys this dialog and associated resources.
4514
4523
  */
4515
4524
  destroy(): void;
4516
4525
  }
4517
4526
 
4518
- /**
4519
- * Prevents user interaction of the host when blocked by placing a glass pane over the host element.
4520
- *
4521
- * Configure this direktive via the following DI tokens. These tokens must be provided at the component level.
4522
- * - {@link GLASS_PANE_BLOCKABLE}: Represents the object to be blocked.
4523
- * - {@link GLASS_PANE_TARGET_ELEMENT}: Controls the HTML element to block. Defaults to the directive's host element if not set.
4524
- * - {@link GLASS_PANE_OPTIONS}: Configures the glass pane.
4525
- */
4526
- declare class GlassPaneDirective implements OnDestroy, AfterViewInit {
4527
- private readonly _injector;
4528
- private readonly _targetElement;
4529
- private readonly _options;
4530
- private _glassPane;
4531
- constructor();
4532
- ngAfterViewInit(): void;
4533
- private installGlassPane;
4534
- ngOnDestroy(): void;
4535
- static ɵfac: i0.ɵɵFactoryDeclaration<GlassPaneDirective, never>;
4536
- static ɵdir: i0.ɵɵDirectiveDeclaration<GlassPaneDirective, "[wbGlassPane]", never, {}, {}, never, never, true, never>;
4527
+ /** @inheritDoc */
4528
+ declare class ɵWorkbenchPart implements WorkbenchPart, Blockable {
4529
+ readonly id: PartId;
4530
+ /** Injector for the part; destroyed when the part is removed. */
4531
+ readonly injector: DestroyableInjector;
4532
+ private readonly _workbenchRouter;
4533
+ private readonly _rootOutletContexts;
4534
+ private readonly _focusMonitor;
4535
+ private readonly _layout;
4536
+ private readonly _title;
4537
+ private readonly _titleComputed;
4538
+ readonly alternativeId: string | undefined;
4539
+ readonly navigation: WritableSignal<WorkbenchPartNavigation | undefined>;
4540
+ readonly activationInstant: WritableSignal<number>;
4541
+ readonly active: WritableSignal<boolean>;
4542
+ readonly focused: Signal<boolean>;
4543
+ readonly viewIds: Signal<`view.${string}`[]>;
4544
+ readonly activeViewId: Signal<`view.${string}` | null>;
4545
+ readonly mPart: WritableSignal<MPart>;
4546
+ readonly gridName: WritableSignal<keyof WorkbenchGrids>;
4547
+ readonly peripheral: WritableSignal<boolean>;
4548
+ readonly referencePart: WritableSignal<boolean>;
4549
+ readonly topLeft: WritableSignal<boolean>;
4550
+ readonly topRight: WritableSignal<boolean>;
4551
+ readonly activity: WritableSignal<MActivity | null>;
4552
+ readonly canMinimize: Signal<boolean>;
4553
+ readonly actions: Signal<WorkbenchPartAction[]>;
4554
+ readonly activeView: Signal<ɵWorkbenchView | null>;
4555
+ readonly views: Signal<ɵWorkbenchView[]>;
4556
+ readonly classList: ClassList;
4557
+ readonly portal: WbComponentPortal<MainAreaPartComponent | PartComponent>;
4558
+ readonly bounds: Signal<DOMRect | undefined>;
4559
+ readonly blockedBy: Signal<ɵWorkbenchDialog | null>;
4560
+ readonly slot: {
4561
+ portal: WbComponentPortal<PartSlotComponent>;
4562
+ bounds: Signal<DOMRect | undefined>;
4563
+ };
4564
+ private _isInMainArea;
4565
+ constructor(id: PartId, layout: ɵWorkbenchLayout);
4566
+ focus(): void;
4567
+ /**
4568
+ * Creates a portal to render {@link PartComponent} or {@link MainAreaPartComponent} in the part's injection context.
4569
+ */
4570
+ private createPartPortal;
4571
+ /**
4572
+ * Creates a portal to render {@link PartSlotComponent} in the part's injection context.
4573
+ */
4574
+ private createPartSlotPortal;
4575
+ /**
4576
+ * Method invoked when the workbench layout has changed.
4577
+ *
4578
+ * This method:
4579
+ * - is called on every layout change, enabling the update of part properties defined in the layout (navigation hint, navigation data, ...).
4580
+ * - is called on route activation (after destroyed the previous component (if any), but before constructing the new component).
4581
+ */
4582
+ private onLayoutChange;
4583
+ private computeTitle;
4584
+ /**
4585
+ * Returns the component of this part. Returns `null` if not displaying navigated content.
4586
+ */
4587
+ getComponent<T = unknown>(): T | null;
4588
+ /** @inheritDoc */
4589
+ activate(): Promise<boolean>;
4590
+ /** @inheritDoc */
4591
+ get isInMainArea(): boolean;
4592
+ /** @inheritDoc */
4593
+ get title(): Signal<Translatable | undefined>;
4594
+ /** @inheritDoc */
4595
+ set title(title: Translatable | undefined);
4596
+ /** @inheritDoc */
4597
+ set cssClass(cssClass: string | string[]);
4598
+ /** @inheritDoc */
4599
+ get cssClass(): Signal<string[]>;
4600
+ /**
4601
+ * Sets up automatic synchronization of {@link WorkbenchPart} on every layout change.
4602
+ *
4603
+ * If the operation is cancelled (e.g., due to a navigation failure), it reverts the changes.
4604
+ */
4605
+ private installModelUpdater;
4606
+ /**
4607
+ * Activates this part when focused.
4608
+ */
4609
+ private activateOnFocus;
4610
+ /**
4611
+ * Focuses this part when activated, either by focus or routing.
4612
+ */
4613
+ private focusOnActivate;
4614
+ destroy(): void;
4537
4615
  }
4538
4616
 
4539
4617
  /**
@@ -4571,9 +4649,11 @@ declare class ViewSlotComponent implements OnAttach, OnDetach {
4571
4649
  static ɵcmp: i0.ɵɵComponentDeclaration<ViewSlotComponent, "wb-view-slot", never, {}, {}, never, never, true, [{ directive: typeof GlassPaneDirective; inputs: {}; outputs: {}; }]>;
4572
4650
  }
4573
4651
 
4652
+ /** @inheritDoc */
4574
4653
  declare class ɵWorkbenchView implements WorkbenchView, Blockable {
4575
4654
  readonly id: ViewId;
4576
- private readonly _viewEnvironmentInjector;
4655
+ /** Injector for the view; destroyed when the view is closed. */
4656
+ readonly injector: DestroyableInjector;
4577
4657
  private readonly _workbenchId;
4578
4658
  private readonly _workbenchService;
4579
4659
  private readonly _layout;
@@ -4581,7 +4661,6 @@ declare class ɵWorkbenchView implements WorkbenchView, Blockable {
4581
4661
  private readonly _rootOutletContexts;
4582
4662
  private readonly _partRegistry;
4583
4663
  private readonly _viewDragService;
4584
- private readonly _workbenchDialogRegistry;
4585
4664
  private readonly _focusMonitor;
4586
4665
  private readonly _logger;
4587
4666
  private readonly _adapters;
@@ -4589,7 +4668,6 @@ declare class ɵWorkbenchView implements WorkbenchView, Blockable {
4589
4668
  private readonly _heading;
4590
4669
  private readonly _dirty;
4591
4670
  private readonly _closable;
4592
- private readonly _blockedBy;
4593
4671
  private readonly _scrolledIntoView;
4594
4672
  alternativeId: string | undefined;
4595
4673
  readonly navigation: i0.WritableSignal<WorkbenchViewNavigation | undefined>;
@@ -4605,9 +4683,10 @@ declare class ɵWorkbenchView implements WorkbenchView, Blockable {
4605
4683
  readonly active: i0.WritableSignal<boolean>;
4606
4684
  readonly focused: Signal<boolean>;
4607
4685
  readonly menuItems: Signal<WorkbenchMenuItem[]>;
4608
- readonly blockedBy$: Observable<ɵWorkbenchDialog | null>;
4686
+ readonly blockedBy: Signal<ɵWorkbenchDialog | null>;
4609
4687
  readonly slot: {
4610
4688
  portal: WbComponentPortal<ViewSlotComponent>;
4689
+ bounds: Signal<DOMRect | undefined>;
4611
4690
  };
4612
4691
  readonly classList: ClassList;
4613
4692
  readonly isClosable: Signal<boolean>;
@@ -4618,6 +4697,9 @@ declare class ɵWorkbenchView implements WorkbenchView, Blockable {
4618
4697
  */
4619
4698
  canCloseGuard: (() => Promise<boolean>) | undefined;
4620
4699
  constructor(id: ViewId, layout: ɵWorkbenchLayout);
4700
+ /**
4701
+ * Creates a portal to render {@link ViewSlotComponent} in the view's injection context.
4702
+ */
4621
4703
  private createPortal;
4622
4704
  /**
4623
4705
  * Method invoked when the workbench layout has changed.
@@ -4669,10 +4751,6 @@ declare class ɵWorkbenchView implements WorkbenchView, Blockable {
4669
4751
  }): void;
4670
4752
  /** @inheritDoc */
4671
4753
  canClose(canClose: CanCloseFn): CanCloseRef;
4672
- /**
4673
- * Reference to the handle's injector. The injector will be destroyed when closing the view.
4674
- */
4675
- get injector(): Injector;
4676
4754
  /**
4677
4755
  * Registers an adapter for this view, replacing any previously registered adapter of the same type.
4678
4756
  *
@@ -4713,7 +4791,8 @@ declare class ɵWorkbenchView implements WorkbenchView, Blockable {
4713
4791
  * @inheritDoc
4714
4792
  */
4715
4793
  declare class ɵWorkbenchPerspective implements WorkbenchPerspective {
4716
- private readonly _perspectiveEnvironmentInjector;
4794
+ /** Injector for the perspective; destroyed when the perspective is unregistered. */
4795
+ readonly injector: DestroyableInjector;
4717
4796
  private readonly _workbenchLayoutFactory;
4718
4797
  private readonly _workbenchLayoutService;
4719
4798
  private readonly _workbenchLayoutMerger;
@@ -4738,10 +4817,6 @@ declare class ɵWorkbenchPerspective implements WorkbenchPerspective {
4738
4817
  * Resets this perspective to its initial layout.
4739
4818
  */
4740
4819
  reset(): Promise<void>;
4741
- /**
4742
- * Reference to the handle's injector. The injector will be destroyed when unregistering the perspective.
4743
- */
4744
- get injector(): Injector;
4745
4820
  /**
4746
4821
  * Creates the perspective layout using the main area of the current layout.
4747
4822
  */
@@ -4768,18 +4843,103 @@ declare class ɵWorkbenchPerspective implements WorkbenchPerspective {
4768
4843
  destroy(): void;
4769
4844
  }
4770
4845
 
4846
+ /** @inheritDoc */
4847
+ declare class ɵWorkbenchPopup<T = unknown, R = unknown> implements WorkbenchPopup<T, R>, Blockable {
4848
+ id: PopupId;
4849
+ invocationContext: WorkbenchInvocationContext | null;
4850
+ private _config;
4851
+ /** Injector for the popup; destroyed when the popup is closed. */
4852
+ readonly injector: DestroyableInjector;
4853
+ private readonly _overlayRef;
4854
+ private readonly _focusMonitor;
4855
+ private readonly _portal;
4856
+ private readonly _componentRef;
4857
+ private readonly _popupOrigin;
4858
+ readonly cssClasses: string[];
4859
+ readonly focused: Signal<boolean>;
4860
+ readonly attached: Signal<boolean>;
4861
+ readonly destroyed: i0.WritableSignal<boolean>;
4862
+ readonly bounds: Signal<DOMRect | undefined>;
4863
+ readonly blockedBy: Signal<ɵWorkbenchDialog | null>;
4864
+ result: R | Error | undefined;
4865
+ constructor(id: PopupId, invocationContext: WorkbenchInvocationContext | null, _config: PopupConfig);
4866
+ /**
4867
+ * Waits for the popup to close, resolving to its result or rejecting if closed with an error.
4868
+ */
4869
+ waitForClose(): Promise<R | undefined>;
4870
+ /**
4871
+ * Creates a portal to render {@link PopupComponent} in the popup's injection context.
4872
+ */
4873
+ private createPortal;
4874
+ /**
4875
+ * Creates a dedicated overlay per popup to place it on top of previously created overlays, such as dialogs, popups, dropdowns, etc.
4876
+ */
4877
+ private createOverlay;
4878
+ private focus;
4879
+ /**
4880
+ * Moves the popup with the anchor.
4881
+ */
4882
+ private stickToAnchor;
4883
+ /**
4884
+ * Monitors attachment of the host element.
4885
+ */
4886
+ private monitorHostElementAttached;
4887
+ /**
4888
+ * Repositions the popup position when resized.
4889
+ */
4890
+ private repositionOnResize;
4891
+ /**
4892
+ * Closes the popup on focus loss, if configured.
4893
+ */
4894
+ private closeOnFocusLoss;
4895
+ /**
4896
+ * Closes the popup on escape keystroke.
4897
+ */
4898
+ private closeOnEscape;
4899
+ /**
4900
+ * Closes the popup when the context element is destroyed.
4901
+ */
4902
+ private closeOnHostDestroy;
4903
+ /**
4904
+ * Binds this popup to its workbench host element, displaying it only when the host element is attached.
4905
+ */
4906
+ private bindToHostElement;
4907
+ /**
4908
+ * Creates a signal that tracks the position of the popup anchor.
4909
+ */
4910
+ private trackPopupOrigin;
4911
+ /** @inheritDoc */
4912
+ setResult(result?: R): void;
4913
+ /** @inheritDoc */
4914
+ close(result?: R | Error): void;
4915
+ /** @inheritDoc */
4916
+ get input(): T | undefined;
4917
+ /** @inheritDoc */
4918
+ get size(): PopupSize | undefined;
4919
+ get component(): Type<any>;
4920
+ get viewContainerRef(): ViewContainerRef | undefined;
4921
+ /**
4922
+ * Destroys this popup and associated resources.
4923
+ */
4924
+ destroy(): void;
4925
+ }
4926
+
4771
4927
  declare class ɵWorkbenchService implements WorkbenchService {
4772
4928
  private readonly _workbenchRouter;
4773
4929
  private readonly _perspectiveRegistry;
4774
4930
  private readonly _partRegistry;
4931
+ private readonly _viewRegistry;
4932
+ private readonly _dialogRegistry;
4933
+ private readonly _popupRegistry;
4775
4934
  private readonly _partActionRegistry;
4776
4935
  private readonly _viewMenuItemRegistry;
4777
- private readonly _viewRegistry;
4778
4936
  private readonly _perspectiveService;
4779
4937
  readonly layout: Signal<ɵWorkbenchLayout>;
4780
4938
  readonly perspectives: Signal<ɵWorkbenchPerspective[]>;
4781
4939
  readonly parts: Signal<ɵWorkbenchPart[]>;
4782
4940
  readonly views: Signal<ɵWorkbenchView[]>;
4941
+ readonly dialogs: Signal<ɵWorkbenchDialog<unknown>[]>;
4942
+ readonly popups: Signal<ɵWorkbenchPopup<unknown, unknown>[]>;
4783
4943
  readonly activePerspective: Signal<ɵWorkbenchPerspective | undefined>;
4784
4944
  readonly activeElement: Signal<_scion_workbench.WorkbenchElement | null>;
4785
4945
  readonly theme: Signal<WorkbenchTheme | null>;
@@ -4795,6 +4955,10 @@ declare class ɵWorkbenchService implements WorkbenchService {
4795
4955
  /** @inheritDoc */
4796
4956
  getView(viewId: ViewId): ɵWorkbenchView | null;
4797
4957
  /** @inheritDoc */
4958
+ getDialog(dialogId: DialogId): ɵWorkbenchDialog | null;
4959
+ /** @inheritDoc */
4960
+ getPopup(popupId: PopupId): ɵWorkbenchPopup | null;
4961
+ /** @inheritDoc */
4798
4962
  registerPerspective(perspective: WorkbenchPerspectiveDefinition): Promise<void>;
4799
4963
  /** @inheritDoc */
4800
4964
  switchPerspective(id: string): Promise<boolean>;
@@ -4968,6 +5132,8 @@ declare class WorkbenchViewMenuItemDirective {
4968
5132
  readonly cssClass: i0.InputSignal<string | string[] | undefined>;
4969
5133
  /**
4970
5134
  * Emits when the menu item is clicked.
5135
+ *
5136
+ * The function can call `inject` to get any required dependencies.
4971
5137
  */
4972
5138
  readonly action: i0.OutputEmitterRef<WorkbenchView>;
4973
5139
  constructor();
@@ -5014,6 +5180,7 @@ declare class WorkbenchViewMenuItemDirective {
5014
5180
  * Alternatively, actions can be added using a factory function and registered via {@link WorkbenchService.registerPartAction}.
5015
5181
  */
5016
5182
  declare class WorkbenchPartActionDirective {
5183
+ private readonly _injector;
5017
5184
  /**
5018
5185
  * Specifies where to place this action in the part bar. Defaults to `end`.
5019
5186
  */
@@ -5323,16 +5490,24 @@ interface WorkbenchMessageBoxOptions {
5323
5490
  */
5324
5491
  severity?: 'info' | 'warn' | 'error';
5325
5492
  /**
5326
- * Controls which area of the application to block by the message box.
5493
+ * Controls which area of the application to block by the message box. Defaults to `context`.
5327
5494
  *
5328
- * - **Application-modal:**
5329
- * Use to block the workbench, or the browser's viewport if configured in {@link WorkbenchConfig.dialog.modalityScope}.
5495
+ * One of:
5496
+ * - 'none': Non-blocking message box.
5497
+ * - `context`: Blocks a specific part of the application, as specified in {@link context}, defaulting to the calling context.
5498
+ * - `application`: Blocks the workbench or browser viewport, based on {@link WorkbenchConfig.dialog.modalityScope}.
5499
+ * - `view`: Deprecated. Same as `context`. Marked for removal in version 22.
5500
+ */
5501
+ modality?: 'none' | 'context' | 'application' | ViewModality;
5502
+ /**
5503
+ * Binds the message box to a context (e.g., a part or view). Defaults to the calling context.
5504
+ *
5505
+ * The message box is displayed only if the context is visible and closes when the context is disposed.
5506
+ * The message box is opened in the center of its context, if any, unless opened from the peripheral area.
5330
5507
  *
5331
- * - **View-modal:**
5332
- * Use to block only the contextual view of the message box, allowing the user to interact with other views.
5333
- * This is the default if opening the message box in the context of a view.
5508
+ * Set to `null` to open the message box outside a context.
5334
5509
  */
5335
- modality?: 'application' | 'view';
5510
+ context?: ViewId | PartId | DialogId | PopupId | Context | null;
5336
5511
  /**
5337
5512
  * Specifies if the user can select text displayed in the message box. Defaults to `false`.
5338
5513
  */
@@ -5371,17 +5546,19 @@ interface WorkbenchMessageBoxOptions {
5371
5546
  * Specifies CSS class(es) to add to the message box, e.g., to locate the message box in tests.
5372
5547
  */
5373
5548
  cssClass?: string | string[];
5549
+ }
5550
+ /**
5551
+ * @deprecated since version 20.0.0-beta.9. Renamed to `context`. Marked for removal in version 22.
5552
+ */
5553
+ type ViewModality = 'view';
5554
+ /**
5555
+ * @deprecated since version 20.0.0-beta.9. Set view id directly. Migrate `{context: {viewId: 'view.x'}}` to `{context: 'view.x'}`. Marked for removal in version 22.
5556
+ */
5557
+ interface Context {
5374
5558
  /**
5375
- * Specifies the context in which to open the message box.
5559
+ * @deprecated since version 20.0.0-beta.9. Set view id directly. Migrate `{context: {viewId: 'view.x'}}` to `{context: 'view.x'}`. Marked for removal in version 22.
5376
5560
  */
5377
- context?: {
5378
- /**
5379
- * Allows controlling which view to block when opening a view-modal message box.
5380
- *
5381
- * By default, if opening the message box in the context of a view, that view is used as the contextual view.
5382
- */
5383
- viewId?: ViewId;
5384
- };
5561
+ viewId?: ViewId | null;
5385
5562
  }
5386
5563
 
5387
5564
  /**
@@ -5389,15 +5566,21 @@ interface WorkbenchMessageBoxOptions {
5389
5566
  * or for prompting the user for confirmation. The message can be plain text or a component, allowing for
5390
5567
  * structured content or input prompts.
5391
5568
  *
5569
+ * Displayed on top of other content, a modal message box blocks interaction with other parts of the application.
5570
+ *
5392
5571
  * ## Modality
5393
- * Displayed on top of other content, a message box blocks interaction with other parts of the application.
5572
+ * A message box can be context-modal or application-modal. Context-modal blocks a specific part of the application, as specified by the context;
5573
+ * application-modal blocks the workbench or browser viewport, based on {@link WorkbenchConfig.dialog.modalityScope}.
5574
+ *
5575
+ * ## Context
5576
+ * A message box can be bound to a context (e.g., a part or view), defaulting to the calling context.
5577
+ * The message box is displayed only if the context is visible and closes when the context is disposed.
5394
5578
  *
5395
- * A message box can be view-modal or application-modal. A view-modal message box blocks only a specific view,
5396
- * allowing the user to interact with other views. An application-modal message box blocks the workbench,
5397
- * or the browser's viewport if configured in {@link WorkbenchConfig.dialog.modalityScope}.
5579
+ * ## Positioning
5580
+ * A message box is opened in the center of its context, if any, unless opened from the peripheral area.
5398
5581
  *
5399
5582
  * ## Stacking
5400
- * Multiple message boxes are stacked, and only the topmost message box in each modality stack can be interacted with.
5583
+ * Message boxes are stacked per modality, with only the topmost message box in each stack being interactive.
5401
5584
  *
5402
5585
  * ## Styling
5403
5586
  * The following CSS variables can be set to customize the default look of a message box.
@@ -5415,11 +5598,9 @@ declare abstract class WorkbenchMessageBoxService {
5415
5598
  /**
5416
5599
  * Displays the specified message in a message box.
5417
5600
  *
5418
- * By default, the calling context determines the modality of the message box. If the message box is opened from a view, only this view is blocked.
5419
- * To open the message box with a different modality, specify the modality in {@link WorkbenchMessageBoxOptions.modality}.
5420
- *
5421
- * **Example:**
5601
+ * By default, the message box is modal to the calling context. Specify a different modality in {@link WorkbenchMessageBoxOptions.modality}.
5422
5602
  *
5603
+ * @example
5423
5604
  * ```ts
5424
5605
  * const action = await inject(WorkbenchMessageBoxService).open('Do you want to save changes?', {
5425
5606
  * actions: {
@@ -5439,14 +5620,12 @@ declare abstract class WorkbenchMessageBoxService {
5439
5620
  /**
5440
5621
  * Displays the specified component in a message box.
5441
5622
  *
5442
- * By default, the calling context determines the modality of the message box. If the message box is opened from a view, only this view is blocked.
5443
- * To open the message box with a different modality, specify the modality in {@link WorkbenchMessageBoxOptions.modality}.
5623
+ * By default, the message box is modal to the calling context. Specify a different modality in {@link WorkbenchMessageBoxOptions.modality}.
5444
5624
  *
5445
5625
  * Data can be passed to the component as inputs via {@link WorkbenchMessageBoxOptions.inputs} property or by providing a custom injector
5446
5626
  * via {@link WorkbenchMessageBoxOptions.injector} property. Inputs are available as input properties in the component.
5447
5627
  *
5448
- * **Example:**
5449
- *
5628
+ * @example
5450
5629
  * ```ts
5451
5630
  * const action = await inject(WorkbenchMessageBoxService).open(SomeComponent, {
5452
5631
  * inputs: {
@@ -5483,21 +5662,26 @@ declare abstract class WorkbenchMessageBoxService {
5483
5662
  }
5484
5663
 
5485
5664
  /**
5486
- * Enables the display of a component in a modal dialog.
5665
+ * Enables the display of a component in a dialog.
5487
5666
  *
5488
5667
  * A dialog is a visual element for focused interaction with the user, such as prompting the user for input or confirming actions.
5489
- * The user can move or resize a dialog.
5668
+ * The user can move and resize a dialog.
5490
5669
  *
5491
- * Displayed on top of other content, a dialog blocks interaction with other parts of the application.
5670
+ * Displayed on top of other content, a modal dialog blocks interaction with other parts of the application.
5492
5671
  *
5493
5672
  * ## Modality
5494
- * A dialog can be view-modal or application-modal.
5673
+ * A dialog can be context-modal or application-modal. Context-modal blocks a specific part of the application, as specified by the context;
5674
+ * application-modal blocks the workbench or browser viewport, based on {@link WorkbenchConfig.dialog.modalityScope}.
5495
5675
  *
5496
- * A view-modal dialog blocks only a specific view, allowing the user to interact with other views. An application-modal dialog blocks
5497
- * the workbench, or the browser's viewport if configured in {@link WorkbenchConfig.dialog.modalityScope}.
5676
+ * ## Context
5677
+ * A dialog can be bound to a context (e.g., a part or view), defaulting to the calling context.
5678
+ * The dialog is displayed only if the context is visible and closes when the context is disposed.
5498
5679
  *
5499
- * ## Dialog Stack
5500
- * Multiple dialogs are stacked, and only the topmost dialog in each modality stack can be interacted with.
5680
+ * ## Positioning
5681
+ * A dialog is opened in the center of its context, if any, unless opened from the peripheral area.
5682
+ *
5683
+ * ## Stacking
5684
+ * Dialogs are stacked per modality, with only the topmost dialog in each stack being interactive.
5501
5685
  *
5502
5686
  * ## Dialog Component
5503
5687
  * The dialog component can inject the {@link WorkbenchDialog} handle to interact with the dialog, such as setting the title or closing the dialog.
@@ -5561,14 +5745,13 @@ declare abstract class WorkbenchDialogService {
5561
5745
  /**
5562
5746
  * Opens a dialog with the specified component and options.
5563
5747
  *
5564
- * By default, the calling context determines the modality of the dialog. If the dialog is opened from a view, only this view is blocked.
5565
- * To open the dialog with a different modality, specify the modality in {@link WorkbenchDialogOptions.modality}.
5748
+ * By default, the dialog is modal to the calling context. Specify a different modality in {@link WorkbenchDialogOptions.modality}.
5566
5749
  *
5567
5750
  * Data can be passed to the component as inputs via {@link WorkbenchDialogOptions.inputs} property or by providing a custom injector
5568
5751
  * via {@link WorkbenchDialogOptions.injector} property. Dialog inputs are available as input properties in the dialog component.
5569
5752
  *
5570
5753
  * @param component - Specifies the component to display in the dialog.
5571
- * @param options - Controls how to open a dialog.
5754
+ * @param options - Controls the appearance and behavior of the dialog.
5572
5755
  * @returns Promise that resolves to the dialog result, if any, or that rejects if the dialog couldn't be opened or was closed with an error.
5573
5756
  */
5574
5757
  abstract open<R>(component: ComponentType<unknown>, options?: WorkbenchDialogOptions): Promise<R | undefined>;
@@ -5611,6 +5794,10 @@ declare abstract class Notification<T = any> {
5611
5794
  * Specifies CSS class(es) to add to the notification, e.g., to locate the notification in tests.
5612
5795
  */
5613
5796
  abstract setCssClass(cssClass: string | string[]): void;
5797
+ /**
5798
+ * Closes the notification.
5799
+ */
5800
+ abstract close(): void;
5614
5801
  }
5615
5802
 
5616
5803
  /**
@@ -5713,6 +5900,7 @@ interface NotificationConfig {
5713
5900
  */
5714
5901
  declare class NotificationService {
5715
5902
  private readonly _zone;
5903
+ private readonly _injector;
5716
5904
  private readonly _document;
5717
5905
  private readonly _notifications$;
5718
5906
  constructor();
@@ -5750,59 +5938,30 @@ declare class NotificationService {
5750
5938
  /**
5751
5939
  * Enables the display of a component in a popup.
5752
5940
  *
5753
- * A popup is a visual workbench component for displaying content above other content. It is positioned relative to an anchor and
5754
- * moves when the anchor moves. Unlike a dialog, the popup closes on focus loss.
5941
+ * A popup is a visual workbench element for displaying content above other content. It is positioned relative to an anchor,
5942
+ * which can be an element or a coordinate. The popup moves with the anchor. By default, the popup closes on focus loss or
5943
+ * when pressing the escape key.
5944
+ *
5945
+ * A popup can be bound to a context (e.g., a part or view), displaying the popup only if the context is visible and closing
5946
+ * it when the context is disposed. Defaults to the calling context.
5755
5947
  */
5756
- declare class PopupService {
5757
- private readonly _environmentInjector;
5758
- private readonly _overlay;
5759
- private readonly _focusManager;
5760
- private readonly _viewRegistry;
5761
- private readonly _popupRegistry;
5762
- private readonly _zone;
5763
- private readonly _document;
5764
- private readonly _view;
5948
+ declare abstract class WorkbenchPopupService {
5765
5949
  /**
5766
5950
  * Opens a popup with the specified component and options.
5767
5951
  *
5768
- * The anchor is used to position the popup based on its preferred alignment:
5769
- * - Using an element: The popup opens and sticks to the element.
5770
- * - Using coordinates: The popup opens and sticks relative to the view or page bounds.
5952
+ * An anchor is used to position the popup based on its preferred alignment. The anchor can be an element or a coordinate.
5771
5953
  *
5772
- * If the popup is opened within a view, it only displays if the view is active and closes when the view is closed.
5954
+ * Data can be passed to the component via {@link PopupConfig.input} property. The component can inject the popup handle {@link WorkbenchPopup} to
5955
+ * read input data or to close the popup.
5773
5956
  *
5774
5957
  * By default, the popup closes on focus loss or when pressing the escape key.
5775
5958
  *
5776
- * Pass data to the popup via {@link PopupConfig#input}. The component can inject the popup handle {@link Popup} to
5777
- * read input data or to close the popup.
5778
- *
5779
- * @param config - Controls popup behavior
5959
+ * @param config - Controls the appearance and behavior of the popup.
5780
5960
  * @returns Promise that resolves to the popup result, if any, or that rejects if the popup couldn't be opened or was closed with an error.
5781
5961
  */
5782
- open<R>(config: PopupConfig): Promise<R | undefined>;
5783
- /**
5784
- * Creates the popup handle.
5785
- */
5786
- private createPopup;
5787
- /**
5788
- * Closes the popup depending on the configured popup closing strategy.
5789
- */
5790
- private installPopupCloser;
5791
- /**
5792
- * Hides the popup when its contextual view is detached, and displays it when it is reattached. Also restores the focus on re-activation.
5793
- * The contextual view is detached if not active, or located in the peripheral area and the main area is maximized.
5794
- */
5795
- private hidePopupOnViewDetach;
5796
- /**
5797
- * Creates a signal that tracks the position of the popup anchor.
5798
- */
5799
- private trackPopupOrigin;
5800
- /**
5801
- * Resolves the contextual view to which the popup is bound.
5802
- */
5803
- private resolveContextualView;
5804
- static ɵfac: i0.ɵɵFactoryDeclaration<PopupService, never>;
5805
- static ɵprov: i0.ɵɵInjectableDeclaration<PopupService>;
5962
+ abstract open<R>(config: PopupConfig): Promise<R | undefined>;
5963
+ static ɵfac: i0.ɵɵFactoryDeclaration<WorkbenchPopupService, never>;
5964
+ static ɵprov: i0.ɵɵInjectableDeclaration<WorkbenchPopupService>;
5806
5965
  }
5807
5966
 
5808
5967
  /**
@@ -6229,5 +6388,5 @@ declare class IconComponent {
6229
6388
  static ɵcmp: i0.ɵɵComponentDeclaration<IconComponent, "wb-icon", never, { "icon": { "alias": "icon"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
6230
6389
  }
6231
6390
 
6232
- export { IconComponent, LogAppender, LogLevel, Logger, LoggerName, MAIN_AREA, MAIN_AREA_INITIAL_PART_ID, MICROFRONTEND_PLATFORM_POST_STARTUP, MICROFRONTEND_PLATFORM_PRE_STARTUP, MicrofrontendPlatformConfigLoader, MicrofrontendPlatformStartupPhase, Notification, NotificationService, Popup, PopupConfig, PopupService, TextPipe, VIEW_TAB_RENDERING_CONTEXT, WORKBENCH_ID, WORKBENCH_POST_STARTUP, WORKBENCH_PRE_STARTUP, WORKBENCH_STARTUP, WorkbenchComponent, WorkbenchConfig, WorkbenchDesktopDirective, WorkbenchDialog, WorkbenchDialogActionDirective, WorkbenchDialogFooterDirective, WorkbenchDialogHeaderDirective, WorkbenchDialogService, WorkbenchLauncher, WorkbenchLayoutFactory, WorkbenchMessageBoxService, WorkbenchPart, WorkbenchPartActionDirective, WorkbenchPerspectiveData, WorkbenchRouteData, WorkbenchRouter, WorkbenchRouterLinkDirective, WorkbenchService, WorkbenchStartup, WorkbenchStartupPhase, WorkbenchStorage, WorkbenchView, WorkbenchViewMenuItemDirective, canMatchWorkbenchOutlet, canMatchWorkbenchPart, canMatchWorkbenchPerspective, canMatchWorkbenchView, provideMicrofrontendPlatformInitializer, provideWorkbench, provideWorkbenchInitializer, text };
6391
+ export { IconComponent, LogAppender, LogLevel, Logger, LoggerName, MAIN_AREA, MAIN_AREA_INITIAL_PART_ID, MICROFRONTEND_PLATFORM_POST_STARTUP, MICROFRONTEND_PLATFORM_PRE_STARTUP, MicrofrontendPlatformConfigLoader, MicrofrontendPlatformStartupPhase, Notification, NotificationService, WorkbenchPopup as Popup, PopupConfig, WorkbenchPopupService as PopupService, TextPipe, VIEW_TAB_RENDERING_CONTEXT, WORKBENCH_ID, WORKBENCH_POST_STARTUP, WORKBENCH_PRE_STARTUP, WORKBENCH_STARTUP, WorkbenchComponent, WorkbenchConfig, WorkbenchDesktopDirective, WorkbenchDialog, WorkbenchDialogActionDirective, WorkbenchDialogFooterDirective, WorkbenchDialogHeaderDirective, WorkbenchDialogService, WorkbenchLauncher, WorkbenchLayoutFactory, WorkbenchMessageBoxService, WorkbenchPart, WorkbenchPartActionDirective, WorkbenchPerspectiveData, WorkbenchPopup, WorkbenchPopupService, WorkbenchRouteData, WorkbenchRouter, WorkbenchRouterLinkDirective, WorkbenchService, WorkbenchStartup, WorkbenchStartupPhase, WorkbenchStorage, WorkbenchView, WorkbenchViewMenuItemDirective, canMatchWorkbenchOutlet, canMatchWorkbenchPart, canMatchWorkbenchPerspective, canMatchWorkbenchView, provideMicrofrontendPlatformInitializer, provideWorkbench, provideWorkbenchInitializer, text };
6233
6392
  export type { ActivityId, BottomLeftPoint, BottomRightPoint, CanCloseFn, CanCloseRef, CloseStrategy, Commands, DialogId, Disposable, DockedPartExtras, DockingArea, LogEvent, MenuItemConfig, MicrofrontendPlatformInitializerOptions, NavigateFn, NavigationData, NavigationState, NotificationConfig, PartExtras, PartId, Point, PopupId, PopupOrigin, PopupSize, ReferencePart, TopLeftPoint, TopRightPoint, Translatable, ViewId, ViewMenuItemsConfig, ViewTabRenderingContext, WorkbenchDialogOptions, WorkbenchDialogSize, WorkbenchElement, WorkbenchIconDescriptor, WorkbenchIconProviderFn, WorkbenchInitializer, WorkbenchInitializerFn, WorkbenchInitializerOptions, WorkbenchLayout, WorkbenchLayoutFn, WorkbenchMenuItem, WorkbenchMessageBoxOptions, WorkbenchNavigationExtras, WorkbenchPartAction, WorkbenchPartActionFn, WorkbenchPartNavigation, WorkbenchPerspective, WorkbenchPerspectiveDefinition, WorkbenchPerspectiveSelectionFn, WorkbenchPerspectives, WorkbenchTextProviderFn, WorkbenchTheme, WorkbenchViewMenuItemFn, WorkbenchViewNavigation };