/* =========================================================================== launch-hubs-c.jsx — Workspace + Settings hubs. =========================================================================== */ const { LccPage: LccPageC, LccTabs: LccTabsC, LCC_TABS: TABS_C, Section: SectionC, Avatar: AvatarC, Bar: BarC, ENGINE_COLORS: EC } = window; /* --------------------------------------------------------------------------- WORKSPACE — Team · Checklists · Files · Timeline. --------------------------------------------------------------------------- */ function TeamRoster() { const [team, setTeam] = window.useDB("launchTeam"); const [tasks] = window.useDB("launchTasks"); const openFor = (m) => tasks.filter((t) => t.owner === (m.name || "").split(" ")[0] && t.status !== "done").length; const loadTone = { high: "#F25BA7", med: "#E0B638", low: "#10B5C7" }; const PALETTE = ["#C49800", "#B5006A", "#007A8A", "#4C1285", "#00A8BC", "#D8288C", "#7A4FBF"]; const [edit, setEdit] = React.useState(null); const save = () => { setTeam((xs) => edit.isNew ? [...xs, { ...edit }] : xs.map((m) => m.id === edit.id ? { ...edit } : m)); if (window.argtPing) window.argtPing(edit.name + " saved"); setEdit(null); }; const del = (id) => { setTeam((xs) => xs.filter((m) => m.id !== id)); setEdit(null); }; const add = () => setEdit({ id: Date.now(), name: "", role: "", load: "med", color: PALETTE[team.length % PALETTE.length], isNew: true }); return (
Admins can open Settings and edit the festival profile. Editors work the operational hubs. Viewers are read-only. Only Owner and Admin can reach this configuration surface.
Media library, contracts, stage plots, and creative. Upgrade adds 200 GB blocks.