Skip to content

Updates: More Modal Modification#8256

Merged
DrJKL merged 12 commits intomainfrom
drjkl/mm-2
Jan 24, 2026
Merged

Updates: More Modal Modification#8256
DrJKL merged 12 commits intomainfrom
drjkl/mm-2

Conversation

@DrJKL
Copy link
Contributor

@DrJKL DrJKL commented Jan 23, 2026

Refactors modal dialog layouts for improved flexibility and consistency.

Changes:

  • Add dedicated slot for left panel header title with dynamic content/icons
  • Consolidate side panel rendering within BaseModalLayout
  • Remove redundant PanelHeader and RightSidePanel components
  • Apply select-none to text elements to prevent accidental selection

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 23, 2026

📝 Walkthrough

Walkthrough

Moves left-panel header out of LeftSidePanel into parent templates via a new leftPanelHeaderTitle slot, removes PanelHeader and RightSidePanel templates, adjusts left-panel toggle logic/icons, adds multiple UI select-none class tweaks, and changes asset store batch merging/pruning and loading/error handling.

Changes

Cohort / File(s) Summary
Layout & Modal Shell
src/components/widget/layout/BaseModalLayout.vue, src/components/widget/layout/BaseModalLayout.stories.ts
Adds leftPanelHeaderTitle slot, moves header rendering to parent, adjusts left-panel toggle visibility/size/icon and updates story wiring.
Left / Right Panel Components
src/components/widget/panel/LeftSidePanel.vue, src/components/widget/panel/PanelHeader.vue, src/components/widget/panel/RightSidePanel.vue, src/components/widget/panel/LeftSidePanel.stories.ts
Removes PanelHeader and RightSidePanel templates, rewrites LeftSidePanel to a flex-column nav with changed subItem rendering and active-id logic; stories drop header-icon/header-title slots.
Modal Consumers / Dialogs
src/platform/assets/components/AssetBrowserModal.vue, src/workbench/extensions/manager/components/manager/ManagerDialog.vue, src/components/custom/widget/WorkflowTemplateSelectorDialog.vue
Moves left-panel header rendering into parent templates via new slot; collapses LeftSidePanel usages to self-closing tags.
Asset Store / Loading Logic
src/stores/assetsStore.ts
Cloud cache init accepts existing assets; incoming batches merged into existing Map, seenIds tracked and stale IDs pruned, assetsArrayCache invalidated, isLoading/pending flags and error handling adjusted.
Asset UI (select-none tweaks)
src/platform/assets/components/AssetCard.vue, src/platform/assets/components/AssetBadgeGroup.vue, src/platform/assets/components/AssetGrid.vue, src/platform/assets/components/AssetBrowserModal.vue
Added select-none to root/empty-state/header wrappers; moved AssetBrowserModal left-panel header into parent template.
Model Info / Badge UI (select-none)
src/platform/assets/components/modelInfo/ModelInfoField.vue, src/platform/assets/components/modelInfo/ModelInfoPanel.vue
Added select-none to label spans to prevent text selection.
Nav & Misc UI
src/components/widget/nav/NavItem.vue, src/components/widget/SampleModelSelector.vue, src/components/widget/panel/PanelHeader.vue
Added select-none to nav/root elements; replaced RightSidePanel with placeholder in SampleModelSelector; removed/simplified header templates and icon logic.
Asset Filter Options
src/platform/assets/components/AssetFilterBar.vue
Passes a function returning assets into useAssetFilterOptions (deferred evaluation).
Stories / Examples
src/components/widget/layout/BaseModalLayout.stories.ts, src/components/widget/panel/LeftSidePanel.stories.ts
Removed header-icon/header-title controls and RightSidePanel usage; added leftPanelHeaderTitle slot usage in stories.
Tests
browser_tests/tests/templates.spec.ts
Replaced CSS selector locator with ARIA role-based locator (getByRole('button', { name: 'Getting Started' })).

Possibly related PRs

Suggested reviewers

  • shinshin86
  • KarryCharon
  • PabloWiedemann
  • viva-jinyi
  • christian-byrne
✨ Finishing touches
  • 📝 Generate docstrings

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

@github-actions
Copy link

github-actions bot commented Jan 23, 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 23, 2026

🎨 Storybook Build Status

Build completed successfully!

⏰ Completed at: 01/24/2026, 12:16:39 AM UTC

🔗 Links


🎉 Your Storybook is ready for review!

@github-actions
Copy link

github-actions bot commented Jan 23, 2026

Bundle Size Report

Summary

  • Raw size: 21.8 MB baseline 21.8 MB — 🟢 -1.3 kB
  • Gzip: 4.54 MB baseline 4.54 MB — 🟢 -311 B
  • Brotli: 3.37 MB baseline 3.37 MB — 🟢 -63 B
  • Bundles: 167 current • 167 baseline • 78 added / 78 removed

Category Glance
Graph Workspace 🟢 -567 B (948 kB) · Data & Services 🟢 -530 B (3.17 MB) · Other 🟢 -192 B (6.42 MB) · Panels & Settings 🟢 -8 B (440 kB) · Vendor & Third-Party ⚪ 0 B (10.7 MB) · Views & Navigation ⚪ 0 B (80.7 kB) · + 5 more

Per-category breakdown
App Entry Points — 22.3 kB (baseline 22.3 kB) • ⚪ 0 B

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-bCJwYSU3.js (removed) 22.3 kB 🟢 -22.3 kB 🟢 -6.71 kB 🟢 -5.9 kB
assets/index-DNoJ2W3-.js (new) 22.3 kB 🔴 +22.3 kB 🔴 +6.71 kB 🔴 +5.88 kB

Status: 1 added / 1 removed

