@hyperframes/studio 0.6.0-alpha.4 → 0.6.0-alpha.6

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/index.html CHANGED
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
6
6
  <title>HyperFrames Studio</title>
7
- <script type="module" crossorigin src="/assets/index-BfnyZllX.js"></script>
8
- <link rel="stylesheet" crossorigin href="/assets/index-pZvEUcY0.css">
7
+ <script type="module" crossorigin src="/assets/index-DQRhHcUd.js"></script>
8
+ <link rel="stylesheet" crossorigin href="/assets/index-14zH9lqh.css">
9
9
  </head>
10
10
  <body>
11
11
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperframes/studio",
3
- "version": "0.6.0-alpha.4",
3
+ "version": "0.6.0-alpha.6",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -32,8 +32,8 @@
32
32
  "@phosphor-icons/react": "^2.1.10",
33
33
  "codemirror": "^6.0.1",
34
34
  "motion": "^12.38.0",
35
- "@hyperframes/core": "0.6.0-alpha.4",
36
- "@hyperframes/player": "0.6.0-alpha.4"
35
+ "@hyperframes/core": "0.6.0-alpha.6",
36
+ "@hyperframes/player": "0.6.0-alpha.6"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/react": "^19.0.0",
@@ -47,7 +47,7 @@
47
47
  "vite": "^6.4.2",
48
48
  "vitest": "^3.2.4",
49
49
  "zustand": "^5.0.0",
50
- "@hyperframes/producer": "0.6.0-alpha.4"
50
+ "@hyperframes/producer": "0.6.0-alpha.6"
51
51
  },
52
52
  "peerDependencies": {
53
53
  "react": "^18.0.0 || ^19.0.0",
package/src/App.tsx CHANGED
@@ -894,6 +894,7 @@ export function StudioApp() {
894
894
  const [agentModalOpen, setAgentModalOpen] = useState(false);
895
895
  const [previewIframe, setPreviewIframe] = useState<HTMLIFrameElement | null>(null);
896
896
  const [inspectedTimelineElementId, setInspectedTimelineElementId] = useState<string | null>(null);
897
+ const [compositionLoading, setCompositionLoading] = useState(true);
897
898
  const [previewDocumentVersion, setPreviewDocumentVersion] = useState(0);
898
899
  const refreshPreviewDocumentVersion = useCallback(() => {
899
900
  setPreviewDocumentVersion((version) => version + 1);
@@ -3169,7 +3170,7 @@ export function StudioApp() {
3169
3170
 
3170
3171
  const handlePreviewCanvasMouseDown = useCallback(
3171
3172
  (e: React.MouseEvent<HTMLDivElement>, options?: { preferClipAncestor?: boolean }) => {
3172
- if (!STUDIO_PREVIEW_SELECTION_ENABLED || captionEditMode) return;
3173
+ if (!STUDIO_PREVIEW_SELECTION_ENABLED || captionEditMode || compositionLoading) return;
3173
3174
  const nextSelection = resolveDomSelectionFromPreviewPoint(e.clientX, e.clientY, {
3174
3175
  preferClipAncestor: options?.preferClipAncestor ?? false,
3175
3176
  });
@@ -3199,6 +3200,7 @@ export function StudioApp() {
3199
3200
  [
3200
3201
  applyDomSelection,
3201
3202
  captionEditMode,
3203
+ compositionLoading,
3202
3204
  preloadAgentPromptSnippet,
3203
3205
  resolveDomSelectionFromPreviewPoint,
3204
3206
  ],
@@ -3206,7 +3208,7 @@ export function StudioApp() {
3206
3208
 
3207
3209
  const handlePreviewCanvasPointerMove = useCallback(
3208
3210
  (e: React.PointerEvent<HTMLDivElement>, options?: { preferClipAncestor?: boolean }) => {
3209
- if (!STUDIO_PREVIEW_SELECTION_ENABLED || captionEditMode) {
3211
+ if (!STUDIO_PREVIEW_SELECTION_ENABLED || captionEditMode || compositionLoading) {
3210
3212
  updateDomEditHoverSelection(null);
3211
3213
  return null;
3212
3214
  }
@@ -3217,7 +3219,12 @@ export function StudioApp() {
3217
3219
  updateDomEditHoverSelection(nextSelection);
3218
3220
  return nextSelection;
3219
3221
  },
3220
- [captionEditMode, resolveDomSelectionFromPreviewPoint, updateDomEditHoverSelection],
3222
+ [
3223
+ captionEditMode,
3224
+ compositionLoading,
3225
+ resolveDomSelectionFromPreviewPoint,
3226
+ updateDomEditHoverSelection,
3227
+ ],
3221
3228
  );
3222
3229
 
3223
3230
  const handlePreviewCanvasPointerLeave = useCallback(() => {
@@ -4085,6 +4092,7 @@ export function StudioApp() {
4085
4092
  inspectedTimelineElementId={inspectedTimelineElementId}
4086
4093
  timelineLayerChildCounts={timelineLayerChildCounts}
4087
4094
  onCompIdToSrcChange={setCompIdToSrc}
4095
+ onCompositionLoadingChange={setCompositionLoading}
4088
4096
  onCompositionChange={(compPath) => {
4089
4097
  // Sync activeCompPath when user drills down via timeline double-click
4090
4098
  // or navigates back via breadcrumb — keeps sidebar + thumbnails in sync.