@univerjs-pro/embed-ui 1.0.0-alpha.8 → 1.0.0-beta.1

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 (124) hide show
  1. package/lib/cjs/index.js +1 -1
  2. package/lib/cjs/locale/ar-SA.js +1 -1
  3. package/lib/cjs/locale/ca-ES.js +1 -1
  4. package/lib/cjs/locale/de-DE.js +1 -1
  5. package/lib/cjs/locale/en-US.js +1 -1
  6. package/lib/cjs/locale/es-ES.js +1 -1
  7. package/lib/cjs/locale/fa-IR.js +1 -1
  8. package/lib/cjs/locale/fr-FR.js +1 -1
  9. package/lib/cjs/locale/id-ID.js +1 -1
  10. package/lib/cjs/locale/it-IT.js +1 -1
  11. package/lib/cjs/locale/ja-JP.js +1 -1
  12. package/lib/cjs/locale/ko-KR.js +1 -1
  13. package/lib/cjs/locale/pl-PL.js +1 -1
  14. package/lib/cjs/locale/pt-BR.js +1 -1
  15. package/lib/cjs/locale/ru-RU.js +1 -1
  16. package/lib/cjs/locale/sk-SK.js +1 -1
  17. package/lib/cjs/locale/vi-VN.js +1 -1
  18. package/lib/cjs/locale/zh-CN.js +1 -1
  19. package/lib/cjs/locale/zh-HK.js +1 -1
  20. package/lib/cjs/locale/zh-TW.js +1 -1
  21. package/lib/es/index.js +1 -1
  22. package/lib/es/locale/ar-SA.js +1 -1
  23. package/lib/es/locale/ca-ES.js +1 -1
  24. package/lib/es/locale/de-DE.js +1 -1
  25. package/lib/es/locale/en-US.js +1 -1
  26. package/lib/es/locale/es-ES.js +1 -1
  27. package/lib/es/locale/fa-IR.js +1 -1
  28. package/lib/es/locale/fr-FR.js +1 -1
  29. package/lib/es/locale/id-ID.js +1 -1
  30. package/lib/es/locale/it-IT.js +1 -1
  31. package/lib/es/locale/ja-JP.js +1 -1
  32. package/lib/es/locale/ko-KR.js +1 -1
  33. package/lib/es/locale/pl-PL.js +1 -1
  34. package/lib/es/locale/pt-BR.js +1 -1
  35. package/lib/es/locale/ru-RU.js +1 -1
  36. package/lib/es/locale/sk-SK.js +1 -1
  37. package/lib/es/locale/vi-VN.js +1 -1
  38. package/lib/es/locale/zh-CN.js +1 -1
  39. package/lib/es/locale/zh-HK.js +1 -1
  40. package/lib/es/locale/zh-TW.js +1 -1
  41. package/lib/index.css +135 -98
  42. package/lib/index.js +1 -1
  43. package/lib/locale/ar-SA.js +1 -1
  44. package/lib/locale/ca-ES.js +1 -1
  45. package/lib/locale/de-DE.js +1 -1
  46. package/lib/locale/en-US.js +1 -1
  47. package/lib/locale/es-ES.js +1 -1
  48. package/lib/locale/fa-IR.js +1 -1
  49. package/lib/locale/fr-FR.js +1 -1
  50. package/lib/locale/id-ID.js +1 -1
  51. package/lib/locale/it-IT.js +1 -1
  52. package/lib/locale/ja-JP.js +1 -1
  53. package/lib/locale/ko-KR.js +1 -1
  54. package/lib/locale/pl-PL.js +1 -1
  55. package/lib/locale/pt-BR.js +1 -1
  56. package/lib/locale/ru-RU.js +1 -1
  57. package/lib/locale/sk-SK.js +1 -1
  58. package/lib/locale/vi-VN.js +1 -1
  59. package/lib/locale/zh-CN.js +1 -1
  60. package/lib/locale/zh-HK.js +1 -1
  61. package/lib/locale/zh-TW.js +1 -1
  62. package/lib/types/components/EmbedFloatDomRenderer.d.ts +4 -40
  63. package/lib/types/components/EmbedHostToolbarMenu.d.ts +0 -26
  64. package/lib/types/components/embed-float-dom-data.d.ts +10 -0
  65. package/lib/types/components/embed-float-dom-geometry.d.ts +97 -0
  66. package/lib/types/components/embed-float-dom-interaction.d.ts +122 -0
  67. package/lib/types/controllers/embed-host-ribbon-override.controller.d.ts +2 -2
  68. package/lib/types/plugin.d.ts +4 -2
  69. package/lib/types/products/bases/BaseFullscreenTableSidebar.d.ts +31 -0
  70. package/lib/types/products/bases/EmbedChildView.d.ts +2 -2
  71. package/lib/types/products/bases/EmbedFloatingMenu.d.ts +1 -6
  72. package/lib/types/products/bases/embed-content-size.d.ts +13 -7
  73. package/lib/types/products/bases/embed-passive-viewport.d.ts +2 -3
  74. package/lib/types/products/bases/register.d.ts +1 -0
  75. package/lib/types/products/boards/EmbedChildView.d.ts +2 -1
  76. package/lib/types/products/docs/EmbedDocsCustomBlockRenderer.d.ts +3 -10
  77. package/lib/types/products/docs/docs-custom-block-layout.d.ts +2 -1
  78. package/lib/types/products/docs/embed-docs-custom-block-bleed.render-controller.d.ts +8 -1
  79. package/lib/types/products/product-ui-contributions.d.ts +1 -0
  80. package/lib/types/products/sheets/EmbedFloatingMenu.d.ts +2 -33
  81. package/lib/types/products/sheets/SheetEmbedFloatingMenuControls.d.ts +92 -0
  82. package/lib/types/products/sheets/SheetEmbedFloatingMenuPrimitives.d.ts +85 -0
  83. package/lib/types/products/sheets/embed-content-size.d.ts +2 -0
  84. package/lib/types/products/sheets/embed-passive-viewport.d.ts +2 -3
  85. package/lib/types/products/sheets/register.d.ts +1 -1
  86. package/lib/types/products/slides/EmbedChildView.d.ts +1 -1
  87. package/lib/types/products/slides/embed-floating-menu-stage.d.ts +2 -2
  88. package/lib/types/products/slides/register.d.ts +4 -0
  89. package/lib/types/products/slides/services/embed-slide-presentation-preview.d.ts +14 -2
  90. package/lib/types/services/embed-activation.service.d.ts +1 -0
  91. package/lib/types/services/embed-child-runtime-scope.d.ts +2 -2
  92. package/lib/types/services/embed-child-unit-scoped-injector.d.ts +4 -1
  93. package/lib/types/services/embed-content-size-registry.service.d.ts +9 -1
  94. package/lib/types/services/embed-display-target-sync.d.ts +3 -5
  95. package/lib/types/services/embed-dom-wheel.d.ts +40 -0
  96. package/lib/types/services/embed-fullscreen-runtime.d.ts +26 -0
  97. package/lib/types/services/embed-host-menu-override.service.d.ts +1 -0
  98. package/lib/types/services/embed-interaction-boundary.service.d.ts +2 -1
  99. package/lib/types/services/embed-mount.service.d.ts +8 -1
  100. package/lib/types/services/embed-presentation-policy.d.ts +1 -0
  101. package/lib/types/services/embed-render-canvas-preview-provider.d.ts +3 -2
  102. package/lib/types/types/embed-ui.d.ts +23 -3
  103. package/lib/umd/index.js +1 -1
  104. package/lib/umd/locale/ar-SA.js +1 -1
  105. package/lib/umd/locale/ca-ES.js +1 -1
  106. package/lib/umd/locale/de-DE.js +1 -1
  107. package/lib/umd/locale/en-US.js +1 -1
  108. package/lib/umd/locale/es-ES.js +1 -1
  109. package/lib/umd/locale/fa-IR.js +1 -1
  110. package/lib/umd/locale/fr-FR.js +1 -1
  111. package/lib/umd/locale/id-ID.js +1 -1
  112. package/lib/umd/locale/it-IT.js +1 -1
  113. package/lib/umd/locale/ja-JP.js +1 -1
  114. package/lib/umd/locale/ko-KR.js +1 -1
  115. package/lib/umd/locale/pl-PL.js +1 -1
  116. package/lib/umd/locale/pt-BR.js +1 -1
  117. package/lib/umd/locale/ru-RU.js +1 -1
  118. package/lib/umd/locale/sk-SK.js +1 -1
  119. package/lib/umd/locale/vi-VN.js +1 -1
  120. package/lib/umd/locale/zh-CN.js +1 -1
  121. package/lib/umd/locale/zh-HK.js +1 -1
  122. package/lib/umd/locale/zh-TW.js +1 -1
  123. package/package.json +36 -36
  124. package/lib/types/products/slides/components/embed-floating-preview/SlideEmbedFloatingPreview.d.ts +0 -24
