@callimacus/thamyr-react 4.10.1 → 4.11.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,20 @@
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.11.1](https://github.com/callimacus/thamyr-sdk/compare/thamyr-core-v4.11.0...thamyr-core-v4.11.1) (2026-10-27)
7
+
8
+
9
+ ### Miscellaneous Chores
10
+
11
+ * **thamyr-core:** Synchronize thamyr versions
12
+
13
+ ## [4.11.0](https://github.com/callimacus/thamyr-sdk/compare/thamyr-core-v4.10.1...thamyr-core-v4.11.0) (2026-10-27)
14
+
15
+
16
+ ### Miscellaneous Chores
17
+
18
+ * **thamyr-core:** Synchronize thamyr versions
19
+
6
20
  ## [4.10.1](https://github.com/callimacus/thamyr-sdk/compare/thamyr-core-v4.10.0...thamyr-core-v4.10.1) (2026-10-24)
7
21
 
8
22
 
package/CHANGELOG.md CHANGED
@@ -3,6 +3,36 @@
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.11.1](https://github.com/callimacus/thamyr-sdk/compare/thamyr-react-v4.11.0...thamyr-react-v4.11.1) (2026-10-27)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **react:** a server error no longer locks sendEvent (CAL-1551) ([#852](https://github.com/callimacus/thamyr-sdk/issues/852)) ([5848586](https://github.com/callimacus/thamyr-sdk/commit/584858670ebf4c10b5e4aa55faf8ee0ce250c02c))
12
+
13
+
14
+ ### Dependencies
15
+
16
+ * The following workspace dependencies were updated
17
+ * dependencies
18
+ * @callimacus/thamyr bumped from ^4.11.0 to ^4.11.1
19
+ * @callimacus/thamyr-core bumped from ^4.11.0 to ^4.11.1
20
+
21
+ ## [4.11.0](https://github.com/callimacus/thamyr-sdk/compare/thamyr-react-v4.10.1...thamyr-react-v4.11.0) (2026-10-27)
22
+
23
+
24
+ ### Features
25
+
26
+ * **react:** CallimacusBar takes the Callimagic design, with history, voice and images ([#850](https://github.com/callimacus/thamyr-sdk/issues/850)) ([44898ff](https://github.com/callimacus/thamyr-sdk/commit/44898ff8d119069be5ef6cc71aab8bd9b7f851a5))
27
+
28
+
29
+ ### Dependencies
30
+
31
+ * The following workspace dependencies were updated
32
+ * dependencies
33
+ * @callimacus/thamyr bumped from ^4.10.1 to ^4.11.0
34
+ * @callimacus/thamyr-core bumped from ^4.10.1 to ^4.11.0
35
+
6
36
  ## [4.10.1](https://github.com/callimacus/thamyr-sdk/compare/thamyr-react-v4.10.0...thamyr-react-v4.10.1) (2026-10-24)
7
37
 
8
38
 
@@ -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}),d(l,e))}),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-CVQBsmzY.js.map
@@ -1 +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]}
1
+ {"version":3,"file":"api-CVQBsmzY.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-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};
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};
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":";;;;;;;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"}
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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"}
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-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};
8
+ import{queryOptions as t}from"@tanstack/react-query";import{t as r}from"./chunks/api-CVQBsmzY.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
@@ -1896,7 +1896,8 @@ Returns the current connection status of the Thamyr SDK.
1896
1896
 
1897
1897
  Starts at `idle`. Moves to `connecting` on init, then to `connected` — or straight
1898
1898
  to `disconnected` if the connection attempt fails. Can transition to `disconnected`
1899
- from `connected`, or to `error` from any active state.
1899
+ from `connected`. `error` means init itself failed (missing clientId, constructor
1900
+ threw); errors on a live connection reach `useOnError` and leave the status as is.
1900
1901
  After `reset()`: returns to `idle`.
1901
1902
 
1902
1903
  @returns An object with `status` — one of `'idle'`, `'connecting'`, `'connected'`, `'disconnected'`, or `'error'`.
@@ -2320,51 +2321,148 @@ stream URL.
2320
2321
  */
2321
2322
  declare function useTtsAudio(audio: TtsAudio | undefined): UseTtsAudioReturn;
2322
2323
 
