@runtypelabs/persona 4.7.0 → 4.8.0
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/animations/glyph-cycle.cjs +2 -2
- package/dist/animations/glyph-cycle.d.cts +1 -1
- package/dist/animations/glyph-cycle.d.ts +1 -1
- package/dist/animations/glyph-cycle.js +2 -2
- package/dist/animations/{types-CSmiKRVa.d.cts → types-BsZtXPKK.d.cts} +43 -3
- package/dist/animations/{types-CSmiKRVa.d.ts → types-BsZtXPKK.d.ts} +43 -3
- package/dist/animations/wipe.cjs +2 -2
- package/dist/animations/wipe.d.cts +1 -1
- package/dist/animations/wipe.d.ts +1 -1
- package/dist/chunk-5EIIHQLQ.js +1 -0
- package/dist/codegen.cjs +12 -12
- package/dist/codegen.js +14 -14
- package/dist/index.cjs +91 -68
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +877 -172
- package/dist/index.d.ts +877 -172
- package/dist/index.global.js +81 -57
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +91 -68
- package/dist/index.js.map +1 -1
- package/dist/install.global.js +1 -1
- package/dist/install.global.js.map +1 -1
- package/dist/launcher.global.js +3 -2
- package/dist/launcher.global.js.map +1 -1
- package/dist/markdown-parsers.js +24 -24
- package/dist/plugin-kit.cjs +1 -1
- package/dist/plugin-kit.js +1 -1
- package/dist/runtype-tts-entry-UJAEF7NZ.js +1 -0
- package/dist/runtype-tts.js +1 -1
- package/dist/session-reconnect-JKIJBHS5.js +1 -0
- package/dist/smart-dom-reader.cjs +17 -17
- package/dist/smart-dom-reader.d.cts +753 -15
- package/dist/smart-dom-reader.d.ts +753 -15
- package/dist/smart-dom-reader.js +17 -17
- package/dist/testing.cjs +3 -3
- package/dist/testing.js +3 -3
- package/dist/theme-editor-preview.cjs +81 -58
- package/dist/theme-editor-preview.d.cts +761 -15
- package/dist/theme-editor-preview.d.ts +761 -15
- package/dist/theme-editor-preview.js +81 -58
- package/dist/theme-editor.cjs +6 -6
- package/dist/theme-editor.d.cts +753 -15
- package/dist/theme-editor.d.ts +753 -15
- package/dist/theme-editor.js +10 -10
- package/dist/theme-reference.cjs +1 -1
- package/dist/theme-reference.d.cts +74 -0
- package/dist/theme-reference.d.ts +74 -0
- package/dist/theme-reference.js +1 -1
- package/dist/voice-worklet-player.cjs +2 -2
- package/dist/voice-worklet-player.js +2 -2
- package/dist/webmcp-polyfill.js +2 -2
- package/dist/widget.css +1 -1
- package/package.json +2 -3
- package/src/artifacts-session.test.ts +178 -0
- package/src/client.test.ts +186 -1
- package/src/client.ts +92 -9
- package/src/components/artifact-card.test.ts +333 -0
- package/src/components/artifact-card.ts +75 -28
- package/src/components/artifact-inline.test.ts +1328 -0
- package/src/components/artifact-inline.ts +920 -0
- package/src/components/artifact-pane.test.ts +1042 -0
- package/src/components/artifact-pane.ts +440 -131
- package/src/components/artifact-preview.test.ts +1155 -0
- package/src/components/artifact-preview.ts +994 -0
- package/src/components/pill-composer-builder.test.ts +6 -2
- package/src/components/pill-composer-builder.ts +6 -6
- package/src/components/reasoning-bubble.ts +1 -13
- package/src/components/registry.ts +38 -3
- package/src/components/tool-bubble.ts +1 -13
- package/src/defaults.ts +1 -0
- package/src/generated/runtype-openapi-contract.ts +55 -3
- package/src/index-core.ts +20 -1
- package/src/index.ts +8 -0
- package/src/markdown-parsers-loader.test.ts +158 -0
- package/src/markdown-parsers-loader.ts +74 -9
- package/src/runtime/host-layout.test.ts +163 -0
- package/src/runtime/host-layout.ts +110 -7
- package/src/runtime/init.ts +18 -61
- package/src/session.ts +76 -22
- package/src/styles/widget.css +773 -26
- package/src/theme-editor/preview.ts +2 -0
- package/src/theme-editor/sections.test.ts +26 -1
- package/src/theme-editor/sections.ts +10 -2
- package/src/theme-reference.ts +2 -2
- package/src/tool-call-display-defaults.test.ts +1 -0
- package/src/types/theme.ts +77 -0
- package/src/types.ts +516 -17
- package/src/ui.artifact-pane-gating.test.ts +636 -0
- package/src/ui.component-directive.test.ts +104 -0
- package/src/ui.composer-bar.test.ts +60 -2
- package/src/ui.detached-panel.test.ts +1049 -0
- package/src/ui.tool-display.test.ts +51 -0
- package/src/ui.ts +698 -109
- package/src/utils/artifact-custom-actions.ts +128 -0
- package/src/utils/artifact-display.test.ts +42 -0
- package/src/utils/artifact-display.ts +84 -0
- package/src/utils/artifact-file.test.ts +116 -0
- package/src/utils/artifact-file.ts +117 -0
- package/src/utils/artifact-gate.test.ts +112 -5
- package/src/utils/artifact-gate.ts +39 -14
- package/src/utils/artifact-loading-status.ts +55 -0
- package/src/utils/artifact-status-label.ts +190 -0
- package/src/utils/buttons.ts +7 -1
- package/src/utils/code-highlight.test.ts +186 -0
- package/src/utils/code-highlight.ts +400 -0
- package/src/utils/icons.ts +2 -0
- package/src/utils/roving-tablist.test.ts +152 -0
- package/src/utils/roving-tablist.ts +111 -0
- package/src/utils/spinner.ts +45 -0
- package/src/utils/theme.test.ts +48 -0
- package/src/utils/theme.ts +7 -0
- package/src/utils/tokens.ts +91 -0
- package/src/utils/tool-loading-animation.test.ts +32 -0
- package/src/utils/tool-loading-animation.ts +24 -0
- package/dist/chunk-DFBSCFYN.js +0 -1
- package/dist/runtype-tts-entry-HFUV2UF7.js +0 -1
- package/dist/session-reconnect-U77QFUR7.js +0 -1
package/dist/webmcp-polyfill.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var He=Object.defineProperty;var Fe=(e,t,r)=>t in e?He(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var _=(e,t,r)=>Fe(e,typeof t!="symbol"?t+"":t,r);function A(e,t){let r=typeof e;if(r!==typeof t)return!1;if(Array.isArray(e)){if(!Array.isArray(t))return!1;let n=e.length;if(n!==t.length)return!1;for(let i=0;i<n;i++)if(!A(e[i],t[i]))return!1;return!0}if(r==="object"){if(!e||!t)return e===t;let n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(let o of n)if(!A(e[o],t[o]))return!1;return!0}return e===t}function S(e){return encodeURI(Be(e))}function Be(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}var Ke={prefixItems:!0,items:!0,allOf:!0,anyOf:!0,oneOf:!0},Ge={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependentSchemas:!0},Ye={id:!0,$id:!0,$ref:!0,$schema:!0,$anchor:!0,$vocabulary:!0,$comment:!0,default:!0,enum:!0,const:!0,required:!0,type:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0},Ze=typeof self!="undefined"&&self.location&&self.location.origin!=="null"?new URL(self.location.origin+self.location.pathname+location.search):new URL("https://github.com/cfworker");function E(e,t=Object.create(null),r=Ze,n=""){if(e&&typeof e=="object"&&!Array.isArray(e)){let d=e.$id||e.id;if(d){let o=new URL(d,r.href);o.hash.length>1?t[o.href]=e:(o.hash="",n===""?r=o:E(e,t,r))}}else if(e!==!0&&e!==!1)return t;let i=r.href+(n?"#"+n:"");if(t[i]!==void 0)throw new Error(`Duplicate schema URI "${i}".`);if(t[i]=e,e===!0||e===!1)return t;if(e.__absolute_uri__===void 0&&Object.defineProperty(e,"__absolute_uri__",{enumerable:!1,value:i}),e.$ref&&e.__absolute_ref__===void 0){let d=new URL(e.$ref,r.href);d.hash=d.hash,Object.defineProperty(e,"__absolute_ref__",{enumerable:!1,value:d.href})}if(e.$recursiveRef&&e.__absolute_recursive_ref__===void 0){let d=new URL(e.$recursiveRef,r.href);d.hash=d.hash,Object.defineProperty(e,"__absolute_recursive_ref__",{enumerable:!1,value:d.href})}if(e.$anchor){let d=new URL("#"+e.$anchor,r.href);t[d.href]=e}for(let d in e){if(Ye[d])continue;let o=`${n}/${S(d)}`,s=e[d];if(Array.isArray(s)){if(Ke[d]){let h=s.length;for(let x=0;x<h;x++)E(s[x],t,r,`${o}/${x}`)}}else if(Ge[d])for(let h in s)E(s[h],t,r,`${o}/${S(h)}`);else E(s,t,r,o)}return t}var Xe=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,Qe=[0,31,28,31,30,31,30,31,31,30,31,30,31],Le=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,et=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,tt=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,rt=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,nt=/^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)(?:\.(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,ot=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,it=/^(?:\/(?:[^~/]|~0|~1)*)*$/,st=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,dt=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,at=e=>{if(e[0]==='"')return!1;let[t,r,...n]=e.split("@");return!t||!r||n.length!==0||t.length>64||r.length>253||t[0]==="."||t.endsWith(".")||t.includes("..")||!/^[a-z0-9.-]+$/i.test(r)||!/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+$/i.test(t)?!1:r.split(".").every(i=>/^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/i.test(i))},ft=/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,lt=/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,ut=e=>e.length>1&&e.length<80&&(/^P\d+([.,]\d+)?W$/.test(e)||/^P[\dYMDTHS]*(\d[.,]\d+)?[YMDHS]$/.test(e)&&/^P([.,\d]+Y)?([.,\d]+M)?([.,\d]+D)?(T([.,\d]+H)?([.,\d]+M)?([.,\d]+S)?)?$/.test(e));function k(e){return e.test.bind(e)}var me={date:Ee,time:Me.bind(void 0,!1),"date-time":pt,duration:ut,uri:$t,"uri-reference":k(tt),"uri-template":k(rt),url:k(nt),email:at,hostname:k(et),ipv4:k(ft),ipv6:k(lt),regex:wt,uuid:k(ot),"json-pointer":k(it),"json-pointer-uri-fragment":k(st),"relative-json-pointer":k(dt)};function mt(e){return e%4===0&&(e%100!==0||e%400===0)}function Ee(e){let t=e.match(Xe);if(!t)return!1;let r=+t[1],n=+t[2],i=+t[3];return n>=1&&n<=12&&i>=1&&i<=(n==2&&mt(r)?29:Qe[n])}function Me(e,t){let r=t.match(Le);if(!r)return!1;let n=+r[1],i=+r[2],d=+r[3],o=!!r[5];return(n<=23&&i<=59&&d<=59||n==23&&i==59&&d==60)&&(!e||o)}var ct=/t|\s/i;function pt(e){let t=e.split(ct);return t.length==2&&Ee(t[0])&&Me(!0,t[1])}var yt=/\/|:/,ht=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function $t(e){return yt.test(e)&&ht.test(e)}var gt=/[^\\]\\Z/;function wt(e){if(gt.test(e))return!1;try{return new RegExp(e,"u"),!0}catch{return!1}}var Ce;(function(e){e[e.Flag=1]="Flag",e[e.Basic=2]="Basic",e[e.Detailed=4]="Detailed"})(Ce||(Ce={}));function Ne(e){let t=0,r=e.length,n=0,i;for(;n<r;)t++,i=e.charCodeAt(n++),i>=55296&&i<=56319&&n<r&&(i=e.charCodeAt(n),(i&64512)==56320&&n++);return t}function w(e,t,r="2019-09",n=E(t),i=!0,d=null,o="#",s="#",h=Object.create(null)){if(t===!0)return{valid:!0,errors:[]};if(t===!1)return{valid:!1,errors:[{instanceLocation:o,keyword:"false",keywordLocation:o,error:"False boolean schema."}]};let x=typeof e,$;switch(x){case"boolean":case"number":case"string":$=x;break;case"object":e===null?$="null":Array.isArray(e)?$="array":$="object";break;default:throw new Error(`Instances of "${x}" type are not supported.`)}let{$ref:T,$recursiveRef:q,$recursiveAnchor:M,type:I,const:z,enum:D,required:ye,not:he,anyOf:ee,allOf:te,oneOf:$e,if:ge,then:we,else:xe,format:U,properties:re,patternProperties:ne,additionalProperties:be,unevaluatedProperties:ve,minProperties:oe,maxProperties:ie,propertyNames:Se,dependentRequired:se,dependentSchemas:de,dependencies:ae,prefixItems:fe,items:R,additionalItems:Te,unevaluatedItems:_e,contains:Ie,minContains:O,maxContains:V,minItems:le,maxItems:ue,uniqueItems:Ue,minimum:C,maximum:N,exclusiveMinimum:J,exclusiveMaximum:W,multipleOf:H,minLength:F,maxLength:B,pattern:ke,__absolute_ref__:K,__absolute_recursive_ref__:Ve}=t,f=[];if(M===!0&&d===null&&(d=t),q==="#"){let m=d===null?n[Ve]:d,u=`${s}/$recursiveRef`,y=w(e,d===null?t:d,r,n,i,m,o,u,h);y.valid||f.push({instanceLocation:o,keyword:"$recursiveRef",keywordLocation:u,error:"A subschema had errors."},...y.errors)}if(T!==void 0){let u=n[K||T];if(u===void 0){let a=`Unresolved $ref "${T}".`;throw K&&K!==T&&(a+=` Absolute URI "${K}".`),a+=`
|
|
1
|
+
var He=Object.defineProperty;var Fe=(e,t,r)=>t in e?He(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var T=(e,t,r)=>Fe(e,typeof t!="symbol"?t+"":t,r);function N(e,t){let r=typeof e;if(r!==typeof t)return!1;if(Array.isArray(e)){if(!Array.isArray(t))return!1;let n=e.length;if(n!==t.length)return!1;for(let i=0;i<n;i++)if(!N(e[i],t[i]))return!1;return!0}if(r==="object"){if(!e||!t)return e===t;let n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(let o of n)if(!N(e[o],t[o]))return!1;return!0}return e===t}function S(e){return encodeURI(Be(e))}function Be(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}var Ke={prefixItems:!0,items:!0,allOf:!0,anyOf:!0,oneOf:!0},Ge={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependentSchemas:!0},Ye={id:!0,$id:!0,$ref:!0,$schema:!0,$anchor:!0,$vocabulary:!0,$comment:!0,default:!0,enum:!0,const:!0,required:!0,type:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0},Ze=typeof self<"u"&&self.location&&self.location.origin!=="null"?new URL(self.location.origin+self.location.pathname+location.search):new URL("https://github.com/cfworker");function O(e,t=Object.create(null),r=Ze,n=""){if(e&&typeof e=="object"&&!Array.isArray(e)){let d=e.$id||e.id;if(d){let o=new URL(d,r.href);o.hash.length>1?t[o.href]=e:(o.hash="",n===""?r=o:O(e,t,r))}}else if(e!==!0&&e!==!1)return t;let i=r.href+(n?"#"+n:"");if(t[i]!==void 0)throw new Error(`Duplicate schema URI "${i}".`);if(t[i]=e,e===!0||e===!1)return t;if(e.__absolute_uri__===void 0&&Object.defineProperty(e,"__absolute_uri__",{enumerable:!1,value:i}),e.$ref&&e.__absolute_ref__===void 0){let d=new URL(e.$ref,r.href);d.hash=d.hash,Object.defineProperty(e,"__absolute_ref__",{enumerable:!1,value:d.href})}if(e.$recursiveRef&&e.__absolute_recursive_ref__===void 0){let d=new URL(e.$recursiveRef,r.href);d.hash=d.hash,Object.defineProperty(e,"__absolute_recursive_ref__",{enumerable:!1,value:d.href})}if(e.$anchor){let d=new URL("#"+e.$anchor,r.href);t[d.href]=e}for(let d in e){if(Ye[d])continue;let o=`${n}/${S(d)}`,s=e[d];if(Array.isArray(s)){if(Ke[d]){let h=s.length;for(let b=0;b<h;b++)O(s[b],t,r,`${o}/${b}`)}}else if(Ge[d])for(let h in s)O(s[h],t,r,`${o}/${S(h)}`);else O(s,t,r,o)}return t}var Xe=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,Qe=[0,31,28,31,30,31,30,31,31,30,31,30,31],Le=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,et=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,tt=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,rt=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,ot=/^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)(?:\.(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,nt=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,it=/^(?:\/(?:[^~/]|~0|~1)*)*$/,st=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,dt=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,at=e=>{if(e[0]==='"')return!1;let[t,r,...n]=e.split("@");return!t||!r||n.length!==0||t.length>64||r.length>253||t[0]==="."||t.endsWith(".")||t.includes("..")||!/^[a-z0-9.-]+$/i.test(r)||!/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+$/i.test(t)?!1:r.split(".").every(i=>/^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/i.test(i))},ft=/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,lt=/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,ut=e=>e.length>1&&e.length<80&&(/^P\d+([.,]\d+)?W$/.test(e)||/^P[\dYMDTHS]*(\d[.,]\d+)?[YMDHS]$/.test(e)&&/^P([.,\d]+Y)?([.,\d]+M)?([.,\d]+D)?(T([.,\d]+H)?([.,\d]+M)?([.,\d]+S)?)?$/.test(e));function _(e){return e.test.bind(e)}var me={date:Ee,time:Me.bind(void 0,!1),"date-time":pt,duration:ut,uri:$t,"uri-reference":_(tt),"uri-template":_(rt),url:_(ot),email:at,hostname:_(et),ipv4:_(ft),ipv6:_(lt),regex:wt,uuid:_(nt),"json-pointer":_(it),"json-pointer-uri-fragment":_(st),"relative-json-pointer":_(dt)};function mt(e){return e%4===0&&(e%100!==0||e%400===0)}function Ee(e){let t=e.match(Xe);if(!t)return!1;let r=+t[1],n=+t[2],i=+t[3];return n>=1&&n<=12&&i>=1&&i<=(n==2&&mt(r)?29:Qe[n])}function Me(e,t){let r=t.match(Le);if(!r)return!1;let n=+r[1],i=+r[2],d=+r[3],o=!!r[5];return(n<=23&&i<=59&&d<=59||n==23&&i==59&&d==60)&&(!e||o)}var ct=/t|\s/i;function pt(e){let t=e.split(ct);return t.length==2&&Ee(t[0])&&Me(!0,t[1])}var yt=/\/|:/,ht=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function $t(e){return yt.test(e)&&ht.test(e)}var gt=/[^\\]\\Z/;function wt(e){if(gt.test(e))return!1;try{return new RegExp(e,"u"),!0}catch{return!1}}var Ce;(function(e){e[e.Flag=1]="Flag",e[e.Basic=2]="Basic",e[e.Detailed=4]="Detailed"})(Ce||(Ce={}));function Ne(e){let t=0,r=e.length,n=0,i;for(;n<r;)t++,i=e.charCodeAt(n++),i>=55296&&i<=56319&&n<r&&(i=e.charCodeAt(n),(i&64512)==56320&&n++);return t}function w(e,t,r="2019-09",n=O(t),i=!0,d=null,o="#",s="#",h=Object.create(null)){if(t===!0)return{valid:!0,errors:[]};if(t===!1)return{valid:!1,errors:[{instanceLocation:o,keyword:"false",keywordLocation:o,error:"False boolean schema."}]};let b=typeof e,$;switch(b){case"boolean":case"number":case"string":$=b;break;case"object":e===null?$="null":Array.isArray(e)?$="array":$="object";break;default:throw new Error(`Instances of "${b}" type are not supported.`)}let{$ref:E,$recursiveRef:W,$recursiveAnchor:q,type:I,const:j,enum:z,required:ye,not:he,anyOf:ee,allOf:te,oneOf:$e,if:ge,then:we,else:xe,format:U,properties:re,patternProperties:oe,additionalProperties:be,unevaluatedProperties:ve,minProperties:ne,maxProperties:ie,propertyNames:Se,dependentRequired:se,dependentSchemas:de,dependencies:ae,prefixItems:fe,items:D,additionalItems:Te,unevaluatedItems:Ie,contains:_e,minContains:P,maxContains:V,minItems:le,maxItems:ue,uniqueItems:Ue,minimum:M,maximum:C,exclusiveMinimum:R,exclusiveMaximum:J,multipleOf:H,minLength:F,maxLength:B,pattern:ke,__absolute_ref__:K,__absolute_recursive_ref__:Ve}=t,f=[];if(q===!0&&d===null&&(d=t),W==="#"){let m=d===null?n[Ve]:d,u=`${s}/$recursiveRef`,y=w(e,d===null?t:d,r,n,i,m,o,u,h);y.valid||f.push({instanceLocation:o,keyword:"$recursiveRef",keywordLocation:u,error:"A subschema had errors."},...y.errors)}if(E!==void 0){let u=n[K||E];if(u===void 0){let a=`Unresolved $ref "${E}".`;throw K&&K!==E&&(a+=` Absolute URI "${K}".`),a+=`
|
|
2
2
|
Known schemas:
|
|
3
3
|
- ${Object.keys(n).join(`
|
|
4
|
-
- `)}`,new Error(a)}let y=`${s}/$ref`,l=w(e,u,r,n,i,d,o,y,h);if(l.valid||f.push({instanceLocation:o,keyword:"$ref",keywordLocation:y,error:"A subschema had errors."},...l.errors),r==="4"||r==="7")return{valid:f.length===0,errors:f}}if(Array.isArray(I)){let m=I.length,u=!1;for(let y=0;y<m;y++)if($===I[y]||I[y]==="integer"&&$==="number"&&e%1===0&&e===e){u=!0;break}u||f.push({instanceLocation:o,keyword:"type",keywordLocation:`${s}/type`,error:`Instance type "${$}" is invalid. Expected "${I.join('", "')}".`})}else I==="integer"?($!=="number"||e%1||e!==e)&&f.push({instanceLocation:o,keyword:"type",keywordLocation:`${s}/type`,error:`Instance type "${$}" is invalid. Expected "${I}".`}):I!==void 0&&$!==I&&f.push({instanceLocation:o,keyword:"type",keywordLocation:`${s}/type`,error:`Instance type "${$}" is invalid. Expected "${I}".`});if(z!==void 0&&($==="object"||$==="array"?A(e,z)||f.push({instanceLocation:o,keyword:"const",keywordLocation:`${s}/const`,error:`Instance does not match ${JSON.stringify(z)}.`}):e!==z&&f.push({instanceLocation:o,keyword:"const",keywordLocation:`${s}/const`,error:`Instance does not match ${JSON.stringify(z)}.`})),D!==void 0&&($==="object"||$==="array"?D.some(m=>A(e,m))||f.push({instanceLocation:o,keyword:"enum",keywordLocation:`${s}/enum`,error:`Instance does not match any of ${JSON.stringify(D)}.`}):D.some(m=>e===m)||f.push({instanceLocation:o,keyword:"enum",keywordLocation:`${s}/enum`,error:`Instance does not match any of ${JSON.stringify(D)}.`})),he!==void 0){let m=`${s}/not`;w(e,he,r,n,i,d,o,m).valid&&f.push({instanceLocation:o,keyword:"not",keywordLocation:m,error:'Instance matched "not" schema.'})}let G=[];if(ee!==void 0){let m=`${s}/anyOf`,u=f.length,y=!1;for(let l=0;l<ee.length;l++){let a=ee[l],p=Object.create(h),c=w(e,a,r,n,i,M===!0?d:null,o,`${m}/${l}`,p);f.push(...c.errors),y=y||c.valid,c.valid&&G.push(p)}y?f.length=u:f.splice(u,0,{instanceLocation:o,keyword:"anyOf",keywordLocation:m,error:"Instance does not match any subschemas."})}if(te!==void 0){let m=`${s}/allOf`,u=f.length,y=!0;for(let l=0;l<te.length;l++){let a=te[l],p=Object.create(h),c=w(e,a,r,n,i,M===!0?d:null,o,`${m}/${l}`,p);f.push(...c.errors),y=y&&c.valid,c.valid&&G.push(p)}y?f.length=u:f.splice(u,0,{instanceLocation:o,keyword:"allOf",keywordLocation:m,error:"Instance does not match every subschema."})}if($e!==void 0){let m=`${s}/oneOf`,u=f.length,y=$e.filter((l,a)=>{let p=Object.create(h),c=w(e,l,r,n,i,M===!0?d:null,o,`${m}/${a}`,p);return f.push(...c.errors),c.valid&&G.push(p),c.valid}).length;y===1?f.length=u:f.splice(u,0,{instanceLocation:o,keyword:"oneOf",keywordLocation:m,error:`Instance does not match exactly one subschema (${y} matches).`})}if(($==="object"||$==="array")&&Object.assign(h,...G),ge!==void 0){let m=`${s}/if`;if(w(e,ge,r,n,i,d,o,m,h).valid){if(we!==void 0){let y=w(e,we,r,n,i,d,o,`${s}/then`,h);y.valid||f.push({instanceLocation:o,keyword:"if",keywordLocation:m,error:'Instance does not match "then" schema.'},...y.errors)}}else if(xe!==void 0){let y=w(e,xe,r,n,i,d,o,`${s}/else`,h);y.valid||f.push({instanceLocation:o,keyword:"if",keywordLocation:m,error:'Instance does not match "else" schema.'},...y.errors)}}if($==="object"){if(ye!==void 0)for(let l of ye)l in e||f.push({instanceLocation:o,keyword:"required",keywordLocation:`${s}/required`,error:`Instance does not have required property "${l}".`});let m=Object.keys(e);if(oe!==void 0&&m.length<oe&&f.push({instanceLocation:o,keyword:"minProperties",keywordLocation:`${s}/minProperties`,error:`Instance does not have at least ${oe} properties.`}),ie!==void 0&&m.length>ie&&f.push({instanceLocation:o,keyword:"maxProperties",keywordLocation:`${s}/maxProperties`,error:`Instance does not have at least ${ie} properties.`}),Se!==void 0){let l=`${s}/propertyNames`;for(let a in e){let p=`${o}/${S(a)}`,c=w(a,Se,r,n,i,d,p,l);c.valid||f.push({instanceLocation:o,keyword:"propertyNames",keywordLocation:l,error:`Property name "${a}" does not match schema.`},...c.errors)}}if(se!==void 0){let l=`${s}/dependantRequired`;for(let a in se)if(a in e){let p=se[a];for(let c of p)c in e||f.push({instanceLocation:o,keyword:"dependentRequired",keywordLocation:l,error:`Instance has "${a}" but does not have "${c}".`})}}if(de!==void 0)for(let l in de){let a=`${s}/dependentSchemas`;if(l in e){let p=w(e,de[l],r,n,i,d,o,`${a}/${S(l)}`,h);p.valid||f.push({instanceLocation:o,keyword:"dependentSchemas",keywordLocation:a,error:`Instance has "${l}" but does not match dependant schema.`},...p.errors)}}if(ae!==void 0){let l=`${s}/dependencies`;for(let a in ae)if(a in e){let p=ae[a];if(Array.isArray(p))for(let c of p)c in e||f.push({instanceLocation:o,keyword:"dependencies",keywordLocation:l,error:`Instance has "${a}" but does not have "${c}".`});else{let c=w(e,p,r,n,i,d,o,`${l}/${S(a)}`);c.valid||f.push({instanceLocation:o,keyword:"dependencies",keywordLocation:l,error:`Instance has "${a}" but does not match dependant schema.`},...c.errors)}}}let u=Object.create(null),y=!1;if(re!==void 0){let l=`${s}/properties`;for(let a in re){if(!(a in e))continue;let p=`${o}/${S(a)}`,c=w(e[a],re[a],r,n,i,d,p,`${l}/${S(a)}`);if(c.valid)h[a]=u[a]=!0;else if(y=i,f.push({instanceLocation:o,keyword:"properties",keywordLocation:l,error:`Property "${a}" does not match schema.`},...c.errors),y)break}}if(!y&&ne!==void 0){let l=`${s}/patternProperties`;for(let a in ne){let p=new RegExp(a,"u"),c=ne[a];for(let v in e){if(!p.test(v))continue;let Pe=`${o}/${S(v)}`,Oe=w(e[v],c,r,n,i,d,Pe,`${l}/${S(a)}`);Oe.valid?h[v]=u[v]=!0:(y=i,f.push({instanceLocation:o,keyword:"patternProperties",keywordLocation:l,error:`Property "${v}" matches pattern "${a}" but does not match associated schema.`},...Oe.errors))}}}if(!y&&be!==void 0){let l=`${s}/additionalProperties`;for(let a in e){if(u[a])continue;let p=`${o}/${S(a)}`,c=w(e[a],be,r,n,i,d,p,l);c.valid?h[a]=!0:(y=i,f.push({instanceLocation:o,keyword:"additionalProperties",keywordLocation:l,error:`Property "${a}" does not match additional properties schema.`},...c.errors))}}else if(!y&&ve!==void 0){let l=`${s}/unevaluatedProperties`;for(let a in e)if(!h[a]){let p=`${o}/${S(a)}`,c=w(e[a],ve,r,n,i,d,p,l);c.valid?h[a]=!0:f.push({instanceLocation:o,keyword:"unevaluatedProperties",keywordLocation:l,error:`Property "${a}" does not match unevaluated properties schema.`},...c.errors)}}}else if($==="array"){ue!==void 0&&e.length>ue&&f.push({instanceLocation:o,keyword:"maxItems",keywordLocation:`${s}/maxItems`,error:`Array has too many items (${e.length} > ${ue}).`}),le!==void 0&&e.length<le&&f.push({instanceLocation:o,keyword:"minItems",keywordLocation:`${s}/minItems`,error:`Array has too few items (${e.length} < ${le}).`});let m=e.length,u=0,y=!1;if(fe!==void 0){let l=`${s}/prefixItems`,a=Math.min(fe.length,m);for(;u<a;u++){let p=w(e[u],fe[u],r,n,i,d,`${o}/${u}`,`${l}/${u}`);if(h[u]=!0,!p.valid&&(y=i,f.push({instanceLocation:o,keyword:"prefixItems",keywordLocation:l,error:"Items did not match schema."},...p.errors),y))break}}if(R!==void 0){let l=`${s}/items`;if(Array.isArray(R)){let a=Math.min(R.length,m);for(;u<a;u++){let p=w(e[u],R[u],r,n,i,d,`${o}/${u}`,`${l}/${u}`);if(h[u]=!0,!p.valid&&(y=i,f.push({instanceLocation:o,keyword:"items",keywordLocation:l,error:"Items did not match schema."},...p.errors),y))break}}else for(;u<m;u++){let a=w(e[u],R,r,n,i,d,`${o}/${u}`,l);if(h[u]=!0,!a.valid&&(y=i,f.push({instanceLocation:o,keyword:"items",keywordLocation:l,error:"Items did not match schema."},...a.errors),y))break}if(!y&&Te!==void 0){let a=`${s}/additionalItems`;for(;u<m;u++){let p=w(e[u],Te,r,n,i,d,`${o}/${u}`,a);h[u]=!0,p.valid||(y=i,f.push({instanceLocation:o,keyword:"additionalItems",keywordLocation:a,error:"Items did not match additional items schema."},...p.errors))}}}if(Ie!==void 0)if(m===0&&O===void 0)f.push({instanceLocation:o,keyword:"contains",keywordLocation:`${s}/contains`,error:"Array is empty. It must contain at least one item matching the schema."});else if(O!==void 0&&m<O)f.push({instanceLocation:o,keyword:"minContains",keywordLocation:`${s}/minContains`,error:`Array has less items (${m}) than minContains (${O}).`});else{let l=`${s}/contains`,a=f.length,p=0;for(let c=0;c<m;c++){let v=w(e[c],Ie,r,n,i,d,`${o}/${c}`,l);v.valid?(h[c]=!0,p++):f.push(...v.errors)}p>=(O||0)&&(f.length=a),O===void 0&&V===void 0&&p===0?f.splice(a,0,{instanceLocation:o,keyword:"contains",keywordLocation:l,error:"Array does not contain item matching schema."}):O!==void 0&&p<O?f.push({instanceLocation:o,keyword:"minContains",keywordLocation:`${s}/minContains`,error:`Array must contain at least ${O} items matching schema. Only ${p} items were found.`}):V!==void 0&&p>V&&f.push({instanceLocation:o,keyword:"maxContains",keywordLocation:`${s}/maxContains`,error:`Array may contain at most ${V} items matching schema. ${p} items were found.`})}if(!y&&_e!==void 0){let l=`${s}/unevaluatedItems`;for(u;u<m;u++){if(h[u])continue;let a=w(e[u],_e,r,n,i,d,`${o}/${u}`,l);h[u]=!0,a.valid||f.push({instanceLocation:o,keyword:"unevaluatedItems",keywordLocation:l,error:"Items did not match unevaluated items schema."},...a.errors)}}if(Ue)for(let l=0;l<m;l++){let a=e[l],p=typeof a=="object"&&a!==null;for(let c=0;c<m;c++){if(l===c)continue;let v=e[c];(a===v||p&&(typeof v=="object"&&v!==null)&&A(a,v))&&(f.push({instanceLocation:o,keyword:"uniqueItems",keywordLocation:`${s}/uniqueItems`,error:`Duplicate items at indexes ${l} and ${c}.`}),l=Number.MAX_SAFE_INTEGER,c=Number.MAX_SAFE_INTEGER)}}}else if($==="number"){if(r==="4"?(C!==void 0&&(J===!0&&e<=C||e<C)&&f.push({instanceLocation:o,keyword:"minimum",keywordLocation:`${s}/minimum`,error:`${e} is less than ${J?"or equal to ":""} ${C}.`}),N!==void 0&&(W===!0&&e>=N||e>N)&&f.push({instanceLocation:o,keyword:"maximum",keywordLocation:`${s}/maximum`,error:`${e} is greater than ${W?"or equal to ":""} ${N}.`})):(C!==void 0&&e<C&&f.push({instanceLocation:o,keyword:"minimum",keywordLocation:`${s}/minimum`,error:`${e} is less than ${C}.`}),N!==void 0&&e>N&&f.push({instanceLocation:o,keyword:"maximum",keywordLocation:`${s}/maximum`,error:`${e} is greater than ${N}.`}),J!==void 0&&e<=J&&f.push({instanceLocation:o,keyword:"exclusiveMinimum",keywordLocation:`${s}/exclusiveMinimum`,error:`${e} is less than ${J}.`}),W!==void 0&&e>=W&&f.push({instanceLocation:o,keyword:"exclusiveMaximum",keywordLocation:`${s}/exclusiveMaximum`,error:`${e} is greater than or equal to ${W}.`})),H!==void 0){let m=e%H;Math.abs(0-m)>=11920929e-14&&Math.abs(H-m)>=11920929e-14&&f.push({instanceLocation:o,keyword:"multipleOf",keywordLocation:`${s}/multipleOf`,error:`${e} is not a multiple of ${H}.`})}}else if($==="string"){let m=F===void 0&&B===void 0?0:Ne(e);F!==void 0&&m<F&&f.push({instanceLocation:o,keyword:"minLength",keywordLocation:`${s}/minLength`,error:`String is too short (${m} < ${F}).`}),B!==void 0&&m>B&&f.push({instanceLocation:o,keyword:"maxLength",keywordLocation:`${s}/maxLength`,error:`String is too long (${m} > ${B}).`}),ke!==void 0&&!new RegExp(ke,"u").test(e)&&f.push({instanceLocation:o,keyword:"pattern",keywordLocation:`${s}/pattern`,error:"String does not match pattern."}),U!==void 0&&me[U]&&!me[U](e)&&f.push({instanceLocation:o,keyword:"format",keywordLocation:`${s}/format`,error:`String does not match format "${U}".`})}return{valid:f.length===0,errors:f}}var Y=class{constructor(t,r="2019-09",n=!0){_(this,"schema");_(this,"draft");_(this,"shortCircuit");_(this,"lookup");this.schema=t,this.draft=r,this.shortCircuit=n,this.lookup=E(t)}validate(t){return w(t,this.schema,this.draft,this.lookup,this.shortCircuit)}addSchema(t,r){r&&(t={...t,$id:r}),E(t,this.lookup)}};var Ae="Failed to parse input arguments",Q="Tool was executed but the invocation failed. For example, the script function threw an error",ce="Tool was cancelled",Z={type:"object",properties:{}},xt=["draft-2020-12","draft-07"],bt="__isWebMCPPolyfill",ze=Symbol("standardValidator"),g={installed:!1,previousNavigatorModelContextDescriptor:void 0,previousNavigatorModelContextTestingDescriptor:void 0,previousDocumentModelContextDescriptor:void 0,installedNavigatorModelContext:!1,installedNavigatorModelContextTesting:!1,installedDocumentModelContext:!1},vt=class extends EventTarget{constructor(){super(...arguments);_(this,"tools",new Map);_(this,"testingShim",null);_(this,"_ontoolchange",null);_(this,"unregisterToolDeprecationWarned",!1)}get ontoolchange(){return this._ontoolchange}set ontoolchange(t){this._ontoolchange=t}registerTool(t,r){var d;let n=r==null?void 0:r.signal;if(n!=null&&n.aborted){console.warn(`[WebMCPPolyfill] registerTool("${(d=t==null?void 0:t.name)!=null?d:"<unknown>"}") skipped: options.signal was already aborted.`);return}let i=Et(t,this.tools);this.tools.set(i.name,i),this.notifyToolsChanged(),n&&n.addEventListener("abort",()=>{this.tools.delete(i.name)&&this.notifyToolsChanged()},{once:!0})}unregisterTool(t){this.warnUnregisterToolDeprecationOnce();let r=_t(t);this.tools.delete(r)&&this.notifyToolsChanged()}getTools(){return Promise.resolve(this.getRegisteredToolInfos())}executeTool(t,r,n){return this.executeToolByName(t.name,r,n,!1)}getTestingShim(){return this.testingShim||(this.testingShim=new St(this)),this.testingShim}getToolInfos(){return[...this.tools.values()].map(t=>{var n;let r;try{r=JSON.stringify((n=t.inputSchema)!=null?n:{type:"object"})}catch{r='{"type":"object"}'}return{name:t.name,description:t.description,inputSchema:r}})}getRegisteredToolInfos(){return this.getToolInfos().map(t=>{var n,i,d;let r=this.tools.get(t.name);return{...t,title:(n=r==null?void 0:r.title)!=null?n:"",origin:(d=(i=globalThis.location)==null?void 0:i.origin)!=null?d:"",window:globalThis.window}})}async executeToolForTesting(t,r,n){return this.executeToolByName(t,r,n,!0)}async executeToolByName(t,r,n,i){var $;if(($=n==null?void 0:n.signal)!=null&&$.aborted)throw P(ce);let d=this.tools.get(t);if(!d)throw P(`Tool not found: ${t}`);let o=Tt(r),s=await At(o,d);if(s)throw P(s);let h=!0,x={requestUserInteraction:async T=>{if(!h)throw new Error(`ModelContextClient for tool "${t}" is no longer active after execute() resolved`);if(typeof T!="function")throw new TypeError("requestUserInteraction(callback) requires a function callback");return T()}};try{let T=d.execute(o,x),q=await Ut(Promise.resolve(T),n==null?void 0:n.signal);if(i)return qt(Jt(q));let M=JSON.stringify(q);return M===void 0?null:M}catch(T){throw P(T instanceof Error?`${Q}: ${T.message}`:Q)}finally{h=!1}}notifyToolsChanged(){queueMicrotask(()=>{var r,n;let t=new Event("toolchange");try{(r=this._ontoolchange)==null||r.call(this,t)}catch(i){console.warn("[WebMCPPolyfill] navigator.modelContext.ontoolchange handler threw:",i)}this.dispatchEvent(t),(n=this.testingShim)==null||n.dispatchToolChange()})}warnUnregisterToolDeprecationOnce(){this.unregisterToolDeprecationWarned||(this.unregisterToolDeprecationWarned=!0,console.warn("[WebMCPPolyfill] navigator.modelContext.unregisterTool() is deprecated. The April 23, 2026 WebMCP draft removed it in favor of registerTool(tool, { signal }) \u2014 pass an AbortSignal and abort it to unregister."))}},St=class extends EventTarget{constructor(t){super();_(this,"context");_(this,"_ontoolchange",null);this.context=t}listTools(){return this.context.getToolInfos()}executeTool(t,r,n){return this.context.executeToolForTesting(t,r,n)}getCrossDocumentScriptToolResult(){return Promise.resolve("[]")}get ontoolchange(){return this._ontoolchange}set ontoolchange(t){this._ontoolchange=t}registerToolsChangedCallback(t){if(typeof t!="function")throw new TypeError("Failed to execute 'registerToolsChangedCallback' on 'ModelContextTesting': parameter 1 is not of type 'Function'.");this.addEventListener("toolchange",t)}dispatchToolChange(){var r;let t=new Event("toolchange");try{(r=this._ontoolchange)==null||r.call(this,t)}catch(n){console.warn("[WebMCPPolyfill] ontoolchange handler threw:",n)}this.dispatchEvent(t),this.dispatchEvent(new Event("toolschanged"))}};function P(e){try{return new DOMException(e,"UnknownError")}catch{let t=new Error(e);return t.name="UnknownError",t}}function Tt(e){let t;try{t=JSON.parse(e)}catch{throw P(Ae)}if(!t||typeof t!="object"||Array.isArray(t))throw P(Ae);return t}function _t(e){if(typeof e=="string")return e;if(b(e)&&typeof e.name=="string")return e.name;throw new TypeError("Failed to execute 'unregisterTool' on 'ModelContext': parameter 1 must be a string or an object with a string name.")}function b(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function De(e){if(!b(e))return null;let t=e["~standard"];return b(t)?t:null}function It(e){let t=De(e);return!!(t&&t.version===1&&typeof t.validate=="function")}function kt(e){let t=De(e);return!t||t.version!==1||!b(t.jsonSchema)?!1:typeof t.jsonSchema.input=="function"}function X(e){return{"~standard":{version:1,vendor:"@mcp-b/webmcp-polyfill-json-schema",validate(t){if(!b(t))return{issues:[{message:"expected object arguments"}]};let r=Mt(t,e);return r?{issues:[r]}:{value:t}}}}}function Pt(e){for(let t of xt)try{let r=e["~standard"].jsonSchema.input({target:t});return Re(r),r}catch(r){console.warn(`[WebMCPPolyfill] Standard JSON Schema conversion failed for target "${t}":`,r)}throw new Error("Failed to convert Standard JSON Schema inputSchema to a JSON Schema object")}function Ot(e){if(e===void 0){let r=Z;return{inputSchema:r,standardValidator:X(r)}}if(kt(e)){let r=Pt(e);return{inputSchema:r,standardValidator:X(r)}}if(It(e))return{inputSchema:Z,standardValidator:e};if(Re(e),Object.keys(e).length===0)return{inputSchema:Z,standardValidator:X(Z)};let t=e.type===void 0?{type:"object",...e}:e;return{inputSchema:t,standardValidator:X(t)}}function Re(e){if(!b(e))throw new Error("inputSchema must be a JSON Schema object");j(e,"$")}function j(e,t){let r=e.type;if(r!==void 0&&typeof r!="string"&&!(Array.isArray(r)&&r.every(s=>typeof s=="string"&&s.length>0)))throw new Error(`Invalid JSON Schema at ${t}: "type" must be a string or string[]`);let n=e.required;if(n!==void 0&&!(Array.isArray(n)&&n.every(s=>typeof s=="string")))throw new Error(`Invalid JSON Schema at ${t}: "required" must be an array of strings`);let i=e.properties;if(i!==void 0){if(!b(i))throw new Error(`Invalid JSON Schema at ${t}: "properties" must be an object`);for(let[s,h]of Object.entries(i)){if(!b(h))throw new Error(`Invalid JSON Schema at ${t}.properties.${s}: expected object schema`);j(h,`${t}.properties.${s}`)}}let d=e.items;if(d!==void 0)if(Array.isArray(d))for(let[s,h]of d.entries()){if(!b(h))throw new Error(`Invalid JSON Schema at ${t}.items[${s}]: expected object schema`);j(h,`${t}.items[${s}]`)}else if(b(d))j(d,`${t}.items`);else throw new Error(`Invalid JSON Schema at ${t}: "items" must be an object or object[]`);for(let s of["allOf","anyOf","oneOf"]){let h=e[s];if(h!==void 0){if(!Array.isArray(h))throw new Error(`Invalid JSON Schema at ${t}: "${s}" must be an array`);for(let[x,$]of h.entries()){if(!b($))throw new Error(`Invalid JSON Schema at ${t}.${s}[${x}]: expected object schema`);j($,`${t}.${s}[${x}]`)}}}let o=e.not;if(o!==void 0){if(!b(o))throw new Error(`Invalid JSON Schema at ${t}: "not" must be an object schema`);j(o,`${t}.not`)}try{JSON.stringify(e)}catch{throw new Error(`Invalid JSON Schema at ${t}: schema must be JSON-serializable`)}}function Et(e,t){if(!e||typeof e!="object")throw new TypeError("registerTool(tool) requires a tool object");if(typeof e.name!="string"||e.name.length===0)throw new TypeError('Tool "name" must be a non-empty string');if(typeof e.description!="string"||e.description.length===0)throw new TypeError('Tool "description" must be a non-empty string');if(typeof e.execute!="function")throw new TypeError('Tool "execute" must be a function');if(t.has(e.name))throw new Error(`Tool already registered: ${e.name}`);let r=Ot(e.inputSchema),n=e.annotations,i=n?{...n,...n.readOnlyHint==="true"?{readOnlyHint:!0}:n.readOnlyHint==="false"?{readOnlyHint:!1}:{},...n.destructiveHint==="true"?{destructiveHint:!0}:n.destructiveHint==="false"?{destructiveHint:!1}:{},...n.idempotentHint==="true"?{idempotentHint:!0}:n.idempotentHint==="false"?{idempotentHint:!1}:{},...n.openWorldHint==="true"?{openWorldHint:!0}:n.openWorldHint==="false"?{openWorldHint:!1}:{}}:void 0;return{...e,...i?{annotations:i}:{},inputSchema:r.inputSchema,[ze]:r.standardValidator}}function Mt(e,t){let r=new Y(t,"2020-12",!0).validate(e);if(r.valid)return null;let n=r.errors[r.errors.length-1];return n?{message:n.error}:{message:"Input validation failed"}}function Ct(e){if(!e||e.length===0)return null;let t=e.map(r=>b(r)&&"key"in r?r.key:r).map(r=>String(r)).filter(r=>r.length>0);return t.length===0?null:t.join(".")}async function Nt(e,t){let r;try{r=await Promise.resolve(t["~standard"].validate(e))}catch(d){let o=d instanceof Error?`: ${d.message}`:"";return console.error("[WebMCPPolyfill] Standard Schema validation threw unexpectedly:",d),`Input validation error: schema validation failed${o}`}if(!r.issues||r.issues.length===0)return null;let n=r.issues[0];if(!n)return"Input validation error";let i=Ct(n==null?void 0:n.path);return i?`Input validation error: ${n.message} at ${i}`:`Input validation error: ${n.message}`}async function At(e,t){return Nt(e,t[ze])}function jt(e){return b(e)&&Array.isArray(e.content)}function zt(e){return e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function pe(e){return zt(e)?Number.isFinite(e)||typeof e!="number":Array.isArray(e)?e.every(t=>pe(t)):b(e)?Object.values(e).every(t=>pe(t)):!1}function Dt(e){if(!(!b(e)||!pe(e)))return e}function Rt(e){var t;if(typeof e=="string")return e;try{return(t=JSON.stringify(e))!=null?t:String(e)}catch{return String(e)}}function Jt(e){if(jt(e))return e;let t=Dt(e);return{content:[{type:"text",text:Rt(e)}],...t?{structuredContent:t}:{},isError:!1}}function Wt(e){var t;for(let r of(t=e.content)!=null?t:[])if(r.type==="text"&&"text"in r&&typeof r.text=="string")return r.text;return null}function qt(e){var r;if(e.isError)throw P(((r=Wt(e))==null?void 0:r.replace(/^Error:\s*/i,"").trim())||Q);let t=e.metadata;if(t&&typeof t=="object"&&t.willNavigate)return null;try{return JSON.stringify(e)}catch{throw P(Q)}}function Ut(e,t){return t?t.aborted?Promise.reject(P(ce)):new Promise((r,n)=>{let i=()=>{d(),n(P(ce))},d=()=>{t.removeEventListener("abort",i)};t.addEventListener("abort",i,{once:!0}),e.then(o=>{d(),r(o)},o=>{d(),n(o)})}):e}function Je(){return typeof navigator!="undefined"?navigator:null}function We(){return typeof document!="undefined"?document:null}function Vt(e,t,r){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,writable:!1,value:r})}function je(e,t){Object.defineProperty(e,"modelContext",{configurable:!0,enumerable:!0,writable:!1,value:t})}var L=!1;function Ht(e,t){Object.defineProperty(e,"modelContext",{configurable:!0,enumerable:!0,get(){return L||(L=!0,console.warn("[WebMCPPolyfill] navigator.modelContext is deprecated. The May 27, 2026 WebMCP draft moved the modelContext getter from Navigator to Document \u2014 use document.modelContext instead. See https://github.com/webmachinelearning/webmcp/pull/184.")),t}})}function qe(e){var h;let t=Je(),r=We();if(!t&&!r||(r==null?void 0:r.modelContext))return;let i=t==null?void 0:t.modelContext,d=!!i;if(g.installed&&Ft(),r&&i){g.previousDocumentModelContextDescriptor=Object.getOwnPropertyDescriptor(r,"modelContext"),je(r,i),g.installedDocumentModelContext=!0,g.installed=!0;return}if(d)return;let o=new vt,s=o;if(s[bt]=!0,r&&(g.previousDocumentModelContextDescriptor=Object.getOwnPropertyDescriptor(r,"modelContext"),je(r,s),g.installedDocumentModelContext=!0),t){g.previousNavigatorModelContextDescriptor=Object.getOwnPropertyDescriptor(t,"modelContext"),g.previousNavigatorModelContextTestingDescriptor=Object.getOwnPropertyDescriptor(t,"modelContextTesting"),L=!1,Ht(t,s),g.installedNavigatorModelContext=!0;let x=(h=e==null?void 0:e.installTestingShim)!=null?h:"if-missing",$=!!t.modelContextTesting;(x==="always"||(x===!0||x==="if-missing")&&!$)&&(Vt(t,"modelContextTesting",o.getTestingShim()),g.installedNavigatorModelContextTesting=!0)}g.installed=!0}function Ft(){if(!g.installed)return;let e=(n,i,d)=>{if(d){Object.defineProperty(n,i,d);return}delete n[i]},t=Je(),r=We();r&&g.installedDocumentModelContext&&e(r,"modelContext",g.previousDocumentModelContextDescriptor),t&&g.installedNavigatorModelContext&&e(t,"modelContext",g.previousNavigatorModelContextDescriptor),t&&g.installedNavigatorModelContextTesting&&e(t,"modelContextTesting",g.previousNavigatorModelContextTestingDescriptor),g.installed=!1,g.previousDocumentModelContextDescriptor=void 0,g.previousNavigatorModelContextDescriptor=void 0,g.previousNavigatorModelContextTestingDescriptor=void 0,g.installedDocumentModelContext=!1,g.installedNavigatorModelContext=!1,g.installedNavigatorModelContextTesting=!1,L=!1}if(typeof window!="undefined"&&typeof document!="undefined"){let e=window.__webMCPPolyfillOptions;if((e==null?void 0:e.autoInitialize)!==!1)try{qe(e)}catch(t){console.error("[WebMCPPolyfill] Auto-initialization failed:",t)}}export{qe as initializeWebMCPPolyfill};
|
|
4
|
+
- `)}`,new Error(a)}let y=`${s}/$ref`,l=w(e,u,r,n,i,d,o,y,h);if(l.valid||f.push({instanceLocation:o,keyword:"$ref",keywordLocation:y,error:"A subschema had errors."},...l.errors),r==="4"||r==="7")return{valid:f.length===0,errors:f}}if(Array.isArray(I)){let m=I.length,u=!1;for(let y=0;y<m;y++)if($===I[y]||I[y]==="integer"&&$==="number"&&e%1===0&&e===e){u=!0;break}u||f.push({instanceLocation:o,keyword:"type",keywordLocation:`${s}/type`,error:`Instance type "${$}" is invalid. Expected "${I.join('", "')}".`})}else I==="integer"?($!=="number"||e%1||e!==e)&&f.push({instanceLocation:o,keyword:"type",keywordLocation:`${s}/type`,error:`Instance type "${$}" is invalid. Expected "${I}".`}):I!==void 0&&$!==I&&f.push({instanceLocation:o,keyword:"type",keywordLocation:`${s}/type`,error:`Instance type "${$}" is invalid. Expected "${I}".`});if(j!==void 0&&($==="object"||$==="array"?N(e,j)||f.push({instanceLocation:o,keyword:"const",keywordLocation:`${s}/const`,error:`Instance does not match ${JSON.stringify(j)}.`}):e!==j&&f.push({instanceLocation:o,keyword:"const",keywordLocation:`${s}/const`,error:`Instance does not match ${JSON.stringify(j)}.`})),z!==void 0&&($==="object"||$==="array"?z.some(m=>N(e,m))||f.push({instanceLocation:o,keyword:"enum",keywordLocation:`${s}/enum`,error:`Instance does not match any of ${JSON.stringify(z)}.`}):z.some(m=>e===m)||f.push({instanceLocation:o,keyword:"enum",keywordLocation:`${s}/enum`,error:`Instance does not match any of ${JSON.stringify(z)}.`})),he!==void 0){let m=`${s}/not`;w(e,he,r,n,i,d,o,m).valid&&f.push({instanceLocation:o,keyword:"not",keywordLocation:m,error:'Instance matched "not" schema.'})}let G=[];if(ee!==void 0){let m=`${s}/anyOf`,u=f.length,y=!1;for(let l=0;l<ee.length;l++){let a=ee[l],p=Object.create(h),c=w(e,a,r,n,i,q===!0?d:null,o,`${m}/${l}`,p);f.push(...c.errors),y=y||c.valid,c.valid&&G.push(p)}y?f.length=u:f.splice(u,0,{instanceLocation:o,keyword:"anyOf",keywordLocation:m,error:"Instance does not match any subschemas."})}if(te!==void 0){let m=`${s}/allOf`,u=f.length,y=!0;for(let l=0;l<te.length;l++){let a=te[l],p=Object.create(h),c=w(e,a,r,n,i,q===!0?d:null,o,`${m}/${l}`,p);f.push(...c.errors),y=y&&c.valid,c.valid&&G.push(p)}y?f.length=u:f.splice(u,0,{instanceLocation:o,keyword:"allOf",keywordLocation:m,error:"Instance does not match every subschema."})}if($e!==void 0){let m=`${s}/oneOf`,u=f.length,y=$e.filter((l,a)=>{let p=Object.create(h),c=w(e,l,r,n,i,q===!0?d:null,o,`${m}/${a}`,p);return f.push(...c.errors),c.valid&&G.push(p),c.valid}).length;y===1?f.length=u:f.splice(u,0,{instanceLocation:o,keyword:"oneOf",keywordLocation:m,error:`Instance does not match exactly one subschema (${y} matches).`})}if(($==="object"||$==="array")&&Object.assign(h,...G),ge!==void 0){let m=`${s}/if`;if(w(e,ge,r,n,i,d,o,m,h).valid){if(we!==void 0){let y=w(e,we,r,n,i,d,o,`${s}/then`,h);y.valid||f.push({instanceLocation:o,keyword:"if",keywordLocation:m,error:'Instance does not match "then" schema.'},...y.errors)}}else if(xe!==void 0){let y=w(e,xe,r,n,i,d,o,`${s}/else`,h);y.valid||f.push({instanceLocation:o,keyword:"if",keywordLocation:m,error:'Instance does not match "else" schema.'},...y.errors)}}if($==="object"){if(ye!==void 0)for(let l of ye)l in e||f.push({instanceLocation:o,keyword:"required",keywordLocation:`${s}/required`,error:`Instance does not have required property "${l}".`});let m=Object.keys(e);if(ne!==void 0&&m.length<ne&&f.push({instanceLocation:o,keyword:"minProperties",keywordLocation:`${s}/minProperties`,error:`Instance does not have at least ${ne} properties.`}),ie!==void 0&&m.length>ie&&f.push({instanceLocation:o,keyword:"maxProperties",keywordLocation:`${s}/maxProperties`,error:`Instance does not have at least ${ie} properties.`}),Se!==void 0){let l=`${s}/propertyNames`;for(let a in e){let p=`${o}/${S(a)}`,c=w(a,Se,r,n,i,d,p,l);c.valid||f.push({instanceLocation:o,keyword:"propertyNames",keywordLocation:l,error:`Property name "${a}" does not match schema.`},...c.errors)}}if(se!==void 0){let l=`${s}/dependantRequired`;for(let a in se)if(a in e){let p=se[a];for(let c of p)c in e||f.push({instanceLocation:o,keyword:"dependentRequired",keywordLocation:l,error:`Instance has "${a}" but does not have "${c}".`})}}if(de!==void 0)for(let l in de){let a=`${s}/dependentSchemas`;if(l in e){let p=w(e,de[l],r,n,i,d,o,`${a}/${S(l)}`,h);p.valid||f.push({instanceLocation:o,keyword:"dependentSchemas",keywordLocation:a,error:`Instance has "${l}" but does not match dependant schema.`},...p.errors)}}if(ae!==void 0){let l=`${s}/dependencies`;for(let a in ae)if(a in e){let p=ae[a];if(Array.isArray(p))for(let c of p)c in e||f.push({instanceLocation:o,keyword:"dependencies",keywordLocation:l,error:`Instance has "${a}" but does not have "${c}".`});else{let c=w(e,p,r,n,i,d,o,`${l}/${S(a)}`);c.valid||f.push({instanceLocation:o,keyword:"dependencies",keywordLocation:l,error:`Instance has "${a}" but does not match dependant schema.`},...c.errors)}}}let u=Object.create(null),y=!1;if(re!==void 0){let l=`${s}/properties`;for(let a in re){if(!(a in e))continue;let p=`${o}/${S(a)}`,c=w(e[a],re[a],r,n,i,d,p,`${l}/${S(a)}`);if(c.valid)h[a]=u[a]=!0;else if(y=i,f.push({instanceLocation:o,keyword:"properties",keywordLocation:l,error:`Property "${a}" does not match schema.`},...c.errors),y)break}}if(!y&&oe!==void 0){let l=`${s}/patternProperties`;for(let a in oe){let p=new RegExp(a,"u"),c=oe[a];for(let v in e){if(!p.test(v))continue;let Pe=`${o}/${S(v)}`,Oe=w(e[v],c,r,n,i,d,Pe,`${l}/${S(a)}`);Oe.valid?h[v]=u[v]=!0:(y=i,f.push({instanceLocation:o,keyword:"patternProperties",keywordLocation:l,error:`Property "${v}" matches pattern "${a}" but does not match associated schema.`},...Oe.errors))}}}if(!y&&be!==void 0){let l=`${s}/additionalProperties`;for(let a in e){if(u[a])continue;let p=`${o}/${S(a)}`,c=w(e[a],be,r,n,i,d,p,l);c.valid?h[a]=!0:(y=i,f.push({instanceLocation:o,keyword:"additionalProperties",keywordLocation:l,error:`Property "${a}" does not match additional properties schema.`},...c.errors))}}else if(!y&&ve!==void 0){let l=`${s}/unevaluatedProperties`;for(let a in e)if(!h[a]){let p=`${o}/${S(a)}`,c=w(e[a],ve,r,n,i,d,p,l);c.valid?h[a]=!0:f.push({instanceLocation:o,keyword:"unevaluatedProperties",keywordLocation:l,error:`Property "${a}" does not match unevaluated properties schema.`},...c.errors)}}}else if($==="array"){ue!==void 0&&e.length>ue&&f.push({instanceLocation:o,keyword:"maxItems",keywordLocation:`${s}/maxItems`,error:`Array has too many items (${e.length} > ${ue}).`}),le!==void 0&&e.length<le&&f.push({instanceLocation:o,keyword:"minItems",keywordLocation:`${s}/minItems`,error:`Array has too few items (${e.length} < ${le}).`});let m=e.length,u=0,y=!1;if(fe!==void 0){let l=`${s}/prefixItems`,a=Math.min(fe.length,m);for(;u<a;u++){let p=w(e[u],fe[u],r,n,i,d,`${o}/${u}`,`${l}/${u}`);if(h[u]=!0,!p.valid&&(y=i,f.push({instanceLocation:o,keyword:"prefixItems",keywordLocation:l,error:"Items did not match schema."},...p.errors),y))break}}if(D!==void 0){let l=`${s}/items`;if(Array.isArray(D)){let a=Math.min(D.length,m);for(;u<a;u++){let p=w(e[u],D[u],r,n,i,d,`${o}/${u}`,`${l}/${u}`);if(h[u]=!0,!p.valid&&(y=i,f.push({instanceLocation:o,keyword:"items",keywordLocation:l,error:"Items did not match schema."},...p.errors),y))break}}else for(;u<m;u++){let a=w(e[u],D,r,n,i,d,`${o}/${u}`,l);if(h[u]=!0,!a.valid&&(y=i,f.push({instanceLocation:o,keyword:"items",keywordLocation:l,error:"Items did not match schema."},...a.errors),y))break}if(!y&&Te!==void 0){let a=`${s}/additionalItems`;for(;u<m;u++){let p=w(e[u],Te,r,n,i,d,`${o}/${u}`,a);h[u]=!0,p.valid||(y=i,f.push({instanceLocation:o,keyword:"additionalItems",keywordLocation:a,error:"Items did not match additional items schema."},...p.errors))}}}if(_e!==void 0)if(m===0&&P===void 0)f.push({instanceLocation:o,keyword:"contains",keywordLocation:`${s}/contains`,error:"Array is empty. It must contain at least one item matching the schema."});else if(P!==void 0&&m<P)f.push({instanceLocation:o,keyword:"minContains",keywordLocation:`${s}/minContains`,error:`Array has less items (${m}) than minContains (${P}).`});else{let l=`${s}/contains`,a=f.length,p=0;for(let c=0;c<m;c++){let v=w(e[c],_e,r,n,i,d,`${o}/${c}`,l);v.valid?(h[c]=!0,p++):f.push(...v.errors)}p>=(P||0)&&(f.length=a),P===void 0&&V===void 0&&p===0?f.splice(a,0,{instanceLocation:o,keyword:"contains",keywordLocation:l,error:"Array does not contain item matching schema."}):P!==void 0&&p<P?f.push({instanceLocation:o,keyword:"minContains",keywordLocation:`${s}/minContains`,error:`Array must contain at least ${P} items matching schema. Only ${p} items were found.`}):V!==void 0&&p>V&&f.push({instanceLocation:o,keyword:"maxContains",keywordLocation:`${s}/maxContains`,error:`Array may contain at most ${V} items matching schema. ${p} items were found.`})}if(!y&&Ie!==void 0){let l=`${s}/unevaluatedItems`;for(u;u<m;u++){if(h[u])continue;let a=w(e[u],Ie,r,n,i,d,`${o}/${u}`,l);h[u]=!0,a.valid||f.push({instanceLocation:o,keyword:"unevaluatedItems",keywordLocation:l,error:"Items did not match unevaluated items schema."},...a.errors)}}if(Ue)for(let l=0;l<m;l++){let a=e[l],p=typeof a=="object"&&a!==null;for(let c=0;c<m;c++){if(l===c)continue;let v=e[c];(a===v||p&&(typeof v=="object"&&v!==null)&&N(a,v))&&(f.push({instanceLocation:o,keyword:"uniqueItems",keywordLocation:`${s}/uniqueItems`,error:`Duplicate items at indexes ${l} and ${c}.`}),l=Number.MAX_SAFE_INTEGER,c=Number.MAX_SAFE_INTEGER)}}}else if($==="number"){if(r==="4"?(M!==void 0&&(R===!0&&e<=M||e<M)&&f.push({instanceLocation:o,keyword:"minimum",keywordLocation:`${s}/minimum`,error:`${e} is less than ${R?"or equal to ":""} ${M}.`}),C!==void 0&&(J===!0&&e>=C||e>C)&&f.push({instanceLocation:o,keyword:"maximum",keywordLocation:`${s}/maximum`,error:`${e} is greater than ${J?"or equal to ":""} ${C}.`})):(M!==void 0&&e<M&&f.push({instanceLocation:o,keyword:"minimum",keywordLocation:`${s}/minimum`,error:`${e} is less than ${M}.`}),C!==void 0&&e>C&&f.push({instanceLocation:o,keyword:"maximum",keywordLocation:`${s}/maximum`,error:`${e} is greater than ${C}.`}),R!==void 0&&e<=R&&f.push({instanceLocation:o,keyword:"exclusiveMinimum",keywordLocation:`${s}/exclusiveMinimum`,error:`${e} is less than ${R}.`}),J!==void 0&&e>=J&&f.push({instanceLocation:o,keyword:"exclusiveMaximum",keywordLocation:`${s}/exclusiveMaximum`,error:`${e} is greater than or equal to ${J}.`})),H!==void 0){let m=e%H;Math.abs(0-m)>=11920929e-14&&Math.abs(H-m)>=11920929e-14&&f.push({instanceLocation:o,keyword:"multipleOf",keywordLocation:`${s}/multipleOf`,error:`${e} is not a multiple of ${H}.`})}}else if($==="string"){let m=F===void 0&&B===void 0?0:Ne(e);F!==void 0&&m<F&&f.push({instanceLocation:o,keyword:"minLength",keywordLocation:`${s}/minLength`,error:`String is too short (${m} < ${F}).`}),B!==void 0&&m>B&&f.push({instanceLocation:o,keyword:"maxLength",keywordLocation:`${s}/maxLength`,error:`String is too long (${m} > ${B}).`}),ke!==void 0&&!new RegExp(ke,"u").test(e)&&f.push({instanceLocation:o,keyword:"pattern",keywordLocation:`${s}/pattern`,error:"String does not match pattern."}),U!==void 0&&me[U]&&!me[U](e)&&f.push({instanceLocation:o,keyword:"format",keywordLocation:`${s}/format`,error:`String does not match format "${U}".`})}return{valid:f.length===0,errors:f}}var Y=class{constructor(t,r="2019-09",n=!0){T(this,"schema");T(this,"draft");T(this,"shortCircuit");T(this,"lookup");this.schema=t,this.draft=r,this.shortCircuit=n,this.lookup=O(t)}validate(t){return w(t,this.schema,this.draft,this.lookup,this.shortCircuit)}addSchema(t,r){r&&(t={...t,$id:r}),O(t,this.lookup)}};var Ae="Failed to parse input arguments",Q="Tool was executed but the invocation failed. For example, the script function threw an error",ce="Tool was cancelled",Z={type:"object",properties:{}},xt=["draft-2020-12","draft-07"],bt="__isWebMCPPolyfill",ze=Symbol("standardValidator"),g={installed:!1,previousNavigatorModelContextDescriptor:void 0,previousNavigatorModelContextTestingDescriptor:void 0,previousDocumentModelContextDescriptor:void 0,installedNavigatorModelContext:!1,installedNavigatorModelContextTesting:!1,installedDocumentModelContext:!1},vt=class extends EventTarget{constructor(){super(...arguments);T(this,"tools",new Map);T(this,"testingShim",null);T(this,"_ontoolchange",null);T(this,"unregisterToolDeprecationWarned",!1)}get ontoolchange(){return this._ontoolchange}set ontoolchange(t){this._ontoolchange=t}registerTool(t,r){let n=r?.signal;if(n?.aborted){console.warn(`[WebMCPPolyfill] registerTool("${t?.name??"<unknown>"}") skipped: options.signal was already aborted.`);return}let i=Et(t,this.tools);this.tools.set(i.name,i),this.notifyToolsChanged(),n&&n.addEventListener("abort",()=>{this.tools.delete(i.name)&&this.notifyToolsChanged()},{once:!0})}unregisterTool(t){this.warnUnregisterToolDeprecationOnce();let r=It(t);this.tools.delete(r)&&this.notifyToolsChanged()}getTools(){return Promise.resolve(this.getRegisteredToolInfos())}executeTool(t,r,n){return this.executeToolByName(t.name,r,n,!1)}getTestingShim(){return this.testingShim||(this.testingShim=new St(this)),this.testingShim}getToolInfos(){return[...this.tools.values()].map(t=>{let r;try{r=JSON.stringify(t.inputSchema??{type:"object"})}catch{r='{"type":"object"}'}return{name:t.name,description:t.description,inputSchema:r}})}getRegisteredToolInfos(){return this.getToolInfos().map(t=>{let r=this.tools.get(t.name);return{...t,title:r?.title??"",origin:globalThis.location?.origin??"",window:globalThis.window}})}async executeToolForTesting(t,r,n){return this.executeToolByName(t,r,n,!0)}async executeToolByName(t,r,n,i){if(n?.signal?.aborted)throw k(ce);let d=this.tools.get(t);if(!d)throw k(`Tool not found: ${t}`);let o=Tt(r),s=await At(o,d);if(s)throw k(s);let h=!0,b={requestUserInteraction:async $=>{if(!h)throw new Error(`ModelContextClient for tool "${t}" is no longer active after execute() resolved`);if(typeof $!="function")throw new TypeError("requestUserInteraction(callback) requires a function callback");return $()}};try{let $=d.execute(o,b),E=await Ut(Promise.resolve($),n?.signal);if(i)return qt(Jt(E));let W=JSON.stringify(E);return W===void 0?null:W}catch($){throw k($ instanceof Error?`${Q}: ${$.message}`:Q)}finally{h=!1}}notifyToolsChanged(){queueMicrotask(()=>{let t=new Event("toolchange");try{this._ontoolchange?.call(this,t)}catch(r){console.warn("[WebMCPPolyfill] navigator.modelContext.ontoolchange handler threw:",r)}this.dispatchEvent(t),this.testingShim?.dispatchToolChange()})}warnUnregisterToolDeprecationOnce(){this.unregisterToolDeprecationWarned||(this.unregisterToolDeprecationWarned=!0,console.warn("[WebMCPPolyfill] navigator.modelContext.unregisterTool() is deprecated. The April 23, 2026 WebMCP draft removed it in favor of registerTool(tool, { signal }) \u2014 pass an AbortSignal and abort it to unregister."))}},St=class extends EventTarget{constructor(t){super();T(this,"context");T(this,"_ontoolchange",null);this.context=t}listTools(){return this.context.getToolInfos()}executeTool(t,r,n){return this.context.executeToolForTesting(t,r,n)}getCrossDocumentScriptToolResult(){return Promise.resolve("[]")}get ontoolchange(){return this._ontoolchange}set ontoolchange(t){this._ontoolchange=t}registerToolsChangedCallback(t){if(typeof t!="function")throw new TypeError("Failed to execute 'registerToolsChangedCallback' on 'ModelContextTesting': parameter 1 is not of type 'Function'.");this.addEventListener("toolchange",t)}dispatchToolChange(){let t=new Event("toolchange");try{this._ontoolchange?.call(this,t)}catch(r){console.warn("[WebMCPPolyfill] ontoolchange handler threw:",r)}this.dispatchEvent(t),this.dispatchEvent(new Event("toolschanged"))}};function k(e){try{return new DOMException(e,"UnknownError")}catch{let t=new Error(e);return t.name="UnknownError",t}}function Tt(e){let t;try{t=JSON.parse(e)}catch{throw k(Ae)}if(!t||typeof t!="object"||Array.isArray(t))throw k(Ae);return t}function It(e){if(typeof e=="string")return e;if(x(e)&&typeof e.name=="string")return e.name;throw new TypeError("Failed to execute 'unregisterTool' on 'ModelContext': parameter 1 must be a string or an object with a string name.")}function x(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function De(e){if(!x(e))return null;let t=e["~standard"];return x(t)?t:null}function _t(e){let t=De(e);return!!(t&&t.version===1&&typeof t.validate=="function")}function kt(e){let t=De(e);return!t||t.version!==1||!x(t.jsonSchema)?!1:typeof t.jsonSchema.input=="function"}function X(e){return{"~standard":{version:1,vendor:"@mcp-b/webmcp-polyfill-json-schema",validate(t){if(!x(t))return{issues:[{message:"expected object arguments"}]};let r=Mt(t,e);return r?{issues:[r]}:{value:t}}}}}function Pt(e){for(let t of xt)try{let r=e["~standard"].jsonSchema.input({target:t});return Re(r),r}catch(r){console.warn(`[WebMCPPolyfill] Standard JSON Schema conversion failed for target "${t}":`,r)}throw new Error("Failed to convert Standard JSON Schema inputSchema to a JSON Schema object")}function Ot(e){if(e===void 0){let r=Z;return{inputSchema:r,standardValidator:X(r)}}if(kt(e)){let r=Pt(e);return{inputSchema:r,standardValidator:X(r)}}if(_t(e))return{inputSchema:Z,standardValidator:e};if(Re(e),Object.keys(e).length===0)return{inputSchema:Z,standardValidator:X(Z)};let t=e.type===void 0?{type:"object",...e}:e;return{inputSchema:t,standardValidator:X(t)}}function Re(e){if(!x(e))throw new Error("inputSchema must be a JSON Schema object");A(e,"$")}function A(e,t){let r=e.type;if(r!==void 0&&typeof r!="string"&&!(Array.isArray(r)&&r.every(s=>typeof s=="string"&&s.length>0)))throw new Error(`Invalid JSON Schema at ${t}: "type" must be a string or string[]`);let n=e.required;if(n!==void 0&&!(Array.isArray(n)&&n.every(s=>typeof s=="string")))throw new Error(`Invalid JSON Schema at ${t}: "required" must be an array of strings`);let i=e.properties;if(i!==void 0){if(!x(i))throw new Error(`Invalid JSON Schema at ${t}: "properties" must be an object`);for(let[s,h]of Object.entries(i)){if(!x(h))throw new Error(`Invalid JSON Schema at ${t}.properties.${s}: expected object schema`);A(h,`${t}.properties.${s}`)}}let d=e.items;if(d!==void 0)if(Array.isArray(d))for(let[s,h]of d.entries()){if(!x(h))throw new Error(`Invalid JSON Schema at ${t}.items[${s}]: expected object schema`);A(h,`${t}.items[${s}]`)}else if(x(d))A(d,`${t}.items`);else throw new Error(`Invalid JSON Schema at ${t}: "items" must be an object or object[]`);for(let s of["allOf","anyOf","oneOf"]){let h=e[s];if(h!==void 0){if(!Array.isArray(h))throw new Error(`Invalid JSON Schema at ${t}: "${s}" must be an array`);for(let[b,$]of h.entries()){if(!x($))throw new Error(`Invalid JSON Schema at ${t}.${s}[${b}]: expected object schema`);A($,`${t}.${s}[${b}]`)}}}let o=e.not;if(o!==void 0){if(!x(o))throw new Error(`Invalid JSON Schema at ${t}: "not" must be an object schema`);A(o,`${t}.not`)}try{JSON.stringify(e)}catch{throw new Error(`Invalid JSON Schema at ${t}: schema must be JSON-serializable`)}}function Et(e,t){if(!e||typeof e!="object")throw new TypeError("registerTool(tool) requires a tool object");if(typeof e.name!="string"||e.name.length===0)throw new TypeError('Tool "name" must be a non-empty string');if(typeof e.description!="string"||e.description.length===0)throw new TypeError('Tool "description" must be a non-empty string');if(typeof e.execute!="function")throw new TypeError('Tool "execute" must be a function');if(t.has(e.name))throw new Error(`Tool already registered: ${e.name}`);let r=Ot(e.inputSchema),n=e.annotations,i=n?{...n,...n.readOnlyHint==="true"?{readOnlyHint:!0}:n.readOnlyHint==="false"?{readOnlyHint:!1}:{},...n.destructiveHint==="true"?{destructiveHint:!0}:n.destructiveHint==="false"?{destructiveHint:!1}:{},...n.idempotentHint==="true"?{idempotentHint:!0}:n.idempotentHint==="false"?{idempotentHint:!1}:{},...n.openWorldHint==="true"?{openWorldHint:!0}:n.openWorldHint==="false"?{openWorldHint:!1}:{}}:void 0;return{...e,...i?{annotations:i}:{},inputSchema:r.inputSchema,[ze]:r.standardValidator}}function Mt(e,t){let r=new Y(t,"2020-12",!0).validate(e);if(r.valid)return null;let n=r.errors[r.errors.length-1];return n?{message:n.error}:{message:"Input validation failed"}}function Ct(e){if(!e||e.length===0)return null;let t=e.map(r=>x(r)&&"key"in r?r.key:r).map(r=>String(r)).filter(r=>r.length>0);return t.length===0?null:t.join(".")}async function Nt(e,t){let r;try{r=await Promise.resolve(t["~standard"].validate(e))}catch(d){let o=d instanceof Error?`: ${d.message}`:"";return console.error("[WebMCPPolyfill] Standard Schema validation threw unexpectedly:",d),`Input validation error: schema validation failed${o}`}if(!r.issues||r.issues.length===0)return null;let n=r.issues[0];if(!n)return"Input validation error";let i=Ct(n?.path);return i?`Input validation error: ${n.message} at ${i}`:`Input validation error: ${n.message}`}async function At(e,t){return Nt(e,t[ze])}function jt(e){return x(e)&&Array.isArray(e.content)}function zt(e){return e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function pe(e){return zt(e)?Number.isFinite(e)||typeof e!="number":Array.isArray(e)?e.every(t=>pe(t)):x(e)?Object.values(e).every(t=>pe(t)):!1}function Dt(e){if(!(!x(e)||!pe(e)))return e}function Rt(e){if(typeof e=="string")return e;try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function Jt(e){if(jt(e))return e;let t=Dt(e);return{content:[{type:"text",text:Rt(e)}],...t?{structuredContent:t}:{},isError:!1}}function Wt(e){for(let t of e.content??[])if(t.type==="text"&&"text"in t&&typeof t.text=="string")return t.text;return null}function qt(e){if(e.isError)throw k(Wt(e)?.replace(/^Error:\s*/i,"").trim()||Q);let t=e.metadata;if(t&&typeof t=="object"&&t.willNavigate)return null;try{return JSON.stringify(e)}catch{throw k(Q)}}function Ut(e,t){return t?t.aborted?Promise.reject(k(ce)):new Promise((r,n)=>{let i=()=>{d(),n(k(ce))},d=()=>{t.removeEventListener("abort",i)};t.addEventListener("abort",i,{once:!0}),e.then(o=>{d(),r(o)},o=>{d(),n(o)})}):e}function Je(){return typeof navigator<"u"?navigator:null}function We(){return typeof document<"u"?document:null}function Vt(e,t,r){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,writable:!1,value:r})}function je(e,t){Object.defineProperty(e,"modelContext",{configurable:!0,enumerable:!0,writable:!1,value:t})}var L=!1;function Ht(e,t){Object.defineProperty(e,"modelContext",{configurable:!0,enumerable:!0,get(){return L||(L=!0,console.warn("[WebMCPPolyfill] navigator.modelContext is deprecated. The May 27, 2026 WebMCP draft moved the modelContext getter from Navigator to Document \u2014 use document.modelContext instead. See https://github.com/webmachinelearning/webmcp/pull/184.")),t}})}function qe(e){let t=Je(),r=We();if(!t&&!r||r?.modelContext)return;let i=t?.modelContext,d=!!i;if(g.installed&&Ft(),r&&i){g.previousDocumentModelContextDescriptor=Object.getOwnPropertyDescriptor(r,"modelContext"),je(r,i),g.installedDocumentModelContext=!0,g.installed=!0;return}if(d)return;let o=new vt,s=o;if(s[bt]=!0,r&&(g.previousDocumentModelContextDescriptor=Object.getOwnPropertyDescriptor(r,"modelContext"),je(r,s),g.installedDocumentModelContext=!0),t){g.previousNavigatorModelContextDescriptor=Object.getOwnPropertyDescriptor(t,"modelContext"),g.previousNavigatorModelContextTestingDescriptor=Object.getOwnPropertyDescriptor(t,"modelContextTesting"),L=!1,Ht(t,s),g.installedNavigatorModelContext=!0;let h=e?.installTestingShim??"if-missing",b=!!t.modelContextTesting;(h==="always"||(h===!0||h==="if-missing")&&!b)&&(Vt(t,"modelContextTesting",o.getTestingShim()),g.installedNavigatorModelContextTesting=!0)}g.installed=!0}function Ft(){if(!g.installed)return;let e=(n,i,d)=>{if(d){Object.defineProperty(n,i,d);return}delete n[i]},t=Je(),r=We();r&&g.installedDocumentModelContext&&e(r,"modelContext",g.previousDocumentModelContextDescriptor),t&&g.installedNavigatorModelContext&&e(t,"modelContext",g.previousNavigatorModelContextDescriptor),t&&g.installedNavigatorModelContextTesting&&e(t,"modelContextTesting",g.previousNavigatorModelContextTestingDescriptor),g.installed=!1,g.previousDocumentModelContextDescriptor=void 0,g.previousNavigatorModelContextDescriptor=void 0,g.previousNavigatorModelContextTestingDescriptor=void 0,g.installedDocumentModelContext=!1,g.installedNavigatorModelContext=!1,g.installedNavigatorModelContextTesting=!1,L=!1}if(typeof window<"u"&&typeof document<"u"){let e=window.__webMCPPolyfillOptions;if(e?.autoInitialize!==!1)try{qe(e)}catch(t){console.error("[WebMCPPolyfill] Auto-initialization failed:",t)}}export{qe as initializeWebMCPPolyfill};
|
package/dist/widget.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[data-persona-root]{all:initial;font-family:var(--persona-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif);font-size:var(--persona-font-size, 1rem);font-weight:var(--persona-font-weight, 400);line-height:var(--persona-line-height, 1.5);--persona-md-code-block-bg: var(--persona-container, #f3f4f6);--persona-md-code-block-border-color: var(--persona-border, #e5e7eb);--persona-md-inline-code-bg: var(--persona-container, #f3f4f6);--persona-md-inline-code-color: var(--persona-text, #111827);--persona-md-table-border-color: var(--persona-border, #e5e7eb);--persona-md-table-header-bg: var(--persona-container, #f8fafc);--persona-md-hr-color: var(--persona-divider, #e5e7eb);--persona-md-blockquote-border-color: var(--persona-accent, #0f0f0f);--persona-md-blockquote-text-color: var(--persona-muted, #6b7280)}[data-persona-root] *{box-sizing:border-box}.persona-flex{display:flex}.persona-h-full{height:100%}.persona-h-1{height:.25rem}.persona-w-full{width:100%}.persona-flex-col{flex-direction:column}.persona-flex-wrap{flex-wrap:wrap}.persona-items-center{align-items:center}.persona-items-end{align-items:flex-end}.persona-items-start{align-items:flex-start}.persona-justify-center{justify-content:center}.persona-justify-between{justify-content:space-between}.persona-justify-end{justify-content:flex-end}.persona-gap-1{gap:.25rem}.persona-gap-2{gap:.5rem}.persona-gap-1\.5{gap:.375rem}.persona-gap-6{gap:1.5rem}[data-persona-root] .persona-widget-container .persona-attachment-drop-overlay{display:none;position:absolute;inset:var(--persona-drop-overlay-inset, 0);z-index:50;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;pointer-events:none;background:var(--persona-drop-overlay-bg, rgba(59, 130, 246, .08));-webkit-backdrop-filter:blur(var(--persona-drop-overlay-blur, 8px));backdrop-filter:blur(var(--persona-drop-overlay-blur, 8px));border:var(--persona-drop-overlay-border, 2px dashed rgba(59, 130, 246, .4));border-radius:var(--persona-drop-overlay-radius, inherit);transition:opacity .15s ease}[data-persona-root] .persona-widget-container .persona-attachment-drop-overlay .persona-drop-overlay-label{font-size:var(--persona-drop-overlay-label-size, .875rem);color:var(--persona-drop-overlay-label-color, rgba(59, 130, 246, .8));font-weight:500;user-select:none}[data-persona-root] .persona-widget-container.persona-attachment-drop-active .persona-attachment-drop-overlay{display:flex}[data-persona-root]{--persona-radius-sm: .125rem;--persona-radius-md: .375rem;--persona-radius-lg: .5rem;--persona-radius-xl: .75rem;--persona-launcher-radius: 9999px;--persona-button-radius: 9999px;--persona-panel-radius: var(--persona-radius-xl);--persona-input-radius: var(--persona-radius-lg);--persona-message-user-radius: var(--persona-radius-lg);--persona-message-assistant-radius: var(--persona-radius-lg);--persona-md-h1-size: 1.5rem;--persona-md-h1-weight: 700;--persona-md-h1-margin: 1rem 0 .5rem;--persona-md-h1-line-height: 1.25;--persona-md-h2-size: 1.25rem;--persona-md-h2-weight: 700;--persona-md-h2-margin: .875rem 0 .5rem;--persona-md-h2-line-height: 1.3;--persona-md-h3-size: 1.125rem;--persona-md-h3-weight: 600;--persona-md-h3-margin: .75rem 0 .375rem;--persona-md-h3-line-height: 1.4;--persona-md-h4-size: 1rem;--persona-md-h4-weight: 600;--persona-md-h4-margin: .625rem 0 .25rem;--persona-md-h4-line-height: 1.5;--persona-md-h5-size: .875rem;--persona-md-h5-weight: 600;--persona-md-h5-margin: .5rem 0 .25rem;--persona-md-h5-line-height: 1.5;--persona-md-h6-size: .75rem;--persona-md-h6-weight: 600;--persona-md-h6-margin: .5rem 0 .25rem;--persona-md-h6-line-height: 1.5;--persona-md-table-border-color: var(--persona-border, #e5e7eb);--persona-md-table-header-bg: var(--persona-container, #f8fafc);--persona-md-table-header-weight: 600;--persona-md-table-cell-padding: .5rem .75rem;--persona-md-table-border-radius: .375rem;--persona-md-hr-color: var(--persona-divider, #e5e7eb);--persona-md-hr-height: 1px;--persona-md-hr-margin: 1rem 0;--persona-md-blockquote-border-color: #171717;--persona-md-blockquote-border-width: 3px;--persona-md-blockquote-padding: .5rem 1rem;--persona-md-blockquote-margin: .5rem 0;--persona-md-blockquote-bg: transparent;--persona-md-blockquote-text-color: #6b7280;--persona-md-blockquote-font-style: italic;--persona-md-code-block-bg: var(--persona-container, #f3f4f6);--persona-md-code-block-border-color: var(--persona-border, #e5e7eb);--persona-md-code-block-text-color: inherit;--persona-md-code-block-padding: .75rem;--persona-md-code-block-border-radius: .375rem;--persona-md-code-block-font-size: .875rem;--persona-md-inline-code-bg: #f3f4f6;--persona-md-inline-code-padding: .125rem .375rem;--persona-md-inline-code-border-radius: .25rem;--persona-md-inline-code-font-size: .875em;--persona-md-strong-weight: 600;--persona-md-em-style: italic}.persona-rounded-xl{border-radius:var(--persona-radius-sm)}.persona-rounded-lg{border-radius:var(--persona-radius-md)}.persona-rounded-2xl{border-radius:var(--persona-radius-lg)}.persona-rounded{border-radius:var(--persona-radius-sm, .125rem)}.persona-rounded-md{border-radius:var(--persona-radius-md, .375rem)}.persona-rounded-b{border-bottom-left-radius:var(--persona-radius-sm, .125rem);border-bottom-right-radius:var(--persona-radius-sm, .125rem)}.persona-rounded-full,.persona-rounded-launcher{border-radius:var(--persona-launcher-radius)}.persona-rounded-button{border-radius:var(--persona-button-radius)}.persona-overflow-auto{overflow:auto}.persona-max-h-\[300px\]{max-height:300px}.persona-bg-persona-surface{background-color:var(--persona-surface, #ffffff)}.persona-bg-persona-container{background-color:var(--persona-container, #f8fafc)}.persona-bg-persona-input-background{background-color:var(--persona-input-background, #ffffff)}.persona-bg-white{background-color:#fff}.persona-bg-transparent{background-color:transparent}.persona-bg-gray-100{background-color:#f3f4f6}.persona-bg-gray-200{background-color:#e5e7eb}.persona-text-persona-primary{color:var(--persona-primary, #171717)}.persona-text-persona-call-to-action{color:var(--persona-call-to-action, var(--persona-text-inverse, #ffffff))}.persona-text-persona-muted{color:var(--persona-muted, #6b7280)}.persona-text-white{color:#fff}.persona-bg-persona-accent{background-color:var(--persona-accent, #0f0f0f)}.persona-bg-persona-primary{background-color:var(--persona-button-primary-bg, var(--persona-primary, #111827))}.persona-italic{font-style:italic}.persona-text-base{font-size:1rem;line-height:1.5rem}.persona-text-sm{font-size:.875rem;line-height:1.25rem}.persona-text-xs{font-size:.75rem;line-height:1rem}.persona-text-xxs{font-size:.5rem;line-height:1rem}.persona-text-lg{font-size:1.125rem;line-height:1.75rem}.persona-text-xl{font-size:1.25rem;line-height:1.75rem}.persona-font-semibold{font-weight:600}.persona-font-medium{font-weight:500}.persona-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.persona-text-\[11px\]{font-size:11px}.persona-text-center{text-align:center}.persona-text-persona-secondary{color:var(--persona-secondary, #4b5563)}.persona-leading-none{line-height:1}.persona-whitespace-nowrap{white-space:nowrap}.persona-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.persona-break-all{word-break:break-all}.persona-break-words{overflow-wrap:break-word;word-break:break-word}.persona-px-4{padding-left:1rem;padding-right:1rem}.persona-px-5{padding-left:1.25rem;padding-right:1.25rem}.persona-px-6{padding-left:1.5rem;padding-right:1.5rem}.persona-py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.persona-py-3{padding-top:.75rem;padding-bottom:.75rem}.persona-py-4{padding-top:1rem;padding-bottom:1rem}.persona-py-5{padding-top:1.25rem;padding-bottom:1.25rem}.persona-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.persona-py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.persona-pr-3{padding-right:.75rem}.persona-pl-3{padding-left:.75rem}.persona-pl-7{padding-left:1.75rem}.persona-pr-7{padding-right:1.75rem}.persona-pl-8{padding-left:2rem}.persona-pb-0{padding-bottom:0}.persona-p-6{padding:1.5rem}.persona-p-0{padding:0}.persona-p-3{padding:.75rem}.persona-px-2{padding-left:.5rem;padding-right:.5rem}.persona-px-2\.5{padding-left:.625rem;padding-right:.625rem}.persona-px-3{padding-left:.75rem;padding-right:.75rem}.persona-py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.persona-py-1{padding-top:.25rem;padding-bottom:.25rem}.persona-py-2{padding-top:.5rem;padding-bottom:.5rem}.persona-ml-auto{margin-left:auto}.persona-m-0{margin:0}.persona-mb-1{margin-bottom:.25rem}.persona-ml-4{margin-left:1rem}.persona-mr-3{margin-right:.75rem}.disabled\:persona-opacity-50:disabled{opacity:.5}.persona-shadow-2xl{box-shadow:0 30px 60px -15px #0f172a59}.persona-shadow-sm{box-shadow:0 5px 15px #0f172a14}.persona-shadow-md{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.persona-shadow-lg{box-shadow:0 20px 40px #0f172a2e}.persona-border{border-width:1px;border-style:solid;border-color:#94a3b847}.persona-border-none{border:none}.persona-border-b{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#94a3b847}.persona-border-gray-100{border-color:#f1f5f9}.persona-border-persona-secondary{border-color:var(--persona-secondary, #7c3aed)}.persona-border-persona-border{border-color:var(--persona-border, #e5e7eb)}.persona-border-t{border-top-width:1px;border-top-style:solid;border-top-color:#94a3b847}.persona-border-t-persona-border{border-top-width:1px;border-top-style:solid;border-top-color:var(--persona-border, #f1f5f9)}.persona-border-b-persona-border{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:var(--persona-border, #f1f5f9)}.persona-border-t-persona-divider{border-top-width:1px;border-top-style:solid;border-top-color:var(--persona-divider, #f1f5f9)}.persona-border-b-persona-divider{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:var(--persona-divider, #f1f5f9)}.persona-border-persona-divider{border-color:var(--persona-divider, #f1f5f9)}.persona-border-persona-message-border{border-color:var(--persona-message-border, #f1f5f9)}.persona-fixed{position:fixed}.persona-bottom-6{bottom:1.5rem}.persona-top-6{top:1.5rem}.persona-right-6{right:1.5rem}.persona-left-6{left:1.5rem}.persona-top-1\/2{top:50%}.persona-left-1\/2{left:50%}.persona-bottom-3{bottom:.75rem}.persona-right-5{right:1.25rem}.persona-h-8{height:2rem}.persona-w-8{width:2rem}.persona-h-10{height:2.5rem}.persona-w-10{width:2.5rem}.persona-h-12{height:3rem}.persona-w-12{width:3rem}.persona-leading-relaxed{line-height:1.75}.persona-max-w-\[85\%\]{max-width:85%}.persona-transition{transition:transform .16s ease,background-color .16s ease,box-shadow .16s ease,opacity .16s ease}.persona-translate-y-\[-2px\]{transform:translateY(-2px)}.persona--translate-x-1\/2{transform:translate(-50%)}.persona--translate-y-1\/2{transform:translateY(-50%)}.persona-opacity-0{opacity:0}.persona-opacity-100{opacity:1}.persona-scale-100{transform:scale(1)}.persona-scale-95{transform:scale(.95)}.persona-bg-\[\#f8fafc\]{background-color:#f8fafc}.persona-flex-shrink-0{flex-shrink:0}.persona-min-w-0{min-width:0}.persona-w-4{width:1rem}.persona-w-\[28px\]{width:28px}.persona-w-\[70px\]{width:70px}.persona-flex-1{flex:1 1 0%}.persona-gap-3{gap:.75rem}.persona-bg{background-color:var(--persona-surface, #ffffff)}.persona-inline-flex{display:inline-flex}.persona-text-left{text-align:left}.persona-mb-3{margin-bottom:.75rem}.persona-mt-2{margin-top:.5rem}.persona-h-12,.persona-w-12,.persona-h-10,.persona-w-10,.persona-h-8,.persona-w-8{flex:none}.persona-text-right{text-align:right}.hover\:persona-bg-gray-200:hover{background-color:#e5e7eb}.hover\:persona-bg-persona-container:hover{background-color:var(--persona-container, #f8fafc)}.hover\:persona-text-persona-primary:hover{color:var(--persona-primary, #111827)}.hover\:persona-translate-y-\[-2px\]:hover{transform:translateY(-2px)}.persona-pointer-events-none{pointer-events:none}.persona-pointer-events-auto{pointer-events:auto}.persona-min-h-\[1\.5rem\]{min-height:1.5rem}.persona-min-h-0{min-height:0}.persona-resize-none{resize:none}.persona-z-10{z-index:10}.persona-z-50{z-index:50}.persona-absolute{position:absolute}.persona-right-4{right:1rem}.persona-top-4{top:1rem}.persona-text-2xl{font-size:1.5rem;line-height:2rem}.persona-grid{display:grid}.persona-place-items-center{place-items:center}.persona-relative{position:relative}.persona-overflow-y-auto{overflow-y:auto}.persona-widget-body{overscroll-behavior:contain}.persona-overflow-hidden{overflow:hidden}.persona-min-h-\[320px\]{min-height:320px}.persona-min-h-\[48px\]{min-height:48px}.persona-min-w-\[320px\]{min-width:320px}.persona-max-w-\[420px\]{max-width:420px}.persona-w-\[360px\]{width:360px}.persona-w-\[400px\]{width:400px}.persona-h-\[640px\]{height:640px}.persona-border-transparent{border-color:transparent}.persona-outline-none:focus{outline:none}.persona-border-none:focus{border:none!important;outline:none!important}.persona-widget-composer textarea:focus{border:none!important;outline:none!important;border-width:0!important;border-style:none!important;border-color:transparent!important;box-shadow:none!important}@media (hover: none) and (pointer: coarse){.persona-composer-textarea{font-size:1rem!important}}.persona-widget-composer:focus-within{outline:none!important}.persona-widget-composer:focus-within textarea{border:none!important;outline:none!important}.persona-whitespace-pre-wrap{white-space:pre-wrap}.persona-space-y-1>*+*{margin-top:.25rem}.persona-space-y-3>*+*{margin-top:.75rem}.persona-space-y-4>*+*{margin-top:1rem}.persona-form-card{background-color:var(--persona-surface, #ffffff);border:1px solid rgba(148,163,184,.28);border-radius:var(--persona-radius-md, .375rem);padding:1.25rem;box-shadow:0 10px 30px #0f172a1f}.persona-widget-container{position:relative;border-radius:var(--persona-panel-radius, var(--persona-radius-xl, .75rem))}.persona-widget-composer{border-radius:var(--persona-input-radius, var(--persona-radius-lg, .5rem));box-shadow:var(--persona-composer-shadow, none)}.persona-form-grid,.persona-form-field{display:flex;flex-direction:column}.persona-cursor-pointer{cursor:pointer}.persona-send-button-wrapper{position:relative;display:inline-flex;align-items:center;justify-content:center}.persona-send-button-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background-color:var(--persona-tooltip-background, #111827);color:var(--persona-tooltip-foreground, #ffffff);padding:6px 12px;border-radius:var(--persona-radius-sm, .125rem);font-size:12px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s;z-index:1000}.persona-send-button-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:4px solid transparent;border-top-color:var(--persona-tooltip-background, #111827)}.persona-send-button-wrapper:hover .persona-send-button-tooltip,.persona-send-button-wrapper:focus-within .persona-send-button-tooltip{opacity:1}@media (hover: none),(max-width: 500px){.persona-send-button-wrapper:hover .persona-send-button-tooltip,.persona-send-button-wrapper:focus-within .persona-send-button-tooltip{opacity:0}}.persona-clear-chat-button-wrapper{position:relative;display:inline-flex;align-items:center;justify-content:center}.persona-clear-chat-tooltip{background-color:var(--persona-tooltip-background, #111827);color:var(--persona-tooltip-foreground, #ffffff);padding:6px 12px;border-radius:var(--persona-radius-sm, .125rem);font-size:12px;white-space:nowrap;pointer-events:none;z-index:10000}.persona-clear-chat-tooltip-arrow{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:4px solid transparent;border-top-color:var(--persona-tooltip-background, #111827)}@media (hover: none),(max-width: 500px){.persona-clear-chat-tooltip{display:none!important}}@keyframes persona-typing{0%,to{opacity:.5;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}.persona-animate-typing{animation:persona-typing 1s infinite}.persona-space-x-1>*+*{margin-left:.25rem}.persona-h-5{height:1.25rem}.persona-h-1\.5{height:.375rem}.persona-w-1\.5{width:.375rem}.persona-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@keyframes persona-voice-recording-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}.persona-voice-recording{animation:persona-voice-recording-pulse 1.5s ease-in-out infinite}.persona-voice-recording svg{animation:persona-voice-recording-pulse 1.5s ease-in-out infinite}@keyframes persona-voice-processing-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.persona-voice-processing svg{animation:persona-voice-processing-spin 1.2s linear infinite}@keyframes persona-voice-speaking-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.03)}}.persona-voice-speaking{animation:persona-voice-speaking-pulse 2s ease-in-out infinite}.persona-voice-speaking svg{animation:persona-voice-speaking-pulse 2s ease-in-out infinite}.persona-message-bubble pre{overflow-x:auto;max-width:100%;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;background-color:var(--persona-md-code-block-bg);color:var(--persona-md-code-block-text-color);padding:var(--persona-md-code-block-padding);border-radius:var(--persona-md-code-block-border-radius);margin:.5rem 0;font-size:var(--persona-md-code-block-font-size);line-height:1.5;border:1px solid var(--persona-md-code-block-border-color)}.persona-message-bubble code{word-break:break-word;word-wrap:break-word;white-space:pre-wrap;overflow-wrap:break-word;font-family:ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace;font-size:.875em}.persona-message-bubble pre code{font-size:inherit;background-color:transparent;padding:0;border-radius:0}.persona-message-bubble img{max-width:100%;height:auto;display:block;margin:.5rem 0;border-radius:var(--persona-radius-md, .375rem)}.persona-message-user-bubble{border-radius:var(--persona-message-user-radius, var(--persona-radius-lg, .5rem))}.persona-message-assistant-bubble{border-radius:var(--persona-message-assistant-radius, var(--persona-radius-lg, .5rem));border-color:var(--persona-message-assistant-border, var(--persona-border, #e5e7eb))}[data-persona-root] .persona-message-assistant-bubble.persona-shadow-sm{box-shadow:var(--persona-message-assistant-shadow, 0 1px 2px 0 rgb(0 0 0 / .05))}[data-persona-root] .persona-message-user-bubble.persona-shadow-sm{box-shadow:var(--persona-message-user-shadow, 0 5px 15px rgba(15, 23, 42, .08))}[data-persona-root] .persona-tool-bubble.persona-shadow-sm{box-shadow:var(--persona-tool-bubble-shadow, 0 5px 15px rgba(15, 23, 42, .08))}[data-persona-root] .persona-tool-text-dim{opacity:.5}[data-persona-root] .persona-tool-text-bold{font-weight:600}[data-persona-root] .persona-tool-text-italic{font-style:italic}@keyframes persona-tool-loading-pulse{0%,to{opacity:1}50%{opacity:.4}}[data-persona-root] .persona-tool-loading-pulse{animation:persona-tool-loading-pulse var(--persona-tool-anim-duration, 2s) ease-in-out infinite}@keyframes persona-tool-loading-shimmer{0%,to{opacity:.4}50%{opacity:1}}[data-persona-root] .persona-tool-loading-shimmer .persona-tool-char{display:inline-block;animation:persona-tool-loading-shimmer var(--persona-tool-anim-duration, 2s) ease-in-out infinite;animation-delay:calc(var(--char-index, 0) * 60ms)}@keyframes persona-tool-loading-shimmer-color{0%,to{color:var(--persona-tool-anim-color, currentColor)}50%{color:var(--persona-tool-anim-secondary-color, #3b82f6)}}[data-persona-root] .persona-tool-loading-shimmer-color .persona-tool-char{display:inline-block;animation:persona-tool-loading-shimmer-color var(--persona-tool-anim-duration, 2s) ease-in-out infinite;animation-delay:calc(var(--char-index, 0) * 60ms)}@keyframes persona-tool-loading-rainbow{0%{color:#ef4444}16%{color:#f59e0b}33%{color:#22c55e}50%{color:#06b6d4}66%{color:#3b82f6}83%{color:#8b5cf6}to{color:#ef4444}}[data-persona-root] .persona-tool-loading-rainbow .persona-tool-char{display:inline-block;animation:persona-tool-loading-rainbow var(--persona-tool-anim-duration, 2s) linear infinite;animation-delay:calc(var(--char-index, 0) * 80ms)}@media (prefers-reduced-motion: reduce){[data-persona-root] .persona-tool-loading-pulse,[data-persona-root] .persona-tool-loading-shimmer .persona-tool-char,[data-persona-root] .persona-tool-loading-shimmer-color .persona-tool-char,[data-persona-root] .persona-tool-loading-rainbow .persona-tool-char{animation:none!important}}[data-persona-root] .persona-reasoning-bubble.persona-shadow-sm{box-shadow:var(--persona-reasoning-bubble-shadow, 0 5px 15px rgba(15, 23, 42, .08))}[data-persona-root] .persona-markdown-bubble{color:var(--persona-text, #111827);font-family:var(--persona-md-prose-font-family, inherit)}[data-persona-root] .persona-markdown-bubble p{margin:0 0 1.5em}[data-persona-root] .persona-markdown-bubble p:last-child{margin-bottom:0}[data-persona-root] .persona-markdown-bubble code:not(pre code){background-color:var(--persona-md-inline-code-bg);color:var(--persona-md-inline-code-color, inherit);padding:var(--persona-md-inline-code-padding);border-radius:var(--persona-md-inline-code-border-radius);font-size:var(--persona-md-inline-code-font-size)}[data-persona-root] .persona-markdown-bubble a{color:var(--persona-md-link-color, var(--persona-accent, #0f0f0f));text-decoration:underline}[data-persona-root] .persona-markdown-bubble pre{background-color:var(--persona-md-code-block-bg);border:1px solid var(--persona-md-code-block-border-color);border-radius:var(--persona-radius-md, .375rem);padding:.75rem 1rem;overflow-x:auto;font-size:.8125rem}.persona-code-block-wrapper{position:relative;margin:.5rem 0}.persona-code-block-wrapper pre{margin:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.persona-code-block-header{display:flex;align-items:center;justify-content:space-between;background-color:var(--persona-md-code-block-bg, #f3f4f6);border:1px solid var(--persona-md-code-block-border-color, #e5e7eb);border-bottom:none;border-top-left-radius:var(--persona-md-code-block-border-radius, .375rem);border-top-right-radius:var(--persona-md-code-block-border-radius, .375rem);padding:.25rem .5rem .25rem .75rem;font-size:.75rem;color:var(--persona-text-muted, #6b7280);font-family:ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace}.persona-code-copy-btn{display:inline-flex;align-items:center;gap:.25rem;background:none;border:1px solid transparent;border-radius:.25rem;padding:.25rem .5rem;cursor:pointer;color:var(--persona-text-muted, #6b7280);font-size:.75rem;font-family:inherit;line-height:1;transition:color .15s ease,border-color .15s ease}.persona-code-copy-btn:hover{color:var(--persona-text, #111827);border-color:var(--persona-md-code-block-border-color, #e5e7eb)}.persona-code-copy-btn.persona-code-copied{color:#16a34a}.persona-code-copy-btn.persona-code-copy-generating{cursor:default;opacity:.5}.persona-code-copy-btn.persona-code-copy-generating:hover{color:var(--persona-text-muted, #6b7280);border-color:transparent}.persona-message-bubble a,.persona-message-bubble a:visited,.persona-message-bubble a:hover,.persona-message-bubble a:active{text-decoration:underline}.persona-message-user-bubble a,.persona-message-user-bubble a:visited,.persona-message-user-bubble a:hover,.persona-message-user-bubble a:active{color:inherit;text-decoration:underline}[data-persona-root] .persona-message-assistant-bubble a{color:var(--persona-md-link-color, var(--persona-accent, #0f0f0f))}.persona-message-bubble p{margin:0}.persona-message-bubble p+p{margin-top:.75rem}.persona-message-bubble ul,.persona-message-bubble ol{margin:.5rem 0;padding-left:1.5rem}.persona-message-bubble ul{list-style-type:disc}.persona-message-bubble ol{list-style-type:decimal}.persona-message-bubble li{margin:.25rem 0;padding-left:.25rem}.persona-message-bubble ul ul,.persona-message-bubble ol ul{list-style-type:circle;margin:.25rem 0}.persona-message-bubble ul ul ul,.persona-message-bubble ol ul ul,.persona-message-bubble ul ol ul,.persona-message-bubble ol ol ul{list-style-type:square}.persona-message-bubble ul ol,.persona-message-bubble ol ol{list-style-type:lower-alpha;margin:.25rem 0}.persona-message-user-bubble p{margin:0;color:inherit}.persona-message-user-bubble p+p{margin-top:.75rem}.persona-message-user-bubble ul,.persona-message-user-bubble ol{margin:.5rem 0;padding-left:1.5rem}.persona-message-user-bubble ul{list-style-type:disc}.persona-message-user-bubble ol{list-style-type:decimal}.persona-message-user-bubble li{margin:.25rem 0;padding-left:.25rem;color:inherit}.persona-message-assistant-bubble p,.persona-message-assistant-bubble li{color:inherit}.persona-message-bubble h1,[data-persona-root] .persona-markdown-bubble h1{font-size:var(--persona-md-h1-size);font-weight:var(--persona-md-h1-weight);margin:var(--persona-md-h1-margin);line-height:var(--persona-md-h1-line-height);color:inherit}.persona-message-bubble h2,[data-persona-root] .persona-markdown-bubble h2{font-size:var(--persona-md-h2-size);font-weight:var(--persona-md-h2-weight);margin:var(--persona-md-h2-margin);line-height:var(--persona-md-h2-line-height);color:inherit}.persona-message-bubble h3,[data-persona-root] .persona-markdown-bubble h3{font-size:var(--persona-md-h3-size);font-weight:var(--persona-md-h3-weight);margin:var(--persona-md-h3-margin);line-height:var(--persona-md-h3-line-height);color:inherit}.persona-message-bubble h4,[data-persona-root] .persona-markdown-bubble h4{font-size:var(--persona-md-h4-size);font-weight:var(--persona-md-h4-weight);margin:var(--persona-md-h4-margin);line-height:var(--persona-md-h4-line-height);color:inherit}.persona-message-bubble h5,[data-persona-root] .persona-markdown-bubble h5{font-size:var(--persona-md-h5-size);font-weight:var(--persona-md-h5-weight);margin:var(--persona-md-h5-margin);line-height:var(--persona-md-h5-line-height);color:inherit}.persona-message-bubble h6,[data-persona-root] .persona-markdown-bubble h6{font-size:var(--persona-md-h6-size);font-weight:var(--persona-md-h6-weight);margin:var(--persona-md-h6-margin);line-height:var(--persona-md-h6-line-height);color:inherit}.persona-message-bubble h1:first-child,.persona-message-bubble h2:first-child,.persona-message-bubble h3:first-child,.persona-message-bubble h4:first-child,.persona-message-bubble h5:first-child,.persona-message-bubble h6:first-child{margin-top:0}.persona-message-bubble:has(table){width:100%;max-width:100%;flex-grow:1}.persona-message-bubble table{width:100%;border-collapse:collapse;margin:.5rem 0;font-size:.875rem;overflow:hidden;border-radius:var(--persona-md-table-border-radius);border:1px solid var(--persona-md-table-border-color)}.persona-message-bubble thead{background-color:var(--persona-md-table-header-bg)}.persona-message-bubble th{font-weight:var(--persona-md-table-header-weight);text-align:left;padding:var(--persona-md-table-cell-padding);border-bottom:1px solid var(--persona-md-table-border-color)}.persona-message-bubble td{padding:var(--persona-md-table-cell-padding);border-bottom:1px solid var(--persona-md-table-border-color);text-align:left}.persona-message-bubble tr:last-child td{border-bottom:none}.persona-message-bubble tbody tr:nth-child(2n){background-color:#00000005}.persona-content-streaming table{table-layout:fixed}.persona-content-streaming th,.persona-content-streaming td{overflow-wrap:break-word}.persona-message-bubble hr{border:none;height:var(--persona-md-hr-height);background-color:var(--persona-md-hr-color);margin:var(--persona-md-hr-margin)}.persona-message-bubble blockquote{border-left:var(--persona-md-blockquote-border-width) solid var(--persona-md-blockquote-border-color);padding:var(--persona-md-blockquote-padding);margin:var(--persona-md-blockquote-margin);background-color:var(--persona-md-blockquote-bg);color:var(--persona-md-blockquote-text-color);font-style:var(--persona-md-blockquote-font-style)}.persona-message-bubble blockquote p{margin:0}.persona-message-bubble blockquote p+p{margin-top:.5rem}.persona-message-bubble blockquote blockquote{margin-left:.5rem}.persona-message-bubble code:not(pre code){background-color:var(--persona-md-inline-code-bg);color:var(--persona-md-inline-code-color, inherit);padding:var(--persona-md-inline-code-padding);border-radius:var(--persona-md-inline-code-border-radius);font-size:var(--persona-md-inline-code-font-size)}.persona-message-bubble strong,.persona-message-bubble b{font-weight:var(--persona-md-strong-weight)}.persona-message-bubble em,.persona-message-bubble i{font-style:var(--persona-md-em-style)}.persona-message-user-bubble h1,.persona-message-user-bubble h2,.persona-message-user-bubble h3,.persona-message-user-bubble h4,.persona-message-user-bubble h5,.persona-message-user-bubble h6{color:inherit}.persona-message-user-bubble table,.persona-message-user-bubble th,.persona-message-user-bubble td{border-color:#ffffff4d}.persona-message-user-bubble thead{background-color:#ffffff1a}.persona-message-user-bubble tbody tr:nth-child(2n){background-color:#ffffff0d}.persona-message-user-bubble hr{background-color:#ffffff4d}.persona-message-user-bubble blockquote{border-left-color:#ffffff80;color:inherit;opacity:.9}.persona-message-user-bubble code:not(pre code){background-color:#fff3}.persona-message-bubble{position:relative;overflow-wrap:break-word}@keyframes persona-message-actions-fade-in{0%{opacity:0}to{opacity:1}}.persona-message-actions{display:flex;align-items:center;gap:.25rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--persona-divider, #f1f5f9)}.persona-message-actions:not(.persona-message-actions-hover){animation:persona-message-actions-fade-in .3s ease-out forwards}@keyframes persona-ask-resolved{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}[data-ask-answered=true]{animation:persona-ask-resolved .22s ease-out}@media (prefers-reduced-motion: reduce){[data-ask-answered=true]{animation:none}}.persona-message-actions-left{justify-content:flex-start}.persona-message-actions-center{justify-content:center}.persona-message-actions-right{justify-content:flex-end}.persona-message-actions:not(.persona-message-actions-hover).persona-message-actions-pill{width:fit-content;margin-top:.5rem;padding:.25rem .5rem;border-top:none}.persona-message-actions:not(.persona-message-actions-hover).persona-message-actions-pill.persona-message-actions-right{margin-left:auto}.persona-message-actions:not(.persona-message-actions-hover).persona-message-actions-pill.persona-message-actions-center{margin-left:auto;margin-right:auto}.persona-message-actions:not(.persona-message-actions-hover).persona-message-actions-row{margin-left:-1.25rem;margin-right:-1.25rem;margin-bottom:-.75rem;padding:.5rem 1.25rem;border-radius:0 0 var(--persona-radius-lg, 1.5rem) var(--persona-radius-lg);background:linear-gradient(to top,var(--persona-surface, #ffffff) 70%,transparent);border-top:1px solid var(--persona-divider, #f1f5f9)}@media (hover: hover){.persona-message-actions-hover{opacity:0;pointer-events:none;transition:opacity .15s ease-in-out}.persona-message-actions-hover.persona-message-actions-pill{position:absolute;bottom:.5rem;margin-top:0;padding:.25rem;border-top:none;width:fit-content}.persona-message-actions-hover.persona-message-actions-pill.persona-message-actions-left{left:.75rem;right:auto}.persona-message-actions-hover.persona-message-actions-pill.persona-message-actions-center{left:50%;right:auto;transform:translate(-50%)}.persona-message-actions-hover.persona-message-actions-pill.persona-message-actions-right{right:.75rem;left:auto}.persona-message-actions-hover.persona-message-actions-row{position:absolute;bottom:0;left:0;right:0;margin-top:0;padding:.5rem .75rem;border-top:none;background:linear-gradient(to top,var(--persona-surface, #ffffff) 70%,transparent);border-radius:0 0 var(--persona-radius-lg, 1.5rem) var(--persona-radius-lg, 1.5rem)}.persona-message-bubble:hover .persona-message-actions-hover,.persona-message-bubble:focus-within .persona-message-actions-hover{opacity:1;pointer-events:auto}}@media (hover: none){.persona-message-actions-hover{position:static;opacity:1}}.persona-message-action-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:var(--persona-radius-sm, .125rem);background-color:transparent;color:var(--persona-muted, #6b7280);cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease}.persona-message-action-btn:hover{background-color:var(--persona-container, #f8fafc);color:var(--persona-primary, #111827)}.persona-message-action-btn:active{transform:scale(.95)}.persona-message-action-btn:focus{outline:none;box-shadow:0 0 0 2px var(--persona-accent, #0a0a0a)}.persona-message-action-btn:focus:not(:focus-visible){box-shadow:none}.persona-message-action-btn:focus-visible{box-shadow:0 0 0 2px var(--persona-accent, #0a0a0a)}.persona-message-action-btn.persona-message-action-active{background-color:var(--persona-accent, #0a0a0a);color:#fff}.persona-message-action-btn.persona-message-action-active:hover{background-color:var(--persona-accent, #0a0a0a);color:#fff;opacity:.9}.persona-message-action-btn.persona-message-action-loading svg{animation:persona-voice-processing-spin 1s linear infinite}@media (prefers-reduced-motion: reduce){.persona-message-action-btn.persona-message-action-loading svg{animation:none}}@keyframes persona-vote-pop{0%{transform:scale(1)}40%{transform:scale(1.25)}to{transform:scale(1)}}.persona-message-action-btn.persona-message-action-pop{animation:persona-vote-pop .3s ease}.persona-message-action-btn.persona-message-action-success,.persona-message-action-btn.persona-message-action-success:hover{background-color:#10b981;color:#fff}.persona-message-action-btn svg{width:14px;height:14px;flex-shrink:0}.persona-feedback-container{background:var(--persona-surface, #ffffff);border:1px solid var(--persona-border, #e5e7eb);border-radius:var(--persona-radius-lg, .5rem);box-shadow:0 10px 25px -5px #0000001a,0 8px 10px -6px #0000001a;padding:1.25rem;max-width:100%;margin:.75rem;animation:persona-feedback-fade-in .3s ease-out}@keyframes persona-feedback-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.persona-feedback-content{display:flex;flex-direction:column;gap:1rem}.persona-feedback-header{text-align:center}.persona-feedback-title{margin:0 0 .25rem;font-size:1rem;font-weight:600;color:var(--persona-primary, #111827)}.persona-feedback-subtitle{margin:0;font-size:.875rem;color:var(--persona-muted, #6b7280)}.persona-feedback-rating-csat{display:flex;justify-content:center;gap:.5rem}.persona-feedback-star-btn{background:transparent;border:none;cursor:pointer;padding:.25rem;color:var(--persona-border, #d1d5db);transition:color .2s ease,transform .15s ease}.persona-feedback-star-btn:hover{transform:scale(1.15)}.persona-feedback-star-btn.selected{color:#fbbf24}.persona-feedback-star-btn .persona-feedback-star{width:32px;height:32px}.persona-feedback-star-btn.selected .persona-feedback-star{fill:#fbbf24}.persona-feedback-rating-nps{display:flex;flex-direction:column;gap:.5rem}.persona-feedback-labels{display:flex;justify-content:space-between;font-size:.75rem;color:var(--persona-muted, #6b7280)}.persona-feedback-numbers{display:flex;gap:.25rem;justify-content:center}.persona-feedback-number-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:500;border-radius:var(--persona-radius-sm, .125rem);border:1px solid var(--persona-border, #e5e7eb);background:var(--persona-surface, #ffffff);color:var(--persona-primary, #111827);cursor:pointer;transition:all .2s ease}.persona-feedback-number-btn:hover{border-color:var(--persona-accent, #0a0a0a);background:var(--persona-container, #f3f4f6)}.persona-feedback-number-btn.selected{color:#fff}.persona-feedback-number-btn.persona-feedback-detractor.selected{background:#ef4444;border-color:#ef4444}.persona-feedback-number-btn.persona-feedback-passive.selected{background:#f59e0b;border-color:#f59e0b}.persona-feedback-number-btn.persona-feedback-promoter.selected{background:#22c55e;border-color:#22c55e}.persona-feedback-comment-container{width:100%}.persona-feedback-comment{width:100%;padding:.625rem;font-size:.875rem;font-family:inherit;border:1px solid var(--persona-border, #e5e7eb);border-radius:var(--persona-radius-sm, .125rem);background:var(--persona-surface, #ffffff);color:var(--persona-primary, #111827);resize:vertical;box-sizing:border-box}.persona-feedback-comment:focus{outline:none;border-color:var(--persona-accent, #0a0a0a);box-shadow:0 0 0 2px #1d4ed826}.persona-feedback-comment::placeholder{color:var(--persona-muted, #9ca3af)}.persona-feedback-actions{display:flex;gap:.5rem;justify-content:flex-end}.persona-feedback-btn{padding:.5rem 1rem;font-size:.875rem;font-weight:500;border-radius:var(--persona-radius-sm, .125rem);cursor:pointer;transition:all .2s ease}.persona-feedback-btn-skip{background:transparent;border:1px solid var(--persona-border, #e5e7eb);color:var(--persona-muted, #6b7280)}.persona-feedback-btn-skip:hover{background:var(--persona-container, #f3f4f6);color:var(--persona-primary, #111827)}.persona-feedback-btn-submit{background:var(--persona-accent, #0a0a0a);border:1px solid var(--persona-accent, #0a0a0a);color:#fff}.persona-feedback-btn-submit:hover:not(:disabled){opacity:.9}.persona-feedback-btn-submit:disabled{opacity:.6;cursor:not-allowed}@keyframes persona-feedback-shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}.persona-feedback-shake{animation:persona-feedback-shake .5s ease-in-out}.persona-tool-bubble .persona-border-t,.persona-reasoning-bubble .persona-border-t{border-top-color:var(--cw-border, #e5e7eb);background-color:var(--cw-container, #f9fafb)}.persona-tool-bubble pre{background-color:var(--cw-surface, #ffffff);border-color:var(--cw-border, #f1f5f9)}.persona-tool-bubble button[data-expand-header],.persona-reasoning-bubble button[data-expand-header]{transition:background-color .15s ease}.persona-tool-bubble button[data-expand-header]:hover,.persona-reasoning-bubble button[data-expand-header]:hover{background-color:var(--cw-container, #f8fafc)}[data-persona-root] [data-persona-collapsed-preview]{border-top:1px solid transparent}[data-persona-root] .persona-tool-group{--_rail-x: .5rem;--_rail-w: 2px;--_dot-size: 6px;--_branch-len: .75rem;--_branch-y: 1.5rem;--_rail-color: var(--cw-border, #d1d5db);gap:0}[data-persona-root] .persona-tool-group-summary{position:relative;min-height:1.5rem;padding-left:calc(var(--_rail-x) + var(--_branch-len) + .625rem);margin-bottom:.625rem;display:flex;align-items:center}[data-persona-root] .persona-tool-group-summary:before{content:"";position:absolute;left:var(--_rail-x);top:50%;width:var(--_branch-len);height:var(--_rail-w);background:var(--_rail-color);transform:translateY(-50%)}[data-persona-root] .persona-tool-group-summary:after{content:"";position:absolute;left:var(--_rail-x);top:50%;width:var(--_dot-size);height:var(--_dot-size);border-radius:999px;border:var(--_rail-w) solid var(--_rail-color);background:var(--cw-surface, #fff);transform:translate(-50%,-50%)}[data-persona-root] .persona-tool-group-stack{position:relative;margin-left:var(--_rail-x);padding-left:calc(var(--_branch-len) + .125rem);gap:.625rem}[data-persona-root] .persona-tool-group-stack:before{content:"";position:absolute;left:0;top:calc(-.625rem - (var(--_dot-size) / 2));bottom:calc(100% - var(--_branch-y));width:var(--_rail-w);background:var(--_rail-color);transform:translate(-50%)}[data-persona-root] .persona-tool-group-stack:after{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--_rail-w);background:var(--_rail-color);transform:translate(-50%);z-index:0;pointer-events:none}[data-persona-root] .persona-tool-group-item:last-child{position:relative}[data-persona-root] .persona-tool-group-item{position:relative;z-index:1}[data-persona-root] .persona-tool-group-item:before{content:"";position:absolute;left:calc(-1 * var(--_branch-len) - .125rem);top:var(--_branch-y);width:calc(var(--_branch-len) + .125rem);height:var(--_rail-w);background:var(--_rail-color);transform:translateY(-50%)}[data-persona-root] .persona-tool-group-item:after{content:"";position:absolute;left:calc(-1 * var(--_branch-len) - .125rem);top:var(--_branch-y);width:var(--_dot-size);height:var(--_dot-size);border-radius:999px;border:var(--_rail-w) solid var(--_rail-color);background:var(--cw-surface, #fff);transform:translate(-50%,-50%);z-index:1}.persona-approval-bubble{background-color:var(--cw-surface, #ffffff);border-color:var(--cw-border, #e5e7eb)}.persona-approval-bubble [data-approval-action]{transition:opacity .15s ease,transform .1s ease,background-color .15s ease}.persona-approval-bubble [data-approval-action=approve]:hover{opacity:.85}.persona-approval-bubble [data-approval-action=approve]:active{transform:scale(.97)}.persona-approval-bubble [data-approval-action=deny]:hover{background-color:#dc262614}.persona-approval-bubble [data-approval-action=deny]:active{transform:scale(.97)}.persona-approval-card{width:100%;max-width:100%;box-sizing:border-box;background:var(--persona-approval-bg, var(--persona-surface, #ffffff));border:.5px solid var(--persona-approval-border, var(--persona-border, rgba(11, 11, 11, .1)));border-radius:.75rem;padding:.5rem}.persona-approval-card.persona-shadow-sm{box-shadow:var(--persona-approval-shadow, 0 1px 2px 0 rgba(11, 11, 11, .06), 0 2px 8px 0 rgba(11, 11, 11, .04))}.persona-approval-head{display:flex;align-items:center;gap:.75rem;width:100%;border:none;background:transparent;padding:.4rem .6rem;cursor:pointer;text-align:left;font:inherit;color:var(--persona-text, #0b0b0b);border-radius:.5rem;transition:background .12s ease}.persona-approval-head:hover{background:var(--persona-container, rgba(11, 11, 11, .04))}.persona-approval-head[data-static=true]{cursor:default}.persona-approval-head[data-static=true]:hover{background:transparent}.persona-approval-logo{flex-shrink:0;width:24px;height:24px;display:grid;place-items:center;box-sizing:border-box;border:.5px solid var(--persona-border, rgba(11, 11, 11, .12));border-radius:6.5px;background:var(--persona-surface, #ffffff);box-shadow:0 1px 2px #0b0b0b14;color:var(--persona-muted, #6b7280);overflow:hidden}.persona-approval-logo svg{width:15px;height:15px;display:block}.persona-approval-title{flex:1;min-width:0;font-size:.875rem;line-height:1.4;color:var(--persona-text, #0b0b0b)}.persona-approval-title strong{font-weight:600}.persona-approval-toggle{display:inline-flex;align-items:center;margin-left:.25rem;color:var(--persona-muted, #6b7280);vertical-align:middle;transition:transform .15s ease}.persona-approval-toggle svg{width:.85rem;height:.85rem;display:block}.persona-approval-head[aria-expanded=false] .persona-approval-toggle{transform:rotate(-90deg)}.persona-approval-body{padding:.5rem .6rem .35rem calc(24px + 1.35rem)}.persona-approval-details{margin:0 0 .75rem}.persona-approval-details[hidden]{display:none}.persona-approval-desc{margin:0 0 .5rem;font-size:.8125rem;line-height:1.4;color:var(--persona-muted, #6b7280)}.persona-approval-params{margin:0;padding:.7rem .85rem;border-radius:.625rem;background:var(--persona-container, rgba(11, 11, 11, .04));color:var(--persona-text, #1f2937);font-size:.75rem;line-height:1rem;overflow-x:auto;max-height:9rem}.persona-approval-reason{margin:0 0 .6rem;font-size:.8125rem;line-height:1.4;color:var(--persona-muted, #6b7280)}.persona-approval-reason-label{font-weight:500}.persona-approval-resolved{display:flex;align-items:center;gap:.45rem;margin:.5rem 0;padding:.3rem .15rem;font-size:.8rem;color:var(--persona-muted, #6b7280)}.persona-approval-resolved svg{width:.95rem;height:.95rem;display:block;flex-shrink:0}.persona-approval-resolved-name{font-weight:600}.persona-approval-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.persona-approval-split{position:relative;display:inline-flex}.persona-approval-primary,.persona-approval-caret,.persona-approval-deny{border:none;cursor:pointer;font:inherit;font-size:.875rem;font-weight:500;height:2rem;display:inline-flex;align-items:center;gap:.375rem;transition:background .12s ease,box-shadow .12s ease}.persona-approval-primary{background:var(--persona-approval-approve-bg, var(--persona-button-primary-bg, var(--persona-primary, #111827)));color:var(--persona-button-primary-fg, var(--persona-text-inverse, #ffffff));padding:0 .75rem;border-radius:.5rem 0 0 .5rem}.persona-approval-primary--solo{border-radius:.5rem}.persona-approval-caret{position:relative;background:var(--persona-approval-approve-bg, var(--persona-button-primary-bg, var(--persona-primary, #111827)));color:var(--persona-button-primary-fg, var(--persona-text-inverse, #ffffff));width:2rem;justify-content:center;padding:0;border-radius:0 .5rem .5rem 0}.persona-approval-caret svg{width:.95rem;height:.95rem;display:block}.persona-approval-caret:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:1px;background:var(--persona-button-primary-fg, #ffffff);opacity:.25;transition:opacity .12s ease}.persona-approval-caret:hover:before,.persona-approval-primary:hover+.persona-approval-caret:before{opacity:0}.persona-approval-primary:hover,.persona-approval-caret:hover{box-shadow:inset 0 0 0 999px #ffffff29}.persona-approval-deny{background:var(--persona-approval-deny-bg, var(--persona-container, rgba(11, 11, 11, .04)));color:var(--persona-text, #1f2937);padding:0 .75rem;border-radius:.5rem;box-shadow:inset 0 0 0 .5px var(--persona-border, rgba(0, 0, 0, .1))}.persona-approval-deny:hover{box-shadow:inset 0 0 0 .5px var(--persona-border, rgba(0, 0, 0, .1)),inset 0 0 0 999px #0b0b0b0a}.persona-approval-menu{width:max-content;max-width:18rem;box-sizing:border-box;background:var(--persona-surface, #ffffff);border:.5px solid var(--persona-border, rgba(11, 11, 11, .1));border-radius:.625rem;box-shadow:0 8px 24px #0b0b0b1f,0 2px 6px #0b0b0b14;padding:.25rem;white-space:nowrap}.persona-approval-menu-item{display:flex;align-items:center;gap:.6rem;width:100%;border:none;background:transparent;cursor:pointer;font:inherit;font-size:.875rem;color:var(--persona-text, #1f2937);padding:.45rem .6rem;border-radius:.4rem;text-align:left;transition:background .12s ease}.persona-approval-menu-item:hover{background:var(--persona-container, rgba(11, 11, 11, .06))}.persona-approval-kbd{font-family:inherit;font-size:.75rem;line-height:1;opacity:.7;margin-left:.25rem}.persona-approval-menu-item .persona-approval-kbd{margin-left:auto}@media (min-width: 768px){[data-persona-root] .md\:persona-hidden{display:none!important}}[data-persona-root] .persona-artifact-split-root{gap:var(--persona-artifact-split-gap, .5rem)}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-icon-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--persona-artifact-toolbar-icon-padding, .25rem);border-radius:var(--persona-artifact-toolbar-icon-radius, var(--persona-radius-md, .375rem));border:var(--persona-artifact-toolbar-icon-border, 1px solid var(--persona-border, #e5e7eb));background:var(--persona-artifact-toolbar-icon-bg, var(--persona-surface, #ffffff));color:var(--persona-artifact-doc-toolbar-icon-color, var(--persona-text, #111827));cursor:pointer;line-height:1}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-icon-btn:hover{color:var(--persona-artifact-toolbar-icon-hover-color, inherit);background:var(--persona-artifact-toolbar-icon-hover-bg, var(--persona-container, #f3f4f6))}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-icon-btn[aria-pressed=true]{background:var(--persona-artifact-doc-toggle-active-bg, var(--persona-container, #f3f4f6));border-color:var(--persona-artifact-doc-toggle-active-border, var(--persona-border, #e5e7eb))}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-copy-btn{display:inline-flex;align-items:center;gap:.35rem;padding:var(--persona-artifact-toolbar-copy-padding, .25rem .5rem);border-radius:var(--persona-artifact-toolbar-copy-radius, var(--persona-radius-md, .375rem));border:var(--persona-artifact-toolbar-copy-border, 1px solid var(--persona-border, #e5e7eb));background:var(--persona-artifact-toolbar-copy-bg, var(--persona-surface, #ffffff));color:var(--persona-artifact-toolbar-copy-color, var(--persona-artifact-doc-toolbar-icon-color, var(--persona-text, #111827)));cursor:pointer;font-size:.75rem;line-height:1.25}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-copy-btn:hover{background:var(--persona-artifact-toolbar-icon-hover-bg, var(--persona-container, #f3f4f6))}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-copy-label{font-weight:500}[data-persona-root] .persona-artifact-tab{background:var(--persona-artifact-tab-bg, transparent);border-radius:var(--persona-artifact-tab-radius, .5rem);color:var(--persona-artifact-tab-color, inherit)}[data-persona-root] .persona-artifact-tab.persona-bg-persona-container{background:var(--persona-artifact-tab-active-bg, var(--persona-container, #f3f4f6));border-color:var(--persona-artifact-tab-active-border, var(--persona-border, #e5e7eb))}[data-persona-root] .persona-artifact-toolbar{background:var(--persona-artifact-toolbar-bg, var(--persona-surface, #fff))}[data-persona-root] .persona-artifact-toggle-group{gap:var(--persona-artifact-toolbar-toggle-group-gap, .25rem)}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-view-btn,[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-code-btn{border-radius:var(--persona-artifact-toolbar-toggle-radius, var(--persona-artifact-toolbar-icon-radius, var(--persona-radius-md, .375rem)))}[data-persona-root] .persona-artifact-tab:hover{background:var(--persona-artifact-tab-hover-bg, var(--persona-container, #f3f4f6))}[data-persona-root] .persona-artifact-list{background:var(--persona-artifact-tab-list-bg, transparent);border-bottom-color:var(--persona-artifact-tab-list-border-color, var(--persona-border, #e5e7eb));padding:var(--persona-artifact-tab-list-padding, .5rem)}[data-persona-root] .persona-artifact-toolbar-document{border-bottom:var(--persona-artifact-toolbar-border, 1px solid var(--persona-border, #e5e7eb))}[data-persona-root] .persona-icon-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--persona-icon-btn-padding, .25rem);border-radius:var(--persona-icon-btn-radius, var(--persona-radius-md, .375rem));border:var(--persona-icon-btn-border, 1px solid var(--persona-border, #e5e7eb));background:var(--persona-icon-btn-bg, var(--persona-surface, #ffffff));color:var(--persona-icon-btn-color, var(--persona-text, #111827));cursor:pointer;line-height:1;transition:background-color .15s ease,color .15s ease,border-color .15s ease}[data-persona-root] .persona-icon-btn:hover{background:var(--persona-icon-btn-hover-bg, var(--persona-container, #f3f4f6));color:var(--persona-icon-btn-hover-color, inherit)}[data-persona-root] .persona-icon-btn:focus-visible{outline:2px solid var(--persona-accent, #171717);outline-offset:2px}[data-persona-root] .persona-icon-btn[aria-pressed=true]{background:var(--persona-icon-btn-active-bg, var(--persona-container, #f3f4f6));border-color:var(--persona-icon-btn-active-border, var(--persona-border, #e5e7eb))}[data-persona-root] .persona-label-btn{display:inline-flex;align-items:center;gap:var(--persona-label-btn-gap, .35rem);padding:var(--persona-label-btn-padding, .25rem .5rem);border-radius:var(--persona-label-btn-radius, var(--persona-radius-md, .375rem));border:var(--persona-label-btn-border, 1px solid var(--persona-border, #e5e7eb));background:var(--persona-label-btn-bg, var(--persona-surface, #ffffff));color:var(--persona-label-btn-color, var(--persona-text, #111827));cursor:pointer;font-size:var(--persona-label-btn-font-size, .75rem);font-weight:500;line-height:1.25;white-space:nowrap;transition:background-color .15s ease,color .15s ease}[data-persona-root] .persona-label-btn:hover{background:var(--persona-label-btn-hover-bg, var(--persona-container, #f3f4f6))}[data-persona-root] .persona-label-btn:focus-visible{outline:2px solid var(--persona-accent, #171717);outline-offset:2px}[data-persona-root] .persona-label-btn--sm{padding:var(--persona-label-btn-padding, .25rem .5rem);font-size:var(--persona-label-btn-font-size, .75rem)}[data-persona-root] .persona-label-btn--md{padding:.375rem .75rem;font-size:.8125rem}[data-persona-root] .persona-label-btn--primary{background:var(--persona-primary, #171717);color:var(--persona-text-inverse, #ffffff);border-color:transparent}[data-persona-root] .persona-label-btn--primary:hover{opacity:.9}[data-persona-root] .persona-label-btn--destructive{color:var(--persona-label-btn-destructive-color, #ef4444)}[data-persona-root] .persona-label-btn--ghost{border:none;background:transparent}[data-persona-root] .persona-label-btn--ghost:hover{background:var(--persona-label-btn-hover-bg, var(--persona-container, #f3f4f6))}[data-persona-root] .persona-scroll-to-bottom-indicator{display:inline-flex;align-items:center;justify-content:center;gap:var(--persona-scroll-to-bottom-gap, .5rem);min-height:var(--persona-scroll-to-bottom-size, 40px);border-radius:var(--persona-scroll-to-bottom-radius, var(--persona-radius-full, 9999px));border:1px solid var(--persona-scroll-to-bottom-border, var(--persona-primary, #111827));background:var(--persona-scroll-to-bottom-bg, var(--persona-button-primary-bg, var(--persona-accent, #0f0f0f)));color:var(--persona-scroll-to-bottom-fg, var(--persona-button-primary-fg, var(--persona-text-inverse, #ffffff)));box-shadow:var(--persona-scroll-to-bottom-shadow, 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1));font-size:var(--persona-scroll-to-bottom-font-size, .875rem);line-height:1}[data-persona-root] .persona-scroll-to-bottom-indicator[data-persona-scroll-to-bottom-has-label=true]{padding:var(--persona-scroll-to-bottom-padding, .5rem .875rem)}[data-persona-root] .persona-scroll-to-bottom-indicator[data-persona-scroll-to-bottom-has-label=false]{width:var(--persona-scroll-to-bottom-size, 40px);height:var(--persona-scroll-to-bottom-size, 40px);padding:0;gap:0}[data-persona-root] .persona-scroll-to-bottom-indicator svg{width:var(--persona-scroll-to-bottom-icon-size, 14px);height:var(--persona-scroll-to-bottom-icon-size, 14px)}[data-persona-root] .persona-scroll-to-bottom-indicator [data-persona-scroll-to-bottom-count]{position:absolute;top:-6px;right:-6px;box-sizing:border-box;min-width:18px;height:18px;padding:0 5px;border-radius:var(--persona-radius-full, 9999px);border:1px solid var(--persona-scroll-to-bottom-border, var(--persona-primary, #111827));background:var(--persona-scroll-to-bottom-count-bg, var(--persona-surface, #ffffff));color:var(--persona-scroll-to-bottom-count-fg, var(--persona-primary, #111827));font-size:11px;font-weight:600;line-height:16px;text-align:center}[data-persona-root] .persona-scroll-to-bottom-indicator:hover{opacity:.92}[data-persona-root] .persona-scroll-to-bottom-indicator:focus-visible{outline:2px solid var(--persona-accent, #171717);outline-offset:2px}[data-persona-root] .persona-toggle-group{display:inline-flex;gap:var(--persona-toggle-group-gap, 0)}[data-persona-root] .persona-toggle-group>.persona-icon-btn{border-radius:0}[data-persona-root] .persona-toggle-group>.persona-icon-btn:first-child{border-top-left-radius:var(--persona-toggle-group-radius, var(--persona-icon-btn-radius, var(--persona-radius-md, .375rem)));border-bottom-left-radius:var(--persona-toggle-group-radius, var(--persona-icon-btn-radius, var(--persona-radius-md, .375rem)))}[data-persona-root] .persona-toggle-group>.persona-icon-btn:last-child{border-top-right-radius:var(--persona-toggle-group-radius, var(--persona-icon-btn-radius, var(--persona-radius-md, .375rem)));border-bottom-right-radius:var(--persona-toggle-group-radius, var(--persona-icon-btn-radius, var(--persona-radius-md, .375rem)))}[data-persona-root] .persona-combo-btn{font-size:var(--persona-combo-btn-font-size, .8125rem);font-weight:var(--persona-combo-btn-font-weight, 600);color:var(--persona-combo-btn-color, var(--persona-text, #111827));user-select:none}[data-persona-root] .persona-combo-btn-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-persona-root] .persona-dropdown-menu{z-index:100;min-width:160px;background:var(--persona-dropdown-bg, var(--persona-surface, #fff));border:var(--persona-dropdown-border, 1px solid var(--persona-border, #e5e7eb));border-radius:var(--persona-dropdown-radius, .625rem);padding:.25rem 0;box-shadow:var(--persona-dropdown-shadow, 0 4px 16px rgba(0,0,0,.12))}[data-persona-root] .persona-dropdown-menu button{display:flex;align-items:center;gap:.625rem;width:100%;padding:.5rem .875rem;border:none;background:transparent;color:var(--persona-dropdown-item-color, var(--persona-text, #1f2937));font-size:.8125rem;cursor:pointer;text-align:left;white-space:nowrap}[data-persona-root] .persona-dropdown-menu button:hover{background:var(--persona-dropdown-item-hover-bg, var(--persona-container, #f3f4f6))}[data-persona-root] .persona-dropdown-menu button[data-destructive]{color:var(--persona-dropdown-destructive-color, #ef4444)}[data-persona-root] .persona-dropdown-menu hr{border:none;border-top:1px solid var(--persona-dropdown-hr, var(--persona-border, #e5e7eb));margin:.25rem 0}[data-persona-root] .persona-artifact-split-handle{width:6px;flex-shrink:0;cursor:col-resize;touch-action:none;align-self:stretch;background:transparent;border:none;padding:0;margin:0;box-sizing:border-box}[data-persona-root] .persona-artifact-split-handle:hover,[data-persona-root] .persona-artifact-split-handle:focus-visible{background:color-mix(in srgb,var(--persona-border, #e5e7eb) 55%,transparent);outline:none}[data-persona-root].persona-artifact-narrow-host .persona-artifact-split-handle{display:none!important}@media (max-width: 640px){[data-persona-root] .persona-artifact-split-handle{display:none!important}}@media (min-width: 641px){[data-persona-root] .persona-artifact-pane{width:var(--persona-artifact-pane-width, 40%);max-width:var(--persona-artifact-pane-max-width, 28rem);min-width:var(--persona-artifact-pane-min-width, 0);flex-shrink:0;box-shadow:var(--persona-artifact-pane-shadow, -2px 0 12px rgba(15, 23, 42, .06))}}[data-persona-root] .persona-artifact-pane{border-radius:var(--persona-artifact-pane-radius, 0);overflow:hidden;background-color:var( --persona-artifact-pane-bg, var(--persona-components-artifact-pane-background, var(--persona-surface, #ffffff)) )}[data-persona-root].persona-artifact-appearance-seamless .persona-artifact-split-root{position:relative;gap:0!important}[data-persona-root].persona-artifact-appearance-seamless .persona-artifact-pane{border-left-width:0!important;border-left-color:transparent!important;box-shadow:none!important;background-color:var( --persona-artifact-pane-bg, var(--persona-components-artifact-pane-background, var(--persona-container, #f8fafc)) )}[data-persona-root].persona-artifact-border-full .persona-artifact-pane{border:var(--persona-artifact-pane-border)!important}[data-persona-root].persona-artifact-border-left .persona-artifact-pane{border-top:none!important;border-right:none!important;border-bottom:none!important;border-left:var(--persona-artifact-pane-border-left)!important}[data-persona-root].persona-artifact-appearance-seamless.persona-artifact-border-left .persona-artifact-pane{border-left:var(--persona-artifact-pane-border-left)!important}[data-persona-root].persona-artifact-appearance-seamless.persona-artifact-border-full .persona-artifact-pane{border:var(--persona-artifact-pane-border)!important}@media (min-width: 641px){[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-unified-split .persona-widget-container{border-top-right-radius:0!important;border-bottom-right-radius:0!important}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-unified-split .persona-artifact-pane{border-top-left-radius:0!important;border-bottom-left-radius:0!important;border-top-right-radius:var(--persona-artifact-unified-outer-radius, var(--persona-radius-lg, 1rem))!important;border-bottom-right-radius:var(--persona-artifact-unified-outer-radius, var(--persona-radius-lg, 1rem))!important;overflow:hidden}}[data-persona-root].persona-artifact-narrow-host .persona-artifact-backdrop{position:absolute!important;inset:0!important;z-index:55!important}@media (min-width: 641px){[data-persona-root].persona-artifact-narrow-host .persona-artifact-pane{position:absolute;top:0;right:0;bottom:0;width:min(calc(100% - 1rem),22rem)!important;max-width:22rem!important;z-index:60;transform:translate(100%);transition:transform .2s ease;box-shadow:-4px 0 24px #0000001f}[data-persona-root].persona-artifact-narrow-host .persona-artifact-pane.persona-artifact-drawer-open{transform:translate(0)}}@media (max-width: 640px){[data-persona-root] .persona-artifact-pane{position:fixed;top:0;right:0;bottom:0;width:min(100vw - 1.5rem,22rem);z-index:60;transform:translate(100%);transition:transform .2s ease;box-shadow:-4px 0 24px #0000001f}[data-persona-root] .persona-artifact-pane.persona-artifact-drawer-open{transform:translate(0)}}[data-persona-root] .persona-stream-char,[data-persona-root] .persona-stream-word{display:inline-block;will-change:opacity,transform,filter}[data-persona-root] .persona-stream-word-group{white-space:nowrap}@keyframes persona-stream-typewriter-in{0%{opacity:0}to{opacity:1}}[data-persona-root] .persona-stream-typewriter .persona-stream-char{animation:persona-stream-typewriter-in var(--persona-stream-step, .12s) ease-out both}@keyframes persona-stream-letter-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}[data-persona-root] .persona-stream-letter-rise .persona-stream-char{animation:persona-stream-letter-rise calc(var(--persona-stream-step, .12s) * 2) ease-out both}@keyframes persona-stream-word-fade{0%{opacity:0;filter:blur(4px);transform:translateY(3px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}[data-persona-root] .persona-stream-word-fade .persona-stream-word{animation:persona-stream-word-fade calc(var(--persona-stream-step, .12s) * 3) ease-out both}@keyframes persona-stream-pop-in{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}[data-persona-root] .persona-stream-pop{transform-origin:bottom left;animation:persona-stream-pop-in .4s cubic-bezier(.2,.9,.3,1.4) both}@keyframes persona-stream-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}[data-persona-root] .persona-stream-caret{display:inline-block;width:2px;height:1em;margin-left:1px;vertical-align:-2px;background:currentColor;animation:persona-stream-blink 1s steps(1) infinite}[data-persona-root] .persona-timestamp-inline{display:inline-block;margin-left:.5rem;white-space:nowrap}@keyframes persona-stream-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}[data-persona-root] .persona-stream-skeleton{padding:2px 0;width:260px;max-width:100%}[data-persona-root] .persona-stream-skeleton-line{width:100%;height:10px;border-radius:3px;background:linear-gradient(90deg,color-mix(in srgb,currentColor 12%,transparent),color-mix(in srgb,currentColor 22%,transparent),color-mix(in srgb,currentColor 12%,transparent));background-size:200% 100%;animation:persona-stream-skeleton-shimmer 1.4s linear infinite}@media (prefers-reduced-motion: reduce){[data-persona-root] .persona-stream-typewriter .persona-stream-char,[data-persona-root] .persona-stream-letter-rise .persona-stream-char,[data-persona-root] .persona-stream-word-fade .persona-stream-word,[data-persona-root] .persona-stream-pop,[data-persona-root] .persona-stream-caret,[data-persona-root] .persona-stream-skeleton-line{animation:none!important;opacity:1!important;filter:none!important;transform:none!important;color:inherit!important;background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important}}[data-persona-root] .persona-hidden{display:none!important}[data-persona-root] .persona-ask-stub{padding:.35rem .7rem;border-radius:999px;font-size:.8rem;color:var(--persona-muted, #6b7280);background:var(--persona-container, #f3f4f6);border:1px dashed var(--persona-border, #e5e7eb)}[data-persona-root] .persona-ask-stub-label{font-weight:500}[data-persona-root] .persona-ask-sheet{position:absolute;left:.75rem;right:.75rem;bottom:calc(100% + .5rem);box-sizing:border-box;padding:.85rem 1rem;background:var(--persona-ask-sheet-bg, var(--persona-surface, #ffffff));border:1px solid var(--persona-ask-sheet-border, var(--persona-border, #e5e7eb));border-radius:1rem;box-shadow:var(--persona-ask-sheet-shadow, 0 12px 28px -10px rgba(0, 0, 0, .15), 0 4px 10px -6px rgba(0, 0, 0, .08));transition:transform var(--persona-ask-sheet-duration, .18s) ease,opacity var(--persona-ask-sheet-duration, .18s) ease;opacity:1;transform:translateY(0)}[data-persona-root] .persona-ask-sheet.persona-ask-sheet-enter{opacity:0;transform:translateY(8px)}[data-persona-root] .persona-ask-sheet.persona-ask-sheet-leave{opacity:0;transform:translateY(8px);pointer-events:none}[data-persona-root] .persona-ask-sheet-header{margin-bottom:.55rem}[data-persona-root] .persona-ask-sheet-question{font-size:.92rem;font-weight:500;line-height:1.35;color:var(--persona-text, #1f2937);min-height:1.35em}[data-persona-root] .persona-ask-question-skeleton{display:block;width:60%;height:.85rem;border-radius:.3rem;background:linear-gradient(90deg,var(--persona-container, #f3f4f6) 0%,var(--persona-border, #e5e7eb) 50%,var(--persona-container, #f3f4f6) 100%);background-size:200% 100%;animation:persona-ask-skeleton-shimmer 1.2s ease-in-out infinite;color:transparent}[data-persona-root] .persona-ask-sheet-step-inline{flex:0 0 auto;font-size:.78rem;line-height:1;color:var(--persona-text-muted, #6b7280);font-variant-numeric:tabular-nums;letter-spacing:.01em;white-space:nowrap}[data-persona-root] .persona-ask-sheet-step-inline:empty{display:none}[data-persona-root] .persona-ask-pills{display:flex;flex-direction:column;flex-wrap:nowrap;row-gap:.4rem;column-gap:0}[data-persona-root] .persona-ask-pills--rows{flex-direction:column;flex-wrap:nowrap;gap:.4rem}[data-persona-root] .persona-ask-sheet--pills .persona-ask-pills:not(.persona-ask-pills--rows){flex-direction:row;flex-wrap:wrap;gap:.4rem}[data-persona-root] .persona-ask-sheet--pills .persona-ask-pills:not(.persona-ask-pills--rows) .persona-ask-pill{width:auto;padding:.4rem .9rem;border-radius:var(--persona-ask-pill-radius, 9999px)}[data-persona-root] .persona-ask-pill{display:flex;align-items:center;justify-content:flex-start;width:100%;text-align:left;padding:.65rem .9rem;border-radius:var(--persona-ask-pill-radius, .6rem);background:var(--persona-ask-pill-bg, transparent);color:var(--persona-ask-pill-fg, var(--persona-text, #1f2937));border:1px solid var(--persona-border, #e5e7eb);font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .1s ease}[data-persona-root] .persona-ask-pill:hover:not(:disabled):not(.persona-ask-pill-skeleton):not(.persona-ask-pill-selected):not([aria-pressed=true]){border-color:var(--persona-text, #1f2937);background:var(--persona-container, #f3f4f6)}[data-persona-root] .persona-ask-pill:active{transform:translateY(1px)}[data-persona-root] .persona-ask-pill-selected,[data-persona-root] .persona-ask-pill[aria-pressed=true]{background:var(--persona-ask-pill-bg-selected, var(--persona-accent, #0f0f0f));color:var(--persona-ask-pill-fg-selected, #fafafa);border-color:var(--persona-ask-pill-bg-selected, var(--persona-accent, #0f0f0f))}[data-persona-root] .persona-ask-pill:focus:not(:focus-visible){outline:none}[data-persona-root] .persona-ask-pill:focus-visible{outline:2px solid var(--persona-accent, #0f0f0f);outline-offset:2px}[data-persona-root] .persona-ask-pill-custom{border-style:dashed}[data-persona-root] .persona-ask-pill-skeleton{min-width:5rem;height:2rem;padding:0;border:1px solid var(--persona-border, #e5e7eb);background:linear-gradient(90deg,var(--persona-container, #f3f4f6) 0%,var(--persona-border, #e5e7eb) 50%,var(--persona-container, #f3f4f6) 100%);background-size:200% 100%;animation:persona-ask-skeleton-shimmer 1.2s ease-in-out infinite}@keyframes persona-ask-skeleton-shimmer{0%{background-position:100% 50%}to{background-position:-100% 50%}}[data-persona-root] .persona-ask-row{align-items:stretch;justify-content:space-between;gap:.75rem;padding:.7rem .9rem}[data-persona-root] .persona-ask-row-content{display:flex;flex-direction:column;gap:.15rem;flex:1 1 auto;min-width:0}[data-persona-root] .persona-ask-row-label{font-size:.92rem;font-weight:600;line-height:1.25;color:inherit;white-space:normal;overflow-wrap:anywhere}[data-persona-root] .persona-ask-row-description{font-size:.82rem;font-weight:400;line-height:1.35;color:var(--persona-text-muted, #6b7280);white-space:normal;overflow-wrap:anywhere}[data-persona-root] .persona-ask-pill-selected .persona-ask-row-description,[data-persona-root] .persona-ask-pill[aria-pressed=true] .persona-ask-row-description{color:var(--persona-ask-pill-fg-selected, #fafafa);opacity:.85}[data-persona-root] .persona-ask-row-affordance{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;align-self:center}[data-persona-root] .persona-ask-row-badge{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:.4rem;border:1px solid var(--persona-border, #e5e7eb);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;font-weight:600;color:var(--persona-text-muted, #6b7280);background:transparent}[data-persona-root] .persona-ask-pill-selected .persona-ask-row-badge,[data-persona-root] .persona-ask-pill[aria-pressed=true] .persona-ask-row-badge{border-color:var(--persona-ask-pill-fg-selected, #fafafa);color:var(--persona-ask-pill-fg-selected, #fafafa)}[data-persona-root] .persona-ask-row-check{display:inline-flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;border-radius:.35rem;border:1.5px solid var(--persona-border, #d1d5db);background:transparent;position:relative}[data-persona-root] .persona-ask-pill-selected .persona-ask-row-check,[data-persona-root] .persona-ask-pill[aria-pressed=true] .persona-ask-row-check{background:var(--persona-ask-pill-fg-selected, #fafafa);border-color:var(--persona-ask-pill-fg-selected, #fafafa)}[data-persona-root] .persona-ask-pill-selected .persona-ask-row-check:after,[data-persona-root] .persona-ask-pill[aria-pressed=true] .persona-ask-row-check:after{content:"";width:.45rem;height:.75rem;border-right:2px solid var(--persona-ask-pill-bg-selected, var(--persona-accent, #0f0f0f));border-bottom:2px solid var(--persona-ask-pill-bg-selected, var(--persona-accent, #0f0f0f));transform:rotate(45deg) translate(-1px,-1px)}[data-persona-root] .persona-ask-row.persona-ask-pill-skeleton{height:3rem}[data-persona-root] .persona-ask-row--other{cursor:text}[data-persona-root] .persona-ask-row-input{flex:1;min-width:0;border:none;background:transparent;padding:0;margin:0;font:inherit;font-size:.92rem;color:inherit;outline:none;width:100%}[data-persona-root] .persona-ask-row-input::placeholder{color:var(--persona-text-muted, #6b7280);opacity:1}[data-persona-root] .persona-ask-free-text{width:100%}[data-persona-root] .persona-ask-free-text--rows{margin-top:.4rem}[data-persona-root] .persona-ask-free-text-input{padding:.5rem .8rem;border:1px solid var(--persona-border, #e5e7eb);border-radius:.55rem;font-size:.88rem;background:var(--persona-ask-input-bg, var(--persona-surface, #ffffff));color:var(--persona-text, #1f2937)}[data-persona-root] .persona-ask-free-text-input:focus{outline:2px solid var(--persona-accent, #0f0f0f);outline-offset:1px}[data-persona-root] .persona-ask-free-text-submit,[data-persona-root] .persona-ask-multi-submit{padding:.5rem 1rem;border:none;border-radius:.55rem;background:var(--persona-accent, #0f0f0f);color:#fafafa;font-size:.85rem;font-weight:600;cursor:pointer;transition:opacity .15s ease}[data-persona-root] .persona-ask-free-text-submit:disabled,[data-persona-root] .persona-ask-multi-submit:disabled{opacity:.4;cursor:not-allowed}[data-persona-root] .persona-ask-nav-back,[data-persona-root] .persona-ask-nav-skip{padding:.45rem .85rem;border:1px solid transparent;border-radius:.55rem;background:transparent;color:var(--persona-text-muted, #6b7280);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease}[data-persona-root] .persona-ask-nav-back:hover:not(:disabled),[data-persona-root] .persona-ask-nav-skip:hover:not(:disabled){background:var(--persona-container, #f3f4f6);color:var(--persona-text, #1f2937)}[data-persona-root] .persona-ask-nav-back:disabled{opacity:.35;cursor:not-allowed}[data-persona-root] .persona-ask-nav-next{padding:.5rem 1rem;border:none;border-radius:.55rem;background:var(--persona-accent, #0f0f0f);color:#fafafa;font-size:.85rem;font-weight:600;cursor:pointer;transition:opacity .15s ease}[data-persona-root] .persona-ask-nav-next:disabled{opacity:.4;cursor:not-allowed}@media (prefers-reduced-motion: reduce){[data-persona-root] .persona-ask-sheet,[data-persona-root] .persona-ask-pill-skeleton,[data-persona-root] .persona-ask-question-skeleton{transition:none!important;animation:none!important}}.persona-widget-wrapper[data-persona-composer-bar]{display:flex;flex-direction:column;transition:max-width .22s ease,bottom .22s ease,top .22s ease,left .22s ease,right .22s ease,transform .22s ease,border-radius .22s ease,height .22s ease,width .22s ease}.persona-widget-wrapper[data-persona-composer-bar][data-expanded-size=modal],.persona-widget-wrapper[data-persona-composer-bar][data-expanded-size=anchored]{transition:none}.persona-pill-composer{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:6px 14px;border-radius:9999px;background:var(--persona-surface, #ffffff);border:1px solid var(--persona-border, #e5e7eb);box-shadow:0 6px 24px #0f172a1a,0 1px 2px #0f172a0a}.persona-pill-composer .persona-composer-textarea{min-height:24px;width:100%;padding:4px 0}.persona-pill-composer__left,.persona-pill-composer__right{display:flex;align-items:center;gap:4px}.persona-widget-footer--pill{background:transparent;border-top:none;padding:0;display:flex;flex-direction:column;gap:8px}.persona-pill-composer__previews{padding:0 8px}[data-persona-composer-bar][data-state=collapsed] .persona-composer-overlay{display:none}.persona-widget-pill-root{position:fixed;bottom:16px;left:50%;transform:translate(-50%);width:90vw;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:8px}@media (min-width: 640px){.persona-widget-pill-root{width:70vw}}@media (min-width: 1024px){.persona-widget-pill-root{width:50vw}}[data-persona-composer-bar][data-state=collapsed] .persona-widget-container{display:none}.persona-pill-peek{display:flex;align-items:center;gap:8px;padding:6px 14px;background:#ffffffc7;-webkit-backdrop-filter:blur(10px) saturate(1.5);backdrop-filter:blur(10px) saturate(1.5);border:1px solid rgba(0,0,0,.06);border-radius:9999px;box-shadow:0 2px 8px #0f172a0f;color:var(--persona-primary, #111827);font:inherit;font-size:13px;line-height:1.4;cursor:pointer;opacity:0;pointer-events:none;transform:translateY(2px);transition:opacity .15s ease,transform .15s ease,background-color .15s ease;text-align:left;width:100%;align-self:stretch}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.persona-pill-peek{background:#fffffff2}}.persona-pill-peek--visible{opacity:1;pointer-events:auto;transform:translateY(0)}.persona-pill-peek:hover{background:#ffffffeb}.persona-pill-peek__icon,.persona-pill-peek__caret{display:inline-flex;flex-shrink:0;color:currentColor}.persona-pill-peek__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;min-width:0}[data-persona-root] .persona-pill-peek__text .persona-stream-char,[data-persona-root] .persona-pill-peek__text .persona-stream-word{vertical-align:baseline}[data-persona-root] .persona-pill-peek__text .persona-pill-peek__skeleton{display:inline-flex;vertical-align:middle;width:100%;max-width:200px;padding:0}[data-persona-root] .persona-pill-peek__text .persona-pill-peek__skeleton .persona-stream-skeleton-line{height:8px}.persona-widget-wrapper[data-persona-composer-bar][data-state=expanded][data-expanded-size=fullscreen]{inset:0;transform:none;max-width:none;width:100%;height:100%;border-radius:0}.persona-widget-wrapper[data-persona-composer-bar][data-expanded-size=fullscreen] .persona-widget-body{padding-bottom:0}.persona-widget-wrapper[data-persona-composer-bar][data-expanded-size=fullscreen] .persona-widget-body>:last-child{padding-bottom:calc(var(--persona-pill-bottom, 16px) + var(--persona-pill-area-height, 80px) + 16px)}@keyframes persona-composer-bar-fade-in{0%{opacity:0}to{opacity:1}}.persona-widget-wrapper[data-persona-composer-bar][data-state=expanded] .persona-widget-container{animation:persona-composer-bar-fade-in .22s ease both}.persona-widget-wrapper[data-persona-composer-bar][data-state=expanded] .persona-widget-body{animation:persona-composer-bar-fade-in .2s ease .22s both}@media (prefers-reduced-motion: reduce){.persona-widget-wrapper[data-persona-composer-bar]{transition:none!important}.persona-widget-wrapper[data-persona-composer-bar][data-state=expanded] .persona-widget-container,.persona-widget-wrapper[data-persona-composer-bar][data-state=expanded] .persona-widget-body{animation:none!important}}[data-persona-root] .persona-event-toolbar{container-type:inline-size}@container (max-width: 390px){[data-persona-root] .persona-event-copy-all{display:none}}
|
|
1
|
+
[data-persona-root]{all:initial;font-family:var(--persona-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif);font-size:var(--persona-font-size, 1rem);font-weight:var(--persona-font-weight, 400);line-height:var(--persona-line-height, 1.5);--persona-md-code-block-bg: var(--persona-container, #f3f4f6);--persona-md-code-block-border-color: var(--persona-border, #e5e7eb);--persona-md-inline-code-bg: var(--persona-container, #f3f4f6);--persona-md-inline-code-color: var(--persona-text, #111827);--persona-md-table-border-color: var(--persona-border, #e5e7eb);--persona-md-table-header-bg: var(--persona-container, #f8fafc);--persona-md-hr-color: var(--persona-divider, #e5e7eb);--persona-md-blockquote-border-color: var(--persona-accent, #0f0f0f);--persona-md-blockquote-text-color: var(--persona-muted, #6b7280)}[data-persona-root] *{box-sizing:border-box}.persona-flex{display:flex}.persona-h-full{height:100%}.persona-h-1{height:.25rem}.persona-w-full{width:100%}.persona-flex-col{flex-direction:column}.persona-flex-wrap{flex-wrap:wrap}.persona-items-center{align-items:center}.persona-items-end{align-items:flex-end}.persona-items-start{align-items:flex-start}.persona-justify-center{justify-content:center}.persona-justify-between{justify-content:space-between}.persona-justify-end{justify-content:flex-end}.persona-gap-1{gap:.25rem}.persona-gap-2{gap:.5rem}.persona-gap-1\.5{gap:.375rem}.persona-gap-6{gap:1.5rem}[data-persona-root] .persona-widget-container .persona-attachment-drop-overlay{display:none;position:absolute;inset:var(--persona-drop-overlay-inset, 0);z-index:50;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;pointer-events:none;background:var(--persona-drop-overlay-bg, rgba(59, 130, 246, .08));-webkit-backdrop-filter:blur(var(--persona-drop-overlay-blur, 8px));backdrop-filter:blur(var(--persona-drop-overlay-blur, 8px));border:var(--persona-drop-overlay-border, 2px dashed rgba(59, 130, 246, .4));border-radius:var(--persona-drop-overlay-radius, inherit);transition:opacity .15s ease}[data-persona-root] .persona-widget-container .persona-attachment-drop-overlay .persona-drop-overlay-label{font-size:var(--persona-drop-overlay-label-size, .875rem);color:var(--persona-drop-overlay-label-color, rgba(59, 130, 246, .8));font-weight:500;user-select:none}[data-persona-root] .persona-widget-container.persona-attachment-drop-active .persona-attachment-drop-overlay{display:flex}[data-persona-root]{--persona-radius-sm: .125rem;--persona-radius-md: .375rem;--persona-radius-lg: .5rem;--persona-radius-xl: .75rem;--persona-launcher-radius: 9999px;--persona-button-radius: 9999px;--persona-panel-radius: var(--persona-radius-xl);--persona-input-radius: var(--persona-radius-lg);--persona-message-user-radius: var(--persona-radius-lg);--persona-message-assistant-radius: var(--persona-radius-lg);--persona-md-h1-size: 1.5rem;--persona-md-h1-weight: 700;--persona-md-h1-margin: 1rem 0 .5rem;--persona-md-h1-line-height: 1.25;--persona-md-h2-size: 1.25rem;--persona-md-h2-weight: 700;--persona-md-h2-margin: .875rem 0 .5rem;--persona-md-h2-line-height: 1.3;--persona-md-h3-size: 1.125rem;--persona-md-h3-weight: 600;--persona-md-h3-margin: .75rem 0 .375rem;--persona-md-h3-line-height: 1.4;--persona-md-h4-size: 1rem;--persona-md-h4-weight: 600;--persona-md-h4-margin: .625rem 0 .25rem;--persona-md-h4-line-height: 1.5;--persona-md-h5-size: .875rem;--persona-md-h5-weight: 600;--persona-md-h5-margin: .5rem 0 .25rem;--persona-md-h5-line-height: 1.5;--persona-md-h6-size: .75rem;--persona-md-h6-weight: 600;--persona-md-h6-margin: .5rem 0 .25rem;--persona-md-h6-line-height: 1.5;--persona-md-table-border-color: var(--persona-border, #e5e7eb);--persona-md-table-header-bg: var(--persona-container, #f8fafc);--persona-md-table-header-weight: 600;--persona-md-table-cell-padding: .5rem .75rem;--persona-md-table-border-radius: .375rem;--persona-md-hr-color: var(--persona-divider, #e5e7eb);--persona-md-hr-height: 1px;--persona-md-hr-margin: 1rem 0;--persona-md-blockquote-border-color: #171717;--persona-md-blockquote-border-width: 3px;--persona-md-blockquote-padding: .5rem 1rem;--persona-md-blockquote-margin: .5rem 0;--persona-md-blockquote-bg: transparent;--persona-md-blockquote-text-color: #6b7280;--persona-md-blockquote-font-style: italic;--persona-md-code-block-bg: var(--persona-container, #f3f4f6);--persona-md-code-block-border-color: var(--persona-border, #e5e7eb);--persona-md-code-block-text-color: inherit;--persona-md-code-block-padding: .75rem;--persona-md-code-block-border-radius: .375rem;--persona-md-code-block-font-size: .875rem;--persona-md-inline-code-bg: #f3f4f6;--persona-md-inline-code-padding: .125rem .375rem;--persona-md-inline-code-border-radius: .25rem;--persona-md-inline-code-font-size: .875em;--persona-md-strong-weight: 600;--persona-md-em-style: italic}.persona-rounded-xl{border-radius:var(--persona-radius-sm)}.persona-rounded-lg{border-radius:var(--persona-radius-md)}.persona-rounded-2xl{border-radius:var(--persona-radius-lg)}.persona-rounded{border-radius:var(--persona-radius-sm, .125rem)}.persona-rounded-md{border-radius:var(--persona-radius-md, .375rem)}.persona-rounded-b{border-bottom-left-radius:var(--persona-radius-sm, .125rem);border-bottom-right-radius:var(--persona-radius-sm, .125rem)}.persona-rounded-full,.persona-rounded-launcher{border-radius:var(--persona-launcher-radius)}.persona-rounded-button{border-radius:var(--persona-button-radius)}.persona-overflow-auto{overflow:auto}.persona-max-h-\[300px\]{max-height:300px}.persona-bg-persona-surface{background-color:var(--persona-surface, #ffffff)}.persona-bg-persona-container{background-color:var(--persona-container, #f8fafc)}.persona-bg-persona-input-background{background-color:var(--persona-input-background, #ffffff)}.persona-bg-white{background-color:#fff}.persona-bg-transparent{background-color:transparent}.persona-bg-gray-100{background-color:#f3f4f6}.persona-bg-gray-200{background-color:#e5e7eb}.persona-text-persona-primary{color:var(--persona-primary, #171717)}.persona-text-persona-call-to-action{color:var(--persona-call-to-action, var(--persona-text-inverse, #ffffff))}.persona-text-persona-muted{color:var(--persona-muted, #6b7280)}.persona-text-white{color:#fff}.persona-bg-persona-accent{background-color:var(--persona-accent, #0f0f0f)}.persona-bg-persona-primary{background-color:var(--persona-button-primary-bg, var(--persona-primary, #111827))}.persona-italic{font-style:italic}.persona-text-base{font-size:1rem;line-height:1.5rem}.persona-text-sm{font-size:.875rem;line-height:1.25rem}.persona-text-xs{font-size:.75rem;line-height:1rem}.persona-text-xxs{font-size:.5rem;line-height:1rem}.persona-text-lg{font-size:1.125rem;line-height:1.75rem}.persona-text-xl{font-size:1.25rem;line-height:1.75rem}.persona-font-semibold{font-weight:600}.persona-font-medium{font-weight:500}.persona-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.persona-text-\[11px\]{font-size:11px}.persona-text-center{text-align:center}.persona-text-persona-secondary{color:var(--persona-secondary, #4b5563)}.persona-leading-none{line-height:1}.persona-whitespace-nowrap{white-space:nowrap}.persona-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.persona-break-all{word-break:break-all}.persona-break-words{overflow-wrap:break-word;word-break:break-word}.persona-px-4{padding-left:1rem;padding-right:1rem}.persona-px-5{padding-left:1.25rem;padding-right:1.25rem}.persona-px-6{padding-left:1.5rem;padding-right:1.5rem}.persona-py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.persona-py-3{padding-top:.75rem;padding-bottom:.75rem}.persona-py-4{padding-top:1rem;padding-bottom:1rem}.persona-py-5{padding-top:1.25rem;padding-bottom:1.25rem}.persona-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.persona-py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.persona-pr-3{padding-right:.75rem}.persona-pl-3{padding-left:.75rem}.persona-pl-7{padding-left:1.75rem}.persona-pr-7{padding-right:1.75rem}.persona-pl-8{padding-left:2rem}.persona-pb-0{padding-bottom:0}.persona-p-6{padding:1.5rem}.persona-p-0{padding:0}.persona-p-3{padding:.75rem}.persona-px-2{padding-left:.5rem;padding-right:.5rem}.persona-px-2\.5{padding-left:.625rem;padding-right:.625rem}.persona-px-3{padding-left:.75rem;padding-right:.75rem}.persona-py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.persona-py-1{padding-top:.25rem;padding-bottom:.25rem}.persona-py-2{padding-top:.5rem;padding-bottom:.5rem}.persona-ml-auto{margin-left:auto}.persona-m-0{margin:0}.persona-mb-1{margin-bottom:.25rem}.persona-ml-4{margin-left:1rem}.persona-mr-3{margin-right:.75rem}.disabled\:persona-opacity-50:disabled{opacity:.5}.persona-shadow-2xl{box-shadow:0 30px 60px -15px #0f172a59}.persona-shadow-sm{box-shadow:0 5px 15px #0f172a14}.persona-shadow-md{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.persona-shadow-lg{box-shadow:0 20px 40px #0f172a2e}.persona-border{border-width:1px;border-style:solid;border-color:#94a3b847}.persona-border-none{border:none}.persona-border-b{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#94a3b847}.persona-border-gray-100{border-color:#f1f5f9}.persona-border-persona-secondary{border-color:var(--persona-secondary, #7c3aed)}.persona-border-persona-border{border-color:var(--persona-border, #e5e7eb)}.persona-border-t{border-top-width:1px;border-top-style:solid;border-top-color:#94a3b847}.persona-border-t-persona-border{border-top-width:1px;border-top-style:solid;border-top-color:var(--persona-border, #f1f5f9)}.persona-border-b-persona-border{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:var(--persona-border, #f1f5f9)}.persona-border-t-persona-divider{border-top-width:1px;border-top-style:solid;border-top-color:var(--persona-divider, #f1f5f9)}.persona-border-b-persona-divider{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:var(--persona-divider, #f1f5f9)}.persona-border-persona-divider{border-color:var(--persona-divider, #f1f5f9)}.persona-border-persona-message-border{border-color:var(--persona-message-border, #f1f5f9)}.persona-fixed{position:fixed}.persona-bottom-6{bottom:1.5rem}.persona-top-6{top:1.5rem}.persona-right-6{right:1.5rem}.persona-left-6{left:1.5rem}.persona-top-1\/2{top:50%}.persona-left-1\/2{left:50%}.persona-bottom-3{bottom:.75rem}.persona-right-5{right:1.25rem}.persona-h-8{height:2rem}.persona-w-8{width:2rem}.persona-h-10{height:2.5rem}.persona-w-10{width:2.5rem}.persona-h-12{height:3rem}.persona-w-12{width:3rem}.persona-leading-relaxed{line-height:1.75}.persona-max-w-\[85\%\]{max-width:85%}.persona-transition{transition:transform .16s ease,background-color .16s ease,box-shadow .16s ease,opacity .16s ease}.persona-translate-y-\[-2px\]{transform:translateY(-2px)}.persona--translate-x-1\/2{transform:translate(-50%)}.persona--translate-y-1\/2{transform:translateY(-50%)}.persona-opacity-0{opacity:0}.persona-opacity-100{opacity:1}.persona-scale-100{transform:scale(1)}.persona-scale-95{transform:scale(.95)}.persona-bg-\[\#f8fafc\]{background-color:#f8fafc}.persona-flex-shrink-0,.persona-shrink-0{flex-shrink:0}.persona-min-w-0{min-width:0}.persona-w-4{width:1rem}.persona-w-\[28px\]{width:28px}.persona-w-\[70px\]{width:70px}.persona-flex-1{flex:1 1 0%}.persona-gap-3{gap:.75rem}.persona-bg{background-color:var(--persona-surface, #ffffff)}.persona-inline-flex{display:inline-flex}.persona-text-left{text-align:left}.persona-mb-3{margin-bottom:.75rem}.persona-mt-2{margin-top:.5rem}.persona-h-12,.persona-w-12,.persona-h-10,.persona-w-10,.persona-h-8,.persona-w-8{flex:none}.persona-text-right{text-align:right}.hover\:persona-bg-gray-200:hover{background-color:#e5e7eb}.hover\:persona-bg-persona-container:hover{background-color:var(--persona-container, #f8fafc)}.hover\:persona-text-persona-primary:hover{color:var(--persona-primary, #111827)}.hover\:persona-translate-y-\[-2px\]:hover{transform:translateY(-2px)}.persona-pointer-events-none{pointer-events:none}.persona-pointer-events-auto{pointer-events:auto}.persona-min-h-\[1\.5rem\]{min-height:1.5rem}.persona-min-h-0{min-height:0}.persona-resize-none{resize:none}.persona-z-10{z-index:10}.persona-z-50{z-index:50}.persona-absolute{position:absolute}.persona-right-4{right:1rem}.persona-top-4{top:1rem}.persona-text-2xl{font-size:1.5rem;line-height:2rem}.persona-grid{display:grid}.persona-place-items-center{place-items:center}.persona-relative{position:relative}.persona-overflow-y-auto{overflow-y:auto}.persona-overflow-x-auto{overflow-x:auto}.persona-widget-body{overscroll-behavior:contain}.persona-overflow-hidden{overflow:hidden}.persona-min-h-\[320px\]{min-height:320px}.persona-min-h-\[48px\]{min-height:48px}.persona-min-w-\[320px\]{min-width:320px}.persona-max-w-\[420px\]{max-width:420px}.persona-w-\[360px\]{width:360px}.persona-w-\[400px\]{width:400px}.persona-h-\[640px\]{height:640px}.persona-border-transparent{border-color:transparent}.persona-outline-none:focus{outline:none}.persona-border-none:focus{border:none!important;outline:none!important}.persona-widget-composer textarea:focus{border:none!important;outline:none!important;border-width:0!important;border-style:none!important;border-color:transparent!important;box-shadow:none!important}@media (hover: none) and (pointer: coarse){.persona-composer-textarea{font-size:1rem!important}}.persona-widget-composer:focus-within{outline:none!important}.persona-widget-composer:focus-within textarea{border:none!important;outline:none!important}.persona-whitespace-pre-wrap{white-space:pre-wrap}.persona-space-y-1>*+*{margin-top:.25rem}.persona-space-y-3>*+*{margin-top:.75rem}.persona-space-y-4>*+*{margin-top:1rem}.persona-form-card{background-color:var(--persona-surface, #ffffff);border:1px solid rgba(148,163,184,.28);border-radius:var(--persona-radius-md, .375rem);padding:1.25rem;box-shadow:0 10px 30px #0f172a1f}.persona-widget-container{position:relative;border-radius:var(--persona-panel-radius, var(--persona-radius-xl, .75rem))}.persona-widget-composer{border-radius:var(--persona-input-radius, var(--persona-radius-lg, .5rem));box-shadow:var(--persona-composer-shadow, none)}.persona-form-grid,.persona-form-field{display:flex;flex-direction:column}.persona-cursor-pointer{cursor:pointer}.persona-send-button-wrapper{position:relative;display:inline-flex;align-items:center;justify-content:center}.persona-send-button-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background-color:var(--persona-tooltip-background, #111827);color:var(--persona-tooltip-foreground, #ffffff);padding:6px 12px;border-radius:var(--persona-radius-sm, .125rem);font-size:12px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s;z-index:1000}.persona-send-button-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:4px solid transparent;border-top-color:var(--persona-tooltip-background, #111827)}.persona-send-button-wrapper:hover .persona-send-button-tooltip,.persona-send-button-wrapper:focus-within .persona-send-button-tooltip{opacity:1}@media (hover: none),(max-width: 500px){.persona-send-button-wrapper:hover .persona-send-button-tooltip,.persona-send-button-wrapper:focus-within .persona-send-button-tooltip{opacity:0}}.persona-clear-chat-button-wrapper{position:relative;display:inline-flex;align-items:center;justify-content:center}.persona-clear-chat-tooltip{background-color:var(--persona-tooltip-background, #111827);color:var(--persona-tooltip-foreground, #ffffff);padding:6px 12px;border-radius:var(--persona-radius-sm, .125rem);font-size:12px;white-space:nowrap;pointer-events:none;z-index:10000}.persona-clear-chat-tooltip-arrow{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:4px solid transparent;border-top-color:var(--persona-tooltip-background, #111827)}@media (hover: none),(max-width: 500px){.persona-clear-chat-tooltip{display:none!important}}@keyframes persona-typing{0%,to{opacity:.5;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}.persona-animate-typing{animation:persona-typing 1s infinite}.persona-space-x-1>*+*{margin-left:.25rem}.persona-h-5{height:1.25rem}.persona-h-1\.5{height:.375rem}.persona-w-1\.5{width:.375rem}.persona-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@keyframes persona-voice-recording-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}.persona-voice-recording{animation:persona-voice-recording-pulse 1.5s ease-in-out infinite}.persona-voice-recording svg{animation:persona-voice-recording-pulse 1.5s ease-in-out infinite}@keyframes persona-voice-processing-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.persona-voice-processing svg{animation:persona-voice-processing-spin 1.2s linear infinite}@keyframes persona-voice-speaking-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.03)}}.persona-voice-speaking{animation:persona-voice-speaking-pulse 2s ease-in-out infinite}.persona-voice-speaking svg{animation:persona-voice-speaking-pulse 2s ease-in-out infinite}.persona-message-bubble pre{overflow-x:auto;max-width:100%;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;background-color:var(--persona-md-code-block-bg);color:var(--persona-md-code-block-text-color);padding:var(--persona-md-code-block-padding);border-radius:var(--persona-md-code-block-border-radius);margin:.5rem 0;font-size:var(--persona-md-code-block-font-size);line-height:1.5;border:1px solid var(--persona-md-code-block-border-color)}.persona-message-bubble code{word-break:break-word;word-wrap:break-word;white-space:pre-wrap;overflow-wrap:break-word;font-family:ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace;font-size:.875em}.persona-message-bubble pre code{font-size:inherit;background-color:transparent;padding:0;border-radius:0}.persona-message-bubble img{max-width:100%;height:auto;display:block;margin:.5rem 0;border-radius:var(--persona-radius-md, .375rem)}.persona-message-user-bubble{border-radius:var(--persona-message-user-radius, var(--persona-radius-lg, .5rem))}.persona-message-assistant-bubble{border-radius:var(--persona-message-assistant-radius, var(--persona-radius-lg, .5rem));border-color:var(--persona-message-assistant-border, var(--persona-border, #e5e7eb))}[data-persona-root] .persona-message-assistant-bubble.persona-shadow-sm{box-shadow:var(--persona-message-assistant-shadow, 0 1px 2px 0 rgb(0 0 0 / .05))}[data-persona-root] .persona-message-user-bubble.persona-shadow-sm{box-shadow:var(--persona-message-user-shadow, 0 5px 15px rgba(15, 23, 42, .08))}[data-persona-root] .persona-tool-bubble.persona-shadow-sm{box-shadow:var(--persona-tool-bubble-shadow, 0 5px 15px rgba(15, 23, 42, .08))}[data-persona-root] .persona-tool-text-dim{opacity:.5}[data-persona-root] .persona-tool-text-bold{font-weight:600}[data-persona-root] .persona-tool-text-italic{font-style:italic}@keyframes persona-tool-loading-pulse{0%,to{opacity:1}50%{opacity:.4}}[data-persona-root] .persona-tool-loading-pulse{animation:persona-tool-loading-pulse var(--persona-tool-anim-duration, 2s) ease-in-out infinite}@keyframes persona-tool-loading-shimmer{0%,to{opacity:.4}50%{opacity:1}}[data-persona-root] .persona-tool-loading-shimmer .persona-tool-char{display:inline-block;animation:persona-tool-loading-shimmer var(--persona-tool-anim-duration, 2s) ease-in-out infinite;animation-delay:calc(var(--char-index, 0) * 60ms)}@keyframes persona-tool-loading-shimmer-color{0%,to{color:var(--persona-tool-anim-color, currentColor)}50%{color:var(--persona-tool-anim-secondary-color, #3b82f6)}}[data-persona-root] .persona-tool-loading-shimmer-color .persona-tool-char{display:inline-block;animation:persona-tool-loading-shimmer-color var(--persona-tool-anim-duration, 2s) ease-in-out infinite;animation-delay:calc(var(--char-index, 0) * 60ms)}@keyframes persona-tool-loading-rainbow{0%{color:#ef4444}16%{color:#f59e0b}33%{color:#22c55e}50%{color:#06b6d4}66%{color:#3b82f6}83%{color:#8b5cf6}to{color:#ef4444}}[data-persona-root] .persona-tool-loading-rainbow .persona-tool-char{display:inline-block;animation:persona-tool-loading-rainbow var(--persona-tool-anim-duration, 2s) linear infinite;animation-delay:calc(var(--char-index, 0) * 80ms)}@media (prefers-reduced-motion: reduce){[data-persona-root] .persona-tool-loading-pulse,[data-persona-root] .persona-tool-loading-shimmer .persona-tool-char,[data-persona-root] .persona-tool-loading-shimmer-color .persona-tool-char,[data-persona-root] .persona-tool-loading-rainbow .persona-tool-char{animation:none!important}}[data-persona-root] .persona-reasoning-bubble.persona-shadow-sm{box-shadow:var(--persona-reasoning-bubble-shadow, 0 5px 15px rgba(15, 23, 42, .08))}[data-persona-root] .persona-markdown-bubble{color:var(--persona-text, #111827);font-family:var(--persona-md-prose-font-family, inherit)}[data-persona-root] .persona-markdown-bubble p{margin:0 0 1.5em}[data-persona-root] .persona-markdown-bubble p:last-child{margin-bottom:0}[data-persona-root] .persona-markdown-bubble code:not(pre code){background-color:var(--persona-md-inline-code-bg);color:var(--persona-md-inline-code-color, inherit);padding:var(--persona-md-inline-code-padding);border-radius:var(--persona-md-inline-code-border-radius);font-size:var(--persona-md-inline-code-font-size)}[data-persona-root] .persona-markdown-bubble a{color:var(--persona-md-link-color, var(--persona-accent, #0f0f0f));text-decoration:underline}[data-persona-root] .persona-markdown-bubble pre{background-color:var(--persona-md-code-block-bg);border:1px solid var(--persona-md-code-block-border-color);border-radius:var(--persona-radius-md, .375rem);padding:.75rem 1rem;overflow-x:auto;font-size:.8125rem}.persona-code-block-wrapper{position:relative;margin:.5rem 0}.persona-code-block-wrapper pre{margin:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.persona-code-block-header{display:flex;align-items:center;justify-content:space-between;background-color:var(--persona-md-code-block-bg, #f3f4f6);border:1px solid var(--persona-md-code-block-border-color, #e5e7eb);border-bottom:none;border-top-left-radius:var(--persona-md-code-block-border-radius, .375rem);border-top-right-radius:var(--persona-md-code-block-border-radius, .375rem);padding:.25rem .5rem .25rem .75rem;font-size:.75rem;color:var(--persona-text-muted, #6b7280);font-family:ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace}.persona-code-copy-btn{display:inline-flex;align-items:center;gap:.25rem;background:none;border:1px solid transparent;border-radius:.25rem;padding:.25rem .5rem;cursor:pointer;color:var(--persona-text-muted, #6b7280);font-size:.75rem;font-family:inherit;line-height:1;transition:color .15s ease,border-color .15s ease}.persona-code-copy-btn:hover{color:var(--persona-text, #111827);border-color:var(--persona-md-code-block-border-color, #e5e7eb)}.persona-code-copy-btn.persona-code-copied{color:#16a34a}.persona-code-copy-btn.persona-code-copy-generating{cursor:default;opacity:.5}.persona-code-copy-btn.persona-code-copy-generating:hover{color:var(--persona-text-muted, #6b7280);border-color:transparent}.persona-message-bubble a,.persona-message-bubble a:visited,.persona-message-bubble a:hover,.persona-message-bubble a:active{text-decoration:underline}.persona-message-user-bubble a,.persona-message-user-bubble a:visited,.persona-message-user-bubble a:hover,.persona-message-user-bubble a:active{color:inherit;text-decoration:underline}[data-persona-root] .persona-message-assistant-bubble a{color:var(--persona-md-link-color, var(--persona-accent, #0f0f0f))}.persona-message-bubble p{margin:0}.persona-message-bubble p+p{margin-top:.75rem}.persona-message-bubble ul,.persona-message-bubble ol{margin:.5rem 0;padding-left:1.5rem}.persona-message-bubble ul{list-style-type:disc}.persona-message-bubble ol{list-style-type:decimal}.persona-message-bubble li{margin:.25rem 0;padding-left:.25rem}.persona-message-bubble ul ul,.persona-message-bubble ol ul{list-style-type:circle;margin:.25rem 0}.persona-message-bubble ul ul ul,.persona-message-bubble ol ul ul,.persona-message-bubble ul ol ul,.persona-message-bubble ol ol ul{list-style-type:square}.persona-message-bubble ul ol,.persona-message-bubble ol ol{list-style-type:lower-alpha;margin:.25rem 0}.persona-message-user-bubble p{margin:0;color:inherit}.persona-message-user-bubble p+p{margin-top:.75rem}.persona-message-user-bubble ul,.persona-message-user-bubble ol{margin:.5rem 0;padding-left:1.5rem}.persona-message-user-bubble ul{list-style-type:disc}.persona-message-user-bubble ol{list-style-type:decimal}.persona-message-user-bubble li{margin:.25rem 0;padding-left:.25rem;color:inherit}.persona-message-assistant-bubble p,.persona-message-assistant-bubble li{color:inherit}.persona-message-bubble h1,[data-persona-root] .persona-markdown-bubble h1{font-size:var(--persona-md-h1-size);font-weight:var(--persona-md-h1-weight);margin:var(--persona-md-h1-margin);line-height:var(--persona-md-h1-line-height);color:inherit}.persona-message-bubble h2,[data-persona-root] .persona-markdown-bubble h2{font-size:var(--persona-md-h2-size);font-weight:var(--persona-md-h2-weight);margin:var(--persona-md-h2-margin);line-height:var(--persona-md-h2-line-height);color:inherit}.persona-message-bubble h3,[data-persona-root] .persona-markdown-bubble h3{font-size:var(--persona-md-h3-size);font-weight:var(--persona-md-h3-weight);margin:var(--persona-md-h3-margin);line-height:var(--persona-md-h3-line-height);color:inherit}.persona-message-bubble h4,[data-persona-root] .persona-markdown-bubble h4{font-size:var(--persona-md-h4-size);font-weight:var(--persona-md-h4-weight);margin:var(--persona-md-h4-margin);line-height:var(--persona-md-h4-line-height);color:inherit}.persona-message-bubble h5,[data-persona-root] .persona-markdown-bubble h5{font-size:var(--persona-md-h5-size);font-weight:var(--persona-md-h5-weight);margin:var(--persona-md-h5-margin);line-height:var(--persona-md-h5-line-height);color:inherit}.persona-message-bubble h6,[data-persona-root] .persona-markdown-bubble h6{font-size:var(--persona-md-h6-size);font-weight:var(--persona-md-h6-weight);margin:var(--persona-md-h6-margin);line-height:var(--persona-md-h6-line-height);color:inherit}.persona-message-bubble h1:first-child,.persona-message-bubble h2:first-child,.persona-message-bubble h3:first-child,.persona-message-bubble h4:first-child,.persona-message-bubble h5:first-child,.persona-message-bubble h6:first-child{margin-top:0}.persona-message-bubble:has(table){width:100%;max-width:100%;flex-grow:1}.persona-message-bubble table{width:100%;border-collapse:collapse;margin:.5rem 0;font-size:.875rem;overflow:hidden;border-radius:var(--persona-md-table-border-radius);border:1px solid var(--persona-md-table-border-color)}.persona-message-bubble thead{background-color:var(--persona-md-table-header-bg)}.persona-message-bubble th{font-weight:var(--persona-md-table-header-weight);text-align:left;padding:var(--persona-md-table-cell-padding);border-bottom:1px solid var(--persona-md-table-border-color)}.persona-message-bubble td{padding:var(--persona-md-table-cell-padding);border-bottom:1px solid var(--persona-md-table-border-color);text-align:left}.persona-message-bubble tr:last-child td{border-bottom:none}.persona-message-bubble tbody tr:nth-child(2n){background-color:#00000005}.persona-content-streaming table{table-layout:fixed}.persona-content-streaming th,.persona-content-streaming td{overflow-wrap:break-word}.persona-message-bubble hr{border:none;height:var(--persona-md-hr-height);background-color:var(--persona-md-hr-color);margin:var(--persona-md-hr-margin)}.persona-message-bubble blockquote{border-left:var(--persona-md-blockquote-border-width) solid var(--persona-md-blockquote-border-color);padding:var(--persona-md-blockquote-padding);margin:var(--persona-md-blockquote-margin);background-color:var(--persona-md-blockquote-bg);color:var(--persona-md-blockquote-text-color);font-style:var(--persona-md-blockquote-font-style)}.persona-message-bubble blockquote p{margin:0}.persona-message-bubble blockquote p+p{margin-top:.5rem}.persona-message-bubble blockquote blockquote{margin-left:.5rem}.persona-message-bubble code:not(pre code){background-color:var(--persona-md-inline-code-bg);color:var(--persona-md-inline-code-color, inherit);padding:var(--persona-md-inline-code-padding);border-radius:var(--persona-md-inline-code-border-radius);font-size:var(--persona-md-inline-code-font-size)}.persona-message-bubble strong,.persona-message-bubble b{font-weight:var(--persona-md-strong-weight)}.persona-message-bubble em,.persona-message-bubble i{font-style:var(--persona-md-em-style)}.persona-message-user-bubble h1,.persona-message-user-bubble h2,.persona-message-user-bubble h3,.persona-message-user-bubble h4,.persona-message-user-bubble h5,.persona-message-user-bubble h6{color:inherit}.persona-message-user-bubble table,.persona-message-user-bubble th,.persona-message-user-bubble td{border-color:#ffffff4d}.persona-message-user-bubble thead{background-color:#ffffff1a}.persona-message-user-bubble tbody tr:nth-child(2n){background-color:#ffffff0d}.persona-message-user-bubble hr{background-color:#ffffff4d}.persona-message-user-bubble blockquote{border-left-color:#ffffff80;color:inherit;opacity:.9}.persona-message-user-bubble code:not(pre code){background-color:#fff3}.persona-message-bubble{position:relative;overflow-wrap:break-word}@keyframes persona-message-actions-fade-in{0%{opacity:0}to{opacity:1}}.persona-message-actions{display:flex;align-items:center;gap:.25rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--persona-divider, #f1f5f9)}.persona-message-actions:not(.persona-message-actions-hover){animation:persona-message-actions-fade-in .3s ease-out forwards}@keyframes persona-ask-resolved{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}[data-ask-answered=true]{animation:persona-ask-resolved .22s ease-out}@media (prefers-reduced-motion: reduce){[data-ask-answered=true]{animation:none}}.persona-message-actions-left{justify-content:flex-start}.persona-message-actions-center{justify-content:center}.persona-message-actions-right{justify-content:flex-end}.persona-message-actions:not(.persona-message-actions-hover).persona-message-actions-pill{width:fit-content;margin-top:.5rem;padding:.25rem .5rem;border-top:none}.persona-message-actions:not(.persona-message-actions-hover).persona-message-actions-pill.persona-message-actions-right{margin-left:auto}.persona-message-actions:not(.persona-message-actions-hover).persona-message-actions-pill.persona-message-actions-center{margin-left:auto;margin-right:auto}.persona-message-actions:not(.persona-message-actions-hover).persona-message-actions-row{margin-left:-1.25rem;margin-right:-1.25rem;margin-bottom:-.75rem;padding:.5rem 1.25rem;border-radius:0 0 var(--persona-radius-lg, 1.5rem) var(--persona-radius-lg);background:linear-gradient(to top,var(--persona-surface, #ffffff) 70%,transparent);border-top:1px solid var(--persona-divider, #f1f5f9)}@media (hover: hover){.persona-message-actions-hover{opacity:0;pointer-events:none;transition:opacity .15s ease-in-out}.persona-message-actions-hover.persona-message-actions-pill{position:absolute;bottom:.5rem;margin-top:0;padding:.25rem;border-top:none;width:fit-content}.persona-message-actions-hover.persona-message-actions-pill.persona-message-actions-left{left:.75rem;right:auto}.persona-message-actions-hover.persona-message-actions-pill.persona-message-actions-center{left:50%;right:auto;transform:translate(-50%)}.persona-message-actions-hover.persona-message-actions-pill.persona-message-actions-right{right:.75rem;left:auto}.persona-message-actions-hover.persona-message-actions-row{position:absolute;bottom:0;left:0;right:0;margin-top:0;padding:.5rem .75rem;border-top:none;background:linear-gradient(to top,var(--persona-surface, #ffffff) 70%,transparent);border-radius:0 0 var(--persona-radius-lg, 1.5rem) var(--persona-radius-lg, 1.5rem)}.persona-message-bubble:hover .persona-message-actions-hover,.persona-message-bubble:focus-within .persona-message-actions-hover{opacity:1;pointer-events:auto}}@media (hover: none){.persona-message-actions-hover{position:static;opacity:1}}.persona-message-action-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:var(--persona-radius-sm, .125rem);background-color:transparent;color:var(--persona-muted, #6b7280);cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .1s ease}.persona-message-action-btn:hover{background-color:var(--persona-container, #f8fafc);color:var(--persona-primary, #111827)}.persona-message-action-btn:active{transform:scale(.95)}.persona-message-action-btn:focus{outline:none;box-shadow:0 0 0 2px var(--persona-accent, #0a0a0a)}.persona-message-action-btn:focus:not(:focus-visible){box-shadow:none}.persona-message-action-btn:focus-visible{box-shadow:0 0 0 2px var(--persona-accent, #0a0a0a)}.persona-message-action-btn.persona-message-action-active{background-color:var(--persona-accent, #0a0a0a);color:#fff}.persona-message-action-btn.persona-message-action-active:hover{background-color:var(--persona-accent, #0a0a0a);color:#fff;opacity:.9}.persona-message-action-btn.persona-message-action-loading svg{animation:persona-voice-processing-spin 1s linear infinite}@media (prefers-reduced-motion: reduce){.persona-message-action-btn.persona-message-action-loading svg{animation:none}}@keyframes persona-vote-pop{0%{transform:scale(1)}40%{transform:scale(1.25)}to{transform:scale(1)}}.persona-message-action-btn.persona-message-action-pop{animation:persona-vote-pop .3s ease}.persona-message-action-btn.persona-message-action-success,.persona-message-action-btn.persona-message-action-success:hover{background-color:#10b981;color:#fff}.persona-message-action-btn svg{width:14px;height:14px;flex-shrink:0}.persona-feedback-container{background:var(--persona-surface, #ffffff);border:1px solid var(--persona-border, #e5e7eb);border-radius:var(--persona-radius-lg, .5rem);box-shadow:0 10px 25px -5px #0000001a,0 8px 10px -6px #0000001a;padding:1.25rem;max-width:100%;margin:.75rem;animation:persona-feedback-fade-in .3s ease-out}@keyframes persona-feedback-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.persona-feedback-content{display:flex;flex-direction:column;gap:1rem}.persona-feedback-header{text-align:center}.persona-feedback-title{margin:0 0 .25rem;font-size:1rem;font-weight:600;color:var(--persona-primary, #111827)}.persona-feedback-subtitle{margin:0;font-size:.875rem;color:var(--persona-muted, #6b7280)}.persona-feedback-rating-csat{display:flex;justify-content:center;gap:.5rem}.persona-feedback-star-btn{background:transparent;border:none;cursor:pointer;padding:.25rem;color:var(--persona-border, #d1d5db);transition:color .2s ease,transform .15s ease}.persona-feedback-star-btn:hover{transform:scale(1.15)}.persona-feedback-star-btn.selected{color:#fbbf24}.persona-feedback-star-btn .persona-feedback-star{width:32px;height:32px}.persona-feedback-star-btn.selected .persona-feedback-star{fill:#fbbf24}.persona-feedback-rating-nps{display:flex;flex-direction:column;gap:.5rem}.persona-feedback-labels{display:flex;justify-content:space-between;font-size:.75rem;color:var(--persona-muted, #6b7280)}.persona-feedback-numbers{display:flex;gap:.25rem;justify-content:center}.persona-feedback-number-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:500;border-radius:var(--persona-radius-sm, .125rem);border:1px solid var(--persona-border, #e5e7eb);background:var(--persona-surface, #ffffff);color:var(--persona-primary, #111827);cursor:pointer;transition:all .2s ease}.persona-feedback-number-btn:hover{border-color:var(--persona-accent, #0a0a0a);background:var(--persona-container, #f3f4f6)}.persona-feedback-number-btn.selected{color:#fff}.persona-feedback-number-btn.persona-feedback-detractor.selected{background:#ef4444;border-color:#ef4444}.persona-feedback-number-btn.persona-feedback-passive.selected{background:#f59e0b;border-color:#f59e0b}.persona-feedback-number-btn.persona-feedback-promoter.selected{background:#22c55e;border-color:#22c55e}.persona-feedback-comment-container{width:100%}.persona-feedback-comment{width:100%;padding:.625rem;font-size:.875rem;font-family:inherit;border:1px solid var(--persona-border, #e5e7eb);border-radius:var(--persona-radius-sm, .125rem);background:var(--persona-surface, #ffffff);color:var(--persona-primary, #111827);resize:vertical;box-sizing:border-box}.persona-feedback-comment:focus{outline:none;border-color:var(--persona-accent, #0a0a0a);box-shadow:0 0 0 2px #1d4ed826}.persona-feedback-comment::placeholder{color:var(--persona-muted, #9ca3af)}.persona-feedback-actions{display:flex;gap:.5rem;justify-content:flex-end}.persona-feedback-btn{padding:.5rem 1rem;font-size:.875rem;font-weight:500;border-radius:var(--persona-radius-sm, .125rem);cursor:pointer;transition:all .2s ease}.persona-feedback-btn-skip{background:transparent;border:1px solid var(--persona-border, #e5e7eb);color:var(--persona-muted, #6b7280)}.persona-feedback-btn-skip:hover{background:var(--persona-container, #f3f4f6);color:var(--persona-primary, #111827)}.persona-feedback-btn-submit{background:var(--persona-accent, #0a0a0a);border:1px solid var(--persona-accent, #0a0a0a);color:#fff}.persona-feedback-btn-submit:hover:not(:disabled){opacity:.9}.persona-feedback-btn-submit:disabled{opacity:.6;cursor:not-allowed}@keyframes persona-feedback-shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}.persona-feedback-shake{animation:persona-feedback-shake .5s ease-in-out}.persona-tool-bubble .persona-border-t,.persona-reasoning-bubble .persona-border-t{border-top-color:var(--cw-border, #e5e7eb);background-color:var(--cw-container, #f9fafb)}.persona-tool-bubble pre{background-color:var(--cw-surface, #ffffff);border-color:var(--cw-border, #f1f5f9)}.persona-tool-bubble button[data-expand-header],.persona-reasoning-bubble button[data-expand-header]{transition:background-color .15s ease}.persona-tool-bubble button[data-expand-header]:hover,.persona-reasoning-bubble button[data-expand-header]:hover{background-color:var(--cw-container, #f8fafc)}[data-persona-root] [data-persona-collapsed-preview]{border-top:1px solid transparent}[data-persona-root] .persona-tool-group{--_rail-x: .5rem;--_rail-w: 2px;--_dot-size: 6px;--_branch-len: .75rem;--_branch-y: 1.5rem;--_rail-color: var(--cw-border, #d1d5db);gap:0}[data-persona-root] .persona-tool-group-summary{position:relative;min-height:1.5rem;padding-left:calc(var(--_rail-x) + var(--_branch-len) + .625rem);margin-bottom:.625rem;display:flex;align-items:center}[data-persona-root] .persona-tool-group-summary:before{content:"";position:absolute;left:var(--_rail-x);top:50%;width:var(--_branch-len);height:var(--_rail-w);background:var(--_rail-color);transform:translateY(-50%)}[data-persona-root] .persona-tool-group-summary:after{content:"";position:absolute;left:var(--_rail-x);top:50%;width:var(--_dot-size);height:var(--_dot-size);border-radius:999px;border:var(--_rail-w) solid var(--_rail-color);background:var(--cw-surface, #fff);transform:translate(-50%,-50%)}[data-persona-root] .persona-tool-group-stack{position:relative;margin-left:var(--_rail-x);padding-left:calc(var(--_branch-len) + .125rem);gap:.625rem}[data-persona-root] .persona-tool-group-stack:before{content:"";position:absolute;left:0;top:calc(-.625rem - (var(--_dot-size) / 2));bottom:calc(100% - var(--_branch-y));width:var(--_rail-w);background:var(--_rail-color);transform:translate(-50%)}[data-persona-root] .persona-tool-group-stack:after{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--_rail-w);background:var(--_rail-color);transform:translate(-50%);z-index:0;pointer-events:none}[data-persona-root] .persona-tool-group-item:last-child{position:relative}[data-persona-root] .persona-tool-group-item{position:relative;z-index:1}[data-persona-root] .persona-tool-group-item:before{content:"";position:absolute;left:calc(-1 * var(--_branch-len) - .125rem);top:var(--_branch-y);width:calc(var(--_branch-len) + .125rem);height:var(--_rail-w);background:var(--_rail-color);transform:translateY(-50%)}[data-persona-root] .persona-tool-group-item:after{content:"";position:absolute;left:calc(-1 * var(--_branch-len) - .125rem);top:var(--_branch-y);width:var(--_dot-size);height:var(--_dot-size);border-radius:999px;border:var(--_rail-w) solid var(--_rail-color);background:var(--cw-surface, #fff);transform:translate(-50%,-50%);z-index:1}.persona-approval-bubble{background-color:var(--cw-surface, #ffffff);border-color:var(--cw-border, #e5e7eb)}.persona-approval-bubble [data-approval-action]{transition:opacity .15s ease,transform .1s ease,background-color .15s ease}.persona-approval-bubble [data-approval-action=approve]:hover{opacity:.85}.persona-approval-bubble [data-approval-action=approve]:active{transform:scale(.97)}.persona-approval-bubble [data-approval-action=deny]:hover{background-color:#dc262614}.persona-approval-bubble [data-approval-action=deny]:active{transform:scale(.97)}.persona-approval-card{width:100%;max-width:100%;box-sizing:border-box;background:var(--persona-approval-bg, var(--persona-surface, #ffffff));border:.5px solid var(--persona-approval-border, var(--persona-border, rgba(11, 11, 11, .1)));border-radius:.75rem;padding:.5rem}.persona-approval-card.persona-shadow-sm{box-shadow:var(--persona-approval-shadow, 0 1px 2px 0 rgba(11, 11, 11, .06), 0 2px 8px 0 rgba(11, 11, 11, .04))}.persona-approval-head{display:flex;align-items:center;gap:.75rem;width:100%;border:none;background:transparent;padding:.4rem .6rem;cursor:pointer;text-align:left;font:inherit;color:var(--persona-text, #0b0b0b);border-radius:.5rem;transition:background .12s ease}.persona-approval-head:hover{background:var(--persona-container, rgba(11, 11, 11, .04))}.persona-approval-head[data-static=true]{cursor:default}.persona-approval-head[data-static=true]:hover{background:transparent}.persona-approval-logo{flex-shrink:0;width:24px;height:24px;display:grid;place-items:center;box-sizing:border-box;border:.5px solid var(--persona-border, rgba(11, 11, 11, .12));border-radius:6.5px;background:var(--persona-surface, #ffffff);box-shadow:0 1px 2px #0b0b0b14;color:var(--persona-muted, #6b7280);overflow:hidden}.persona-approval-logo svg{width:15px;height:15px;display:block}.persona-approval-title{flex:1;min-width:0;font-size:.875rem;line-height:1.4;color:var(--persona-text, #0b0b0b)}.persona-approval-title strong{font-weight:600}.persona-approval-toggle{display:inline-flex;align-items:center;margin-left:.25rem;color:var(--persona-muted, #6b7280);vertical-align:middle;transition:transform .15s ease}.persona-approval-toggle svg{width:.85rem;height:.85rem;display:block}.persona-approval-head[aria-expanded=false] .persona-approval-toggle{transform:rotate(-90deg)}.persona-approval-body{padding:.5rem .6rem .35rem calc(24px + 1.35rem)}.persona-approval-details{margin:0 0 .75rem}.persona-approval-details[hidden]{display:none}.persona-approval-desc{margin:0 0 .5rem;font-size:.8125rem;line-height:1.4;color:var(--persona-muted, #6b7280)}.persona-approval-params{margin:0;padding:.7rem .85rem;border-radius:.625rem;background:var(--persona-container, rgba(11, 11, 11, .04));color:var(--persona-text, #1f2937);font-size:.75rem;line-height:1rem;overflow-x:auto;max-height:9rem}.persona-approval-reason{margin:0 0 .6rem;font-size:.8125rem;line-height:1.4;color:var(--persona-muted, #6b7280)}.persona-approval-reason-label{font-weight:500}.persona-approval-resolved{display:flex;align-items:center;gap:.45rem;margin:.5rem 0;padding:.3rem .15rem;font-size:.8rem;color:var(--persona-muted, #6b7280)}.persona-approval-resolved svg{width:.95rem;height:.95rem;display:block;flex-shrink:0}.persona-approval-resolved-name{font-weight:600}.persona-approval-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.persona-approval-split{position:relative;display:inline-flex}.persona-approval-primary,.persona-approval-caret,.persona-approval-deny{border:none;cursor:pointer;font:inherit;font-size:.875rem;font-weight:500;height:2rem;display:inline-flex;align-items:center;gap:.375rem;transition:background .12s ease,box-shadow .12s ease}.persona-approval-primary{background:var(--persona-approval-approve-bg, var(--persona-button-primary-bg, var(--persona-primary, #111827)));color:var(--persona-button-primary-fg, var(--persona-text-inverse, #ffffff));padding:0 .75rem;border-radius:.5rem 0 0 .5rem}.persona-approval-primary--solo{border-radius:.5rem}.persona-approval-caret{position:relative;background:var(--persona-approval-approve-bg, var(--persona-button-primary-bg, var(--persona-primary, #111827)));color:var(--persona-button-primary-fg, var(--persona-text-inverse, #ffffff));width:2rem;justify-content:center;padding:0;border-radius:0 .5rem .5rem 0}.persona-approval-caret svg{width:.95rem;height:.95rem;display:block}.persona-approval-caret:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:1px;background:var(--persona-button-primary-fg, #ffffff);opacity:.25;transition:opacity .12s ease}.persona-approval-caret:hover:before,.persona-approval-primary:hover+.persona-approval-caret:before{opacity:0}.persona-approval-primary:hover,.persona-approval-caret:hover{box-shadow:inset 0 0 0 999px #ffffff29}.persona-approval-deny{background:var(--persona-approval-deny-bg, var(--persona-container, rgba(11, 11, 11, .04)));color:var(--persona-text, #1f2937);padding:0 .75rem;border-radius:.5rem;box-shadow:inset 0 0 0 .5px var(--persona-border, rgba(0, 0, 0, .1))}.persona-approval-deny:hover{box-shadow:inset 0 0 0 .5px var(--persona-border, rgba(0, 0, 0, .1)),inset 0 0 0 999px #0b0b0b0a}.persona-approval-menu{width:max-content;max-width:18rem;box-sizing:border-box;background:var(--persona-surface, #ffffff);border:.5px solid var(--persona-border, rgba(11, 11, 11, .1));border-radius:.625rem;box-shadow:0 8px 24px #0b0b0b1f,0 2px 6px #0b0b0b14;padding:.25rem;white-space:nowrap}.persona-approval-menu-item{display:flex;align-items:center;gap:.6rem;width:100%;border:none;background:transparent;cursor:pointer;font:inherit;font-size:.875rem;color:var(--persona-text, #1f2937);padding:.45rem .6rem;border-radius:.4rem;text-align:left;transition:background .12s ease}.persona-approval-menu-item:hover{background:var(--persona-container, rgba(11, 11, 11, .06))}.persona-approval-kbd{font-family:inherit;font-size:.75rem;line-height:1;opacity:.7;margin-left:.25rem}.persona-approval-menu-item .persona-approval-kbd{margin-left:auto}@media (min-width: 768px){[data-persona-root] .md\:persona-hidden{display:none!important}}[data-persona-root] .persona-artifact-split-root{gap:var(--persona-artifact-split-gap, .5rem)}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-icon-btn,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-icon-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--persona-artifact-toolbar-icon-padding, .25rem);border-radius:var(--persona-artifact-toolbar-icon-radius, var(--persona-radius-md, .375rem));border:var(--persona-artifact-toolbar-icon-border, 1px solid var(--persona-border, #e5e7eb));background:var(--persona-artifact-toolbar-icon-bg, var(--persona-surface, #ffffff));color:var(--persona-artifact-doc-toolbar-icon-color, var(--persona-text, #111827));cursor:pointer;line-height:1}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-icon-btn:hover,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-icon-btn:hover{color:var(--persona-artifact-toolbar-icon-hover-color, inherit);background:var(--persona-artifact-toolbar-icon-hover-bg, var(--persona-icon-btn-hover-bg, var(--persona-container, #f3f4f6)))}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-icon-btn[aria-pressed=true],[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-icon-btn[aria-pressed=true]{background:var(--persona-artifact-doc-toggle-active-bg, var(--persona-icon-btn-active-bg, var(--persona-container, #f3f4f6)));border-color:var(--persona-artifact-doc-toggle-active-border, var(--persona-icon-btn-active-border, var(--persona-border, #e5e7eb)))}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-copy-btn,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-copy-btn{display:inline-flex;align-items:center;gap:.35rem;padding:var(--persona-artifact-toolbar-copy-padding, .25rem .5rem);border-radius:var(--persona-artifact-toolbar-copy-radius, var(--persona-radius-md, .375rem));border:var(--persona-artifact-toolbar-copy-border, 1px solid var(--persona-border, #e5e7eb));background:var(--persona-artifact-toolbar-copy-bg, var(--persona-surface, #ffffff));color:var(--persona-artifact-toolbar-copy-color, var(--persona-artifact-doc-toolbar-icon-color, var(--persona-text, #111827)));cursor:pointer;font-size:.75rem;line-height:1.25}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-copy-btn:hover,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-copy-btn:hover{background:var(--persona-artifact-toolbar-icon-hover-bg, var(--persona-icon-btn-hover-bg, var(--persona-container, #f3f4f6)))}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-copy-label{font-weight:500}[data-persona-root] .persona-artifact-tab{background:var(--persona-artifact-tab-bg, transparent);border-radius:var(--persona-artifact-tab-radius, .5rem);color:var(--persona-artifact-tab-color, inherit);white-space:nowrap;max-width:var(--persona-artifact-tab-max-width, 12rem);overflow:hidden;text-overflow:ellipsis}[data-persona-root] .persona-artifact-tab.persona-bg-persona-container{background:var(--persona-artifact-tab-active-bg, var(--persona-container, #f3f4f6));border-color:var(--persona-artifact-tab-active-border, var(--persona-border, #e5e7eb))}[data-persona-root] .persona-artifact-toolbar{background:var(--persona-artifact-toolbar-bg, var(--persona-surface, #fff))}[data-persona-root] .persona-artifact-tab:hover{background:var(--persona-artifact-tab-hover-bg, var(--persona-container, #f3f4f6))}[data-persona-root] .persona-artifact-tab:focus-visible{outline:2px solid var(--persona-accent, #171717);outline-offset:2px}[data-persona-root] .persona-artifact-list{background:var(--persona-artifact-tab-list-bg, transparent);border-bottom-color:var(--persona-artifact-tab-list-border-color, var(--persona-border, #e5e7eb));padding:var(--persona-artifact-tab-list-padding, .5rem);scrollbar-width:thin;scroll-behavior:smooth}[data-persona-root] .persona-artifact-list::-webkit-scrollbar{height:6px}[data-persona-root] .persona-artifact-list::-webkit-scrollbar-thumb{background:var(--persona-artifact-tab-list-scrollbar, var(--persona-border, #e5e7eb));border-radius:9999px}[data-persona-root] .persona-artifact-toolbar-document{border-bottom:var(--persona-artifact-toolbar-border, 1px solid var(--persona-border, #e5e7eb))}[data-persona-root] .persona-artifact-card{background:var(--persona-artifact-card-bg, var(--persona-surface, #ffffff));border:var(--persona-artifact-card-border, 1px solid var(--persona-border, #e5e7eb));border-radius:var(--persona-artifact-card-radius, var(--persona-message-assistant-radius, var(--persona-radius-lg, .5rem)));cursor:pointer;transition:background-color .15s ease,border-color .15s ease}[data-persona-root] .persona-artifact-card:hover{background:var(--persona-artifact-card-hover-bg, #f3f4f6);border-color:var(--persona-artifact-card-hover-border, var(--persona-border, #e5e7eb))}[data-persona-root] .persona-artifact-card:focus-visible{outline:2px solid var(--persona-accent, #171717);outline-offset:2px}[data-persona-root] .persona-icon-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--persona-icon-btn-padding, .25rem);border-radius:var(--persona-icon-btn-radius, var(--persona-radius-md, .375rem));border:var(--persona-icon-btn-border, 1px solid var(--persona-border, #e5e7eb));background:var(--persona-icon-btn-bg, var(--persona-surface, #ffffff));color:var(--persona-icon-btn-color, var(--persona-text, #111827));cursor:pointer;line-height:1;transition:background-color .15s ease,color .15s ease,border-color .15s ease}[data-persona-root] .persona-icon-btn:hover{background:var(--persona-icon-btn-hover-bg, var(--persona-container, #f3f4f6));color:var(--persona-icon-btn-hover-color, inherit)}[data-persona-root] .persona-icon-btn:focus-visible{outline:2px solid var(--persona-accent, #171717);outline-offset:2px}[data-persona-root] .persona-icon-btn[aria-pressed=true]{background:var(--persona-icon-btn-active-bg, var(--persona-container, #f3f4f6));border-color:var(--persona-icon-btn-active-border, var(--persona-border, #e5e7eb))}[data-persona-root] .persona-label-btn{display:inline-flex;align-items:center;gap:var(--persona-label-btn-gap, .35rem);padding:var(--persona-label-btn-padding, .25rem .5rem);border-radius:var(--persona-label-btn-radius, var(--persona-radius-md, .375rem));border:var(--persona-label-btn-border, 1px solid var(--persona-border, #e5e7eb));background:var(--persona-label-btn-bg, var(--persona-surface, #ffffff));color:var(--persona-label-btn-color, var(--persona-text, #111827));cursor:pointer;font-size:var(--persona-label-btn-font-size, .75rem);font-weight:500;line-height:1.25;white-space:nowrap;transition:background-color .15s ease,color .15s ease}[data-persona-root] .persona-label-btn:hover{background:var(--persona-label-btn-hover-bg, var(--persona-container, #f3f4f6))}[data-persona-root] .persona-label-btn:focus-visible{outline:2px solid var(--persona-accent, #171717);outline-offset:2px}[data-persona-root] .persona-label-btn--sm{padding:var(--persona-label-btn-padding, .25rem .5rem);font-size:var(--persona-label-btn-font-size, .75rem)}[data-persona-root] .persona-label-btn--md{padding:.375rem .75rem;font-size:.8125rem}[data-persona-root] .persona-label-btn--primary{background:var(--persona-primary, #171717);color:var(--persona-text-inverse, #ffffff);border-color:transparent}[data-persona-root] .persona-label-btn--primary:hover{opacity:.9}[data-persona-root] .persona-label-btn--destructive{color:var(--persona-label-btn-destructive-color, #ef4444)}[data-persona-root] .persona-label-btn--ghost{border:none;background:transparent}[data-persona-root] .persona-label-btn--ghost:hover{background:var(--persona-label-btn-hover-bg, var(--persona-container, #f3f4f6))}[data-persona-root] .persona-scroll-to-bottom-indicator{display:inline-flex;align-items:center;justify-content:center;gap:var(--persona-scroll-to-bottom-gap, .5rem);min-height:var(--persona-scroll-to-bottom-size, 40px);border-radius:var(--persona-scroll-to-bottom-radius, var(--persona-radius-full, 9999px));border:1px solid var(--persona-scroll-to-bottom-border, var(--persona-primary, #111827));background:var(--persona-scroll-to-bottom-bg, var(--persona-button-primary-bg, var(--persona-accent, #0f0f0f)));color:var(--persona-scroll-to-bottom-fg, var(--persona-button-primary-fg, var(--persona-text-inverse, #ffffff)));box-shadow:var(--persona-scroll-to-bottom-shadow, 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1));font-size:var(--persona-scroll-to-bottom-font-size, .875rem);line-height:1}[data-persona-root] .persona-scroll-to-bottom-indicator[data-persona-scroll-to-bottom-has-label=true]{padding:var(--persona-scroll-to-bottom-padding, .5rem .875rem)}[data-persona-root] .persona-scroll-to-bottom-indicator[data-persona-scroll-to-bottom-has-label=false]{width:var(--persona-scroll-to-bottom-size, 40px);height:var(--persona-scroll-to-bottom-size, 40px);padding:0;gap:0}[data-persona-root] .persona-scroll-to-bottom-indicator svg{width:var(--persona-scroll-to-bottom-icon-size, 14px);height:var(--persona-scroll-to-bottom-icon-size, 14px)}[data-persona-root] .persona-scroll-to-bottom-indicator [data-persona-scroll-to-bottom-count]{position:absolute;top:-6px;right:-6px;box-sizing:border-box;min-width:18px;height:18px;padding:0 5px;border-radius:var(--persona-radius-full, 9999px);border:1px solid var(--persona-scroll-to-bottom-border, var(--persona-primary, #111827));background:var(--persona-scroll-to-bottom-count-bg, var(--persona-surface, #ffffff));color:var(--persona-scroll-to-bottom-count-fg, var(--persona-primary, #111827));font-size:11px;font-weight:600;line-height:16px;text-align:center}[data-persona-root] .persona-scroll-to-bottom-indicator:hover{opacity:.92}[data-persona-root] .persona-scroll-to-bottom-indicator:focus-visible{outline:2px solid var(--persona-accent, #171717);outline-offset:2px}[data-persona-root] .persona-toggle-group{display:inline-flex;gap:var(--persona-toggle-group-gap, 0)}[data-persona-root] .persona-toggle-group>.persona-icon-btn{border-radius:0}[data-persona-root] .persona-toggle-group>.persona-icon-btn:first-child{border-top-left-radius:var(--persona-toggle-group-radius, var(--persona-icon-btn-radius, var(--persona-radius-md, .375rem)));border-bottom-left-radius:var(--persona-toggle-group-radius, var(--persona-icon-btn-radius, var(--persona-radius-md, .375rem)))}[data-persona-root] .persona-toggle-group>.persona-icon-btn:last-child{border-top-right-radius:var(--persona-toggle-group-radius, var(--persona-icon-btn-radius, var(--persona-radius-md, .375rem)));border-bottom-right-radius:var(--persona-toggle-group-radius, var(--persona-icon-btn-radius, var(--persona-radius-md, .375rem)))}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group{gap:var(--persona-artifact-toolbar-toggle-group-gap, 2px);padding:var(--persona-artifact-toolbar-toggle-group-padding, 2px);border:var(--persona-artifact-toolbar-toggle-group-border, 1px solid var(--persona-border, #e5e7eb));border-radius:var(--persona-artifact-toolbar-toggle-group-radius, var(--persona-artifact-toolbar-icon-radius, var(--persona-icon-btn-radius, var(--persona-radius-md, .375rem))));background:var(--persona-artifact-toolbar-toggle-group-bg, var(--persona-surface, #ffffff))}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn{border:none;background:transparent;padding:calc(var(--persona-artifact-toolbar-icon-padding, var(--persona-icon-btn-padding, .25rem)) - var(--persona-artifact-toolbar-toggle-group-padding, 2px));border-radius:var(--persona-artifact-toolbar-toggle-radius, calc(var(--persona-artifact-toolbar-icon-radius, var(--persona-icon-btn-radius, var(--persona-radius-md, .375rem))) - 2px))}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn:hover{background:var(--persona-artifact-toolbar-icon-hover-bg, var(--persona-icon-btn-hover-bg, var(--persona-container, #f3f4f6)))}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn[aria-pressed=true]{background:var(--persona-artifact-doc-toggle-active-bg, var(--persona-icon-btn-active-bg, var(--persona-container, #f3f4f6)));box-shadow:inset 0 0 0 1px var(--persona-artifact-doc-toggle-active-border, transparent)}@supports selector(:has(*)){[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group{position:relative}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group:before{content:"";position:absolute;top:var(--persona-artifact-toolbar-toggle-group-padding, 2px);bottom:var(--persona-artifact-toolbar-toggle-group-padding, 2px);left:var(--persona-artifact-toolbar-toggle-group-padding, 2px);width:calc(50% - var(--persona-artifact-toolbar-toggle-group-padding, 2px) - (var(--persona-artifact-toolbar-toggle-group-gap, 2px) / 2));border-radius:var(--persona-artifact-toolbar-toggle-radius, calc(var(--persona-artifact-toolbar-icon-radius, var(--persona-icon-btn-radius, var(--persona-radius-md, .375rem))) - 2px));background:var(--persona-artifact-doc-toggle-active-bg, var(--persona-icon-btn-active-bg, var(--persona-container, #f3f4f6)));box-shadow:inset 0 0 0 1px var(--persona-artifact-doc-toggle-active-border, transparent);transition:transform .18s ease;pointer-events:none}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group:has(>.persona-icon-btn:last-child[aria-pressed=true]):before{transform:translate(calc(100% + var(--persona-artifact-toolbar-toggle-group-gap, 2px)))}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn{position:relative}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn[aria-pressed=true]{background:transparent;box-shadow:none}@media (prefers-reduced-motion: reduce){[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group:before{transition:none}}}[data-persona-root] .persona-combo-btn{font-size:var(--persona-combo-btn-font-size, .8125rem);font-weight:var(--persona-combo-btn-font-weight, 600);color:var(--persona-combo-btn-color, var(--persona-text, #111827));user-select:none}[data-persona-root] .persona-combo-btn-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-persona-root] .persona-dropdown-menu{z-index:100;min-width:160px;background:var(--persona-dropdown-bg, var(--persona-surface, #fff));border:var(--persona-dropdown-border, 1px solid var(--persona-border, #e5e7eb));border-radius:var(--persona-dropdown-radius, .625rem);padding:.25rem 0;box-shadow:var(--persona-dropdown-shadow, 0 4px 16px rgba(0,0,0,.12))}[data-persona-root] .persona-dropdown-menu button{display:flex;align-items:center;gap:.625rem;width:100%;padding:.5rem .875rem;border:none;background:transparent;color:var(--persona-dropdown-item-color, var(--persona-text, #1f2937));font-size:.8125rem;cursor:pointer;text-align:left;white-space:nowrap}[data-persona-root] .persona-dropdown-menu button:hover{background:var(--persona-dropdown-item-hover-bg, var(--persona-container, #f3f4f6))}[data-persona-root] .persona-dropdown-menu button[data-destructive]{color:var(--persona-dropdown-destructive-color, #ef4444)}[data-persona-root] .persona-dropdown-menu hr{border:none;border-top:1px solid var(--persona-dropdown-hr, var(--persona-border, #e5e7eb));margin:.25rem 0}[data-persona-root] .persona-artifact-split-handle{width:6px;flex-shrink:0;cursor:col-resize;touch-action:none;align-self:stretch;background:transparent;border:none;padding:0;margin:0;box-sizing:border-box}[data-persona-root] .persona-artifact-split-handle:hover,[data-persona-root] .persona-artifact-split-handle:focus-visible{background:color-mix(in srgb,var(--persona-border, #e5e7eb) 55%,transparent);outline:none}[data-persona-root].persona-artifact-narrow-host .persona-artifact-split-handle{display:none!important}@media (max-width: 640px){[data-persona-root] .persona-artifact-split-handle{display:none!important}}@media (min-width: 641px){[data-persona-root] .persona-artifact-pane{width:var(--persona-artifact-pane-width, 40%);max-width:var(--persona-artifact-pane-max-width, 28rem);min-width:var(--persona-artifact-pane-min-width, 0);flex-shrink:0;box-shadow:var(--persona-artifact-pane-shadow, none)}}@media (min-width: 641px){[data-persona-root].persona-artifact-expanded .persona-artifact-split-root>:first-child{display:none}[data-persona-root].persona-artifact-expanded .persona-artifact-pane{width:100%;max-width:none}[data-persona-root].persona-artifact-expanded .persona-artifact-split-handle{display:none!important}}@media (max-width: 640px){[data-persona-root] .persona-artifact-expand-btn{display:none!important}}[data-persona-root].persona-artifact-narrow-host .persona-artifact-expand-btn{display:none!important}[data-persona-root] .persona-artifact-frame{position:relative;width:100%;height:100%;background:var(--persona-artifact-frame-bg, #ffffff)}[data-persona-root] .persona-artifact-iframe{display:block;width:100%;height:100%;border:0;color-scheme:light;background:var(--persona-artifact-frame-bg, #ffffff)}[data-persona-root] .persona-artifact-frame-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--persona-artifact-frame-bg, #ffffff);opacity:1;transition:opacity var(--persona-artifact-frame-loading-fade, .2s) ease}[data-persona-root] .persona-artifact-frame-loading--out{opacity:0}[data-persona-root] .persona-artifact-frame-loading-indicator{display:flex;flex-direction:column;align-items:center;gap:.625rem}[data-persona-root] .persona-artifact-frame-loading-text{color:var( --persona-artifact-frame-loading-color, var(--persona-text-muted, #6b7280) );font-size:.8125rem;font-weight:500;opacity:0;transition:opacity .24s ease}[data-persona-root] .persona-artifact-frame-loading-text--visible{opacity:1}[data-persona-root] .persona-spinner{width:var(--persona-artifact-spinner-size, 28px);height:var(--persona-artifact-spinner-size, 28px);transform-origin:center;animation:persona-spinner-rotate var(--persona-artifact-spinner-speed, .8s) linear infinite}[data-persona-root] .persona-spinner-track{fill:none;stroke:var( --persona-artifact-spinner-track-color, var(--persona-border, #e5e7eb) );stroke-width:2.5}[data-persona-root] .persona-spinner-arc{fill:none;stroke:var( --persona-artifact-spinner-color, var(--persona-accent, var(--persona-primary, #171717)) );stroke-width:2.5;stroke-linecap:round;stroke-dasharray:15 42}@keyframes persona-spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){[data-persona-root] .persona-spinner{animation:none}[data-persona-root] .persona-artifact-frame-loading-text{transition:none}}[data-persona-root] .persona-artifact-preview-body{display:contents}[data-persona-root] .persona-code-pre{margin:0;background:var(--persona-code-bg, transparent);border-radius:var(--persona-radius-md, .375rem);padding:.5rem .75rem .5rem .25rem}[data-persona-root] .persona-artifact-content-flush{padding:0}[data-persona-root] .persona-artifact-content-flush .persona-code-pre{padding:.5rem .75rem .5rem 0;border-radius:0;min-height:100%}[data-persona-root] .persona-code{display:block;white-space:normal;counter-reset:persona-code-line;background:transparent;padding:0;border-radius:0;font-family:inherit;font-size:inherit;color:inherit}[data-persona-root] .persona-code-line{display:block;position:relative;white-space:pre-wrap;padding-left:3em;counter-increment:persona-code-line;min-height:1em;min-height:1lh}[data-persona-root] .persona-code-line:before{content:counter(persona-code-line);position:absolute;top:0;left:0;width:2em;padding-right:.5em;text-align:right;color:var(--persona-code-line-number-color, #a0a1a7);border-right:1px solid var(--persona-code-gutter-border-color, var(--persona-border, #e5e7eb));-webkit-user-select:none;user-select:none}[data-persona-root] .persona-code-token-keyword{color:var(--persona-code-keyword-color, #a626a4)}[data-persona-root] .persona-code-token-string{color:var(--persona-code-string-color, #50a14f)}[data-persona-root] .persona-code-token-comment{color:var(--persona-code-comment-color, #a0a1a7);font-style:italic}[data-persona-root] .persona-code-token-number{color:var(--persona-code-number-color, #986801)}[data-persona-root] .persona-code-token-tag{color:var(--persona-code-tag-color, #e45649)}[data-persona-root] .persona-code-token-attr{color:var(--persona-code-attr-color, #986801)}[data-persona-root] .persona-code-token-property{color:var(--persona-code-property-color, #4078f2)}[data-persona-root][data-persona-color-scheme=dark] .persona-code-line:before{color:var(--persona-code-line-number-color, #4b5263);border-right-color:var(--persona-code-gutter-border-color, #3b4048)}[data-persona-root][data-persona-color-scheme=dark] .persona-code-token-keyword{color:var(--persona-code-keyword-color, #c678dd)}[data-persona-root][data-persona-color-scheme=dark] .persona-code-token-string{color:var(--persona-code-string-color, #98c379)}[data-persona-root][data-persona-color-scheme=dark] .persona-code-token-comment{color:var(--persona-code-comment-color, #5c6370)}[data-persona-root][data-persona-color-scheme=dark] .persona-code-token-number{color:var(--persona-code-number-color, #d19a66)}[data-persona-root][data-persona-color-scheme=dark] .persona-code-token-tag{color:var(--persona-code-tag-color, #e06c75)}[data-persona-root][data-persona-color-scheme=dark] .persona-code-token-attr{color:var(--persona-code-attr-color, #d19a66)}[data-persona-root][data-persona-color-scheme=dark] .persona-code-token-property{color:var(--persona-code-property-color, #61afef)}[data-persona-root] .persona-artifact-inline{border:var(--persona-artifact-inline-border, 1px solid var(--persona-border, #e5e7eb));border-radius:var( --persona-artifact-inline-radius, var(--persona-message-assistant-radius, var(--persona-radius-lg, .5rem)) );background:var(--persona-artifact-inline-bg, var(--persona-surface, #ffffff));overflow:hidden}[data-persona-root] .persona-artifact-inline.persona-artifact-inline--card{border:none;background:transparent;border-radius:0;overflow:visible}[data-persona-root] .persona-artifact-inline-chrome{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--persona-artifact-inline-chrome-bg, var(--persona-surface, #ffffff));border-bottom:1px solid var(--persona-artifact-inline-chrome-border, var(--persona-border, #e5e7eb))}[data-persona-root] .persona-artifact-inline-chrome-lead{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1 1 auto;color:var(--persona-artifact-inline-title-color, var(--persona-text, #111827));font-size:.8125rem;font-weight:500}[data-persona-root] .persona-artifact-inline-chrome-lead .persona-artifact-inline-type,[data-persona-root] .persona-artifact-inline-chrome-lead .persona-artifact-inline-status{color:var(--persona-artifact-inline-muted-color, var(--persona-text-muted, #6b7280));font-weight:400}[data-persona-root] .persona-artifact-inline-chrome-lead .persona-artifact-inline-status{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}[data-persona-root] .persona-artifact-status-detail{color:var(--persona-artifact-inline-muted-color, var(--persona-text-muted, #6b7280));margin-left:.375rem;font-variant-numeric:tabular-nums}[data-persona-root] .persona-artifact-inline-chrome-actions{display:flex;align-items:center;gap:.25rem;flex:0 0 auto}[data-persona-root] .persona-artifact-inline-body{padding:.75rem}[data-persona-root] .persona-artifact-inline .persona-artifact-frame{height:var( --persona-artifact-inline-body-height, var(--persona-artifact-inline-frame-height, 320px) )}[data-persona-root] .persona-artifact-inline-body.persona-artifact-content-flush{padding:0}[data-persona-root] .persona-artifact-inline-body--sized{height:var(--persona-artifact-inline-body-height, auto)}[data-persona-root] .persona-artifact-inline-body--sized .persona-artifact-source-window--fixed,[data-persona-root] .persona-artifact-inline-body--sized .persona-artifact-frame{height:100%}[data-persona-root] .persona-artifact-inline-body--sized .persona-artifact-status-view{min-height:100%}[data-persona-root] .persona-artifact-source-window{min-width:0}[data-persona-root] .persona-artifact-source-window--fixed{overflow-y:auto}[data-persona-root] .persona-artifact-source-window--clip{overflow:hidden}[data-persona-root] .persona-artifact-fade-top:not(.persona-artifact-fade-bottom){-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 var(--persona-artifact-fade-size, 40px));mask-image:linear-gradient(to bottom,transparent 0,#000 var(--persona-artifact-fade-size, 40px))}[data-persona-root] .persona-artifact-fade-bottom:not(.persona-artifact-fade-top){-webkit-mask-image:linear-gradient(to top,transparent 0,#000 var(--persona-artifact-fade-size, 40px));mask-image:linear-gradient(to top,transparent 0,#000 var(--persona-artifact-fade-size, 40px))}[data-persona-root] .persona-artifact-fade-top.persona-artifact-fade-bottom{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 var(--persona-artifact-fade-size, 40px),#000 calc(100% - var(--persona-artifact-fade-size, 40px)),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 var(--persona-artifact-fade-size, 40px),#000 calc(100% - var(--persona-artifact-fade-size, 40px)),transparent 100%)}[data-persona-root] .persona-artifact-tab-fade-start:not(.persona-artifact-tab-fade-end){-webkit-mask-image:linear-gradient(to right,transparent 0,#000 var(--persona-artifact-tab-fade-size, 24px));mask-image:linear-gradient(to right,transparent 0,#000 var(--persona-artifact-tab-fade-size, 24px))}[data-persona-root] .persona-artifact-tab-fade-end:not(.persona-artifact-tab-fade-start){-webkit-mask-image:linear-gradient(to left,transparent 0,#000 var(--persona-artifact-tab-fade-size, 24px));mask-image:linear-gradient(to left,transparent 0,#000 var(--persona-artifact-tab-fade-size, 24px))}[data-persona-root] .persona-artifact-tab-fade-start.persona-artifact-tab-fade-end{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 var(--persona-artifact-tab-fade-size, 24px),#000 calc(100% - var(--persona-artifact-tab-fade-size, 24px)),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 var(--persona-artifact-tab-fade-size, 24px),#000 calc(100% - var(--persona-artifact-tab-fade-size, 24px)),transparent 100%)}[data-persona-root] .persona-artifact-status-view{display:flex;align-items:center;justify-content:center;min-height:var(--persona-artifact-inline-body-height, 160px)}[data-persona-root] .persona-artifact-inline-body--cap{max-height:var(--persona-artifact-inline-body-height, none);overflow-y:auto}[data-persona-root] .persona-artifact-pane{border-radius:var(--persona-artifact-pane-radius, 0);overflow:hidden;background-color:var( --persona-artifact-pane-bg, var(--persona-components-artifact-pane-background, var(--persona-surface, #ffffff)) )}[data-persona-root].persona-artifact-appearance-seamless .persona-artifact-split-root{position:relative;gap:0!important}[data-persona-root].persona-artifact-appearance-seamless .persona-artifact-pane{border-left-width:0!important;border-left-color:transparent!important;box-shadow:none!important;background-color:var( --persona-artifact-pane-bg, var(--persona-components-artifact-pane-background, var(--persona-container, #f8fafc)) )}[data-persona-root].persona-artifact-border-full .persona-artifact-pane{border:var(--persona-artifact-pane-border)!important}[data-persona-root].persona-artifact-border-left .persona-artifact-pane{border-top:none!important;border-right:none!important;border-bottom:none!important;border-left:var(--persona-artifact-pane-border-left)!important}[data-persona-root].persona-artifact-appearance-seamless.persona-artifact-border-left .persona-artifact-pane{border-left:var(--persona-artifact-pane-border-left)!important}[data-persona-root].persona-artifact-appearance-seamless.persona-artifact-border-full .persona-artifact-pane{border:var(--persona-artifact-pane-border)!important}[data-persona-root].persona-artifact-appearance-detached .persona-artifact-split-root{background:var(--persona-panel-canvas-bg)}@media (min-width: 641px){[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-appearance-detached .persona-artifact-pane{border-radius:var( --persona-artifact-pane-radius, var(--persona-panel-radius, var(--persona-radius-xl, .75rem)) );border:var(--persona-panel-border, 1px solid var(--persona-border, #e5e7eb));box-shadow:var( --persona-artifact-pane-shadow, var(--persona-panel-shadow, var(--persona-palette-shadows-xl, 0 25px 50px -12px rgba(0, 0, 0, .25))) )}}@media (min-width: 641px){[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-chat-flush .persona-artifact-pane{margin-top:var(--persona-panel-inset);margin-right:var(--persona-panel-inset);margin-bottom:var(--persona-panel-inset)}}@media (min-width: 641px){[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-welded-split .persona-artifact-split-root{position:relative}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-welded-split .persona-widget-container{border-top-right-radius:0!important;border-bottom-right-radius:0!important;overflow:hidden}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-welded-split .persona-artifact-pane{border-top-left-radius:0!important;border-bottom-left-radius:0!important;border-top-right-radius:var(--persona-artifact-welded-outer-radius, var(--persona-panel-radius, var(--persona-radius-xl, .75rem)))!important;border-bottom-right-radius:var(--persona-artifact-welded-outer-radius, var(--persona-panel-radius, var(--persona-radius-xl, .75rem)))!important;overflow:hidden}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-welded-split.persona-artifact-appearance-panel .persona-artifact-pane{border-left:1px solid var(--persona-border, #e5e7eb)}}[data-persona-root].persona-artifact-narrow-host .persona-artifact-backdrop{position:absolute!important;inset:0!important;z-index:55!important}@media (min-width: 641px){[data-persona-root].persona-artifact-narrow-host .persona-artifact-pane{position:absolute;top:0;right:0;bottom:0;width:min(calc(100% - 1rem),22rem)!important;max-width:22rem!important;z-index:60;transform:translate(100%);transition:transform .2s ease;box-shadow:-4px 0 24px #0000001f}[data-persona-root].persona-artifact-narrow-host .persona-artifact-pane.persona-artifact-drawer-open{transform:translate(0)}}@media (max-width: 640px){[data-persona-root] .persona-artifact-pane{position:fixed;top:0;right:0;bottom:0;width:min(100vw - 1.5rem,22rem);z-index:60;transform:translate(100%);transition:transform .2s ease;box-shadow:-4px 0 24px #0000001f}[data-persona-root] .persona-artifact-pane.persona-artifact-drawer-open{transform:translate(0)}}[data-persona-root] .persona-stream-char,[data-persona-root] .persona-stream-word{display:inline-block;will-change:opacity,transform,filter}[data-persona-root] .persona-stream-word-group{white-space:nowrap}@keyframes persona-stream-typewriter-in{0%{opacity:0}to{opacity:1}}[data-persona-root] .persona-stream-typewriter .persona-stream-char{animation:persona-stream-typewriter-in var(--persona-stream-step, .12s) ease-out both}@keyframes persona-stream-letter-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}[data-persona-root] .persona-stream-letter-rise .persona-stream-char{animation:persona-stream-letter-rise calc(var(--persona-stream-step, .12s) * 2) ease-out both}@keyframes persona-stream-word-fade{0%{opacity:0;filter:blur(4px);transform:translateY(3px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}[data-persona-root] .persona-stream-word-fade .persona-stream-word{animation:persona-stream-word-fade calc(var(--persona-stream-step, .12s) * 3) ease-out both}@keyframes persona-stream-pop-in{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}[data-persona-root] .persona-stream-pop{transform-origin:bottom left;animation:persona-stream-pop-in .4s cubic-bezier(.2,.9,.3,1.4) both}@keyframes persona-stream-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}[data-persona-root] .persona-stream-caret{display:inline-block;width:2px;height:1em;margin-left:1px;vertical-align:-2px;background:currentColor;animation:persona-stream-blink 1s steps(1) infinite}[data-persona-root] .persona-timestamp-inline{display:inline-block;margin-left:.5rem;white-space:nowrap}@keyframes persona-stream-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}[data-persona-root] .persona-stream-skeleton{padding:2px 0;width:260px;max-width:100%}[data-persona-root] .persona-stream-skeleton-line{width:100%;height:10px;border-radius:3px;background:linear-gradient(90deg,color-mix(in srgb,currentColor 12%,transparent),color-mix(in srgb,currentColor 22%,transparent),color-mix(in srgb,currentColor 12%,transparent));background-size:200% 100%;animation:persona-stream-skeleton-shimmer 1.4s linear infinite}@media (prefers-reduced-motion: reduce){[data-persona-root] .persona-stream-typewriter .persona-stream-char,[data-persona-root] .persona-stream-letter-rise .persona-stream-char,[data-persona-root] .persona-stream-word-fade .persona-stream-word,[data-persona-root] .persona-stream-pop,[data-persona-root] .persona-stream-caret,[data-persona-root] .persona-stream-skeleton-line{animation:none!important;opacity:1!important;filter:none!important;transform:none!important;color:inherit!important;background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important}}[data-persona-root] .persona-hidden{display:none!important}[data-persona-root] .persona-ask-stub{padding:.35rem .7rem;border-radius:999px;font-size:.8rem;color:var(--persona-muted, #6b7280);background:var(--persona-container, #f3f4f6);border:1px dashed var(--persona-border, #e5e7eb)}[data-persona-root] .persona-ask-stub-label{font-weight:500}[data-persona-root] .persona-ask-sheet{position:absolute;left:.75rem;right:.75rem;bottom:calc(100% + .5rem);box-sizing:border-box;padding:.85rem 1rem;background:var(--persona-ask-sheet-bg, var(--persona-surface, #ffffff));border:1px solid var(--persona-ask-sheet-border, var(--persona-border, #e5e7eb));border-radius:1rem;box-shadow:var(--persona-ask-sheet-shadow, 0 12px 28px -10px rgba(0, 0, 0, .15), 0 4px 10px -6px rgba(0, 0, 0, .08));transition:transform var(--persona-ask-sheet-duration, .18s) ease,opacity var(--persona-ask-sheet-duration, .18s) ease;opacity:1;transform:translateY(0)}[data-persona-root] .persona-ask-sheet.persona-ask-sheet-enter{opacity:0;transform:translateY(8px)}[data-persona-root] .persona-ask-sheet.persona-ask-sheet-leave{opacity:0;transform:translateY(8px);pointer-events:none}[data-persona-root] .persona-ask-sheet-header{margin-bottom:.55rem}[data-persona-root] .persona-ask-sheet-question{font-size:.92rem;font-weight:500;line-height:1.35;color:var(--persona-text, #1f2937);min-height:1.35em}[data-persona-root] .persona-ask-question-skeleton{display:block;width:60%;height:.85rem;border-radius:.3rem;background:linear-gradient(90deg,var(--persona-container, #f3f4f6) 0%,var(--persona-border, #e5e7eb) 50%,var(--persona-container, #f3f4f6) 100%);background-size:200% 100%;animation:persona-ask-skeleton-shimmer 1.2s ease-in-out infinite;color:transparent}[data-persona-root] .persona-ask-sheet-step-inline{flex:0 0 auto;font-size:.78rem;line-height:1;color:var(--persona-text-muted, #6b7280);font-variant-numeric:tabular-nums;letter-spacing:.01em;white-space:nowrap}[data-persona-root] .persona-ask-sheet-step-inline:empty{display:none}[data-persona-root] .persona-ask-pills{display:flex;flex-direction:column;flex-wrap:nowrap;row-gap:.4rem;column-gap:0}[data-persona-root] .persona-ask-pills--rows{flex-direction:column;flex-wrap:nowrap;gap:.4rem}[data-persona-root] .persona-ask-sheet--pills .persona-ask-pills:not(.persona-ask-pills--rows){flex-direction:row;flex-wrap:wrap;gap:.4rem}[data-persona-root] .persona-ask-sheet--pills .persona-ask-pills:not(.persona-ask-pills--rows) .persona-ask-pill{width:auto;padding:.4rem .9rem;border-radius:var(--persona-ask-pill-radius, 9999px)}[data-persona-root] .persona-ask-pill{display:flex;align-items:center;justify-content:flex-start;width:100%;text-align:left;padding:.65rem .9rem;border-radius:var(--persona-ask-pill-radius, .6rem);background:var(--persona-ask-pill-bg, transparent);color:var(--persona-ask-pill-fg, var(--persona-text, #1f2937));border:1px solid var(--persona-border, #e5e7eb);font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .1s ease}[data-persona-root] .persona-ask-pill:hover:not(:disabled):not(.persona-ask-pill-skeleton):not(.persona-ask-pill-selected):not([aria-pressed=true]){border-color:var(--persona-text, #1f2937);background:var(--persona-container, #f3f4f6)}[data-persona-root] .persona-ask-pill:active{transform:translateY(1px)}[data-persona-root] .persona-ask-pill-selected,[data-persona-root] .persona-ask-pill[aria-pressed=true]{background:var(--persona-ask-pill-bg-selected, var(--persona-accent, #0f0f0f));color:var(--persona-ask-pill-fg-selected, #fafafa);border-color:var(--persona-ask-pill-bg-selected, var(--persona-accent, #0f0f0f))}[data-persona-root] .persona-ask-pill:focus:not(:focus-visible){outline:none}[data-persona-root] .persona-ask-pill:focus-visible{outline:2px solid var(--persona-accent, #0f0f0f);outline-offset:2px}[data-persona-root] .persona-ask-pill-custom{border-style:dashed}[data-persona-root] .persona-ask-pill-skeleton{min-width:5rem;height:2rem;padding:0;border:1px solid var(--persona-border, #e5e7eb);background:linear-gradient(90deg,var(--persona-container, #f3f4f6) 0%,var(--persona-border, #e5e7eb) 50%,var(--persona-container, #f3f4f6) 100%);background-size:200% 100%;animation:persona-ask-skeleton-shimmer 1.2s ease-in-out infinite}@keyframes persona-ask-skeleton-shimmer{0%{background-position:100% 50%}to{background-position:-100% 50%}}[data-persona-root] .persona-ask-row{align-items:stretch;justify-content:space-between;gap:.75rem;padding:.7rem .9rem}[data-persona-root] .persona-ask-row-content{display:flex;flex-direction:column;gap:.15rem;flex:1 1 auto;min-width:0}[data-persona-root] .persona-ask-row-label{font-size:.92rem;font-weight:600;line-height:1.25;color:inherit;white-space:normal;overflow-wrap:anywhere}[data-persona-root] .persona-ask-row-description{font-size:.82rem;font-weight:400;line-height:1.35;color:var(--persona-text-muted, #6b7280);white-space:normal;overflow-wrap:anywhere}[data-persona-root] .persona-ask-pill-selected .persona-ask-row-description,[data-persona-root] .persona-ask-pill[aria-pressed=true] .persona-ask-row-description{color:var(--persona-ask-pill-fg-selected, #fafafa);opacity:.85}[data-persona-root] .persona-ask-row-affordance{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;align-self:center}[data-persona-root] .persona-ask-row-badge{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:.4rem;border:1px solid var(--persona-border, #e5e7eb);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;font-weight:600;color:var(--persona-text-muted, #6b7280);background:transparent}[data-persona-root] .persona-ask-pill-selected .persona-ask-row-badge,[data-persona-root] .persona-ask-pill[aria-pressed=true] .persona-ask-row-badge{border-color:var(--persona-ask-pill-fg-selected, #fafafa);color:var(--persona-ask-pill-fg-selected, #fafafa)}[data-persona-root] .persona-ask-row-check{display:inline-flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;border-radius:.35rem;border:1.5px solid var(--persona-border, #d1d5db);background:transparent;position:relative}[data-persona-root] .persona-ask-pill-selected .persona-ask-row-check,[data-persona-root] .persona-ask-pill[aria-pressed=true] .persona-ask-row-check{background:var(--persona-ask-pill-fg-selected, #fafafa);border-color:var(--persona-ask-pill-fg-selected, #fafafa)}[data-persona-root] .persona-ask-pill-selected .persona-ask-row-check:after,[data-persona-root] .persona-ask-pill[aria-pressed=true] .persona-ask-row-check:after{content:"";width:.45rem;height:.75rem;border-right:2px solid var(--persona-ask-pill-bg-selected, var(--persona-accent, #0f0f0f));border-bottom:2px solid var(--persona-ask-pill-bg-selected, var(--persona-accent, #0f0f0f));transform:rotate(45deg) translate(-1px,-1px)}[data-persona-root] .persona-ask-row.persona-ask-pill-skeleton{height:3rem}[data-persona-root] .persona-ask-row--other{cursor:text}[data-persona-root] .persona-ask-row-input{flex:1;min-width:0;border:none;background:transparent;padding:0;margin:0;font:inherit;font-size:.92rem;color:inherit;outline:none;width:100%}[data-persona-root] .persona-ask-row-input::placeholder{color:var(--persona-text-muted, #6b7280);opacity:1}[data-persona-root] .persona-ask-free-text{width:100%}[data-persona-root] .persona-ask-free-text--rows{margin-top:.4rem}[data-persona-root] .persona-ask-free-text-input{padding:.5rem .8rem;border:1px solid var(--persona-border, #e5e7eb);border-radius:.55rem;font-size:.88rem;background:var(--persona-ask-input-bg, var(--persona-surface, #ffffff));color:var(--persona-text, #1f2937)}[data-persona-root] .persona-ask-free-text-input:focus{outline:2px solid var(--persona-accent, #0f0f0f);outline-offset:1px}[data-persona-root] .persona-ask-free-text-submit,[data-persona-root] .persona-ask-multi-submit{padding:.5rem 1rem;border:none;border-radius:.55rem;background:var(--persona-accent, #0f0f0f);color:#fafafa;font-size:.85rem;font-weight:600;cursor:pointer;transition:opacity .15s ease}[data-persona-root] .persona-ask-free-text-submit:disabled,[data-persona-root] .persona-ask-multi-submit:disabled{opacity:.4;cursor:not-allowed}[data-persona-root] .persona-ask-nav-back,[data-persona-root] .persona-ask-nav-skip{padding:.45rem .85rem;border:1px solid transparent;border-radius:.55rem;background:transparent;color:var(--persona-text-muted, #6b7280);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease}[data-persona-root] .persona-ask-nav-back:hover:not(:disabled),[data-persona-root] .persona-ask-nav-skip:hover:not(:disabled){background:var(--persona-container, #f3f4f6);color:var(--persona-text, #1f2937)}[data-persona-root] .persona-ask-nav-back:disabled{opacity:.35;cursor:not-allowed}[data-persona-root] .persona-ask-nav-next{padding:.5rem 1rem;border:none;border-radius:.55rem;background:var(--persona-accent, #0f0f0f);color:#fafafa;font-size:.85rem;font-weight:600;cursor:pointer;transition:opacity .15s ease}[data-persona-root] .persona-ask-nav-next:disabled{opacity:.4;cursor:not-allowed}@media (prefers-reduced-motion: reduce){[data-persona-root] .persona-ask-sheet,[data-persona-root] .persona-ask-pill-skeleton,[data-persona-root] .persona-ask-question-skeleton{transition:none!important;animation:none!important}}.persona-widget-wrapper[data-persona-composer-bar]{display:flex;flex-direction:column;transition:max-width .22s ease,bottom .22s ease,top .22s ease,left .22s ease,right .22s ease,transform .22s ease,border-radius .22s ease,height .22s ease,width .22s ease}.persona-widget-wrapper[data-persona-composer-bar][data-expanded-size=modal],.persona-widget-wrapper[data-persona-composer-bar][data-expanded-size=anchored]{transition:none}.persona-pill-composer{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:6px 14px;border-radius:9999px;background:var(--persona-surface, #ffffff);border:1px solid var(--persona-border, #e5e7eb);box-shadow:0 6px 24px #0f172a1a,0 1px 2px #0f172a0a}.persona-pill-composer .persona-composer-textarea{min-height:24px;width:100%;padding:4px 0}.persona-pill-composer__left,.persona-pill-composer__right{display:flex;align-items:center;gap:4px}.persona-widget-footer--pill{background:transparent;border-top:none;padding:0;display:flex;flex-direction:column;gap:8px}.persona-widget-pill-root[data-state=collapsed] [data-persona-composer-suggestions]{display:none}.persona-widget-pill-root[data-state=expanded] [data-persona-composer-suggestions]{display:flex;justify-content:center;margin:0 8px 4px}.persona-pill-composer__previews{padding:0 8px}[data-persona-composer-bar][data-state=collapsed] .persona-composer-overlay{display:none}.persona-widget-pill-root{position:fixed;bottom:16px;left:50%;transform:translate(-50%);width:90vw;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:8px}@media (min-width: 640px){.persona-widget-pill-root{width:70vw}}@media (min-width: 1024px){.persona-widget-pill-root{width:50vw}}[data-persona-composer-bar][data-state=collapsed] .persona-widget-container{display:none}.persona-pill-peek{display:flex;align-items:center;gap:8px;padding:6px 14px;background:#ffffffc7;-webkit-backdrop-filter:blur(10px) saturate(1.5);backdrop-filter:blur(10px) saturate(1.5);border:1px solid rgba(0,0,0,.06);border-radius:9999px;box-shadow:0 2px 8px #0f172a0f;color:var(--persona-primary, #111827);font:inherit;font-size:13px;line-height:1.4;cursor:pointer;opacity:0;pointer-events:none;transform:translateY(2px);transition:opacity .15s ease,transform .15s ease,background-color .15s ease;text-align:left;width:100%;align-self:stretch}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.persona-pill-peek{background:#fffffff2}}.persona-pill-peek--visible{opacity:1;pointer-events:auto;transform:translateY(0)}.persona-pill-peek:hover{background:#ffffffeb}.persona-pill-peek__icon,.persona-pill-peek__caret{display:inline-flex;flex-shrink:0;color:currentColor}.persona-pill-peek__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;min-width:0}[data-persona-root] .persona-pill-peek__text .persona-stream-char,[data-persona-root] .persona-pill-peek__text .persona-stream-word{vertical-align:baseline}[data-persona-root] .persona-pill-peek__text .persona-pill-peek__skeleton{display:inline-flex;vertical-align:middle;width:100%;max-width:200px;padding:0}[data-persona-root] .persona-pill-peek__text .persona-pill-peek__skeleton .persona-stream-skeleton-line{height:8px}.persona-widget-wrapper[data-persona-composer-bar][data-state=expanded][data-expanded-size=fullscreen]{inset:0;transform:none;max-width:none;width:100%;height:100%;border-radius:0}.persona-widget-wrapper[data-persona-composer-bar][data-expanded-size=fullscreen] .persona-widget-body{padding-bottom:0}.persona-widget-wrapper[data-persona-composer-bar][data-expanded-size=fullscreen] .persona-widget-body>:last-child{padding-bottom:calc(var(--persona-pill-bottom, 16px) + var(--persona-pill-area-height, 80px) + 16px)}@keyframes persona-composer-bar-fade-in{0%{opacity:0}to{opacity:1}}.persona-widget-wrapper[data-persona-composer-bar][data-state=expanded] .persona-widget-container{animation:persona-composer-bar-fade-in .22s ease both}.persona-widget-wrapper[data-persona-composer-bar][data-state=expanded] .persona-widget-body{animation:persona-composer-bar-fade-in .2s ease .22s both}@media (prefers-reduced-motion: reduce){.persona-widget-wrapper[data-persona-composer-bar]{transition:none!important}.persona-widget-wrapper[data-persona-composer-bar][data-state=expanded] .persona-widget-container,.persona-widget-wrapper[data-persona-composer-bar][data-state=expanded] .persona-widget-body{animation:none!important}}[data-persona-root] .persona-event-toolbar{container-type:inline-size}@container (max-width: 390px){[data-persona-root] .persona-event-copy-all{display:none}}
|