@@ -0,0 +1,92 @@
1
+ import type { IMenuItem } from '@univerjs/ui';
2
+ import type { ReactNode } from 'react';
3
+ import type { LocaleKey } from '../../locale/types';
4
+ import { BorderStyleTypes, BorderType } from '@univerjs/core';
5
+ export interface IResolvedSheetsFloatingToolbarMenuItems {
6
+ formatPainter?: IMenuItem;
7
+ numberFormat?: IMenuItem;
8
+ fontFamily?: IMenuItem;
9
+ fontSize?: IMenuItem;
10
+ bold?: IMenuItem;
11
+ textColor?: IMenuItem;
12
+ backgroundColor?: IMenuItem;
13
+ borderComposite?: IMenuItem;
14
+ merge?: {
15
+ root?: IMenuItem;
16
+ all?: IMenuItem;
17
+ vertical?: IMenuItem;
18
+ horizontal?: IMenuItem;
19
+ unmerge?: IMenuItem;
20
+ };
21
+ horizontalAlign?: IMenuItem;
22
+ verticalAlign?: IMenuItem;
23
+ wrap?: IMenuItem;
24
+ filter?: IMenuItem;
25
+ deleteBlock?: true;
26
+ }
27
+ export declare function NumberFormatDropdown(props: {
28
+ menuItem: IMenuItem | undefined;
29
+ onClick: () => void;
30
+ }): import("react").JSX.Element | null;
31
+ export declare function FontFamilyFloatingDropdown(props: {
32
+ embedId: string;
33
+ menuItem: IMenuItem | undefined;
34
+ title: LocaleKey;
35
+ open: boolean;
36
+ onOpenChange: (open: boolean) => void;
37
+ onSelect: (value: string) => void;
38
+ }): import("react").JSX.Element | null;
39
+ export declare function FontSizeFloatingDropdown(props: {
40
+ embedId: string;
41
+ menuItem: IMenuItem | undefined;
42
+ title: LocaleKey;
43
+ open: boolean;
44
+ onOpenChange: (open: boolean) => void;
45
+ onSelect: (value: string) => void;
46
+ }): import("react").JSX.Element | null;
47
+ export declare function HorizontalAlignDropdown(props: {
48
+ embedId: string;
49
+ menuItem: IMenuItem | undefined;
50
+ open: boolean;
51
+ onOpenChange: (open: boolean) => void;
52
+ execute: (item: IMenuItem | undefined, params?: object) => void;
53
+ }): import("react").JSX.Element | null;
54
+ export declare function VerticalAlignDropdown(props: {
55
+ embedId: string;
56
+ menuItem: IMenuItem | undefined;
57
+ open: boolean;
58
+ onOpenChange: (open: boolean) => void;
59
+ execute: (item: IMenuItem | undefined, params?: object) => void;
60
+ }): import("react").JSX.Element | null;
61
+ export declare function ColorDropdown(props: {
62
+ embedId: string;
63
+ menuItem: IMenuItem | undefined;
64
+ title: LocaleKey;
65
+ icon: ReactNode;
66
+ defaultColor: string;
67
+ open: boolean;
68
+ onOpenChange: (open: boolean) => void;
69
+ onChange: (value: string) => void;
70
+ onReset: () => void;
71
+ }): import("react").JSX.Element | null;
72
+ export declare function BorderCompositeDropdown(props: {
73
+ embedId: string;
74
+ menuItem: IMenuItem | undefined;
75
+ open: boolean;
76
+ onOpenChange: (open: boolean) => void;
77
+ onSelect: (type: BorderType, style?: BorderStyleTypes, color?: string) => void;
78
+ }): import("react").JSX.Element | null;
79
+ export declare function MergeDropdown(props: {
80
+ embedId: string;
81
+ menuItems: IResolvedSheetsFloatingToolbarMenuItems['merge'];
82
+ open: boolean;
83
+ onOpenChange: (open: boolean) => void;
84
+ execute: (item: IMenuItem | undefined, params?: object) => void;
85
+ }): import("react").JSX.Element | null;
86
+ export declare function WrapDropdown(props: {
87
+ embedId: string;
88
+ menuItem: IMenuItem | undefined;
89
+ open: boolean;
90
+ onOpenChange: (open: boolean) => void;
91
+ execute: (commandId: string, params?: object) => void;
92
+ }): import("react").JSX.Element | null;
@@ -0,0 +1,85 @@
1
+ import type { IMenuItem, IValueOption } from '@univerjs/ui';
2
+ import type { ButtonHTMLAttributes, HTMLAttributes, ReactNode } from 'react';
3
+ import type { LocaleKey } from '../../locale/types';
4
+ export declare const FloatingToolbarTrigger: import("react").ForwardRefExoticComponent<ButtonHTMLAttributes<HTMLButtonElement> & {
5
+ children: ReactNode;
6
+ title: string;
7
+ } & import("react").RefAttributes<HTMLButtonElement>>;
8
+ export declare const FloatingToolbarSplitTrigger: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & {
9
+ title: string;
10
+ primary: ReactNode;
11
+ disabled?: boolean;
12
+ open?: boolean;
13
+ onPrimaryClick: () => void;
14
+ } & import("react").RefAttributes<HTMLDivElement>>;
15
+ export declare function MenuButton(props: {
16
+ children: ReactNode;
17
+ title: string;
18
+ className?: string;
19
+ disabled?: boolean;
20
+ active?: boolean;
21
+ onClick: () => void;
22
+ }): import("react").JSX.Element;
23
+ export declare function MenuButtonFromMenu(props: {
24
+ item: IMenuItem | undefined;
25
+ children: ReactNode;
26
+ title: LocaleKey;
27
+ onClick: () => void;
28
+ }): import("react").JSX.Element | null;
29
+ export declare function useMenuItemRuntimeState(item: IMenuItem | undefined): {
30
+ hidden: boolean;
31
+ disabled: boolean;
32
+ activated: boolean;
33
+ value: unknown;
34
+ };
35
+ export declare function getMenuTitle(item: IMenuItem): string;
36
+ export declare function getOptionLabel(option: IValueOption): string;
37
+ export declare function getWrapIcon(value: IValueOption['value']): ReactNode;
38
+ export declare function keepFloatingPanelInteraction(event: React.MouseEvent<HTMLElement> | React.PointerEvent<HTMLElement>): void;
39
+ export declare function isFloatingDropdownOwnSurfaceTarget(target: EventTarget | null, embedId: string): boolean;
40
+ export declare function keepFloatingDropdownOpenForOwnSurface(event: {
41
+ target: EventTarget | null;
42
+ preventDefault: () => void;
43
+ }, embedId: string): void;
44
+ export declare function Panel(props: {
45
+ embedId: string;
46
+ children: ReactNode;
47
+ onPointerDown: (event: React.PointerEvent<HTMLElement>) => void;
48
+ }): import("react").JSX.Element;
49
+ export declare function PanelRow(props: {
50
+ children: ReactNode;
51
+ }): import("react").JSX.Element;
52
+ export declare function InlineFloatingDropdown(props: {
53
+ embedId: string;
54
+ title: LocaleKey;
55
+ trigger: ReactNode;
56
+ overlay: ReactNode;
57
+ disabled?: boolean;
58
+ triggerClassName?: string;
59
+ open: boolean;
60
+ onOpenChange: (open: boolean) => void;
61
+ }): import("react").JSX.Element;
62
+ export declare function MenuPanel(props: {
63
+ children: ReactNode;
64
+ }): import("react").JSX.Element;
65
+ export declare function RibbonListPanel(props: {
66
+ children: ReactNode;
67
+ }): import("react").JSX.Element;
68
+ export declare function RibbonListItem(props: {
69
+ children: ReactNode;
70
+ icon: ReactNode;
71
+ onClick: () => void;
72
+ }): import("react").JSX.Element;
73
+ export declare function MenuPanelItem(props: {
74
+ children: ReactNode;
75
+ icon?: ReactNode;
76
+ active?: boolean;
77
+ onClick: () => void;
78
+ }): import("react").JSX.Element;
79
+ export declare function PanelButton(props: {
80
+ title: string;
81
+ active?: boolean;
82
+ disabled?: boolean;
83
+ children: ReactNode;
84
+ onClick: () => void;
85
+ }): import("react").JSX.Element;
@@ -1,2 +1,4 @@
1
1
  import type { IEmbedContentSizeProvider } from '../../types/embed-ui';
