Skip to content

Render app builder in arrange mode#9260

Merged
pythongosssss merged 2 commits intomainfrom
pysssss/app-builder-preview
Feb 27, 2026
Merged

Render app builder in arrange mode#9260
pythongosssss merged 2 commits intomainfrom
pysssss/app-builder-preview

Conversation

@pythongosssss
Copy link
Member

@pythongosssss pythongosssss commented Feb 26, 2026

Summary

Adds app builder in arrange/preview mode with re-orderable widgets, maintaining size (as much as possible) between the select + preview steps

Changes

  • What:
  • Extract sidebar size constants for sharing between canvas splitter + app mode
  • Add widget list using DraggableList and render inert WidgetItems

Screenshots (if applicable)

image

┆Issue is synchronized with this Notion page by Unito

- add orderable widget list
- fix splitter layout issues
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 26, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f312016 and 0ec690e.

📒 Files selected for processing (1)
  • src/components/builder/AppBuilder.vue

📝 Walkthrough

Walkthrough

Adds an "arrange inputs" builder mode, centralizes splitter sizing via new constants, and refactors mode flags (select/arrange). Multiple components now conditionally render and size panels based on these modes, and the splitter state-key and sizing use shared constants.

Changes

Cohort / File(s) Summary
Splitter Layout Constants
src/constants/splitterConstants.ts
Adds layout constants: SIDE_PANEL_SIZE, CENTER_PANEL_SIZE, SIDEBAR_MIN_SIZE, BUILDER_MIN_SIZE for panel sizing and minimums.
Mode Management
src/composables/useAppMode.ts
Introduces isSelectMode and isArrangeMode computed flags and updates isBuilderMode to derive from them; exposes the new flags.
Splitter Overlay
src/components/LiteGraphCanvasSplitterOverlay.vue
Replaces static state-key with conditional builder-specific key, binds new min-size/size constants, and switches mode checks to isSelectMode.
Linear View & Layout
src/views/LinearView.vue
Adds arrange-mode-aware panel visibility and sizing, uses splitter constants, conditionally renders AppBuilder in side panels, updates splitter panel props and gutter styling for arrange mode.
Builder UI
src/components/builder/AppBuilder.vue
Adds arrange inputs mode: provides layout key, conditionally renders a draggable arrange list (WidgetItem) and adjusts Teleport rendering to builder:select.
Widget Item
src/components/rightSidePanel/parameters/WidgetItem.vue
Adds hiddenWidgetActions prop and hides widget actions when true.

Sequence Diagram

sequenceDiagram
    participant User
    participant ModeSystem as App Mode
    participant LinearView
    participant Splitter
    participant AppBuilder

    User->>ModeSystem: switch mode -> 'builder:arrange'
    ModeSystem->>LinearView: isArrangeMode updates
    LinearView->>Splitter: set panel sizes & min-sizes (CENTER_PANEL_SIZE, SIDE_PANEL_SIZE, *_MIN_SIZE)
    LinearView->>AppBuilder: render in left/right panels if showLeft/RightBuilder
    AppBuilder->>AppBuilder: render DraggableList (arrange inputs) / hide outputs
    Splitter->>LinearView: update gutters and visibility
    LinearView-->>User: display arranged 3-panel layout
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Poem

🐰 I nibbled at panes and hopped through the code,

Arranged the inputs along a tidy road.
Constants lined up like carrots in rows,
Modes now prance where the split-window glows,
A happy builder burrow where tidy UI grows.

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Render app builder in arrange mode' directly and clearly describes the main feature added: rendering the app builder in a new arrange/preview mode with re-orderable widgets.
Description check ✅ Passed The description includes a clear summary and changes section with details about extracting constants and adding widget list functionality, plus a relevant screenshot demonstrating the feature.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch pysssss/app-builder-preview

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 Feb 26, 2026

🎨 Storybook: ✅ Built — View Storybook

Details

⏰ Completed at: 02/26/2026, 09:06:56 PM UTC

Links

@github-actions
Copy link

github-actions bot commented Feb 26, 2026

🎭 Playwright: ✅ 549 passed, 0 failed · 4 flaky

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

@github-actions
Copy link

github-actions bot commented Feb 26, 2026

📦 Bundle: 4.44 MB gzip 🔴 +1.07 kB

Details

Summary

  • Raw size: 20.8 MB baseline 20.8 MB — 🔴 +4.57 kB
  • Gzip: 4.44 MB baseline 4.44 MB — 🔴 +1.07 kB
  • Brotli: 3.43 MB baseline 3.43 MB — 🔴 +338 B
  • Bundles: 228 current • 228 baseline • 108 added / 108 removed

Category Glance
Graph Workspace 🔴 +4.42 kB (1.01 MB) · Data & Services 🔴 +151 B (2.55 MB) · Vendor & Third-Party ⚪ 0 B (8.84 MB) · Other ⚪ 0 B (7.77 MB) · Panels & Settings ⚪ 0 B (435 kB) · Views & Navigation ⚪ 0 B (72.1 kB) · + 5 more

App Entry Points — 17.9 kB (baseline 17.9 kB) • ⚪ 0 B

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-BROpTEwV.js (removed) 17.9 kB 🟢 -17.9 kB 🟢 -6.34 kB 🟢 -5.51 kB
assets/index-Bu7GIaNz.js (new) 17.9 kB 🔴 +17.9 kB 🔴 +6.35 kB 🔴 +5.49 kB

Status: 1 added / 1 removed

Graph Workspace — 1.01 MB (baseline 1.01 MB) • 🔴 +4.42 kB

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-Dd_ge-JE.js (new) 1.01 MB 🔴 +1.01 MB 🔴 +217 kB 🔴 +164 kB
assets/GraphView-COACNYSf.js (removed) 1.01 MB 🟢 -1.01 MB 🟢 -216 kB 🟢 -164 kB

