@gtsx/studio 0.0.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 (91) hide show
  1. package/LICENSE +21 -0
  2. package/dist/case-grid-layout.d.ts +6 -0
  3. package/dist/case-grid-layout.d.ts.map +1 -0
  4. package/dist/chunks/client-entry-6rzfPqgF.js +3973 -0
  5. package/dist/client-entry.d.ts +5 -0
  6. package/dist/client-entry.d.ts.map +1 -0
  7. package/dist/client.d.ts +200 -0
  8. package/dist/client.d.ts.map +1 -0
  9. package/dist/client.js +3 -0
  10. package/dist/components/BufferedPreviewIframe.g.d.ts +30 -0
  11. package/dist/components/BufferedPreviewIframe.g.d.ts.map +1 -0
  12. package/dist/components/ComponentBoundsHitTarget.g.d.ts +24 -0
  13. package/dist/components/ComponentBoundsHitTarget.g.d.ts.map +1 -0
  14. package/dist/components/ComponentCard.g.d.ts +29 -0
  15. package/dist/components/ComponentCard.g.d.ts.map +1 -0
  16. package/dist/components/FileGroupLink.g.d.ts +54 -0
  17. package/dist/components/FileGroupLink.g.d.ts.map +1 -0
  18. package/dist/components/LazyPreviewFrame.g.d.ts +58 -0
  19. package/dist/components/LazyPreviewFrame.g.d.ts.map +1 -0
  20. package/dist/components/PreviewCaseSheet.g.d.ts +51 -0
  21. package/dist/components/PreviewCaseSheet.g.d.ts.map +1 -0
  22. package/dist/components/PreviewError.g.d.ts +27 -0
  23. package/dist/components/PreviewError.g.d.ts.map +1 -0
  24. package/dist/components/PreviewMessage.g.d.ts +29 -0
  25. package/dist/components/PreviewMessage.g.d.ts.map +1 -0
  26. package/dist/components/SelectedBoundaryOutline.g.d.ts +21 -0
  27. package/dist/components/SelectedBoundaryOutline.g.d.ts.map +1 -0
  28. package/dist/components/SidebarComponentPreview.g.d.ts +70 -0
  29. package/dist/components/SidebarComponentPreview.g.d.ts.map +1 -0
  30. package/dist/components/StudioComponentCardSlot.d.ts +26 -0
  31. package/dist/components/StudioComponentCardSlot.d.ts.map +1 -0
  32. package/dist/components/StudioEmptyState.g.d.ts +19 -0
  33. package/dist/components/StudioEmptyState.g.d.ts.map +1 -0
  34. package/dist/components/StudioPreviewIframe.d.ts +14 -0
  35. package/dist/components/StudioPreviewIframe.d.ts.map +1 -0
  36. package/dist/components/StudioShell.d.ts +10 -0
  37. package/dist/components/StudioShell.d.ts.map +1 -0
  38. package/dist/components/StudioWorkspaceView.g.d.ts +119 -0
  39. package/dist/components/StudioWorkspaceView.g.d.ts.map +1 -0
  40. package/dist/components/ViewportPresetTabs.g.d.ts +24 -0
  41. package/dist/components/ViewportPresetTabs.g.d.ts.map +1 -0
  42. package/dist/index.d.ts +26 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +3 -0
  45. package/dist/manifest-server.d.ts +8 -0
  46. package/dist/manifest-server.d.ts.map +1 -0
  47. package/dist/manifest-server.js +20 -0
  48. package/dist/manifest.d.ts +52 -0
  49. package/dist/manifest.d.ts.map +1 -0
  50. package/dist/manifest.js +58 -0
  51. package/dist/preview-cache-indexeddb.d.ts +6 -0
  52. package/dist/preview-cache-indexeddb.d.ts.map +1 -0
  53. package/dist/preview-frame-layout.d.ts +23 -0
  54. package/dist/preview-frame-layout.d.ts.map +1 -0
  55. package/dist/preview-frame-slot.d.ts +6 -0
  56. package/dist/preview-frame-slot.d.ts.map +1 -0
  57. package/dist/preview-geometry-cache-store.d.ts +37 -0
  58. package/dist/preview-geometry-cache-store.d.ts.map +1 -0
  59. package/dist/preview-iframe-pool.d.ts +86 -0
  60. package/dist/preview-iframe-pool.d.ts.map +1 -0
  61. package/dist/preview-lazy-loading.d.ts +30 -0
  62. package/dist/preview-lazy-loading.d.ts.map +1 -0
  63. package/dist/preview-render-queue.d.ts +54 -0
  64. package/dist/preview-render-queue.d.ts.map +1 -0
  65. package/dist/preview-render-session-store.d.ts +17 -0
  66. package/dist/preview-render-session-store.d.ts.map +1 -0
  67. package/dist/studio-canvas-geometry.d.ts +19 -0
  68. package/dist/studio-canvas-geometry.d.ts.map +1 -0
  69. package/dist/studio-canvas-transform-event.d.ts +4 -0
  70. package/dist/studio-canvas-transform-event.d.ts.map +1 -0
  71. package/dist/studio-component-preview-frame-states.d.ts +6 -0
  72. package/dist/studio-component-preview-frame-states.d.ts.map +1 -0
  73. package/dist/studio-preview-message-flush.d.ts +14 -0
  74. package/dist/studio-preview-message-flush.d.ts.map +1 -0
  75. package/dist/studio-preview-render-completion-source.d.ts +12 -0
  76. package/dist/studio-preview-render-completion-source.d.ts.map +1 -0
  77. package/dist/studio-preview-render-observation.d.ts +43 -0
  78. package/dist/studio-preview-render-observation.d.ts.map +1 -0
  79. package/dist/studio-preview-render-plan.d.ts +40 -0
  80. package/dist/studio-preview-render-plan.d.ts.map +1 -0
  81. package/dist/studio-preview-render-request-clock.d.ts +24 -0
  82. package/dist/studio-preview-render-request-clock.d.ts.map +1 -0
  83. package/dist/studio-preview-render-request-policy.d.ts +19 -0
  84. package/dist/studio-preview-render-request-policy.d.ts.map +1 -0
  85. package/dist/use-studio-canvas-controller.d.ts +40 -0
  86. package/dist/use-studio-canvas-controller.d.ts.map +1 -0
  87. package/dist/use-studio-canvas-layout.d.ts +28 -0
  88. package/dist/use-studio-canvas-layout.d.ts.map +1 -0
  89. package/dist/use-studio-preview-render-scheduler.d.ts +32 -0
  90. package/dist/use-studio-preview-render-scheduler.d.ts.map +1 -0
  91. package/package.json +70 -0