2
+ export declare const DEFAULT_SHEET_COLUMN_HEADER_HEIGHT = 24;
2
3
  export declare function createSheetsContentSizeProvider(): IEmbedContentSizeProvider;
4
+ export declare function resolveSheetsStickyHeaderHeight(childUnit: unknown): number;
@@ -1,3 +1,2 @@
1
- import type { Injector } from '@univerjs/core';
2
- import type { IEmbedPassiveViewportProvider } from '../../types/embed-ui';
3
- export declare function createSheetsPassiveViewportProvider(rootInjector: Injector): IEmbedPassiveViewportProvider;
1
+ import type { IEmbedChildContainerContext, IEmbedPassiveViewportProvider } from '../../types/embed-ui';
2
+ export declare function createSheetsPassiveViewportProvider(rootInjector: IEmbedChildContainerContext['injector']): IEmbedPassiveViewportProvider;
@@ -1,5 +1,5 @@
1
+ import type { Injector } from '@univerjs/core';
1
2
  import { EmbedModelService } from '@univerjs-pro/embed';
2
- import { type Injector } from '@univerjs/core';
3
3
  import { ISheetEmbedRuntimeService } from '@univerjs/sheets-ui';
4
4
  import { CanvasFloatDomPreviewService } from '@univerjs/ui';
