mirror of
https://github.com/BetterSEQTA/BetterSEQTA-Plus.git
synced 2026-06-13 15:14:40 +00:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 30bf345b86 | |||
| 0e98f52058 | |||
| f89508deb2 | |||
| c7b69ad97b | |||
| 2ef8bb215a | |||
| 16273cf012 | |||
| 13d3ccd8e4 | |||
| 7ebc4db9db | |||
| ed9d662ba4 | |||
| 8647e0b272 | |||
| d93abec615 | |||
| 339b409937 | |||
| 860916a5b8 |
@@ -64,7 +64,7 @@ Don't worry- if you get stuck feel free to ask around in the [discord](https://d
|
|||||||
- **🐛 Found a bug?** Open an [issue](https://github.com/BetterSEQTA/BetterSEQTA-plus/issues) or fix it yourself!
|
- **🐛 Found a bug?** Open an [issue](https://github.com/BetterSEQTA/BetterSEQTA-plus/issues) or fix it yourself!
|
||||||
- **💬 Need help?** Join our [Discord community](https://discord.gg/YzmbnCDkat)
|
- **💬 Need help?** Join our [Discord community](https://discord.gg/YzmbnCDkat)
|
||||||
|
|
||||||
We have lots of [`good first issue`](https://github.com/BetterSEQTA/BetterSEQTA-plus/labels/good%20first%20issue) labels perfect for beginners!
|
We have lots of https://github.com/BetterSEQTA/BetterSEQTA-Plus/labels/good%20first%20issue labels perfect for beginners!
|
||||||
|
|
||||||
## Quick Development Setup
|
## Quick Development Setup
|
||||||
|
|
||||||
@@ -85,6 +85,8 @@ npm run dev
|
|||||||
2. Enable "Developer mode"
|
2. Enable "Developer mode"
|
||||||
3. Click "Load unpacked" → Select `dist` folder
|
3. Click "Load unpacked" → Select `dist` folder
|
||||||
4. Visit a SEQTA page to see it work! 🎉
|
4. Visit a SEQTA page to see it work! 🎉
|
||||||
|
> [!WARNING]
|
||||||
|
> Whenever you update the extension while not in dev mode, you will need to use the reload button on the extension page.
|
||||||
|
|
||||||
📚 **Need more details?** Check our [detailed setup guide](./docs/GETTING_STARTED_CONTRIBUTING.md#your-first-30-minutes)
|
📚 **Need more details?** Check our [detailed setup guide](./docs/GETTING_STARTED_CONTRIBUTING.md#your-first-30-minutes)
|
||||||
|
|
||||||
|
|||||||
@@ -230,6 +230,6 @@ Ready to contribute? Here's what to do next:
|
|||||||
Still confused about something? That's totally normal! Here are your options:
|
Still confused about something? That's totally normal! Here are your options:
|
||||||
- 💬 Ask in our [Discord server](https://discord.gg/YzmbnCDkat)
|
- 💬 Ask in our [Discord server](https://discord.gg/YzmbnCDkat)
|
||||||
- 🐛 Open an issue on GitHub
|
- 🐛 Open an issue on GitHub
|
||||||
- 📧 Email us at betterseqta@betterseqta.com
|
- 📧 Email us at betterseqta.plus@gmail.com
|
||||||
|
|
||||||
Remember: **Every expert was once a beginner!** We're here to help you learn and contribute. 🚀
|
Remember: **Every expert was once a beginner!** We're here to help you learn and contribute. 🚀
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "betterseqtaplus",
|
"name": "betterseqtaplus",
|
||||||
"version": "3.4.9",
|
"version": "3.4.10",
|
||||||
"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",
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
"@babel/plugin-transform-runtime": "^7.26.9",
|
"@babel/plugin-transform-runtime": "^7.26.9",
|
||||||
"@babel/runtime": "^7.26.9",
|
"@babel/runtime": "^7.26.9",
|
||||||
"@bedframe/cli": "^0.0.91",
|
"@bedframe/cli": "^0.0.91",
|
||||||
"@crxjs/vite-plugin": "2.0.0-beta.32",
|
"@crxjs/vite-plugin": "2.1.0",
|
||||||
"@types/mime-types": "^2.1.4",
|
"@types/mime-types": "^2.1.4",
|
||||||
"@types/react": "^19.0.10",
|
"@types/react": "^19.0.10",
|
||||||
"@types/react-dom": "^19.0.4",
|
"@types/react-dom": "^19.0.4",
|
||||||
|
|||||||
@@ -1991,13 +1991,17 @@ div.liveEntry {
|
|||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.dailycalMarker {
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
.uiFileHandler .uiButton {
|
.uiFileHandler .uiButton {
|
||||||
border-radius: 32px !important;
|
border-radius: 32px !important;
|
||||||
color: var(--text-primary) !important;
|
color: var(--text-primary) !important;
|
||||||
margin-top: 4px !important;
|
margin-top: 4px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
a.uiFile {
|
a.uiFile:not(.rows) {
|
||||||
display: flex !important;
|
display: flex !important;
|
||||||
height: auto !important;
|
height: auto !important;
|
||||||
width: 200px !important;
|
width: 200px !important;
|
||||||
@@ -2021,6 +2025,7 @@ a.uiFile {
|
|||||||
svg {
|
svg {
|
||||||
color: white;
|
color: white;
|
||||||
position: unset !important;
|
position: unset !important;
|
||||||
|
display: unset !important;
|
||||||
width: auto !important;
|
width: auto !important;
|
||||||
height: 42px !important;
|
height: 42px !important;
|
||||||
z-index: 1 !important;
|
z-index: 1 !important;
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ import {
|
|||||||
defineSettings,
|
defineSettings,
|
||||||
hotkeySetting,
|
hotkeySetting,
|
||||||
} from "../../core/settingsHelpers";
|
} from "../../core/settingsHelpers";
|
||||||
|
import styles from "./src/core/styles.css?inline";
|
||||||
|
|
||||||
// Platform-aware default hotkey
|
// Platform-aware default hotkey
|
||||||
const getDefaultHotkey = () => {
|
const getDefaultHotkey = () => {
|
||||||
const isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0;
|
const isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0;
|
||||||
@@ -82,6 +84,7 @@ export default defineLazyPlugin({
|
|||||||
disableToggle: true,
|
disableToggle: true,
|
||||||
defaultEnabled: false,
|
defaultEnabled: false,
|
||||||
beta: true,
|
beta: true,
|
||||||
|
styles: styles,
|
||||||
|
|
||||||
// Lazy loader - only imports the heavy plugin when actually needed
|
// Lazy loader - only imports the heavy plugin when actually needed
|
||||||
loader: () => import("./src/core/index")
|
loader: () => import("./src/core/index")
|
||||||
|
|||||||
+2
-2
@@ -16,9 +16,9 @@ export async function main() {
|
|||||||
if (settingsState.onoff) {
|
if (settingsState.onoff) {
|
||||||
injectPageState();
|
injectPageState();
|
||||||
|
|
||||||
// TEMP FIX for bug! -> this is a hack to get the injected.css file to have HMR in development mode as this import system is currently broken with crxjs
|
// Rather permanent FIX for bug! -> this is a hack to get the injected.css file to have HMR in development mode as this import system is currently broken with crxjs
|
||||||
if (import.meta.env.MODE === "development") {
|
if (import.meta.env.MODE === "development") {
|
||||||
import("../css/injected.scss");
|
import("@/css/injected.scss");
|
||||||
} else {
|
} else {
|
||||||
const injectedStyle = document.createElement("style");
|
const injectedStyle = document.createElement("style");
|
||||||
injectedStyle.textContent = injectedCSS;
|
injectedStyle.textContent = injectedCSS;
|
||||||
|
|||||||
@@ -41,7 +41,11 @@ export function renderSettingsIfNeeded() {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
const shadow = extensionPopup.attachShadow({ mode: "open" });
|
const shadow = extensionPopup.attachShadow({ mode: "open" });
|
||||||
|
if ('requestIdleCallback' in window) {
|
||||||
requestIdleCallback(() => renderSvelte(Settings, shadow));
|
requestIdleCallback(() => renderSvelte(Settings, shadow));
|
||||||
|
} else {
|
||||||
|
renderSvelte(Settings, shadow);
|
||||||
|
}
|
||||||
isSettingsRendered = true;
|
isSettingsRendered = true;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
|
|||||||
@@ -66,6 +66,15 @@ export function OpenWhatsNewPopup() {
|
|||||||
|
|
||||||
let text = stringToHTML(/* html */ `
|
let text = stringToHTML(/* html */ `
|
||||||
<div class="whatsnewTextContainer" style="height: 50%;overflow-y: scroll;">
|
<div class="whatsnewTextContainer" style="height: 50%;overflow-y: scroll;">
|
||||||
|
|
||||||
|
<h1>3.4.10 - Minor bug fixes</h1>
|
||||||
|
<li>Fixed UI file styling incorrectly applying to documents</li>
|
||||||
|
<li>Fixed missing styles in global search</li>
|
||||||
|
<li>Added icons for image files in file viewer</li>
|
||||||
|
<li>Added rounded corners when dragging calendar events</li>
|
||||||
|
<li>Improved performance of element scanning</li>
|
||||||
|
<li>Other minor improvements</li>
|
||||||
|
|
||||||
<h1>3.4.9 - Bug Fixes and Performance Improvements</h1>
|
<h1>3.4.9 - Bug Fixes and Performance Improvements</h1>
|
||||||
<li>Fixed performance issues with large notices on the homepage</li>
|
<li>Fixed performance issues with large notices on the homepage</li>
|
||||||
<li>Improved performance when global search is disabled</li>
|
<li>Improved performance when global search is disabled</li>
|
||||||
|
|||||||
@@ -57,13 +57,37 @@ class EventManager {
|
|||||||
return { unregister };
|
return { unregister };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private buildSelector(options: EventListenerOptions): string | null {
|
||||||
|
if (options.textContent || options.customCheck) return null;
|
||||||
|
|
||||||
|
let selector = options.elementType || "";
|
||||||
|
if (options.id) {
|
||||||
|
selector += `#${CSS.escape(options.id)}`;
|
||||||
|
}
|
||||||
|
if (options.className) {
|
||||||
|
selector += `.${CSS.escape(options.className)}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
return selector.trim() || null;
|
||||||
|
}
|
||||||
|
|
||||||
private async scanExistingElements(
|
private async scanExistingElements(
|
||||||
options: EventListenerOptions,
|
options: EventListenerOptions,
|
||||||
callback: (element: Element) => void,
|
callback: (element: Element) => void,
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
const root = options.parentElement || document.documentElement;
|
const root = options.parentElement || document.documentElement;
|
||||||
const elements = Array.from(root.getElementsByTagName("*"));
|
const selector = this.buildSelector(options);
|
||||||
|
let elements: Element[] = [];
|
||||||
|
|
||||||
|
if (selector) {
|
||||||
|
elements = Array.from(root.querySelectorAll(selector));
|
||||||
|
if (selector && root.matches && root.matches(selector)) {
|
||||||
elements.unshift(root);
|
elements.unshift(root);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
elements = Array.from(root.getElementsByTagName("*"));
|
||||||
|
elements.unshift(root);
|
||||||
|
}
|
||||||
|
|
||||||
for (let i = 0; i < elements.length; i += this.chunkSize) {
|
for (let i = 0; i < elements.length; i += this.chunkSize) {
|
||||||
const chunk = elements.slice(i, i + this.chunkSize);
|
const chunk = elements.slice(i, i + this.chunkSize);
|
||||||
|
|||||||
Reference in New Issue
Block a user