import {get} from "./api.js"; const grid = document.getElementById("personalityGrid"); const iconPaths = { spark: '', quill: '', code: '', flask: '', "book-open": '', logic: '' }; const result = await get("/personalities"); if (result.error) { grid.textContent = result.error; } else { for (const item of result.personalities || []) { const card = document.createElement("article"); card.className = "personality-card"; card.style.setProperty("--personality-accent", item.accentColor); const icon = document.createElement("span"); icon.className = "personality-icon"; const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg"); svg.setAttribute("viewBox", "0 0 24 24"); svg.setAttribute("fill", "none"); svg.setAttribute("stroke", "currentColor"); svg.setAttribute("stroke-width", "1.65"); svg.setAttribute("stroke-linecap", "round"); svg.setAttribute("stroke-linejoin", "round"); svg.setAttribute("aria-hidden", "true"); svg.innerHTML = iconPaths[item.icon] || iconPaths.spark; icon.append(svg); icon.title = item.name; icon.setAttribute("aria-hidden", "true"); const specialization = document.createElement("p"); specialization.className = "personality-specialization"; specialization.textContent = `${item.specialization}${item.isDefault ? " · Default" : ""}`; const name = document.createElement("h2"); name.textContent = item.name; const description = document.createElement("p"); description.className = "personality-description"; description.textContent = item.description; const details = document.createElement("details"); details.className = "personality-details"; const summary = document.createElement("summary"); summary.textContent = "Learn more"; const longDescription = document.createElement("p"); longDescription.textContent = item.longDescription; const inspiration = document.createElement("p"); inspiration.className = "personality-inspiration"; inspiration.textContent = `Thematic inspiration: ${item.historicalInspiration}`; details.append(summary, longDescription, inspiration); const action = document.createElement("a"); action.className = "primary-action"; action.innerHTML = 'Start a chat'; action.setAttribute("aria-label", `Start a chat with ${item.name}, ${item.specialization}`); action.href = `/app/chats/new?personality=${encodeURIComponent(item.id)}`; const identity = document.createElement("div"); identity.className = "personality-identity"; identity.append(specialization, name); card.append(icon, identity, description, details, action); grid.append(card); } }