feat: remove hover animation for tabbedcontainer + fix publish script with detailed versioning

This commit is contained in:
SethBurkart123
2025-03-04 18:54:46 +11:00
parent 41bb5996df
commit d7b541c814
5 changed files with 1265 additions and 1045 deletions
+24 -6
View File
@@ -5,26 +5,44 @@ const path = require('path');
function getLatestVersion(files) { function getLatestVersion(files) {
console.log('Files passed to getLatestVersion:', files); console.log('Files passed to getLatestVersion:', files);
const versions = files.map(file => { const versions = files.map(file => {
const match = file.match(/@(\d+\.\d+\.\d+)-/); const match = file.match(/@([\d\.]+)-/);
console.log('Matching file:', file, 'Version found:', match ? match[1] : 'None'); console.log('Matching file:', file, 'Version found:', match ? match[1] : 'None');
return match ? match[1] : null;
if (!match) return null;
const fullVersion = match[1]; // Original version (e.g., 3.4.5.1)
const semverVersion = fullVersion.split('.').slice(0, 3).join('.'); // Trim to 3.4.5
return { fullVersion, semverVersion };
}).filter(Boolean); }).filter(Boolean);
console.log('Extracted versions:', versions); console.log('Extracted versions:', versions.map(v => v.semverVersion));
const latestVersion = semver.maxSatisfying(versions, '*');
console.log('Latest version:', latestVersion); // Find latest version using the trimmed semver format
const latestSemver = semver.maxSatisfying(versions.map(v => v.semverVersion), '*');
console.log('Latest SemVer-compatible version:', latestSemver);
// Get the full version that matches the latest SemVer version
const latestVersion = versions.find(v => v.semverVersion === latestSemver)?.fullVersion || null;
console.log('Final selected latest version:', latestVersion);
return latestVersion; return latestVersion;
} }
function getLatestFiles(browser) { function getLatestFiles(browser) {
const pattern = `dist/betterseqtaplus@*-*${browser}.zip`; const pattern = `dist/betterseqtaplus@*-*${browser}.zip`;
console.log('Glob pattern:', pattern); console.log('Glob pattern:', pattern);
const files = glob.sync(pattern); const files = glob.sync(pattern);
console.log('Files found for browser', browser, ':', files); console.log('Files found for browser', browser, ':', files);
const latestVersion = getLatestVersion(files); const latestVersion = getLatestVersion(files);
const latestFile = files.find(file => file.includes(latestVersion)); // Find the exact file by matching the original full version
const latestFile = files.find(file => file.includes(`@${latestVersion}-`));
console.log('Latest file for browser', browser, ':', latestFile); console.log('Latest file for browser', browser, ':', latestFile);
return latestFile; return latestFile;
} }
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "betterseqtaplus", "name": "betterseqtaplus",
"version": "3.4.5", "version": "3.4.6",
"type": "module", "type": "module",
"description": "Enhance SEQTA Learn's usability and aesthetics! A fork of BetterSEQTA to continue development add add heaps more features!", "description": "Enhance SEQTA Learn's usability and aesthetics! A fork of BetterSEQTA to continue development add add heaps more features!",
"browserslist": "> 0.5%, last 2 versions, not dead", "browserslist": "> 0.5%, last 2 versions, not dead",
+1166 -957
View File
File diff suppressed because it is too large Load Diff
@@ -5,7 +5,6 @@
let { tabs } = $props<{ tabs: { title: string, Content: any, props?: any }[] }>(); let { tabs } = $props<{ tabs: { title: string, Content: any, props?: any }[] }>();
let activeTab = $state(0); let activeTab = $state(0);
let hoveredTab = $state<number | null>(null);
let containerRef: HTMLElement | null = null; let containerRef: HTMLElement | null = null;
let tabWidth = $state(0); let tabWidth = $state(0);
@@ -24,10 +23,6 @@
return 0; return 0;
}; };
$effect(() => {
calcXPos(hoveredTab);
});
onMount(() => { onMount(() => {
updateTabWidth(); updateTabWidth();
@@ -45,19 +40,17 @@
</script> </script>
<div class="flex flex-col h-full"> <div class="flex flex-col h-full">
<div bind:this={containerRef} class="top-0 z-10 text-[0.875rem] pb-0.5 mx-4 tab-width-container"> <div class="top-0 z-10 text-[0.875rem] pb-0.5 mx-4 px-2 tab-width-container">
<div class="relative flex"> <div bind:this={containerRef} class="relative flex">
<MotionDiv <MotionDiv
class="absolute top-0 left-0 z-0 h-full bg-[#DDDDDD] dark:bg-[#38373D] rounded-full opacity-40 tab-width" class="absolute top-0 left-0 z-0 h-full bg-[#DDDDDD] dark:bg-[#38373D] rounded-full opacity-40 tab-width"
animate={{ x: calcXPos(hoveredTab) }} animate={{ x: calcXPos(activeTab) }}
transition={springTransition} transition={springTransition}
/> />
{#each tabs as { title }, index} {#each tabs as { title }, index}
<button <button
class="relative z-10 flex-1 px-4 py-2 focus-visible:outline-none" class="relative z-10 flex-1 px-4 py-2 focus-visible:outline-none"
onclick={() => activeTab = index} onclick={() => activeTab = index}
onmouseenter={() => hoveredTab = index}
onmouseleave={() => hoveredTab = null}
> >
{title} {title}
</button> </button>
+1 -1
View File
@@ -36,7 +36,7 @@
"matches": ["*://*/*"] "matches": ["*://*/*"]
}, },
{ {
"resources": ["resources/icons/*"], "resources": ["resources/*"],
"matches": ["*://*/*"] "matches": ["*://*/*"]
}, },
{ {