Graph Workspace — 948 kB (baseline 949 kB) • 🟢 -567 B

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-BaaHIv5G.js (removed) 949 kB 🟢 -949 kB 🟢 -192 kB 🟢 -145 kB
assets/GraphView-BFAEiDpj.js (new) 948 kB 🔴 +948 kB 🔴 +191 kB 🔴 +145 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-169givHh.js (removed) 17.1 kB 🟢 -17.1 kB 🟢 -3.61 kB 🟢 -3.06 kB
assets/CloudSurveyView-CwjChCj6.js (new) 17.1 kB 🔴 +17.1 kB 🔴 +3.61 kB 🔴 +3.05 kB
assets/CloudLoginView-8yZlu8rE.js (removed) 11.8 kB 🟢 -11.8 kB 🟢 -3.09 kB 🟢 -2.71 kB
assets/CloudLoginView-DyloFk-g.js (new) 11.8 kB 🔴 +11.8 kB 🔴 +3.09 kB 🔴 +2.71 kB
assets/UserCheckView-CvA-RaQt.js (removed) 10.5 kB 🟢 -10.5 kB 🟢 -2.44 kB 🟢 -2.13 kB
assets/UserCheckView-DAkn27zE.js (new) 10.5 kB 🔴 +10.5 kB 🔴 +2.45 kB 🔴 +2.13 kB
assets/CloudLayoutView-Bggkiw3Q.js (new) 8.54 kB 🔴 +8.54 kB 🔴 +2.24 kB 🔴 +1.96 kB
assets/CloudLayoutView-CVL3ns5o.js (removed) 8.54 kB 🟢 -8.54 kB 🟢 -2.25 kB 🟢 -1.96 kB
assets/CloudSignupView-Cbttj-qS.js (new) 8.18 kB 🔴 +8.18 kB 🔴 +2.33 kB 🔴 +2.02 kB
assets/CloudSignupView-DixRKvSE.js (removed) 8.18 kB 🟢 -8.18 kB 🟢 -2.33 kB 🟢 -2.02 kB
assets/CloudForgotPasswordView-BV_V0xOg.js (new) 6.26 kB 🔴 +6.26 kB 🔴 +1.92 kB 🔴 +1.69 kB
assets/CloudForgotPasswordView-DbpHIs3T.js (removed) 6.26 kB 🟢 -6.26 kB 🟢 -1.92 kB 🟢 -1.69 kB
assets/UserSelectView-BKzn1Q5Q.js (new) 5.28 kB 🔴 +5.28 kB 🔴 +1.76 kB 🔴 +1.57 kB
assets/UserSelectView-C8aGxoZA.js (removed) 5.28 kB 🟢 -5.28 kB 🟢 -1.76 kB 🟢 -1.57 kB
assets/CloudSubscriptionRedirectView-B8rsBBhw.js (removed) 5.27 kB 🟢 -5.27 kB 🟢 -1.73 kB 🟢 -1.55 kB
assets/CloudSubscriptionRedirectView-iGVralom.js (new) 5.27 kB 🔴 +5.27 kB 🔴 +1.73 kB 🔴 +1.54 kB
assets/CloudAuthTimeoutView-BnXkXXdQ.js (removed) 5.24 kB 🟢 -5.24 kB 🟢 -1.71 kB 🟢 -1.48 kB
assets/CloudAuthTimeoutView-lW0Kk1Q3.js (new) 5.24 kB 🔴 +5.24 kB 🔴 +1.7 kB 🔴 +1.49 kB
assets/CloudSorryContactSupportView-DCJFuYDt.js 1.97 kB 1.97 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/layout-D0XZF4Pt.js 500 B 500 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 9 added / 9 removed

Panels & Settings — 440 kB (baseline 440 kB) • 🟢 -8 B

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/LegacyCreditsPanel-B1z9xunS.js (removed) 23.8 kB 🟢 -23.8 kB 🟢 -5.94 kB 🟢 -5.22 kB
assets/LegacyCreditsPanel-DMV6Xi6z.js (new) 23.8 kB 🔴 +23.8 kB 🔴 +5.94 kB 🔴 +5.23 kB
assets/SubscriptionPanel-CtioimmX.js (removed) 20.9 kB 🟢 -20.9 kB 🟢 -5.01 kB 🟢 -4.42 kB
assets/SubscriptionPanel-LaXBN1Wm.js (new) 20.9 kB 🔴 +20.9 kB 🔴 +5.02 kB 🔴 +4.42 kB
assets/KeybindingPanel-BFALlAQx.js (new) 14.2 kB 🔴 +14.2 kB 🔴 +3.73 kB 🔴 +3.31 kB
assets/KeybindingPanel-CYe2AtJF.js (removed) 14.2 kB 🟢 -14.2 kB 🟢 -3.73 kB 🟢 -3.31 kB
assets/AboutPanel-CEBbwN5f.js (new) 10.8 kB 🔴 +10.8 kB 🔴 +2.68 kB 🔴 +2.45 kB
assets/AboutPanel-DKIYU1lq.js (removed) 10.8 kB 🟢 -10.8 kB 🟢 -2.68 kB 🟢 -2.44 kB
assets/ExtensionPanel-DEN0eDVO.js (removed) 10.2 kB 🟢 -10.2 kB 🟢 -2.71 kB 🟢 -2.41 kB
assets/ExtensionPanel-DhiHtMjT.js (new) 10.2 kB 🔴 +10.2 kB 🔴 +2.71 kB 🔴 +2.4 kB
assets/WorkspacePanel-94vO_Ijr.js (removed) 8.17 kB 🟢 -8.17 kB 🟢 -2.31 kB 🟢 -2.08 kB
assets/WorkspacePanel-DC-3x2zD.js (new) 8.17 kB 🔴 +8.17 kB 🔴 +2.3 kB 🔴 +2.08 kB
assets/ServerConfigPanel-BlLb7XAD.js (removed) 7.23 kB 🟢 -7.23 kB 🟢 -2.17 kB 🟢 -1.94 kB
assets/ServerConfigPanel-D5uJXIhf.js (new) 7.23 kB 🔴 +7.23 kB 🔴 +2.17 kB 🔴 +1.94 kB
assets/UserPanel-Ctn5C_vW.js (removed) 6.58 kB 🟢 -6.58 kB 🟢 -1.9 kB 🟢 -1.67 kB
assets/UserPanel-DtjN86V7.js (new) 6.58 kB 🔴 +6.58 kB 🔴 +1.9 kB 🔴 +1.67 kB
assets/config-DgZARTMA.js (removed) 1.16 kB 🟢 -1.16 kB 🟢 -609 B 🟢 -530 B
assets/config-B2QWx6Oq.js (new) 1.15 kB 🔴 +1.15 kB 🔴 +606 B 🔴 +537 B
assets/refreshRemoteConfig-D1QHw4sI.js (new) 1.14 kB 🔴 +1.14 kB 🔴 +522 B 🔴 +486 B
assets/refreshRemoteConfig-Db0SAaus.js (removed) 1.14 kB 🟢 -1.14 kB 🟢 -521 B 🟢 -487 B
assets/cloudRemoteConfig-C3Ilx98A.js (new) 1.11 kB 🔴 +1.11 kB 🔴 +511 B 🔴 +439 B
assets/cloudRemoteConfig-ugC8okqM.js (removed) 1.11 kB 🟢 -1.11 kB 🟢 -509 B 🟢 -439 B
assets/refreshRemoteConfig-Bs2INeof.js (new) 169 B 🔴 +169 B 🔴 +108 B 🔴 +110 B
assets/refreshRemoteConfig-CXuKXIrX.js (removed) 169 B 🟢 -169 B 🟢 -108 B 🟢 -107 B
assets/remoteConfig-BufOGckh.js 536 B 536 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-2k-uW27U.js 29.6 kB 29.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-3W2Cy6cq.js 25.2 kB 25.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-B3VsXFLW.js 32.1 kB 32.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-B4_MooYG.js 31.2 kB 31.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BhUxE7XO.js 30.4 kB 30.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-C252B0j_.js 29.5 kB 29.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DBhZ2LBE.js 28.6 kB 28.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DhmTNLI9.js 34.3 kB 34.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DIlohv1U.js 28.9 kB 28.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DJTea6Ev.js 38.3 kB 38.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DQsjqwD9.js 25.9 kB 25.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 12 added / 12 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-C9pFMOnU.js (removed) 3.54 kB 🟢 -3.54 kB 🟢 -1.24 kB 🟢 -1.06 kB
assets/auth-CBC7Nhkr.js (new) 3.54 kB 🔴 +3.54 kB 🔴 +1.24 kB 🔴 +1.06 kB
assets/firebaseAuthStore-COQVTE6j.js (new) 217 B 🔴 +217 B 🔴 +136 B 🔴 +116 B
assets/firebaseAuthStore-Dvb3Q6FV.js (removed) 217 B 🟢 -217 B 🟢 -136 B 🟢 -118 B
assets/auth-CjT1cfJa.js (new) 178 B 🔴 +178 B 🔴 +141 B 🔴 +129 B
assets/auth-USNiGfkF.js (removed) 178 B 🟢 -178 B 🟢 -142 B 🟢 -133 B

