Skip to content

Conversation

@AustinMroz
Copy link
Collaborator

@AustinMroz AustinMroz commented Dec 27, 2025

Allows creation of Int and Float widgets with configurable, min, max, step, and precision.
This PR has been fairly heavily reworked. Options are no longer exposed as widgets, but set as properties on the node.

Since the changes no longer modify the sizing or serialization of the node, backend changes are no longer required and the extended functionality has been added directly onto the existing PrimitiveFloat and PrimitiveInt nodes.

There's intent to expose these configuration parameters on the new properties panel, but this PR can be merged as is.

┆Issue is synchronized with this Notion page by Unito

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 27, 2025

📝 Walkthrough

Walkthrough

Refactored the custom widget extension by splitting a single onNodeCreated hook into three specialized node-type-specific hooks (onCustomComboCreated, onCustomIntCreated, onCustomFloatCreated) and renamed the extension from Comfy.CustomCombo to Comfy.CustomWidgets. Added property synchronization for int and float widgets to maintain min, max, precision, step, and rounding attributes during node creation.

Changes

Cohort / File(s) Summary
Custom Widgets Extension Refactoring
src/extensions/core/customWidgets.ts
Replaced single onNodeCreated hook with three specialized hooks (onCustomComboCreated, onCustomIntCreated, onCustomFloatCreated). Added property definitions for int widgets (min, max, step sync) and float widgets (min, max, precision, step2, round sync with reactive updates). Extension renamed from Comfy.CustomCombo to Comfy.CustomWidgets. Updated beforeRegisterNodeDef with conditional logic to bind correct hook per node type.
Import Path Update
src/extensions/core/index.ts
Updated module import from ./customCombo to ./customWidgets to reflect renamed extension file.

Possibly related PRs

  • #7033: Syncs float widget properties (precision, step2, round, min/max) with node attributes on creation and binds min/max fraction digits to InputNumber component.
  • #7142: Directly related refactoring that replaces the original Comfy.CustomCombo extension with a broader Comfy.CustomWidgets implementation including new hooks for int/float widgets.

Suggested reviewers

  • DrJKL
  • shinshin86
  • christian-byrne
✨ 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 Dec 27, 2025

🎨 Storybook Build Status

Build completed successfully!

⏰ Completed at: 01/25/2026, 12:09:22 AM UTC

🔗 Links


🎉 Your Storybook is ready for review!

@github-actions
Copy link

github-actions bot commented Dec 27, 2025

🎭 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 Dec 27, 2025

Bundle Size Report

Summary

  • Raw size: 21.9 MB baseline 21.9 MB — 🔴 +2.1 kB
  • Gzip: 4.56 MB baseline 4.56 MB — 🔴 +268 B
  • Brotli: 3.38 MB baseline 3.38 MB — 🔴 +261 B
  • Bundles: 170 current • 170 baseline • 82 added / 82 removed

Category Glance
Other 🔴 +2.1 kB (6.43 MB) · Panels & Settings 🟢 -8 B (462 kB) · Data & Services 🔴 +1 B (3.18 MB) · Vendor & Third-Party ⚪ 0 B (10.7 MB) · Graph Workspace ⚪ 0 B (957 kB) · Views & Navigation ⚪ 0 B (80.7 kB) · + 5 more

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

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-Bkt__eNb.js (removed) 22.8 kB 🟢 -22.8 kB 🟢 -6.84 kB 🟢 -6.01 kB
assets/index-Ck8w6-HX.js (new) 22.8 kB 🔴 +22.8 kB 🔴 +6.85 kB 🔴 +6.02 kB

Status: 1 added / 1 removed