Status: 1 added / 1 removed

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

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CloudSurveyView-D0ZIDpqQ.js (removed) 15.5 kB 🟢 -15.5 kB 🟢 -3.32 kB 🟢 -2.82 kB
assets/CloudSurveyView-DV4X2V17.js (new) 15.5 kB 🔴 +15.5 kB 🔴 +3.32 kB 🔴 +2.82 kB
assets/CloudLoginView-BRjRMRDf.js (new) 11.4 kB 🔴 +11.4 kB 🔴 +3.19 kB 🔴 +2.82 kB
assets/CloudLoginView-CKr_Geuc.js (removed) 11.4 kB 🟢 -11.4 kB 🟢 -3.19 kB 🟢 -2.82 kB
assets/CloudSignupView-CRmrTcxZ.js (removed) 9.37 kB 🟢 -9.37 kB 🟢 -2.69 kB 🟢 -2.36 kB
assets/CloudSignupView-Dnpmb61-.js (new) 9.37 kB 🔴 +9.37 kB 🔴 +2.69 kB 🔴 +2.36 kB
assets/UserCheckView-Bvb95nZe.js (new) 8.41 kB 🔴 +8.41 kB 🔴 +2.23 kB 🔴 +1.94 kB
assets/UserCheckView-QXWFikfe.js (removed) 8.41 kB 🟢 -8.41 kB 🟢 -2.23 kB 🟢 -1.94 kB
assets/CloudLayoutView-CpYAgQOL.js (removed) 6.43 kB 🟢 -6.43 kB 🟢 -2.1 kB 🟢 -1.82 kB
assets/CloudLayoutView-DxM09sH-.js (new) 6.43 kB 🔴 +6.43 kB 🔴 +2.1 kB 🔴 +1.83 kB
assets/CloudForgotPasswordView-Bh96Iiih.js (removed) 5.56 kB 🟢 -5.56 kB 🟢 -1.93 kB 🟢 -1.7 kB
assets/CloudForgotPasswordView-DPnyYZUx.js (new) 5.56 kB 🔴 +5.56 kB 🔴 +1.93 kB 🔴 +1.7 kB
assets/CloudAuthTimeoutView-a2Jtmb7i.js (removed) 4.91 kB 🟢 -4.91 kB 🟢 -1.77 kB 🟢 -1.54 kB
assets/CloudAuthTimeoutView-CV92JeaP.js (new) 4.91 kB 🔴 +4.91 kB 🔴 +1.77 kB 🔴 +1.54 kB
assets/CloudSubscriptionRedirectView-CulcqFSo.js (new) 4.75 kB 🔴 +4.75 kB 🔴 +1.79 kB 🔴 +1.58 kB
assets/CloudSubscriptionRedirectView-D7-1Bito.js (removed) 4.75 kB 🟢 -4.75 kB 🟢 -1.78 kB 🟢 -1.58 kB
assets/UserSelectView-BmR4E3Y0.js (removed) 4.5 kB 🟢 -4.5 kB 🟢 -1.64 kB 🟢 -1.47 kB
assets/UserSelectView-Dy08wGiN.js (new) 4.5 kB 🔴 +4.5 kB 🔴 +1.64 kB 🔴 +1.46 kB
assets/CloudSorryContactSupportView-Bypca0av.js 1.02 kB 1.02 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/layout-CI4MZk1L.js 296 B 296 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 9 added / 9 removed

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

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/SecretsPanel-B6L3J1U4.js (removed) 21.5 kB 🟢 -21.5 kB 🟢 -5.3 kB 🟢 -4.66 kB
assets/SecretsPanel-DzXy8dE7.js (new) 21.5 kB 🔴 +21.5 kB 🔴 +5.31 kB 🔴 +4.66 kB
assets/LegacyCreditsPanel-DKHH9nUV.js (removed) 20.6 kB 🟢 -20.6 kB 🟢 -5.56 kB 🟢 -4.89 kB
assets/LegacyCreditsPanel-DskDjvko.js (new) 20.6 kB 🔴 +20.6 kB 🔴 +5.56 kB 🔴 +4.89 kB
assets/SubscriptionPanel-C4k0Mv8L.js (new) 18.2 kB 🔴 +18.2 kB 🔴 +4.66 kB 🔴 +4.09 kB
assets/SubscriptionPanel-Dj0gEvdC.js (removed) 18.2 kB 🟢 -18.2 kB 🟢 -4.65 kB 🟢 -4.1 kB
assets/KeybindingPanel-Chm3h_ps.js (removed) 12.3 kB 🟢 -12.3 kB 🟢 -3.51 kB 🟢 -3.11 kB
assets/KeybindingPanel-CMae-vWm.js (new) 12.3 kB 🔴 +12.3 kB 🔴 +3.52 kB 🔴 +3.11 kB
assets/AboutPanel-CBMP-_8o.js (new) 9.79 kB 🔴 +9.79 kB 🔴 +2.73 kB 🔴 +2.45 kB
assets/AboutPanel-DHQUdCf6.js (removed) 9.79 kB 🟢 -9.79 kB 🟢 -2.73 kB 🟢 -2.46 kB
assets/ExtensionPanel-CfYjTsKT.js (removed) 9.38 kB 🟢 -9.38 kB 🟢 -2.65 kB 🟢 -2.35 kB
assets/ExtensionPanel-CTAfaNmi.js (new) 9.38 kB 🔴 +9.38 kB 🔴 +2.65 kB 🔴 +2.36 kB
assets/ServerConfigPanel-BiClL3ZZ.js (removed) 6.44 kB 🟢 -6.44 kB 🟢 -2.12 kB 🟢 -1.92 kB
assets/ServerConfigPanel-BiKLFnUe.js (new) 6.44 kB 🔴 +6.44 kB 🔴 +2.13 kB 🔴 +1.9 kB
assets/UserPanel-BrlEQNy9.js (new) 6.16 kB 🔴 +6.16 kB 🔴 +1.99 kB 🔴 +1.75 kB
assets/UserPanel-C0Gn90lD.js (removed) 6.16 kB 🟢 -6.16 kB 🟢 -1.99 kB 🟢 -1.75 kB
assets/cloudRemoteConfig-B8M-6qEf.js (removed) 1.44 kB 🟢 -1.44 kB 🟢 -703 B 🟢 -612 B
assets/cloudRemoteConfig-BmHBj-aM.js (new) 1.44 kB 🔴 +1.44 kB 🔴 +702 B 🔴 +611 B
assets/refreshRemoteConfig-5Q8SqsAC.js (removed) 1.14 kB 🟢 -1.14 kB 🟢 -519 B 🟢 -473 B
assets/refreshRemoteConfig-DHo0taIE.js (new) 1.14 kB 🔴 +1.14 kB 🔴 +516 B 🔴 +473 B
assets/config-CGn5JFmU.js 996 B 996 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-B5oF6TeI.js 29.9 kB 29.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BVYOg4dh.js 24.5 kB 24.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CBEvSL1z.js 38.5 kB 38.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CGx1t8IZ.js 27.8 kB 27.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CNcb_4nC.js 30.5 kB 30.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-Cx1dZM6H.js 23.9 kB 23.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-Dw-QS6Nb.js 27.9 kB 27.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DXxgnCSn.js 32.4 kB 32.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-GRFn4guL.js 34.2 kB 34.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-mgwKIVQ2.js 28.8 kB 28.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-s83B801I.js 28.7 kB 28.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 10 added / 10 removed

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

