Skip to content

Add 3d control buttons to linear mode#8178

Merged
christian-byrne merged 1 commit intomainfrom
austin/linear-3d-controls
Jan 24, 2026
Merged

Add 3d control buttons to linear mode#8178
christian-byrne merged 1 commit intomainfrom
austin/linear-3d-controls

Conversation

@AustinMroz
Copy link
Collaborator

@AustinMroz AustinMroz commented Jan 20, 2026

Adds control buttons to the top left of the 3d preview in linear mode.
image

This was deprioritized because I forgot the secret to magically unwrapping a set of refs (wrap them in another ref).

┆Issue is synchronized with this Notion page by Unito

@AustinMroz AustinMroz requested a review from a team as a code owner January 20, 2026 17:21
@AustinMroz AustinMroz added needs-backport Fix/change that needs to be cherry-picked to the current feature freeze branch cloud/1.37 Backport PRs for cloud 1.37 labels Jan 20, 2026
@dosubot dosubot bot added the size:M This PR changes 30-99 lines, ignoring generated files. label Jan 20, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 20, 2026

📝 Walkthrough

Walkthrough

Extended the useLoad3dViewer composable public API by adding three new properties (hasSkeleton, intensity, showSkeleton). Updated Preview3d.vue to wrap the viewer instance in a ref and introduced a new Load3DControls component integrated into the template with reactive bindings.

Changes

Cohort / File(s) Summary
useLoad3dViewer composable
src/composables/useLoad3dViewer.ts
Added three new properties to the return object: hasSkeleton (default false), intensity (alias to lightIntensity ref), and showSkeleton (default false). No internal logic changes.
Preview3d component
src/renderer/extensions/linearMode/Preview3d.vue
Wrapped viewer instance in ref() for reactive wrapping. Updated all viewer property accesses to use .value. Introduced Load3DControls component with v-model bindings for scene-config, model-config, camera-config, and light-config. Reworked template bindings to operate on reactive ref object.

Possibly related PRs

Suggested reviewers

  • Yorha4D
  • KarryCharon
  • shinshin86
  • DrJKL
✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link

github-actions bot commented Jan 20, 2026

🎭 Playwright Tests: ⚠️ Passed with flaky tests

Results: 503 passed, 0 failed, 2 flaky, 8 skipped (Total: 513)

❌ Failed Tests

📊 Browser Reports
  • chromium: View Report (✅ 493 / ❌ 0 / ⚠️ 1 / ⏭️ 8)
  • chromium-2x: View Report (✅ 2 / ❌ 0 / ⚠️ 0 / ⏭️ 0)
  • chromium-0.5x: View Report (✅ 1 / ❌ 0 / ⚠️ 0 / ⏭️ 0)
  • mobile-chrome: View Report (✅ 7 / ❌ 0 / ⚠️ 1 / ⏭️ 0)

@github-actions
Copy link

github-actions bot commented Jan 20, 2026

🎨 Storybook Build Status

Build completed successfully!

⏰ Completed at: 01/20/2026, 05:22:49 PM UTC

🔗 Links


🎉 Your Storybook is ready for review!

@github-actions
Copy link

Bundle Size Report

Summary

  • Raw size: 21.3 MB baseline 21.3 MB — 🔴 +2.27 kB
  • Gzip: 4.43 MB baseline 4.43 MB — 🔴 +1.54 kB
  • Brotli: 3.28 MB baseline 3.28 MB — 🔴 +1.67 kB
  • Bundles: 156 current • 155 baseline • 131 added / 130 removed

Category Glance
Graph Workspace 🔴 +1.07 kB (1.02 MB) · Other 🔴 +1.05 kB (6.25 MB) · Data & Services 🔴 +114 B (3.04 MB) · App Entry Points 🔴 +34 B (22.4 kB) · Vendor & Third-Party ⚪ 0 B (10.4 MB) · Panels & Settings ⚪ 0 B (430 kB) · + 5 more

Per-category breakdown
App Entry Points — 22.4 kB (baseline 22.4 kB) • 🔴 +34 B

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-B-jq99Dy.js (new) 22.4 kB 🔴 +22.4 kB 🔴 +6.75 kB 🔴 +5.94 kB
assets/index-ClIoWONr.js (removed) 22.4 kB 🟢 -22.4 kB 🟢 -6.74 kB 🟢 -5.93 kB

Status: 1 added / 1 removed

Graph Workspace — 1.02 MB (baseline 1.02 MB) • 🔴 +1.07 kB

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-DxI8SUv9.js (new) 1.02 MB 🔴 +1.02 MB 🔴 +201 kB 🔴 +153 kB
assets/GraphView-DX19GHRq.js (removed) 1.02 MB 🟢 -1.02 MB 🟢 -201 kB 🟢 -153 kB

Status: 1 added / 1 removed

Views & Navigation — 80.7 kB (baseline 80.7 kB) • ⚪ 0 B

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CloudSurveyView-C0nPchxr.js (new) 17.1 kB 🔴 +17.1 kB 🔴 +3.61 kB 🔴 +3.06 kB
assets/CloudSurveyView-Datel9jP.js (removed) 17.1 kB 🟢 -17.1 kB 🟢 -3.61 kB 🟢 -3.06 kB
assets/CloudLoginView-B_SePhzi.js (new) 11.8 kB 🔴 +11.8 kB 🔴 +3.09 kB 🔴 +2.71 kB
assets/CloudLoginView-BlYEUrNJ.js (removed) 11.8 kB 🟢 -11.8 kB 🟢 -3.1 kB 🟢 -2.72 kB
assets/UserCheckView-2hkuAwAk.js (new) 10.5 kB 🔴 +10.5 kB 🔴 +2.45 kB 🔴 +2.13 kB
assets/UserCheckView-BgTK5yKN.js (removed) 10.5 kB 🟢 -10.5 kB 🟢 -2.46 kB 🟢 -2.13 kB
assets/CloudLayoutView-BjwFKPHZ.js (removed) 8.54 kB 🟢 -8.54 kB 🟢 -2.25 kB 🟢 -1.97 kB
assets/CloudLayoutView-CR0dAnrK.js (new) 8.54 kB 🔴 +8.54 kB 🔴 +2.25 kB 🔴 +1.96 kB
assets/CloudSignupView-DGMC1cUY.js (removed) 8.18 kB 🟢 -8.18 kB 🟢 -2.33 kB 🟢 -2.03 kB
assets/CloudSignupView-DuXArtiu.js (new) 8.18 kB 🔴 +8.18 kB 🔴 +2.33 kB 🔴 +2.03 kB
assets/CloudForgotPasswordView-C8YFSjf_.js (new) 6.26 kB 🔴 +6.26 kB 🔴 +1.93 kB 🔴 +1.68 kB
assets/CloudForgotPasswordView-DvyMktDH.js (removed) 6.26 kB 🟢 -6.26 kB 🟢 -1.93 kB 🟢 -1.68 kB
assets/UserSelectView-Ba2jNYDU.js (removed) 5.28 kB 🟢 -5.28 kB 🟢 -1.76 kB 🟢 -1.57 kB
assets/UserSelectView-CDMq_tC0.js (new) 5.28 kB 🔴 +5.28 kB 🔴 +1.76 kB 🔴 +1.56 kB
assets/CloudSubscriptionRedirectView-Ccmj0O3f.js (new) 5.27 kB 🔴 +5.27 kB 🔴 +1.73 kB 🔴 +1.54 kB
assets/CloudSubscriptionRedirectView-Ch_p3kwV.js (removed) 5.27 kB 🟢 -5.27 kB 🟢 -1.73 kB 🟢 -1.54 kB
assets/CloudAuthTimeoutView-CtDfUjUw.js (new) 5.24 kB 🔴 +5.24 kB 🔴 +1.71 kB 🔴 +1.5 kB
assets/CloudAuthTimeoutView-DpioZYiG.js (removed) 5.24 kB 🟢 -5.24 kB 🟢 -1.72 kB 🟢 -1.48 kB
assets/CloudSorryContactSupportView-KtHAHjNp.js (new) 1.97 kB 🔴 +1.97 kB 🔴 +705 B 🔴 +627 B
assets/CloudSorryContactSupportView-QtHXqQri.js (removed) 1.97 kB 🟢 -1.97 kB 🟢 -703 B 🟢 -627 B
assets/layout-Bf1taiS0.js (removed) 500 B 🟢 -500 B 🟢 -307 B 🟢 -267 B
assets/layout-C-7sGmf_.js (new) 500 B 🔴 +500 B 🔴 +308 B 🔴 +272 B

