Clean release snapshot

This commit is contained in:
byrongamatos
2026-06-16 18:47:13 +02:00
commit 6c110398b4
574 changed files with 162566 additions and 0 deletions
+8
View File
@@ -0,0 +1,8 @@
{
"id": "app_tour_settings",
"name": "Settings Tour",
"version": "1.0.0",
"bundled": true,
"script": "script.js",
"tour": "tour.json"
}
+68
View File
@@ -0,0 +1,68 @@
(function () {
'use strict';
var PLUGIN_ID = 'app_tour_settings';
var SCREENS = ['settings'];
function _register() {
try {
window.slopsmithTour.register(PLUGIN_ID, { screens: SCREENS });
} catch (e) {
console.warn('[app_tour_settings] register failed', e);
}
}
if (window.slopsmithTour && typeof window.slopsmithTour.register === 'function') {
_register();
} else {
var deadline = performance.now() + 5000;
var pollId = setInterval(function () {
if (window.slopsmithTour && typeof window.slopsmithTour.register === 'function') {
clearInterval(pollId);
_register();
} else if (performance.now() > deadline) {
clearInterval(pollId);
}
}, 100);
}
// ── Layout nudge ──────────────────────────────────────────────────────
// Tuner plugin parks a FAB at `fixed bottom-5 right-5` on every screen;
// tour engine's ? button sits at bottom:12px right:12px — same corner.
// Nudge the tour UI up when the settings screen is active.
var NUDGE_CLASS = 'app-tour-settings-nudge';
var STYLE_ID = 'app-tour-settings-nudge-style';
function _ensureStyle() {
if (document.getElementById(STYLE_ID)) return;
var s = document.createElement('style');
s.id = STYLE_ID;
s.textContent =
'body.' + NUDGE_CLASS + ' .slopsmith-tour-menu-btn { bottom: 68px; }' +
'body.' + NUDGE_CLASS + ' .slopsmith-tour-menu-popover { bottom: 112px; }' +
'body.' + NUDGE_CLASS + ' .slopsmith-tour-prompt { bottom: 112px; }';
document.head.appendChild(s);
}
function _applyNudge(screenId) {
if (!document.body) return;
document.body.classList.toggle(NUDGE_CLASS, screenId === 'settings');
}
function _initNudge() {
_ensureStyle();
var active = document.querySelector('.screen.active');
_applyNudge(active ? active.id : null);
if (window.slopsmith && typeof window.slopsmith.on === 'function') {
window.slopsmith.on('screen:changed', function (ev) {
_applyNudge(ev && ev.detail && ev.detail.id);
});
}
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', _initNudge, { once: true });
} else {
_initNudge();
}
})();
+84
View File
@@ -0,0 +1,84 @@
{
"version": 1,
"tour": [
{
"id": "welcome",
"title": "Settings tour",
"content": "Quick walk through the controls that matter most on first setup. You can re-run any time from the ? button.",
"shape": "bubble",
"position": "auto"
},
{
"id": "dlc-path",
"selector": "#dlc-path",
"title": "Library folder",
"content": "Point Slopsmith at your library folder. Songs here become your library. Hit Save after changing.",
"shape": "spotlight",
"position": "bottom"
},
{
"id": "default-arrangement",
"selector": "#default-arrangement",
"title": "Default arrangement",
"content": "Which arrangement to land on when a song loads — Lead, Rhythm, Bass, or Auto (pick whatever the song has).",
"shape": "spotlight",
"position": "bottom"
},
{
"id": "av-offset",
"selector": "#setting-av-offset",
"title": "A/V sync offset",
"content": "Shift audio against the note highway in milliseconds. Use the note_detect plugin's auto-calibrate (or [ / ] keys in the player) to dial it in.",
"shape": "spotlight",
"position": "bottom"
},
{
"id": "rescan",
"selector": "#btn-rescan",
"title": "Rescan library",
"content": "Picks up new songs you've dropped into the DLC folder. Full Rescan rebuilds metadata from scratch — slower, only needed after upgrades or corruption.",
"shape": "spotlight",
"position": "bottom"
},
{
"id": "backup",
"selector": "#btn-export-settings",
"title": "Backup and restore",
"content": "Export bundles your core settings plus every plugin's opt-in state into a single file. Import on a fresh install to migrate. Plugin authors declare what gets included via settings.server_files.",
"shape": "spotlight",
"position": "bottom"
},
{
"id": "diagnostics",
"selector": "#btn-diag-export",
"title": "Export Diagnostics",
"content": "Builds a troubleshooting bundle (system info, logs, plugin diagnostics) for bug reports. Use the checkboxes above to control what's included; Redact strips paths and identifiers.",
"shape": "spotlight",
"position": "top"
},
{
"id": "plugins",
"selector": "#plugin-settings-area",
"title": "Per-plugin settings",
"content": "Every installed plugin with its own settings shows up here as a collapsible section. Plugin updates are surfaced at the top of this block.",
"shape": "spotlight",
"position": "top",
"waitFor": "#plugin-settings-area"
},
{
"id": "about",
"selector": "#app-version-about",
"title": "About",
"content": "Version, source code, and license. Slopsmith is AGPL-3.0 — if you fork it, the source has to stay open.",
"shape": "spotlight",
"position": "top"
},
{
"id": "outro",
"title": "Done",
"content": "Plugins ship their own tours too — the ? button surfaces whichever ones apply to the current screen.",
"shape": "bubble",
"position": "auto"
}
]
}