@hyperframes/studio 0.8.127 → 0.8.128

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 (114) hide show
  1. package/dist/assets/{hyperframes-player-uqzDaxVL.js → hyperframes-player-CKCx0CFA.js} +1 -1
  2. package/dist/assets/{index-DXSYlqmV.js → index-CF31Pq1E.js} +1 -1
  3. package/dist/assets/{index-COhbL1xq.js → index-ClLzyuwb.js} +171 -171
  4. package/dist/assets/{index-CLBNYlDY.js → index-CwS08gWW.js} +1 -1
  5. package/dist/{chunk-3F47EFCT.js → chunk-7UQWVN52.js} +17 -10
  6. package/dist/chunk-7UQWVN52.js.map +1 -0
  7. package/dist/{chunk-246VB2G3.js → chunk-DRVWEPO5.js} +35 -7
  8. package/dist/chunk-DRVWEPO5.js.map +1 -0
  9. package/dist/{chunk-5EKWJZLM.js → chunk-TDWGXBUT.js} +1 -1
  10. package/dist/chunk-TDWGXBUT.js.map +1 -0
  11. package/dist/{domEditingLayers-OL7GLSS4.js → domEditingLayers-IEVLO54Z.js} +3 -3
  12. package/dist/index.d.ts +8 -9
  13. package/dist/index.html +1 -1
  14. package/dist/index.js +1193 -869
  15. package/dist/index.js.map +1 -1
  16. package/dist/player.js +2 -2
  17. package/package.json +8 -8
  18. package/src/components/TimelineToolbar.tsx +6 -7
  19. package/src/components/editor/commitPreflightHandles.test.tsx +32 -0
  20. package/src/components/editor/domEditingLayers.test.ts +45 -18
  21. package/src/components/editor/domEditingLayers.ts +11 -9
  22. package/src/components/editor/domEditingTypes.ts +1 -0
  23. package/src/components/editor/keyframeRetime.ts +11 -4
  24. package/src/components/editor/probeSourceElement.ts +17 -1
  25. package/src/components/nle/useCanvasZOrderTimelineMirror.test.tsx +4 -14
  26. package/src/components/nle/useCanvasZOrderTimelineMirror.ts +0 -7
  27. package/src/components/nle/useTimelineEditCallbacks.test.tsx +27 -42
  28. package/src/components/nle/useTimelineEditCallbacks.ts +3 -2
  29. package/src/hooks/gsapDragCommit.ts +8 -5
  30. package/src/hooks/gsapDragPositionCommit.ts +90 -17
  31. package/src/hooks/gsapKeyframeCacheHelpers.test.ts +50 -0
  32. package/src/hooks/gsapKeyframeCacheHelpers.ts +21 -2
  33. package/src/hooks/gsapMutationClient.ts +35 -7
  34. package/src/hooks/gsapOvershootEase.test.ts +67 -0
  35. package/src/hooks/gsapParsedTween.ts +5 -6
  36. package/src/hooks/gsapPositionDetection.ts +5 -2
  37. package/src/hooks/gsapRuntimeBridge.test.ts +35 -0
  38. package/src/hooks/gsapRuntimeKeyframes.test.ts +80 -6
  39. package/src/hooks/gsapRuntimeKeyframes.ts +19 -59
  40. package/src/hooks/gsapRuntimeMotionPath.ts +47 -0
  41. package/src/hooks/gsapRuntimeTweenIndex.ts +53 -0
  42. package/src/hooks/gsapShared.test.ts +48 -35
  43. package/src/hooks/gsapShared.ts +30 -32
  44. package/src/hooks/gsapValueAtPlayhead.realGsap.test.ts +93 -3
  45. package/src/hooks/gsapValueAtPlayhead.test.ts +13 -0
  46. package/src/hooks/gsapValueAtPlayhead.ts +3 -4
  47. package/src/hooks/timelineEditingHelpers.test.ts +21 -0
  48. package/src/hooks/timelineEditingHelpers.ts +40 -14
  49. package/src/hooks/timelineLinkEditPlan.ts +6 -4
  50. package/src/hooks/timelineMoveAdapter.ts +3 -5
  51. package/src/hooks/timelineTimingSync.test.ts +83 -125
  52. package/src/hooks/timelineTimingSync.ts +62 -42
  53. package/src/hooks/useAnimatedPropertyCommit.ts +6 -6
  54. package/src/hooks/useBlockedTimelineEditToast.ts +3 -12
  55. package/src/hooks/useCommitPreflightCapabilities.ts +42 -7
  56. package/src/hooks/useDomEditPreviewSync.ts +8 -2
  57. package/src/hooks/useDomSelection.test.ts +27 -0
  58. package/src/hooks/useDomSelection.ts +12 -13
  59. package/src/hooks/useDomSelectionTypes.ts +1 -0
  60. package/src/hooks/useEditHistoryActions.test.tsx +54 -3
  61. package/src/hooks/useEditHistoryActions.ts +9 -6
  62. package/src/hooks/useEnableKeyframes.test.ts +20 -15
  63. package/src/hooks/useEnableKeyframes.ts +54 -71
  64. package/src/hooks/useGestureCommit.ts +2 -1
  65. package/src/hooks/useGsapTweenCache.ts +2 -17
  66. package/src/hooks/usePersistentEditHistory.test.ts +45 -0
  67. package/src/hooks/usePersistentEditHistory.ts +13 -2
  68. package/src/hooks/usePreviewPersistence.history.test.tsx +83 -0
  69. package/src/hooks/usePreviewPersistence.ts +26 -4
  70. package/src/hooks/useTimelineClipTimingEditing.ts +343 -0
  71. package/src/hooks/useTimelineDeleteOps.test.tsx +20 -1
  72. package/src/hooks/useTimelineDeleteOps.ts +5 -13
  73. package/src/hooks/useTimelineEditing.test.tsx +63 -4
  74. package/src/hooks/useTimelineEditing.ts +21 -295
  75. package/src/hooks/useTimelineGroupEditing.test.tsx +91 -0
  76. package/src/hooks/useTimelineGroupEditing.ts +15 -38
  77. package/src/player/components/Timeline.test.ts +12 -4
  78. package/src/player/components/TimelineClip.tsx +3 -0
  79. package/src/player/components/TimelineCompactDiamonds.tsx +4 -0
  80. package/src/player/components/TimelineLanes.test.tsx +61 -5
  81. package/src/player/components/TimelineLanes.tsx +20 -28
  82. package/src/player/components/TimelinePropertyLanes.tsx +10 -1
  83. package/src/player/components/timelineCallbacks.ts +1 -4
  84. package/src/player/components/timelineClipDragCommit.test.ts +31 -0
  85. package/src/player/components/timelineClipDragCommit.ts +39 -28
  86. package/src/player/components/timelineClipDragGestureLifecycle.ts +1 -1
  87. package/src/player/components/timelineClipGestureHandlers.test.ts +6 -34
  88. package/src/player/components/timelineClipGestureHandlers.ts +2 -20
  89. package/src/player/components/timelineEditing.ts +1 -3
  90. package/src/player/components/timelineGroupResizeCommit.ts +10 -9
  91. package/src/player/components/timelineLinkSelection.ts +1 -35
  92. package/src/player/components/timelineOptimisticRevision.ts +7 -4
  93. package/src/player/components/trackHeaderLaneState.ts +9 -2
  94. package/src/player/components/trackHeaderLaneValues.test.ts +89 -0
  95. package/src/player/components/trackHeaderLaneValues.ts +54 -13
  96. package/src/player/components/useTimelineClipDrag.keyboard.test.tsx +4 -6
  97. package/src/player/components/useTimelineClipDrag.resize.test.tsx +4 -7
  98. package/src/player/components/useTimelineClipDrag.ts +0 -3
  99. package/src/player/components/useTimelineKeyframeHandlers.ts +17 -1
  100. package/src/player/store/batchElementUpdates.test.ts +43 -0
  101. package/src/player/store/batchElementUpdates.ts +9 -0
  102. package/src/player/store/elementPatchQueue.ts +35 -0
  103. package/src/player/store/playerStore.ts +5 -6
  104. package/src/utils/domEditHelpers.ts +5 -0
  105. package/src/utils/globalTimeCompiler.test.ts +0 -4
  106. package/src/utils/globalTimeCompiler.ts +6 -4
  107. package/src/utils/gsapKeyframeEases.ts +79 -0
  108. package/src/utils/sameData.ts +9 -0
  109. package/src/utils/studioFileHistory.ts +1 -0
  110. package/src/utils/studioPendingEdits.ts +15 -1
  111. package/dist/chunk-246VB2G3.js.map +0 -1
  112. package/dist/chunk-3F47EFCT.js.map +0 -1
  113. package/dist/chunk-5EKWJZLM.js.map +0 -1
  114. /package/dist/{domEditingLayers-OL7GLSS4.js.map → domEditingLayers-IEVLO54Z.js.map} +0 -0
