30ec88ceaf992b26e0dd6196165875738ffec7f7
- New molecule MapProviderDrawer lifts the mobile-map bottom drawer out of ProvidersStep (~120 lines): Paper + close-X header + single-pin ProviderCard content / cluster-list content + slide-up animation. Props: `active: ProviderMapActiveState | null`, `onClose`, `onSelectProvider`, `onDrillIntoProvider`. Three Storybook states (SingleProvider, Cluster, ClusterPair, Closed) so the drawer can be iterated without a live map. ProvidersStep now consumes it as a single line wired to mapRef.clearActive + mapRef.drillIntoProvider. - Shared visual tokens for the control cluster (Search, Filters, Sort by, List/Map toggle) factored into a CONTROL_CHROME constant and three typed sx objects (controlButtonSx, controlToggleSx, controlInputSx, filterTriggerSx) so all four controls share the same outline, radius, fill, and shadow across mobile list, mobile map, and desktop. Desktop map-panel floating toggle also re-threaded through controlToggleSx. - Mobile list control order now matches mobile map: Sort by is grouped left next to Filters (not pushed right with a ml:auto wrapper), and the List/Map toggle is right-pinned via ml:auto on xs. Desktop keeps Sort pushed right (no toggle rendered on desktop in this slot). - Fix: the magnifying-glass commit button was drifting 19–30px left as the input filled with chips / draft text. Root cause: overriding `InputProps.endAdornment` on Autocomplete bypasses MUI's `.MuiAutocomplete-endAdornment` absolute positioning, leaving our `.MuiInputAdornment-positionEnd` as `position: static` in flex flow. controlInputSx now re-absolutely-anchors the end adornment at the right edge and reserves `pr: 5` so input content can't slide under it. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Description
No description provided
Languages
TypeScript
94.6%
JavaScript
2.8%
CSS
2.5%
HTML
0.1%