Authentication, profile, and account management bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/auth-BfW91LmQ.js (removed) 3.4 kB 🟢 -3.4 kB 🟢 -1.18 kB 🟢 -986 B
assets/auth-CVRPvln_.js (new) 3.4 kB 🔴 +3.4 kB 🔴 +1.18 kB 🔴 +995 B
assets/SignUpForm-AhbyxvJA.js (new) 3.01 kB 🔴 +3.01 kB 🔴 +1.23 kB 🔴 +1.1 kB
assets/SignUpForm-CzNFQHEv.js (removed) 3.01 kB 🟢 -3.01 kB 🟢 -1.23 kB 🟢 -1.08 kB
assets/UpdatePasswordContent-CpXO3RDd.js (removed) 2.37 kB 🟢 -2.37 kB 🟢 -1.07 kB 🟢 -944 B
assets/UpdatePasswordContent-CvBUU1_2.js (new) 2.37 kB 🔴 +2.37 kB 🔴 +1.07 kB 🔴 +944 B
assets/firebaseAuthStore-C136UBSU.js (new) 788 B 🔴 +788 B 🔴 +388 B 🔴 +343 B
assets/firebaseAuthStore-CNnHXHev.js (removed) 788 B 🟢 -788 B 🟢 -380 B 🟢 -342 B
assets/auth-BwsdUKzx.js (removed) 357 B 🟢 -357 B 🟢 -223 B 🟢 -214 B
assets/auth-vVl9GyQ-.js (new) 357 B 🔴 +357 B 🔴 +224 B 🔴 +212 B
assets/PasswordFields-DLbVLg8O.js 4.51 kB 4.51 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WorkspaceProfilePic-D6ioir1T.js 1.57 kB 1.57 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 5 added / 5 removed

Editors & Dialogs — 736 B (baseline 736 B) • ⚪ 0 B

Modals, dialogs, drawers, and in-app editors

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useSubscriptionDialog-COfN-hpU.js (removed) 736 B 🟢 -736 B 🟢 -376 B 🟢 -326 B
assets/useSubscriptionDialog-Djx3i_w1.js (new) 736 B 🔴 +736 B 🔴 +380 B 🔴 +325 B

Status: 1 added / 1 removed

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

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useTerminalTabs-bcbbdQVU.js (new) 9.84 kB 🔴 +9.84 kB 🔴 +3.4 kB 🔴 +3 kB
assets/useTerminalTabs-CkAnQuLy.js (removed) 9.84 kB 🟢 -9.84 kB 🟢 -3.4 kB 🟢 -2.99 kB
assets/ComfyQueueButton-C8W99DUc.js (new) 8.02 kB 🔴 +8.02 kB 🔴 +2.49 kB 🔴 +2.23 kB
assets/ComfyQueueButton-CnzebpWa.js (removed) 8.02 kB 🟢 -8.02 kB 🟢 -2.49 kB 🟢 -2.23 kB
assets/SubscribeButton-D-8l-Tbp.js (removed) 2.48 kB 🟢 -2.48 kB 🟢 -1.07 kB 🟢 -931 B
assets/SubscribeButton-DFQ0AAar.js (new) 2.48 kB 🔴 +2.48 kB 🔴 +1.07 kB 🔴 +938 B
assets/cloudFeedbackTopbarButton-BJGLoUuF.js (new) 1.59 kB 🔴 +1.59 kB 🔴 +854 B 🔴 +765 B
assets/cloudFeedbackTopbarButton-DTbZfMIb.js (removed) 1.59 kB 🟢 -1.59 kB 🟢 -851 B 🟢 -757 B
assets/ComfyQueueButton-BUe5P0UV.js (removed) 793 B 🟢 -793 B 🟢 -391 B 🟢 -349 B
assets/ComfyQueueButton-Cg0G4dtV.js (new) 793 B 🔴 +793 B 🔴 +395 B 🔴 +346 B
assets/Button-D1z3poyI.js 2.98 kB 2.98 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/CloudBadge-BEnZAylJ.js 1.24 kB 1.24 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/FormSearchInput-Bg4LklDe.js 3.73 kB 3.73 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ScrubableNumberInput-DecBFGbM.js 5.94 kB 5.94 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/TopbarBadge-CJNpTEnW.js 7.44 kB 7.44 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserAvatar-CnQQLXB-.js 1.17 kB 1.17 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetButton-sg8Jj4MY.js 1.84 kB 1.84 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 5 added / 5 removed