package/dist/index.d.ts CHANGED
@@ -710,6 +710,7 @@ interface DomEditSelection extends PatchTarget {
710
710
  computedStyles: Record<string, string>;
711
711
  textFields: DomEditTextField[];
712
712
  capabilities: DomEditCapabilities;
713
+ existsInSource?: boolean;
713
714
  gsapAnimations?: GsapAnimation$1[];
714
715
  }
715
716
  interface DomEditLayerItem {
@@ -738,6 +739,7 @@ declare function resolveDomEditSelection(startEl: HTMLElement | null, options: D
738
739
  projectId?: string | null;
739
740
  skipSourceProbe?: boolean;
740
741
  exactTarget?: boolean;
742
+ previous?: DomEditSelection | null;
741
743
  }): Promise<DomEditSelection | null>;
742
744
 
743
745
  /**
@@ -815,7 +817,7 @@ interface TimelineStackingReorderIntent {
815
817
  zIndexChanges: TimelineStackingZIndexChange[];
816
818
  }
817
819
 
818
- type BlockedTimelineEditIntent = "move" | "edit-many" | "resize-start" | "resize-end";
820
+ type BlockedTimelineEditIntent = "move" | "resize-start" | "resize-end";
819
821
  interface TimelineRangeSelection {
820
822
  start: number;
821
823
  end: number;
@@ -1074,8 +1076,6 @@ interface TimelineGroupResizeChange {
1074
1076
  interface TimelineGroupCommitOptions {
1075
1077
  beforeTiming?: Promise<void>;
1076
1078
  coalesceKey?: string;
1077
- /** Per-entry undo coalesce window override (ms) — see EditHistoryEntry.coalesceMs. */
1078
- coalesceMs?: number;
1079
1079
  /** Overrides the default "Move timeline clips" undo-history label. Coalescing
1080
1080
  * keeps the LAST entry's label (editHistory.ts), so a mechanical follow-up
1081
1081
  * move folded into another gesture's coalesceKey (e.g. the ripple after a
@@ -1161,13 +1161,11 @@ interface TimelineEditCallbacks {
1161
1161
  onMoveElement?: (element: TimelineElement, updates: TimelineAtomicMoveUpdates) => Promise<void> | void;
1162
1162
  /** Atomic multi-clip move (single undo) for main-track ripple + track-insert.
1163
1163
  * `coalesceKey` (drag-commit gesture id) merges the move history entry with a
1164
- * lane change's follow-up z-reorder entry into one undo step; `coalesceMs`
1165
- * widens that entry's fold window when a server round-trip separates the
1166
- * gesture's records (per-gesture-unique keys keep the fold gesture-scoped). */
1164
+ * lane change's follow-up z-reorder entry into one undo step. */
1167
1165
  onMoveElements?: (edits: Array<{
1168
1166
  element: TimelineElement;
1169
1167
  updates: TimelineAtomicMoveUpdates;
1170
- }>, coalesceKey?: string, operation?: TimelineMoveOperation, coalesceMs?: number) => Promise<void> | void;
1168
+ }>, coalesceKey?: string, operation?: TimelineMoveOperation) => Promise<void> | void;
1171
1169
  onResizeElement?: (element: TimelineElement, updates: Pick<TimelineElement, "start" | "duration" | "playbackStart">) => Promise<void> | void;
