@hyperframes/studio 0.8.93 → 0.8.95

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 (49) hide show
  1. package/dist/assets/{hyperframes-player-CkV9KK6A.js → hyperframes-player-DJJKab4_.js} +1 -1
  2. package/dist/assets/{index-V3fzEfOD.js → index-C1dXTZvs.js} +1 -1
  3. package/dist/assets/{index-CYk0NwSv.js → index-Cc4by8r7.js} +183 -183
  4. package/dist/assets/{index-BlLFipOk.js → index-DE1dn3QB.js} +1 -1
  5. package/dist/index.d.ts +63 -46
  6. package/dist/index.html +1 -1
  7. package/dist/index.js +196 -111
  8. package/dist/index.js.map +1 -1
  9. package/package.json +8 -8
  10. package/src/components/TimelineToolbar.test.tsx +17 -0
  11. package/src/components/TimelineToolbar.tsx +3 -1
  12. package/src/components/editor/ConnectedDomEditOverlay.test.tsx +2 -0
  13. package/src/components/editor/ConnectedDomEditOverlay.tsx +3 -1
  14. package/src/components/editor/DomEditCropHandles.test.tsx +87 -1
  15. package/src/components/editor/DomEditCropHandles.tsx +64 -62
  16. package/src/components/editor/DomEditOverlay.test.ts +39 -0
  17. package/src/components/editor/DomEditOverlay.tsx +6 -1
  18. package/src/components/editor/DomEditSelectionChrome.test.tsx +114 -1
  19. package/src/components/editor/DomEditSelectionChrome.tsx +17 -10
  20. package/src/components/editor/PreviewOverlayProvider.test.tsx +19 -0
  21. package/src/components/editor/PreviewOverlayProvider.tsx +1 -1
  22. package/src/components/editor/SnapToolbar.tsx +1 -1
  23. package/src/components/editor/domEditOverlayGeometry.ts +2 -0
  24. package/src/components/editor/manualEditsSeekReapply.ts +5 -1
  25. package/src/components/nle/PreviewOverlays.tsx +3 -3
  26. package/src/hooks/gsapResizeIntercept.test.ts +40 -0
  27. package/src/hooks/gsapResizeIntercept.ts +8 -4
  28. package/src/index.ts +4 -0
  29. package/src/player/components/PlayerControls.tsx +2 -15
  30. package/src/player/components/ShortcutsPanel.test.tsx +33 -1
  31. package/src/player/components/ShortcutsPanel.tsx +26 -0
  32. package/src/player/components/Timeline.ghostLane.test.tsx +126 -0
  33. package/src/player/components/Timeline.rulerSeek.test.tsx +7 -0
  34. package/src/player/components/Timeline.test.ts +3 -3
  35. package/src/player/components/Timeline.trackPadding.test.tsx +157 -0
  36. package/src/player/components/TimelineCanvas.tsx +44 -19
  37. package/src/player/components/TimelineProvider.tsx +1 -0
  38. package/src/player/components/TimelineTypes.ts +2 -0
  39. package/src/player/components/timelineDragDrop.test.tsx +14 -12
  40. package/src/player/components/timelineLayout.test.ts +87 -11
  41. package/src/player/components/timelineLayout.ts +28 -21
  42. package/src/player/components/useTimelineProviderState.tsx +5 -1
  43. package/src/player/components/useTimelineTrackLayout.ts +11 -2
  44. package/src/player/components/useTimelineVirtualRows.test.tsx +32 -0
  45. package/src/player/components/useTimelineVirtualRows.ts +2 -2
  46. package/src/utils/gsapSoftReload.test.ts +51 -2
  47. package/src/utils/gsapSoftReload.ts +24 -10
  48. package/src/utils/gsapUndoRestore.test.ts +49 -0
  49. package/src/utils/gsapUndoRestore.ts +15 -0
