Commit graph

391 commits

Author SHA1 Message Date
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