Status: 3 added / 3 removed

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

Modals, dialogs, drawers, and in-app editors

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useSubscriptionDialog-O_fGAT24.js (removed) 2.65 kB 🟢 -2.65 kB 🟢 -1.25 kB 🟢 -1.12 kB
assets/useSubscriptionDialog-sV_mjShc.js (new) 2.65 kB 🔴 +2.65 kB 🔴 +1.25 kB 🔴 +1.11 kB
assets/useSubscriptionDialog-B3YESpC1.js (removed) 179 B 🟢 -179 B 🟢 -110 B 🟢 -102 B
assets/useSubscriptionDialog-CTpKflVZ.js (new) 179 B 🔴 +179 B 🔴 +110 B 🔴 +96 B

Status: 2 added / 2 removed

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

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyQueueButton-CNA7N11O.js (new) 9.52 kB 🔴 +9.52 kB 🔴 +2.69 kB 🔴 +2.42 kB
assets/ComfyQueueButton-kDtUbMgv.js (removed) 9.52 kB 🟢 -9.52 kB 🟢 -2.69 kB 🟢 -2.41 kB
assets/SubscribeButton-DFa-dnoE.js (removed) 4.63 kB 🟢 -4.63 kB 🟢 -1.57 kB 🟢 -1.39 kB
assets/SubscribeButton-DHi95uNV.js (new) 4.63 kB 🔴 +4.63 kB 🔴 +1.57 kB 🔴 +1.39 kB
assets/CloudBadge-ByOPv9r8.js (new) 1.85 kB 🔴 +1.85 kB 🔴 +722 B 🔴 +647 B
assets/CloudBadge-CMl7z52S.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -723 B 🟢 -641 B
assets/cloudFeedbackTopbarButton-Dk724SKR.js (new) 1.24 kB 🔴 +1.24 kB 🔴 +679 B 🔴 +578 B
assets/cloudFeedbackTopbarButton-Dwrg9vM2.js (removed) 1.24 kB 🟢 -1.24 kB 🟢 -676 B 🟢 -580 B
assets/ComfyQueueButton-C_7jZrqV.js (removed) 181 B 🟢 -181 B 🟢 -118 B 🟢 -107 B
assets/ComfyQueueButton-CIi70Tug.js (new) 181 B 🔴 +181 B 🔴 +118 B 🔴 +121 B
assets/Button-CE60plIr.js 3.77 kB 3.77 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/TopbarBadge-CMiNrqEJ.js 8.36 kB 8.36 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserAvatar-wKdSR6pn.js 1.73 kB 1.73 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetButton-B-XItutF.js 2.41 kB 2.41 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 5 added / 5 removed