Data & Services — 2.55 MB (baseline 2.55 MB) • 🔴 +151 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/dialogService-D79IXB57.js (new) 1.75 MB 🔴 +1.75 MB 🔴 +393 kB 🔴 +296 kB
assets/dialogService-6tGUv7Iy.js (removed) 1.75 MB 🟢 -1.75 MB 🟢 -393 kB 🟢 -296 kB
assets/api-BopNnhii.js (removed) 677 kB 🟢 -677 kB 🟢 -153 kB 🟢 -122 kB
assets/api-DxktA2ux.js (new) 677 kB 🔴 +677 kB 🔴 +153 kB 🔴 +122 kB
assets/load3dService-BHM3v-5q.js (new) 91 kB 🔴 +91 kB 🔴 +19.1 kB 🔴 +16.4 kB
assets/load3dService-C6UjRA83.js (removed) 91 kB 🟢 -91 kB 🟢 -19.1 kB 🟢 -16.4 kB
assets/extensionStore-BPytbLDN.js (removed) 12.1 kB 🟢 -12.1 kB 🟢 -4.21 kB 🟢 -3.7 kB
assets/extensionStore-CcDh_UpW.js (new) 12.1 kB 🔴 +12.1 kB 🔴 +4.21 kB 🔴 +3.7 kB
assets/releaseStore-C7Ev0ni2.js (new) 7.96 kB 🔴 +7.96 kB 🔴 +2.22 kB 🔴 +1.95 kB
assets/releaseStore-CKbIpP7s.js (removed) 7.96 kB 🟢 -7.96 kB 🟢 -2.22 kB 🟢 -1.95 kB
assets/keybindingService-CthI49YU.js (removed) 6.52 kB 🟢 -6.52 kB 🟢 -1.71 kB 🟢 -1.48 kB
assets/keybindingService-CWKo2BWT.js (new) 6.52 kB 🔴 +6.52 kB 🔴 +1.71 kB 🔴 +1.48 kB
assets/bootstrapStore-Bu4vtQyM.js (new) 2.08 kB 🔴 +2.08 kB 🔴 +869 B 🔴 +791 B
assets/bootstrapStore-homUsch-.js (removed) 2.08 kB 🟢 -2.08 kB 🟢 -872 B 🟢 -791 B
assets/userStore-C9N7QPJj.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -719 B 🟢 -673 B
assets/userStore-rCvYpqTQ.js (new) 1.85 kB 🔴 +1.85 kB 🔴 +720 B 🔴 +671 B
assets/audioService-DlXorVmR.js (new) 1.73 kB 🔴 +1.73 kB 🔴 +847 B 🔴 +725 B
assets/audioService-hGw3IQmY.js (removed) 1.73 kB 🟢 -1.73 kB 🟢 -848 B 🟢 -726 B
assets/releaseStore-b2PyhbRf.js (new) 760 B 🔴 +760 B 🔴 +387 B 🔴 +335 B
assets/releaseStore-BSVHrQtQ.js (removed) 760 B 🟢 -760 B 🟢 -382 B 🟢 -339 B
assets/settingStore-CI1AuYpC.js (new) 744 B 🔴 +744 B 🔴 +388 B 🔴 +339 B
assets/settingStore-Dj7e5vg8.js (removed) 744 B 🟢 -744 B 🟢 -384 B 🟢 -341 B
assets/workflowDraftStore-C76njrgx.js (new) 736 B 🔴 +736 B 🔴 +381 B 🔴 +331 B
assets/workflowDraftStore-jQDFOOGM.js (removed) 736 B 🟢 -736 B 🟢 -376 B 🟢 -332 B
assets/dialogService-DiQ0k2lP.js (removed) 725 B 🟢 -725 B 🟢 -364 B 🟢 -325 B
assets/dialogService-Dyc8sBCd.js (new) 725 B 🔴 +725 B 🔴 +371 B 🔴 +324 B
assets/serverConfigStore-EPk4OtIK.js 2.32 kB 2.32 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 13 added / 13 removed

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

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useLoad3d-BUdL0p7i.js (new) 14.6 kB 🔴 +14.6 kB 🔴 +3.63 kB 🔴 +3.2 kB
assets/useLoad3d-CMUt5VUf.js (removed) 14.6 kB 🟢 -14.6 kB 🟢 -3.63 kB 🟢 -3.21 kB
assets/useLoad3dViewer-BRg81Z8s.js (removed) 14.1 kB 🟢 -14.1 kB 🟢 -3.15 kB 🟢 -2.79 kB
assets/useLoad3dViewer-CaOTijvX.js (new) 14.1 kB 🔴 +14.1 kB 🔴 +3.15 kB 🔴 +2.79 kB
assets/useFeatureFlags-d8g6kzsf.js (removed) 4.14 kB 🟢 -4.14 kB 🟢 -1.24 kB 🟢 -1.06 kB
assets/useFeatureFlags-DhPHnHuC.js (new) 4.14 kB 🔴 +4.14 kB 🔴 +1.24 kB 🔴 +1.05 kB
assets/useWorkspaceUI-CO0iCyeM.js (removed) 3 kB 🟢 -3 kB 🟢 -821 B 🟢 -704 B
assets/useWorkspaceUI-DoiHGUCT.js (new) 3 kB 🔴 +3 kB 🔴 +823 B 🔴 +708 B
assets/subscriptionCheckoutUtil-CMV7n-fp.js (new) 2.53 kB 🔴 +2.53 kB 🔴 +1.06 kB 🔴 +952 B
assets/subscriptionCheckoutUtil-DAnZUIj6.js (removed) 2.53 kB 🟢 -2.53 kB 🟢 -1.06 kB 🟢 -952 B
assets/useErrorHandling-B32cCrkp.js (removed) 1.5 kB 🟢 -1.5 kB 🟢 -627 B 🟢 -533 B
assets/useErrorHandling-zYDLzRB9.js (new) 1.5 kB 🔴 +1.5 kB 🔴 +630 B 🔴 +534 B
assets/useWorkspaceSwitch-C3_cUVZi.js (removed) 1.25 kB 🟢 -1.25 kB 🟢 -545 B 🟢 -480 B
assets/useWorkspaceSwitch-DNgYfW8l.js (new) 1.25 kB 🔴 +1.25 kB 🔴 +545 B 🔴 +480 B
assets/useLoad3d-D_MEAkUw.js (new) 859 B 🔴 +859 B 🔴 +425 B 🔴 +380 B
assets/useLoad3d-DyGwTVDq.js (removed) 859 B 🟢 -859 B 🟢 -421 B 🟢 -379 B
assets/audioUtils-BIE49Xwh.js (removed) 858 B 🟢 -858 B 🟢 -502 B 🟢 -402 B
assets/audioUtils-C68UQ2l4.js (new) 858 B 🔴 +858 B 🔴 +503 B 🔴 +403 B
assets/useLoad3dViewer-Cfv8Bwdg.js (removed) 838 B 🟢 -838 B 🟢 -405 B 🟢 -369 B
assets/useLoad3dViewer-DXHitsnV.js (new) 838 B 🔴 +838 B 🔴 +411 B 🔴 +369 B
assets/useCurrentUser-CpFkNlLd.js (new) 722 B 🔴 +722 B 🔴 +375 B 🔴 +324 B
assets/useCurrentUser-DMOed3JE.js (removed) 722 B 🟢 -722 B 🟢 -367 B 🟢 -325 B
assets/_plugin-vue_export-helper-ralzwvFM.js 315 B 315 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/colorUtil-CY7QMUhQ.js 7 kB 7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/envUtil-Clzmwvt4.js 466 B 466 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/markdownRendererUtil-Cddas8Zl.js 1.56 kB 1.56 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/SkeletonUtils-BputJAFn.js 133 B 133 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/useExternalLink-CX9r3naC.js 1.66 kB 1.66 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 11 added / 11 removed

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

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-axios-Cp6hch1I.js 70.7 kB 70.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-chart-BxkFiWzp.js 399 kB 399 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-firebase-BvMr43CG.js 836 kB 836 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-i18n-DNX73mqE.js 133 kB 133 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-markdown-D5S6AC80.js 103 kB 103 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-other-DrYd4O-6.js 1.52 MB 1.52 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-primevue-BnCPTL0g.js 1.73 MB 1.73 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-reka-ui-DVmi2O2Z.js 388 kB 388 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-sentry-SQwstEKc.js 182 kB 182 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-three-LBLOE6BD.js 1.8 MB 1.8 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-tiptap-BnYkbQDM.js 634 kB 634 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vue-core-DtiQ1dr9.js 311 kB 311 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vueuse-D2jVNnmE.js 113 kB 113 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-MKpa1ZAW.js 374 kB 374 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-yjs-CP_4YO8u.js 143 kB 143 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-zod-DcCUUPIi.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Other — 7.77 MB (baseline 7.77 MB) • ⚪ 0 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/core-BH-wmrGj.js (removed) 73.4 kB 🟢 -73.4 kB 🟢 -18.9 kB 🟢 -16.2 kB
assets/core-CPyusBC0.js (new) 73.4 kB 🔴 +73.4 kB 🔴 +18.9 kB 🔴 +16.2 kB
assets/groupNode-CSsH5sii.js (new) 71.8 kB 🔴 +71.8 kB 🔴 +17.7 kB 🔴 +15.5 kB
assets/groupNode-DzSW8NBm.js (removed) 71.8 kB 🟢 -71.8 kB 🟢 -17.7 kB 🟢 -15.6 kB
assets/WidgetSelect-CbMje3V-.js (removed) 58.1 kB 🟢 -58.1 kB 🟢 -12.4 kB 🟢 -10.7 kB
assets/WidgetSelect-DKGrEgEc.js (new) 58.1 kB 🔴 +58.1 kB 🔴 +12.4 kB 🔴 +10.7 kB
assets/SubscriptionRequiredDialogContentWorkspace-6oc4YaNd.js (removed) 46.3 kB 🟢 -46.3 kB 🟢 -8.65 kB 🟢 -7.51 kB
assets/SubscriptionRequiredDialogContentWorkspace-aur1i1ax.js (new) 46.3 kB 🔴 +46.3 kB 🔴 +8.65 kB 🔴 +7.5 kB
assets/WidgetPainter-BeZD_2vj.js (new) 32.5 kB 🔴 +32.5 kB 🔴 +7.96 kB 🔴 +7.07 kB
assets/WidgetPainter-DGSgQs0X.js (removed) 32.5 kB 🟢 -32.5 kB 🟢 -7.96 kB 🟢 -7.05 kB
assets/Load3DControls-DNXDKedk.js (removed) 30.9 kB 🟢 -30.9 kB 🟢 -5.34 kB 🟢 -4.64 kB
assets/Load3DControls-RdSZTp1Z.js (new) 30.9 kB 🔴 +30.9 kB 🔴 +5.34 kB 🔴 +4.65 kB
assets/WorkspacePanelContent-C736MplN.js (new) 29.3 kB 🔴 +29.3 kB 🔴 +6.14 kB 🔴 +5.39 kB
assets/WorkspacePanelContent-CNZk6i_o.js (removed) 29.3 kB 🟢 -29.3 kB 🟢 -6.14 kB 🟢 -5.41 kB
assets/SubscriptionRequiredDialogContent-CMd3jFkF.js (removed) 25.7 kB 🟢 -25.7 kB 🟢 -6.57 kB 🟢 -5.79 kB
assets/SubscriptionRequiredDialogContent-CopDvFu7.js (new) 25.7 kB 🔴 +25.7 kB 🔴 +6.57 kB 🔴 +5.78 kB
assets/Load3dViewerContent-CaHruKZl.js (new) 23 kB 🔴 +23 kB 🔴 +5.18 kB 🔴 +4.49 kB
assets/Load3dViewerContent-CD9YqpbD.js (removed) 23 kB 🟢 -23 kB 🟢 -5.18 kB 🟢 -4.5 kB
assets/WidgetImageCrop-9t6RSDo8.js (removed) 22.1 kB 🟢 -22.1 kB 🟢 -5.5 kB 🟢 -4.86 kB
assets/WidgetImageCrop-CXXMhF7q.js (new) 22.1 kB 🔴 +22.1 kB 🔴 +5.51 kB 🔴 +4.85 kB
assets/SubscriptionPanelContentWorkspace-B8s398aA.js (new) 21.6 kB 🔴 +21.6 kB 🔴 +5.05 kB 🔴 +4.45 kB
assets/SubscriptionPanelContentWorkspace-DpiPzkLg.js (removed) 21.6 kB 🟢 -21.6 kB 🟢 -5.05 kB 🟢 -4.45 kB
assets/CurrentUserPopoverWorkspace-BkuE8mkE.js (removed) 19.9 kB 🟢 -19.9 kB 🟢 -4.88 kB 🟢 -4.35 kB
assets/CurrentUserPopoverWorkspace-BXSOy9_V.js (new) 19.9 kB 🔴 +19.9 kB 🔴 +4.88 kB 🔴 +4.33 kB
assets/SignInContent-DuAS2fV6.js (removed) 18.9 kB 🟢 -18.9 kB 🟢 -4.76 kB 🟢 -4.17 kB
assets/SignInContent-yQF_1QSL.js (new) 18.9 kB 🔴 +18.9 kB 🔴 +4.76 kB 🔴 +4.16 kB
assets/WidgetInputNumber-B9iFBVxd.js (new) 18.7 kB 🔴 +18.7 kB 🔴 +4.75 kB 🔴 +4.22 kB
assets/WidgetInputNumber-BTBwWVXa.js (removed) 18.7 kB 🟢 -18.7 kB 🟢 -4.75 kB 🟢 -4.22 kB
assets/WidgetRecordAudio-C6ZgG1PL.js (new) 17.3 kB 🔴 +17.3 kB 🔴 +4.94 kB 🔴 +4.42 kB
assets/WidgetRecordAudio-DDjIWCN-.js (removed) 17.3 kB 🟢 -17.3 kB 🟢 -4.94 kB 🟢 -4.42 kB
assets/Load3D-CmXIuSMD.js (removed) 16.2 kB 🟢 -16.2 kB 🟢 -4.03 kB 🟢 -3.52 kB
assets/Load3D-DNBYeV0B.js (new) 16.2 kB 🔴 +16.2 kB 🔴 +4.03 kB 🔴 +3.51 kB
assets/load3d-BeQO9aeD.js (removed) 14.7 kB 🟢 -14.7 kB 🟢 -4.19 kB 🟢 -3.63 kB
assets/load3d-Gt5BxkFP.js (new) 14.7 kB 🔴 +14.7 kB 🔴 +4.19 kB 🔴 +3.63 kB
assets/AudioPreviewPlayer-B8kY_YF8.js (removed) 10.9 kB 🟢 -10.9 kB 🟢 -3.19 kB 🟢 -2.84 kB
assets/AudioPreviewPlayer-DS0D8sYr.js (new) 10.9 kB 🔴 +10.9 kB 🔴 +3.19 kB 🔴 +2.86 kB
assets/changeTracker-B8zPyeTu.js (removed) 9.38 kB 🟢 -9.38 kB 🟢 -2.89 kB 🟢 -2.54 kB
assets/changeTracker-CXSAHhJz.js (new) 9.38 kB 🔴 +9.38 kB 🔴 +2.9 kB 🔴 +2.55 kB
assets/nodeTemplates-4vioEMsC.js (removed) 9.29 kB 🟢 -9.29 kB 🟢 -3.25 kB 🟢 -2.86 kB
assets/nodeTemplates-DpgTLnhI.js (new) 9.29 kB 🔴 +9.29 kB 🔴 +3.25 kB 🔴 +2.86 kB
assets/InviteMemberDialogContent-CfhPkUSA.js (new) 7.38 kB 🔴 +7.38 kB 🔴 +2.29 kB 🔴 +2.01 kB
assets/InviteMemberDialogContent-wW7REJmC.js (removed) 7.38 kB 🟢 -7.38 kB 🟢 -2.29 kB 🟢 -2 kB
assets/Load3DConfiguration-_8L8ndEG.js (new) 6.27 kB 🔴 +6.27 kB 🔴 +1.92 kB 🔴 +1.68 kB
assets/Load3DConfiguration-BSTSuygn.js (removed) 6.27 kB 🟢 -6.27 kB 🟢 -1.91 kB 🟢 -1.68 kB
assets/CreateWorkspaceDialogContent-BGE_wl3M.js (removed) 5.53 kB 🟢 -5.53 kB 🟢 -1.99 kB 🟢 -1.74 kB
assets/CreateWorkspaceDialogContent-DR585MZQ.js (new) 5.53 kB 🔴 +5.53 kB 🔴 +1.99 kB 🔴 +1.73 kB
assets/onboardingCloudRoutes-C_DRQPmN.js (removed) 5.41 kB 🟢 -5.41 kB 🟢 -1.83 kB 🟢 -1.59 kB
assets/onboardingCloudRoutes-Da17vCp1.js (new) 5.41 kB 🔴 +5.41 kB 🔴 +1.84 kB 🔴 +1.61 kB
assets/FreeTierDialogContent-BU3U56Qz.js (removed) 5.39 kB 🟢 -5.39 kB 🟢 -1.9 kB 🟢 -1.68 kB
assets/FreeTierDialogContent-DEjEOiGh.js (new) 5.39 kB 🔴 +5.39 kB 🔴 +1.9 kB 🔴 +1.67 kB
assets/EditWorkspaceDialogContent-Bd7FnUaI.js (removed) 5.33 kB 🟢 -5.33 kB 🟢 -1.94 kB 🟢 -1.69 kB
assets/EditWorkspaceDialogContent-nRxhPC26.js (new) 5.33 kB 🔴 +5.33 kB 🔴 +1.95 kB 🔴 +1.69 kB
assets/ValueControlPopover-BXSaCOVl.js (new) 4.92 kB 🔴 +4.92 kB 🔴 +1.76 kB 🔴 +1.57 kB
assets/ValueControlPopover-xo0mxESs.js (removed) 4.92 kB 🟢 -4.92 kB 🟢 -1.76 kB 🟢 -1.57 kB
assets/Preview3d-78LXy8Sb.js (new) 4.81 kB 🔴 +4.81 kB 🔴 +1.57 kB 🔴 +1.36 kB
assets/Preview3d-BQXXJ-i9.js (removed) 4.81 kB 🟢 -4.81 kB 🟢 -1.56 kB 🟢 -1.36 kB
assets/CancelSubscriptionDialogContent-Cx12tGod.js (removed) 4.79 kB 🟢 -4.79 kB 🟢 -1.78 kB 🟢 -1.56 kB
assets/CancelSubscriptionDialogContent-y1l-G5if.js (new) 4.79 kB 🔴 +4.79 kB 🔴 +1.78 kB 🔴 +1.56 kB
assets/DeleteWorkspaceDialogContent-BbA3ra6E.js (new) 4.23 kB 🔴 +4.23 kB 🔴 +1.63 kB 🔴 +1.42 kB
assets/DeleteWorkspaceDialogContent-ZztrHO-9.js (removed) 4.23 kB 🟢 -4.23 kB 🟢 -1.63 kB 🟢 -1.41 kB
assets/WidgetWithControl-BGMnN2RP.js (new) 4.1 kB 🔴 +4.1 kB 🔴 +1.77 kB 🔴 +1.59 kB
assets/WidgetWithControl-C0kI3VFx.js (removed) 4.1 kB 🟢 -4.1 kB 🟢 -1.77 kB 🟢 -1.6 kB
assets/LeaveWorkspaceDialogContent-DWblLKYV.js (new) 4.06 kB 🔴 +4.06 kB 🔴 +1.58 kB 🔴 +1.37 kB
assets/LeaveWorkspaceDialogContent-DwZNXExp.js (removed) 4.06 kB 🟢 -4.06 kB 🟢 -1.58 kB 🟢 -1.38 kB
assets/RemoveMemberDialogContent-CQJ-k5es.js (removed) 4.04 kB 🟢 -4.04 kB 🟢 -1.52 kB 🟢 -1.33 kB
assets/RemoveMemberDialogContent-CsVgquAk.js (new) 4.04 kB 🔴 +4.04 kB 🔴 +1.53 kB 🔴 +1.33 kB
assets/RevokeInviteDialogContent-8ucr-Rni.js (removed) 3.95 kB 🟢 -3.95 kB 🟢 -1.54 kB 🟢 -1.35 kB
assets/RevokeInviteDialogContent-B2XQmRPc.js (new) 3.95 kB 🔴 +3.95 kB 🔴 +1.54 kB 🔴 +1.35 kB
assets/InviteMemberUpsellDialogContent-DRW71xg9.js (removed) 3.82 kB 🟢 -3.82 kB 🟢 -1.4 kB 🟢 -1.23 kB
assets/InviteMemberUpsellDialogContent-l3l22dh_.js (new) 3.82 kB 🔴 +3.82 kB 🔴 +1.41 kB 🔴 +1.23 kB
assets/tierBenefits-BM2zKZD8.js (new) 3.66 kB 🔴 +3.66 kB 🔴 +1.3 kB 🔴 +1.17 kB
assets/tierBenefits-CtmuOQ_t.js (removed) 3.66 kB 🟢 -3.66 kB 🟢 -1.3 kB 🟢 -1.15 kB
assets/saveMesh-CTFP4sWJ.js (removed) 3.38 kB 🟢 -3.38 kB 🟢 -1.45 kB 🟢 -1.29 kB
assets/saveMesh-DDxMRqoG.js (new) 3.38 kB 🔴 +3.38 kB 🔴 +1.45 kB 🔴 +1.29 kB
assets/cloudSessionCookie-h1CE6Uyn.js (new) 3.1 kB 🔴 +3.1 kB 🔴 +1.08 kB 🔴 +956 B
assets/cloudSessionCookie-NNBFe0Dh.js (removed) 3.1 kB 🟢 -3.1 kB 🟢 -1.08 kB 🟢 -944 B
assets/GlobalToast-B0MdN94s.js (removed) 2.91 kB 🟢 -2.91 kB 🟢 -1.21 kB 🟢 -1.03 kB
assets/GlobalToast-CKqWLL2C.js (new) 2.91 kB 🔴 +2.91 kB 🔴 +1.21 kB 🔴 +1.03 kB
assets/SubscribeToRun-CfTqCUCP.js (new) 2.2 kB 🔴 +2.2 kB 🔴 +1.01 kB 🔴 +888 B
assets/SubscribeToRun-DYU6eQhr.js (removed) 2.2 kB 🟢 -2.2 kB 🟢 -1.01 kB 🟢 -886 B
assets/CloudRunButtonWrapper-Btls7riE.js (removed) 1.68 kB 🟢 -1.68 kB 🟢 -782 B 🟢 -716 B
assets/CloudRunButtonWrapper-DtETz5tC.js (new) 1.68 kB 🔴 +1.68 kB 🔴 +787 B 🔴 +698 B
assets/previousFullPath-Cvnj-UWB.js (removed) 1.39 kB 🟢 -1.39 kB 🟢 -650 B 🟢 -581 B
assets/previousFullPath-VpvJgUb8.js (new) 1.39 kB 🔴 +1.39 kB 🔴 +651 B 🔴 +574 B
assets/cloudBadges-bCHzBdW0.js (new) 1.37 kB 🔴 +1.37 kB 🔴 +700 B 🔴 +612 B
assets/cloudBadges-fXJxWfon.js (removed) 1.37 kB 🟢 -1.37 kB 🟢 -699 B 🟢 -614 B
assets/cloudSubscription-CMcHJ0gr.js (new) 1.33 kB 🔴 +1.33 kB 🔴 +654 B 🔴 +563 B
assets/cloudSubscription-R4ItmxEj.js (removed) 1.33 kB 🟢 -1.33 kB 🟢 -653 B 🟢 -565 B
assets/Load3D-9086o-Am.js (removed) 1.07 kB 🟢 -1.07 kB 🟢 -495 B 🟢 -444 B
assets/Load3D-BrzCWozz.js (new) 1.07 kB 🔴 +1.07 kB 🔴 +495 B 🔴 +441 B
assets/nightlyBadges-C2BhzTeK.js (new) 1 kB 🔴 +1 kB 🔴 +530 B 🔴 +474 B
assets/nightlyBadges-CGiwNFtg.js (removed) 1 kB 🟢 -1 kB 🟢 -526 B 🟢 -472 B
assets/Load3dViewerContent-BWiNuI1C.js (removed) 993 B 🟢 -993 B 🟢 -464 B 🟢 -418 B
assets/Load3dViewerContent-DyHjKVRF.js (new) 993 B 🔴 +993 B 🔴 +466 B 🔴 +415 B
assets/SubscriptionPanelContentWorkspace-90xKqUMZ.js (new) 920 B 🔴 +920 B 🔴 +440 B 🔴 +373 B
assets/SubscriptionPanelContentWorkspace-wTGk6dIZ.js (removed) 920 B 🟢 -920 B 🟢 -434 B 🟢 -380 B
assets/graphHasMissingNodes-CufunOzo.js (new) 761 B 🔴 +761 B 🔴 +371 B 🔴 +319 B
assets/graphHasMissingNodes-DzzqLDjf.js (removed) 761 B 🟢 -761 B 🟢 -371 B 🟢 -318 B
assets/changeTracker-Atg5OJd3.js (removed) 757 B 🟢 -757 B 🟢 -381 B 🟢 -337 B
assets/changeTracker-YWGvB0Ue.js (new) 757 B 🔴 +757 B 🔴 +384 B 🔴 +336 B
assets/WidgetLegacy-CmIv82L9.js (new) 745 B 🔴 +745 B 🔴 +386 B 🔴 +353 B
assets/WidgetLegacy-vICBZgga.js (removed) 745 B 🟢 -745 B 🟢 -382 B 🟢 -335 B
assets/WidgetInputNumber-BWyYr2kh.js (removed) 469 B 🟢 -469 B 🟢 -265 B 🟢 -228 B
assets/WidgetInputNumber-kUAJala2.js (new) 469 B 🔴 +469 B 🔴 +264 B 🔴 +227 B
assets/AnimationControls-e1OB6oJR.js 4.61 kB 4.61 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ApiNodesSignInContent-BLLHvWL9.js 2.69 kB 2.69 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/auto-BTnZwrs2.js 1.7 kB 1.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/BaseViewTemplate-DQKI7wOs.js 1.78 kB 1.78 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/comfy-logo-single-D9MrYETV.js 198 B 198 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ComfyOrgHeader-CuEodz4y.js 910 B 910 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-B-AdR9IA.js 17.5 kB 17.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CbkxT8K8.js 16.1 kB 16.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CJGmjcIS.js 15.9 kB 15.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CMaLgTTb.js 16.7 kB 16.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Cw07MMbJ.js 18.8 kB 18.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-D7EtdE6o.js 16.9 kB 16.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DknEFpK3.js 15.2 kB 15.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Ds6WuXnw.js 16.1 kB 16.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Dvq-F-mb.js 17.5 kB 17.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-pUOay9Eo.js 15.1 kB 15.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-u2AZ8xU4.js 16.1 kB 16.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/constants-htt0vt7m.js 579 B 579 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/i18n-Cf-RspTR.js 199 B 199 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/i18n-DCat69Wv.js 527 kB 527 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-0eBOvZE-.js 147 kB 147 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-B2sg68b4.js 169 kB 169 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BonGln7m.js 183 kB 183 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Bwaiyhg6.js 130 kB 130 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CgPRGKFQ.js 128 kB 128 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-COpUCFH6.js 154 kB 154 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-D5fk3t1K.js 176 kB 176 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DQn-D-q9.js 151 kB 151 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DRFXRCEv.js 205 kB 205 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-e5nfEcC2.js 146 kB 146 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-MEdUGbq0.js 149 kB 149 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Media3DTop-Dqa2c7nZ.js 1.82 kB 1.82 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaAudioTop-DLiWNcHw.js 1.43 kB 1.43 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaImageTop-BLQErkwF.js 1.75 kB 1.75 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaOtherTop-NQGNpa4H.js 1.02 kB 1.02 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaTextTop-0crUoXWV.js 1.01 kB 1.01 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaVideoTop-sJMrm9jB.js 2.77 kB 2.77 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BmbASBY9.js 409 kB 409 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BPIx0d5-.js 393 kB 393 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BWj_hhU9.js 393 kB 393 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-C7at0SVC.js 385 kB 385 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-D00E-J_2.js 390 kB 390 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DRodGSrf.js 362 kB 362 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-ezyqmmhm.js 443 kB 443 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-GaT9kQvQ.js 483 kB 483 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-hnjb8NXS.js 397 kB 397 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-ITpXEN3V.js 442 kB 442 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-ZK3OUxU7.js 358 kB 358 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/OBJLoader2WorkerModule-DTMpvldF.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Popover-BIYdg9E5.js 3.65 kB 3.65 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/rolldown-runtime-DLICfi3-.js 1.97 kB 1.97 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/SelectValue-C_7cycpB.js 8.94 kB 8.94 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/signInSchema-QhJbZF-0.js 1.53 kB 1.53 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Slider-DVkw5nPu.js 3.52 kB 3.52 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/src-CbNGuSYA.js 251 B 251 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/SubscriptionBenefits-DVSfLULk.js 2.01 kB 2.01 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/telemetry-zZf2dHJ2.js 226 B 226 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/types-DT3N7am7.js 204 B 204 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/VideoPlayOverlay-D-ZhKuWc.js 1.35 kB 1.35 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widget-NeEr3XWN.js 586 B 586 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-BYbwNME9.js 283 B 283 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-GzA4D-L-.js 3.19 kB 3.19 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetChart-BtoXUSiF.js 2.21 kB 2.21 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetColorPicker-DCbDfd19.js 2.9 kB 2.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetCurve-CIcV8pqy.js 9.36 kB 9.36 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetGalleria-DZSYhGzO.js 3.61 kB 3.61 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetImageCompare-oYMwrOjF.js 7 kB 7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetInputText-0CncUIzA.js 1.86 kB 1.86 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetLayoutField-TvCt3ARa.js 1.98 kB 1.98 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetMarkdown-Cqdttdn1.js 2.93 kB 2.93 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetPropFilter-DN03zIgB.js 1.1 kB 1.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetTextarea-B7IIifV6.js 3.96 kB 3.96 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetToggleSwitch-CTquGMvp.js 6.8 kB 6.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetTypes-Br_tbhcL.js 393 B 393 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 52 added / 52 removed

