hyperframes 0.8.88 → 0.8.89
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/{add-6EIX4VO2.js → add-JDX7VHMM.js} +5 -5
- package/dist/{asset-BYFQENI4.js → asset-ZQU3ZAHZ.js} +2 -2
- package/dist/{auth-CNYWEFA6.js → auth-ZI5X6SXG.js} +1 -1
- package/dist/{autoUpdate-FN4SJBTE.js → autoUpdate-BDREI4XN.js} +2 -2
- package/dist/{backgroundChecks-ODS4VEB5.js → backgroundChecks-52MY7SIC.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{beats-RTVNXBLK.js → beats-77Z6UPMB.js} +4 -4
- package/dist/{benchmark-KKPDM7PU.js → benchmark-HR242B6Q.js} +5 -5
- package/dist/{browser-ADH34IWX.js → browser-CLQNZB5J.js} +3 -3
- package/dist/{catalog-5NIRSEF7.js → catalog-OAJVYTXP.js} +5 -5
- package/dist/{check-PRVHJKEC.js → check-AJB25CBI.js} +9 -9
- package/dist/{checkBrowser-CY3FMWQV.js → checkBrowser-RTZFBO62.js} +7 -7
- package/dist/{chunk-2KCIKXV3.js → chunk-BEZ5LKUM.js} +2 -2
- package/dist/{chunk-ICWOWWC6.js → chunk-C22UJWNH.js} +1 -1
- package/dist/{chunk-UP5KFGFZ.js → chunk-CZXT2DRB.js} +2 -2
- package/dist/{chunk-4ARA5OTM.js → chunk-EAJNP7C7.js} +1 -1
- package/dist/{chunk-F6D4LJQG.js → chunk-ELQAAO4F.js} +1 -1
- package/dist/{chunk-ZDAF2XYX.js → chunk-J4ZDN5N7.js} +2 -2
- package/dist/{chunk-BM25TRQX.js → chunk-LTCGOUKZ.js} +2 -2
- package/dist/{chunk-RXRF3N5D.js → chunk-PKK6QWAQ.js} +1 -1
- package/dist/{chunk-XDDHE52R.js → chunk-RLKPZQKI.js} +2 -2
- package/dist/{chunk-Q2FGKCVO.js → chunk-ROFOQAPQ.js} +2 -2
- package/dist/{chunk-AV7ASJOK.js → chunk-S2F6QM6J.js} +1 -1
- package/dist/{chunk-RIEQ7B3Q.js → chunk-SAYNFMCN.js} +1 -1
- package/dist/{chunk-UX3MPYCP.js → chunk-TQNLHVZB.js} +2 -2
- package/dist/{chunk-VGS3ZUDB.js → chunk-XMDQQAIB.js} +1 -1
- package/dist/{chunk-DDXTUSZ3.js → chunk-Z4LBLZ3I.js} +2 -2
- package/dist/{clean-ILEUS4I4.js → clean-YNSDX62K.js} +3 -3
- package/dist/cli.js +44 -44
- package/dist/{cloud-YKZ6FMFO.js → cloud-O6C6D2CC.js} +4 -4
- package/dist/{compare-A7HXMQA2.js → compare-32ZYX7EU.js} +4 -4
- package/dist/{component-GSYJQJH2.js → component-OX6ODG5G.js} +3 -3
- package/dist/{compositions-4K3YFH25.js → compositions-IAWH2EMO.js} +5 -5
- package/dist/{delete-5R7CYMLA.js → delete-4AGDWC2T.js} +2 -2
- package/dist/{doctor-HGGU5EPV.js → doctor-AH7IX5Z6.js} +3 -3
- package/dist/{events-CT5MGBWG.js → events-6M6FDQZZ.js} +3 -3
- package/dist/{events-RQHXK2BA.js → events-CJRCDPWV.js} +2 -2
- package/dist/{feedback-S5TP76SF.js → feedback-C6DJ6XKA.js} +4 -4
- package/dist/{figma-JVTSWBQC.js → figma-L5RHNGY7.js} +3 -3
- package/dist/fontLocalizeCli.js +1 -1
- package/dist/{get-B6QNBIOY.js → get-TBBCYF5B.js} +2 -2
- package/dist/{grade-compare-53VJQ6AR.js → grade-compare-FNPPD6UE.js} +4 -4
- package/dist/{help-74I7OBNZ.js → help-L4V4PV7C.js} +1 -1
- package/dist/{history-JAICBG5J.js → history-EEWE52BC.js} +5 -5
- package/dist/hyperframes-player.global.js +1 -1
- package/dist/{info-DPLY233F.js → info-VQYR7VW6.js} +5 -5
- package/dist/{init-GH473WVQ.js → init-L5BK5HGZ.js} +6 -6
- package/dist/{inspect-ALZBOAVC.js → inspect-4DSMPUHN.js} +6 -6
- package/dist/{keyframes-3IHD4566.js → keyframes-AXHMLOSU.js} +5 -5
- package/dist/{layout-DIE6IDNL.js → layout-ZV23GQU6.js} +6 -6
- package/dist/{lint-BK7RM2VI.js → lint-HZIRYUSA.js} +6 -6
- package/dist/{list-IETRGPUL.js → list-DLBDHWZ2.js} +2 -2
- package/dist/{login-6MOHVUEO.js → login-3PLQRQEP.js} +4 -4
- package/dist/{media-treatment-GLTDA25U.js → media-treatment-7TZ7L7NU.js} +5 -5
- package/dist/{normalize-audio-225AHD54.js → normalize-audio-SX64JNLW.js} +4 -4
- package/dist/{play-N2G5Z7OL.js → play-VX2LSHXR.js} +4 -4
- package/dist/{present-TVY4QRSP.js → present-F2DPEKZU.js} +4 -4
- package/dist/{preview-H5D4G6V6.js → preview-ARITZNNL.js} +5 -5
- package/dist/{render-JDBG7432.js → render-2VWTXUCT.js} +5 -5
- package/dist/{render-LDKZKOVA.js → render-FT4NTFKZ.js} +5 -5
- package/dist/skills/media-use/audio/references/bgm.md +2 -0
- package/dist/skills/media-use/audio/references/sfx.md +2 -3
- package/dist/skills/media-use/audio/references/tts.md +1 -1
- package/dist/skills/media-use/audio/scripts/audio.mjs +5 -2
- package/dist/skills/media-use/audio/scripts/audio.test.mjs +61 -8
- package/dist/skills/media-use/audio/scripts/gemini-pipeline.test.mjs +14 -3
- package/dist/skills/media-use/audio/scripts/lib/bgm.mjs +8 -4
- package/dist/skills/media-use/audio/scripts/lib/bgm.test.mjs +45 -1
- package/dist/skills/media-use/audio/scripts/lib/media-record.mjs +43 -2
- package/dist/skills/media-use/audio/scripts/lib/media-record.test.mjs +54 -2
- package/dist/skills/media-use/audio/scripts/lib/sfx.mjs +36 -17
- package/dist/skills/media-use/audio/scripts/lib/sfx.test.mjs +53 -1
- package/dist/skills/media-use/scripts/lib/manifest.mjs +3 -0
- package/dist/skills/media-use/scripts/resolve.mjs +4 -4
- package/dist/{skills-QWPGK2MN.js → skills-KDD7E5CB.js} +5 -5
- package/dist/{skillsUpdateCheck-JY23Q7EF.js → skillsUpdateCheck-DXGEK4AH.js} +3 -3
- package/dist/{snapshot-HCLMYOWI.js → snapshot-BSOD5KKR.js} +4 -4
- package/dist/studio/assets/{hyperframes-player-w3Bbv0kd.js → hyperframes-player-CVoS7kv8.js} +1 -1
- package/dist/studio/assets/{index-DE6cZYR5.js → index-BM8PwYby.js} +111 -111
- package/dist/studio/assets/{index-DldknZPp.js → index-D35-L_yn.js} +1 -1
- package/dist/studio/assets/{index-B6PGJTzp.js → index-DBub9qQY.js} +1 -1
- package/dist/studio/index.d.ts +39 -5
- package/dist/studio/index.html +1 -1
- package/dist/studio/index.js +105 -2
- package/dist/studio/index.js.map +1 -1
- package/dist/{studioServer-LZDGVKYT.js → studioServer-2IK5LLRR.js} +4 -4
- package/dist/{telemetry-Z3RLGWGK.js → telemetry-6P5WHWYI.js} +3 -3
- package/dist/{timeline-WOKBCYLM.js → timeline-QZ4Q2LED.js} +5 -5
- package/dist/{tokens-RTP2IROL.js → tokens-VXZYKHFV.js} +2 -2
- package/dist/{transcribe-ASVWZ3GP.js → transcribe-RQ6RHU2V.js} +3 -3
- package/dist/{updateCheck-5LM5GJCF.js → updateCheck-RRWEIZY7.js} +2 -2
- package/dist/{upgrade-YWWAFHLF.js → upgrade-LI5TVSQQ.js} +2 -2
- package/dist/{validate-EWNJ4VOI.js → validate-I56RAOC6.js} +6 -6
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as P}from"./index-
|
|
1
|
+
import{g as P}from"./index-BM8PwYby.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/studio/index.d.ts
CHANGED
|
@@ -3348,18 +3348,18 @@ interface DomEditOverlayProps {
|
|
|
3348
3348
|
y: number;
|
|
3349
3349
|
}, modifiers?: {
|
|
3350
3350
|
altKey?: boolean;
|
|
3351
|
-
}) => Promise<
|
|
3352
|
-
onGroupPathOffsetCommit: (updates: DomEditGroupPathOffsetCommit[]) => Promise<
|
|
3351
|
+
}) => Promise<unknown> | void;
|
|
3352
|
+
onGroupPathOffsetCommit: (updates: DomEditGroupPathOffsetCommit[]) => Promise<unknown> | void;
|
|
3353
3353
|
onBoxSizeCommit: (selection: DomEditSelection, next: {
|
|
3354
3354
|
width: number;
|
|
3355
3355
|
height: number;
|
|
3356
3356
|
}, offset?: {
|
|
3357
3357
|
x: number;
|
|
3358
3358
|
y: number;
|
|
3359
|
-
}, restore?: () => void) => Promise<
|
|
3359
|
+
}, restore?: () => void) => Promise<unknown> | void;
|
|
3360
3360
|
onRotationCommit: (selection: DomEditSelection, next: {
|
|
3361
3361
|
angle: number;
|
|
3362
|
-
}) => Promise<
|
|
3362
|
+
}) => Promise<unknown> | void;
|
|
3363
3363
|
onStyleCommit?: (property: string, value: string) => Promise<unknown> | void;
|
|
3364
3364
|
recordingState?: GestureRecordingState;
|
|
3365
3365
|
onToggleRecording?: () => void;
|
|
@@ -3421,6 +3421,40 @@ declare function useDomStyleCommit({ projectId, iframeRef, writeProjectFile, rec
|
|
|
3421
3421
|
waitForPendingSaves: () => Promise<DomEditSaveDrainResult>;
|
|
3422
3422
|
};
|
|
3423
3423
|
|
|
3424
|
+
/**
|
|
3425
|
+
* Studio's `Player` must show the project, with `beginTimelineSession(projectId)` run before it
|
|
3426
|
+
* mounts; drain `waitForPendingSaves` before switching projects.
|
|
3427
|
+
*/
|
|
3428
|
+
interface UseDomGeometryCommitOptions extends UseDomStyleCommitOptions {
|
|
3429
|
+
/** Called when a save cannot patch the preview in place; defaults to reloading the iframe. */
|
|
3430
|
+
reloadPreview?: () => void;
|
|
3431
|
+
}
|
|
3432
|
+
interface DomGeometryCommits {
|
|
3433
|
+
commitPathOffset: (selection: DomEditSelection, next: {
|
|
3434
|
+
x: number;
|
|
3435
|
+
y: number;
|
|
3436
|
+
}, modifiers?: {
|
|
3437
|
+
altKey?: boolean;
|
|
3438
|
+
}) => Promise<DomEditCommitOutcome>;
|
|
3439
|
+
commitGroupPathOffset: (updates: DomEditGroupPathOffsetCommit[]) => Promise<DomEditCommitOutcome>;
|
|
3440
|
+
commitBoxSize: (selection: DomEditSelection, next: {
|
|
3441
|
+
width: number;
|
|
3442
|
+
height: number;
|
|
3443
|
+
}, offset?: {
|
|
3444
|
+
x: number;
|
|
3445
|
+
y: number;
|
|
3446
|
+
}, restore?: () => void) => Promise<DomEditCommitOutcome>;
|
|
3447
|
+
commitRotation: (selection: DomEditSelection, next: {
|
|
3448
|
+
angle: number;
|
|
3449
|
+
}) => Promise<DomEditCommitOutcome>;
|
|
3450
|
+
waitForPendingSaves: () => Promise<void>;
|
|
3451
|
+
}
|
|
3452
|
+
/**
|
|
3453
|
+
* Saves canvas moves, resizes and rotations through Studio's own GSAP-aware commits, for a host
|
|
3454
|
+
* without the editor. A failed save rejects, so DomEditOverlay undoes the live gesture.
|
|
3455
|
+
*/
|
|
3456
|
+
declare function useDomGeometryCommit({ projectId, iframeRef, writeProjectFile, recordEdit, activeCompPath, showToast, reloadPreview, }: UseDomGeometryCommitOptions): DomGeometryCommits;
|
|
3457
|
+
|
|
3424
3458
|
interface MarqueeGesturesDeps<T = DomEditSelection> {
|
|
3425
3459
|
iframeRef: React.RefObject<HTMLIFrameElement | null>;
|
|
3426
3460
|
overlayRef: React.RefObject<HTMLDivElement | null>;
|
|
@@ -3463,4 +3497,4 @@ interface MarqueeOverlayProps {
|
|
|
3463
3497
|
*/
|
|
3464
3498
|
declare function MarqueeOverlay({ candidateRects, marqueeRect }: MarqueeOverlayProps): react_jsx_runtime.JSX.Element;
|
|
3465
3499
|
|
|
3466
|
-
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 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 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, useDomStyleCommit, useEditHistoryActions, useElementPicker, useMarqueeGestures, usePersistentEditHistory, usePlayerHandle, usePlayerStore, usePreviewCompositionRect, usePreviewGuidesStore, usePreviewOverlayContext, usePreviewPersistence, useProjectFileWriter, useRenderClipContent, useRenderQueue, useTimelineContext, useTimelineEditing, useTimelinePlayer };
|
|
3500
|
+
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 };
|
package/dist/studio/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-BM8PwYby.js"></script>
|
|
9
9
|
<link rel="stylesheet" crossorigin href="/assets/index-Dx79V1Se.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
package/dist/studio/index.js
CHANGED
|
@@ -77146,8 +77146,15 @@ function useGsapAwareEditing({
|
|
|
77146
77146
|
);
|
|
77147
77147
|
const handleGsapAwareBoxSizeCommit = useCallback135(
|
|
77148
77148
|
async (selection, next, offset, restore = () => void 0) => {
|
|
77149
|
-
|
|
77150
|
-
|
|
77149
|
+
let targetAnimations;
|
|
77150
|
+
try {
|
|
77151
|
+
const ownedAnimations = getGsapAnimationsForSelection(selection);
|
|
77152
|
+
targetAnimations = Array.isArray(ownedAnimations) ? ownedAnimations : await ownedAnimations;
|
|
77153
|
+
} catch (error) {
|
|
77154
|
+
restore();
|
|
77155
|
+
trackGsapInteractionFailure(error, selection, "resize", "Resize animated layer");
|
|
77156
|
+
throw error;
|
|
77157
|
+
}
|
|
77151
77158
|
const scaleRoute = targetAnimations.some((anim) => anim.propertyGroup === "scale");
|
|
77152
77159
|
const selector = selectorFromSelection(selection);
|
|
77153
77160
|
const hasLivePositionTween = selector ? hasNonHoldTweenForElement(
|
|
@@ -91832,6 +91839,101 @@ function useDomStyleCommit({
|
|
|
91832
91839
|
return { commitStyle, waitForPendingSaves: queue2.waitForIdle };
|
|
91833
91840
|
}
|
|
91834
91841
|
|
|
91842
|
+
// src/hooks/useDomGeometryCommit.ts
|
|
91843
|
+
import { useCallback as useCallback185, useMemo as useMemo81, useRef as useRef183 } from "react";
|
|
91844
|
+
var noop2 = () => {
|
|
91845
|
+
};
|
|
91846
|
+
var NO_SELECTED_ANIMATIONS = [];
|
|
91847
|
+
var noDomBoxSizeRoute = () => Promise.reject(new Error("Resize has no DOM route here"));
|
|
91848
|
+
function useDomGeometryCommit({
|
|
91849
|
+
projectId,
|
|
91850
|
+
iframeRef,
|
|
91851
|
+
writeProjectFile,
|
|
91852
|
+
recordEdit,
|
|
91853
|
+
activeCompPath = null,
|
|
91854
|
+
showToast = noop2,
|
|
91855
|
+
reloadPreview
|
|
91856
|
+
}) {
|
|
91857
|
+
const projectIdRef = useRef183(projectId);
|
|
91858
|
+
projectIdRef.current = projectId;
|
|
91859
|
+
const pending2 = useRef183(/* @__PURE__ */ new Set()).current;
|
|
91860
|
+
const editHistory = useMemo81(() => ({ recordEdit }), [recordEdit]);
|
|
91861
|
+
const reload = useCallback185(
|
|
91862
|
+
() => reloadPreview ? reloadPreview() : iframeRef.current?.contentWindow?.location.reload(),
|
|
91863
|
+
[reloadPreview, iframeRef]
|
|
91864
|
+
);
|
|
91865
|
+
const { bump: bumpGsapCache } = useGsapCacheVersion();
|
|
91866
|
+
const gsap3 = useGsapScriptCommits({
|
|
91867
|
+
projectIdRef,
|
|
91868
|
+
activeCompPath,
|
|
91869
|
+
previewIframeRef: iframeRef,
|
|
91870
|
+
editHistory,
|
|
91871
|
+
reloadPreview: reload,
|
|
91872
|
+
onCacheInvalidate: bumpGsapCache,
|
|
91873
|
+
showToast,
|
|
91874
|
+
writeProjectFile
|
|
91875
|
+
});
|
|
91876
|
+
const makeFetchFallback = useGsapAnimationFetchFallback(projectId);
|
|
91877
|
+
const trackGsapInteractionFailure = useGsapInteractionFailureTelemetry(activeCompPath, showToast);
|
|
91878
|
+
const {
|
|
91879
|
+
handleGsapAwarePathOffsetCommit,
|
|
91880
|
+
handleGsapAwareGroupPathOffsetCommit,
|
|
91881
|
+
handleGsapAwareBoxSizeCommit,
|
|
91882
|
+
handleGsapAwareRotationCommit
|
|
91883
|
+
} = useGsapAwareEditing({
|
|
91884
|
+
// The host owns selection, so every gesture reads its element's animations from the server.
|
|
91885
|
+
domEditSelection: null,
|
|
91886
|
+
selectedGsapAnimations: NO_SELECTED_ANIMATIONS,
|
|
91887
|
+
gsapCommitMutation: gsap3.commitMutation,
|
|
91888
|
+
previewIframeRef: iframeRef,
|
|
91889
|
+
showToast,
|
|
91890
|
+
bumpGsapCache,
|
|
91891
|
+
makeFetchFallback,
|
|
91892
|
+
trackGsapInteractionFailure,
|
|
91893
|
+
handleDomBoxSizeCommit: noDomBoxSizeRoute,
|
|
91894
|
+
addGsapAnimation: gsap3.addGsapAnimation,
|
|
91895
|
+
convertToKeyframes: gsap3.convertToKeyframes,
|
|
91896
|
+
setArcPath: gsap3.setArcPath,
|
|
91897
|
+
updateArcSegment: gsap3.updateArcSegment
|
|
91898
|
+
});
|
|
91899
|
+
const saved2 = useCallback185(
|
|
91900
|
+
async (commit, restore = noop2) => {
|
|
91901
|
+
const refusal2 = !projectIdRef.current ? "No project is open" : !isPreviewBooted(projectIdRef.current) ? "The preview for this project has not loaded yet" : null;
|
|
91902
|
+
if (refusal2) {
|
|
91903
|
+
restore();
|
|
91904
|
+
showToast(refusal2, "error");
|
|
91905
|
+
throw new Error(refusal2);
|
|
91906
|
+
}
|
|
91907
|
+
const run = commit();
|
|
91908
|
+
pending2.add(run);
|
|
91909
|
+
try {
|
|
91910
|
+
await run;
|
|
91911
|
+
} finally {
|
|
91912
|
+
pending2.delete(run);
|
|
91913
|
+
}
|
|
91914
|
+
return { ok: true };
|
|
91915
|
+
},
|
|
91916
|
+
[pending2, showToast]
|
|
91917
|
+
);
|
|
91918
|
+
return useMemo81(
|
|
91919
|
+
() => ({
|
|
91920
|
+
commitPathOffset: (selection, next, modifiers) => saved2(() => handleGsapAwarePathOffsetCommit(selection, next, modifiers)),
|
|
91921
|
+
commitGroupPathOffset: (updates) => saved2(() => handleGsapAwareGroupPathOffsetCommit(updates)),
|
|
91922
|
+
commitBoxSize: (selection, next, offset, restore) => saved2(() => handleGsapAwareBoxSizeCommit(selection, next, offset, restore), restore),
|
|
91923
|
+
commitRotation: (selection, next) => saved2(() => handleGsapAwareRotationCommit(selection, next)),
|
|
91924
|
+
waitForPendingSaves: () => Promise.allSettled([...pending2]).then(noop2)
|
|
91925
|
+
}),
|
|
91926
|
+
[
|
|
91927
|
+
saved2,
|
|
91928
|
+
pending2,
|
|
91929
|
+
handleGsapAwarePathOffsetCommit,
|
|
91930
|
+
handleGsapAwareGroupPathOffsetCommit,
|
|
91931
|
+
handleGsapAwareBoxSizeCommit,
|
|
91932
|
+
handleGsapAwareRotationCommit
|
|
91933
|
+
]
|
|
91934
|
+
);
|
|
91935
|
+
}
|
|
91936
|
+
|
|
91835
91937
|
// src/index.ts
|
|
91836
91938
|
import {
|
|
91837
91939
|
playSeamTransitionLoop
|
|
@@ -91941,6 +92043,7 @@ export {
|
|
|
91941
92043
|
useCompositionStack,
|
|
91942
92044
|
useDomEditSelectionContext,
|
|
91943
92045
|
useDomEditSession,
|
|
92046
|
+
useDomGeometryCommit,
|
|
91944
92047
|
useDomStyleCommit,
|
|
91945
92048
|
useEditHistoryActions,
|
|
91946
92049
|
useElementPicker,
|