Graph Workspace — 957 kB (baseline 957 kB) • ⚪ 0 B

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-C6jz9aCo.js (removed) 957 kB 🟢 -957 kB 🟢 -194 kB 🟢 -146 kB
assets/GraphView-DnZWa3n5.js (new) 957 kB 🔴 +957 kB 🔴 +194 kB 🔴 +146 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-LQo413HQ.js (removed) 17.1 kB 🟢 -17.1 kB 🟢 -3.6 kB 🟢 -3.06 kB
assets/CloudSurveyView-TJLEpx4u.js (new) 17.1 kB 🔴 +17.1 kB 🔴 +3.6 kB 🔴 +3.05 kB
assets/CloudLoginView-BxchfJUP.js (removed) 11.8 kB 🟢 -11.8 kB 🟢 -3.1 kB 🟢 -2.72 kB
assets/CloudLoginView-d42bR5CA.js (new) 11.8 kB 🔴 +11.8 kB 🔴 +3.1 kB 🔴 +2.71 kB
assets/UserCheckView-atrEkGKq.js (new) 10.5 kB 🔴 +10.5 kB 🔴 +2.44 kB 🔴 +2.13 kB
assets/UserCheckView-zo-kc-ks.js (removed) 10.5 kB 🟢 -10.5 kB 🟢 -2.44 kB 🟢 -2.13 kB
assets/CloudLayoutView-BHSDiMVK.js (new) 8.54 kB 🔴 +8.54 kB 🔴 +2.24 kB 🔴 +1.96 kB
assets/CloudLayoutView-CN4adNFA.js (removed) 8.54 kB 🟢 -8.54 kB 🟢 -2.25 kB 🟢 -1.96 kB
assets/CloudSignupView-BgGTY4VJ.js (new) 8.18 kB 🔴 +8.18 kB 🔴 +2.33 kB 🔴 +2.03 kB
assets/CloudSignupView-CPibmhfE.js (removed) 8.18 kB 🟢 -8.18 kB 🟢 -2.33 kB 🟢 -2.03 kB
assets/CloudForgotPasswordView-BvxLqv_9.js (new) 6.26 kB 🔴 +6.26 kB 🔴 +1.93 kB 🔴 +1.69 kB
assets/CloudForgotPasswordView-D-6tniaw.js (removed) 6.26 kB 🟢 -6.26 kB 🟢 -1.92 kB 🟢 -1.69 kB
assets/UserSelectView-X-d4hSCk.js (new) 5.28 kB 🔴 +5.28 kB 🔴 +1.76 kB 🔴 +1.57 kB
assets/UserSelectView-zA0p16xU.js (removed) 5.28 kB 🟢 -5.28 kB 🟢 -1.76 kB 🟢 -1.58 kB
assets/CloudSubscriptionRedirectView-CtCVJrH8.js (new) 5.27 kB 🔴 +5.27 kB 🔴 +1.73 kB 🔴 +1.54 kB
assets/CloudSubscriptionRedirectView-CTuL7Yb5.js (removed) 5.27 kB 🟢 -5.27 kB 🟢 -1.73 kB 🟢 -1.54 kB
assets/CloudAuthTimeoutView-ClGIjX-9.js (new) 5.24 kB 🔴 +5.24 kB 🔴 +1.71 kB 🔴 +1.48 kB
assets/CloudAuthTimeoutView-E1Uhd3WN.js (removed) 5.24 kB 🟢 -5.24 kB 🟢 -1.71 kB 🟢 -1.48 kB
assets/CloudSorryContactSupportView-B5gYo5Lv.js 1.97 kB 1.97 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/layout-MvRmLoAK.js 500 B 500 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 9 added / 9 removed

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

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/WorkspacePanel-BkbhKsyW.js (removed) 29.8 kB 🟢 -29.8 kB 🟢 -5.89 kB 🟢 -5.14 kB
assets/WorkspacePanel-CnLqzvkO.js (new) 29.8 kB 🔴 +29.8 kB 🔴 +5.89 kB 🔴 +5.14 kB
assets/LegacyCreditsPanel-DgqtYp1Y.js (new) 23.8 kB 🔴 +23.8 kB 🔴 +5.94 kB 🔴 +5.22 kB
assets/LegacyCreditsPanel-T6ACgd2o.js (removed) 23.8 kB 🟢 -23.8 kB 🟢 -5.94 kB 🟢 -5.22 kB
assets/SubscriptionPanel-BpjWY64G.js (removed) 20.9 kB 🟢 -20.9 kB 🟢 -5.01 kB 🟢 -4.42 kB
assets/SubscriptionPanel-DzBd9PG4.js (new) 20.9 kB 🔴 +20.9 kB 🔴 +5.01 kB 🔴 +4.43 kB
assets/KeybindingPanel-CyZYTzia.js (removed) 14.2 kB 🟢 -14.2 kB 🟢 -3.74 kB 🟢 -3.31 kB
assets/KeybindingPanel-DHVpPsg4.js (new) 14.2 kB 🔴 +14.2 kB 🔴 +3.74 kB 🔴 +3.31 kB
assets/AboutPanel-Bq73yY6s.js (new) 10.8 kB 🔴 +10.8 kB 🔴 +2.68 kB 🔴 +2.43 kB
assets/AboutPanel-D2TDOwe3.js (removed) 10.8 kB 🟢 -10.8 kB 🟢 -2.68 kB 🟢 -2.43 kB
assets/ExtensionPanel-D6wqKG9G.js (removed) 10.2 kB 🟢 -10.2 kB 🟢 -2.71 kB 🟢 -2.4 kB
assets/ExtensionPanel-DI9lVDMW.js (new) 10.2 kB 🔴 +10.2 kB 🔴 +2.71 kB 🔴 +2.4 kB
assets/ServerConfigPanel-ClrtsB41.js (new) 7.23 kB 🔴 +7.23 kB 🔴 +2.16 kB 🔴 +1.94 kB
assets/ServerConfigPanel-CU63bOCF.js (removed) 7.23 kB 🟢 -7.23 kB 🟢 -2.17 kB 🟢 -1.94 kB
assets/UserPanel-0xHCJVTx.js (new) 6.58 kB 🔴 +6.58 kB 🔴 +1.91 kB 🔴 +1.67 kB
assets/UserPanel-BehAkXcx.js (removed) 6.58 kB 🟢 -6.58 kB 🟢 -1.9 kB 🟢 -1.67 kB
assets/config-CA7qzuJC.js (removed) 1.16 kB 🟢 -1.16 kB 🟢 -612 B 🟢 -533 B
assets/config-CzDwIPPd.js (new) 1.15 kB 🔴 +1.15 kB 🔴 +604 B 🔴 +532 B
assets/refreshRemoteConfig-B4I9g45s.js (new) 1.14 kB 🔴 +1.14 kB 🔴 +522 B 🔴 +457 B
assets/refreshRemoteConfig-DOqFeO2b.js (removed) 1.14 kB 🟢 -1.14 kB 🟢 -524 B 🟢 -489 B
assets/cloudRemoteConfig-Bvy4AIat.js (new) 1.11 kB 🔴 +1.11 kB 🔴 +509 B 🔴 +443 B
assets/cloudRemoteConfig-D-g5KChK.js (removed) 1.11 kB 🟢 -1.11 kB 🟢 -509 B 🟢 -437 B
assets/refreshRemoteConfig-BCsvBjY5.js (new) 169 B 🔴 +169 B 🔴 +108 B 🔴 +102 B
assets/refreshRemoteConfig-D23Gxy2P.js (removed) 169 B 🟢 -169 B 🟢 -108 B 🟢 -105 B
assets/remoteConfig-w1E3DdAQ.js 536 B 536 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-9p7XO4_-.js 25.2 kB 25.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CgtWExMH.js 34.3 kB 34.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CKVLGCg3.js 29.6 kB 29.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DFFGGhiG.js 28.9 kB 28.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DhYavwEF.js 28.6 kB 28.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DqRBPTem.js 29.5 kB 29.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DxaZVjyr.js 38.3 kB 38.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-hFnVImU9.js 30.4 kB 30.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-jUaSxrVP.js 32.1 kB 32.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-ootI-8ie.js 31.2 kB 31.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-tU5WPebQ.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-BfLWq4Q7.js (removed) 3.54 kB 🟢 -3.54 kB 🟢 -1.24 kB 🟢 -1.06 kB
assets/auth-CP1aoEzY.js (new) 3.54 kB 🔴 +3.54 kB 🔴 +1.24 kB 🔴 +1.07 kB
assets/firebaseAuthStore-BbVcevlU.js (removed) 217 B 🟢 -217 B 🟢 -137 B 🟢 -134 B
assets/firebaseAuthStore-D6zhclHv.js (new) 217 B 🔴 +217 B 🔴 +137 B 🔴 +120 B
assets/auth-CZQ-HQdW.js (removed) 178 B 🟢 -178 B 🟢 -142 B 🟢 -138 B
assets/auth-D0BfQY8t.js (new) 178 B 🔴 +178 B 🔴 +142 B 🔴 +144 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-CVnlT4hS.js (removed) 2.65 kB 🟢 -2.65 kB 🟢 -1.25 kB 🟢 -1.11 kB
assets/useSubscriptionDialog-Dyg31KSL.js (new) 2.65 kB 🔴 +2.65 kB 🔴 +1.25 kB 🔴 +1.11 kB
assets/useSubscriptionDialog-CLNjFrQ6.js (new) 179 B 🔴 +179 B 🔴 +110 B 🔴 +96 B
assets/useSubscriptionDialog-Csvd_DJ4.js (removed) 179 B 🟢 -179 B 🟢 -110 B 🟢 -98 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-CjuueXQE.js (new) 9.52 kB 🔴 +9.52 kB 🔴 +2.68 kB 🔴 +2.41 kB
assets/ComfyQueueButton-DzDzwZAU.js (removed) 9.52 kB 🟢 -9.52 kB 🟢 -2.69 kB 🟢 -2.41 kB
assets/SubscribeButton-jDg3mZWv.js (removed) 4.63 kB 🟢 -4.63 kB 🟢 -1.57 kB 🟢 -1.39 kB
assets/SubscribeButton-LP7jJfZ_.js (new) 4.63 kB 🔴 +4.63 kB 🔴 +1.57 kB 🔴 +1.39 kB
assets/CloudBadge-C5AP64EI.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -725 B 🟢 -658 B
assets/CloudBadge-D3Cx8wIo.js (new) 1.85 kB 🔴 +1.85 kB 🔴 +723 B 🔴 +650 B
assets/cloudFeedbackTopbarButton-D-envSyI.js (new) 1.24 kB 🔴 +1.24 kB 🔴 +677 B 🔴 +577 B
assets/cloudFeedbackTopbarButton-it1nJJqL.js (removed) 1.24 kB 🟢 -1.24 kB 🟢 -676 B 🟢 -578 B
assets/ComfyQueueButton-BQxRPSUx.js (new) 181 B 🔴 +181 B 🔴 +118 B 🔴 +111 B
assets/ComfyQueueButton-CPkRVaPD.js (removed) 181 B 🟢 -181 B 🟢 -118 B 🟢 -111 B
assets/Button-B9mYP1x0.js 3.82 kB 3.82 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/TopbarBadge-DHZYSmi1.js 8.36 kB 8.36 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserAvatar-CIuPULbC.js 1.73 kB 1.73 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetButton-BFtcBv-z.js 2.41 kB 2.41 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 5 added / 5 removed

