13a3905776
add batch weapon/summon methods to collection adapter and mutations
2025-12-03 07:14:30 -08:00
a2e0015a85
minor cleanup: remove unused import, add font-tiny variable
2025-12-02 17:19:49 -08:00
5e5d9e93ec
refactor CollectionCharacterPane: use DetailSections, fix reactivity on char switch
2025-12-02 17:19:45 -08:00
0f46960de6
add uncap level editing to CharacterEditPane
2025-12-02 17:19:41 -08:00
2a4789c72a
add empty state support to DetailsSection
2025-12-02 17:19:38 -08:00
000cfd2332
add setAction/clearAction to sidebar store for dynamic header buttons
2025-12-02 17:19:34 -08:00
cc2b2c1f95
convert collection filters from buttons to dropdowns
2025-12-02 17:19:31 -08:00
9f18ff0a4d
add small size variant to segmented control
2025-12-02 17:19:22 -08:00
6f21018bca
add MultiSelect component, refactor Select for consistency
2025-12-02 17:19:19 -08:00
d053a9377e
add race/proficiency/gender to CollectionFilters type
2025-12-02 15:32:11 -08:00
4bbe2ed188
simplify collection page to single code path
...
- use unified api for all users (no owner/viewer branching)
- remove client-side filtering (api handles it)
- pass userId to AddToCollectionModal
2025-12-02 15:31:58 -08:00
b8a48771dd
update collection adapter/queries for unified api
...
- add userId param to list methods
- remove public collection methods (now unified)
- update query keys to include userId
2025-12-02 15:31:46 -08:00
35b0560749
add ProfileHeader component, add collection link to profile nav
2025-12-02 15:07:01 -08:00
9ed505623e
fix collection page grid: use correct 280x160 aspect ratio for character images
2025-12-02 15:06:56 -08:00
a6a0a38d75
fix collection modal search: use query factory pattern, remove broken debounce
2025-12-02 15:06:47 -08:00
491026399f
fix search api: wrap body in search key, use X-Per-Page header, 50 per page
2025-12-02 15:06:38 -08:00
7808c75452
fix cache key generation for POST requests with object bodies
2025-12-02 15:06:33 -08:00
3b071a1864
fix collection page width to match teams page
...
Remove explicit max-width: 1400px so the collection page uses the
default --main-max-width (820px) like the teams page.
2025-12-02 11:46:38 -08:00
a664d41e63
fix character card aspect ratio to match actual image dimensions
...
Character grid images are 280x160 (7:4 ratio, wider than tall).
The previous ratio was inverted. Now using 100px width with correct
aspect-ratio: 280/160.
2025-12-02 11:35:00 -08:00
408f729976
switch modal results grid to flexbox for better layout
...
Use flexbox with fixed-width cards (70px) instead of CSS Grid. This
prevents excessive vertical spacing when using tall aspect ratio items.
2025-12-02 11:32:04 -08:00
7de75ec8d0
fix character card aspect ratio and duplicate key error
...
- Use proper 16:33 aspect ratio for character cards instead of square
- Change object-fit from cover to contain to prevent cropping
- Deduplicate search results across pages to prevent duplicate key errors
2025-12-02 11:31:09 -08:00
d107d56f82
fix collection nav link to point to user's collection
...
The Collection nav link now points to /{username}/collection/characters
instead of /collection. Also updates isNavSelected to properly detect
when on any collection page.
2025-12-02 11:29:09 -08:00
2aa961b5e6
refactor EditCharacterSidebar to use shared CharacterEditPane
...
Reduces ~240 lines to ~85 lines by using the shared CharacterEditPane
component for edit controls. Both party grid and collection character
editing now use the same underlying UI component.
2025-12-02 11:26:23 -08:00
dea784780a
add collection page route and character pane components
...
- Add collection route structure at [username]/collection/characters
- Create CharacterEditPane as shared component for character customizations
- Create CollectionCharacterPane with Info and My Collection tabs
- Add character grid with filters and infinite scroll
- Fix CollectionFilters a11y warnings
2025-12-02 09:43:31 -08:00
a9de4a60c0
add AddToCollectionModal and SelectableCharacterCard
...
Large modal for batch-selecting characters to add to collection.
Features server-side search, filtering, multi-select with visual
feedback, and "X selected" link to filter to selection only.
2025-12-02 09:32:28 -08:00
8f28ad8d8f
add Dialog large size variant and CollectionFilters
...
Dialog now supports size='large' for 90vw/85vh modals.
CollectionFilters provides reusable filter controls for
element, rarity, season, series, race, proficiency, gender.
2025-12-02 09:30:31 -08:00
60ac5d4ab2
add collection API layer
...
Types, adapter, queries, and mutations for managing user collections
(characters, weapons, summons, job accessories). Supports both private
collection management and public collection viewing with privacy.
2025-12-02 09:28:22 -08:00
51db7f7604
remove redundant settings page
2025-12-02 08:52:08 -08:00
8912696a08
add element selector to user settings modal
2025-12-02 08:52:02 -08:00
be92eba4aa
fix user settings API to match rails backend params
2025-12-02 08:51:57 -08:00
919eee8cde
replace Goalking with AGrot font
2025-12-02 08:39:32 -08:00
13f78e4bf8
switch to dynamic font loading from env
...
loads fonts from AWS S3 when PUBLIC_SIERO_IMG_URL is set,
otherwise falls back to local /fonts directory
2025-12-02 08:39:28 -08:00
7471901fee
fix userAdapter instantiation in auth endpoints
2025-12-02 08:11:16 -08:00
579691aeef
fix secure cookie flag behind reverse proxy
2025-12-02 07:54:36 -08:00
513c7660f5
add svelte-sonner for toast notifications
2025-12-02 06:54:12 -08:00
1933f3d8e9
add new fields to batch import pages
2025-12-02 05:26:10 -08:00
23ae7f70ba
add promotions to summon database views
2025-12-02 05:25:56 -08:00
8c45c21939
add promotions to weapon database views
2025-12-02 05:25:49 -08:00
cf694bb1ce
add season, series, gacha_available, recruited_by to character database views
2025-12-02 05:25:43 -08:00
96f040a91b
add CheckboxGroup component for multiselect fields
2025-12-02 05:25:35 -08:00
f26d3e3883
add season, series, promotions filters to search adapter
2025-12-02 05:25:29 -08:00
67b87c7d1b
add season, series, promotions to entity types
2025-12-02 05:25:23 -08:00
b6db09bcc4
add formal promotion to enums
2025-12-02 05:25:10 -08:00
afb81e0f55
add nicknames, links sections to entity detail pages; show recruits in weapon metadata
2025-12-02 02:15:03 -08:00
4fdc859941
add scroll-triggered gradient to nav background
2025-12-02 01:45:16 -08:00
c8c076e707
add calendar icon for DatePicker
2025-12-02 01:37:38 -08:00
69395672af
move dates section before skills/auras on detail pages
2025-12-02 01:28:23 -08:00
28aa547c89
fix: summon granblueId binding in edit mode
2025-12-02 01:28:16 -08:00
6683a9e53a
import pages: add wiki_raw to payload, misc fixes
2025-12-02 01:25:28 -08:00
5edcf6473a
cleanup: remove unused CharacterImagesSection, tweak metadata
2025-12-02 01:25:23 -08:00
38762c8946
add image download buttons to detail scaffold
2025-12-02 01:25:18 -08:00
2771e202cb
add CopyableText component for raw data tab
2025-12-02 01:25:14 -08:00
dea02ef359
fix ougiRatio display - access nested object properties
2025-12-02 01:24:57 -08:00
1b8232ed5a
show dates on entity detail pages
2025-12-02 01:24:53 -08:00
6f1f0c60a2
add date fields to entity edit pages
2025-12-02 01:24:48 -08:00
da26645df0
add DatePicker component with type='date' support
2025-12-02 01:24:36 -08:00
9ace2eb1e2
fix type errors in import pages
2025-12-02 00:08:55 -08:00
64e50e1b50
add batch import button to database index pages
2025-12-02 00:08:47 -08:00
2dd643e92e
add batch import pages for characters/weapons/summons
2025-12-02 00:00:41 -08:00
1ea0eee86c
add suggestion props to all database section components
2025-12-01 23:52:06 -08:00
bba78d5781
feat: add suggestion UI components for batch import
...
- SuggestionBadge: sparkle icon with tooltip for accept/dismiss actions
- SuggestionDetailItem: detail item wrapper with suggestion badge support
- TabbedEntitySelector: entity image grid for batch selection
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 23:43:56 -08:00
b28ba551de
add batch preview adapter methods
2025-12-01 23:40:55 -08:00
c8c4693e08
Switch font from Goalking to AGrot
...
- Import fonts.css in app.html
- Update --font-family CSS variable to use AGrot
- Adjust $bold weight from 600 to 700 to match AGrot's available weights
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 13:52:55 -08:00
7a639effaa
database: add entity edit page scaffolds
2025-12-01 09:57:53 -08:00
1cbcd91f94
entity adapter: add raw data fetch methods
2025-12-01 09:54:39 -08:00
be75fcbcbd
database detail pages: add Info/Images/Raw tabs
2025-12-01 09:54:35 -08:00
395a5c166f
SegmentedControl: add size prop (default/small)
2025-12-01 09:54:06 -08:00
7a57680ec1
use ElementLabel/ProficiencyLabel, show all fields in detail pages
2025-12-01 08:35:34 -08:00
371cb7d102
fix: use camelCase granblueId in view mode
2025-12-01 08:35:30 -08:00
20705cc3b2
SegmentedControl: only fire onValueChange on actual changes
...
Prevents onValueChange from firing during initialization, which
caused pushState errors before router was ready.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 05:02:56 -08:00
83b18645c8
fix: guard pushState until router is initialized
2025-12-01 04:59:16 -08:00
4fda863339
fix: use pushState + popstate for instant tab switching
2025-12-01 04:57:22 -08:00
21bda28910
fix: always use explicit tab path in URL
2025-12-01 04:36:17 -08:00
5063e8e73c
fix: use goto() instead of pushState for tab URL sync
2025-12-01 04:33:28 -08:00
af27f0fbbc
add URL-based tab routing with pushState sync
2025-12-01 04:29:21 -08:00
5b0d41a020
move teams/[id] route into [[tab=tab]] optional segment
2025-12-01 04:27:42 -08:00
6ab74b43b1
add tab param matcher for URL routing
2025-12-01 04:27:01 -08:00
a9dcbd18f8
DetailItem: adjust padding and remove hover styles
2025-12-01 04:11:22 -08:00
ef534164f0
database/[id]: add page wrapper styles
2025-12-01 04:11:11 -08:00
3df5564772
database/new: remove newSeries, use contained TagInput
2025-12-01 04:11:07 -08:00
068d9f0991
weapons: auto-update max level/skill based on uncap
2025-12-01 04:10:45 -08:00
dea8a3bc24
weapons: move extra/limit/ax to taxonomy, fix uncap stars
2025-12-01 04:10:41 -08:00
c2b2de9e96
TagInput: add contained prop with max-width
2025-12-01 04:10:36 -08:00
6409de0c29
feat(weapons): add edit mode to weapon detail page
...
- Add edit mode state management (editMode, editData, isSaving)
- Use DetailScaffold wrapper for consistent edit UI
- Import and integrate section components:
- WeaponMetadataSection, WeaponUncapSection
- WeaponTaxonomySection, WeaponStatsSection
- Add Nicknames, Dates, Links, Character (recruits) sections in edit mode
- Connect saveChanges to entityAdapter.updateWeapon()
- Invalidate TanStack Query cache after successful save
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 03:29:47 -08:00
fda2b3188f
feat(summons): add edit mode to summon detail page
...
- Add edit mode state management (editMode, editData, isSaving)
- Use DetailScaffold wrapper for consistent edit UI
- Import and integrate section components:
- SummonMetadataSection, SummonUncapSection
- SummonTaxonomySection, SummonStatsSection
- Add Nicknames, Dates, Links sections in edit mode
- Connect saveChanges to entityAdapter.updateSummon()
- Invalidate TanStack Query cache after successful save
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 03:28:01 -08:00
3e23585ee7
characters: connect edit page to real API
...
Replace simulated save with actual API call to updateCharacter().
Invalidates TanStack Query cache on successful update.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 03:25:14 -08:00
179cc13725
adapters: add update methods for characters, weapons, and summons
...
Add updateCharacter(), updateSummon(), and updateWeapon() methods to
entity adapter. Each method uses PATCH and clears the entity cache
after successful update.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 03:24:15 -08:00
7a86790670
weapons: add recruits character search field
...
Add CharacterTypeahead component for async character search using Svelecte.
The component debounces input and queries the search API for matching
characters. Added recruits field to weapon creation page.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 03:17:17 -08:00
0d0163edec
characters: add nicknames to creation page
...
Backfill nicknames support to character creation page:
- Add nicknamesEn and nicknamesJp fields to editData
- Import and use TagInput component for nickname entry
- Add nicknames section to form UI
- Update CreateCharacterPayload interface with nickname fields
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 03:10:31 -08:00
fdc50906dc
weapons: add creation page and update section components
...
Create /database/weapons/new route with full weapon creation form:
- Granblue ID validation
- Basic info (name, rarity)
- Uncap settings with cascade logic (Transcendence → ULB → FLB)
- Taxonomy (element, proficiency, series, new_series)
- Stats (HP/ATK with FLB/ULB variants)
- Caps (max_level, max_skill_level, max_awakening_level)
- Nicknames via TagInput
- Dates and external links
Update section components:
- WeaponUncapSection: Add cascade logic, extra/limit/ax fields
- WeaponTaxonomySection: Add series dropdowns with options
- WeaponStatsSection: Add ULB stats, caps section
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 03:08:52 -08:00
d1c40ee38d
use dynamic image path for auth background
2025-12-01 03:08:11 -08:00
901fd5a157
weapons: add frontend adapter methods and interfaces
...
Add weapon creation infrastructure to entity adapter:
- WeaponValidationResult interface for validation response
- CreateWeaponPayload interface for weapon creation
- WeaponDownloadStatus interface for download status
- validateWeaponGranblueId() method
- createWeapon() method
- downloadWeaponImages() method
- getWeaponDownloadStatus() method
Also add getWeaponSeriesOptions() utility function.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 03:06:04 -08:00
1fa6429749
summons: add creation page and section components
...
- /database/summons/new route with full form
- UncapSection with FLB/ULB/Transcendence cascade
- TaxonomySection with element and series
- StatsSection with HP/ATK at all uncap levels
- Nicknames via TagInput component
- getSummonMaxUncapLevel() utility function
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 03:00:58 -08:00
4973643ee6
entity adapter: add summon creation methods
...
- SummonValidationResult, CreateSummonPayload, SummonDownloadStatus types
- validateSummonGranblueId(), createSummon(), downloadSummonImages(), getSummonDownloadStatus()
- Matches character creation pattern
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 02:44:45 -08:00
fbe43490d7
ui: add TagInput component for nicknames
...
- Chip/tag style input for string arrays
- Add/remove tags with Enter or comma
- Backspace removes last tag when input empty
- Supports label, error, maxTags, disabled
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 02:43:44 -08:00
39b1ed9f64
nav: context-aware New button for database routes
...
- Show "New character/weapon/summon" pill button on database pages
- Keep existing circular + button for team creation elsewhere
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 02:27:47 -08:00
43c291327c
components: use centralized image URL helpers
2025-12-01 02:26:29 -08:00
e9463ae5ba
api config: add getImageBaseUrl, fix api path for prod/dev
2025-12-01 02:26:16 -08:00
19a2b9e77f
utils: use getBasePath for image URLs
2025-12-01 02:26:08 -08:00
220432b40a
entity adapter: expand CreateCharacterPayload with all fields
2025-12-01 02:25:52 -08:00
754d5a633c
new character page: add all fields, uncap cascade logic, validation
2025-12-01 02:25:46 -08:00
28ad2fb37e
DetailItem: add sublabel, width, onchange props; Input: add validation state
2025-12-01 02:25:41 -08:00
e9ba90d656
add image download section to character edit page
...
- new CharacterImagesSection component
- download button with progress polling
- force re-download option
- status display with progress bar
2025-12-01 00:57:03 -08:00
5f5b579ff0
add /database/characters/new page + API methods
...
- new page with granblue_id validation
- role check (>= 7) on server
- API methods: validate, create, download images
- permanent edit mode with create button
2025-12-01 00:55:53 -08:00
b58cbbe72f
refactor character edit page to use section components
...
- use DetailScaffold wrapper
- extract metadata, uncap, taxonomy, stats sections
- standardize field naming (camelCase)
- add element-themed checkboxes
2025-12-01 00:52:12 -08:00
817084cee5
teams/new: fix css leak on prefetch, remove open search button
2025-12-01 00:22:52 -08:00
1024e155c3
fix button: no translate on circular, fix elemental hover colors
2025-12-01 00:22:52 -08:00
a262388fc7
fix api path for prod (/v1) vs dev (/api/v1)
2025-11-30 23:34:32 -08:00
e50ba8ffad
Fix auth titles
2025-11-30 23:22:04 -08:00
07f57d20fb
routes: redirect root to /teams/explore
2025-11-30 23:16:07 -08:00
d412e760ab
nav: show register/login when logged out, move guides/collection to menu
2025-11-30 23:16:04 -08:00
7e02884941
input: add no1password prop, tweak counter styling
2025-11-30 23:16:00 -08:00
de616755f5
auth: use placeholders instead of labels, add username note
2025-11-30 23:15:56 -08:00
e3e9ccdd6c
auth: add port-breeze background and back-to-home link
2025-11-30 23:15:52 -08:00
4b96633f69
simplify root layout for route group structure
2025-11-30 22:29:08 -08:00
f79e3f2a10
update auth store redirect to /auth/login
2025-11-30 22:29:08 -08:00
a1bcb0e523
update Navigation login link to /auth/login
2025-11-30 22:29:08 -08:00
0f50d9fd73
remove old login route (moved to /auth/login)
2025-11-30 22:28:59 -08:00
9ace6f0862
remove old routes (moved to app group)
2025-11-30 22:28:59 -08:00
b78ee7ca20
move routes to (app) route group
2025-11-30 22:28:17 -08:00
3498b7d966
add signup redirect to register
2025-11-30 22:28:13 -08:00
93efc9946a
add registration page with validation
2025-11-30 22:26:32 -08:00
fd10dcfb15
add login page with contained inputs
2025-11-30 22:26:32 -08:00
762d5c0fc0
add auth layout with centered container
2025-11-30 22:26:32 -08:00
06dd832ada
add AuthCard component for auth pages
2025-11-30 22:26:25 -08:00
33fa9f9c9c
reset fieldset border/padding/margin in Input component
2025-11-30 22:26:25 -08:00
d2cb4c5052
routes: update layout and teams page
2025-11-30 20:06:49 -08:00
af659b9760
components: update party and character components
2025-11-30 20:06:44 -08:00
c3ed9b2885
api: update entity adapter and queries
2025-11-30 20:06:40 -08:00
db5bfe9f7f
sidebar: remove unused modification components
2025-11-30 20:06:36 -08:00
a858877545
sidebar: refactor details components
2025-11-30 20:06:31 -08:00
47885b1429
sidebar: wire up edit sidebars in openDetailsSidebar feature
2025-11-30 20:06:26 -08:00
8ac9dea2d3
sidebar: add EditCharacterSidebar and EditWeaponSidebar
2025-11-30 20:06:21 -08:00
4f132f9947
sidebar: add edit form components for character/weapon modifications
2025-11-30 20:06:15 -08:00
ad10d3fe73
stores: add partyStore for character/weapon updates
2025-11-30 20:06:09 -08:00
393bbdbcb0
sidebar: add MasteryRow component for rings/earring selects
2025-11-30 20:06:04 -08:00
5784b9638d
sidebar: add DetailRow and DetailsSection components
2025-11-30 20:05:59 -08:00
c0dc3d0bc1
utils: update grid helpers and modification utilities
2025-11-30 20:05:54 -08:00
8bfa31d925
types: add NO_AWAKENING sentinel and update entity types
2025-11-30 20:05:50 -08:00
c1974c1d40
data: add ax skill definitions
2025-11-30 20:05:46 -08:00
f815ca4f30
ui: update Input, Select, Button, Sidebar components
2025-11-30 20:05:42 -08:00
5df563198b
fix: render related characters
2025-11-30 14:57:43 -08:00
d5a22baa0a
use Checkbox component in database edit pages with element theming
2025-11-30 13:59:45 -08:00
b8ad70229d
fix database dropdown item rendering
2025-11-30 13:59:40 -08:00
3007aadbb0
sync pictureData with available profile images
2025-11-30 06:02:56 -08:00
7406f80edd
use contained selects in settings modal
2025-11-30 06:02:56 -08:00
92e93309bf
add typeahead component
2025-11-30 06:02:56 -08:00
66b03c9108
fix dropdown trigger props, add onClose alias to sidebar
2025-11-30 06:02:50 -08:00
fcc0a884f5
fix icon color inheritance, tweak select chevron
2025-11-30 06:02:50 -08:00
bc67d22c4b
checkbox and switch theming with hover states
2025-11-30 06:02:50 -08:00