hyperframes 0.8.52 → 0.8.53

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.
@@ -1,4 +1,4 @@
1
- import{n as Qi}from"./index-DocJlW2v.js";/*!
1
+ import{n as Qi}from"./index-HfP3sap2.js";/*!
2
2
  * Copyright (c) 2026-present, Vanilagy and contributors
3
3
  *
4
4
  * This Source Code Form is subject to the terms of the Mozilla Public
@@ -1 +1 @@
1
- import{g as P}from"./index-DocJlW2v.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-HfP3sap2.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};
@@ -0,0 +1,29 @@
1
+ @import "dockview-react/dist/styles/dockview.css";
2
+
3
+ /* src/components/dock/dock.css */
4
+ .hf-dock {
5
+ --dv-group-view-background-color: var(--color-panel-bg);
6
+ --dv-tabs-and-actions-container-background-color: var(--color-panel-surface);
7
+ --dv-activegroup-visiblepanel-tab-background-color: var(--color-panel-bg);
8
+ --dv-activegroup-hiddenpanel-tab-background-color: var(--color-panel-surface);
9
+ --dv-inactivegroup-visiblepanel-tab-background-color: var(--color-panel-bg);
10
+ --dv-inactivegroup-hiddenpanel-tab-background-color: var(--color-panel-surface);
11
+ --dv-activegroup-visiblepanel-tab-color: var(--color-panel-text-1);
12
+ --dv-activegroup-hiddenpanel-tab-color: var(--color-panel-text-3);
13
+ --dv-inactivegroup-visiblepanel-tab-color: var(--color-panel-text-2);
14
+ --dv-inactivegroup-hiddenpanel-tab-color: var(--color-panel-text-4);
15
+ --dv-tab-divider-color: var(--color-panel-border);
16
+ --dv-separator-border: var(--color-panel-border);
17
+ --dv-paneview-header-border-color: var(--color-panel-border);
18
+ --dv-sash-color: var(--color-panel-hover);
19
+ --dv-active-sash-color: var(--color-panel-accent);
20
+ --dv-drag-over-background-color: color-mix(in srgb, var(--color-panel-accent) 12%, transparent);
21
+ --dv-drag-over-border-color: var(--color-panel-accent);
22
+ --dv-tab-font-size: 11px;
23
+ --dv-tabs-and-actions-container-font-size: 11px;
24
+ }
25
+ .hf-dock .dv-sash:focus-visible {
26
+ background-color: var(--dv-active-sash-color);
27
+ outline: none;
28
+ }
29
+ /*# sourceMappingURL=index.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/dock/dock.css"],"sourcesContent":["@import \"dockview-react/dist/styles/dockview.css\";\n\n.hf-dock {\n --dv-group-view-background-color: var(--color-panel-bg);\n --dv-tabs-and-actions-container-background-color: var(--color-panel-surface);\n --dv-activegroup-visiblepanel-tab-background-color: var(--color-panel-bg);\n --dv-activegroup-hiddenpanel-tab-background-color: var(--color-panel-surface);\n --dv-inactivegroup-visiblepanel-tab-background-color: var(--color-panel-bg);\n --dv-inactivegroup-hiddenpanel-tab-background-color: var(--color-panel-surface);\n --dv-activegroup-visiblepanel-tab-color: var(--color-panel-text-1);\n --dv-activegroup-hiddenpanel-tab-color: var(--color-panel-text-3);\n --dv-inactivegroup-visiblepanel-tab-color: var(--color-panel-text-2);\n --dv-inactivegroup-hiddenpanel-tab-color: var(--color-panel-text-4);\n --dv-tab-divider-color: var(--color-panel-border);\n --dv-separator-border: var(--color-panel-border);\n --dv-paneview-header-border-color: var(--color-panel-border);\n --dv-sash-color: var(--color-panel-hover);\n --dv-active-sash-color: var(--color-panel-accent);\n --dv-drag-over-background-color: color-mix(in srgb, var(--color-panel-accent) 12%, transparent);\n --dv-drag-over-border-color: var(--color-panel-accent);\n --dv-tab-font-size: 11px;\n --dv-tabs-and-actions-container-font-size: 11px;\n}\n\n.hf-dock .dv-sash:focus-visible {\n background-color: var(--dv-active-sash-color);\n outline: none;\n}\n"],"mappings":";;;AAEA,CAAC;AACC,oCAAkC,IAAI;AACtC,oDAAkD,IAAI;AACtD,sDAAoD,IAAI;AACxD,qDAAmD,IAAI;AACvD,wDAAsD,IAAI;AAC1D,uDAAqD,IAAI;AACzD,2CAAyC,IAAI;AAC7C,0CAAwC,IAAI;AAC5C,6CAA2C,IAAI;AAC/C,4CAA0C,IAAI;AAC9C,0BAAwB,IAAI;AAC5B,yBAAuB,IAAI;AAC3B,qCAAmC,IAAI;AACvC,mBAAiB,IAAI;AACrB,0BAAwB,IAAI;AAC5B,mCAAiC,UAAU,GAAG,IAAI,EAAE,IAAI,sBAAsB,GAAG,EAAE;AACnF,+BAA6B,IAAI;AACjC,sBAAoB;AACpB,6CAA2C;AAC7C;AAEA,CAtBC,QAsBQ,CAAC,OAAO;AACf,oBAAkB,IAAI;AACtB,WAAS;AACX;","names":[]}
@@ -37,6 +37,11 @@ declare const buttonBase: string;
37
37
  * repeats the `hover:` and `active:` half exactly; the test pairs them.
38
38
  */
