Completes the fix where pinned column filter popovers were hidden
behind sticky body cells. The outerH <th> was missed in the batch
and still used the lower body-level stacking rank.
Co-Authored-By: claude-flow <ruv@ruv.net>
- Add zIndex prop to ColumnFilterPopover and TextFilterPopover
- Pass higher zIndex to popovers when column is pinned (zIndex + 100)
- Filter popovers now display correctly over sticky columns
- Include pricingEditableCols and containerCols in column order for pinned calculation
- Fix z-index stacking so all pinned columns stay visible while scrolling
- Add getStickyRank() function for layered z-index on pinned columns
- Higher z-index for rightmost pinned columns so they stack correctly
- Apply z-index dynamically based on column order in pinned list
- All pinned columns now stay visible while scrolling
- Add Pin Columns button to select columns to freeze
- Implement sticky columns with left positioning for pinned columns
- Support pinning dynamic pricing and container columns
- Add Pin icon indicator on pinned columns
- Include reset and unpin all options in pin panel
- Internal control columns (Type, Checking, etc.) now persist across Excel shifts.
- Master data columns now prioritize Dropbox source of truth.
- Added Fullscreen mode to all main tabs (Pricing, Descriptions, Matrix).
- Improved Supabase data loading with pagination.
Mirrors Check Ying with its own checkbox and note editor (pink theme).
Stored in virtual columns ANNA_CHECK (105) and ANNA_NOTE (106).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Integrated new column after TYPE.
- Enabled inline editing with auto-save.
- Added field to the full row EditPanel.
- Configured dynamic column detection in types.ts.
fix: save all changes to Supabase with reliable upsert
- Replace broken PATCH→POST fallback with single atomic upsert (POST +
Prefer: resolution=merge-duplicates). The old PATCH returned 200 OK
with empty body for new articles, causing silent data loss on every
first save per article.
- Fix getAllSyncedRows pagination: add explicit limit=10000 and Range
header to bypass Supabase's default 1000-row cap.
- Add fetchWithRetry helper (2 retries on 5xx/network errors).
- handleSaveRow now returns Promise<boolean> and closes EditPanel only
after a confirmed successful save.
- Add 'error' save status: failed rows turn red (border-l-red-500)
across ProductDescriptions, ArticleDetails, and PricingView.
- EditPanel shows saving spinner, disables buttons while saving, and
displays inline error message with "Retry Save" on failure.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Added Classification column next to Line with color-coded badges (Core=blue, OOC=amber)
- Added Excel-style filter icons on Article Name (text search), Line, and Classification headers
- Filter icons appear on hover; turn blue when active
- Multi-select popover for Line and Classification; free-text popover for Article Name
- Filters work additively alongside the existing global search bar
- ArticleDetails: removed Tariff/Barcode/Origin columns and tab to simplify the view
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>