Add full SkinsPins application
- 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>
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
{# 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>
|
||||
Reference in New Issue
Block a user