@hyperframes/studio 0.8.9 → 0.8.11

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
@@ -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-57oMsXQN.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-DoW5v5eS.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/assets/index-Ba9zbpT9.css">
10
10
  </head>
11
11
  <body>
package/dist/index.js CHANGED
@@ -13653,6 +13653,16 @@ function TimelineFxPopover({
13653
13653
 
13654
13654
  // src/player/components/TimelineFxButton.tsx
13655
13655
  import { jsx as jsx38, jsxs as jsxs26 } from "react/jsx-runtime";
13656
+ var GROUP_DIALOG_SIZE = { width: 224, height: 112 };
13657
+ function groupDialogPosition(anchorRect) {
13658
+ const { left, top } = resolveFloatingPanelPosition(
13659
+ anchorRect,
13660
+ { width: window.innerWidth, height: window.innerHeight },
13661
+ GROUP_DIALOG_SIZE,
13662
+ { offset: 4 }
13663
+ );
13664
+ return { left, top };
13665
+ }
13656
13666
  function parseFxChainOrEmpty(raw) {
13657
13667
  if (!raw) return { version: 1, nodes: [] };
13658
13668
  try {
@@ -13695,7 +13705,7 @@ function TimelineFxButton(props) {
13695
13705
  role: "dialog",
13696
13706
  "aria-label": "Group these clips to add effects",
13697
13707
  className: "z-[200] w-56 rounded-md border border-white/10 bg-[#1b1b1f] p-2.5 text-[11px] text-white/75 shadow-xl",
13698
- style: { position: "fixed", left: anchorRect.left, top: anchorRect.bottom + 4 },
13708
+ style: { position: "fixed", ...groupDialogPosition(anchorRect) },
13699
13709
  onPointerDown: (event) => event.stopPropagation(),
13700
13710
  children: [
13701
13711
  /* @__PURE__ */ jsx38("p", { children: "Group these clips to add effects to all of them." }),
@@ -59416,12 +59426,13 @@ function useRenderQueue(projectId) {
59416
59426
  headers: { "Content-Type": "application/json" },
59417
59427
  body: JSON.stringify(body)
59418
59428
  });
59419
- } catch {
59429
+ } catch (err) {
59430
+ const cause = err instanceof Error ? err.message : String(err);
59420
59431
  const failedJob = {
59421
59432
  id: generateId(),
59422
59433
  status: "failed",
59423
59434
  progress: 0,
59424
- error: "Could not reach render server. Use `hyperframes render` from the CLI instead.",
59435
+ error: `Could not reach render server: ${cause}. Use \`hyperframes render\` from the CLI instead.`,
59425
59436
  filename: "Export failed",
59426
59437
  createdAt: startTime
59427
59438
  };