10:function el(tag, attrs = {}, ...children) { 24:function esc(s) { 27:function debounce(fn, ms = 300) { 30:function fmtBytes(n) { 55:async function api(path, opts = {}) { 79:const GET = p => api(p); 80:const POST = (p, json) => api(p, { method: "POST", json }); 86:function toast(msg, kind = "info", ms = 4200) { 99:function openModal(title, bodyNode, { buttons = [], wide = false, xw = false, onClose } = {}) { 117:function confirmDialog(message, { title = "Are you sure?", danger = true, confirmLabel = "Confirm", onConfirm } = {}) { 128:async function confirmedAction(message, fn, { title, confirmLabel = "Yes, proceed" } = {}) { 197: if (window.pageBoot) window.pageBoot(me); ---NAV--- 144:const NAV = [ 174: for (const item of NAV) {