F1 component kit/Grids and schedules/Measurement gridDesktop

Measurement grid

Missing · new23 · measurement-grid

Pieces side by side in cm with the source label (Recalled / this order / Manual), gold where a value changed from the carried-over one (with the old value), and the Q22 version check: “someone else changed these” with Compare / Use theirs / Keep mine.

Covers: M17. Exports: MeasurementGrid.

Whole page:Phone is fixed at comfortable (POWERUPS #15).Laravel · navyDTC · midnight green

Anatomy

The component as it sits in the product: English, compact, real data shapes.

4521 · Measurements

Read only on phone; edits stay on desktop.
Jacket length76
Shoulders46was 45
Chest106was 104
Stomach96
Sleeve length65.5was 64
Bicep33

States

5 states, left to right, top to bottom. A mock poll never finishes, so each state is drawn on purpose.

changed values in gold

4521 · Measurements

Read only on phone; edits stay on desktop.
Jacket length76
Shoulders46was 45
Chest106was 104
Stomach96
Sleeve length65.5was 64
Bicep33
editing a cell

4521 · Measurements

Read only on phone; edits stay on desktop.
Jacket length76
Shoulders46was 45
Chest106was 104
Stomach96
Sleeve length65.5was 64
Bicep33
rejected · text kept

4521 · Measurements

Read only on phone; edits stay on desktop.
Jacket length76
Shoulders46was 45
Chest106was 104
Stomach96
Sleeve length65.5was 64
Bicep33
version conflict (Q22)

4521 · Measurements

Read only on phone; edits stay on desktop.
Jacket length76
Shoulders46was 45
Chest106was 104
Stomach96
Sleeve length65.5was 64
Bicep33
loading

4521 · Measurements

Read only on phone; edits stay on desktop.
Jacket length76
Shoulders46was 45
Chest106was 104
Stomach96
Sleeve length65.5was 64
Bicep33

Density

The phone shell is always comfortable (POWERUPS #15): 44px tap targets, 16px inputs. Compact exists on desktop only; see the desktop page.

comfortable · phone default

4521 · Measurements

Read only on phone; edits stay on desktop.
Jacket length76
Shoulders46was 45
Chest106was 104
Stomach96
Sleeve length65.5was 64
Bicep33

English · 中文

Staff pick en or cn (T001 Q25). Labels arrive localised; CJK falls back to PingFang SC / Noto Sans SC.

en

4521 · Measurements

Read only on phone; edits stay on desktop.
Jacket length76
Shoulders46was 45
Chest106was 104
Stomach96
Sleeve length65.5was 64
Bicep33
中文 · lang=zh-Hans

4521 · 尺寸

手机只读,编辑在桌面完成。
衣长76
肩宽46原 45
胸围106原 104
腹围96
袖长65.5原 64
上臂围33

Long string · permission denied

The long-string case (PL-063) and what a role without the permission sees (the server decides; T003).

long string

4521 · Measurements

Read only on phone; edits stay on desktop.
Jacket length76
Shoulders46was 45
Chest106was 104
Stomach96
Sleeve length65.5was 64
Bicep33
permission denied

4521 · Measurements

Read only on phone; edits stay on desktop.
Jacket length76
Shoulders46was 45
Chest106was 104
Stomach96
Sleeve length65.5was 64
Bicep33

Contract

The @rj/admin-kit API for this family. Mirrored in CONTRACT.md.

Export
MeasurementGrid · @rj/admin-kit
Props
pieces · rows (labels in the real upper / lower order) · carried · version · onSave
States
clean · changed (gold) · editing · rejected · conflict · loading · denied
shadcn / Radix
Table + Input cells + Tooltip
Package underneath
TanStack Table 8 compact · react-hook-form · react-query (409)
Accessibility
row headers are measurement names; changed cells announce “was 45”
API operations
admin.orders.measurements.update (If-Match, expected_version → 409) · admin.orders.measurement-check
Phone variant
read only
Permission
edit orders