From e77e31886a0d48ee482d6fd5859c3e16fa4a9aee Mon Sep 17 00:00:00 2001 From: webbeef Date: Fri, 21 Aug 2026 07:41:55 -0700 Subject: [PATCH] homescreen: new UI with vertical sections Signed-off-by: webbeef --- tests/unit/homescreen_icon.spec.js | 143 +++++ tests/unit/homescreen_model.spec.js | 319 +++++++++ tests/unit/homescreen_reconcile.spec.js | 171 +++++ tests/unit/homescreen_reorder.spec.js | 128 ++++ tests/unit/shadow_css.spec.js | 158 +++++ ui/atproto/widget.css | 128 ++++ .../clock/index.html => atproto/widget.html} | 13 +- ui/atproto/widget.js | 139 ++++ ui/homescreen/builtins/clock.js | 92 +++ ui/homescreen/builtins/peers.js | 237 +++++++ ui/homescreen/builtins/weather.js | 173 +++++ ui/homescreen/debug.js | 18 + ui/homescreen/elements/home_canopy.js | 175 +++++ ui/homescreen/elements/home_item.js | 269 ++++++++ ui/homescreen/elements/home_section.js | 160 +++++ ui/homescreen/elements/icon.js | 150 +++++ ui/homescreen/index.css | 604 ++++++++++++++++-- ui/homescreen/index.html | 18 +- ui/homescreen/index.js | 248 ++++--- ui/homescreen/model.js | 285 +++++++++ ui/homescreen/reconcile.js | 93 +++ ui/homescreen/reorder.js | 312 +++++++++ ui/homescreen/reorder_math.js | 42 ++ ui/homescreen/resources/bookmarks.json | 23 - ui/homescreen/resources/default_layout.json | 155 +++++ ui/homescreen/resources/pmos.ico | Bin 0 -> 15086 bytes .../adrien-olichon-hEjbjw9PpHE-unsplash.jpg | Bin 0 -> 548384 bytes ui/homescreen/resources/widgets.json | 14 - ui/homescreen/shell.js | 88 +++ ui/homescreen/sources/weather.js | 129 ++++ ui/homescreen/store.js | 45 ++ ui/homescreen/widgets/clock/index.css | 29 - ui/homescreen/widgets/clock/index.js | 21 - ui/homescreen/widgets/weather/index.css | 38 -- ui/homescreen/widgets/weather/index.html | 30 - ui/homescreen/widgets/weather/index.js | 62 -- ui/system/desktop/peers.js | 25 +- ui/system/desktop/peers_popover.css | 14 +- ui/system/desktop/peers_popover.js | 9 +- ui/system/mobile/init.js | 27 +- ui/system/mobile/layout_manager.js | 21 + ui/system/mobile/pebble.js | 72 ++- ui/system/mobile/pebble_radial.css | 86 ++- ui/system/mobile/pebble_radial.js | 67 +- ui/system/mobile/splash_screen.js | 18 + ui/system/services/pins.js | 131 ++++ ui/system/share_provider.html | 102 +++ ui/system/webtasks_test.html | 72 +++ 48 files changed, 4910 insertions(+), 443 deletions(-) create mode 100644 tests/unit/homescreen_icon.spec.js create mode 100644 tests/unit/homescreen_model.spec.js create mode 100644 tests/unit/homescreen_reconcile.spec.js create mode 100644 tests/unit/homescreen_reorder.spec.js create mode 100644 tests/unit/shadow_css.spec.js create mode 100644 ui/atproto/widget.css rename ui/{homescreen/widgets/clock/index.html => atproto/widget.html} (60%) create mode 100644 ui/atproto/widget.js create mode 100644 ui/homescreen/builtins/clock.js create mode 100644 ui/homescreen/builtins/peers.js create mode 100644 ui/homescreen/builtins/weather.js create mode 100644 ui/homescreen/debug.js create mode 100644 ui/homescreen/elements/home_canopy.js create mode 100644 ui/homescreen/elements/home_item.js create mode 100644 ui/homescreen/elements/home_section.js create mode 100644 ui/homescreen/elements/icon.js create mode 100644 ui/homescreen/model.js create mode 100644 ui/homescreen/reconcile.js create mode 100644 ui/homescreen/reorder.js create mode 100644 ui/homescreen/reorder_math.js delete mode 100644 ui/homescreen/resources/bookmarks.json create mode 100644 ui/homescreen/resources/default_layout.json create mode 100644 ui/homescreen/resources/pmos.ico create mode 100644 ui/homescreen/resources/wallpapers/adrien-olichon-hEjbjw9PpHE-unsplash.jpg delete mode 100644 ui/homescreen/resources/widgets.json create mode 100644 ui/homescreen/shell.js create mode 100644 ui/homescreen/sources/weather.js create mode 100644 ui/homescreen/store.js delete mode 100644 ui/homescreen/widgets/clock/index.css delete mode 100644 ui/homescreen/widgets/clock/index.js delete mode 100644 ui/homescreen/widgets/weather/index.css delete mode 100644 ui/homescreen/widgets/weather/index.html delete mode 100644 ui/homescreen/widgets/weather/index.js create mode 100644 ui/system/services/pins.js create mode 100644 ui/system/share_provider.html create mode 100644 ui/system/webtasks_test.html diff --git a/tests/unit/homescreen_icon.spec.js b/tests/unit/homescreen_icon.spec.js new file mode 100644 index 0000000..f219e85 --- /dev/null +++ b/tests/unit/homescreen_icon.spec.js @@ -0,0 +1,143 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import { test } from "node:test"; +import { strict as assert } from "node:assert"; + +import { + faviconUrl, + hostOf, + itemLabel, + monogramColor, + monogramText, + resolveIcon, +} from "../../ui/homescreen/elements/icon.js"; + +test("hostOf: reads the hostname from real URLs", () => { + assert.equal(hostOf("https://servo.org/download"), "servo.org"); + assert.equal(hostOf("http://192.168.1.4:8080/"), "192.168.1.4"); + assert.equal(hostOf("beaver://settings/index.html"), "settings"); +}); + +test("hostOf: hostless schemes and junk yield an empty string", () => { + assert.equal(hostOf("builtin:clock"), ""); + assert.equal(hostOf("data:text/html,hi"), ""); + assert.equal(hostOf("at://did:plc:abc/app.bsky.feed.post/1"), ""); + assert.equal(hostOf("not a url"), ""); + assert.equal(hostOf(""), ""); + assert.equal(hostOf(undefined), ""); +}); + +test("faviconUrl: only http(s) origins get one", () => { + assert.equal(faviconUrl("https://servo.org/a/b?c=1"), "https://servo.org/favicon.ico"); + assert.equal(faviconUrl("http://a.test:99/x"), "http://a.test:99/favicon.ico"); +}); + +test("faviconUrl: schemes serving a fixed resource map get none", () => { + // A miss on these is a guaranteed 404, not a maybe. + assert.equal(faviconUrl("beaver://settings/index.html"), null); + assert.equal(faviconUrl("tile://3kx.did:plc:abc/"), null); + assert.equal(faviconUrl("builtin:clock"), null); + assert.equal(faviconUrl("nonsense"), null); + assert.equal(faviconUrl(null), null); +}); + +test("monogramText: one letter for one word, two for two", () => { + assert.equal(monogramText("Servo"), "S"); + assert.equal(monogramText("Media Center"), "MC"); + assert.equal(monogramText("rewild the internet"), "RT"); +}); + +test("monogramText: splits on separators, not just spaces", () => { + assert.equal(monogramText("store.app"), "SA"); + assert.equal(monogramText("web-tiles"), "WT"); + assert.equal(monogramText(" padded "), "P"); +}); + +test("monogramText: empty input still renders something", () => { + assert.equal(monogramText(""), "?"); + assert.equal(monogramText(null), "?"); + assert.equal(monogramText(" "), "?"); +}); + +test("monogramText: keeps a whole code point, not half a surrogate pair", () => { + const emoji = monogramText("🦫 beaver"); + assert.equal([...emoji].length, 2, "one emoji + one letter"); + assert.ok(emoji.startsWith("🦫")); + assert.ok(!emoji.includes("�")); +}); + +test("monogramColor: is stable for the same host", () => { + const a = monogramColor("https://servo.org/one"); + const b = monogramColor("https://servo.org/two?x=1"); + assert.equal(a, b, "every page of a site shares its colour"); +}); + +test("monogramColor: differs across similar hostnames", () => { + const colors = new Set( + ["news.bbc.co.uk", "www.bbc.co.uk", "bbc.co.uk"].map((h) => + monogramColor(`https://${h}/`), + ), + ); + assert.equal(colors.size, 3, "a length or first-char hash would collide here"); +}); + +test("monogramColor: always emits a parseable oklch triple", () => { + const urls = [ + "https://servo.org", + "builtin:clock", + "tile://3kx.did:plc:abc/", + "", + "garbage", + ]; + for (const url of urls) { + const color = monogramColor(url); + const match = /^oklch\((\d+)% ([\d.]+) (-?[\d.]+)\)$/.exec(color); + assert.ok(match, `unparseable for ${JSON.stringify(url)}: ${color}`); + const [, l, c, h] = match; + assert.ok(Number(l) > 0 && Number(l) < 100, `lightness out of range: ${l}`); + assert.ok(Number(c) >= 0 && Number(c) < 0.4, `chroma out of range: ${c}`); + assert.ok(Number(h) >= -20 && Number(h) <= 380, `hue out of range: ${h}`); + } +}); + +test("monogramColor: spreads a realistic set across the palette", () => { + const hosts = [ + "servo.org", + "wikipedia.org", + "store.app", + "noemamag.com", + "github.com", + "bandcamp.com", + "somafm.com", + ]; + const colors = new Set(hosts.map((h) => monogramColor(`https://${h}/`))); + assert.ok(colors.size >= 6, `too much collision: ${colors.size}/7 distinct`); +}); + +test("itemLabel: prefers the title, then the host, then the builtin name", () => { + assert.equal(itemLabel({ title: "Servo", url: "https://servo.org" }), "Servo"); + assert.equal(itemLabel({ url: "https://servo.org" }), "servo.org"); + assert.equal(itemLabel({ url: "builtin:clock" }), "clock"); + assert.equal(itemLabel({ url: "at://did:plc:abc/x/1" }), "at://did:plc:abc/x/1"); +}); + +test("resolveIcon: an explicit icon wins over the favicon", () => { + const icon = resolveIcon({ + url: "https://servo.org", + title: "Servo", + icon: "resources/servo.png", + }); + assert.equal(icon.src, "resources/servo.png"); + assert.equal(icon.text, "S"); + assert.equal(icon.label, "Servo"); +}); + +test("resolveIcon: falls through to the favicon, then to a monogram", () => { + const web = resolveIcon({ url: "https://servo.org", title: "Servo" }); + assert.equal(web.src, "https://servo.org/favicon.ico"); + + const builtin = resolveIcon({ url: "builtin:clock", title: "Clock" }); + assert.equal(builtin.src, null, "nothing to try, render the monogram"); + assert.equal(builtin.text, "C"); + assert.ok(builtin.color.startsWith("oklch(")); +}); diff --git a/tests/unit/homescreen_model.spec.js b/tests/unit/homescreen_model.spec.js new file mode 100644 index 0000000..ad56bf6 --- /dev/null +++ b/tests/unit/homescreen_model.spec.js @@ -0,0 +1,319 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import { test } from "node:test"; +import { strict as assert } from "node:assert"; + +import { + HomeModel, + SIZES, + builtinName, + isBuiltinName, + isLive, + isOpenable, + openUrl, + makeItem, + makeSection, +} from "../../ui/homescreen/model.js"; + +/* A model with two sections and a dock, laid out so index arithmetic is + readable in the assertions: section "a" holds a,b,c and "b" holds d. */ +function fixture() { + const model = new HomeModel(); + const a = model.addSection(makeSection({ name: "A" })); + const b = model.addSection(makeSection({ name: "B" })); + const items = {}; + for (const title of ["a", "b", "c"]) { + items[title] = model.addItem(a.id, makeItem({ url: `x:${title}`, title })); + } + items.d = model.addItem(b.id, makeItem({ url: "x:d", title: "d" })); + return { model, a, b, items }; +} + +const titles = (list) => list.map((i) => i.title); + +test("isLive: 1x1 is an icon, everything larger is the page", () => { + assert.equal(isLive({ w: 1, h: 1 }), false); + assert.equal(isLive({ w: 2, h: 1 }), true); + assert.equal(isLive({ w: 4, h: 2 }), true); +}); + +test("builtinName: only the builtin: scheme yields a name", () => { + assert.equal(builtinName({ url: "builtin:clock" }), "clock"); + assert.equal(builtinName({ url: "https://servo.org" }), null); + assert.equal(builtinName({}), null); +}); + +test("builtinName: a bad name is still a builtin, not a web page", () => { + /* The scheme decides the branch; validity decides success. Otherwise a typo + falls through to being loaded as a URL and comes out as a blank tile. */ + assert.equal(builtinName({ url: "builtin:nope" }), "nope"); + assert.equal(builtinName({ url: "builtin:" }), ""); +}); + +test("isBuiltinName: accepts the names a file and a tag can both carry", () => { + for (const name of ["clock", "weather", "now-playing", "feed2"]) { + assert.equal(isBuiltinName(name), true, name); + } +}); + +test("isBuiltinName: rejects anything that could escape builtins/", () => { + // The name reaches an import path, so a traversal must not survive it. + for (const name of [ + "../sources/weather", + "./clock", + "a/b", + "clock.js", + "weather_source", + "Clock", + "2fast", + "-lead", + "", + null, + undefined, + ]) { + assert.equal(isBuiltinName(name), false, JSON.stringify(name)); + } +}); + +test("openUrl: an item opens what it shows, unless it says otherwise", () => { + assert.equal(openUrl({ url: "https://servo.org" }), "https://servo.org"); + /* The atmosphere tile shows three rows sized for a tile and opens the full + feed; opening the widget at full size would just be the same three rows. */ + assert.equal( + openUrl({ + url: "beaver://atproto/widget.html", + open: "beaver://atproto/feed.html", + }), + "beaver://atproto/feed.html", + ); +}); + +test("openUrl: isOpenable judges the target, not the tile", () => { + // A widget page that opens a real URL is openable... + assert.equal( + isOpenable({ url: "beaver://atproto/widget.html", open: "beaver://x/y.html" }), + true, + ); + // ...and one that would open a builtin is not. + assert.equal( + isOpenable({ url: "beaver://atproto/widget.html", open: "builtin:peers" }), + false, + ); +}); + +test("isOpenable: a builtin has no view to open", () => { + /* Tapping one used to ask the shell to navigate to "builtin:weather", which + cannot resolve. It is resolved inside the page, so there is no document on + the other end. */ + assert.equal(isOpenable({ url: "builtin:weather" }), false); + assert.equal(isOpenable({ url: "builtin:peers" }), false); +}); + +test("isOpenable: everything with a real URL is openable", () => { + for (const url of [ + "https://servo.org", + "beaver://settings/index.html", + "tile://3kx.did:plc:abc/", + "at://did:plc:abc/app.bsky.feed.post/1", + ]) { + assert.equal(isOpenable({ url }), true, url); + } +}); + +test("makeItem: unsupported sizes fall back to 1x1", () => { + const odd = makeItem({ url: "x:1", w: 3, h: 7 }); + assert.deepEqual([odd.w, odd.h], SIZES[0]); + const ok = makeItem({ url: "x:2", w: 2, h: 2 }); + assert.deepEqual([ok.w, ok.h], [2, 2]); +}); + +test("makeItem: ids are unique", () => { + const ids = new Set( + Array.from({ length: 50 }, () => makeItem({ url: "x:1" }).id), + ); + assert.equal(ids.size, 50); +}); + +test("find: locates an item and the section holding it", () => { + const { model, a, items } = fixture(); + const found = model.find(items.b.id); + assert.equal(found.containerId, a.id); + assert.equal(found.index, 1); + assert.equal(model.find("nope"), null); +}); + +test("moveItem: reorders within a section", () => { + const { model, a, items } = fixture(); + // c to the front. + model.moveItem(items.c.id, a.id, 0); + assert.deepEqual(titles(model.section(a.id).items), ["c", "a", "b"]); +}); + +test("moveItem: a forward move treats the index as an insertion gap", () => { + const { model, a, items } = fixture(); + /* Gap 2 in [a, b, c] is "between b and c", so a lands in the middle. The + removal must not shift the gap out from under the caller. */ + model.moveItem(items.a.id, a.id, 2); + assert.deepEqual(titles(model.section(a.id).items), ["b", "a", "c"]); +}); + +test("moveItem: the end gap puts an item last", () => { + const { model, a, items } = fixture(); + model.moveItem(items.a.id, a.id, 3); + assert.deepEqual(titles(model.section(a.id).items), ["b", "c", "a"]); + model.moveItem(items.a.id, a.id, -1); + assert.deepEqual(titles(model.section(a.id).items), ["b", "c", "a"]); +}); + +test("moveItem: moves across sections at an index", () => { + const { model, a, b, items } = fixture(); + model.moveItem(items.a.id, b.id, 0); + assert.deepEqual(titles(model.section(a.id).items), ["b", "c"]); + assert.deepEqual(titles(model.section(b.id).items), ["a", "d"]); +}); + + + +test("moveItem: an unknown item or container is a no-op", () => { + const { model, a, items } = fixture(); + assert.equal(model.moveItem("nope", a.id, 0), false); + assert.equal(model.moveItem(items.a.id, "nope", 0), false); + assert.deepEqual(titles(model.section(a.id).items), ["a", "b", "c"]); +}); + +test("removeItem: returns the item and drops it from its list", () => { + const { model, a, items } = fixture(); + assert.equal(model.removeItem(items.b.id), items.b); + assert.deepEqual(titles(model.section(a.id).items), ["a", "c"]); + assert.equal(model.removeItem("nope"), null); +}); + +test("cycleSize: walks the size set and wraps", () => { + const { model, items } = fixture(); + for (const [w, h] of SIZES.slice(1)) { + model.cycleSize(items.a.id); + assert.deepEqual([items.a.w, items.a.h], [w, h]); + } + model.cycleSize(items.a.id); + assert.deepEqual([items.a.w, items.a.h], SIZES[0]); +}); + +test("cycleSize: runs backwards too, and ignores an unknown item", () => { + const { model, items } = fixture(); + model.cycleSize(items.a.id, -1); + assert.deepEqual([items.a.w, items.a.h], SIZES[SIZES.length - 1]); + assert.equal(model.cycleSize("nope"), null); +}); + +test("collapse: toggles and can be set explicitly", () => { + const { model, a } = fixture(); + assert.equal(model.toggleCollapsed(a.id).collapsed, true); + assert.equal(model.toggleCollapsed(a.id).collapsed, false); + assert.equal(model.toggleCollapsed(a.id, true).collapsed, true); + assert.equal(model.toggleCollapsed("nope"), null); +}); + +test("collapse: survives a snapshot round-trip", () => { + const { model, a } = fixture(); + model.toggleCollapsed(a.id, true); + const restored = new HomeModel(JSON.parse(JSON.stringify(model.toSnapshot()))); + assert.equal(restored.section(a.id).collapsed, true); + assert.deepEqual(titles(restored.section(a.id).items), ["a", "b", "c"]); +}); + +test("sections: add, rename, reorder, remove", () => { + const { model, a, b } = fixture(); + const c = model.addSection(makeSection({ name: "C" }), 0); + assert.deepEqual( + model.sections.map((s) => s.name), + ["C", "A", "B"], + ); + model.renameSection(c.id, "C2"); + assert.equal(model.section(c.id).name, "C2"); + // Gap 2 in [C2, A, B] is between A and B. + model.moveSection(c.id, 2); + assert.deepEqual( + model.sections.map((s) => s.name), + ["A", "C2", "B"], + ); + model.moveSection(c.id, 3); + assert.deepEqual( + model.sections.map((s) => s.name), + ["A", "B", "C2"], + ); + assert.equal(model.removeSection(a.id).id, a.id); + assert.equal(model.removeSection("nope"), null); + assert.deepEqual( + model.sections.map((s) => s.name), + ["B", "C2"], + ); + assert.ok(model.section(b.id)); +}); + +test("snapshot: round-trips items and prefs", () => { + const { model, a } = fixture(); + model.prefs.weather = { name: "Somewhere", lat: 1, lon: 2 }; + const restored = new HomeModel(JSON.parse(JSON.stringify(model.toSnapshot()))); + assert.deepEqual(titles(restored.section(a.id).items), ["a", "b", "c"]); + assert.equal(restored.prefs.weather.name, "Somewhere"); +}); + +test("snapshot: a malformed one yields an empty model, not a throw", () => { + for (const bad of [{}, { sections: "nope" }, { sections: [null, 3] }]) { + const model = new HomeModel(bad); + assert.equal(model.isEmpty, true); + assert.deepEqual(model.sections.filter(Boolean).length, model.sections.length); + } +}); + +test("snapshot: an item's open target round-trips", () => { + const model = new HomeModel({ + sections: [ + { + id: "s1", + items: [{ id: "i1", url: "x:show", open: "x:open", w: 2, h: 2 }], + }, + ], + }); + const restored = new HomeModel(JSON.parse(JSON.stringify(model.toSnapshot()))); + assert.equal(openUrl(restored.section("s1").items[0]), "x:open"); +}); + +test("snapshot: bad items are dropped, good neighbours survive", () => { + const model = new HomeModel({ + sections: [ + { + id: "s1", + name: "A", + items: [ + { id: "i1", url: "x:1", w: 1, h: 1 }, + { id: "i2" }, // no url + null, + { id: "i3", url: "x:3", w: 99, h: 99 }, // impossible size + ], + }, + { id: "s2" }, // no items array + ], + }); + assert.equal(model.sections.length, 1); + assert.deepEqual( + model.section("s1").items.map((i) => i.url), + ["x:1", "x:3"], + ); + assert.deepEqual( + [model.section("s1").items[1].w, model.section("s1").items[1].h], + SIZES[0], + ); +}); + +test("isEmpty: true until an item is placed in some section", () => { + const model = new HomeModel(); + assert.equal(model.isEmpty, true); + const s = model.addSection(makeSection()); + assert.equal(model.isEmpty, true, "an empty section is still empty"); + model.addItem(s.id, makeItem({ url: "x:1" })); + assert.equal(model.isEmpty, false); +}); + + + diff --git a/tests/unit/homescreen_reconcile.spec.js b/tests/unit/homescreen_reconcile.spec.js new file mode 100644 index 0000000..c2a804e --- /dev/null +++ b/tests/unit/homescreen_reconcile.spec.js @@ -0,0 +1,171 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +/** + * Child reconciliation, against a fake DOM. + */ + +import { test } from "node:test"; +import { strict as assert } from "node:assert"; + +import { reconcileChildren } from "../../ui/homescreen/reconcile.js"; + +/* The smallest DOM that exercises the algorithm: children with a tagName and a + key, a live children array, insertBefore with move semantics, and the sibling + links the walk uses. Modelling siblings rather than indices is also closer to a + real DOM, so the fake cannot quietly permit something the browser would not. */ +class Node { + constructor(tagName, key) { + this.tagName = tagName; + this.key = key; + this.parent = null; + } + get nextElementSibling() { + const kids = this.parent?.children ?? []; + return kids[kids.indexOf(this) + 1] ?? null; + } + remove() { + const at = this.parent.children.indexOf(this); + this.parent.children.splice(at, 1); + this.parent = null; + } +} + +class Container { + constructor() { + this.children = []; + } + get firstElementChild() { + return this.children[0] ?? null; + } + insertBefore(el, ref) { + if (el.parent === this) { + this.children.splice(this.children.indexOf(el), 1); + } + const at = ref ? this.children.indexOf(ref) : this.children.length; + this.children.splice(at < 0 ? this.children.length : at, 0, el); + el.parent = this; + return el; + } + append(el) { + return this.insertBefore(el, null); + } +} + +const OPTS = { + tagName: "SECTION", + keyOf: (el) => el.key, + create: (key) => new Node("SECTION", key), +}; + +/** A container holding `keys` as
s, plus a non-managed tail node. */ +function setup(keys) { + const box = new Container(); + for (const key of keys) { + box.append(new Node("SECTION", key)); + } + const tail = new Node("DIV", undefined); + box.append(tail); + return { box, tail }; +} + +const order = (box) => + box.children.filter((c) => c.tagName === "SECTION").map((c) => c.key); + +test("an unchanged list performs no moves at all", () => { + /* The property that keeps live tiles from remounting: re-render happens on + every collapse, and a move would tear down every iframe beneath it. */ + const { box, tail } = setup(["a", "b", "c"]); + const before = box.children.filter((c) => c.tagName === "SECTION"); + const { elements, ...stats } = reconcileChildren(box, ["a", "b", "c"], { + ...OPTS, + tail, + }); + assert.deepEqual(stats, { moved: 0, created: 0, removed: 0 }); + assert.deepEqual( + elements.map((el) => el.key), + ["a", "b", "c"], + "returned in key order, so the caller never zips by position", + ); + assert.deepEqual(order(box), ["a", "b", "c"]); + assert.deepEqual( + box.children.filter((c) => c.tagName === "SECTION"), + before, + "the same element instances, not replacements", + ); +}); + +test("moving out of the MIDDLE leaves every other row alone", () => { + const { box, tail } = setup(["a", "b", "c", "d"]); + reconcileChildren(box, ["b", "a", "c", "d"], { ...OPTS, tail }); + assert.deepEqual(order(box), ["b", "a", "c", "d"]); +}); + +test("one reorder costs one move", () => { + const { box, tail } = setup(["a", "b", "c", "d"]); + const stats = reconcileChildren(box, ["b", "a", "c", "d"], { ...OPTS, tail }); + assert.equal(stats.moved, 1); +}); + +test("the tail node survives and stays last", () => { + const { box, tail } = setup(["a", "b"]); + reconcileChildren(box, ["b", "a"], { ...OPTS, tail }); + assert.equal(box.children.at(-1), tail); + assert.deepEqual(order(box), ["b", "a"]); +}); + +test("new keys are created, missing ones removed", () => { + const { box, tail } = setup(["a", "b"]); + const stats = reconcileChildren(box, ["b", "c"], { ...OPTS, tail }); + assert.deepEqual(order(box), ["b", "c"]); + assert.equal(stats.created, 1); + assert.equal(stats.removed, 1); +}); + +test("the returned elements are the live children, in key order", () => { + /* The caller pushes properties onto these. If they were stale or out of order, + every section would be handed the wrong section object. */ + const { box, tail } = setup(["a", "b", "c", "d"]); + const { elements } = reconcileChildren(box, ["d", "b", "a", "c"], { + ...OPTS, + tail, + }); + assert.deepEqual( + elements.map((el) => el.key), + ["d", "b", "a", "c"], + ); + assert.deepEqual( + elements, + box.children.filter((c) => c.tagName === "SECTION"), + "same instances, same order as the DOM ended up", + ); +}); + +test("every permutation of four lands exactly right", () => { + const keys = ["a", "b", "c", "d"]; + const permute = (xs) => + xs.length <= 1 + ? [xs] + : xs.flatMap((x, i) => + permute([...xs.slice(0, i), ...xs.slice(i + 1)]).map((rest) => [ + x, + ...rest, + ]), + ); + for (const target of permute(keys)) { + const { box, tail } = setup(keys); + reconcileChildren(box, target, { ...OPTS, tail }); + assert.deepEqual( + order(box), + target, + `reordering to ${target.join("")} produced ${order(box).join("")}`, + ); + assert.equal(box.children.at(-1), tail, "tail moved"); + } +}); + +test("an empty target clears the managed children only", () => { + const { box, tail } = setup(["a", "b"]); + reconcileChildren(box, [], { ...OPTS, tail }); + assert.deepEqual(order(box), []); + assert.deepEqual(box.children, [tail]); +}); diff --git a/tests/unit/homescreen_reorder.spec.js b/tests/unit/homescreen_reorder.spec.js new file mode 100644 index 0000000..20680b1 --- /dev/null +++ b/tests/unit/homescreen_reorder.spec.js @@ -0,0 +1,128 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +/** + * The index arithmetic behind section reordering. + */ + +import { test } from "node:test"; +import { strict as assert } from "node:assert"; + +import { + dropIndex, + fullListGap, + slotAfterDrop, +} from "../../ui/homescreen/reorder_math.js"; +import { HomeModel, makeSection } from "../../ui/homescreen/model.js"; + +/* Four rows, 50px apart, centred at 25/75/125/175. */ +const CENTERS = [25, 75, 125, 175]; +const others = (from) => CENTERS.filter((_, i) => i !== from); + +test("dropIndex: counts the centres the pointer has passed", () => { + assert.equal(dropIndex(CENTERS, 0), 0, "above everything"); + assert.equal(dropIndex(CENTERS, 50), 1, "between the first two"); + assert.equal(dropIndex(CENTERS, 200), 4, "below everything"); +}); + +test("dropIndex: an empty list has one gap", () => { + assert.equal(dropIndex([], 123), 0); +}); + +test("fullListGap: a drop at or below the origin is one further along", () => { + // Excluding its own centre shifts every gap at or after `from` by one. + assert.equal(fullListGap(0, 1), 0, "above: unchanged"); + assert.equal(fullListGap(1, 1), 2, "resting position"); + assert.equal(fullListGap(3, 1), 4, "bottom"); +}); + +test("a finger that has not moved commits no change", () => { + /* The whole chain, for the case that must be a no-op: press and release + without travelling. The pointer sits at its own row's centre, so it has + passed exactly the centres above it. */ + const from = 1; + const to = dropIndex(others(from), CENTERS[from]); + const model = new HomeModel(); + const ids = ["a", "b", "c", "d"].map( + (name) => model.addSection(makeSection({ name })).id, + ); + model.moveSection(ids[from], fullListGap(to, from)); + assert.deepEqual( + model.sections.map((s) => s.name), + ["a", "b", "c", "d"], + "a still finger must not reorder anything", + ); +}); + +test("dragging to the top and the bottom land where the finger is", () => { + for (const [y, expected] of [ + [0, ["b", "a", "c", "d"]], + [200, ["a", "c", "d", "b"]], + ]) { + const from = 1; + const model = new HomeModel(); + const ids = ["a", "b", "c", "d"].map( + (name) => model.addSection(makeSection({ name })).id, + ); + const to = dropIndex(others(from), y); + model.moveSection(ids[from], fullListGap(to, from)); + assert.deepEqual( + model.sections.map((s) => s.name), + expected, + `drop at y=${y}`, + ); + } +}); + +test("every drop position is reachable and lands exactly once", () => { + /* Sweep the whole column for every possible origin: whatever the finger is + over, the dragged section must end up in that visual slot with no gaps, no + duplicates, no off-by-one at the ends. */ + const names = ["a", "b", "c", "d"]; + for (let from = 0; from < 4; from += 1) { + const seen = new Set(); + for (let y = -20; y <= 220; y += 10) { + const model = new HomeModel(); + const ids = names.map( + (name) => model.addSection(makeSection({ name })).id, + ); + const to = dropIndex(others(from), y); + model.moveSection(ids[from], fullListGap(to, from)); + const order = model.sections.map((s) => s.name); + assert.equal(order.length, 4, "nothing lost or duplicated"); + assert.deepEqual([...order].sort(), [...names].sort()); + seen.add(order.join("")); + } + // Four origins, four reachable orders each (one per slot). + assert.equal(seen.size, 4, `from=${from} should reach all four slots`); + } +}); + +test("slotAfterDrop: the visual shift matches where the model puts things", () => { + /* The transform during the drag has to agree with the commit on release, or a + row animates toward one slot and lands in another. Non-dragged rows go where + slotAfterDrop says; the single slot left over is the dragged row's. */ + const names = ["a", "b", "c", "d"]; + for (let from = 0; from < 4; from += 1) { + for (let to = 0; to < 4; to += 1) { + const model = new HomeModel(); + const ids = names.map( + (name) => model.addSection(makeSection({ name })).id, + ); + model.moveSection(ids[from], fullListGap(to, from)); + + const predicted = new Array(names.length); + for (let i = 0; i < names.length; i += 1) { + if (i !== from) { + predicted[slotAfterDrop(i, from, to)] = names[i]; + } + } + predicted[predicted.findIndex((v) => v === undefined)] = names[from]; + + assert.deepEqual( + predicted, + model.sections.map((s) => s.name), + `from=${from} to=${to}: the transforms and the model disagree`, + ); + } + } +}); diff --git a/tests/unit/shadow_css.spec.js b/tests/unit/shadow_css.spec.js new file mode 100644 index 0000000..215a272 --- /dev/null +++ b/tests/unit/shadow_css.spec.js @@ -0,0 +1,158 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +/** + * Guards against two issues that are silent in Servo but visibly break the UI. + * + * 1. A backtick inside a css`...` tagged template. + * It terminates the template early, so the remaining CSS is parsed as + * JavaScript. When that happens to still parse, the component simply renders + * unstyled and nothing tells you why. Writing property names in backticks + * inside a CSS comment is the natural way to do it and the reason this keeps + * happening. + * + * 2. An author `display` rule beating the UA's `[hidden] { display: none }`. + * Any class rule with a display declaration outranks it, so an element the + * JS toggles via `.hidden` stays on screen forever. The chrome already had + * seven hand-written fixes for this before the homescreen added an eighth. + * + * 3. `padding` (or `border`) on `:host`. + * Pad an inner element instead. + */ + +import { test } from "node:test"; +import { strict as assert } from "node:assert"; +import { readFileSync } from "node:fs"; +import { globSync } from "node:fs"; + +const FILES = globSync("ui/**/*.js").filter( + (f) => !f.includes("third_party") && !f.includes("/spike/"), +); + +/** Every css`...` template body in a file, as {file, body} pairs. */ +function cssTemplates(file) { + const source = readFileSync(file, "utf8"); + const out = []; + /* The tag has to be the whole token. Matching "css`" anywhere also catches + filenames such as index.css and strip.css when they sit at the end of a + template or a comment, which is how the first version of this test failed + on two innocent files. */ + const tag = /(?= 0 && (close < 0 || comma < close)) { + close = comma; + } + if (close < 0) { + break; + } + out.push(source.slice(start, close)); + tag.lastIndex = close + 1; + } + return out; +} + +test("no backtick inside a css`` template", () => { + const offenders = []; + for (const file of FILES) { + for (const body of cssTemplates(file)) { + if (body.includes("`")) { + const line = body.split("\n").find((l) => l.includes("`"))?.trim(); + offenders.push(`${file}: ${line}`); + } + } + } + assert.deepEqual( + offenders, + [], + "a backtick ends the template early and the component renders unstyled:\n" + + offenders.join("\n"), + ); +}); + +/* Elements written with a `hidden` attribute in markup are, by definition, ones + something toggles at runtime, so if CSS gives them a display value, something + must also restore display:none for the hidden case. + Two subtleties, both learned by getting them wrong first: + - `hidden` has to be a real attribute, and the token boundary has to exclude + hyphens. A bare word search matches `class="screen hidden"` (a class-based + hide, which is fine) and `aria-hidden="true"` (not the attribute at all). + - it is enough for ONE of the element's selectors to carry the guard. The + desktop topbar sets display on .topbar-nav and guards .topbar-mentions[hidden]; + the element has both classes, so it hides correctly. + - only a rule that makes the element VISIBLE is dangerous. #footer is + display:none by default and revealed with a .visible class, so its hidden + attribute has nothing to fight. */ +test("[hidden] survives author display rules", () => { + const css = globSync("ui/**/*.css") + .filter((f) => !f.includes("third_party")) + .map((f) => readFileSync(f, "utf8")) + .join("\n"); + + /* (?![\\w-]) so .palette does not match .palette-group, which is a different + rule and would report a violation that does not exist. */ + const showsIt = (sel) => { + const m = new RegExp( + `${sel}(?![\\w-])\\s*\\{[^}]*\\bdisplay\\s*:\\s*([a-z-]+)`, + ).exec(css); + return !!m && m[1] !== "none"; + }; + const guarded = (sel) => new RegExp(`${sel}\\[hidden\\]`).test(css); + + const offenders = []; + for (const file of globSync("ui/**/*.html")) { + for (const tag of readFileSync(file, "utf8").matchAll(/<[a-z-]+\s[^>]*>/gi)) { + const classes = /class="([^"]+)"/.exec(tag[0])?.[1].split(/\s+/) ?? []; + const id = /id="([^"]+)"/.exec(tag[0])?.[1]; + // Only now, with the values captured, ask whether `hidden` is an attribute. + const bare = tag[0].replace(/="[^"]*"/g, ""); + if (!/(? `\\.${c}`), + ...(id ? [`#${id}`] : []), + ]; + if ( + selectors.some((sel) => showsIt(sel)) && + !selectors.some((sel) => guarded(sel)) + ) { + offenders.push(`${file}: ${selectors.join(", ")}`); + } + } + } + assert.deepEqual( + offenders, + [], + "sets display with no [hidden] rule, so it will never hide:\n" + + offenders.join("\n"), + ); +}); + +test(":host carries no padding or border", () => { + const offenders = []; + for (const file of FILES) { + const source = readFileSync(file, "utf8"); + /* Bare `:host {` only. `:host([attr])` and `:host .thing` are different + selectors and not what this is about. */ + for (const m of source.matchAll(/:host\s*\{([^}]*)\}/g)) { + const body = m[1]; + // Strip comments first, so prose about padding does not trip this. + const code = body.replace(/\/\*[\s\S]*?\*\//g, ""); + if (/(^|\s|;)(padding|border)(-[a-z]+)?\s*:/.test(code)) { + offenders.push(file); + } + } + } + assert.deepEqual( + offenders, + [], + "pad an inner wrapper instead; :host padding does not take effect here:\n" + + offenders.join("\n"), + ); +}); diff --git a/ui/atproto/widget.css b/ui/atproto/widget.css new file mode 100644 index 0000000..d90eb9d --- /dev/null +++ b/ui/atproto/widget.css @@ -0,0 +1,128 @@ +/* SPDX-License-Identifier: AGPL-3.0-or-later */ + +/* Atmosphere widget. + * + * Lives in an iframe whose viewport is the tile, which is the useful part: a + * media query here measures the tile, not the device, and the widget adapts to + * being resized with no JS and no resize listener. + * + * The narrow case is the base, because 2x2 is where this is placed. There a + * square buys width with wrapping rather than with a shorter list: text runs to + * two lines (about 32 characters, a usable fragment) instead of the seventeen a + * single line would give, which is not a preview of anything. Past 200px there is + * width for a whole line, so the text stops wrapping. + * + * Three entries fit either way, but only just at 2x2: a row with a two-line body + * is 39px, so three of them plus gaps and padding come to 142px of the 149px + * available. That is why the vertical spacing here is tighter than the + * horizontal - it is spent on a third record instead. + * + * Every token carries a fallback. This is a content page, so it renders under + * whichever theme is active, and a theme is free not to define one. + */ + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html, +body { + height: 100%; + /* Transparent: the tile behind this already has the recessed surface, and a + second background would put a hard edge inside it. */ + background: transparent; + color: var(--color-text, #2b2b26); + font-family: var(--font-family-base, system-ui), sans-serif; + /* No scrolling. The widget shows what fits and nothing more; the full feed is + one tap away and is where reading happens. */ + overflow: hidden; +} + +.rows { + display: flex; + height: 100%; + flex-direction: column; + justify-content: center; + /* Deliberately asymmetric: vertical space is the scarce axis at 2x2 and buys a + third record, horizontal space is what keeps the text off the tile edge. */ + gap: var(--spacing-md, 16px); + padding: var(--spacing-sm, 6px) var(--spacing-xl, 12px); +} + +/* Top-aligned, because the base case has a two-line body: centring the avatar + against a wrapped fragment pushes the face down the row. The wide case sets it + back to center, where the body is one line. */ +.row { + display: flex; + align-items: flex-start; + gap: var(--spacing-sm, 6px); + min-width: 0; +} + +.avatar { + display: flex; + width: 18px; + height: 18px; + flex: none; + align-items: center; + justify-content: center; + overflow: hidden; + border-radius: 50%; + background: var(--bg-surface, #f3f2ee); + color: var(--color-text-secondary, #5c5b54); + font-size: 9px; + text-transform: lowercase; +} + +.avatar img { + width: 100%; + height: 100%; + object-fit: cover; +} + +/* Name and text stack, and the stack is what has to be allowed to shrink. */ +.body { + display: flex; + min-width: 0; + flex-direction: column; +} + +.name { + overflow: hidden; + color: var(--color-text, #2b2b26); + font-size: var(--font-size-xs, 11px); + text-overflow: ellipsis; + white-space: nowrap; +} + +/* Two lines, clipped by height rather than by -webkit-line-clamp, which is not + something to rely on here. line-height is set explicitly so the max-height is + exactly two lines and never one-and-a-bit. */ +.text { + overflow: hidden; + color: var(--color-text-secondary, #5c5b54); + font-size: var(--font-size-2xs, 10px); + line-height: 1.3; + max-height: 2.6em; +} + +@media (min-width: 200px) { + /* One line of text, so the avatar centres against it again. */ + .row { + align-items: center; + } + + .text { + max-height: none; + text-overflow: ellipsis; + white-space: nowrap; + } +} + +.quiet { + color: var(--color-text-tertiary, #86857c); + font-size: var(--font-size-xs, 11px); + text-align: center; +} diff --git a/ui/homescreen/widgets/clock/index.html b/ui/atproto/widget.html similarity index 60% rename from ui/homescreen/widgets/clock/index.html rename to ui/atproto/widget.html index 52c1c7f..d0a2b69 100644 --- a/ui/homescreen/widgets/clock/index.html +++ b/ui/atproto/widget.html @@ -4,16 +4,17 @@ + Atmosphere + - + - + -
-
-
-
+
diff --git a/ui/atproto/widget.js b/ui/atproto/widget.js new file mode 100644 index 0000000..94cf341 --- /dev/null +++ b/ui/atproto/widget.js @@ -0,0 +1,139 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +/** + * Atmosphere widget: the newest few records from the local ATProto store. + */ + +import { queryStore } from "beaver://shared/atproto/query.js"; +import { ensureProfile, shortenDid } from "beaver://shared/search/avatar.js"; +import { lexiconLabel } from "beaver://shared/search/lexicons.js"; + +/* Three fits a 2x2 tile without scrolling, which is the smallest size this is + placed at. Asking for one more than we show would only cost a row we throw + away. */ +const ROWS = 3; + +const POST = "app.bsky.feed.post"; + +const elRows = document.getElementById("rows"); + +function quiet(message) { + elRows.replaceChildren( + Object.assign(document.createElement("p"), { + className: "quiet", + textContent: message, + }), + ); +} + +/** + * The one line a record gets. + * + * A post says what it says. Everything else has no text of its own, so it says + * what kind of thing it is. + */ +function summarize(record) { + if (record.collection === POST) { + const text = record.value?.text?.replace(/\s+/g, " ").trim(); + if (text) { + return text; + } + } + return lexiconLabel(record.collection) || record.collection; +} + +async function load() { + let rows; + try { + rows = await queryStore( + `SELECT r.did AS did, r.collection AS collection, r.json AS json + FROM records r + ORDER BY json_extract(r.json, '$.createdAt') DESC + LIMIT CAST(? AS INTEGER)`, + [ROWS], + ); + } catch (error) { + /* No store yet, or nothing has ever synced. Not an error worth shouting + about on a homescreen; the indexer may simply not have run. */ + console.log("[Atmosphere widget] store unavailable:", error); + quiet("Nothing yet"); + return; + } + + if (!rows.length) { + quiet("Nothing yet"); + return; + } + + const records = rows.map((row) => { + let value = null; + try { + value = JSON.parse(row.json); + } catch { + /* A record we cannot parse still counts as activity; it just has no text + and falls back to its lexicon label. */ + } + return { did: row.did, collection: row.collection, value }; + }); + + /* Profiles resolve from the local store and are cached, but they are still + async, so render the rows immediately with a monogram, then fill in names + and avatars as they arrive. A widget should never show an empty box while it + waits. */ + elRows.replaceChildren(...records.map(renderRow)); + + await Promise.all( + records.map(async (record, index) => { + const profile = await ensureProfile(record.did); + decorate(elRows.children[index], record, profile); + }), + ); +} + +function renderRow(record) { + const row = document.createElement("div"); + row.className = "row"; + + const avatar = document.createElement("span"); + avatar.className = "avatar"; + avatar.textContent = shortenDid(record.did).slice(0, 1); + + const body = document.createElement("div"); + body.className = "body"; + + const name = document.createElement("span"); + name.className = "name"; + name.textContent = shortenDid(record.did); + + const text = document.createElement("span"); + text.className = "text"; + text.textContent = summarize(record); + + body.append(name, text); + row.append(avatar, body); + return row; +} + +/* textContent throughout, never innerHTML: every string here is somebody else's + post. */ +function decorate(row, record, profile) { + if (!row) { + return; + } + if (profile?.displayName) { + row.querySelector(".name").textContent = profile.displayName; + } + if (profile?.avatarUrl) { + const img = document.createElement("img"); + img.src = profile.avatarUrl; + img.alt = ""; + row.querySelector(".avatar").replaceChildren(img); + } +} + +load(); + +/* The indexer fires this when a sync brings something in. Reloading three rows + is cheap enough to do on every one, and it is the whole reason this is a live + tile rather than a bookmark. */ +navigator.atproto?.addEventListener("feedupdated", () => load()); diff --git a/ui/homescreen/builtins/clock.js b/ui/homescreen/builtins/clock.js new file mode 100644 index 0000000..6fd097d --- /dev/null +++ b/ui/homescreen/builtins/clock.js @@ -0,0 +1,92 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +/** + * `` : the clock, as a live tile. + */ + +import { + LitElement, + html, + css, +} from "beaver://shared/third_party/lit/lit-all.min.js"; + +const TICK_MS = 30_000; + +export class HomeClock extends LitElement { + #timer = null; + + static properties = { + _time: { state: true }, + _date: { state: true }, + }; + + /* Shadow DOM here, unlike the rest of the homescreen: a tile's internals are + its own, and the sizing below should not be reachable by page CSS. Theme + tokens still cross the boundary, since custom properties inherit. */ + static styles = css` + :host { + display: flex; + width: 100%; + height: 100%; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 2px; + } + + .time { + font-weight: var(--home-display-weight, 300); + font-variation-settings: var(--home-display-expand, "HEXP" 72); + font-size: clamp(1.5rem, 9vw, 3rem); + line-height: 1.1; + letter-spacing: -0.02em; + color: var(--color-text); + } + + .date { + color: var(--color-text-secondary); + font-family: var(--font-family-base); + font-size: var(--font-size-sm); + } + `; + + constructor() { + super(); + this._time = ""; + this._date = ""; + } + + connectedCallback() { + super.connectedCallback(); + this.#tick(); + this.#timer = setInterval(() => this.#tick(), TICK_MS); + } + + disconnectedCallback() { + super.disconnectedCallback(); + clearInterval(this.#timer); + this.#timer = null; + } + + #tick() { + const now = new Date(); + this._time = now.toLocaleTimeString(undefined, { + hour: "numeric", + minute: "2-digit", + }); + this._date = now.toLocaleDateString(undefined, { + weekday: "long", + month: "long", + day: "numeric", + }); + } + + render() { + return html` +
${this._time}
+
${this._date}
+ `; + } +} + +customElements.define("home-widget-clock", HomeClock); diff --git a/ui/homescreen/builtins/peers.js b/ui/homescreen/builtins/peers.js new file mode 100644 index 0000000..4136cfd --- /dev/null +++ b/ui/homescreen/builtins/peers.js @@ -0,0 +1,237 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +/** + * `` : paired and connected devices. + */ + +import { + LitElement, + html, + css, +} from "beaver://shared/third_party/lit/lit-all.min.js"; +/* Statuses that mean "reachable right now", as opposed to "seen at some point". + The full set is discovered | paired-connected | paired-disconnected | + guest-connected. */ +const PRESENT = new Set(["paired-connected", "guest-connected"]); + +/* What fits on one line of a 4x1 tile. Beyond this the tile counts rather than + lists: an unbounded list in a fixed-height box can only overflow or shrink, + and both look like a bug. */ +const VISIBLE = 3; + +export class HomePeers extends LitElement { + #onChange = () => this.#refresh(); + + static properties = { + // "unsupported" | "off" | "ready" + _mode: { state: true }, + _peers: { state: true }, + }; + + static styles = css` + :host { + display: flex; + width: 100%; + height: 100%; + font-family: var(--font-family-base); + } + + .pad { + display: flex; + flex: 1; + min-width: 0; + flex-direction: column; + justify-content: center; + gap: var(--spacing-xs); + padding: var(--spacing-md) var(--spacing-2xl); + box-sizing: border-box; + } + + .heading { + color: var(--color-text-tertiary); + font-size: var(--font-size-sm); + } + + .list { + display: flex; + flex: none; + align-items: center; + gap: var(--spacing-xl); + overflow: hidden; + } + + .peer { + display: flex; + min-width: 0; + align-items: center; + gap: var(--spacing-sm); + color: var(--color-text); + font-size: var(--font-size-md); + } + + .peer span { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + .more { + color: var(--color-text-tertiary); + font-size: var(--font-size-sm); + white-space: nowrap; + } + + .dot { + width: var(--size-2xs); + height: var(--size-2xs); + flex: none; + border-radius: 50%; + background: var(--color-primary); + } + + .peer.away { + color: var(--color-text-tertiary); + } + + .peer.away .dot { + background: none; + box-shadow: inset 0 0 0 1.5px var(--color-text-tertiary); + } + + .quiet { + color: var(--color-text-tertiary); + font-size: var(--font-size-md); + } + + .enable { + align-self: flex-start; + padding: 0; + border: none; + background: none; + color: var(--color-primary); + font-family: inherit; + font-size: var(--font-size-md); + text-align: left; + cursor: pointer; + } + `; + + constructor() { + super(); + this._mode = "unsupported"; + this._peers = []; + } + + connectedCallback() { + super.connectedCallback(); + const pairing = navigator.embedder?.pairing; + if (!pairing) { + return; + } + for (const name of ["peerdiscovered", "peerjoined", "peerleft"]) { + pairing.addEventListener(name, this.#onChange); + } + this.#refresh(); + } + + disconnectedCallback() { + super.disconnectedCallback(); + const pairing = navigator.embedder?.pairing; + for (const name of ["peerdiscovered", "peerjoined", "peerleft"]) { + pairing?.removeEventListener(name, this.#onChange); + } + } + + async #refresh() { + const pairing = navigator.embedder?.pairing; + if (!pairing) { + this._mode = "unsupported"; + return; + } + /* `local()` is the state probe: the constellation rejects it with "Pairing + service not started" until something has called start(). There is no + isRunning() in the API, and this is a cheaper question than peers(). */ + try { + await pairing.local(); + } catch { + this._mode = "off"; + this._peers = []; + return; + } + this._mode = "ready"; + try { + const peers = await pairing.peers(); + this._peers = peers + .map((peer) => ({ + id: peer.id, + name: peer.displayName || peer.id, + present: PRESENT.has(peer.status), + })) + // Reachable devices first; a stable name sort keeps the rest from + // reshuffling every time one of them is rediscovered. + .sort( + (a, b) => + Number(b.present) - Number(a.present) || + a.name.localeCompare(b.name), + ); + } catch { + this._peers = []; + } + } + + async #enable() { + try { + await navigator.embedder.pairing.start(); + this.#refresh(); + } catch (error) { + console.error("[Peers] Could not start pairing:", error); + } + } + + render() { + if (this._mode === "unsupported") { + return html`
+ Peering unavailable +
`; + } + if (this._mode === "off") { + return html` +
+
Nearby
+ Discovery is off + +
+ `; + } + return html` +
+
Nearby
+ ${ + this._peers.length + ? html`
+ ${this._peers.slice(0, VISIBLE).map( + (peer) => html` + + + ${peer.name} + + `, + )} + ${ + this._peers.length > VISIBLE + ? html`+${this._peers.length - VISIBLE}` + : "" + } +
` + : html`No one else on this network` + } +
+ `; + } +} + +customElements.define("home-widget-peers", HomePeers); diff --git a/ui/homescreen/builtins/weather.js b/ui/homescreen/builtins/weather.js new file mode 100644 index 0000000..8628dbd --- /dev/null +++ b/ui/homescreen/builtins/weather.js @@ -0,0 +1,173 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +/** + * `` : conditions for the configured place, as a live tile. + */ + +import { + LitElement, + html, + css, + nothing, +} from "beaver://shared/third_party/lit/lit-all.min.js"; +import { currentWeather } from "../sources/weather.js"; + +const REFRESH_MS = 15 * 60 * 1000; + +export class HomeWeather extends LitElement { + #timer = null; + + static properties = { + _current: { state: true }, + }; + + static styles = css` + :host { + display: flex; + width: 100%; + height: 100%; + font-family: var(--font-family-base); + } + + .pad { + display: flex; + flex: 1; + min-width: 0; + flex-direction: column; + justify-content: center; + gap: var(--spacing-xs); + padding: var(--spacing-md) var(--spacing-2xl); + box-sizing: border-box; + } + + .row { + display: flex; + width: 100%; + align-items: center; + gap: var(--spacing-2xl); + } + + .now { + display: flex; + flex: none; + align-items: baseline; + gap: var(--spacing-xs); + color: var(--color-text); + } + + .now .degrees { + font-size: clamp(1.25rem, 6vw, 1.75rem); + line-height: 1; + } + + .now .conditions { + color: var(--color-text-secondary); + font-size: var(--font-size-sm); + } + + .steps { + display: flex; + flex: none; + margin-left: auto; + gap: var(--spacing-lg); + } + + .step { + display: flex; + flex-direction: column; + align-items: center; + gap: 1px; + color: var(--color-text-secondary); + font-size: var(--font-size-sm); + } + + .step .hour { + color: var(--color-text-tertiary); + font-size: var(--font-size-2xs); + } + + .step lucide-icon { + color: var(--color-text-tertiary); + font-size: var(--font-size-md); + } + + .place { + color: var(--color-text-tertiary); + font-size: var(--font-size-2xs); + } + + .quiet { + color: var(--color-text-tertiary); + font-size: var(--font-size-sm); + } + `; + + constructor() { + super(); + this._current = null; + } + + connectedCallback() { + super.connectedCallback(); + this.#refresh(); + this.#timer = setInterval(() => this.#refresh(), REFRESH_MS); + } + + disconnectedCallback() { + super.disconnectedCallback(); + clearInterval(this.#timer); + this.#timer = null; + } + + async #refresh() { + this._current = await currentWeather(); + } + + render() { + const current = this._current; + if (!current) { + /* Offline, or no place set. "No weather" is a state, not an error, and + it should look like the tile is resting rather than broken. */ + return html`
+ No weather +
`; + } + return html` +
+
+
+ + ${current.degrees}° + ${ + current.text + ? html`${current.text}` + : nothing + } +
+ ${ + current.forecast?.length + ? html`
+ ${current.forecast.map( + (step) => html` + + ${step.hour} + + ${step.degrees}° + + `, + )} +
` + : nothing + } +
+ ${ + current.place + ? html`
${current.place}
` + : nothing + } +
+ `; + } +} + +customElements.define("home-widget-weather", HomeWeather); diff --git a/ui/homescreen/debug.js b/ui/homescreen/debug.js new file mode 100644 index 0000000..951d689 --- /dev/null +++ b/ui/homescreen/debug.js @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +/** + * The homescreen's debug channel. + * + * Wraps the chrome-wide `makeDebugLog`, so this follows the same convention as + * every other subsystem: off unless asked for, and switchable at runtime by + * setting `globalThis.__homeDebug` or `localStorage["beaver.debug.home"] = "1"`. + * + * On a phone neither of those is reachable without a console, so index.js also + * turns it on for `?debug` in the URL and which composes with `?reset`: + * + * beaver://homescreen/index.html?reset&debug + */ + +import { makeDebugLog } from "beaver://shared/dbus/bus.js"; + +export const homeLog = makeDebugLog("home", "home"); diff --git a/ui/homescreen/elements/home_canopy.js b/ui/homescreen/elements/home_canopy.js new file mode 100644 index 0000000..38d70ae --- /dev/null +++ b/ui/homescreen/elements/home_canopy.js @@ -0,0 +1,175 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +/** + * `` : the living header at the top of the homescreen. + * + * It sticks to the top and condenses on scroll, handing the screen back to the + * grid. The condense is driven by an IntersectionObserver on a sentinel rather + * than a scroll listener: under embedded-webview root scroll the viewport is + * the only thing that moves. + */ + +import { + LitElement, + html, + nothing, +} from "beaver://shared/third_party/lit/lit-all.min.js"; +import { currentWeather, getPlace } from "../sources/weather.js"; + +/* The clock only shows minutes, so a 30s tick is enough to never be visibly + wrong. Aligning to the wall clock would be tidier, but a stray half-minute + on a minute display is not worth the extra machinery. */ +const CLOCK_INTERVAL_MS = 30_000; +/* Open-Meteo has no push and the weather does not move fast. */ +const WEATHER_INTERVAL_MS = 15 * 60 * 1000; + +export class HomeCanopy extends LitElement { + #timers = []; + #observer = null; + #onPeersChanged = () => this.#refreshPeers(); + + static properties = { + // Reflected: CSS shrinks the type and hides the date on this alone. + condensed: { type: Boolean, reflect: true }, + _time: { state: true }, + _date: { state: true }, + _weather: { state: true }, + _peers: { state: true }, + }; + + constructor() { + super(); + this.condensed = false; + this._time = ""; + this._date = ""; + this._weather = null; + this._peers = 0; + } + + createRenderRoot() { + return this; + } + + connectedCallback() { + super.connectedCallback(); + this.#startClock(); + this.#startWeather(); + this.#startPeers(); + } + + disconnectedCallback() { + super.disconnectedCallback(); + this.#timers.forEach(clearInterval); + this.#timers = []; + this.#observer?.disconnect(); + this.#observer = null; + const pairing = navigator.embedder?.pairing; + for (const name of ["peerdiscovered", "peerjoined", "peerleft"]) { + pairing?.removeEventListener(name, this.#onPeersChanged); + } + } + + /** + * Condense once `sentinel` scrolls out of view. The host owns the sentinel + * because it has to sit above this element in the flow. + */ + observe(sentinel) { + this.#observer?.disconnect(); + if (!sentinel) { + return; + } + this.#observer = new IntersectionObserver( + ([entry]) => { + this.condensed = !entry.isIntersecting; + }, + { root: null }, + ); + this.#observer.observe(sentinel); + } + + #every(fn, interval) { + fn(); + this.#timers.push(setInterval(fn, interval)); + } + + #startClock() { + this.#every(() => { + const now = new Date(); + this._time = now.toLocaleTimeString(undefined, { + hour: "numeric", + minute: "2-digit", + }); + this._date = now.toLocaleDateString(undefined, { + weekday: "long", + month: "long", + day: "numeric", + }); + }, CLOCK_INTERVAL_MS); + } + + #startWeather() { + this.#every(async () => { + this._weather = await currentWeather(); + }, WEATHER_INTERVAL_MS); + } + + #startPeers() { + const pairing = navigator.embedder?.pairing; + if (!pairing) { + return; + } + for (const name of ["peerdiscovered", "peerjoined", "peerleft"]) { + pairing.addEventListener(name, this.#onPeersChanged); + } + this.#refreshPeers(); + } + + async #refreshPeers() { + try { + const peers = await navigator.embedder.pairing.peers(); + // Only devices actually reachable right now are worth a line here. + this._peers = peers.filter( + (peer) => + peer.status === "paired-connected" || + peer.status === "guest-connected", + ).length; + } catch { + // Pairing off, or the service is not running. + this._peers = 0; + } + } + + #renderStatus() { + if (this._peers === 0) { + return nothing; + } + return html` + + + ${this._peers === 1 ? "1 peer" : `${this._peers} peers`} + + `; + } + + render() { + return html` +
+
+
${this._time}
+
${this._date}
+
+ ${ + this._weather + ? html`
+ + ${this._weather.degrees}°${this._weather.unit} +
` + : nothing + } +
+
${this.#renderStatus()}
+ `; + } +} + +customElements.define("home-canopy", HomeCanopy); diff --git a/ui/homescreen/elements/home_item.js b/ui/homescreen/elements/home_item.js new file mode 100644 index 0000000..f1f9dc8 --- /dev/null +++ b/ui/homescreen/elements/home_item.js @@ -0,0 +1,269 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +/** + * `` : one slot on the homescreen. + * + * The surface has exactly one presentation rule and it lives here: a 1x1 item + * is an icon you tap, anything larger renders the page itself. + * + * Live tiles hydrate lazily. A poster (the icon and title) stands in until the + * tile scrolls into view, so a cold start does not fan out into N simultaneous + * page loads. They also unload when the homescreen is not the visible carousel + * view. + */ + +import { + LitElement, + html, + nothing, +} from "beaver://shared/third_party/lit/lit-all.min.js"; +import { + builtinName, + isBuiltinName, + isLive, + isOpenable, + openUrl, +} from "../model.js"; +import { resolveIcon } from "./icon.js"; +import { shell } from "../shell.js"; +import { homeLog } from "../debug.js"; + +/* Hydrate a little before the tile is on screen so it has already painted by + the time it arrives, without loading the whole page's worth up front. */ +const HYDRATE_MARGIN = "200px"; + +/* `builtin:xyz` resolves by convention, not by a table: it loads + `builtins/xyz.js` and instantiates ``, which that module is + expected to have registered. Adding a widget is therefore dropping a file in + with nothing here to keep in step. */ +const BUILTIN_DIR = "../builtins/"; +const BUILTIN_TAG_PREFIX = "home-widget-"; + +export class HomeItem extends LitElement { + #observer = null; + /* The model mutates items in place, so the object identity is no signal that + the target changed. Track the URL to know when a genuinely different thing + is in this slot. */ + #seenUrl = null; + /* The widget element, created once and kept. Handing Lit the same node on + every render is what stops the widget being rebuilt - and its timers reset + - each time the section around it re-renders. */ + #builtin = null; + + static properties = { + item: { attribute: false }, + // Set by the host when the homescreen is not the view on screen. + suspended: { type: Boolean, reflect: true }, + _hydrated: { state: true }, + _iconFailed: { state: true }, + // A builtin whose module would not load: render something legible. + _builtinBroken: { state: true }, + }; + + constructor() { + super(); + this.item = null; + this.suspended = false; + this._hydrated = false; + this._iconFailed = false; + this._builtinBroken = false; + } + + createRenderRoot() { + return this; + } + + connectedCallback() { + super.connectedCallback(); + this.#observe(); + } + + disconnectedCallback() { + super.disconnectedCallback(); + this.#observer?.disconnect(); + this.#observer = null; + } + + updated() { + /* Written on every update, not just when the `item` property changes + identity: the model mutates items in place, so a resize keeps the same + object and Lit's !== check would never fire. */ + const { w = 1, h = 1 } = this.item ?? {}; + this.style.setProperty("--item-w", String(w)); + this.style.setProperty("--item-h", String(h)); + if (this.item?.url !== this.#seenUrl) { + this.#seenUrl = this.item?.url; + // A different target deserves a fresh attempt at its icon. + this._iconFailed = false; + } + this.#observe(); + } + + /* Watch for the tile entering the viewport. root:null is the viewport, which + under embedded-webview root scroll is the only thing that moves. + Idempotent, so it is safe to call on every update. */ + #observe() { + const wanted = this.item && this.#rendersWidget && !this._hydrated; + if (!wanted) { + this.#observer?.disconnect(); + this.#observer = null; + return; + } + if (this.#observer) { + return; + } + this.#observer = new IntersectionObserver( + (entries) => { + if (entries.some((entry) => entry.isIntersecting)) { + homeLog("hydrate", this.item.url); + this._hydrated = true; + this.#observer?.disconnect(); + this.#observer = null; + } + }, + { root: null, rootMargin: HYDRATE_MARGIN }, + ); + this.#observer.observe(this); + } + + #open() { + /* Guarded as well as unreachable: nothing should call this for a builtin, and + if a future path does it must not ask the shell to open a URL that cannot + be navigated. */ + if (this.item && isOpenable(this.item)) { + // Not always this.item.url: a widget tile opens what it is a view of. + shell.open(openUrl(this.item), this.item.title); + this.dispatchEvent( + new CustomEvent("item-open", { + bubbles: true, + composed: true, + detail: { item: this.item }, + }), + ); + } + } + + /* Artwork, shared by both presentations: the item's own icon, else the + origin's favicon, else a monogram. An that fails to load falls + through to the monogram, which is also how a missing favicon resolves. */ + #renderArt(icon) { + const art = + icon.src && !this._iconFailed + ? html` { + this._iconFailed = true; + }} + />` + : html`${icon.text}`; + return html`${art}`; + } + + #renderIcon(icon) { + return html` + + `; + } + + /** + * The element for a `builtin:` item, created once and reused. + * + * Returns null when the name cannot resolve, which is a rendering state + * rather than a fall-through: an item with the `builtin:` scheme is a widget + * whether or not it works, so a typo in the layout shows a broken widget + * instead of being loaded as a web page and coming out blank. + */ + #builtinElement(name) { + if (this.#builtin?.name === name) { + return this.#builtin.el; + } + if (!isBuiltinName(name)) { + homeLog("unusable builtin name", name); + this._builtinBroken = true; + return null; + } + const el = document.createElement(`${BUILTIN_TAG_PREFIX}${name}`); + this.#builtin = { name, el }; + /* The element exists before its class does; it stays an unknown element + until the module registers the tag, then upgrades in place. */ + import(`${BUILTIN_DIR}${name}.js`).catch((error) => { + homeLog("builtin failed to load", name, error); + this._builtinBroken = true; + }); + return el; + } + + #renderLive(icon) { + /* Suspended tiles drop back to the poster: unloading the iframe is the + point, since a retained one keeps its timers and its display list. */ + const show = this._hydrated && !this.suspended; + const name = builtinName(this.item); + + let content; + if (!show) { + content = html`
+ ${this.#renderArt(icon)} + ${icon.label} +
`; + } else if (name === null) { + content = html``; + } else { + const el = this._builtinBroken ? null : this.#builtinElement(name); + content = + el ?? + html`
+ + No widget “${name}” +
`; + } + + /* The overlay is only for tiles that open something. Leaving it on a builtin + did two kinds of damage: tapping tried to navigate to a `builtin:` URL, + which fails, and because it is absolutely positioned over the whole tile it + also swallowed every tap meant for the widget's own controls - the peers + tile's "Look for devices" button could never be reached. */ + return html` +
+ ${content} + ${ + isOpenable(this.item) + ? html`` + : nothing + } +
+ `; + } + + /* A builtin renders as its widget whatever its size: there is nothing to open, + so the icon presentation would be a button that does nothing. Everything + else follows the size rule. */ + get #rendersWidget() { + return isLive(this.item) || !isOpenable(this.item); + } + + render() { + if (!this.item) { + return nothing; + } + const icon = resolveIcon(this.item); + return this.#rendersWidget + ? this.#renderLive(icon) + : this.#renderIcon(icon); + } +} + +customElements.define("home-item", HomeItem); diff --git a/ui/homescreen/elements/home_section.js b/ui/homescreen/elements/home_section.js new file mode 100644 index 0000000..4ae23b1 --- /dev/null +++ b/ui/homescreen/elements/home_section.js @@ -0,0 +1,160 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +/** + * `` : a named, collapsible group of items. + */ + +import { + LitElement, + html, + nothing, +} from "beaver://shared/third_party/lit/lit-all.min.js"; +import "./home_item.js"; + +export class HomeSection extends LitElement { + /* False until the first update has landed the restored state without motion; + every change after that animates. */ + #settled = false; + + static properties = { + section: { attribute: false }, + // True when the homescreen is not the visible view; forwarded to items. + suspended: { type: Boolean }, + // Reflected so CSS can rotate the chevron and reveal the count. + collapsed: { type: Boolean, reflect: true }, + // A single unnamed section is the default install: no header, no chrome. + soleUnnamed: { type: Boolean, attribute: "sole-unnamed" }, + }; + + constructor() { + super(); + this.section = null; + this.suspended = false; + this.collapsed = false; + this.soleUnnamed = false; + } + + createRenderRoot() { + return this; + } + + firstUpdated() { + /* The first paint must show the restored state, not animate into it: a + section saved collapsed should already be shut when the page appears. + The transitionend handler is a template binding, so Lit owns its + lifetime and attaching it by hand here would lose it if the element were + ever moved in the DOM, which disconnects and reconnects it. */ + this.#applyHeight(false); + } + + #onTransitionEnd = (event) => { + /* Once open, release the fixed height. Leaving a measured pixel value on + an expanded section would clip it the moment anything reflowed under it + (a rotation, a wider panel, a late-loading tile). Only the collapsed + state needs a number, and that number is always 0. */ + if ( + event.target === event.currentTarget && + event.propertyName === "height" && + !this.collapsed + ) { + event.currentTarget.style.height = ""; + } + }; + + updated(changed) { + /* `collapsed` is pushed as a primitive by the host, not derived from + `section` here: the model mutates items and sections in place, so the + object's identity never changes and Lit's !== check would leave + `changed` empty on every toggle. */ + if (!this.#settled) { + // firstUpdated already landed on the state, with no motion. + this.#settled = true; + return; + } + if (changed.has("collapsed")) { + this.#applyHeight(true); + } + } + + /** + * Drive the body's height. `auto` cannot be transitioned, so a collapse goes + * measured-height -> 0 and an expand goes 0 -> measured-height, with the + * fixed value dropped again on arrival. + */ + #applyHeight(animate) { + const body = this.querySelector(".section-body"); + const grid = this.querySelector(".section-grid"); + if (!body || !grid) { + return; + } + if (!animate) { + // Boot, or a re-render: land on the state with no motion at all. + const previous = body.style.transition; + body.style.transition = "none"; + body.style.height = this.collapsed ? "0px" : ""; + // Flush, so the restored transition does not pick up this write. + void body.offsetHeight; + body.style.transition = previous; + return; + } + if (this.collapsed) { + /* From `auto` there is nothing to interpolate from, so pin the current + height first and let the next frame carry it to zero. */ + body.style.height = `${grid.offsetHeight}px`; + void body.offsetHeight; + body.style.height = "0px"; + } else { + // transitionend clears this back to auto. + body.style.height = `${grid.offsetHeight}px`; + } + } + + #toggle() { + this.dispatchEvent( + new CustomEvent("section-toggle", { + bubbles: true, + composed: true, + detail: { sectionId: this.section.id, collapsed: !this.collapsed }, + }), + ); + } + + #renderHeader() { + const count = this.section.items.length; + return html` + + `; + } + + render() { + if (!this.section) { + return nothing; + } + /* A sole unnamed section stays headerless, so it cannot be dragged */ + return html` + ${this.soleUnnamed ? nothing : this.#renderHeader()} +
+
+ ${this.section.items.map( + (item) => + html``, + )} +
+
+ `; + } +} + +customElements.define("home-section", HomeSection); diff --git a/ui/homescreen/elements/icon.js b/ui/homescreen/elements/icon.js new file mode 100644 index 0000000..366ecda --- /dev/null +++ b/ui/homescreen/elements/icon.js @@ -0,0 +1,150 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +/** + * Icon resolution for homescreen items. + * + * Beaver has no favicon store yet: favicons arrive push-only from the engine, per + * open tab, as blob URLs that are revoked when they change. So there is no way + * to ask "what is the icon for this URL" without loading the page. That leaves + * three sources, in order: + * + * 1. An icon the item carries (a bundled asset, or a Web Tile's manifest icon). + * 2. The origin's /favicon.ico, as a plain - no CORS needed for images. + * 3. A monogram. + */ + +const MONOGRAM_HUES = [ + { l: 48, c: 0.12, h: 155 }, // leaf + { l: 55, c: 0.11, h: 78 }, // ochre + { l: 54, c: 0.14, h: 38 }, // terracotta + { l: 50, c: 0.1, h: 250 }, // dusk blue + { l: 50, c: 0.13, h: 320 }, // thistle + { l: 46, c: 0.09, h: 195 }, // slate teal + { l: 52, c: 0.12, h: 15 }, // rosehip +]; + +/** Schemes whose "host" is not a hostname and should not be tinted like one. */ +const OPAQUE_SCHEMES = new Set(["builtin:", "about:", "data:", "at:"]); + +/** + * The label an item is known by, for both the tile caption and the monogram. + * Falls back through title, then something legible from the URL. + */ +export function itemLabel(item) { + if (item.title) { + return item.title; + } + const builtin = item.url?.startsWith("builtin:") + ? item.url.slice(8) + : hostOf(item.url); + return builtin || item.url || ""; +} + +/** Hostname, or "" for URLs that have no meaningful host (builtin:, data:). */ +export function hostOf(url) { + if (typeof url !== "string" || !url) { + return ""; + } + for (const scheme of OPAQUE_SCHEMES) { + if (url.startsWith(scheme)) { + return ""; + } + } + try { + return new URL(url).hostname; + } catch { + return ""; + } +} + +/** + * The favicon URL to try, or null when there is no point trying. + * + * Only http(s) gets one. `beaver://` and `tile://` serve from a fixed resource + * map, so a miss is a wasted request against a handler that will just 404; + * those items carry an explicit icon or fall through to a monogram. + */ +export function faviconUrl(url) { + if (typeof url !== "string") { + return null; + } + let parsed; + try { + parsed = new URL(url); + } catch { + return null; + } + if (parsed.protocol !== "http:" && parsed.protocol !== "https:") { + return null; + } + return `${parsed.origin}/favicon.ico`; +} + +/** + * A stable small hash of a string. FNV-1a: short, no dependencies, and spreads + * similar hostnames (news.bbc.co.uk / www.bbc.co.uk) into different buckets, + * which a length or first-char hash would not. + */ +function hash(text) { + let value = 0x811c9dc5; + for (let i = 0; i < text.length; i += 1) { + value ^= text.charCodeAt(i); + // 16777619, via shifts, staying inside 32 bits. + value = Math.imul(value, 0x01000193) >>> 0; + } + return value; +} + +/** + * The colour for an item's monogram: a palette entry chosen by hostname, with + * the hue nudged within its band so two sites in the same bucket still differ. + * Keyed on the host so every page of a site shares one colour; falls back to + * the whole URL for hostless schemes like `builtin:`. + */ +export function monogramColor(url) { + const key = hostOf(url) || String(url ?? ""); + const digest = hash(key); + const base = MONOGRAM_HUES[digest % MONOGRAM_HUES.length]; + // +/- 12 degrees: visibly distinct, still recognisably the same family. + const drift = ((digest >>> 8) % 25) - 12; + return `oklch(${base.l}% ${base.c} ${base.h + drift})`; +} + +/** + * The one or two characters a monogram shows. + * + * Two letters when the label is two words ("Media Center" -> "MC"), otherwise + * one. Uses the code point, not `charAt`, so an emoji or a non-BMP character + * survives instead of rendering as half a surrogate pair. + */ +export function monogramText(label) { + const words = String(label ?? "") + .trim() + .split(/[\s._/-]+/) + .filter(Boolean); + if (words.length === 0) { + return "?"; + } + const first = [...words[0]][0] ?? "?"; + if (words.length === 1) { + return first.toUpperCase(); + } + const second = [...words[1]][0] ?? ""; + return (first + second).toUpperCase(); +} + +/** + * Everything an icon needs, resolved in one call. + * + * `src` is what to try first; the element falls back to the monogram when the + * image fails to load, which is also how a missing /favicon.ico is handled. + */ +export function resolveIcon(item) { + const label = itemLabel(item); + return { + src: item.icon || faviconUrl(item.url), + text: monogramText(label), + color: monogramColor(item.url), + label, + }; +} diff --git a/ui/homescreen/index.css b/ui/homescreen/index.css index 57109bc..8fe1e31 100644 --- a/ui/homescreen/index.css +++ b/ui/homescreen/index.css @@ -6,117 +6,585 @@ box-sizing: border-box; } -html, -body { - width: 100%; - height: 100%; - font-family: var(--font-family-base); +html { background: var(--bg-main); - margin: 0; - padding: 0; } -/* Container fills viewport */ -.container { +html[data-wallpaper] { + background: var(--home-wallpaper); +} + +body { + user-select: none; + -webkit-user-select: none; display: flex; flex-direction: column; - min-height: 100%; - height: 100%; + min-height: 100vh; background: var(--bg-main); color: var(--color-text-menu); + font-family: var(--font-family-base); + /* Clearance for the pebble, which floats over this page from the shell + document and so cannot be measured from here. Inside min-height thanks to + the global border-box. */ + padding-bottom: var(--home-pebble-clearance); +} + +/* Let the wallpaper on the root show through. */ +html[data-wallpaper] body { + background: none; +} + +:root { + /* Four columns is the phone default; wider panels get more from the media + queries below. The cell is square, so one variable sizes both axes. */ + --home-columns: 4; + --home-gutter: var(--spacing-lg); + --home-pad: var(--spacing-2xl); + --home-panel-inset: 0px; + --home-cell: calc( + ( + 100vw - (var(--home-pad) * 2) - (var(--home-panel-inset) * 2) - + (var(--home-gutter) * (var(--home-columns) - 1)) + ) / + var(--home-columns) + ); + + --home-pebble-clearance: 78px; + --home-touch: 44px; + + --home-display-weight: 300; + --home-display-expand: "HEXP" 40; + --home-display-expand-small: "HEXP" 28; + + --home-motion: 0.28s var(--ease-out); + + --home-lift: + 0 1px 2px oklch(35% 0.03 105 / 0.16), 0 4px 10px oklch(35% 0.03 105 / 0.14), + 0 12px 28px oklch(35% 0.03 105 / 0.08); + + --home-recess: + inset 0 0 0 1px oklch(50% 0.02 105 / 0.14), + inset 0 2px 6px oklch(35% 0.03 105 / 0.1); + + --home-panel: oklch(96% 0.012 100 / 0.45); + --home-halo: oklch(97% 0.012 100 / 0.92); + --home-canopy-veil: oklch(96% 0.012 100 / 0.82); + + --home-section-gap: var(--spacing-4xl); +} + +/** canopy + * TODO: move some styles to home_canopy ? + */ + +#canopy-sentinel { + flex: none; + height: var(--spacing-3xl); +} + +home-canopy { + position: sticky; + top: 0; + z-index: 2; + flex: none; + display: block; + padding: 0 var(--home-pad); + background: var(--bg-main); } -/* Widgets area at top */ -.widgets-area { - padding: var(--spacing-2xl) var(--spacing-2xl) 0; +home-canopy[condensed] { + padding-top: var(--spacing-sm); + padding-bottom: var(--spacing-sm); + box-shadow: 0 1px 0 var(--color-border); +} + +.canopy-head { display: flex; - flex-direction: column; - gap: var(--spacing-md); + align-items: baseline; + justify-content: space-between; + gap: var(--spacing-lg); } -.widget-frame { - border: none; - border-radius: var(--radius-lg); - background: transparent; +.canopy-time { + font-weight: var(--home-display-weight); + font-variation-settings: var(--home-display-expand); + font-size: clamp(1.75rem, 9vw, 2.5rem); + line-height: 1.1; + letter-spacing: -0.02em; + color: var(--color-text); +} + +home-canopy[condensed] .canopy-time { + font-size: var(--font-size-xl); + line-height: 1.4; + font-weight: 400; + font-variation-settings: var(--home-display-expand-small); + letter-spacing: normal; +} + +.canopy-date { + font-size: var(--font-size-md); + color: var(--color-text-secondary); + max-height: 2em; + overflow: hidden; + opacity: 1; + transition: opacity var(--home-motion); +} + +home-canopy[condensed] .canopy-date { + max-height: 0; + opacity: 0; } -/* Bookmarks area fills available space, aligns content to bottom */ -.bookmarks-area { - flex: 1; - overflow-y: auto; - padding: var(--spacing-3xl) var(--spacing-2xl) var(--spacing-md); +.canopy-weather { display: flex; - flex-direction: column; - justify-content: flex-end; - margin-bottom: 3.5em; + align-items: center; + gap: var(--spacing-sm); + color: var(--color-text-secondary); + font-size: var(--font-size-md); + white-space: nowrap; } -/* Bookmarks grid */ -.bookmarks-grid { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(80px, 1fr)); - gap: var(--spacing-md); - justify-items: center; - max-width: 560px; - margin: 0 auto; - width: 100%; +.canopy-weather lucide-icon { + color: var(--color-text-tertiary); + font-size: var(--font-size-xl); } -.bookmark-item { +.canopy-status { display: flex; - flex-direction: column; + flex-wrap: wrap; align-items: center; - text-decoration: none; - color: inherit; - padding: var(--spacing-md) var(--spacing-xs); - border-radius: var(--radius-md); - transition: - background var(--transition-fast), - transform var(--transition-fast); + gap: var(--spacing-md) var(--spacing-xl); + margin-top: var(--spacing-sm); + color: var(--color-text-tertiary); + font-size: var(--font-size-sm); +} + +.canopy-status:empty { + display: none; +} + +.status-item { + display: flex; + align-items: center; + gap: var(--spacing-xs); +} + +.status-item lucide-icon { + font-size: var(--font-size-md); +} + +/* sections */ + +#sections { + flex: 1 0 auto; + display: block; + padding: var(--spacing-lg) var(--home-pad) 0; +} + +home-section { + display: block; +} + +home-section + home-section { + margin-top: var(--home-section-gap); +} + +.section-header { + display: flex; + width: 100%; + align-items: center; + gap: var(--spacing-md); + min-height: var(--home-touch); + margin: 0 calc(var(--home-pad) * -1); + padding: 0 var(--home-pad); + border: none; + border-radius: 12px 14px 12px 13px; + background: none; + color: var(--color-text-secondary); + font-family: inherit; + font-size: var(--font-size-lg); + font-weight: 600; + text-align: left; cursor: pointer; + transition: background var(--transition-fast); } -.bookmark-item:hover { +.section-header:active { background: var(--bg-hover); - transform: translateY(-2px); } -.bookmark-item:active { - transform: scale(0.93); +.section-header lucide-icon { + flex: none; + color: var(--color-text-tertiary); + font-size: var(--font-size-xl); + transition: transform var(--home-motion); } -.bookmark-icon { - width: 52px; - height: 52px; - border-radius: var(--radius-md); - background: var(--bg-surface); +home-section[collapsed] .section-header lucide-icon { + transform: rotate(-90deg); +} + +.section-count { + margin-left: auto; + color: var(--color-text-tertiary); + font-size: var(--font-size-sm); + opacity: 0; + transition: opacity var(--home-motion); +} + +home-section[collapsed] .section-count { + opacity: 1; +} + +.section-body { + overflow: hidden; + transition: height var(--home-motion); +} + +.section-grid { + display: grid; + grid-template-columns: repeat(var(--home-columns), 1fr); + grid-auto-rows: var(--home-cell); + grid-auto-flow: row; + gap: var(--home-gutter); + padding-top: var(--spacing-sm); +} + +/* item */ + +home-item { + display: block; + grid-column: span var(--item-w, 1); + grid-row: span var(--item-h, 1); + min-width: 0; +} + +.item-icon { display: flex; + width: 100%; + height: 100%; + flex-direction: column; + align-items: center; + justify-content: flex-start; + gap: var(--spacing-xs); + padding: 0; + border: none; + background: none; + color: inherit; + font-family: inherit; + cursor: pointer; +} + +.icon-art { + display: flex; + flex: none; + width: calc(var(--home-cell) * 0.72); + height: calc(var(--home-cell) * 0.72); align-items: center; justify-content: center; - margin-bottom: var(--spacing-xs); overflow: hidden; - box-shadow: 0 1px 4px var(--color-shadow-menu); - transition: box-shadow var(--transition-fast); + border-radius: 17px 15px 17px 16px; + background: var(--bg-surface); + box-shadow: var(--home-lift); + transition: + transform var(--transition-fast), + box-shadow var(--transition-fast); } -.bookmark-item:hover .bookmark-icon { - box-shadow: 0 3px 10px var(--color-shadow); +.item-icon:active .icon-art { + transform: scale(0.93); } -.bookmark-icon img { - width: 36px; - height: 36px; - border-radius: var(--radius-sm); +.icon-art img { + width: 62%; + height: 62%; object-fit: contain; } -.bookmark-title { +.icon-monogram { + display: flex; + width: 100%; + height: 100%; + align-items: center; + justify-content: center; + padding: 0 0.1em; + background: var(--icon-color, var(--bg-surface)); + color: oklch(97% 0.01 95); + font-weight: 600; + font-variation-settings: var(--home-display-expand-small); + font-size: calc(var(--home-cell) * 0.34); + line-height: 1; + text-transform: lowercase; +} + +.item-label { + width: 100%; + overflow: hidden; + color: var(--color-text-secondary); font-size: var(--font-size-sm); text-align: center; - max-width: 80px; - overflow: hidden; text-overflow: ellipsis; white-space: nowrap; +} + +.item-live { + position: relative; + width: 100%; + height: 100%; + overflow: hidden; + border-radius: 19px 17px 19px 18px; + background: color-mix(in oklch, var(--bg-surface) 92%, var(--bg-footer)); + box-shadow: var(--home-recess); +} + +@keyframes tile-wake { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + +.item-live > iframe, +.item-live > home-widget-clock, +.item-live > home-widget-weather { + animation: tile-wake 0.45s var(--ease-out) 1; +} + +.item-live iframe { + display: block; + width: 100%; + height: 100%; + border: none; + background: transparent; +} + +.item-poster { + display: flex; + width: 100%; + height: 100%; + flex-direction: column; + align-items: center; + justify-content: center; + gap: var(--spacing-sm); + color: var(--color-text-tertiary); + font-size: var(--font-size-sm); +} + +.item-poster .icon-art { + flex: none; + width: 44px; + height: 44px; + box-shadow: none; +} + +.item-poster .icon-monogram { + font-size: 18px; +} + +/* A `builtin:` item whose widget module is missing or misnamed. */ +.item-broken { + gap: var(--spacing-xs); + color: var(--color-text-tertiary); + text-align: center; +} + +.item-broken lucide-icon { + font-size: var(--font-size-2xl); +} + +/* Everything inside a live tile belongs to the page, so the tap target is a + sibling overlay: a tap opens the item instead of landing in the iframe. */ +.item-open { + position: absolute; + inset: 0; + border: none; + background: none; + cursor: pointer; +} + +/* wallpaper */ + +html[data-wallpaper] .canopy-time, +html[data-wallpaper] .canopy-date, +html[data-wallpaper] .canopy-weather, +html[data-wallpaper] .home-empty { + text-shadow: + 0 0 2px var(--home-halo), + 0 0 7px var(--home-halo); +} + +html[data-wallpaper] .item-label, +html[data-wallpaper] .section-header, +html[data-wallpaper] .canopy-status { + text-shadow: + 0 0 1px var(--home-halo), + 0 0 3px var(--home-halo); +} + +html[data-wallpaper] { + --home-panel-inset: var(--spacing-lg); +} + +html[data-wallpaper] home-section, +html[data-wallpaper] .home-empty { + padding: var(--home-panel-inset); + border-radius: 22px; + background: var(--home-panel); +} + +html[data-wallpaper] .section-grid { + padding-top: var(--spacing-xs); +} + +html[data-wallpaper] .section-header { + margin: 0; + padding: 0; +} + +html[data-wallpaper] home-canopy { + background: none; +} + +html[data-wallpaper] home-canopy[condensed] { + background: linear-gradient( + to bottom, + var(--home-canopy-veil), + color-mix(in oklch, var(--home-canopy-veil) 60%, transparent) 65%, + transparent + ); + /* The hairline belonged to a solid bar; over a photo it reads as a scratch. */ + box-shadow: none; +} + +/* reorder */ + +/* Reorder mode: long-press a section header, drag it, release. + Nothing about the layout changes on lift. + Transform only, no layout: the rows are translated by the drag. reorder.js + writes that transform as an inline style rather than through a custom property */ +html[data-reordering] home-section { + transition: transform var(--home-motion); +} + +html[data-reordering] home-section[lifted] { + position: relative; + z-index: 1; + transition: none; +} + +html[data-reordering] home-section[lifted] .section-header { + background: var(--bg-menu); + box-shadow: var(--home-lift); +} + +/* focus */ + +.item-icon:focus-visible { + outline: none; +} + +.item-icon:focus-visible .icon-art { + outline: 2px solid var(--color-focus-ring); + outline-offset: 3px; +} + +.item-open:focus-visible { + outline: none; + box-shadow: inset 0 0 0 2px var(--color-focus-ring); +} + +.section-header:focus-visible { + outline: 2px solid var(--color-focus-ring); + outline-offset: -2px; +} + +.home-empty button:focus-visible { + outline: 2px solid var(--color-focus-ring); + outline-offset: 2px; +} + +/* empty */ + +/* Shown when nothing is placed anywhere. Reachable two ways: a first run where + the default layout could not be fetched, and a homescreen a user has emptied. */ +.home-empty[hidden] { + display: none; +} + +.home-empty { + display: flex; + max-width: 34ch; + flex-direction: column; + align-items: flex-start; + gap: var(--spacing-lg); + margin: var(--spacing-4xl) 0; color: var(--color-text-secondary); - margin-top: 2px; +} + +.home-empty h2 { + color: var(--color-text); + font-size: var(--font-size-2xl); + font-weight: var(--home-display-weight); + font-variation-settings: var(--home-display-expand); + line-height: 1.2; + letter-spacing: -0.02em; +} + +.home-empty p { + font-size: var(--font-size-md); + line-height: 1.5; +} + +.home-empty button { + min-height: var(--home-touch); + padding: 0 var(--spacing-2xl); + border: 1px solid var(--color-border); + border-radius: 14px 16px 14px 15px; + background: var(--bg-surface); + box-shadow: var(--home-lift); + color: var(--color-text); + font-family: inherit; + font-size: var(--font-size-md); + cursor: pointer; + transition: transform var(--transition-fast); +} + +.home-empty button:active { + transform: translateY(1px); +} + +/* layout */ + +/* A wider panel gets more columns rather than bigger icons: a fifth column + keeps the cell near its comfortable touch size instead of inflating it. */ +@media (min-width: 560px) { + :root { + --home-columns: 5; + } +} + +@media (min-width: 760px) { + :root { + --home-columns: 6; + } +} + +@media (prefers-reduced-motion: reduce) { + :root { + --home-motion: 0.01s linear; + } + + .icon-art, + .section-header lucide-icon { + transition-duration: 0.01s; + } + + .item-live > iframe, + .item-live > home-widget-clock, + .item-live > home-widget-weather { + animation: none; + } } diff --git a/ui/homescreen/index.html b/ui/homescreen/index.html index 68ff8fc..e017055 100644 --- a/ui/homescreen/index.html +++ b/ui/homescreen/index.html @@ -12,17 +12,23 @@ href="beaver://shared/third_party/lucide/lucide.css" /> - -
-
- -
-
+ + +
+
diff --git a/ui/homescreen/index.js b/ui/homescreen/index.js index 105ee08..ea93f10 100644 --- a/ui/homescreen/index.js +++ b/ui/homescreen/index.js @@ -1,115 +1,179 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -// DOM elements -const bookmarksGrid = document.getElementById("bookmarks-grid"); -const widgetsArea = document.getElementById("widgets-area"); +/** + * Homescreen bootstrap: load the arrangement, render it, keep it live. + */ -// Load widgets from JSON -async function loadWidgets() { - try { - const { default: widgets } = await import("./resources/widgets.json", { - with: { type: "json" }, - }); - renderWidgets(widgets); - } catch (e) { - console.log("[Homescreen] No widgets configured"); - } +import { HomeModel } from "./model.js"; +import { HomeStore } from "./store.js"; +import { shell } from "./shell.js"; +import { homeLog } from "./debug.js"; +import { SectionReorder } from "./reorder.js"; +import { reconcileChildren } from "./reconcile.js"; +import { DEFAULT_PLACE, setPlace } from "./sources/weather.js"; +import "./elements/home_canopy.js"; +import "./elements/home_section.js"; + +/* This page has no context menu. */ +document.addEventListener("contextmenu", (event) => event.preventDefault()); + +const params = new URLSearchParams(location.search); + +/* Turn on this page's logging before anything can log. `?debug` is the only + route that needs no console, which on a phone is the only route there is. */ +if (params.has("debug")) { + globalThis.__homeDebug = true; } -// Render widgets as iframes -function renderWidgets(widgets) { - for (const widget of widgets) { - const iframe = document.createElement("iframe"); - iframe.className = "widget-frame"; - iframe.src = widget.url; - iframe.style.width = widget.width || "100%"; - iframe.style.height = widget.height || "100px"; - widgetsArea.appendChild(iframe); - } +const elCanopy = document.getElementById("canopy"); +const elSections = document.getElementById("sections"); +const elSentinel = document.getElementById("canopy-sentinel"); +const elEmpty = document.getElementById("empty"); +const elRestore = document.getElementById("empty-restore"); + +const store = new HomeStore(); +let model = null; +let reorder = null; + +/** + * `?reset` discards the saved arrangement and starts from the shipped default. + */ +function wantsReset() { + return params.has("reset"); } -// Load bookmarks from JSON -async function loadBookmarks() { +/** First run, a reset, or a snapshot too broken to use. */ +async function defaultModel() { try { - const { default: bookmarks } = await import("./resources/bookmarks.json", { - with: { type: "json" }, - }); - renderBookmarks(bookmarks); - } catch (e) { - console.error("[Homescreen] Failed to load bookmarks:", e); + const response = await fetch("./resources/default_layout.json"); + return new HomeModel(await response.json()); + } catch (error) { + // Never leave the user staring at nothing; an empty model still renders. + console.error("[Homescreen] Default layout unreadable:", error); + return new HomeModel(); } } -// Render bookmarks to the grid -function renderBookmarks(bookmarks) { - bookmarksGrid.innerHTML = ""; - - bookmarks.forEach((bookmark, i) => { - const item = document.createElement("div"); - item.className = "bookmark-item"; - item.innerHTML = ` -
- -
- ${bookmark.title} - `; - // TODO: replace with - item.addEventListener("click", () => { - window.open(bookmark.url, "_blank"); - }); - bookmarksGrid.appendChild(item); - }); +/** + * Put the wallpaper on the root element, or take it off. + * + * The value is a complete CSS background shorthand. + */ +function applyWallpaper(background) { + const root = document.documentElement; + if (background) { + root.style.setProperty("--home-wallpaper", background); + root.dataset.wallpaper = ""; + } else { + root.style.removeProperty("--home-wallpaper"); + delete root.dataset.wallpaper; + } } -// Port for communicating with system app splash screen -let splashPort = null; -let homescreenReady = false; - -// Listen for splash port from system app -window.addEventListener("message", (event) => { - console.log( - "[Homescreen] Received message:", - event.data, - "ports:", - event.ports, - ); - if (event.data?.type === "splash-port" && event.ports?.length > 0) { - console.log("[Homescreen] Splash port received"); - splashPort = event.ports[0]; - // If homescreen is already ready, send the signal now - if (homescreenReady) { - sendReadySignal(); - } +/* Invariant, so it is built once rather than per render along with two fresh + closures. */ +const SECTION_RECONCILE = { + tagName: "HOME-SECTION", + keyOf: (el) => el.dataset.sectionId, + create: (id) => { + const el = document.createElement("home-section"); + el.dataset.sectionId = id; + return el; + }, +}; + +function render() { + const sections = model.sections; + + elEmpty.hidden = !model.isEmpty; + if (model.isEmpty) { + // Reconciling to nothing clears the sections and leaves the tail alone. + reconcileChildren(elSections, [], { ...SECTION_RECONCILE, tail: elEmpty }); + return; } -}); - -// Actually send the ready signal -function sendReadySignal() { - if (splashPort) { - try { - splashPort.postMessage({ type: "homescreen-ready" }); - console.log("[Homescreen] Ready signal sent successfully"); - } catch (e) { - console.error("[Homescreen] Failed to send ready signal:", e); - } + + /* A lone unnamed section is the default install. It renders headerless, so + nobody meets the collapse mechanism until they make a second section. */ + const sole = sections.length === 1 && !sections[0].name; + + const { elements } = reconcileChildren( + elSections, + sections.map((s) => s.id), + { ...SECTION_RECONCILE, tail: elEmpty }, + ); + + for (const [i, el] of elements.entries()) { + const section = sections[i]; + el.section = section; + el.soleUnnamed = sole; + el.collapsed = section.collapsed; + /* Lit will not re-render on an in-place mutation of the same object, and + every model change is in-place by design. */ + el.requestUpdate(); } } -// Signal ready to system app -function signalReady() { - console.log("[Homescreen] signalReady called, splashPort:", splashPort); - homescreenReady = true; - if (splashPort) { - sendReadySignal(); - } else { - console.log("[Homescreen] Port not yet available, will send when received"); - } +function persist() { + store.scheduleSave(model); } -// Initialize and signal when ready async function initialize() { - await Promise.all([loadWidgets(), loadBookmarks()]); - signalReady(); + if (wantsReset()) { + store.clear(); + model = await defaultModel(); + } else { + model = store.load() ?? (await defaultModel()); + } + + applyWallpaper(model.prefs.wallpaper); + + setPlace(model.prefs.weather ?? DEFAULT_PLACE); + elCanopy.observe(elSentinel); + + render(); + + document.addEventListener("section-toggle", (event) => { + if (reorder.active) { + return; + } + const { sectionId, collapsed } = event.detail; + model.toggleCollapsed(sectionId, collapsed); + render(); + persist(); + }); + + reorder = new SectionReorder({ + container: elSections, + model, + onCommit: () => { + render(); + persist(); + }, + onCancel: () => render(), + }); + + elRestore.addEventListener("click", async () => { + model = await defaultModel(); + applyWallpaper(model.prefs.wallpaper); + setPlace(model.prefs.weather ?? DEFAULT_PLACE); + render(); + persist(); + }); + + shell.addEventListener("visibility", (event) => { + const suspended = !event.detail.visible; + homeLog(suspended ? "hidden: suspending live tiles" : "visible: resuming"); + for (const section of elSections.querySelectorAll( + ":scope > home-section", + )) { + section.suspended = suspended; + } + }); + + // Don't lose an in-flight debounce if the page goes away. + window.addEventListener("beforeunload", () => store.flush(model)); + + shell.signalReady(); } initialize(); diff --git a/ui/homescreen/model.js b/ui/homescreen/model.js new file mode 100644 index 0000000..739e0d0 --- /dev/null +++ b/ui/homescreen/model.js @@ -0,0 +1,285 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +/** + * HomeModel : the homescreen's arrangement. + * + * Placement is flow order, not coordinates. Each section owns an ordered list + * and the grid packs it in order, so a move is an index change. + * + */ + +/** Sizes an item may take, as [columns, rows] against a 4-column grid. */ +export const SIZES = [ + [1, 1], + [2, 1], + [2, 2], + [4, 1], + [4, 2], +]; + +/** + * A live item is one big enough to be worth rendering as a page. 1x1 is an + * icon; everything else is the page itself. This is the single rule the whole + * presentation model rests on, so it lives in one function. + */ +export function isLive(item) { + return !(item.w === 1 && item.h === 1); +} + +/** + * The widget name in a `builtin:` URL, or null when this is an ordinary URL. + */ +export function builtinName(item) { + return item.url?.startsWith("builtin:") ? item.url.slice(8) : null; +} + +/** + * The URL an item opens, which is not always the URL it shows. + */ +export function openUrl(item) { + return item?.open || item?.url; +} + +/** + * Whether this item can be opened as a view. + */ +export function isOpenable(item) { + return builtinName({ url: openUrl(item) }) === null; +} + +/** + * Whether a builtin name can be resolved to a module and an element. + */ +export function isBuiltinName(name) { + return typeof name === "string" && /^[a-z][a-z0-9-]*$/.test(name); +} + +function clampSize(w, h) { + const match = SIZES.find(([sw, sh]) => sw === w && sh === h); + return match ?? SIZES[0]; +} + +let idCounter = 0; + +/* Unique within a run, which is all an id needs to be: it keys DOM nodes and + addresses items in mutations. The timestamp prefix keeps ids from colliding + with a restored snapshot's, since the counter restarts at zero on load. */ +function makeId(prefix) { + idCounter += 1; + return `${prefix}${Date.now().toString(36)}${idCounter.toString(36)}`; +} + +export function makeItem({ + url, + title = "", + w = 1, + h = 1, + icon = null, + open = null, +}) { + const [cw, ch] = clampSize(w, h); + return { id: makeId("i"), url, title, w: cw, h: ch, icon, open }; +} + +export function makeSection({ name = "", collapsed = false, items = [] } = {}) { + return { id: makeId("s"), name, collapsed, items }; +} + +/* A snapshot is only usable if the parts we index into are the right shape. + Anything malformed is dropped rather than repaired: a homescreen that + silently loses one bad item is better than one that throws on render, and + the caller falls back to the default layout when nothing survives. */ +function sanitizeItem(raw) { + if (!raw || typeof raw.url !== "string" || !raw.url) { + return null; + } + const [w, h] = clampSize(raw.w, raw.h); + return { + id: typeof raw.id === "string" && raw.id ? raw.id : makeId("i"), + url: raw.url, + title: typeof raw.title === "string" ? raw.title : "", + w, + h, + icon: typeof raw.icon === "string" ? raw.icon : null, + // Optional: see openUrl(). Absent means "opens what it shows". + open: typeof raw.open === "string" ? raw.open : null, + }; +} + +function sanitizeSection(raw) { + if (!raw || !Array.isArray(raw.items)) { + return null; + } + return { + id: typeof raw.id === "string" && raw.id ? raw.id : makeId("s"), + name: typeof raw.name === "string" ? raw.name : "", + collapsed: raw.collapsed === true, + items: raw.items.map(sanitizeItem).filter(Boolean), + }; +} + +export class HomeModel { + /** + * @param {object} [snapshot] Shape as produced by {@link toSnapshot}. Missing + * or malformed parts fall back to empty rather than throwing. + */ + constructor(snapshot = {}) { + this.sections = Array.isArray(snapshot.sections) + ? snapshot.sections.map(sanitizeSection).filter(Boolean) + : []; + this.prefs = { ...(snapshot.prefs ?? {}) }; + } + + /** True when there is nothing to render, so the caller can seed a default. */ + get isEmpty() { + return this.sections.every((section) => section.items.length === 0); + } + + toSnapshot() { + return { sections: this.sections, prefs: this.prefs }; + } + + section(sectionId) { + return this.sections.find((s) => s.id === sectionId) ?? null; + } + + /** The ordered list behind a section id, or null if there is no such list. */ + list(sectionId) { + return this.section(sectionId)?.items ?? null; + } + + /** Locate an item without the caller having to know which section holds it. */ + find(itemId) { + for (const section of this.sections) { + const at = section.items.findIndex((i) => i.id === itemId); + if (at !== -1) { + return { item: section.items[at], containerId: section.id, index: at }; + } + } + return null; + } + + addItem(sectionId, item, index = -1) { + const list = this.list(sectionId); + if (!list) { + return null; + } + if (index < 0 || index >= list.length) { + list.push(item); + } else { + list.splice(index, 0, item); + } + return item; + } + + removeItem(itemId) { + const found = this.find(itemId); + if (!found) { + return null; + } + this.list(found.containerId).splice(found.index, 1); + return found.item; + } + + /** + * Move an item into `containerId` at `index`, across containers or within + * one. Returns false when the item or target does not exist. + * + * `index` is an insertion gap in the list as the caller currently sees it, + * not the item's final position: in [a, b, c], gap 2 is "between b and c", + * so moving a there gives [b, a, c]. That is what a drop between two tiles + * means, and it is why a same-list forward move compensates for its own + * removal here rather than in every caller. Gap `list.length` (or -1) is the + * end. + */ + moveItem(itemId, sectionId, index = -1) { + const found = this.find(itemId); + const target = this.list(sectionId); + if (!found || !target) { + return false; + } + this.list(found.containerId).splice(found.index, 1); + let at = index; + if (found.containerId === sectionId && at > found.index) { + at -= 1; + } + this.addItem(sectionId, found.item, at); + return true; + } + + /** Resize to the next size up, wrapping back to 1x1. */ + cycleSize(itemId, direction = 1) { + const found = this.find(itemId); + if (!found) { + return null; + } + const { item } = found; + const current = SIZES.findIndex(([w, h]) => w === item.w && h === item.h); + const next = (current + direction + SIZES.length) % SIZES.length; + [item.w, item.h] = SIZES[next]; + return item; + } + + setSize(itemId, w, h) { + const found = this.find(itemId); + if (!found) { + return null; + } + [found.item.w, found.item.h] = clampSize(w, h); + return found.item; + } + + addSection(section, index = -1) { + if (index < 0 || index >= this.sections.length) { + this.sections.push(section); + } else { + this.sections.splice(index, 0, section); + } + return section; + } + + /** Removing a section takes its items with it; the caller confirms first. */ + removeSection(sectionId) { + const index = this.sections.findIndex((s) => s.id === sectionId); + if (index === -1) { + return null; + } + return this.sections.splice(index, 1)[0]; + } + + renameSection(sectionId, name) { + const section = this.section(sectionId); + if (section) { + section.name = name; + } + return section; + } + + toggleCollapsed(sectionId, collapsed) { + const section = this.section(sectionId); + if (!section) { + return null; + } + section.collapsed = collapsed ?? !section.collapsed; + return section; + } + + /** Reorder a section. `index` is an insertion gap, as in moveItem. */ + moveSection(sectionId, index) { + const from = this.sections.findIndex((s) => s.id === sectionId); + if (from === -1) { + return false; + } + const [section] = this.sections.splice(from, 1); + let at = index; + if (at > from) { + at -= 1; + } + if (at < 0 || at >= this.sections.length) { + this.sections.push(section); + } else { + this.sections.splice(at, 0, section); + } + return true; + } +} diff --git a/ui/homescreen/reconcile.js b/ui/homescreen/reconcile.js new file mode 100644 index 0000000..df3cd8b --- /dev/null +++ b/ui/homescreen/reconcile.js @@ -0,0 +1,93 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +/** + * Making a container's children match an ordered list of keys, with the fewest + * DOM moves and without disturbing anything else in there. + * + * Two properties matter: + * + * 1. **An unchanged list must perform zero moves.** Moving a node fires + * disconnect + reconnect on it and on every custom element beneath it, which + * remounts live tiles and their iframes. Re-render happens on every collapse, + * so a reconciliation that always moves things is a reload storm. + * + * 2. **The cursor must track the live DOM, not a snapshot.**. + */ + +/** + * @param {object} container Needs children, insertBefore. + * @param {string[]} keys Desired order. + * @param {object} opts + * @param {string} opts.tagName Only these children participate; anything + * else in the container is left untouched. + * @param {(key: string) => object} opts.keyOf Reads a child's key. + * @param {(key: string) => object} opts.create Makes a missing child. + * @param {object|null} [opts.tail] Node the managed children stay before. + * @returns {{elements: object[], moved: number, created: number, removed: number}} + * `elements` is the managed children in `keys` order. Returning them is not a + * convenience: the caller's next job is to push properties onto each one, and + * re-querying the container to zip them against `keys` by position would + * re-introduce exactly the positional assumption this function exists to + * remove. The counts are for the tests. + */ +export function reconcileChildren(container, keys, opts) { + const { tagName, keyOf, create, tail = null } = opts; + const existing = new Map(); + for (const el of container.children) { + if (el.tagName === tagName) { + existing.set(keyOf(el), el); + } + } + + const elements = []; + const stats = { moved: 0, created: 0, removed: 0 }; + + /* The live cursor: the child that should end up at the position being filled. + It only advances when the element already there is the right one. */ + let cursor = firstManaged(container, tagName); + + for (const key of keys) { + let el = existing.get(key); + if (el) { + existing.delete(key); + } else { + el = create(key); + stats.created += 1; + } + if (el === cursor) { + // Already in position. Leave it alone and look at the next slot. + cursor = nextManaged(cursor, tagName); + } else { + /* Out of position, so move it here. The cursor does NOT advance: the + element it points at still has to be placed, just after this one. */ + container.insertBefore(el, cursor ?? tail); + stats.moved += 1; + } + elements.push(el); + } + + for (const orphan of existing.values()) { + orphan.remove(); + stats.removed += 1; + } + return { elements, ...stats }; +} + +/* Sibling walks rather than index lookups: this runs on every collapse tap, and + materialising the children array per step made the walk O(N^2) in allocations + as well as comparisons. */ +function firstManaged(container, tagName) { + let el = container.firstElementChild; + while (el && el.tagName !== tagName) { + el = el.nextElementSibling; + } + return el ?? null; +} + +function nextManaged(from, tagName) { + let el = from.nextElementSibling; + while (el && el.tagName !== tagName) { + el = el.nextElementSibling; + } + return el ?? null; +} diff --git a/ui/homescreen/reorder.js b/ui/homescreen/reorder.js new file mode 100644 index 0000000..be4d21d --- /dev/null +++ b/ui/homescreen/reorder.js @@ -0,0 +1,312 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +/** + * Section reordering: long-press a section header, drag, release. + */ + +import { homeLog } from "./debug.js"; +import { dropIndex, fullListGap, slotAfterDrop } from "./reorder_math.js"; + +/* Matching pebble.js: a press is a press once the finger has been still for this + long, and stops being a candidate the moment it travels. */ +const T_LONGPRESS_MS = 480; +const T_PAN = 8; + +/* How close to an edge the finger has to be for the page to follow, and how fast + it goes when it does. */ +const EDGE_ZONE = 72; +const EDGE_SPEED = 12; + +export class SectionReorder { + #g = null; + #container; + #model; + #onCommit; + #onCancel; + + /** + * @param {object} deps + * @param {HTMLElement} deps.container The element holding the sections. + * @param {import("./model.js").HomeModel} deps.model + * @param {() => void} deps.onCommit Re-render and persist. + * @param {() => void} deps.onCancel Re-render only. + */ + constructor({ container, model, onCommit, onCancel }) { + this.#container = container; + this.#model = model; + this.#onCommit = onCommit; + this.#onCancel = onCancel; + + /* Delegated: sections are light DOM, so closest() reaches the header from + whatever inside it was touched. One listener instead of one per section, + and it keeps working as sections come and go. */ + container.addEventListener("pointerdown", this.#onDown); + } + + get active() { + return !!this.#g?.lifted; + } + + /* Only the container's pointerdown lives for the page's lifetime. The rest go + on while a press is in flight and come off with it, because this page is + carousel tab #0 and never closes - a permanent document listener here is a + callback on every scroll flick for the whole session. */ + #bind(on) { + const fn = on ? "addEventListener" : "removeEventListener"; + document[fn]("pointermove", this.#onMove, { passive: false }); + document[fn]("pointerup", this.#onUp); + document[fn]("pointercancel", this.#onUp); + document[fn]("keydown", this.#onKeyDown); + } + + /* Claims the scroll, which a prevented pointermove cannot do. + Bound only once the gesture is actually a drag. */ + #onTouchMove = (event) => { + event.preventDefault(); + }; + + #onDown = (event) => { + if (event.button !== 0) { + return; + } + const header = event.target.closest?.(".section-header"); + const section = header?.closest("home-section"); + if (!section || this.#g) { + return; + } + /* Deliberately no preventDefault here. This might still turn out to be a + scroll, and claiming it now would stop the page moving at all. */ + this.#g = { + pid: event.pointerId, + sectionId: section.dataset.sectionId, + startX: event.clientX, + startY: event.clientY, + clientY: event.clientY, + startDocY: event.clientY + document.documentElement.scrollTop, + lifted: false, + frame: null, + timer: setTimeout(() => this.#lift(), T_LONGPRESS_MS), + }; + this.#bind(true); + }; + + /** The press became a drag. Freeze the geometry and take over the touch. */ + #lift() { + const g = this.#g; + if (!g || g.lifted) { + return; + } + g.lifted = true; + /* No re-render and no layout change on lift: the row must stay exactly where + the finger already is. Measuring is therefore safe immediately, and the + geometry stays valid for the whole drag because nothing moves in the DOM. */ + if (!this.#measure()) { + this.#end(); + return; + } + document.documentElement.dataset.reordering = ""; + g.rows[g.from].el.setAttribute("lifted", ""); + document.addEventListener("touchmove", this.#onTouchMove, { + passive: false, + }); + + if (navigator.vibrate) { + navigator.vibrate(8); + } + homeLog("reorder: lifted", g.sectionId); + } + + /** + * Everything the drag needs, read once, in DOCUMENT coordinates so + * auto-scrolling cannot invalidate it. Reads only - the two style writes in + * #lift come after, so this never interleaves reads with writes. + * + * @returns {boolean} false when the grabbed section has gone. + */ + #measure() { + const g = this.#g; + const root = document.documentElement; + const scroll = root.scrollTop; + const rows = [ + ...this.#container.querySelectorAll(":scope > home-section"), + ].map((el) => { + const r = el.getBoundingClientRect(); + const top = r.top + scroll; + return { el, top, height: r.height, center: top + r.height / 2 }; + }); + const from = rows.findIndex((r) => r.el.dataset.sectionId === g.sectionId); + if (from < 0) { + return false; + } + g.rows = rows; + g.from = from; + g.to = from; + g.others = rows.filter((_, i) => i !== from).map((r) => r.center); + const gap = + rows.length > 1 ? rows[1].top - (rows[0].top + rows[0].height) : 0; + g.step = rows[from].height + gap; + /* Cached so the frame loop can clamp arithmetically instead of writing + scrollTop and reading it back to discover it hit an end. */ + g.scroll = scroll; + g.maxScroll = Math.max(0, root.scrollHeight - root.clientHeight); + g.viewportH = window.innerHeight; + g.paintedTo = -1; + return true; + } + + #onMove = (event) => { + const g = this.#g; + if (!g || event.pointerId !== g.pid) { + return; + } + + if (!g.lifted) { + /* Still a candidate. Any real travel means the user is scrolling, so give + the gesture back rather than stealing it 480ms later. */ + const dx = event.clientX - g.startX; + const dy = event.clientY - g.startY; + if (Math.abs(dx) > T_PAN || Math.abs(dy) > T_PAN) { + this.#end(); + } + return; + } + + /* Suppresses selection and the synthesised click. It does NOT stop the page + panning - #onTouchMove is what does that. */ + event.preventDefault(); + /* Record and coalesce. Servo delivers pointermoves independently of frames, + so painting per move would throw most of the work away; one frame does the + scroll step, the drop target and the transforms together. */ + g.clientY = event.clientY; + if (!g.frame) { + g.frame = requestAnimationFrame(this.#frame); + } + }; + + #frame = () => { + const g = this.#g; + if (!g?.lifted) { + return; + } + g.frame = null; + + /* Auto-scroll, so a section can be dragged past what fits on screen. + documentElement.scrollTop, never window.scrollTo, which throws + InvalidAccessError in Servo whenever it actually moves. Clamped against the + cached maximum rather than written-then-read-back, which would force a + layout flush every frame. */ + const zone = EDGE_ZONE; + let delta = 0; + if (g.clientY < zone) { + delta = -EDGE_SPEED; + } else if (g.clientY > g.viewportH - zone) { + delta = EDGE_SPEED; + } + if (delta) { + const next = Math.min(Math.max(0, g.scroll + delta), g.maxScroll); + if (next !== g.scroll) { + g.scroll = next; + document.documentElement.scrollTop = next; + // Keep scrolling while the finger stays in the zone. + g.frame = requestAnimationFrame(this.#frame); + } + } + + /* Document delta, which already includes any scrolling that has happened - + so the row stays under the finger even while the page moves beneath it. */ + const docY = g.clientY + g.scroll; + g.to = dropIndex(g.others, docY); + this.#paint(docY - g.startDocY); + }; + + /** + * Transform only, no layout: the lifted row follows the finger and the rows it + * displaces slide by exactly one step. + */ + #paint(dy) { + const g = this.#g; + g.rows[g.from].el.style.transform = `translateY(${dy}px)`; + if (g.to === g.paintedTo) { + return; + } + g.paintedTo = g.to; + for (const [i, row] of g.rows.entries()) { + if (i !== g.from) { + const shift = (slotAfterDrop(i, g.from, g.to) - i) * g.step; + row.el.style.transform = shift ? `translateY(${shift}px)` : ""; + } + } + } + + #onUp = (event) => { + const g = this.#g; + if (!g || event.pointerId !== g.pid) { + return; + } + if (!g.lifted) { + this.#end(); + return; + } + const moved = g.to !== g.from; + if (moved) { + /* The single DOM-moving operation of the whole gesture, converted from a + reduced gap to the one moveSection expects. See fullListGap(). */ + this.#model.moveSection(g.sectionId, fullListGap(g.to, g.from)); + } + homeLog("reorder: dropped", g.sectionId, g.from, "->", g.to); + /* Stop the release from also toggling the collapse of the section it just + moved. preventDefault on pointerup does NOT suppress the click that + follows, so swallow that click itself, once, in the capture phase. */ + this.#swallowNextClick(); + this.#end(); + (moved ? this.#onCommit : this.#onCancel)(); + }; + + /* One-shot, capture-phase, with a timer in case no click ever arrives (a + pointercancel, or a release outside any element) - otherwise the listener + would sit there and eat an unrelated tap later on. */ + #swallowNextClick() { + const swallow = (event) => { + event.stopPropagation(); + event.preventDefault(); + clearTimeout(timer); + }; + document.addEventListener("click", swallow, { capture: true, once: true }); + const timer = setTimeout(() => { + document.removeEventListener("click", swallow, { capture: true }); + }, 400); + } + + #onKeyDown = (event) => { + if (event.key === "Escape" && this.#g?.lifted) { + this.#end(); + this.#onCancel(); + } + }; + + /** + * End the gesture, whatever it turned out to be. + */ + #end() { + const g = this.#g; + if (!g) { + return; + } + clearTimeout(g.timer); + if (g.frame) { + cancelAnimationFrame(g.frame); + } + for (const row of g.rows ?? []) { + row.el.style.transform = ""; + row.el.removeAttribute("lifted"); + } + if (g.lifted) { + document.removeEventListener("touchmove", this.#onTouchMove, { + passive: false, + }); + delete document.documentElement.dataset.reordering; + } + this.#bind(false); + this.#g = null; + } +} diff --git a/ui/homescreen/reorder_math.js b/ui/homescreen/reorder_math.js new file mode 100644 index 0000000..2267eae --- /dev/null +++ b/ui/homescreen/reorder_math.js @@ -0,0 +1,42 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +/** + * The index arithmetic behind section reordering. + */ + +/** + * Which insertion gap a pointer at `y` corresponds to. + * + * `centers` are the vertical midpoints of the section rows in their resting + * order. The answer is an insertion gap in that same order, matching + * `model.moveSection`: gap 2 means "between the second and third". + */ +export function dropIndex(centers, y) { + return centers.filter((center) => y > center).length; +} + +/** + * The slot a non-dragged row ends up in, given a drop at reduced gap `to`. + * + * `r` is where the row sits once the dragged one is taken out of the list. Rows + * at or after the insertion point then shift down by one and the rest stay, so + * the pixel shift is (slot - original index) * step: zero for most rows, one + * step for the few the dragged section displaces. + */ +export function slotAfterDrop(i, from, to) { + const r = i < from ? i : i - 1; + return r + (r >= to ? 1 : 0); +} + +/** + * Convert a reduced gap into the gap `model.moveSection` expects. + * + * `dropIndex` measures against the rows excluding the dragged one, because + * including its own centre makes it jump a slot the instant the finger moves. + * `moveSection` takes a gap in the list as you currently see it, dragged section + * included, and compensates for the removal itself. Those differ by one for any + * drop at or below the original position. + */ +export function fullListGap(to, from) { + return to >= from ? to + 1 : to; +} diff --git a/ui/homescreen/resources/bookmarks.json b/ui/homescreen/resources/bookmarks.json deleted file mode 100644 index aaa8de0..0000000 --- a/ui/homescreen/resources/bookmarks.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - { "title": "Servo", "url": "https://servo.org", "icon": "servo.png" }, - { - "title": "Store.app", - "url": "https://store.app/featured/web", - "icon": "store_app.png" - }, - { - "title": "Wikipedia", - "url": "https://wikipedia.org", - "icon": "wikipedia.png" - }, - { - "title": "Rewild the Internet", - "url": "https://www.noemamag.com/we-need-to-rewild-the-internet/", - "icon": "noemamag.png" - }, - { - "title": "Media Center", - "url": "beaver://system/remote/index.html", - "icon": "remotecontrol.png" - } -] diff --git a/ui/homescreen/resources/default_layout.json b/ui/homescreen/resources/default_layout.json new file mode 100644 index 0000000..b392de0 --- /dev/null +++ b/ui/homescreen/resources/default_layout.json @@ -0,0 +1,155 @@ +{ + "version": 1, + "sections": [ + { + "id": "s-everyday", + "name": "Everyday", + "collapsed": false, + "items": [ + { + "id": "i-clock", + "url": "builtin:peers", + "title": "Nearby", + "w": 4, + "h": 1 + }, + { + "id": "i-weather", + "url": "builtin:weather", + "title": "Weather", + "w": 4, + "h": 1 + }, + { + "id": "i-feed", + "url": "beaver://atproto/widget.html", + "title": "Atmosphere", + "w": 2, + "h": 2, + "open": "beaver://atproto/feed.html" + }, + { + "id": "i-servo", + "url": "https://servo.org", + "title": "Servo", + "icon": "resources/servo.png", + "w": 1, + "h": 1 + }, + { + "id": "i-wikipedia", + "url": "https://wikipedia.org", + "title": "Wikipedia", + "icon": "resources/wikipedia.png", + "w": 1, + "h": 1 + }, + { + "id": "i-store", + "url": "https://store.app/featured/web", + "title": "Store.app", + "icon": "resources/store_app.png", + "w": 1, + "h": 1 + }, + { + "id": "i-rewild", + "url": "https://www.noemamag.com/we-need-to-rewild-the-internet/", + "title": "Rewild", + "icon": "resources/noemamag.png", + "w": 1, + "h": 1 + } + ] + }, + { + "id": "s-tinkering", + "name": "Tinkering", + "collapsed": false, + "items": [ + { + "id": "i-tangled", + "url": "https://tangled.org/me.webbeef.org/beaver", + "title": "Beaver", + "w": 2, + "h": 2 + }, + { + "id": "i-pmos", + "url": "https://postmarketos.org", + "title": "pmOS", + "icon": "resources/pmos.ico", + "w": 1, + "h": 1 + }, + { + "id": "i-atproto", + "url": "https://atproto.com", + "title": "atproto", + "w": 1, + "h": 1 + }, + { + "id": "i-iroh", + "url": "https://iroh.computer", + "title": "iroh", + "w": 1, + "h": 1 + } + ] + }, + { + "id": "s-listening", + "name": "Listening", + "collapsed": true, + "items": [ + { + "id": "i-somafm", + "url": "https://somafm.com", + "title": "SomaFM", + "w": 1, + "h": 1 + }, + { + "id": "i-bandcamp", + "url": "https://bandcamp.com", + "title": "Bandcamp", + "w": 1, + "h": 1 + }, + { + "id": "i-peertube", + "url": "https://peertube.tv", + "title": "PeerTube", + "w": 1, + "h": 1 + } + ] + }, + { + "id": "s-tools", + "name": "Tools", + "collapsed": false, + "items": [ + { + "id": "i-settings", + "url": "beaver://settings/index.html", + "title": "Settings", + "w": 1, + "h": 1 + }, + { + "id": "i-remote", + "url": "beaver://system/remote/index.html", + "title": "Media", + "icon": "resources/remotecontrol.png", + "w": 1, + "h": 1 + } + ] + } + ], + "prefs": { + "wallpaper": "url(./resources/wallpapers/adrien-olichon-hEjbjw9PpHE-unsplash.jpg) center/cover no-repeat fixed" + } +} diff --git a/ui/homescreen/resources/pmos.ico b/ui/homescreen/resources/pmos.ico new file mode 100644 index 0000000000000000000000000000000000000000..1cd8ac2239df88ae261140a91c4833055b849a32 GIT binary patch literal 15086 zcmZQzU}Rus5D);-3Je)63=C!r3=9ei5dI1Q28MYo3=9SaP`)YygPSM=g9ZZwg8)b! z14NvGMj&!ES_g8|4}k*k?zAj!XtSk9mjxrRA1ay9cARLt}VrY>R)(@cgB3QjKz88M7rC1G05*M*tC`?w z51)QyIcPqGrvp$vhJ_=tI%GDe?SkI!fx72s)EWj=WVP7X;VT%FVd^4QGu1?{W_l61 znsIOBYNn}?YrxGvY}!!7KyeGT6Yh2pKVmiGS`>v?IFYLu*Mr(aU@2&t0kcUU(Ar%n zZUD6ba2W+^pMcyMxti%QsGSH`M}|9)+ig%YVeYsJYCFNrhB826$n7ae9%Wn|xrXUl z`Hpu%oLdh9AC~*%Qf3P+RHAPp^1^)t|rC}xY9V9 z-JozFxm`|-{hZ> zVij{N-2OGpG31y*k)HnyjG*>Z#46_FgxXXT*@H)O)G7uu5XPfqREj_d{D%VYpd<$a zLjw;3V*>{R;{gc<<^uu@%n#)Muz!&M$Nqu;6aNqXPyc_gKivO^`G7qL|6^>Z|1a3^ z|GzxL|Nj#h|Nnmg!p#5wKLBC&|NlSmL+}sz|NlYwkNyAuApEZ$YU}_1pm7S&U}3`O zI0b>28kMFb1R~Zj%|{(`MjwO5&W~EnGzDZYs0|P5f01JbrFy__U&Z1CFYgJAFJMtu z2J!=Fe4B`I7DQW$bbGMsh4mSsa}rq9U~x0Dy1$WYn0-Nh0FARpu4ej6Ks~Zv3fYY7 zK=y)g)EWk*$kj~W$+Y_uXzT`L4yZptrWvIA1!K$tG>$@n-JKx!N3Ug&p&%TH_rn^d zc94C@7}U;+T+Q^9R6l^)Dxf?J9%oz4e3DfCWT?kEW)`)IIe{ee)-c_VUB@5>YG*~Q zVOmO(UNZAA$c@P1j>7)Wz!*t<7=DUg#h?q)AGwODnm%r4I*T&?1hO0rN3UhDAZFY> zVhvL^NGmAqM6PB|iCV>+MlOz6&D24J|3TyOmLNL`;mFlYO9-3Cd<>Ls2$@BUJamlh z1pzyk5Mvfd4QLFBnED7bXAM$M2?muLApMbRm?q$HKgPTONDn>?8q3FH9;~c;61#|j z8=pD&&YCz!)Y70fKVGaY$gM#uqNIYT)puJ%tyg|NLm1;kDrmNnJz}IX8MRG4w6I1G?~}K=Vx#|x{7fPhz70y zB&N@X!yn*vm-y_Wl^m$=2r`?Zv6odWt{^i83WLHwat+fX9AS%|PSE(YpO+*QF3`3S zIb(NZ^&1GehaCBc)l99VhCit9MUGvx&;u&}NgTVQ`@AY4e@Crmjw3n_24Y^8kO!di zwuJmJkn_5Pyb!gD!I;1tz`uw!4CaK)8A$oa)l3WV#KD4rbQ>{tM=oO!$I)i^9I>21 ziWoBnS`Ciz=*oe17qRw(+7+OFAS@k4tY*50KE6Y&Sp%gGw08#P{;1W=K?CIuO6&#g zzlmJMxQ`Mu22w9*eg=dG(hZ|_kA?ug5P&Qg0_|-Au@E$5R|H6B1BhT~0PT2UWMF7u z0B^)(H~^xV85ju(GL0I(ARfp(0CrzuO8@`> literal 0 HcmV?d00001 diff --git a/ui/homescreen/resources/wallpapers/adrien-olichon-hEjbjw9PpHE-unsplash.jpg b/ui/homescreen/resources/wallpapers/adrien-olichon-hEjbjw9PpHE-unsplash.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6042db1c08259a18d1c6bf4ef49aa2201fba9af4 GIT binary patch literal 548384 zcmex=3)=m5zjCKnfgXdIZ4f#KUVkm(EzmvwQd!6(d_l3JY1z`*cfiVEYE(!^9W?*1UVPIg;NJnBPA+eJS zia_dn7#J9Aa&t;Sc7fc($iTqBlbRPA%)r3F!N9;E!%)l+#Nf{01oA&f0Ruz+A_fMF zuM7;#6A)raGZ`4Rw=ytD+(L+{EMQ>ZZ((5Ab{-*y2$O=uqC~KHEDQ_`OlfHh44;-W zFz`k)FbH2@VBm@d%P}x8;BcD)*lq3%`3(6C=?pmxsSFAXo(y>m$qaf73JgXJ1`LJ_ zX8&(9I5Tjtv9YtUaQU@rdy9aC7rW3JLRz$V$n}$x6w{D5&VED=6tG%gAV$ zYw8#nnwXf#t6SPy7}@9emjDA3BQrA-3o8>V6Du<#6F(yp zGXskttB|6hqp(t7BAZBI<3yu{qRLJi4+dRSF;05;fxYOXm~+#lMXJG@4w+m^E><&j zNoo0igh85-fte8mU=}ejFhXqle}utUkb#MbiHVVgk%@&3qzoh}$gC)2=*R-H$EdJz z;>Hgm%1#RpUSxgvG00f-|1Aa{W<~}kL1sY)dxmBFCK*BNSK6D&&Wb$C=+?;9Z=%t~ zA{DYSKrv{kSA&@4Vz2353?bD4iydaH3|i{J>c?yoAo8F-i>+z#y@?iyZ~e~O9qW|d z#gye+vFgH?f~t90j+Yh)&b_KNr+h`mE#99hOw(h2Uv@6`msn})cfjiMW^a+gqdZHR zzb~DaS@zOfq&s2pd#7GQmf+7_32*&mHO1Qd+?nS32A^2|Bt&Xq&{D4nhcC5CNt*B| zP1Cq2bHRisZJOql%!n6>vMZ97JZpUE+Ad^dtI4N%#X4B2p{me%uT^_hf+S5c_}YY*ZcUR|r6S&YuT|`pxpY+U(o_bXpyMW)xk1Ai9 z(Ri;-2Wr$=-IW-1YUtXC!E96*<)#Vj@TMEy5OZ4(wvdy@#h3V}q zrwI}!g{}=N1CR0qNn|p*bu3uY=)Kfha$%SA0)$!J~ zuhDz0ReMwz6H~|1d-E2xnKX#?X&wkXzEx=jLxA?Zxn0h)9G%?*yUO><6uUJp(Ft1Y zHQ|7(mWlNR#-+})Oc<(z*t;SYJG>BiU*# zWm2!2mB3=J=~B^6`Asw6j4Q zcP#C>{L!1KTf5^-(mac$jm~R%I~6W(_TaxYK~!gpfaZaO3yaSxHM&ie2{26RSomcL zUxt)?&n4N6w7IvIb@{~KY7}{M=_qTUq=?zaphs<*H}#Ya9oE{*Tw+%1R_plaE%Het zX+}V+)$9uwPcAvukQsQuWTW2!xhuaimX{q>GfbKlZt^N(fkv7^X7ERsM%V66In7dw z zQx(8$b?I2<4UvrwyvO${SS-&yxU?(f!YQ^n?j{_Ij$F9&>(b&bhon_U9hUl;tc>8` zGSLi@$dn4Py3Fv^q~YsQKY6b>28Tj#*%e&{BHbPg!5fe21RiBxxMOMmT5FL)hky&3 z2ZH3iES4rO;Igd_5_zB*afw0X?c5iQXRSrL7a193CN23L#O>P3!|lh^$MDvLPeaN{ zR^#u>vZY-UyQXPeTE?{0t5>mWdX~lFE{6Oli?dP@&l(t(u*w87_gt`IwFnS-peZte z;jD$8Mwe}-$b@Z|m_;&!wAvZ(&GlvL%QTwsCaJy3;o=fQKFtT0-MtEAE(FQmn#W$1 z)HP{hhQr0%4t!aTmnM2-EKlxoDfXHeqH|HCaF)fRwqsloOTCsPEp?i>YGFj@LU$4C z3mz*joYi7F?0v1lq+$V+#L6!+X|B&} zKQ?e;cI8rD%fzb{vO-|@#U+{nOs~DBYB7YY3|t_wGH9tolO~r)rh$xoR@Fj#ucWVM zecBteBG-t1Gj&(r>#^5zkwDr!HdgPniwzg7f;Ub+`Dj|9|Dz>W6&U^GrZ7C}vs{uf zq0mEfk>;bRQx=)aTs|&h=%VYL)*0|7eW_NgW{^gR-IPN2g$q~~%{{oZhbyE@KqP~4 zR-J~X;*O<$$3-@1Y`k#Gq1f-JfT3$E?@?=sr9Bsqdc25zd8pMgLzi8o>*9i{AZcfV zsvw5TD=uhBxbjp7pEzqS@+QPwWTW3PjliUZTrNSsE-ui>c=xO0uP>wVwZn^CDT^L6#@6|vL}lyXDd zqeNB+yaF{J(t5c}7*+-?cHo+-6~Ym+GH3xi<5`<^R>2|eZnz*5BFyeYdEhuoD1wyvzt*V+_!P4-wI$7F?4FGI$aX-%w3nt|+nnLG@^EBP`WHD1sRWLE0C#WtbAcIANpra9Ijn=XlI zB+YkfT9Id<@!6xxq^Z?iq&-TlafyP)V_8jRKM}shS+af_6TM|$FeJ~e2}d+O zdQCMDGM zn7d3?1{em4SY2dlTp|@S*+th{;;qLj>8^q(hv4?8FslWO?tAsVSYKk8rxB!VQs|Sw z?HAbPyw)O!MJD(tqf66r0KJ3E6-7#;Ex`<)?AX!9wD=fG;$YDSdpt`oq1c+ z%!=Wq_g0xeW~K?elFJ#7Drh_w;fYu{%VeViN3r)(3oeTV$;P+(G;fG#NVH`h?sDqC z)wrA5(_47c~j`rpT!{3sul0WCKa)`D`Ej-SIC>71sWf_LRN-f zke}1lA+qtT6ay&DI)d66pmqc!xK*JQQXRnb+C`?!gjFt+NygUKV==SI(Z}nfCdg$) zt_h#yVyf`#iq?&{T@%c*Brl73`iYz~bV)Z=J2{DYmdU|uOIDirIB#6qm+`1i%X znvDKT6D~=K&$7-u+-0#ed0|6RA1HI{XfOmFwc*n!^e8cw5YhZ0VtCd>ZAE^d@A8Qb zYmMBbL>^fzJj=w#s>Rfw#SpQ8-Q-M1<^5lhkS0>Hv3W*3<(Z5v7q|1?^bZMir$qEUL;N2HYIGCo& z1T1hmtLV+vry-#k{L$AWVnyazL6^W=u3}nJ8A)@Sy+tAd4829(NJT79n85IC8pzSk z3lh?%3Rx_4?FretGF@#NuOdfP&|+_q10k+_Up{E^@-cUnY4CfMsznKiWR@(Pb4jCM zvG2E~vov%HOfnZ-ToUlmqjaIWg~@@CSGiV`HQ6RC^|qVRrX`YD3M#f+~p9+@Tkw&V8Nk*c9%ZsJfQcb^qthH-2HwRc8_!C`O=0CI^y<@OoW&3! zVzKz%v|DUk1xv)$=5A~370GzJw9CO{mh8(LXBD;_YWusgba`@D1gM{JAZe-=Q)`zA zD=0-CHd(=Z^rP2QtzXQa3qd_JQLT^+Mku2YRMwh+%UUOy;KpaO@6BU#)8yr2_;_g! zr^K^a?6R4Um$93&T@w%ib3$K4VTZB_IJzsrix#hBhlq^OLx+J2zF&knmj(MmB9G2t3FGlRgH;h+AWh6vfLtu zXQe_oM0N+L^#?lenrw6z+2}Ci&c&tuQ5Me{SY?7Yy3}gO@-jSI!ocMaxFC~hj^>U> zb2N=6thlt)BWY>RrK18GjErZkXE6kxRqP0SG-2sPM-PP{r3nWXcd==O>kXWP?g6%C4gn+cDXMyml==h2nPhLOq#>6wDG0ip|(qlT$wZk?gTRR zY9)zjBm};9(G{~|(>%P~#9^`5ac5Vpf}>hY{US@frq&AnT(P1{q?G|QssQSoF(|q< zEOwZ&;(|zqz{+Hk!lOEc9+})CPuWeZAI)2ClQdbTT4rxS=7GclS5}cfDSx#hFN!d* zT5v_Y_YXX5g!#JWwEp?EXqM9@VH6!m&ILSRs!)=WtwG+ zZ?y%9dlf9uxH7Ft<5Py*oJ$MJ1Tvm?F?WUVCF<;)> z?jmmj7aeyBbQf`0-nt~n+41YrYn@RMO9Ji`J6~IJly}QfXRDy)6OS5o3p*|K>eJY; zFzA@(UF)E4O9C$XiL`0n5IJD+sFzD}r9@_s+?MJKhV5OEk2;r4^qD4*@qJmJ=Ai~& zt^6vd#v89T4dvEw;9a23K|!gCIs9GI;MH7)nH-SqpoiYU4mHbMRqK8 z;c``B;FX*5CV<&w%_{aNi$x+_CWqQCf;v-NqFNy?;gojPvlcu- z>|O4&CLQ)_I4i~0>MgR-Z30uDW>SX;L&MUp0+AgHO3WraxxCR^gq2&QRnYsbV+g3K zW)gXGiD~++241a@hnGzlSZ$N)N1Lh1c$LM%c^Q3M+63SG{SJ0~Hb+yW)p@B@#Db)yvqFr|ipa8WmAi81v$qLr-*T=5 zlVVrClZ;1o?_5ckb8(5a>@0<@o=fZ^to^nc<;$i$xNzSmtTW?^D#(O?1u`(-L|t^6m?R$wNmEk<6eahDlSklp3VF@-)9}JZczlcG>i-GR>sM z01gulP%?A~IGBXqeJlSOPbsw zyMmTFaEq)AT9CBVt(Ak-t5-`WVX50xYsR3Z-b)#@LMj$IwDw%?Jh1HITL<xO0iyk7-HhqX~f$F;bO5R)M!NCU-e2zxOurc<(I2 zuoKo+Wm@dipOv5$vSX=(oI0qjVEoyU%S7V>xbW37(YU|^YT7z2(F~H!5XfkDn#y2P zy3&E6WQBXygp?~=GTAH`U-}(23F$Jrs&mVlt7`(E2J7T5nY__T%{Lpn@bBeTzoWpmgR!v%^sJlF0ywy3oLfFo8rnWo~6E2 zFEfB)sl#V?6Nc(b%3aK}3QZX91T2>l;cVz)2ws^qgQL)Es<4A%;8EdA4JK{O&LaP| zY;rcY+7c3!KH<66Zn|sA9drkHxZeUapA1)jn^IvE+6+w%Xlsl@TOKzBi*DrNQ%Sc zLFS%7rlnKby9$=|Xg|HhcBet_)!BoE5U- zI;eo1s%65U8MxG8jl^Ov=pgPAt4oVC1VDpdTph_y6Bg)9u{@U*GI_aa)STt>vSNId zC(SG|%RIDd%~YlBw%KNVE1vpn&~jkYV$DBmW3IMv@ggIaEe~AXmS3BDZ&|Of?6Hi- zF3IKmRc;+h9bXsrd)cngI+d~w_G!Cn5>KpF_yW!@#Rq| zr3o(_(&qZUbhimGC|~L!b7=wdoI*d5GoSs~8hlK42Q0}HO(t-Oooyr7K@!4FYLM`6L8)ngE3vC*jcTYLGV(CiJ|wb zNo(pVWP;9`lrF!NEM8@z@%M$qip$0Bc2{_80+zn_-pjNR+}4)?m2+>s`l}?KTrdne z<|`BUTqJ^NZlkk^!xF=w#a#*kBIY6+{g3MK1j+I&u~?qF&?iJIWTRIDuU6zz2kxz0 zAsLKZ5lcM+3@)AJxpd4|M9fC!(gHS(3tggGAuAHJLMpy2^kBX>M|05}O~VBjm_;%J z0zje9EK=ybREvctaH&^=z*11l_^3zFB29*eezKW+SDyBq(jIu0(czMYeN{-Sq60^8 zE0+mRNM_PhW>JBRz$FHK))!wpi?}k&Xf*r&zTBoM(mX$_uGm+^l~wUTph&~wfYVOP znVm%n9S&*qZDAF>HsMWyN!^wUg?_Icof{7|Q1ZBEB#67Fof3R5NI4yjxv{R!E_@2)HZ73M!C8Ry>-@BnBGn;+iV3 zb7>cYNXFZD84SfI7O;BFVP9*Zp*FQ|#>F{3A*bi>H4T67&&;-T)S@mRid>*m ze`%_TlnFydmq?~alg0%}lMIcJm1PTj6*hcddT;i*%)2iHb_ZwvSoU~U8N;(ai-q_4 zGK3t@RR^Ba+;ee3;)2?Ypl1ymt1m5Kl?mW%7ul;BxPaAbs(^7&5XVdRGR@?!TxP+n z$OXK5ZCz@Iq~=J?bO|sy{%k7awYi=>Y`t9aUThYD3%x}c-Yx1_c4^<@AhJ+7%bpuTqtpGKEMaI4}Ho}lIBOE0fg>|N^8 z6>_N2YpNEDmeW)%Ho0R{wUj1YXjo*cnQT(v%Dgb}EMLZB5r*Qf*o@?Ry;>5PhbKA& zH$Iwhfmf&aEZ?%W42eG%*k_5X5Ig>Cs!`{HGW$}Q%Noz7iY9*#ZgtbVxgc{=+B_|V z%mv$Cacd%p#X8mutLsmU3=5xt#GVgK-dJz|CC_ zOr48ZWr8+clJ3hqAiye9>@B$@l$mV~uT0SKDrXOc%b$Ii=CLZfSOlIm%{+W*$whV( zhXw3gt(qF#P40v&DD*vErK6E&==a`xtxov@4d=B|Asanv*=>T(DqfnnAn`2UmyOcImjt$pyKK#HR6O9=h{f`tr5*_;w`vuP z9U3$Pm8N^KaVfQFJl?Q?xvOA-=7C~oO|GfdlAs=;q}#OnRTd_O9WqiT_r5&5yjHPm znyaGwUISK8*?Z7iq|j?ZV^_ptZxM!#UZ4RQuW7t80amPnUK1A`aBIs9T&BpE@o0iV zpva61?p{i*T9ev?7FY!?NLcDFqS;`%*o7-%i9*ogE{6bv;D$$2r5F^7-KH6OaJec5 znLN-ebZwUOJC>O=O@pP?MJ^+$L!?b9Bi*F>!ZN0#TFy#S8Dxt67TCUcY|;=?w`C<4 zm%w7LjwL1*!Hq{5-PbA|=c>zW?kafc=utJR&{Sf1`n`pV)>tl{m6s71V&wCzf2kX< zwFysI<#Ohu28DiaJu>@`YGo{T^e|ZgDy~-sEnxNPWxm!R!)t9SYi+{t=hCB@vurmy z@GZU6u=v)5quwSvmL3%m(+XJ;pm1^7v#HFovqFrW8aPdgeV4j&l)VW&YcwrGw*RbF zs#Ze9T`7_57yM^k!TA$39}7;cA-gUuVD_3S*mHqNw$MLruLk3ss>@f3gHCtxtGbJP zsLfdMXpZe-OD#fXDNOX>3UOs!nAEG6@o1uhZ05ZwD;_PK(!y%P#Sq-8G{IFWHlrsf zbzzx_p`QuES;eLai+e6IUz@=+RoHtggM!84E~j~xqRI+R^*?n1*S!7q>v5d!EOpTYO3K;v{c6gDd(fV~cqq|7k zgpFM$E0bk{B-%v^y+t|}_K38~1RZ725_wbTEU|#mt54%`7pucjE#-Nd$+OrUmNR-J z^)F@6l6JM|a++|kD`Ju5QXd9(lMfkXOV27zc=%&Up|4Dr#S(+^vpTaBf|R>h^scyj zvCpzy!7wkAOT?9-waa;yx6QpZ;i%$;Lz=;7`K}ylySUJ+k$vTo3K8Qj z+g=8yjHF(!44;t9p!Ytk_vX%G2ozP8^%l|SVw0P);?Xos9+6%lL+7mwI*+Dh1T9lc zxyaTkcxeKQ6lh-H=2^YWEya$W{UR%OF5*?Z@#dq`w2UBzXH)s6xSJe^cx+-kOMNL9 zLrCFKMi)NKCJxYS-<5{UprwwE%Nfs_b(pl-1d3erlerKiW4XNfsEJ(Wp(R_iLR#fC zG(<9kmL>?gD>W>!x+L-Ote}Hbd6la|SE;eZaxOLnjjoUtvfU<|ou*YTa9rv&@hpRu zL(o!(!3t{Qs5~)s%BzS z6|$i4tPAH?QLX3uy*i~I%dwk0m9X_SNx9shv~VuR#0pV`mw}qkmdG>)oqcqiKhRlZ z|7Ve`oLy3^)*^=PCaetlCU2ya7n~LJIu*!n^3Z$dVnGHW#? zR(#S7d@QQ$6KUdBq^ZAEZVQjn^eCr34T;@_-nXV{1~KF=+&15Pt(b^;u1@gEq;4*d zb5;f>Ivr)4Wm4$CnOR?@5Xj6n(TUk)qZ?>_i_FEPmm0)0lcr~durkYBl+}1_vaw4? zgK3(^qv=sPB|3#3flSkG>1eP`)hTxC=3P1AVX#m0A~a;aBeqeA1XikCjJS&l)cJwi6R6niyIFm!ms9QUsujYc)FIOD6~f?Z5o~-`(PPQUjAkDZcabiiN&QuM zzJjy3Hr^CjxyAA8l8a$7flC-{H4iOGk_m1UG4x)l*xqHrs(6%{FXLIO&IQJ$a{}1< zG9+B3auqTdudGO$?!}G%tBI5e!^5r+Biok&?EOJYz4z8K{@k%L=%^G!NUv51 zL&efLrAxg{8Z4g#+8SP(eQEAd#f7!3OuUvACU4T`1g2`-xcd5S(8`k{hnAPQib|}k zHtCyb)pPm8`KS&#<4eofl@`toEEBNRJW#%bFEd?K?L>W`yU2yi2OopZ3NSqDGjy9~ z?6Hc~T4aOfT}@u531?-3cX4rfNG$HMIIH(%&6ZZT380FS-DG!g!~0n*0amQmCU>d= z&x>$GuW0r?mT^gAO5o#bv+TAMdn`E~wCq`5hSu?#-Q}k6wOu?a6T~#N zuSGL?sZ3HY16Rc2t`NS)9uVj4+(nt~25B9^-KX~^=tck7f`>M)CycT2`) z0rs_8CMy^h6ub3uF<373n#wFHcV(lu$eI$akb+E5hbi;NqqbW*8X_MZxJnf}q*R`@ zYH^8bm1zVpm}pG&H4&2AvhgTaDTDDWrMX>snhn+$m%49dVz-}VvNC{C#C@qrph#Og zgXe3%qpXW~Sr-=jn*7Qp8d!C}ap=mW)Yvx1DnO=B z*#`guFiJVy>2b5a1B9<_>N-^~+I4yOynZVz1e=oErNUe_uFDgi*~^D=p($gRJu`$>q!r+_OwJ zJIrEFJZp04EEkKG$ckAEBE=p73mli;o1PW9fO%HPt&jts^uD+Xd+=P}Q&;G8T&d3} zGU8d=c?0*h69U?XHC!5UA$sx>Y5T0 zsS3L+iDw zg_AuBJwm2Ql}jvZ(zsx7X#uO0Gn-~o$C3;#0nh@sMvqJuKG57`(liaNwr`8wMK;c2 zWa`zMvg=~9s8qy~s!Pd^CzmtNO11S>YA;*F%IG2!q*1U)Bdu3)!KH=wdRaLxExk5X zOoYo~39F!IkMmNgn2SfXxx}-a*IMT)Xl(o_-G5Z7R3>QC6t|>4&D)>_3U`8z+Ka5< zQ#i_#HrK83qhwden}8=$OpUkNvr4sCoedp&f=?`TSdlAtB{MYA#C(=XW>Pm7tCT|! z^DJi$k#`y;CYd5SX>A%^Wf}~OXJrBpFtsu-2wK`aD}-SsXl)Jayeqo{m!4&QldBWl zv9OEPxzK&9ln94yhTw6L%%lcsuesiA4GXsvy3hBrI4dS%F7iP0K=4M7Ox~jwTp@*L zl^QCR&8p_gHQ~w2EM4N}DVD+qFdD3(*Hoh$@OBZ)BIQ3a9(L6Na0>fgjR>iLN zDz{cczW3ge3wW)!GCREV>d%UJG=beFKyA9k(k_M&UTcw!eg{N$1s>Ji62VZqJm{!Q z5MyxTvWp8cET7F|HI})&QmonCVp*5vf{c2T2bm2Q*(O|6Fv*;`oVm+aN=@d{Qg6Gd z%Dh^+Iu{+2U#8!iJu4(2;?3_%3%f#i$}+lAWgazbywb{$@oWP7S_RHUOM;sjk7-Dp zDv(^<)09!bZ^FYOrEqzNTI0)W4PqGqG8b=8?qUdWH|e-l=)&B^AhGPqnx%zZ9X($c zuzF1uywu1nveECT>=vFh&ERd97Vs+{H+d>4xxDqnG0jIZv%bsppTB12+Qa{CdGhI? zEfw)m3GA1qPCdAQ^~=KM3&960U-~gGUn*uQWH_f*g(mBA?UQR5P+h_hM+O9C3+y0r>>B#IRKE_IelZa3*z`rf7L zl7>TC->CwoK3Cr<6AUyOyFxZQT*yqCZu!#hwWEi`Q9-v>rPeNsN3Bv!tz8xiXGJd1 zD7z({(d=&0kY?yDxm?ayr;8!YVoBz)Rznk`iHkD2QhJVRl`39q47gM1k~H_IPJn^n zB~UHL@ns2{=9S$642v|9dYL&)3Vj!8NMs0le8{-KA+fkCWTQuk-jvN}m25Q`T^p({ z{R&#@5Mbym@+yRtnXN-6t>0qVgD=YzKDu0B7I9T$V!qd>8N8CmflDN#`K@CJmr|c* z5QC}7@8EuuTNyqQOS?>r9h&(f2bCHcd zmM8UTa7nSVO|=%$w;fUrJ%^N3{rhKQw+1#%Mz4+q>|7?dOc)Hk`ZNQK&oHen zo|ko`P}6bZ*J`Py8k22r^yeY|>C7#tt< zWiANb=&|HRv9}4s;!6`fOkO3Je7rQ#X*pMZmF){D*>6idN|$;p0S&SkTso>HxqyjP zf3H>u!)DNkpj%tU*Ja-p_*gFNQtDWyxW(0?&nn<3ql3uGD=TD~MGD6DrCyB-gI6w^-{rt%vC!M3!G_V{($ZNB`6gA24)Ze7W~?dr zb?NwClk{tI=V@?@T9hoD<$S5JPd1ZJbBFR?s|hT{eoV78zjQgg_v+PRGx@q~RxR^c zL*Ao0#qJ`TyI2&xX89^)2>jtGbee9mf+2maRK)qLvWpHJTrS1#3zj;1h^&~G$#|AQ zVY%d+%%dKXD;H{5^*oyAULt8~?z&>pQl6{rZd&Dfwy$`CeP+5f&T_bTRCh_K$Pq2j zXd-hL$i)FH1(`ROrA;ttPnoiE=XX%^@>ZK&90YA za;a;?s}PNE3xq{w0v6A57Iy}9?lKneWd>&+nhFXbMTg@B>|P;^i}-CW7?hfLJnENS zDaDYdS+dltktOgPtJ$;+iSmTYn`b31;$^VvSk`>jYQkZcIhTvw8oN4{dYdq0Tv%k4 z)YwveY3ZyG#%HW%pWVwv>%JL8YcNQx;%Sk&zFIPB^An@wf|8Eg*JfCyEzv$|yfkCx zS#22$kvEs!tS>iwTVlc!cyM`xRZ>S>hOSG-az?+~F1o(6G&)L_b44sqT6R`wLDDqq zi(i+{a$dmbzE!J0azP2>iRDQhF??Ixy>zy;c7?3u+tRh*67wwEj4OR@kEUt<#nMD)`>g_&%ai7?f!5J3Vi$SCW$|e0R0n30LKm)zsM(r|yEzwcn%@;7 zdL->uw6EP%=7lp}yJs#c^p;rQbX2BzR>%s8&E7Vbj%i$CDE5na)UcfKsN#h}Z;_P& zRss@BuXQ||#wundrkQKI;^Gp+9ZS2)G#+1Sym0T!D~ZKDL0kfhJxUihWNca?u{?-r z4#N^FHjPHNsY)wiHG`HqIxU@ZaoGhm>$N(;uEJ*xd@PoFO;zlgs&{1tL#s()m*n!k zDGX-aGC|!pp2#JcK?@}AUD3Ro8LX10ku)bm z(1B}0l+#=XZi%IC)2uHT?tOW5^KFsKubmnr-aMO@x$~&(oo5X)MwW{<$vN0&&fc?y zSBuYQKlhJ~Q`BemCUYAES=z3gcH}{0cv+s}4XL)5a|L3iowy|$S=M;eQ^(bu!b%l+YGe`dx$B~>%sc5N21g#G%LF^5Sukz6 zbi=A=&XxVTGMQ8TYO`t&{cSr_WO=;G+VAe&y_uJKyei&@DYPGnVVsb)-bEvCVzkI3 z1J*dPYEIb<6UWJUmZCNnvxPM;t@P1Z-?yjGCq=8k)#SpCE#@Z0U9vBORSNR1xJP9? z>M-H4Ts(_;qPGacgN)0Liyb}tM0PCT)pFi&Y3ZeD84`6uRW<@MWR1{S!SQ90MvqjPZ6;r%H{0Bvi`=e#Z3&O&XguoEjCc_ON@^Ah7CZ=g z>D8YT#KkHT@OMSCM@GSev^o4sjZK~|Sa@Y+(2{_afk(L*LaHw;b>Nx~>Xt3M)FD#n zz%)lg(1pv{adBTp&{@TWH;!t_TwIX2)Tv`Z(jsGb5r-wGJR%mc3TR>DUu-^{hp* zNCPN$a(Aiq)vn-Tihbu|C*&XC|$;A#*3eP66i*THkGT{g9ISD)}#UQbq(Iaq) zN$ZwC(8|>kEr~^}QtZyIps}5)t<0c~w8b(j=`M@qxl1oiZROF*NVu}&QJcnwg^j)f z%jOxnb#p0ecd;+iaz4vs=o8|)Wpbl`gk<0SeOYHW$}eqLt)}1?+@}?@;*!PWuoMAT zp3s>Sr#u$r5Y4>Vv*@x+m(}){%f039BrjaCQ{HRa%;{^@LV~K~(}lhsx7GS6;beT) zl_^(L(^6e&S^Iw8(MY=-dnn8%9_rFk+bJ5TH0jW+r`ndeDY-fCk7_BS!E{+ z82hHMTy8w8WVuo&!|`RHzd(Y4d=Ju|vR}z@t)< z3nUtrcCoI^Ghyvp>U$?MZvj)rv)QvkSiwW#Oy|wmIvy=%naUW*+DXun7<`>5{a$e3Z%hvg!iOmF~8$bV9m&f>Pa`4=$dSvGm@8D-|XWGMnaT zXc{?W-aPAKb-8h6T4(=T@2xzS-g>O&Sk9NZc&kO}5)+%?gAyw?`<>G?x-5TGPjkU! z_XSG=>aOg&vNFJmV|nfZtIz&tl_p%;V(5RCPlF+;gC+2+@+=02kA7#3=6YmUE_D_u zbU5h3bK$+;<4X-}w=5R-Wjvekf@zw@W0SXAB3@)Xn<~Q-bW}`)%VOzSxhriGRy4kM zYxiPzTBH$pmO-k(a@plpZ(SCtvdkSzK?6T$8Qq%JxI9SfFfl%==n(PlOM&LjrL!EY zT6HeIcHkD-=q*y{z`#{zvDB@xt4|~FtYX(RR-H>{nZ-1dKvQ}mD?rOudcjY%G)tYh;?=C9$B!E%)2fZA*^o z1SUOl2^TR8ntIkem$UOo+MS@IHi1VC1I`4uX*`;C(Y04G*<{=0ja|xXl~!bmZ1h{) z#qM0Wh+V|NR^!{F2?x6@L{=t&hBf;%lN#7G0~hyc$TH80SkB-p6C}&C)K6*lStigT zxefa$jyl001^o3(hc&79Otx;s}cv}QLsc07xF^0oDwO_#+O zC-PZc{MctH!M56s?|pvN{3c6NUa6I4P7#}*$g$d-bDttJYsv!6o-5fB?6Vwwg;S=o zd>7@`mYHA`ymX3IgO;+rOz^@}-V0KmH-_i_IlSJ~&+JY?#p)044?kHhRXkiRzvaoZ zi7WZlX5G6wb4SoTSGRWAtbig7Ci4@LqMUbboQ=@-Ej_S+<9J*a=QHI7E%)hJPeR4Z z%Ff1w&PaMhxS+BJSVCoQ=ZQ@~4 zc$V+SB7Rd<#Y24>e3c@vxIHWmEZ)}fBzRTMMa2bD1z(nSSu6>1Vw&#dAZ4+{q($?< zqlTqjT(YwYj+%?KYDp!(3@$z^bK!XM%d}aVX-ihi_%GGDTz$#p(DA%CnR&}DGBqx< zkooAptnt!ZkA(~xADu;3@@Ts?ES=?;{Hf4;t-0l+ITj+k>?XytaxIEImK^P}SYo+6 zX`*xCER#a7#@>@AEBZ2%W~>mYI4UD$of#2u(N8urcX3aUL`H+>!do2+KwXuj2}d;f zG=r8gozZL)%qtKiXWcaw$!6Yr3cVpm?n-z)Q;&EhxNv8X+HQ^vEI?&~y}=Btyiqn`cs3zec1Pn;G2cIZTkgnQKIZUfvi3pww&LbXb50*%2tMY^SDUe6 zkE7&tj7aViw7GG__Z;Y&ln+CUcjo;uTkOn~P@^ z`wlFgm0^-0+cw>Au7Q{*z zO+2~C!bAg{B_tMyOjKIxHI>olbMUK-r1?Ex7jN5}{5Zyq@vVElsX|o5lAAFcAJ1AO z&E0-$+Wjo%j*Birtk${a?6cT?`OaF~zHE3ly~?#nWszpXqq(zu#b$i{vOIm>Rtb{_ zS>8SqWP%Sa<0=rDxhnan1>cneg)VYdSESTDw@uSvJ}Qu*$t>b371FgJaABA23NBFr zjUaXrhF1|wH2S8r-!OE4>uzHArE6hY$7`oKI~EAZo)vVOAh95Efxk#5qX!GGl*Hn1 z3zB3r4>gE9yfo3nd978$Yj=|_4wGW%MsJh$#6@hG`>PxtHQsm=+^{TtR#_%b;S#Ih zB8>|Hu2M|B%mPe(8bN0j_%x&=bmE>Bzh(%tgC$7*?RlM9*59y$e!yYgIRE-)VDiZscP*z6Is_$UKt zWu~+2EX!pVWk6cE5=kn)K@&8$ya_R$b5Z0?z)?o0rL!Uz zIyBD`SsB21mgmw^2aZci@6GLE0!@1)Z`HfP*Lu{V*w-fLoQ9-Y#Zlb_m(7zpa%Rm+ z-r^xPUE-**#nM@tt$lBOO*Ul)d+4zBXN9cXrtoO0&ZVQ;61xMA>I5wW^|-ZCeyVmh z&6=>^No%j)l3Y=?jfwn|&+7i0a_G?PS?nh!oN#!&)-5IH>q1|f3%--`7M&|gHkD8p z+4XgSPA*rah+%k&iLuDaFB^SkNqUR?5@BTsIw}>hpoB-zd8svM>zYP>ltSQ9(1tRO zrS2jhELLuMksif1$5khQIWu^pJ5z)7r9NLh%>bsQvqCf&%NILMPj=wy)w^Qs%8+s4 ztU|^@?pxEVVqaEYUck$9Y4K47fhC$j%Nin`KFGsWb;(pQ zN;+fXM}}jpHe8N{?vg80mspf6;xy4{?DDzDCz2T?s(Ry%q>d#Ax!39hEn;P5>R8U`!pEvD!MJ#q#X<+ZrL&lN z6}u+LTw21p#PG{T-}5GoCJe8XX8H17F}$hD2skdi2i_(ew17#Ye5ni1C5aVX5h5#O8D=Rj)e7NJm{qZiZ_CF^ z6S((EiDXEunJcQup){4tWVV#3g2pAtFsOJ`#8Ph&h80h`LRLr=&x!zz zD>HXV9M!#2?7+blvNC|dWTo7eRt7B*S1BEhJk6xJT@uTa79>rTidb~0)m!G`fu$Zv zOnsVM4xb&4bA{|&>cLQT>Gn~n5LSi&^;u;af=3z5_iBag3Krm8lo7PR>8O-QYbe8J zueQvz#t6_tX~ra*ptD*btlcJ?z4|m5(=ScsGGWLJTIwJpD zX&oQE=DBGm&7F88LH*Jk%f(&FBC}cA9?j9bo0-&Y^2j8uL!@w4#8HJu3dSylE`k5P zh)gh?rQ9XE;-ZH6+W&Sg^U%^M?a6a4*k%U4 z4l)c_?0l)Q-Q=st0WAj&O}1&8flCZaAGHebYB`JQEt{4ZEU*zYNW{2w-WB66NfFkT zXH$8e^)e=$mASCgp`C4!)XXjuUc;XvMVeDKWd^*NY!h_WK+1AadrHH_FQyX9nLSp^ zdbL$7oy8E6nG6~k(7Updi@_u#aLFnDsz?#eg&v7#WiA}mDp3q>WtF+Sk|$)vvsPwN z>#gP@l?##Sa9Mu&h~O4CJl2QbQ3EcA1W(5pdI${}z8qxV{ww2rt8#vOK33jLOLIWL^?Y?|h==^{tWrtw;f6nbc6 zfX03u79> zyg`#!$tJC9z0BnUM|GrhRx!wYS?n&7$=7&%t^8IdjY|?M8NC`!7z&#`9<^#Ei7Gpr ztPmD7u@17kveBV+mVK2&Akz$P$!|+t_>A4}O}L<$)bZY3gyBxm;;z^i5}N5Eh0ZdU z7!P+@F1xgViDU7sJdH+&d1Tmpad~G`YlB z?AEF`g{Q#eRjNfuk4dY{g#{U;~-b@*|WleniWzs3S7wq4r{3i#t*)TDm#hU%)dHoh71p*Px5Qm=|@$<-g_-IY(BAQWAG-6 z9+8c~YgGIFG%q==V)dPRaO%t8K320CtsbCRggnjQ6|3HvM6AfaHBIv=hY8oCZrK3C zm;N8l-TAh_aMt`zVWtU}wuCEmY0tTQ%3y(or3h=le+CZ0iPsisPYz;Nxa@gyL2?1B zmQBEdi9t4(min-|cZnD~@Ue?*c93G3#U^uU;jG9djL%JWl`owoTe(c(*|dscHNmywt2O zL*iA4@ll3MzT<(*W+{uXwxnEc_sX?4;X6{f)Z1hQw}q9{#P?2nnV%gGl3X}TSwy7$ z@n>(5#-%|4g-3Nt7klpol}6sVdQ8>>v!E#ITF$c)E$JLFsblF81Vx#f{%VBe@FCGtSia0!Fua;}iw z0fuQ)8L#y+XoakJ)F7%AbLpkS1@IJ;oJR9ezRaWv$Dd#7H3?oR(&_^0usIy|nsD&f zr6mFGQ3@A8oBJ5gYUP`}a^}?%$z*U`&g`>vPJofmrL)GRx>o`&tDKd&lDOhoS zM=D~8;oTQOXSEnY40tWN6pJ!hBLr=;PBUHXDbQTN6PSKWQ%cptfi*^M%SWXZ=d?B! zW#p+`W>q?D-=SsGQ0SBXyiarK&XWr{PgL7kuy^IX`D$`6;z{7G>SjkXkL5NY9sBaK z1eVBLIpO)*bGqy_b5@xUAJ#ltkK%-KQvsCni} z^Ry18#z3KUzR_)lf%;w>B^iR!COXXKzQA)eEX;P*?Zkey=~H+Ly^cLjHSL)kye#C) zN{$2Pw1n0Cm)ac-@j0xtYWtK&%kFQR@rL89EaybAXKk6KCY!W+j`-?adT?QZ<5`)H zzKb*%1Kzt$gKjI}%Xrq7u|Q1Y+p=j3XO-~wo#nZ3R!{T78q1~57E5QbCN6b0*_6R> z@ho2^s1BIER>bhiX5Xc*Jf&I;mmYO7rd&MBb7@hF%muZnS_~pq7nk;Xu^jZ8X6QXD zNmS=kX3zo$k;=1rUsf=tP1Oov$V}?vl?jq!6|lavJb5egf}{x&%YzmjcK{vxv0-uZ zxr`tYhxHCWHw3q3mIJ^o?ljK^07_R(6!#n+HSJq(t;9`E~P$; zMXcJg+-vow6naga>h#)Kaxr*krQ^Y+&etXcJUlDA<>Iw@%i2r?4BbUm25GWzDNQhG zRc!0i2wIS6ve9c=IryDgcZoqryI3s!;7mhfO=wKid} zT&ywqaZf(X-zB$QUmWwCa-3$`3txj9V5wPCo zvJ+3TsGiN7pq#Bz+A~6ARxE39zqTaF@pYgiTg7W%&I{L&> zMuih67koSZE2~gA_?pt{o-3cUyNqvgeO^rmC9V^ktro&?5nUbtt~TPnRk-fbkNx`l_I+@ff9`lsGGIatK%qxK(Y5yKI2&` z7p%pjB$?VWgGJj-8W(nzY4U`uys;o-;|04b#-OuF`9F{YBoqA-> zHcj(~$wrSFw+BJX8@(DHReqHcS$)|q!DPkyy#mJ0$sP`YM|A>4RXM6J%G$mRT4G`m z$ToYHQqzSu7ZX@B~Qr8 zK^rd^dP^*4oaim`MuU0srTMpJv75Ydb`Z%7T9DxoxYT{E+9^?;K&H7KB}T3G`3n~J zXX$99$`tw?->MUsynxZI&tlI6Lruo5$Ln<~Y%fWdQdQ$|C^B?iVW6VS4W zl|i7$lDTk}dBeAb-X_LJ8I(PO&gxuH3_8o@G=uM~%;k(r4A1898uc>E@r!)8DzThz zOSjJisabYeJ48*=7S3|m(%r=C+xL}g1NWRuM#4waN|tqc9%HqzxcxqGN$$a{smYQj zmjoP=^4qIq+Drqm2KXt&8L#+E3oBH(4tcdcV}Md z%LwA)%LrNu8i!oKt9Y$pp`f$emsb*t4z;jq6^LYPSh!bZEs|!1 z%~`b9?EF+dUW)*cOffAJ+lA|q{DM%n~+n+r=p2h6MtTEOhps>NWr z#1=H4n_xcKUBqFrheobeselHTl#%A)wLF0$JfIU`SUq??dv$=;(=B3^Un*vhG(iS* z;y{~BaKp04d!=0UjthF{Di~#6>5}fU__}yj2*V{?jimX`A`AwZjPChsr5GZ>TVC9| zSRS=iE@1LE*(W^*NkzLacdy*JT)B*8<`VX*^r|w41)T0)yj=-3U96j3S$hhM19R>izO*z) z(9LeoN1qUV&d`b_O-ql9Ff2{xSmLYaxFo!bfq7Q%PE&P1&Auxf>+TjhA5Ols?1pUP zQ7;jF$Iz6InF*rlDeoyQoNT-zY|N4=&BIvlaO zyo*bAMRU-x=2_}X72PH}S1!o>!m&Uj-DIPmQk!N+#G9cAE=atK^{Z*D_%(4vg8C5BvT(=3)ca3uBe zeaT=bcAKi@yfEOXwa7--o`|!8mpVi?dL%6dP2s)>VUMz1$>r#{_$Yr>h{%iwZW+&J zX?$5?7Z}Z8!s(&Mo}1=s-W) z9Cn%Djpw~0zAZYCrieHwOEnt;maO!2y zc+}X|5#>;Lsl%kpW12?yNQLVz)8ecjz_?z6l^6m@M=UFU*ZZl#-E(kLf`ZZnD z)p<61cURsUDTcz=K4k}%3m zJtyGhhl4>A@6sh;1f)m^HkQC7%4%W1+{9jPz;a~4(ym{eapuGVma@lpT1 zRxJjF%eyaUo(3Hy(JE!JVBvz`2Jnh>&AR3=EI(BXjQ6^#oFXLT;#_RbXva5pLRmDN1F zRDo4*?u$z{7nmf^3OY??kP6`!$&lD}Nv&6l!Qs+UuZD%?i=E}Ztl;9XcSusHy zFUn~qEm_2tvGJqQQJIh#B5wRyjxH5TvSJv$6~2MG*dhhK7LBu%<+iZ$+{#RzHN8t> zfkuDgqL8k7uMk$jq(0kK0c@I#lRYdZKI#xvjFJ%HYfG4A?Q4?|`1sn?zK)-Z`?D&Z z1RfO=F_ybh##Jbyc_V;{**#(DoWMng8n;cm?-lX5DR4PHGDT74ueDBP zbn$cQYFuL58=3JrG`(ZF(n?`%7uS;~-+TI-oV~Gxk1uP*;fbjceY}<)ud*0!zW1&- znWgKob)v(L6?+`JvMr8^1W$-~m&LVow(QE;AA?+uH3|D{nAq4gr9eyehsZ-!&lR6C zxmr${2k!}BD?Tf7=wxy8wHcq18$)l!%<4EjZ_5?WN{uZl&*nc0l^5=EO75z0eJ5@c zI48)6r*xH@7n`%YV0G)+pUas%AFXopwvg?OcD;RHWY(g`dM>LcY5uNQ_D*iggPSXL zL`Bw#*1k&aTC2g^XSu9%V(bRL>MK4oRJx{locPQ)RWP{gqRb~}EsyDiB2&$SzrB^s znysoR&@iiYmBXFSfg4UP@fvwL~chPha9>tYH z8YuzlvoyklFU_3A^KZ)8V{?U`*xOuWTYTPRv(G%2-5abf-3?5eDk9Ta9&|tOSzE@! zPpbDlJc}aPBf7J^IiN_M_w!Dpe5*(FW=q;+i(9=A>iiIbbOZli) zVeqVovn&@FmNU9=nTSl-=-vf7t~KJQOAu()9;0lbJKG#qLD0?>nc&?QZ##w<=v7_P z_CKasyMjx3xqeikh+&sbh*jfauZd2eW|+*SvwU9)¬vmHF%oT63_(Zp+Gm&_0ps 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

7eLMdh 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 literal 0 HcmV?d00001 diff --git a/ui/homescreen/resources/widgets.json b/ui/homescreen/resources/widgets.json deleted file mode 100644 index d7e83f6..0000000 --- a/ui/homescreen/resources/widgets.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { - "id": "clock", - "url": "widgets/clock/index.html", - "width": "100%", - "height": "80px" - }, - { - "id": "weather", - "url": "widgets/weather/index.html", - "width": "100%", - "height": "120px" - } -] diff --git a/ui/homescreen/shell.js b/ui/homescreen/shell.js new file mode 100644 index 0000000..42627d7 --- /dev/null +++ b/ui/homescreen/shell.js @@ -0,0 +1,88 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +/** + * The homescreen's link to the mobile shell. + * + * The homescreen is carousel tab #0, a real webview. It cannot see the shell's + * services and the shell cannot call into it. The one channel between + * them is the MessagePort the splash screen already posts in at boot. + * + * That port is kept open to process 2 messages: + * + * - `visibility`, so live tiles can suspend when the homescreen is not the + * view on screen. The page cannot work this out alone: it is always visible + * *within its own webview*, and the container's opacity lives in the shell's + * document, not this one. + * TODO: check if page visibility can ve used instead. + * - `open`, which carries a title. `window.open(url, "_blank")` works and is + * the fallback, but the view arrives as an *adopted* webview with no title, + * so tabs from the homescreen show up unlabelled. + */ + +class ShellLink extends EventTarget { + constructor() { + super(); + this._port = null; + this._ready = false; + /* The port and readiness race in both directions: the document can finish + rendering before the splash posts the port, or after. Track them apart + and let whichever lands second do the send. */ + window.addEventListener("message", (event) => { + if (event.data?.type === "splash-port" && event.ports?.length) { + this._adopt(event.ports[0]); + } + }); + } + + _adopt(port) { + this._port = port; + port.onmessage = (event) => this._receive(event.data); + if (this._ready) { + this._sendReady(); + } + } + + _receive(message) { + if (!message?.type) { + return; + } + this.dispatchEvent(new CustomEvent(message.type, { detail: message })); + } + + _sendReady() { + try { + this._port.postMessage({ type: "homescreen-ready" }); + } catch (error) { + console.error("[Homescreen] Failed to signal ready:", error); + } + } + + /** Dismiss the splash. Safe to call before the port arrives. */ + signalReady() { + this._ready = true; + if (this._port) { + this._sendReady(); + } + } + + /** + * Open a URL in a new view. + */ + open(url, title = "") { + if (this._port) { + try { + this._port.postMessage({ type: "open", url, title }); + return; + } catch (error) { + console.warn( + "[Homescreen] Port send failed, using window.open:", + error, + ); + } + } + // No port (or it died): still open the view, just without the title. + window.open(url, "_blank"); + } +} + +export const shell = new ShellLink(); diff --git a/ui/homescreen/sources/weather.js b/ui/homescreen/sources/weather.js new file mode 100644 index 0000000..119c264 --- /dev/null +++ b/ui/homescreen/sources/weather.js @@ -0,0 +1,129 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +/** + * Open-Meteo, shared by the canopy strip and the weather tile. + */ + +/* WMO weather codes, banded to the granularity a one-line summary can carry. */ +const BANDS = [ + { max: 0, icon: "sun", text: "Clear" }, + { max: 3, icon: "cloud-sun", text: "Partly cloudy" }, + { max: 48, icon: "cloud-fog", text: "Fog" }, + { max: 67, icon: "cloud-rain", text: "Rain" }, + { max: 77, icon: "cloud-snow", text: "Snow" }, + { max: 82, icon: "cloud-rain-wind", text: "Showers" }, + { max: 99, icon: "cloud-lightning", text: "Storm" }, +]; + +const OPEN_METEO_URL = "https://api.open-meteo.com/v1/forecast"; + +/* Hours ahead to report, and the step between them. Three-hour steps over nine + hours is the span where a forecast still changes a decision about the day. */ +const FORECAST_STEPS = 3; +const FORECAST_STEP_HOURS = 3; + +/* Tristan da Cunha (37°4′3″S 12°18′40″W): the most remote inhabited + archipelago in the world. */ +export const DEFAULT_PLACE = { + name: "Tristan da Cunha", + lat: -37.0675, + lon: -12.3111, + unit: "celsius", +}; + +let currentPlace = DEFAULT_PLACE; + +/** Set once at startup from the stored preference. */ +export function setPlace(place) { + currentPlace = place ?? DEFAULT_PLACE; +} + +export function getPlace() { + return currentPlace; +} + +export function weatherBand(code) { + return BANDS.find((band) => code <= band.max) ?? { icon: "cloud", text: "" }; +} + +/** + * The next few hours, as `[{ hour, icon, degrees, unit }]`. + * + * Timestamps are compared and sliced as strings rather than parsed into Dates. + * Open-Meteo returns them as "2026-08-18T15:00" with no offset, which `new + * Date()` would read as the *phone's* local time and silently shift the labels + * for any place in another zone. Since `timezone=auto` puts every timestamp in + * the response on one offset, a lexical compare orders them correctly and + * slicing characters 11-13 gives the hour with no timezone maths at all. + */ +function buildForecast(data, fahrenheit) { + const times = data.hourly?.time; + if (!Array.isArray(times) || !data.current?.time) { + return []; + } + const start = times.findIndex((t) => t > data.current.time); + if (start < 0) { + return []; + } + const out = []; + for (let n = 0; n < FORECAST_STEPS; n += 1) { + const at = start + n * FORECAST_STEP_HOURS; + if (at >= times.length) { + break; + } + out.push({ + hour: `${times[at].slice(11, 13)}h`, + icon: weatherBand(data.hourly.weather_code[at]).icon, + degrees: Math.round(data.hourly.temperature_2m[at]), + unit: fahrenheit ? "F" : "C", + }); + } + return out; +} + +/* One in-flight request shared by every caller: the canopy and the tile ask + for the same place on the same schedule. */ +const inFlight = new Map(); + +/** + * Current conditions for the configured place, or null when they cannot be had. + */ +export async function currentWeather() { + const place = getPlace(); + if (!place) { + return null; + } + const fahrenheit = place.unit === "fahrenheit"; + const key = `${place.lat},${place.lon},${fahrenheit}`; + if (inFlight.has(key)) { + return inFlight.get(key); + } + const params = new URLSearchParams({ + latitude: place.lat, + longitude: place.lon, + current: "temperature_2m,weather_code", + hourly: "temperature_2m,weather_code", + /* Two days, because a late-evening request needs to reach past midnight to + fill nine hours. */ + forecast_days: "2", + timezone: "auto", + temperature_unit: fahrenheit ? "fahrenheit" : "celsius", + }); + const request = fetch(`${OPEN_METEO_URL}?${params}`) + .then((response) => response.json()) + .then((data) => { + const band = weatherBand(data.current.weather_code); + return { + icon: band.icon, + text: band.text, + degrees: Math.round(data.current.temperature_2m), + unit: fahrenheit ? "F" : "C", + place: place.name, + forecast: buildForecast(data, fahrenheit), + }; + }) + .catch(() => null) + .finally(() => inFlight.delete(key)); + inFlight.set(key, request); + return request; +} diff --git a/ui/homescreen/store.js b/ui/homescreen/store.js new file mode 100644 index 0000000..15f03fb --- /dev/null +++ b/ui/homescreen/store.js @@ -0,0 +1,45 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +/** + * HomeStore : persistence for the homescreen arrangement. + + */ + +import { DesktopStore } from "beaver://system/desktop/store.js"; +import { HomeModel } from "./model.js"; + +const STORAGE_KEY = "beaver:homescreen:layout"; + +export class HomeStore { + constructor({ key = STORAGE_KEY, storage } = {}) { + this._store = new DesktopStore({ key, storage }); + } + + /** + * The saved arrangement, or null when there is nothing usable stored. The + * caller seeds the default layout on null; an empty model is not the same as + * an absent one, since a user may legitimately empty their homescreen. + */ + load() { + const snapshot = this._store.load(); + return snapshot ? new HomeModel(snapshot) : null; + } + + save(model) { + this._store.save(model.toSnapshot()); + } + + /** Debounced: called from every mutation, so it must be cheap to spam. */ + scheduleSave(model) { + this._store.scheduleSave(() => model.toSnapshot()); + } + + /** Write any pending debounce immediately. Use at `beforeunload`. */ + flush(model) { + this._store.flush(() => model.toSnapshot()); + } + + clear() { + this._store.clear(); + } +} diff --git a/ui/homescreen/widgets/clock/index.css b/ui/homescreen/widgets/clock/index.css deleted file mode 100644 index 93c47a8..0000000 --- a/ui/homescreen/widgets/clock/index.css +++ /dev/null @@ -1,29 +0,0 @@ -/* SPDX-License-Identifier: AGPL-3.0-or-later */ - -body { - margin: 0; - padding: 0; - background: transparent; - font-family: var(--font-family-base); - color: var(--color-text-menu); -} - -.clock-widget { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - padding: var(--spacing-md) var(--spacing-2xl); -} - -.clock-time { - font-family: Pacifico, cursive; - font-size: 2.4em; - line-height: 1.2; -} - -.clock-date { - font-size: var(--font-size-base); - color: var(--color-text-secondary); - margin-top: 2px; -} diff --git a/ui/homescreen/widgets/clock/index.js b/ui/homescreen/widgets/clock/index.js deleted file mode 100644 index 1777505..0000000 --- a/ui/homescreen/widgets/clock/index.js +++ /dev/null @@ -1,21 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later - -const clockTime = document.getElementById("clock-time"); -const clockDate = document.getElementById("clock-date"); - -function update() { - const now = new Date(); - const hours = now.getHours(); - const minutes = now.getMinutes().toString().padStart(2, "0"); - - clockTime.textContent = `${hours}:${minutes}`; - - clockDate.textContent = now.toLocaleDateString(undefined, { - weekday: "long", - month: "long", - day: "numeric", - }); -} - -update(); -setInterval(update, 30_000); diff --git a/ui/homescreen/widgets/weather/index.css b/ui/homescreen/widgets/weather/index.css deleted file mode 100644 index 0b47d41..0000000 --- a/ui/homescreen/widgets/weather/index.css +++ /dev/null @@ -1,38 +0,0 @@ -/* SPDX-License-Identifier: AGPL-3.0-or-later */ - -body { - margin: 0; - padding: 0; - background: transparent; - font-family: var(--font-family-base); - color: var(--color-text-menu); -} - -.weather-widget { - display: flex; - align-items: center; - gap: var(--spacing-2xl); - padding: var(--spacing-2xl); - background: var(--bg-surface); - border-radius: var(--radius-lg); -} - -.weather-icon lucide-icon { - font-size: 2.5em; - opacity: 0.9; -} - -.temperature { - font-size: 1.8em; - font-weight: var(--font-weight-bold); -} - -.condition { - font-size: var(--font-size-base); - color: var(--color-text-secondary); -} - -.location { - font-size: var(--font-size-sm); - color: var(--color-text-tertiary); -} diff --git a/ui/homescreen/widgets/weather/index.html b/ui/homescreen/widgets/weather/index.html deleted file mode 100644 index 67573c3..0000000 --- a/ui/homescreen/widgets/weather/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - -

- - diff --git a/ui/homescreen/widgets/weather/index.js b/ui/homescreen/widgets/weather/index.js deleted file mode 100644 index ba9cf5f..0000000 --- a/ui/homescreen/widgets/weather/index.js +++ /dev/null @@ -1,62 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later - -// Uses fixed location since Geolocation - -const OPEN_METEO_URL = "https://api.open-meteo.com/v1/forecast"; - -// Fixed location: Tristan da Cunha (37°4′3″S 12°18′40″W) -const FIXED_LAT = -37.0675; -const FIXED_LON = -12.3111; -const LOCATION_NAME = "Tristan da Cunha"; - -async function fetchWeather(lat, lon) { - const params = new URLSearchParams({ - latitude: lat, - longitude: lon, - current: "temperature_2m,weather_code", - temperature_unit: "celsius", - }); - const response = await fetch(`${OPEN_METEO_URL}?${params}`); - return response.json(); -} - -function getWeatherIcon(code) { - // WMO weather codes to Lucide icons - if (code === 0) return "sun"; - if (code <= 3) return "cloud-sun"; - if (code <= 48) return "cloud-fog"; - if (code <= 67) return "cloud-rain"; - if (code <= 77) return "cloud-snow"; - if (code <= 99) return "cloud-lightning"; - return "cloud"; -} - -function getWeatherCondition(code) { - if (code === 0) return "Clear sky"; - if (code <= 3) return "Partly cloudy"; - if (code <= 48) return "Foggy"; - if (code <= 67) return "Rainy"; - if (code <= 77) return "Snowy"; - if (code <= 99) return "Thunderstorm"; - return "Unknown"; -} - -async function init() { - try { - const data = await fetchWeather(FIXED_LAT, FIXED_LON); - const temp = Math.round(data.current.temperature_2m); - const code = data.current.weather_code; - - document.getElementById("temperature").textContent = `${temp}°C`; - document.getElementById("condition").textContent = - getWeatherCondition(code); - document.getElementById("location").textContent = LOCATION_NAME; - document.getElementById("weather-icon").innerHTML = - ``; - } catch (e) { - console.error("[Weather] Failed to fetch weather:", e); - document.getElementById("condition").textContent = "Weather unavailable"; - } -} - -init(); diff --git a/ui/system/desktop/peers.js b/ui/system/desktop/peers.js index 11e29ba..3c5d84f 100644 --- a/ui/system/desktop/peers.js +++ b/ui/system/desktop/peers.js @@ -5,10 +5,7 @@ * tray badge that shows the count, and the popover that lists them. * * Owns the `peers` array (other modules read it through the return - * value or the palette's PEERS dep). The popover surface itself is the - * `` Lit element; this controller drives open/close - * via the shared `Popover` helper and pushes the array onto the - * element via the `peers` property. + * value or the palette's PEERS dep). * * Anchored to the tray button via the shared dockAnchorPosition(), so it opens * away from whichever edge the dock is on, like the repos and quick-settings @@ -17,14 +14,6 @@ import { Popover, bindTrayToggle, dockAnchorPosition } from "./popover.js"; -const PEER_DOT_PALETTE = [ - "oklch(48% 0.12 155)", - "oklch(72% 0.1 78)", - "oklch(58% 0.16 38)", - "oklch(58% 0.14 250)", - "oklch(52% 0.18 320)", -]; - /** * @param {object} deps * @param {HTMLElement|null} deps.trayButton The `#tray-peers` trigger. @@ -34,7 +23,7 @@ const PEER_DOT_PALETTE = [ * close: Function, toggle: Function, isOpen: Function }} */ export function initPeers({ trayButton, badge, popoverEl }) { - /** @type {Array<{id: string, name: string, color: string, delay: string}>} */ + /** @type {Array<{id: string, name: string}>} */ const peers = []; const popover = new Popover(popoverEl, { dataAttr: "peersPopoverOpen" }); @@ -72,14 +61,8 @@ export function initPeers({ trayButton, badge, popoverEl }) { present = []; } peers.length = 0; - present.forEach((p, i) => { - peers.push({ - id: p.id, - name: p.displayName || p.id, - color: PEER_DOT_PALETTE[i % PEER_DOT_PALETTE.length], - // Stagger the pulse phase so multiple peers don't blink in unison. - delay: `${(i * 0.9).toFixed(1)}s`, - }); + present.forEach((p) => { + peers.push({ id: p.id, name: p.displayName || p.id }); }); updateBadge(); } diff --git a/ui/system/desktop/peers_popover.css b/ui/system/desktop/peers_popover.css index fbdf1a6..dfc5f98 100644 --- a/ui/system/desktop/peers_popover.css +++ b/ui/system/desktop/peers_popover.css @@ -1,9 +1,6 @@ /* SPDX-License-Identifier: AGPL-3.0-or-later */ -/* Peers popover : opens from the tray peers button. Always above the - dock (which lives at the viewport bottom), so its entrance animation - pivots off the bottom edge. Same fixed-position pattern as the - topbar-menu / desk-settings popovers, just dock-anchored. */ +/* Peers popover : opens from the tray peers button. */ :host { position: fixed; @@ -62,16 +59,11 @@ width: var(--size-2xs); height: var(--size-2xs); border-radius: 50%; - background: var(--peer-color, oklch(48% 0.12 155)); + background: var(--color-primary); /* Echo the dock-desk-color "lit" treatment. */ box-shadow: 0 0 0 1px oklch(99% 0.005 105 / 0.45), - 0 0 6px - color-mix( - in oklab, - var(--peer-color, oklch(48% 0.12 155)) 60%, - transparent - ); + 0 0 6px color-mix(in oklab, var(--color-primary) 60%, transparent); flex-shrink: 0; } diff --git a/ui/system/desktop/peers_popover.js b/ui/system/desktop/peers_popover.js index d52d5e6..1bb75ae 100644 --- a/ui/system/desktop/peers_popover.js +++ b/ui/system/desktop/peers_popover.js @@ -6,7 +6,7 @@ * * The shell-side `peers.js` controller drives open/close + positioning * via the shared `Popover` helper; this element only renders the list. - * Set `peers` to the live array (`{id, name, color, delay}` shape from + * Set `peers` to the live array (`{id, name}` shape from * the controller) to refresh. */ @@ -27,7 +27,7 @@ export class PeersPopover extends LitElement { constructor() { super(); - /** @type {Array<{id: string, name: string, color: string, delay: string}>} */ + /** @type {Array<{id: string, name: string}>} */ this.peers = []; } @@ -40,10 +40,7 @@ export class PeersPopover extends LitElement { ? html`
No peers connected.
` : this.peers.map( (peer) => html` -
+
${peer.name} diff --git a/ui/system/mobile/init.js b/ui/system/mobile/init.js index 06952be..c380219 100644 --- a/ui/system/mobile/init.js +++ b/ui/system/mobile/init.js @@ -7,6 +7,7 @@ import { bindPowerKey } from "beaver://shared/power/power_key.js"; import { bindScreenTimeout } from "beaver://shared/power/screen_timeout.js"; import { bindPlugWake } from "beaver://shared/power/plug_wake.js"; import { warmScreenOffEffect } from "beaver://shared/power/dusk.js"; +import * as pins from "../services/pins.js"; export function initMobile( layoutManager, @@ -32,6 +33,20 @@ export function initMobile( layoutManager.setHomescreen(homescreen.webviewId); splash.waitForHomescreen(homescreen); + /* The splash's MessagePort stays open past boot as the shell's only channel + into the homescreen, which runs in its own JS realm. It carries two things: + the homescreen asking for a view to be opened (with a title, which + window.open cannot supply), and the shell telling it when it is on screen + so its live tiles can suspend. */ + splash.onHomescreenMessage = (message) => { + if (message?.type === "open" && message.url) { + openView(message.url, message.title ?? ""); + } + }; + layoutManager.onHomescreenVisibility = (visible) => { + splash.postToHomescreen({ type: "visibility", visible }); + }; + const pebble = document.createElement("mobile-pebble"); document.body.appendChild(pebble); pebble.setLayoutManager(layoutManager); @@ -60,8 +75,16 @@ export function initMobile( pebble.addEventListener("action-share", () => { // TODO: real share sheet }); - pebble.addEventListener("action-bookmark", () => { - // TODO: real bookmark add + /* Pin / unpin feedback. The pebble does the work (it already tracks the URL + and the title); this only reports the outcome, since the launcher lives + behind a long-press and a silent toggle would leave you guessing. */ + pebble.addEventListener("action-pinned", (e) => { + const { pinned, full, title } = e.detail; + if (full) { + toastManager?.add(`Launcher is full (${pins.MAX_PINS} pins)`); + } else { + toastManager?.add(pinned ? `Pinned ${title}` : `Unpinned ${title}`); + } }); pebble.addEventListener("action-more", () => { // TODO: real overflow menu diff --git a/ui/system/mobile/layout_manager.js b/ui/system/mobile/layout_manager.js index a5e5852..db13a0d 100644 --- a/ui/system/mobile/layout_manager.js +++ b/ui/system/mobile/layout_manager.js @@ -40,6 +40,13 @@ export class MobileLayoutManager extends LayoutManager { this.homescreenWebviewId = webviewId; } + /** + * Called with true/false as the homescreen becomes the visible view or stops + * being it. Set by init.js, which owns the port down to the homescreen. + * @type {((visible: boolean) => void) | null} + */ + onHomescreenVisibility = null; + isHomescreen(webviewId) { return webviewId === this.homescreenWebviewId; } @@ -120,6 +127,7 @@ export class MobileLayoutManager extends LayoutManager { prevContainer?.classList.remove("active"); } + const previousId = this.activeWebviewId; this._activeId = webviewId; if (webviewId && this.webviews.has(webviewId)) { @@ -131,6 +139,19 @@ export class MobileLayoutManager extends LayoutManager { ); container?.classList.add("active"); } + + /* The homescreen runs in its own realm and is always "visible" to itself: + what hides it is a class on its container in *this* document. Tell it + when that changes so its live tiles can suspend. Fires here rather than + on the webview-focus event because addWebView and the carousel switch + both land in this method without one. */ + if (this.homescreenWebviewId) { + const was = previousId === this.homescreenWebviewId; + const is = webviewId === this.homescreenWebviewId; + if (was !== is) { + this.onHomescreenVisibility?.(is); + } + } } switchTo(index) { diff --git a/ui/system/mobile/pebble.js b/ui/system/mobile/pebble.js index 44eba54..90078a0 100644 --- a/ui/system/mobile/pebble.js +++ b/ui/system/mobile/pebble.js @@ -10,6 +10,7 @@ import { import { SearchController } from "beaver://shared/search/controller.js"; import { batteryAlert, watchBattery } from "beaver://shared/dbus/battery.js"; +import * as pins from "beaver://system/services/pins.js"; import "beaver://shared/power/brightness_slider.js"; import "./pebble_radial.js"; import "./pebble_tray.js"; @@ -60,7 +61,7 @@ const PINS = [ { id: "forward", icon: "arrow-right", label: "Forward" }, { id: "reload", icon: "rotate-ccw", label: "Reload" }, { id: "share", icon: "share", label: "Share" }, - { id: "bookmark", icon: "star", label: "Bookmark" }, + { id: "bookmark", icon: "star", label: "Pin" }, // { id: "more", icon: "ellipsis", label: "More" }, ]; @@ -98,6 +99,9 @@ export class MobilePebble extends LitElement { radialOpen: { type: Boolean, state: true }, radialX: { type: Number, state: true }, radialY: { type: Number, state: true }, + // Launcher pins, shown along the bottom of the radial. Shell-owned, so + // they are the same list in every view. + pinnedItems: { type: Array, state: true }, peekVisible: { type: Boolean, state: true }, peekTab: { type: Object, state: true }, peekDirection: { type: Number, state: true }, @@ -156,6 +160,7 @@ export class MobilePebble extends LitElement { this.radialOpen = false; this.radialX = 0; this.radialY = 0; + this.pinnedItems = []; this.peekVisible = false; this.peekTab = null; @@ -185,6 +190,13 @@ export class MobilePebble extends LitElement { connectedCallback() { super.connectedCallback(); + /* Pins are shell state, so read them once and follow changes. Doing it here + rather than in the render keeps the store's lazy load off the long-press + path, where a synchronous localStorage read would land mid-gesture. */ + this.pinnedItems = pins.all(); + this._unsubscribePins = pins.subscribe((next) => { + this.pinnedItems = next; + }); document.addEventListener("pointerdown", this._boundDocPointerDown, true); document.addEventListener("keydown", this._boundDocKeyDown); document.addEventListener( @@ -211,6 +223,8 @@ export class MobilePebble extends LitElement { "webview-scroll-end", this._boundViewScrollEnd, ); + this._unsubscribePins?.(); + this._unsubscribePins = null; this._unwatchBattery?.(); this._unwatchBattery = null; } @@ -520,8 +534,6 @@ export class MobilePebble extends LitElement { return; } - // Servo doesn't honour CSS touch-action; preventDefault on the pointer - // event is what tells its touch handler that the page owns this touch. e.preventDefault(); const shell = this.renderRoot.querySelector(".pebble"); @@ -559,6 +571,7 @@ export class MobilePebble extends LitElement { if (!this._g || e.pointerId !== this._g.pid) { return; } + // Same caveat as pointerdown: inert as far as Servo's compositor goes. e.preventDefault(); this._g.curX = e.clientX; this._g.curY = e.clientY; @@ -812,6 +825,53 @@ export class MobilePebble extends LitElement { this._dispatchAction(action); } + /** + * The star pins the current page to the launcher, or unpins it if it is + * already there. + * + * "Pin" rather than "bookmark" deliberately: Beaver has no bookmark store, and + * this puts the page somewhere reachable from any view instead of into a list + * nothing reads. Reports the outcome so init.js can raise a toast - the + * launcher sits behind a long-press, so a silent toggle would leave the user + * with no idea whether it worked. + */ + _togglePin() { + const url = this.url; + if (!url) { + return; + } + const title = + this.tabs?.find((t) => t.id === this.activeTabId)?.name || url; + let detail; + if (pins.isPinned(url)) { + pins.remove(url); + detail = { pinned: false, full: false, title }; + } else if (pins.add({ url, title })) { + detail = { pinned: true, full: false, title }; + } else { + detail = { pinned: false, full: true, title }; + } + this.dispatchEvent( + new CustomEvent("action-pinned", { + bubbles: true, + composed: true, + detail, + }), + ); + } + + /* A pin is a destination, not an action, so it goes straight to _navigateTo - + which already knows not to replace the homescreen and to open a new view + instead. Works from any view, which is the point of pins living here rather + than in a dock on one page. */ + _onRadialPinSelect(e) { + this._closeRadial(); + const url = e.detail.pin?.url; + if (url) { + this._navigateTo(url); + } + } + // ----- Quick-settings tray (pull down from ambient) ----- _trayElement() { @@ -972,8 +1032,10 @@ export class MobilePebble extends LitElement { }); break; } - case "share": case "bookmark": + this._togglePin(); + break; + case "share": case "more": this.dispatchEvent( new CustomEvent("action-" + action, { @@ -1496,9 +1558,11 @@ export class MobilePebble extends LitElement { return html` `; diff --git a/ui/system/mobile/pebble_radial.css b/ui/system/mobile/pebble_radial.css index f4b7457..19c23ae 100644 --- a/ui/system/mobile/pebble_radial.css +++ b/ui/system/mobile/pebble_radial.css @@ -1,9 +1,27 @@ /* SPDX-License-Identifier: AGPL-3.0-or-later */ -/* Radial menu : opens via long-press on the pebble. The host - covers the full viewport and holds the dismiss-overlay; the eight - zone buttons fan out from (x, y) which the controller sets as - `--radial-x` / `--radial-y` custom properties on the host. */ +/* Radial menu : opens via long-press on the pebble. The host covers the full + viewport and holds the dismiss-overlay; the zone buttons fan out from (x, y) + which the controller sets as `--radial-x` / `--radial-y` custom properties on + the host. + + Two tiers, doing two different jobs: + - the arc is navigation (back, forward, home, tabs, search). It opens upward + only - every zone offset is negative on Y - so the space below the origin + was already free. + - the row is the launcher: shell-owned pins, reachable from any view. It goes + in that free space, which means lifting the arc, because the long-press + origin sits on the pebble about 24-68px off the bottom and there is not + enough room beneath it as-is. + + The arc is lifted by translating `.zones` as a whole rather than by rewriting + each zone's transform, so the fan geometry stays in one place and readable. + Four launchers at 48px with 10px gaps come to 222px, against the arc's 220px + span: the row is deliberately the same width as the menu above it, which is + what makes the two tiers read as one object rather than two. The outer zones + sit at +/-110px, so each ends up almost exactly above an outer launcher. 48px + also keeps the row lighter than the 56px zones, so navigation stays the + dominant tier, and it is still clear of the 44px touch floor. */ :host { position: absolute; @@ -27,12 +45,70 @@ } } +:host { + /* How far the arc rises to clear the launcher row. */ + --radial-lift: 40px; +} + .zones { position: absolute; left: var(--radial-x, 50%); top: var(--radial-y, 100%); width: 0; height: 0; + transform: translateY(calc(var(--radial-lift) * -1)); +} + +/* The launcher row, anchored to the bottom of the viewport rather than to the + press point: pins should land in the same place every time, since the muscle + memory is the whole value of a launcher. The arc follows the thumb; this does + not. */ +.launchers { + position: absolute; + right: 0; + bottom: calc(var(--spacing-2xl) + var(--keyboard-offset, 0px)); + left: 0; + display: flex; + justify-content: center; + /* 10px: the gap that makes 4x48 add up to the arc's span. */ + gap: var(--spacing-lg); + padding: 0 var(--spacing-2xl); +} + +/* No caption. Four icons in a fixed place is a dock, and a dock you have to + read is not doing its job - the position is the label. The name still reaches + assistive tech through the button's aria-label. */ +.launcher { + display: flex; + width: 48px; + height: 48px; + align-items: center; + justify-content: center; + overflow: hidden; + padding: 0; + border: none; + border-radius: 17px 15px 17px 16px; + background: var(--bg-menu); + box-shadow: 0 4px 14px var(--color-shadow-menu); + color: var(--color-text-menu); + font-family: var(--font-family-base); + cursor: pointer; + transition: transform var(--transition-fast); +} + +.launcher:active { + transform: translateY(1px); +} + +.launcher img { + width: 100%; + height: 100%; + object-fit: contain; +} + +.launcher-mark { + font-size: var(--font-size-xl); + text-transform: lowercase; } .zone { @@ -44,7 +120,7 @@ border-radius: 50%; background: var(--bg-menu); color: var(--color-text-menu); - font-size: var(--font-size-2xl); + font-size: var(--font-size-xl); cursor: pointer; box-shadow: 0 4px 14px var(--color-shadow-menu); display: flex; diff --git a/ui/system/mobile/pebble_radial.js b/ui/system/mobile/pebble_radial.js index c82f99d..a5b4799 100644 --- a/ui/system/mobile/pebble_radial.js +++ b/ui/system/mobile/pebble_radial.js @@ -2,14 +2,17 @@ /** * `` : the long-press radial menu that fans 5 zone - * buttons out from the pebble's current screen position. Pure - * presentation: takes `zones` (with per-zone `disabled` already - * computed by the controller) plus `x` / `y` (in viewport pixels), - * dispatches `zone-select` with `{action}` on a non-disabled click - * and `dismiss` on a click on the backdrop outside any zone. + * buttons out from the pebble's current screen position, with the launcher + * pins in a row beneath them. Pure presentation: takes `zones` (with per-zone + * `disabled` already computed by the controller) plus `x` / `y` (in viewport + * pixels) and `pins`, dispatches `zone-select` with `{action}` on a + * non-disabled click, `pin-select` with `{pin}`, and `dismiss` on a click on + * the backdrop outside everything. * * Zone shape: `{ id: number, action: string, icon: string, disabled?: boolean }`. * `id` (0-4) drives the per-position transform in pebble_radial.css. + * + * Pin shape: `{ id, url, title, icon }` from services/pins.js. */ import { @@ -21,6 +24,7 @@ import { export class PebbleRadial extends LitElement { static properties = { zones: { type: Array }, + pins: { type: Array }, x: { type: Number }, y: { type: Number }, }; @@ -32,6 +36,7 @@ export class PebbleRadial extends LitElement { constructor() { super(); this.zones = []; + this.pins = []; this.x = 0; this.y = 0; } @@ -50,6 +55,17 @@ export class PebbleRadial extends LitElement { ); } + _onPinClick(pin, e) { + e.stopPropagation(); + this.dispatchEvent( + new CustomEvent("pin-select", { + bubbles: true, + composed: true, + detail: { pin }, + }), + ); + } + _onZoneClick(zone, e) { e.stopPropagation(); if (zone.disabled) return; @@ -80,8 +96,49 @@ export class PebbleRadial extends LitElement { `, )}
+ ${ + this.pins.length + ? html`
+ ${this.pins.map( + (pin) => html` + + `, + )} +
` + : "" + } `; } } +/* One or two letters, lowercase, matching the homescreen's monogram treatment + so a pinned site looks like itself in both places. Uses the code point rather + than charAt so an emoji title survives instead of half a surrogate pair. */ +function mark(label) { + const words = String(label ?? "") + .trim() + .split(/[\s._/-]+/) + .filter(Boolean); + if (!words.length) { + return "?"; + } + const first = [...words[0]][0] ?? "?"; + if (words.length === 1) { + return first.toLowerCase(); + } + return (first + ([...words[1]][0] ?? "")).toLowerCase(); +} + customElements.define("pebble-radial", PebbleRadial); diff --git a/ui/system/mobile/splash_screen.js b/ui/system/mobile/splash_screen.js index 2221c33..de59f81 100644 --- a/ui/system/mobile/splash_screen.js +++ b/ui/system/mobile/splash_screen.js @@ -8,6 +8,10 @@ export class MobileSplashScreen { this.element = document.getElementById("mobile-splash"); this.timeoutId = null; this.channel = null; + /* The port outlives the splash: it is the shell's only channel into the + homescreen, which runs in its own JS realm as carousel tab #0. Set by + init.js to receive `open` and the like; see postToHomescreen below. */ + this.onHomescreenMessage = null; } show() { @@ -93,6 +97,7 @@ export class MobileSplashScreen { console.log("[Splash] Homescreen ready signal received"); onReady(); } + this.onHomescreenMessage?.(event.data); }; this.channel.port1.onmessageerror = (event) => { @@ -110,4 +115,17 @@ export class MobileSplashScreen { console.error("[Splash] Failed to send postMessage:", e); } } + + /** + * Send a message to the homescreen. No-op until the channel is up, which is + * the right behaviour for everything sent over it: visibility is re-sent on + * the next switch, and nothing else is worth queueing. + */ + postToHomescreen(message) { + try { + this.channel?.port1.postMessage(message); + } catch (e) { + console.warn("[Splash] Failed to post to homescreen:", e); + } + } } diff --git a/ui/system/services/pins.js b/ui/system/services/pins.js new file mode 100644 index 0000000..e07b5de --- /dev/null +++ b/ui/system/services/pins.js @@ -0,0 +1,131 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +/** + * Pins: the launcher, owned by the shell. + * + * A handful of destinations reachable from anywhere, surfaced as a row along the + * bottom of the pebble's radial menu. + */ + +import { DesktopStore } from "beaver://system/desktop/store.js"; + +const STORAGE_KEY = "beaver:shell:pins"; + +/** Four is what the radial's geometry affords. See the note above. */ +export const MAX_PINS = 4; + +/* What a fresh profile starts with: the two utility destinations that have no + other obvious home. Everything else a person wants here, they pin. */ +const SEED = [ + { + id: "pin-settings", + url: "beaver://settings/index.html", + title: "Settings", + icon: null, + }, + { + id: "pin-remote", + url: "beaver://system/remote/index.html", + title: "Media Center", + icon: null, + }, +]; + +const store = new DesktopStore({ key: STORAGE_KEY }); +const listeners = new Set(); + +/** @type {Array<{id: string, url: string, title: string, icon: string|null}>} */ +let pins = []; +let loaded = false; + +let counter = 0; +function makeId() { + counter += 1; + return `pin-${Date.now().toString(36)}${counter.toString(36)}`; +} + +/* Anything malformed is dropped rather than repaired: one bad entry should cost + one slot, not the whole launcher. */ +function sanitize(raw) { + if (!raw || typeof raw.url !== "string" || !raw.url) { + return null; + } + return { + id: typeof raw.id === "string" && raw.id ? raw.id : makeId(), + url: raw.url, + title: typeof raw.title === "string" ? raw.title : "", + icon: typeof raw.icon === "string" ? raw.icon : null, + }; +} + +function load() { + if (loaded) { + return; + } + loaded = true; + const snapshot = store.load(); + /* An absent snapshot is a first run and gets the seed. An empty array is a + choice - somebody removed their last pin - and must be left empty. */ + pins = snapshot?.pins + ? snapshot.pins.map(sanitize).filter(Boolean).slice(0, MAX_PINS) + : SEED.map((pin) => ({ ...pin })); +} + +function save() { + store.save({ pins }); + for (const listener of listeners) { + listener(all()); + } +} + +/** The current pins, newest additions last. Always a copy. */ +export function all() { + load(); + return pins.map((pin) => ({ ...pin })); +} + +export function isFull() { + load(); + return pins.length >= MAX_PINS; +} + +/** True when this URL is already pinned, so a star can render its state. */ +export function isPinned(url) { + load(); + return pins.some((pin) => pin.url === url); +} + +/** + * Pin a destination. Re-pinning a URL that is already there is a no-op rather + * than a duplicate, so the star is idempotent. + * + * @returns {boolean} false when the launcher is full. + */ +export function add({ url, title = "", icon = null }) { + load(); + if (!url || isPinned(url)) { + return true; + } + if (pins.length >= MAX_PINS) { + return false; + } + pins.push({ id: makeId(), url, title, icon }); + save(); + return true; +} + +export function remove(idOrUrl) { + load(); + const before = pins.length; + pins = pins.filter((pin) => pin.id !== idOrUrl && pin.url !== idOrUrl); + if (pins.length !== before) { + save(); + } + return pins.length !== before; +} + +/** Call `listener(pins)` on every change. Returns an unsubscribe. */ +export function subscribe(listener) { + listeners.add(listener); + return () => listeners.delete(listener); +} diff --git a/ui/system/share_provider.html b/ui/system/share_provider.html new file mode 100644 index 0000000..c0e5b8b --- /dev/null +++ b/ui/system/share_provider.html @@ -0,0 +1,102 @@ + + + + + Share Provider + + + +

Share

+

Waiting for task...

+ + + + + diff --git a/ui/system/webtasks_test.html b/ui/system/webtasks_test.html new file mode 100644 index 0000000..ef1ee00 --- /dev/null +++ b/ui/system/webtasks_test.html @@ -0,0 +1,72 @@ + + + + + Web Tasks Test + + + +

Web Tasks Test

+

+ Click the button to request the share task with type + text/uri-list. +

+

+ The share provider is registered automatically via a + <meta name="beaver-tasks"> tag in the system UI. +

+ + +
Ready.
+ + + + -- 2.51.2

-PdctAcla>w%C6Dz$-B6iKx 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ƌy}X{JuYGr|P2Uv&?%ER=x`PaHLQA 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ĨTb#cl`n26#lMIDhdCIX3CJsV&3#w~h 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