39
39
  declare const buttonVariants: Record<ButtonVariant, string>;
40
+ /**
41
+ * The three control heights, 24 / 28 / 32 px, from `--spacing-ctl-*`.
42
+ * Exported so the Capture download `<a href>` can wear the same recipe as a Button.
43
+ */
44
+ declare const buttonSizes: Record<ButtonSize, string>;
40
45
  declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLButtonElement>>;
41
46
 
42
47
  interface IconButtonProps extends ButtonBaseProps {
@@ -83,6 +88,8 @@ interface TooltipProps {
83
88
  }
84
89
  declare function Tooltip({ label, children, delay, side }: TooltipProps): react_jsx_runtime.JSX.Element;
85
90
 
91
+ declare function HyperframesLogo(): react_jsx_runtime.JSX.Element;
92
+
86
93
  /**
87
94
  * Studio's tailwind-merge config: teaches it the two scales `theme.css`
88
95
  * invents (`text-step-*`, `ctl`/`ctl-sm`/`ctl-lg`) so overrides replace, not stack.
@@ -226,6 +233,8 @@ declare function NumberField({ label, value, onCommit, onTrack, unit, min, max,
226
233
  interface SelectOption {
227
234
  label: string;
228
235
  value: string;
236
+ /** Offered but not choosable; the label stays visible so the reason stays visible too. */
237
+ disabled?: boolean;
229
238
  }
