Editor: the toolkit is a rail tab on desktop, and the rail is wider
The handoff drew the toolkit as a 216px card left of the plan. That width was better spent on the plan and the rail, so the toolkit is now the rail's first tab — Toolkit / Plot / Journal / History / Assistant — rendered `embedded` (no card chrome, no heading; the tab is the heading), the grid is two columns, and the rail grows from 336 to 400px. Focusing a bed (double-click) switches the rail to Toolkit, because that is where the plant palette now lives; a single click still selects into Plot. The phone chrome is untouched: it never used the card. Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
@@ -14,12 +14,18 @@ import { useEditorStore } from './store'
|
||||
import type { EditorObject } from './types'
|
||||
|
||||
/**
|
||||
* The desktop editor's left card. Out of focus: the seven object kinds as pill
|
||||
* The desktop editor's toolkit. Out of focus: the seven object kinds as pill
|
||||
* rows — click to arm (then click the plan), or drag one straight onto it. In a
|
||||
* focused bed it swaps to the plant list with a search, same arm/drag behavior,
|
||||
* plus the bed's bulk tools (fill, clear, scan a packet).
|
||||
*
|
||||
* It started life as the workspace's left card (the handoff's layout) and now
|
||||
* lives as the first tab of the rail, so the plan and the rail get the width
|
||||
* the card took. `embedded` is that mode: no card chrome of its own, and no
|
||||
* "Toolkit" heading — the tab is the heading.
|
||||
*/
|
||||
export function Toolkit({
|
||||
embedded = false,
|
||||
unit,
|
||||
plants,
|
||||
plantings,
|
||||
@@ -34,6 +40,7 @@ export function Toolkit({
|
||||
onClear,
|
||||
onScan,
|
||||
}: {
|
||||
embedded?: boolean
|
||||
unit: UnitPref
|
||||
plants: Plant[]
|
||||
plantings: EditorPlanting[]
|
||||
@@ -55,10 +62,10 @@ export function Toolkit({
|
||||
const [query, setQuery] = useState('')
|
||||
|
||||
return (
|
||||
<div className="panel flex min-h-0 flex-col gap-2 overflow-y-auto overflow-x-hidden p-3.5">
|
||||
<div className={cn('flex min-h-0 flex-col gap-2 overflow-x-hidden', embedded ? 'flex-1' : 'panel overflow-y-auto p-3.5')}>
|
||||
{!focused ? (
|
||||
<>
|
||||
<h6 className="mx-1 mb-1.5 mt-1">Toolkit</h6>
|
||||
{!embedded && <h6 className="mx-1 mb-1.5 mt-1">Toolkit</h6>}
|
||||
{OBJECT_KINDS.map((k) => {
|
||||
const armed = armedKind === k.kind
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user