2 Commits

Author SHA1 Message Date
8b5705c12f 0.4.2
All checks were successful
Deploy to Production / deploy (push) Successful in 13s
2026-02-27 07:03:14 +00:00
a3bc069029 fix: responsive layout for url cleaner and sniffer icon alignment 2026-02-27 07:02:58 +00:00
6 changed files with 65 additions and 6 deletions

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "tools-app", "name": "tools-app",
"version": "0.4.1", "version": "0.4.2",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "tools-app", "name": "tools-app",
"version": "0.4.1", "version": "0.4.2",
"dependencies": { "dependencies": {
"lucide-vue-next": "^0.575.0", "lucide-vue-next": "^0.575.0",
"vue": "^3.5.25", "vue": "^3.5.25",

View File

@@ -1,7 +1,7 @@
{ {
"name": "tools-app", "name": "tools-app",
"private": true, "private": true,
"version": "0.4.1", "version": "0.4.2",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",

View File

@@ -51,7 +51,9 @@ const clearText = () => {
<div class="tool-panel"> <div class="tool-panel">
<div class="tool-header"> <div class="tool-header">
<h2 class="tool-title">Clipboard Sniffer</h2> <h2 class="tool-title">Clipboard Sniffer</h2>
<ExtensionStatus :isReady="isExtensionReady" class="extension-indicator" /> <div class="extension-indicator-wrapper">
<ExtensionStatus :isReady="isExtensionReady" />
</div>
</div> </div>
<div class="controls"> <div class="controls">
@@ -145,10 +147,11 @@ const clearText = () => {
border-color: var(--primary-accent); border-color: var(--primary-accent);
} }
.extension-indicator { .extension-indicator-wrapper {
position: absolute; position: absolute;
right: 0; right: 0;
top: 50%; top: 50%;
transform: translateY(-50%); transform: translateY(-50%);
display: flex;
} }
</style> </style>

View File

@@ -305,6 +305,21 @@ onUnmounted(() => {
gap: 1rem; gap: 1rem;
} }
@media (max-width: 640px) {
.input-wrapper {
flex-direction: column;
}
.watch-toggle {
justify-content: center;
}
.toggle-btn {
width: 100%;
justify-content: center;
}
}
.url-input { .url-input {
flex: 1; flex: 1;
padding: 0.8rem 1rem; padding: 0.8rem 1rem;

View File

@@ -299,6 +299,12 @@ const resetToDefault = (ruleId) => {
align-items: center; align-items: center;
} }
@media (max-width: 640px) {
.modal-header {
padding: 0.8rem 1.2rem;
}
}
.modal-header h3 { .modal-header h3 {
margin: 0; margin: 0;
font-size: 1.4rem; font-size: 1.4rem;
@@ -325,6 +331,12 @@ const resetToDefault = (ruleId) => {
overflow-y: auto; overflow-y: auto;
} }
@media (max-width: 640px) {
.modal-body {
padding: 1rem 1.2rem;
}
}
.description { .description {
color: var(--text-secondary); color: var(--text-secondary);
margin-bottom: 1.5rem; margin-bottom: 1.5rem;
@@ -353,6 +365,29 @@ const resetToDefault = (ruleId) => {
margin-bottom: 0.8rem; margin-bottom: 0.8rem;
} }
@media (max-width: 640px) {
.form-row {
flex-direction: column;
}
.checkbox-row {
flex-direction: column;
align-items: stretch;
gap: 1rem;
}
.checkbox-group {
flex-direction: column;
align-items: flex-start;
gap: 0.8rem;
}
.btn-neon {
width: 100%;
justify-content: center;
}
}
.checkbox-row { .checkbox-row {
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;

View File

@@ -1,3 +1,9 @@
<script>
export default {
inheritAttrs: false
}
</script>
<script setup> <script setup>
import { ref } from 'vue' import { ref } from 'vue'
import { Plug, Plus, X } from 'lucide-vue-next' import { Plug, Plus, X } from 'lucide-vue-next'
@@ -10,7 +16,7 @@ const showModal = ref(false)
</script> </script>
<template> <template>
<div class="extension-status" :class="{ 'is-ready': isReady }" @click="showModal = true" :title="isReady ? 'Extension Connected' : 'Extension Not Connected'"> <div class="extension-status" v-bind="$attrs" :class="{ 'is-ready': isReady }" @click="showModal = true" :title="isReady ? 'Extension Connected' : 'Extension Not Connected'">
<Plug v-if="isReady" size="18" /> <Plug v-if="isReady" size="18" />
<Plus v-else size="18" /> <Plus v-else size="18" />
</div> </div>