@callimacus/thamyr-react 4.10.0 → 4.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/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.10.1](https://github.com/callimacus/thamyr-sdk/compare/thamyr-core-v4.10.0...thamyr-core-v4.10.1) (2026-10-24)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **deps:** take @callimacus/intent 2.1.14, eslint-config-xo 7, rollup 4.65, vite 8.3.5, zustand 5.0.16 ([#848](https://github.com/callimacus/thamyr-sdk/issues/848)) ([053e45e](https://github.com/callimacus/thamyr-sdk/commit/053e45efd93bcceabf15d6853ea5a831303eba04))
12
+
6
13
  ## [4.10.0](https://github.com/callimacus/thamyr-sdk/compare/thamyr-core-v4.9.0...thamyr-core-v4.10.0) (2026-10-21)
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.10.1](https://github.com/callimacus/thamyr-sdk/compare/thamyr-react-v4.10.0...thamyr-react-v4.10.1) (2026-10-24)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **deps:** take @callimacus/intent 2.1.14, eslint-config-xo 7, rollup 4.65, vite 8.3.5, zustand 5.0.16 ([#848](https://github.com/callimacus/thamyr-sdk/issues/848)) ([053e45e](https://github.com/callimacus/thamyr-sdk/commit/053e45efd93bcceabf15d6853ea5a831303eba04))
12
+
13
+
14
+ ### Dependencies
15
+
16
+ * The following workspace dependencies were updated
17
+ * dependencies
18
+ * @callimacus/thamyr bumped from ^4.10.0 to ^4.10.1
19
+ * @callimacus/thamyr-core bumped from ^4.10.0 to ^4.10.1
20
+
6
21
  ## [4.10.0](https://github.com/callimacus/thamyr-sdk/compare/thamyr-react-v4.9.0...thamyr-react-v4.10.0) (2026-10-21)
7
22
 
8
23
 
@@ -0,0 +1,9 @@
1
+ /*!
2
+ * Copyright © 2025–2026 Solomei AI SRL. All rights reserved.
3
+ *
4
+ * Proprietary software, licensed for use by Callimacus customers only.
5
+ * See LICENSE.md for the full terms.
6
+ *
7
+ */
8
+ import{Thamyr as e}from"@callimacus/thamyr";import{callimacusService as t,ThamyrResponseType as n,applyBlockPatch as r}from"@callimacus/thamyr-core";import o from"react";const s=e=>{let t;const n=new Set,r=(e,r)=>{const o="function"==typeof e?e(t):e;if(!Object.is(o,t)){const e=t;t=(null!=r?r:"object"!=typeof o||null===o)?o:Object.assign({},t,o),n.forEach(n=>n(t,e))}},o=()=>t,s={setState:r,getState:o,getInitialState:()=>i,subscribe:e=>(n.add(e),()=>n.delete(e))},i=t=e(r,o,s);return s},i=e=>e;const a=e=>{const t=(e=>e?s(e):s)(e),n=e=>function(e,t=i){const n=o.useSyncExternalStore(e.subscribe,o.useCallback(()=>t(e.getState()),[e,t]),()=>t(e.getInitialState()));return o.useDebugValue(n),n}(t,e);return Object.assign(n,t),n},c=e=>e?a(e):a;function d(e,t){for(const n of e)try{n(t)}catch(e){console.error("[Thamyr] Listener threw:",e)}}function u(e,t){let o=!1;const s=e.map(e=>{if(e.type!==n.CHAPTER_EVENT)return e;const s=r(e.chapter,t);return s===e.chapter?e:(o=!0,{...e,chapter:s})});return o?s:e}const l=c()((r,o)=>{let s,i=0;const a=new Set,c=new Set,l=new Set;return{connectionStatus:"idle",messages:[],storyId:void 0,error:void 0,_initialized:!1,_thamyr:void 0,init(m){if(o()._initialized)return;if("undefined"==typeof window)return void console.debug("[Thamyr] init() skipped: no browser environment detected (SSR).");const{clientId:y}=m;if(!y){console.error("[Thamyr] clientId is required. Pass your Callimacus Client ID (`cal-pk-…`) to useInitThamyr().");const e={code:0,message:"clientId is required. Pass your Callimacus Client ID (`cal-pk-…`) to useInitThamyr()."};return r({connectionStatus:"error",error:e}),d(l,e),void d(c,"error")}void 0!==m.maxMessages&&m.maxMessages<0&&console.warn("[Thamyr] maxMessages must be >= 0. Received:",m.maxMessages,". Clamping to 1.");const h=0===m.maxMessages?1/0:Math.max(1,m.maxMessages??50);let f;r({connectionStatus:"connecting",error:void 0});try{f=new e({clientId:y,endpoint:m.endpoint,uiObserver:m.uiObserver})}catch(e){console.error("[Thamyr] Failed to create Thamyr instance:",e);const t={code:0,message:e instanceof Error?e.message:String(e)};return r({connectionStatus:"error",error:t}),d(l,t),void d(c,"error")}const w=++i;f.onResponse(e=>{i===w&&(e.type===n.BLOCK_PATCH?r(t=>({messages:u(t.messages,e.data)})):r(t=>{const r=[...t.messages,e];return{messages:r.length>h?r.slice(-h):r,...e.type===n.STORY_CREATED&&{storyId:e.story.id}}}),d(a,e))}),f.onError(e=>{i===w&&(r({error:e,connectionStatus:"error"}),d(l,e),d(c,"error"))}),s=t.onConnectionStatus(e=>{if(i!==w)return;const t=e?"connected":"disconnected";r({connectionStatus:t}),d(c,t)}),function(e){r({_initialized:Boolean(e),_thamyr:e})}(f)},reset(){if(o()._initialized){i++;try{s?.()}catch(e){console.error("[Thamyr] Error unsubscribing connection status listener:",e)}try{t.disconnect()}catch(e){console.error("[Thamyr] Error disconnecting:",e)}s=void 0,r({_initialized:!1,_thamyr:void 0,connectionStatus:"idle",messages:[],storyId:void 0,error:void 0})}else"idle"!==o().connectionStatus&&r({connectionStatus:"idle",error:void 0})},sendEvent(e,t){const n=o()._thamyr;if(!n)throw new Error("[Thamyr] SDK is not initialized yet. Ensure useInitThamyr() has been called.");const{connectionStatus:s}=o();if("connected"!==s){const e={code:0,message:`Cannot send event: connection status is "${s}". Wait for connected status before sending.`};throw r({error:e}),d(l,e),new Error(e.message)}n.sendUserInteraction(e,t)},sendAudio(e,t){const n=o()._thamyr;if(!n)throw new Error("[Thamyr] SDK is not initialized yet. Ensure useInitThamyr() has been called.");const{connectionStatus:s}=o();if("connected"!==s){const e={code:0,message:`Cannot send audio: connection status is "${s}". Wait for connected status before sending.`};throw r({error:e}),d(l,e),new Error(e.message)}n.sendAudio(e,t)},addResponseListener:e=>(a.add(e),()=>{a.delete(e)}),addConnectionListener:e=>(c.add(e),()=>{c.delete(e)}),addErrorListener:e=>(l.add(e),()=>{l.delete(e)})}});let m=!1,y=0;const h=new Set;function f(){m=!0}function w(){y++,m=!0}function g(){y--,queueMicrotask(()=>{if(y>0)return;m=!1;const e=[...h];h.clear();for(const t of e)t(new Error("[Thamyr] SDK was torn down: useInitThamyr() unmounted while this call was waiting for initialization."))})}function S(e){return new Error(`[Thamyr] SDK initialization failed: ${e?.message??"unknown error"}`)}async function p(){if("undefined"==typeof window)throw new Error("[Thamyr] The generated API is browser-only; this call ran without a browser environment (SSR).");const e=l.getState();if(e._thamyr)return e._thamyr;if(!m)throw new Error("[Thamyr] SDK is not initialized and no useInitThamyr() is mounted. Add useInitThamyr({clientId: 'cal-pk-…'}) to your root component.");if("error"===e.connectionStatus)throw S(e.error);return new Promise((e,t)=>{let n=!1;const r=e=>{n||(n=!0,s(),h.delete(o),e())},o=e=>{r(()=>{t(e)})};h.add(o);const s=l.subscribe(n=>{if(n._thamyr){const t=n._thamyr;r(()=>{e(t)})}else"error"===n.connectionStatus&&r(()=>{t(S(n.error))})})})}const T=new Set(["then","catch","finally","toJSON"]),b=new Set(Object.getOwnPropertyNames(Object.prototype));function E(e){return"string"!=typeof e||b.has(e)}const v=new Map,I=new Proxy({},{get(e,t){if(E(t))return Reflect.get(e,t);if(T.has(t))return;const n=t;let r=v.get(n);return void 0===r&&(r=function(e){const t=new Map;return new Proxy({},{get(n,r){if(E(r))return Reflect.get(n,r);if(T.has(r))return;const o=r;let s=t.get(o);return void 0===s&&(s=async(...t)=>{const n=(await p())[e],r=n?.[o];if("function"!=typeof r)throw new TypeError(`[Thamyr] ${e}.${o} is not part of the generated API surface.`);return Reflect.apply(r,n,t)},t.set(o,s)),s}})}(n),v.set(n,r)),r}});export{f as a,w as b,c,g as m,I as t,l as u,p as w};
9
+ //# sourceMappingURL=api-FJQJWLUA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-FJQJWLUA.js","sources":["../../../../../node_modules/zustand/esm/vanilla.mjs","../../../../../node_modules/zustand/esm/react.mjs","../../../../src/callimacus/store.ts","../../../../src/callimacus/api.ts"],"sourcesContent":["const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n React.useCallback(() => selector(api.getState()), [api, selector]),\n () => selector(api.getInitialState())\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = ((createState) => createState ? createImpl(createState) : createImpl);\n\nexport { create, useStore };\n",null,null],"names":["createStoreImpl","createState","state","listeners","Set","setState","partial","replace","nextState","Object","is","previousState","assign","forEach","listener","getState","api","getInitialState","initialState","subscribe","add","delete","identity","arg","createImpl","createStore","useBoundStore","selector","slice","React","useSyncExternalStore","useCallback","useDebugValue","useStore","create","notifyListeners","error","console","patchedHistory","messages","patch","isPatched","patched","map","message","type","ThamyrResponseType","CHAPTER_EVENT","chapter","applyBlockPatch","useCallimacusStore","set","get","unsubConnectionStatus","generation","responseListeners","connectionListeners","errorListeners","connectionStatus","storyId","undefined","_initialized","_thamyr","init","config","window","debug","clientId","errorMessage","code","maxMessages","warn","Infinity","Math","max","thamyr","Thamyr","endpoint","uiObserver","Error","String","currentGen","onResponse","response","BLOCK_PATCH","data","length","STORY_CREATED","story","id","onError","callimacusService","onConnectionStatus","connected","status","Boolean","setInitState","reset","disconnect","sendEvent","payload","sendUserInteraction","sendAudio","audio","query","addResponseListener","cb","addConnectionListener","addErrorListener","wasInitRequested","mountedInitOwners","pendingRejecters","markInitRequested","markInitOwnerMounted","markInitOwnerUnmounted","queueMicrotask","rejecters","clear","rejectWaiter","initError","async","waitForInstance","Promise","resolve","reject","isSettled","settle","action","unsubscribe","rejecter","current","instance","blockedNames","objectPrototypeMembers","getOwnPropertyNames","prototype","isPassthroughProperty","property","has","namespaces","Map","thamyrApi","Proxy","target","Reflect","name","namespace","namespaceName","methods","method","args","fn","TypeError","apply","createNamespaceFacade"],"mappings":"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","x_google_ignoreList":[0,1]}
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 t,interactionRound as n,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 c,jsxs as s}from"react/jsx-runtime";import{useMemo as l,useEffect as d,useState as u,useRef as m,useCallback as p}from"react";import{t as v,w as h,u as g,m as b,a as f,b as y,c as q}from"./chunks/api-DlvVjF7W.js";import"@callimacus/thamyr";function w(t,n){const e=m(n);e.current=n,d(()=>t(t=>{e.current(t)}),[t])}function k(t){const n=g(t=>t.init),e=g(t=>t.reset);f(),d(()=>(y(),n(t),()=>{e(),b()}),[n,e,t.clientId,t.endpoint])}function _(){const r=g(t=>t.messages),a=g(t=>t.sendEvent),o=g(t=>t.sendAudio),i=l(()=>({openLanding(n,r={}){a(t.CREATE_ROUND,e(n,r))},sendInteraction(e,r={}){a(t.CREATE_ROUND,n(e,r))},refresh(e,r,o={}){a(t.CREATE_ROUND,n(r,{...o,block:e}))}}),[a]);return{history:r,sendEvent:a,sendAudio:o,...i}}const E={suggestions:[],loading:!1};function x(t,n={}){const{storyId:e,language:r,debounceMs:a=200}=n,o=g(t=>"connected"===t.connectionStatus),[i,c]=u(E),[s,l]=u(o);return s!==o&&(l(o),o||c(E)),d(()=>{if(!o)return;let n=!1;const i=setTimeout(()=>{c(t=>({...t,loading:!0}));(g.getState()._thamyr?.suggest(t,{storyId:e,language:r})??Promise.resolve(E)).then(({suggestions:t})=>{n||c({suggestions:t,loading:!1})}).catch(()=>{n||c(E)})},""===t?0:a);return()=>{n=!0,clearTimeout(i)}},[t,e,r,a,o]),o?i:E}function L(){return{status:g(t=>t.connectionStatus)}}function T(t){w(g(t=>t.addResponseListener),t)}function z(t){w(g(t=>t.addConnectionListener),t)}function I(t){w(g(t=>t.addErrorListener),t)}function C(){return l(()=>({getCart:async()=>(await h()).cart.getCart(),addItem:async t=>(await h()).cart.addItemToCart({productId:t}),removeItem:async t=>(await h()).cart.removeItemFromCart({productId:t}),updateQuantity:async(t,n)=>(await h()).cart.updateProductQuantity({productId:t,quantity:n})}),[])}function S(){return v}function A(){return l(()=>({similar:async(t,n)=>(await h()).skesis.similar({anchorId:t,...n}),related:async(t,n)=>(await h()).skesis.related({anchorId:t,...n})}),[])}function R(){return l(()=>({getSitemap:async()=>(await h()).sitemap.getSitemap()}),[])}function M(t){const[n,e]=u(),o=void 0!==r(t);d(()=>{if(!o)return;let n=!1;return a(v,t).then(r=>{n||e({pathname:t,page:r})}).catch(r=>{n||e({pathname:t,error:r instanceof Error?r:new Error(String(r))})}),()=>{n=!0}},[t,o]);const i=o&&n?.pathname===t?n:void 0;return{page:i?.page,loading:o&&void 0===i,error:i?.error}}const D=t=>({ok:!1,error:t});const O={state:"idle"},N=q(()=>({})),U=new Map;function H(){const e=g(t=>"connected"===t.connectionStatus),r=g(t=>t.storyId),a=g(t=>t.sendEvent),c=g(t=>t.addResponseListener),s=p(async(e,s={})=>{const l=s.storyId??r,d=n=>{try{return a(t.CREATE_ROUND,{...n,...void 0!==l&&{storyId:l}}),{ok:!0}}catch(t){return D(t)}};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(n(e.id,{value:e.value,payload:e.payload,block:e.block}));case"cart":return async function(t){try{const{error:n}=await t;return void 0===n?{ok:!0}:D(n)}catch(t){return D(t)}}(h().then(async t=>t.cart.addItemToCart({productId:e.productId})));case"submit":{const t=o();U.set(e.form,t),N.setState({[e.form]:{state:"sending"}});const r=d({...n(e.form,{payload:s.fields??{},submissionId:t}),...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(t,n){return new Promise(e=>{let r=()=>{};const a=setTimeout(()=>{r(),e(D("timeout"))},3e4);r=n(n=>{if("chapter-event"!==n.type||"customInteraction"!==n.chapter.inputEvent?.type||n.chapter.inputEvent.data.submissionId!==t)return;const o=(n.chapter.blocks??[]).map(t=>i(t)).find(n=>n?.submissionId===t);void 0!==o&&(clearTimeout(a),r(),e({ok:!0,result:o}))})})}(t,c):r;return U.get(e.form)===t&&N.setState({[e.form]:a.ok?{state:"done",result:a.result}:O}),a}}var u},[a,r,c]);return l(()=>({run:s,ready:e,storyId:r}),[s,e,r])}function P(t){return N(n=>n[t]??O)}const V=-45,B=1800,F=3e4;function K({silenceThreshold:t=V,silenceDuration:n=B,maxDuration:e=F,onRecordingComplete:r}){const[a,o]=u("idle"),[i,c]=u([]),[s,l]=u(void 0),v=m(void 0),h=m(void 0),g=m(void 0),b=m(void 0),f=m(0),y=m(0),q=m(void 0),w=m([]),k=m(!1),_=p(()=>{if(0!==f.current&&(cancelAnimationFrame(f.current),f.current=0),void 0!==q.current&&(clearTimeout(q.current),q.current=void 0),b.current){for(const t of b.current.getTracks())t.stop();b.current=void 0}"closed"!==h.current?.state&&h.current?.close(),h.current=void 0,g.current=void 0,v.current=void 0,k.current=!1},[]);d(()=>_,[_]);const E=p(()=>{k.current||(k.current=!0,"recording"===v.current?.state&&v.current.stop(),0!==f.current&&(cancelAnimationFrame(f.current),f.current=0),void 0!==q.current&&(clearTimeout(q.current),q.current=void 0))},[]),x=p(async()=>{l(void 0),w.current=[],k.current=!1;try{const a=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0,sampleRate:16e3}});b.current=a;const i=new AudioContext({sampleRate:16e3});h.current=i;const s=i.createMediaStreamSource(a),l=i.createAnalyser();l.fftSize=256,l.smoothingTimeConstant=.7,s.connect(l),g.current=l;const d=MediaRecorder.isTypeSupported("audio/webm;codecs=opus")?"audio/webm;codecs=opus":"audio/webm",u=new MediaRecorder(a,{mimeType:d});v.current=u,u.addEventListener("dataavailable",t=>{t.data.size>0&&w.current.push(t.data)}),u.addEventListener("stop",()=>{o("processing");const t=new Blob(w.current,{type:d});_(),r(t)}),u.start(250),o("recording"),y.current=0,q.current=setTimeout(()=>{E()},e);const m=()=>{if(!g.current||k.current)return;const e=g.current.frequencyBinCount,r=new Uint8Array(e);g.current.getByteFrequencyData(r);const a=Math.floor(e/32),o=[];for(let t=0;t<32;t++){let n=0;for(let e=0;e<a;e++)n+=r[t*a+e];o.push(n/a/255)}c(o);let i=0;for(const t of r){const n=t/255;i+=n*n}const s=Math.sqrt(i/e);if((s>0?20*Math.log10(s):-100)<t){if(0===y.current)y.current=Date.now();else if(Date.now()-y.current>n)return void E()}else y.current=0;f.current=requestAnimationFrame(m)};m()}catch{l("Microphone access denied"),o("idle"),_()}},[t,n,e,r,E,_]),L=p(()=>{o("idle"),c([])},[]);return{state:a,audioLevels:i,startRecording:x,stopRecording:E,reset:L,error:s}}function G(t){const n=m(void 0),[e,r]=u("idle"),[a,o]=u(void 0);d(()=>{const e=t?.audioUrl;if("undefined"==typeof Audio||void 0===e||""===e)return n.current=void 0,void r("idle");const a=new Audio(e);a.preload="none",n.current=a,r("idle"),o(void 0);const i=()=>{r("playing")},c=()=>{r("loading")},s=()=>{r(t=>"ended"===t?t:"paused")},l=()=>{r("ended")},d=()=>{o("Audio playback failed"),r("error")};return a.addEventListener("playing",i),a.addEventListener("waiting",c),a.addEventListener("pause",s),a.addEventListener("ended",l),a.addEventListener("error",d),()=>{a.pause(),a.removeEventListener("playing",i),a.removeEventListener("waiting",c),a.removeEventListener("pause",s),a.removeEventListener("ended",l),a.removeEventListener("error",d),a.src="",n.current=void 0}},[t?.audioUrl]);const i=p(async()=>{const t=n.current;if(t)try{o(void 0),r("loading"),await t.play()}catch{o("Audio playback failed"),r("error")}},[]),c=p(()=>{n.current?.pause()},[]),s=p(()=>{const t=n.current;t&&(t.pause(),t.currentTime=0,r("idle"))},[]),l=p(()=>{const t=n.current;t&&(t.paused?i():t.pause())},[i]);return{state:e,isPlaying:"playing"===e||"loading"===e,error:a,play:i,pause:c,toggle:l,stop:s}}function j(t){return c("svg",{viewBox:"0 0 40 45",fill:"currentColor",role:"img","aria-label":"Callimacus",...t,children:c("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"})})}function Q({onSubmit:t,value:n,onValueChange:e,placeholder:r="Ask anything…",sendLabel:a="Send",sendIcon:o,actions:i,tint:l,font:d,loading:m=!1,disabled:p=!1,autoFocus:v,className:h="",style:g}){const[b,f]=u(""),y=n??b,q=t=>{f(t),e?.(t)},w=y.trim(),k=""!==w&&!m&&!p;return s("form",{className:`cm-bar ${h}`.trimEnd(),style:{"--cm-tint":l,"--cm-font":d,...g},"aria-busy":m,onSubmit:n=>{n.preventDefault(),k&&(t(w),q(""))},children:[c("style",{children:$}),c(j,{className:"cm-bar-mark"}),c("textarea",{className:"cm-bar-input",rows:1,value:y,placeholder:r,"aria-label":r,enterKeyHint:"send",disabled:p,autoFocus:v,onChange:t=>{q(t.target.value)},onKeyDown:t=>{"Enter"!==t.key||t.shiftKey||t.nativeEvent.isComposing||(t.preventDefault(),t.currentTarget.form?.requestSubmit())}}),i,c("button",{type:"submit",className:"cm-bar-send",disabled:!k,"aria-label":a,children:o??c("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:c("path",{d:"M12 19V5M5 12l7-7 7 7"})})})]})}const $="\n.cm-bar {\n\t--_tint: var(--cm-tint, linear-gradient(45deg, #d698c7, #ffc691, #a8dfdb, #ddada6));\n\t--_bg: var(--cm-bg, light-dark(#fff, #1c1c1e));\n\t--_fg: var(--cm-fg, light-dark(#212121, #f5f5f5));\n\t--_radius: var(--cm-radius, 1.75rem);\n\t--_size: var(--cm-size, 2.5rem);\n\t--_pad: var(--cm-padding, .375rem);\n\tposition: relative;\n\tisolation: isolate;\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\talign-items: flex-end;\n\tgap: .25rem;\n\tmargin: 0;\n\tpadding: var(--_pad);\n\tborder-radius: var(--_radius);\n\tcolor: var(--_fg);\n\tfont-family: var(--cm-font, inherit);\n\tfont-size: var(--cm-font-size, 1rem);\n\tline-height: 1.5;\n}\n\n.cm-bar::before,\n.cm-bar::after {\n\tcontent: '';\n\tposition: absolute;\n\tinset: 0;\n\tz-index: -1;\n\tborder-radius: inherit;\n\tpointer-events: none;\n}\n\n/* Glow, shown on focus and animated while loading. */\n.cm-bar::before {\n\tinset: -2px;\n\tbackground: var(--_tint);\n\tbackground-size: 300% 100%;\n\tfilter: blur(10px);\n\topacity: 0;\n\ttransition: opacity .3s;\n}\n\n/* Surface with a tint border. */\n.cm-bar::after {\n\tborder: var(--cm-border-width, 1px) solid transparent;\n\tbackground: linear-gradient(var(--_bg) 0 0) padding-box, var(--_tint) border-box;\n\tbox-shadow: var(--cm-shadow, 0 15px 20px rgb(0 0 0 / .1));\n}\n\n.cm-bar:has(.cm-bar-input:disabled) {\n\topacity: .5;\n}\n\n.cm-bar:focus-within::before {\n\topacity: var(--cm-glow, .55);\n}\n\n.cm-bar[aria-busy='true']::before {\n\topacity: 1;\n\tanimation: cm-bar-flow 3s ease-in-out infinite;\n}\n\n/* The mark is the one fixed part of the 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: calc(var(--_size) * .8);\n\theight: calc(var(--_size) * .8);\n\tmin-width: 1.25rem !important;\n\tmin-height: 1.25rem !important;\n\tmargin: calc(var(--_size) * .1) calc(var(--_size) * .05) calc(var(--_size) * .1) calc(var(--_size) * .15);\n\tcolor: var(--cm-mark-color, currentColor);\n}\n\n.cm-bar[aria-busy='true'] .cm-bar-mark {\n\tanimation: cm-bar-twinkle 1.5s ease-in-out infinite;\n}\n\n.cm-bar-input {\n\tflex: 1;\n\tmin-width: 0;\n\tmin-height: var(--_size);\n\tmax-height: 12rem;\n\tbox-sizing: border-box;\n\tmargin: 0;\n\tpadding: max(0px, calc((var(--_size) - 1lh) / 2)) .25rem;\n\tborder: 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-input::placeholder {\n\tcolor: inherit;\n\topacity: .5;\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 transparent;\n\tborder-radius: max(0px, calc(var(--_radius) - var(--_pad)));\n\tbackground: linear-gradient(var(--_bg) 0 0) padding-box, var(--_tint) border-box;\n\tcolor: inherit;\n\tcursor: pointer;\n\ttransition: background .2s, color .2s, opacity .2s, transform .1s;\n}\n\n.cm-bar-send:enabled {\n\tbackground: linear-gradient(var(--cm-button-bg, var(--_fg)) 0 0) padding-box, var(--_tint) border-box;\n\tcolor: var(--cm-button-fg, var(--_bg));\n}\n\n.cm-bar-send:enabled:active {\n\ttransform: scale(.94);\n}\n\n.cm-bar-send:disabled {\n\tcursor: default;\n\topacity: .5;\n}\n\n.cm-bar-send:focus-visible {\n\toutline: 2px solid var(--_fg);\n\toutline-offset: 2px;\n}\n\n.cm-bar-send svg {\n\twidth: 45%;\n\theight: 45%;\n}\n\n@keyframes cm-bar-flow {\n\t50% {\n\t\tbackground-position: 100% 0;\n\t\topacity: .5;\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@media (prefers-reduced-motion: reduce) {\n\t.cm-bar::before,\n\t.cm-bar * {\n\t\tanimation: none !important;\n\t\ttransition: none !important;\n\t}\n}\n";export{Q as CallimacusBar,j as CallimacusMark,v as thamyrApi,H as useActions,S as useApi,g as useCallimacusStore,C as useCart,L as useConnection,k as useInitThamyr,M as useMapPage,z as useOnConnectionChange,I as useOnError,T as useOnResponse,R as useSitemap,A as useSkesis,P as useSubmission,x as useSuggestions,_ as useThamyr,G as useTtsAudio,K as useVoiceRecorder};
8
+ import{UserInteractionType as t,interactionRound as n,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 c,jsxs as s}from"react/jsx-runtime";import{useMemo as l,useEffect as d,useState as u,useRef as m,useCallback as p}from"react";import{t as v,w as h,u as g,m as b,a as f,b as y,c as q}from"./chunks/api-FJQJWLUA.js";import"@callimacus/thamyr";function w(t,n){const e=m(n);e.current=n,d(()=>t(t=>{e.current(t)}),[t])}function k(t){const n=g(t=>t.init),e=g(t=>t.reset);f(),d(()=>(y(),n(t),()=>{e(),b()}),[n,e,t.clientId,t.endpoint])}function _(){const r=g(t=>t.messages),a=g(t=>t.sendEvent),o=g(t=>t.sendAudio),i=l(()=>({openLanding(n,r={}){a(t.CREATE_ROUND,e(n,r))},sendInteraction(e,r={}){a(t.CREATE_ROUND,n(e,r))},refresh(e,r,o={}){a(t.CREATE_ROUND,n(r,{...o,block:e}))}}),[a]);return{history:r,sendEvent:a,sendAudio:o,...i}}const E={suggestions:[],loading:!1};function x(t,n={}){const{storyId:e,language:r,debounceMs:a=200}=n,o=g(t=>"connected"===t.connectionStatus),[i,c]=u(E),[s,l]=u(o);return s!==o&&(l(o),o||c(E)),d(()=>{if(!o)return;let n=!1;const i=setTimeout(()=>{c(t=>({...t,loading:!0}));(g.getState()._thamyr?.suggest(t,{storyId:e,language:r})??Promise.resolve(E)).then(({suggestions:t})=>{n||c({suggestions:t,loading:!1})}).catch(()=>{n||c(E)})},""===t?0:a);return()=>{n=!0,clearTimeout(i)}},[t,e,r,a,o]),o?i:E}function L(){return{status:g(t=>t.connectionStatus)}}function T(t){w(g(t=>t.addResponseListener),t)}function z(t){w(g(t=>t.addConnectionListener),t)}function I(t){w(g(t=>t.addErrorListener),t)}function C(){return l(()=>({getCart:async()=>(await h()).cart.getCart(),addItem:async t=>(await h()).cart.addItemToCart({productId:t}),removeItem:async t=>(await h()).cart.removeItemFromCart({productId:t}),updateQuantity:async(t,n)=>(await h()).cart.updateProductQuantity({productId:t,quantity:n})}),[])}function S(){return v}function A(){return l(()=>({similar:async(t,n)=>(await h()).skesis.similar({anchorId:t,...n}),related:async(t,n)=>(await h()).skesis.related({anchorId:t,...n})}),[])}function R(){return l(()=>({getSitemap:async()=>(await h()).sitemap.getSitemap()}),[])}function M(t){const[n,e]=u(),o=void 0!==r(t);d(()=>{if(!o)return;let n=!1;return a(v,t).then(r=>{n||e({pathname:t,page:r})}).catch(r=>{n||e({pathname:t,error:r instanceof Error?r:new Error(String(r))})}),()=>{n=!0}},[t,o]);const i=o&&n?.pathname===t?n:void 0;return{page:i?.page,loading:o&&void 0===i,error:i?.error}}const D=t=>({ok:!1,error:t});const O={state:"idle"},N=q(()=>({})),U=new Map;function H(){const e=g(t=>"connected"===t.connectionStatus),r=g(t=>t.storyId),a=g(t=>t.sendEvent),c=g(t=>t.addResponseListener),s=p(async(e,s={})=>{const l=s.storyId??r,d=n=>{try{return a(t.CREATE_ROUND,{...n,...void 0!==l&&{storyId:l}}),{ok:!0}}catch(t){return D(t)}};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(n(e.id,{value:e.value,payload:e.payload,block:e.block}));case"cart":return async function(t){try{const{error:n}=await t;return void 0===n?{ok:!0}:D(n)}catch(t){return D(t)}}(h().then(async t=>t.cart.addItemToCart({productId:e.productId})));case"submit":{const t=o();U.set(e.form,t),N.setState({[e.form]:{state:"sending"}});const r=d({...n(e.form,{payload:s.fields??{},submissionId:t}),...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(t,n){return new Promise(e=>{let r=()=>{};const a=setTimeout(()=>{r(),e(D("timeout"))},3e4);r=n(n=>{if("chapter-event"!==n.type||"customInteraction"!==n.chapter.inputEvent?.type||n.chapter.inputEvent.data.submissionId!==t)return;const o=(n.chapter.blocks??[]).map(t=>i(t)).find(n=>n?.submissionId===t);void 0!==o&&(clearTimeout(a),r(),e({ok:!0,result:o}))})})}(t,c):r;return U.get(e.form)===t&&N.setState({[e.form]:a.ok?{state:"done",result:a.result}:O}),a}}var u},[a,r,c]);return l(()=>({run:s,ready:e,storyId:r}),[s,e,r])}function P(t){return N(n=>n[t]??O)}const V=-45,B=1800,F=3e4;function K({silenceThreshold:t=V,silenceDuration:n=B,maxDuration:e=F,onRecordingComplete:r}){const[a,o]=u("idle"),[i,c]=u([]),[s,l]=u(void 0),v=m(void 0),h=m(void 0),g=m(void 0),b=m(void 0),f=m(0),y=m(0),q=m(void 0),w=m([]),k=m(!1),_=p(()=>{if(0!==f.current&&(cancelAnimationFrame(f.current),f.current=0),void 0!==q.current&&(clearTimeout(q.current),q.current=void 0),b.current){for(const t of b.current.getTracks())t.stop();b.current=void 0}"closed"!==h.current?.state&&h.current?.close(),h.current=void 0,g.current=void 0,v.current=void 0,k.current=!1},[]);d(()=>_,[_]);const E=p(()=>{k.current||(k.current=!0,"recording"===v.current?.state&&v.current.stop(),0!==f.current&&(cancelAnimationFrame(f.current),f.current=0),void 0!==q.current&&(clearTimeout(q.current),q.current=void 0))},[]),x=p(async()=>{l(void 0),w.current=[],k.current=!1;try{const a=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0,sampleRate:16e3}});b.current=a;const i=new AudioContext({sampleRate:16e3});h.current=i;const s=i.createMediaStreamSource(a),l=i.createAnalyser();l.fftSize=256,l.smoothingTimeConstant=.7,s.connect(l),g.current=l;const d=MediaRecorder.isTypeSupported("audio/webm;codecs=opus")?"audio/webm;codecs=opus":"audio/webm",u=new MediaRecorder(a,{mimeType:d});v.current=u,u.addEventListener("dataavailable",t=>{t.data.size>0&&w.current.push(t.data)}),u.addEventListener("stop",()=>{o("processing");const t=new Blob(w.current,{type:d});_(),r(t)}),u.start(250),o("recording"),y.current=0,q.current=setTimeout(()=>{E()},e);const m=()=>{if(!g.current||k.current)return;const e=g.current.frequencyBinCount,r=new Uint8Array(e);g.current.getByteFrequencyData(r);const a=Math.floor(e/32),o=[];for(let t=0;t<32;t++){let n=0;for(let e=0;e<a;e++)n+=r[t*a+e];o.push(n/a/255)}c(o);let i=0;for(const t of r){const n=t/255;i+=n*n}const s=Math.sqrt(i/e);if((s>0?20*Math.log10(s):-100)<t){if(0===y.current)y.current=Date.now();else if(Date.now()-y.current>n)return void E()}else y.current=0;f.current=requestAnimationFrame(m)};m()}catch{l("Microphone access denied"),o("idle"),_()}},[t,n,e,r,E,_]),L=p(()=>{o("idle"),c([])},[]);return{state:a,audioLevels:i,startRecording:x,stopRecording:E,reset:L,error:s}}function G(t){const n=m(void 0),[e,r]=u("idle"),[a,o]=u(void 0);d(()=>{const e=t?.audioUrl;if("undefined"==typeof Audio||void 0===e||""===e)return n.current=void 0,void r("idle");const a=new Audio(e);a.preload="none",n.current=a,r("idle"),o(void 0);const i=()=>{r("playing")},c=()=>{r("loading")},s=()=>{r(t=>"ended"===t?t:"paused")},l=()=>{r("ended")},d=()=>{o("Audio playback failed"),r("error")};return a.addEventListener("playing",i),a.addEventListener("waiting",c),a.addEventListener("pause",s),a.addEventListener("ended",l),a.addEventListener("error",d),()=>{a.pause(),a.removeEventListener("playing",i),a.removeEventListener("waiting",c),a.removeEventListener("pause",s),a.removeEventListener("ended",l),a.removeEventListener("error",d),a.src="",n.current=void 0}},[t?.audioUrl]);const i=p(async()=>{const t=n.current;if(t)try{o(void 0),r("loading"),await t.play()}catch{o("Audio playback failed"),r("error")}},[]),c=p(()=>{n.current?.pause()},[]),s=p(()=>{const t=n.current;t&&(t.pause(),t.currentTime=0,r("idle"))},[]),l=p(()=>{const t=n.current;t&&(t.paused?i():t.pause())},[i]);return{state:e,isPlaying:"playing"===e||"loading"===e,error:a,play:i,pause:c,toggle:l,stop:s}}function j(t){return c("svg",{viewBox:"0 0 40 45",fill:"currentColor",role:"img","aria-label":"Callimacus",...t,children:c("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"})})}function Q({onSubmit:t,value:n,onValueChange:e,placeholder:r="Ask anything…",sendLabel:a="Send",sendIcon:o,actions:i,tint:l,font:d,loading:m=!1,disabled:p=!1,autoFocus:v,className:h="",style:g}){const[b,f]=u(""),y=n??b,q=t=>{f(t),e?.(t)},w=y.trim(),k=""!==w&&!m&&!p;return s("form",{className:`cm-bar ${h}`.trimEnd(),style:{"--cm-tint":l,"--cm-font":d,...g},"aria-busy":m,onSubmit:n=>{n.preventDefault(),k&&(t(w),q(""))},children:[c("style",{children:$}),c(j,{className:"cm-bar-mark"}),c("textarea",{className:"cm-bar-input",rows:1,value:y,placeholder:r,"aria-label":r,enterKeyHint:"send",disabled:p,autoFocus:v,onChange:t=>{q(t.target.value)},onKeyDown:t=>{"Enter"!==t.key||t.shiftKey||t.nativeEvent.isComposing||(t.preventDefault(),t.currentTarget.form?.requestSubmit())}}),i,c("button",{type:"submit",className:"cm-bar-send",disabled:!k,"aria-label":a,children:o??c("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:c("path",{d:"M12 19V5M5 12l7-7 7 7"})})})]})}const $="\n.cm-bar {\n\t--_tint: var(--cm-tint, linear-gradient(45deg, #d698c7, #ffc691, #a8dfdb, #ddada6));\n\t--_bg: var(--cm-bg, light-dark(#fff, #1c1c1e));\n\t--_fg: var(--cm-fg, light-dark(#212121, #f5f5f5));\n\t--_radius: var(--cm-radius, 1.75rem);\n\t--_size: var(--cm-size, 2.5rem);\n\t--_pad: var(--cm-padding, .375rem);\n\tposition: relative;\n\tisolation: isolate;\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\talign-items: flex-end;\n\tgap: .25rem;\n\tmargin: 0;\n\tpadding: var(--_pad);\n\tborder-radius: var(--_radius);\n\tcolor: var(--_fg);\n\tfont-family: var(--cm-font, inherit);\n\tfont-size: var(--cm-font-size, 1rem);\n\tline-height: 1.5;\n}\n\n.cm-bar::before,\n.cm-bar::after {\n\tcontent: '';\n\tposition: absolute;\n\tinset: 0;\n\tz-index: -1;\n\tborder-radius: inherit;\n\tpointer-events: none;\n}\n\n/* Glow, shown on focus and animated while loading. */\n.cm-bar::before {\n\tinset: -2px;\n\tbackground: var(--_tint);\n\tbackground-size: 300% 100%;\n\tfilter: blur(10px);\n\topacity: 0;\n\ttransition: opacity .3s;\n}\n\n/* Surface with a tint border. */\n.cm-bar::after {\n\tborder: var(--cm-border-width, 1px) solid transparent;\n\tbackground: linear-gradient(var(--_bg) 0 0) padding-box, var(--_tint) border-box;\n\tbox-shadow: var(--cm-shadow, 0 15px 20px rgb(0 0 0 / .1));\n}\n\n.cm-bar:has(.cm-bar-input:disabled) {\n\topacity: .5;\n}\n\n.cm-bar:focus-within::before {\n\topacity: var(--cm-glow, .55);\n}\n\n.cm-bar[aria-busy='true']::before {\n\topacity: 1;\n\tanimation: cm-bar-flow 3s ease-in-out infinite;\n}\n\n/* The mark is the one fixed part of the 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: calc(var(--_size) * .8);\n\theight: calc(var(--_size) * .8);\n\tmin-width: 1.25rem !important;\n\tmin-height: 1.25rem !important;\n\tmargin: calc(var(--_size) * .1) calc(var(--_size) * .05) calc(var(--_size) * .1) calc(var(--_size) * .15);\n\tcolor: var(--cm-mark-color, currentColor);\n}\n\n.cm-bar[aria-busy='true'] .cm-bar-mark {\n\tanimation: cm-bar-twinkle 1.5s ease-in-out infinite;\n}\n\n.cm-bar-input {\n\tflex: 1;\n\tmin-width: 0;\n\tmin-height: var(--_size);\n\tmax-height: 12rem;\n\tbox-sizing: border-box;\n\tmargin: 0;\n\tpadding: max(0px, calc((var(--_size) - 1lh) / 2)) .25rem;\n\tborder: 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-input::placeholder {\n\tcolor: inherit;\n\topacity: .5;\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 transparent;\n\tborder-radius: max(0px, calc(var(--_radius) - var(--_pad)));\n\tbackground: linear-gradient(var(--_bg) 0 0) padding-box, var(--_tint) border-box;\n\tcolor: inherit;\n\tcursor: pointer;\n\ttransition: background .2s, color .2s, opacity .2s, transform .1s;\n}\n\n.cm-bar-send:enabled {\n\tbackground: linear-gradient(var(--cm-button-bg, var(--_fg)) 0 0) padding-box, var(--_tint) border-box;\n\tcolor: var(--cm-button-fg, var(--_bg));\n}\n\n.cm-bar-send:enabled:active {\n\ttransform: scale(.94);\n}\n\n.cm-bar-send:disabled {\n\tcursor: default;\n\topacity: .5;\n}\n\n.cm-bar-send:focus-visible {\n\toutline: 2px solid var(--_fg);\n\toutline-offset: 2px;\n}\n\n.cm-bar-send svg {\n\twidth: 45%;\n\theight: 45%;\n}\n\n@keyframes cm-bar-flow {\n\t50% {\n\t\tbackground-position: 100% 0;\n\t\topacity: .5;\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@media (prefers-reduced-motion: reduce) {\n\t.cm-bar::before,\n\t.cm-bar * {\n\t\tanimation: none !important;\n\t\ttransition: none !important;\n\t}\n}\n";export{Q as CallimacusBar,j as CallimacusMark,v as thamyrApi,H as useActions,S as useApi,g as useCallimacusStore,C as useCart,L as useConnection,k as useInitThamyr,M as useMapPage,z as useOnConnectionChange,I as useOnError,T as useOnResponse,R as useSitemap,A as useSkesis,P as useSubmission,x as useSuggestions,_ as useThamyr,G as useTtsAudio,K 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","CallimacusBar","onSubmit","controlledValue","onValueChange","placeholder","sendLabel","sendIcon","actions","tint","font","disabled","autoFocus","className","style","ownValue","setOwnValue","setValue","next","prompt","trim","canSubmit","_jsxs","trimEnd","preventDefault","css","rows","enterKeyHint","onChange","target","onKeyDown","key","shiftKey","nativeEvent","isComposing","currentTarget","requestSubmit","stroke","strokeWidth","strokeLinecap","strokeLinejoin"],"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","CallimacusBar","onSubmit","controlledValue","onValueChange","placeholder","sendLabel","sendIcon","actions","tint","font","disabled","autoFocus","className","style","ownValue","setOwnValue","setValue","next","prompt","trim","canSubmit","_jsxs","trimEnd","preventDefault","css","rows","enterKeyHint","onChange","target","onKeyDown","key","shiftKey","nativeEvent","isComposing","currentTarget","requestSubmit","stroke","strokeWidth","strokeLinecap","strokeLinejoin"],"mappings":";;;;;;;0hCAsCA,SAASA,EACRC,EACAC,GAEA,MAAMC,EAAcC,EAAOF,GAE3BC,EAAYE,QAAUH,EAEtBI,EAAU,IACWL,EAAYM,IAC/BJ,EAAYE,QAAQE,KAGnB,CAACN,GACL,CAyBM,SAAUO,EAAcC,GAC7B,MAAMC,EAAOC,EAAmBC,GAAKA,EAAEF,MACjCG,EAAQF,EAAmBC,GAAKA,EAAEC,OAIxCC,IAEAR,EAAU,KACTS,IACAL,EAAKD,GAEE,KACNI,IAIAG,MAGC,CAACN,EAAMG,EAAOJ,EAAOQ,SAAUR,EAAOS,UAC1C,UAiCgBC,IACf,MAAMC,EAAUT,EAAmBC,GAAKA,EAAES,UACpCC,EAAYX,EAAmBC,GAAKA,EAAEU,WACtCC,EAAYZ,EAAmBC,GAAKA,EAAEW,WACtCC,EAASC,EAAQ,KAAA,CACtB,WAAAC,CAAYC,EAAgBC,EAAwB,IACnDN,EAAUO,EAAoBC,aAAcC,EAAaJ,EAAOC,GACjE,EACA,eAAAI,CAAyCC,EAAOL,EAAiC,IAChFN,EAAUO,EAAoBC,aAAcI,EAAiBD,EAAIL,GAClE,EACA,OAAAO,CAAQC,EAAeC,EAA4BT,EAAwB,CAAA,GAC1EN,EAAUO,EAAoBC,aAAcI,EAAiBG,EAAa,IAAIT,EAASQ,UACxF,IACG,CAACd,IACL,MAAO,CACNF,UAASE,YAAWC,eAAcC,EAEpC,CAUA,MAAMc,EAAmC,CAACC,YAAa,GAAIC,SAAS,YAgCpDC,EAAeC,EAAgBd,EAA8B,IAC5E,MAAMe,QAACA,EAAOC,SAAEA,EAAQC,WAAEA,EAAa,KAAOjB,EACxCkB,EAAcnC,EAAmBC,GAA4B,cAAvBA,EAAEmC,mBACvCC,EAAOC,GAAYC,EAA2BZ,IAC9Ca,EAAcC,GAAmBF,EAASJ,GAyCjD,OAvCIK,IAAiBL,IACpBM,EAAgBN,GACXA,GAGJG,EAASX,IAIXhC,EAAU,KACT,IAAKwC,EACJ,OAKD,IAAIO,GAAU,EACd,MAAMC,EAAQC,WAAW,KACxBN,EAAS5C,IAAO,IAASA,EAASmC,SAAS,MAC3B7B,EAAmB6C,WAAWC,SAASC,QAAQhB,EAAQ,CAACC,UAASC,cAAce,QAAQC,QAAQtB,IAE7GuB,KAAK,EAAEtB,kBACFc,GACJJ,EAAS,CAACV,cAAaC,SAAS,MAGjCsB,MAAM,KACDT,GACJJ,EAASX,MAGC,KAAXI,EAAgB,EAAIG,GAEvB,MAAO,KACNQ,GAAU,EACVU,aAAaT,KAEZ,CAACZ,EAAQC,EAASC,EAAUC,EAAYC,IAEpCA,EAAcE,EAAQV,CAC9B,UAoBgB0B,IAEf,MAAO,CAACC,OADOtD,EAAmBC,GAAKA,EAAEmC,kBAE1C,CAiBM,SAAUmB,EAAchE,GAC7BF,EAAiBW,EAAmBC,GAAKA,EAAEuD,qBAAsBjE,EAClE,CAkBM,SAAUkE,EAAsBlE,GACrCF,EAAiBW,EAAmBC,GAAKA,EAAEyD,uBAAwBnE,EACpE,CAiBM,SAAUoE,EAAWpE,GAC1BF,EAAiBW,EAAmBC,GAAKA,EAAE2D,kBAAmBrE,EAC/D,UA4DgBsE,IACf,OAAO/C,EAAQ,KAAA,CACdgD,QAAa,gBACSC,KACPC,KAAKC,UAEpBH,QAAa,MAACI,UACQH,KACPC,KAAKG,cAAc,CAACD,cAEnCJ,WAAgB,MAACI,UACKH,KACPC,KAAKI,mBAAmB,CAACF,cAExCJ,eAAoB,MAACI,EAAmBG,WAClBN,KACPC,KAAKM,sBAAsB,CAACJ,YAAWG,eAEnD,GACL,UAagBE,IACf,OAAOC,CACR,UAoCgBC,IACf,OAAO3D,EAAQ,KAAA,CACdgD,QAAa,MAACY,EAAkBzD,WACV8C,KACPY,OAAOC,QAAQ,CAACF,cAAazD,IAE5C6C,QAAa,MAACY,EAAkBzD,WACV8C,KACPY,OAAOE,QAAQ,CAACH,cAAazD,MAEzC,GACL,UA2BgB6D,IACf,OAAOhE,EAAQ,KAAA,CACdgD,WAAgB,gBACMC,KACPgB,QAAQC,eAEpB,GACL,CCjcM,SAAUC,EAAWC,GAE1B,MAAOC,EAASC,GAAc7C,IACxB8C,OAAuCC,IAA3BC,EAAaL,GAE/BvF,EAAU,KACT,IAAK0F,EACJ,OAGD,IAAI3C,GAAU,EAYd,OAXA8C,EAAehB,EAAWU,GACxBhC,KAAKuC,IACA/C,GACJ0C,EAAW,CAACF,WAAUO,WAGvBtC,MAAOuC,IACFhD,GACJ0C,EAAW,CAACF,WAAUQ,MAAOA,aAAiBC,MAAQD,EAAQ,IAAIC,MAAMC,OAAOF,QAG3E,KACNhD,GAAU,IAET,CAACwC,EAAUG,IAEd,MAAM3F,EAAU2F,GAAaF,GAASD,WAAaA,EAAWC,OAAUG,EACxE,MAAO,CAACG,KAAM/F,GAAS+F,KAAM5D,QAASwD,QAAyBC,IAAZ5F,EAAuBgG,MAAOhG,GAASgG,MAC3F,CCZO,MAEDG,EAAUH,IAAc,CAAqBI,IAAI,EAAOJ,UAc9D,MAEMK,EAAmB,CAAC1D,MAAO,QAC3B2D,EAAiBC,EAAmC,KAAA,CAAS,IAE7DC,EAAmB,IAAIC,aAiDbC,IACf,MAAMC,EAAUrG,EAAmBC,GAA4B,cAAvBA,EAAEmC,kBACpCJ,EAAUhC,EAAmBC,GAAKA,EAAE+B,SACpCrB,EAAYX,EAAmBC,GAAKA,EAAEU,WACtC2F,EAAYtG,EAAmBC,GAAKA,EAAEuD,qBAEtC+C,EAAMC,EAAY1C,MAAO2C,EAAgBxF,EAAsB,CAAA,KAEpE,MAAMyF,EAAQzF,EAAQe,SAAWA,EAC3B2E,EAASC,IACd,IAEC,OADAjG,EAAUO,EAAoBC,aAAc,IAAIyF,UAAuBtB,IAAVoB,GAAuB,CAAC1E,QAAS0E,KACvF,CAACZ,IAAI,EACb,CAAE,MAAOJ,GACR,OAAOG,EAAOH,EACf,GAGD,OAAQe,EAAOI,MACd,IAAK,OACJ,YAA4BvB,IAAxBwB,WAAWC,SACPlB,EAAO,IAAIF,MAAM,4CAGrBc,EAAOO,OACVF,WAAWG,KAAKR,EAAOS,IAAK,SAAU,YAEtCJ,WAAWC,SAASI,OAAOV,EAAOS,KAG5B,CAACpB,IAAI,IAGb,IAAK,MACJ,OAAOa,EAAM,CAACS,WAAY,CAACP,KAAM,WAAYQ,KAAM,CAACrG,MAAOyF,EAAOzF,UAGnE,IAAK,WACJ,OAAO2F,EAAMpF,EAAiBkF,EAAOnF,GAAI,CAACN,MAAOyF,EAAOzF,MAAO4F,QAASH,EAAOG,QAASnF,MAAOgF,EAAOhF,SAGvG,IAAK,OACJ,OA3GJqC,eAAuBwD,GACtB,IACC,MAAM5B,MAACA,SAAe4B,EACtB,YAAiBhC,IAAVI,EAAsB,CAACI,IAAI,GAAQD,EAAOH,EAClD,CAAE,MAAOA,GACR,OAAOG,EAAOH,EACf,CACD,CAoGWP,CAAQpB,IAAkBb,KAAKY,MAAMyD,GAAUA,EAAOvD,KAAKG,cAAc,CAACD,UAAWuC,EAAOvC,cAGpG,IAAK,SAAU,CAEd,MAAMsD,EAAeC,IACrBvB,EAAiBwB,IAAIjB,EAAOkB,KAAMH,GAClCxB,EAAe1D,SAAS,CAAC,CAACmE,EAAOkB,MAAO,CAACtF,MAAO,aAChD,MAAMuF,EAAOjB,EAAM,IACfpF,EAAiBkF,EAAOkB,KAAM,CAACf,QAAS3F,EAAQ4G,QAAU,GAAIL,yBACrClC,IAAxBwB,WAAWgB,UAA0B,CAACC,QAAS,CAACC,OA1GtCA,EA0GuDlB,WAAWgB,SAASE,MA1GjDA,EAAMC,WAAW,gBAAiB,IAAIC,MAAM,EAAG,KAAKC,QAAQ,kBAAmB,SA6GlHC,EAASR,EAAK9B,SAnGxBhC,eAA+B0D,EAAsBlB,GACpD,OAAO,IAAItD,QAAQC,IAElB,IAAIoF,EAA0B,OAC9B,MAAM1F,EAAQC,WAAW,KACxByF,IACApF,EAAQ4C,EAAO,aAhCe,KAkC/BwC,EAAc/B,EAAUgC,IACvB,GAAqB,kBAAjBA,EAAQzB,MAAiE,sBAArCyB,EAAQC,QAAQnB,YAAYP,MAChEyB,EAAQC,QAAQnB,WAAWC,KAAKG,eAAiBA,EACpD,OAGD,MAAMY,GAAUE,EAAQC,QAAQC,QAAU,IAAIC,IAAIhH,GAASiH,EAAgBjH,IAAQkH,KAAKC,GAASA,GAAOpB,eAAiBA,QAC1GlC,IAAX8C,IAIJhF,aAAaT,GACb0F,IACApF,EAAQ,CAAC6C,IAAI,EAAMsC,eAGtB,CA2EmCS,CAAgBrB,EAAclB,GAAasB,EAK1E,OAJI1B,EAAiB4C,IAAIrC,EAAOkB,QAAUH,GACzCxB,EAAe1D,SAAS,CAAC,CAACmE,EAAOkB,MAAOS,EAAOtC,GAAK,CAACzD,MAAO,OAAQ+F,OAAQA,EAAOA,QAAUrC,IAGvFqC,CACR,EAnHe,IAACJ,GAqHf,CAACrH,EAAWqB,EAASsE,IAExB,OAAOxF,EAAQ,KAAA,CAAQyF,MAAKwC,MAAO1C,EAASrE,YAAW,CAACuE,EAAKF,EAASrE,GACvE,CAYM,SAAUgH,EAAcrB,GAC7B,OAAO3B,EAAe/F,GAAKA,EAAE0H,IAAS5B,EACvC,CC1LA,MAAMkD,GACa,GADbA,EAEY,KAFZA,EAGQ,IAGR,SAAUC,GAAiBC,iBAChCA,EAAmBF,EAA+BG,gBAClDA,EAAkBH,EAA8BI,YAChDA,EAAcJ,EAA0BK,oBACxCA,IAEA,MAAOjH,EAAOC,GAAYC,EAA6B,SAChDgH,EAAaC,GAAkBjH,EAAmB,KAClDmD,EAAO+D,GAAYlH,OAA6B+C,GAEjDoE,EAAmBjK,OAAkC6F,GACrDqE,EAAkBlK,OAAiC6F,GACnDsE,EAAcnK,OAAiC6F,GAC/CuE,EAAYpK,OAAgC6F,GAC5CwE,EAAoBrK,EAAe,GACnCsK,EAAkBtK,EAAe,GACjCuK,EAAsBvK,OAAsC6F,GAC5D2E,EAAYxK,EAAe,IAC3ByK,EAAczK,GAAO,GAGrB0K,EAAU3D,EAAY,KAW3B,GAVkC,IAA9BsD,EAAkBpK,UACrB0K,qBAAqBN,EAAkBpK,SACvCoK,EAAkBpK,QAAU,QAGO4F,IAAhC0E,EAAoBtK,UACvB0D,aAAa4G,EAAoBtK,SACjCsK,EAAoBtK,aAAU4F,GAG3BuE,EAAUnK,QAAS,CACtB,IAAK,MAAM2K,KAASR,EAAUnK,QAAQ4K,YACrCD,EAAME,OAGPV,EAAUnK,aAAU4F,CACrB,CAEuC,WAAnCqE,EAAgBjK,SAAS2C,OACvBsH,EAAgBjK,SAAS8K,QAG/Bb,EAAgBjK,aAAU4F,EAC1BsE,EAAYlK,aAAU4F,EACtBoE,EAAiBhK,aAAU4F,EAC3B4E,EAAYxK,SAAU,GACpB,IAEHC,EAAU,IAAMwK,EAAS,CAACA,IAE1B,MAAMM,EAAgBjE,EAAY,KAC7B0D,EAAYxK,UAIhBwK,EAAYxK,SAAU,EAEkB,cAApCgK,EAAiBhK,SAAS2C,OAC7BqH,EAAiBhK,QAAQ6K,OAGQ,IAA9BT,EAAkBpK,UACrB0K,qBAAqBN,EAAkBpK,SACvCoK,EAAkBpK,QAAU,QAGO4F,IAAhC0E,EAAoBtK,UAIxB0D,aAAa4G,EAAoBtK,SACjCsK,EAAoBtK,aAAU4F,KAC5B,IAEGoF,EAAiBlE,EAAY1C,UAClC2F,OAASnE,GACT2E,EAAUvK,QAAU,GACpBwK,EAAYxK,SAAU,EAEtB,IACC,MAAMiL,QAAeC,UAAUC,aAAaC,aAAa,CACxDC,MAAO,CACNC,kBAAkB,EAClBC,kBAAkB,EAClBC,WAAY,QAIdrB,EAAUnK,QAAUiL,EAEpB,MAAMQ,EAAe,IAAIC,aAAa,CAACF,WAAY,OACnDvB,EAAgBjK,QAAUyL,EAE1B,MAAME,EAASF,EAAaG,wBAAwBX,GAC9CY,EAAWJ,EAAaK,iBAC9BD,EAASE,QAAU,IACnBF,EAASG,sBAAwB,GACjCL,EAAOM,QAAQJ,GACf3B,EAAYlK,QAAU6L,EAEtB,MAAMK,EAAWC,cAAcC,gBAAgB,0BAC5C,yBACA,aAEGC,EAAgB,IAAIF,cAAclB,EAAQ,CAACiB,aACjDlC,EAAiBhK,QAAUqM,EAE3BA,EAAcC,iBAAiB,gBAAkBC,IAC5CA,EAAM5E,KAAK6E,KAAO,GACrBjC,EAAUvK,QAAQyM,KAAKF,EAAM5E,QAI/B0E,EAAcC,iBAAiB,OAAQ,KACtC1J,EAAS,cACT,MAAM8J,EAAY,IAAIC,KAAKpC,EAAUvK,QAAS,CAACmH,KAAM+E,IACrDzB,IACAb,EAAoB8C,KAGrBL,EAAcO,MAAM,KACpBhK,EAAS,aACTyH,EAAgBrK,QAAU,EAE1BsK,EAAoBtK,QAAUkD,WAAW,KACxC6H,KACEpB,GAEH,MAAMkD,EAAe,KACpB,IAAK3C,EAAYlK,SAAWwK,EAAYxK,QACvC,OAGD,MAAM8M,EAAe5C,EAAYlK,QAAQ+M,kBACnCC,EAAY,IAAIC,WAAWH,GACjC5C,EAAYlK,QAAQkN,qBAAqBF,GAEzC,MAAMG,EAAOC,KAAKC,MAAMP,EAxHT,IAyHTQ,EAAmB,GACzB,IAAK,IAAIC,EAAI,EAAGA,EA1HD,GA0HgBA,IAAK,CACnC,IAAIC,EAAM,EACV,IAAK,IAAIC,EAAI,EAAGA,EAAIN,EAAMM,IACzBD,GAAOR,EAAWO,EAAIJ,EAAQM,GAG/BH,EAAOb,KAAKe,EAAML,EAAO,IAC1B,CAEArD,EAAewD,GAEf,IAAII,EAAa,EACjB,IAAK,MAAMpM,KAAS0L,EAAW,CAC9B,MAAMW,EAAarM,EAAQ,IAC3BoM,GAAcC,EAAaA,CAC5B,CAEA,MAAMC,EAAMR,KAAKS,KAAKH,EAAaZ,GAGnC,IAFWc,EAAM,EAAI,GAAKR,KAAKU,MAAMF,IAAQ,KAEpCnE,GACR,GAAgC,IAA5BY,EAAgBrK,QACnBqK,EAAgBrK,QAAU+N,KAAKC,WACzB,GAAID,KAAKC,MAAQ3D,EAAgBrK,QAAU0J,EAEjD,YADAqB,SAIDV,EAAgBrK,QAAU,EAG3BoK,EAAkBpK,QAAUiO,sBAAsBpB,IAGnDA,GACD,CAAE,MACD9C,EAAS,4BACTnH,EAAS,QACT6H,GACD,GACE,CAAChB,EAAkBC,EAAiBC,EAAaC,EAAqBmB,EAAeN,IAElFjK,EAAQsG,EAAY,KACzBlE,EAAS,QACTkH,EAAe,KACb,IAEH,MAAO,CACNnH,QAAOkH,cAAamB,iBAAgBD,gBAAevK,QAAOwF,QAE5D,CC5KM,SAAUkI,EAAY7C,GAC3B,MAAM8C,EAAWpO,OAAqC6F,IAC/CjD,EAAOC,GAAYC,EAAwB,SAC3CmD,EAAO+D,GAAYlH,OAA6B+C,GAEvD3F,EAAU,KACT,MAAMmO,EAAW/C,GAAO+C,SACxB,GAAqB,oBAAVC,YAAsCzI,IAAbwI,GAAuC,KAAbA,EAI7D,OAHAD,EAASnO,aAAU4F,OAEnBhD,EAAS,QAIV,MAAM0L,EAAU,IAAID,MAAMD,GAC1BE,EAAQC,QAAU,OAClBJ,EAASnO,QAAUsO,EAEnB1L,EAAS,QACTmH,OAASnE,GAET,MAAM4I,EAAY,KACjB5L,EAAS,YAGJ6L,EAAY,KACjB7L,EAAS,YAGJ8L,EAAU,KACf9L,EAAS+L,GAA0B,UAAbA,EAAuBA,EAAW,WAGnDC,EAAU,KACfhM,EAAS,UAGJiM,EAAU,KACf9E,EAAS,yBACTnH,EAAS,UASV,OANA0L,EAAQhC,iBAAiB,UAAWkC,GACpCF,EAAQhC,iBAAiB,UAAWmC,GACpCH,EAAQhC,iBAAiB,QAASoC,GAClCJ,EAAQhC,iBAAiB,QAASsC,GAClCN,EAAQhC,iBAAiB,QAASuC,GAE3B,KACNP,EAAQQ,QACRR,EAAQS,oBAAoB,UAAWP,GACvCF,EAAQS,oBAAoB,UAAWN,GACvCH,EAAQS,oBAAoB,QAASL,GACrCJ,EAAQS,oBAAoB,QAASH,GACrCN,EAAQS,oBAAoB,QAASF,GACrCP,EAAQU,IAAM,GACdb,EAASnO,aAAU4F,IAElB,CAACyF,GAAO+C,WAEX,MAAMa,EAAOnI,EAAY1C,UACxB,MAAMkK,EAAUH,EAASnO,QACzB,GAAKsO,EAIL,IACCvE,OAASnE,GACThD,EAAS,iBACH0L,EAAQW,MACf,CAAE,MACDlF,EAAS,yBACTnH,EAAS,QACV,GACE,IAEGkM,EAAQhI,EAAY,KACzBqH,EAASnO,SAAS8O,SAChB,IAEGjE,EAAO/D,EAAY,KACxB,MAAMwH,EAAUH,EAASnO,QACpBsO,IAILA,EAAQQ,QACRR,EAAQY,YAAc,EACtBtM,EAAS,UACP,IAEGuM,EAASrI,EAAY,KAC1B,MAAMwH,EAAUH,EAASnO,QACpBsO,IAIDA,EAAQc,OACNH,IAELX,EAAQQ,UAEP,CAACG,IAEJ,MAAO,CACNtM,QACA0M,UAAqB,YAAV1M,GAAiC,YAAVA,EAClCqD,QACAiJ,OACAH,QACAK,SACAtE,OAEF,CC9JM,SAAUyE,EAAeC,GAC9B,OACCC,EAAA,MAAA,CAAKC,QAAQ,YAAYC,KAAK,eAAeC,KAAK,MAAK,aAAY,gBAAiBJ,EAAKK,SAExFJ,EAAA,OAAA,CAAMK,EAAE,ipGAGX,UC0CgBC,GAAcC,SAC7BA,EACAzO,MAAO0O,EAAeC,cACtBA,EAAaC,YACbA,EAAc,gBAAeC,UAC7BA,EAAY,OAAMC,SAClBA,EAAQC,QACRA,EAAOC,KACPA,EAAIC,KACJA,EAAIpO,QACJA,GAAU,EAAKqO,SACfA,GAAW,EAAKC,UAChBA,EAASC,UACTA,EAAY,GAAEC,MACdA,IAEA,MAAOC,EAAUC,GAAehO,EAAS,IACnCvB,EAAQ0O,GAAmBY,EAC3BE,EAAYC,IACjBF,EAAYE,GACZd,IAAgBc,IAGXC,EAAS1P,EAAM2P,OACfC,EAAuB,KAAXF,IAAkB7O,IAAYqO,EAsBhD,OACCW,EAAA,OAAA,CACCT,UAAW,UAAUA,IAAYU,UACjCT,MAAO,CAAC,YAAaL,EAAM,YAAaC,KAASI,eACtCxO,EACX4N,SAzBcxD,IACfA,EAAM8E,iBACDH,IAILnB,EAASiB,GACTF,EAAS,MAkBQlB,SAAA,CAIhBJ,EAAA,QAAA,CAAAI,SAAQ0B,IACR9B,EAACF,EAAc,CAACoB,UAAU,gBAC1BlB,EAAA,WAAA,CACCkB,UAAU,eACVa,KAAM,EACNjQ,MAAOA,EACP4O,YAAaA,EAAW,aACZA,EACZsB,aAAa,OACbhB,SAAUA,EACVC,UAAWA,EACXgB,SAAUlF,IACTuE,EAASvE,EAAMmF,OAAOpQ,QAEvBqQ,UAhCgBpF,IACA,UAAdA,EAAMqF,KAAmBrF,EAAMsF,UAAYtF,EAAMuF,YAAYC,cAIjExF,EAAM8E,iBACN9E,EAAMyF,cAAc/J,MAAMgK,oBA4BxB5B,EACDb,EAAA,SAAA,CAAQrI,KAAK,SAASuJ,UAAU,cAAcF,UAAWU,EAAS,aAAcf,EAASP,SACvFQ,GACAZ,EAAA,MAAA,CAAKC,QAAQ,YAAYC,KAAK,OAAOwC,OAAO,eAAeC,YAAY,IAAIC,cAAc,QAAQC,eAAe,QAAO,cAAa,OAAMzC,SACzIJ,EAAA,OAAA,CAAMK,EAAE,gCAMd,CAKA,MAAMyB,EAAM"}
package/dist/esm/query.js CHANGED
@@ -5,5 +5,5 @@
5
5
  * See LICENSE.md for the full terms.
6
6
  *
7
7
  */
8
- import{queryOptions as t}from"@tanstack/react-query";import{t as r}from"./chunks/api-DlvVjF7W.js";import"@callimacus/thamyr";import"@callimacus/thamyr-core";import"react";async function a(t,a,n,o){const i=r[t][a],c={signal:o,throwOnError:!0};return(await(void 0===n?i(c):i(n,c))).data}function n(r,n,o){return t({queryKey:["thamyr",r,n,o],queryFn:async({signal:t})=>a(r,n,o,t)})}function o(t,r){return{mutationKey:["thamyr",t,r],mutationFn:async n=>a(t,r,n)}}export{o as thamyrMutationOptions,n as thamyrQueryOptions};
8
+ import{queryOptions as t}from"@tanstack/react-query";import{t as r}from"./chunks/api-FJQJWLUA.js";import"@callimacus/thamyr";import"@callimacus/thamyr-core";import"react";async function a(t,a,n,o){const i=r[t][a],c={signal:o,throwOnError:!0};return(await(void 0===n?i(c):i(n,c))).data}function n(r,n,o){return t({queryKey:["thamyr",r,n,o],queryFn:async({signal:t})=>a(r,n,o,t)})}function o(t,r){return{mutationKey:["thamyr",t,r],mutationFn:async n=>a(t,r,n)}}export{o as thamyrMutationOptions,n as thamyrQueryOptions};
9
9
  //# sourceMappingURL=query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sources":["../../../src/query.ts"],"sourcesContent":[null],"names":["async","callApi","namespace","method","parameters","signal","call","thamyrApi","options","throwOnError","undefined","data","thamyrQueryOptions","queryOptions","queryKey","thamyrMutationOptions","mutationKey"],"mappings":";;;;;;;2KA4FAA,eAAeC,EACdC,EACAC,EACAC,EACAC,GAEA,MAAMC,EAAOC,EAAUL,GAAWC,GAC5BK,EAAU,CAACH,SAAQI,cAAc,GASvC,kBADqCC,IAAfN,EAA2BE,EAAKE,GAAWF,EAAKF,EAAYI,KACpEG,IACf,UA4BgBC,EACfV,EACAC,EACAC,GAEA,OAAOS,EAAa,CACnBC,SAAU,CAAC,SAAUZ,EAAWC,EAAQC,GACxCJ,QAAa,OAACK,OAACA,KACPJ,EAAQC,EAAWC,EAAQC,EAAYC,IAGjD,CAYM,SAAUU,EACfb,EACAC,GAEA,MAAO,CACNa,YAAa,CAAC,SAAUd,EAAWC,GACnCH,WAAgB,MAACI,GACTH,EAAQC,EAAWC,EAAQC,GAGrC"}
1
+ {"version":3,"file":"query.js","sources":["../../../src/query.ts"],"sourcesContent":[null],"names":["async","callApi","namespace","method","parameters","signal","call","thamyrApi","options","throwOnError","undefined","data","thamyrQueryOptions","queryOptions","queryKey","thamyrMutationOptions","mutationKey"],"mappings":";;;;;;;2KAoFAA,eAAeC,EACdC,EACAC,EACAC,EACAC,GAQA,MAAMC,EAAOC,EAAUL,GAAWC,GAC5BK,EAAU,CAACH,SAAQI,cAAc,GASvC,kBADqCC,IAAfN,EAA2BE,EAAKE,GAAWF,EAAKF,EAAYI,KACpEG,IACf,UA4BgBC,EACfV,EACAC,EACAC,GAEA,OAAOS,EAAa,CACnBC,SAAU,CAAC,SAAUZ,EAAWC,EAAQC,GACxCJ,QAAa,OAACK,OAACA,KACPJ,EAAQC,EAAWC,EAAQC,EAAYC,IAGjD,CAYM,SAAUU,EACfb,EACAC,GAEA,MAAO,CACNa,YAAa,CAAC,SAAUd,EAAWC,GACnCH,WAAgB,MAACI,GACTH,EAAQC,EAAWC,EAAQC,GAGrC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@callimacus/thamyr-react",
3
- "version": "4.10.0",
3
+ "version": "4.10.1",
4
4
  "private": false,
5
5
  "description": "React package for Thamyr",
6
6
  "license": "SEE LICENSE IN LICENSE.md",
@@ -40,28 +40,28 @@
40
40
  "storybook": "storybook dev -p 6006"
41
41
  },
42
42
  "dependencies": {
43
- "@callimacus/thamyr": "^4.10.0",
44
- "@callimacus/thamyr-core": "^4.10.0",
45
- "zustand": "^5.0.15"
43
+ "@callimacus/thamyr": "^4.10.1",
44
+ "@callimacus/thamyr-core": "^4.10.1",
45
+ "zustand": "^5.0.16"
46
46
  },
47
47
  "peerDependencies": {
48
48
  "@tanstack/react-query": "^5",
49
49
  "react": ">=18"
50
50
  },
51
51
  "devDependencies": {
52
- "@eslint-react/eslint-plugin": "^5.28.3",
52
+ "@eslint-react/eslint-plugin": "^5.28.8",
53
53
  "@storybook/react-vite": "^10.6.3",
54
54
  "@tanstack/react-query": "^5.104.5",
55
55
  "@testing-library/react": "^16.3.3",
56
56
  "@types/react": "^19.3.0",
57
57
  "@types/react-dom": "^19.3.0",
58
- "eslint-config-xo": "^6.0.1",
58
+ "eslint-config-xo": "^7.0.0",
59
59
  "eslint-plugin-react-hooks": "^7.1.1",
60
60
  "jsdom": "^30.1.3",
61
61
  "react": "^19.3.1",
62
62
  "react-dom": "^19.3.1",
63
63
  "storybook": "^10.6.3",
64
- "vite": "^8.3.4",
64
+ "vite": "^8.3.5",
65
65
  "vitest": "^5.0.5"
66
66
  },
67
67
  "gitHead": "fafba2c8ca0586f95b1d03c5eede356a53b00886",
@@ -1,9 +0,0 @@
1
- /*!
2
- * Copyright © 2025–2026 Solomei AI SRL. All rights reserved.
3
- *
4
- * Proprietary software, licensed for use by Callimacus customers only.
5
- * See LICENSE.md for the full terms.
6
- *
7
- */
8
- import{Thamyr as e}from"@callimacus/thamyr";import{callimacusService as t,ThamyrResponseType as n,applyBlockPatch as r}from"@callimacus/thamyr-core";import o from"react";const s=e=>{let t;const n=new Set,r=(e,r)=>{const o="function"==typeof e?e(t):e;if(!Object.is(o,t)){const e=t;t=(null!=r?r:"object"!=typeof o||null===o)?o:Object.assign({},t,o),n.forEach(n=>n(t,e))}},o=()=>t,s={setState:r,getState:o,getInitialState:()=>i,subscribe:e=>(n.add(e),()=>n.delete(e))},i=t=e(r,o,s);return s},i=e=>e;const a=e=>{const t=(e=>e?s(e):s)(e),n=e=>function(e,t=i){const n=o.useSyncExternalStore(e.subscribe,o.useCallback(()=>t(e.getState()),[e,t]),o.useCallback(()=>t(e.getInitialState()),[e,t]));return o.useDebugValue(n),n}(t,e);return Object.assign(n,t),n},c=e=>e?a(e):a;function d(e,t){for(const n of e)try{n(t)}catch(e){console.error("[Thamyr] Listener threw:",e)}}function u(e,t){let o=!1;const s=e.map(e=>{if(e.type!==n.CHAPTER_EVENT)return e;const s=r(e.chapter,t);return s===e.chapter?e:(o=!0,{...e,chapter:s})});return o?s:e}const l=c()((r,o)=>{let s,i=0;const a=new Set,c=new Set,l=new Set;return{connectionStatus:"idle",messages:[],storyId:void 0,error:void 0,_initialized:!1,_thamyr:void 0,init(m){if(o()._initialized)return;if("undefined"==typeof window)return void console.debug("[Thamyr] init() skipped: no browser environment detected (SSR).");const{clientId:y}=m;if(!y){console.error("[Thamyr] clientId is required. Pass your Callimacus Client ID (`cal-pk-…`) to useInitThamyr().");const e={code:0,message:"clientId is required. Pass your Callimacus Client ID (`cal-pk-…`) to useInitThamyr()."};return r({connectionStatus:"error",error:e}),d(l,e),void d(c,"error")}void 0!==m.maxMessages&&m.maxMessages<0&&console.warn("[Thamyr] maxMessages must be >= 0. Received:",m.maxMessages,". Clamping to 1.");const h=0===m.maxMessages?1/0:Math.max(1,m.maxMessages??50);let f;r({connectionStatus:"connecting",error:void 0});try{f=new e({clientId:y,endpoint:m.endpoint,uiObserver:m.uiObserver})}catch(e){console.error("[Thamyr] Failed to create Thamyr instance:",e);const t={code:0,message:e instanceof Error?e.message:String(e)};return r({connectionStatus:"error",error:t}),d(l,t),void d(c,"error")}const w=++i;f.onResponse(e=>{i===w&&(e.type===n.BLOCK_PATCH?r(t=>({messages:u(t.messages,e.data)})):r(t=>{const r=[...t.messages,e];return{messages:r.length>h?r.slice(-h):r,...e.type===n.STORY_CREATED&&{storyId:e.story.id}}}),d(a,e))}),f.onError(e=>{i===w&&(r({error:e,connectionStatus:"error"}),d(l,e),d(c,"error"))}),s=t.onConnectionStatus(e=>{if(i!==w)return;const t=e?"connected":"disconnected";r({connectionStatus:t}),d(c,t)}),function(e){r({_initialized:Boolean(e),_thamyr:e})}(f)},reset(){if(o()._initialized){i++;try{s?.()}catch(e){console.error("[Thamyr] Error unsubscribing connection status listener:",e)}try{t.disconnect()}catch(e){console.error("[Thamyr] Error disconnecting:",e)}s=void 0,r({_initialized:!1,_thamyr:void 0,connectionStatus:"idle",messages:[],storyId:void 0,error:void 0})}else"idle"!==o().connectionStatus&&r({connectionStatus:"idle",error:void 0})},sendEvent(e,t){const n=o()._thamyr;if(!n)throw new Error("[Thamyr] SDK is not initialized yet. Ensure useInitThamyr() has been called.");const{connectionStatus:s}=o();if("connected"!==s){const e={code:0,message:`Cannot send event: connection status is "${s}". Wait for connected status before sending.`};throw r({error:e}),d(l,e),new Error(e.message)}n.sendUserInteraction(e,t)},sendAudio(e,t){const n=o()._thamyr;if(!n)throw new Error("[Thamyr] SDK is not initialized yet. Ensure useInitThamyr() has been called.");const{connectionStatus:s}=o();if("connected"!==s){const e={code:0,message:`Cannot send audio: connection status is "${s}". Wait for connected status before sending.`};throw r({error:e}),d(l,e),new Error(e.message)}n.sendAudio(e,t)},addResponseListener:e=>(a.add(e),()=>{a.delete(e)}),addConnectionListener:e=>(c.add(e),()=>{c.delete(e)}),addErrorListener:e=>(l.add(e),()=>{l.delete(e)})}});let m=!1,y=0;const h=new Set;function f(){m=!0}function w(){y++,m=!0}function g(){y--,queueMicrotask(()=>{if(y>0)return;m=!1;const e=[...h];h.clear();for(const t of e)t(new Error("[Thamyr] SDK was torn down: useInitThamyr() unmounted while this call was waiting for initialization."))})}function S(e){return new Error(`[Thamyr] SDK initialization failed: ${e?.message??"unknown error"}`)}async function p(){if("undefined"==typeof window)throw new Error("[Thamyr] The generated API is browser-only; this call ran without a browser environment (SSR).");const e=l.getState();if(e._thamyr)return e._thamyr;if(!m)throw new Error("[Thamyr] SDK is not initialized and no useInitThamyr() is mounted. Add useInitThamyr({clientId: 'cal-pk-…'}) to your root component.");if("error"===e.connectionStatus)throw S(e.error);return new Promise((e,t)=>{let n=!1;const r=e=>{n||(n=!0,s(),h.delete(o),e())},o=e=>{r(()=>{t(e)})};h.add(o);const s=l.subscribe(n=>{if(n._thamyr){const t=n._thamyr;r(()=>{e(t)})}else"error"===n.connectionStatus&&r(()=>{t(S(n.error))})})})}const b=new Set(["then","catch","finally","toJSON"]),T=new Set(Object.getOwnPropertyNames(Object.prototype));function E(e){return"string"!=typeof e||T.has(e)}const v=new Map,I=new Proxy({},{get(e,t){if(E(t))return Reflect.get(e,t);if(b.has(t))return;const n=t;let r=v.get(n);return void 0===r&&(r=function(e){const t=new Map;return new Proxy({},{get(n,r){if(E(r))return Reflect.get(n,r);if(b.has(r))return;const o=r;let s=t.get(o);return void 0===s&&(s=async(...t)=>{const n=(await p())[e],r=n?.[o];if("function"!=typeof r)throw new TypeError(`[Thamyr] ${e}.${o} is not part of the generated API surface.`);return Reflect.apply(r,n,t)},t.set(o,s)),s}})}(n),v.set(n,r)),r}});export{f as a,w as b,c,g as m,I as t,l as u,p as w};
9
- //# sourceMappingURL=api-DlvVjF7W.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-DlvVjF7W.js","sources":["../../../../../node_modules/zustand/esm/vanilla.mjs","../../../../../node_modules/zustand/esm/react.mjs","../../../../src/callimacus/store.ts","../../../../src/callimacus/api.ts"],"sourcesContent":["const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n React.useCallback(() => selector(api.getState()), [api, selector]),\n React.useCallback(() => selector(api.getInitialState()), [api, selector])\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = ((createState) => createState ? createImpl(createState) : createImpl);\n\nexport { create, useStore };\n",null,null],"names":["createStoreImpl","createState","state","listeners","Set","setState","partial","replace","nextState","Object","is","previousState","assign","forEach","listener","getState","api","getInitialState","initialState","subscribe","add","delete","identity","arg","createImpl","createStore","useBoundStore","selector","slice","React","useSyncExternalStore","useCallback","useDebugValue","useStore","create","notifyListeners","error","console","patchedHistory","messages","patch","isPatched","patched","map","message","type","ThamyrResponseType","CHAPTER_EVENT","chapter","applyBlockPatch","useCallimacusStore","set","get","unsubConnectionStatus","generation","responseListeners","connectionListeners","errorListeners","connectionStatus","storyId","undefined","_initialized","_thamyr","init","config","window","debug","clientId","errorMessage","code","maxMessages","warn","Infinity","Math","max","thamyr","Thamyr","endpoint","uiObserver","Error","String","currentGen","onResponse","response","BLOCK_PATCH","data","length","STORY_CREATED","story","id","onError","callimacusService","onConnectionStatus","connected","status","Boolean","setInitState","reset","disconnect","sendEvent","payload","sendUserInteraction","sendAudio","audio","query","addResponseListener","cb","addConnectionListener","addErrorListener","wasInitRequested","mountedInitOwners","pendingRejecters","markInitRequested","markInitOwnerMounted","markInitOwnerUnmounted","queueMicrotask","rejecters","clear","rejectWaiter","initError","async","waitForInstance","Promise","resolve","reject","isSettled","settle","action","unsubscribe","rejecter","current","instance","blockedNames","objectPrototypeMembers","getOwnPropertyNames","prototype","isPassthroughProperty","property","has","namespaces","Map","thamyrApi","Proxy","target","Reflect","name","namespace","namespaceName","methods","method","args","fn","TypeError","apply","createNamespaceFacade"],"mappings":";;;;;;;0KAAA,MAAMA,EAAmBC,IACvB,IAAIC,EACJ,MAAMC,EAA4B,IAAIC,IAChCC,EAAW,CAACC,EAASC,KACzB,MAAMC,EAA+B,mBAAZF,EAAyBA,EAAQJ,GAASI,EACnE,IAAKG,OAAOC,GAAGF,EAAWN,GAAQ,CAChC,MAAMS,EAAgBT,EACtBA,GAAoB,MAAXK,EAAkBA,EAA+B,iBAAdC,GAAwC,OAAdA,GAAsBA,EAAYC,OAAOG,OAAO,CAAA,EAAIV,EAAOM,GACjIL,EAAUU,QAASC,GAAaA,EAASZ,EAAOS,GAClD,GAEII,EAAW,IAAMb,EAMjBc,EAAM,CAAEX,WAAUU,WAAUE,gBALV,IAAMC,EAKqBC,UAJhCL,IACjBX,EAAUiB,IAAIN,GACP,IAAMX,EAAUkB,OAAOP,KAG1BI,EAAehB,EAAQD,EAAYI,EAAUU,EAAUC,GAC7D,OAAOA,GChBHM,EAAYC,GAAQA,EAU1B,MAAMC,EAAcvB,IAClB,MAAMe,EDOS,CAAKf,GAAgBA,EAAcD,EAAgBC,GAAeD,ECPrEyB,CAAYxB,GAClByB,EAAiBC,GAXzB,SAAkBX,EAAKW,EAAWL,GAChC,MAAMM,EAAQC,EAAMC,qBAClBd,EAAIG,UACJU,EAAME,YAAY,IAAMJ,EAASX,EAAID,YAAa,CAACC,EAAKW,IACxDE,EAAME,YAAY,IAAMJ,EAASX,EAAIC,mBAAoB,CAACD,EAAKW,KAGjE,OADAE,EAAMG,cAAcJ,GACbA,CACT,CAGsCK,CAASjB,EAAKW,GAElD,OADAlB,OAAOG,OAAOc,EAAeV,GACtBU,GAEHQ,EAAWjC,GAAgBA,EAAcuB,EAAWvB,GAAeuB,ECuBzE,SAASW,EAAmBhC,EAAkCoB,GAC7D,IAAK,MAAMT,KAAYX,EACtB,IACCW,EAASS,EACV,CAAE,MAAOa,GACRC,QAAQD,MAAM,2BAA4BA,EAC3C,CAEF,CAMA,SAASE,EAAeC,EAA4BC,GACnD,IAAIC,GAAY,EAChB,MAAMC,EAAUH,EAASI,IAAIC,IAC5B,GAAIA,EAAQC,OAASC,EAAmBC,cACvC,OAAOH,EAGR,MAAMI,EAAUC,EAAgBL,EAAQI,QAASR,GACjD,OAAIQ,IAAYJ,EAAQI,QAChBJ,GAGRH,GAAY,EACL,IAAIG,EAASI,cAErB,OAAOP,EAAYC,EAAUH,CAC9B,CAQO,MAAMW,EAAqBhB,IAA0B,CAACiB,EAAKC,KAKjE,IAAIC,EAKAC,EAAa,EAMjB,MAAMC,EAAoB,IAAInD,IACxBoD,EAAsB,IAAIpD,IAC1BqD,EAAiB,IAAIrD,IAS3B,MAAO,CACNsD,iBAAkB,OAClBnB,SAAU,GACVoB,aAASC,EACTxB,WAAOwB,EACPC,cAAc,EACdC,aAASF,EAET,IAAAG,CAAKC,GACJ,GAAIZ,IAAMS,aACT,OAGD,GAAsB,oBAAXI,OAEV,YADA5B,QAAQ6B,MAAM,mEAIf,MAAMC,SAACA,GAAYH,EAGnB,IAAKG,EAAU,CACd9B,QAAQD,MAAM,kGACd,MAAMgC,EAA6B,CAACC,KAAM,EAAGzB,QAAS,yFAItD,OAHAO,EAAI,CAACO,iBAAkB,QAAStB,MAAOgC,IACvCjC,EAAgBsB,EAAgBW,QAChCjC,EAAgBqB,EAAqB,QAEtC,MAG2BI,IAAvBI,EAAOM,aAA6BN,EAAOM,YAAc,GAC5DjC,QAAQkC,KAAK,+CAAgDP,EAAOM,YAAa,oBAGlF,MAAMA,EAAqC,IAAvBN,EAAOM,YAAoBE,IAAWC,KAAKC,IAAI,EAAGV,EAAOM,aAAe,IAK5F,IAAIK,EAFJxB,EAAI,CAACO,iBAAkB,aAActB,WAAOwB,IAG5C,IACCe,EAAS,IAAIC,EAAO,CACnBT,WACAU,SAAUb,EAAOa,SACjBC,WAAYd,EAAOc,YAErB,CAAE,MAAO1C,GACRC,QAAQD,MAAM,6CAA8CA,GAC5D,MAAMgC,EAA6B,CAACC,KAAM,EAAGzB,QAASR,aAAiB2C,MAAQ3C,EAAMQ,QAAUoC,OAAO5C,IAItG,OAHAe,EAAI,CAACO,iBAAkB,QAAStB,MAAOgC,IACvCjC,EAAgBsB,EAAgBW,QAChCjC,EAAgBqB,EAAqB,QAEtC,CAEA,MAAMyB,IAAe3B,EAErBqB,EAAOO,WAAWC,IACb7B,IAAe2B,IAMfE,EAAStC,OAASC,EAAmBsC,YACxCjC,EAAIjD,KAAWqC,SAAUD,EAAepC,EAAMqC,SAAU4C,EAASE,SAEjElC,EAAIjD,IACH,MAAMqC,EAAW,IAAIrC,EAAMqC,SAAU4C,GACrC,MAAO,CACN5C,SAAUA,EAAS+C,OAAShB,EAAc/B,EAASX,OAAO0C,GAAe/B,KACrE4C,EAAStC,OAASC,EAAmByC,eAAiB,CAAC5B,QAASwB,EAASK,MAAMC,OAKtFtD,EAAgBoB,EAAmB4B,MAGpCR,EAAOe,QAAQtD,IACVkB,IAAe2B,IAInB9B,EAAI,CAACf,QAAOsB,iBAAkB,UAC9BvB,EAAgBsB,EAAgBrB,GAChCD,EAAgBqB,EAAqB,YAGtCH,EAAwBsC,EAAkBC,mBAAmBC,IAC5D,GAAIvC,IAAe2B,EAClB,OAGD,MAAMa,EAA2BD,EAAY,YAAc,eAC3D1C,EAAI,CAACO,iBAAkBoC,IACvB3D,EAAgBqB,EAAqBsC,KArGxC,SAAsBnB,GACrBxB,EAAI,CAACU,aAAckC,QAAQpB,GAASb,QAASa,GAC9C,CAuGEqB,CAAarB,EACd,EAKA,KAAAsB,GACC,GAAK7C,IAAMS,aAAX,CAYAP,IAEA,IACCD,KACD,CAAE,MAAOjB,GACRC,QAAQD,MAAM,2DAA4DA,EAC3E,CAEA,IACCuD,EAAkBO,YACnB,CAAE,MAAO9D,GACRC,QAAQD,MAAM,gCAAiCA,EAChD,CAEAiB,OAAwBO,EAExBT,EAAI,CACHU,cAAc,EACdC,aAASF,EACTF,iBAAkB,OAClBnB,SAAU,GACVoB,aAASC,EACTxB,WAAOwB,GAzBR,KALgC,SAA3BR,IAAMM,kBACTP,EAAI,CAACO,iBAAkB,OAAQtB,WAAOwB,GA+BzC,EAQA,SAAAuC,CAAyCtD,EAASuD,GACjD,MAAMzB,EAASvB,IAAMU,QACrB,IAAKa,EACJ,MAAM,IAAII,MAAM,gFAGjB,MAAMrB,iBAACA,GAAoBN,IAC3B,GAAyB,cAArBM,EAAkC,CACrC,MAAMU,EAA6B,CAClCC,KAAM,EACNzB,QAAS,4CAA4Cc,iDAItD,MAFAP,EAAI,CAACf,MAAOgC,IACZjC,EAAgBsB,EAAgBW,GAC1B,IAAIW,MAAMX,EAAaxB,QAC9B,CAEA+B,EAAO0B,oBAAoBxD,EAAMuD,EAClC,EAEA,SAAAE,CAAUC,EAAaC,GACtB,MAAM7B,EAASvB,IAAMU,QACrB,IAAKa,EACJ,MAAM,IAAII,MAAM,gFAGjB,MAAMrB,iBAACA,GAAoBN,IAC3B,GAAyB,cAArBM,EAAkC,CACrC,MAAMU,EAA6B,CAClCC,KAAM,EACNzB,QAAS,4CAA4Cc,iDAItD,MAFAP,EAAI,CAACf,MAAOgC,IACZjC,EAAgBsB,EAAgBW,GAC1B,IAAIW,MAAMX,EAAaxB,QAC9B,CAEA+B,EAAO2B,UAAUC,EAAOC,EACzB,EAEAC,oBAAoBC,IACnBnD,EAAkBnC,IAAIsF,GACf,KACNnD,EAAkBlC,OAAOqF,KAI3BC,sBAAsBD,IACrBlD,EAAoBpC,IAAIsF,GACjB,KACNlD,EAAoBnC,OAAOqF,KAI7BE,iBAAiBF,IAChBjD,EAAerC,IAAIsF,GACZ,KACNjD,EAAepC,OAAOqF,QC1S1B,IAAIG,GAAmB,EAMnBC,EAAoB,EAIxB,MAAMC,EAAmB,IAAI3G,aAOb4G,IACfH,GAAmB,CACpB,UAOgBI,IACfH,IACAD,GAAmB,CACpB,UASgBK,IACfJ,IACAK,eAAe,KACd,GAAIL,EAAoB,EACvB,OAGDD,GAAmB,EACnB,MAAMO,EAAY,IAAIL,GACtBA,EAAiBM,QACjB,IAAK,MAAMC,KAAgBF,EAC1BE,EAAa,IAAIvC,MA3DnB,2GA8DD,CAaA,SAASwC,EAAUnF,GAClB,OAAO,IAAI2C,MAAM,uCAAuC3C,GAAOQ,SAAW,kBAC3E,CAYO4E,eAAeC,IACrB,GAAsB,oBAAXxD,OACV,MAAM,IAAIc,MAxFX,kGA2FA,MAAM7E,EAAQgD,EAAmBnC,WACjC,GAAIb,EAAM4D,QACT,OAAO5D,EAAM4D,QAGd,IAAK+C,EACJ,MAAM,IAAI9B,MAvGX,wIA0GA,GAA+B,UAA3B7E,EAAMwD,iBACT,MAAM6D,EAAUrH,EAAMkC,OAGvB,OAAO,IAAIsF,QAAQ,CAACC,EAASC,KAC5B,IAAIC,GAAY,EAKhB,MAAMC,EAAUC,IACXF,IAIJA,GAAY,EACZG,IACAjB,EAAiB1F,OAAO4G,GACxBF,MAGKE,EAAY7F,IACjB0F,EAAO,KACNF,EAAOxF,MAIT2E,EAAiB3F,IAAI6G,GACrB,MAAMD,EAAc9E,EAAmB/B,UAAU+G,IAChD,GAAIA,EAAQpE,QAAS,CACpB,MAAMqE,EAAWD,EAAQpE,QACzBgE,EAAO,KACNH,EAAQQ,IAEV,KAAwC,UAA7BD,EAAQxE,kBAClBoE,EAAO,KACNF,EAAOL,EAAUW,EAAQ9F,aAK9B,CAOA,MAAMgG,EAAe,IAAIhI,IAAI,CAAC,OAAQ,QAAS,UAAW,WAEpDiI,EAAyB,IAAIjI,IAAIK,OAAO6H,oBAAoB7H,OAAO8H,YAEzE,SAASC,EAAsBC,GAC9B,MAA2B,iBAAbA,GAAyBJ,EAAuBK,IAAID,EACnE,CAuCA,MAAME,EAAa,IAAIC,IAoBVC,EAA2B,IAAIC,MAAM,GAAqB,CACtE,GAAA1F,CAAI2F,EAAQN,GACX,GAAID,EAAsBC,GACzB,OAAOO,QAAQ5F,IAAI2F,EAAQN,GAG5B,GAAIL,EAAaM,IAAID,GACpB,OAGD,MAAMQ,EAAOR,EACb,IAAIS,EAAYP,EAAWvF,IAAI6F,GAM/B,YALkBrF,IAAdsF,IACHA,EApEH,SAA+BC,GAC9B,MAAMC,EAAU,IAAIR,IAEpB,OAAO,IAAIE,MAAM,GAAI,CACpB,GAAA1F,CAAI2F,EAAQN,GACX,GAAID,EAAsBC,GACzB,OAAOO,QAAQ5F,IAAI2F,EAAQN,GAG5B,GAAIL,EAAaM,IAAID,GACpB,OAGD,MAAMQ,EAAOR,EACb,IAAIY,EAASD,EAAQhG,IAAI6F,GAgBzB,YAferF,IAAXyF,IACHA,EAAS7B,SAAU8B,KAClB,MACMJ,SADezB,KACwE0B,GACvFI,EAAKL,IAAYD,GACvB,GAAkB,mBAAPM,EACV,MAAM,IAAIC,UAAU,YAAYL,KAAiBF,+CAGlD,OAAOD,QAAQS,MAAMF,EAAIL,EAAWI,IAGrCF,EAAQjG,IAAI8F,EAAMI,IAGZA,CACR,GAEF,CAmCeK,CAAsBT,GAClCN,EAAWxF,IAAI8F,EAAMC,IAGfA,CACR","x_google_ignoreList":[0,1]}