Data & Services — 3.18 MB (baseline 3.18 MB) • 🔴 +1 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/dialogService-C5RWDVma.js (new) 1.99 MB 🔴 +1.99 MB 🔴 +422 kB 🔴 +322 kB
assets/dialogService-uMu1ouSK.js (removed) 1.99 MB 🟢 -1.99 MB 🟢 -422 kB 🟢 -322 kB
assets/api-CiLVM0vp.js (new) 1.16 MB 🔴 +1.16 MB 🔴 +242 kB 🔴 +188 kB
assets/api-QJbA7kzA.js (removed) 1.16 MB 🟢 -1.16 MB 🟢 -242 kB 🟢 -188 kB
assets/releaseStore-BaOMHPhh.js (removed) 8.91 kB 🟢 -8.91 kB 🟢 -2.4 kB 🟢 -2.12 kB
assets/releaseStore-DjBqsi7V.js (new) 8.91 kB 🔴 +8.91 kB 🔴 +2.4 kB 🔴 +2.12 kB
assets/keybindingService-ARjBxInH.js (new) 6.78 kB 🔴 +6.78 kB 🔴 +1.75 kB 🔴 +1.51 kB
assets/keybindingService-DZWXgKqR.js (removed) 6.78 kB 🟢 -6.78 kB 🟢 -1.75 kB 🟢 -1.51 kB
assets/userStore-Ba9LSZb3.js (new) 2.16 kB 🔴 +2.16 kB 🔴 +812 B 🔴 +725 B
assets/userStore-Cyql_EmD.js (removed) 2.16 kB 🟢 -2.16 kB 🟢 -814 B 🟢 -724 B
assets/audioService-C__NM0wr.js (removed) 2.03 kB 🟢 -2.03 kB 🟢 -932 B 🟢 -822 B
assets/audioService-D8A438Hl.js (new) 2.03 kB 🔴 +2.03 kB 🔴 +931 B 🔴 +821 B
assets/teamWorkspaceStore-C9L_Cu0z.js (new) 165 B 🔴 +165 B 🔴 +123 B 🔴 +110 B
assets/teamWorkspaceStore-CDk9idvs.js (removed) 165 B 🟢 -165 B 🟢 -123 B 🟢 -107 B
assets/releaseStore-C0BEO5ke.js (new) 140 B 🔴 +140 B 🔴 +106 B 🔴 +111 B
assets/releaseStore-DG3PObFp.js (removed) 140 B 🟢 -140 B 🟢 -106 B 🟢 -108 B
assets/serverConfigStore-B2LzN8g1.js 2.64 kB 2.64 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 8 added / 8 removed

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

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useErrorHandling-cFWfVmQU.js (removed) 5.08 kB 🟢 -5.08 kB 🟢 -1.5 kB 🟢 -1.31 kB
assets/useErrorHandling-HAEf2f4u.js (new) 5.08 kB 🔴 +5.08 kB 🔴 +1.5 kB 🔴 +1.31 kB
assets/useWorkspaceUI-Cjaiq6Wd.js (removed) 3.42 kB 🟢 -3.42 kB 🟢 -973 B 🟢 -836 B
assets/useWorkspaceUI-iJKQzYcm.js (new) 3.42 kB 🔴 +3.42 kB 🔴 +974 B 🔴 +835 B
assets/useSubscriptionActions-B4XQUaIt.js (new) 2.22 kB 🔴 +2.22 kB 🔴 +869 B 🔴 +761 B
assets/useSubscriptionActions-Bk7YAVGr.js (removed) 2.22 kB 🟢 -2.22 kB 🟢 -869 B 🟢 -761 B
assets/subscriptionCheckoutUtil-CcTPwxqf.js (new) 2 kB 🔴 +2 kB 🔴 +861 B 🔴 +744 B
assets/subscriptionCheckoutUtil-DM7XuJfE.js (removed) 2 kB 🟢 -2 kB 🟢 -864 B 🟢 -745 B
assets/useSubscriptionCredits-CgkUKR56.js (removed) 1.39 kB 🟢 -1.39 kB 🟢 -596 B 🟢 -525 B
assets/useSubscriptionCredits-CR6y4cQm.js (new) 1.39 kB 🔴 +1.39 kB 🔴 +597 B 🔴 +524 B
assets/audioUtils-CBhx8m3K.js (removed) 970 B 🟢 -970 B 🟢 -545 B 🟢 -454 B
assets/audioUtils-CcuEsHOL.js (new) 970 B 🔴 +970 B 🔴 +548 B 🔴 +459 B
assets/useCurrentUser-Cu1LpuCE.js (new) 145 B 🔴 +145 B 🔴 +114 B 🔴 +112 B
assets/useCurrentUser-DPhlSn3j.js (removed) 145 B 🟢 -145 B 🟢 -114 B 🟢 -104 B
assets/_plugin-vue_export-helper-DLRTaeJK.js 467 B 467 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/colorUtil-8brfHtOx.js 7.2 kB 7.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/markdownRendererUtil-DBMaRy6q.js 1.78 kB 1.78 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/tailwindUtil-Hy0jY5OA.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-DdBDBwvF.js 408 kB 408 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-other-Dk4vQph5.js 4.1 MB 4.1 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-primevue-BK91gQps.js 3.04 MB 3.04 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-reka-ui-Bh_PdEOO.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-DMjbEcx7.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.43 MB (baseline 6.43 MB) • 🔴 +2.1 kB

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/core-CIgV3pbI.js (new) 180 kB 🔴 +180 kB 🔴 +43.2 kB 🔴 +36.1 kB
assets/core-CUe17yXG.js (removed) 178 kB 🟢 -178 kB 🟢 -43 kB 🟢 -35.9 kB
assets/WidgetSelect-31iX0678.js (new) 50.7 kB 🔴 +50.7 kB 🔴 +11.2 kB 🔴 +9.77 kB
assets/WidgetSelect-Cav8D31p.js (removed) 50.7 kB 🟢 -50.7 kB 🟢 -11.2 kB 🟢 -9.74 kB
assets/Load3DControls-CfpLBgbj.js (new) 35.9 kB 🔴 +35.9 kB 🔴 +5.87 kB 🔴 +5.08 kB
assets/Load3DControls-COFbUNop.js (removed) 35.9 kB 🟢 -35.9 kB 🟢 -5.87 kB 🟢 -5.09 kB
assets/SubscriptionRequiredDialogContent-CKuSe0qR.js (removed) 28.7 kB 🟢 -28.7 kB 🟢 -6.78 kB 🟢 -5.91 kB
assets/SubscriptionRequiredDialogContent-CRZVoNpi.js (new) 28.7 kB 🔴 +28.7 kB 🔴 +6.78 kB 🔴 +5.9 kB
assets/CurrentUserPopoverWorkspace-BqcyHSY4.js (removed) 22.1 kB 🟢 -22.1 kB 🟢 -4.94 kB 🟢 -4.38 kB
assets/CurrentUserPopoverWorkspace-CbBbbwpJ.js (new) 22.1 kB 🔴 +22.1 kB 🔴 +4.94 kB 🔴 +4.39 kB
assets/Load3D-BkK3Hl0P.js (removed) 20.9 kB 🟢 -20.9 kB 🟢 -4.58 kB 🟢 -4.01 kB
assets/Load3D-BvBU4I0w.js (new) 20.9 kB 🔴 +20.9 kB 🔴 +4.59 kB 🔴 +4.01 kB
assets/WidgetInputNumber-BGcFKPbM.js (removed) 18.3 kB 🟢 -18.3 kB 🟢 -4.51 kB 🟢 -4.02 kB
assets/WidgetInputNumber-CDgiR5cx.js (new) 18.3 kB 🔴 +18.3 kB 🔴 +4.51 kB 🔴 +4.01 kB
assets/WidgetRecordAudio-oNNot8Bv.js (new) 18.2 kB 🔴 +18.2 kB 🔴 +4.96 kB 🔴 +4.43 kB
assets/WidgetRecordAudio-UwxajrK3.js (removed) 18.2 kB 🟢 -18.2 kB 🟢 -4.96 kB 🟢 -4.43 kB
assets/SubscriptionPanelContentWorkspace-C5eIvSc7.js (removed) 18.2 kB 🟢 -18.2 kB 🟢 -4.48 kB 🟢 -3.9 kB
assets/SubscriptionPanelContentWorkspace-cl1T3beV.js (new) 18.2 kB 🔴 +18.2 kB 🔴 +4.48 kB 🔴 +3.9 kB
assets/WidgetImageCrop-DvtalTlu.js (new) 17.1 kB 🔴 +17.1 kB 🔴 +4.14 kB 🔴 +3.62 kB
assets/WidgetImageCrop-rFDr691m.js (removed) 17.1 kB 🟢 -17.1 kB 🟢 -4.14 kB 🟢 -3.63 kB
assets/PanelTemplate-DuahnlFs.js (removed) 16.2 kB 🟢 -16.2 kB 🟢 -5.45 kB 🟢 -4.79 kB
assets/PanelTemplate-idJCnrAj.js (new) 16.2 kB 🔴 +16.2 kB 🔴 +5.45 kB 🔴 +4.79 kB
assets/AudioPreviewPlayer-Dm5uuNQC.js (new) 10.8 kB 🔴 +10.8 kB 🔴 +2.97 kB 🔴 +2.66 kB
assets/AudioPreviewPlayer-o9BlPAhu.js (removed) 10.8 kB 🟢 -10.8 kB 🟢 -2.97 kB 🟢 -2.65 kB
assets/InviteMemberDialogContent-90ZklY-8.js (removed) 8.36 kB 🟢 -8.36 kB 🟢 -2.5 kB 🟢 -2.17 kB
assets/InviteMemberDialogContent-ClhXi0Rf.js (new) 8.36 kB 🔴 +8.36 kB 🔴 +2.5 kB 🔴 +2.17 kB
assets/WidgetWithControl-CmPQJEXa.js (new) 8.02 kB 🔴 +8.02 kB 🔴 +2.65 kB 🔴 +2.38 kB
assets/WidgetWithControl-swP4J4Oj.js (removed) 8.02 kB 🟢 -8.02 kB 🟢 -2.64 kB 🟢 -2.38 kB
assets/CreateWorkspaceDialogContent-C05J_HRm.js (new) 5.93 kB 🔴 +5.93 kB 🔴 +1.93 kB 🔴 +1.69 kB
assets/CreateWorkspaceDialogContent-CiTAmWgj.js (removed) 5.93 kB 🟢 -5.93 kB 🟢 -1.93 kB 🟢 -1.69 kB
assets/EditWorkspaceDialogContent-B0AKBUrS.js (removed) 5.7 kB 🟢 -5.7 kB 🟢 -1.88 kB 🟢 -1.65 kB
assets/EditWorkspaceDialogContent-D2RZsDep.js (new) 5.7 kB 🔴 +5.7 kB 🔴 +1.88 kB 🔴 +1.65 kB
assets/ValueControlPopover-C7Hmpi4w.js (removed) 4.86 kB 🟢 -4.86 kB 🟢 -1.54 kB 🟢 -1.37 kB
assets/ValueControlPopover-FO4ukfY3.js (new) 4.86 kB 🔴 +4.86 kB 🔴 +1.55 kB 🔴 +1.38 kB
assets/DeleteWorkspaceDialogContent-BOvNQoBP.js (new) 4.59 kB 🔴 +4.59 kB 🔴 +1.57 kB 🔴 +1.35 kB
assets/DeleteWorkspaceDialogContent-DbQDJjW8.js (removed) 4.59 kB 🟢 -4.59 kB 🟢 -1.56 kB 🟢 -1.35 kB
assets/LeaveWorkspaceDialogContent-BEfmeNTi.js (removed) 4.41 kB 🟢 -4.41 kB 🟢 -1.5 kB 🟢 -1.31 kB
assets/LeaveWorkspaceDialogContent-CaKU5mhu.js (new) 4.41 kB 🔴 +4.41 kB 🔴 +1.5 kB 🔴 +1.31 kB
assets/RemoveMemberDialogContent-DdeXuEyr.js (removed) 4.38 kB 🟢 -4.38 kB 🟢 -1.45 kB 🟢 -1.27 kB
assets/RemoveMemberDialogContent-OYL44RZq.js (new) 4.38 kB 🔴 +4.38 kB 🔴 +1.46 kB 🔴 +1.27 kB
assets/RevokeInviteDialogContent-CwfQYLSS.js (removed) 4.29 kB 🟢 -4.29 kB 🟢 -1.47 kB 🟢 -1.29 kB
assets/RevokeInviteDialogContent-DwAYgIy5.js (new) 4.29 kB 🔴 +4.29 kB 🔴 +1.47 kB 🔴 +1.29 kB
assets/GlobalToast-C1_0O3xw.js (new) 3.05 kB 🔴 +3.05 kB 🔴 +1.1 kB 🔴 +943 B
assets/GlobalToast-wvwdVKH_.js (removed) 3.05 kB 🟢 -3.05 kB 🟢 -1.1 kB 🟢 -942 B
assets/SubscribeToRun-B5HVLD0q.js (removed) 2.96 kB 🟢 -2.96 kB 🟢 -1.16 kB 🟢 -1.04 kB
assets/SubscribeToRun-BKGTmuPV.js (new) 2.96 kB 🔴 +2.96 kB 🔴 +1.16 kB 🔴 +1.01 kB
assets/cloudSessionCookie-CSpMAnkM.js (new) 2.94 kB 🔴 +2.94 kB 🔴 +931 B 🔴 +804 B
assets/cloudSessionCookie-DfZwl2jg.js (removed) 2.94 kB 🟢 -2.94 kB 🟢 -935 B 🟢 -801 B
assets/BaseViewTemplate-CPY9cJ7H.js (new) 2.42 kB 🔴 +2.42 kB 🔴 +1.04 kB 🔴 +939 B
assets/BaseViewTemplate-DHIXUg5W.js (removed) 2.42 kB 🟢 -2.42 kB 🟢 -1.05 kB 🟢 -940 B
assets/CloudRunButtonWrapper-DqA-JkXZ.js (new) 1.79 kB 🔴 +1.79 kB 🔴 +643 B 🔴 +562 B
assets/CloudRunButtonWrapper-hyKcE7Fv.js (removed) 1.79 kB 🟢 -1.79 kB 🟢 -645 B 🟢 -563 B
assets/cloudBadges-B-1SdIPd.js (removed) 1.08 kB 🟢 -1.08 kB 🟢 -540 B 🟢 -486 B
assets/cloudBadges-BEGyk0Ba.js (new) 1.08 kB 🔴 +1.08 kB 🔴 +539 B 🔴 +485 B
assets/graphHasMissingNodes-ua2J7v-q.js (new) 1.06 kB 🔴 +1.06 kB 🔴 +460 B 🔴 +422 B
assets/graphHasMissingNodes-ZC0B0aBO.js (removed) 1.06 kB 🟢 -1.06 kB 🟢 -463 B 🟢 -421 B
assets/cloudSubscription-CB1WfKYf.js (removed) 976 B 🟢 -976 B 🟢 -465 B 🟢 -397 B
assets/cloudSubscription-Wjyjqfzf.js (new) 976 B 🔴 +976 B 🔴 +466 B 🔴 +401 B
assets/nightlyBadges-C9lDfdOw.js (new) 594 B 🔴 +594 B 🔴 +357 B 🔴 +312 B
assets/nightlyBadges-DPAihsvw.js (removed) 594 B 🟢 -594 B 🟢 -358 B 🟢 -312 B
assets/SubscriptionPanelContentWorkspace-BQSK_HFj.js (removed) 266 B 🟢 -266 B 🟢 -136 B 🟢 -120 B
assets/SubscriptionPanelContentWorkspace-NOUmVSrJ.js (new) 266 B 🔴 +266 B 🔴 +136 B 🔴 +111 B
assets/WidgetInputNumber-BgAE_tp8.js (removed) 186 B 🟢 -186 B 🟢 -119 B 🟢 -121 B
assets/WidgetInputNumber-DKeMAjCg.js (new) 186 B 🔴 +186 B 🔴 +119 B 🔴 +122 B
assets/WidgetLegacy-B5JfGiKQ.js (new) 164 B 🔴 +164 B 🔴 +125 B 🔴 +119 B
assets/WidgetLegacy-DEshSjWs.js (removed) 164 B 🟢 -164 B 🟢 -125 B 🟢 -107 B
assets/Load3D-CvgkJrfk.js (removed) 131 B 🟢 -131 B 🟢 -107 B 🟢 -113 B
assets/Load3D-DVYj05Tp.js (new) 131 B 🔴 +131 B 🔴 +107 B 🔴 +121 B
assets/auto-BmypP-XQ.js 1.73 kB 1.73 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-27PChCGl.js 17 kB 17 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-B52_zgXW.js 18.8 kB 18.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BC_Q8we6.js 19.3 kB 19.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BZlNQPg2.js 17.8 kB 17.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CgVf6wUK.js 17.9 kB 17.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CuidUnsD.js 19.3 kB 19.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-D5OfZ3bv.js 18.5 kB 18.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Dmj47WTl.js 20.6 kB 20.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DUK2nLuH.js 17.2 kB 17.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-K3soE7da.js 18 kB 18 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-MVcGSIbM.js 18 kB 18 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/LazyImage-rWQpxwnM.js 14.1 kB 14.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BKNTTNlG.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-C_hdRFbZ.js 129 kB 129 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CfGGFRzU.js 126 kB 126 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CpFx4JJ1.js 151 kB 151 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Cro09VYh.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CsHi8V26.js 146 kB 146 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CvOyqCL5.js 122 kB 122 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-D29Ga1Vv.js 168 kB 168 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DTZ3Cq9q.js 122 kB 122 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DVNwcedr.js 140 kB 140 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-WxzUNrgR.js 124 kB 124 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Media3DTop-8_T22Isd.js 2.38 kB 2.38 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaAudioTop-CBP8th-j.js 2 kB 2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaImageTop-1THG_DJM.js 2.34 kB 2.34 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaVideoTop-bsLx-Wg6.js 2.84 kB 2.84 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/mixpanel.module-BiPjOPVW.js 143 B 143 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BhCOuEba.js 359 kB 359 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BMK6BIfT.js 376 kB 376 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BRyEXRs7.js 363 kB 363 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CcpUorR_.js 440 kB 440 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CF18koQc.js 405 kB 405 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CHsbMBTq.js 336 kB 336 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DbcqYeAO.js 334 kB 334 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DPQWojsE.js 356 kB 356 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DsEMLGXe.js 366 kB 366 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DT5ppw0r.js 363 kB 363 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-S8kvmuqz.js 405 kB 405 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/OBJLoader2WorkerModule-DTMpvldF.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/previousFullPath-B-XG7lU7.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-BAEfKuro.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-Bp7B7z1s.js 186 B 186 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-CgNPbPqq.js 4.71 kB 4.71 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetChart-3mC7A_va.js 2.79 kB 2.79 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetColorPicker-x8L_rIAb.js 3.71 kB 3.71 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetGalleria-f72WaoQY.js 4.57 kB 4.57 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetImageCompare-Dd0p7l7V.js 3.79 kB 3.79 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetInputText-DOFSeOZG.js 2.58 kB 2.58 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetLayoutField-CZXFB71F.js 2.61 kB 2.61 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetMarkdown-bP5F2-qx.js 3.22 kB 3.22 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetPropFilter-DOe9Bb1I.js 1.31 kB 1.31 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetTextarea-DwdEJ3mA.js 3.52 kB 3.52 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetToggleSwitch-BIK7gguT.js 3.08 kB 3.08 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 34 added / 34 removed

