5a23783e07
- Add missing modal CSS (.modal-overlay/.modal-dialog/.modal-header): the "Connect to Microsoft" auth modal was rendering unstyled inline at the bottom of the page. Now a centered dialog with backdrop. - Surface OAuth connect errors in the modal instead of silently reopening it with no explanation. - MainLayout: implement IDisposable so event handlers are actually unsubscribed (Dispose existed but was never invoked). - Wire up the Settings theme selector (was a dead control): drop the unsupported Dark option, call sptb.setTheme on save and on load, resolve System via prefers-color-scheme. - Add branded 404 page via UseStatusCodePagesWithReExecute + Routes <NotFound> (blank white page before). - Add .progress-fill.indeterminate animation and .progress-panel. - Home: replace inline JS hover handlers with a .feature-card CSS class. - Define missing --surface-2 variable referenced by MainLayout. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
22 lines
753 B
JavaScript
22 lines
753 B
JavaScript
window.sptb = {
|
|
downloadFile: function(fileName, contentType, base64) {
|
|
var link = document.createElement('a');
|
|
link.download = fileName;
|
|
link.href = 'data:' + contentType + ';base64,' + base64;
|
|
document.body.appendChild(link);
|
|
link.click();
|
|
document.body.removeChild(link);
|
|
},
|
|
setTheme: function(theme) {
|
|
var t = (theme || 'System').toLowerCase();
|
|
if (t === 'system') {
|
|
t = (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches)
|
|
? 'dark' : 'light';
|
|
}
|
|
document.documentElement.setAttribute('data-theme', t);
|
|
},
|
|
scrollToBottom: function(el) {
|
|
if (el) el.scrollTop = el.scrollHeight;
|
|
}
|
|
};
|