- Description
- {/* `min-w-[360px]` guarantees Description gets
- the room it needs when Qty + Markup +
- Processed + Update-price columns take
- their fixed widths. Without this the
- table-layout algorithm squeezes
- Description down to ~250px on a
- 1025px container. */}
- Description
- Qty
+ {/* NOTE: keep this header count in lock-step
+ with the TableCell count in the body row
+ below. A stray duplicate "Description"
+ header used to sit here, giving 9 headers
+ against 8 cells: every column rendered one
+ position off its label, and the
+ `min-w-[360px]` meant for Description
+ landed on Qty — so a long description was
+ crushed into ~99px and wrapped one word
+ per line while Qty sat in 360px of empty
+ space.
+
+ `min-w-[360px]` guarantees Description gets
+ the room it needs when Qty + Markup +
+ Processed + Update-price columns take
+ their fixed widths. Without this the
+ table-layout algorithm squeezes
+ Description down to ~250px on a
+ 1025px container. */}
+ Description
+ QtySupplierCostSelling
@@ -2308,7 +2319,7 @@ export default function QuoteDetailPage({ params }: { params: Promise<{ id: stri
Processed
-
+
@@ -2342,15 +2353,22 @@ export default function QuoteDetailPage({ params }: { params: Promise<{ id: stri
+ {/* Icon-only: this table is already
+ wider than the 2/3 column it sits
+ in, so the "Update price" label was
+ costing ~55px of horizontal scroll
+ for a button whose pencil icon and
+ tooltip already say what it does. */}