Data & Services — 3.17 MB (baseline 3.17 MB) • 🟢 -530 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/dialogService-CTKKEKVE.js (removed) 1.99 MB 🟢 -1.99 MB 🟢 -420 kB 🟢 -321 kB
assets/dialogService-D9a_lAW7.js (new) 1.99 MB 🔴 +1.99 MB 🔴 +420 kB 🔴 +321 kB
assets/api-D-8zI83J.js (new) 1.16 MB 🔴 +1.16 MB 🔴 +241 kB 🔴 +187 kB
assets/api-D8TRDqTM.js (removed) 1.16 MB 🟢 -1.16 MB 🟢 -241 kB 🟢 -187 kB
assets/releaseStore-BXfXnSwW.js (removed) 8.91 kB 🟢 -8.91 kB 🟢 -2.4 kB 🟢 -2.12 kB
assets/releaseStore-DFY7AaHH.js (new) 8.91 kB 🔴 +8.91 kB 🔴 +2.4 kB 🔴 +2.12 kB
assets/keybindingService-CREc47Te.js (new) 6.78 kB 🔴 +6.78 kB 🔴 +1.74 kB 🔴 +1.52 kB
assets/keybindingService-DY6BiJzi.js (removed) 6.78 kB 🟢 -6.78 kB 🟢 -1.75 kB 🟢 -1.52 kB
assets/userStore-73sk1gOk.js (removed) 2.16 kB 🟢 -2.16 kB 🟢 -813 B 🟢 -731 B
assets/userStore-CZie3U6J.js (new) 2.16 kB 🔴 +2.16 kB 🔴 +810 B 🔴 +724 B
assets/audioService-G1YjZdLe.js (removed) 2.03 kB 🟢 -2.03 kB 🟢 -932 B 🟢 -821 B
assets/audioService-h_8ngdjX.js (new) 2.03 kB 🔴 +2.03 kB 🔴 +932 B 🔴 +817 B
assets/teamWorkspaceStore-C9uprTVI.js (removed) 165 B 🟢 -165 B 🟢 -123 B 🟢 -114 B
assets/teamWorkspaceStore-DkTaTFYc.js (new) 165 B 🔴 +165 B 🔴 +123 B 🔴 +108 B
assets/releaseStore-DBoA2m1O.js (new) 140 B 🔴 +140 B 🔴 +106 B 🔴 +108 B
assets/releaseStore-DBqf_Tvs.js (removed) 140 B 🟢 -140 B 🟢 -106 B 🟢 -107 B
assets/serverConfigStore-D2Rof7C_.js 2.64 kB 2.64 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 8 added / 8 removed

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

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useErrorHandling-BqPv19CQ.js (new) 5.08 kB 🔴 +5.08 kB 🔴 +1.5 kB 🔴 +1.31 kB
assets/useErrorHandling-Tx_UAHa5.js (removed) 5.08 kB 🟢 -5.08 kB 🟢 -1.5 kB 🟢 -1.31 kB
assets/useWorkspaceUI-B5IPaBjk.js (new) 2.25 kB 🔴 +2.25 kB 🔴 +754 B 🔴 +662 B
assets/useWorkspaceUI-SAMqTcJs.js (removed) 2.25 kB 🟢 -2.25 kB 🟢 -755 B 🟢 -657 B
assets/useSubscriptionActions-BfGlR01m.js (removed) 2.22 kB 🟢 -2.22 kB 🟢 -868 B 🟢 -766 B
assets/useSubscriptionActions-DwYYaLjy.js (new) 2.22 kB 🔴 +2.22 kB 🔴 +868 B 🔴 +761 B
assets/subscriptionCheckoutUtil-B8EDDfhk.js (removed) 1.98 kB 🟢 -1.98 kB 🟢 -861 B 🟢 -747 B
assets/subscriptionCheckoutUtil-Ba2ZkPpg.js (new) 1.98 kB 🔴 +1.98 kB 🔴 +864 B 🔴 +750 B
assets/useSubscriptionCredits-DSac3e76.js (new) 1.39 kB 🔴 +1.39 kB 🔴 +595 B 🔴 +526 B
assets/useSubscriptionCredits-DtlD35d6.js (removed) 1.39 kB 🟢 -1.39 kB 🟢 -597 B 🟢 -526 B
assets/audioUtils-BDYDCvPR.js (removed) 970 B 🟢 -970 B 🟢 -549 B 🟢 -461 B
assets/audioUtils-CmUKcWJk.js (new) 970 B 🔴 +970 B 🔴 +549 B 🔴 +459 B
assets/useCurrentUser-ClFYgM-d.js (removed) 145 B 🟢 -145 B 🟢 -114 B 🟢 -110 B
assets/useCurrentUser-FmabiBE_.js (new) 145 B 🔴 +145 B 🔴 +114 B 🔴 +98 B
assets/_plugin-vue_export-helper-DLRTaeJK.js 467 B 467 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/colorUtil-BpknRFr6.js 7.2 kB 7.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/markdownRendererUtil-CUcd5gQV.js 1.78 kB 1.78 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/tailwindUtil-C7XUgwmI.js 488 B 488 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 7 added / 7 removed

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

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-chart-OCOwIMuw.js 408 kB 408 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-other-DsN_QkAV.js 4.1 MB 4.1 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-primevue-DfDkDSrj.js 3.04 MB 3.04 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-reka-ui-v0jgPg5n.js 256 kB 256 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-three-BKpliY5_.js 1.83 MB 1.83 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-tiptap-BFRBT3RT.js 650 kB 650 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vue-CRvEKkVc.js 13.6 kB 13.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-PDw3y6Aq.js 398 kB 398 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Other — 6.42 MB (baseline 6.42 MB) • 🟢 -192 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/core-wHfUeYbq.js (removed) 178 kB 🟢 -178 kB 🟢 -43 kB 🟢 -36 kB
assets/core-CItNy9u3.js (new) 178 kB 🔴 +178 kB 🔴 +43 kB 🔴 +35.9 kB
assets/Load3D-B-gwAq6N.js (new) 55.7 kB 🔴 +55.7 kB 🔴 +9.18 kB 🔴 +7.91 kB
assets/Load3D-D9ulacun.js (removed) 55.7 kB 🟢 -55.7 kB 🟢 -9.18 kB 🟢 -7.91 kB
assets/WidgetSelect-BJLSSeJD.js (new) 50.5 kB 🔴 +50.5 kB 🔴 +11.1 kB 🔴 +9.7 kB
assets/WidgetSelect-BXAB0Cv_.js (removed) 50.5 kB 🟢 -50.5 kB 🟢 -11.1 kB 🟢 -9.72 kB
assets/SubscriptionRequiredDialogContent-B8X-baBk.js (new) 28.7 kB 🔴 +28.7 kB 🔴 +6.78 kB 🔴 +5.92 kB
assets/SubscriptionRequiredDialogContent-Cf6Q-FvK.js (removed) 28.7 kB 🟢 -28.7 kB 🟢 -6.77 kB 🟢 -5.91 kB
assets/CurrentUserPopoverWorkspace-7FZxbxP1.js (removed) 21.6 kB 🟢 -21.6 kB 🟢 -4.84 kB 🟢 -4.3 kB
assets/CurrentUserPopoverWorkspace-Cge0ReZz.js (new) 21.6 kB 🔴 +21.6 kB 🔴 +4.84 kB 🔴 +4.3 kB
assets/WidgetInputNumber-BDbvQSdC.js (new) 18.3 kB 🔴 +18.3 kB 🔴 +4.51 kB 🔴 +4.02 kB
assets/WidgetInputNumber-DDgopZAQ.js (removed) 18.3 kB 🟢 -18.3 kB 🟢 -4.51 kB 🟢 -4.01 kB
assets/WidgetRecordAudio-BlONJRvL.js (removed) 18.2 kB 🟢 -18.2 kB 🟢 -4.97 kB 🟢 -4.44 kB
assets/WidgetRecordAudio-DFuT-6m5.js (new) 18.2 kB 🔴 +18.2 kB 🔴 +4.96 kB 🔴 +4.43 kB
assets/SubscriptionPanelContentWorkspace-BbrhMiIT.js (new) 17.7 kB 🔴 +17.7 kB 🔴 +4.34 kB 🔴 +3.79 kB
assets/SubscriptionPanelContentWorkspace-CWq7o-Qj.js (removed) 17.7 kB 🟢 -17.7 kB 🟢 -4.34 kB 🟢 -3.78 kB
assets/WidgetImageCrop-CeGYCFp9.js (new) 17.1 kB 🔴 +17.1 kB 🔴 +4.14 kB 🔴 +3.62 kB
assets/WidgetImageCrop-DJuNJF2E.js (removed) 17.1 kB 🟢 -17.1 kB 🟢 -4.14 kB 🟢 -3.64 kB
assets/PanelTemplate-BXUlaG9u.js (new) 16.2 kB 🔴 +16.2 kB 🔴 +5.45 kB 🔴 +4.79 kB
assets/PanelTemplate-lK9k3rcw.js (removed) 16.2 kB 🟢 -16.2 kB 🟢 -5.45 kB 🟢 -4.79 kB
assets/AudioPreviewPlayer-C_5VR73x.js (removed) 10.8 kB 🟢 -10.8 kB 🟢 -2.97 kB 🟢 -2.65 kB
assets/AudioPreviewPlayer-Dhffp3M6.js (new) 10.8 kB 🔴 +10.8 kB 🔴 +2.97 kB 🔴 +2.65 kB
assets/WidgetWithControl-C9by_5sZ.js (new) 8.02 kB 🔴 +8.02 kB 🔴 +2.65 kB 🔴 +2.39 kB
assets/WidgetWithControl-DZwLRwyQ.js (removed) 8.02 kB 🟢 -8.02 kB 🟢 -2.65 kB 🟢 -2.39 kB
assets/CreateWorkspaceDialogContent-74a7rZe2.js (new) 5.92 kB 🔴 +5.92 kB 🔴 +1.92 kB 🔴 +1.67 kB
assets/CreateWorkspaceDialogContent-CEuMOoRO.js (removed) 5.92 kB 🟢 -5.92 kB 🟢 -1.92 kB 🟢 -1.67 kB
assets/EditWorkspaceDialogContent-B9QvjBzs.js (removed) 5.69 kB 🟢 -5.69 kB 🟢 -1.87 kB 🟢 -1.64 kB
assets/EditWorkspaceDialogContent-DHTZ4u1X.js (new) 5.69 kB 🔴 +5.69 kB 🔴 +1.87 kB 🔴 +1.63 kB
assets/ValueControlPopover-BRSM2eB0.js (removed) 4.86 kB 🟢 -4.86 kB 🟢 -1.55 kB 🟢 -1.38 kB
assets/ValueControlPopover-DwPtSUkq.js (new) 4.86 kB 🔴 +4.86 kB 🔴 +1.54 kB 🔴 +1.37 kB
assets/DeleteWorkspaceDialogContent-BRo299Vf.js (new) 4.59 kB 🔴 +4.59 kB 🔴 +1.56 kB 🔴 +1.35 kB
assets/DeleteWorkspaceDialogContent-Ddl3G8D9.js (removed) 4.59 kB 🟢 -4.59 kB 🟢 -1.56 kB 🟢 -1.35 kB
assets/LeaveWorkspaceDialogContent-CDWI9zgd.js (removed) 4.41 kB 🟢 -4.41 kB 🟢 -1.5 kB 🟢 -1.31 kB
assets/LeaveWorkspaceDialogContent-Ck1j60V_.js (new) 4.41 kB 🔴 +4.41 kB 🔴 +1.5 kB 🔴 +1.3 kB
assets/GlobalToast-BItzoeH9.js (removed) 3.05 kB 🟢 -3.05 kB 🟢 -1.1 kB 🟢 -942 B
assets/GlobalToast-DoF4QyZb.js (new) 3.05 kB 🔴 +3.05 kB 🔴 +1.1 kB 🔴 +942 B
assets/SubscribeToRun-BdzFUhzC.js (removed) 2.96 kB 🟢 -2.96 kB 🟢 -1.16 kB 🟢 -1.01 kB
assets/SubscribeToRun-CI9DaSXV.js (new) 2.96 kB 🔴 +2.96 kB 🔴 +1.15 kB 🔴 +1.01 kB
assets/cloudSessionCookie-7E8DZnJF.js (new) 2.94 kB 🔴 +2.94 kB 🔴 +938 B 🔴 +803 B
assets/cloudSessionCookie-LFMfqWu2.js (removed) 2.94 kB 🟢 -2.94 kB 🟢 -935 B 🟢 -805 B
assets/BaseViewTemplate-D7DDFx_f.js (new) 2.42 kB 🔴 +2.42 kB 🔴 +1.04 kB 🔴 +942 B
assets/BaseViewTemplate-DviXvjxn.js (removed) 2.42 kB 🟢 -2.42 kB 🟢 -1.04 kB 🟢 -939 B
assets/CloudRunButtonWrapper-Caghi_tR.js (removed) 1.79 kB 🟢 -1.79 kB 🟢 -639 B 🟢 -565 B
assets/CloudRunButtonWrapper-D3qFy761.js (new) 1.79 kB 🔴 +1.79 kB 🔴 +643 B 🔴 +560 B
assets/cloudBadges-B-Ey15qb.js (removed) 1.08 kB 🟢 -1.08 kB 🟢 -540 B 🟢 -502 B
assets/cloudBadges-Dg1zS3Mc.js (new) 1.08 kB 🔴 +1.08 kB 🔴 +539 B 🔴 +486 B
assets/graphHasMissingNodes-aafvtLoF.js (removed) 1.06 kB 🟢 -1.06 kB 🟢 -458 B 🟢 -420 B
assets/graphHasMissingNodes-KWGKXwe6.js (new) 1.06 kB 🔴 +1.06 kB 🔴 +462 B 🔴 +421 B
assets/cloudSubscription-D2wBzDJH.js (new) 976 B 🔴 +976 B 🔴 +462 B 🔴 +398 B
assets/cloudSubscription-D7FrzWK9.js (removed) 976 B 🟢 -976 B 🟢 -461 B 🟢 -400 B
assets/nightlyBadges-Bpb9_yp_.js (new) 594 B 🔴 +594 B 🔴 +357 B 🔴 +312 B
assets/nightlyBadges-DJ5HVN8V.js (removed) 594 B 🟢 -594 B 🟢 -358 B 🟢 -312 B
assets/SubscriptionPanelContentWorkspace-CnZO6IxZ.js (new) 266 B 🔴 +266 B 🔴 +136 B 🔴 +125 B
assets/SubscriptionPanelContentWorkspace-Da5NXfIO.js (removed) 266 B 🟢 -266 B 🟢 -136 B 🟢 -115 B
assets/WidgetInputNumber-al6PlGsp.js (removed) 186 B 🟢 -186 B 🟢 -119 B 🟢 -109 B
assets/WidgetInputNumber-CyR3dFQQ.js (new) 186 B 🔴 +186 B 🔴 +119 B 🔴 +121 B
assets/WidgetLegacy-BfFeiLnW.js (removed) 164 B 🟢 -164 B 🟢 -125 B 🟢 -120 B
assets/WidgetLegacy-bxxoaxu9.js (new) 164 B 🔴 +164 B 🔴 +125 B 🔴 +109 B
assets/Load3D-BHLsHcoM.js (new) 131 B 🔴 +131 B 🔴 +107 B 🔴 +109 B
assets/Load3D-DEl2ICRW.js (removed) 131 B 🟢 -131 B 🟢 -107 B 🟢 -106 B
assets/auto-ShMUXBDI.js 1.73 kB 1.73 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BCMa3myQ.js 18 kB 18 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BJLS4KsL.js 18.5 kB 18.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Bxi6-Pt0.js 17.8 kB 17.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-C0ihBqw2.js 19.3 kB 19.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Cge8p8D7.js 18.8 kB 18.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CLzYTTQL.js 17.2 kB 17.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CVbuwW7U.js 18 kB 18 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-D7JSvcea.js 20.6 kB 20.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DO2o9ZPA.js 17.9 kB 17.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DUy-2VbT.js 19.3 kB 19.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-wBNS4y4c.js 17 kB 17 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/LazyImage-6JyDrZCN.js 14.1 kB 14.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-9QDOXbzo.js 140 kB 140 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-B8XX36kH.js 122 kB 122 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Bb7LViqw.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Bc8UNWJl.js 151 kB 151 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-C_Z2flfA.js 146 kB 146 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-C-5HPtOO.js 168 kB 168 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-C8VQB_yW.js 122 kB 122 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-D-4J6ABr.js 124 kB 124 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DUt9sjCO.js 129 kB 129 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-ReiZV-pH.js 126 kB 126 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-VpW1uLPj.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Media3DTop-5zcsMbsP.js 2.38 kB 2.38 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaAudioTop-yJJ6Isec.js 2 kB 2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaImageTop-DyWg2Kcq.js 2.34 kB 2.34 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaVideoTop-To_wqfzI.js 2.84 kB 2.84 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/mixpanel.module-rP3R9SUV.js 143 B 143 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-12U736i2.js 336 kB 336 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-B7pXu23d.js 359 kB 359 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BCufohiu.js 405 kB 405 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BMl5y27M.js 334 kB 334 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-C3DlQc9w.js 366 kB 366 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CB70HGLr.js 363 kB 363 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CDhhI5kx.js 376 kB 376 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CLZp2I7k.js 363 kB 363 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CyAJTPTV.js 356 kB 356 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DEM6bbWr.js 405 kB 405 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DktkFd8R.js 440 kB 440 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/OBJLoader2WorkerModule-DTMpvldF.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/preservedQueryNamespaces-D99dMmBP.js 3.23 kB 3.23 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/previousFullPath-BFJQC27i.js 838 B 838 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/rolldown-runtime-cVp-94Rc.js 1.96 kB 1.96 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Slider-BBAXxQxS.js 4.21 kB 4.21 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widget-CD3JnB1i.js 518 B 518 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-CTWd5ZRc.js 186 B 186 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-KpJ-3L5b.js 4.71 kB 4.71 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetChart-Dbj11DNq.js 2.79 kB 2.79 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetColorPicker-CCzJlMXt.js 3.71 kB 3.71 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetGalleria-Bew-zyV1.js 4.57 kB 4.57 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetImageCompare-BFPf3oL1.js 3.79 kB 3.79 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetInputText-CPjs6NcB.js 2.58 kB 2.58 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetLayoutField-cnJOx9UO.js 2.61 kB 2.61 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetMarkdown-FwbCmt0k.js 3.22 kB 3.22 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetPropFilter-B2AM-H0O.js 1.31 kB 1.31 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetTextarea-Bq8Pzo-G.js 3.52 kB 3.52 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetToggleSwitch-CA9YOACS.js 3.08 kB 3.08 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 30 added / 30 removed