2324
+ type CallimacusBarAppearance = 'solid' | 'glass';
2325
+ type CallimacusBarColorScheme = 'light' | 'dark' | 'auto';
2326
+ type CallimacusBarLabels = {
2327
+ /**
2328
+ Accessible name of the send button. Defaults to `Send`.
2329
+ */
2330
+ readonly send: string;
2331
+ /**
2332
+ Accessible name of the button that empties the field. Defaults to `Clear prompt`.
2333
+ */
2334
+ readonly clear: string;
2335
+ /**
2336
+ Accessible name of the group of suggested prompts. Defaults to `Suggestions`.
2337
+ */
2338
+ readonly suggestions: string;
2339
+ /**
2340
+ Accessible name of the history button and list. Defaults to `History`.
2341
+ */
2342
+ readonly history: string;
2343
+ /**
2344
+ Shown in the history before there is anything in it. Defaults to `No earlier prompts yet`.
2345
+ */
2346
+ readonly historyEmpty: string;
2347
+ /**
2348
+ Accessible name of the microphone. Defaults to `Talk`.
2349
+ */
2350
+ readonly startVoice: string;
2351
+ /**
2352
+ Accessible name of the microphone while it records. Defaults to `Stop listening`.
2353
+ */
2354
+ readonly stopVoice: string;
2355
+ /**
2356
+ Accessible name of the button that adds images. Defaults to `Add images`.
2357
+ */
2358
+ readonly addImages: string;
2359
+ /**
2360
+ Accessible name of an image's remove button, followed by the file name. Defaults to `Remove`.
2361
+ */
2362
+ readonly removeImage: string;
2363
+ };
2323
2364
  type CallimacusBarProps = {
2324
2365
  /**
2325
- Called with the trimmed prompt; the bar then clears itself.
2366
+ Called with the trimmed prompt and the images added with `acceptImages`; the bar then clears itself.
2326
2367
  */
2327
- readonly onSubmit: (prompt: string) => void;
2368
+ readonly onSubmit: (prompt: string, images: readonly File[]) => void;
2328
2369
  /**
2329
2370
  Makes the text controlled. Omit it to let the bar manage the text itself.
2330
2371
  */
2331
2372
  readonly value?: string;
2332
2373
  readonly onValueChange?: (value: string) => void;
2374
+ /**
2375
+ Defaults to `Ask about anything`.
2376
+ */
2333
2377
  readonly placeholder?: string;
2334
2378
  /**
2335
- Accessible name of the send button. Defaults to `Send`.
2379
+ `solid` is an opaque surface; `glass` lets the page show through, blurred. Defaults to `solid`.
2336
2380
  */
2337
- readonly sendLabel?: string;
2381
+ readonly appearance?: CallimacusBarAppearance;
2382
+ /**
2383
+ `auto` follows the host page's `color-scheme`. Defaults to `auto`.
2384
+ */
2385
+ readonly colorScheme?: CallimacusBarColorScheme;
2386
+ /**
2387
+ Corner radius in pixels, or `pill` for round ends. The send button and the suggestions take half of it.
2388
+ A pill turns into 24px corners once the prompt wraps, and the bar with tools stops at 16px.
2389
+ Defaults to `pill`. Same as the `--cm-radius` variable.
2390
+ */
2391
+ readonly radius?: 'pill' | number;
2392
+ /**
2393
+ A ring of light that travels round the bar: `true` for the Callimacus colours, or a list of the brand's own.
2394
+ It also shows while `loading`.
2395
+ */
2396
+ readonly glow?: boolean | readonly string[];
2397
+ /**
2398
+ Prompts offered above the bar; picking one fills the field. Pass what `useSuggestions` returns.
2399
+ */
2400
+ readonly suggestions?: readonly string[];
2401
+ /**
2402
+ Defaults to `center` over the compact bar and `start` over the bar with tools.
2403
+ */
2404
+ readonly suggestionsAlign?: 'start' | 'center';
2405
+ /**
2406
+ Earlier prompts, listed from a history button under the field; picking one fills the field.
2407
+ `[]` shows the button with nothing in it yet.
2408
+ */
2409
+ readonly history?: readonly string[];
2410
+ /**
2411
+ Shows a microphone under the field. The bar records until the visitor stops talking, then hands over
2412
+ the recording: pass `sendAudio` from `useThamyr`.
2413
+ */
2414
+ readonly onVoice?: (audio: Blob) => void;
2415
+ /**
2416
+ Shows a button under the field that adds images; they reach `onSubmit` as its second argument.
2417
+ Callimacus doesn't take images yet, so the host handles them.
2418
+ */
2419
+ readonly acceptImages?: boolean;
2420
+ /**
2421
+ The "Powered by Callimacus" line under the bar, in the page's text colour (or `--cm-powered-by-color`).
2422
+ Defaults to `true`. The bar with tools has no mark, so there the line always shows.
2423
+ */
2424
+ readonly poweredBy?: boolean;
2425
+ /**
2426
+ Accessible names and copy, for pages in another language.
2427
+ */
2428
+ readonly labels?: Partial<CallimacusBarLabels>;
2338
2429
  /**
2339
2430
  Replaces the arrow inside the send button.
2340
2431
  */
2341
2432
  readonly sendIcon?: ReactNode;
2342
2433
  /**
2343
- Extra controls (microphone, attachments…) rendered just before the send button.
2434
+ Extra controls: before the send button on the compact bar, after the other tools on the bar with tools.
2344
2435
  */
2345
2436
  readonly actions?: ReactNode;
2346
2437
  /**
2347
- Any CSS color or gradient. Defaults to the Callimacus gradient. Same as the `--cm-tint` variable.
2348
- */
2349
- readonly tint?: string;
2350
- /**
2351
2438
  CSS font-family. Defaults to the host page's font. Same as the `--cm-font` variable.
2352
2439
  */
2353
2440
  readonly font?: string;
2354
2441
  /**
2355
- Animates the glow and blocks submitting, e.g. while a reply streams. Typing stays allowed.
2442
+ Speeds up the glow and blocks sending, e.g. while a reply streams. Typing stays allowed.
2356
2443
  */
2357
2444
  readonly loading?: boolean;
2358
2445
  readonly disabled?: boolean;
2359
2446
  readonly autoFocus?: boolean;
2360
2447
  readonly className?: string;
2361
2448
  readonly style?: CSSProperties;
2449
+ /**
2450
+ @deprecated Use `labels.send`.
2451
+ */
2452
+ readonly sendLabel?: string;
2453
+ /**
2454
+ @deprecated Use `glow`. Any CSS color or gradient: shows the glow, painted with it. Same as the `--cm-tint` variable.
2455
+ */
2456
+ readonly tint?: string;
2362
2457
  };
