PageSourceSearch

https://pupwife.com/scripts/effects/spaVcOverlayShell.js

js pupwife.com collected 2026-09-30 15:06:12 UTC 2,010 bytes, 41 lines download raw bytes

1/**
2 * Global VC chrome — toolbar below account/theme toggle; roster underneath.
3 */
4(function (global) {
5    'use strict';
6
7    var SHELL_ID = 'spa-vc-chrome';
8
9    function ensureShell() {
10        var legacy = document.getElementById('spa-vc-overlay');
11        if (legacy) legacy.remove();
12
13        var existing = document.getElementById(SHELL_ID);
14        if (existing) return existing;
15
16        var wrap = document.createElement('div');
17        wrap.id = SHELL_ID;
18        wrap.className = 'spa-vc-chrome';
19        wrap.hidden = true;
20        wrap.setAttribute('aria-live', 'polite');
21        wrap.innerHTML =
22            '<div class="spa-vc-chrome__toolbar" role="toolbar" aria-label="Voice controls">'
23            + '<button type="button" class="spa-vc-chrome-btn spa-vc-chrome-mute" id="spa-vc-chrome-mute" aria-label="Mute" title="Mute"></button>'
24            + '<button type="button" class="spa-vc-chrome-btn spa-vc-chrome-deafen" id="spa-vc-chrome-deafen" aria-label="Deafen" title="Deafen"></button>'
25            + '<a href="chatroom.html" class="spa-vc-chrome-btn spa-vc-chrome-chat" id="spa-vc-chrome-chat" title="Open chatroom" aria-label="Open chatroom">'
26            + '<i class="fa-solid fa-comments" aria-hidden="true"></i>'
27            + '</a>'
28            + '<button type="button" class="spa-vc-chrome-btn spa-vc-chrome-leave" id="spa-vc-chrome-leave" aria-label="Leave voice" title="Leave voice">'
29            + '<i class="fa-solid fa-phone-slash" aria-hidden="true"></i>'
30            + '</button>'
31            + '</div>'
32            + '<p class="spa-vc-chrome__channel" id="spa-vc-chrome-channel" hidden>Whimsy Zone</p>'
33            + '<div class="spa-vc-chrome__roster" id="spa-vc-chrome-roster" role="list"></div>'
34            + '<div class="spa-vc-chrome__listening" id="spa-vc-chrome-listening" hidden></div>';
35
36        document.body.appendChild(wrap);
37        return wrap;
38    }
39
40    global.ensureSpaVcOverlayShell = ensureShell;
41})(typeof window !== 'undefined' ? window : this);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.