@DrJKL DrJKL marked this pull request as ready for review January 23, 2026 01:35
@DrJKL DrJKL requested a review from a team as a code owner January 23, 2026 01:35
@dosubot dosubot bot added the size:S This PR changes 10-29 lines, ignoring generated files. label Jan 23, 2026
@DrJKL DrJKL added Design Used to request Product feedback on design decisions and removed size:S This PR changes 10-29 lines, ignoring generated files. labels Jan 23, 2026
@DrJKL DrJKL marked this pull request as draft January 23, 2026 19:42
DrJKL and others added 2 commits January 23, 2026 12:05
Add select-none to cards, nav items, badges, headers, and labels

Improves touch/mobile UX by preventing accidental selection

Amp-Thread-ID: https://ampcode.com/threads/T-019be83a-cf2b-7079-8ca9-45fcda1d5fff
Co-authored-by: Amp <amp@ampcode.com>
@DrJKL DrJKL changed the title fix: prevent text selection on interactive Asset Browser elements Updates: More Modal Modification Jan 23, 2026
@DrJKL DrJKL self-assigned this Jan 23, 2026
DrJKL and others added 3 commits January 23, 2026 14:03
- Carry forward existing assets into new state instead of starting empty

- Track seen IDs during load to identify stale models

- Prune only after all batches complete, keeping models visible during refresh

