Spaces:
Running
Running
Commit History
-
Home: POV tab + DuckDB advanced filterβ
- New POV tab listing one row per (round, player). SQL filter results drop into the same table so the user goes from query to clip. - DuckDB-wasm singleton, hf:// β https URL rewrite, 1000-row cap. - CodeMirror SQL editor with light/dark theme via a Compartment; Cmd/Ctrl+Enter runs the query. - Six preset recipes adapted from the dataset card (AWP 1v1, smoke kill, noscope/wallbang, knife, 5-kill burst, long-distance). - Kill/duel-derived seek times land 2.5s before the event so the lead-up is visible; tick `t` and explicit start_t stay exact. - Match page reads ?t= on first land (one-shot, stripped on internal nav) so deep links from the filter open at the right moment.5a67aa1
-
Match table: add Uploaded column, sort by it by defaultβ
Surface the per-row uploaded_at timestamp so freshly ingested matches float to the top by default. The match-row roll-up takes the latest upload across the series' maps; rounds use their own per-round uploaded_at; the legacy Date (match_date) column stays so users can still browse by when matches were originally played.e66c992
-
Match table: prepend match_id column, truncate event; add stats sectionβ
- New MatchIdCell + matchIdColumn helper, prepended to all 3 column sets (rounds / maps / matches). Match id rendered as monospace tabular-nums. - eventColumn helper with meta.cellClass = max-w-[16rem] so long event names truncate; EventCell wrapper also gets max-w-[16rem]. - match-table.svelte: thread column meta.cellClass / meta.headClass through Table.Cell + Table.Head so per-column widths actually apply. - New StatsSection between the table and BibTeX: * Maps distribution: horizontal bars per CS2 map (count + share %), colored using mapColorClasses for visual tie-in with badges. * Rounds-per-map histogram: 4-round buckets. Restructure layout β bars are direct children of h-32 flex items-end so % heights resolve against a definite parent height; labels render in a separate row below to avoid collapsing to zero in flex-col wrappers.0f00bbc
-
Fix navigation state bugs (round/player URL, map switch, table state on back)β
Bug 1: Map dropdown changed the URL but kept the previous map's video, player positions, etc. Same component instance was reused across `[mapName]` route changes, so $state and onMount didn't re-fire. Replace onMount with an $effect that watches a routeKey derived from data.match.{match_id,map_name}; when it changes, re-read URL params and reset round/player/view + reload previews. Bug 2: Home links omitted defaults so the destination URL wasn't self-contained. matchUrl() now always emits ?round=&player=&view= so reloads, shares, and back-nav stay deterministic. Bug 3: Tab choice + search/sort/pagination/filter were all internal MatchTable state and got lost on back-nav. Lift the state to the home page (one slot per tab) via $bindable props on MatchTable, and use SvelteKit's snapshot API (capture/restore) on +page to persist {view, tables} across history navigation.c92e42a -
Add eslint with eslint-plugin-better-tailwindcssβ
- Replace prettier-plugin-tailwindcss with eslint-plugin-better-tailwindcss (the two disagreed on ordering β keep one source of truth for class order) - ESLint flat config with svelte-eslint-parser + @typescript-eslint/parser, scoped to non-shadcn source. Tailwind v4 entrypoint = src/routes/layout.css - Disable no-unknown-classes (custom Svelte <style> classes like vs-beam) and enforce-canonical-classes (h-full w-full β size-full when parent is asymmetric) - Auto-fix sorts every Tailwind class list and removes a few duplicates - New scripts: bun run lint (prettier + eslint check), bun run lint:fix8899818 -
Nerfies-style home, paper-style match header, prettier setup, dataset READMEβ
- Redesign home page: centered title, author + links, abstract, motivation cards, BibTeX - Slim down match-page header to a minimal back-link + theme toggle - Replace ternary class injections with data-attributes (score, match-info, view mode) - Drop unused shadcn surface (accordion, alert-dialog, breadcrumb, ...) and pnpm artifacts - Expand README with usage, schema, dev/build, viewer internals, BibTeX - Improve <svelte:head> meta tags and robots.txt - Add Prettier with svelte + tailwindcss plugins; format the entire codebase95e3d2a -
Cut first-paint payload: per-icon phosphor imports + WebP radars + non-sticky headerβ
- Switch every `import { X } from 'phosphor-svelte'` barrel to `import XIcon from 'phosphor-svelte/lib/XIcon'`. The barrel form was eagerly bundling all ~9000 icons into a single 8.5MB chunk (1.07MB gzipped); largest chunk now drops to 612KB / 156KB gzip - Convert all 17 radar PNGs to WebP @ q90 (visually indistinguishable, 2.4MB β 584KB total) and update `radarUrl()` accordingly. Modern browser support for WebP is universal so the .png fallback is unnecessary - Drop the sticky page header; round-list aside on the match page now sticks to top-2 (h: 100vh - 1rem) instead of the old 72px header offset15d8696 -
Rich data table on home page, interactive bigger minimap, tactical-reveal player swapβ
- Replace home-page card grid with a TanStack data table (Rounds default / Maps / Matches via Tabs); global search, map filter, sort, pagination, column-visibility, deep-link to specific round - Minimap: bigger badges + wider/fainter vision cones, halo on the active POV, click-to-switch with hover/focus ring (works in single + grid) - Player swap tactical reveal: diagonal beam sweep, corner reticle brackets, edge vignette, HUD chip slide-in (bottom-left), and a clip-path wipe on the freeze-frame so the old POV transitions out instead of snapping - Don't echo currentTime=0 from the freshly-mounted <video> back to the parent β kept the minimap and timeline from flashing to round-start during a swap; also don't drop bufferedRanges91677d6