Status: 11 added / 11 removed

Panels & Settings — 430 kB (baseline 430 kB) • ⚪ 0 B

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/settings-2SPczzu9.js (new) 38.3 kB 🔴 +38.3 kB 🔴 +9.22 kB 🔴 +7.33 kB
assets/settings-B0j03ezr.js (removed) 38.3 kB 🟢 -38.3 kB 🟢 -9.22 kB 🟢 -7.33 kB
assets/settings-6DVADt2n.js (removed) 34.3 kB 🟢 -34.3 kB 🟢 -7.93 kB 🟢 -6.57 kB
assets/settings-D4bS3Z6x.js (new) 34.3 kB 🔴 +34.3 kB 🔴 +7.93 kB 🔴 +6.6 kB
assets/settings-aJKlZz5L.js (new) 32.1 kB 🔴 +32.1 kB 🔴 +7.68 kB 🔴 +6.21 kB
assets/settings-CwdesOpm.js (removed) 32.1 kB 🟢 -32.1 kB 🟢 -7.68 kB 🟢 -6.2 kB
assets/settings-Cp0lF2Mp.js (removed) 31.2 kB 🟢 -31.2 kB 🟢 -8.08 kB 🟢 -6.72 kB
assets/settings-ERr_IA1D.js (new) 31.2 kB 🔴 +31.2 kB 🔴 +8.08 kB 🔴 +6.72 kB
assets/settings-CAe8lz65.js (new) 30.4 kB 🔴 +30.4 kB 🔴 +7.76 kB 🔴 +6.73 kB
assets/settings-reUMVWRn.js (removed) 30.4 kB 🟢 -30.4 kB 🟢 -7.75 kB 🟢 -6.73 kB
assets/settings-BHe-AJJN.js (removed) 29.6 kB 🟢 -29.6 kB 🟢 -7.62 kB 🟢 -6.64 kB
assets/settings-CfriwPVt.js (new) 29.6 kB 🔴 +29.6 kB 🔴 +7.62 kB 🔴 +6.66 kB
assets/settings-BT2lfy0S.js (removed) 29.5 kB 🟢 -29.5 kB 🟢 -7.49 kB 🟢 -6.33 kB
assets/settings-CeebhifS.js (new) 29.5 kB 🔴 +29.5 kB 🔴 +7.49 kB 🔴 +6.33 kB
assets/settings-Cc5JlSUV.js (new) 28.9 kB 🔴 +28.9 kB 🔴 +7.36 kB 🔴 +6.31 kB
assets/settings-s7kHNBdQ.js (removed) 28.9 kB 🟢 -28.9 kB 🟢 -7.36 kB 🟢 -6.32 kB
assets/settings-BpTSS9Vb.js (new) 28.6 kB 🔴 +28.6 kB 🔴 +7.71 kB 🔴 +6.38 kB
assets/settings-D3SeHgho.js (removed) 28.6 kB 🟢 -28.6 kB 🟢 -7.71 kB 🟢 -6.37 kB
assets/settings-Cnh-GeSb.js (new) 25.9 kB 🔴 +25.9 kB 🔴 +7.64 kB 🔴 +6.14 kB
assets/settings-D42m_JEJ.js (removed) 25.9 kB 🟢 -25.9 kB 🟢 -7.65 kB 🟢 -6.15 kB
assets/settings-CvUS0UPK.js (new) 25.2 kB 🔴 +25.2 kB 🔴 +7.41 kB 🔴 +5.79 kB
assets/settings-FF_vLB0C.js (removed) 25.2 kB 🟢 -25.2 kB 🟢 -7.41 kB 🟢 -5.78 kB
assets/LegacyCreditsPanel-1lWMk5dF.js (new) 23.8 kB 🔴 +23.8 kB 🔴 +5.95 kB 🔴 +5.22 kB
assets/LegacyCreditsPanel-fSCmxtXj.js (removed) 23.8 kB 🟢 -23.8 kB 🟢 -5.95 kB 🟢 -5.23 kB
assets/SubscriptionPanel-CGvA5lq7.js (removed) 20.6 kB 🟢 -20.6 kB 🟢 -5 kB 🟢 -4.38 kB
assets/SubscriptionPanel-CY99xzaO.js (new) 20.6 kB 🔴 +20.6 kB 🔴 +5 kB 🔴 +4.39 kB
assets/KeybindingPanel-BG_TWlhO.js (removed) 14.2 kB 🟢 -14.2 kB 🟢 -3.74 kB 🟢 -3.31 kB
assets/KeybindingPanel-CPB3pNCI.js (new) 14.2 kB 🔴 +14.2 kB 🔴 +3.74 kB 🔴 +3.31 kB
assets/AboutPanel-CX0VT093.js (new) 10.8 kB 🔴 +10.8 kB 🔴 +2.69 kB 🔴 +2.43 kB
assets/AboutPanel-DtINB2-L.js (removed) 10.8 kB 🟢 -10.8 kB 🟢 -2.69 kB 🟢 -2.43 kB
assets/ExtensionPanel-DG8t_wal.js (removed) 10.2 kB 🟢 -10.2 kB 🟢 -2.71 kB 🟢 -2.4 kB
assets/ExtensionPanel-DjBltaRR.js (new) 10.2 kB 🔴 +10.2 kB 🔴 +2.71 kB 🔴 +2.4 kB
assets/ServerConfigPanel-Dl-BYJtT.js (removed) 7.23 kB 🟢 -7.23 kB 🟢 -2.17 kB 🟢 -1.94 kB
assets/ServerConfigPanel-kVC5pZha.js (new) 7.23 kB 🔴 +7.23 kB 🔴 +2.17 kB 🔴 +1.93 kB
assets/UserPanel-C07XW7qT.js (new) 6.58 kB 🔴 +6.58 kB 🔴 +1.91 kB 🔴 +1.67 kB
assets/UserPanel-m36VW4ej.js (removed) 6.58 kB 🟢 -6.58 kB 🟢 -1.91 kB 🟢 -1.67 kB
assets/cloudRemoteConfig-Dbh02Jcm.js (removed) 1.82 kB 🟢 -1.82 kB 🟢 -769 B 🟢 -656 B
assets/cloudRemoteConfig-wwFIpj5x.js (new) 1.82 kB 🔴 +1.82 kB 🔴 +767 B 🔴 +652 B
assets/remoteConfig-B0rgMcLx.js 1.07 kB 1.07 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/remoteConfig-CW7J8vSK.js 188 B 188 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 19 added / 19 removed