Amp-Thread-ID: https://ampcode.com/threads/T-019becc8-344e-73bf-a360-63dae4c05c1f
Co-authored-by: Amp <amp@ampcode.com>
- Add flex flex-col to nav in BaseModalLayout

- Remove wrapper div around leftPanel slot

- Flatten LeftSidePanel by moving scroll behavior to root div

Amp-Thread-ID: https://ampcode.com/threads/T-019bece9-b915-722e-9da2-0012cb224a9c
Co-authored-by: Amp <amp@ampcode.com>
@DrJKL DrJKL marked this pull request as ready for review January 23, 2026 23:44
@DrJKL DrJKL requested a review from ltdrdata as a code owner January 23, 2026 23:44
@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Jan 23, 2026
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: 5

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (4)
src/components/widget/SampleModelSelector.vue (2)

93-100: Avoid using the ! important prefix for Tailwind classes.

Line 95 uses !bg-white !text-neutral-900 which violates the coding guideline prohibiting the ! important prefix. Consider either:

  1. Creating a dedicated Button variant for this styling need
  2. Using the cn() utility with proper class ordering to override defaults
  3. Using semantic design tokens instead of hardcoded colors

As per coding guidelines, never use !important or the ! important prefix for Tailwind classes.


189-190: Consider adding explicit type annotations for better TypeScript safety.