@@ -1 +1 @@
1
- import{g as P}from"./index-CYk0NwSv.js";function j(c,d){for(var s=0;s<d.length;s++){const a=d[s];if(typeof a!="string"&&!Array.isArray(a)){for(const i in a)if(i!=="default"&&!(i in c)){const l=Object.getOwnPropertyDescriptor(a,i);l&&Object.defineProperty(c,i,l.get?l:{enumerable:!0,get:()=>a[i]})}}}return Object.freeze(Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}))}var v={},w;function k(){if(w)return v;w=1,Object.defineProperty(v,"__esModule",{value:!0}),v.default=d;var c=window.OfflineAudioContext||window.webkitOfflineAudioContext;function d(e){var r=a(e);return r.start(0),[i,y,O(e.sampleRate),s].reduce(function(t,o){return o(t)},r.buffer.getChannelData(0))}function s(e){return e.sort(function(r,t){return t.count-r.count}).splice(0,5)[0].tempo}function a(e){var r=e.length,t=e.numberOfChannels,o=e.sampleRate,n=new c(t,r,o),u=n.createBufferSource();u.buffer=e;var f=n.createBiquadFilter();return f.type="lowpass",u.connect(f),f.connect(n.destination),u}function i(e){for(var r=[],t=.9,o=.3,n=15;r.length<n&&t>=o;)r=l(e,t),t-=.05;if(r.length<n)throw new Error("Could not find enough samples for a reliable detection.");return r}function l(e,r){for(var t=[],o=0,n=e.length;o<n;o+=1)e[o]>r&&(t.push(o),o+=1e4);return t}function y(e){var r=[];return e.forEach(function(t,o){for(var n=function(x){var g=e[o+x]-t,_=r.some(function(h){if(h.interval===g)return h.count+=1});_||r.push({interval:g,count:1})},u=0;u<10;u+=1)n(u)}),r}function O(e){return function(r){var t=[];return r.forEach(function(o){if(o.interval!==0){for(var n=60/(o.interval/e);n<90;)n*=2;for(;n>180;)n/=2;n=Math.round(n);var u=t.some(function(f){if(f.tempo===n)return f.count+=o.count});u||t.push({tempo:n,count:o.count})}}),t}}return v}var p,b;function q(){return b||(b=1,p=k().default),p}var m=q();const A=P(m),D=j({__proto__:null,default:A},[m]);export{D as i};
1
+ import{g as P}from"./index-Cc4by8r7.js";function j(c,d){for(var s=0;s<d.length;s++){const a=d[s];if(typeof a!="string"&&!Array.isArray(a)){for(const i in a)if(i!=="default"&&!(i in c)){const l=Object.getOwnPropertyDescriptor(a,i);l&&Object.defineProperty(c,i,l.get?l:{enumerable:!0,get:()=>a[i]})}}}return Object.freeze(Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}))}var v={},w;function k(){if(w)return v;w=1,Object.defineProperty(v,"__esModule",{value:!0}),v.default=d;var c=window.OfflineAudioContext||window.webkitOfflineAudioContext;function d(e){var r=a(e);return r.start(0),[i,y,O(e.sampleRate),s].reduce(function(t,o){return o(t)},r.buffer.getChannelData(0))}function s(e){return e.sort(function(r,t){return t.count-r.count}).splice(0,5)[0].tempo}function a(e){var r=e.length,t=e.numberOfChannels,o=e.sampleRate,n=new c(t,r,o),u=n.createBufferSource();u.buffer=e;var f=n.createBiquadFilter();return f.type="lowpass",u.connect(f),f.connect(n.destination),u}function i(e){for(var r=[],t=.9,o=.3,n=15;r.length<n&&t>=o;)r=l(e,t),t-=.05;if(r.length<n)throw new Error("Could not find enough samples for a reliable detection.");return r}function l(e,r){for(var t=[],o=0,n=e.length;o<n;o+=1)e[o]>r&&(t.push(o),o+=1e4);return t}function y(e){var r=[];return e.forEach(function(t,o){for(var n=function(x){var g=e[o+x]-t,_=r.some(function(h){if(h.interval===g)return h.count+=1});_||r.push({interval:g,count:1})},u=0;u<10;u+=1)n(u)}),r}function O(e){return function(r){var t=[];return r.forEach(function(o){if(o.interval!==0){for(var n=60/(o.interval/e);n<90;)n*=2;for(;n>180;)n/=2;n=Math.round(n);var u=t.some(function(f){if(f.tempo===n)return f.count+=o.count});u||t.push({tempo:n,count:o.count})}}),t}}return v}var p,b;function q(){return b||(b=1,p=k().default),p}var m=q();const A=P(m),D=j({__proto__:null,default:A},[m]);export{D as i};
package/dist/index.d.ts CHANGED
@@ -1126,6 +1126,53 @@ interface TimelineTheme {
1126
1126
  transitionBadgeInk: string;
1127
1127
  }
