Commit Graph

981 Commits

Author SHA1 Message Date
Knee Cola
d373d80508 feat: expand privacy policy to comprehensive 16-section GDPR-compliant format
- Updated privacy-policy page component to render all 16 sections
- Expanded Croatian translations with comprehensive GDPR-compliant privacy policy
- Expanded English translations with comprehensive GDPR-compliant privacy policy
- Added sections covering: data controller, data collection, legal bases, cookies,
  hosting location, data sharing, EU transfers, security, data retention,
  GDPR rights, rights exercise, complaint rights, children's privacy, and policy changes
- Restructured existing sections with intro paragraphs and detailed list items
- Maintained proper rich text formatting for email links and emphasis

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-24 23:05:29 +01:00
Knee Cola
426fbc345e feat: expand terms of service to comprehensive 22-section format
- Updated terms-of-service page component to render all 22 sections
- Expanded Croatian translations with comprehensive legal terms
- Expanded English translations with comprehensive legal terms
- Added sections covering: eligibility, scope, user content, privacy, cookies,
  2D barcodes accuracy, prohibited conduct, fees, third-party services,
  availability, IP rights, termination, warranties, liability, indemnification,
  force majeure, governing law, and more
- Maintained proper rich text formatting for email links and emphasis

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-24 22:49:42 +01:00
Knee Cola
089e6d0352 feat: add page title metadata to layout
- Add title: 'rezije.app' to metadata in layout
- Sets browser tab title for all pages across the application
- Applies to all locales (Croatian and English)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-24 22:09:58 +01:00
Knee Cola
0e78cc4977 fix: improve email link styling in terms and privacy pages
- Replace <a> tags with Next.js Link component for email links
- Update translation tags from <a> to <emailLink> in both en and hr
- Add no-underline class to prevent default prose underline
- Add hover:underline to show underline only on hover
- Apply consistent styling across both terms-of-service and privacy-policy pages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-24 22:04:41 +01:00
Knee Cola
ef1d9e9cc4 refactor: internationalize privacy-policy page with next-intl
- Extract all privacy-policy text content into messages/en.json and messages/hr.json
- Add complete Croatian translation for privacy policy
- Update privacy-policy page to use next-intl translations with t.rich()
- Rename component from ConsentPage to PrivacyPolicyPage for clarity
- Replace hardcoded text with translation keys for full i18n support

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-24 21:57:46 +01:00
Knee Cola
958abcc5e7 refactor: internationalize terms-of-service page and improve styling
- Extract all terms-of-service text content into messages/en.json and messages/hr.json
- Update terms-of-service page to use next-intl translations with t.rich()
- Replace dangerouslySetInnerHTML with proper t.rich() formatting
- Add Croatian translation for terms-of-service page
- Increase disclaimer max-width from 20rem to 30rem for better readability

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-24 21:54:16 +01:00
Knee Cola
dc6fa0971e refactor: sync English translations with Croatian and clean up landing page
- Restructure login-page content to match Croatian version (remove card-3, add disclaimer)
- Update main-card text structure from text-1/text-2 to single text field
- Update image references and add image-alt attributes
- Add missing translation fields in home-page and location-edit-form
- Remove duplicate card-2.text render in landing page

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-24 21:41:14 +01:00
Knee Cola
68b2591f40 refactor: restructure landing page with component extraction and fix Server Component hooks
- Extract reusable components: EnterOrSignInButton, paragraphFormatFactory, getProviders
- Fix React hooks usage: remove useMemo from async Server Components
- Update landing page content for Croatian and English translations
- Reorganize terms/policy pages into locale-aware directories
- Update PageFooter to use locale-aware links and make component async

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-24 21:26:09 +01:00
Knee Cola
5da00abd4d started working on new title page: added pictures and some text 2025-12-24 18:16:06 +01:00
4336e0ca3f Merge branch 'release/2.19.0' 2025-12-22 15:17:00 +01:00
29709e8048 Merge branch 'release/2.19.0' into develop 2025-12-22 15:17:00 +01:00
043c6efbd2 chore: update version to 2.19.0 in package.json and package-lock.json 2025-12-22 15:16:52 +01:00
f7d4b7a75b Merge branch 'feature/fixing-print-layout' into develop 2025-12-22 15:14:35 +01:00
ce2aa7a101 fix: improve print layout and exclude paid bills
- Force white background on print preview page regardless of color scheme
- Exclude paid bills from print view
- Add proper spacing for printed barcodes
- Remove legacy barcodeImage support

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 15:14:13 +01:00
e57759d000 Merge branch 'release/2.18.0' 2025-12-22 13:54:41 +01:00
6cf23a891e Merge branch 'release/2.18.0' into develop 2025-12-22 13:54:41 +01:00
20af876316 chore: update version to 2.18.0 in package.json and package-lock.json 2025-12-22 13:53:04 +01:00
c4205a28eb Merge branch 'feature/debugging-pdf417-printed-barcodes' into develop 2025-12-22 13:51:51 +01:00
cd154f9e24 fix: improve PDF417 barcode generation and data handling
- Fix newline corruption: URL-encode hub3aText to prevent browser form submission from converting \n to \r\n
- Align with HUB3A specs: Set error correction level to 4 and pixel size to 4x3 for better barcode scanning reliability
- Fix barcode sizing: Add responsive width constraints (max-w-[35rem], sm:max-w-[25rem]) across all barcode displays
- Update package dependencies: Remove peer dependency flags

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 13:51:08 +01:00
Knee Cola
04c6f1868b Merge branch 'release/2.17.0' 2025-12-21 21:07:14 +01:00
Knee Cola
3f6c440f97 Merge branch 'release/2.17.0' into develop 2025-12-21 21:07:14 +01:00
Knee Cola
1420cfe2d9 2.17.0
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-21 21:03:25 +01:00
Knee Cola
6e5304aa40 docs: add CHANGELOG.md with version 2.17.0 entry
Document the reversion from zxing-wasm to pure JavaScript PDF417 implementation due to barcode scanner compatibility issues at Tisak kiosks.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-21 21:01:37 +01:00
Knee Cola
c55392bf38 Merge branch 'feature/reverting-pdf417-generator' into develop 2025-12-21 20:56:26 +01:00
Knee Cola
1e8a817fcc revert: restore legacy PDF417 barcode generation implementation
Restore custom PDF417 generator, renderer, and component that were previously removed. Update all components to use the legacy Pdf417Barcode instead of Pdf417BarcodeWasm.

