Commit graph

600 commits

Author SHA1 Message Date
0cf537fbd4 move uncap and transcendence icons to src/assets 2025-12-15 19:39:53 -08:00
d5a2d4e4c8 add element tag to related characters section 2025-12-15 19:23:04 -08:00
6f17a69e26 fix: show both tags if unique 2025-12-15 18:30:50 -08:00
7b3bf2c51e fix: show series tag if season tag is empty 2025-12-15 18:21:44 -08:00
a50929acf7 fix: only show one charactertag in db list 2025-12-15 17:56:08 -08:00
cfcda8f01e remove Standard from series enum, shift IDs 2025-12-15 17:48:56 -08:00
cbef8f5518 add CharacterTag component, show tags in db list 2025-12-15 17:48:29 -08:00
ed282dfea4 update getJobSkillIcon to accept skill object 2025-12-15 16:09:21 -08:00
adf38c0c28 add job skill edit sidebar 2025-12-15 16:09:15 -08:00
acd784fe2d add downloadSkillImage to job adapter 2025-12-15 16:09:11 -08:00
57b90ac724 add imageId/actionId to JobSkill type 2025-12-15 16:09:07 -08:00
28c12d23c7 remove card styling from skill groups 2025-12-15 14:37:33 -08:00
0eeb7e5274 fix skill category colors with fallback values 2025-12-15 14:35:30 -08:00
b2e374fefa style job skills tab: smaller headers, more name spacing 2025-12-15 14:33:59 -08:00
767eda424e fix job skills adapter to expect array, add emp_skills method 2025-12-15 14:30:47 -08:00
3717288cc2 add jobs to database dropdown menu 2025-12-15 14:21:45 -08:00
3f87d51a55 add jobs database pages (list, detail, edit) 2025-12-15 14:21:40 -08:00
0cf7982809 fix job adapter response handling, update tier names 2025-12-15 14:21:35 -08:00
18b60f2c9b add job type support to detail scaffold/header 2025-12-15 14:21:30 -08:00
5ec31ade2d add Name fields to SummonMetadata, create SummonGachaSection, remove Promotions from Taxonomy 2025-12-15 13:16:56 -08:00
70c0881bb4 weapon sections: add name fields to metadata, move recruits to gacha 2025-12-15 13:08:17 -08:00
0812e3b2d4 add name EN/JP fields to character detail and edit pages 2025-12-15 12:58:35 -08:00
cc60a57e3e minor ui tweaks
- fix datepicker css class name conflict
- remove border and margin from detail header/scaffold
2025-12-15 12:51:19 -08:00
32c4880180 refactor character section components
- move series from taxonomy to metadata section
- rename uncap label to "Uncap Level"
- show all uncap flags in view mode
2025-12-15 12:48:51 -08:00
34c3dd6aa6 update entity types for new api format
- remove links property, use wiki/gamewith/kamigame at top level
- add seriesNames to Character
2025-12-15 12:48:16 -08:00
6ba89dc216 use granblueId in database URLs instead of UUID
- rename route folders from [id] to [granblueId]
- update all server load functions to use params.granblueId
- update detail/edit/new pages to navigate with granblueId
- update cross-entity links (recruits, recruitedBy)
- update TanStack Query keys to use granblueId

