Gantt
Built in the kit on CSS grid (no library): order ID · customer name · factory (codes, no location — FEEDBACK-B-r1 A07), bars in the real phase colours, red due markers, a today line in steel, weekends shaded, hover detail. Fed by the computed gantt-grid.
Covers: M03. Exports: Gantt.
Anatomy
The component as it sits in the product: English, compact, real data shapes.
States
5 states, left to right, top to bottom. A mock poll never finishes, so each state is drawn on purpose.
Density
The phone shell is always comfortable (POWERUPS #15): 44px tap targets, 16px inputs. Compact exists on desktop only; see the desktop page.
English · 中文
Staff pick en or cn (T001 Q25). Labels arrive localised; CJK falls back to PingFang SC / Noto Sans SC.
Long string · permission denied
The long-string case (PL-063) and what a role without the permission sees (the server decides; T003).
Not available to your role
Your role is missing view gantt. Nothing here is hidden by mistake: the server sends only what you can do.
Contract
The @rj/admin-kit API for this family. Mirrored in CONTRACT.md.
- Export
Gantt·@rj/admin-kit- Props
month·year·rows{orderId, customer, factories, segments[{phase, from, to}], due} ·legend·onRow- States
- loading · ready · hover · filtered · empty · denied
- shadcn / Radix
- Tooltip + Sheet (drill)
- Package underneath
- in-kit CSS grid + @tanstack/react-virtual (fallback @svar-ui/react-gantt, MIT core)
- Accessibility
- each row is a button naming order, customer, phase and due date; the grid has a table alternative
- API operations
- admin.orders.gantt · admin.orders.gantt-grid (month, year) · admin.orders.gantt.status-legend · admin.orders.gantt-detail
- Phone variant
- due-date list