Restored files:
- app/lib/pdf/pdf417.ts - Custom PDF417 generator library
- app/lib/pdf/renderBarcode.ts - Canvas-based barcode renderer
- app/ui/Pdf417Barcode.tsx - React component using custom generator

Updated imports in:
- app/ui/BillEditForm.tsx
- app/ui/PrintPreview.tsx
- app/ui/ViewBillCard.tsx
- app/ui/ViewLocationCard.tsx

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-21 20:52:04 +01:00
Knee Cola
cbe7b4eb78 Merge branch 'release/2.16.1' 2025-12-20 09:56:31 +01:00
Knee Cola
c22c1fb7fb Merge branch 'release/2.16.1' into develop 2025-12-20 09:56:31 +01:00
Knee Cola
a91c635fa4 2.16.1 2025-12-20 09:54:49 +01:00
Knee Cola
c068ffb7c3 Merge branch 'feature/improving-detection' into develop 2025-12-20 09:53:57 +01:00
Knee Cola
248b9cf3d0 perf: implement canvas pooling to reduce memory allocations
Replace per-iteration canvas creation with a reusable canvas pool:

- Pre-allocate 6 canvas objects (max needed for split=5 strategy)
- Reuse canvases across all split strategies by resizing
- Set unused canvases to 0×0 to free bitmap memory
- Reduces allocations from ~36 to 6 objects (83% reduction)

Benefits:
- Lower memory footprint
- Reduced GC pressure
- Better performance (resize vs allocate)
- More deterministic memory usage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 09:52:24 +01:00
Knee Cola
09c4cca67b feat: implement horizontal slicing strategy for improved PDF417 detection
Improve barcode detection in documents with graphics and text by implementing
a multi-strategy horizontal slicing approach:

- Split documents into overlapping horizontal sections (5,4,3,2,1, or full)
- Decode each section separately to isolate individual barcodes
- Use 2% overlap between sections to avoid missing boundary codes
- Return the strategy that detects the most barcodes
- Early exit optimization when fewer codes are found

Also fix error handling to use Error objects instead of string literals.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 09:39:58 +01:00
Knee Cola
7ad2497757 Merge branch 'release/2.16.0' into develop 2025-12-20 08:53:25 +01:00
Knee Cola
84b94403c9 Merge branch 'release/2.16.0' 2025-12-20 08:53:23 +01:00
Knee Cola
bacc067c52 2.16.0 2025-12-20 08:53:12 +01:00
Knee Cola
589869551f Merge branch 'feature/zxing-wasm' into develop 2025-12-20 08:49:50 +01:00
Knee Cola
fc544a144b chore: remove legacy PDF417 generation implementation
Delete custom PDF417 generator and renderer now that all components use zxing-wasm/writer. Removes Pdf417Barcode component, generateBarcode, and renderBarcode utilities.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 08:49:11 +01:00
Knee Cola
b8afb2ef0d feat: migrate PDF417 barcode generation to zxing-wasm/writer
Replace custom PDF417 generation (generateBarcode/renderBarcode) with zxing-wasm's writeBarcode for improved reliability and smaller codebase. Updated all 4 components (BillEditForm, PrintPreview, ViewBillCard, ViewLocationCard) to use new Pdf417BarcodeWasm component with ecLevel 5 for error correction.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 08:46:38 +01:00
Knee Cola
9679246f62 chore: remove legacy @zxing packages and old decoder implementation
Remove @zxing/browser and @zxing/library dependencies as they have been fully replaced by zxing-wasm. Delete old barcodeDecoder.ts file which is no longer used after migration to barcodeDecoderWasm.ts.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 01:15:09 +01:00
Knee Cola
fcc1ede4d0 refactor: simplify barcode detection by removing canvas splitting
Remove canvas splitting logic since zxing-wasm natively supports multiple barcode detection with maxNumberOfSymbols parameter. Reduces code by 69 lines and improves performance by requiring only a single decode call per canvas. Set maxNumberOfSymbols to 10 for realistic utility bill use case.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 01:00:46 +01:00
Knee Cola
5b0497891a feat: migrate PDF417 barcode decoder from @zxing/browser to zxing-wasm
Replace @zxing/browser with zxing-wasm for better performance and smaller WebAssembly bundle size (919KB). Added middleware exclusion for .wasm files to prevent i18n routing interference.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-19 18:01:44 +01:00
7467f9d595 @zxing udpated to latest version 2025-12-19 12:55:49 +01:00
0bd9a7b34f Merge branch 'release/2.15.0' 2025-12-19 10:02:41 +01:00
7a09e3c98a Merge branch 'release/2.15.0' into develop 2025-12-19 10:02:41 +01:00
0241645872 2.15.0 2025-12-19 10:01:40 +01:00
c49705433f Merge branch 'feature/fixing-month-location-list-button-layout' into develop 2025-12-19 10:00:40 +01:00
23c3695a89 feat: improve mobile responsiveness across UI components
- Add responsive layout for action buttons (stack vertically on mobile, horizontal on sm+)
- Adjust card max-widths for better mobile display (LocationCard, MultiBillEdit)
- Improve button text sizing with responsive classes (text-sm on mobile, text-xs on sm+)
- Remove width constraints on file inputs and info boxes for full-width mobile layout
- Fine-tune icon positioning for better visual alignment

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-19 09:59:37 +01:00
79c42aa349 Merge branch 'release/2.14.0' 2025-12-18 18:01:08 +01:00
c4eea408fa Merge branch 'release/2.14.0' into develop 2025-12-18 18:01:08 +01:00
82c7c938ba 2.14.0 2025-12-18 18:00:24 +01:00
08ab4646c3 Merge branch 'feature/multi-bill-edit' into develop 2025-12-18 17:58:29 +01:00