@@ -0,0 +1,86 @@
1
+ import React from "react";
2
+ import type { StudioPreviewFrameSlot } from "./preview-frame-slot";
3
+ export type StudioPreviewIframeBorrowOrigin = "pool" | "new";
4
+ export type StudioPreviewIframeBorrowInput = {
5
+ onPreviewFrameMount?: (sessionId: string, frame: HTMLIFrameElement | null, state?: StudioPreviewIframeMountState) => void;
6
+ size: {
7
+ width: number | string;
8
+ height: number;
9
+ };
10
+ slot: StudioPreviewFrameSlot;
11
+ };
12
+ export type StudioPreviewIframeMountState = {
13
+ retainedRender?: boolean;
14
+ };
15
+ export type StudioPreviewIframeBorrowLease = {
16
+ origin: StudioPreviewIframeBorrowOrigin;
17
+ update: (input: StudioPreviewIframeBorrowInput) => void;
18
+ release: () => void;
19
+ };
20
+ export type StudioPooledPreviewIframeProps = StudioPreviewIframeBorrowInput & {
21
+ onBorrowOriginChange?: (origin: StudioPreviewIframeBorrowOrigin | null) => void;
22
+ };
23
+ export type StudioPreviewIframePoolBorrowCandidate = {
24
+ lastRenderedSessionId?: string;
25
+ owner?: unknown;
26
+ poolUrl: string;
27
+ ready: boolean;
28
+ };
29
+ type StudioPreviewIframePoolContextValue = {
30
+ borrow(container: HTMLElement, input: StudioPreviewIframeBorrowInput): StudioPreviewIframeBorrowLease;
31
+ };
32
+ export type StudioPreviewIframePoolPostRenderOptions = {
33
+ force?: boolean;
34
+ redelivery?: boolean;
35
+ };
36
+ type StudioPreviewIframePoolProviderProps = {
37
+ children: React.ReactNode;
38
+ debug?: boolean;
39
+ maximumIdleFrames?: number;
40
+ minimumIdleReserveFrames?: number;
41
+ maximumRetainedFrames?: number;
42
+ poolUrl: string;
43
+ };
44
+ export declare function StudioPreviewIframePoolProvider(props: StudioPreviewIframePoolProviderProps): import("react/jsx-runtime").JSX.Element;
45
+ export declare function StudioPooledPreviewIframe(props: StudioPooledPreviewIframeProps): import("react/jsx-runtime").JSX.Element | null;
46
+ export declare function useStudioPreviewIframePool(): StudioPreviewIframePoolContextValue | null;
47
+ export declare function studioPreviewIframeBorrowKey(input: StudioPreviewIframeBorrowInput): string;
48
+ export declare function selectStudioPreviewIframePoolEntryForBorrow<Entry extends StudioPreviewIframePoolBorrowCandidate>(entries: readonly Entry[], input: {
49
+ maximumRetainedFrames: number;
50
+ poolUrl: string;
51
+ sessionId: string;
52
+ }): Entry | undefined;
53
+ type StudioPreviewIframePoolRect = {
54
+ bottom: number;
55
+ height: number;
56
+ left: number;
57
+ right: number;
58
+ top: number;
59
+ width: number;
60
+ };
61
+ export type StudioPreviewIframePoolPlacement = {
62
+ clipPath: string;
63
+ height: string;
64
+ transform: string;
65
+ visibility: "hidden" | "visible";
66
+ width: string;
67
+ };
68
+ export declare function studioPreviewIframePoolPlacementForAnchor(input: {
69
+ anchorRect: StudioPreviewIframePoolRect;
70
+ clipRect: StudioPreviewIframePoolRect;
71
+ layoutSize: {
72
+ width: number | string;
73
+ height: number | string;
74
+ };
75
+ }): StudioPreviewIframePoolPlacement;
76
+ export declare function studioPreviewIframePendingRenderPostKey(input: StudioPreviewIframeBorrowInput): string;
77
+ export declare function studioPreviewIframePoolEntryNeedsPendingRenderPost(entry: {
78
+ lastPostedRenderKey?: string;
79
+ }, renderKey: string, options?: StudioPreviewIframePoolPostRenderOptions): boolean;
80
+ export declare function studioPreviewIframePoolNextPendingRenderDeliveryAttemptCount(entry: {
81
+ lastPostedRenderKey?: string;
82
+ pendingRenderDeliveryAttemptCount?: number;
83
+ }, renderKey: string): number;
84
+ export declare function studioPreviewIframeBorrowInputNeedsRender(previousInput: StudioPreviewIframeBorrowInput | undefined, nextInput: StudioPreviewIframeBorrowInput): boolean;
85
+ export {};
86
+ //# sourceMappingURL=preview-iframe-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-iframe-pool.d.ts","sourceRoot":"","sources":["../src/preview-iframe-pool.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ export declare const studioPreviewRenderBufferMargin = 3200;
2
+ export type StudioViewportRect = {
3
+ bottom: number;
4
+ left: number;
5
+ right: number;
6
+ top: number;
7
+ };
8
+ export type StudioCanvasPreviewVisibilityItem = {
9
+ rect: StudioViewportRect;
10
+ sessionIds: readonly string[];
11
+ };
12
+ export type StudioCanvasPreviewVisibilityInput = {
13
+ canvas: {
14
+ x: number;
15
+ y: number;
16
+ scale: number;
17
+ };
18
+ currentSessionIds?: ReadonlySet<string>;
19
+ items: readonly StudioCanvasPreviewVisibilityItem[];
20
+ viewport: StudioViewportRect;
21
+ };
22
+ export declare function visibleStudioPreviewSessionIds(input: StudioCanvasPreviewVisibilityInput): Set<string>;
23
+ export declare function shouldRenderStudioPreview(_currentlyRendered: boolean, rect: StudioViewportRect, viewport: StudioViewportRect): boolean;
24
+ export declare function studioCanvasRectToViewportRect(canvas: {
25
+ x: number;
26
+ y: number;
27
+ scale: number;
28
+ }, rect: StudioViewportRect): StudioViewportRect;
29
+ export declare function isRectNearViewport(rect: StudioViewportRect, viewport: StudioViewportRect, margin: number): boolean;
30
+ //# sourceMappingURL=preview-lazy-loading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-lazy-loading.d.ts","sourceRoot":"","sources":["../src/preview-lazy-loading.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,+BAA+B,OAAO,CAAA;AAEnD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,iCAAiC,GAAG;IAC9C,IAAI,EAAE,kBAAkB,CAAA;IACxB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,kCAAkC,GAAG;IAC/C,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACvC,KAAK,EAAE,SAAS,iCAAiC,EAAE,CAAA;IACnD,QAAQ,EAAE,kBAAkB,CAAA;CAC7B,CAAA;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,kCAAkC,GAAG,GAAG,CAAC,MAAM,CAAC,CAcrG;AAED,wBAAgB,yBAAyB,CACvC,kBAAkB,EAAE,OAAO,EAC3B,IAAI,EAAE,kBAAkB,EACxB,QAAQ,EAAE,kBAAkB,GAC3B,OAAO,CAET;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAC/C,IAAI,EAAE,kBAAkB,GACvB,kBAAkB,CAOpB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAOlH"}
@@ -0,0 +1,54 @@
1
+ import { type StudioCanvasPreviewVisibilityItem, type StudioViewportRect } from "./preview-lazy-loading";
2
+ export declare const defaultStudioPreviewRenderQueueMaximumConcurrentRenderTasks = 24;
3
+ export declare const defaultStudioPreviewRenderQueueMaximumConcurrentRenderTasksDuringCanvasMovement = 4;
4
+ export declare const defaultStudioPreviewRenderQueueMinimumVisibleRenderTasksDuringCanvasMovement = 4;
5
+ export declare const defaultStudioPreviewRenderQueueMaximumRenderTaskCount = 8192;
6
+ export declare const defaultStudioPreviewRenderQueueMaximumMountedPreviewSessions = 32;
7
+ export declare const defaultStudioPreviewRenderQueueActiveRenderTimeoutMilliseconds = 5000;
8
+ export declare const defaultStudioPreviewRenderQueueRenderThrottleMilliseconds = 100;
9
+ export declare const defaultStudioPreviewRenderQueueRenderDebounceMilliseconds = 120;
10
+ export declare const defaultStudioPreviewRenderQueueBufferRenderDelayMilliseconds = 1000;
11
+ export type StudioPreviewRenderQueueOptions = {
12
+ /** How long an unfinished mounted preview is treated as an in-flight render. */
13
+ activeRenderTimeoutMilliseconds?: number;
14
+ bufferRenderDelayMilliseconds?: number;
15
+ /** The maximum number of active or newly dispatched iframe render tasks in one queue pass. */
16
+ maximumConcurrentRenderTasks?: number;
17
+ /** The maximum number of active or newly dispatched iframe render tasks while the canvas is actively moving. */
18
+ maximumConcurrentRenderTasksDuringCanvasMovement?: number;
19
+ /** Safety cap for queued render candidates; keep this large under normal use. */
20
+ maximumRenderTaskCount?: number;
21
+ /** The maximum number of mounted preview sessions retained by the canvas. */
22
+ maximumMountedPreviewSessions?: number;
23
+ /** The visible viewport's render-response floor while the canvas is actively moving. */
24
+ minimumVisibleRenderTasksDuringCanvasMovement?: number;
25
+ /** The offscreen area where previews may be mounted and rendered. */
26
+ renderBufferMargin?: number;
27
+ renderDebounceMilliseconds?: number;
28
+ renderThrottleMilliseconds?: number;
29
+ };
30
+ export type StudioPreviewRenderQueueRunOptions = StudioPreviewRenderQueueOptions & {
31
+ includeBufferedRenderTasks?: boolean;
32
+ minimumVisibleRenderTasks?: number;
33
+ };
34
+ export type StudioCanvasMovement = {
35
+ x: number;
36
+ y: number;
37
+ };
38
+ export type StudioPreviewRenderQueueInput = StudioPreviewRenderQueueRunOptions & {
39
+ activeSessionIds?: ReadonlySet<string>;
40
+ canvas: {
41
+ x: number;
42
+ y: number;
43
+ scale: number;
44
+ };
45
+ canvasMovement?: StudioCanvasMovement;
46
+ completedSessionIds?: ReadonlySet<string>;
47
+ currentSessionIds?: ReadonlySet<string>;
48
+ items: readonly StudioCanvasPreviewVisibilityItem[];
49
+ viewport: StudioViewportRect;
50
+ };
51
+ export declare function queuedStudioPreviewSessionIds(input: StudioPreviewRenderQueueInput): Set<string>;
52
+ export declare function visibleQueuedStudioPreviewSessionIds(input: StudioPreviewRenderQueueInput, queuedSessionIds?: ReadonlySet<string>): Set<string>;
53
+ export declare function studioPreviewRenderQueueOptionsFromParams(params: URLSearchParams): StudioPreviewRenderQueueOptions;
54
+ //# sourceMappingURL=preview-render-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-render-queue.d.ts","sourceRoot":"","sources":["../src/preview-render-queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,iCAAiC,EACtC,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAA;AAE/B,eAAO,MAAM,2DAA2D,KAAK,CAAA;AAC7E,eAAO,MAAM,+EAA+E,IAAI,CAAA;AAChG,eAAO,MAAM,4EAA4E,IAAI,CAAA;AAC7F,eAAO,MAAM,qDAAqD,OAAO,CAAA;AACzE,eAAO,MAAM,4DAA4D,KAAK,CAAA;AAC9E,eAAO,MAAM,8DAA8D,OAAO,CAAA;AAClF,eAAO,MAAM,yDAAyD,MAAM,CAAA;AAC5E,eAAO,MAAM,yDAAyD,MAAM,CAAA;AAC5E,eAAO,MAAM,4DAA4D,OAAO,CAAA;AAEhF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,gFAAgF;IAChF,+BAA+B,CAAC,EAAE,MAAM,CAAA;IACxC,6BAA6B,CAAC,EAAE,MAAM,CAAA;IACtC,8FAA8F;IAC9F,4BAA4B,CAAC,EAAE,MAAM,CAAA;IACrC,gHAAgH;IAChH,gDAAgD,CAAC,EAAE,MAAM,CAAA;IACzD,iFAAiF;IACjF,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,6EAA6E;IAC7E,6BAA6B,CAAC,EAAE,MAAM,CAAA;IACtC,wFAAwF;IACxF,6CAA6C,CAAC,EAAE,MAAM,CAAA;IACtD,qEAAqE;IACrE,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,0BAA0B,CAAC,EAAE,MAAM,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,kCAAkC,GAAG,+BAA+B,GAAG;IACjF,0BAA0B,CAAC,EAAE,OAAO,CAAA;IACpC,yBAAyB,CAAC,EAAE,MAAM,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG,kCAAkC,GAAG;IAC/E,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACtC,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C,cAAc,CAAC,EAAE,oBAAoB,CAAA;IACrC,mBAAmB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACzC,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACvC,KAAK,EAAE,SAAS,iCAAiC,EAAE,CAAA;IACnD,QAAQ,EAAE,kBAAkB,CAAA;CAC7B,CAAA;AAiBD,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,6BAA6B,GAAG,GAAG,CAAC,MAAM,CAAC,CAkD/F;AAqBD,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,6BAA6B,EACpC,gBAAgB,GAAE,WAAW,CAAC,MAAM,CAAwC,GAC3E,GAAG,CAAC,MAAM,CAAC,CAQb;AAED,wBAAgB,yCAAyC,CAAC,MAAM,EAAE,eAAe,GAAG,+BAA+B,CAmFlH"}
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+ export type StudioPreviewRenderSessionStore = {
3
+ getSessionIds: () => ReadonlySet<string>;
4
+ hasSessionId: (sessionId: string) => boolean;
5
+ isVisibleSessionId: (sessionId: string) => boolean;
6
+ setSessionIds: (sessionIds: ReadonlySet<string>, visibleSessionIds?: ReadonlySet<string>) => boolean;
7
+ subscribeToRenderSession: (sessionId: string, listener: () => void) => () => void;
8
+ subscribeToVisibleSession: (sessionId: string, listener: () => void) => () => void;
9
+ };
10
+ export declare function createStudioPreviewRenderSessionStore(initialSessionIds?: ReadonlySet<string>): StudioPreviewRenderSessionStore;
11
+ export declare function StudioPreviewRenderSessionStoreProvider(props: {
12
+ children: React.ReactNode;
13
+ store: StudioPreviewRenderSessionStore;
14
+ }): import("react/jsx-runtime").JSX.Element;
15
+ export declare function useStudioPreviewIsVisibleSession(sessionId: string, enabled?: boolean): boolean;
16
+ export declare function useStudioPreviewShouldRenderSession(sessionId: string): boolean;
17
+ //# sourceMappingURL=preview-render-session-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-render-session-store.d.ts","sourceRoot":"","sources":["../src/preview-render-session-store.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,MAAM,+BAA+B,GAAG;IAC5C,aAAa,EAAE,MAAM,WAAW,CAAC,MAAM,CAAC,CAAA;IACxC,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;IAC5C,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;IAClD,aAAa,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,OAAO,CAAA;IACpG,wBAAwB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAA;IACjF,yBAAyB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAA;CACnF,CAAA;AAID,wBAAgB,qCAAqC,CACnD,iBAAiB,GAAE,WAAW,CAAC,MAAM,CAAa,GACjD,+BAA+B,CA6DjC;AAsBD,wBAAgB,uCAAuC,CAAC,KAAK,EAAE;IAC7D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,KAAK,EAAE,+BAA+B,CAAA;CACvC,2CAMA;AAED,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,UAAO,GAAG,OAAO,CAW3F;AAED,wBAAgB,mCAAmC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAQ9E"}
@@ -0,0 +1,19 @@
1
+ import { type StudioCanvasScreenRect, type StudioCanvasTransform, type StudioColumnLayout, type StudioColumnLayoutMeasurement, type StudioPreviewCacheEntry, type StudioPreviewFrameState, type StudioViewportPreset, type StudioWorkspaceState } from "./client";
2
+ import { type StudioCanvasPreviewVisibilityItem } from "./preview-lazy-loading";
3
+ import type { StudioPreviewGeometryCacheStore } from "./preview-geometry-cache-store";
4
+ export declare function domRectToStudioCanvasScreenRect(rect: DOMRect): StudioCanvasScreenRect;
5
+ export declare function domRectToLocalStudioCanvasScreenRect(rect: DOMRect, originRect: DOMRect, scale: number): StudioCanvasScreenRect;
6
+ export declare function studioCanvasTransformStyle(canvas: StudioCanvasTransform): string;
7
+ export declare function studioComponentPathForColumn(workspace: StudioWorkspaceState, columnIndex: number, coordinate: string): string[];
8
+ export declare function studioPathKey(path: string[]): string;
9
+ export declare function columnCardElementKey(columnIndex: number, coordinate: string): string;
10
+ export declare function studioWorkspaceLayoutMeasurementKey(workspace: StudioWorkspaceState, viewportPreset: StudioViewportPreset, frameStates: Record<string, StudioPreviewFrameState> | undefined, previewCache: Record<string, StudioPreviewCacheEntry> | undefined): string;
11
+ export declare function studioCanvasCasePreviewScale(workspace: StudioWorkspaceState, viewportPreset: StudioViewportPreset, frameStates: Record<string, StudioPreviewFrameState> | undefined, previewCache: Record<string, StudioPreviewCacheEntry> | undefined, previewGeometryStore?: StudioPreviewGeometryCacheStore): number;
12
+ export declare function studioPreviewVisibilityItems(workspace: StudioWorkspaceState, viewportPreset: StudioViewportPreset, columnLayoutByIndex: Record<number, StudioColumnLayout>, columnMeasurementsByIndex: Record<number, StudioColumnLayoutMeasurement>, options?: {
13
+ frameStates?: Record<string, StudioPreviewFrameState>;
14
+ previewCache?: Record<string, StudioPreviewCacheEntry>;
15
+ previewGeometryStore?: StudioPreviewGeometryCacheStore;
16
+ }): StudioCanvasPreviewVisibilityItem[];
17
+ export declare function sameColumnLayoutRecord(left: Record<number, StudioColumnLayout>, right: Record<number, StudioColumnLayout>): boolean;
18
+ export declare function sameColumnMeasurementRecord(left: Record<number, StudioColumnLayoutMeasurement>, right: Record<number, StudioColumnLayoutMeasurement>): boolean;
19
+ //# sourceMappingURL=studio-canvas-geometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-canvas-geometry.d.ts","sourceRoot":"","sources":["../src/studio-canvas-geometry.ts"],"names":[],"mappings":"AAIA,OAAO,EAQL,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAE1B,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EAC1B,MAAM,UAAU,CAAA;AAQjB,OAAO,EAAE,KAAK,iCAAiC,EAA2B,MAAM,wBAAwB,CAAA;AAExG,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAA;AAGrF,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,OAAO,GAAG,sBAAsB,CAOrF;AAED,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,OAAO,EACnB,KAAK,EAAE,MAAM,GACZ,sBAAsB,CAOxB;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAEhF;AAED,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,oBAAoB,EAC/B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,MAAM,EAAE,CAEV;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAEpD;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,oBAAoB,EAC/B,cAAc,EAAE,oBAAoB,EACpC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,SAAS,EAChE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,SAAS,GAChE,MAAM,CAqBR;AAED,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,oBAAoB,EAC/B,cAAc,EAAE,oBAAoB,EACpC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,SAAS,EAChE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,SAAS,EACjE,oBAAoB,CAAC,EAAE,+BAA+B,GACrD,MAAM,CAmBR;AAED,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,oBAAoB,EAC/B,cAAc,EAAE,oBAAoB,EACpC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EACvD,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,EACxE,OAAO,GAAE;IACP,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;IACtD,oBAAoB,CAAC,EAAE,+BAA+B,CAAA;CAClD,GACL,iCAAiC,EAAE,CAwDrC;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,OAAO,CAUnI;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,EACnD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,GACnD,OAAO,CAeT"}
@@ -0,0 +1,4 @@
1
+ import type { StudioCanvasTransform } from "./client";
2
+ export declare const studioCanvasTransformChangedEventType = "gtsx:studio-canvas-transform-changed";
3
+ export declare function dispatchStudioCanvasTransformChangedEvent(canvas: StudioCanvasTransform): void;
4
+ //# sourceMappingURL=studio-canvas-transform-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-canvas-transform-event.d.ts","sourceRoot":"","sources":["../src/studio-canvas-transform-event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAErD,eAAO,MAAM,qCAAqC,yCAAyC,CAAA;AAE3F,wBAAgB,yCAAyC,CAAC,MAAM,EAAE,qBAAqB,QAGtF"}
@@ -0,0 +1,6 @@
1
+ import { type StudioPreviewCacheEntry, type StudioPreviewFrameState, type StudioViewportPreset } from "./client";
2
+ import type { StudioManifestComponent } from "./manifest";
3
+ import type { StudioPreviewGeometryCacheStore } from "./preview-geometry-cache-store";
4
+ export declare function studioComponentCaseLayoutFrameStates(component: StudioManifestComponent, viewportPreset: StudioViewportPreset, frameStates: Record<string, StudioPreviewFrameState> | undefined, previewCache: Record<string, StudioPreviewCacheEntry> | undefined, previewGeometryStore?: StudioPreviewGeometryCacheStore): Record<string, StudioPreviewFrameState | undefined>;
5
+ export declare function studioComponentCaseFrameStates(component: StudioManifestComponent, viewportPreset: StudioViewportPreset, frameStates: Record<string, StudioPreviewFrameState> | undefined, previewCache: Record<string, StudioPreviewCacheEntry> | undefined, previewGeometryStore?: StudioPreviewGeometryCacheStore): Record<string, StudioPreviewFrameState | undefined>;
6
+ //# sourceMappingURL=studio-component-preview-frame-states.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-component-preview-frame-states.d.ts","sourceRoot":"","sources":["../src/studio-component-preview-frame-states.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EAC1B,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAA;AAErF,wBAAgB,oCAAoC,CAClD,SAAS,EAAE,uBAAuB,EAClC,cAAc,EAAE,oBAAoB,EACpC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,SAAS,EAChE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,SAAS,EACjE,oBAAoB,CAAC,EAAE,+BAA+B,GACrD,MAAM,CAAC,MAAM,EAAE,uBAAuB,GAAG,SAAS,CAAC,CAarD;AAED,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,uBAAuB,EAClC,cAAc,EAAE,oBAAoB,EACpC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,SAAS,EAChE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,SAAS,EACjE,oBAAoB,CAAC,EAAE,+BAA+B,GACrD,MAAM,CAAC,MAAM,EAAE,uBAAuB,GAAG,SAAS,CAAC,CAarD"}
@@ -0,0 +1,14 @@
1
+ import type { GPreviewProtocolMessage } from "@gtsx/core";
2
+ import type { StudioPreviewFrameState } from "./client";
3
+ export type StudioPreviewMessageFlushItem = {
4
+ message: GPreviewProtocolMessage;
5
+ };
6
+ export type StudioPreviewMessageFlush<T extends StudioPreviewMessageFlushItem> = {
7
+ completionMessages: T[];
8
+ messagesToApply: T[];
9
+ };
10
+ export declare function createStudioPreviewMessageFlush<T extends StudioPreviewMessageFlushItem>(input: {
11
+ getFrameState: (sessionId: string) => StudioPreviewFrameState | undefined;
12
+ messages: readonly T[];
13
+ }): StudioPreviewMessageFlush<T>;
14
+ //# sourceMappingURL=studio-preview-message-flush.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-preview-message-flush.d.ts","sourceRoot":"","sources":["../src/studio-preview-message-flush.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAEvD,MAAM,MAAM,6BAA6B,GAAG;IAC1C,OAAO,EAAE,uBAAuB,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,yBAAyB,CAAC,CAAC,SAAS,6BAA6B,IAAI;IAC/E,kBAAkB,EAAE,CAAC,EAAE,CAAA;IACvB,eAAe,EAAE,CAAC,EAAE,CAAA;CACrB,CAAA;AAED,wBAAgB,+BAA+B,CAAC,CAAC,SAAS,6BAA6B,EAAE,KAAK,EAAE;IAC9F,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,uBAAuB,GAAG,SAAS,CAAA;IACzE,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAA;CACvB,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAwB/B"}
@@ -0,0 +1,12 @@
1
+ import type { StudioPreviewFrameState } from "./client";
2
+ import type { StudioPreviewGeometryCacheStore } from "./preview-geometry-cache-store";
3
+ export type StudioPreviewRenderCompletionSource = {
4
+ completedSessionIdsFor: (sessionIds: ReadonlySet<string>) => Set<string>;
5
+ };
6
+ export declare function createStudioPreviewRenderCompletionSource(input: {
7
+ frameStates: Record<string, StudioPreviewFrameState> | undefined;
8
+ previewGeometryStore: StudioPreviewGeometryCacheStore | undefined;
9
+ }): StudioPreviewRenderCompletionSource;
10
+ export declare function createStudioPreviewRenderCompletionSourceFromFrameStates(frameStates: Record<string, StudioPreviewFrameState> | undefined): StudioPreviewRenderCompletionSource;
11
+ export declare function createStudioPreviewRenderCompletionSourceFromGeometryStore(previewGeometryStore: StudioPreviewGeometryCacheStore): StudioPreviewRenderCompletionSource;
12
+ //# sourceMappingURL=studio-preview-render-completion-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-preview-render-completion-source.d.ts","sourceRoot":"","sources":["../src/studio-preview-render-completion-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AACvD,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAA;AAErF,MAAM,MAAM,mCAAmC,GAAG;IAChD,sBAAsB,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAA;CACzE,CAAA;AAED,wBAAgB,yCAAyC,CAAC,KAAK,EAAE;IAC/D,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,SAAS,CAAA;IAChE,oBAAoB,EAAE,+BAA+B,GAAG,SAAS,CAAA;CAClE,GAAG,mCAAmC,CAGtC;AAED,wBAAgB,wDAAwD,CACtE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,SAAS,GAC/D,mCAAmC,CAQrC;AAED,wBAAgB,0DAA0D,CACxE,oBAAoB,EAAE,+BAA+B,GACpD,mCAAmC,CAMrC"}
@@ -0,0 +1,43 @@
1
+ export type StudioPreviewRenderQueueDebugObservationInput = {
2
+ newSessionIds?: readonly string[];
3
+ newVisibleSessionIds?: readonly string[];
4
+ nextSessionIds?: readonly string[];
5
+ renderBudget: "canvas-movement" | "normal";
6
+ renderScope: "buffer" | "visible";
7
+ visibleSessionIds?: readonly string[];
8
+ };
9
+ export type StudioPreviewTimingObservationInput = {
10
+ sessionId: string;
11
+ type: "gtsx:error" | "gtsx:ready";
12
+ };
13
+ export type StudioPreviewRenderObservationSnapshot = {
14
+ fullRender?: StudioPreviewFullRenderObservationSnapshot;
15
+ sequence: number;
16
+ scrollResponse?: StudioPreviewScrollResponseObservationSnapshot;
17
+ };
18
+ export type StudioPreviewScrollResponseObservationSnapshot = {
19
+ completedVisibleSessionCount: number;
20
+ firstVisibleCompletionMilliseconds?: number;
21
+ latestVisibleCompletionMilliseconds?: number;
22
+ pendingVisibleSessionCount: number;
23
+ startedAtMilliseconds: number;
24
+ visibleSessionCount: number;
25
+ };
26
+ export type StudioPreviewFullRenderObservationSnapshot = {
27
+ completedSessionCount: number;
28
+ firstCompletionMilliseconds?: number;
29
+ latestCompletionMilliseconds?: number;
30
+ pendingSessionCount: number;
31
+ renderCompletionsPerSecond?: number;
32
+ sessionCount: number;
33
+ startedAtMilliseconds: number;
34
+ };
35
+ export type StudioPreviewRenderObservation = {
36
+ observePreviewTiming: (input: StudioPreviewTimingObservationInput) => StudioPreviewRenderObservationSnapshot;
37
+ observeQueueRun: (input: StudioPreviewRenderQueueDebugObservationInput) => StudioPreviewRenderObservationSnapshot;
38
+ snapshot: () => StudioPreviewRenderObservationSnapshot;
39
+ };
40
+ export declare function createStudioPreviewRenderObservation(input: {
41
+ now: () => number;
42
+ }): StudioPreviewRenderObservation;
43
+ //# sourceMappingURL=studio-preview-render-observation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-preview-render-observation.d.ts","sourceRoot":"","sources":["../src/studio-preview-render-observation.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,6CAA6C,GAAG;IAC1D,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACxC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,YAAY,EAAE,iBAAiB,GAAG,QAAQ,CAAA;IAC1C,WAAW,EAAE,QAAQ,GAAG,SAAS,CAAA;IACjC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACtC,CAAA;AAED,MAAM,MAAM,mCAAmC,GAAG;IAChD,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,YAAY,GAAG,YAAY,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,sCAAsC,GAAG;IACnD,UAAU,CAAC,EAAE,0CAA0C,CAAA;IACvD,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,8CAA8C,CAAA;CAChE,CAAA;AAED,MAAM,MAAM,8CAA8C,GAAG;IAC3D,4BAA4B,EAAE,MAAM,CAAA;IACpC,kCAAkC,CAAC,EAAE,MAAM,CAAA;IAC3C,mCAAmC,CAAC,EAAE,MAAM,CAAA;IAC5C,0BAA0B,EAAE,MAAM,CAAA;IAClC,qBAAqB,EAAE,MAAM,CAAA;IAC7B,mBAAmB,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,0CAA0C,GAAG;IACvD,qBAAqB,EAAE,MAAM,CAAA;IAC7B,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,4BAA4B,CAAC,EAAE,MAAM,CAAA;IACrC,mBAAmB,EAAE,MAAM,CAAA;IAC3B,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,YAAY,EAAE,MAAM,CAAA;IACpB,qBAAqB,EAAE,MAAM,CAAA;CAC9B,CAAA;AAUD,MAAM,MAAM,8BAA8B,GAAG;IAC3C,oBAAoB,EAAE,CAAC,KAAK,EAAE,mCAAmC,KAAK,sCAAsC,CAAA;IAC5G,eAAe,EAAE,CAAC,KAAK,EAAE,6CAA6C,KAAK,sCAAsC,CAAA;IACjH,QAAQ,EAAE,MAAM,sCAAsC,CAAA;CACvD,CAAA;AAED,wBAAgB,oCAAoC,CAAC,KAAK,EAAE;IAC1D,GAAG,EAAE,MAAM,MAAM,CAAA;CAClB,GAAG,8BAA8B,CA+CjC"}
@@ -0,0 +1,40 @@
1
+ import { type StudioCanvasTransform, type StudioColumnLayout, type StudioColumnLayoutMeasurement, type StudioPreviewCacheEntry, type StudioPreviewFrameState, type StudioViewportPreset, type StudioWorkspaceState } from "./client";
2
+ import { type StudioCanvasPreviewVisibilityItem, type StudioViewportRect } from "./preview-lazy-loading";
3
+ import { type StudioCanvasMovement, type StudioPreviewRenderQueueRunOptions } from "./preview-render-queue";
4
+ import type { StudioPreviewGeometryCacheStore } from "./preview-geometry-cache-store";
5
+ export type StudioPreviewRenderPlanInput = {
6
+ activeRenderTimeoutMilliseconds?: number;
7
+ canvas: StudioCanvasTransform;
8
+ canvasMovement?: StudioCanvasMovement;
9
+ canvasViewportPreset: StudioViewportPreset;
10
+ columnLayoutByIndex: Record<number, StudioColumnLayout>;
11
+ columnMeasurementsByIndex: Record<number, StudioColumnLayoutMeasurement>;
12
+ completedSessionIds: ReadonlySet<string>;
13
+ currentSessionIds: ReadonlySet<string>;
14
+ mountedAtBySessionId: ReadonlyMap<string, number>;
15
+ previewCache?: Record<string, StudioPreviewCacheEntry>;
16
+ previewGeometryStore?: StudioPreviewGeometryCacheStore;
17
+ frameStates?: Record<string, StudioPreviewFrameState>;
18
+ queueOptions?: StudioPreviewRenderQueueRunOptions;
19
+ viewport: StudioViewportRect;
20
+ workspace: StudioWorkspaceState;
21
+ };
22
+ export type StudioPreviewRenderPlan = {
23
+ activeSessionIds: ReadonlySet<string>;
24
+ allVisibleSessionIds: ReadonlySet<string>;
25
+ completedSessionIds: ReadonlySet<string>;
26
+ hasIncompleteVisibleRenderTasks: boolean;
27
+ nextSessionIds: ReadonlySet<string>;
28
+ viewport: StudioViewportRect;
29
+ visibleSessionIds: ReadonlySet<string>;
30
+ visibilityItems: readonly StudioCanvasPreviewVisibilityItem[];
31
+ visibleRects: {
32
+ canvasRect: StudioViewportRect;
33
+ sessionId: string;
34
+ viewportRect: StudioViewportRect;
35
+ }[];
36
+ };
37
+ export declare function createStudioPreviewRenderPlan(input: StudioPreviewRenderPlanInput): StudioPreviewRenderPlan;
38
+ export declare function allVisibleStudioPreviewRenderPlanSessionIds(visibilityItems: readonly StudioCanvasPreviewVisibilityItem[], canvas: StudioCanvasTransform, viewport: StudioViewportRect): Set<string>;
39
+ export declare function studioPreviewRenderPlanHasIncompleteVisibleRenderTasks(visibleSessionIds: ReadonlySet<string>, completedSessionIds: ReadonlySet<string>): boolean;
40
+ //# sourceMappingURL=studio-preview-render-plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-preview-render-plan.d.ts","sourceRoot":"","sources":["../src/studio-preview-render-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EAC1B,MAAM,UAAU,CAAA;AACjB,OAAO,EAEL,KAAK,iCAAiC,EACtC,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,kCAAkC,EAExC,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAA;AAGrF,MAAM,MAAM,4BAA4B,GAAG;IACzC,+BAA+B,CAAC,EAAE,MAAM,CAAA;IACxC,MAAM,EAAE,qBAAqB,CAAA;IAC7B,cAAc,CAAC,EAAE,oBAAoB,CAAA;IACrC,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IACvD,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAA;IACxE,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACxC,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACtC,oBAAoB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;IACtD,oBAAoB,CAAC,EAAE,+BAA+B,CAAA;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;IACrD,YAAY,CAAC,EAAE,kCAAkC,CAAA;IACjD,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,SAAS,EAAE,oBAAoB,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACrC,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACzC,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACxC,+BAA+B,EAAE,OAAO,CAAA;IACxC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACnC,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACtC,eAAe,EAAE,SAAS,iCAAiC,EAAE,CAAA;IAC7D,YAAY,EAAE;QAAE,UAAU,EAAE,kBAAkB,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,kBAAkB,CAAA;KAAE,EAAE,CAAA;CACxG,CAAA;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,4BAA4B,GAAG,uBAAuB,CA8C1G;AAED,wBAAgB,2CAA2C,CACzD,eAAe,EAAE,SAAS,iCAAiC,EAAE,EAC7D,MAAM,EAAE,qBAAqB,EAC7B,QAAQ,EAAE,kBAAkB,GAC3B,GAAG,CAAC,MAAM,CAAC,CAUb;AAED,wBAAgB,sDAAsD,CACpE,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,EACtC,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,GACvC,OAAO,CAQT"}
@@ -0,0 +1,24 @@
1
+ import type { StudioCanvasTransform } from "./client";
2
+ import { type StudioPreviewRenderQueueOptions } from "./preview-render-queue";
3
+ import { type StudioPreviewRenderRequestPolicy, type StudioPreviewRenderSchedulerRunOptions } from "./studio-preview-render-request-policy";
4
+ export type StudioPreviewRenderRequestClock = {
5
+ dispose: () => void;
6
+ flushRenderRequest: (canvas?: StudioCanvasTransform, options?: StudioPreviewRenderSchedulerRunOptions) => void;
7
+ requestBufferedRender: (canvas?: StudioCanvasTransform) => void;
8
+ requestCanvasMovementRender: (canvas?: StudioCanvasTransform) => void;
9
+ requestRenderAfterPreviewCompletion: () => void;
10
+ };
11
+ export type StudioPreviewRenderRequestClockScheduler = {
12
+ cancelAnimationFrame: (id: number) => void;
13
+ clearTimeout: (id: number) => void;
14
+ now: () => number;
15
+ requestAnimationFrame: (callback: () => void) => number;
16
+ setTimeout: (callback: () => void, delayMilliseconds: number) => number;
17
+ };
18
+ export declare function createStudioPreviewRenderRequestClock(input: {
19
+ getCanvas: () => StudioCanvasTransform;
20
+ getRenderQueueOptions: () => StudioPreviewRenderQueueOptions | undefined;
21
+ runRenderRequest: (canvas: StudioCanvasTransform, requestPolicy: StudioPreviewRenderRequestPolicy) => boolean;
22
+ scheduler?: StudioPreviewRenderRequestClockScheduler;
23
+ }): StudioPreviewRenderRequestClock;
24
+ //# sourceMappingURL=studio-preview-render-request-clock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-preview-render-request-clock.d.ts","sourceRoot":"","sources":["../src/studio-preview-render-request-clock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AACrD,OAAO,EAKL,KAAK,+BAA+B,EACrC,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAML,KAAK,gCAAgC,EACrC,KAAK,sCAAsC,EAC5C,MAAM,wCAAwC,CAAA;AAE/C,MAAM,MAAM,+BAA+B,GAAG;IAC5C,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,kBAAkB,EAAE,CAAC,MAAM,CAAC,EAAE,qBAAqB,EAAE,OAAO,CAAC,EAAE,sCAAsC,KAAK,IAAI,CAAA;IAC9G,qBAAqB,EAAE,CAAC,MAAM,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAA;IAC/D,2BAA2B,EAAE,CAAC,MAAM,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAA;IACrE,mCAAmC,EAAE,MAAM,IAAI,CAAA;CAChD,CAAA;AAED,MAAM,MAAM,wCAAwC,GAAG;IACrD,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,GAAG,EAAE,MAAM,MAAM,CAAA;IACjB,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,CAAA;IACvD,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,iBAAiB,EAAE,MAAM,KAAK,MAAM,CAAA;CACxE,CAAA;AAED,wBAAgB,qCAAqC,CAAC,KAAK,EAAE;IAC3D,SAAS,EAAE,MAAM,qBAAqB,CAAA;IACtC,qBAAqB,EAAE,MAAM,+BAA+B,GAAG,SAAS,CAAA;IACxE,gBAAgB,EAAE,CAAC,MAAM,EAAE,qBAAqB,EAAE,aAAa,EAAE,gCAAgC,KAAK,OAAO,CAAA;IAC7G,SAAS,CAAC,EAAE,wCAAwC,CAAA;CACrD,GAAG,+BAA+B,CAuMlC"}
@@ -0,0 +1,19 @@
1
+ import { type StudioPreviewRenderQueueOptions, type StudioPreviewRenderQueueRunOptions } from "./preview-render-queue";
2
+ export type StudioPreviewRenderSchedulerRunOptions = {
3
+ includeBuffer?: boolean;
4
+ useCanvasMovementRenderTaskLimit?: boolean;
5
+ };
6
+ export type StudioPreviewRenderRequestPolicy = {
7
+ renderBudget: "canvas-movement" | "normal";
8
+ renderScope: "buffer" | "visible";
9
+ };
10
+ export declare const normalBufferedPreviewRenderRequestPolicy: StudioPreviewRenderRequestPolicy;
11
+ export declare const normalVisiblePreviewRenderRequestPolicy: StudioPreviewRenderRequestPolicy;
12
+ export declare const movingCanvasBufferedPreviewRenderRequestPolicy: StudioPreviewRenderRequestPolicy;
13
+ export declare function studioPreviewRenderQueueOptionsForRun(options: StudioPreviewRenderQueueOptions | undefined, runOptions: StudioPreviewRenderSchedulerRunOptions): StudioPreviewRenderQueueRunOptions | undefined;
14
+ export declare function studioPreviewRenderQueueOptionsForRequestPolicy(options: StudioPreviewRenderQueueOptions | undefined, requestPolicy: StudioPreviewRenderRequestPolicy): StudioPreviewRenderQueueRunOptions | undefined;
15
+ export declare function mergeStudioPreviewRenderSchedulerRunOptions(currentOptions: StudioPreviewRenderSchedulerRunOptions | null, nextOptions: StudioPreviewRenderSchedulerRunOptions): StudioPreviewRenderSchedulerRunOptions;
16
+ export declare function mergeStudioPreviewRenderRequestPolicies(currentPolicy: StudioPreviewRenderRequestPolicy | null, nextPolicy: StudioPreviewRenderRequestPolicy): StudioPreviewRenderRequestPolicy;
17
+ export declare function studioPreviewRenderRequestPolicyFromSchedulerRunOptions(options: StudioPreviewRenderSchedulerRunOptions): StudioPreviewRenderRequestPolicy;
18
+ export declare function studioPreviewRenderSchedulerRunOptionsFromRequestPolicy(requestPolicy: StudioPreviewRenderRequestPolicy): StudioPreviewRenderSchedulerRunOptions;
19
+ //# sourceMappingURL=studio-preview-render-request-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-preview-render-request-policy.d.ts","sourceRoot":"","sources":["../src/studio-preview-render-request-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,+BAA+B,EACpC,KAAK,kCAAkC,EACxC,MAAM,wBAAwB,CAAA;AAE/B,MAAM,MAAM,sCAAsC,GAAG;IACnD,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,gCAAgC,CAAC,EAAE,OAAO,CAAA;CAC3C,CAAA;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC7C,YAAY,EAAE,iBAAiB,GAAG,QAAQ,CAAA;IAC1C,WAAW,EAAE,QAAQ,GAAG,SAAS,CAAA;CAClC,CAAA;AAED,eAAO,MAAM,wCAAwC,EAAE,gCAGtD,CAAA;AAED,eAAO,MAAM,uCAAuC,EAAE,gCAGrD,CAAA;AAED,eAAO,MAAM,8CAA8C,EAAE,gCAG5D,CAAA;AAED,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,+BAA+B,GAAG,SAAS,EACpD,UAAU,EAAE,sCAAsC,GACjD,kCAAkC,GAAG,SAAS,CAKhD;AAED,wBAAgB,+CAA+C,CAC7D,OAAO,EAAE,+BAA+B,GAAG,SAAS,EACpD,aAAa,EAAE,gCAAgC,GAC9C,kCAAkC,GAAG,SAAS,CAuBhD;AAED,wBAAgB,2CAA2C,CACzD,cAAc,EAAE,sCAAsC,GAAG,IAAI,EAC7D,WAAW,EAAE,sCAAsC,GAClD,sCAAsC,CAIxC;AAED,wBAAgB,uCAAuC,CACrD,aAAa,EAAE,gCAAgC,GAAG,IAAI,EACtD,UAAU,EAAE,gCAAgC,GAC3C,gCAAgC,CASlC;AAED,wBAAgB,uDAAuD,CACrE,OAAO,EAAE,sCAAsC,GAC9C,gCAAgC,CAKlC;AAED,wBAAgB,uDAAuD,CACrE,aAAa,EAAE,gCAAgC,GAC9C,sCAAsC,CAKxC"}
@@ -0,0 +1,40 @@
1
+ import React from "react";
2
+ import { type StudioCanvasTransform } from "./client";
3
+ type MutableRef<T> = {
4
+ current: T;
5
+ };
6
+ type StudioCanvasViewportPoint = {
7
+ x: number;
8
+ y: number;
9
+ };
10
+ export type StudioCanvasController = {
11
+ canvas: StudioCanvasTransform;
12
+ canvasRef: MutableRef<StudioCanvasTransform>;
13
+ canvasSurfaceElement: HTMLDivElement | null;
14
+ canvasViewportElement: HTMLDivElement | null;
15
+ moveCanvas: (updater: (current: StudioCanvasTransform) => StudioCanvasTransform) => void;
16
+ onCanvasPointerCancel: React.PointerEventHandler<HTMLDivElement>;
17
+ onCanvasPointerDown: React.PointerEventHandler<HTMLDivElement>;
18
+ onCanvasPointerMove: React.PointerEventHandler<HTMLDivElement>;
19
+ onCanvasPointerUp: React.PointerEventHandler<HTMLDivElement>;
20
+ setCanvasSurfaceElement: (element: HTMLDivElement | null) => void;
21
+ setCanvasViewportElement: (element: HTMLDivElement | null) => void;
22
+ };
23
+ export declare function useStudioCanvasController(input: {
24
+ canvas?: StudioCanvasTransform;
25
+ onCanvasChange?: (canvas: StudioCanvasTransform) => void;
26
+ onCanvasMove: (canvas: StudioCanvasTransform) => void;
27
+ onCanvasPanEnd: () => void;
28
+ shouldHandleWheelTarget: (target: EventTarget | null) => boolean;
29
+ }): StudioCanvasController;
30
+ export declare function chooseStudioCanvasWheelZoomFocalPoint(input: {
31
+ eventViewportPoint?: StudioCanvasViewportPoint;
32
+ lastKnownPointerAgeMilliseconds?: number;
33
+ lastKnownPointerViewportPoint: StudioCanvasViewportPoint | null;
34
+ viewportSize: {
35
+ height: number;
36
+ width: number;
37
+ };
38
+ }): StudioCanvasViewportPoint;
39
+ export {};
40
+ //# sourceMappingURL=use-studio-canvas-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-studio-canvas-controller.d.ts","sourceRoot":"","sources":["../src/use-studio-canvas-controller.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,UAAU,CAAA;AAIjB,KAAK,UAAU,CAAC,CAAC,IAAI;IACnB,OAAO,EAAE,CAAC,CAAA;CACX,CAAA;AAED,KAAK,yBAAyB,GAAG;IAC/B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV,CAAA;AAcD,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,qBAAqB,CAAA;IAC7B,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,CAAA;IAC5C,oBAAoB,EAAE,cAAc,GAAG,IAAI,CAAA;IAC3C,qBAAqB,EAAE,cAAc,GAAG,IAAI,CAAA;IAC5C,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,qBAAqB,KAAK,IAAI,CAAA;IACxF,qBAAqB,EAAE,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAA;IAChE,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAA;IAC9D,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAA;IAC9D,iBAAiB,EAAE,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAA;IAC5D,uBAAuB,EAAE,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAA;IACjE,wBAAwB,EAAE,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAA;CACnE,CAAA;AAKD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAA;IACxD,YAAY,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAA;IACrD,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,uBAAuB,EAAE,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,KAAK,OAAO,CAAA;CACjE,GAAG,sBAAsB,CAmNzB;AAED,wBAAgB,qCAAqC,CAAC,KAAK,EAAE;IAC3D,kBAAkB,CAAC,EAAE,yBAAyB,CAAA;IAC9C,+BAA+B,CAAC,EAAE,MAAM,CAAA;IACxC,6BAA6B,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC/D,YAAY,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAChD,GAAG,yBAAyB,CAsB5B"}
@@ -0,0 +1,28 @@
1
+ import { type StudioCanvasTransform, type StudioColumnLayout, type StudioColumnLayoutMeasurement, type StudioPreviewCacheEntry, type StudioPreviewFrameState, type StudioViewportPreset, type StudioWorkspaceState } from "./client";
2
+ import type { StudioPreviewGeometryCacheStore } from "./preview-geometry-cache-store";
3
+ type MutableRef<T> = {
4
+ current: T;
5
+ };
6
+ export type StudioCanvasLayout = {
7
+ casePreviewScale: number;
8
+ columnLayoutByIndex: Record<number, StudioColumnLayout>;
9
+ columnLayoutByIndexRef: MutableRef<Record<number, StudioColumnLayout>>;
10
+ columnMeasurementsByIndexRef: MutableRef<Record<number, StudioColumnLayoutMeasurement>>;
11
+ getCardElement: (columnIndex: number, coordinate: string) => HTMLDivElement | undefined;
12
+ layoutMeasurementKey: string | undefined;
13
+ scheduleMeasurement: () => void;
14
+ setCardElement: (columnIndex: number, coordinate: string, element: HTMLDivElement | null) => void;
15
+ setColumnElement: (columnIndex: number, element: HTMLElement | null) => void;
16
+ };
17
+ export declare function useStudioCanvasLayout(input: {
18
+ canvasRef: MutableRef<StudioCanvasTransform>;
19
+ canvasSurfaceElement: HTMLDivElement | null;
20
+ canvasViewportPreset: StudioViewportPreset;
21
+ frameStates?: Record<string, StudioPreviewFrameState>;
22
+ onLayoutMeasured: () => void;
23
+ previewCache?: Record<string, StudioPreviewCacheEntry>;
24
+ previewGeometryStore?: StudioPreviewGeometryCacheStore;
25
+ workspace: StudioWorkspaceState;
26
+ }): StudioCanvasLayout;
27
+ export {};
28
+ //# sourceMappingURL=use-studio-canvas-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-studio-canvas-layout.d.ts","sourceRoot":"","sources":["../src/use-studio-canvas-layout.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EAC1B,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAA;AAUrF,KAAK,UAAU,CAAC,CAAC,IAAI;IACnB,OAAO,EAAE,CAAC,CAAA;CACX,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gBAAgB,EAAE,MAAM,CAAA;IACxB,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IACvD,sBAAsB,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAA;IACtE,4BAA4B,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC,CAAA;IACvF,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,cAAc,GAAG,SAAS,CAAA;IACvF,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,mBAAmB,EAAE,MAAM,IAAI,CAAA;IAC/B,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAA;IACjG,gBAAgB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAA;CAC7E,CAAA;AAKD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,CAAA;IAC5C,oBAAoB,EAAE,cAAc,GAAG,IAAI,CAAA;IAC3C,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;IACrD,gBAAgB,EAAE,MAAM,IAAI,CAAA;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;IACtD,oBAAoB,CAAC,EAAE,+BAA+B,CAAA;IACtD,SAAS,EAAE,oBAAoB,CAAA;CAChC,GAAG,kBAAkB,CAoKrB"}
@@ -0,0 +1,32 @@
1
+ import { type StudioCanvasTransform, type StudioColumnLayout, type StudioColumnLayoutMeasurement, type StudioPreviewFrameState, type StudioViewportPreset, type StudioWorkspaceState } from "./client";
2
+ import type { StudioPreviewGeometryCacheStore } from "./preview-geometry-cache-store";
3
+ import type { StudioViewportRect } from "./preview-lazy-loading";
4
+ import { type StudioPreviewRenderQueueOptions } from "./preview-render-queue";
5
+ import type { StudioPreviewRenderSessionStore } from "./preview-render-session-store";
6
+ import { type StudioPreviewRenderSchedulerRunOptions } from "./studio-preview-render-request-policy";
7
+ type MutableRef<T> = {
8
+ current: T;
9
+ };
10
+ export type StudioPreviewRenderScheduler = {
11
+ flushPreviewRender: (nextCanvas?: StudioCanvasTransform, options?: StudioPreviewRenderSchedulerRunOptions) => void;
12
+ requestCanvasPreviewRender: (nextCanvas?: StudioCanvasTransform) => void;
13
+ requestPreviewRender: (nextCanvas?: StudioCanvasTransform) => void;
14
+ };
15
+ export declare function useStudioPreviewRenderScheduler(input: {
16
+ canvasRef: MutableRef<StudioCanvasTransform>;
17
+ canvasViewportElement: HTMLDivElement | null;
18
+ canvasViewportPresetRef: MutableRef<StudioViewportPreset>;
19
+ columnLayoutByIndexRef: MutableRef<Record<number, StudioColumnLayout>>;
20
+ columnMeasurementsByIndexRef: MutableRef<Record<number, StudioColumnLayoutMeasurement>>;
21
+ frameStatesRef: MutableRef<Record<string, StudioPreviewFrameState> | undefined>;
22
+ previewGeometryStore?: StudioPreviewGeometryCacheStore;
23
+ previewRenderQueueRef: MutableRef<StudioPreviewRenderQueueOptions | undefined>;
24
+ previewRenderSessionStore: StudioPreviewRenderSessionStore;
25
+ workspaceRef: MutableRef<StudioWorkspaceState>;
26
+ }): StudioPreviewRenderScheduler;
27
+ export declare function studioPreviewRenderExpansionCenterViewportPoint(viewport: StudioViewportRect): {
28
+ x: number;
29
+ y: number;
30
+ };
31
+ export {};
32
+ //# sourceMappingURL=use-studio-preview-render-scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-studio-preview-render-scheduler.d.ts","sourceRoot":"","sources":["../src/use-studio-preview-render-scheduler.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EAC1B,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAA;AACrF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAIL,KAAK,+BAA+B,EAErC,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAA;AAOrF,OAAO,EAIL,KAAK,sCAAsC,EAC5C,MAAM,wCAAwC,CAAA;AAE/C,KAAK,UAAU,CAAC,CAAC,IAAI;IACnB,OAAO,EAAE,CAAC,CAAA;CACX,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,kBAAkB,EAAE,CAAC,UAAU,CAAC,EAAE,qBAAqB,EAAE,OAAO,CAAC,EAAE,sCAAsC,KAAK,IAAI,CAAA;IAClH,0BAA0B,EAAE,CAAC,UAAU,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAA;IACxE,oBAAoB,EAAE,CAAC,UAAU,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAA;CACnE,CAAA;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE;IACrD,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,CAAA;IAC5C,qBAAqB,EAAE,cAAc,GAAG,IAAI,CAAA;IAC5C,uBAAuB,EAAE,UAAU,CAAC,oBAAoB,CAAC,CAAA;IACzD,sBAAsB,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAA;IACtE,4BAA4B,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC,CAAA;IACvF,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,SAAS,CAAC,CAAA;IAC/E,oBAAoB,CAAC,EAAE,+BAA+B,CAAA;IACtD,qBAAqB,EAAE,UAAU,CAAC,+BAA+B,GAAG,SAAS,CAAC,CAAA;IAC9E,yBAAyB,EAAE,+BAA+B,CAAA;IAC1D,YAAY,EAAE,UAAU,CAAC,oBAAoB,CAAC,CAAA;CAC/C,GAAG,4BAA4B,CAsJ/B;AA2DD,wBAAgB,+CAA+C,CAC7D,QAAQ,EAAE,kBAAkB,GAC3B;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAK1B"}