From 052637d402c35525c31fea53c7899b2678556dee Mon Sep 17 00:00:00 2001 From: Prospector <6166773+Prospector@users.noreply.github.com> Date: Tue, 2 Sep 2025 09:04:28 -0700 Subject: [PATCH] Fix file inputs on Gallery and Versions pages not being selectable with keyboard (#4312) --- apps/frontend/src/components/ui/DropArea.vue | 94 ------------------- .../src/pages/[type]/[id]/gallery.vue | 12 ++- .../src/pages/[type]/[id]/versions.vue | 2 +- packages/ui/src/components/base/FileInput.vue | 10 +- 4 files changed, 17 insertions(+), 101 deletions(-) delete mode 100644 apps/frontend/src/components/ui/DropArea.vue diff --git a/apps/frontend/src/components/ui/DropArea.vue b/apps/frontend/src/components/ui/DropArea.vue deleted file mode 100644 index a688c0cc..00000000 --- a/apps/frontend/src/components/ui/DropArea.vue +++ /dev/null @@ -1,94 +0,0 @@ - - - - - diff --git a/apps/frontend/src/pages/[type]/[id]/gallery.vue b/apps/frontend/src/pages/[type]/[id]/gallery.vue index 7ca3cb7a..92de1e97 100644 --- a/apps/frontend/src/pages/[type]/[id]/gallery.vue +++ b/apps/frontend/src/pages/[type]/[id]/gallery.vue @@ -295,11 +295,14 @@ import { UploadIcon, XIcon, } from '@modrinth/assets' -import { ConfirmModal, injectNotificationManager } from '@modrinth/ui' +import { + ConfirmModal, + DropArea, + FileInput, + injectNotificationManager, + NewModal as Modal, +} from '@modrinth/ui' -import DropArea from '~/components/ui/DropArea.vue' -import FileInput from '~/components/ui/FileInput.vue' -import Modal from '~/components/ui/Modal.vue' import { isPermission } from '~/utils/permissions.ts' const props = defineProps({ @@ -765,7 +768,6 @@ export default defineNuxtComponent({ } .modal-gallery { - padding: var(--spacing-card-bg); display: flex; flex-direction: column; diff --git a/apps/frontend/src/pages/[type]/[id]/versions.vue b/apps/frontend/src/pages/[type]/[id]/versions.vue index c8554480..4e6f94e6 100644 --- a/apps/frontend/src/pages/[type]/[id]/versions.vue +++ b/apps/frontend/src/pages/[type]/[id]/versions.vue @@ -195,12 +195,12 @@ import { import { ButtonStyled, ConfirmModal, + DropArea, FileInput, OverflowMenu, ProjectPageVersions, } from '@modrinth/ui' -import DropArea from '~/components/ui/DropArea.vue' import { acceptFileFromProjectType } from '~/helpers/fileUtils.js' import { isPermission } from '~/utils/permissions.ts' import { reportVersion } from '~/utils/report-helpers.ts' diff --git a/packages/ui/src/components/base/FileInput.vue b/packages/ui/src/components/base/FileInput.vue index 1651ffbb..47502c29 100644 --- a/packages/ui/src/components/base/FileInput.vue +++ b/packages/ui/src/components/base/FileInput.vue @@ -85,11 +85,19 @@ export default defineComponent({ label { flex-direction: unset; max-height: unset; + &:focus-within { + outline: 0.25rem solid #ea80ff; + } + svg { height: 1rem; } input { - display: none; + position: absolute; + height: 1px; + width: 1px; + overflow: hidden; + clip: rect(1px, 1px, 1px, 1px); } &.long-style { display: flex;