- Add cellRenderer and headerCellRenderer to ListTableColumn interface
- Use functional components (MiniTableCell, MiniTableHeader) to render VNodes properly in mini-table
- Add ts-pattern dependency for type-safe pattern matching
- Fix mini-table CSS to match el-table-v2 cell rendering for accurate height measurement:
- Add font-size: var(--el-font-size-base)
- Change flex-direction to row, align-items to center
- Add padding: 4px to mini-cell
- Add justify-content: center to mini-header-cell
- Document Vue 3 template VNode rendering pattern in quality-guidelines
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix call site bug where renamed function handleResize wasn't called
- Use queueMicrotask to clear and set estimatedRowHeight in same microtask
- This minimizes the gap where el-table-v2 uses default row height
- Also update shouldUseProbeRow to check estimatedRowHeight prop
- Add cell-text CSS for proper overflow handling in mini table
- Document queueMicrotask pattern and build commands in spec guides
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove ellipsis/truncate from mini-header-content
- Allow text wrapping with word-break: break-word
- Allow header cells to expand vertically with align-self: stretch
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Mini table now includes a header row that mirrors real table headers
- Header height is measured from mini table when prop.headerHeight is not set
- resolvedHeaderHeight computed falls back to measured header height
- Both row and header heights measured via ResizeObserver on container
- Update DEV_MODE_TS timestamp
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Extract cell rendering logic into shared renderCellContent function
- Both real table's cellRenderer and mini table now use the same function
- Eliminates code duplication and ensures consistent rendering
- Update DEV_MODE_TS timestamp
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- MiniCellRenderer now mirrors the real cellRenderer logic (slots, TzDateTime, dicts)
- Removed useless hard-coded nth-child flex selectors
- Each mini-cell now uses inline styles via getMiniCellStyle() to match real column widths
- Update DEV_MODE_TS timestamp
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace window resize listener with ResizeObserver on .my-table container
- Mini table now uses 3-5 sample rows with pure flex layout
- No flickering during resize/scroll since ResizeObserver only fires on actual size changes
- Remove window resize event listener entirely
- Update DEV_MODE_TS timestamp
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add debounced window resize listener that re-measures probe row height
- Only active in dynamic height mode (when rowHeight is not explicitly set)
- Cleanup properly on component unmount
- Update DEV_MODE_TS timestamp
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add Vue JSX support via @vitejs/plugin-vue-jsx
- Configure tsconfig for Vue JSX (jsx: preserve, jsxImportSource: vue)
- Add TzDateTime component integration for timestamp columns
- Support flexible timestamp type: undefined | boolean | string | object
- Add rowHeight and estimatedRowHeight props
- Replace previous column attribute `code` with `key` and `dataKey` (`key` for slot/display, `dataKey` for data access)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Create ListTableV2 component using Element Plus el-table-v2 for performance
- Use ElAutoResizer for automatic container height sizing
- Support auto-distributed column widths via flexGrow
- Convert parent slots to cellRenderer functions using renderSlot
- Fix incorrect import path in useListTable.ts and plugs/store/index.ts
- Add Vue DevTools plugin for debugging
- Add demo page with 100 rows of test data
- Add menu entry and i18n translations
- Update component guidelines with el-table-v2 usage notes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>