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
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