/** * openvibe-shared/ov-share.js — one Share sheet for anything on OpenVibe, on every site (plan track Q; the owner, * 2026-11-06: share with named accounts only, give a thing away with the recipient's say-so, "for everything else too … * a more universal system", and "a unified share system … more platforms … easy copying of a link … the phone's own share * thing … intuitive, user-friendly"). The look is ov-share.css, linked from beside this file; docs/share.md has both. * * One sheet, two parts, never tabs: * Send it for everyone: the link and Copy; on a phone, the phone's own share sheet (contacts, messages, apps); * X, Bluesky, WhatsApp, Reddit, Discord, Telegram, Threads, Mastodon, Facebook, email, Messages, * LinkedIn, Pinterest, Tumblr, Hacker News, LINE (recent ones first, the rest behind "More (n)"); a QR * code made on the device; "Start at 1:23"; embed code. * Who can open it for the owner, when the thing has kind and id: Everyone, Anyone with the link, Specific people * (by @name, each Can view or Can edit, with an end date), Only me; people who asked; Transfer. * * A locked item (Locker, ov-locker.js) gets one more part between them: what its lock means in plain words, each * person's eight-word fingerprint (and a warning when their key changed), and, for a people lock, adding someone (their * content key is wrapped for them on this device) and removing someone (the content is sealed again under a fresh key, * and the sheet says they keep what they already opened). A link lock's key is the part of the link after #, which * browsers never send; the sheet never invents it, it copies the whole link. ov-locker.js is loaded on the first press * of that part, never before. * * the page's own address * data-url="https://…" the link to share (else the page's address) * data-text="…" a line to send with it (email, the phone's sheet) * data-image="https://…" a picture of it (Pinterest) * data-embed="https://…" an embeddable player address (the Embed tile) * data-time-from="#player" a