User & Accounts — 3.94 kB (baseline 3.94 kB) • ⚪ 0 B

Authentication, profile, and account management bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/auth-CBwHAJ5U.js (removed) 3.54 kB 🟢 -3.54 kB 🟢 -1.24 kB 🟢 -1.08 kB
assets/auth-D0RGV5NV.js (new) 3.54 kB 🔴 +3.54 kB 🔴 +1.24 kB 🔴 +1.06 kB
assets/firebaseAuthStore-4Q8HbO2O.js (new) 217 B 🔴 +217 B 🔴 +138 B 🔴 +122 B
assets/firebaseAuthStore-D-EebVL7.js (removed) 217 B 🟢 -217 B 🟢 -138 B 🟢 -122 B
assets/auth-DpyHwt-P.js (new) 178 B 🔴 +178 B 🔴 +142 B 🔴 +136 B
assets/auth-Ka6Iu1bV.js (removed) 178 B 🟢 -178 B 🟢 -142 B 🟢 -143 B

Status: 3 added / 3 removed

Editors & Dialogs — 2.8 kB (baseline 2.8 kB) • ⚪ 0 B

Modals, dialogs, drawers, and in-app editors

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useSubscriptionDialog-BfFqve3K.js (new) 2.62 kB 🔴 +2.62 kB 🔴 +1.24 kB 🔴 +1.09 kB
assets/useSubscriptionDialog-D3v76K0U.js (removed) 2.62 kB 🟢 -2.62 kB 🟢 -1.24 kB 🟢 -1.09 kB
assets/useSubscriptionDialog-RvWnZ75q.js (removed) 179 B 🟢 -179 B 🟢 -110 B 🟢 -95 B
assets/useSubscriptionDialog-Z_cK622r.js (new) 179 B 🔴 +179 B 🔴 +110 B 🔴 +96 B

Status: 2 added / 2 removed

UI Components — 32.8 kB (baseline 32.8 kB) • ⚪ 0 B

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/SubscribeButton-B3bpukh-.js (removed) 12.5 kB 🟢 -12.5 kB 🟢 -3 kB 🟢 -2.7 kB
assets/SubscribeButton-C2xPe_n6.js (new) 12.5 kB 🔴 +12.5 kB 🔴 +3 kB 🔴 +2.71 kB
assets/ComfyQueueButton-B3jdVyW-.js (new) 9.52 kB 🔴 +9.52 kB 🔴 +2.69 kB 🔴 +2.42 kB
assets/ComfyQueueButton-CSJ-Kz-7.js (removed) 9.52 kB 🟢 -9.52 kB 🟢 -2.69 kB 🟢 -2.41 kB
assets/WidgetButton-_hGIrcI2.js (removed) 2.41 kB 🟢 -2.41 kB 🟢 -981 B 🟢 -884 B
assets/WidgetButton-CJ5B6zjG.js (new) 2.41 kB 🔴 +2.41 kB 🔴 +982 B 🔴 +882 B
assets/CloudBadge-BqtGsKGL.js (new) 1.85 kB 🔴 +1.85 kB 🔴 +731 B 🔴 +648 B
assets/CloudBadge-CEzeqobt.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -729 B 🟢 -646 B
assets/cloudFeedbackTopbarButton-B5S_8Hns.js (new) 866 B 🔴 +866 B 🔴 +524 B 🔴 +478 B
assets/cloudFeedbackTopbarButton-Y8Rk-crm.js (removed) 866 B 🟢 -866 B 🟢 -524 B 🟢 -438 B
assets/ComfyQueueButton-aBcaY3sg.js (new) 181 B 🔴 +181 B 🔴 +118 B 🔴 +111 B
assets/ComfyQueueButton-C1cHc9p2.js (removed) 181 B 🟢 -181 B 🟢 -118 B 🟢 -120 B
assets/Button-BFptkwN0.js 3.75 kB 3.75 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserAvatar-CkcXZWJQ.js 1.73 kB 1.73 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 6 added / 6 removed

