├── .editorconfig ├── .eslintrc.js ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.yml │ ├── config.yml │ └── enhancement.yml └── workflows │ ├── deploy.yml │ ├── nuxt.yml │ └── regenerate.yml ├── .gitignore ├── .idea ├── .gitignore ├── discord.xml ├── knossos.iml └── modules.xml ├── .npmrc ├── .prettierignore ├── .prettierrc.json ├── .vscode └── settings.json ├── COPYING.md ├── LICENSE ├── README.md ├── app.vue ├── assets ├── icons │ ├── auth │ │ ├── key.svg │ │ ├── mail.svg │ │ ├── sso-discord.svg │ │ ├── sso-github.svg │ │ ├── sso-gitlab.svg │ │ ├── sso-google.svg │ │ ├── sso-microsoft.svg │ │ └── sso-steam.svg │ └── palette.svg ├── images │ ├── 404.svg │ ├── categories │ │ ├── client.svg │ │ └── server.svg │ ├── external │ │ ├── apple.svg │ │ ├── atlauncher.svg │ │ ├── bmac.svg │ │ ├── curseforge.svg │ │ ├── discord.svg │ │ ├── gdlauncher.png │ │ ├── kofi.svg │ │ ├── multimc.webp │ │ ├── opencollective.svg │ │ ├── patreon.svg │ │ ├── paypal.svg │ │ ├── prism.svg │ │ ├── tremendous.svg │ │ ├── venmo-small.svg │ │ ├── venmo.svg │ │ └── windows.svg │ ├── illustrations │ │ ├── follow_illustration.svg │ │ ├── security.svg │ │ └── up_to_date.svg │ ├── logo.svg │ ├── sidebar │ │ ├── admin.svg │ │ ├── analytics.svg │ │ ├── devtools.svg │ │ ├── home.svg │ │ ├── mod.svg │ │ ├── modpack.svg │ │ ├── notifications.svg │ │ ├── projects.svg │ │ └── settings.svg │ └── utils │ │ ├── align-left.svg │ │ ├── archive.svg │ │ ├── asterisk.svg │ │ ├── bell-ring.svg │ │ ├── bell.svg │ │ ├── book-text.svg │ │ ├── box.svg │ │ ├── calendar-clock.svg │ │ ├── calendar.svg │ │ ├── chart.svg │ │ ├── check-check.svg │ │ ├── check-circle.svg │ │ ├── check.svg │ │ ├── chevron-left.svg │ │ ├── chevron-right.svg │ │ ├── clear.svg │ │ ├── client.svg │ │ ├── clipboard-copy.svg │ │ ├── coins.svg │ │ ├── contract.svg │ │ ├── copyright.svg │ │ ├── crown.svg │ │ ├── currency.svg │ │ ├── dashboard.svg │ │ ├── download.svg │ │ ├── dropdown.svg │ │ ├── edit.svg │ │ ├── exit.svg │ │ ├── expand.svg │ │ ├── external.svg │ │ ├── eye-off.svg │ │ ├── eye.svg │ │ ├── file-text.svg │ │ ├── file.svg │ │ ├── filter.svg │ │ ├── gap.svg │ │ ├── github.svg │ │ ├── globe.svg │ │ ├── grid.svg │ │ ├── hamburger.svg │ │ ├── hash.svg │ │ ├── heart-handshake.svg │ │ ├── heart.svg │ │ ├── history.svg │ │ ├── image.svg │ │ ├── info.svg │ │ ├── issues.svg │ │ ├── key.svg │ │ ├── languages.svg │ │ ├── left-arrow.svg │ │ ├── lightbulb.svg │ │ ├── link.svg │ │ ├── list-end.svg │ │ ├── list.svg │ │ ├── lock.svg │ │ ├── log-out.svg │ │ ├── message.svg │ │ ├── mic.svg │ │ ├── modrinth.svg │ │ ├── monitor-smartphone.svg │ │ ├── moon.svg │ │ ├── more-horizontal.svg │ │ ├── organization.svg │ │ ├── paintbrush.svg │ │ ├── plus.svg │ │ ├── radio-button-checked.svg │ │ ├── radio-button.svg │ │ ├── reply.svg │ │ ├── report.svg │ │ ├── right-arrow.svg │ │ ├── save.svg │ │ ├── search.svg │ │ ├── send.svg │ │ ├── server.svg │ │ ├── settings.svg │ │ ├── shield.svg │ │ ├── slash.svg │ │ ├── sort-asc.svg │ │ ├── sort-desc.svg │ │ ├── star.svg │ │ ├── sun.svg │ │ ├── sunrise.svg │ │ ├── tag.svg │ │ ├── tags.svg │ │ ├── transfer.svg │ │ ├── trash.svg │ │ ├── undo.svg │ │ ├── unknown-donation.svg │ │ ├── unknown.svg │ │ ├── updated.svg │ │ ├── upload.svg │ │ ├── user-plus.svg │ │ ├── user-x.svg │ │ ├── user.svg │ │ ├── users.svg │ │ ├── version.svg │ │ ├── wiki.svg │ │ ├── world.svg │ │ └── x.svg └── styles │ ├── components.scss │ ├── global.scss │ ├── layout.scss │ └── utils.scss ├── components ├── brand │ ├── LogoAnimated.vue │ └── TextLogo.vue └── ui │ ├── Avatar.vue │ ├── Badge.vue │ ├── Breadcrumbs.vue │ ├── Checkbox.vue │ ├── Chips.vue │ ├── CollectionCreateModal.vue │ ├── ConditionalNuxtLink.vue │ ├── CopyCode.vue │ ├── DoubleIcon.vue │ ├── DropArea.vue │ ├── EnvironmentIndicator.vue │ ├── FileInput.vue │ ├── MessageBanner.vue │ ├── Modal.vue │ ├── ModalConfirm.vue │ ├── ModalCreation.vue │ ├── ModerationChecklist.vue │ ├── NavRow.vue │ ├── NavStack.vue │ ├── NavStackItem.vue │ ├── NotificationItem.vue │ ├── Notifications.vue │ ├── OrganizationCreateModal.vue │ ├── OrganizationProjectTransferModal.vue │ ├── Pagination.vue │ ├── ProjectCard.vue │ ├── ProjectMemberHeader.vue │ ├── VersionFilterControl.vue │ ├── charts │ ├── Chart.client.vue │ ├── ChartDisplay.vue │ └── CompactChart.client.vue │ ├── modrinth-loading-indicator.ts │ ├── report │ ├── ReportInfo.vue │ ├── ReportView.vue │ └── ReportsList.vue │ ├── search │ ├── Categories.vue │ └── SearchFilter.vue │ └── thread │ ├── ConversationThread.vue │ ├── ThreadMessage.vue │ └── ThreadSummary.vue ├── composables ├── auth.js ├── auth │ └── scopes.ts ├── auto-ref.ts ├── compact-number.ts ├── cosmetics.js ├── date.js ├── display-names.ts ├── featureFlags.ts ├── fetch.js ├── how-ago.ts ├── image-upload.ts ├── loading.js ├── notifs.js ├── nuxt-bugfest.ts ├── query.js ├── route-params.js ├── tag.js ├── theme.js ├── use-client-try.ts └── user.js ├── crowdin.yml ├── error.vue ├── helpers ├── events.ts ├── fileUtils.js ├── highlight.js ├── infer.js ├── notifications.js ├── package.js ├── projects.js ├── teams.js ├── threads.js └── users.js ├── layouts └── default.vue ├── locales └── en-US │ ├── index.json │ ├── languages.json │ └── meta.json ├── middleware └── auth.js ├── nuxt.config.ts ├── package.json ├── pages ├── [type] │ ├── [id].vue │ └── [id] │ │ ├── changelog.vue │ │ ├── gallery.vue │ │ ├── index.vue │ │ ├── moderation.vue │ │ ├── settings │ │ ├── analytics.vue │ │ ├── description.vue │ │ ├── index.vue │ │ ├── license.vue │ │ ├── links.vue │ │ ├── members.vue │ │ └── tags.vue │ │ ├── version │ │ ├── [version].vue │ │ └── [version] │ │ │ └── edit.vue │ │ └── versions.vue ├── app.vue ├── auth.vue ├── auth │ ├── authorize.vue │ ├── reset-password.vue │ ├── sign-in.vue │ ├── sign-up.vue │ ├── verify-email.vue │ └── welcome.vue ├── collection │ ├── [id].vue │ └── [id] │ │ └── [projectType].vue ├── dashboard.vue ├── dashboard │ ├── analytics.vue │ ├── collections.vue │ ├── index.vue │ ├── notifications.vue │ ├── notifications │ │ └── history.vue │ ├── organizations.vue │ ├── projects.vue │ ├── report │ │ └── [id].vue │ ├── reports.vue │ └── revenue │ │ ├── index.vue │ │ ├── transfers.vue │ │ └── withdraw.vue ├── flags.vue ├── frog.vue ├── index.vue ├── legal.vue ├── legal │ ├── ccpa.vue │ ├── cmp-info.vue │ ├── cmp.vue │ ├── copyright.vue │ ├── privacy.vue │ ├── rules.vue │ ├── security.vue │ └── terms.vue ├── moderation.vue ├── moderation │ ├── index.vue │ ├── report │ │ └── [id].vue │ ├── reports.vue │ └── review.vue ├── organization │ ├── [id].vue │ └── [id] │ │ ├── [projectType].vue │ │ └── settings │ │ ├── analytics.vue │ │ ├── index.vue │ │ ├── members.vue │ │ └── projects.vue ├── report.vue ├── search │ └── [searchProjectType].vue ├── settings.vue ├── settings │ ├── account.vue │ ├── applications.vue │ ├── authorizations.vue │ ├── index.vue │ ├── language.vue │ ├── pats.vue │ ├── profile.vue │ └── sessions.vue └── user │ ├── [id].vue │ └── [id] │ └── [projectType].vue ├── patches ├── markdown-it@13.0.1.patch └── readable-stream@2.3.8.patch ├── plugins ├── 1.theme.js ├── dayjs.js ├── scroll.client.js ├── shorthands.js └── tooltip.js ├── pnpm-lock.yaml ├── public ├── favicon-light.ico ├── favicon.ico ├── opensearch.xml └── robots.txt ├── server ├── plugins │ └── theme.js └── routes │ └── .well-known │ └── change-password.ts ├── tsconfig.json ├── types ├── fusejs.d.ts └── vintl.d.ts ├── utils ├── analytics.js ├── common-messages.ts ├── i18n-project-type.ts ├── permissions.ts ├── report-helpers.ts └── vue-children.ts └── vercel.json /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | max_line_length = 100 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | /** @type {import("eslint").ESLint.ConfigData} */ 3 | module.exports = { 4 | root: true, 5 | extends: [ 6 | 'eslint:recommended', 7 | 'plugin:@typescript-eslint/recommended', 8 | 'plugin:vue/vue3-recommended', 9 | '@nuxtjs/eslint-config-typescript', 10 | 'plugin:prettier/recommended', // Integrate Prettier into ESLint 11 | 'prettier', // Disable unnecessary ESLint rules in the presence of Prettier 12 | 'plugin:import/recommended', 13 | 'plugin:import/typescript', 14 | ], 15 | rules: { 16 | 'no-console': 'off', 17 | 'vue/no-v-html': 'off', 18 | 'vue/multi-word-component-names': 'off', 19 | 'import/extensions': ['error', 'always', { ignorePackages: true }], 20 | }, 21 | settings: { 22 | 'import/parsers': { 23 | '@typescript-eslint/parser': ['.ts', '.tsx'], 24 | }, 25 | 'import/resolver': { 26 | typescript: true, 27 | }, 28 | }, 29 | } 30 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.yml: -------------------------------------------------------------------------------- 1 | name: Bug report 2 | description: Create a report to help us improve Modrinth 3 | labels: [bug] 4 | body: 5 | - type: textarea 6 | attributes: 7 | label: Describe the bug 8 | description: A clear and concise description of what the bug is. 9 | validations: 10 | required: false 11 | - type: textarea 12 | attributes: 13 | label: Steps to reproduce 14 | description: Steps to reproduce the behavior. 15 | placeholder: | 16 | 1. Go to '...' 17 | 2. Click on '...' 18 | 3. Scroll down to '...' 19 | 4. See error 20 | validations: 21 | required: false 22 | - type: textarea 23 | attributes: 24 | label: Expected behavior 25 | description: A clear and concise description of what you expected to happen. 26 | validations: 27 | required: false 28 | - type: textarea 29 | attributes: 30 | label: Additional context 31 | description: Add any other context about the problem here. 32 | validations: 33 | required: false 34 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: true 2 | contact_links: 3 | - name: Discord 4 | about: Ask questions on our Discord Server. 5 | url: https://discord.modrinth.com 6 | - name: Roadmap 7 | about: View our Roadmap. Please do not open issues for items on our roadmap. 8 | url: https://roadmap.modrinth.com 9 | - name: Discussions (Feature requests) 10 | about: | 11 | Please use Issues for reporting bugs and suggesting enhancements to existing features. 12 | Suggestions for new features should be made as a Discussion. 13 | url: https://github.com/orgs/modrinth/discussions/categories/feature-requests 14 | - name: Documentation 15 | about: Useful documentation about Modrinth, its API, and how you can contribute. 16 | url: https://docs.modrinth.com 17 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/enhancement.yml: -------------------------------------------------------------------------------- 1 | name: Enhancement 2 | description: Suggest an enhancement for an existing Modrinth feature 3 | labels: [enhancement] 4 | body: 5 | - type: textarea 6 | attributes: 7 | label: Is your suggested enhancement related to a problem? Please describe. 8 | description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 9 | validations: 10 | required: false 11 | - type: textarea 12 | attributes: 13 | label: Describe the solution you'd like 14 | description: A clear and concise description of what you want to happen. 15 | validations: 16 | required: false 17 | - type: textarea 18 | attributes: 19 | label: Describe alternatives you've considered 20 | description: A clear and concise description of any alternative solutions or features you've considered. 21 | validations: 22 | required: false 23 | - type: textarea 24 | attributes: 25 | label: Additional context 26 | description: Add any other context or screenshots about the suggested enhancement here. 27 | validations: 28 | required: false 29 | -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: Deploy 2 | 3 | on: push 4 | 5 | jobs: 6 | deploy: 7 | if: github.repository_owner == 'modrinth' 8 | runs-on: ubuntu-latest 9 | permissions: 10 | contents: read 11 | deployments: write 12 | steps: 13 | - name: Cloudflare Pages deployment 14 | uses: WalshyDev/cf-pages-await@v1 15 | with: 16 | apiToken: ${{ secrets.CF_API_TOKEN }} 17 | accountId: '9ddae624c98677d68d93df6e524a6061' 18 | project: 'knossos' 19 | githubToken: ${{ secrets.GITHUB_TOKEN }} 20 | commitHash: ${{ steps.push-changes.outputs.commit-hash }} 21 | -------------------------------------------------------------------------------- /.github/workflows/nuxt.yml: -------------------------------------------------------------------------------- 1 | name: Build + Lint 2 | 3 | on: 4 | push: 5 | branches: [master] 6 | pull_request: 7 | branches: [master] 8 | 9 | jobs: 10 | build: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: Checkout 14 | uses: actions/checkout@v3 15 | - name: Use Node.js 16 | uses: actions/setup-node@v3 17 | with: 18 | node-version: 18.x 19 | - name: Install pnpm via corepack 20 | shell: bash 21 | run: | 22 | corepack enable 23 | corepack prepare --activate 24 | - name: Get pnpm store directory 25 | id: pnpm-cache 26 | shell: bash 27 | run: | 28 | echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT 29 | - name: Setup pnpm cache 30 | uses: actions/cache@v3 31 | with: 32 | path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} 33 | key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} 34 | restore-keys: | 35 | ${{ runner.os }}-pnpm-store- 36 | - name: Install dependencies 37 | run: pnpm install 38 | - name: Run Lint 39 | run: pnpm lint 40 | - name: Build 41 | run: pnpm build 42 | -------------------------------------------------------------------------------- /.github/workflows/regenerate.yml: -------------------------------------------------------------------------------- 1 | name: Regenerate tags 2 | 3 | on: 4 | schedule: 5 | - cron: '*/30 * * * *' 6 | 7 | jobs: 8 | regenerate: 9 | runs-on: ubuntu-latest 10 | if: github.repository_owner == 'modrinth' 11 | steps: 12 | - name: Re-deploy site 13 | run: | 14 | curl -X POST \ 15 | ${{ secrets.CLOUDFLARE_DEPLOY_URL }} 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log* 3 | .nuxt 4 | .nitro 5 | .cache 6 | .output 7 | .env 8 | .dev.vars 9 | dist 10 | .wrangler/ 11 | 12 | generated/ 13 | !.gitkeep 14 | 15 | # Created by .ignore support plugin (hsz.mobi) 16 | ### Node template 17 | # Logs 18 | /logs 19 | npm-debug.log* 20 | yarn-debug.log* 21 | yarn-error.log* 22 | 23 | 24 | # Runtime data 25 | pids 26 | *.pid 27 | *.seed 28 | *.pid.lock 29 | 30 | # Directory for instrumented libs generated by jscoverage/JSCover 31 | lib-cov 32 | 33 | # Coverage directory used by tools like istanbul 34 | coverage 35 | 36 | # nyc test coverage 37 | .nyc_output 38 | 39 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 40 | .grunt 41 | 42 | # Bower dependency directory (https://bower.io/) 43 | bower_components 44 | 45 | # node-waf configuration 46 | .lock-wscript 47 | 48 | # Compiled binary addons (https://nodejs.org/api/addons.html) 49 | build/Release 50 | 51 | # Dependency directories 52 | jspm_packages/ 53 | 54 | # TypeScript v1 declaration files 55 | typings/ 56 | 57 | # Optional npm cache directory 58 | .npm 59 | 60 | # Optional eslint cache 61 | .eslintcache 62 | 63 | # Optional REPL history 64 | .node_repl_history 65 | 66 | # Output of 'npm pack' 67 | *.tgz 68 | 69 | # Yarn Integrity file 70 | .yarn-integrity 71 | 72 | # Serverless directories 73 | .serverless 74 | 75 | # IDE / Editor 76 | .idea 77 | 78 | # Service worker 79 | sw.* 80 | 81 | # macOS 82 | .DS_Store 83 | 84 | # Vim swap files 85 | *.swp 86 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Editor-based HTTP Client requests 5 | /httpRequests/ 6 | -------------------------------------------------------------------------------- /.idea/discord.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | -------------------------------------------------------------------------------- /.idea/knossos.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | shamefully-hoist=true 2 | strict-peer-dependencies=false 3 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log* 3 | .nuxt 4 | .nitro 5 | .cache 6 | .output 7 | .env 8 | dist 9 | *.md 10 | 11 | generated/ 12 | !.gitkeep 13 | 14 | # Created by .ignore support plugin (hsz.mobi) 15 | ### Node template 16 | # Logs 17 | /logs 18 | npm-debug.log* 19 | yarn-debug.log* 20 | yarn-error.log* 21 | 22 | 23 | # Runtime data 24 | pids 25 | *.pid 26 | *.seed 27 | *.pid.lock 28 | 29 | # Directory for instrumented libs generated by jscoverage/JSCover 30 | lib-cov 31 | 32 | # Coverage directory used by tools like istanbul 33 | coverage 34 | 35 | # nyc test coverage 36 | .nyc_output 37 | 38 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 39 | .grunt 40 | 41 | # Bower dependency directory (https://bower.io/) 42 | bower_components 43 | 44 | # node-waf configuration 45 | .lock-wscript 46 | 47 | # Compiled binary addons (https://nodejs.org/api/addons.html) 48 | build/Release 49 | 50 | # Dependency directories 51 | jspm_packages/ 52 | 53 | # TypeScript v1 declaration files 54 | typings/ 55 | 56 | # Optional npm cache directory 57 | .npm 58 | 59 | # Optional eslint cache 60 | .eslintcache 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # Serverless directories 72 | .serverless 73 | 74 | # IDE / Editor 75 | .idea 76 | 77 | # Service worker 78 | sw.* 79 | 80 | # macOS 81 | .DS_Store 82 | 83 | # Vim swap files 84 | *.swp 85 | 86 | # pnpm files 87 | pnpm-lock.yaml 88 | /.npmrc 89 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 100, 3 | "semi": false, 4 | "singleQuote": true, 5 | "endOfLine": "auto" 6 | } 7 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "prettier.endOfLine": "lf", 3 | "editor.formatOnSave": true 4 | } 5 | -------------------------------------------------------------------------------- /COPYING.md: -------------------------------------------------------------------------------- 1 | # Copying 2 | 3 | The source code of the knossos repository is licensed under the GNU Affero General Public License, Version 3 only, which is provided in the file [LICENSE](./LICENSE). However, some files listed below are licensed under a different license. 4 | 5 | ## Modrinth logo 6 | 7 | Any files depicting the Modrinth branding, including the wrench-in-labyrinth logo, the landing image, and variations thereof, are licensed as follows: 8 | 9 | > All rights reserved. © 2020-2024 Rinth, Inc. 10 | 11 | This includes, but may not be limited to, the following files: 12 | 13 | - assets/images/404.svg 14 | - assets/images/logo.svg 15 | - components/brand/* 16 | - static/favicon.ico 17 | - static/favicon-light.ico 18 | 19 | ## External logos 20 | 21 | The following files are owned by their respective copyright holders and must be used within each of their Brand Guidelines: 22 | 23 | - assets/images/external/* 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Knossos is now known as `frontend` in Modrinth's monorepo here: https://github.com/modrinth/code/tree/main/apps/frontend 2 | This repo is archived and will no longer be updated. 3 | -------------------------------------------------------------------------------- /app.vue: -------------------------------------------------------------------------------- 1 | 8 | 12 | -------------------------------------------------------------------------------- /assets/icons/auth/key.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/icons/auth/mail.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/icons/auth/sso-discord.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/icons/auth/sso-github.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/icons/auth/sso-gitlab.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/icons/auth/sso-google.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /assets/icons/auth/sso-microsoft.svg: -------------------------------------------------------------------------------- 1 | MS-SymbolLockup 2 | -------------------------------------------------------------------------------- /assets/icons/auth/sso-steam.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/icons/palette.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/categories/client.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/categories/server.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/external/apple.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Black Logo Square 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /assets/images/external/atlauncher.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/external/curseforge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/images/external/discord.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /assets/images/external/gdlauncher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modrinth/knossos/18392ac6b8429733428f9d4de93fe4e1fd8e4028/assets/images/external/gdlauncher.png -------------------------------------------------------------------------------- /assets/images/external/kofi.svg: -------------------------------------------------------------------------------- 1 | Ko-fi -------------------------------------------------------------------------------- /assets/images/external/multimc.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modrinth/knossos/18392ac6b8429733428f9d4de93fe4e1fd8e4028/assets/images/external/multimc.webp -------------------------------------------------------------------------------- /assets/images/external/opencollective.svg: -------------------------------------------------------------------------------- 1 | Open Collective -------------------------------------------------------------------------------- /assets/images/external/patreon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | -------------------------------------------------------------------------------- /assets/images/external/paypal.svg: -------------------------------------------------------------------------------- 1 | PayPal -------------------------------------------------------------------------------- /assets/images/external/tremendous.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/images/external/venmo-small.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/images/external/venmo.svg: -------------------------------------------------------------------------------- 1 | 2 | 9 | 12 | 16 | 20 | 24 | 28 | 32 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /assets/images/external/windows.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/images/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/sidebar/admin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/images/sidebar/analytics.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/sidebar/devtools.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/sidebar/home.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/sidebar/mod.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/images/sidebar/modpack.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/images/sidebar/notifications.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/sidebar/projects.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /assets/images/sidebar/settings.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/align-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/utils/archive.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/utils/asterisk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/utils/bell-ring.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/images/utils/bell.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/utils/book-text.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/utils/box.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/utils/calendar-clock.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/calendar.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/utils/chart.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/images/utils/check-check.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/utils/check-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/images/utils/check.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/utils/chevron-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/images/utils/chevron-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/clear.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/utils/client.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/utils/clipboard-copy.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/coins.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/images/utils/contract.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/copyright.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/utils/crown.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/currency.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/utils/dashboard.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/images/utils/download.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/images/utils/dropdown.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/images/utils/edit.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/utils/exit.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/expand.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/images/utils/external.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/images/utils/eye-off.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/eye.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/file-text.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /assets/images/utils/file.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/filter.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/utils/gap.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/utils/github.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/utils/globe.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/utils/grid.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/images/utils/hamburger.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/images/utils/hash.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/heart-handshake.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/images/utils/heart.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/images/utils/history.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/utils/image.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/utils/info.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/issues.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/key.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/languages.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/utils/left-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/utils/lightbulb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/utils/link.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/utils/list-end.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/images/utils/list.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /assets/images/utils/lock.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/utils/log-out.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/images/utils/message.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/images/utils/mic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/utils/modrinth.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/utils/monitor-smartphone.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/utils/moon.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/utils/more-horizontal.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/utils/organization.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/paintbrush.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/utils/plus.svg: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /assets/images/utils/radio-button-checked.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/radio-button.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/reply.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/utils/report.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/right-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/utils/save.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/utils/send.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/utils/server.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/settings.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /assets/images/utils/shield.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/utils/slash.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/utils/sort-asc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/images/utils/sort-desc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/images/utils/star.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/sun.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /assets/images/utils/sunrise.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/tag.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/utils/tags.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/utils/transfer.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/images/utils/trash.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/undo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/utils/unknown-donation.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/utils/unknown.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/utils/updated.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/upload.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/user-plus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/images/utils/user-x.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/images/utils/user.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/utils/users.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/images/utils/version.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/wiki.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/utils/world.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/utils/x.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /assets/styles/layout.scss: -------------------------------------------------------------------------------- 1 | .columns { 2 | display: flex; 3 | 4 | @for $i from 1 through 5 { 5 | .column-grow-#{$i} { 6 | flex-grow: $i; 7 | } 8 | } 9 | } 10 | 11 | .rows { 12 | display: flex; 13 | flex-direction: column; 14 | 15 | @for $i from 1 through 4 { 16 | .row-grow-#{$i} { 17 | flex-grow: $i; 18 | } 19 | } 20 | } 21 | .page-container { 22 | margin: var(--spacing-card-md); 23 | margin-top: 0; 24 | 25 | .page-contents { 26 | display: flex; 27 | flex-direction: column; 28 | .content { 29 | width: 100%; 30 | } 31 | @media screen and (min-width: 1024px) { 32 | flex-direction: row; 33 | //max-width: 1280px; 34 | margin-left: auto; 35 | margin-right: auto; 36 | } 37 | } 38 | } 39 | 40 | .normal-page { 41 | display: grid; 42 | padding: 0 0.75rem; 43 | 44 | grid-template: 45 | 'sidebar' 46 | 'content' 47 | 'info' 48 | / 100%; 49 | 50 | @media screen and (max-width: 1024px) { 51 | margin-top: var(--spacing-card-md); 52 | } 53 | 54 | .normal-page__sidebar { 55 | grid-area: sidebar; 56 | } 57 | 58 | .normal-page__info { 59 | grid-area: info; 60 | } 61 | 62 | .normal-page__content { 63 | grid-area: content; 64 | } 65 | } 66 | 67 | .site-header { 68 | margin: 0 0.75rem; 69 | } 70 | 71 | @media (min-width: 1024px) { 72 | .full-page { 73 | margin: 0 auto; 74 | max-width: min(1280px, 100vw); 75 | width: 80rem; 76 | } 77 | 78 | .normal-page { 79 | margin: 0 auto; 80 | max-width: 80rem; 81 | column-gap: 0.75rem; 82 | 83 | grid-template: 84 | 'sidebar content' auto 85 | 'info content' auto 86 | 'dummy content' 1fr 87 | / 20rem 1fr; 88 | 89 | &.alt-layout { 90 | grid-template: 91 | 'content sidebar' auto 92 | 'content info' auto 93 | 'content dummy' 1fr 94 | / 1fr 20rem; 95 | } 96 | 97 | &.no-sidebar { 98 | grid-template: 99 | 'header header' auto 100 | 'content content' auto 101 | 'info info' auto 102 | 'dummy dummy' 1fr 103 | / 1fr 1fr; 104 | 105 | .normal-page__content { 106 | grid-area: content; 107 | max-width: 100%; 108 | } 109 | } 110 | } 111 | 112 | .normal-page__sidebar { 113 | min-width: 20rem; 114 | width: 20rem; 115 | } 116 | 117 | .normal-page__content { 118 | max-width: calc(60rem - 0.75rem); 119 | overflow-x: hidden; 120 | } 121 | } 122 | -------------------------------------------------------------------------------- /assets/styles/utils.scss: -------------------------------------------------------------------------------- 1 | .hidden { 2 | display: none !important; 3 | } 4 | 5 | .w-100 { 6 | width: 100%; 7 | } 8 | 9 | body { 10 | overflow-y: scroll; 11 | overflow-x: hidden; 12 | } 13 | 14 | .text-container p { 15 | line-height: 1.3; 16 | } 17 | 18 | // From the Bootstrap project 19 | // The MIT License (MIT) 20 | // Copyright (c) 2011-2023 The Bootstrap Authors 21 | // https://github.com/twbs/bootstrap/blob/2f617215755b066904248525a8c56ea425dde871/scss/mixins/_visually-hidden.scss#L8 22 | .visually-hidden { 23 | width: 1px !important; 24 | height: 1px !important; 25 | padding: 0 !important; 26 | margin: -1px !important; 27 | overflow: hidden !important; 28 | clip: rect(0, 0, 0, 0) !important; 29 | white-space: nowrap !important; 30 | border: 0 !important; 31 | 32 | &:not(caption) { 33 | position: absolute !important; 34 | } 35 | } 36 | 37 | .preserve-lines { 38 | white-space: pre-line; 39 | } 40 | -------------------------------------------------------------------------------- /components/ui/Avatar.vue: -------------------------------------------------------------------------------- 1 | 36 | 37 | 83 | 84 | 138 | -------------------------------------------------------------------------------- /components/ui/Breadcrumbs.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 31 | 32 | 55 | -------------------------------------------------------------------------------- /components/ui/Checkbox.vue: -------------------------------------------------------------------------------- 1 | 26 | 27 | 69 | 70 | 146 | -------------------------------------------------------------------------------- /components/ui/Chips.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 72 | 73 | 102 | -------------------------------------------------------------------------------- /components/ui/CollectionCreateModal.vue: -------------------------------------------------------------------------------- 1 |