From 30bead94bcdcc557b7d21f0ed6886decee55165b Mon Sep 17 00:00:00 2001 From: SandObserver <260779319+SandObserver@users.noreply.github.com> Date: Sat, 29 Aug 2026 08:42:38 -0400 Subject: [PATCH] Docs: correct PORT, SBOM and badge unit, and refresh the widget copies Correct the PORT row: the API port is pinned inside the container, so the variable only routes on a hosting platform that reads it. State that a missing CONFIG_PATH or ICONS_PATH directory is warned about at startup. Add the SBOM attestation command and the weekly rescan of the published image to Security. List the rejected-folder-children message in Troubleshooting. Say that the badge pill carries the number alone and the unit appears in the list, and drop the unit from the single-badge description. Recapture the two dashboard badge images, which showed a unit on the pill. Add a Several values card to the landing page's badge group, and lay the group out as a grid. Sync the widget and JS copies, and bring the light palette, separator and primary fill into line with the app's tokens. --- public/img/dashboard/badge-labels.png | Bin 41002 -> 38968 bytes public/img/dashboard/badge-list.png | Bin 53348 -> 55418 bytes public/js/admin-app-form.js | 9 +- public/js/admin-auth.js | 4 +- public/js/admin-color-control.js | 4 +- public/js/admin-settings.js | 4 +- public/js/admin-shared.js | 2 +- public/js/admin-widget-form.js | 6 +- public/js/admin.js | 21 ++-- public/js/badge-logic.js | 25 +++-- public/js/badge-popover.js | 32 +++++- public/js/dashboard.js | 99 +++++++++++------- public/js/format-number.js | 55 ++++++++++ public/js/label-contrast.js | 17 ++- public/js/mobile-metrics.js | 54 +++++++++- public/js/spotlight.js | 26 +++-- public/js/theme.js | 5 +- public/js/ui.js | 80 +++++++++----- public/js/utils.js | 50 +++++++-- public/js/widget-config-form.js | 6 +- public/js/widget-glyphs.js | 46 ++++++++ public/js/widget-toolbox.js | 5 + public/widgets/backup/backup.html | 2 +- public/widgets/backup/widget.json | 1 + public/widgets/books/index.html | 4 +- public/widgets/books/widget.json | 1 + public/widgets/clock/widget.json | 1 + .../widgets/connections/connections-map.html | 2 +- .../widgets/connections/connections-vpn.html | 2 +- public/widgets/connections/widget.json | 1 + public/widgets/dashboard-switch/index.html | 2 +- public/widgets/dashboard-switch/widget.json | 1 + public/widgets/disk-health/index.html | 9 +- public/widgets/disk-health/widget.json | 1 + public/widgets/dns/index.html | 14 +-- public/widgets/dns/widget.json | 1 + public/widgets/github/contributions.html | 2 +- public/widgets/github/pullrequests.html | 2 +- public/widgets/github/widget.json | 1 + public/widgets/nowplaying/index.html | 6 +- public/widgets/nowplaying/widget.json | 1 + public/widgets/system-summary/index.html | 19 ++-- public/widgets/system-summary/widget.json | 1 + public/widgets/weather/index.html | 6 +- public/widgets/weather/widget.json | 1 + .../docs/docs/advanced-configuration.md | 4 +- src/content/docs/docs/badges.md | 6 +- src/content/docs/docs/installation/docker.mdx | 3 +- src/content/docs/docs/security.md | 11 +- src/content/docs/docs/troubleshooting.md | 1 + src/pages/index.astro | 14 ++- src/styles/tokens.css | 24 ++--- 52 files changed, 525 insertions(+), 169 deletions(-) create mode 100644 public/js/format-number.js create mode 100644 public/js/widget-glyphs.js diff --git a/public/img/dashboard/badge-labels.png b/public/img/dashboard/badge-labels.png index cca0b6cdd48f81698c36d028d2bb681beff33ae2..db3cf1fe508406a41b4d15b3c840c5a71cd75ea9 100644 GIT binary patch literal 38968 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 z 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 R7xLGl=g-=lsWkJ7{Xdv)eB1y4 literal 41002 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 H_4I!Lh}@!N diff --git a/public/img/dashboard/badge-list.png b/public/img/dashboard/badge-list.png index 704406ae833af3dcae7c45972c7bfffbd05d1d00..f6c231dfd4b5a3c9c347c9d75c16f673600139c9 100644 GIT binary patch literal 55418 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 LIk>3A#4GN9U|<7o literal 53348 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

+

${t('app.labelOrderTip')}