1128
1128
 
1129
+ interface TimelineTimeRange {
1130
+ readonly start: number;
1131
+ readonly end: number;
1132
+ }
1133
+ interface TimelineClipInterval {
1134
+ readonly element: TimelineElement;
1135
+ readonly identity: string;
1136
+ readonly ordinal: number;
1137
+ readonly start: number;
1138
+ readonly end: number;
1139
+ }
1140
+ interface TimelineClipRowIndex {
1141
+ readonly byStart: readonly TimelineClipInterval[];
1142
+ readonly treeLeafCount: number;
1143
+ readonly maxPositiveEndTree: readonly number[];
1144
+ readonly maxPointStartTree: readonly number[];
1145
+ readonly byIdentity: ReadonlyMap<string, readonly TimelineClipInterval[]>;
1146
+ }
1147
+ interface TimelineClipIndex {
1148
+ readonly rows: ReadonlyMap<number, TimelineClipRowIndex>;
1149
+ }
1150
+
1151
+ declare const TRACK_H = 48;
1152
+ interface TimelineTrackPadding {
1153
+ top?: number;
1154
+ bottom?: number;
1155
+ }
1156
+ interface TimelineRowGeometry {
1157
+ readonly rowKeys: readonly number[];
1158
+ readonly rowHeights: readonly number[];
1159
+ /** Cumulative row boundaries, including the final bottom boundary. */
1160
+ readonly rowOffsets: readonly number[];
1161
+ readonly rowsHeight: number;
1162
+ readonly padding: Readonly<Required<TimelineTrackPadding>>;
1163
+ readonly canvasHeight: number;
1164
+ getRowIndex(rowKey: number): number;
1165
+ getRowHeight(row: number): number;
1166
+ getRowTop(row: number): number;
1167
+ getRowFromY(contentY: number): number;
1168
+ getRowPositionFromY(contentY: number): {
1169
+ rowFloat: number;
1170
+ row: number;
1171
+ fraction: number;
1172
+ rowHeight: number;
1173
+ };
1174
+ }
1175
+
1129
1176
  type TimelineEditOverrides = Pick<TimelineEditCallbacks, "onMoveElement" | "onMoveElements" | "onResizeElement" | "onResizeElements" | "onBlockedEditAttempt" | "onSplitElement">;
1130
1177
 
1131
1178
  /** With both set, a lane move restacks the preview's z-index to match the rows; each overrides Studio's own. */
@@ -1163,6 +1210,7 @@ interface TimelineProps extends TimelineDropCallbacks, TimelineEditOverrides, Ti
1163
1210
  theme?: Partial<TimelineTheme>;
1164
1211
  showAudioEffects?: boolean;
1165
1212
  showKeyframes?: boolean;
1213
+ trackPadding?: TimelineTrackPadding;
1166
1214
  }
1167
1215
 
