List View Component: Completion Report
Date: 2026-03-17
Branch: jmpicnic/list-view-management-620
Closes: management#620, management#565
Section 1 — End State Summary
Section titled “Section 1 — End State Summary”Repository Changes (ux-prototype)
Section titled “Repository Changes (ux-prototype)”New directories and files under src/components/canary/:
| Directory | Files |
|---|---|
atoms/grid/text/ | text-cell-display.tsx, text-cell-editor.tsx, index.ts, text.test.tsx, text.stories.tsx |
atoms/grid/number/ | number-cell-display.tsx, number-cell-editor.tsx, index.ts, number.test.tsx, number.stories.tsx |
atoms/grid/boolean/ | boolean-cell-display.tsx, boolean-cell-editor.tsx, index.ts, boolean.test.tsx, boolean.stories.tsx |
atoms/grid/date/ | date-cell-display.tsx, date-cell-editor.tsx, index.ts, date.test.tsx, date.stories.tsx |
atoms/grid/enum/ | enum-cell-display.tsx, enum-cell-editor.tsx, index.ts, enum.test.tsx, enum.stories.tsx |
atoms/grid/memo/ | memo-cell-display.tsx, memo-cell-editor.tsx, memo-button-cell.tsx, create-memo-button-cell-editor.tsx, index.ts, memo.test.tsx, memo.stories.tsx |
atoms/grid/color/ | color-cell-display.tsx, color-cell-editor.tsx, index.ts, color.test.tsx, color.stories.tsx |
atoms/grid/action/ | action-cell-renderer.tsx, index.ts, action-cell-renderer.test.tsx, action-cell-renderer.stories.tsx |
atoms/shared/ | formatters.ts |
molecules/data-grid/ | data-grid.tsx, sort-menu-header.tsx, use-column-persistence.ts, index.ts, data-grid.test.tsx, data-grid.stories.tsx |
organisms/shared/entity-data-grid/ | create-entity-data-grid.tsx, use-dirty-tracking.ts, index.ts, create-entity-data-grid.test.tsx, create-entity-data-grid.stories.tsx, use-dirty-tracking.test.ts |
organisms/shared/entity-data-grid-shim/ | create-entity-data-grid-shim.tsx, index.ts, create-entity-data-grid-shim.test.tsx, create-entity-data-grid-shim.stories.tsx |
New files under src/types/canary/:
pagination.ts—PaginationDatainterface
New/modified files under src/styles/canary/:
ag-theme-arda.css— copied from root, with SortMenuHeader CSS classes appended
New files under src/canary-refactor/:
components/columnPresets.tsx— forked column definitions with canary atomscomponents/ItemTableAGGrid.tsx— forked grid with canary DataGridcomponents/ItemsPage.tsx— forked page with canary gridcomponents/ItemDetailPage.tsx— forked detail page wrapperreference/items/items-grid.stories.tsx— updated to import from forked componentsreference/items/item-detail.stories.tsx— updated to import from forked components
Files deleted:
src/components/canary/atoms/canary-placeholder/(2 files)src/components/canary/molecules/canary-placeholder/(2 files)src/components/canary/organisms/canary-placeholder/(2 files)
Files modified outside canary directories:
src/canary.ts— barrel updated with all new exports, placeholders removedsrc/types/canary.ts— addedPaginationDataexporteslint.config.mjs— added canary-to-extras boundary rule, canary AG Gridno-explicit-anyrelaxation, canary-refactor global ignoretsconfig.json— excludedsrc/canary-refactor(uses@frontend/alias)
Published Package (@arda-cards/design-system)
Section titled “Published Package (@arda-cards/design-system)”New exports from canary entry point:
- Cell atoms:
TextCellDisplay,TextCellEditor,createTextCellEditor,NumberCellDisplay,NumberCellEditor,createNumberCellEditor,BooleanCellDisplay,BooleanCellEditor,createBooleanCellEditor,DateCellDisplay,DateCellEditor,createDateCellEditor,EnumCellDisplay,EnumCellEditor,createEnumCellEditor,MemoCellDisplay,MemoCellEditor,createMemoCellEditor,MemoButtonCell,createMemoButtonCellEditor,ColorCellDisplay,ColorCellEditor,createColorCellEditor,DEFAULT_COLOR_MAP,ActionCellRenderer - Molecule:
DataGrid,GridImage,useColumnPersistence - Organisms:
createEntityDataGrid,useDirtyTracking,createEntityDataGridShim - Types:
PaginationData,ColorOption,RowAction, and all config/props/ref/handle types
Removed exports:
CanaryAtomPlaceholder,CanaryMoleculePlaceholder,CanaryOrganismPlaceholder
Section 2 — Components Replaced by Canary
Section titled “Section 2 — Components Replaced by Canary”| Vendored Component | Canary Replacement | Notes |
|---|---|---|
ArdaGrid<T> | DataGrid<T> / createEntityDataGridShim<T>() | Core grid infrastructure |
SortMenuHeader (internal to ArdaGrid) | SortMenuHeader (internal to DataGrid) | Ported, same behavior |
SelectAllHeaderComponent | AG Grid native rowSelection config | Eliminated custom component |
NotesCell / CardNotesCell | MemoButtonCell + createMemoButtonCellEditor() | Vendored-compatible pattern |
ColorCellEditor (raw DOM class-based) | ColorCellEditor (React forwardRef) | React replacement |
| Color renderer (inline) | ColorCellDisplay | Extracted to atom |
| Simple text/number/boolean/date/enum renderers (inline) | Canary {Type}CellDisplay atoms | ~15 columns migrated |
Section 3 — Remaining Vendored Grid Components
Section titled “Section 3 — Remaining Vendored Grid Components”| Component | Rationale |
|---|---|
| 9 Typeahead Cell Editors (Supplier, Unit, Type, SubType, UseCase, Facility, Department, Location, Sublocation) | Domain-specific, requires API context (follow-up F1) |
QuickActionsCell | Domain-specific, requires kanban context (follow-up F2) |
CardCountCell | Domain-specific, requires lazy API fetch |
itemsColumnDefs / itemsDefaultColDef | Forked into canary-refactor, not library |
ItemTableAGGrid | Forked into canary-refactor with hybrid canary+vendored imports |
ItemsPage, ItemDetailPage | Forked into canary-refactor, page chrome retained vendored |
ItemDetailsPanel, ItemFormPanel | Retained vendored, not grid components |
AppSidebar, AppHeader, SidebarProvider | Out of scope (follow-up F4) |
Section 4 — Features in Current Vendored Grid Not Supported in Canary
Section titled “Section 4 — Features in Current Vendored Grid Not Supported in Canary”| Feature | Status | Reference |
|---|---|---|
| 9 Typeahead cell editors (debounced API lookups) | Out of scope | Follow-up F1 |
QuickActionsCell (kanban card operations) | Out of scope | Follow-up F2 |
| Draft lifecycle management (createDraftItem, auto-publish) | Out of scope | Follow-up F3 |
| Page chrome (AppSidebar, AppHeader, tabs, search) | Out of scope | Follow-up F4 |
Image cell type (GridImage) | Ported as utility, not as typed cell atom | Follow-up F5 |
Currency/money cell type (formatCurrency) | Not in scope | Follow-up F5 |
DateTime cell type (formatDateTime) | Not in scope | Follow-up F5 |
| Duration cell type (“N hours”) | Not in scope | Follow-up F5 |
| Multi-field rollup renderers (Classification, Location) | Domain-specific, not generic | — |
See Follow Up Projects and Column Definition Migration Map for full details.
Copyright: © Arda Systems 2025-2026, All rights reserved