2363
2458
  /**
2364
- A prompt input that always carries the Callimacus mark. Everything else is customizable through props,
2459
+ A prompt input that always carries the Callimacus brand. Everything else is customizable through props,
2365
2460
  `--cm-*` CSS variables and the `cm-bar*` class names; the mark can be recolored and resized but not removed.
2461
+
2462
+ History, the microphone and images add a row of tools under the field. That bar follows the Figma's own
2463
+ layout: no mark, and "Powered by Callimacus" in the tools row instead, where it can't be turned off.
2366
2464
  */
2367
- declare function CallimacusBar({ onSubmit, value: controlledValue, onValueChange, placeholder, sendLabel, sendIcon, actions, tint, font, loading, disabled, autoFocus, className, style, }: CallimacusBarProps): react.JSX.Element;
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;
2368
2466
 
2369
2467
  /**
2370
2468
  The Callimacus constellation mark. Inherits `currentColor`.
@@ -2372,4 +2470,4 @@ The Callimacus constellation mark. Inherits `currentColor`.
2372
2470
  declare function CallimacusMark(props: SVGProps<SVGSVGElement>): react.JSX.Element;
2373
2471
 
2374
2472
  export { CallimacusBar, CallimacusMark, thamyrApi, useActions, useApi, useCallimacusStore, useCart, useConnection, useInitThamyr, useMapPage, useOnConnectionChange, useOnError, useOnResponse, useSitemap, useSkesis, useSubmission, useSuggestions, useThamyr, useTtsAudio, useVoiceRecorder };
2375
- export type { ActionResult, Actions, CallimacusBarProps, CallimacusInitConfig, CartActions, ConnectionStatus, MapPageState, RunOptions, SitemapActions, SkesisActions, Submission, SuggestionsOptions, SuggestionsState, TtsAudioState, UseTtsAudioReturn, UseVoiceRecorderOptions, UseVoiceRecorderReturn, VoiceRecorderState };
2473
+ export type { ActionResult, Actions, CallimacusBarAppearance, CallimacusBarColorScheme, CallimacusBarLabels, CallimacusBarProps, CallimacusInitConfig, CartActions, ConnectionStatus, MapPageState, RunOptions, SitemapActions, SkesisActions, Submission, SuggestionsOptions, SuggestionsState, TtsAudioState, UseTtsAudioReturn, UseVoiceRecorderOptions, UseVoiceRecorderReturn, VoiceRecorderState };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@callimacus/thamyr-react",
3
- "version": "4.10.1",
3
+ "version": "4.11.1",
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.10.1",
44
- "@callimacus/thamyr-core": "^4.10.1",
43
+ "@callimacus/thamyr": "^4.11.1",
44
+ "@callimacus/thamyr-core": "^4.11.1",
45
45
  "zustand": "^5.0.16"
46
46
  },
47
47
  "peerDependencies": {
@@ -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]),()=>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