1172
1170
  onResizeElements?: (changes: Array<{
1173
1171
  element: TimelineElement;
@@ -2005,7 +2003,7 @@ interface TimelineEditCallbackDeps {
2005
2003
  handleTimelineElementsMove: (edits: Array<{
2006
2004
  element: TimelineElement;
2007
2005
  updates: Pick<TimelineElement, "start" | "track">;
2008
- }>, coalesceKey?: string, operation?: TimelineMoveOperation, coalesceMs?: number) => Promise<void> | void;
2006
+ }>, coalesceKey?: string, operation?: TimelineMoveOperation) => Promise<void> | void;
2009
2007
  handleTimelineElementResize: (element: TimelineElement, updates: Pick<TimelineElement, "start" | "duration" | "playbackStart">) => Promise<void> | void;
2010
2008
  handleTimelineGroupResize: NonNullable<TimelineEditCallbacks["onResizeElements"]>;
2011
2009
  handleToggleTrackHidden: (track: number, hidden: boolean) => Promise<void> | void;
@@ -2918,7 +2916,7 @@ declare function useTimelineEditing({ projectId, activeCompPath, timelineElement
2918
2916
  handleTimelineAssetDrop: (assetPath: string, placement: TimelineDropPlacement, durationOverride?: number | undefined) => Promise<void>;
2919
2917
  handleTimelineFileDrop: (files: File[], placement?: TimelineDropPlacement | undefined) => Promise<void>;
2920
2918
  handleTimelineCompositionDrop: (sourcePath: string, placement: Pick<TimelineElement, "track" | "start">) => Promise<void>;
2921
- handleBlockedTimelineEdit: (element: TimelineElement, intent: BlockedTimelineEditIntent) => void;
2919
+ handleBlockedTimelineEdit: (element: TimelineElement) => void;
2922
2920
  handleTimelineGroupMove: (changes: TimelineGroupMoveChange[], options?: TimelineGroupCommitOptions | undefined) => Promise<void>;
2923
2921
  handleTimelineGroupResize: (changes: TimelineGroupResizeChange[], options?: TimelineGroupCommitOptions | undefined) => Promise<void>;
2924
2922
  restoreLiveLanes: (restore: Parameters<(restore: LiveLaneRestore) => void>[0]) => void;
@@ -3304,6 +3302,7 @@ interface ResolveDomSelectionOptions {
3304
3302
  activeGroupElement?: HTMLElement | null;
3305
3303
  /** Resolve this node itself instead of applying human group-capture behavior. */
3306
3304
  exactTarget?: boolean;
3305
+ previous?: DomEditSelection | null;
3307
3306
  }
3308
3307
  interface DomEditTimelineParams {
3309
3308
  projectId: string | null;
package/dist/index.html CHANGED
@@ -14,7 +14,7 @@
14
14
  document.documentElement.dataset.theme = "paper";
15
15
  }
16
16
  </script>
17
- <script type="module" crossorigin src="/assets/index-COhbL1xq.js"></script>
17
+ <script type="module" crossorigin src="/assets/index-ClLzyuwb.js"></script>
18
18
  <link rel="stylesheet" crossorigin href="/assets/index-D11atkBt.css">
19
19
  </head>
20
20
  <body>