@AustinMroz AustinMroz force-pushed the austin/custom-number branch from 2a4e84f to e78786f Compare January 20, 2026 21:07
@AustinMroz AustinMroz marked this pull request as ready for review January 20, 2026 22:00
@AustinMroz AustinMroz requested a review from a team as a code owner January 20, 2026 22:00
@dosubot dosubot bot added the size:M This PR changes 30-99 lines, ignoring generated files. label Jan 20, 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: 2

Caution

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

⚠️ Outside diff range comments (1)
src/extensions/core/customCombo.ts (1)

56-68: Prefer a function declaration for updateCombo.

This helper is pure and can be declared with function updateCombo() for consistency with repo conventions.

🔧 Proposed refactor
-  const updateCombo = () => {
+  function updateCombo() {
     values.splice(
       0,
       values.length,
       ...this.widgets!.filter(
         (w) => w.name.startsWith('option') && w.value
       ).map((w) => `${w.value}`)
     )
     if (app.configuringGraph) return
     if (values.includes(`${comboWidget.value}`)) return
     comboWidget.value = values[0] ?? ''
     comboWidget.callback?.(comboWidget.value)
-  }
+  }

Based on learnings, prefer function declarations for pure helpers.

🤖 Fix all issues with AI agents
In `@src/extensions/core/customCombo.ts`:
- Around line 108-119: The getters for valueWidget.options 'min' and 'max' use
unsafe 64-bit literals (-(2 ** 63) and 2 ** 63) which exceed JavaScript's safe
integer range; update the defaults to safe integer limits (use
Number.MIN_SAFE_INTEGER and Number.MAX_SAFE_INTEGER or equivalent -(2**53-1) and
2**53-1) so this.properties.min ?? <safe-min> and this.properties.max ??
<safe-max> return accurate bounds; keep the existing setters
(this.properties.min/max assignment and
valueWidget.callback?.(valueWidget.value)) unchanged.
- Around line 155-163: In onCustomFloatCreated, fix step2 on valueWidget.options
so the default uses the correct precision formula (use 10 ** -precision, not 10
** precision), allow explicit zero by checking this.properties.step != null
instead of truthiness, and update the setter (step2) to both assign
this.properties.step = v and invoke the same reactivity callback pattern used in
onCustomIntCreated (i.e., call the callback after assignment) so UI updates
correctly.

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/extensions/core/customCombo.ts`:
- Around line 164-172: The setter for Object.defineProperty on
valueWidget.options 'round' incorrectly writes to this.properties.step and
doesn't trigger reactive updates; change the setter to assign the new value to
this.properties.round and ensure reactivity by reassigning the properties object
(e.g., this.properties = { ...this.properties, round: v }) or call the
component's existing property-update helper if present so the change propagates;
keep the getter as-is and only modify the set: from (v) => (this.properties.step
= v) to set round on this.properties and trigger update.
♻️ Duplicate comments (2)
src/extensions/core/customCombo.ts (2)

108-119: Use safe integer bounds for default min/max.

±(2 ** 63) exceeds JS safe integer range and can introduce precision loss in widget bounds.

🔧 Proposed fix
 Object.defineProperty(valueWidget.options, 'min', {
-  get: () => this.properties.min ?? -(2 ** 63),
+  get: () => this.properties.min ?? Number.MIN_SAFE_INTEGER,
   set: (v) => {
     this.properties.min = v
     valueWidget.callback?.(valueWidget.value)
   }
 })
 Object.defineProperty(valueWidget.options, 'max', {
-  get: () => this.properties.max ?? 2 ** 63,
+  get: () => this.properties.max ?? Number.MAX_SAFE_INTEGER,
   set: (v) => {
     this.properties.max = v
     valueWidget.callback?.(valueWidget.value)
   }
 })

155-163: Fix step2 reactivity and allow explicit zero.

The truthy check drops 0, and the setter doesn’t trigger the callback, so updates won’t propagate.

🔧 Proposed fix
 Object.defineProperty(valueWidget.options, 'step2', {
   get: () => {
-    if (this.properties.step) return this.properties.step
+    if (this.properties.step != null) return this.properties.step
 
     const { precision } = this.properties
     return typeof precision === 'number' ? 5 * 10 ** -precision : 1
   },
-  set: (v) => (this.properties.step = v)
+  set: (v) => {
+    this.properties.step = v
+    valueWidget.callback?.(valueWidget.value)
+  }
 })

@AustinMroz AustinMroz force-pushed the austin/custom-number branch from 139ac45 to b278b5a Compare January 25, 2026 00:08
@dosubot dosubot bot added size:L This PR changes 100-499 lines, ignoring generated files. and removed size:M This PR changes 30-99 lines, ignoring generated files. labels Jan 25, 2026
@AustinMroz AustinMroz merged commit 3d41d55 into main Jan 26, 2026
32 checks passed
@AustinMroz AustinMroz deleted the austin/custom-number branch January 26, 2026 18:24
@Tekaiguy
Copy link

Eygvi1mWQAAPQsV

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.

3 participants