CAD Editor Canvas Command Rail 1532 - barocss/barocss GitHub Wiki

Canvas contextual command rail β€” #1532

Unify existing Canvas tools into one contextual command rail. Human explicitly requires commercial CAD editor specs and high Canvas-internal tool usability. Parent #537/#1029/#680. Actual current Surface1000 screenshot has four independent left boxes QWER/Isolate/Degree/Reversal taking~166verticalpx and overlapping model extent. #1291/#1292/#1523 are closed related leaves, no duplicate Canvas command rail/unifiedCanvas title. Ruled Surface Native readiness remains next modeling work; this UI improvement does not replace that objective.

Before-code exactNINE paths at clean182b11830666813f51694c7400f94dff623e70be: packages/barocss-cad-editor/src/react/viewport.tsx; src/react/pole-axis-gizmo.tsx; src/react/selection-isolation.tsx; src/react/surface-degree-elevation.tsx; src/react/curve-reversal.tsx; src/react/surface-reversal.tsx; src/styles.css; README.md; NEW apps/cad-editor/flows/canvas-command-rail-flow.mjs. Protect Root/session/types/publicbarrels/providers/Inspector/othercontrollers/NativeCAD/Interop/GPU/Viewer/fixtures/oldflows/appgrid/root/lock/policy/dependencies.

Viewport owns one stable private rail target per actual Canvas mount. Existing private controllers receive optional toolbarContainer and portal ONLYtheir existing toolbar JSX to it. Original components/hooks/Help/nativecallbacks stay mounted; Canvas geometry SVG/axis/settings overlays stay inviewport. No duplicated commands/newprovider/publiccallback/nativeAPI/popup menu or guard bypass. Rail stable target identity, pointer-events only actualcontrols; does not blockCanvasgesture space. Clearly grouped Editing/Visibility/Construct, currenttoolname visible, natural wrapping at1000, uniformminimum32px hitareas/focus ring/shortcut titles without shrinkinglabels/font. ExistingbuttonIDs/labels/handlers/raw/candidate/tool/capture/latestcontextguards preserved; activeCancel/Complete uses existing paths. No fakecontinuousreversal/modeloffset/Canvaswidthgrowth claim.

ONE actual unchanged-parent layout baseline beforecode, sourceonly fixedcurrentSurfacefixture1440/1000 originalUV11 thenCurvepoint1, commandset/rects/hitareas/union/clipping/Canvascamera/nativeSourcehistory retained, no Nativeconstructorcampaign. FinalONEsourceheaded/publiccompiledflow samecleanchild: compare SAMEbuttonsets/sameviewport; railinsideCanvas, distinctgroups, actualtargetwidth>=32/textunclipped/focusvisible/modelocclusionextent recorded honestly(notdepthoracle); realQWERkey/toolfeedback/keyboardSpaceIsolateRestore, HelpEscape/focus, draft/Help acrosswrap/contextno remount/canvasidentity current. Actualoldpoleaxis/plane drag +trustedEscape rawSource/history/frame retained andone actualNativeApply/Undo, genuineDownload/freshpicker/normalpoleCanvasreedit/secondfile. Constructorbuttons remain realexisting paths/noalloperatorreplay; Source/historycurrentness compensated correctly. No OSIME/resources/recovery/Solid/global/currentRoot1254/674/release qualification.

FreezeIssue/Wiki/exactprotectedblobs beforeproductcode. DisjointViewport+gizmo+isolate vsdegree+reversals vsflow, primaryCSSREADME; parentbaseline beforeallproductedits. Affectedtype/library/app builds and ONEfinalsamechild source/publiccompiledgate; preserveFIRSTfailures/maps/dist/fullindependenthashverification/ONEimmutablecompletedIntegrationhandoff. Continuewithoutadoptionwait. FullcommercialCADgoal remainsOPEN.

Parent 182b11830666813f51694c7400f94dff623e70be. Exact nine owned paths; 12911 protected tracked file hashes recorded before code in /Users/user/.barocss-ai/v3/evidence-cad-editor-canvas-rail/baseline.json. Parent actual layout baseline runs before all product edits. Native readiness for Ruled Surface is independently audited; continue it after this human-prioritized Canvas usability leaf. No overall commercial CAD acceptance claim.

Direct human refinement before final gate

