- Install driver.js package for lightweight product tours
- Create GuidedTour component with bilingual tour steps (Chinese/English)
- Create TourPromptModal to ask users if they want a tour after welcome
- Add data-tour attributes to Toolbar, FilePanel, PedigreeCanvas, PropertyPanel
- Tour covers: file operations, adding persons, canvas usage, relationships,
editing properties, and exporting
Tour flow:
1. First visit: Welcome Modal → Tour Prompt Modal → Start tour or skip
2. Subsequent visits: No modals shown
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Major changes:
- Implement intelligent collision detection and resolution for complex
family structures (divorce/remarriage scenarios)
- Rewrite generation assignment with constraint propagation algorithm
to ensure spouses are always in the same generation
- Add FamilyUnit concept for grouping parents and children
- Add second line label support with custom text, birth year, death year,
and age display options
Files modified:
- PedigreeLayout.ts: Add collision detection, family units, and improved
generation assignment
- types.ts: Add FamilyUnit interface and extend PersonMetadata
- useD3Pedigree.ts: Render second line labels
- PropertyPanel.tsx: Add UI for editing second line labels
- PropertyPanel.module.css: Add styles for inline form groups
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Move label closer to symbol (y = symbolSize/2 + 15)
- Increase childDropHeight from 30 to 50 to place connection lines below labels
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Features:
- Display welcome popup on first visit
- Auto-detect browser language (Chinese/English)
- Show author motivation (Usher syndrome research support)
- Privacy policy: no data collection, browser-only operations
- Use localStorage to remember dismissal
- Responsive design for mobile devices
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Auto-deploy on push to main branch
- Manual trigger via workflow_dispatch
- Uses Node.js 20, npm ci for reproducible builds
- Deploys dist/ folder to GitHub Pages
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create README.zh-TW.md with full Traditional Chinese translation
- Keep professional terms (NSGC, PED, Phenotype, etc.) in English
- Add language switching links at the top of both README files
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Fixes:
- Connection lines now start directly from the spouse line (parentY)
instead of below the parent symbols (parentY + halfSymbol), ensuring
lines connect properly without gaps
- PED export now uses metadata.label instead of internal ID, so user-
defined labels are preserved in exported files. Parent references
(fatherId, motherId) also use the label mapping for consistency.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Features:
- Add "Add Child" buttons (Male/Female/Unknown) in RelationshipPanel
to create children directly from a selected relationship
- Add "Auto Align" button in toolbar to reset all element positions
- Add Delete/Backspace keyboard shortcut to delete selected elements
- Add text labels to all toolbar buttons for better discoverability
Documentation:
- Update README with Node.js installation instructions for beginners
- Add npm install step for first-time setup
- Document keyboard shortcuts and relationship editing features
- Add Windows-specific instructions
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>