These refs are typed as Ref<never[]> due to the empty array initialization, which may cause type issues when items are added. Adding explicit types would improve type safety.

💡 Suggested improvement
-const selectedFrameworks = ref([])
-const selectedProjects = ref([])
+const selectedFrameworks = ref<string[]>([])
+const selectedProjects = ref<string[]>([])

Adjust the type based on whether the MultiSelect stores values or full option objects.

src/components/widget/layout/BaseModalLayout.stories.ts (1)

390-391: Consider adding aria-label for accessibility.

This icon-only button lacks visible text content. Per repository conventions, icon-only buttons should have an aria-label for screen reader accessibility.

♿ Suggested accessibility improvement
-                    <Button size="icon" class="!bg-white !text-neutral-900" `@click`="() => {}">
+                    <Button size="icon" class="!bg-white !text-neutral-900" aria-label="Info" `@click`="() => {}">
                       <i class="icon-[lucide--info] size-4" />
                     </Button>
src/components/widget/layout/BaseModalLayout.vue (1)

218-230: Consider migrating layout styles to Tailwind utilities.

Per coding guidelines, Vue components should avoid <style> blocks. While these layout rules are more complex, most can be expressed with Tailwind:

  • height: 80vhh-[80vh]
  • width: 90vww-[90vw]
  • max-width: 1280pxmax-w-[1280px]
  • aspect-ratio: 20/13aspect-[20/13]

The media query could use a responsive breakpoint prefix or a custom breakpoint defined in the theme.

🤖 Fix all issues with AI agents
In `@src/components/widget/layout/BaseModalLayout.vue`:
- Around line 20-28: The hide-left-panel Button in BaseModalLayout uses the
inverted condition `!notMobile && showLeftPanel`, which only renders on mobile;
update the condition to `notMobile && showLeftPanel` so the button appears on
non-mobile (desktop) when the left panel is visible, and apply the same fix to
the matching toggle condition elsewhere in the component (the other Button that
references notMobile and showLeftPanel) so toggleLeftPanel is available on
desktop.
- Around line 39-47: The v-if on the "show left panel" Button is inverted: it
currently uses "!notMobile && !showLeftPanel" so it only appears on mobile;
change the condition to "notMobile && !showLeftPanel" so the Button (component
named Button with aria-label t('g.showLeftPanel') and `@click`="toggleLeftPanel")
is rendered on desktop when the left panel is hidden.

In `@src/components/widget/panel/LeftSidePanel.vue`:
- Line 5: Replace the v-for key that currently uses the array index with a
stable unique identifier from each nav item: update the <template v-for="(item,
index) in navItems" :key="index"> usage to use a unique property such as item.id
or, for group items, item.title (or generate a stable id property on navItems if
missing); ensure any components or elements inside the loop reference the new
key and that navItems entries consistently expose the chosen unique field (e.g.,
add id to items lacking one).