5
5
  import { Subscription } from 'rxjs';
@@ -1,7 +1,7 @@
1
1
  import type { EmbedDisplayTarget } from '@univerjs-pro/embed';
2
2
  import type { SlideModel } from '@univerjs-pro/slides';
3
+ import type { ICommandService } from '@univerjs/core';
3
4
  import type { IEmbedChildContainerContext, IEmbedChildViewContribution } from '../../types/embed-ui';
4
- import { type ICommandService } from '@univerjs/core';
5
5
  export declare function createSlidesEmbedChildViewContribution(commandService: ICommandService): IEmbedChildViewContribution;
6
6
  export declare function applySlideDisplayTarget(slide: SlideModel, target: EmbedDisplayTarget | undefined): void;
7
7
  export declare function shouldUseSlideEmbedFloatingPreview(context: Pick<IEmbedChildContainerContext, 'layout' | 'renderScope'>): boolean;
@@ -1,8 +1,8 @@
1
- import type { IEmbedFloatingActivation } from '../../types/embed-ui';
1
+ import type { EmbedFloatingStage, IEmbedFloatingActivation } from '../../types/embed-ui';
2
2
  export declare function resolveSlidesFloatingMenuStage(params: {
3
3
  embedId: string;
4
4
  active: IEmbedFloatingActivation | null;
5
5
  fullscreen?: boolean;
6
6
  usesDomFloatingStage?: boolean;
7
7
  renderScopeActive?: boolean;
8
- }): 'inactive' | 'stage2';
8
+ }): EmbedFloatingStage;
@@ -1,7 +1,9 @@
1
1
  import type { Injector } from '@univerjs/core';
2
2
  import { EmbedModelService } from '@univerjs-pro/embed';
3
3
  import { ISlideEmbedRuntimeService } from '@univerjs-pro/slides-ui';
4
+ import { IUniverInstanceService } from '@univerjs/core';
4
5
  import { EmbedActivationService } from '../../services/embed-activation.service';
6
+ import { EmbedBlockRegistryService } from '../../services/embed-block-registry.service';
5
7
  import { EmbedFloatPreviewService } from '../../services/embed-float-preview.service';
6
8
  import { EmbedHostRestoreService } from '../../services/embed-host-restore.service';
7
9
  import { EmbedMountService } from '../../services/embed-mount.service';
@@ -14,11 +16,13 @@ interface ISlidesEmbedRuntimeServiceDependencies {
14
16
  embedModelService: EmbedModelService;
15
17
  mountService: EmbedMountService;
16
18
  activationService: EmbedActivationService;
19
+ blockRegistry: EmbedBlockRegistryService;
17
20
  restoreService: EmbedHostRestoreService;
18
21
  previewService: EmbedFloatPreviewService;
19
22
  runtimeHostLeaseService: EmbedRuntimeHostLeaseService;
20
23
  passiveViewportRegistry: EmbedPassiveViewportRegistryService;
21
24
  passiveWheelHandlerRegistry: EmbedPassiveWheelHandlerRegistryService;
25
+ univerInstanceService?: IUniverInstanceService;
22
26
  sceneCanvasCaptureService: EmbedSceneCanvasCaptureService | undefined;
23
27
  }
24
28
  export declare function createSlidesEmbedRuntimeService(params: ISlidesEmbedRuntimeServiceDependencies): ISlideEmbedRuntimeService;
@@ -1,4 +1,7 @@
1
+ import type { EmbedModelService, IEmbedDescriptor } from '@univerjs-pro/embed';
1
2
  import type { ISlideEmbedPresentationMountParams } from '@univerjs-pro/slides-ui';
3
+ import type { EmbedActivationService } from '../../../services/embed-activation.service';
4
+ import type { EmbedBlockRegistryService } from '../../../services/embed-block-registry.service';
2
5
  import type { EmbedFloatPreviewService } from '../../../services/embed-float-preview.service';
3
6
  import type { EmbedHostRestoreService } from '../../../services/embed-host-restore.service';
4
7
  import type { EmbedPassiveViewportRegistryService } from '../../../services/embed-passive-viewport-registry.service';
@@ -6,8 +9,10 @@ import type { EmbedPassiveWheelHandlerRegistryService } from '../../../services/
6
9
  import type { EmbedRuntimeHostLeaseService } from '../../../services/embed-runtime-host-lease.service';
7
10
  import type { EmbedSceneCanvasCaptureService } from '../../../services/embed-scene-canvas-capture.service';
8
11
  import type { EmbedFloatPreviewRenderResult } from '../../../types/embed-ui';
9
- type EmbedModelService = import('@univerjs-pro/embed').EmbedModelService;
12
+ import { UniverInstanceType } from '@univerjs/core';
10
13
  export interface ISlidePresentationEmbedDependencies {
14
+ activationService: EmbedActivationService;
15
+ blockRegistry: EmbedBlockRegistryService;
11
16
  embedModelService: EmbedModelService;
12
17
  restoreService: EmbedHostRestoreService;
13
18
  previewService: EmbedFloatPreviewService;
@@ -23,5 +28,12 @@ export interface ISlidePresentationEmbedDependencies {
23
28
  * Static preview rendering remains only as a runtime-unavailable fallback.
24
29
  */
25
30
  export declare function mountSlidesPresentationEmbed(dependencies: ISlidePresentationEmbedDependencies, mountParams: ISlideEmbedPresentationMountParams): import("@wendellhu/redi").IDisposable;
31
+ export declare function createSlidesPresentationPreviewDescriptor(params: {
32
+ hostUnitId: string;
33
+ embedId: string;
34
+ hostAnchorId: string;
35
+ childUnitId?: string;
36
+ childType?: UniverInstanceType;
37
+ entry: 'slides-floating-object' | 'slides-page-list-block';
38
+ }): IEmbedDescriptor | undefined;
26
39
  export declare function normalizePresentationPreviewResult(result: EmbedFloatPreviewRenderResult): string | undefined;
27
- export {};
@@ -26,6 +26,7 @@ export declare class EmbedActivationService extends Disposable {
26
26
  activateFloating(descriptor: IEmbedDescriptor, stage?: 'stage1' | 'stage2', _options?: IEmbedFloatingActivationOptions): void;
27
27
  focusFloatingRuntime(descriptor: IEmbedDescriptor, options?: IEmbedFloatingActivationOptions): void;
28
28
  activateFullscreen(descriptor: IEmbedDescriptor): void;
29
+ focusHostForPassiveRuntime(descriptor: IEmbedDescriptor): void;
29
30
  clearFullscreen(descriptor: IEmbedDescriptor): void;
30
31
  clearFloating(embedId?: string, hostUnitId?: string): void;
31
32
  clearTab(embedId?: string): void;
@@ -1,7 +1,7 @@
1
- import type { IDisposable } from '@univerjs/core';
1
+ import type { Dependency, IDisposable } from '@univerjs/core';
2
2
  import type { IEmbedChildContainerContext, IEmbedChildRuntimeScope } from '../types/embed-ui';
3
3
  export type EmbedChildRuntimeScopeCreateContext = Omit<IEmbedChildContainerContext, 'runtimeScope'>;
4
- export declare function createEmbedChildRuntimeScope(context: EmbedChildRuntimeScopeCreateContext, setActive: (active: boolean) => void): {
4
+ export declare function createEmbedChildRuntimeScope(context: EmbedChildRuntimeScopeCreateContext, setActive: (active: boolean) => void, scopedDependencies?: readonly Dependency[]): {
5
5
  runtimeScope: IEmbedChildRuntimeScope;
6
6
  disposable: IDisposable;
7
7
  };
@@ -1,6 +1,9 @@
1
+ import type { Dependency } from '@univerjs/core';
1
2
  import type { IEmbedChildContainerContext } from '../types/embed-ui';
2
3
  import { Injector } from '@univerjs/core';
3
4
  export type IEmbedScopedConfigOverrides = ReadonlyMap<string | symbol, (config: unknown) => unknown>;
4
- export declare function createEmbedChildUnitScopedInjector(context: IEmbedChildContainerContext): Injector | undefined;
5
+ type EmbedChildContainerSetupContext = Omit<IEmbedChildContainerContext, 'runtimeScope'>;
6
+ export declare function createEmbedChildUnitScopedInjector(context: EmbedChildContainerSetupContext, scopedDependencies?: readonly Dependency[]): Injector | undefined;
5
7
  export declare function createEmbedScopedConfigInjector(parentInjector: Injector, configOverrides: IEmbedScopedConfigOverrides): Injector | undefined;
6
8
  export declare function createEmbedScopedInjector(parentInjector: Injector, overrides: ReadonlyMap<unknown, unknown>, sharedRootInjector?: Injector): Injector;
9
+ export {};
@@ -1,9 +1,17 @@
1
1
  import type { IDisposable, UniverInstanceType } from '@univerjs/core';
2
2
  import type { IEmbedContentSize, IEmbedContentSizeMeasureContext, IEmbedContentSizeProvider } from '../types/embed-ui';
3
- export declare class EmbedContentSizeRegistryService {
3
+ import { Disposable } from '@univerjs/core';
4
+ export declare class EmbedContentSizeRegistryService extends Disposable {
4
5
  private readonly _providers;
6
+ private readonly _contentSizeChanged$;
7
+ readonly contentSizeChanged$: import("rxjs").Observable<{
8
+ embedId: string;
9
+ hostUnitId: string;
10
+ }>;
5
11
  register(provider: IEmbedContentSizeProvider): IDisposable;
6
12
  get(childType: UniverInstanceType): IEmbedContentSizeProvider | undefined;
7
13
  list(): IEmbedContentSizeProvider[];
8
14
  measureContentSize(context: IEmbedContentSizeMeasureContext): IEmbedContentSize | undefined;
15
+ notifyContentSizeChanged(hostUnitId: string, embedId: string): void;
16
+ dispose(): void;
9
17
  }
@@ -1,6 +1,4 @@
1
+ import type { EmbedDisplayTarget } from '@univerjs-pro/embed';
2
+ import type { ICommandService, IDisposable } from '@univerjs/core';
1
3
  import type { IEmbedChildContainerContext } from '../types/embed-ui';
2
- import { type EmbedDisplayTarget } from '@univerjs-pro/embed';
3
- import { type ICommandService, type IDisposable } from '@univerjs/core';
4
- type ApplyEmbedDisplayTarget = (target: EmbedDisplayTarget | undefined) => void;
5
- export declare function registerEmbedDisplayTargetSync(context: Pick<IEmbedChildContainerContext, 'descriptor' | 'embedId' | 'hostUnitId'>, commandService: ICommandService, applyTarget: ApplyEmbedDisplayTarget): IDisposable;
6
- export {};
4
+ export declare function registerEmbedDisplayTargetSync(context: Pick<IEmbedChildContainerContext, 'descriptor' | 'embedId' | 'hostUnitId'>, commandService: ICommandService, applyTarget: (target: EmbedDisplayTarget | undefined) => void): IDisposable;
@@ -0,0 +1,40 @@
1
+ import type { IDisposable } from '@univerjs/core';
2
+ import type { IEmbedChildContainerContext } from '../types/embed-ui';
3
+ import type { EmbedHostWheelGestureService } from './embed-host-wheel-gesture.service';
4
+ import type { EmbedPassiveViewportRegistryService } from './embed-passive-viewport-registry.service';
5
+ import type { EmbedPassiveWheelHandlerRegistryService } from './embed-passive-wheel-handler-registry.service';
6
+ export declare function registerEmbedDomWheelRouting(options: {
7
+ container: HTMLElement;
8
+ gate: HTMLElement;
9
+ getChildContext: () => IEmbedChildContainerContext | undefined;
10
+ getStage: () => 'inactive' | 'stage1' | 'stage2';
11
+ hostScrollOffset: {
12
+ current: number;
13
+ };
14
+ hostWheelGestureService: EmbedHostWheelGestureService;
15
+ invalidate: (reason: 'child-scroll' | 'host-scroll' | 'wheel') => void;
16
+ liveRoot: HTMLElement;
17
+ onHostWheel?: (event: WheelEvent, context: IEmbedChildContainerContext) => boolean | void;
18
+ passiveViewportRegistry: EmbedPassiveViewportRegistryService;
19
+ passiveWheelHandlerRegistry: EmbedPassiveWheelHandlerRegistryService;
20
+ resizeDocsSheetLikeRendererByWheel?: (event: WheelEvent) => boolean;
21
+ routeHostGestures: boolean;
22
+ syncHostVerticalScroll?: boolean;
23
+ viewScale?: number;
24
+ }): IDisposable;
25
+ export declare function createEmbedWheelEventForViewScale(event: WheelEvent, viewScale: number | undefined): WheelEvent;
26
+ export declare function createForwardedEmbedWheelEvent(source: WheelEvent, init: WheelEventInit): WheelEvent;
27
+ export declare function isEmbedForwardedWheelEvent(event: Event | undefined): boolean;
28
+ export declare function markHostVerticalWheelAttempted(event: WheelEvent): void;
29
+ export declare function isHostVerticalWheelAttempted(event: WheelEvent): boolean;
30
+ export declare function forwardWheelToEmbedRuntime(event: WheelEvent, liveRoot: HTMLElement): boolean;
31
+ export declare function scrollEmbedRuntimeDom(event: WheelEvent, liveRoot: HTMLElement): boolean;
32
+ export declare function scrollEmbedRuntimeDomElement(event: WheelEvent, element: HTMLElement): boolean;
33
+ export declare function scrollHostScrollPortByWheel(container: HTMLElement, event: WheelEvent): boolean;
34
+ export declare function findNearestEmbedScrollPort(element: HTMLElement): HTMLElement | null;
35
+ export declare function clipsEmbedOverflow(element: HTMLElement): boolean;
36
+ export declare function shouldPassVerticalWheelToHost(context: IEmbedChildContainerContext, event: WheelEvent, syncHostVerticalScroll?: boolean): boolean;
37
+ export declare function shouldUseRuntimeDomHorizontalScroll(container: HTMLElement, event: WheelEvent): boolean;
38
+ export declare function getHorizontalWheelDelta(event: WheelEvent): number;
39
+ export declare function scrollDocsSheetLikeHorizontalWheel(deltaX: number, resizeRenderer: () => boolean, scrollChild: () => boolean): boolean;
40
+ export declare function shouldRouteUnhandledWheelToHost(event: WheelEvent): boolean;
@@ -0,0 +1,26 @@
1
+ import type { EmbedLayout, IEmbedDescriptor } from '@univerjs-pro/embed';
2
+ import type { IDisposable, Injector } from '@univerjs/core';
3
+ import type { IEmbedChildContainerContext, IEmbedRenderScope } from '../types/embed-ui';
4
+ export declare function createFullscreenRenderScope(descriptor: IEmbedDescriptor, layout: EmbedLayout, roots: {
5
+ viewport: HTMLElement;
6
+ menuSlot: HTMLElement;
7
+ popupSlot?: HTMLElement;
8
+ footerSlot: HTMLElement;
9
+ }): IEmbedRenderScope;
10
+ export declare function registerFullscreenRuntimeOwnership(params: {
11
+ injector: Injector;
12
+ descriptor: IEmbedDescriptor;
13
+ renderScope: IEmbedRenderScope;
14
+ menuRoot: HTMLElement | null;
15
+ menuSlot: HTMLElement;
16
+ popupSlot: HTMLElement;
17
+ sidebarSlot: HTMLElement;
18
+ rightSidebarSlot: HTMLElement;
19
+ footerSlot: HTMLElement;
20
+ }): IDisposable;
21
+ export declare function mountFullscreenWorkbenchMenus(params: {
22
+ injector: Injector;
23
+ descriptor: IEmbedDescriptor;
24
+ childContext: IEmbedChildContainerContext;
25
+ menuContainer: HTMLElement;
26
+ }): IDisposable | undefined;
@@ -3,6 +3,7 @@ import type { IEmbedHostMenuOverride } from '../types/embed-ui';
3
3
  export interface IEmbedHostMenuOverrideActivateOptions {
4
4
  layoutPolicy?: IEmbedLayoutPolicy;
5
5
  allowPlaceholder?: boolean;
6
+ allowHiddenRibbon?: boolean;
6
7
  portalContainer?: HTMLElement | null;
7
8
  }
8
9
  export declare class EmbedHostMenuOverrideService {
@@ -4,10 +4,11 @@ export declare function getEmbedInteractionBoundaryOwnerId(element: HTMLElement
4
4
  export declare function isEventTargetInSameEmbedInteractionBoundary(scopeElement: HTMLElement | null | undefined, target: EventTarget | null | undefined): boolean;
5
5
  export declare class EmbedInteractionBoundaryService {
6
6
  private readonly _roots;
7
+ private readonly _childUnitIds;
7
8
  private readonly _portalObservers;
8
9
  private readonly _activePortalOwners;
9
10
  private _pendingPortalOwner;
10
- registerRoot(embedId: string, root: HTMLElement): IDisposable;
11
+ registerRoot(embedId: string, root: HTMLElement, childUnitId?: string): IDisposable;
11
12
  private _registerRootPopupDescendantFocusRoles;
12
13
  registerOwnedElement(embedId: string, element: HTMLElement): IDisposable;
13
14
  contains(embedId: string | undefined, target: EventTarget | null | undefined, event?: Event): boolean;
@@ -2,6 +2,7 @@ import type { IEmbedDescriptor } from '@univerjs-pro/embed';
2
2
  import type { IEmbedHostMountResult, IEmbedMountSession } from '../types/embed-ui';
3
3
  import { Injector, IUniverInstanceService } from '@univerjs/core';
4
4
  import { EmbedChildViewRegistryService } from './embed-child-view-registry.service';
5
+ import { EmbedFloatingActiveService } from './embed-floating-active.service';
5
6
  import { EmbedHostContainerRegistryService } from './embed-host-container-registry.service';
6
7
  import { EmbedOverlayRootService } from './embed-overlay-root.service';
7
8
  import { EmbedRuntimePolicyService } from './embed-runtime-policy.service';
@@ -19,11 +20,13 @@ export declare class EmbedMountService {
19
20
  private readonly _overlayRootService;
20
21
  private readonly _sceneCanvasCaptureService;
21
22
  private readonly _univerInstanceService;
23
+ private readonly _floatingActiveService;
22
24
  private readonly _runtimePolicyService;
23
25
  private readonly _injector;
24
26
  private readonly _sessions;
25
27
  private readonly _tabFocusLeases;
26
- constructor(_hostContainerRegistry: EmbedHostContainerRegistryService, _childViewRegistry: EmbedChildViewRegistryService, _overlayRootService: EmbedOverlayRootService, _sceneCanvasCaptureService: EmbedSceneCanvasCaptureService, _univerInstanceService: IUniverInstanceService, _runtimePolicyService: EmbedRuntimePolicyService, _injector: Injector);
28
+ private readonly _tabHostRenderLeases;
29
+ constructor(_hostContainerRegistry: EmbedHostContainerRegistryService, _childViewRegistry: EmbedChildViewRegistryService, _overlayRootService: EmbedOverlayRootService, _sceneCanvasCaptureService: EmbedSceneCanvasCaptureService, _univerInstanceService: IUniverInstanceService, _floatingActiveService: EmbedFloatingActiveService, _runtimePolicyService: EmbedRuntimePolicyService, _injector: Injector);
27
30
  mount(descriptor: IEmbedDescriptor): IEmbedMountSession;
28
31
  mountIntoHostElement(descriptor: IEmbedDescriptor, hostElement: HTMLElement, runtimeRoots?: IEmbedHostMountResult['runtimeRoots']): IEmbedMountSession;
29
32
  private _mountResolvedHost;
@@ -33,10 +36,13 @@ export declare class EmbedMountService {
33
36
  getSession(embedId: string): IEmbedMountSession | undefined;
34
37
  listSessions(): IEmbedMountSession[];
35
38
  activateSession(embedId: string): void;
39
+ releaseSessionFocus(embedId: string): boolean;
36
40
  deactivateTabSessions(embedId?: string): IEmbedMountSession[];
37
41
  deactivateFloatingSession(embedId: string): IEmbedMountSession | undefined;
38
42
  setActive(embedId: string, active: boolean): void;
39
43
  private _runChildBeforeDeactivate;
44
+ private _suspendTabPeerHostRender;
45
+ private _releaseTabPeerHostRenderLease;
40
46
  private _resolveLayout;
41
47
  private _createRenderScope;
42
48
  private _registerRuntimeBoundary;
@@ -44,6 +50,7 @@ export declare class EmbedMountService {
44
50
  private _mountFloatingMenu;
45
51
  private _registerChildFocusBridge;
46
52
  private _focusTabPeerSession;
53
+ private _refreshTabPeerRender;
47
54
  private _activateTabPeerFocusLease;
48
55
  private _releaseTabPeerFocusLeasesForHost;
49
56
  private _releaseTabPeerFocusLease;
@@ -0,0 +1 @@
1
+ export declare function findEmbedPresentationElementAtPoint(root: HTMLElement, selector: string, clientX: number, clientY: number): HTMLElement | undefined;
@@ -1,8 +1,9 @@
1
1
  import type { DependencyIdentifier, Injector, UniverInstanceType } from '@univerjs/core';
2
- import type { IRenderManagerService } from '@univerjs/engine-render';
3
- import type { IEmbedFloatPreviewProvider } from '../types/embed-ui';
2
+ import type { IEmbedChildContainerContext, IEmbedFloatPreviewProvider } from '../types/embed-ui';
3
+ import { IRenderManagerService } from '@univerjs/engine-render';
4
4
  export interface ICreateEmbedRenderCanvasPreviewProviderOptions {
5
5
  childType: UniverInstanceType;
6
6
  renderManagerService: DependencyIdentifier<IRenderManagerService>;
7
7
  }
8
8
  export declare function createEmbedRenderCanvasPreviewProvider(injector: Injector, options: ICreateEmbedRenderCanvasPreviewProviderOptions): IEmbedFloatPreviewProvider;
9
+ export declare function waitForEmbedContextCanvasPreviewReady(context: IEmbedChildContainerContext): Promise<void>;
@@ -1,6 +1,6 @@
1
1
  import type { EmbedHostEntry, EmbedLayout, EmbedMenuBehavior, IEmbedDescriptor, IEmbedLayoutPolicies } from '@univerjs-pro/embed';
2
- import type { DependencyIdentifier, ICommandService, IDisposable, Injector, IUniverInstanceService, UniverInstanceType } from '@univerjs/core';
3
- import type { IMenuManagerService, IRibbonService } from '@univerjs/ui';
2
+ import type { Dependency, DependencyIdentifier, ICommandService, IDisposable, Injector, IUniverInstanceService, UniverInstanceType } from '@univerjs/core';
3
+ import type { IMenuManagerService, IRibbonService, RibbonType } from '@univerjs/ui';
4
4
  import type { Observable } from 'rxjs';
5
5
  export interface IEmbedContainerContext {
6
6
  descriptor: IEmbedDescriptor;
@@ -92,6 +92,7 @@ export interface IEmbedHostContainerContribution {
92
92
  export interface IEmbedChildViewContribution {
93
93
  childType: UniverInstanceType;
94
94
  supportedLayouts: EmbedLayout[];
95
+ scopedDependencies?: readonly Dependency[];
95
96
  canvasRootClassName?: string;
96
97
  beforeDeactivate?: (context: IEmbedChildContainerContext) => void;
97
98
  mount?: (context: IEmbedChildContainerContext) => IDisposable | void;
@@ -113,12 +114,13 @@ export interface IEmbedProductMenuMountContext {
113
114
  surface?: EmbedProductMenuSurface;
114
115
  childUnitId?: string;
115
116
  embedId?: string;
116
- injector: unknown;
117
+ injector: Injector;
117
118
  menuSchema: unknown;
118
119
  menuTitlePrefix?: string;
119
120
  activeRibbonTab?: string;
120
121
  headerMenu?: boolean;
121
122
  toolbarOnly?: boolean;
123
+ ribbonType?: RibbonType;
122
124
  ribbonHeaderClassName?: string;
123
125
  scopedActionServiceTokens?: readonly DependencyIdentifier<unknown>[];
124
126
  }
@@ -139,12 +141,26 @@ export interface IEmbedProductRibbonOverrideContext {
139
141
  hostUnitId: string;
140
142
  entry: EmbedHostEntry;
141
143
  }
144
+ export interface IEmbedPresentationPolicyContext {
145
+ childContext: IEmbedChildContainerContext;
146
+ entry: EmbedHostEntry;
147
+ runtimeHost: HTMLElement;
148
+ }
149
+ export interface IEmbedPresentationNavigationContext extends IEmbedPresentationPolicyContext {
150
+ clientX: number;
151
+ clientY: number;
152
+ }
153
+ export interface IEmbedPresentationPolicyContribution {
154
+ getChromeCss?: (context: IEmbedPresentationPolicyContext) => string | undefined;
155
+ activateNavigationAtPoint?: (context: IEmbedPresentationNavigationContext) => boolean;
156
+ }
142
157
  export interface IEmbedBlockContribution {
143
158
  childType: UniverInstanceType;
144
159
  productName: string;
145
160
  hostChromeMode?: EmbedHostChromeMode;
146
161
  hostHeaderMode?: 'none' | 'placeholder';
147
162
  layoutPolicy?: IEmbedLayoutPolicies;
163
+ presentationPolicy?: IEmbedPresentationPolicyContribution;
148
164
  createRibbonOverride?: (context: IEmbedProductRibbonOverrideContext) => IEmbedProductRibbonOverride | undefined;
149
165
  }
150
166
  export declare enum EmbedHostChromeMode {
@@ -179,7 +195,9 @@ export interface IEmbedPassiveViewportWheelContext extends IEmbedChildContainerC
179
195
  export interface IEmbedPassiveViewportProvider {
180
196
  childType: UniverInstanceType;
181
197
  supportedLayouts?: EmbedLayout[];
198
+ getStickyHeaderHeight?: (context: IEmbedChildContainerContext) => number | undefined;
182
199
  handleWheel: (context: IEmbedPassiveViewportWheelContext) => boolean | void;
200
+ subscribeVerticalScroll?: (context: IEmbedChildContainerContext, listener: (viewportScrollY: number) => void) => IDisposable | void;
183
201
  }
184
202
  export interface IEmbedPassiveWheelHandlerContribution {
185
203
  childType: UniverInstanceType;
@@ -195,6 +213,8 @@ export interface IEmbedContentSizeMeasureContext {
195
213
  childType: UniverInstanceType;
196
214
  childUnit?: unknown;
197
215
  childUnitId: string;
216
+ injector?: Injector;
217
+ viewportHeight?: number;
198
218
  viewportWidth?: number;
199
219
  }
200
220
  export interface IEmbedContentSizeProvider {