@perspective-ai/sdk 1.6.0 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.cjs +2 -1
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.js +2 -1
- package/dist/browser.js.map +1 -1
- package/dist/cdn/perspective.global.js +2 -1
- package/dist/cdn/perspective.global.js.map +1 -1
- package/dist/constants.cjs +1 -1
- package/dist/constants.js +1 -1
- package/dist/index.cjs +2 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/styles.ts +1 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var Perspective=(()=>{var Ue=Object.defineProperty;var $t=Object.getOwnPropertyDescriptor;var Ut=Object.getOwnPropertyNames;var Ft=Object.prototype.hasOwnProperty;var Kt=(e,r)=>{for(var t in r)Ue(e,t,{get:r[t],enumerable:!0})},Vt=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of Ut(r))!Ft.call(e,o)&&o!==t&&Ue(e,o,{get:()=>r[o],enumerable:!(n=$t(r,o))||n.enumerable});return e};var zt=e=>Vt(Ue({},"__esModule",{value:!0}),e);var Rr={};Kt(Rr,{autoInit:()=>Be,configure:()=>Ke,createChatBubble:()=>Ze,createFloatBubble:()=>xe,createFullpage:()=>Pe,createWidget:()=>Re,default:()=>Hr,destroy:()=>Pt,destroyAll:()=>Dt,getConfig:()=>Ve,init:()=>te,mount:()=>Je,openPopup:()=>Oe,openSlider:()=>_e});var mt="1.6.0",he={RESIZE:1,THEME_SYNC:2,ANON_ID:4,SCROLLBAR_STYLES:8,EMBED_AUTH:16},ut=he.RESIZE|he.THEME_SYNC|he.ANON_ID|he.SCROLLBAR_STYLES|he.EMBED_AUTH,Z={embed:"embed",embedType:"embed_type",theme:"theme"},D={primary:"brand.primary",secondary:"brand.secondary",bg:"brand.bg",text:"brand.text",darkPrimary:"brand.dark.primary",darkSecondary:"brand.dark.secondary",darkBg:"brand.dark.bg",darkText:"brand.dark.text"},Fe=new Set([...Object.values(Z),...Object.values(D)]),x={widget:"data-perspective-widget",popup:"data-perspective-popup",slider:"data-perspective-slider",float:"data-perspective-float",chat:"data-perspective-chat",fullpage:"data-perspective-fullpage",params:"data-perspective-params",brand:"data-perspective-brand",brandDark:"data-perspective-brand-dark",theme:"data-perspective-theme",noStyle:"data-perspective-no-style",autoOpen:"data-perspective-auto-open",showOnce:"data-perspective-show-once",disableClose:"data-perspective-disable-close",launcherIcon:"data-perspective-launcher-icon",launcherStyle:"data-perspective-launcher-style",launcherClass:"data-perspective-launcher-class"},k={init:"perspective:init",ready:"perspective:ready",resize:"perspective:resize",submit:"perspective:submit",close:"perspective:close",error:"perspective:error",redirect:"perspective:redirect",anonId:"perspective:anon-id",injectStyles:"perspective:inject-styles",themeChange:"perspective:theme-change",authRequest:"perspective:auth-request",authSignout:"perspective:auth-signout",authComplete:"perspective:auth-complete",authCancelled:"perspective:auth-cancelled",popupAuthComplete:"perspective:popup-auth-complete",requestScrollbarStyles:"perspective:request-scrollbar-styles"},ft={SDK_OUTDATED:"SDK_OUTDATED",INVALID_RESEARCH:"INVALID_RESEARCH",UNKNOWN:"UNKNOWN"},ht={true:"true",false:"false"},L={dark:"dark",light:"light",system:"system"};var Y={anonId:"perspective-anon-id",triggerShown:"perspective-trigger-shown",embedAuthToken:"perspective-embed-auth-token",embedState:"perspective-embed-state"};var jt="https://getperspective.ai",be={};function Ke(e){be={...be,...e}}function Ve(){return{...be}}function g(){return typeof window<"u"&&typeof document<"u"}function gt(e){try{return new URL(e).origin}catch{return e}}function M(e){if(e)return gt(e);if(be.host)return gt(be.host);if(g()){let r=bt();if(r)return r}return jt}var ge=null;function bt(){if(ge!==null)return ge;if(!g())return null;let e=document.currentScript;if(e!=null&&e.src)try{return ge=new URL(e.src).origin,ge}catch{}return ge="",null}g()&&bt();var ne={primaryColor:"#7c3aed",textColor:"#ffffff",darkPrimaryColor:"#a78bfa",darkTextColor:"#ffffff"},Gt=3e3,ze=new Map,Ie=new Map;function Yt(e,r){return`${M(r)}::${e}`}async function vt(e,r){let t=Yt(e,r);if(ze.has(t))return ze.get(t);if(Ie.has(t))return Ie.get(t);let n=(async()=>{try{let o=M(r),i=new AbortController,s=setTimeout(()=>i.abort(),Gt),a=await fetch(`${o}/api/v1/embed/config/${e}`,{signal:i.signal});if(clearTimeout(s),!a.ok)return ne;let l=await a.json();return ze.set(t,l),l}catch{return ne}finally{Ie.delete(t)}})();return Ie.set(t,n),n}function yt(e){let r=e.trim();if(r.startsWith("timeout:")){let t=parseInt(r.slice(8),10);if(isNaN(t)||t<0)throw new Error(`Invalid timeout delay: "${e}"`);return{type:"timeout",delay:t}}if(r==="timeout")return{type:"timeout",delay:5e3};if(r==="exit-intent")return{type:"exit-intent"};throw new Error(`Unknown trigger type: "${e}". Expected "timeout:<ms>" or "exit-intent".`)}function je(e,r){if(e.type==="timeout"){let n=setTimeout(r,e.delay);return()=>clearTimeout(n)}if(e.type==="exit-intent"){let n=o=>{o.clientY<=0&&(r(),document.removeEventListener("mouseleave",n))};return document.addEventListener("mouseleave",n),()=>document.removeEventListener("mouseleave",n)}let t=e;throw new Error(`Unknown trigger type: ${t.type}`)}function Et(e){return`${Y.triggerShown}:${e}`}function wt(e){if(!e)return"session";let r=e.trim();return r==="visitor"?"visitor":r==="false"?!1:"session"}function Ge(e,r){if(r===!1)return!0;try{return(r==="visitor"?localStorage:sessionStorage).getItem(Et(e))===null}catch{return!0}}function Ye(e,r){if(r!==!1)try{(r==="visitor"?localStorage:sessionStorage).setItem(Et(e),"1")}catch{}}function O(...e){return e.map(r=>(r||"").split(" ")).flat().filter(Boolean).join(" ")}function _(e){return e&&e!==L.system?`perspective-${e}-theme`:void 0}function X(e){return e===L.dark?!0:e===L.light||!g()?!1:window.matchMedia("(prefers-color-scheme: dark)").matches}function xt(e){return X(e)?"dark":"light"}function Ct(e){let r=e.trim();if(!r)return;let t=r.startsWith("#")?r:`#${r}`;if(/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(t))return t;let n=t.slice(1).replace(/[^0-9a-fA-F]/g,"");if(n.length>=6)return`#${n.slice(0,6)}`;if(n.length>=3)return`#${n.slice(0,3)}`}function Wt(e){if(!e||typeof e!="string")return!1;if(e.startsWith("/")&&!e.startsWith("//")||e.startsWith("?")||e.startsWith("#"))return!0;try{let r=new URL(e,window.location.origin),t=r.protocol.toLowerCase(),n=r.hostname.toLowerCase();return t==="https:"||t==="http:"&&(n==="localhost"||n==="127.0.0.1")}catch{return!1}}function qt(e){var r;try{let t=e.split(".");if(t.length!==3)return null;let n=t[1].replace(/-/g,"+").replace(/_/g,"/");return((r=JSON.parse(atob(n)).data)==null?void 0:r.expiresAt)??null}catch{return null}}function qe(e){return`${Y.embedAuthToken}:${e}`}function Qt(e){if(!g())return null;try{let r=qe(e),t=localStorage.getItem(r);if(!t)return null;let n=qt(t);return n&&n>Date.now()?t:(localStorage.removeItem(r),null)}catch{return null}}function Zt(e,r){if(g())try{localStorage.setItem(qe(e),r)}catch{}}function Xt(e){if(g())try{localStorage.removeItem(qe(e))}catch{}}function Jt(){if(!g())return"";try{let e=localStorage.getItem(Y.anonId);return e||(e=crypto.randomUUID(),localStorage.setItem(Y.anonId,e)),e}catch{return crypto.randomUUID()}}function er(){if(!g())return{};let e={},r=new URLSearchParams(window.location.search);for(let[t,n]of r.entries())Fe.has(t)||(e[t]=n);return e}function tr(e,r,t,n,o,i){let s=new URL(`${t}/interview/${e}`);if(s.searchParams.set(Z.embed,ht.true),s.searchParams.set(Z.embedType,r==="float"?"chat":r),g()){let c=window.matchMedia("(prefers-color-scheme: dark)").matches;i&&i!==L.system?s.searchParams.set(Z.theme,i):s.searchParams.set(Z.theme,c?L.dark:L.light)}else s.searchParams.set(Z.theme,i||L.light);let a=er();for(let[c,m]of Object.entries(a))s.searchParams.set(c,m);let l=(c,m)=>{if(!m)return;let f=Ct(m);f&&s.searchParams.set(c,f)};if(o!=null&&o.light&&(l(D.primary,o.light.primary),l(D.secondary,o.light.secondary),l(D.bg,o.light.bg),l(D.text,o.light.text)),o!=null&&o.dark&&(l(D.darkPrimary,o.dark.primary),l(D.darkSecondary,o.dark.secondary),l(D.darkBg,o.dark.bg),l(D.darkText,o.dark.text)),n)for(let[c,m]of Object.entries(n))Fe.has(c)||s.searchParams.set(c,m);return s.toString()}var rr=new Set(["hideProgress","hideGreeting","hideBranding","enableFullScreen"]);function N(e){let r=e==null?void 0:e.appearance;if(!r)return;let t={};return r.hideProgress!==void 0&&(t.hideProgress=r.hideProgress?"true":"false"),r.hideGreeting!==void 0&&(t.hideGreeting=r.hideGreeting?"true":"false"),r.hideBranding!==void 0&&(t.hideBranding=r.hideBranding?"true":"false"),r.enableFullScreen!==void 0&&(t.enableFullScreen=r.enableFullScreen?"true":"false"),Object.keys(t).length>0?t:void 0}function B(e,r,t,n,o,i,s){if(!g())return{};let a=document.createElement("iframe");if(a.src=tr(e,r,t,n,o,i),s&&Object.keys(s).length>0){let l=new URL(a.src);for(let[c,m]of Object.entries(s))rr.has(c)&&l.searchParams.set(c,m);a.src=l.toString()}return a.setAttribute("allow","microphone; camera"),a.setAttribute("allowfullscreen","true"),a.setAttribute("sandbox","allow-scripts allow-same-origin allow-forms allow-popups allow-modals allow-top-navigation"),a.setAttribute("data-perspective","true"),a.style.cssText="border:none;",a}function $(e,r,t,n,o){if(!g())return()=>{};let i=null,s=a=>{var l,c,m,f,d,b;if(a.origin===n&&a.source===t.contentWindow&&typeof((l=a.data)==null?void 0:l.type)=="string"&&a.data.type.startsWith("perspective:")&&a.data.researchId===e)switch(a.data.type){case k.ready:{Qe(t,n),J(t,n,{type:k.anonId,anonId:Jt()}),J(t,n,{type:k.init,version:mt,features:ut,researchId:e,hasCloseButton:(o==null?void 0:o.hasCloseButton)??!1});let p=Qt(e);p&&(J(t,n,{type:k.authComplete,token:p,researchId:e}),(c=r.onAuth)==null||c.call(r,{researchId:e,token:p})),(m=r.onReady)==null||m.call(r);break}case k.resize:o!=null&&o.skipResize||(t.style.height=`${a.data.height}px`);break;case k.submit:(f=r.onSubmit)==null||f.call(r,{researchId:e});break;case k.close:(d=r.onClose)==null||d.call(r);break;case k.error:{let p=new Error(a.data.error);p.code=a.data.code||"UNKNOWN",p.code===ft.SDK_OUTDATED?console.error("[Perspective] SDK version outdated. Please update @perspective-ai/sdk to the latest version.",p.message):console.error("[Perspective] Embed error:",p.message),(b=r.onError)==null||b.call(r,p);break}case k.redirect:{let p=a.data.url;if(!Wt(p)){console.warn("[Perspective] Blocked unsafe redirect URL:",p);return}r.onNavigate?r.onNavigate(p):window.location.href=p;break}case k.authRequest:{let{authUrl:p}=a.data;if(!p||typeof p!="string")return;let u=new URL(n).origin;try{if(new URL(p).origin!==u){console.warn("[Perspective] Blocked auth URL with unexpected origin:",p);return}}catch{console.warn("[Perspective] Blocked malformed auth URL:",p);return}i==null||i();let v=`${p}&return_url=${encodeURIComponent(window.location.href)}`,C=500,I=700,A=(window.screen.width-C)/2+(window.screenLeft??window.screenX??0),H=(window.screen.height-I)/2+(window.screenTop??window.screenY??0),E=`width=${C},height=${I},top=${H},left=${A},menubar=no,toolbar=no,location=no,status=no,scrollbars=yes`,h=window.open(v,"perspective-auth",E)??window.open(v,"_blank"),Ae=R=>{var Q;Zt(e,R),J(t,n,{type:k.authComplete,token:R,researchId:e}),(Q=r.onAuth)==null||Q.call(r,{researchId:e,token:R})},ce=()=>{clearInterval($e),window.removeEventListener("message",pe),i=null},pe=R=>{var Le,Me;if(R.source!==h||((Le=R.data)==null?void 0:Le.type)!==k.popupAuthComplete||R.origin!==u)return;let Q=(Me=R.data)==null?void 0:Me.token;Q&&Ae(Q),ce()};window.addEventListener("message",pe);let $e=h?setInterval(()=>{h.closed&&(ce(),J(t,n,{type:k.authCancelled,researchId:e}))},500):void 0;i=ce;break}case k.authSignout:{Xt(e);try{let p=new URL(n).origin,u=window.open(`${p}/embed-auth/signout`,"perspective-signout","width=1,height=1,top=0,left=0");u&&setTimeout(()=>{try{u.close()}catch{}},3e3)}catch{}break}}};return window.addEventListener("message",s),()=>{window.removeEventListener("message",s),i==null||i()}}function J(e,r,t){var n;g()&&((n=e.contentWindow)==null||n.postMessage(t,r))}var ve=new Map;function U(e,r){return ve.set(e,r),()=>{ve.delete(e),ve.size===0&&lr()}}function nr(){if(!g())return"";let r=window.matchMedia("(prefers-color-scheme: dark)").matches?"hsl(217 33% 17%)":"hsl(240 6% 90%)";return`
|
|
1
|
+
"use strict";var Perspective=(()=>{var Ue=Object.defineProperty;var $t=Object.getOwnPropertyDescriptor;var Ut=Object.getOwnPropertyNames;var Ft=Object.prototype.hasOwnProperty;var Kt=(e,r)=>{for(var t in r)Ue(e,t,{get:r[t],enumerable:!0})},Vt=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of Ut(r))!Ft.call(e,o)&&o!==t&&Ue(e,o,{get:()=>r[o],enumerable:!(n=$t(r,o))||n.enumerable});return e};var zt=e=>Vt(Ue({},"__esModule",{value:!0}),e);var Rr={};Kt(Rr,{autoInit:()=>Be,configure:()=>Ke,createChatBubble:()=>Ze,createFloatBubble:()=>xe,createFullpage:()=>Pe,createWidget:()=>Re,default:()=>Hr,destroy:()=>Pt,destroyAll:()=>Dt,getConfig:()=>Ve,init:()=>te,mount:()=>Je,openPopup:()=>Oe,openSlider:()=>_e});var mt="1.6.1",he={RESIZE:1,THEME_SYNC:2,ANON_ID:4,SCROLLBAR_STYLES:8,EMBED_AUTH:16},ut=he.RESIZE|he.THEME_SYNC|he.ANON_ID|he.SCROLLBAR_STYLES|he.EMBED_AUTH,Z={embed:"embed",embedType:"embed_type",theme:"theme"},D={primary:"brand.primary",secondary:"brand.secondary",bg:"brand.bg",text:"brand.text",darkPrimary:"brand.dark.primary",darkSecondary:"brand.dark.secondary",darkBg:"brand.dark.bg",darkText:"brand.dark.text"},Fe=new Set([...Object.values(Z),...Object.values(D)]),x={widget:"data-perspective-widget",popup:"data-perspective-popup",slider:"data-perspective-slider",float:"data-perspective-float",chat:"data-perspective-chat",fullpage:"data-perspective-fullpage",params:"data-perspective-params",brand:"data-perspective-brand",brandDark:"data-perspective-brand-dark",theme:"data-perspective-theme",noStyle:"data-perspective-no-style",autoOpen:"data-perspective-auto-open",showOnce:"data-perspective-show-once",disableClose:"data-perspective-disable-close",launcherIcon:"data-perspective-launcher-icon",launcherStyle:"data-perspective-launcher-style",launcherClass:"data-perspective-launcher-class"},k={init:"perspective:init",ready:"perspective:ready",resize:"perspective:resize",submit:"perspective:submit",close:"perspective:close",error:"perspective:error",redirect:"perspective:redirect",anonId:"perspective:anon-id",injectStyles:"perspective:inject-styles",themeChange:"perspective:theme-change",authRequest:"perspective:auth-request",authSignout:"perspective:auth-signout",authComplete:"perspective:auth-complete",authCancelled:"perspective:auth-cancelled",popupAuthComplete:"perspective:popup-auth-complete",requestScrollbarStyles:"perspective:request-scrollbar-styles"},ft={SDK_OUTDATED:"SDK_OUTDATED",INVALID_RESEARCH:"INVALID_RESEARCH",UNKNOWN:"UNKNOWN"},ht={true:"true",false:"false"},L={dark:"dark",light:"light",system:"system"};var Y={anonId:"perspective-anon-id",triggerShown:"perspective-trigger-shown",embedAuthToken:"perspective-embed-auth-token",embedState:"perspective-embed-state"};var jt="https://getperspective.ai",be={};function Ke(e){be={...be,...e}}function Ve(){return{...be}}function g(){return typeof window<"u"&&typeof document<"u"}function gt(e){try{return new URL(e).origin}catch{return e}}function M(e){if(e)return gt(e);if(be.host)return gt(be.host);if(g()){let r=bt();if(r)return r}return jt}var ge=null;function bt(){if(ge!==null)return ge;if(!g())return null;let e=document.currentScript;if(e!=null&&e.src)try{return ge=new URL(e.src).origin,ge}catch{}return ge="",null}g()&&bt();var ne={primaryColor:"#7c3aed",textColor:"#ffffff",darkPrimaryColor:"#a78bfa",darkTextColor:"#ffffff"},Gt=3e3,ze=new Map,Ie=new Map;function Yt(e,r){return`${M(r)}::${e}`}async function vt(e,r){let t=Yt(e,r);if(ze.has(t))return ze.get(t);if(Ie.has(t))return Ie.get(t);let n=(async()=>{try{let o=M(r),i=new AbortController,s=setTimeout(()=>i.abort(),Gt),a=await fetch(`${o}/api/v1/embed/config/${e}`,{signal:i.signal});if(clearTimeout(s),!a.ok)return ne;let l=await a.json();return ze.set(t,l),l}catch{return ne}finally{Ie.delete(t)}})();return Ie.set(t,n),n}function yt(e){let r=e.trim();if(r.startsWith("timeout:")){let t=parseInt(r.slice(8),10);if(isNaN(t)||t<0)throw new Error(`Invalid timeout delay: "${e}"`);return{type:"timeout",delay:t}}if(r==="timeout")return{type:"timeout",delay:5e3};if(r==="exit-intent")return{type:"exit-intent"};throw new Error(`Unknown trigger type: "${e}". Expected "timeout:<ms>" or "exit-intent".`)}function je(e,r){if(e.type==="timeout"){let n=setTimeout(r,e.delay);return()=>clearTimeout(n)}if(e.type==="exit-intent"){let n=o=>{o.clientY<=0&&(r(),document.removeEventListener("mouseleave",n))};return document.addEventListener("mouseleave",n),()=>document.removeEventListener("mouseleave",n)}let t=e;throw new Error(`Unknown trigger type: ${t.type}`)}function Et(e){return`${Y.triggerShown}:${e}`}function wt(e){if(!e)return"session";let r=e.trim();return r==="visitor"?"visitor":r==="false"?!1:"session"}function Ge(e,r){if(r===!1)return!0;try{return(r==="visitor"?localStorage:sessionStorage).getItem(Et(e))===null}catch{return!0}}function Ye(e,r){if(r!==!1)try{(r==="visitor"?localStorage:sessionStorage).setItem(Et(e),"1")}catch{}}function O(...e){return e.map(r=>(r||"").split(" ")).flat().filter(Boolean).join(" ")}function _(e){return e&&e!==L.system?`perspective-${e}-theme`:void 0}function X(e){return e===L.dark?!0:e===L.light||!g()?!1:window.matchMedia("(prefers-color-scheme: dark)").matches}function xt(e){return X(e)?"dark":"light"}function Ct(e){let r=e.trim();if(!r)return;let t=r.startsWith("#")?r:`#${r}`;if(/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(t))return t;let n=t.slice(1).replace(/[^0-9a-fA-F]/g,"");if(n.length>=6)return`#${n.slice(0,6)}`;if(n.length>=3)return`#${n.slice(0,3)}`}function Wt(e){if(!e||typeof e!="string")return!1;if(e.startsWith("/")&&!e.startsWith("//")||e.startsWith("?")||e.startsWith("#"))return!0;try{let r=new URL(e,window.location.origin),t=r.protocol.toLowerCase(),n=r.hostname.toLowerCase();return t==="https:"||t==="http:"&&(n==="localhost"||n==="127.0.0.1")}catch{return!1}}function qt(e){var r;try{let t=e.split(".");if(t.length!==3)return null;let n=t[1].replace(/-/g,"+").replace(/_/g,"/");return((r=JSON.parse(atob(n)).data)==null?void 0:r.expiresAt)??null}catch{return null}}function qe(e){return`${Y.embedAuthToken}:${e}`}function Qt(e){if(!g())return null;try{let r=qe(e),t=localStorage.getItem(r);if(!t)return null;let n=qt(t);return n&&n>Date.now()?t:(localStorage.removeItem(r),null)}catch{return null}}function Zt(e,r){if(g())try{localStorage.setItem(qe(e),r)}catch{}}function Xt(e){if(g())try{localStorage.removeItem(qe(e))}catch{}}function Jt(){if(!g())return"";try{let e=localStorage.getItem(Y.anonId);return e||(e=crypto.randomUUID(),localStorage.setItem(Y.anonId,e)),e}catch{return crypto.randomUUID()}}function er(){if(!g())return{};let e={},r=new URLSearchParams(window.location.search);for(let[t,n]of r.entries())Fe.has(t)||(e[t]=n);return e}function tr(e,r,t,n,o,i){let s=new URL(`${t}/interview/${e}`);if(s.searchParams.set(Z.embed,ht.true),s.searchParams.set(Z.embedType,r==="float"?"chat":r),g()){let c=window.matchMedia("(prefers-color-scheme: dark)").matches;i&&i!==L.system?s.searchParams.set(Z.theme,i):s.searchParams.set(Z.theme,c?L.dark:L.light)}else s.searchParams.set(Z.theme,i||L.light);let a=er();for(let[c,m]of Object.entries(a))s.searchParams.set(c,m);let l=(c,m)=>{if(!m)return;let f=Ct(m);f&&s.searchParams.set(c,f)};if(o!=null&&o.light&&(l(D.primary,o.light.primary),l(D.secondary,o.light.secondary),l(D.bg,o.light.bg),l(D.text,o.light.text)),o!=null&&o.dark&&(l(D.darkPrimary,o.dark.primary),l(D.darkSecondary,o.dark.secondary),l(D.darkBg,o.dark.bg),l(D.darkText,o.dark.text)),n)for(let[c,m]of Object.entries(n))Fe.has(c)||s.searchParams.set(c,m);return s.toString()}var rr=new Set(["hideProgress","hideGreeting","hideBranding","enableFullScreen"]);function N(e){let r=e==null?void 0:e.appearance;if(!r)return;let t={};return r.hideProgress!==void 0&&(t.hideProgress=r.hideProgress?"true":"false"),r.hideGreeting!==void 0&&(t.hideGreeting=r.hideGreeting?"true":"false"),r.hideBranding!==void 0&&(t.hideBranding=r.hideBranding?"true":"false"),r.enableFullScreen!==void 0&&(t.enableFullScreen=r.enableFullScreen?"true":"false"),Object.keys(t).length>0?t:void 0}function B(e,r,t,n,o,i,s){if(!g())return{};let a=document.createElement("iframe");if(a.src=tr(e,r,t,n,o,i),s&&Object.keys(s).length>0){let l=new URL(a.src);for(let[c,m]of Object.entries(s))rr.has(c)&&l.searchParams.set(c,m);a.src=l.toString()}return a.setAttribute("allow","microphone; camera"),a.setAttribute("allowfullscreen","true"),a.setAttribute("sandbox","allow-scripts allow-same-origin allow-forms allow-popups allow-modals allow-top-navigation"),a.setAttribute("data-perspective","true"),a.style.cssText="border:none;",a}function $(e,r,t,n,o){if(!g())return()=>{};let i=null,s=a=>{var l,c,m,f,d,b;if(a.origin===n&&a.source===t.contentWindow&&typeof((l=a.data)==null?void 0:l.type)=="string"&&a.data.type.startsWith("perspective:")&&a.data.researchId===e)switch(a.data.type){case k.ready:{Qe(t,n),J(t,n,{type:k.anonId,anonId:Jt()}),J(t,n,{type:k.init,version:mt,features:ut,researchId:e,hasCloseButton:(o==null?void 0:o.hasCloseButton)??!1});let p=Qt(e);p&&(J(t,n,{type:k.authComplete,token:p,researchId:e}),(c=r.onAuth)==null||c.call(r,{researchId:e,token:p})),(m=r.onReady)==null||m.call(r);break}case k.resize:o!=null&&o.skipResize||(t.style.height=`${a.data.height}px`);break;case k.submit:(f=r.onSubmit)==null||f.call(r,{researchId:e});break;case k.close:(d=r.onClose)==null||d.call(r);break;case k.error:{let p=new Error(a.data.error);p.code=a.data.code||"UNKNOWN",p.code===ft.SDK_OUTDATED?console.error("[Perspective] SDK version outdated. Please update @perspective-ai/sdk to the latest version.",p.message):console.error("[Perspective] Embed error:",p.message),(b=r.onError)==null||b.call(r,p);break}case k.redirect:{let p=a.data.url;if(!Wt(p)){console.warn("[Perspective] Blocked unsafe redirect URL:",p);return}r.onNavigate?r.onNavigate(p):window.location.href=p;break}case k.authRequest:{let{authUrl:p}=a.data;if(!p||typeof p!="string")return;let u=new URL(n).origin;try{if(new URL(p).origin!==u){console.warn("[Perspective] Blocked auth URL with unexpected origin:",p);return}}catch{console.warn("[Perspective] Blocked malformed auth URL:",p);return}i==null||i();let v=`${p}&return_url=${encodeURIComponent(window.location.href)}`,C=500,I=700,A=(window.screen.width-C)/2+(window.screenLeft??window.screenX??0),H=(window.screen.height-I)/2+(window.screenTop??window.screenY??0),E=`width=${C},height=${I},top=${H},left=${A},menubar=no,toolbar=no,location=no,status=no,scrollbars=yes`,h=window.open(v,"perspective-auth",E)??window.open(v,"_blank"),Ae=R=>{var Q;Zt(e,R),J(t,n,{type:k.authComplete,token:R,researchId:e}),(Q=r.onAuth)==null||Q.call(r,{researchId:e,token:R})},ce=()=>{clearInterval($e),window.removeEventListener("message",pe),i=null},pe=R=>{var Le,Me;if(R.source!==h||((Le=R.data)==null?void 0:Le.type)!==k.popupAuthComplete||R.origin!==u)return;let Q=(Me=R.data)==null?void 0:Me.token;Q&&Ae(Q),ce()};window.addEventListener("message",pe);let $e=h?setInterval(()=>{h.closed&&(ce(),J(t,n,{type:k.authCancelled,researchId:e}))},500):void 0;i=ce;break}case k.authSignout:{Xt(e);try{let p=new URL(n).origin,u=window.open(`${p}/embed-auth/signout`,"perspective-signout","width=1,height=1,top=0,left=0");u&&setTimeout(()=>{try{u.close()}catch{}},3e3)}catch{}break}}};return window.addEventListener("message",s),()=>{window.removeEventListener("message",s),i==null||i()}}function J(e,r,t){var n;g()&&((n=e.contentWindow)==null||n.postMessage(t,r))}var ve=new Map;function U(e,r){return ve.set(e,r),()=>{ve.delete(e),ve.size===0&&lr()}}function nr(){if(!g())return"";let r=window.matchMedia("(prefers-color-scheme: dark)").matches?"hsl(217 33% 17%)":"hsl(240 6% 90%)";return`
|
|
2
2
|
* {
|
|
3
3
|
scrollbar-width: thin;
|
|
4
4
|
scrollbar-color: ${r} transparent;
|
|
@@ -272,6 +272,7 @@
|
|
|
272
272
|
right: 20px;
|
|
273
273
|
width: 58px;
|
|
274
274
|
height: 58px;
|
|
275
|
+
padding: 0;
|
|
275
276
|
border-radius: 50%;
|
|
276
277
|
background: var(--perspective-float-bg, var(--perspective-chat-bg, #7629C8));
|
|
277
278
|
color: white;
|