backend's IdResolvable already supports fetching by granblueId
2025-12-15 11:26:52 -08:00
4d7d2c563e fix CharacterTypeahead initial value display on page load
derive options from initialCharacter directly instead of using
effect-based initialization which had race conditions with SSR
2025-12-15 11:16:13 -08:00
80bcbd59db fix CharacterTypeahead usage in weapon forms 2025-12-15 11:03:12 -08:00
ba17a17224 style CharacterTypeahead to match Select, use granblueId as value 2025-12-15 11:03:06 -08:00
3d75c22f3b fix CharacterTypeahead width in DetailItem 2025-12-15 11:03:02 -08:00
b5f832191f add gacha suggestion types and use CharacterGachaSection 2025-12-15 09:52:08 -08:00
879a3bd8bd move season field to Metadata section 2025-12-15 09:52:03 -08:00
75a97cabaa add CharacterGachaSection component 2025-12-15 09:51:58 -08:00
dd16718c03 add Holiday to CHARACTER_SERIES, remove Standard season 2025-12-15 09:51:54 -08:00
1a21828815 add PageMeta component and i18n keys for page titles 2025-12-14 21:55:37 -08:00
ed6a9fd2f4 send wiki_raw when creating entities from import 2025-12-14 21:50:40 -08:00
cfb62447a0 move Recruits and Promotions to Gacha section 2025-12-14 21:50:35 -08:00
850c5dd771 auto-update summon max level based on uncap
same behavior as weapons: 100/150/200/250 for base/flb/ulb/trans
2025-12-14 21:14:03 -08:00
64725bd4e8 add link buttons to import form fields
- add URL builders for wiki/gamewith/kamigame
- add hasLinkButton prop to DetailItem components
- show disabled link button when value is empty
- store page names instead of full URLs
- fix DetailItem to render children when editable
- remove focus background styling
2025-12-14 19:35:33 -08:00
e1ba34048a improve import form components
- fix Select reactivity with external value changes
- add series/promotions to taxonomy sections
- add onDataChange callbacks to uncap sections
- add game CDN image helpers for batch imports
- expand suggestion type definitions
2025-12-14 19:35:20 -08:00
37f2178d4a pre-fill summon ID from wiki data in batch import 2025-12-14 17:01:16 -08:00
6e6121cb71 use DetailItem for Granblue ID (already pre-populated) 2025-12-14 13:41:34 -08:00
3ec5e9f48a fix: preserve wiki_data keys during request transform 2025-12-14 13:28:43 -08:00
5c870b148e use client-side wiki fetch for batch preview imports 2025-12-14 13:17:34 -08:00
34db76fbdc add client-side wiki fetcher to bypass cloudflare 2025-12-14 13:17:21 -08:00
b2f4cf5246 fix placeholder images to use CDN url 2025-12-14 12:59:29 -08:00
dd1591d5b3 update nav to point to consolidated series page 2025-12-14 11:59:39 -08:00
50ee6b80ff add character/summon series to entity adapter and queries 2025-12-14 11:59:31 -08:00
d921d37362 add character and summon series types 2025-12-14 11:59:26 -08:00
77339a2b27 add name, proficiency, and level badge to artifact cards 2025-12-14 02:06:42 -08:00
c90da7ad4e show item names in collection cards 2025-12-14 02:06:34 -08:00
7f9398efbd add retired toggle to member/phantom edit dialog 2025-12-14 01:52:19 -08:00
7fdb07cacf fix collection card image sizing 2025-12-14 01:52:15 -08:00
930627c71c use lighter bg and darker text for settings tabs 2025-12-14 01:31:36 -08:00
106b9261f8 fix Select placeholder check for falsy values 2025-12-14 01:24:07 -08:00
e8608ff32d respect showGranblueId setting in ProfileHeader 2025-12-14 01:24:03 -08:00
376e915ade refactor UserSettingsModal to tabbed layout 2025-12-14 01:23:59 -08:00
9ee90fc6fc add /users/me endpoint to user adapter 2025-12-14 01:23:55 -08:00
242aa7c0a9 add settings section components 2025-12-14 01:23:50 -08:00
c785d1d0ab add SettingsNav and SettingsRow components 2025-12-14 01:23:47 -08:00
8e57cdc2a5 add missing crewStore import 2025-12-13 23:27:48 -08:00
9429ccff53 use AWS for placeholder images in production 2025-12-13 23:26:35 -08:00
9c69db640e hide invitations menu item when user is in a crew 2025-12-13 23:20:58 -08:00
b844012f3b use neutral ViewModeToggle in collection pages 2025-12-13 23:17:58 -08:00
f20c99bdac add ViewModeToggle component with element theming and neutral mode 2025-12-13 23:17:50 -08:00
04469ee202 fix icon svg handling, update grid/list icons 2025-12-13 23:17:42 -08:00
4745baca1c add bulk phantom creation, delete confirmation, default to all filter
- bulk create phantoms with individual join dates
- confirm before deleting phantoms
- reorder filters with All first and as default
2025-12-13 23:12:40 -08:00
7dcb100412 add medium size to Dialog, leftIcon/rightIcon props to Button 2025-12-13 23:12:34 -08:00
0e5f7e1642 fix modal content overflow pushing footer out of view 2025-12-13 23:12:30 -08:00
7e0f66d9cc fix registration availability checks and signup endpoint
- correct api paths for username/email availability checks
- use singleton userAdapter instead of creating new instance
- use getApiBaseUrl() for signup to include /api/v1 prefix
2025-12-13 22:15:31 -08:00
30128107fb cache user settings in cookie for faster modal loading
store granblueId and showCrewGamertag in cookie at login,
use as initial values so modal opens instantly
2025-12-13 22:14:49 -08:00
362db1238f fix input focus loss when error state changes
always wrap in fieldset to keep DOM structure stable
2025-12-13 22:14:32 -08:00
9787af9c42 fix party avatar to use shared image utilities 2025-12-13 21:50:25 -08:00
c57f84b1b4 fix avatar images to respect remote/local hosting config 2025-12-13 21:49:14 -08:00
da7299625c misc type and style fixes 2025-12-13 21:25:02 -08:00
70df592890 fix svelecte event handling for svelte 5 2025-12-13 21:24:31 -08:00
aee62522e9 redesign profile header with gamertag + gbf profile link 2025-12-13 21:24:09 -08:00
e5dec76a84 fix image paths for production (use AWS URLs) 2025-12-13 20:58:34 -08:00
60cbc03edf select/multiselect: remove hover shadow, use elemental checkmarks 2025-12-13 20:58:30 -08:00
20dabc5aa1 collection page card styling + contained filters 2025-12-13 20:58:20 -08:00
c54c959522 rework ModalFooter to use action props
- onCancel callback with fixed "Nevermind" label
- optional primaryAction object (label, onclick, destructive, disabled)
- optional left snippet for custom content
2025-12-13 20:02:25 -08:00
7dae71965a extract DeleteTeamDialog component 2025-12-13 20:02:18 -08:00
492307530a fix nav highlight for profile sub-routes 2025-12-13 20:02:14 -08:00
013c1b5eb2 add invite to crew action on user profiles
officers can invite users without a crew via context menu
2025-12-13 18:07:11 -08:00
d2c16d908d add invitation notifications to nav
badge on profile icon + dropdown item to open invitations modal
2025-12-13 18:07:06 -08:00
c9f31f9059 add crew invitation modals
- InvitationsModal: view/accept/decline pending invitations
- InviteUserModal: confirm invite from profile page
- ScoutUserModal: search users by username to invite
2025-12-13 18:07:02 -08:00
27a98274c1 add NotificationBadge component
reusable red dot/count badge for notifications
2025-12-13 18:06:56 -08:00
789494e773 migrate dialog consumers to ModalHeader/Body/Footer pattern 2025-12-13 14:55:46 -08:00
a3c5676c4c add missing type props: dates, wiki links, editKey, gw stats 2025-12-13 14:55:40 -08:00
6f16b41d35 misc: util tweaks, database page fixes, mock updates 2025-12-13 14:35:29 -08:00
46d48132bd sidebar: fix proficiency list spacing 2025-12-13 14:35:25 -08:00
47563634b3 nav: add crew link and gw-events database link 2025-12-13 14:34:49 -08:00
b5d0b7c0e7 collection panes: add delete action, fix edit mode state
- add remove from collection with confirmation
- sidebar overflow menu for delete action
- better tracking of which item is selected to avoid state bugs
2025-12-13 14:34:40 -08:00
7558aef509 edit panes: remove footer buttons, export save() for header
parent components now call save() from sidebar header action
instead of embedded cancel/save buttons
2025-12-13 14:34:30 -08:00
4418157ca0 refactor modal components to use header/body/footer pattern
UserSettingsModal now uses ModalHeader, ModalBody, ModalFooter.
Dialog simplified. Button tweaks.
2025-12-13 14:34:20 -08:00
aee0690b2d add crew UI components, store, queries, and mutations 2025-12-04 03:03:27 -08:00
32af6a7788 crew members page improvements
- edit join date dialog
- add phantom with join date
- dropdown menus for member actions
- disable scout when roster full (30)
- invalidate gw queries on join date change
2025-12-04 03:03:04 -08:00
f4d04a7073 gw event page improvements
- total honors instead of total score
- muted style for players with existing scores
- by-event score endpoints
2025-12-04 03:02:58 -08:00
e7dfca992a add muted and suffixSnippet props to Select component 2025-12-04 03:02:51 -08:00
0a2a3894bf Add sync from collection menu and highlight owned items in search
- Party.svelte: Add 'Sync from collection' to overflow menu for parties
  with linked collection items, with proper menu grouping