diff --git a/public/js/admin-auth.js b/public/js/admin-auth.js index 1719f33..91be26e 100644 --- a/public/js/admin-auth.js +++ b/public/js/admin-auth.js @@ -1,7 +1,7 @@ -import { ag, ap } from '/js/admin-shared.js?v=8f69dad6'; +import { ag, ap } from '/js/admin-shared.js?v=e9afcefb'; import { t } from '/js/i18n.js?v=d056c9c5'; import { pwStrength } from '/js/password-strength.js?v=42f45ac7'; -import { el, inp as inpById, qa } from '/js/utils.js?v=b18c93ed'; +import { el, inp as inpById, qa } from '/js/utils.js?v=26566e09'; export async function checkAuth(onLogin) { try { diff --git a/public/js/admin-color-control.js b/public/js/admin-color-control.js index 0e34e5e..67bd024 100644 --- a/public/js/admin-color-control.js +++ b/public/js/admin-color-control.js @@ -1,7 +1,7 @@ -import { PE_SVG, initInlineEdit, toast } from '/js/admin-shared.js?v=8f69dad6'; +import { PE_SVG, initInlineEdit, toast } from '/js/admin-shared.js?v=e9afcefb'; import { t } from '/js/i18n.js?v=d056c9c5'; import { html, raw, setHtml } from '/js/html.js?v=c71f8903'; -import { qa, q } from '/js/utils.js?v=b18c93ed'; +import { qa, q } from '/js/utils.js?v=26566e09'; const CC_SWATCHES = ['#1c1c1e', '#8e8e93', '#f2f2f7', '#ff393c', '#ffcd00', '#35c759', '#0289ff', '#cb30df']; export const BADGE_DEFAULT = '#1e6ef4'; diff --git a/public/js/admin-settings.js b/public/js/admin-settings.js index 24170ef..1353601 100644 --- a/public/js/admin-settings.js +++ b/public/js/admin-settings.js @@ -1,8 +1,8 @@ -import { toast, ag, ap } from '/js/admin-shared.js?v=8f69dad6'; +import { toast, ag, ap } from '/js/admin-shared.js?v=e9afcefb'; import { pwStrength } from '/js/password-strength.js?v=42f45ac7'; import { t } from '/js/i18n.js?v=d056c9c5'; import { shouldWritePassword, settingsSaveBlocker, clearsStoredPassword, BLOCK } from '/js/admin-logic.js?v=ddfc6f80'; -import { el, inp, q, qa, setUserText } from '/js/utils.js?v=b18c93ed'; +import { el, inp, q, qa, setUserText } from '/js/utils.js?v=26566e09'; /* Mirrors the server's rule: auth cannot be switched on with no password. */ let _passwordSet = false; diff --git a/public/js/admin-shared.js b/public/js/admin-shared.js index 3c64877..8e291bd 100644 --- a/public/js/admin-shared.js +++ b/public/js/admin-shared.js @@ -1,6 +1,6 @@ /* Stateless helpers shared by the admin modules. Mutable state stays out. */ import { nextActiveIndex, recoversSession, toastHoldMs } from '/js/admin-logic.js?v=ddfc6f80'; -import { el, qa, q } from '/js/utils.js?v=b18c93ed'; +import { el, qa, q } from '/js/utils.js?v=26566e09'; import { t } from '/js/i18n.js?v=d056c9c5'; export const API = ''; diff --git a/public/js/admin-widget-form.js b/public/js/admin-widget-form.js index bb3cbe2..03d6e59 100644 --- a/public/js/admin-widget-form.js +++ b/public/js/admin-widget-form.js @@ -1,6 +1,6 @@ import { state } from '/js/admin-state.js?v=c23e6346'; -import { PE_SVG, CHEV_SVG, initInlineEdit } from '/js/admin-shared.js?v=8f69dad6'; -import { renderWidgetConfigForm } from '/js/widget-config-form.js?v=63dccc19'; +import { PE_SVG, CHEV_SVG, initInlineEdit } from '/js/admin-shared.js?v=e9afcefb'; +import { renderWidgetConfigForm } from '/js/widget-config-form.js?v=a68e6a57'; import { html, raw, setHtml } from '/js/html.js?v=c71f8903'; import { sizesForView, @@ -10,7 +10,7 @@ import { carriesTypedValues, } from '/js/admin-logic.js?v=ddfc6f80'; import { t } from '/js/i18n.js?v=d056c9c5'; -import { q, qi, qa } from '/js/utils.js?v=b18c93ed'; +import { q, qi, qa } from '/js/utils.js?v=26566e09'; const SIZE_ICONS = { small: diff --git a/public/js/admin.js b/public/js/admin.js index 2db8baf..ea78f3e 100644 --- a/public/js/admin.js +++ b/public/js/admin.js @@ -1,5 +1,5 @@ -import { buildAppForm, buildFolderForm, captureActLabels, serializeKvRows } from '/js/admin-app-form.js?v=d54926e8'; -import { checkAuth, requireLogin, wirePasswordStrength } from '/js/admin-auth.js?v=5e6450f0'; +import { buildAppForm, buildFolderForm, captureActLabels, serializeKvRows } from '/js/admin-app-form.js?v=aa32f5ed'; +import { checkAuth, requireLogin, wirePasswordStrength } from '/js/admin-auth.js?v=2191f31e'; import { applyDrop, canJoinFolder, folderRowZone } from '/js/admin-drag-logic.js?v=ebe3e806'; import { reorderItems, resolveAdminSection } from '/js/admin-logic.js?v=ddfc6f80'; import { @@ -10,10 +10,10 @@ import { snapshotItems, upsertItem, } from '/js/admin-save-logic.js?v=48a9e055'; -import { loadSettings, showBgFields, showBgFit, showWallpaperFile } from '/js/admin-settings.js?v=f7078bc0'; -import { ag, ap, initInlineEdit, setReauthHandler, toast } from '/js/admin-shared.js?v=8f69dad6'; +import { loadSettings, showBgFields, showBgFit, showWallpaperFile } from '/js/admin-settings.js?v=455deefb'; +import { ag, ap, initInlineEdit, setReauthHandler, toast } from '/js/admin-shared.js?v=e9afcefb'; import { state } from '/js/admin-state.js?v=c23e6346'; -import { buildWidgetForm } from '/js/admin-widget-form.js?v=c4b1a7b4'; +import { buildWidgetForm } from '/js/admin-widget-form.js?v=5a2dc8e8'; import { html, raw, setHtml } from '/js/html.js?v=c71f8903'; import { initI18n, LANGUAGES, t } from '/js/i18n.js?v=d056c9c5'; import { iconChain, loadLocalIcons, resolveIcon } from '/js/icons.js?v=69c2b9bd'; @@ -28,9 +28,10 @@ import { } from '/js/import-foreign.js?v=ef4f3d44'; import { isMobileLayout, onLayoutChange } from '/js/layout.js?v=28416a75'; import { confirmModal, openModal as openDialog, promptModal } from '/js/modal.js?v=ff76dc56'; -import { readMode, watchSystemTheme, writeMode } from '/js/theme.js?v=fbd2d2ef'; -import { el, inp, q, qa, clr as rc, sanitizeCssUrl, setUserText, tgt } from '/js/utils.js?v=b18c93ed'; -import { normalizeColorInput } from '/js/admin-color-control.js?v=9fded679'; +import { readMode, watchSystemTheme, writeMode } from '/js/theme.js?v=db4192cd'; +import { el, inp, q, qa, clr as rc, sanitizeCssUrl, setUserText, tgt } from '/js/utils.js?v=26566e09'; +import { widgetGlyph } from '/js/widget-glyphs.js?v=b5036986'; +import { normalizeColorInput } from '/js/admin-color-control.js?v=32111fda'; import { parseYamlTolerant, YamlLiteError } from '/js/yaml-lite.js?v=cceca788'; /* A class rather than a bare media query. Some phones report a wider CSS @@ -235,7 +236,9 @@ function mkRow(item, idx, { indent = false, childIdx = null, folderId = null } = if (item.type === 'folder') { ico.appendChild(svgNode(FOLDER_ICON)); } else if (item.type === 'widget') { - ico.appendChild(svgNode(SIZE_ICONS[item.widgetSize] || SIZE_ICONS.medium)); + /* The type when the widget declares one, the size otherwise. */ + const glyph = widgetGlyph(state._widgetReg?.[item.widgetType]?.glyph); + ico.appendChild(svgNode(glyph || SIZE_ICONS[item.widgetSize] || SIZE_ICONS.medium)); } else if (item.iconUrl) { const img = document.createElement('img'); img.alt = item.label || ''; diff --git a/public/js/badge-logic.js b/public/js/badge-logic.js index 9c7ce1b..2c45da1 100644 --- a/public/js/badge-logic.js +++ b/public/js/badge-logic.js @@ -1,6 +1,7 @@ // @ts-check /* Keep this file free of imports and of module state. Translation arrives - through an injected `translate`; a caller that passes none gets English. */ + through an injected `translate`, and the digit shape through an injected + `format`; a caller that passes neither gets English and Latin digits. */ const EN = { 'status.needsAttention': 'Status: needs attention', 'status.healthy': 'Status: healthy', @@ -85,8 +86,14 @@ export function healthReason(detail, translate) { parts.push(_clip(detail.status, REASON_MAX)); } - if (detail.pingError) parts.push(_clip(tr('status.pingFailed', { error: detail.pingError }), REASON_MAX)); - else if (detail.pingStatus >= 400) parts.push(tr('status.pingReturned', { status: detail.pingStatus })); + /* Give the room to the translated words and trim the upstream ones. The error + text comes from the network layer and is never translated, so clipping the + composed sentence cuts the half a reader can actually use. */ + if (detail.pingError) { + const around = tr('status.pingFailed', { error: '' }).length; + const room = Math.max(8, REASON_MAX - around); + parts.push(_clip(tr('status.pingFailed', { error: _clip(detail.pingError, room) }), REASON_MAX)); + } else if (detail.pingStatus >= 400) parts.push(tr('status.pingReturned', { status: detail.pingStatus })); return parts.join(' \u2022 '); } @@ -147,6 +154,7 @@ export function firingLabels(labels, values) { badgesStale?: boolean, healthStale?: boolean, activityStale?: boolean, healthDetail?: Record, translate?: (key: string, vars?: Record) => string, + format?: (value: number) => string, }} opts */ export function computeBadgeVisual({ health, @@ -162,8 +170,11 @@ export function computeBadgeVisual({ activityStale, healthDetail, translate, + format, }) { const tr = typeof translate === 'function' ? translate : (k, v) => _fallback(k, v); + /* Digit shape is the reader's, not the interface language's. */ + const fmt = typeof format === 'function' ? format : v => String(v); /* Below this the item is treated as having no activity at all. One keeps the original behaviour of badging any count above zero. */ const min = badgeMinimum(custom); @@ -182,12 +193,12 @@ export function computeBadgeVisual({ num = '!'; } else if (top) { cls = 'badge on blue'; - num = top.value > 99 ? '99+' : String(top.value); + num = top.value > 99 ? `${fmt(99)}+` : fmt(top.value); unit = top.unit ? top.unit.slice(0, 8) : ''; bg = top.color; } else if (active) { cls = 'badge on blue'; - num = activity > 99 ? '99+' : String(activity); + num = activity > 99 ? `${fmt(99)}+` : fmt(activity); unit = custom.unit ? custom.unit.slice(0, 8) : ''; bg = safeColor(custom.color); } else if (fixed) { @@ -206,10 +217,10 @@ export function computeBadgeVisual({ /* Status text, so meaning is not carried by colour alone. */ let aria = ''; if (health) aria = tr('status.needsAttention'); - else if (top) aria = top.name ? `${top.name}: ${top.value}` : tr('status.pending', { count: String(top.value) }); + else if (top) aria = top.name ? `${top.name}: ${fmt(top.value)}` : tr('status.pending', { count: fmt(top.value) }); else if (active) aria = tr('status.pending', { - count: (activity > 99 ? '99+' : String(activity)) + (custom.unit ? ' ' + custom.unit : ''), + count: (activity > 99 ? `${fmt(99)}+` : fmt(activity)) + (custom.unit ? ' ' + custom.unit : ''), }); else if (fixed) aria = staticBdg.label; else if (cls.includes('green')) aria = tr('status.healthy'); diff --git a/public/js/badge-popover.js b/public/js/badge-popover.js index cf7a806..702d076 100644 --- a/public/js/badge-popover.js +++ b/public/js/badge-popover.js @@ -4,6 +4,9 @@ const HOVER_IN_MS = 320; const COMPAT_CLICK_MS = 500; +/* SC 1.4.13 asks that hover content be hoverable. The pointer has to cross the + gap between the badge and the popover without it closing underneath. */ +const HOVER_OUT_MS = 200; /** @type {HTMLElement|null} */ let pop = null; @@ -12,6 +15,7 @@ let openFor = null; /** @type {HTMLElement|null} */ let describedEl = null; let openTimer = 0; +let closeTimer = 0; let openedAt = 0; const ROWS = new WeakMap(); @@ -23,6 +27,10 @@ function ensurePop() { pop.id = 'badge-pop'; pop.setAttribute('role', 'tooltip'); pop.hidden = true; + /* Interactive now, so a click on it must not reach the tile underneath. */ + pop.addEventListener('pointerenter', cancelClose); + pop.addEventListener('pointerleave', scheduleClose); + pop.addEventListener('click', e => e.stopPropagation()); document.body.appendChild(pop); return pop; } @@ -42,7 +50,10 @@ function place(badge) { const gap = 8; let top = r.bottom + gap; if (top + pr.height > window.innerHeight - 8) top = Math.max(8, r.top - gap - pr.height); - let left = r.right - pr.width; + /* Aligned with the badge's trailing edge, which is the other side of the + screen in a right-to-left language. */ + const rtl = (document.documentElement.getAttribute('dir') || 'ltr') === 'rtl'; + let left = rtl ? r.left : r.right - pr.width; left = Math.min(Math.max(8, left), window.innerWidth - pr.width - 8); p.style.top = Math.round(top) + 'px'; p.style.left = Math.round(left) + 'px'; @@ -84,6 +95,8 @@ function open(badge) { export function closeBadgePopover() { clearTimeout(openTimer); openTimer = 0; + clearTimeout(closeTimer); + closeTimer = 0; if (pop) pop.hidden = true; openFor = null; if (describedEl) { @@ -94,10 +107,25 @@ export function closeBadgePopover() { /** @param {HTMLElement} badge */ function schedule(badge, delay) { + clearTimeout(closeTimer); + closeTimer = 0; clearTimeout(openTimer); openTimer = window.setTimeout(() => open(badge), delay); } +/* Cancelled when the pointer arrives on the popover. */ +function scheduleClose() { + clearTimeout(openTimer); + openTimer = 0; + clearTimeout(closeTimer); + closeTimer = window.setTimeout(closeBadgePopover, HOVER_OUT_MS); +} + +function cancelClose() { + clearTimeout(closeTimer); + closeTimer = 0; +} + let globalsWired = false; function wireGlobals() { if (globalsWired) return; @@ -138,7 +166,7 @@ export function wireBadgePopover(badge, rows) { }); badge.addEventListener('pointerleave', e => { if (/** @type {PointerEvent} */ (e).pointerType === 'touch') return; - closeBadgePopover(); + scheduleClose(); }); /* Keep the tap. iOS answers a long press on a link with its own callout and diff --git a/public/js/dashboard.js b/public/js/dashboard.js index d32d8bc..51ea896 100644 --- a/public/js/dashboard.js +++ b/public/js/dashboard.js @@ -10,25 +10,27 @@ import { uniqueTitle, } from '/js/widget-types.js?v=6a5e1619'; import { + el, mk, mkWrap as _mkWrap, mountScaledWidget, - teardownWidgets, - sanitizeCssUrl, - el, q, - qi, qa, + qi, + sanitizeCssUrl, setUserText, -} from '/js/utils.js?v=b18c93ed'; -import { initSpotlight } from '/js/spotlight.js?v=712fa7de'; + teardownWidgets, + titleWhenTruncated, +} from '/js/utils.js?v=26566e09'; +import { initSpotlight } from '/js/spotlight.js?v=4352b315'; import { html, setHtml, raw } from '/js/html.js?v=c71f8903'; import { initI18n, t, currentLang } from '/js/i18n.js?v=d056c9c5'; import { pwStrength, passwordMismatch } from '/js/password-strength.js?v=42f45ac7'; import { sanitizeItemLinks } from '/js/link-url.js?v=54adb40f'; -import { initUI, mkFolder, openFolderDesktop, openFolderMobile, buildMobile } from '/js/ui.js?v=14202a72'; -import { badgeMinimum, badgeSignature, computeBadgeVisual, readBadgeUpdate } from '/js/badge-logic.js?v=be6330d6'; -import { closeBadgePopover, wireBadgePopover } from '/js/badge-popover.js?v=d00c0629'; +import { initUI, mkFolder, openFolderDesktop, openFolderMobile, buildMobile } from '/js/ui.js?v=d3561e4b'; +import { badgeMinimum, badgeSignature, computeBadgeVisual, readBadgeUpdate } from '/js/badge-logic.js?v=c6430afc'; +import { formatNumber } from '/js/format-number.js?v=e2165e12'; +import { closeBadgePopover, wireBadgePopover } from '/js/badge-popover.js?v=08aae50f'; import { configChanged, landingAfterSetup, @@ -40,14 +42,7 @@ import { trapFocus } from '/js/dialog.js?v=05935547'; import { jitter } from '/js/jitter.js?v=4edf48f2'; import { isMobileLayout, onLayoutChange } from '/js/layout.js?v=28416a75'; import { startWakeLock } from '/js/wake-lock.js?v=6b9591cf'; -import { - applyLabelTones, - loadSamplingImage, - parseCssColor, - relativeLuminance, - sampleImage, - toneForLuminances, -} from '/js/label-contrast.js?v=69cbdcb0'; +import { applyLabelTones, loadSamplingImage, sampleImage, toneForColor } from '/js/label-contrast.js?v=38adb276'; /* Recomputed, never stored: the window can cross the breakpoint after load. */ let MOB = isMobileLayout(); @@ -101,6 +96,14 @@ function desktopSlots() { const CB = { spotOpen: null, spotClose: null, mobPillBump: null }; +/* A touch produces a compatibility mouse event after it. */ +const COMPAT_POINTER_MS = 500; +let _lastTouch = 0; + +/* A backend that accepts the connection and never answers would otherwise leave + the boot veil up forever. Generous: this only has to beat a hang. */ +const BOOT_TIMEOUT_MS = 15000; + const PAGE_STORE = 'dash_page', WALLPAPER_STORE = 'dash_wallpaper'; @@ -178,6 +181,7 @@ function bupd(id) { healthStale, healthDetail: s.healthDetail, translate: t, + format: formatNumber, }); const sig = badgeSignature({ cls, txt, unit, bg, aria, color, title, nextColor, rows }); @@ -197,13 +201,17 @@ function bupd(id) { } txtEl.textContent = num; unitEl.textContent = unit ? ' ' + unit : ''; - if (aria) { - el.setAttribute('role', 'status'); - el.setAttribute('aria-label', aria); - } else { - el.removeAttribute('role'); - el.removeAttribute('aria-label'); - } + /* The badge belongs to its tile's name, not to a live region of its own. + An explicit label on the anchor wins over everything inside it, so a + badge left to speak for itself is never reached by a reader moving from + tile to tile. A name change is silent, which is what a figure on a timer + needs. */ + el.setAttribute('aria-hidden', 'true'); + el.removeAttribute('role'); + el.removeAttribute('aria-label'); + const tile = /** @type {HTMLElement|null} */ (el.closest('a, [role="button"]')); + const tileName = tile?.dataset.tileName; + if (tile && tileName) tile.setAttribute('aria-label', aria ? `${tileName}, ${aria}` : tileName); /* Never the `background` shorthand. It resets background-clip, and the pill behind is painted from this same value. */ if (bg) el.style.setProperty('--badge-bg', bg); @@ -295,6 +303,7 @@ function mkIcon(item) { : mk('a', { href: item.href, target: '_blank', rel: 'noreferrer noopener' }); a.className = 'icon'; a.setAttribute('aria-label', item.label || item.id); + a.dataset.tileName = item.label || item.id; if (!showLabel) a.title = item.label || item.id; a.appendChild(mkWrap(item, iw, Math.round(iw * ICON_R), isz, 'iwrap')); if (showLabel) { @@ -344,6 +353,7 @@ function mkDock(item) { : mk('a', { href: item.href, target: '_blank', rel: 'noreferrer noopener' }); a.className = 'di'; a.setAttribute('aria-label', item.label || item.id); + a.dataset.tileName = item.label || item.id; a.title = item.label || item.id; a.appendChild(mkWrap(item, 78, Math.round(78 * ICON_R), 50, 'dwrap')); return a; @@ -393,8 +403,6 @@ function buildDesktop() { const dk = el('dock'); dk.innerHTML = ''; dock.forEach(item => dk.appendChild(mkDock(item))); - const ct = el('ctrls'); - ct.innerHTML = ''; } /* Every page is mounted at once, so widgets the user has swiped away from keep @@ -509,13 +517,12 @@ const WALLPAPER_BACKDROP = '#0d1117'; let bgTone = { grid: null, tone: null }; function retone() { - requestAnimationFrame(() => applyLabelTones(bgTone)); -} - -function toneForColor(color) { - const rgb = parseCssColor(color); - if (!rgb) return null; - return toneForLuminances([relativeLuminance(rgb[0], rgb[1], rgb[2])]); + requestAnimationFrame(() => { + applyLabelTones(bgTone); + /* Same frame: both need the layout the build produced, and both re-run on a + rebuild and a resize for the same reason. */ + titleWhenTruncated(); + }); } /* Held so a resize re-samples without fetching the image again. */ @@ -744,7 +751,10 @@ function showSetupPrompt() { async function boot() { let authData = null; try { - const authCheck = await fetch('/api/auth/check', { cache: 'no-store' }); + const authCheck = await fetch('/api/auth/check', { + cache: 'no-store', + signal: AbortSignal.timeout(BOOT_TIMEOUT_MS), + }); if (authCheck.status === 401) { window.location.href = '/admin/'; return; @@ -760,7 +770,7 @@ async function boot() { let configFailed = false; try { - const res = await fetch('/api/config', { cache: 'no-store' }); + const res = await fetch('/api/config', { cache: 'no-store', signal: AbortSignal.timeout(BOOT_TIMEOUT_MS) }); if (!res.ok) throw new Error(`HTTP ${res.status}`); const c = await res.json(); /* Saving rejects these, but a config written earlier still reaches here. @@ -777,6 +787,10 @@ async function boot() { await loadLocalIcons(); if (configFailed) { + /* The catalog is loaded as the last step of the fetch that just failed, so + without this the only screen left renders its own keys. nginx serves this + file, the API served the config, so it is still reachable. */ + await initI18n('en'); const msg = document.createElement('div'); msg.className = 'api-error-screen'; setHtml( @@ -846,9 +860,13 @@ async function boot() { /* Attached once, not per layout: the window can cross the breakpoint later, and a listener added on every crossing would fire twice. */ + /* A pointer or a key must reach the pager on both layouts. The phone layout is + what a narrow window gets, and there its own swipe is the only pager, so a + mouse and a keyboard cannot leave page one. */ document.addEventListener('keydown', e => { - if (MOB) return; if (el('spot').classList.contains('on')) return; + /* The overlay covers the page it would scroll behind. */ + if (document.querySelector('.folder-overlay')) return; if (e.key === 'ArrowRight') goTo(pg + 1); if (e.key === 'ArrowLeft') goTo(pg - 1); }); @@ -862,16 +880,20 @@ async function boot() { if (Math.abs(e.clientX - _dMx) > 8) _dDragging = true; }); document.addEventListener('mouseup', e => { - if (MOB || !_dDragging) return; + if (!_dDragging) return; + _dDragging = false; + /* A swipe is followed by a compatibility mouse event. Acting on both pages + twice for one gesture. */ + if (Date.now() - _lastTouch < COMPAT_POINTER_MS) return; const dx = e.clientX - _dMx; if (Math.abs(dx) > 60) goTo(pg + (dx < 0 ? 1 : -1)); - _dDragging = false; }); let _dTx = 0; document.addEventListener( 'touchstart', e => { _dTx = e.touches[0].clientX; + _lastTouch = Date.now(); }, { passive: true }, ); @@ -880,6 +902,7 @@ async function boot() { document.addEventListener( 'touchend', e => { + _lastTouch = Date.now(); if (MOB) return; const dx = e.changedTouches[0].clientX - _dTx; if (Math.abs(dx) > 50) goTo(pg + (dx < 0 ? 1 : -1)); diff --git a/public/js/format-number.js b/public/js/format-number.js new file mode 100644 index 0000000..e4ebd0d --- /dev/null +++ b/public/js/format-number.js @@ -0,0 +1,55 @@ +// @ts-check +/* Digit shape follows the reader's locale, not the interface language. + + Apple's guidance is explicit that numerals take "the correct localized digits + for the user's locale and preferences", and that neither Arabic nor Persian + always uses native digits: it depends on the country, and the reader can + choose. An iPhone in Arabic with a Latin-numeral region shows Latin digits in + its badges. So the language setting picks the words and the locale picks the + digits. + + A number that identifies rather than counts, such as a version or a port, is + not passed through here: those are the same string in every language. */ + +/** @type {Intl.NumberFormat|null} */ +let cached = null; +let cachedFor = ''; + +/** The reader's locale, or 'en' where the runtime will not say. */ +function locale() { + try { + return navigator.language || 'en'; + } catch { + return 'en'; + } +} + +/** @param {number} value @param {Intl.NumberFormatOptions} [options] + @returns {string} */ +export function formatNumber(value, options) { + if (typeof value !== 'number' || !Number.isFinite(value)) return String(value); + const loc = locale(); + if (options) { + try { + return new Intl.NumberFormat(loc, options).format(value); + } catch { + return String(value); + } + } + /* One formatter for the common case: this runs per badge on every poll. */ + if (!cached || cachedFor !== loc) { + try { + cached = new Intl.NumberFormat(loc); + cachedFor = loc; + } catch { + return String(value); + } + } + return cached.format(value); +} + +/** The digits of an already-formed string, for text built elsewhere. + @param {string} text @returns {string} */ +export function localiseDigits(text) { + return String(text).replace(/\d/g, d => formatNumber(Number(d))); +} diff --git a/public/js/label-contrast.js b/public/js/label-contrast.js index da104ed..14eee75 100644 --- a/public/js/label-contrast.js +++ b/public/js/label-contrast.js @@ -166,6 +166,19 @@ export function parseCssColor(value) { return a; } +/** The ink for a solid fill, from the fill's own luminance. + + A fill the user chose cannot have an ink the project chose. Alpha on the ink + breaks the guarantee: at .85 one palette entry clears neither tone. + + @param {string} color any CSS colour the parser accepts + @returns {'light'|'dark'|null} null when the colour cannot be parsed */ +export function toneForColor(color) { + const rgb = parseCssColor(color); + if (!rgb) return null; + return toneForLuminances([relativeLuminance(rgb[0], rgb[1], rgb[2])]); +} + /** An image as a luminance grid. @param {HTMLImageElement} img a loaded image @@ -209,7 +222,9 @@ export function loadSamplingImage(url) { }); } -const LABEL_SELECTOR = '.ilabel, .dyn-mob-label, .dyn-fold-label'; +/* The page indicator is chrome over the same wallpaper, and it is tinted rather + than inked, so it needs the same reading. */ +const LABEL_SELECTOR = '.ilabel, .dyn-mob-label, .dyn-fold-label, #dots'; /* A folder overlay lays its own scrim over the background. */ const SCRIM = '.folder-overlay, .folder-overlay-mobile'; diff --git a/public/js/mobile-metrics.js b/public/js/mobile-metrics.js index 259ec99..0f0d5ee 100644 --- a/public/js/mobile-metrics.js +++ b/public/js/mobile-metrics.js @@ -8,8 +8,38 @@ const BASE_VW = 393; +/* The grid answers a wider window with more cells, not with bigger ones, so the + chrome around it must stop growing too. Above this the dock, the pill and the + margins would be drawn half as large again as anything they sit beside. The + widest phone reports 430px, which is under the cap, so no phone is affected. */ +const MAX_SC = 1.2; + +/* Cell size at the design viewport, gap included. The grid keeps a cell near + this and changes how many of them there are. */ +export const BASE_CELL_W = 91.5; +export const BASE_CELL_H = 116.8; + +/* Every footprint is declared in cells, and the tallest is 6 rows deep. Fewer + rows than that and it can never be placed. */ +const MIN_ROWS = 6; +const MIN_COLS = 4; + +/* How many cells fit the measured box, keeping a cell near its design size. + + This is the grid-template equivalent of repeat(auto-fill, minmax()): the cell + stays put and the count follows the box. Scaling a fixed count instead is what + stretched four columns across a tablet and squeezed six into a phone. + + @param {{ gridW: number, gridH: number, sc: number }} o + @returns {{ cols: number, rows: number }} */ +export function gridCellCount({ gridW, gridH, sc }) { + const cols = Math.max(MIN_COLS, Math.round(gridW / (BASE_CELL_W * sc))); + const rows = Math.max(MIN_ROWS, Math.round(gridH / (BASE_CELL_H * sc))); + return { cols, rows }; +} + export function mobileMetrics(vw) { - const sc = vw / BASE_VW; + const sc = Math.min(vw / BASE_VW, MAX_SC); const sm = Math.round(18 * sc); const dh = Math.round(108 * sc); const pillH = Math.round(34 * sc); @@ -19,6 +49,28 @@ export function mobileMetrics(vw) { return { sc, sm, dh, pillH, pillGap, dz }; } +/* One column width for the whole home grid. + + A card sized by width alone keeps its full width when its rows are too short, + loses its aspect, and the scaled iframe is then drawn taller than the card and + clipped. Narrowing every column by the same amount keeps a card's width + proportional to its column span, so two small widgets still measure the same + as one medium. + + @param {{ gridW: number, rowH: number, gap: number, cols: number, + footprints: { design: [number, number], span: [number, number] }[] }} o + @returns {number} */ +export function gridColumnWidth({ gridW, rowH, gap, cols, footprints }) { + const full = (gridW - gap * (cols - 1)) / cols; + let k = full; + for (const { design, span } of footprints || []) { + const [sc, sr] = span; + const cellH = rowH * sr + gap * (sr - 1); + k = Math.min(k, ((cellH * design[0]) / design[1] - gap * (sc - 1)) / sc); + } + return Math.max(0, Math.floor(k)); +} + /* Both are distances above the bottom safe-area inset, which CSS adds. */ export function pillBottom(m) { diff --git a/public/js/spotlight.js b/public/js/spotlight.js index be57545..02e369f 100644 --- a/public/js/spotlight.js +++ b/public/js/spotlight.js @@ -1,4 +1,4 @@ -import { mk, clr, el, inp as inpById, q, qa, setUserText } from '/js/utils.js?v=b18c93ed'; +import { mk, clr, el, inp as inpById, q, qa, setUserText } from '/js/utils.js?v=26566e09'; import { wrapTab } from '/js/dialog.js?v=05935547'; import { t } from '/js/i18n.js?v=d056c9c5'; @@ -47,7 +47,14 @@ export function initSpotlight({ getItems, isMob, CB, iconChain, openFolderDeskto f.appendChild(hdr); cur.forEach((app, i) => { const isFolder = app.type === 'folder'; - const a = mk('a', { href: app.href || '#', target: isFolder ? '_self' : '_blank', rel: 'noreferrer noopener' }); + /* Settings is this dashboard, so it opens here and carries no + leaves-the-site arrow. Its tile does the same. */ + const isInternal = isFolder || app.system === 'settings'; + const a = mk('a', { + href: app.href || '#', + target: isInternal ? '_self' : '_blank', + rel: 'noreferrer noopener', + }); a.className = 'sr' + (i === 0 ? ' sel' : ''); a.id = 'sr-opt-' + i; a.setAttribute('role', 'option'); @@ -67,6 +74,8 @@ export function initSpotlight({ getItems, isMob, CB, iconChain, openFolderDeskto innerWidth / 393, ); else openFolderDesktop(app); + } else if (app.system === 'settings' && app.href) { + window.location.href = app.href; } else if (app.href) { window.open(app.href, '_blank', 'noreferrer,noopener'); } @@ -111,12 +120,15 @@ export function initSpotlight({ getItems, isMob, CB, iconChain, openFolderDeskto const ht = mk('div'); ht.className = 'srh'; ht.textContent = (app.href || '').replace(/^https?:\/\//, '').replace(/\/$/, ''); - const ar = mk('span'); - ar.className = 'sra'; - ar.textContent = '↗'; - ar.setAttribute('aria-hidden', 'true'); tx.append(nm, ht); - a.append(ic, tx, ar); + a.append(ic, tx); + if (!isInternal) { + const ar = mk('span'); + ar.className = 'sra'; + ar.textContent = '↗'; + ar.setAttribute('aria-hidden', 'true'); + a.append(ar); + } f.appendChild(a); }); res.appendChild(f); diff --git a/public/js/theme.js b/public/js/theme.js index 01fbcd5..6d72aef 100644 --- a/public/js/theme.js +++ b/public/js/theme.js @@ -31,7 +31,10 @@ export function resolveTheme(mode, prefersDark) { return m; } -/** The chrome colour for a theme: the surface the page draws behind its panel. */ +/** The chrome colour for a theme: the surface the page draws behind its panel. + + A literal, not a token read back: this runs in a classic script before the + first paint, when no stylesheet has been parsed. It tracks --bg-base. */ export function themeColor(theme) { return theme === 'light' ? '#FFFFFF' : '#0d1117'; } diff --git a/public/js/ui.js b/public/js/ui.js index f541456..494c5de 100644 --- a/public/js/ui.js +++ b/public/js/ui.js @@ -10,10 +10,11 @@ import { q, qa, setUserText, -} from '/js/utils.js?v=b18c93ed'; +} from '/js/utils.js?v=26566e09'; import { t, currentLang } from '/js/i18n.js?v=d056c9c5'; import { trapFocus } from '/js/dialog.js?v=05935547'; -import { mobileMetrics } from '/js/mobile-metrics.js?v=e48d02a8'; +import { toneForColor } from '/js/label-contrast.js?v=38adb276'; +import { mobileMetrics, gridColumnWidth, gridCellCount } from '/js/mobile-metrics.js?v=424d5d41'; let _state = null; export function initUI(state) { @@ -61,8 +62,10 @@ function css(el, props) { function mkMiniIcon(child, pointerEvents) { const bg = mk('div'); bg.className = 'folder-mini-bg'; - bg.style.background = clr(child.color); + const plate = clr(child.color); + bg.style.background = plate; if (pointerEvents === 'none') bg.style.pointerEvents = 'none'; + const onLight = toneForColor(plate) === 'dark'; if (child.iconUrl) { const srcs = iconChain(child.iconUrl); if (srcs.length) { @@ -79,14 +82,14 @@ function mkMiniIcon(child, pointerEvents) { bg.appendChild(img); } else { const s = mk('span'); - s.className = 'folder-mini-fb'; + s.className = onLight ? 'folder-mini-fb fb-on-light' : 'folder-mini-fb'; if (pointerEvents === 'none') s.style.pointerEvents = 'none'; s.textContent = (child.label || '?')[0].toUpperCase(); bg.appendChild(s); } } else { const s = mk('span'); - s.className = 'folder-mini-fb'; + s.className = onLight ? 'folder-mini-fb fb-on-light' : 'folder-mini-fb'; if (pointerEvents === 'none') s.style.pointerEvents = 'none'; s.textContent = (child.label || '?')[0].toUpperCase(); bg.appendChild(s); @@ -103,6 +106,7 @@ export function mkFolder(item) { a.href = '#'; a.setAttribute('role', 'button'); a.setAttribute('aria-label', (item.label || t('type.folder')) + ' folder'); + a.dataset.tileName = (item.label || t('type.folder')) + ' folder'; if (!showLabel) a.title = item.label || t('type.folder'); a.onclick = e => { e.preventDefault(); @@ -231,6 +235,7 @@ function mFolder(item, cw, rh, isz, ir, im, sc) { a.type = 'button'; a.className = 'dyn-mob-btn'; a.setAttribute('aria-label', (item.label || t('type.folder')) + ' folder'); + a.dataset.tileName = (item.label || t('type.folder')) + ' folder'; css(a, { '--rh': rh + 'px' }); let _opening = false; function _openFolder() { @@ -539,6 +544,9 @@ export function openFolderMobile(folder, isz, _ir, _im, sc) { releaseMobTrap = trapFocus(ov, { onClose: closeMob, initialFocus: ov }); } +/* Cells per widget size on the 4x6 home grid. */ +const MOB_FOOTPRINT = { small: [2, 2], medium: [4, 2], large: [4, 4], xlarge: [4, 6] }; + export function buildMobile() { /* The previous widgets' observers and timers outlive their DOM. Stop them before it is replaced. */ @@ -547,8 +555,6 @@ export function buildMobile() { const vw = innerWidth, vh = innerHeight; const { sc, sm, dh, pillH, pillGap, dz } = mobileMetrics(vw); - const COLS = 4, - ROWS = 6; const gap = Math.round(sm * 0.5); css(document.body, { '--sc': String(sc), @@ -558,9 +564,10 @@ export function buildMobile() { '--gap': gap + 'px', '--pgh': vh + 'px', }); - /* ── Mobile layout: single-pass 4×6 grid bin-packing ── + /* ── Mobile layout: single-pass grid bin-packing ── Footprints in cells: icon/folder 1×1, small 2×2, medium 4×2, large 4×4, - xlarge 4×6. */ + xlarge 4×6. A footprint is a physical size, so it does not change with the + column count: a wider box gets more columns, not larger widgets. */ const strip = el('pages'); strip.innerHTML = ''; @@ -579,9 +586,33 @@ export function buildMobile() { const firstPage = mkPage(); strip.appendChild(firstPage.page); const gridBox = firstPage.grid.getBoundingClientRect(); - const cw = gridBox.width / COLS, - rh = gridBox.height / ROWS; + const { cols: COLS, rows: ROWS } = gridCellCount({ gridW: gridBox.width, gridH: gridBox.height, sc }); + css(document.body, { '--mcols': String(COLS), '--mrows': String(ROWS) }); + const rh = gridBox.height / ROWS; const rh2 = (gridBox.height - gap * (ROWS - 1)) / ROWS; /* exact row height incl. gaps */ + /* One column width for the whole grid, narrow enough that every widget shape + present fits its rows. Fitting each card to its own cell instead would make + a card's width stop matching its column span, and two small widgets would + no longer measure the same as one medium. */ + const cw2 = gridColumnWidth({ + gridW: gridBox.width, + rowH: rh2, + gap, + cols: COLS, + footprints: [ + ...new Set( + items() + .filter(i => i.type === 'widget' && !i.hidden) + .map(i => i.widgetSize || 'medium'), + ), + ].map(sz => ({ + design: WIDGET_DESIGN[sz] || WIDGET_DESIGN.medium, + span: MOB_FOOTPRINT[sz] || MOB_FOOTPRINT.medium, + })), + }); + const gridW = cw2 * COLS + gap * (COLS - 1); + const cw = gridW / COLS; + css(document.body, { '--mgw': Math.round(gridW) + 'px' }); const maxIsz = Math.round(74 * sc); const isz = Math.round(Math.min(cw * 0.9, rh * 0.8, maxIsz)); const ir = Math.round(isz * 0.225), @@ -594,16 +625,7 @@ export function buildMobile() { is 0.424 of the icon it sits beside. */ const wBR = Math.round(isz * 0.424); - const fp = it => - it.type !== 'widget' - ? [1, 1] - : it.widgetSize === 'xlarge' - ? [4, 6] - : it.widgetSize === 'large' - ? [4, 4] - : it.widgetSize === 'small' - ? [2, 2] - : [4, 2]; + const fp = it => (it.type !== 'widget' ? [1, 1] : MOB_FOOTPRINT[it.widgetSize] || MOB_FOOTPRINT.medium); const inFolder = new Set( items() @@ -667,6 +689,7 @@ export function buildMobile() { : mk('a', { href: item.href, target: '_blank', rel: 'noreferrer noopener' }); a.className = 'dyn-mob-icon'; a.setAttribute('aria-label', item.label || item.id); + a.dataset.tileName = item.label || item.id; css(a, { '--cw': '100%', '--rh': rh2 + 'px' }); a.appendChild(mkWrap(item, eff, er, em, '')); if (showLabel) { @@ -733,18 +756,27 @@ export function buildMobile() { const dk = el('dock'); dk.className = 'mdock'; - const dockW = vw - Math.round(18 * sc); - const dockIconSz = Math.round(Math.min(isz, ((dockW - Math.round(28 * sc)) / 4) * 0.85)); + const maxDockW = vw - Math.round(18 * sc); + const dockPad = Math.round(14 * sc); + const dockIconSz = Math.round(Math.min(isz, ((maxDockW - Math.round(28 * sc)) / 4) * 0.85)); const dockIr = Math.round(dockIconSz * 0.225), dockIm = Math.round(dockIconSz * 0.64); const dockGap = Math.round(9 * sc); - dk.style.cssText = `position:fixed;left:50%;bottom:${dockGap}px;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:${dockW}px;height:${dh}px;padding:0 ${Math.round(14 * sc)}px;border-radius:${Math.round(44 * sc)}px;z-index:400;`; + /* Sized to what it holds, not to the window. The grid gains columns on a wide + screen while the dock keeps four icons, and a stretched bar reads as empty + rather than as a dock. */ + const dockContentW = dock.length + ? dock.length * dockIconSz + (dock.length - 1) * Math.round(22 * sc) + dockPad * 2 + : maxDockW; + const dockW = Math.min(maxDockW, dockContentW); + dk.style.cssText = `position:fixed;left:50%;bottom:${dockGap}px;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:${dockW}px;height:${dh}px;padding:0 ${dockPad}px;border-radius:${Math.round(44 * sc)}px;z-index:400;`; dk.innerHTML = ''; dock.forEach(item => { const a = mk('a', { href: item.href, target: '_blank', rel: 'noreferrer noopener' }); a.className = 'dyn-dock-icon'; const nm = item.label || item.id; a.setAttribute('aria-label', nm); + a.dataset.tileName = nm; a.title = nm; /* dock icons never show a label */ a.appendChild(mkWrap(item, dockIconSz, dockIr, dockIm, '')); dk.appendChild(a); diff --git a/public/js/utils.js b/public/js/utils.js index 50d3c5d..b33c4f8 100644 --- a/public/js/utils.js +++ b/public/js/utils.js @@ -1,4 +1,5 @@ import { iconChain } from '/js/icons.js?v=69c2b9bd'; +import { toneForColor } from '/js/label-contrast.js?v=38adb276'; export const mk = (t, a = {}) => { const e = document.createElement(t); @@ -16,26 +17,50 @@ export const clr = c => { const v = String(c).trim(); return SAFE_COLOR.test(v) ? v : DEFAULT_TILE_COLOR; }; -export const fb = (l, sz) => { +/* The plate is a colour the user chose, so the ink has to be measured from it. + White on the palette's own yellow reads at 1.5:1. */ +export const fb = (l, sz, plate) => { const e = mk('span'); e.className = 'fb'; + if (toneForColor(plate) === 'dark') e.classList.add('fb-on-light'); e.style.fontSize = Math.round(sz * 0.32) + 'px'; e.textContent = (l || '?')[0].toUpperCase(); return e; }; export { esc } from '/js/html.js?v=c71f8903'; -/* A name the user typed has its own direction. Without dir="auto" an English - name inside a Persian dashboard lays out right-to-left and an over-long one - loses its head rather than its tail. +/* A name the user typed has its own direction. Without that an English name + inside a Persian dashboard lays out right-to-left and an over-long one loses + its head rather than its tail. + + The isolation goes on a around the text, not on the block. `dir` sets + alignment as well as bidi, so a Latin name on the block dragged its whole row + to the other edge: a title and its subtitle ended up on opposite sides. @param {HTMLElement} node @param {string} text @returns {HTMLElement} */ export const setUserText = (node, text) => { - node.textContent = text; - node.setAttribute('dir', 'auto'); + node.textContent = ''; + const bdi = mk('bdi'); + bdi.textContent = text; + node.appendChild(bdi); return node; }; +/* A tile label is one line and ellipsises. The full name is on the anchor's + accessible name either way, so this is for a pointer: a tooltip only where the + text is actually cut, because one on every tile is noise. + + @param {ParentNode} [root] */ +export function titleWhenTruncated(root = document) { + for (const label of root.querySelectorAll('.ilabel, .dyn-mob-label, .dyn-fold-label')) { + const tile = /** @type {HTMLElement|null} */ (label.closest('a, button')); + if (!tile) continue; + const text = label.textContent || ''; + if (label.scrollWidth > label.clientWidth + 1) tile.title = text; + else if (tile.title === text) tile.removeAttribute('title'); + } +} + /* Strip quotes, parens and backslashes. A user URL must not break out of a CSS url('...') wrapper. */ export const sanitizeCssUrl = u => String(u || '').replace(/['"\\()]/g, ''); @@ -85,7 +110,7 @@ export function mkWrap(item, sz, r, isz, cls, breg) { const img = mk('img', { src: SETTINGS_ICON, alt: '', draggable: false }); img.setAttribute('aria-hidden', 'true'); img.style.cssText = `width:${si}px;height:${si}px;object-fit:contain;position:relative;z-index:3;`; - img.onerror = () => img.replaceWith(fb(item.label, sz)); + img.onerror = () => img.replaceWith(fb(item.label, sz, wrapBg)); w.appendChild(img); } else if (rawIcon) { const chain = iconChain(rawIcon); @@ -97,7 +122,7 @@ export function mkWrap(item, sz, r, isz, cls, breg) { const tryNext = () => { step++; if (step < chain.length) img.src = chain[step]; - else img.replaceWith(fb(item.label, sz)); + else img.replaceWith(fb(item.label, sz, wrapBg)); }; img.onerror = tryNext; /* A 403 fires load, not onerror. A blocked image has zero dimensions. */ @@ -105,8 +130,8 @@ export function mkWrap(item, sz, r, isz, cls, breg) { if (img.naturalWidth === 0) tryNext(); }; w.appendChild(img); - } else w.appendChild(fb(item.label, sz)); - } else w.appendChild(fb(item.label, sz)); + } else w.appendChild(fb(item.label, sz, wrapBg)); + } else w.appendChild(fb(item.label, sz, wrapBg)); if ( breg && (item.monitoring?.healthcheck?.enabled || @@ -308,7 +333,10 @@ export function mountScaledWidget(card, { src, title, design, iframeOpts, overla const w = card.clientWidth, h = card.clientHeight; if (!w || !h) return; - const s = Math.max(w / dw, h / dh); /* cover; with matched aspect = exact fill */ + /* Contain, not cover. With a matched aspect the two are the same and this + fills the card exactly. Where the card's aspect drifts from the design's, + cover crops the widget instead, and the card clips what it cropped. */ + const s = Math.min(w / dw, h / dh); const tx = (w - dw * s) / 2, ty = (h - dh * s) / 2; ifr.style.transform = `translate(${tx}px, ${ty}px) scale(${s})`; diff --git a/public/js/widget-config-form.js b/public/js/widget-config-form.js index d5fe9b5..386143d 100644 --- a/public/js/widget-config-form.js +++ b/public/js/widget-config-form.js @@ -4,8 +4,8 @@ import { t } from '/js/i18n.js?v=d056c9c5'; import { html, raw, setHtml } from '/js/html.js?v=c71f8903'; -import { wireChecklist } from '/js/admin-shared.js?v=8f69dad6'; -import { renderColorControl } from '/js/admin-color-control.js?v=9fded679'; +import { wireChecklist } from '/js/admin-shared.js?v=e9afcefb'; +import { renderColorControl } from '/js/admin-color-control.js?v=32111fda'; import { seedCarried, applyOptionSet, @@ -15,7 +15,7 @@ import { visibleFieldFlags, } from '/js/admin-logic.js?v=ddfc6f80'; import { optionsErrorAdvice, TONE } from '/js/admin-error.js?v=10f3cdb1'; -import { qi } from '/js/utils.js?v=b18c93ed'; +import { qi } from '/js/utils.js?v=26566e09'; const PE = ''; diff --git a/public/js/widget-glyphs.js b/public/js/widget-glyphs.js new file mode 100644 index 0000000..b672bf6 --- /dev/null +++ b/public/js/widget-glyphs.js @@ -0,0 +1,46 @@ +// @ts-check +/* A glyph per widget type for the Settings item list, drawn on the 24-unit grid + the other icons in admin.js use. Inline rather than a file per glyph: they are + stroked with currentColor, so they follow the theme and the increased-contrast + block with no rule of their own, which an cannot do. + + A widget names one in its manifest. A widget that names none, or names one + that is not here, keeps the size icon. */ + +/** @type {Record} */ +const PATHS = { + clock: '', + weather: + '', + gauge: + '', + shield: + '', + drive: + '', + archive: + '', + shelf: + '', + play: '', + network: + '', + merge: + '', + panels: + '', +}; + +/** The glyph names a manifest may declare. */ +export const GLYPH_NAMES = Object.freeze(Object.keys(PATHS)); + +/** One glyph as SVG markup, or null when the name is not one of ours. + @param {unknown} name @returns {string|null} */ +export function widgetGlyph(name) { + const d = typeof name === 'string' ? PATHS[name] : undefined; + if (!d) return null; + return ( + '` + ); +} diff --git a/public/js/widget-toolbox.js b/public/js/widget-toolbox.js index 54e5ffe..4f8e381 100644 --- a/public/js/widget-toolbox.js +++ b/public/js/widget-toolbox.js @@ -234,6 +234,11 @@ export function wt(key, fallback) { } /** @param {number} ts @returns {string} */ +/* Digit shape follows the reader's locale. Re-exported here so a widget takes it + from the toolbox rather than reaching for toLocaleString, which is the same + thing until someone passes it a language. */ +export { formatNumber, localiseDigits } from '/js/format-number.js?v=e2165e12'; + export function sinceLabel(ts) { if (!ts) return ''; const s = Math.max(0, Math.round((Date.now() - ts) / 1000)); diff --git a/public/widgets/backup/backup.html b/public/widgets/backup/backup.html index 36510aa..bcbdea5 100644 --- a/public/widgets/backup/backup.html +++ b/public/widgets/backup/backup.html @@ -114,7 +114,7 @@