@callimacus/thamyr-react 4.11.1 → 4.12.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/CHANGELOG.core.md CHANGED
@@ -3,6 +3,13 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [4.12.0](https://github.com/callimacus/thamyr-sdk/compare/thamyr-core-v4.11.1...thamyr-core-v4.12.0) (2026-10-27)
7
+
8
+
9
+ ### Miscellaneous Chores
10
+
11
+ * **thamyr-core:** Synchronize thamyr versions
12
+
6
13
  ## [4.11.1](https://github.com/callimacus/thamyr-sdk/compare/thamyr-core-v4.11.0...thamyr-core-v4.11.1) (2026-10-27)
7
14
 
8
15
 
package/CHANGELOG.md CHANGED
@@ -3,6 +3,21 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [4.12.0](https://github.com/callimacus/thamyr-sdk/compare/thamyr-react-v4.11.1...thamyr-react-v4.12.0) (2026-10-27)
7
+
8
+
9
+ ### Features
10
+
11
+ * **react:** a site draws the whole CallimacusBar itself, keeping only the Callimacus mark ([#854](https://github.com/callimacus/thamyr-sdk/issues/854)) ([b067f83](https://github.com/callimacus/thamyr-sdk/commit/b067f83e484ae2164739384cc8407e376958e84f))
12
+
13
+
14
+ ### Dependencies
15
+
16
+ * The following workspace dependencies were updated
17
+ * dependencies
18
+ * @callimacus/thamyr bumped from ^4.11.1 to ^4.12.0
19
+ * @callimacus/thamyr-core bumped from ^4.11.1 to ^4.12.0
20
+
6
21
  ## [4.11.1](https://github.com/callimacus/thamyr-sdk/compare/thamyr-react-v4.11.0...thamyr-react-v4.11.1) (2026-10-27)
7
22
 
8
23
 
package/dist/esm/index.js CHANGED
@@ -5,5 +5,5 @@
5
5
  * See LICENSE.md for the full terms.
6
6
  *
7
7
  */
8
- import{UserInteractionType as n,interactionRound as t,landingRound as e,parseMapPath as r,resolveMapPage as a,randomUuid as o,deliverResultOf as i}from"@callimacus/thamyr-core";export{ACTION_TYPES,ADD_TO_CART_RESULT_BLOCK,CallimacusEvent,ChapterStatus,ClientEvents,DELIVER_RESULT_BLOCK,GalleryMode,LANDING_VALUE_MAX_LENGTH,SLInputEventType,ServerEvents,ThamyrHttpError,ThamyrResponseType,UserInteractionType,actionOf,addToCartResultOf,applyBlockPatch,blockKeyOf,callimacusService,clearIntentSessionId,deliverResultOf,ensureIntentSessionId,extractTtsAudio,fieldsOf,getIntentSessionId,initIntent,interactionRound,isSetProduct,landingRound,logger,parseMapPath,receptorsOf,resolveMapPage,setConsent,setDebug,setDebugPanel,setGeo,setIntentSessionMaxAge,transformImageUrl}from"@callimacus/thamyr-core";import{jsx as l,jsxs as c,Fragment as s}from"react/jsx-runtime";import{useMemo as d,useEffect as u,useState as m,useRef as p,useCallback as b,useId as g}from"react";import{t as h,w as v,u as f,m as y,a as x,b as k,c as w}from"./chunks/api-CVQBsmzY.js";import"@callimacus/thamyr";function q(n,t){const e=p(t);e.current=t,u(()=>n(n=>{e.current(n)}),[n])}function _(n){const t=f(n=>n.init),e=f(n=>n.reset);x(),u(()=>(k(),t(n),()=>{e(),y()}),[t,e,n.clientId,n.endpoint])}function L(){const r=f(n=>n.messages),a=f(n=>n.sendEvent),o=f(n=>n.sendAudio),i=d(()=>({openLanding(t,r={}){a(n.CREATE_ROUND,e(t,r))},sendInteraction(e,r={}){a(n.CREATE_ROUND,t(e,r))},refresh(e,r,o={}){a(n.CREATE_ROUND,t(r,{...o,block:e}))}}),[a]);return{history:r,sendEvent:a,sendAudio:o,...i}}const C={suggestions:[],loading:!1};function E(n,t={}){const{storyId:e,language:r,debounceMs:a=200}=t,o=f(n=>"connected"===n.connectionStatus),[i,l]=m(C),[c,s]=m(o);return c!==o&&(s(o),o||l(C)),u(()=>{if(!o)return;let t=!1;const i=setTimeout(()=>{l(n=>({...n,loading:!0}));(f.getState()._thamyr?.suggest(n,{storyId:e,language:r})??Promise.resolve(C)).then(({suggestions:n})=>{t||l({suggestions:n,loading:!1})}).catch(()=>{t||l(C)})},""===n?0:a);return()=>{t=!0,clearTimeout(i)}},[n,e,r,a,o]),o?i:C}function I(){return{status:f(n=>n.connectionStatus)}}function T(n){q(f(n=>n.addResponseListener),n)}function z(n){q(f(n=>n.addConnectionListener),n)}function S(n){q(f(n=>n.addErrorListener),n)}function R(){return d(()=>({getCart:async()=>(await v()).cart.getCart(),addItem:async n=>(await v()).cart.addItemToCart({productId:n}),removeItem:async n=>(await v()).cart.removeItemFromCart({productId:n}),updateQuantity:async(n,t)=>(await v()).cart.updateProductQuantity({productId:n,quantity:t})}),[])}function M(){return h}function A(){return d(()=>({similar:async(n,t)=>(await v()).skesis.similar({anchorId:n,...t}),related:async(n,t)=>(await v()).skesis.related({anchorId:n,...t})}),[])}function N(){return d(()=>({getSitemap:async()=>(await v()).sitemap.getSitemap()}),[])}function O(n){const[t,e]=m(),o=void 0!==r(n);u(()=>{if(!o)return;let t=!1;return a(h,n).then(r=>{t||e({pathname:n,page:r})}).catch(r=>{t||e({pathname:n,error:r instanceof Error?r:new Error(String(r))})}),()=>{t=!0}},[n,o]);const i=o&&t?.pathname===n?t:void 0;return{page:i?.page,loading:o&&void 0===i,error:i?.error}}const D=n=>({ok:!1,error:n});const U={state:"idle"},V=w(()=>({})),j=new Map;function H(){const e=f(n=>"connected"===n.connectionStatus),r=f(n=>n.storyId),a=f(n=>n.sendEvent),l=f(n=>n.addResponseListener),c=b(async(e,c={})=>{const s=c.storyId??r,d=t=>{try{return a(n.CREATE_ROUND,{...t,...void 0!==s&&{storyId:s}}),{ok:!0}}catch(n){return D(n)}};switch(e.type){case"link":return void 0===globalThis.location?D(new Error("[thamyr] a link action needs a browser")):(e.newTab?globalThis.open(e.url,"_blank","noopener"):globalThis.location.assign(e.url),{ok:!0});case"ask":return d({inputEvent:{type:"question",data:{value:e.value}}});case"interact":return d(t(e.id,{value:e.value,payload:e.payload,block:e.block}));case"cart":return async function(n){try{const{error:t}=await n;return void 0===t?{ok:!0}:D(t)}catch(n){return D(n)}}(v().then(async n=>n.cart.addItemToCart({productId:e.productId})));case"submit":{const n=o();j.set(e.form,n),V.setState({[e.form]:{state:"sending"}});const r=d({...t(e.form,{payload:c.fields??{},submissionId:n}),...void 0!==globalThis.document&&{context:{title:(u=globalThis.document.title,u.replaceAll(/\p{Control}/gv,"").slice(0,500).replace(/\p{Surrogate}$/v,""))}}}),a=r.ok?await async function(n,t){return new Promise(e=>{let r=()=>{};const a=setTimeout(()=>{r(),e(D("timeout"))},3e4);r=t(t=>{if("chapter-event"!==t.type||"customInteraction"!==t.chapter.inputEvent?.type||t.chapter.inputEvent.data.submissionId!==n)return;const o=(t.chapter.blocks??[]).map(n=>i(n)).find(t=>t?.submissionId===n);void 0!==o&&(clearTimeout(a),r(),e({ok:!0,result:o}))})})}(n,l):r;return j.get(e.form)===n&&V.setState({[e.form]:a.ok?{state:"done",result:a.result}:U}),a}}var u},[a,r,l]);return d(()=>({run:c,ready:e,storyId:r}),[c,e,r])}function P(n){return V(t=>t[n]??U)}const B=-45,F=1800,$=3e4;function K({silenceThreshold:n=B,silenceDuration:t=F,maxDuration:e=$,onRecordingComplete:r}){const[a,o]=m("idle"),[i,l]=m([]),[c,s]=m(void 0),d=p(void 0),g=p(void 0),h=p(void 0),v=p(void 0),f=p(0),y=p(0),x=p(void 0),k=p([]),w=p(!1),q=b(()=>{if(0!==f.current&&(cancelAnimationFrame(f.current),f.current=0),void 0!==x.current&&(clearTimeout(x.current),x.current=void 0),v.current){for(const n of v.current.getTracks())n.stop();v.current=void 0}"closed"!==g.current?.state&&g.current?.close(),g.current=void 0,h.current=void 0,d.current=void 0,w.current=!1},[]);u(()=>q,[q]);const _=b(()=>{w.current||(w.current=!0,"recording"===d.current?.state&&d.current.stop(),0!==f.current&&(cancelAnimationFrame(f.current),f.current=0),void 0!==x.current&&(clearTimeout(x.current),x.current=void 0))},[]),L=b(async()=>{s(void 0),k.current=[],w.current=!1;try{const a=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0,sampleRate:16e3}});v.current=a;const i=new AudioContext({sampleRate:16e3});g.current=i;const c=i.createMediaStreamSource(a),s=i.createAnalyser();s.fftSize=256,s.smoothingTimeConstant=.7,c.connect(s),h.current=s;const u=MediaRecorder.isTypeSupported("audio/webm;codecs=opus")?"audio/webm;codecs=opus":"audio/webm",m=new MediaRecorder(a,{mimeType:u});d.current=m,m.addEventListener("dataavailable",n=>{n.data.size>0&&k.current.push(n.data)}),m.addEventListener("stop",()=>{o("processing");const n=new Blob(k.current,{type:u});q(),r(n)}),m.start(250),o("recording"),y.current=0,x.current=setTimeout(()=>{_()},e);const p=()=>{if(!h.current||w.current)return;const e=h.current.frequencyBinCount,r=new Uint8Array(e);h.current.getByteFrequencyData(r);const a=Math.floor(e/32),o=[];for(let n=0;n<32;n++){let t=0;for(let e=0;e<a;e++)t+=r[n*a+e];o.push(t/a/255)}l(o);let i=0;for(const n of r){const t=n/255;i+=t*t}const c=Math.sqrt(i/e);if((c>0?20*Math.log10(c):-100)<n){if(0===y.current)y.current=Date.now();else if(Date.now()-y.current>t)return void _()}else y.current=0;f.current=requestAnimationFrame(p)};p()}catch{s("Microphone access denied"),o("idle"),q()}},[n,t,e,r,_,q]),C=b(()=>{o("idle"),l([])},[]);return{state:a,audioLevels:i,startRecording:L,stopRecording:_,reset:C,error:c}}function G(n){const t=p(void 0),[e,r]=m("idle"),[a,o]=m(void 0);u(()=>{const e=n?.audioUrl;if("undefined"==typeof Audio||void 0===e||""===e)return t.current=void 0,void r("idle");const a=new Audio(e);a.preload="none",t.current=a,r("idle"),o(void 0);const i=()=>{r("playing")},l=()=>{r("loading")},c=()=>{r(n=>"ended"===n?n:"paused")},s=()=>{r("ended")},d=()=>{o("Audio playback failed"),r("error")};return a.addEventListener("playing",i),a.addEventListener("waiting",l),a.addEventListener("pause",c),a.addEventListener("ended",s),a.addEventListener("error",d),()=>{a.pause(),a.removeEventListener("playing",i),a.removeEventListener("waiting",l),a.removeEventListener("pause",c),a.removeEventListener("ended",s),a.removeEventListener("error",d),a.src="",t.current=void 0}},[n?.audioUrl]);const i=b(async()=>{const n=t.current;if(n)try{o(void 0),r("loading"),await n.play()}catch{o("Audio playback failed"),r("error")}},[]),l=b(()=>{t.current?.pause()},[]),c=b(()=>{const n=t.current;n&&(n.pause(),n.currentTime=0,r("idle"))},[]),s=b(()=>{const n=t.current;n&&(n.paused?i():n.pause())},[i]);return{state:e,isPlaying:"playing"===e||"loading"===e,error:a,play:i,pause:l,toggle:s,stop:c}}function Q(n){return l("svg",{viewBox:"0 0 40 45",fill:"currentColor",role:"img","aria-label":"Callimacus",...n,children:l("path",{d:"M39.2 21.6q.8-.6.8-1 0-.2-.3-.2h-1.3l-.5.1h-.3c-.3-.2-.6-1-.9-1.5l-.5-1q-.2-.2-.4-.2t-.3.2l-.2 1.2-.4 1.5h-.1l-.3-.3-.4-.3q-1.5-1.9-2.7-3.8Q27.7 11 23.3 6l-.9-1.1q.1-.4.7-1l.5-.5v-.5l-.4-.1-1 .1h-.4q-.7-.1-.9-1.3-.2-1-.6-1.4L20 0q-.5.4-.6 1.3-.2.8-.5 1-.5.3-1.7.2l-1 .1v.7q0 .3.6.5c.4.2 1 .5 1 .8q-.2.4-1 .8l-.3.3-1.1 1-1 1L13 8.9c-1.9 1.7-4 3.5-5.4 5.7l-2.3.8q-.6-.2-.8-.9h-.4q-.2 0-.1 1v.6l-.1.2v.7L1 18.1v.3l.3.2 2.7.2.5 2.3-.4 2.8-.5 4.2v.3l.1.3-.1.3-.2.3-.1.3c0 .3-.3 1-.4 1H0v.2q0 .3.2.4l.9.5q1 .3 1.3.9l-.2 1-.2.3q-.5.8-.4 1l.1.2q.7-.1 1.6-1l1.2-.8 1.7 2H7v-.1L6.5 33h.1l8.3 4.7.8.5 1.3.7q1 .5 2 1.3h.1H18l-.8.2-.1.2.2.4h.1l.4.5.3.4.5.3.7.4v.2q-.7 1-.6 2v.2h.2c.3 0 1.2-.8 1.4-1l.3-.4q.3-.5.6-.6.6.2 1.4.9l1 .6h.4V44l-.4-1-.3-.8.7-.4.3-.2 1-.7v-.6l-.3-.1h-2V40l.6-1 .5-.7 6-8.1 1-1.5c1.2-1.7 2.6-4 3.1-4.2v1l.2.1h.1l.8-.7c.5-.4 1.2-1 1.4-1l.6.3 1.3 1q.3.5.6.5l.2-.1c.1 0 0-.4-.6-2.2l-.4-1 .5-.6zM17.7 3.7l-.4-.3q-.3 0-.4-.3h1q1 0 1.4-.2l.5-1.2.3-.7V.9l.3.9q.3 1 .6 1.4.1.3.7.2h1L21.4 5l.3 2-.1-.1-.9-1-.2-.2-.1-.2q-.1-.4-.5-.4h-.3v.2c-.3.5-1.2 1.3-1.4 1.5q0-.6.4-1.4v-.1q.4-.3 0-.8zM8 15.5l.4-.8.3-.7c.9-1.4 3.1-3.4 4.7-4.8l4-3.5.4-.3-.6 2.3.3.1c.5 0 1.1-.7 1.6-1.2L20 6l.7.8q.5.7 1.1 1l.5.2q.1 0 .2-.2.2-.3-.1-1.5l-.2-.8a42 42 0 0 1 6.3 8l1.8 2.2 3 4 .4 1-1.4-.1q-1.2 0-2.5-.2-3.1-.5-6.7-.7l-3.4-.6.9-12.5h-.3l-.4.1v1.4l-.3 3.7-.3 3.3V18q-.3.5-.3 1.1l-4.7-.7-1-.2-2-.4h-1l-1 .1q-.9 0-1.6-.4l-.5-.5.4-.5zm13.1 11.9h-1l-.3-.1-.4-.2h-.2q-.5 0-1 .4l-.7.4-.1-.1q0-.3.2-.8l.1-1q-.2-.4-1.1-.4l-1-.2v-.1l.6-.2q.6 0 1-.4l.2-1.1.2-.9 1.2 1.5q.7-.1 1.2-.5l1.2-.5-.5 1.6-.3.5-.4.9q.1.3.5.4l.4.2zM14 18.9l2.1.3 2.7.5q.2.9 0 1.8l-.1 1.4-.9-1.2-.2-.3h-.2q-.4 0-.3.6v.3l-.4 1.5-2-1q-1.5-.6-2.7-1.3l-1.3-.9-1-.7-.7-.4-1.2-.7h1.2l.3-.3q.6-.2 1.3-.2 1.2 0 2.4.4zm-5.5 1 1.6 1 1.3 1 2.3 1.2 2.5 1.3-.4.2h-.2l-.2.2q-.5 0-1 .4-.1 0-.2.2 0 .3.2.3l1 .2.8.2a25 25 0 0 1-4 2h-.2l-1-1.6q-.7-.7-1.2-1.6c-1.1-1.7-2.6-4-3.5-5.8v-.2zm10.8 3.6v-2.2zm1.7 2.1.4-1q.7-1.3.6-1.7t-.4-.4l-2.3.9.2-3.6h.8l1.4.2.9.2q1.5.3 3 .2l2.3.2.8.2.6.2 1 .1a6 6 0 0 1 2.7.8l1 .5-3.8 1.3zM4.5 18.1H2.8l2-.9V17l-.2-.3v-1q.3 0 .2.4l.2.1 1.2-.4 1.4-.5L6.3 17q.5.7 1 .9l.5.2-1 .2-.5-.2-.6-.1-.5.1v.6q.3.2.2.3L5 20.3l-.1-.9zm.6 3.9q.3-.1.4-.4l.2-.9.2-1.2 5.7 9h-.3l-1.7.8q-1.4.9-2.2 1l-.4.1H5.6l-.1-.2L5 29v-.6l-.2-.6-.2-.2h-.1c-.1-.3.4-4.8.6-5.6M5.6 32q0 .6.3 1.1l.3 1L5 32.9l-.4-.3q-.3 0-.4.3l-.2.1q-.7.5-1.3.9l.5-1.8-.2-.1q-.7-.2-1.2-.7H2l.6.1.5.2.2-.1.5-1 .5-1.4.5 1.1.3 1h.3l.3-.1.1-.1L7 31v.2zm1 .1 1-.5.8-.5q.3-.2.2-.4v-.1l-.2-.1 2.7-1.4.9-.2 6.8 10.2zm6-3.5 4.2-2h.3l-.3 1-.3 1q0 0 .2.3l.3.1h.2l.2-.3.4-.3.6-.3.6-.2.4 1.7v1.8l-.1 1.3v2q.2 2.1 0 4v.1zM23 40.8h1l-.3.4-.5.2-.4.3h-.2l-.5.4v.1q.5.3.6.8l.2.3q-.3-.1-.8-.5l-1-.5H21L19.3 44q.1-.6.4-1h.2l.2-.3v-.5q-.3-.2-.5-.2h-.3c-.3-.2-1-.7-1.1-1h1.1l.6.1.5-.1.8-2.3.2.8q.1 1 .5 1.3H23m-3.2.2h.1m14.3-17.3-8.6 11.6-1 1.5-2.1 2.8-.3.2-.3-1.2q-.1-1.2-.4-1.3l-.2-.1H21l-1 2.4v-5.9l-.2-5.7 1.8.1.2.1.7.1h.3V28l-.4-.4-.3-.2-.8-1.1L27 25l1.2-.2 2-.5 1.1-.3c1-.4 2.6-.9 3-.9h.1q0 .3-.3.5m4.2-2.1-.4.3-.8.7q.1.4.4.3h.2l.6 1.4-1.8-1.2q-.4 0-.4.3v.1l-1.2.9q0-.8.4-1.4h.1q.3-.2.2-.5-.3-.5-1.2-.7-.8 0-1.1-.5h1l.7.2.5-.1q0-1.4.5-2.4c.2.3.8 1.4.9 1.9v.1l-.1.2h.2l1.8-.2zm-19 1.9.2-2.2zm1.8 3.9zm1.5.9h-.1m.3 15zm12.9-25.5"})})}const X={send:"Send",clear:"Clear prompt",suggestions:"Suggestions",history:"History",historyEmpty:"No earlier prompts yet",startVoice:"Talk",stopVoice:"Stop listening",addImages:"Add images",removeImage:"Remove"};function Y({onSubmit:n,value:t,onValueChange:e,placeholder:r="Ask about anything",appearance:a,colorScheme:o,radius:i,glow:s,suggestions:d,suggestionsAlign:b,history:h,onVoice:v,acceptImages:f,poweredBy:y=!0,labels:x,sendIcon:k,actions:w,font:q,loading:_,disabled:L,autoFocus:C,className:E="",style:I,sendLabel:T,tint:z}){const[S,R]=m(""),M=t??S,{ref:A,isMultiline:N}=function(n){const t=p(null),[e,r]=m(!1);return u(()=>{const n=t.current;if(!n||"undefined"==typeof ResizeObserver)return;const e=new ResizeObserver(()=>{r(n.clientHeight>1.5*Number.parseFloat(getComputedStyle(n).lineHeight))});return e.observe(n),()=>{e.disconnect()}},[]),u(()=>{const n=t.current;!n||"undefined"!=typeof CSS&&CSS.supports("field-sizing","content")||(n.style.height="auto",n.style.height=`${n.scrollHeight}px`)},[n]),{ref:t,isMultiline:e}}(M),{ref:O,isOpen:D,setIsOpen:U}=function(){const n=p(null),[t,e]=m(!1);return u(()=>{if(!t)return;const r=t=>{t.target instanceof Node&&!n.current?.contains(t.target)&&e(!1)};return document.addEventListener("pointerdown",r),()=>{document.removeEventListener("pointerdown",r)}},[t]),{ref:n,isOpen:t,setIsOpen:e}}(),{picked:V,add:j,remove:H,clear:P}=function(){const[n,t]=m([]),e=p(new Set);u(()=>{const n=e.current;return()=>{for(const t of n)URL.revokeObjectURL(t);n.clear()}},[]);const r=n=>{URL.revokeObjectURL(n),e.current.delete(n)};return{picked:n,add(n){const r=n.map(n=>({file:n,url:URL.createObjectURL(n)}));for(const{url:n}of r)e.current.add(n);t(n=>[...n,...r])},remove(n){r(n),t(t=>t.filter(t=>t.url!==n))},clear(){for(const{url:t}of n)r(t);t([])}}}(),B=g(),F=function(n,t){return{...X,...void 0!==t&&{send:t},...n}}(x,T),$=function({history:n,onVoice:t,acceptImages:e}){return void 0!==n||void 0!==t||!0===e?"tools":"compact"}({history:h,onVoice:v,acceptImages:f}),K=n=>{R(n),e?.(n)},G=M.trim(),Y=(""!==G||V.length>0)&&!_&&!L,cn=n=>{K(n),U(!1),A.current?.focus()};return c("div",{ref:O,className:`cm-bar ${E}`.trimEnd(),"data-appearance":a,"data-layout":$,"data-multiline":N||void 0,"data-loading":!0===_||void 0,style:pn({colorScheme:o,radius:i,glow:s,paint:z,font:q,style:I}),onKeyDown:n=>{D&&"Escape"===n.key&&(U(!1),A.current?.focus())},children:[l("style",{children:bn}),l(W,{suggestions:D?void 0:d,align:b,label:F.suggestions,disabled:L,onPick:cn}),c("div",{className:"cm-bar-shell",children:[l(J,{glow:s,paint:z,loading:_}),l(nn,{id:B,isOpen:D,entries:h,labels:F,onPick:cn}),c("form",{className:"cm-bar-field","aria-busy":_,onSubmit:t=>{t.preventDefault(),Y&&(n(G,V.map(n=>n.file)),K(""),P(),U(!1))},children:[l(tn,{picked:V,label:F.removeImage,onRemove:H}),c("div",{className:"cm-bar-row",children:["compact"===$&&l(Q,{className:"cm-bar-mark"}),l("textarea",{ref:A,className:"cm-bar-input",rows:1,value:M,placeholder:r,"aria-label":r,enterKeyHint:"send",disabled:L,autoFocus:C,onChange:n=>{K(n.target.value)},onKeyDown:mn}),l(en,{isShown:""!==M,label:F.clear,disabled:L,onClear:()=>{cn("")}}),"compact"===$&&w,l("button",{type:"submit",className:"cm-bar-send",disabled:!Y,"aria-label":F.send,children:k??l(ln,{})})]}),"tools"===$&&c("div",{className:"cm-bar-footer",children:[c("div",{className:"cm-bar-tools",children:[f&&l(an,{label:F.addImages,disabled:L,onAdd:j}),h&&l(rn,{label:F.history,disabled:L,"aria-expanded":D,"aria-controls":B,onClick:()=>{U(n=>!n)},children:l(dn,{})}),v&&l(on,{labels:F,disabled:L,loading:_,onVoice:v}),w]}),l(Z,{})]})]})]}),"compact"===$&&y&&l(Z,{})]})}function Z(){return l("span",{className:"cm-bar-powered-by",children:"Powered by Callimacus"})}function J({glow:n,paint:t,loading:e}){return void 0!==n&&!1!==n||void 0!==t||!0===e?l("span",{className:"cm-bar-glow","aria-hidden":"true"}):null}function W({suggestions:n=[],align:t,label:e,disabled:r,onPick:a}){return 0===n.length?null:l("div",{className:"cm-bar-suggestions",role:"group","aria-label":e,"data-align":t,children:n.map((n,t)=>l("button",{type:"button",className:"cm-bar-suggestion",disabled:r,onClick:()=>{a(n)},children:n},t))})}function nn({id:n,isOpen:t,entries:e=[],labels:r,onPick:a}){return t?l("div",{id:n,className:"cm-bar-history",role:"group","aria-label":r.history,children:0===e.length?l("p",{className:"cm-bar-history-empty",children:r.historyEmpty}):l("ul",{children:e.map((n,t)=>l("li",{children:l("button",{type:"button",className:"cm-bar-history-item",onClick:()=>{a(n)},children:n})},t))})}):null}function tn({picked:n,label:t,onRemove:e}){return 0===n.length?null:l("ul",{className:"cm-bar-images",children:n.map(({file:n,url:r})=>c("li",{className:"cm-bar-image",children:[l("img",{src:r,alt:n.name}),l("button",{type:"button","aria-label":`${t} ${n.name}`,title:`${t} ${n.name}`,onClick:()=>{e(r)},children:l(cn,{})})]},r))})}function en({isShown:n,label:t,disabled:e,onClear:r}){return n?l("button",{type:"button",className:"cm-bar-clear","aria-label":t,title:t,disabled:e,onClick:r,children:l(cn,{})}):null}function rn({label:n,children:t,...e}){return l("button",{type:"button",className:"cm-bar-tool","aria-label":n,title:n,...e,children:t})}function an({label:n,disabled:t,onAdd:e}){const r=p(null);return c(s,{children:[l(rn,{label:n,disabled:t,onClick:()=>{r.current?.click()},children:l(sn,{})}),l("input",{ref:r,hidden:!0,type:"file",accept:"image/*",multiple:!0,onChange:n=>{e([...n.target.files??[]]),n.target.value=""}})]})}function on({labels:n,disabled:t,loading:e,onVoice:r}){const a=K({onRecordingComplete:r}),o="recording"===a.state,i=o?n.stopVoice:n.startVoice,c=(!0===t||!0===e)&&!o;return l(rn,{label:a.error??i,disabled:c,"aria-pressed":o,onClick:()=>{o?a.stopRecording():a.startRecording()},children:l(un,{})})}function ln(){return l("svg",{viewBox:"0 0 10 11",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:l("path",{d:"M.5 4.67 4.88.5m0 0 4.37 4.17M4.88.5v10"})})}function cn(){return l("svg",{viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeLinecap:"round","aria-hidden":"true",children:l("path",{d:"M.5.5l9 9m0-9-9 9"})})}function sn(){return l("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeLinecap:"round","aria-hidden":"true",children:l("path",{d:"M8 2.5v11M2.5 8h11"})})}function dn(){return l("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:l("path",{d:"M8 4.5C6.9 3.6 5.3 3.2 2.5 3.2v8.9c2.8 0 4.4.4 5.5 1.4 1.1-1 2.7-1.4 5.5-1.4V3.2c-2.8 0-4.4.4-5.5 1.3Zm0 0v9"})})}function un(){return c("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[l("rect",{x:"6",y:"2.5",width:"4",height:"7",rx:"2"}),l("path",{d:"M3.5 8a4.5 4.5 0 0 0 9 0M8 12.5v1"})]})}function mn(n){"Enter"!==n.key||n.shiftKey||n.nativeEvent.isComposing||(n.preventDefault(),n.currentTarget.form?.requestSubmit())}function pn({colorScheme:n,radius:t,glow:e,paint:r,font:a,style:o}){return{colorScheme:"auto"===n?void 0:n,"--cm-radius":"pill"===t?"999px":void 0===t?void 0:`${t}px`,"--cm-glow-colors":"object"==typeof e&&e.length>0?[...e,e[0]].join(", "):void 0,"--cm-tint":r,"--cm-font":a,...o}}const bn="\n.cm-bar {\n\t--_ink: var(--cm-fg, light-dark(#212121, #fff));\n\t--_fill: var(--cm-bg, light-dark(#fff, #404040));\n\t--_edge: var(--cm-border-color, light-dark(#f2f2f2, rgb(242 242 242 / .3)));\n\t--_button-fill: var(--_fill);\n\t--_button-edge: var(--cm-border-color, light-dark(#f2f2f2, rgb(136 136 136 / .3)));\n\t--_chip-edge: var(--cm-border-color, light-dark(#f2f2f2, rgb(242 242 242 / .3)));\n\t--_blur: none;\n\t--_radius: var(--cm-radius, 999px);\n\t--_corner: var(--_radius);\n\t--_size: var(--cm-size, 34px);\n\t--_pad: var(--cm-padding, 12px);\n\t--_glow-colors: var(--cm-glow-colors, #d698c7, #ffc691, #a8dfdb, #c1b1f0, #d698c7);\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\tfont-family: var(--cm-font, inherit);\n\tfont-size: var(--cm-font-size, 1rem);\n\tline-height: 1.25;\n}\n\n/* Figma \"Transparent\": the fill at 64% over the page, blurred. */\n.cm-bar[data-appearance='glass'] {\n\t--_fill: var(--cm-bg, light-dark(rgb(255 255 255 / .64), rgb(64 64 64 / .64)));\n\t--_edge: var(--cm-border-color, rgb(242 242 242 / .3));\n\t--_button-edge: var(--cm-border-color, light-dark(rgb(242 242 242 / .3), rgb(136 136 136 / .3)));\n\t--_chip-edge: var(--cm-border-color, light-dark(rgb(242 242 242 / .64), rgb(242 242 242 / .3)));\n\t--_blur: blur(var(--cm-blur, 7.3px));\n}\n\n/* The bar with tools is two rows tall, too tall for a pill: the Figma stops it at 16px. */\n.cm-bar[data-layout='tools'] {\n\t--_radius: min(var(--cm-radius, 999px), 16px);\n}\n\n/* Over the bar with tools, white glass keeps a white edge and a lighter send button. */\n.cm-bar[data-appearance='glass'][data-layout='tools'] {\n\t--_edge: var(--cm-border-color, light-dark(#f2f2f2, rgb(242 242 242 / .3)));\n\t--_button-fill: light-dark(rgb(255 255 255 / .3), rgb(64 64 64 / .64));\n\t--_button-edge: var(--cm-border-color, light-dark(#f2f2f2, rgb(136 136 136 / .3)));\n}\n\n/* A wrapped prompt is too tall for a pill. */\n.cm-bar[data-multiline] {\n\t--_corner: min(var(--_radius), 24px);\n}\n\n.cm-bar-suggestions {\n\t/* Above the glow, which spills over the bar's top edge. */\n\tposition: relative;\n\tz-index: 1;\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tjustify-content: center;\n\tgap: 4px;\n\tmargin-bottom: 4px;\n}\n\n.cm-bar[data-layout='tools'] .cm-bar-suggestions {\n\tjustify-content: flex-start;\n\tmargin-bottom: 5px;\n}\n\n.cm-bar .cm-bar-suggestions[data-align='start'] {\n\tjustify-content: flex-start;\n}\n\n.cm-bar .cm-bar-suggestions[data-align='center'] {\n\tjustify-content: center;\n}\n\n.cm-bar-suggestion {\n\tbox-sizing: border-box;\n\theight: 32px;\n\tmargin: 0;\n\tpadding: 0 16px;\n\tborder: 1px solid var(--_chip-edge);\n\tborder-radius: calc(var(--_radius) / 2);\n\tbackground: var(--_fill);\n\t-webkit-backdrop-filter: var(--_blur);\n\tbackdrop-filter: var(--_blur);\n\tcolor: var(--_ink);\n\tfont: inherit;\n\tfont-size: .875em;\n\tline-height: 1;\n\twhite-space: nowrap;\n\tcursor: pointer;\n\ttransition: translate .16s, box-shadow .16s;\n}\n\n.cm-bar-suggestion:enabled:hover {\n\ttranslate: 0 -1px;\n\tbox-shadow: 0 2px 6px rgb(0 0 0 / .08);\n}\n\n.cm-bar-suggestion:disabled {\n\tcursor: default;\n\topacity: .5;\n}\n\n.cm-bar-shell {\n\tposition: relative;\n}\n\n/* Figma draws the glow as a 4px gradient stroke centred on the bar's edge, under a 10px blur.\nThe blur sits on the outer box so the ring's mask doesn't clip it. */\n.cm-bar-glow {\n\tposition: absolute;\n\tinset: 0;\n\topacity: var(--cm-glow, 1);\n\tfilter: blur(5px);\n\tpointer-events: none;\n}\n\n.cm-bar-glow::before {\n\tcontent: '';\n\tposition: absolute;\n\tinset: -2px;\n\tpadding: 4px;\n\tborder-radius: calc(var(--_corner) + 2px);\n\tbackground: var(--cm-tint, conic-gradient(from var(--cm-bar-angle), var(--_glow-colors)));\n\t-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);\n\t-webkit-mask-composite: xor;\n\tmask-composite: exclude;\n\tanimation: cm-bar-turn 6s linear infinite;\n}\n\n.cm-bar[data-loading] .cm-bar-glow::before {\n\tanimation-duration: 2s;\n}\n\n.cm-bar-field {\n\tposition: relative;\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin: 0;\n\tpadding: var(--_pad) var(--_pad) var(--_pad) calc(var(--_pad) + 4px);\n\tborder: var(--cm-border-width, 1px) solid var(--_edge);\n\tborder-radius: var(--_corner);\n\tbackground: var(--_fill);\n\t-webkit-backdrop-filter: var(--_blur);\n\tbackdrop-filter: var(--_blur);\n\tbox-shadow: var(--cm-shadow, 0 4px 4px rgb(0 0 0 / .12));\n\tcolor: var(--_ink);\n\ttransition: border-radius .2s;\n}\n\n.cm-bar[data-layout='tools'] .cm-bar-field {\n\tgap: 8px;\n\tpadding-block: calc(var(--_pad) - 4px);\n}\n\n.cm-bar-field:has(.cm-bar-input:disabled) {\n\topacity: .5;\n}\n\n.cm-bar-row {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n}\n\n.cm-bar[data-layout='tools'] .cm-bar-row {\n\tpadding-bottom: 8px;\n\tborder-bottom: 1px solid rgb(33 33 33 / .1);\n}\n\n/* A wrapped prompt keeps the mark and the buttons on its last line. */\n.cm-bar[data-multiline] .cm-bar-row {\n\talign-items: flex-end;\n}\n\n/* The mark is the one fixed part of the compact bar: color and size are themable, hiding it is not. */\n.cm-bar-mark {\n\tflex: none;\n\tdisplay: block !important;\n\tvisibility: visible !important;\n\topacity: 1 !important;\n\twidth: auto;\n\theight: calc(var(--_size) * .8);\n\tmin-width: 1.1rem !important;\n\tmin-height: 1.25rem !important;\n\tcolor: var(--cm-mark-color, currentColor);\n}\n\n.cm-bar[data-loading] .cm-bar-mark {\n\tanimation: cm-bar-twinkle 1.5s ease-in-out infinite;\n}\n\n.cm-bar-input {\n\tflex: 1;\n\tbox-sizing: border-box;\n\tmin-width: 0;\n\tmin-height: 1lh;\n\tmax-height: 6lh;\n\tmargin: max(0px, calc((var(--_size) - 1lh) / 2)) 0;\n\tpadding: 0;\n\tborder: 0;\n\tborder-radius: 0;\n\toutline: 0;\n\tbackground: none;\n\tcolor: inherit;\n\tfont: inherit;\n\tresize: none;\n\tfield-sizing: content;\n}\n\n.cm-bar[data-multiline] .cm-bar-input {\n\tmargin-block: 0;\n}\n\n.cm-bar-input::placeholder {\n\tcolor: inherit;\n\topacity: .2;\n}\n\n.cm-bar-clear {\n\tflex: none;\n\tdisplay: grid;\n\tplace-items: center;\n\twidth: 20px;\n\theight: var(--_size);\n\tmargin: 0 -4px 0 0;\n\tpadding: 0;\n\tborder: 0;\n\tbackground: none;\n\tcolor: inherit;\n\tcursor: pointer;\n\topacity: .85;\n\ttransition: opacity .16s;\n}\n\n.cm-bar-clear:hover {\n\topacity: 1;\n}\n\n.cm-bar-clear svg {\n\twidth: 10px;\n\theight: 10px;\n}\n\n.cm-bar-send {\n\tflex: none;\n\tbox-sizing: border-box;\n\tdisplay: grid;\n\tplace-items: center;\n\twidth: var(--_size);\n\theight: var(--_size);\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 1px solid var(--_button-edge);\n\tborder-radius: calc(var(--_radius) / 2);\n\tbackground: var(--cm-button-bg, var(--_button-fill));\n\tcolor: var(--cm-button-fg, inherit);\n\tcursor: pointer;\n\ttransition: translate .16s, background-color .16s;\n}\n\n.cm-bar-send:enabled:hover {\n\ttranslate: 0 -1px;\n}\n\n.cm-bar-send:disabled {\n\tcursor: default;\n}\n\n.cm-bar-send:disabled > * {\n\topacity: .2;\n}\n\n.cm-bar-send svg {\n\twidth: 30%;\n\theight: auto;\n}\n\n.cm-bar-footer {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 8px;\n\theight: 20px;\n}\n\n/* The icons sit on one 16px grid; pulling the row in by the plus's own inset puts its stroke on the text's edge. */\n.cm-bar-tools {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n\tmargin-left: -6px;\n}\n\n.cm-bar-tool {\n\tdisplay: grid;\n\tplace-items: center;\n\twidth: 24px;\n\theight: 20px;\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tborder-radius: 6px;\n\tbackground: none;\n\tcolor: var(--cm-tool-color, light-dark(#6c6c6c, #fff));\n\tcursor: pointer;\n}\n\n.cm-bar-tool svg {\n\tdisplay: block;\n\twidth: 16px;\n\theight: 16px;\n}\n\n.cm-bar-tool:enabled:hover,\n.cm-bar-tool[aria-expanded='true'] {\n\tbackground: rgb(127 127 127 / .14);\n}\n\n.cm-bar-tool:disabled {\n\tcursor: default;\n\topacity: .5;\n}\n\n.cm-bar-tool[aria-pressed='true'] {\n\tcolor: #e5484d;\n\tanimation: cm-bar-listening 1.2s ease-in-out infinite;\n}\n\n.cm-bar-images {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 6px;\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n}\n\n.cm-bar-image {\n\tposition: relative;\n\twidth: 44px;\n\theight: 44px;\n}\n\n.cm-bar-image img {\n\tdisplay: block;\n\tbox-sizing: border-box;\n\twidth: 100%;\n\theight: 100%;\n\tborder: 1px solid var(--_edge);\n\tborder-radius: 6px;\n\tobject-fit: cover;\n}\n\n.cm-bar-image button {\n\tposition: absolute;\n\ttop: -5px;\n\tright: -5px;\n\tdisplay: grid;\n\tplace-items: center;\n\twidth: 16px;\n\theight: 16px;\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tborder-radius: 50%;\n\tbackground: #212121;\n\tcolor: #fff;\n\tcursor: pointer;\n}\n\n.cm-bar-image svg {\n\twidth: 7px;\n\theight: 7px;\n}\n\n.cm-bar-history {\n\tposition: absolute;\n\tz-index: 2;\n\tleft: 0;\n\tright: 0;\n\tbottom: calc(100% + 8px);\n\tbox-sizing: border-box;\n\tmax-height: 220px;\n\toverflow-y: auto;\n\tpadding: 6px;\n\tborder: 1px solid var(--_edge);\n\tborder-radius: 12px;\n\tbackground: var(--_fill);\n\t-webkit-backdrop-filter: blur(14px);\n\tbackdrop-filter: blur(14px);\n\tbox-shadow: 0 8px 24px rgb(0 0 0 / .12);\n\tcolor: var(--_ink);\n}\n\n.cm-bar[data-appearance='glass'] .cm-bar-history {\n\tbackground: var(--cm-bg, light-dark(rgb(255 255 255 / .64), rgb(48 48 48 / .86)));\n}\n\n.cm-bar-history ul {\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n}\n\n.cm-bar-history-item {\n\tdisplay: block;\n\tbox-sizing: border-box;\n\twidth: 100%;\n\tmargin: 0;\n\tpadding: 8px 10px;\n\tborder: 0;\n\tborder-radius: 8px;\n\tbackground: none;\n\tcolor: inherit;\n\tfont: inherit;\n\tfont-size: .875em;\n\tline-height: 1.3;\n\ttext-align: start;\n\tcursor: pointer;\n}\n\n.cm-bar-history-item:hover,\n.cm-bar-history-item:focus-visible {\n\tbackground: rgb(127 127 127 / .14);\n\toutline: none;\n}\n\n.cm-bar-history-empty {\n\tmargin: 0;\n\tpadding: 8px 10px;\n\tfont-size: .8125em;\n\topacity: .5;\n}\n\n.cm-bar-suggestion:focus-visible,\n.cm-bar-clear:focus-visible,\n.cm-bar-send:focus-visible,\n.cm-bar-tool:focus-visible,\n.cm-bar-image button:focus-visible {\n\toutline: 2px solid light-dark(rgb(33 33 33 / .4), rgb(255 255 255 / .6));\n\toutline-offset: 2px;\n}\n\n.cm-bar-powered-by {\n\tmargin-top: 10px;\n\tcolor: var(--cm-powered-by-color, inherit);\n\tfont-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n\tfont-size: .5em;\n\tline-height: 1;\n\ttext-align: center;\n\ttext-transform: uppercase;\n\twhite-space: nowrap;\n}\n\n/* In the tools row it takes the bar's ink, trimmed to its capitals so it lines up with the icons. */\n.cm-bar-footer .cm-bar-powered-by {\n\tmargin: 0;\n\ttext-box: trim-both cap alphabetic;\n}\n\n/* The colours travel round the edge: a conic gradient whose start angle turns. */\n@property --cm-bar-angle {\n\tsyntax: '<angle>';\n\tinherits: false;\n\tinitial-value: 0deg;\n}\n\n@keyframes cm-bar-turn {\n\tto {\n\t\t--cm-bar-angle: 360deg;\n\t}\n}\n\n/* Transform only: the mark's opacity is pinned to 1. */\n@keyframes cm-bar-twinkle {\n\t50% {\n\t\ttransform: scale(.85) rotate(-10deg);\n\t}\n}\n\n@keyframes cm-bar-listening {\n\t50% {\n\t\tbackground: rgb(229 72 77 / .14);\n\t}\n}\n\n@media (prefers-reduced-motion: reduce) {\n\t.cm-bar *,\n\t.cm-bar *::before {\n\t\tanimation: none !important;\n\t\ttransition: none !important;\n\t}\n}\n";export{Y as CallimacusBar,Q as CallimacusMark,h as thamyrApi,H as useActions,M as useApi,f as useCallimacusStore,R as useCart,I as useConnection,_ as useInitThamyr,O as useMapPage,z as useOnConnectionChange,S as useOnError,T as useOnResponse,N as useSitemap,A as useSkesis,P as useSubmission,E as useSuggestions,L as useThamyr,G as useTtsAudio,K as useVoiceRecorder};
8
+ import{UserInteractionType as n,interactionRound as t,landingRound as e,parseMapPath as r,resolveMapPage as a,randomUuid as o,deliverResultOf as i}from"@callimacus/thamyr-core";export{ACTION_TYPES,ADD_TO_CART_RESULT_BLOCK,CallimacusEvent,ChapterStatus,ClientEvents,DELIVER_RESULT_BLOCK,GalleryMode,LANDING_VALUE_MAX_LENGTH,SLInputEventType,ServerEvents,ThamyrHttpError,ThamyrResponseType,UserInteractionType,actionOf,addToCartResultOf,applyBlockPatch,blockKeyOf,callimacusService,clearIntentSessionId,deliverResultOf,ensureIntentSessionId,extractTtsAudio,fieldsOf,getIntentSessionId,initIntent,interactionRound,isSetProduct,landingRound,logger,parseMapPath,receptorsOf,resolveMapPage,setConsent,setDebug,setDebugPanel,setGeo,setIntentSessionMaxAge,transformImageUrl}from"@callimacus/thamyr-core";import{jsx as l,jsxs as c,Fragment as s}from"react/jsx-runtime";import{useMemo as d,useEffect as u,useState as m,useRef as p,useCallback as b,useId as g}from"react";import{t as h,w as f,u as v,m as y,a as x,b as k,c as w}from"./chunks/api-CVQBsmzY.js";import"@callimacus/thamyr";function q(n,t){const e=p(t);e.current=t,u(()=>n(n=>{e.current(n)}),[n])}function _(n){const t=v(n=>n.init),e=v(n=>n.reset);x(),u(()=>(k(),t(n),()=>{e(),y()}),[t,e,n.clientId,n.endpoint])}function L(){const r=v(n=>n.messages),a=v(n=>n.sendEvent),o=v(n=>n.sendAudio),i=d(()=>({openLanding(t,r={}){a(n.CREATE_ROUND,e(t,r))},sendInteraction(e,r={}){a(n.CREATE_ROUND,t(e,r))},refresh(e,r,o={}){a(n.CREATE_ROUND,t(r,{...o,block:e}))}}),[a]);return{history:r,sendEvent:a,sendAudio:o,...i}}const C={suggestions:[],loading:!1};function E(n,t={}){const{storyId:e,language:r,debounceMs:a=200}=t,o=v(n=>"connected"===n.connectionStatus),[i,l]=m(C),[c,s]=m(o);return c!==o&&(s(o),o||l(C)),u(()=>{if(!o)return;let t=!1;const i=setTimeout(()=>{l(n=>({...n,loading:!0}));(v.getState()._thamyr?.suggest(n,{storyId:e,language:r})??Promise.resolve(C)).then(({suggestions:n})=>{t||l({suggestions:n,loading:!1})}).catch(()=>{t||l(C)})},""===n?0:a);return()=>{t=!0,clearTimeout(i)}},[n,e,r,a,o]),o?i:C}function I(){return{status:v(n=>n.connectionStatus)}}function S(n){q(v(n=>n.addResponseListener),n)}function T(n){q(v(n=>n.addConnectionListener),n)}function z(n){q(v(n=>n.addErrorListener),n)}function R(){return d(()=>({getCart:async()=>(await f()).cart.getCart(),addItem:async n=>(await f()).cart.addItemToCart({productId:n}),removeItem:async n=>(await f()).cart.removeItemFromCart({productId:n}),updateQuantity:async(n,t)=>(await f()).cart.updateProductQuantity({productId:n,quantity:t})}),[])}function N(){return h}function M(){return d(()=>({similar:async(n,t)=>(await f()).skesis.similar({anchorId:n,...t}),related:async(n,t)=>(await f()).skesis.related({anchorId:n,...t})}),[])}function A(){return d(()=>({getSitemap:async()=>(await f()).sitemap.getSitemap()}),[])}function O(n){const[t,e]=m(),o=void 0!==r(n);u(()=>{if(!o)return;let t=!1;return a(h,n).then(r=>{t||e({pathname:n,page:r})}).catch(r=>{t||e({pathname:n,error:r instanceof Error?r:new Error(String(r))})}),()=>{t=!0}},[n,o]);const i=o&&t?.pathname===n?t:void 0;return{page:i?.page,loading:o&&void 0===i,error:i?.error}}const D=n=>({ok:!1,error:n});const V={state:"idle"},U=w(()=>({})),H=new Map;function j(){const e=v(n=>"connected"===n.connectionStatus),r=v(n=>n.storyId),a=v(n=>n.sendEvent),l=v(n=>n.addResponseListener),c=b(async(e,c={})=>{const s=c.storyId??r,d=t=>{try{return a(n.CREATE_ROUND,{...t,...void 0!==s&&{storyId:s}}),{ok:!0}}catch(n){return D(n)}};switch(e.type){case"link":return void 0===globalThis.location?D(new Error("[thamyr] a link action needs a browser")):(e.newTab?globalThis.open(e.url,"_blank","noopener"):globalThis.location.assign(e.url),{ok:!0});case"ask":return d({inputEvent:{type:"question",data:{value:e.value}}});case"interact":return d(t(e.id,{value:e.value,payload:e.payload,block:e.block}));case"cart":return async function(n){try{const{error:t}=await n;return void 0===t?{ok:!0}:D(t)}catch(n){return D(n)}}(f().then(async n=>n.cart.addItemToCart({productId:e.productId})));case"submit":{const n=o();H.set(e.form,n),U.setState({[e.form]:{state:"sending"}});const r=d({...t(e.form,{payload:c.fields??{},submissionId:n}),...void 0!==globalThis.document&&{context:{title:(u=globalThis.document.title,u.replaceAll(/\p{Control}/gv,"").slice(0,500).replace(/\p{Surrogate}$/v,""))}}}),a=r.ok?await async function(n,t){return new Promise(e=>{let r=()=>{};const a=setTimeout(()=>{r(),e(D("timeout"))},3e4);r=t(t=>{if("chapter-event"!==t.type||"customInteraction"!==t.chapter.inputEvent?.type||t.chapter.inputEvent.data.submissionId!==n)return;const o=(t.chapter.blocks??[]).map(n=>i(n)).find(t=>t?.submissionId===n);void 0!==o&&(clearTimeout(a),r(),e({ok:!0,result:o}))})})}(n,l):r;return H.get(e.form)===n&&U.setState({[e.form]:a.ok?{state:"done",result:a.result}:V}),a}}var u},[a,r,l]);return d(()=>({run:c,ready:e,storyId:r}),[c,e,r])}function P(n){return U(t=>t[n]??V)}const B=-45,F=1800,K=3e4;function $({silenceThreshold:n=B,silenceDuration:t=F,maxDuration:e=K,onRecordingComplete:r}){const[a,o]=m("idle"),[i,l]=m([]),[c,s]=m(void 0),d=p(void 0),g=p(void 0),h=p(void 0),f=p(void 0),v=p(0),y=p(0),x=p(void 0),k=p([]),w=p(!1),q=b(()=>{if(0!==v.current&&(cancelAnimationFrame(v.current),v.current=0),void 0!==x.current&&(clearTimeout(x.current),x.current=void 0),f.current){for(const n of f.current.getTracks())n.stop();f.current=void 0}"closed"!==g.current?.state&&g.current?.close(),g.current=void 0,h.current=void 0,d.current=void 0,w.current=!1},[]);u(()=>q,[q]);const _=b(()=>{w.current||(w.current=!0,"recording"===d.current?.state&&d.current.stop(),0!==v.current&&(cancelAnimationFrame(v.current),v.current=0),void 0!==x.current&&(clearTimeout(x.current),x.current=void 0))},[]),L=b(async()=>{s(void 0),k.current=[],w.current=!1;try{const a=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0,sampleRate:16e3}});f.current=a;const i=new AudioContext({sampleRate:16e3});g.current=i;const c=i.createMediaStreamSource(a),s=i.createAnalyser();s.fftSize=256,s.smoothingTimeConstant=.7,c.connect(s),h.current=s;const u=MediaRecorder.isTypeSupported("audio/webm;codecs=opus")?"audio/webm;codecs=opus":"audio/webm",m=new MediaRecorder(a,{mimeType:u});d.current=m,m.addEventListener("dataavailable",n=>{n.data.size>0&&k.current.push(n.data)}),m.addEventListener("stop",()=>{o("processing");const n=new Blob(k.current,{type:u});q(),r(n)}),m.start(250),o("recording"),y.current=0,x.current=setTimeout(()=>{_()},e);const p=()=>{if(!h.current||w.current)return;const e=h.current.frequencyBinCount,r=new Uint8Array(e);h.current.getByteFrequencyData(r);const a=Math.floor(e/32),o=[];for(let n=0;n<32;n++){let t=0;for(let e=0;e<a;e++)t+=r[n*a+e];o.push(t/a/255)}l(o);let i=0;for(const n of r){const t=n/255;i+=t*t}const c=Math.sqrt(i/e);if((c>0?20*Math.log10(c):-100)<n){if(0===y.current)y.current=Date.now();else if(Date.now()-y.current>t)return void _()}else y.current=0;v.current=requestAnimationFrame(p)};p()}catch{s("Microphone access denied"),o("idle"),q()}},[n,t,e,r,_,q]),C=b(()=>{o("idle"),l([])},[]);return{state:a,audioLevels:i,startRecording:L,stopRecording:_,reset:C,error:c}}function G(n){const t=p(void 0),[e,r]=m("idle"),[a,o]=m(void 0);u(()=>{const e=n?.audioUrl;if("undefined"==typeof Audio||void 0===e||""===e)return t.current=void 0,void r("idle");const a=new Audio(e);a.preload="none",t.current=a,r("idle"),o(void 0);const i=()=>{r("playing")},l=()=>{r("loading")},c=()=>{r(n=>"ended"===n?n:"paused")},s=()=>{r("ended")},d=()=>{o("Audio playback failed"),r("error")};return a.addEventListener("playing",i),a.addEventListener("waiting",l),a.addEventListener("pause",c),a.addEventListener("ended",s),a.addEventListener("error",d),()=>{a.pause(),a.removeEventListener("playing",i),a.removeEventListener("waiting",l),a.removeEventListener("pause",c),a.removeEventListener("ended",s),a.removeEventListener("error",d),a.src="",t.current=void 0}},[n?.audioUrl]);const i=b(async()=>{const n=t.current;if(n)try{o(void 0),r("loading"),await n.play()}catch{o("Audio playback failed"),r("error")}},[]),l=b(()=>{t.current?.pause()},[]),c=b(()=>{const n=t.current;n&&(n.pause(),n.currentTime=0,r("idle"))},[]),s=b(()=>{const n=t.current;n&&(n.paused?i():n.pause())},[i]);return{state:e,isPlaying:"playing"===e||"loading"===e,error:a,play:i,pause:l,toggle:s,stop:c}}function Q(n){return l("svg",{viewBox:"0 0 40 45",fill:"currentColor",role:"img","aria-label":"Callimacus",...n,children:l("path",{d:"M39.2 21.6q.8-.6.8-1 0-.2-.3-.2h-1.3l-.5.1h-.3c-.3-.2-.6-1-.9-1.5l-.5-1q-.2-.2-.4-.2t-.3.2l-.2 1.2-.4 1.5h-.1l-.3-.3-.4-.3q-1.5-1.9-2.7-3.8Q27.7 11 23.3 6l-.9-1.1q.1-.4.7-1l.5-.5v-.5l-.4-.1-1 .1h-.4q-.7-.1-.9-1.3-.2-1-.6-1.4L20 0q-.5.4-.6 1.3-.2.8-.5 1-.5.3-1.7.2l-1 .1v.7q0 .3.6.5c.4.2 1 .5 1 .8q-.2.4-1 .8l-.3.3-1.1 1-1 1L13 8.9c-1.9 1.7-4 3.5-5.4 5.7l-2.3.8q-.6-.2-.8-.9h-.4q-.2 0-.1 1v.6l-.1.2v.7L1 18.1v.3l.3.2 2.7.2.5 2.3-.4 2.8-.5 4.2v.3l.1.3-.1.3-.2.3-.1.3c0 .3-.3 1-.4 1H0v.2q0 .3.2.4l.9.5q1 .3 1.3.9l-.2 1-.2.3q-.5.8-.4 1l.1.2q.7-.1 1.6-1l1.2-.8 1.7 2H7v-.1L6.5 33h.1l8.3 4.7.8.5 1.3.7q1 .5 2 1.3h.1H18l-.8.2-.1.2.2.4h.1l.4.5.3.4.5.3.7.4v.2q-.7 1-.6 2v.2h.2c.3 0 1.2-.8 1.4-1l.3-.4q.3-.5.6-.6.6.2 1.4.9l1 .6h.4V44l-.4-1-.3-.8.7-.4.3-.2 1-.7v-.6l-.3-.1h-2V40l.6-1 .5-.7 6-8.1 1-1.5c1.2-1.7 2.6-4 3.1-4.2v1l.2.1h.1l.8-.7c.5-.4 1.2-1 1.4-1l.6.3 1.3 1q.3.5.6.5l.2-.1c.1 0 0-.4-.6-2.2l-.4-1 .5-.6zM17.7 3.7l-.4-.3q-.3 0-.4-.3h1q1 0 1.4-.2l.5-1.2.3-.7V.9l.3.9q.3 1 .6 1.4.1.3.7.2h1L21.4 5l.3 2-.1-.1-.9-1-.2-.2-.1-.2q-.1-.4-.5-.4h-.3v.2c-.3.5-1.2 1.3-1.4 1.5q0-.6.4-1.4v-.1q.4-.3 0-.8zM8 15.5l.4-.8.3-.7c.9-1.4 3.1-3.4 4.7-4.8l4-3.5.4-.3-.6 2.3.3.1c.5 0 1.1-.7 1.6-1.2L20 6l.7.8q.5.7 1.1 1l.5.2q.1 0 .2-.2.2-.3-.1-1.5l-.2-.8a42 42 0 0 1 6.3 8l1.8 2.2 3 4 .4 1-1.4-.1q-1.2 0-2.5-.2-3.1-.5-6.7-.7l-3.4-.6.9-12.5h-.3l-.4.1v1.4l-.3 3.7-.3 3.3V18q-.3.5-.3 1.1l-4.7-.7-1-.2-2-.4h-1l-1 .1q-.9 0-1.6-.4l-.5-.5.4-.5zm13.1 11.9h-1l-.3-.1-.4-.2h-.2q-.5 0-1 .4l-.7.4-.1-.1q0-.3.2-.8l.1-1q-.2-.4-1.1-.4l-1-.2v-.1l.6-.2q.6 0 1-.4l.2-1.1.2-.9 1.2 1.5q.7-.1 1.2-.5l1.2-.5-.5 1.6-.3.5-.4.9q.1.3.5.4l.4.2zM14 18.9l2.1.3 2.7.5q.2.9 0 1.8l-.1 1.4-.9-1.2-.2-.3h-.2q-.4 0-.3.6v.3l-.4 1.5-2-1q-1.5-.6-2.7-1.3l-1.3-.9-1-.7-.7-.4-1.2-.7h1.2l.3-.3q.6-.2 1.3-.2 1.2 0 2.4.4zm-5.5 1 1.6 1 1.3 1 2.3 1.2 2.5 1.3-.4.2h-.2l-.2.2q-.5 0-1 .4-.1 0-.2.2 0 .3.2.3l1 .2.8.2a25 25 0 0 1-4 2h-.2l-1-1.6q-.7-.7-1.2-1.6c-1.1-1.7-2.6-4-3.5-5.8v-.2zm10.8 3.6v-2.2zm1.7 2.1.4-1q.7-1.3.6-1.7t-.4-.4l-2.3.9.2-3.6h.8l1.4.2.9.2q1.5.3 3 .2l2.3.2.8.2.6.2 1 .1a6 6 0 0 1 2.7.8l1 .5-3.8 1.3zM4.5 18.1H2.8l2-.9V17l-.2-.3v-1q.3 0 .2.4l.2.1 1.2-.4 1.4-.5L6.3 17q.5.7 1 .9l.5.2-1 .2-.5-.2-.6-.1-.5.1v.6q.3.2.2.3L5 20.3l-.1-.9zm.6 3.9q.3-.1.4-.4l.2-.9.2-1.2 5.7 9h-.3l-1.7.8q-1.4.9-2.2 1l-.4.1H5.6l-.1-.2L5 29v-.6l-.2-.6-.2-.2h-.1c-.1-.3.4-4.8.6-5.6M5.6 32q0 .6.3 1.1l.3 1L5 32.9l-.4-.3q-.3 0-.4.3l-.2.1q-.7.5-1.3.9l.5-1.8-.2-.1q-.7-.2-1.2-.7H2l.6.1.5.2.2-.1.5-1 .5-1.4.5 1.1.3 1h.3l.3-.1.1-.1L7 31v.2zm1 .1 1-.5.8-.5q.3-.2.2-.4v-.1l-.2-.1 2.7-1.4.9-.2 6.8 10.2zm6-3.5 4.2-2h.3l-.3 1-.3 1q0 0 .2.3l.3.1h.2l.2-.3.4-.3.6-.3.6-.2.4 1.7v1.8l-.1 1.3v2q.2 2.1 0 4v.1zM23 40.8h1l-.3.4-.5.2-.4.3h-.2l-.5.4v.1q.5.3.6.8l.2.3q-.3-.1-.8-.5l-1-.5H21L19.3 44q.1-.6.4-1h.2l.2-.3v-.5q-.3-.2-.5-.2h-.3c-.3-.2-1-.7-1.1-1h1.1l.6.1.5-.1.8-2.3.2.8q.1 1 .5 1.3H23m-3.2.2h.1m14.3-17.3-8.6 11.6-1 1.5-2.1 2.8-.3.2-.3-1.2q-.1-1.2-.4-1.3l-.2-.1H21l-1 2.4v-5.9l-.2-5.7 1.8.1.2.1.7.1h.3V28l-.4-.4-.3-.2-.8-1.1L27 25l1.2-.2 2-.5 1.1-.3c1-.4 2.6-.9 3-.9h.1q0 .3-.3.5m4.2-2.1-.4.3-.8.7q.1.4.4.3h.2l.6 1.4-1.8-1.2q-.4 0-.4.3v.1l-1.2.9q0-.8.4-1.4h.1q.3-.2.2-.5-.3-.5-1.2-.7-.8 0-1.1-.5h1l.7.2.5-.1q0-1.4.5-2.4c.2.3.8 1.4.9 1.9v.1l-.1.2h.2l1.8-.2zm-19 1.9.2-2.2zm1.8 3.9zm1.5.9h-.1m.3 15zm12.9-25.5"})})}const X={send:"Send",clear:"Clear prompt",suggestions:"Suggestions",history:"History",historyEmpty:"No earlier prompts yet",startVoice:"Talk",stopVoice:"Stop listening",addImages:"Add images",removeImage:"Remove"};function Y({onSubmit:n,value:t,onValueChange:e,placeholder:r="Ask about anything",appearance:a,colorScheme:o,radius:i,glow:s,suggestions:d,suggestionsAlign:b,history:h,onVoice:f,acceptImages:v,poweredBy:y=!0,labels:x,sendIcon:k,actions:w,font:q,loading:_,disabled:L,autoFocus:C,className:E="",style:I,children:S,sendLabel:T,tint:z}){const[R,N]=m(""),M=t??R,{ref:A,isMultiline:O}=function(n){const t=p(null),[e,r]=m(!1);return u(()=>{const n=t.current;if(!n||"undefined"==typeof ResizeObserver)return;const e=new ResizeObserver(()=>{r(n.clientHeight>1.5*Number.parseFloat(getComputedStyle(n).lineHeight))});return e.observe(n),()=>{e.disconnect()}},[]),u(()=>{const n=t.current;!n||"undefined"!=typeof CSS&&CSS.supports("field-sizing","content")||(n.style.height="auto",n.style.height=`${n.scrollHeight}px`)},[n]),{ref:t,isMultiline:e}}(M),{ref:D,isOpen:V,setIsOpen:U}=function(){const n=p(null),[t,e]=m(!1);return u(()=>{if(!t)return;const r=t=>{t.target instanceof Node&&!n.current?.contains(t.target)&&e(!1)};return document.addEventListener("pointerdown",r),()=>{document.removeEventListener("pointerdown",r)}},[t]),{ref:n,isOpen:t,setIsOpen:e}}(),{picked:H,add:j,remove:P,clear:B}=function(){const[n,t]=m([]),e=p(new Set);u(()=>{const n=e.current;return()=>{for(const t of n)URL.revokeObjectURL(t);n.clear()}},[]);const r=n=>{URL.revokeObjectURL(n),e.current.delete(n)};return{picked:n,add(n){const r=n.map(n=>({file:n,url:URL.createObjectURL(n)}));for(const{url:n}of r)e.current.add(n);t(n=>[...n,...r])},remove(n){r(n),t(t=>t.filter(t=>t.url!==n))},clear(){for(const{url:t}of n)r(t);t([])}}}(),F=g(),K=function(n,t){return{...X,...void 0!==t&&{send:t},...n}}(x,T),$=function({history:n,onVoice:t,acceptImages:e}){return void 0!==n||void 0!==t||!0===e?"tools":"compact"}({history:h,onVoice:f,acceptImages:v}),G=n=>{N(n),e?.(n)},Y=M.trim(),sn=function(n,t,e,r){return(""!==n||t.length>0)&&!e&&!r}(Y,H,_,L),dn=()=>{sn&&(n(Y,H.map(n=>n.file)),G(""),B(),U(!1))},mn=n=>{n.preventDefault(),dn()},hn=n=>{G(n),U(!1),A.current?.focus()};if(S)return l(Z,{className:E,loading:_,poweredBy:y,style:bn({colorScheme:o,radius:i,glow:s,paint:z,font:q,style:I}),onSubmit:mn,children:S({fieldProps:{ref:A,value:M,placeholder:r,"aria-label":r,enterKeyHint:"send",rows:1,disabled:L,autoFocus:C,onChange(n){G(n.target.value)},onKeyDown:pn},value:M,setValue:G,fill:hn,canSubmit:sn,submit:dn,images:H,addImages:j,removeImage:P})});return c("div",{ref:D,className:`cm-bar ${E}`.trimEnd(),"data-appearance":a,"data-layout":$,"data-multiline":O||void 0,"data-loading":!0===_||void 0,style:bn({colorScheme:o,radius:i,glow:s,paint:z,font:q,style:I}),onKeyDown:n=>{V&&"Escape"===n.key&&(U(!1),A.current?.focus())},children:[l("style",{children:gn}),l(nn,{suggestions:V?void 0:d,align:b,label:K.suggestions,disabled:L,onPick:hn}),c("div",{className:"cm-bar-shell",children:[l(W,{glow:s,paint:z,loading:_}),l(tn,{id:F,isOpen:V,entries:h,labels:K,onPick:hn}),c("form",{className:"cm-bar-field","aria-busy":_,onSubmit:mn,children:[l(en,{picked:H,label:K.removeImage,onRemove:P}),c("div",{className:"cm-bar-row",children:["compact"===$&&l(Q,{className:"cm-bar-mark"}),l("textarea",{ref:A,className:"cm-bar-input",rows:1,value:M,placeholder:r,"aria-label":r,enterKeyHint:"send",disabled:L,autoFocus:C,onChange:n=>{G(n.target.value)},onKeyDown:pn}),l(rn,{isShown:""!==M,label:K.clear,disabled:L,onClear:()=>{hn("")}}),"compact"===$&&w,l("button",{type:"submit",className:"cm-bar-send",disabled:!sn,"aria-label":K.send,children:k??l(cn,{})})]}),"tools"===$&&c("div",{className:"cm-bar-footer",children:[c("div",{className:"cm-bar-tools",children:[v&&l(on,{label:K.addImages,disabled:L,onAdd:j}),h&&l(an,{label:K.history,disabled:L,"aria-expanded":V,"aria-controls":F,onClick:()=>{U(n=>!n)},children:l(un,{})}),f&&l(ln,{labels:K,disabled:L,loading:_,onVoice:f}),w]}),l(J,{})]})]})]}),"compact"===$&&y&&l(J,{})]})}function Z({className:n,loading:t,poweredBy:e,style:r,onSubmit:a,children:o}){return c("div",{className:`cm-bar ${n}`.trimEnd(),"data-layout":"custom","data-loading":!0===t||void 0,style:r,children:[l("style",{children:gn}),c("form",{className:"cm-bar-custom","aria-busy":t,onSubmit:a,children:[l(Q,{className:"cm-bar-mark"}),o]}),e&&l(J,{})]})}function J(){return l("span",{className:"cm-bar-powered-by",children:"Powered by Callimacus"})}function W({glow:n,paint:t,loading:e}){return void 0!==n&&!1!==n||void 0!==t||!0===e?l("span",{className:"cm-bar-glow","aria-hidden":"true"}):null}function nn({suggestions:n=[],align:t,label:e,disabled:r,onPick:a}){return 0===n.length?null:l("div",{className:"cm-bar-suggestions",role:"group","aria-label":e,"data-align":t,children:n.map((n,t)=>l("button",{type:"button",className:"cm-bar-suggestion",disabled:r,onClick:()=>{a(n)},children:n},t))})}function tn({id:n,isOpen:t,entries:e=[],labels:r,onPick:a}){return t?l("div",{id:n,className:"cm-bar-history",role:"group","aria-label":r.history,children:0===e.length?l("p",{className:"cm-bar-history-empty",children:r.historyEmpty}):l("ul",{children:e.map((n,t)=>l("li",{children:l("button",{type:"button",className:"cm-bar-history-item",onClick:()=>{a(n)},children:n})},t))})}):null}function en({picked:n,label:t,onRemove:e}){return 0===n.length?null:l("ul",{className:"cm-bar-images",children:n.map(({file:n,url:r})=>c("li",{className:"cm-bar-image",children:[l("img",{src:r,alt:n.name}),l("button",{type:"button","aria-label":`${t} ${n.name}`,title:`${t} ${n.name}`,onClick:()=>{e(r)},children:l(sn,{})})]},r))})}function rn({isShown:n,label:t,disabled:e,onClear:r}){return n?l("button",{type:"button",className:"cm-bar-clear","aria-label":t,title:t,disabled:e,onClick:r,children:l(sn,{})}):null}function an({label:n,children:t,...e}){return l("button",{type:"button",className:"cm-bar-tool","aria-label":n,title:n,...e,children:t})}function on({label:n,disabled:t,onAdd:e}){const r=p(null);return c(s,{children:[l(an,{label:n,disabled:t,onClick:()=>{r.current?.click()},children:l(dn,{})}),l("input",{ref:r,hidden:!0,type:"file",accept:"image/*",multiple:!0,onChange:n=>{e([...n.target.files??[]]),n.target.value=""}})]})}function ln({labels:n,disabled:t,loading:e,onVoice:r}){const a=$({onRecordingComplete:r}),o="recording"===a.state,i=o?n.stopVoice:n.startVoice,c=(!0===t||!0===e)&&!o;return l(an,{label:a.error??i,disabled:c,"aria-pressed":o,onClick:()=>{o?a.stopRecording():a.startRecording()},children:l(mn,{})})}function cn(){return l("svg",{viewBox:"0 0 10 11",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:l("path",{d:"M.5 4.67 4.88.5m0 0 4.37 4.17M4.88.5v10"})})}function sn(){return l("svg",{viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeLinecap:"round","aria-hidden":"true",children:l("path",{d:"M.5.5l9 9m0-9-9 9"})})}function dn(){return l("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeLinecap:"round","aria-hidden":"true",children:l("path",{d:"M8 2.5v11M2.5 8h11"})})}function un(){return l("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:l("path",{d:"M8 4.5C6.9 3.6 5.3 3.2 2.5 3.2v8.9c2.8 0 4.4.4 5.5 1.4 1.1-1 2.7-1.4 5.5-1.4V3.2c-2.8 0-4.4.4-5.5 1.3Zm0 0v9"})})}function mn(){return c("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[l("rect",{x:"6",y:"2.5",width:"4",height:"7",rx:"2"}),l("path",{d:"M3.5 8a4.5 4.5 0 0 0 9 0M8 12.5v1"})]})}function pn(n){"Enter"!==n.key||n.shiftKey||n.nativeEvent.isComposing||(n.preventDefault(),n.currentTarget.form?.requestSubmit())}function bn({colorScheme:n,radius:t,glow:e,paint:r,font:a,style:o}){return{colorScheme:"auto"===n?void 0:n,"--cm-radius":"pill"===t?"999px":void 0===t?void 0:`${t}px`,"--cm-glow-colors":"object"==typeof e&&e.length>0?[...e,e[0]].join(", "):void 0,"--cm-tint":r,"--cm-font":a,...o}}const gn="\n.cm-bar {\n\t--_ink: var(--cm-fg, light-dark(#212121, #fff));\n\t--_fill: var(--cm-bg, light-dark(#fff, #404040));\n\t--_edge: var(--cm-border-color, light-dark(#f2f2f2, rgb(242 242 242 / .3)));\n\t--_button-fill: var(--_fill);\n\t--_button-edge: var(--cm-border-color, light-dark(#f2f2f2, rgb(136 136 136 / .3)));\n\t--_chip-edge: var(--cm-border-color, light-dark(#f2f2f2, rgb(242 242 242 / .3)));\n\t--_blur: none;\n\t--_radius: var(--cm-radius, 999px);\n\t--_corner: var(--_radius);\n\t--_size: var(--cm-size, 34px);\n\t--_pad: var(--cm-padding, 12px);\n\t--_glow-colors: var(--cm-glow-colors, #d698c7, #ffc691, #a8dfdb, #c1b1f0, #d698c7);\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\tfont-family: var(--cm-font, inherit);\n\tfont-size: var(--cm-font-size, 1rem);\n\tline-height: 1.25;\n}\n\n/* Figma \"Transparent\": the fill at 64% over the page, blurred. */\n.cm-bar[data-appearance='glass'] {\n\t--_fill: var(--cm-bg, light-dark(rgb(255 255 255 / .64), rgb(64 64 64 / .64)));\n\t--_edge: var(--cm-border-color, rgb(242 242 242 / .3));\n\t--_button-edge: var(--cm-border-color, light-dark(rgb(242 242 242 / .3), rgb(136 136 136 / .3)));\n\t--_chip-edge: var(--cm-border-color, light-dark(rgb(242 242 242 / .64), rgb(242 242 242 / .3)));\n\t--_blur: blur(var(--cm-blur, 7.3px));\n}\n\n/* The bar with tools is two rows tall, too tall for a pill: the Figma stops it at 16px. */\n.cm-bar[data-layout='tools'] {\n\t--_radius: min(var(--cm-radius, 999px), 16px);\n}\n\n/* Over the bar with tools, white glass keeps a white edge and a lighter send button. */\n.cm-bar[data-appearance='glass'][data-layout='tools'] {\n\t--_edge: var(--cm-border-color, light-dark(#f2f2f2, rgb(242 242 242 / .3)));\n\t--_button-fill: light-dark(rgb(255 255 255 / .3), rgb(64 64 64 / .64));\n\t--_button-edge: var(--cm-border-color, light-dark(#f2f2f2, rgb(136 136 136 / .3)));\n}\n\n/* A wrapped prompt is too tall for a pill. */\n.cm-bar[data-multiline] {\n\t--_corner: min(var(--_radius), 24px);\n}\n\n.cm-bar-suggestions {\n\t/* Above the glow, which spills over the bar's top edge. */\n\tposition: relative;\n\tz-index: 1;\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tjustify-content: center;\n\tgap: 4px;\n\tmargin-bottom: 4px;\n}\n\n.cm-bar[data-layout='tools'] .cm-bar-suggestions {\n\tjustify-content: flex-start;\n\tmargin-bottom: 5px;\n}\n\n.cm-bar .cm-bar-suggestions[data-align='start'] {\n\tjustify-content: flex-start;\n}\n\n.cm-bar .cm-bar-suggestions[data-align='center'] {\n\tjustify-content: center;\n}\n\n.cm-bar-suggestion {\n\tbox-sizing: border-box;\n\theight: 32px;\n\tmargin: 0;\n\tpadding: 0 16px;\n\tborder: 1px solid var(--_chip-edge);\n\tborder-radius: calc(var(--_radius) / 2);\n\tbackground: var(--_fill);\n\t-webkit-backdrop-filter: var(--_blur);\n\tbackdrop-filter: var(--_blur);\n\tcolor: var(--_ink);\n\tfont: inherit;\n\tfont-size: .875em;\n\tline-height: 1;\n\twhite-space: nowrap;\n\tcursor: pointer;\n\ttransition: translate .16s, box-shadow .16s;\n}\n\n.cm-bar-suggestion:enabled:hover {\n\ttranslate: 0 -1px;\n\tbox-shadow: 0 2px 6px rgb(0 0 0 / .08);\n}\n\n.cm-bar-suggestion:disabled {\n\tcursor: default;\n\topacity: .5;\n}\n\n.cm-bar-shell {\n\tposition: relative;\n}\n\n/* Figma draws the glow as a 4px gradient stroke centred on the bar's edge, under a 10px blur.\nThe blur sits on the outer box so the ring's mask doesn't clip it. */\n.cm-bar-glow {\n\tposition: absolute;\n\tinset: 0;\n\topacity: var(--cm-glow, 1);\n\tfilter: blur(5px);\n\tpointer-events: none;\n}\n\n.cm-bar-glow::before {\n\tcontent: '';\n\tposition: absolute;\n\tinset: -2px;\n\tpadding: 4px;\n\tborder-radius: calc(var(--_corner) + 2px);\n\tbackground: var(--cm-tint, conic-gradient(from var(--cm-bar-angle), var(--_glow-colors)));\n\t-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);\n\t-webkit-mask-composite: xor;\n\tmask-composite: exclude;\n\tanimation: cm-bar-turn 6s linear infinite;\n}\n\n.cm-bar[data-loading] .cm-bar-glow::before {\n\tanimation-duration: 2s;\n}\n\n.cm-bar-field {\n\tposition: relative;\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin: 0;\n\tpadding: var(--_pad) var(--_pad) var(--_pad) calc(var(--_pad) + 4px);\n\tborder: var(--cm-border-width, 1px) solid var(--_edge);\n\tborder-radius: var(--_corner);\n\tbackground: var(--_fill);\n\t-webkit-backdrop-filter: var(--_blur);\n\tbackdrop-filter: var(--_blur);\n\tbox-shadow: var(--cm-shadow, 0 4px 4px rgb(0 0 0 / .12));\n\tcolor: var(--_ink);\n\ttransition: border-radius .2s;\n}\n\n.cm-bar[data-layout='tools'] .cm-bar-field {\n\tgap: 8px;\n\tpadding-block: calc(var(--_pad) - 4px);\n}\n\n.cm-bar-field:has(.cm-bar-input:disabled) {\n\topacity: .5;\n}\n\n.cm-bar-row {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n}\n\n.cm-bar[data-layout='tools'] .cm-bar-row {\n\tpadding-bottom: 8px;\n\tborder-bottom: 1px solid rgb(33 33 33 / .1);\n}\n\n/* A wrapped prompt keeps the mark and the buttons on its last line. */\n.cm-bar[data-multiline] .cm-bar-row {\n\talign-items: flex-end;\n}\n\n/* The mark is the one fixed part of the compact bar: color and size are themable, hiding it is not. */\n.cm-bar-mark {\n\tflex: none;\n\tdisplay: block !important;\n\tvisibility: visible !important;\n\topacity: 1 !important;\n\twidth: auto;\n\theight: calc(var(--_size) * .8);\n\tmin-width: 1.1rem !important;\n\tmin-height: 1.25rem !important;\n\tcolor: var(--cm-mark-color, currentColor);\n}\n\n.cm-bar[data-loading] .cm-bar-mark {\n\tanimation: cm-bar-twinkle 1.5s ease-in-out infinite;\n}\n\n.cm-bar-input {\n\tflex: 1;\n\tbox-sizing: border-box;\n\tmin-width: 0;\n\tmin-height: 1lh;\n\tmax-height: 6lh;\n\tmargin: max(0px, calc((var(--_size) - 1lh) / 2)) 0;\n\tpadding: 0;\n\tborder: 0;\n\tborder-radius: 0;\n\toutline: 0;\n\tbackground: none;\n\tcolor: inherit;\n\tfont: inherit;\n\tresize: none;\n\tfield-sizing: content;\n}\n\n.cm-bar[data-multiline] .cm-bar-input {\n\tmargin-block: 0;\n}\n\n.cm-bar-input::placeholder {\n\tcolor: inherit;\n\topacity: .2;\n}\n\n.cm-bar-clear {\n\tflex: none;\n\tdisplay: grid;\n\tplace-items: center;\n\twidth: 20px;\n\theight: var(--_size);\n\tmargin: 0 -4px 0 0;\n\tpadding: 0;\n\tborder: 0;\n\tbackground: none;\n\tcolor: inherit;\n\tcursor: pointer;\n\topacity: .85;\n\ttransition: opacity .16s;\n}\n\n.cm-bar-clear:hover {\n\topacity: 1;\n}\n\n.cm-bar-clear svg {\n\twidth: 10px;\n\theight: 10px;\n}\n\n.cm-bar-send {\n\tflex: none;\n\tbox-sizing: border-box;\n\tdisplay: grid;\n\tplace-items: center;\n\twidth: var(--_size);\n\theight: var(--_size);\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 1px solid var(--_button-edge);\n\tborder-radius: calc(var(--_radius) / 2);\n\tbackground: var(--cm-button-bg, var(--_button-fill));\n\tcolor: var(--cm-button-fg, inherit);\n\tcursor: pointer;\n\ttransition: translate .16s, background-color .16s;\n}\n\n.cm-bar-send:enabled:hover {\n\ttranslate: 0 -1px;\n}\n\n.cm-bar-send:disabled {\n\tcursor: default;\n}\n\n.cm-bar-send:disabled > * {\n\topacity: .2;\n}\n\n.cm-bar-send svg {\n\twidth: 30%;\n\theight: auto;\n}\n\n.cm-bar-footer {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 8px;\n\theight: 20px;\n}\n\n/* The icons sit on one 16px grid; pulling the row in by the plus's own inset puts its stroke on the text's edge. */\n.cm-bar-tools {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n\tmargin-left: -6px;\n}\n\n.cm-bar-tool {\n\tdisplay: grid;\n\tplace-items: center;\n\twidth: 24px;\n\theight: 20px;\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tborder-radius: 6px;\n\tbackground: none;\n\tcolor: var(--cm-tool-color, light-dark(#6c6c6c, #fff));\n\tcursor: pointer;\n}\n\n.cm-bar-tool svg {\n\tdisplay: block;\n\twidth: 16px;\n\theight: 16px;\n}\n\n.cm-bar-tool:enabled:hover,\n.cm-bar-tool[aria-expanded='true'] {\n\tbackground: rgb(127 127 127 / .14);\n}\n\n.cm-bar-tool:disabled {\n\tcursor: default;\n\topacity: .5;\n}\n\n.cm-bar-tool[aria-pressed='true'] {\n\tcolor: #e5484d;\n\tanimation: cm-bar-listening 1.2s ease-in-out infinite;\n}\n\n.cm-bar-images {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 6px;\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n}\n\n.cm-bar-image {\n\tposition: relative;\n\twidth: 44px;\n\theight: 44px;\n}\n\n.cm-bar-image img {\n\tdisplay: block;\n\tbox-sizing: border-box;\n\twidth: 100%;\n\theight: 100%;\n\tborder: 1px solid var(--_edge);\n\tborder-radius: 6px;\n\tobject-fit: cover;\n}\n\n.cm-bar-image button {\n\tposition: absolute;\n\ttop: -5px;\n\tright: -5px;\n\tdisplay: grid;\n\tplace-items: center;\n\twidth: 16px;\n\theight: 16px;\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tborder-radius: 50%;\n\tbackground: #212121;\n\tcolor: #fff;\n\tcursor: pointer;\n}\n\n.cm-bar-image svg {\n\twidth: 7px;\n\theight: 7px;\n}\n\n.cm-bar-history {\n\tposition: absolute;\n\tz-index: 2;\n\tleft: 0;\n\tright: 0;\n\tbottom: calc(100% + 8px);\n\tbox-sizing: border-box;\n\tmax-height: 220px;\n\toverflow-y: auto;\n\tpadding: 6px;\n\tborder: 1px solid var(--_edge);\n\tborder-radius: 12px;\n\tbackground: var(--_fill);\n\t-webkit-backdrop-filter: blur(14px);\n\tbackdrop-filter: blur(14px);\n\tbox-shadow: 0 8px 24px rgb(0 0 0 / .12);\n\tcolor: var(--_ink);\n}\n\n.cm-bar[data-appearance='glass'] .cm-bar-history {\n\tbackground: var(--cm-bg, light-dark(rgb(255 255 255 / .64), rgb(48 48 48 / .86)));\n}\n\n.cm-bar-history ul {\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n}\n\n.cm-bar-history-item {\n\tdisplay: block;\n\tbox-sizing: border-box;\n\twidth: 100%;\n\tmargin: 0;\n\tpadding: 8px 10px;\n\tborder: 0;\n\tborder-radius: 8px;\n\tbackground: none;\n\tcolor: inherit;\n\tfont: inherit;\n\tfont-size: .875em;\n\tline-height: 1.3;\n\ttext-align: start;\n\tcursor: pointer;\n}\n\n.cm-bar-history-item:hover,\n.cm-bar-history-item:focus-visible {\n\tbackground: rgb(127 127 127 / .14);\n\toutline: none;\n}\n\n.cm-bar-history-empty {\n\tmargin: 0;\n\tpadding: 8px 10px;\n\tfont-size: .8125em;\n\topacity: .5;\n}\n\n.cm-bar-suggestion:focus-visible,\n.cm-bar-clear:focus-visible,\n.cm-bar-send:focus-visible,\n.cm-bar-tool:focus-visible,\n.cm-bar-image button:focus-visible {\n\toutline: 2px solid light-dark(rgb(33 33 33 / .4), rgb(255 255 255 / .6));\n\toutline-offset: 2px;\n}\n\n.cm-bar-powered-by {\n\tmargin-top: 10px;\n\tcolor: var(--cm-powered-by-color, inherit);\n\tfont-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n\tfont-size: .5em;\n\tline-height: 1;\n\ttext-align: center;\n\ttext-transform: uppercase;\n\twhite-space: nowrap;\n}\n\n/* In the tools row it takes the bar's ink, trimmed to its capitals so it lines up with the icons. */\n.cm-bar-footer .cm-bar-powered-by {\n\tmargin: 0;\n\ttext-box: trim-both cap alphabetic;\n}\n\n/* The colours travel round the edge: a conic gradient whose start angle turns. */\n@property --cm-bar-angle {\n\tsyntax: '<angle>';\n\tinherits: false;\n\tinitial-value: 0deg;\n}\n\n@keyframes cm-bar-turn {\n\tto {\n\t\t--cm-bar-angle: 360deg;\n\t}\n}\n\n/* Transform only: the mark's opacity is pinned to 1. */\n@keyframes cm-bar-twinkle {\n\t50% {\n\t\ttransform: scale(.85) rotate(-10deg);\n\t}\n}\n\n@keyframes cm-bar-listening {\n\t50% {\n\t\tbackground: rgb(229 72 77 / .14);\n\t}\n}\n\n@media (prefers-reduced-motion: reduce) {\n\t.cm-bar *,\n\t.cm-bar *::before {\n\t\tanimation: none !important;\n\t\ttransition: none !important;\n\t}\n}\n";export{Y as CallimacusBar,Q as CallimacusMark,h as thamyrApi,j as useActions,N as useApi,v as useCallimacusStore,R as useCart,I as useConnection,_ as useInitThamyr,O as useMapPage,T as useOnConnectionChange,z as useOnError,S as useOnResponse,A as useSitemap,M as useSkesis,P as useSubmission,E as useSuggestions,L as useThamyr,G as useTtsAudio,$ as useVoiceRecorder};
9
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/callimacus/hooks.ts","../../../src/callimacus/map.ts","../../../src/callimacus/actions.ts","../../../src/voice/use-voice-recorder.ts","../../../src/audio/use-tts-audio.ts","../../../src/callimacus-bar/callimacus-mark.tsx","../../../src/callimacus-bar/callimacus-bar.tsx"],"sourcesContent":[null,null,null,null,null,null,null],"names":["useEventListener","addListener","callback","callbackRef","useRef","current","useEffect","arg","useInitThamyr","config","init","useCallimacusStore","s","reset","markInitRequested","markInitOwnerMounted","markInitOwnerUnmounted","clientId","endpoint","useThamyr","history","messages","sendEvent","sendAudio","rounds","useMemo","openLanding","value","options","UserInteractionType","CREATE_ROUND","landingRound","sendInteraction","id","interactionRound","refresh","block","interaction","NO_SUGGESTIONS","suggestions","loading","useSuggestions","prefix","storyId","language","debounceMs","isConnected","connectionStatus","state","setState","useState","wasConnected","setWasConnected","isStale","timer","setTimeout","getState","_thamyr","suggest","Promise","resolve","then","catch","clearTimeout","useConnection","status","useOnResponse","addResponseListener","useOnConnectionChange","addConnectionListener","useOnError","addErrorListener","useCart","async","waitForInstance","cart","getCart","productId","addItemToCart","removeItemFromCart","quantity","updateProductQuantity","useApi","thamyrApi","useSkesis","anchorId","skesis","similar","related","useSitemap","sitemap","getSitemap","useMapPage","pathname","settled","setSettled","isMapPath","undefined","parseMapPath","resolveMapPage","page","error","Error","String","failed","ok","IDLE","useSubmissions","create","latestSubmission","Map","useActions","isReady","subscribe","run","useCallback","action","story","round","payload","type","globalThis","location","newTab","open","url","assign","inputEvent","data","call","thamyr","submissionId","randomUuid","set","form","sent","fields","document","context","title","replaceAll","slice","replace","result","unsubscribe","message","chapter","blocks","map","deliverResultOf","find","found","deliveredResult","get","ready","useSubmission","defaultOptions","useVoiceRecorder","silenceThreshold","silenceDuration","maxDuration","onRecordingComplete","audioLevels","setAudioLevels","setError","mediaRecorderRef","audioContextRef","analyserRef","streamRef","animationFrameRef","silenceStartRef","maxDurationTimerRef","chunksRef","stoppingRef","cleanup","cancelAnimationFrame","track","getTracks","stop","close","stopRecording","startRecording","stream","navigator","mediaDevices","getUserMedia","audio","echoCancellation","noiseSuppression","sampleRate","audioContext","AudioContext","source","createMediaStreamSource","analyser","createAnalyser","fftSize","smoothingTimeConstant","connect","mimeType","MediaRecorder","isTypeSupported","mediaRecorder","addEventListener","event","size","push","audioBlob","Blob","start","monitorAudio","bufferLength","frequencyBinCount","dataArray","Uint8Array","getByteFrequencyData","step","Math","floor","levels","i","sum","j","sumSquares","normalized","rms","sqrt","log10","Date","now","requestAnimationFrame","useTtsAudio","audioRef","audioUrl","Audio","element","preload","onPlaying","onWaiting","onPause","previous","onEnded","onError","pause","removeEventListener","src","play","currentTime","toggle","paused","isPlaying","CallimacusMark","props","_jsx","viewBox","fill","role","children","d","defaultLabels","send","clear","historyEmpty","startVoice","stopVoice","addImages","removeImage","CallimacusBar","onSubmit","controlledValue","onValueChange","placeholder","appearance","colorScheme","radius","glow","suggestionsAlign","onVoice","acceptImages","poweredBy","labels","labelOverrides","sendIcon","actions","font","disabled","autoFocus","className","style","sendLabel","tint","ownValue","setOwnValue","ref","inputRef","isMultiline","setIsMultiline","input","ResizeObserver","observer","clientHeight","Number","parseFloat","getComputedStyle","lineHeight","observe","disconnect","CSS","supports","height","scrollHeight","useTextField","rootRef","isOpen","isHistoryOpen","setIsOpen","setIsHistoryOpen","closeOutside","target","Node","contains","usePopover","picked","add","remove","clearImages","setPicked","urlsRef","Set","urls","URL","revokeObjectURL","release","delete","files","added","file","createObjectURL","filter","image","useImages","historyId","useId","overrides","labelsOf","layout","layoutOf","setValue","next","prompt","trim","canSubmit","length","focus","_jsxs","trimEnd","barStyle","paint","onKeyDown","key","css","Suggestions","align","label","onPick","Glow","History","entries","preventDefault","Images","onRemove","rows","enterKeyHint","onChange","sendOnEnter","ClearButton","isShown","onClear","ArrowIcon","AddImagesButton","onAdd","ToolButton","onClick","BookIcon","VoiceButton","PoweredBy","suggestion","index","entry","alt","name","CloseIcon","_Fragment","click","PlusIcon","hidden","accept","multiple","recorder","isRecording","isBlocked","MicIcon","stroke","strokeLinecap","strokeLinejoin","x","y","width","rx","shiftKey","nativeEvent","isComposing","currentTarget","requestSubmit","join"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/callimacus/hooks.ts","../../../src/callimacus/map.ts","../../../src/callimacus/actions.ts","../../../src/voice/use-voice-recorder.ts","../../../src/audio/use-tts-audio.ts","../../../src/callimacus-bar/callimacus-mark.tsx","../../../src/callimacus-bar/callimacus-bar.tsx"],"sourcesContent":[null,null,null,null,null,null,null],"names":["useEventListener","addListener","callback","callbackRef","useRef","current","useEffect","arg","useInitThamyr","config","init","useCallimacusStore","s","reset","markInitRequested","markInitOwnerMounted","markInitOwnerUnmounted","clientId","endpoint","useThamyr","history","messages","sendEvent","sendAudio","rounds","useMemo","openLanding","value","options","UserInteractionType","CREATE_ROUND","landingRound","sendInteraction","id","interactionRound","refresh","block","interaction","NO_SUGGESTIONS","suggestions","loading","useSuggestions","prefix","storyId","language","debounceMs","isConnected","connectionStatus","state","setState","useState","wasConnected","setWasConnected","isStale","timer","setTimeout","getState","_thamyr","suggest","Promise","resolve","then","catch","clearTimeout","useConnection","status","useOnResponse","addResponseListener","useOnConnectionChange","addConnectionListener","useOnError","addErrorListener","useCart","async","waitForInstance","cart","getCart","productId","addItemToCart","removeItemFromCart","quantity","updateProductQuantity","useApi","thamyrApi","useSkesis","anchorId","skesis","similar","related","useSitemap","sitemap","getSitemap","useMapPage","pathname","settled","setSettled","isMapPath","undefined","parseMapPath","resolveMapPage","page","error","Error","String","failed","ok","IDLE","useSubmissions","create","latestSubmission","Map","useActions","isReady","subscribe","run","useCallback","action","story","round","payload","type","globalThis","location","newTab","open","url","assign","inputEvent","data","call","thamyr","submissionId","randomUuid","set","form","sent","fields","document","context","title","replaceAll","slice","replace","result","unsubscribe","message","chapter","blocks","map","deliverResultOf","find","found","deliveredResult","get","ready","useSubmission","defaultOptions","useVoiceRecorder","silenceThreshold","silenceDuration","maxDuration","onRecordingComplete","audioLevels","setAudioLevels","setError","mediaRecorderRef","audioContextRef","analyserRef","streamRef","animationFrameRef","silenceStartRef","maxDurationTimerRef","chunksRef","stoppingRef","cleanup","cancelAnimationFrame","track","getTracks","stop","close","stopRecording","startRecording","stream","navigator","mediaDevices","getUserMedia","audio","echoCancellation","noiseSuppression","sampleRate","audioContext","AudioContext","source","createMediaStreamSource","analyser","createAnalyser","fftSize","smoothingTimeConstant","connect","mimeType","MediaRecorder","isTypeSupported","mediaRecorder","addEventListener","event","size","push","audioBlob","Blob","start","monitorAudio","bufferLength","frequencyBinCount","dataArray","Uint8Array","getByteFrequencyData","step","Math","floor","levels","i","sum","j","sumSquares","normalized","rms","sqrt","log10","Date","now","requestAnimationFrame","useTtsAudio","audioRef","audioUrl","Audio","element","preload","onPlaying","onWaiting","onPause","previous","onEnded","onError","pause","removeEventListener","src","play","currentTime","toggle","paused","isPlaying","CallimacusMark","props","_jsx","viewBox","fill","role","children","d","defaultLabels","send","clear","historyEmpty","startVoice","stopVoice","addImages","removeImage","CallimacusBar","onSubmit","controlledValue","onValueChange","placeholder","appearance","colorScheme","radius","glow","suggestionsAlign","onVoice","acceptImages","poweredBy","labels","labelOverrides","sendIcon","actions","font","disabled","autoFocus","className","style","sendLabel","tint","ownValue","setOwnValue","ref","inputRef","isMultiline","setIsMultiline","input","ResizeObserver","observer","clientHeight","Number","parseFloat","getComputedStyle","lineHeight","observe","disconnect","CSS","supports","height","scrollHeight","useTextField","rootRef","isOpen","isHistoryOpen","setIsOpen","setIsHistoryOpen","closeOutside","target","Node","contains","usePopover","picked","add","remove","clearImages","setPicked","urlsRef","Set","urls","URL","revokeObjectURL","release","delete","files","added","file","createObjectURL","filter","image","useImages","historyId","useId","overrides","labelsOf","layout","layoutOf","setValue","next","prompt","trim","canSubmit","images","length","canSend","submit","preventDefault","focus","HostBar","barStyle","paint","fieldProps","enterKeyHint","rows","onChange","onKeyDown","sendOnEnter","_jsxs","trimEnd","key","css","Suggestions","align","label","onPick","Glow","History","entries","Images","onRemove","ClearButton","isShown","onClear","ArrowIcon","AddImagesButton","onAdd","ToolButton","onClick","BookIcon","VoiceButton","PoweredBy","suggestion","index","entry","alt","name","CloseIcon","_Fragment","click","PlusIcon","hidden","accept","multiple","recorder","isRecording","isBlocked","MicIcon","stroke","strokeLinecap","strokeLinejoin","x","y","width","rx","shiftKey","nativeEvent","isComposing","currentTarget","requestSubmit","join"],"mappings":"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"}
@@ -11,7 +11,7 @@ export { ACTION_TYPES, ADD_TO_CART_RESULT_BLOCK, Action, ActionType, AddToCartRe
11
11
  import { Thamyr } from '@callimacus/thamyr';
12
12
  import * as zustand from 'zustand';
13
13
  import * as react from 'react';
14
- import { ReactNode, CSSProperties, SVGProps } from 'react';
14
+ import { ReactNode, CSSProperties, Ref, ChangeEvent, KeyboardEvent, SVGProps } from 'react';
15
15
 
16
16
  /**
17
17
  Represents the current state of the Thamyr SDK connection.
@@ -2447,6 +2447,13 @@ type CallimacusBarProps = {
2447
2447
  readonly className?: string;
2448
2448
  readonly style?: CSSProperties;
2449
2449
  /**
2450
+ Draws the bar yourself: a function given the bar's state, whose output replaces everything but the Callimacus
2451
+ mark, which the bar still renders first (move it with CSS, e.g. `order` or `grid-area` on `.cm-bar-mark`).
2452
+ It renders inside the bar's `<form>`, so a `type='submit'` button sends. `poweredBy`, `loading` and `disabled`
2453
+ still apply; the other display props are left to you.
2454
+ */
2455
+ readonly children?: (bar: CallimacusBarState) => ReactNode;
2456
+ /**
2450
2457
  @deprecated Use `labels.send`.
2451
2458
  */
2452
2459
  readonly sendLabel?: string;
@@ -2456,13 +2463,55 @@ type CallimacusBarProps = {
2456
2463
  readonly tint?: string;
2457
2464
  };
2458
2465
  /**
2466
+ What a bar drawn with `children` is given.
2467
+ */
2468
+ type CallimacusBarState = {
2469
+ /**
2470
+ Spread on your own `<textarea>`: Enter sends, Shift+Enter breaks the line, and it grows with its text.
2471
+ */
2472
+ readonly fieldProps: {
2473
+ readonly ref: Ref<HTMLTextAreaElement>;
2474
+ readonly value: string;
2475
+ readonly placeholder: string;
2476
+ readonly 'aria-label': string;
2477
+ readonly enterKeyHint: 'send';
2478
+ readonly rows: number;
2479
+ readonly disabled: boolean | undefined;
2480
+ readonly autoFocus: boolean | undefined;
2481
+ readonly onChange: (event: ChangeEvent<HTMLTextAreaElement>) => void;
2482
+ readonly onKeyDown: (event: KeyboardEvent<HTMLTextAreaElement>) => void;
2483
+ };
2484
+ readonly value: string;
2485
+ readonly setValue: (value: string) => void;
2486
+ /**
2487
+ Sets the text and focuses the field, e.g. with a suggestion or an earlier prompt.
2488
+ */
2489
+ readonly fill: (value: string) => void;
2490
+ readonly canSubmit: boolean;
2491
+ /**
2492
+ Sends the prompt and the images, then clears the bar. Does nothing while `canSubmit` is false.
2493
+ */
2494
+ readonly submit: () => void;
2495
+ /**
2496
+ The images added with `addImages`, each with an object URL for its thumbnail; they reach `onSubmit`.
2497
+ */
2498
+ readonly images: readonly PickedImage[];
2499
+ readonly addImages: (files: readonly File[]) => void;
2500
+ readonly removeImage: (url: string) => void;
2501
+ };
2502
+ type PickedImage = {
2503
+ readonly file: File;
2504
+ readonly url: string;
2505
+ };
2506
+ /**
2459
2507
  A prompt input that always carries the Callimacus brand. Everything else is customizable through props,
2460
- `--cm-*` CSS variables and the `cm-bar*` class names; the mark can be recolored and resized but not removed.
2508
+ `--cm-*` CSS variables and the `cm-bar*` class names, or drawn from scratch with a function as `children`;
2509
+ the mark can be recolored, resized and moved but not removed.
2461
2510
 
2462
2511
  History, the microphone and images add a row of tools under the field. That bar follows the Figma's own
2463
2512
  layout: no mark, and "Powered by Callimacus" in the tools row instead, where it can't be turned off.
2464
2513
  */
2465
- declare function CallimacusBar({ onSubmit, value: controlledValue, onValueChange, placeholder, appearance, colorScheme, radius, glow, suggestions, suggestionsAlign, history, onVoice, acceptImages, poweredBy, labels: labelOverrides, sendIcon, actions, font, loading, disabled, autoFocus, className, style, sendLabel, tint, }: CallimacusBarProps): react.JSX.Element;
2514
+ declare function CallimacusBar({ onSubmit, value: controlledValue, onValueChange, placeholder, appearance, colorScheme, radius, glow, suggestions, suggestionsAlign, history, onVoice, acceptImages, poweredBy, labels: labelOverrides, sendIcon, actions, font, loading, disabled, autoFocus, className, style, children, sendLabel, tint, }: CallimacusBarProps): react.JSX.Element;
2466
2515
 
2467
2516
  /**
2468
2517
  The Callimacus constellation mark. Inherits `currentColor`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@callimacus/thamyr-react",
3
- "version": "4.11.1",
3
+ "version": "4.12.0",
4
4
  "private": false,
5
5
  "description": "React package for Thamyr",
6
6
  "license": "SEE LICENSE IN LICENSE.md",
@@ -40,8 +40,8 @@
40
40
  "storybook": "storybook dev -p 6006"
41
41
  },
42
42
  "dependencies": {
43
- "@callimacus/thamyr": "^4.11.1",
44
- "@callimacus/thamyr-core": "^4.11.1",
43
+ "@callimacus/thamyr": "^4.12.0",
44
+ "@callimacus/thamyr-core": "^4.12.0",
45
45
  "zustand": "^5.0.16"
46
46
  },
47
47
  "peerDependencies": {