- SearchContent.svelte: Highlight items user owns in 'All Items' mode
  with subtle green background and checkmark indicator
2025-12-03 23:24:30 -08:00
f5d0bbe7da Add sync UI to Party and edit sidebars
- Party.svelte: Pass authUserId to openSearchSidebar, link collection
  items when adding to party via collectionId
- DetailsSidebar: Show sync banner for out-of-sync items, add sync
  functionality for characters, weapons, and summons
- EditCharacterSidebar/EditWeaponSidebar: Add sync banner and button
  for items linked to collection
- party.ts types: Add collectionId and outOfSync fields to grid types
2025-12-03 23:13:59 -08:00
bf2bf8663f add search mode toggle for collection items 2025-12-03 22:58:46 -08:00
43f9f37ccc add sync mutations for grid items 2025-12-03 22:52:31 -08:00
48121612fc add collection refs and sync methods to frontend types and adapters 2025-12-03 22:51:23 -08:00
7c93cf8aab fix skill lookup for slots 3-4 by matching skill group 2025-12-03 21:10:22 -08:00
3f13f16998 add artifact header with wide image and relief background 2025-12-03 21:05:42 -08:00
ff4b63a542 show remaining chars counter only when near limit 2025-12-03 20:52:14 -08:00
edbfd14843 tweak DetailRow min-width, fix DisclosureRow label wrapping 2025-12-03 20:52:09 -08:00
8759afb83c fix infinite loop in sidebar action effects with untrack 2025-12-03 20:52:03 -08:00
eaae29f007 simplify artifact mutation, remove optimistic update 2025-12-03 20:51:58 -08:00
5bac8a0b53 add element-based styling to modifier selection 2025-12-03 20:51:52 -08:00
dc4c2c3117 move artifact image/name to header, use DetailRows for skills 2025-12-03 20:51:16 -08:00
ee2e51affd add image support to sidebar header 2025-12-03 20:51:10 -08:00
399480db9f put grade recommendation reason inline with action badge 2025-12-03 20:51:05 -08:00
91b2a61ac9 simplify skill display to value-only, highlight max rolls in element color 2025-12-03 20:50:59 -08:00
f55303039c auto-redistribute skill levels when artifact level changes 2025-12-03 20:50:53 -08:00
f34f2c4dc9 show calculated skill values in dropdown, add level constraints 2025-12-03 20:50:47 -08:00
4b2d1b7dc0 add calculateSkillDisplayValue helper for artifact skills 2025-12-03 20:50:42 -08:00
ea09f325a0 fix slider value handling and track width
- Use single value instead of array for type="single" slider
- Pass onValueChange directly without array wrapping
- Use flex-grow: 1 for track width instead of width: 100%
2025-12-03 18:50:11 -08:00
8ddfe58369 fix slider range width by adding track wrapper element
The bits-ui Slider.Range component needs to be inside a proper
track element for the range fill to display correctly. Added a
span wrapper with slider-track class and updated styles.
2025-12-03 18:45:53 -08:00
23b1d091f5 add Slider component with elemental styling for level selection 2025-12-03 18:41:04 -08:00
a1bc125521 add element-ghost button variant for sidebar header 2025-12-03 18:33:56 -08:00
9b59a22a43 stretch header buttons to fill height, add gap between accessories 2025-12-03 18:25:24 -08:00
f5f7743055 move delete to detail pane overflow, add disabled save button to edit 2025-12-03 18:20:13 -08:00
db71e6dc80 add overflow menu support to pane stack 2025-12-03 18:20:09 -08:00
100f506c44 move add artifact button to header as elemental button 2025-12-03 18:11:34 -08:00
99644c1730 use color dots instead of images for element dropdown 2025-12-03 18:08:15 -08:00
3527bc820f make Edit button elemental based on artifact element 2025-12-03 18:08:08 -08:00
abf7a36d8a remove translateY(1px) from button active state 2025-12-03 18:07:59 -08:00
b047552d7d fix infinite loop: use onMount instead of $effect for sidebar action 2025-12-03 17:57:50 -08:00
34821aa487 split artifact pane into detail and edit views
- CollectionArtifactDetailPane: read-only view with Edit button in header
- CollectionArtifactEditPane: editable form pushed onto pane stack
- ArtifactSkillDisplay: new read-only skill display component
2025-12-03 17:54:18 -08:00
190e2140b1 artifact images: add square/wide variants
use artifact-square for thumbnails, artifact-wide for grid display.
defaults to square for backwards compat.
2025-12-03 17:44:01 -08:00
f23779b664 pane stack: each pane is now its own card
move card styling (bg, radius, shadow, border) from sidebar
container to individual panes so they visually stack as
separate cards. behind pane peeks out from the left.
2025-12-03 17:38:53 -08:00
df045ecd2b add AddArtifactSidebar for collection artifacts
flow: proficiency -> element (color dots) -> artifact dropdown
(filtered by proficiency) -> level/nickname -> skills config
using pane stack for iOS-style navigation
2025-12-03 17:14:26 -08:00
ed32b7e924 add color dot support to Select component 2025-12-03 17:14:19 -08:00
e595196172 clean up debug logs from skill filtering investigation 2025-12-03 17:14:05 -08:00
9bdcc7818b remove polarity indicator from skill list 2025-12-03 17:14:01 -08:00
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
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