/*! * Khazna AI Assistant — embeddable widget * Usage (LibGuides "Media / Widget" box, or any page): *
* * Options (data-* on the div): * data-api backend base URL (default: origin this script was loaded from) * data-scope initial tab: all | publications | persons | organisations | datasets * data-height box height in px (default 680; "auto" = grow with page, used by the Space's own page) * data-scopes comma list of tabs to show (default all five) * data-model gpt | claude */ (function () { "use strict"; var SCRIPT = document.currentScript; var DEFAULT_API = SCRIPT ? new URL(SCRIPT.src, location.href).origin : ""; var SCOPE_LABELS = { all: "Everything", publications: "Publications", theses: "Theses", persons: "Profiles", organisations: "Departments", projects: "Projects", equipment: "Equipment", collaborations: "Collaborations", datasets: "Datasets" }; var EXAMPLES = { all: ["KU research on hydrogen storage since 2022", "Who at KU works on agricultural robotics?", "How do I submit my thesis to Khazna?"], publications: ["Machine learning for corrosion prediction", "KU journal articles on 6G networks", "How many KU publications on COVID-19?"], theses: ["PhD theses on solar-powered desalination", "Master's theses on cybersecurity", "Theses supervised in robotics since 2022"], persons: ["Experts in lithium-ion batteries", "Who works on Arabic natural language processing?", "Find a supervisor for 6G wireless research"], organisations: ["Research centres working on space technology", "Department of Mechanical Engineering", "Labs focused on water and environment"], projects: ["Funded projects on water security", "Research projects on autonomous vehicles", "Projects funded by ASPIRE on AI"], equipment: ["Which labs have an electron microscope?", "Mass spectrometry facilities", "3D printing equipment"], datasets: ["Datasets on air quality in the UAE", "Seismic or geophysics datasets", "Medical imaging datasets"] }; var CSS = [ ".khz{--b:#0b3a63;--a:#b98a2e;--ink:#1b2430;--mu:#5d6876;--ln:#e1dfd8;--bg:#f7f6f2;--pn:#fff;--oa:#1f7a4d;--ch:#eef2f6;", "font:15px/1.55 'IBM Plex Sans',-apple-system,'Segoe UI',Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg);", "border:1px solid var(--ln);border-radius:12px;display:flex;flex-direction:column;overflow:hidden;text-align:left;box-sizing:border-box}", ".khz *,.khz *:before,.khz *:after{box-sizing:border-box}", ".khz p,.khz ul{margin:0 0 8px}.khz ul{padding-left:20px}.khz li{margin:2px 0}", ".khz a{color:var(--b)}", ".khz button{font:inherit;line-height:1.3;cursor:pointer;text-transform:none;letter-spacing:normal;box-shadow:none}", ".khz-hd{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--pn);border-bottom:1px solid var(--ln)}", ".khz-mk{flex:0 0 32px;height:32px;border-radius:8px;background:var(--b);color:#fff;display:flex;align-items:center;justify-content:center;font:600 16px Georgia,serif}", ".khz-hd b{display:block;font-size:15px}.khz-hd small{color:var(--mu);font-size:12px}", ".khz-tabs{display:flex;gap:4px;padding:8px 10px 0;background:var(--pn);border-bottom:1px solid var(--ln);overflow-x:auto;scrollbar-width:none}", ".khz-tab{background:none;border:0;border-bottom:2px solid transparent;color:var(--mu);padding:7px 10px;white-space:nowrap;border-radius:0}", ".khz-tab[aria-selected=true]{color:var(--b);border-bottom-color:var(--b);font-weight:600}", ".khz-log{flex:1;overflow-y:auto;padding:14px}", ".khz-intro{color:var(--mu);margin:0 0 12px}", ".khz-ex{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}", ".khz-ex button{background:var(--pn);border:1px solid var(--ln);color:var(--ink);border-radius:999px;padding:5px 11px;font-size:13px}", ".khz-ex button:hover{border-color:var(--b)}", ".khz-m{margin:12px 0}.khz-u{display:flex;justify-content:flex-end}", ".khz-u span{background:var(--b);color:#fff;border-radius:14px 14px 4px 14px;padding:8px 13px;max-width:85%;white-space:pre-wrap}", ".khz-ans{background:var(--pn);border:1px solid var(--ln);border-radius:4px 14px 14px 14px;padding:12px 14px}", ".khz-ans p:last-child,.khz-ans ul:last-child{margin-bottom:0}", ".khz-wait{color:var(--mu);font-style:italic}", ".khz-cite{text-decoration:none;font-weight:600;font-size:11px;vertical-align:super;margin-left:1px}", ".khz-sr{margin:7px 2px 0;font-size:12px;color:var(--mu);display:flex;flex-wrap:wrap;gap:5px;align-items:center}", ".khz-chip{background:var(--ch);border-radius:5px;padding:1px 7px;font:12px ui-monospace,Menlo,Consolas,monospace;color:var(--ink)}", ".khz-cards{display:grid;gap:8px;margin-top:9px}", ".khz-c{background:var(--pn);border:1px solid var(--ln);border-left:3px solid var(--b);border-radius:8px;padding:10px 13px}", ".khz-c.p{border-left-color:var(--a)}.khz-c.o{border-left-color:#5b6b7d}.khz-c.d{border-left-color:var(--oa)}", ".khz-c.fl{outline:2px solid var(--a)}", ".khz-c .t{font-weight:600;color:var(--ink);text-decoration:none}.khz-c .t:hover{text-decoration:underline}", ".khz-c .n{color:var(--mu);font-weight:500;margin-right:5px}", ".khz-c .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--mu);margin-left:6px}", ".khz-c .mt{color:var(--mu);font-size:13px;margin-top:2px}.khz-c .mt b{color:var(--ink);font-weight:500}", ".khz-c .ln{margin-top:5px;display:flex;gap:10px;flex-wrap:wrap;font-size:12.5px}", ".khz-bd{font-size:11px;border-radius:4px;padding:0 6px;border:1px solid currentColor;color:var(--oa)}", ".khz-more{background:none;border:1px dashed var(--ln);color:var(--mu);border-radius:8px;padding:7px;width:100%}", ".khz-fb{margin-top:6px;font-size:12px;color:var(--mu);display:flex;gap:6px;align-items:center}", ".khz-fb button{background:none;border:1px solid var(--ln);border-radius:6px;padding:1px 8px;color:var(--mu)}", ".khz-ft{border-top:1px solid var(--ln);background:var(--pn);padding:10px}", ".khz-f{display:flex;gap:8px}", ".khz-f textarea{flex:1;resize:none;border:1px solid var(--ln);background:var(--bg);color:var(--ink);border-radius:10px;padding:9px 11px;font:inherit;min-height:42px;max-height:120px;margin:0}", ".khz-f textarea:focus{outline:2px solid var(--b);outline-offset:-1px}", ".khz-f button{background:var(--b);color:#fff;border:0;border-radius:10px;padding:0 16px;font-weight:600}", ".khz-f button:disabled{opacity:.5;cursor:default}", ".khz-nt{color:var(--mu);font-size:11px;margin:6px 2px 0}", ".khz-nt a{color:inherit}", "@media (max-width:520px){.khz-u span{max-width:94%}.khz-hd small{display:none}}" ].join(""); function esc(s) { return String(s == null ? "" : s).replace(/[&<>"']/g, function (c) { return { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }[c]; }); } function safeUrl(u) { return /^https?:\/\//i.test(u || "") ? esc(u) : "#"; } function md(text, t) { var h = esc(text) .replace(/\*\*(.+?)\*\*/g, "$1") .replace(/(https?:\/\/[^\s<)]+)/g, '$1') .replace(/\[(\d+(?:\s*,\s*\d+)*)\]/g, function (m, g) { return g.split(",").map(function (n) { n = n.trim(); return '[' + n + "]"; }).join(""); }); var out = [], list = false; h.split("\n").forEach(function (line) { var l = line.trim(); if (/^[-•*]\s+/.test(l)) { if (!list) { out.push("" + l + "
"); }); if (list) out.push(""); return out.join(""); } function card(r, t) { var id = ' data-id="' + t + "-" + r.n + '"', num = r.n ? '' + r.n + "" : ""; var link = ''; if (r.kind === "person") { var units = (r.organisations || []).map(function (o) { return o.name; }).filter(Boolean).join("; "); var ev = (r.evidence || []).map(function (e) { return '' + esc(e.title) + "" + (e.year ? " (" + e.year + ")" : ""); }).join("I turn your question into searches on Khazna and summarise what KU has published, who works on it, and where, citing every claim.
AI-generated from public Khazna records; answers may be incomplete. Need help? KU Library Research Support