230
239
  interface SelectProps {
231
240
  /** Accessible name for the trigger. */
@@ -1255,10 +1264,8 @@ type RenderClipContent = (element: TimelineElement, style: {
1255
1264
  label: string;
1256
1265
  }) => ReactNode;
1257
1266
  interface EditorShellProps extends TimelineEditCallbackDeps {
1258
- /** Left sidebar (media/library), rendered in the top row. */
1259
- left: ReactNode;
1260
- /** Right panel (inspector/design) or null when collapsed, in the top row. */
1261
- right: ReactNode;
1267
+ /** Dock.Panel elements for every panel except the built-in preview and timeline. */
1268
+ panels: ReactNode;
1262
1269
  timelineToolbar: ReactNode;
1263
1270
  renderClipContent: RenderClipContent;
1264
1271
  handleTimelineElementDelete: (element: TimelineElement) => Promise<void> | void;
@@ -1288,7 +1295,7 @@ interface EditorShellProps extends TimelineEditCallbackDeps {
1288
1295
  */
1289
1296
  gestureOverlay?: ReactNode;
1290
1297
  }
1291
- declare function EditorShell({ left, right, timelineToolbar, renderClipContent, handleTimelineElementDelete, handleTimelineAssetDrop, handleTimelineBlockDrop, handleTimelineCompositionDrop, handlePreviewBlockDrop, handleTimelineFileDrop, handleTimelineElementMove, handleTimelineElementsMove, handleTimelineElementResize, handleTimelineGroupResize, handleToggleTrackHidden, setAudioGroupAttribute, handleGroupClips, setElementFxAttribute, handleBlockedTimelineEdit, handleTimelineElementSplit, handleRazorSplit, handleRazorSplitAll, onCopyClip, onPasteClip, onDuplicateClip, canPasteClip, setCompIdToSrc, setCompositionLoading, shouldShowMotionPath, shouldShowSelectedDomBounds, isGestureRecording, recordingState, onToggleRecording, blockPreview, gestureOverlay, }: EditorShellProps): react_jsx_runtime.JSX.Element;
1298
+ declare function EditorShell({ panels, timelineToolbar, renderClipContent, handleTimelineElementDelete, handleTimelineAssetDrop, handleTimelineBlockDrop, handleTimelineCompositionDrop, handlePreviewBlockDrop, handleTimelineFileDrop, handleTimelineElementMove, handleTimelineElementsMove, handleTimelineElementResize, handleTimelineGroupResize, handleToggleTrackHidden, setAudioGroupAttribute, handleGroupClips, setElementFxAttribute, handleBlockedTimelineEdit, handleTimelineElementSplit, handleRazorSplit, handleRazorSplitAll, onCopyClip, onPasteClip, onDuplicateClip, canPasteClip, setCompIdToSrc, setCompositionLoading, shouldShowMotionPath, shouldShowSelectedDomBounds, isGestureRecording, recordingState, onToggleRecording, blockPreview, gestureOverlay, }: EditorShellProps): react_jsx_runtime.JSX.Element;
1292
1299
 
1293
1300
  interface NLEPreviewProps {
1294
1301
  projectId: string;
@@ -1742,4 +1749,4 @@ declare function findElementBlock(html: string, elementId: string): {
1742
1749
  isSelfClosing: boolean;
1743
1750
  } | null;
1744
1751
 
1745
- export { type AgentModalAnchorPoint, type AgentPromptElementInfo, AskAgentModal, type AskAgentModalProps, Button, type ButtonSize, type ButtonVariant, CompositionBreadcrumb, type CompositionDimensions, type CompositionLevel, CompositionThumbnail, ContextMenu, EditorShell, type EditorShellProps, type FfmpegStatus, FileTree, IconButton, Input, type InputProps, Menu, MenuItem, type MenuItemTone, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuShortcut, NLEPreview, NumberField, type NumberFieldProps, type PatchOperation, type PersistedRenderSettings, type PickedElement, Player, PlayerControls, Popover, type PopupPreviewState, type DomEditCompositionRect as PreviewCompositionRect, type PreviewState, PropertyPanel, type RenderJob, RenderQueue, type RenderQueueProps, type ResolutionPreset, Select, type SelectOption, type SelectProps, Slider, type SliderProps, SourceEditor, type StartRenderOptions, StudioApp, Tab, TabPanel, Tabs, TabsList, Timeline, type TimelineElement, Toggle, type ToggleProps, Tooltip, VideoThumbnail, applyPatch, buildPickerAgentContextPreview, buildPickerAgentPrompt, buttonBase, buttonVariants, cn, fieldBase, fieldText, findElementBlock, formatTime, getPersistedRenderSettings, liveTime, mergeStyleIntoTag, parseStyleString, persistRenderSettings, popupSurface, resolveIframe, resolveSourceFile, useElementPicker, usePlayerStore, usePreviewCompositionRect, useRenderQueue, useTimelinePlayer };
1752
+ export { type AgentModalAnchorPoint, type AgentPromptElementInfo, AskAgentModal, type AskAgentModalProps, Button, type ButtonSize, type ButtonVariant, CompositionBreadcrumb, type CompositionDimensions, type CompositionLevel, CompositionThumbnail, ContextMenu, EditorShell, type EditorShellProps, type FfmpegStatus, FileTree, HyperframesLogo, IconButton, Input, type InputProps, Menu, MenuItem, type MenuItemTone, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuShortcut, NLEPreview, NumberField, type NumberFieldProps, type PatchOperation, type PersistedRenderSettings, type PickedElement, Player, PlayerControls, Popover, type PopupPreviewState, type DomEditCompositionRect as PreviewCompositionRect, type PreviewState, PropertyPanel, type RenderJob, RenderQueue, type RenderQueueProps, type ResolutionPreset, Select, type SelectOption, type SelectProps, Slider, type SliderProps, SourceEditor, type StartRenderOptions, StudioApp, Tab, TabPanel, Tabs, TabsList, Timeline, type TimelineElement, Toggle, type ToggleProps, Tooltip, VideoThumbnail, applyPatch, buildPickerAgentContextPreview, buildPickerAgentPrompt, buttonBase, buttonSizes, buttonVariants, cn, fieldBase, fieldText, findElementBlock, formatTime, getPersistedRenderSettings, liveTime, mergeStyleIntoTag, parseStyleString, persistRenderSettings, popupSurface, resolveIframe, resolveSourceFile, useElementPicker, usePlayerStore, usePreviewCompositionRect, useRenderQueue, useTimelinePlayer };
@@ -5,8 +5,8 @@
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-DocJlW2v.js"></script>
9
- <link rel="stylesheet" crossorigin href="/assets/index-CxAu_Okg.css">
8
+ <script type="module" crossorigin src="/assets/index-HfP3sap2.js"></script>
9
+ <link rel="stylesheet" crossorigin href="/assets/index-DrHQAuGO.css">
10
10
  </head>
11
11
  <body>
12
12
  <div data-hf-id="hf-aph5" id="root"></div>