Commit Graph

103 Commits

Author SHA1 Message Date
de8c5c7135 Build [v1.14.31] 2026-04-25 12:53:41 +03:00
d0f166a370 Build [v1.14.30] 2026-04-25 12:49:02 +03:00
8dc8b7da9f Build [v1.14.28] 2026-04-25 12:43:41 +03:00
a287bfadca feat(07.1-frontend-overhaul): refactor inventory page buttons and inputs
- Applied btn-primary and btn-secondary classes
- Removed rounded corners and shadows
- Updated labels to Title Case
- Standardized input styles
2026-04-25 12:32:22 +03:00
c15a80a53e Build [v1.14.26] 2026-04-25 12:25:17 +03:00
da06282d48 Resolve merge conflicts and update session state for v1.14.23 2026-04-23 18:24:21 +03:00
8d9a4ccc7a Build [v1.14.23] 2026-04-23 18:23:07 +03:00
41a1f7d548 chore: archive v1.14.22 milestone 2026-04-23 16:26:27 +03:00
7c4441a962 Build [v1.14.22] 2026-04-23 16:16:04 +03:00
778d671a5f Merge tag '1.14.5_cleaned'
project was cleaned
2026-04-23 11:47:44 +03:00
0e356e6c89 backup: Phase 6 search and export fixes before cleanup
- Added search button to main page header with Ctrl+K listener
- Implemented SearchModal component rendering
- Fixed SearchModal to use axiosInstance with correct backend URL (8916)
- Fixed token key from 'auth_token' to 'inventory_token'
- Verified export endpoints working correctly
- All Phase 6 UAT fixes in place

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-04-23 11:22:16 +03:00
4ead83cfad fix(5): validate part_number is non-empty before transformation 2026-04-22 18:04:54 +03:00
b28eb49fe7 feat(5-plan-02-t3,t4): create useItemSearch hook and integrate search button into inventory page 2026-04-22 17:44:11 +03:00
a9a64b8d0c feat(5-03-05): integrate ExportPanel into admin dashboard 2026-04-22 17:43:18 +03:00
64d177e791 fix: complete image pipeline - rotation, URL, preview
- Add rotation_degrees parameter to ImageProcessor.process_photo()
- Pass rotation through _auto_save_photo_from_extraction() to processor
- Allow no-crop fallback when crop_bounds is None
- Add buildPhotoUrl() helper to resolve backend URLs correctly
- Update frontend components to use backend URL for image sources
- Replace Use/Skip Photo buttons with checkbox in AI extraction UI
- Add images/ to .gitignore to prevent accidental commits

Addresses: rotation never applied, image 404s (relative to Next.js not backend), preview blank in edit form
2026-04-22 08:50:25 +03:00
cbfd7232ca fix: convert extracted image blob to base64 before sending to API
The extracted image blob from AI extraction was not being sent to the backend
because Blob objects cannot be JSON serialized. Fixed by:

1. Converting Blob to base64 before sending to API
2. Renaming fields: extractedImageBlob → extracted_image_bytes, imageProcessing → image_processing
3. Removing Blob from local DB (keep original data structure for IndexedDB)
4. Applying same fix to both single item and batch update flows

This ensures the auto-photo-save feature receives the image data it needs.
2026-04-21 19:53:53 +03:00
6bf95a0df0 fix: prevent username input from unmounting during typing in login form
The username input was conditionally hidden when it had a value, causing
the field to disappear and focus to jump to password when typing. Fixed by:
1. Always rendering the username input (removed conditional)
2. Using controlled input with value prop
3. Only auto-focus password when username is already entered

This fixes the focus-jumping bug that made it impossible to enter usernames.
2026-04-21 17:54:19 +03:00
2ba1994022 fix: remove console.error and update uploadPhoto type signature in item creation 2026-04-21 13:26:09 +03:00
31899be050 feat(phase2): integrate photo upload into item creation
- Create frontend/app/items/create.tsx with multi-step item creation workflow (Details → Photo Upload → Preview → Confirm)
- Create frontend/hooks/useItemCreate.ts custom hook managing form state, step navigation, and photo upload
- Add integration tests for item creation workflow with photo upload support
- Photo upload step supports manual crop UI with crop bounds submission
- ManualCropUI visible by default with toggle to use full photo
- Photo uploaded before item confirmation, ensuring photo is attached
- Works with mobile camera capture via ItemPhotoUpload component
- All 374 tests passing
2026-04-21 13:20:06 +03:00
ceaae5bb8f refactor: optimize spacing on main pages (inventory, admin, logs, scanner)
PHASE 2 - HIGH PRIORITY PAGE OPTIMIZATIONS:

app/inventory/page.tsx (11 fixes):
- Main container: space-y-6 → space-y-3 md:space-y-4
- Header spacing: mb-6 md:mb-10 → mb-4 md:mb-6
- Modal padding: p-8 → p-4 md:p-6
- Category editor: space-y-6 → space-y-3 md:space-y-4
- Box manager: p-8 gaps 6 → p-4 md:p-6 gaps 3 md:gap-4
- Grid gaps: gap-6 → gap-3 md:gap-4 throughout

app/admin/page.tsx (4 fixes):
- Main container: space-y-6 md:space-y-10 → space-y-3 md:space-y-6
- Section spacing: space-y-6 md:space-y-8 → space-y-3 md:space-y-4
- Grid gaps: gap-6 md:gap-8 → gap-3 md:gap-4

app/logs/page.tsx (3 fixes):
- Main container: space-y-6 md:space-y-10 → space-y-3 md:space-y-6
- Header gap: gap-6 → gap-3 md:gap-4
- Filter section: space-y-6 → space-y-3 md:space-y-4

app/page.tsx (Scanner):
- Header gap: gap-4 mb-6 → gap-3 md:gap-4 mb-3 md:mb-4
- Controls padding: px-4 py-2 → px-3 py-2
- Footer: mt-20 mb-8 → mt-12 md:mt-20 mb-4 md:mb-8
- Box modal: p-6 → p-4 md:p-6, gaps optimized

components/AdminOverlay.tsx (4 fixes):
- Header padding: p-6 → p-3 md:p-6
- Content spacing: space-y-8 → space-y-3 md:space-y-4
- Section spacing: space-y-4 → space-y-2 md:space-y-3
- User/category grids: gap-2, p-4 → p-3 md:p-4

Tests: 291/291 passing - No regressions
2026-04-19 19:05:25 +03:00
2cbc036eb2 fix: critical mobile viewport fixes - login, modals, page constraints
- Remove min-h-screen or make responsive (md:min-h-screen for desktop only)
- Login modal: p-8 → p-4 md:p-6, space-y-8 → space-y-3 md:space-y-4
- NewItemDialog: responsive spacing p-4 md:p-6, gaps 3 md:gap-4
- StockAdjustmentPanel: p-6 → p-4 md:p-6, gaps/spacing reduced for mobile
- All container padding and gaps now follow mobile-first pattern
- Fixes viewport overflow on 375px portrait mode
- Tests: 291/291 passing
2026-04-19 19:04:17 +03:00
c0232bb2f1 refactor: remove all bold font weights from UI/UX (291 replacements)
Replace font-bold, font-black, and font-semibold with font-normal throughout:
- 26 component files
- 1 CSS utility file (globals.css)
- 291 total occurrences

Text hierarchy now maintained through font-size differences only.
All tests passing (291/291).

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-04-19 18:28:23 +03:00
b0a1582aa0 fix: increase subtitle font sizes for better readability on desktop
- DatabaseManager: 'Retention & Maintenance' text-xs (12px) → text-sm (14px)
- globals.css: .card-subtitle text-[10px] → text-xs (12px)

Improves readability of secondary headings across admin panels.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-04-19 18:26:25 +03:00
73dde9b40d feat: add responsive typography scaling for desktop readability
- Add CSS clamp() for fluid font-size scaling (16px to 20px based on viewport)
- Apply responsive breakpoint classes to all components:
  * text-xs → lg:text-sm xl:text-base
  * text-sm → lg:text-base xl:text-lg
  * text-base → lg:text-lg xl:text-xl
  * text-lg → lg:text-xl xl:text-2xl
  * text-xl → lg:text-2xl xl:text-3xl
  * text-2xl → lg:text-3xl xl:text-4xl
  * text-3xl → lg:text-4xl xl:text-5xl
