@hyperframes/studio 0.8.20 → 0.8.21
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/assets/hyperframes-player-CIXNA_bj.js +460 -0
- package/dist/assets/{index-BL1zYTW0.js → index-44gfDvkh.js} +1 -1
- package/dist/assets/{index-Cehosfnu.js → index-9VfE7bZe.js} +1 -1
- package/dist/assets/{index-CBSKXKAr.js → index-CgGY8dAv.js} +164 -164
- package/dist/index.d.ts +28 -0
- package/dist/index.html +1 -1
- package/dist/index.js +1170 -227
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
- package/src/App.tsx +2 -0
- package/src/contexts/StudioContext.tsx +10 -0
- package/src/hooks/useStudioContextValue.ts +9 -0
- package/src/player/hooks/timelineSyncHydration.test.ts +96 -0
- package/src/player/hooks/timelineSyncHydration.ts +47 -1
- package/src/player/hooks/useExpandedTimelineElements.test.ts +43 -0
- package/src/player/hooks/useExpandedTimelineElements.ts +52 -29
- package/src/player/hooks/useTimelineSyncCallbacks.ts +4 -0
- package/src/player/store/playerStore.ts +17 -2
- package/src/player/store/timelineElement.ts +21 -0
- package/src/webmcp/StudioAgentTools.tsx +105 -10
- package/src/webmcp/toolResult.ts +1 -1
- package/src/webmcp/tools/animationTools.test.ts +244 -0
- package/src/webmcp/tools/animationTools.ts +276 -0
- package/src/webmcp/tools/contentTools.test.ts +275 -0
- package/src/webmcp/tools/contentTools.ts +217 -0
- package/src/webmcp/tools/frameTools.test.ts +136 -0
- package/src/webmcp/tools/frameTools.ts +133 -0
- package/src/webmcp/tools/inspectTools.test.ts +197 -0
- package/src/webmcp/tools/inspectTools.ts +208 -0
- package/src/webmcp/tools/selectionTools.test.ts +164 -0
- package/src/webmcp/tools/selectionTools.ts +154 -0
- package/src/webmcp/tools/transformTools.test.ts +179 -0
- package/src/webmcp/tools/transformTools.ts +205 -0
- package/src/webmcp/useStudioAgentTools.test.tsx +71 -22
- package/src/webmcp/useStudioAgentTools.ts +195 -1
- package/src/webmcp/webmcpTestUtils.ts +91 -0
- package/dist/assets/hyperframes-player-BEKxuimO.js +0 -459
package/dist/index.d.ts
CHANGED
|
@@ -353,6 +353,26 @@ interface TimelineElement {
|
|
|
353
353
|
* parsed at load.
|
|
354
354
|
*/
|
|
355
355
|
type TimelineElementPatch = Partial<Pick<TimelineElement, "start" | "duration" | "track" | "zIndex" | "hasExplicitZIndex" | "playbackStart" | "hidden" | "audioGroup" | "audioGroupLabel" | "audioGroupVolume" | "audioGroupHidden" | "audioGroupFxChain" | "audioGroupAutomation">>;
|
|
356
|
+
/**
|
|
357
|
+
* The `data-*` state an expanded sub-composition child needs but cannot reach.
|
|
358
|
+
*
|
|
359
|
+
* A child row is synthesized from a manifest clip with no element to read, and
|
|
360
|
+
* for a real sub-composition it has no flat store twin either: such clips are
|
|
361
|
+
* dropped before the flat store is built. Read off the live preview instead
|
|
362
|
+
* (`collectSubCompositionHostState`) and carried on the store by dom id.
|
|
363
|
+
*
|
|
364
|
+
* Without it the eye reported every hidden child visible, so clicking it wrote
|
|
365
|
+
* `data-hidden` a second time instead of removing it, and the element could
|
|
366
|
+
* never be shown again, not even after a reload, since the attribute is in the
|
|
367
|
+
* source.
|
|
368
|
+
*/
|
|
369
|
+
interface SubCompositionHostState {
|
|
370
|
+
hidden?: boolean;
|
|
371
|
+
timelineLocked?: boolean;
|
|
372
|
+
timelineRole?: string;
|
|
373
|
+
fxChain?: string;
|
|
374
|
+
automation?: string;
|
|
375
|
+
}
|
|
356
376
|
|
|
357
377
|
type ZoomMode = "fit" | "manual";
|
|
358
378
|
type TimelineTool = "select" | "razor";
|
|
@@ -521,6 +541,14 @@ interface PlayerState extends KeyframeSlice, AutomationSelectionSlice, Thumbnail
|
|
|
521
541
|
*/
|
|
522
542
|
domClipChildren: DomClipChild[];
|
|
523
543
|
setDomClipChildren: (children: DomClipChild[]) => void;
|
|
544
|
+
/**
|
|
545
|
+
* Host-element state for every id'd element inside a sub-composition, keyed by
|
|
546
|
+
* dom id. Collected from the live preview because it is the only place that
|
|
547
|
+
* sees it: these elements are filtered out of `elements` before the flat store
|
|
548
|
+
* is built, and the clip manifest carries timing, not attributes.
|
|
549
|
+
*/
|
|
550
|
+
subCompositionHostState: Map<string, SubCompositionHostState>;
|
|
551
|
+
setSubCompositionHostState: (state: Map<string, SubCompositionHostState>) => void;
|
|
524
552
|
}
|
|
525
553
|
/** A sub-comp DOM-only timeline child (no data-start) and its nesting context. */
|
|
526
554
|
interface DomClipChild {
|
package/dist/index.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
|
|
6
6
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
7
7
|
<title>HyperFrames Studio</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-CgGY8dAv.js"></script>
|
|
9
9
|
<link rel="stylesheet" crossorigin href="/assets/index-yGhfxxoL.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|