* start modal, working show modal
* add stages and implement MultiModalStage component
* add project versions context and add file button
* implement add files stage
* export interfaces
* move MultiStageModal to /base
* small update to file input
* add version types to api-client
* wrap version namespace under v3
* implement add details stage fields and loaders component
* start create MC versions stage
* implement changelog stage and bring width into a per stage concern
* implement loader picker with grouping
* improve grouping and sorting for loader picker
* use chips component
* small updaets
* fix loader icon color
* componentize mc version picker
* initial version of shift click to select range
* use newModal for markdown editor
* start add dependencies stage with search
* implement showing mod options in search
* componentize modselect and add version/dependency relation select
* hide version and dependency relation when no project selected
* fix project facet search
* implement api-client versions requests
* fix search api request facet type to be string
* fix new modal outer container scroll
* implement add dependency stage
* fix parse error
* add placeholders
* fix types
* update dependency row styles
* small change
* fix the types on manage versions to be correct with labrinth request bodies
* fix create version file parts
* use draft version ref in flow and implement proper file handlling
* use draft version ref for mc versions select
* implement reactive modal state and conditionally disabled next buttons
* ensure all data is using draftVersion ref
* remove shift click to select range since it sucks
* fix up add dependencies stage state/types
* small fixes
* implement adding dependencies connected to api calls and make adding dependencies work
* add final create version button config
* start create version backend call and bring versions table to project settings
* set add files stage width
* remove version file upload in project page
* small fix
* fix create version api call
* implement error handling
* implement mc versions search
* implement showing all mc versions
* small fix
* implement prefill data
* add success notification
* add cancel button
* add new dropzone file input
* run pnpm run fix
* add tailwind preset in ui package
* polish file version row
* fix modal widths
* hide added versions when no versions added
* implement add loaders stage
* implement small chips and small fixes
* implement grouping for all releases
* implement new all releases grouping
* implement better shift click for version select
* small fixes
* fix search input style
* delete versions provider and start project type inferring
* implement getting project type
* add versions empty state, add folder up icon and pnpm run fix
* implement create version in project versions table
* update side nav
* implement dynamic create version flow depending on project type and detected data
* add id to stages and fix calling setStage not working
* move added loaded out of loader picker
* remove selected and detected MC versions
* add loading message to dependency search and fix dependency type always being "required"
* fix components in ref
* fix width on dropdown
* implement toggle all mc versions based on state of last in range
* fix mc version text colour
* do proper clean up
* update loaders to use tag item
* update UI to use TagItem and better match styles
* handle detected data when setting primary file
* add progress bar
* hide progress bar for non-progress stage
* add loading state on submit
* properly cache dependencies projects/versions
* pnpm run fix
* add dragover show purple border on dropzone file input
* better handle added dependencies
* move versions in side nav
* implement adding file type
* fix api body format for file type
* implement working edit existing version
- working add/remove file
- working edit version details
* a step towards proper versions refresh
* add gallery to project settings
* actually figured out refresh versions
* move checklist into settings page
* remove editing version from version page and add button to versions table in project settings
* remove edit and delete buttons from gallery in project page
* add empty state messages for project page
* add default scroll bar styles
* implement support for new file types
* remove edit from dropdown in project page versions table
* redirect to settings page
* move changelog to row with actions
* fix overflow on added dependencies
* fix redirect
* update scroll styles
* implement add environment stage (create and modify version not persisting environment to backend)
* small style fixes
* small spacing fix
* small style fixes
* add a flag for loading dependency projects
* address PR comments
* fix modrinth ui imports
* use magic keys instead of window.addeventlistener
* add spacing in bottom of settings page
* useDebounceFn from vue
* fix inconsistent stroke
* persist scroll through
* fix remove button
* fix api fields
* fix version file dropdown: hide primary option in edit mode and fix setting initial value
* fix links in nags
* implement skipped field for skipping steps instead of mutating stages array's elements
* implement suggested dependencies components
* implement suggested dependencies api call
* refactor cached get project and get version calls
* always hide environments
* update links
* set scroll in 10ms
* update links
* fix links pt2
* fix shadow
* fix progress bar
* dont include mc versions in suggested versions finder
* fix text overflow styles
* use tooltip
* fix change version name api
* implement set environment api call
* delete unused vue pages
* implement detected environment, edit environment step, and fix showing loaders in details for no loader projects
* small fix
* no loaders project wrong check
* fix not having 'minecraft' loader for resource pack
* implement updating existing files file type
* move add minecraft loader outside try catch
* add datapack to have environment
* fix being able to select duplicate MC versions
* remove datapack project from environment
* fix version fetch
* fix having detected environment not properly skipping step
* only add detected data when primary file changes
* fix unknown environemtn
* implement gallery and versions have moved admonition
* update project page for creator view
* small copy update
* merge fixes
* pnpm run fix
* fix checkmark squished
* fix version type can be deselected
* refactor: DI context + better typed MultistageModal
* fix type import
* Misc QA fixes
* fix allowed file types with no project type
* implement new add files stage
* fix versiosn header with new pagination
* hide buttons when no files for add file stage
* use prettier formatter
* allow signature file types
* add detecting primary file
* fix progress bar in firefox
* fix environment not correctly being hidden/shown
* remove environment missing nag
* temp bring back environment page
* remove delete version action from project page
* replace "continue" next button label with actual next step
* fix types
* pnpm run fix
* move supplementary files alert up and update border radius style on dropzone
* copy updates
* small update on version num placeholder
* update placeholder
* make timeout on upload routes 2 minutes
* fix lint issues
* run pnpm intl:extract
---------
Co-authored-by: Calum H. (IMB11) <contact@cal.engineer>
* Fix DEV-466, Fixes#4692 as well as a bunch of other poor contrast and inconsistency issues in light mode. Adds shadows to buttons and makes scrollbar gutter stable.
* lintttt & only do scrollbar gutter on website
* try to fix following hydration issue
* try another clientonly approach
* fix home page link animation
* lint
* remove dropdown style from checkbox & improve shadow consistency
* liiiint
* feat: surface variables & gradients
* feat: text vars
* fix: lint
* chore: remove L from surface vars
* fix: fully remove L from surface vars
---------
Co-authored-by: --global <--global>
* remove "experimental" color vars, remove conflicting styles from frontend-specific css
* lint
---------
Co-authored-by: Cal H. <hendersoncal117@gmail.com>
* chore: typo fix and formatting tidyups
* refactor(theseus): extend auth subsystem to fetch complete user profiles
* chore: fix new `prettier` lints
* chore: document differences between similar `Credentials` methods
* chore: remove dead `profile_run_credentials` plugin command
* feat(app): skin selector backend
* enh(app/skin-selector): better DB intension through deferred FKs, further PNG validations
* chore: fix comment typo spotted by Copilot
* fix: less racy auth token refresh logic
This may help with issues reported by users where the access token is
invalid and can't be used to join servers over long periods of time.
* tweak(app-lib): improve consistency of skin field serialization case
* fix(app-lib/minecraft_skins): fix custom skin removal from DB not working
* Begin skins frontend
* Cape preview
* feat: start on SkinPreviewRenderer
* feat: setting for nametag
* feat: hide nametag setting (sql)
* fix: positioning of meshes
* fix: lighting
* fix: allow dragging off-bounds
* fix: better color mapping
* feat: hide nametag setting (impl)
* feat: Start on edit modal + cape button cleanup + renderer fixes
* feat: Finish new skin modal
* feat: finish cape modal
* feat: skin rendering on load
* fix: logic for Skins.vue
* fix: types
* fix: types (for modal + renderer)
* feat: Editing?
* fix: renderer not updating variant
* fix: mojang username not modrinth username
* feat: batched skin rendering - remove vzge references (apart from capes, wip)
* feat: fix sizing on SkinButton and SkinLikeButton, also implement bust positioning
* feat: capes in preview renderer & baked renders
* fix: lint fixes
* refactor: Start on cleanup and polish
* fix: hide error notification when logged out
* revert: .gltf formatting
* chore(app-frontend): fix typos
* fix(app-lib): delay account skin data deletion to next reboot
This gives users an opportunity to not unexpectedly lose skin data in
case they log off on accident.
* fix: login button & provide/inject AccountsCard
* polish: skin buttons
* fix: imports
* polish: use figma values
* polish: tweak underneath shadow
* polish: cursor grab
* polish: remove green bg from CapeLikeTextButton when selected.
* polish: modal tweaks
* polish: grid tweaks + start on upload skin modal
* polish: drag and drop file flow
* polish: button positioning in SkinButton
* fix: lint issues
* polish: deduplicate model+cape stuff and fix layout
* fix: lint issues
* fix: camel case requirement for make-default
* polish: use indexed db to persist skin previews
* fix: lint issues
* polish: add skin icon sizing
* polish: theme fixes
* feat: animation system for skin preview renderer
* feat(app/minecraft_skins): save current custom external skin when equipping skins
* fix: cape button & dynamic nametag sizing
* feat(theseus): add `normalize_skin_texture` Tauri command
This command lets the app frontend opt in to normalizing the texture of
any skin, which may be in either the legacy 64x32 or newer 64x64 format,
to the newer 64x64 format for display purposes.
* chore: Rust build fixes
* feat: start impl of skin normalization on frontend
* feat(theseus): change parameter type of `normalize_skin_texture` Tauri command
* fix: normalization
* fix(theseus): make new `normalize_skin_texture` command usable
* feat: finish normalization impl
* fix: vueuse issue
* fix: use optimistic approach when changing skins/capes.
* fix: nametag cleanup + scroll fix
* fix: edit modal computedAsync not fast enough for skin preview renderer
* feat: classic player model animations
* chore: fix new Clippy lint
* fix(app-lib): actually delete custom skins with no cape overrides
* fix(app-lib): handle repeated addition of the same skin properly
* refactor(app-lib): simplify DB connection logic a little
* fix: various improvements
* feat: slim animations
* fix: z-fighting on models
* fix: shading + lighting improvements
* fix: shadows
* fix: polish
* fix: polish
* fix: accounts card not having the right head
* fix: lint issues
* fix: build issue
* feat: drag and drop func
* fix: temp disable drag and drop in the modal
* Revert "fix: temp disable drag and drop in the modal"
This reverts commit 33500c564e3f85e6c0a2e83dd9700deda892004d.
* fix: drag and drop working
* fix: lint
* fix: better media queries
* feat(app/skins): revert current custom external skin storing on equip
This reverts commit 0155262ddd081c8677654619a09e814088fdd8b0.
* regen pnpm lock
* pnpm fix
* Make default capes a little more clear
* Lint
---------
Co-authored-by: Alejandro González <me@alegon.dev>
Co-authored-by: Prospector <prospectordev@gmail.com>
* Add quick server creation button, and dynamic pricing to custom server selection
* Remove test in compatibility card
* Lint + remove duplicate file
* Adjust z-index of popup
* $6 -> $5
* Dismiss prompt if the button is clicked
* Make "Create a server" disabled for now
* Use existing loaders type
* Begin work on worlds backend
* Finish implementing get_profile_worlds and get_server_status (except pinning)
* Create TS types and manually copy unparsed chat components
* Clippy fix
* Update types.d.ts
* Initial worlds UI work
* Fix api::get_profile_worlds to take in a relative path
* sanitize & security update
* Fix sanitizePotentialFileUrl
* Fix sanitizePotentialFileUrl (for real)
* Fix empty motd causing error
* Finally actually fix world icons
* Fix world icon not being visible on non-Windows
* Use the correct generics to take in AppHandle
* Implement start_join_singleplayer_world and start_join_server for modern versions
* Don't error if server has no cached icon
* Migrate to own server pinging
* Ignore missing server hidden field and missing saves dir
* Update world list frontend
* More frontend work
* Server status player sample can be absent
* Fix refresh state
* Add get_profile_protocol_version
* Add protocol_version column to database
* SQL INTEGER is i64 in sqlx
* sqlx prepare
* Cache protocol version in database
* Continue worlds UI work
* Fix motds being bold
* Remove legacy pinging and add a 30-second timeout
* Remove pinned for now and match world (and server) parsing closer to spec
* Move type ServerStatus to worlds.ts
* Implement add_server_to_profile
* Fix pack_status being ignored when joining from launcher
* Make World path field be relative
* Implement rename_world and reset_world_icon
* Clippy fix
* Fix rename_world
* UI enhancements
* Implement backup_world, which returns the backup size in bytes
* Clippy fix
* Return index when adding servers to profile
* Fix backup
* Implement delete_world
* Implement edit_server_in_profile and remove_server_from_profile
* Clippy fix
* Log server joins
* Add edit and delete support
* Fix ts errors
* Fix minecraft font
* Switch font out for non-monospaced.
* Fix font proper
* Some more world cleanup, handle play state, check quickplay compatibility
* Clear the cached protocol version when a profile's game version is changed
* Fix tint colors in navbar
* Fix server protocol version pinging
* UI fixes
* Fix protocol version handler
* Fix MOTD parsing
* Add worlds_updated profile event
* fix pkg
* Functional home screen with worlds
* lint
* Fix incorrect folder creation
* Make items clickable
* Add locked field to SingleplayerWorld indicating whether the world is locked by the game
* Implement locking frontend
* Fix locking condition
* Split worlds_updated profile event into servers_updated and world_updated
* Fix compile error
* Use port from resolve SRV record
* Fix serialization of ProfilePayload and ProfilePayloadType
* Individual singleplayer world refreshing
* Log when worlds are perceived to be updated
* Push logging + total refresh lock
* Unlisten fixes
* Highlight current world when clicked
* Launcher logs refactor (#3444)
* Switch live log to use STDOUT
* fix clippy, legacy logs support
* Fix lint
* Handle non-XML log messages in XML logging, and don't escape log messages into XML
---------
Co-authored-by: Josiah Glosson <soujournme@gmail.com>
* Update incompatibility text
* Home page fixes, and unlock after close
* Remove logging
* Add join log database migration
* Switch server join timing to being in the database instead of in a separate log file
* Create optimized get_recent_worlds function that takes in a limit
* Update dependencies and fix Cargo.lock
* temp disable overflow menus
* revert home page changes
* Enable overflow menus again
* Remove list
* Revert
* Push dev tools
* Remove default filter
* Disable debug renderer
* Fix random app errors
* Refactor
* Fix missing computed import
* Fix light mode issues
* Fix TS errors
* Lint
* Fix bad link in change modpack version modal
* fix lint
* fix intl
---------
Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
* Update footer to new design
* Update footer with changelog and security notice
* Move mastodon icon
* Make full-width instead of card
* Intl extract, lint
* Attempt at fixing popouts? no idea if will work
* Try with no theme?
* Revert "Try with no theme?"
This reverts commit 7fb3a6c6a6233d091d235364d072ffbbc7b7250a.
* Try to remove triggers from theme
* Remove duplicate plugin
* Fix version issue
* Try to remove theme and use default theme
* Add back theme for later fixing
* Lint
---------
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
* Implement ads in desktop app
* Finish ads
* use git dep instead
* attempt to fix linux build (temp)
* bump version + lint
* comment more
* fix build
* try to fix linux build
* Fix crashing on windows
* Fix icons not showing
* Remove useless env vars
* Actual linux build fix
* Run fmt
* Fix scrolling
* fix clippy
* bump version + fix localhost
* rev linux build patch
* update version num
* update csp
* update csp
* update csp
* Switch to mousewheel event
* New project page
* fix silly icon tailwind classes
* Start new versions page, add new ButtonStyled component
* Pagination and finish mocking up versions page functionality
* green download button
* hover animation
* New Modal, Avatar refactor, subpages in NavTabs
* lint
* Download modal
* New user page + fix lint
* fix ui lint
* Download animation fix
* Versions filter + finish project page
* Improve consistency of buttons on home page
* Fix ButtonStyled breaking
* Fix margin on version summary
* finish search, new modals, user + project page mobile
* fix gallery image pages
* New project header
* Fix gallery tab showing improperly
* Use auto direction + position for all popouts
* Preliminary user page
* test to see if this fixes login stuff
* remove extra slash
* Add version actions, move download button on versions page
* Listed -> public
* Shorten download modal selector height
* Fix user menu open direction
* Change breakpoint for header collapse
* Only underline title
* Tighten padding on stats a little
* New nav
* Make mobile breakpoint more consistent
* fix header breakpoint regression
* Add sign in button
* Fix edit icon color
* Fix margin at top of screen
* Fix user bios and ad width
* Fix user nav showing when there's only one type of project
* Fix plural projects on user page & extract i18n
* Remove ads on mobile for now
* Fix overflow menu showing hidden items
* NavTabs on mobile
* Fix navbar z index
* Search filter overhaul + negative filters
* fix no-max-height
* port version filters, fix following/collections, lint
* hide promos
* ui lint
* Disable modal background animation to reduce reported motion sickness
* Hide install with modrinth app button on mobile
---------
Signed-off-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Prospector <prospectordev@gmail.com>
* fix(theseus): Resolve log tab freezing entire app (#1127, #1237)
Switched to `vue-typed-virtual-list` due to freezing issues in WebKit caused by `vue-virtual-scroller`, which were difficult to resolve with the previous library.
* fix(theseus): Double opening of Socials Share link (#1136, #1074)
* fix(theseus): Proper symlinks resolution (#1236)
Ensures correct symlink resolution for specific mods, the mods directory, and the entire profile directory.
* fix(theseus): Correctly recognize NeoForge mods (#1215)
* fix(theseus): Corrected `Environments` and `Loaders` filters (#899)
* fix(theseus): Remove `_JAVA_OPTIONS` when testing JRE (#1171)
* fix(theseus): Fixed opening files using `show_in_folder`
Previously, opening a mod would display the contents of the JAR file instead of its location.
* fix(theseus): Hide `.DS_Store` files (#1274, #1002, #1174)
* fix(theseus): Corrected tooltip color
* fix(theseus): Fixed white mode issues (#1144, #1010)
* fix: Corrected `Slider` min and max value handling (#1008)
* fix: Fixed rebase problems
* fix: Fixed `:deep` usage warning
* chore: Updated eslint plugins to fix conflicts with Prettier