@github-actions
Copy link

github-actions bot commented Feb 26, 2026

⚡ Performance Report

Metric Baseline PR Δ
canvas-idle: style recalcs 122 123 +1% ⚪
canvas-idle: layouts 0 0 +0% ⚪
canvas-idle: task duration 433ms 418ms -3% ⚪
canvas-mouse-sweep: style recalcs 186 185 -1% ⚪
canvas-mouse-sweep: layouts 12 13 +8% ⚪
canvas-mouse-sweep: task duration 1172ms 1065ms -9% ⚪
dom-widget-clipping: style recalcs 42 49 +17% 🟠
dom-widget-clipping: layouts 0 1 new 🔴
dom-widget-clipping: task duration 363ms 423ms +16% 🟠
Raw data
{
  "timestamp": "2026-02-26T21:08:49.741Z",
  "gitSha": "6330dcc12ccb0465f19f81115a11adad48f8fa0f",
  "branch": "pysssss/app-builder-preview",
  "measurements": [
    {
      "name": "canvas-idle",
      "durationMs": 2023.9600000000166,
      "styleRecalcs": 123,
      "styleRecalcDurationMs": 23.805,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 418.47600000000006,
      "heapDeltaBytes": -3469500
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 2055.3090000000225,
      "styleRecalcs": 185,
      "styleRecalcDurationMs": 62.012,
      "layouts": 13,
      "layoutDurationMs": 3.502,
      "taskDurationMs": 1065.4460000000001,
      "heapDeltaBytes": -1608628
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 655.7480000000169,
      "styleRecalcs": 49,
      "styleRecalcDurationMs": 21.177,
      "layouts": 1,
      "layoutDurationMs": 0.2599999999999998,
      "taskDurationMs": 423.018,
      "heapDeltaBytes": 7099584
    }
  ]
}

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

