Core Tournament Components
TournamentForm
Primary component for creating and editing tournaments with full match options integration. Location:components/tournament/TournamentForm.vue
Key Features:
- Tournament name and description
- Start date/time picker with calendar
- Auto-start configuration
- Discord notifications toggle
- Full match options (map pool, veto, coaches, etc.)
- Custom map pool support
tournament(Object, optional): Existing tournament for editing
updated: Emitted after successful create/update
TournamentStage
Wrapper component that routes to appropriate bracket viewer based on stage type. Location:components/tournament/TournamentStage.vue
Key Features:
- Automatic format detection (Swiss vs Bracket)
- Group support (A, B, C, etc.)
- Loser bracket handling for double elimination
- Dynamic round label generation
stage(Object, required): Stage object with type, groups, bracketstournament(Object, required): Parent tournament objectisFinalStage(Boolean, required): Whether this is the final stage
TournamentBracketViewer
Advanced bracket visualization with zoom, pan, minimap, and fullscreen support. Location:components/tournament/TournamentBracketViewer.vue
Key Features:
- Interactive pan and zoom (Ctrl+Scroll or buttons)
- Minimap navigation for large brackets
- Fullscreen mode
- Momentum scrolling with smooth deceleration
- SVG connecting lines between matches
- Winner and loser bracket connections
- Responsive height based on number of groups
- Touch support for mobile devices
stage(Object, required): Tournament stagetournament(Object, required): Tournament objectrounds(Map, required): Brackets grouped by round number (Map of number to Array)isFinalStage(Boolean, default: false): Is this the final stageisLoserBracket(Boolean, default: false): Is this a loser brackettotalGroups(Number, default: 1): Total number of groupsstageType(String, default: null): Stage type enum value
- Zoom In/Out: Click buttons or Ctrl+Scroll
- Reset Zoom: Click percentage button
- Pan: Click and drag on bracket
- Minimap: Click or drag to navigate (shows when 4+ rounds)
- Fullscreen: Toggle fullscreen mode
SwissBracketViewer
Specialized viewer for Swiss format tournaments showing record-based grouping. Location:components/tournament/SwissBracketViewer.vue
Key Features:
- Record pool grouping (3-0, 2-1, 1-2, 0-3)
- Round progression display
- Automatic bracket connections
- Team record tracking
TournamentMatch
Displays a single match within a tournament bracket. Location:components/tournament/TournamentMatch.vue
Key Features:
- Team names and seeds
- Current score display
- Match status indicator
- Schedule dialog trigger
- Winner highlighting
- TBD team placeholders
stage(Object, required)tournament(Object, required)round(Number, required)brackets(Array, required): Brackets in this round
schedule-bracket: Emitted when schedule button clicked
Team Management Components
TournamentTeam
Displays and manages a tournament team roster. Location:components/tournament/TournamentTeam.vue
Key Features:
- Team name and logo
- Player roster with roles
- Captain indicator
- Invite players
- Remove players (captain/organizer)
- Leave team
TournamentTeamMemberRow
Single team member row with actions. Location:components/tournament/TournamentTeamMemberRow.vue
Features:
- Player display with stats
- Role assignment
- Promote to captain
- Remove from team
TournamentTeamInvite
Invite players to join a tournament team. Location:components/tournament/TournamentTeamInvite.vue
Features:
- Player search
- Bulk invitations
- Pending invite list
Tournament Administration
TournamentStageBuilder
Admin interface to create and configure tournament stages. Location:components/tournament/TournamentStageBuilder.vue
Key Features:
- Stage type selection
- Number of groups configuration
- Team advancement rules
- Best-of configuration per round
- Stage ordering
TournamentStageForm
Form for creating/editing a single tournament stage. Location:components/tournament/TournamentStageForm.vue
Form Fields:
StageRoundBestOfConfig
Configure best-of settings per round in a stage. Location:components/tournament/StageRoundBestOfConfig.vue
Usage Example:
- Per-round best-of selection (BO1, BO3, BO5)
- Visual round progression
- Bulk configuration
Tournament Display Components
TournamentTableRow
Single tournament row in browse/listing tables. Location:components/tournament/TournamentTableRow.vue
Displays:
- Tournament name and description
- Start date/time
- Team count
- Status badge
- Join/View buttons
SimpleTournamentDisplay
Compact tournament card for listings. Location:components/tournament/SimpleTournamentDisplay.vue
Features:
- Tournament poster image
- Name and date
- Quick actions
TournamentResults
Final tournament results and placements. Location:components/tournament/TournamentResults.vue
Displays:
- Final standings (1st, 2nd, 3rd, etc.)
- Team names and rosters
- Prize information (if configured)
- Match history
RoundRobinResults
Results table for round-robin stages. Location:components/tournament/RoundRobinResults.vue
Features:
- Wins/Losses/Ties table
- Head-to-head records
- Tiebreaker information
- Points calculation
Tournament Dialogs
BracketScheduleDialog
Dialog for scheduling a bracket match. Location:components/tournament/BracketScheduleDialog.vue
Usage Example:
open(Boolean): Dialog visibilitybracket(Object): Bracket to schedule
update:open: Emits when dialog should close
TournamentJoinForm
Dialog for joining a tournament (create team or join existing). Location:components/tournament/TournamentJoinForm.vue
Features:
- Create new team option
- Join existing team with invite code
- Team name validation
Tournament Notifications
TournamentNotifications
Real-time tournament notifications and updates. Location:components/tournament/TournamentNotifications.vue
Features:
- Match scheduled notifications
- Match starting soon alerts
- Tournament stage changes
- Team invitation notifications
- Advancement notifications
Organizer Components
TournamentOrganizers
Manage tournament organizers and permissions. Location:components/tournament/TournamentOrganizers.vue
Features:
- Add/remove organizers
- Permission levels
- Organizer list
TournamentOrganizerRow
Single organizer row with actions. Location:components/tournament/TournamentOrganizerRow.vue
TournamentServerRow
Assigned server row for tournament matches. Location:components/tournament/TournamentServerRow.vue
Round Label Utilities
The tournament components use intelligent round labeling:- Grand Finals
- Finals
- Semi Finals
- Quarter Finals
- Round of 16/32/64
- Winners/Losers Round X
- Round X (generic)
Tournament Data Flow
Tournament Structure
GraphQL Integration
Tournament components use subscriptions for real-time updates:Bracket Algorithms
The bracket viewer implements sophisticated algorithms:Connecting Lines
SVG paths connect parent and child brackets:Zoom and Pan
Transform-based zoom with scroll position preservation:Related Components
Match Components
Individual match management and display
UI Components
Base UI components and design system
Next Steps
Tournament API
GraphQL mutations and queries for tournaments
Creating Tournaments
Learn how to configure tournament stages