3a1da1482c
- FastAPI + SQLite + Alpine.js + HTMX PWA for Bingo Bango Bongo golf scoring - Passwordless magic link auth with email (aiosmtplib) and admin invite system - Real-time score entry via WebSocket with drag-and-drop player ordering - Course management with per-hole par and stroke index - Scorecard with golf score markers (birdie, eagle, bogey, etc.) - Two-step new game form with tee selection per player - Dashboard with stats, live games social stream, and recent game history - Game summary view (read-only scorecard with leaderboard) - User profile pages with win stats - PWA install support with generated PNG icons - Admin panel for users, courses, games, and invitations Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
18 lines
831 B
HTML
18 lines
831 B
HTML
{# Crop modal — requires avatarUpload() Alpine component on a parent element #}
|
|
<div x-show="showModal" x-cloak class="crop-overlay" @click.self="cancelCrop()">
|
|
<div class="crop-modal">
|
|
<div class="crop-modal-header">
|
|
<span>Position your photo</span>
|
|
<button type="button" class="icon-btn" @click="cancelCrop()">✕</button>
|
|
</div>
|
|
<div class="crop-container">
|
|
<img x-ref="cropImg" :src="previewUrl" style="max-width:100%;">
|
|
</div>
|
|
<p class="crop-hint">Pinch or scroll to zoom · drag to reposition</p>
|
|
<div class="crop-modal-actions">
|
|
<button type="button" class="btn btn-ghost" style="width:auto;" @click="cancelCrop()">Cancel</button>
|
|
<button type="button" class="btn btn-primary" style="width:auto;" @click="confirmCrop()">Use photo</button>
|
|
</div>
|
|
</div>
|
|
</div>
|