Data & Services — 3.04 MB (baseline 3.04 MB) • 🔴 +114 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/dialogService-CdgxuaTY.js (new) 1.87 MB 🔴 +1.87 MB 🔴 +397 kB 🔴 +304 kB
assets/dialogService-CEzbYeif.js (removed) 1.87 MB 🟢 -1.87 MB 🟢 -397 kB 🟢 -304 kB
assets/api--8uhkDQN.js (removed) 1.15 MB 🟢 -1.15 MB 🟢 -239 kB 🟢 -185 kB
assets/api-BSjvYDcw.js (new) 1.15 MB 🔴 +1.15 MB 🔴 +239 kB 🔴 +185 kB
assets/releaseStore-C1VvvRVb.js (new) 8.91 kB 🔴 +8.91 kB 🔴 +2.41 kB 🔴 +2.13 kB
assets/releaseStore-CfkrRjTp.js (removed) 8.91 kB 🟢 -8.91 kB 🟢 -2.41 kB 🟢 -2.13 kB
assets/keybindingService-B_mEW-hi.js (new) 6.78 kB 🔴 +6.78 kB 🔴 +1.74 kB 🔴 +1.52 kB
assets/keybindingService-CfcSeuv9.js (removed) 6.78 kB 🟢 -6.78 kB 🟢 -1.74 kB 🟢 -1.51 kB
assets/serverConfigStore-BQHsP3kQ.js (new) 2.64 kB 🔴 +2.64 kB 🔴 +877 B 🔴 +777 B
assets/serverConfigStore-CDOQj4Ec.js (removed) 2.64 kB 🟢 -2.64 kB 🟢 -878 B 🟢 -777 B
assets/userStore-BCEuz1Sx.js (removed) 2.16 kB 🟢 -2.16 kB 🟢 -814 B 🟢 -724 B
assets/userStore-KsbFOi0F.js (new) 2.16 kB 🔴 +2.16 kB 🔴 +810 B 🔴 +724 B
assets/audioService-bEgsNu_M.js (new) 2.03 kB 🔴 +2.03 kB 🔴 +930 B 🔴 +821 B
assets/audioService-CcbWb1Nq.js (removed) 2.03 kB 🟢 -2.03 kB 🟢 -932 B 🟢 -821 B
assets/releaseStore-0VIpEt2w.js (removed) 140 B 🟢 -140 B 🟢 -106 B 🟢 -106 B
assets/releaseStore-DzKCU7hX.js (new) 140 B 🔴 +140 B 🔴 +106 B 🔴 +105 B

Status: 8 added / 8 removed

Utilities & Hooks — 18.7 kB (baseline 18.7 kB) • ⚪ 0 B

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useErrorHandling-BwZQ1fzu.js (new) 5 kB 🔴 +5 kB 🔴 +1.47 kB 🔴 +1.28 kB
assets/useErrorHandling-CiN0jmUW.js (removed) 5 kB 🟢 -5 kB 🟢 -1.47 kB 🟢 -1.28 kB
assets/subscriptionCheckoutUtil-CJEE5QYg.js (removed) 1.98 kB 🟢 -1.98 kB 🟢 -862 B 🟢 -749 B
assets/subscriptionCheckoutUtil-gtcBBJhA.js (new) 1.98 kB 🔴 +1.98 kB 🔴 +859 B 🔴 +747 B
assets/audioUtils-p5ypivZ9.js (new) 1.24 kB 🔴 +1.24 kB 🔴 +619 B 🔴 +526 B
assets/audioUtils-T5kpRwN5.js (removed) 1.24 kB 🟢 -1.24 kB 🟢 -620 B 🟢 -524 B
assets/nodeFilterUtil-BUCOyXf2.js (removed) 421 B 🟢 -421 B 🟢 -259 B 🟢 -232 B
assets/nodeFilterUtil-DhsDds7h.js (new) 421 B 🔴 +421 B 🔴 +256 B 🔴 +246 B
assets/useCurrentUser-1gEoOXeZ.js (new) 145 B 🔴 +145 B 🔴 +114 B 🔴 +102 B
assets/useCurrentUser-BtscdR1n.js (removed) 145 B 🟢 -145 B 🟢 -114 B 🟢 -102 B
assets/_plugin-vue_export-helper-xVPqUhAl.js 467 B 467 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/colorUtil-De0C_hc6.js 7.2 kB 7.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/markdownRendererUtil-0PqWmn-8.js 1.78 kB 1.78 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/tailwindUtil-Chuu3TbR.js 487 B 487 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 5 added / 5 removed