In `@src/stores/assetsStore.ts`:
- Around line 402-410: The loop that prunes stale models currently iterates
directly over state.assets.keys() while deleting entries, which can mutate the
iterator; change it to first collect the keys into an array (e.g., const ids =
Array.from(state.assets.keys()) ) and then iterate over that array to call
state.assets.delete(id) for ids not in seenIds; update the block referencing
state.assets, seenIds, assetsArrayCache and preserve the
assetsArrayCache.delete(key) call afterwards.
- Around line 373-378: The current merge loop adds each asset to state.assets
and then immediately recreates the Map on every batch iteration (see the loop
that iterates over newAssets, uses seenIds.add(asset.id) and
state.assets.set(asset.id, asset), followed by state.assets = new
Map(state.assets)); to avoid repeated reactive triggers, move the Map recreation
(state.assets = new Map(state.assets)) out of the per-asset loop and perform it
once after the entire batching/while loop and pruning logic completes so
reactivity is triggered only once per full update; if you intentionally need
per-asset reactivity for UI reasons, document that decision near the loop and
keep the current placement.

@DrJKL DrJKL removed their assignment Jan 24, 2026
- Use stable keys in v-for loop (title or id instead of index)

- Avoid mutating Map while iterating by collecting stale IDs first

Amp-Thread-ID: https://ampcode.com/threads/T-019bed55-d7cb-73d9-aa76-b6e83b027829
Co-authored-by: Amp <amp@ampcode.com>
@DrJKL DrJKL added the New Browser Test Expectations New browser test screenshot should be set by github action label Jan 24, 2026
@github-actions
Copy link

Updating Playwright Expectations

@github-actions github-actions bot removed the New Browser Test Expectations New browser test screenshot should be set by github action label Jan 24, 2026
@DrJKL DrJKL merged commit 15655dd into main Jan 24, 2026
49 of 50 checks passed
@DrJKL DrJKL deleted the drjkl/mm-2 branch January 24, 2026 04:41
@DrJKL DrJKL 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 24, 2026
@github-actions
Copy link

⚠️ Backport to cloud/1.37 failed

Reason: Merge conflicts detected during cherry-pick of 15655dd

📄 Conflicting files
src/workbench/extensions/manager/components/manager/ManagerDialogContent.vue
🤖 Prompt for AI Agents
Backport PR #8256 (https://github.com/Comfy-Org/ComfyUI_frontend/pull/8256) to cloud/1.37.
Cherry-pick merge commit 15655ddb764a0b41c48400c3eca5001df90d950f onto new branch
backport-8256-to-cloud-1.37 from origin/cloud/1.37.
Resolve conflicts in: src/workbench/extensions/manager/components/manager/ManagerDialogContent.vue .
For test snapshots (browser_tests/**/*-snapshots/), accept PR version if
changed in original PR, else keep target. For package.json versions, keep
target branch. For pnpm-lock.yaml, regenerate with pnpm install.
Ask user for non-obvious conflicts.
Create PR titled "[backport cloud/1.37] <original title>" with label "backport".
See .github/workflows/pr-backport.yaml for workflow details.

cc @DrJKL

1 similar comment
@github-actions
Copy link

⚠️ Backport to cloud/1.37 failed

Reason: Merge conflicts detected during cherry-pick of 15655dd

📄 Conflicting files
src/workbench/extensions/manager/components/manager/ManagerDialogContent.vue
🤖 Prompt for AI Agents
Backport PR #8256 (https://github.com/Comfy-Org/ComfyUI_frontend/pull/8256) to cloud/1.37.
Cherry-pick merge commit 15655ddb764a0b41c48400c3eca5001df90d950f onto new branch
backport-8256-to-cloud-1.37 from origin/cloud/1.37.
Resolve conflicts in: src/workbench/extensions/manager/components/manager/ManagerDialogContent.vue .
For test snapshots (browser_tests/**/*-snapshots/), accept PR version if
changed in original PR, else keep target. For package.json versions, keep
target branch. For pnpm-lock.yaml, regenerate with pnpm install.
Ask user for non-obvious conflicts.
Create PR titled "[backport cloud/1.37] <original title>" with label "backport".
See .github/workflows/pr-backport.yaml for workflow details.

cc @DrJKL

DrJKL added a commit that referenced this pull request Jan 25, 2026
Refactors modal dialog layouts for improved flexibility and consistency.

**Changes:**
- Add dedicated slot for left panel header title with dynamic
content/icons
- Consolidate side panel rendering within `BaseModalLayout`
- Remove redundant `PanelHeader` and `RightSidePanel` components
- Apply `select-none` to text elements to prevent accidental selection

---------

Co-authored-by: Amp <amp@ampcode.com>
DrJKL added a commit that referenced this pull request Jan 25, 2026
Backport of #8041 to `cloud/1.37`.

**Original PR:** #8041

## Changes
- Consolidated ManagerDialogContent, ManagerHeader, ManagerNavSidebar,
RegistrySearchBar, and SearchFilterDropdown into single ManagerDialog
component
- Added v-model:rightPanelOpen to BaseModalLayout for external panel
state control
- Removed unused useResponsiveCollapse composable, TabItem and
SearchOption types
- Moved action buttons (Install All/Update All) from header-right-area
to contentFilter area

## Conflict Resolution
- **GlobalDialog.vue**: Kept settings-dialog-workspace styles, removed
manager-dialog styles (now in BaseModalLayout)
- **BaseModalLayout.vue**: Kept HEAD version (from #8256 backport) which
has improved grid-based layout with accessibility features

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8306-backport-cloud-1-37-refactor-Manager-dialog-simplification-2f36d73d365081078518cc62ea736708)
by [Unito](https://www.unito.io)

Co-authored-by: Jin Yi <jin12cc@gmail.com>
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: github-actions <github-actions@github.com>
DrJKL added a commit that referenced this pull request Jan 25, 2026
Refactors modal dialog layouts for improved flexibility and consistency.

**Changes:**
- Add dedicated slot for left panel header title with dynamic
content/icons
- Consolidate side panel rendering within `BaseModalLayout`
- Remove redundant `PanelHeader` and `RightSidePanel` components
- Apply `select-none` to text elements to prevent accidental selection

---------

Co-authored-by: Amp <amp@ampcode.com>
DrJKL added a commit that referenced this pull request Jan 25, 2026
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 Design Used to request Product feedback on design decisions needs-backport Fix/change that needs to be cherry-picked to the current feature freeze branch size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants