Commit graph

476 commits

Author SHA1 Message Date
a29cdbb454 fix cache key to include query params
was generating same cache key for /artifact_skills and
/artifact_skills?group=group_i causing filtered requests
to return cached unfiltered results
2025-12-03 17:13:54 -08:00
644c596173 fix Icon import path in DisclosureRow 2025-12-03 16:33:47 -08:00
122b07e827 fix edit sidebars to use pane stack push/pop 2025-12-03 16:33:16 -08:00
a02db87988 fix @const placement in PaneStack 2025-12-03 16:28:26 -08:00
6606d8c43d add artifact internationalization strings (en/ja) 2025-12-03 16:24:45 -08:00
e502c8128d add artifact validation utilities 2025-12-03 16:23:58 -08:00
2b572d07a7 add artifact selection components for pane stack 2025-12-03 16:22:33 -08:00
e7354479f7 add artifact section to TeamView sidebar 2025-12-03 16:20:31 -08:00
ef22bcb6c1 add artifact indicator icon next to character name 2025-12-03 16:18:48 -08:00
52660f3fb1 add collection artifact feature (cards, rows, pane, route)
- CollectionArtifactCard for grid view
- CollectionArtifactRow for list view
- CollectionArtifactPane for sidebar details
- artifacts collection page with filters and infinite scroll
- getArtifactImage util
- update collection layout for artifacts tab
2025-12-03 16:17:15 -08:00
3a41adc4f2 add artifact UI components for phase 4
- DisclosureRow: iOS-style disclosure row for navigation
- ArtifactSkillRow: shows skill with modifiers and level/value controls
- ArtifactModifierList: selectable list of skills by polarity
- ArtifactGradeDisplay: shows letter grade, breakdown, recommendation
- ArtifactEditPane: main edit pane combining base props, skills, grade
2025-12-03 16:08:17 -08:00
ab1243190b add artifact queries and mutations
- artifactQueries: reference data (cached 1hr), collection infinite, skills by slot
- artifactKeys: cache invalidation helpers
- mutations: collection CRUD, grid CRUD, equip, and grading
2025-12-03 15:59:19 -08:00
1e708e1064 add artifact adapter for API communication
covers reference data, collection artifacts, grid artifacts,
and stateless grading endpoints.
2025-12-03 15:57:29 -08:00
d907e32d12 integrate pane stack into sidebar store
sidebar now uses PaneStackStore internally - openWithComponent
creates root pane, and child components can push/pop via context.
simplified Sidebar.svelte to render PaneStack when stack has items.
2025-12-03 15:55:47 -08:00
096214bc52 add artifact types and add artifact field to GridCharacter 2025-12-03 15:49:16 -08:00
84e1fb4a8a add pane stack store and component for ios-style navigation 2025-12-03 15:47:34 -08:00
e3cc2df45c fix missing promotions field in weapon edit data 2025-12-03 12:36:02 -08:00
b2a606554f simplify weapon series page to read-only list with styled table 2025-12-03 12:33:53 -08:00
108b662e33 make weapon series flags non-optional in type 2025-12-03 12:33:46 -08:00
ab4c8058f4 add ... dropdown to database nav with weapon series link 2025-12-03 12:33:42 -08:00
0259a8ad68 update test mocks to use WeaponSeriesRef 2025-12-03 11:59:40 -08:00
2e2574f749 add weapon series admin CRUD page 2025-12-03 11:59:36 -08:00
166ef8ff6f update conflict dialog and database pages for series objects 2025-12-03 11:59:31 -08:00
139e602808 fetch weapon series from API in collection filters 2025-12-03 11:59:26 -08:00
a251240331 complete handleSave for weapon modifiers, update key select to use slug 2025-12-03 11:59:16 -08:00
c5f6963ca7 update search and party schemas for weapon series objects 2025-12-03 11:59:12 -08:00
23a2481190 update entity adapter to use seriesSlug, add weapon series CRUD methods 2025-12-03 11:59:07 -08:00
745c162529 remove legacy integer series fallbacks from utils 2025-12-03 11:59:02 -08:00
a8d97479ff update Weapon.series to use WeaponSeriesRef, remove unused type files 2025-12-03 11:58:58 -08:00
58d8899075 add WeaponSeriesRef type definitions 2025-12-03 11:58:54 -08:00
a580f179e1 clean up error handling in add modal 2025-12-03 10:51:17 -08:00
a4572df406 refactor characters page to use card/row components
- use CollectionCharacterCard and CollectionCharacterRow
- add grid/list view toggle with viewMode store
2025-12-03 10:51:13 -08:00
5db9181afc left-align uncap indicators in cells 2025-12-03 10:50:41 -08:00
f54c5f012e improve collection row layouts
- wrap thumbnail + name in core-info container
- use layout tokens for border radius
- add proficiency column to weapon rows
- wider thumbnails, consistent sizing
2025-12-03 10:50:36 -08:00
6d8e1849eb add viewMode store for grid/list toggle persistence 2025-12-03 10:50:29 -08:00
b7fdde2025 add list cell background color tokens 2025-12-03 10:50:25 -08:00
e0a41102fd fix infinite scroll pagination in collection queries
use pageParam instead of response.page (which was undefined)
2025-12-03 09:03:52 -08:00
debf502a6c use batch endpoints for collection add operations
single request instead of one per item
2025-12-03 09:03:47 -08:00
c37c4f0101 fix request cancellation issue in batch add weapons/summons
The addWeapons/addSummons methods were using Promise.all with Array.fill()
which created arrays where all elements referenced the same object. This
caused the request deduplication logic in BaseAdapter to cancel previous
requests since they all had the same body/requestId.

Fix:
- Use Array.from() with spread to create unique object instances
- Execute requests sequentially to avoid deduplication conflicts
- Improve error handling in AddToCollectionModal to filter CancelledErrors
2025-12-03 07:37:03 -08:00
d9dd8f58ee fix Svelte 5 event modifier syntax in selectable components
Replace deprecated onclick|stopPropagation with onclick={(e) => e.stopPropagation()}
2025-12-03 07:31:32 -08:00
d11362ff57 add weapons and summons collection routes with layout updates
- Create weapons route with page, server load, and grid/list views
- Create summons route with page, server load, and grid/list views
- Enable weapons/summons tabs in collection layout (remove disabled)
- Add dynamic "Add" button text based on active entity type
- Pass entityType to AddToCollectionModal based on current route
2025-12-03 07:29:38 -08:00
60947a7911 add detail and edit panes for weapon/summon collections
- WeaponEditPane: edit component with uncap, transcendence, element,
  weapon keys, AX skills, and awakening support
- SummonEditPane: simple edit component with uncap and transcendence
- CollectionWeaponPane: full detail pane with Info/My Collection tabs
- CollectionSummonPane: full detail pane with Info/My Collection tabs
2025-12-03 07:26:53 -08:00
033bc1c8f7 add collection display components for weapons and summons
- CollectionWeaponCard: grid view with uncap indicator and transcendence
- CollectionWeaponRow: list view with element, uncap, and awakening/keys info
- CollectionSummonCard: grid view with uncap indicator
- CollectionSummonRow: list view with element and uncap info
2025-12-03 07:21:53 -08:00
957dd16e5e add quantity counter and selectable components for weapons/summons
- QuantityCounter: +/- buttons for multi-copy selection
- SelectableWeaponCard/Row: weapon selection with quantity
- SelectableSummonCard/Row: summon selection with quantity
- AddToCollectionModal: support entityType prop, Map for quantities
- CollectionFilters: entityType-aware filter visibility
2025-12-03 07:19:04 -08:00
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