* feat: base content card component * fix: tooltips + colors * feat: fix orgs * feat: base content tab internals rewrite * feat: fix invalidmodal * feat: add ContentModpackCard * fix: extract types * draft: layout * feat: unlink modal * feat: impl content tab * fix: lint * fix: toggling * temp: disable updating stuff * feat: selection v-model * feat: bulk selection * feat: mods tab rough draft * feat: use fuse.js * feat: add project combobox * clean up project combobox * feat: start install to play modal * fix: events * feat: use v-on * feat: bulk actions + fix floating action bar width * feat: figma alignments * feat: migrate toggle to tailwind * fix: row borders * feat: disabled state * feat: virtual list impl for card table based on window scroll * fix: lint * feat: virtualization + smaller contentcard items * feat: use ContentCardTable + ContentCardItems * feat: fix gap + border issues on last elm * feat: cleanup + use proper searching * fix: use TeleportOverflowMenu * fix: fallback to svg if src is invalid on avatar component * fix: storybook * feat: start on updater modal * feat: finish content updater modal * feat: i18n pass * feat: impl modal * feat(app): backend changes for content tab refactor (#5237) * feat: include_changelog=false for updater modal * fix: hash overrides * feat: update checking for modpack * feat: qa * feat: modpack content modal * fix: padding in table to match modals + tightness * fix: lint * feat: delete modal * feat: fix toggle bugs * fix: prepr * fix: duplicate messages * qa: full width search * qa: use bg-surface-1.5 * qa: animation for filter pills * qa: standardize hover colors * fix: border-[1px] is border * qa: mass de-select actually mass selecting * qa: match figma designs for floating action bar * qa: modal fixes * q: modal fixes x2 * fix: table border * qa: confirm modals * qa: modal alignment * qa: re-add stuck heading + dedupe logic * qa: dedupe virtual scrolling + remove dead components * qa: responsiveness for content table + link fixes * qa: version column link, tooltips + lint fixes * qa: instance busy protections * fix: installation freeze bug * chore: remove old mods page * refactor: deduplicate layout * chore: delete old content page(s) * qa * qa * qa * feat: sort btn - to iterate * fix: ml * feat: date added * fix: lint * fix: formatting.ts removal * feat: get_dependencies_as_content_items * qa: final QA changes * refactor: deduplicate + polish content.rs * feat: hook up content.vue with v1 * feat: hide v1 content api behind frontend feature flag * fix: query keys + copy on empty state * chore: i18n pass * feat: reimpl unlink + upload endpoint * feat: use bulk endpoints v1 * fix: lint * fix: flags * fix: responsiveness via container queries * fix: lint * qa: 1 * qa: fixes * qa: fix ssr issues with browse content * qa: header page divider * qa: modals * fix: prepr * fix: issues * fix: lint * fix: toggle v1 ff * qa: 5 * qa: delete modal copy * feat: creation flow modals (#5383) * refactor: delete content v0 usages + impl * feat: qa + fixes * feat: installing banner using state event * feat: fix modpack card bugs + filtering issues * refactor: delete backups v0 api module * feat: v1 servers GET endpoint * fix: backups * feat: swap to kyros upload v1 addon * fix: use tanstack for loader.vue * feat: finish install from discovery modal * qa: bug fixes * feat: set up installation settings * fix: lint * fix: typos * fix: bugs * fix: disable inline content * feat: content tab improvements — upload UX, installation settings, and client-only indicators Upload cancellation and navigation guard: - Add ConfirmLeaveModal that prompts when navigating away during upload - Cancel in-flight XHR uploads when user confirms leaving the page - Add beforeunload handler to warn on browser/tab close during upload - Track uploadedBytes/totalBytes in UploadState for progress display - Replace Collapsible with Transition for upload progress admonition - Show byte progress and percentage in upload banner - Clamp upload progress to prevent exceeding 100% Installation settings (server.properties): - Add KnownPropertiesFields and PropertiesFields types to Archon types - Add buildProperties() to creation flow context to collect gamemode, difficulty, seed, world type, structures, and generator settings - Pass properties through installContent on onboarding, discovery, and ServerSetupModal flows Server setup and discovery flow improvements: - Migrate ServerSetupModal from servers_v0.reinstall to content_v1.installContent - Replace loaderApiNames lookup with toApiLoader() helper - Remove eraseDataOnInstall toggle — always use soft_override: false - Simplify modpack install on discovery page to use first available version and route through creation flow modal for both onboarding and non-onboarding - Differentiate post-install navigation: content page for onboarding, loader options for existing servers Modpack update flow: - Replace updateModpack() call with installContent() using soft_override: true to support version selection in the content updater modal Client-only mod indicators: - Add environment field to AddonVersion (reuses Labrinth.Projects.v3.Environment) - Add environment to ContentItem and isClientOnly to ContentCardTableItem - Show orange TriangleAlertIcon with tooltip on client-only mods in content table - Add "Client-only" filter pill to content filtering (controlled via showClientOnlyFilter on ContentManagerContext) - Apply client-only indicators in both ContentPageLayout and ModpackContentModal Misc: - Add CLAUDE.md note about using prepr commands for lint checks - Export ConfirmLeaveModal from instances barrel * fix: piping * fix: switch content disable for linked server instances * feat: client only filter * fix: prepr * feat: hasUpdate shape update * feat: bulk update endpoint impl for content in panel * feat: websocket state impl again with new phases * fix: ws * fix: use timeout fn for sync admon + fix content card layout scroll for browsers with overflow anchor bug * fix: qa bugs * fix: lint, a11y and i18n * refactor: set up layouts folder properly * fix: linked data cache stuff + lint * feat: move installationsettings to shared layout * fix: lint * fix: issues * feat: temp fuck staging up * fix: lockfile * fix: data sync issues on loader.vue * fix: lint * Hide shader configuration files from content list (#5499) * feat: workaround search problem + split out reset * fix: qa * fix: changelog not showing on first open * fix: qa + optimistic updating improvements * fix: prepr+lint * fix: qa * feat: qa * fix: lint * fix: lint * fix: build * fix: build * fix: type errors * fix: fade and JAVA_HOME passthrough * feat: qa * feat: impl diff shit * fix: qa * fix: app qa * feat: update diff modal * fix: endpoint * fix: qa * fix: qa * fix: use bulk in modpack modal * feat: abort signal impl + fix issues * fix: diff modal trunc * feat: qa * fix: qa * feat: tooltip content tab * fix: prepr * fix: dismiss on settings btn * feat: qa * feat: dont clear handlers on disconnect * fix: lint * fix: wrangler + introduce staging-archon env file --------- Signed-off-by: Calum H. <calum@modrinth.com> Co-authored-by: tdgao <mr.trumgao@gmail.com> Co-authored-by: Artyom Ezri <61311568+Artezon@users.noreply.github.com>
10 lines
4.3 KiB
XML
10 lines
4.3 KiB
XML
<svg viewBox="0 0 250 200" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M63 134H154C154.515 134 155.017 133.944 155.5 133.839C155.983 133.944 156.485 134 157 134H209C212.866 134 216 130.866 216 127C216 123.134 212.866 120 209 120H203C199.134 120 196 116.866 196 113C196 109.134 199.134 106 203 106H222C225.866 106 229 102.866 229 99C229 95.134 225.866 92 222 92H200C203.866 92 207 88.866 207 85C207 81.134 203.866 78 200 78H136C139.866 78 143 74.866 143 71C143 67.134 139.866 64 136 64H79C75.134 64 72 67.134 72 71C72 74.866 75.134 78 79 78H39C35.134 78 32 81.134 32 85C32 88.866 35.134 92 39 92H64C67.866 92 71 95.134 71 99C71 102.866 67.866 106 64 106H24C20.134 106 17 109.134 17 113C17 116.866 20.134 120 24 120H63C59.134 120 56 123.134 56 127C56 130.866 59.134 134 63 134ZM226 134C229.866 134 233 130.866 233 127C233 123.134 229.866 120 226 120C222.134 120 219 123.134 219 127C219 130.866 222.134 134 226 134Z" fill="var(--surface-2, #1D1F23)"/>
|
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M168.577 126.075C166 128 163.488 129.81 160.644 131.374L160.809 145.457C160.822 146.562 159.937 147.467 158.832 147.48C158.383 147.486 157.945 147.339 157.589 147.066L144.926 137.323C140.18 138.416 135.173 139 130 139C99.6243 139 75 118.853 75 94C75 69.1472 99.6243 49 130 49C160.376 49 185 69.1472 185 94C185 100.879 183.114 107.397 179.741 113.227C179.119 114.303 178.446 115.355 177.726 116.381C177.726 116.381 176.317 118.5 173.5 121.5C170.683 124.5 168.577 126.075 168.577 126.075Z" fill="var(--surface-1, #16181C)"/>
|
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M168.577 126.075C166 128 163.488 129.81 160.644 131.374L160.809 145.457C160.822 146.562 159.937 147.467 158.832 147.48C158.383 147.486 157.945 147.339 157.589 147.066L144.926 137.323C140.18 138.416 135.173 139 130 139C99.6243 139 75 118.853 75 94C75 69.1472 99.6243 49 130 49C160.376 49 185 69.1472 185 94C185 100.879 183.114 107.397 179.741 113.227C179.119 114.303 178.446 115.355 177.726 116.381C177.726 116.381 176.317 118.5 173.5 121.5C170.683 124.5 168.577 126.075 168.577 126.075Z" stroke="var(--surface-4, #34363C)" stroke-width="2.5" stroke-linecap="round"/>
|
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M162.853 81.5895C168.157 81.5895 173.266 80.957 178.051 79.7868C179.961 84.1364 181 88.8232 181 93.7074C181 100.043 179.251 106.047 176.123 111.417C175.547 112.408 174.923 113.376 174.255 114.322C173.2 115.815 172.448 116.869 171.785 117.714C170.219 119.713 169.155 120.544 165.771 123.25C163.515 125.055 161.052 126.691 158.415 128.131L158.568 141.103C158.58 142.12 158.889 143.988 157.865 144C157.449 144.005 155.913 142.837 155.583 142.584L145.373 133.467C140.972 134.473 134.797 135.156 130 135.156C101.833 135.156 79 116.599 79 93.7074C79 74.961 94.3133 59.1215 115.328 54C120.832 69.8745 140.023 81.5895 162.853 81.5895ZM110.291 88.1483C106.986 88.1483 104.307 90.8448 104.307 94.1711C104.307 97.4974 106.986 100.194 110.291 100.194C113.596 100.194 116.275 97.4974 116.275 94.1711C116.275 90.8448 113.596 88.1483 110.291 88.1483ZM129.241 88.1483C125.936 88.1483 123.257 90.8448 123.257 94.1711C123.257 97.4974 125.936 100.194 129.241 100.194C132.546 100.194 135.225 97.4974 135.225 94.1711C135.225 90.8448 132.546 88.1483 129.241 88.1483ZM148.191 88.1483C144.886 88.1483 142.207 90.8448 142.207 94.1711C142.207 97.4974 144.886 100.194 148.191 100.194C151.496 100.194 154.176 97.4974 154.176 94.1711C154.176 90.8448 151.496 88.1483 148.191 88.1483Z" fill="var(--surface-2, #1D1F23)"/>
|
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M110 88C113.314 88 116 90.6863 116 94C116 97.3137 113.314 100 110 100C106.686 100 104 97.3137 104 94C104 90.6863 106.686 88 110 88ZM129 88C132.314 88 135 90.6863 135 94C135 97.3137 132.314 100 129 100C125.686 100 123 97.3137 123 94C123 90.6863 125.686 88 129 88ZM148 88C151.314 88 154 90.6863 154 94C154 97.3137 151.314 100 148 100C144.686 100 142 97.3137 142 94C142 90.6863 144.686 88 148 88Z" fill="var(--surface-1, #16181C)" stroke="var(--surface-4, #34363C)" stroke-width="2.5"/>
|
|
<path d="M89.6621 79.3112C88.7541 80.8431 87.9672 82.4329 87.3118 84.0722" stroke="var(--surface-3, #27292E)" stroke-width="2.5" stroke-linecap="round"/>
|
|
<path d="M108.022 63.0732C101.469 66.2006 95.937 70.6244 91.9392 75.9203" stroke="var(--surface-3, #27292E)" stroke-width="2.5" stroke-linecap="round"/>
|
|
</svg>
|