- Apply responsive padding/spacing scaling proportionally
- Updated 27 component and page files
- Build verified: 6 routes, zero TypeScript errors
- Fixes readability on MacBook Pro 14" and other desktop screens without browser zoom
2026-04-19 18:03:21 +03:00
a225d2efc6 fix: restore Search icon import in inventory/page.tsx and update session state - Phase 2 complete 2026-04-19 16:13:14 +03:00
bec4b714e3 refactor: extract LogsTable component from logs/page.tsx 2026-04-19 14:58:33 +03:00
47528ea4a2 refactor: extract FilterBar component 2026-04-19 14:57:00 +03:00
1797a617ab refactor: extract InventoryTable component 2026-04-19 14:55:53 +03:00
3302bae766 refactor: extract StockAdjustmentPanel component
- Extracted from page.tsx (lines 450-710)
- Pure presentational component with all state passed as props
- Props: selectedItem, isEditing, editedItem, adjustQty, adjustType, trashReason, categories, fieldScanning
- Callbacks: onCancel, onEdit, onEditChange, onQuantityChange, onTypeChange, onReasonChange, onShowScanner, onAdjustStock, onUpdateItem, onDeleteItem
- Includes edit mode and adjustment mode with quantity controls
- 291 tests passing, build successful
2026-04-19 14:47:08 +03:00
cc6b55ec0f fix: reorder hooks to resolve handleSync declaration order 2026-04-19 14:22:26 +03:00
cf45437bb0 refactor: extract useInventoryFilter hook from inventory/page.tsx 2026-04-19 12:29:22 +03:00
6dfc76ad92 refactor: extract useSync hook from page.tsx 2026-04-19 12:24:25 +03:00
f5441a7ca7 refactor: extract useStockAdjustment hook from page.tsx 2026-04-19 12:23:06 +03:00
5b8c6039ef refactor: extract useScanner hook from page.tsx 2026-04-19 12:21:15 +03:00
d7fa470bcb style: step 11 - uniform text tokens in remaining components 2026-04-19 12:09:22 +03:00
b5d4c5678c style: step 5 - uniform text tokens in admin and logs pages 2026-04-19 11:57:36 +03:00
fa27817f7c style: step 4 - uniform text tokens in inventory page 2026-04-19 11:55:50 +03:00
ffb56c030d style: step 2-3 - uniform text tokens in login+main page, fix tsconfig build exclusions 2026-04-19 11:46:44 +03:00
2465141a18 test: fix data-testid attribute names and update E2E test URLs to port 8917 2026-04-19 10:08:52 +03:00
28c55f86ce test: add data-testid attributes to login page for E2E tests 2026-04-19 09:51:43 +03:00
6b5e7adde2 test: add data-testid to mode buttons, admin button, and quantity controls 2026-04-19 09:37:29 +03:00
4f4822c0cb test: add data-testid attributes to main page for E2E tests 2026-04-19 09:31:17 +03:00
a8319f1580 test: add data-testid attributes to admin page sections 2026-04-19 09:30:59 +03:00
1bd287451f polish: add focus indicators and semantic HTML to admin page
- Add focus-visible ring to logout button (was missing in audit)
- Add aria-label to logout button for screen readers
- Wrap main content in semantic <main> tag
- Improves accessibility and keyboard navigation for admin users
2026-04-18 14:15:25 +00:00
38d0a4a8f7 fix: correct prefers-reduced-motion animation handling
- Remove duplicate @keyframes scan from reduced-motion block
- Properly disable animation classes (.animate-scan-fast, etc) for motion-sensitive users
- Maintain Tailwind keyframe definitions outside media query
- Respects accessibility preference while preserving animation system
2026-04-18 14:14:33 +00:00
f28052ea05 chore: remove color palette preview page and proposals
- Removed /color-preview route
- Removed COLOR_PALETTE_PROPOSALS.md documentation
- Application returns to baseline design
- Current blue OLED palette retained
2026-04-17 13:41:29 +03:00
3949b7f3d5 fix: make palette selector buttons clickable with hover/active states
- Added cursor-pointer class
- Added hover:scale-105 and active:scale-95 animations
- Added focus ring for keyboard navigation
- Fixed text color contrast on selected button
2026-04-17 13:38:02 +03:00
95fedda61e feat: add color palette preview page and proposals
- Created /color-preview route with 4 palette options
- Includes interactive color swatches, typography examples, buttons, cards, forms
- Shows contrast ratios and semantic color usage
- Added detailed proposal documentation explaining each palette
- Recommended: Proposal 1 (Green IoT) for inventory domain alignment

Preview page allows visual comparison before any implementation.
No changes to existing color system yet.
2026-04-17 13:34:27 +03:00
903e924f73 chore: update service worker cache version 2026-04-17 13:29:26 +03:00
185ce7b987 improve: increase footer visibility on main page
- Changed opacity-30 → opacity-70 (70% visible, still subtle)
- Increased font sizes (text-xs → text-sm, text-[11px] → text-xs)
- Changed text color to text-secondary for better contrast (8.8:1)
- Enhanced divider visibility with bg-slate-700/60 and increased width
- Maintains subtle aesthetic while ensuring readability
2026-04-17 13:25:26 +03:00