Small-screen testing is deferred: "ν…ŒμŠ€νŠΈ ν•  λ•Œ μž‘μ€ ν™”λ©΄ ν…ŒμŠ€νŠΈλŠ” μ§€κΈˆ λ‹Ήμž₯ μ•ˆν•΄λ„ 돼". Immediate final acceptance uses1440x960 only. Existing immutable1000 baseline/source001 observations remain; no further narrow-screen campaign. Human also requests professional tool chrome, minimum explanatory UI and maximum icons. Remove visible current-tool explanatory text, use icon-first existing Canvas commands with accessible names/title/keyboard shortcuts and pressed/disabled/focus; retain only actionable settings/errors. No new info cards. Exact nine paths and Native/Source/history guards unchanged. Source001 first actual failure at focus-outline assertion after layout stage is preserved and diagnosed separately. New icon product change requires affected builds and source/publiccompiled final gates at same child.

Canvas icon command rail native complete β€” #1532

Canvas commands now share a stable icon rail with Editing/Visibility/Construct groups, 36px hit targets, contextual tooltips/accessibility and QWER shortcuts. Explanatory current-tool text removed per human; U/V axis labels retained. Existing controller hooks/settings/SVG/currentness/native handlers unchanged; no public API/provider/root math change. Actual1440 Surface toolbar166β†’46px, Curve122β†’46px, sameCanvas1016Γ—860 and acceptedSource/history/camera unchanged for layout.

Native182b11830666813f51694c7400f94dff623e70be→clean582598af0f16b11f21b22998c5a9cc5b87747c9d, exact9owned/12911ALLtrackedprotected. BeforecodeWiki80aa465; humanicon/smallgate refinementf9e9776. Firstaffected3builds0; humaniconchange affected3build002 all0/eightinputbytes exactfinal. Finalsource003headedPID19575/session56202/actual0 and FIRSTpubliccompiled001PID23353/session62987/actual0 samecleanchild eachPASS5/pageErrors[]. ActualkeyboardQWER/SpaceIsolateRestore/TabHelp/Escape focus, ONErealSurfaceX authored30.916767713893037/heldoldNativeSourceframe/realEscape/nativewholewriter+validator/onehistoryUndo, rawinput/controller fields retained/guards; genuineDownload/freshpicker/currentCurvepoleCanvasXauthored10.520116196546489/secondfile actualNativewholeSourcewriter/15siblings retained. Bothsavedhashpairsagree d7fbadf5a79339c8384fe125f282b0d812a62c7928d670cf240e7cac0d71b0f0 /f160bfadc2838020ea7609b71506a9f65dd0a72742544f4ecd1269ebe67817fd.

Preserve firstbaseline001 metadataSHA1vsSHA256 failure BEFOREbrowser, correctedrunner-onlybaseline002PID20725actual0/PASS4. Preserve source001focusoutlinewidth fail with actualfocus-visible+solid true; transition timing inference corrected genuineTab+settledcondition, no forcedCSS. Preserve source002 falseexact1mm oracle failure: nominal publiccamera +1mm pixelroute translated from grip64pxoffset, nonlinearperspective capturedstart means actual0.9167677mm; false1mmcertificate removed, actualX-only finitepositive movement and exactNativeSource result validated. Productmath unchanged; lastcommitflow-only no redundantbuild. These are recorded firstfailures, not erased or PASS labels.

Human deferred further small-screen validation; finalsource/compiled1440ONLY. Historical1000baseline/source001 observationaldata is not finaliconacceptance. No alloperators/nativeprofilecampaign/Canvaswidthgrowth/zerooverallmodelocclusion/performance/OSIME/globalSolid/resources/recovery/currentRoot1254/674/release qualification. FullcommercialCADgoal remainsOPEN. Nextownedmodeling #1538 actual rational Surface between originalCurves, existingNativeCPUreadinessaudited, beforecodeWiki4870047. Continuewithoutadoptionwait; one completed immutable Integration handoff only.

Independent finalverification 40bac06dba04dbccd4429121ec14335d1b235f83e80ce30c04d94f2cf5801cc7; preservation f1a3a409c0f28fe0c981817a35e16a8fc9919bd7eff717d80724d67eb1b95f2a. All409SDKinputs/416outputs/12runtime/11declarations/12publishmaps/consumer0/noFallback verified. Durable91distfiles1,382,785B source/copy/secondread equal/maps unchanged. Finalverification metadata corrected before ALLwritersSTOP to exclude newly authoredcompletion/futurehandoff; intermediatehash3da149 is not finalauthority.