🧹 Nitpick comments (1)
src/views/LinearView.vue (1)

214-230: Refactor new splitter gutter styling away from local <style scoped>.

This block can be moved to Tailwind/pt-driven classes (or shared theme CSS) to stay aligned with repo conventions for Vue SFC styling.

As per coding guidelines, **/*.vue: "Use Tailwind 4 styling; avoid <style> blocks".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/views/LinearView.vue` around lines 214 - 230, The scoped <style> in
LinearView.vue that targets .p-splitter-gutter and .arrange-panel should be
refactored out: remove the local <style scoped> block and implement equivalent
styling using Tailwind/pt utility classes or the shared theme CSS (preserving
pointer-events behavior, hover/resizing background-color transition using
--p-primary-color, and hiding gutters adjacent to arrange-panel with
display:none rules); update the template/classes on the elements that currently
rely on .p-splitter-gutter and .arrange-panel so they use the new utility or
shared CSS classes and ensure the hover/resizing state selector
(data-p-gutter-resizing='true') is covered by the new styles.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/components/builder/AppBuilder.vue`:
- Around line 49-58: The rendered draggable items can diverge from the drag
model because arrangeInputs removes unresolved tuples but the DraggableList is
still bound to appModeStore.selectedInputs; update the component binding so
DraggableList uses the sanitized computed arrangeInputs (not raw
appModeStore.selectedInputs), or alternatively reconcile
appModeStore.selectedInputs whenever arrangeInputs filters items (e.g., replace
stale tuples with the filtered list), by referencing the arrangeInputs computed
and the DraggableList prop/methods to ensure the list model and rendered items
stay in sync.

---

Nitpick comments:
In `@src/views/LinearView.vue`:
- Around line 214-230: The scoped <style> in LinearView.vue that targets
.p-splitter-gutter and .arrange-panel should be refactored out: remove the local
<style scoped> block and implement equivalent styling using Tailwind/pt utility
classes or the shared theme CSS (preserving pointer-events behavior,
hover/resizing background-color transition using --p-primary-color, and hiding
gutters adjacent to arrange-panel with display:none rules); update the
template/classes on the elements that currently rely on .p-splitter-gutter and
.arrange-panel so they use the new utility or shared CSS classes and ensure the
hover/resizing state selector (data-p-gutter-resizing='true') is covered by the
new styles.

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9fb93a5 and f312016.

📒 Files selected for processing (6)
  • src/components/LiteGraphCanvasSplitterOverlay.vue
  • src/components/builder/AppBuilder.vue
  • src/components/rightSidePanel/parameters/WidgetItem.vue
  • src/composables/useAppMode.ts
  • src/constants/splitterConstants.ts
  • src/views/LinearView.vue

@pythongosssss pythongosssss marked this pull request as ready for review February 26, 2026 21:05
@pythongosssss pythongosssss requested a review from a team as a code owner February 26, 2026 21:05
@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Feb 26, 2026
@AustinMroz
Copy link
Collaborator

Looks like a another doubled implementation with 6acb3a1. Your implementation seems much shorter in terms of line count. There's some style between the preview stage and the post-creation display, but the linear mode implementation will need another pass anyways (since widgets are no longer grouped by nodes) and it may just be easiest to plug the needed functionality in to the right side panel 🤔

Copy link
Collaborator

@AustinMroz AustinMroz left a comment

Choose a reason for hiding this comment

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

Code is fine and I'm approving as is.

I'll eat the rebase on my end to keep things moving, if there's a change of decision later, the implementations can always be swapped in a future PR

@pythongosssss pythongosssss merged commit c090d18 into main Feb 27, 2026
37 checks passed
@pythongosssss pythongosssss deleted the pysssss/app-builder-preview branch February 27, 2026 10:32
DrJKL pushed a commit that referenced this pull request Feb 28, 2026
## Summary

Adds app builder in arrange/preview mode with re-orderable widgets,
maintaining size (as much as possible) between the select + preview
steps

## Changes

- **What**: 
- Extract sidebar size constants for sharing between canvas splitter +
app mode
- Add widget list using DraggableList and render inert WidgetItems

## Screenshots (if applicable)

<img width="1391" height="923" alt="image"
src="https://github.com/user-attachments/assets/3e17eafe-db1e-40a3-83b5-15a7d0672909"
/>

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-9260-Render-app-builder-in-arrange-mode-3136d73d365081ef875acab683d01d9e)
by [Unito](https://www.unito.io)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants