@cratis/event-models 0.114.1 → 0.115.0
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/dist/Rows/UserExperience/UiCell.d.ts +7 -2
- package/dist/Rows/UserExperience/UiThumbnailProps.d.ts +13 -0
- package/dist/Rows/UserExperience/index.d.ts +1 -0
- package/dist/index.js +163 -156
- package/dist/index.js.map +1 -1
- package/dist/screen-editor/ScreenEditor/Document/canvasMoveEdits.d.ts +7 -2
- package/dist/screen-editor/ScreenEditor/Document/placeOnCanvas.d.ts +8 -2
- package/dist/screen-editor/ScreenEditor/Host/ScreenEditorController.d.ts +7 -0
- package/dist/screen-editor/ScreenEditor/Host/ScreenEditorOverlay.d.ts +3 -0
- package/dist/screen-editor/ScreenEditor/Play/PlayScreen.d.ts +11 -0
- package/dist/screen-editor/ScreenEditor/Play/composePlayScreen.d.ts +7 -0
- package/dist/screen-editor/ScreenEditor/Runtime/ScreenEditorAppearance.d.ts +4 -0
- package/dist/screen-editor/ScreenEditor/Runtime/profileTheme.d.ts +1 -1
- package/dist/screen-editor/ScreenEditor/Runtime/screenEditorRuntime.d.ts +3 -1
- package/dist/screen-editor/ScreenEditor/Runtime/screenEditorRuntimeForProfile.d.ts +2 -1
- package/dist/screen-editor/ScreenEditor/Surface/designTimePointer.d.ts +9 -0
- package/dist/screen-editor/ScreenEditor/Surface/useDesignTimePointer.d.ts +2 -0
- package/dist/screen-editor/ScreenEditor/Thumbnail/ScreenThumbnail.d.ts +15 -0
- package/dist/screen-editor/ScreenEditor/Thumbnail/miniatureRegistry.d.ts +3 -0
- package/dist/screen-editor/ScreenEditor/Thumbnail/readThumbnailDocument.d.ts +2 -0
- package/dist/screen-editor/ScreenEditor/Thumbnail/thumbnailGeometry.d.ts +11 -0
- package/dist/screen-editor/ScreenEditor/Thumbnail/useIsNearViewport.d.ts +2 -0
- package/dist/screen-editor/ScreenEditor/Viewport/windowSizeMemory.d.ts +12 -0
- package/dist/screen-editor/ScreenEditor/Viewport/windowSizing.d.ts +10 -0
- package/dist/screen-editor/ScreenEditor/index.d.ts +8 -0
- package/dist/screen-editor/index.js +2073 -1739
- package/dist/screen-editor/screen-editor.css +1 -1
- package/package.json +3 -3
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { type SceneEdit, type SceneElement } from '@cratis/scene.model';
|
|
2
2
|
import type { StructureEdit } from '../Structure/StructureEdit';
|
|
3
|
-
import { type CanvasPlacement } from './placeOnCanvas';
|
|
4
|
-
export declare
|
|
3
|
+
import { type CanvasPlacement, type PlacedBox } from './placeOnCanvas';
|
|
4
|
+
export declare const boxesOn: (canvas: SceneElement | undefined, measure?: BoxMeasure) => PlacedBox[];
|
|
5
|
+
export type BoxMeasure = (elementId: string, canvasId: string) => {
|
|
6
|
+
height: number;
|
|
7
|
+
bottom: number;
|
|
8
|
+
} | undefined;
|
|
9
|
+
export declare function canvasMoveEdits(roots: readonly SceneElement[], edit: StructureEdit, at?: CanvasPlacement, measure?: BoxMeasure): SceneEdit[] | undefined;
|
|
@@ -3,8 +3,14 @@ export interface CanvasPlacement {
|
|
|
3
3
|
left: number;
|
|
4
4
|
top: number;
|
|
5
5
|
}
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const
|
|
6
|
+
export declare const canvasGap = 16;
|
|
7
|
+
export declare const nominalElementHeight = 40;
|
|
8
|
+
export interface PlacedBox {
|
|
9
|
+
placement?: CanvasPlacement;
|
|
10
|
+
height?: number;
|
|
11
|
+
bottom?: number;
|
|
12
|
+
}
|
|
13
|
+
export declare function placementBelow(existing: readonly PlacedBox[]): CanvasPlacement;
|
|
8
14
|
export declare function placeOnCanvas<T extends SceneElement>(element: T, placement: CanvasPlacement): T;
|
|
9
15
|
export declare function placementOf(element: SceneElement): CanvasPlacement | undefined;
|
|
10
16
|
export declare function removePlacement<T extends SceneElement>(element: T): T;
|
|
@@ -8,6 +8,12 @@ import type { StructureTreeAdapter } from '../Structure/StructureTreeAdapter';
|
|
|
8
8
|
import type { EditorComposition } from '../Templates/composeEditorScreen';
|
|
9
9
|
import type { DropRegion } from '../DropRegions/DropRegion';
|
|
10
10
|
import type { LayoutItem } from '../Layouts/LayoutItem';
|
|
11
|
+
export type ElementMeasurer = (elementId: string) => {
|
|
12
|
+
left: number;
|
|
13
|
+
top: number;
|
|
14
|
+
width: number;
|
|
15
|
+
height: number;
|
|
16
|
+
} | undefined;
|
|
11
17
|
export interface ScreenEditorController {
|
|
12
18
|
document: SceneDocument;
|
|
13
19
|
composition: EditorComposition;
|
|
@@ -20,6 +26,7 @@ export interface ScreenEditorController {
|
|
|
20
26
|
ownershipOf: (elementId: string) => Ownership;
|
|
21
27
|
dropRegions: readonly DropRegion[];
|
|
22
28
|
select: (elementId: string | undefined) => void;
|
|
29
|
+
setMeasurer: (measure: ElementMeasurer | undefined) => void;
|
|
23
30
|
apply: (edit: SceneEdit, label: string) => void;
|
|
24
31
|
tryApply: (edit: SceneEdit, label: string) => {
|
|
25
32
|
applied: boolean;
|
|
@@ -3,6 +3,7 @@ import type { ScreenEditorStrings } from '../Inspector/ScreenEditorStrings';
|
|
|
3
3
|
import { type PaletteIcons, type PaletteSource } from '../Palette/buildPalette';
|
|
4
4
|
import type { LayoutLabels } from '../Layouts/toLayoutContainerDescriptors';
|
|
5
5
|
import type { ScreenEditorEnvironment, ScreenEditorResult, ScreenEditorSubject } from './ScreenEditorHost';
|
|
6
|
+
import { type WindowSizeMemory } from '../Viewport/windowSizeMemory';
|
|
6
7
|
export interface ScreenEditorOverlayProps {
|
|
7
8
|
subject: ScreenEditorSubject;
|
|
8
9
|
environment: ScreenEditorEnvironment;
|
|
@@ -15,6 +16,8 @@ export interface ScreenEditorOverlayProps {
|
|
|
15
16
|
width: number;
|
|
16
17
|
height: number;
|
|
17
18
|
};
|
|
19
|
+
rememberWindowAs?: string;
|
|
20
|
+
windowMemory?: WindowSizeMemory;
|
|
18
21
|
centerOffsetX?: number;
|
|
19
22
|
renderPaletteHost?: (palette: ReactNode) => ReactNode;
|
|
20
23
|
onClose: (result: ScreenEditorResult) => void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ComponentRegistry } from '@cratis/scene.react';
|
|
2
|
+
import type { BindingResolver } from '@cratis/scene.engine';
|
|
3
|
+
import type { SceneDocument } from '@cratis/scene.model';
|
|
4
|
+
import type { ScreenEditorRuntime } from '../Runtime/screenEditorRuntime';
|
|
5
|
+
export interface PlayScreenViewProps {
|
|
6
|
+
document: SceneDocument;
|
|
7
|
+
runtime: ScreenEditorRuntime;
|
|
8
|
+
resolveBinding: BindingResolver;
|
|
9
|
+
registry?: ComponentRegistry;
|
|
10
|
+
}
|
|
11
|
+
export declare const PlayScreenView: ({ document, runtime, resolveBinding, registry }: PlayScreenViewProps) => import("react").JSX.Element;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { EffectiveConfiguration, SceneDocument, SceneElement } from '@cratis/scene.model';
|
|
2
|
+
import { type DescriptorCatalog } from '@cratis/scene.engine';
|
|
3
|
+
export interface PlayScreen {
|
|
4
|
+
element: SceneElement;
|
|
5
|
+
configuration?: EffectiveConfiguration;
|
|
6
|
+
}
|
|
7
|
+
export declare function composePlayScreen(document: SceneDocument, catalog: DescriptorCatalog): PlayScreen;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { Theme } from '@cratis/scene.model';
|
|
2
2
|
import type { ScreenEditorRuntime } from './screenEditorRuntime';
|
|
3
|
-
export declare function profileTheme(runtime: Pick<ScreenEditorRuntime, 'bundles' | 'profile'>): Theme | undefined;
|
|
3
|
+
export declare function profileTheme(runtime: Pick<ScreenEditorRuntime, 'bundles' | 'profile'> & Partial<Pick<ScreenEditorRuntime, 'appearance'>>): Theme | undefined;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type DescriptorCatalog, type EffectiveIconCatalog, type PackageCatalog } from '@cratis/scene.engine';
|
|
2
2
|
import type { ComponentDescriptor, UiProfile } from '@cratis/scene.model';
|
|
3
3
|
import { type ComponentRegistry, type IconAdapterRegistry, type ScenePackageBundle } from '@cratis/scene.react';
|
|
4
|
+
import type { ScreenEditorAppearance } from './ScreenEditorAppearance';
|
|
4
5
|
export interface ScreenEditorRuntime {
|
|
5
6
|
id: number;
|
|
6
7
|
bundles: ScenePackageBundle[];
|
|
@@ -9,9 +10,10 @@ export interface ScreenEditorRuntime {
|
|
|
9
10
|
descriptors: ComponentDescriptor[];
|
|
10
11
|
catalog: DescriptorCatalog;
|
|
11
12
|
profile: UiProfile;
|
|
13
|
+
appearance?: ScreenEditorAppearance;
|
|
12
14
|
icons: EffectiveIconCatalog;
|
|
13
15
|
iconAdapters: IconAdapterRegistry;
|
|
14
16
|
isKnownComponent: (bareName: string) => boolean;
|
|
15
17
|
legacyTypeOf: (componentName: string) => string | undefined;
|
|
16
18
|
}
|
|
17
|
-
export declare function createScreenEditorRuntime(bundles: ScenePackageBundle[], profile: UiProfile): ScreenEditorRuntime;
|
|
19
|
+
export declare function createScreenEditorRuntime(bundles: ScenePackageBundle[], profile: UiProfile, appearance?: ScreenEditorAppearance): ScreenEditorRuntime;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ScenePackageBundle } from '@cratis/scene.react';
|
|
2
2
|
import type { PersistedUiProfile } from '../../UiProfile/PersistedUiProfile';
|
|
3
|
+
import type { ScreenEditorAppearance } from './ScreenEditorAppearance';
|
|
3
4
|
import { type ScreenEditorRuntime } from './screenEditorRuntime';
|
|
4
|
-
export declare function screenEditorRuntimeForProfile(applied?: PersistedUiProfile, bundles?: ScenePackageBundle[]): ScreenEditorRuntime;
|
|
5
|
+
export declare function screenEditorRuntimeForProfile(applied?: PersistedUiProfile, bundles?: ScenePackageBundle[], appearance?: ScreenEditorAppearance): ScreenEditorRuntime;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const designTimePointerEvents: readonly ['pointerdown', 'pointerup', 'mousedown', 'mouseup', 'click', 'dblclick'];
|
|
2
|
+
export declare const elementHitSelector = "[data-scene-id], [data-studio-element], [data-studio-placeholder-for]";
|
|
3
|
+
export interface DesignTimePointerDecision {
|
|
4
|
+
select: boolean;
|
|
5
|
+
swallow: boolean;
|
|
6
|
+
cancelDefault: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function decideDesignTimePointer(type: string, target: EventTarget | null, button?: number): DesignTimePointerDecision;
|
|
9
|
+
export declare function elementIdAt(target: EventTarget | null): string | undefined;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type MouseEvent, type ReactNode } from 'react';
|
|
2
|
+
import type { SceneDocument } from '@cratis/scene.model';
|
|
3
|
+
import type { ScreenEditorRuntime } from '../Runtime/screenEditorRuntime';
|
|
4
|
+
import type { ViewportSize } from '../Viewport/ViewportSize';
|
|
5
|
+
export interface ScreenThumbnailProps {
|
|
6
|
+
document: SceneDocument;
|
|
7
|
+
runtime: ScreenEditorRuntime;
|
|
8
|
+
windowSize?: ViewportSize;
|
|
9
|
+
width?: number;
|
|
10
|
+
title?: string;
|
|
11
|
+
openTitle?: string;
|
|
12
|
+
onClick?: (event: MouseEvent<HTMLElement>) => void;
|
|
13
|
+
placeholder?: ReactNode;
|
|
14
|
+
}
|
|
15
|
+
export declare const ScreenThumbnail: ({ document, runtime, windowSize, width, title, openTitle, onClick, placeholder }: ScreenThumbnailProps) => import("react").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ViewportSize } from '../Viewport/ViewportSize';
|
|
2
|
+
export interface ThumbnailGeometry {
|
|
3
|
+
canvasWidth: number;
|
|
4
|
+
canvasHeight: number;
|
|
5
|
+
width: number;
|
|
6
|
+
bodyHeight: number;
|
|
7
|
+
scale: number;
|
|
8
|
+
}
|
|
9
|
+
export declare const thumbnailWidth = 240;
|
|
10
|
+
export declare const thumbnailMaxBodyHeight = 112;
|
|
11
|
+
export declare function thumbnailGeometry(windowSize: ViewportSize | undefined, width?: number, maxBodyHeight?: number): ThumbnailGeometry;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ViewportSize } from './ViewportSize';
|
|
2
|
+
export interface WindowSizeStorage {
|
|
3
|
+
getItem(key: string): string | null;
|
|
4
|
+
setItem(key: string, value: string): void;
|
|
5
|
+
}
|
|
6
|
+
export interface WindowSizeMemory {
|
|
7
|
+
read(screen: string): ViewportSize | undefined;
|
|
8
|
+
write(screen: string, size: ViewportSize): void;
|
|
9
|
+
readLastUsed(): ViewportSize | undefined;
|
|
10
|
+
}
|
|
11
|
+
export declare const browserWindowSizeStorage: () => WindowSizeStorage | undefined;
|
|
12
|
+
export declare function createWindowSizeMemory(storage?: WindowSizeStorage | undefined): WindowSizeMemory;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ViewportSize } from './ViewportSize';
|
|
2
|
+
export declare function defaultWindowSize(available: ViewportSize): ViewportSize;
|
|
3
|
+
export declare function isLegacyDefaultWindow(size: ViewportSize | undefined): boolean;
|
|
4
|
+
export interface WindowSizeCandidates {
|
|
5
|
+
remembered?: ViewportSize;
|
|
6
|
+
saved?: ViewportSize;
|
|
7
|
+
lastUsed?: ViewportSize;
|
|
8
|
+
}
|
|
9
|
+
export declare function resolveInitialWindowSize(candidates: WindowSizeCandidates, available: ViewportSize): ViewportSize;
|
|
10
|
+
export declare function fitWindowSize(size: ViewportSize, available: ViewportSize): ViewportSize;
|
|
@@ -6,9 +6,17 @@ export * from './Host/ScreenEditorWindow';
|
|
|
6
6
|
export * from './Host/ScreenEditorController';
|
|
7
7
|
export * from './Host/ScreenEditorHost';
|
|
8
8
|
export * from './Host/ScreenEditorFileUpload';
|
|
9
|
+
export * from './Host/ScreenEditorControlProviders';
|
|
9
10
|
export * from './Host/createScreenEditorEnvironment';
|
|
10
11
|
export * from './Runtime/screenEditorRuntime';
|
|
11
12
|
export * from './Runtime/screenEditorRuntimeForProfile';
|
|
13
|
+
export * from './Runtime/ScreenEditorAppearance';
|
|
14
|
+
export * from './Play/PlayScreen';
|
|
15
|
+
export * from './Thumbnail/ScreenThumbnail';
|
|
16
|
+
export * from './Thumbnail/readThumbnailDocument';
|
|
17
|
+
export * from './Thumbnail/thumbnailGeometry';
|
|
18
|
+
export * from './Viewport/windowSizeMemory';
|
|
19
|
+
export * from './Viewport/windowSizing';
|
|
12
20
|
export * from './Inspector/ScreenEditorStrings';
|
|
13
21
|
export * from './Defaults/defaultScreenEditorStrings';
|
|
14
22
|
export * from './PropertyEditors/Json/JsonPropertyField';
|