1168
1216
  interface TimelineEmptyStateProps {
@@ -1256,47 +1304,6 @@ interface BlockedClipState {
1256
1304
  started: boolean;
1257
1305
  }
1258
1306
 
1259
- interface TimelineTimeRange {
1260
- readonly start: number;
1261
- readonly end: number;
1262
- }
1263
- interface TimelineClipInterval {
1264
- readonly element: TimelineElement;
1265
- readonly identity: string;
1266
- readonly ordinal: number;
1267
- readonly start: number;
1268
- readonly end: number;
1269
- }
1270
- interface TimelineClipRowIndex {
1271
- readonly byStart: readonly TimelineClipInterval[];
1272
- readonly treeLeafCount: number;
1273
- readonly maxPositiveEndTree: readonly number[];
1274
- readonly maxPointStartTree: readonly number[];
1275
- readonly byIdentity: ReadonlyMap<string, readonly TimelineClipInterval[]>;
1276
- }
1277
- interface TimelineClipIndex {
1278
- readonly rows: ReadonlyMap<number, TimelineClipRowIndex>;
1279
- }
1280
-
1281
- interface TimelineRowGeometry {
1282
- readonly rowKeys: readonly number[];
1283
- readonly rowHeights: readonly number[];
1284
- /** Cumulative row boundaries, including the final bottom boundary. */
1285
- readonly rowOffsets: readonly number[];
1286
- readonly rowsHeight: number;
1287
- readonly canvasHeight: number;
1288
- getRowIndex(rowKey: number): number;
1289
- getRowHeight(row: number): number;
1290
- getRowTop(row: number): number;
1291
- getRowFromY(contentY: number): number;
1292
- getRowPositionFromY(contentY: number): {
1293
- rowFloat: number;
1294
- row: number;
1295
- fraction: number;
1296
- rowHeight: number;
1297
- };
1298
- }
1299
-
1300
1307
  type TrackVisualStyle = TimelineTrackStyle;
1301
1308
 
1302
1309
  interface TimelineVirtualRow {
@@ -1524,6 +1531,7 @@ type TimelineCanvasState = Omit<TimelineLaneBaseProps, "setRangeSelection" | "se
1524
1531
  playheadRef: React.RefObject<HTMLDivElement | null>;
1525
1532
  laneGapStrips: TimelineLaneGapStrips[];
1526
1533
  dropPreview: TimelineDropPlacement | null;
1534
+ acceptsMediaDrop: boolean;
1527
1535
  setRangeSelection: (value: TimelineRangeSelection | null) => void;
1528
1536
  setResizingClip: (value: ResizingClipState | null) => void;
1529
1537
  setDraggedClip: (value: TimelineLaneBaseProps["draggedClip"]) => void;
@@ -1949,6 +1957,13 @@ interface NLEPreviewProps {
1949
1957
  }
1950
1958
  declare const NLEPreview: react.NamedExoticComponent<NLEPreviewProps>;
1951
1959
 
1960
+ interface ShortcutsButtonProps {
1961
+ sections?: readonly ShortcutSection[];
1962
+ disabled?: boolean;
1963
+ onSeek?: (time: number) => void;
1964
+ }
1965
+ declare function ShortcutsButton({ sections, disabled, onSeek }: ShortcutsButtonProps): react_jsx_runtime.JSX.Element;
1966
+
1952
1967
  interface CompositionLevel {
1953
1968
  /** Unique id — "master" or composition file path */
1954
1969
  id: string;
@@ -2766,11 +2781,12 @@ interface TimelineToolbarProps {
2766
2781
  domEditSession?: DomEditSessionSlice;
2767
2782
  onSplitElement?: (element: TimelineElement, splitTime: number) => void;
2768
2783
  history?: TimelineHistoryButtonsProps;
2784
+ showHistory?: boolean;
2769
2785
  showAddBeat?: boolean;
2770
2786
  /** Hides Add keyframe and auto-record, and turns off auto-record and the K shortcut with them. */
2771
2787
  showKeyframes?: boolean;
2772
2788
  }
2773
- declare function TimelineToolbar({ domEditSession, onSplitElement, history, showAddBeat, showKeyframes, }: TimelineToolbarProps): react_jsx_runtime.JSX.Element;
2789
+ declare function TimelineToolbar({ domEditSession, onSplitElement, history, showHistory, showAddBeat, showKeyframes, }: TimelineToolbarProps): react_jsx_runtime.JSX.Element;
2774
2790
 
2775
2791
  interface AudioMeterStripProps {
2776
2792
  /** Pass a stable ref (useRef): a new object each render restarts the meter loop. */
@@ -3331,7 +3347,8 @@ interface DomEditOverlayProps {
3331
3347
  groupSelections?: DomEditSelection[];
3332
3348
  hoverSelection: DomEditSelection | null;
3333
3349
  allowCanvasMovement?: boolean;
3334
- /** "host": no hover, marquee or box re-select; Enter with nothing focused still opens text. */
3350
+ allowBodyDrag?: boolean;
3351
+ /** "host": no hover, marquee, box re-select, or body drag if allowBodyDrag is false; Enter still opens text. */
3335
3352
  canvasInput?: "overlay" | "host";
3336
3353
  onTextEditingChange?: (editing: boolean) => void;
3337
3354
  /** A click on a single selection's box, in either mode; the event may be the pointerup. */
@@ -3388,7 +3405,7 @@ interface DomEditOverlayProps {
3388
3405
  }
3389
3406
  declare const DomEditOverlay: react.NamedExoticComponent<DomEditOverlayProps>;
3390
3407
 
3391
- type HostInputProps = Pick<ComponentProps<typeof DomEditOverlay>, "canvasInput" | "onSelectionBoxClick">;
3408
+ type HostInputProps = Pick<ComponentProps<typeof DomEditOverlay>, "canvasInput" | "onSelectionBoxClick" | "allowBodyDrag">;
3392
3409
  interface ConnectedDomEditOverlayProps extends HostInputProps {
3393
3410
  activeCompositionPath: string | null;
3394
3411
  showHoverSelection: boolean;
@@ -3397,7 +3414,7 @@ interface ConnectedDomEditOverlayProps extends HostInputProps {
3397
3414
  /** True when an in-place text edit opens its caret, false when it ends or unmounts. */
3398
3415
  onTextEditingChange?: (editing: boolean) => void;
3399
3416
  }
3400
- declare function ConnectedDomEditOverlay({ activeCompositionPath, showHoverSelection, shouldShowSelectedDomBounds, isGestureRecording, canvasInput, onTextEditingChange, onSelectionBoxClick, }: ConnectedDomEditOverlayProps): react_jsx_runtime.JSX.Element;
3417
+ declare function ConnectedDomEditOverlay({ activeCompositionPath, showHoverSelection, shouldShowSelectedDomBounds, isGestureRecording, canvasInput, allowBodyDrag, onTextEditingChange, onSelectionBoxClick, }: ConnectedDomEditOverlayProps): react_jsx_runtime.JSX.Element;
3401
3418
 
3402
3419
  interface RecordEditInput {
3403
3420
  label: string;
@@ -3501,4 +3518,4 @@ interface MarqueeOverlayProps {
3501
3518
  */
3502
3519
  declare function MarqueeOverlay({ candidateRects, marqueeRect }: MarqueeOverlayProps): react_jsx_runtime.JSX.Element;
3503
3520
 
3504
- export { type AgentModalAnchorPoint, type AgentPromptElementInfo, AskAgentModal, type AskAgentModalProps, AudioMeterStrip, type AudioMeterStripProps, AudioWaveform, type AudioWaveformProps, type BlockedTimelineEditIntent, type CanEditTimelineElement, CompositionBreadcrumb, type CompositionDimensions, type CompositionLevel, CompositionThumbnail, ConnectedDomEditOverlay, type ConnectedDomEditOverlayProps, DEFAULT_SHORTCUT_SECTIONS, type DomEditCapabilities, type DomEditCommitDeclineReason, type DomEditCommitOutcome, type DomEditGroupPathOffsetCommit, DomEditOverlay, type DomEditOverlayProps, DomEditProvider, type DomEditSelection, type DomGeometryCommits, type EditHistoryHandle, EditorShell, type EditorShellProps, type ExternalFileChangeBlockedState, type ExternalFileChangeCoordinatorHandle, ExternalFileConflictBanner, type FfmpegStatus, FileTree, GridOverlay, ImageThumbnail, type ImageThumbnailProps, type MarqueeGestures, type MarqueeGesturesDeps, MarqueeOverlay, type MarqueeOverlayProps, type Rect$1 as MarqueeRect, NLEPreview, type PatchOperation, type PersistedRenderSettings, type PickedElement, PlayerControls, type PlayerHandle, type PlayerHandleElement, type PlayerHandleListener, type PlayerHandleTimeListener, type DomEditCompositionRect as PreviewCompositionRect, PreviewGuides, PreviewOverlayProvider, type PreviewOverlayProviderProps, PreviewReadOnlyProvider, type PreviewSnapPreferences, PropertyPanel, type RenderJob, RenderQueue, type RenderQueueProps, type ResolutionPreset, SNAP_THRESHOLD_PX, type ShortcutHint, type ShortcutSection, type SnapContext, type SnapEdge, type SnapGuide, SnapGuideOverlay, type SnapGuideOverlayProps, type SnapGuidesState, type Rect as SnapRect, type SnapResult, type SnapTarget, SnapToolbar, SourceEditor, type SpacingGuide, type StartRenderOptions, StudioApp, StudioFileConflictError, type StudioPendingEditsDrainResult, type ThumbnailPriority, Timeline, TimelineClipMenu, type TimelineClipRenderContext, type TimelineEditCallbacks, type TimelineEditOutcome, type TimelineEditPermission, TimelineEditPopover, TimelineEditProvider, type TimelineElement, TimelineEmptyStatePart, TimelineFrame, TimelineGapMenu, TimelineHistoryButtons, type TimelineHistoryButtonsProps, TimelineKeyframeMenu, TimelineLanes, TimelineOverlays, TimelinePane, type TimelinePaneProps, TimelinePlayhead, TimelineProvider, TimelineRazorGuide, TimelineRuler, TimelineShortcutHint, type TimelineTheme, type TimelineTimeRange$1 as TimelineTimeRange, TimelineToolbar, type TimelineToolbarProps, type TimelineZIndexReorderCommit, type UseClipboardOptions, type UseDomEditSessionParams, type UseDomGeometryCommitOptions, type UseDomStyleCommitOptions, type UseEditHistoryActionsOptions, type UsePersistentEditHistoryOptions, type UsePreviewPersistenceParams, type UseProjectFileWriterOptions, type UseRenderClipContentOptions, type UseTimelineEditingOptions, VideoThumbnail, applyPatch, buildCompositionSnapTarget, buildGridSnapEdges, buildPickerAgentContextPreview, buildPickerAgentPrompt, collectSnapContext, extractSnapTargets, findElementBlock, flushStudioPendingEdits, formatTime, getPersistedRenderSettings, liveTime, mergeStyleIntoTag, parseStyleString, persistRenderSettings, resolveDomEditSelection, resolveEquidistanceGuides, resolveGuideLineRect, resolveIframe, resolveSnapAdjustment, resolveSourceFile, snapEngagedForTravel, useClipboard, useCompositionStack, useDomEditSelectionContext, useDomEditSession, useDomGeometryCommit, useDomStyleCommit, useEditHistoryActions, useElementPicker, useMarqueeGestures, usePersistentEditHistory, usePlayerHandle, usePlayerStore, usePreviewCompositionRect, usePreviewGuidesStore, usePreviewOverlayContext, usePreviewPersistence, useProjectFileWriter, useRenderClipContent, useRenderQueue, useTimelineContext, useTimelineEditing, useTimelinePlayer };
3521
+ export { type AgentModalAnchorPoint, type AgentPromptElementInfo, AskAgentModal, type AskAgentModalProps, AudioMeterStrip, type AudioMeterStripProps, AudioWaveform, type AudioWaveformProps, type BlockedTimelineEditIntent, type CanEditTimelineElement, CompositionBreadcrumb, type CompositionDimensions, type CompositionLevel, CompositionThumbnail, ConnectedDomEditOverlay, type ConnectedDomEditOverlayProps, DEFAULT_SHORTCUT_SECTIONS, type DomEditCapabilities, type DomEditCommitDeclineReason, type DomEditCommitOutcome, type DomEditGroupPathOffsetCommit, DomEditOverlay, type DomEditOverlayProps, DomEditProvider, type DomEditSelection, type DomGeometryCommits, type EditHistoryHandle, EditorShell, type EditorShellProps, type ExternalFileChangeBlockedState, type ExternalFileChangeCoordinatorHandle, ExternalFileConflictBanner, type FfmpegStatus, FileTree, GridOverlay, ImageThumbnail, type ImageThumbnailProps, type MarqueeGestures, type MarqueeGesturesDeps, MarqueeOverlay, type MarqueeOverlayProps, type Rect$1 as MarqueeRect, NLEPreview, type PatchOperation, type PersistedRenderSettings, type PickedElement, PlayerControls, type PlayerHandle, type PlayerHandleElement, type PlayerHandleListener, type PlayerHandleTimeListener, type DomEditCompositionRect as PreviewCompositionRect, PreviewGuides, PreviewOverlayProvider, type PreviewOverlayProviderProps, PreviewReadOnlyProvider, type PreviewSnapPreferences, PropertyPanel, type RenderJob, RenderQueue, type RenderQueueProps, type ResolutionPreset, SNAP_THRESHOLD_PX, type ShortcutHint, type ShortcutSection, ShortcutsButton, type ShortcutsButtonProps, type SnapContext, type SnapEdge, type SnapGuide, SnapGuideOverlay, type SnapGuideOverlayProps, type SnapGuidesState, type Rect as SnapRect, type SnapResult, type SnapTarget, SnapToolbar, SourceEditor, type SpacingGuide, type StartRenderOptions, StudioApp, StudioFileConflictError, type StudioPendingEditsDrainResult, TRACK_H, type ThumbnailPriority, Timeline, TimelineClipMenu, type TimelineClipRenderContext, type TimelineEditCallbacks, type TimelineEditOutcome, type TimelineEditPermission, TimelineEditPopover, TimelineEditProvider, type TimelineElement, TimelineEmptyStatePart, TimelineFrame, TimelineGapMenu, TimelineHistoryButtons, type TimelineHistoryButtonsProps, TimelineKeyframeMenu, TimelineLanes, TimelineOverlays, TimelinePane, type TimelinePaneProps, TimelinePlayhead, TimelineProvider, TimelineRazorGuide, TimelineRuler, TimelineShortcutHint, type TimelineTheme, type TimelineTimeRange$1 as TimelineTimeRange, TimelineToolbar, type TimelineToolbarProps, type TimelineTrackPadding, type TimelineZIndexReorderCommit, type UseClipboardOptions, type UseDomEditSessionParams, type UseDomGeometryCommitOptions, type UseDomStyleCommitOptions, type UseEditHistoryActionsOptions, type UsePersistentEditHistoryOptions, type UsePreviewPersistenceParams, type UseProjectFileWriterOptions, type UseRenderClipContentOptions, type UseTimelineEditingOptions, VideoThumbnail, applyPatch, buildCompositionSnapTarget, buildGridSnapEdges, buildPickerAgentContextPreview, buildPickerAgentPrompt, collectSnapContext, extractSnapTargets, findElementBlock, flushStudioPendingEdits, formatTime, getPersistedRenderSettings, liveTime, mergeStyleIntoTag, parseStyleString, persistRenderSettings, resolveDomEditSelection, resolveEquidistanceGuides, resolveGuideLineRect, resolveIframe, resolveSnapAdjustment, resolveSourceFile, snapEngagedForTravel, useClipboard, useCompositionStack, useDomEditSelectionContext, useDomEditSession, useDomGeometryCommit, useDomStyleCommit, useEditHistoryActions, useElementPicker, useMarqueeGestures, usePersistentEditHistory, usePlayerHandle, usePlayerStore, usePreviewCompositionRect, usePreviewGuidesStore, usePreviewOverlayContext, usePreviewPersistence, useProjectFileWriter, useRenderClipContent, useRenderQueue, useTimelineContext, useTimelineEditing, useTimelinePlayer };
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-CYk0NwSv.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-Cc4by8r7.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/assets/index-Dx79V1Se.css">
10
10
  </head>
11
11
  <body>