Vendor & Third-Party — 10.4 MB (baseline 10.4 MB) • ⚪ 0 B

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-chart-Dr8GmMlH.js 408 kB 408 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-other-DqqTGPL6.js 3.92 MB 3.92 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-primevue-EBXVECvF.js 3.04 MB 3.04 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-reka-ui-ViWrLgbb.js 172 kB 172 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-three-Dqb1VEds.js 1.83 MB 1.83 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-tiptap-BxNhpyUI.js 650 kB 650 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vue-VHAq3Lid.js 13.6 kB 13.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-CArXWFIl.js 398 kB 398 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Other — 6.25 MB (baseline 6.25 MB) • 🔴 +1.05 kB

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/nodeDefs-CqyprhWq.js (removed) 433 kB 🟢 -433 kB 🟢 -66.9 kB 🟢 -43.2 kB
assets/nodeDefs-yGVFcLDK.js (new) 433 kB 🔴 +433 kB 🔴 +66.9 kB 🔴 +43.2 kB
assets/nodeDefs-CCSKuw9P.js (removed) 400 kB 🟢 -400 kB 🟢 -60.9 kB 🟢 -40.1 kB
assets/nodeDefs-CpynSRzX.js (new) 400 kB 🔴 +400 kB 🔴 +60.9 kB 🔴 +40.1 kB
assets/nodeDefs-CqDWLi76.js (removed) 399 kB 🟢 -399 kB 🟢 -62.9 kB 🟢 -41.5 kB
assets/nodeDefs-nmyn2PfE.js (new) 399 kB 🔴 +399 kB 🔴 +62.9 kB 🔴 +41.5 kB
assets/nodeDefs-BhmSU7DZ.js (removed) 371 kB 🟢 -371 kB 🟢 -61.1 kB 🟢 -40 kB
assets/nodeDefs-ClBA1eAF.js (new) 371 kB 🔴 +371 kB 🔴 +61.1 kB 🔴 +40 kB
assets/nodeDefs-B4G_Dl5E.js (removed) 361 kB 🟢 -361 kB 🟢 -59.8 kB 🟢 -39.6 kB
assets/nodeDefs-BAGtNLRi.js (new) 361 kB 🔴 +361 kB 🔴 +59.8 kB 🔴 +39.6 kB
assets/nodeDefs-BWlAk1jF.js (new) 358 kB 🔴 +358 kB 🔴 +59.7 kB 🔴 +40.7 kB
assets/nodeDefs-Cd4f2ERd.js (removed) 358 kB 🟢 -358 kB 🟢 -59.7 kB 🟢 -40.7 kB
assets/nodeDefs-D4Fo85EU.js (removed) 358 kB 🟢 -358 kB 🟢 -58.5 kB 🟢 -40.1 kB
assets/nodeDefs-n0O0KY2i.js (new) 358 kB 🔴 +358 kB 🔴 +58.5 kB 🔴 +40.1 kB
assets/nodeDefs-CLdE8MPH.js (removed) 355 kB 🟢 -355 kB 🟢 -57.4 kB 🟢 -39.3 kB
assets/nodeDefs-DcV0itxQ.js (new) 355 kB 🔴 +355 kB 🔴 +57.4 kB 🔴 +39.3 kB
assets/nodeDefs-CVpp4khf.js (new) 351 kB 🔴 +351 kB 🔴 +56.6 kB 🔴 +38.7 kB
assets/nodeDefs-DF-ErmAt.js (removed) 351 kB 🟢 -351 kB 🟢 -56.6 kB 🟢 -38.7 kB
assets/nodeDefs-Bxky0ZDY.js (removed) 332 kB 🟢 -332 kB 🟢 -58.6 kB 🟢 -38.7 kB
assets/nodeDefs-w8uR2sMF.js (new) 332 kB 🔴 +332 kB 🔴 +58.6 kB 🔴 +38.7 kB
assets/nodeDefs-6qSb98D5.js (removed) 329 kB 🟢 -329 kB 🟢 -57.6 kB 🟢 -37.4 kB
assets/nodeDefs-BLsd5kVf.js (new) 329 kB 🔴 +329 kB 🔴 +57.6 kB 🔴 +37.4 kB
assets/core-CaDoB35F.js (removed) 177 kB 🟢 -177 kB 🟢 -42.8 kB 🟢 -35.7 kB
assets/core-hRG-ccSw.js (new) 177 kB 🔴 +177 kB 🔴 +42.8 kB 🔴 +35.8 kB
assets/main-CKH_pYcz.js (removed) 161 kB 🟢 -161 kB 🟢 -43.1 kB 🟢 -34.2 kB
assets/main-PiTMfLYV.js (new) 161 kB 🔴 +161 kB 🔴 +43.1 kB 🔴 +34.2 kB
assets/main-Cc1enmni.js (new) 145 kB 🔴 +145 kB 🔴 +38.8 kB 🔴 +31.3 kB
assets/main-i8aQGyai.js (removed) 145 kB 🟢 -145 kB 🟢 -38.8 kB 🟢 -31.4 kB
assets/main-CPxlcvHz.js (new) 141 kB 🔴 +141 kB 🔴 +38.9 kB 🔴 +31.1 kB
assets/main-Uwzs8jut.js (removed) 141 kB 🟢 -141 kB 🟢 -38.9 kB 🟢 -31.1 kB
assets/main-Bnxl3VEF.js (new) 134 kB 🔴 +134 kB 🔴 +38.8 kB 🔴 +31.1 kB
assets/main-CotnVZA-.js (removed) 134 kB 🟢 -134 kB 🟢 -38.8 kB 🟢 -31 kB
assets/main-BgJ8AGSy.js (new) 124 kB 🔴 +124 kB 🔴 +37.4 kB 🔴 +31.4 kB
assets/main-CA0dzqpC.js (removed) 124 kB 🟢 -124 kB 🟢 -37.4 kB 🟢 -31.4 kB
assets/main-CbaIObx3.js (removed) 121 kB 🟢 -121 kB 🟢 -36.9 kB 🟢 -29.8 kB
assets/main-S4b8GJmv.js (new) 121 kB 🔴 +121 kB 🔴 +36.9 kB 🔴 +29.8 kB
assets/main-D-IO_jVl.js (removed) 119 kB 🟢 -119 kB 🟢 -36.3 kB 🟢 -30.1 kB
assets/main-nMMp6d-_.js (new) 119 kB 🔴 +119 kB 🔴 +36.3 kB 🔴 +30.1 kB
assets/main-DbOHwoRE.js (new) 117 kB 🔴 +117 kB 🔴 +36.5 kB 🔴 +30.5 kB
assets/main-DLii8dI6.js (removed) 117 kB 🟢 -117 kB 🟢 -36.5 kB 🟢 -30.5 kB
assets/main-Cm-j3er8.js (new) 117 kB 🔴 +117 kB 🔴 +36 kB 🔴 +30.2 kB
assets/main-vWcCEZeZ.js (removed) 117 kB 🟢 -117 kB 🟢 -36 kB 🟢 -30.2 kB
assets/main-C-gNarDo.js (removed) 105 kB 🟢 -105 kB 🟢 -36.1 kB 🟢 -28.7 kB
assets/main-DcWd6dgi.js (new) 105 kB 🔴 +105 kB 🔴 +36.1 kB 🔴 +28.7 kB
assets/main-BH76kbq7.js (removed) 104 kB 🟢 -104 kB 🟢 -36.1 kB 🟢 -28.5 kB
assets/main-CXscjl0o.js (new) 104 kB 🔴 +104 kB 🔴 +36.1 kB 🔴 +28.5 kB
assets/Load3D-BewWt72v.js (removed) 55.7 kB 🟢 -55.7 kB 🟢 -9.18 kB 🟢 -7.91 kB
assets/WidgetSelect-BLhGgpqK.js (new) 50.5 kB 🔴 +50.5 kB 🔴 +11.1 kB 🔴 +9.69 kB
assets/WidgetSelect-C7IQksyJ.js (removed) 50.5 kB 🟢 -50.5 kB 🟢 -11.1 kB 🟢 -9.68 kB
assets/Load3DControls-CDNi85l9.js (new) 35.9 kB 🔴 +35.9 kB 🔴 +5.88 kB 🔴 +5.09 kB
assets/SubscriptionRequiredDialogContent-C4pA6WLW.js (removed) 28.7 kB 🟢 -28.7 kB 🟢 -6.78 kB 🟢 -5.91 kB
assets/SubscriptionRequiredDialogContent-DBjHZQyk.js (new) 28.7 kB 🔴 +28.7 kB 🔴 +6.78 kB 🔴 +5.9 kB
assets/Load3D-D3gjrL1r.js (new) 20.9 kB 🔴 +20.9 kB 🔴 +4.59 kB 🔴 +4.03 kB
assets/commands-BQtdp20P.js (removed) 20.6 kB 🟢 -20.6 kB 🟢 -3.96 kB 🟢 -3.07 kB
assets/commands-werCdhrX.js (new) 20.6 kB 🔴 +20.6 kB 🔴 +3.96 kB 🔴 +3.07 kB
assets/commands-BahwM9ZP.js (removed) 19.3 kB 🟢 -19.3 kB 🟢 -3.68 kB 🟢 -2.84 kB
assets/commands-DFVgUBSf.js (new) 19.3 kB 🔴 +19.3 kB 🔴 +3.68 kB 🔴 +2.85 kB
assets/commands-M0rkm8ta.js (new) 19.3 kB 🔴 +19.3 kB 🔴 +3.69 kB 🔴 +2.89 kB
assets/commands-yZ2AjT4s.js (removed) 19.3 kB 🟢 -19.3 kB 🟢 -3.69 kB 🟢 -2.86 kB
assets/commands-CZcHDaAg.js (removed) 18.8 kB 🟢 -18.8 kB 🟢 -3.79 kB 🟢 -2.96 kB
assets/commands-DBI65Lek.js (new) 18.8 kB 🔴 +18.8 kB 🔴 +3.79 kB 🔴 +2.96 kB
assets/commands-CEMgeOuO.js (removed) 18.5 kB 🟢 -18.5 kB 🟢 -3.52 kB 🟢 -2.91 kB
assets/commands-Ofgk4qHD.js (new) 18.5 kB 🔴 +18.5 kB 🔴 +3.52 kB 🔴 +2.91 kB
assets/WidgetRecordAudio-HG3vnHSQ.js (removed) 18.2 kB 🟢 -18.2 kB 🟢 -4.97 kB 🟢 -4.43 kB
assets/WidgetRecordAudio-zqDxqJbi.js (new) 18.2 kB 🔴 +18.2 kB 🔴 +4.96 kB 🔴 +4.42 kB
assets/WidgetInputNumber-_hTLTG9v.js (new) 18.2 kB 🔴 +18.2 kB 🔴 +4.49 kB 🔴 +4.01 kB
assets/WidgetInputNumber-DCS6z9Vp.js (removed) 18.2 kB 🟢 -18.2 kB 🟢 -4.49 kB 🟢 -4.01 kB
assets/commands-BNUp31dg.js (new) 18 kB 🔴 +18 kB 🔴 +3.51 kB 🔴 +2.89 kB
assets/commands-CnxND6sZ.js (removed) 18 kB 🟢 -18 kB 🟢 -3.51 kB 🟢 -2.89 kB
assets/commands-coXkrooi.js (removed) 18 kB 🟢 -18 kB 🟢 -3.39 kB 🟢 -2.77 kB
assets/commands-D6LQMdxf.js (new) 18 kB 🔴 +18 kB 🔴 +3.39 kB 🔴 +2.76 kB
assets/commands-C3TkAluu.js (new) 17.9 kB 🔴 +17.9 kB 🔴 +3.35 kB 🔴 +2.77 kB
assets/commands-DDPGTXy9.js (removed) 17.9 kB 🟢 -17.9 kB 🟢 -3.36 kB 🟢 -2.77 kB
assets/commands-DqWk-Mir.js (new) 17.8 kB 🔴 +17.8 kB 🔴 +3.65 kB 🔴 +2.84 kB
assets/commands-DsGC6118.js (removed) 17.8 kB 🟢 -17.8 kB 🟢 -3.65 kB 🟢 -2.84 kB
assets/commands-6dIwsSNi.js (removed) 17.2 kB 🟢 -17.2 kB 🟢 -3.57 kB 🟢 -2.73 kB
assets/commands-Dh30X9as.js (new) 17.2 kB 🔴 +17.2 kB 🔴 +3.57 kB 🔴 +2.71 kB
assets/WidgetImageCrop-BbFJdhwm.js (removed) 17.1 kB 🟢 -17.1 kB 🟢 -4.14 kB 🟢 -3.62 kB
assets/WidgetImageCrop-DFmy_ZfP.js (new) 17.1 kB 🔴 +17.1 kB 🔴 +4.14 kB 🔴 +3.61 kB
assets/commands-Bhnu7Bw7.js (new) 17 kB 🔴 +17 kB 🔴 +3.54 kB 🔴 +2.64 kB
assets/commands-BoJZgy7S.js (removed) 17 kB 🟢 -17 kB 🟢 -3.54 kB 🟢 -2.64 kB
assets/PanelTemplate-Cns1xFb6.js (new) 16.2 kB 🔴 +16.2 kB 🔴 +5.45 kB 🔴 +4.8 kB
assets/PanelTemplate-l9SMS8Gm.js (removed) 16.2 kB 🟢 -16.2 kB 🟢 -5.45 kB 🟢 -4.8 kB
assets/LazyImage-B2qJgYQV.js (removed) 14.1 kB 🟢 -14.1 kB 🟢 -4.01 kB 🟢 -3.54 kB
assets/LazyImage-BjJM8WOP.js (new) 14.1 kB 🔴 +14.1 kB 🔴 +4.01 kB 🔴 +3.55 kB
assets/AudioPreviewPlayer-4AgM2qQn.js (removed) 12.7 kB 🟢 -12.7 kB 🟢 -3.48 kB 🟢 -3.12 kB
assets/AudioPreviewPlayer-C5ijfUH2.js (new) 12.7 kB 🔴 +12.7 kB 🔴 +3.48 kB 🔴 +3.12 kB
assets/WidgetWithControl-C99rMg-r.js (new) 8.02 kB 🔴 +8.02 kB 🔴 +2.65 kB 🔴 +2.38 kB
assets/WidgetWithControl-XUVzqlyC.js (removed) 8.02 kB 🟢 -8.02 kB 🟢 -2.65 kB 🟢 -2.38 kB
assets/ValueControlPopover-BY3QBJA3.js (new) 4.86 kB 🔴 +4.86 kB 🔴 +1.55 kB 🔴 +1.38 kB
assets/ValueControlPopover-rO-dcvUv.js (removed) 4.86 kB 🟢 -4.86 kB 🟢 -1.55 kB 🟢 -1.37 kB
assets/WidgetGalleria-Bjqrk0m2.js (removed) 4.57 kB 🟢 -4.57 kB 🟢 -1.57 kB 🟢 -1.42 kB
assets/WidgetGalleria-CWWj24ac.js (new) 4.57 kB 🔴 +4.57 kB 🔴 +1.57 kB 🔴 +1.42 kB
assets/WidgetImageCompare-CrN6SGuP.js (removed) 3.79 kB 🟢 -3.79 kB 🟢 -1.28 kB 🟢 -1.12 kB
assets/WidgetImageCompare-CU-GWYZn.js (new) 3.79 kB 🔴 +3.79 kB 🔴 +1.28 kB 🔴 +1.12 kB
assets/WidgetColorPicker-BpdBhopy.js (new) 3.71 kB 🔴 +3.71 kB 🔴 +1.38 kB 🔴 +1.26 kB
assets/WidgetColorPicker-CE6qc5iJ.js (removed) 3.71 kB 🟢 -3.71 kB 🟢 -1.38 kB 🟢 -1.25 kB
assets/WidgetTextarea-B2pcV0ep.js (new) 3.52 kB 🔴 +3.52 kB 🔴 +1.33 kB 🔴 +1.17 kB
assets/WidgetTextarea-CDG12iu3.js (removed) 3.52 kB 🟢 -3.52 kB 🟢 -1.33 kB 🟢 -1.17 kB
assets/WidgetMarkdown-C7RYJjLj.js (new) 3.22 kB 🔴 +3.22 kB 🔴 +1.29 kB 🔴 +1.14 kB
assets/WidgetMarkdown-D4Dx6Rvq.js (removed) 3.22 kB 🟢 -3.22 kB 🟢 -1.29 kB 🟢 -1.14 kB
assets/WidgetAudioUI-1qLq9hs6.js (removed) 3.22 kB 🟢 -3.22 kB 🟢 -1.19 kB 🟢 -1.09 kB
assets/WidgetAudioUI-CficP1fW.js (new) 3.22 kB 🔴 +3.22 kB 🔴 +1.19 kB 🔴 +1.07 kB
assets/WidgetToggleSwitch-BZCuhj-d.js (new) 3.08 kB 🔴 +3.08 kB 🔴 +1.19 kB 🔴 +1.07 kB
assets/WidgetToggleSwitch-VNa5cXfN.js (removed) 3.08 kB 🟢 -3.08 kB 🟢 -1.19 kB 🟢 -1.07 kB
assets/GlobalToast-Cd1P59E1.js (new) 3.05 kB 🔴 +3.05 kB 🔴 +1.1 kB 🔴 +943 B
assets/GlobalToast-DFuNh7cd.js (removed) 3.05 kB 🟢 -3.05 kB 🟢 -1.1 kB 🟢 -940 B
assets/SubscribeToRun-CBC6dpBH.js (removed) 2.96 kB 🟢 -2.96 kB 🟢 -1.15 kB 🟢 -1.02 kB
assets/SubscribeToRun-CpiRSBTq.js (new) 2.96 kB 🔴 +2.96 kB 🔴 +1.15 kB 🔴 +1.02 kB
assets/cloudSessionCookie-B20qF5MG.js (removed) 2.9 kB 🟢 -2.9 kB 🟢 -920 B 🟢 -794 B
assets/cloudSessionCookie-Cjh4fiC8.js (new) 2.9 kB 🔴 +2.9 kB 🔴 +917 B 🔴 +795 B
assets/MediaVideoTop-BCNtw1s2.js (removed) 2.84 kB 🟢 -2.84 kB 🟢 -1.06 kB 🟢 -922 B
assets/MediaVideoTop-BEiauIJC.js (new) 2.84 kB 🔴 +2.84 kB 🔴 +1.06 kB 🔴 +924 B
assets/WidgetChart-1bZGfe6O.js (removed) 2.79 kB 🟢 -2.79 kB 🟢 -1.06 kB 🟢 -958 B
assets/WidgetChart-DMKnrvBz.js (new) 2.79 kB 🔴 +2.79 kB 🔴 +1.06 kB 🔴 +956 B
assets/WidgetLayoutField-CcqfrJfG.js (new) 2.61 kB 🔴 +2.61 kB 🔴 +1.01 kB 🔴 +890 B
assets/WidgetLayoutField-zNq5xTi-.js (removed) 2.61 kB 🟢 -2.61 kB 🟢 -1.01 kB 🟢 -890 B
assets/WidgetInputText-CtnWVTX2.js (removed) 2.58 kB 🟢 -2.58 kB 🟢 -1.01 kB 🟢 -911 B
assets/WidgetInputText-D8jHKNLg.js (new) 2.58 kB 🔴 +2.58 kB 🔴 +1.01 kB 🔴 +945 B
assets/BaseViewTemplate-DR0t0gfT.js (new) 2.42 kB 🔴 +2.42 kB 🔴 +1.04 kB 🔴 +926 B
assets/BaseViewTemplate-DvV0Ic8F.js (removed) 2.42 kB 🟢 -2.42 kB 🟢 -1.04 kB 🟢 -946 B
assets/Media3DTop-Bj6UL3Mt.js (removed) 2.38 kB 🟢 -2.38 kB 🟢 -1.02 kB 🟢 -881 B
assets/Media3DTop-Bw5Eh-NK.js (new) 2.38 kB 🔴 +2.38 kB 🔴 +1.02 kB 🔴 +881 B
assets/MediaImageTop-D0aiBzXG.js (removed) 2.34 kB 🟢 -2.34 kB 🟢 -1.01 kB 🟢 -886 B
assets/MediaImageTop-E4gHeZJf.js (new) 2.34 kB 🔴 +2.34 kB 🔴 +1.01 kB 🔴 +880 B
assets/MediaAudioTop-CFKGLvyI.js (new) 2 kB 🔴 +2 kB 🔴 +886 B 🔴 +766 B
assets/MediaAudioTop-D8pQnmES.js (removed) 2 kB 🟢 -2 kB 🟢 -883 B 🟢 -763 B
assets/CloudRunButtonWrapper-BMr61qQT.js (removed) 1.79 kB 🟢 -1.79 kB 🟢 -643 B 🟢 -595 B
assets/CloudRunButtonWrapper-BVprYrbz.js (new) 1.79 kB 🔴 +1.79 kB 🔴 +639 B 🔴 +591 B
assets/widgetPropFilter-DfR_ZXyS.js (removed) 1.31 kB 🟢 -1.31 kB 🟢 -567 B 🟢 -481 B
assets/widgetPropFilter-DlkIBv6N.js (new) 1.31 kB 🔴 +1.31 kB 🔴 +567 B 🔴 +496 B
assets/cloudBadges-32T__F85.js (removed) 1.08 kB 🟢 -1.08 kB 🟢 -537 B 🟢 -478 B
assets/cloudBadges-CxRCX3h7.js (new) 1.08 kB 🔴 +1.08 kB 🔴 +536 B 🔴 +494 B
assets/graphHasMissingNodes-CNm0DyBF.js (removed) 1.06 kB 🟢 -1.06 kB 🟢 -460 B 🟢 -425 B
assets/graphHasMissingNodes-VWhiEMVs.js (new) 1.06 kB 🔴 +1.06 kB 🔴 +460 B 🔴 +424 B
assets/cloudSubscription-COefBVs1.js (new) 976 B 🔴 +976 B 🔴 +457 B 🔴 +397 B
assets/cloudSubscription-DsXtNEwu.js (removed) 976 B 🟢 -976 B 🟢 -455 B 🟢 -393 B
assets/previousFullPath-DZ1Jt5wB.js (removed) 838 B 🟢 -838 B 🟢 -415 B 🟢 -346 B
assets/previousFullPath-xzPidGnZ.js (new) 838 B 🔴 +838 B 🔴 +412 B 🔴 +346 B
assets/AudioPreviewPlayer-CwC8fv4e.js (new) 191 B 🔴 +191 B 🔴 +120 B 🔴 +115 B
assets/AudioPreviewPlayer-FjjNMkYg.js (removed) 191 B 🟢 -191 B 🟢 -120 B 🟢 -109 B
assets/WidgetInputNumber-BeePlr-Q.js (removed) 186 B 🟢 -186 B 🟢 -119 B 🟢 -123 B
assets/WidgetInputNumber-CmRrAUia.js (new) 186 B 🔴 +186 B 🔴 +119 B 🔴 +123 B
assets/WidgetLegacy-BggFHd7u.js (new) 164 B 🔴 +164 B 🔴 +125 B 🔴 +107 B
assets/WidgetLegacy-CtLX1i1n.js (removed) 164 B 🟢 -164 B 🟢 -125 B 🟢 -110 B
assets/WidgetSelect-B_BIH3B6.js (removed) 161 B 🟢 -161 B 🟢 -113 B 🟢 -106 B
assets/WidgetSelect-Dk2j3z9g.js (new) 161 B 🔴 +161 B 🔴 +113 B 🔴 +106 B
assets/Load3D-BoY7EWO7.js (removed) 131 B 🟢 -131 B 🟢 -107 B 🟢 -118 B
assets/Load3D-Dy-wajwG.js (new) 131 B 🔴 +131 B 🔴 +107 B 🔴 +115 B
assets/auto-Bv9cmrEd.js 1.73 kB 1.73 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/mixpanel.module-FcNs04XW.js 143 B 143 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/OBJLoader2WorkerModule-DTMpvldF.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/preservedQueryNamespaces-BsMrb3S_.js 3.23 kB 3.23 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/rolldown-runtime-CqTjxoQm.js 1.53 kB 1.53 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Slider-BIIoltvA.js 4.21 kB 4.21 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widget-Dneex3J5.js 518 B 518 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-CUDq_bgN.js 4.71 kB 4.71 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-T8Ljl7oe.js 186 B 186 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 75 added / 74 removed

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@src/renderer/extensions/linearMode/Preview3d.vue`:
- Around line 33-43: The v-models on Load3DControls are currently passing the
entire viewer composable (viewer) which will be replaced by config-shaped
payloads and lose methods; create computed getters/setters for each config
(e.g., sceneConfig, modelConfig, cameraConfig, lightConfig) that read the
relevant fields from viewer.value in the getter and merge/assign back into
viewer.value in the setter, then change v-model:scene-config,
v-model:model-config, v-model:camera-config and v-model:light-config to use
those computed refs (keep the existing event handlers like
viewer.handleBackgroundImageUpdate and viewer.exportModel unchanged).

Comment on lines +33 to +43
<Load3DControls
v-model:scene-config="viewer"
v-model:model-config="viewer"
v-model:camera-config="viewer"
v-model:light-config="viewer"
:is-splat-model="viewer.isSplatModel"
:is-ply-model="viewer.isPlyModel"
:has-skeleton="viewer.hasSkeleton"
@update-background-image="viewer.handleBackgroundImageUpdate"
@export-model="viewer.exportModel"
/>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

find src -name "Load3DControls.vue" -o -name "*load3d*" -o -name "*Load3d*" | head -20

Repository: Comfy-Org/ComfyUI_frontend

Length of output: 553


🏁 Script executed:

find src -name "*load3d*" -o -name "*Load3d*" -type f | grep -E "\.(vue|ts)$"

Repository: Comfy-Org/ComfyUI_frontend

Length of output: 463


🏁 Script executed:

rg -l "useLoad3dViewer" src --type vue --type ts

Repository: Comfy-Org/ComfyUI_frontend

Length of output: 97


🏁 Script executed:

cat -n src/components/load3d/Load3DControls.vue

Repository: Comfy-Org/ComfyUI_frontend

Length of output: 7265


🏁 Script executed:

cat -n src/composables/useLoad3dViewer.ts

Repository: Comfy-Org/ComfyUI_frontend

Length of output: 21869


🏁 Script executed:

find src -name "Preview3d.vue" -type f

Repository: Comfy-Org/ComfyUI_frontend

Length of output: 118


🏁 Script executed:

cat -n src/renderer/extensions/linearMode/Preview3d.vue | head -60

Repository: Comfy-Org/ComfyUI_frontend

Length of output: 2325


Binding individual config properties instead of the full viewer object.

The v-model bindings pass the entire viewer composable to Load3DControls, but the component's emitted update:* events expect Config-shaped payloads. This would replace viewer.value with a config object, losing composable methods. Create computed getters/setters for each config or bind individual properties instead:

const sceneConfig = computed({
  get: () => ({ showGrid: viewer.value.showGrid, backgroundColor: viewer.value.backgroundColor, backgroundImage: viewer.value.backgroundImage, backgroundRenderMode: viewer.value.backgroundRenderMode }),
  set: (config) => Object.assign(viewer.value, config)
})

Then use v-model:scene-config="sceneConfig" (similarly for model, camera, light configs).

🤖 Prompt for AI Agents
In `@src/renderer/extensions/linearMode/Preview3d.vue` around lines 33 - 43, The
v-models on Load3DControls are currently passing the entire viewer composable
(viewer) which will be replaced by config-shaped payloads and lose methods;
create computed getters/setters for each config (e.g., sceneConfig, modelConfig,
cameraConfig, lightConfig) that read the relevant fields from viewer.value in
the getter and merge/assign back into viewer.value in the setter, then change
v-model:scene-config, v-model:model-config, v-model:camera-config and
v-model:light-config to use those computed refs (keep the existing event
handlers like viewer.handleBackgroundImageUpdate and viewer.exportModel
unchanged).

@DrJKL DrJKL requested a review from jtydhr88 January 20, 2026 21:04
@christian-byrne christian-byrne merged commit ef2d34c into main Jan 24, 2026
42 checks passed
@christian-byrne christian-byrne deleted the austin/linear-3d-controls branch January 24, 2026 03:24
github-actions bot pushed a commit that referenced this pull request Jan 24, 2026
Adds control buttons to the top left of the 3d preview in linear mode.
<img width="460" alt="image"
src="https://github.com/user-attachments/assets/35a83b9c-65af-46c3-a910-be5ad30c428e"
/>


This was deprioritized because I forgot the secret to magically
unwrapping a set of refs (wrap them in another ref).

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8178-Add-3d-control-buttons-to-linear-mode-2ee6d73d3650816ab1a8e73ace1bdbc7)
by [Unito](https://www.unito.io)
@comfy-pr-bot
Copy link
Member

@AustinMroz Successfully backported to #8289

@github-actions github-actions bot removed the needs-backport Fix/change that needs to be cherry-picked to the current feature freeze branch label Jan 24, 2026
DrJKL added a commit that referenced this pull request Jan 25, 2026
Backport of #8178 to `cloud/1.37`

Automatically created by backport workflow.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8289-backport-cloud-1-37-Add-3d-control-buttons-to-linear-mode-2f26d73d3650817290ebf575f5f7a7a4)
by [Unito](https://www.unito.io)

Co-authored-by: AustinMroz <austin@comfy.org>
Co-authored-by: Alexander Brown <drjkl@comfy.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cloud/1.37 Backport PRs for cloud 1.37 size:M This PR changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants