@callimacus/thamyr-react 4.12.0 → 4.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.core.md +7 -0
- package/CHANGELOG.md +15 -0
- package/dist/esm/chunks/api-BDSbXlo-.js +9 -0
- package/dist/esm/chunks/api-BDSbXlo-.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/query.js +1 -1
- package/dist/types/index.d.ts +112 -9
- package/package.json +3 -3
- package/dist/esm/chunks/api-CVQBsmzY.js +0 -9
- package/dist/esm/chunks/api-CVQBsmzY.js.map +0 -1
package/CHANGELOG.core.md
CHANGED
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [4.13.0](https://github.com/callimacus/thamyr-sdk/compare/thamyr-core-v4.12.0...thamyr-core-v4.13.0) (2026-10-27)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **shopify:** thamyr-shopify, the Callimacus storefront as a Shopify app embed, and a Shopify cart in the SDK ([#821](https://github.com/callimacus/thamyr-sdk/issues/821)) ([2a9876b](https://github.com/callimacus/thamyr-sdk/commit/2a9876b7cafa27cc9e1540765335039d7e9ed645))
|
|
12
|
+
|
|
6
13
|
## [4.12.0](https://github.com/callimacus/thamyr-sdk/compare/thamyr-core-v4.11.1...thamyr-core-v4.12.0) (2026-10-27)
|
|
7
14
|
|
|
8
15
|
|
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,21 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [4.13.0](https://github.com/callimacus/thamyr-sdk/compare/thamyr-react-v4.12.0...thamyr-react-v4.13.0) (2026-10-27)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **shopify:** thamyr-shopify, the Callimacus storefront as a Shopify app embed, and a Shopify cart in the SDK ([#821](https://github.com/callimacus/thamyr-sdk/issues/821)) ([2a9876b](https://github.com/callimacus/thamyr-sdk/commit/2a9876b7cafa27cc9e1540765335039d7e9ed645))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Dependencies
|
|
15
|
+
|
|
16
|
+
* The following workspace dependencies were updated
|
|
17
|
+
* dependencies
|
|
18
|
+
* @callimacus/thamyr bumped from ^4.12.0 to ^4.13.0
|
|
19
|
+
* @callimacus/thamyr-core bumped from ^4.12.0 to ^4.13.0
|
|
20
|
+
|
|
6
21
|
## [4.12.0](https://github.com/callimacus/thamyr-sdk/compare/thamyr-react-v4.11.1...thamyr-react-v4.12.0) (2026-10-27)
|
|
7
22
|
|
|
8
23
|
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright © 2025–2026 Solomei AI SRL. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Proprietary software, licensed for use by Callimacus customers only.
|
|
5
|
+
* See LICENSE.md for the full terms.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
import{Thamyr as e}from"@callimacus/thamyr";import{UserInteractionType as t,callimacusService as n,ThamyrResponseType as r,applyBlockPatch as o}from"@callimacus/thamyr-core";import s from"react";const i=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},a=e=>e;const c=e=>{const t=(e=>e?i(e):i)(e),n=e=>function(e,t=a){const n=s.useSyncExternalStore(e.subscribe,s.useCallback(()=>t(e.getState()),[e,t]),()=>t(e.getInitialState()));return s.useDebugValue(n),n}(t,e);return Object.assign(n,t),n},d=e=>e?c(e):c;function u(e,t){for(const n of e)try{n(t)}catch(e){console.error("[Thamyr] Listener threw:",e)}}function l(e,t){let n=!1;const s=e.map(e=>{if(e.type!==r.CHAPTER_EVENT)return e;const s=o(e.chapter,t);return s===e.chapter?e:(n=!0,{...e,chapter:s})});return n?s:e}const m=d()((o,s)=>{let i,a=0;const c=new Set,d=new Set,m=new Set,y=e=>({...e,shopifyCart:!0});return{connectionStatus:"idle",messages:[],storyId:void 0,error:void 0,_initialized:!1,_thamyr:void 0,_shopify:void 0,cartNotices:[],init(t){if(s()._initialized)return;if("undefined"==typeof window)return void console.debug("[Thamyr] init() skipped: no browser environment detected (SSR).");const{clientId:y}=t;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 o({connectionStatus:"error",error:e}),u(m,e),void u(d,"error")}void 0!==t.maxMessages&&t.maxMessages<0&&console.warn("[Thamyr] maxMessages must be >= 0. Received:",t.maxMessages,". Clamping to 1.");const h=0===t.maxMessages?1/0:Math.max(1,t.maxMessages??50);let f;o({connectionStatus:"connecting",error:void 0});try{f=new e({clientId:y,endpoint:t.endpoint,uiObserver:t.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 o({connectionStatus:"error",error:t}),u(m,t),void u(d,"error")}const w=++a;f.onResponse(e=>{a===w&&(e.type===r.BLOCK_PATCH?o(t=>({messages:l(t.messages,e.data)})):e.type!==r.CART_COMMAND&&o(t=>{const n=[...t.messages,e];return{messages:n.length>h?n.slice(-h):n,...e.type===r.STORY_CREATED&&{storyId:e.story.id}}}),u(c,e))}),f.onError(e=>{a===w&&(o({error:e}),u(m,e))}),i=n.onConnectionStatus(e=>{if(a!==w)return;const t=e?"connected":"disconnected";o({connectionStatus:t}),u(d,t)}),function(e,t){o({_initialized:Boolean(e),_thamyr:e,_shopify:t})}(f,t.shopify)},reset(){if(s()._initialized){a++;try{i?.()}catch(e){console.error("[Thamyr] Error unsubscribing connection status listener:",e)}try{n.disconnect()}catch(e){console.error("[Thamyr] Error disconnecting:",e)}i=void 0,o({_initialized:!1,_thamyr:void 0,_shopify:void 0,cartNotices:[],connectionStatus:"idle",messages:[],storyId:void 0,error:void 0})}else"idle"!==s().connectionStatus&&o({connectionStatus:"idle",error:void 0})},sendEvent(e,n){const r=s()._thamyr;if(!r)throw new Error("[Thamyr] SDK is not initialized yet. Ensure useInitThamyr() has been called.");const{connectionStatus:i}=s();if("connected"!==i){const e={code:0,message:`Cannot send event: connection status is "${i}". Wait for connected status before sending.`};throw o({error:e}),u(m,e),new Error(e.message)}const a=e===t.CREATE_ROUND&&void 0!==s()._shopify?{...n,context:y(n.context)}:n;r.sendUserInteraction(e,a)},sendAudio(e,t){const n=s()._thamyr;if(!n)throw new Error("[Thamyr] SDK is not initialized yet. Ensure useInitThamyr() has been called.");const{connectionStatus:r}=s();if("connected"!==r){const e={code:0,message:`Cannot send audio: connection status is "${r}". Wait for connected status before sending.`};throw o({error:e}),u(m,e),new Error(e.message)}n.sendAudio(e,t,void 0===s()._shopify?void 0:y())},addResponseListener:e=>(c.add(e),()=>{c.delete(e)}),addConnectionListener:e=>(d.add(e),()=>{d.delete(e)}),addErrorListener:e=>(m.add(e),()=>{m.delete(e)}),_addCartNotice(e){o(t=>({cartNotices:[...t.cartNotices,e].slice(-20)}))}}});let y=!1,h=0;const f=new Set;function w(){y=!0}function g(){h++,y=!0}function p(){h--,queueMicrotask(()=>{if(h>0)return;y=!1;const e=[...f];f.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 T(){if("undefined"==typeof window)throw new Error("[Thamyr] The generated API is browser-only; this call ran without a browser environment (SSR).");const e=m.getState();if(e._thamyr)return e._thamyr;if(!y)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(),f.delete(o),e())},o=e=>{r(()=>{t(e)})};f.add(o);const s=m.subscribe(n=>{if(n._thamyr){const t=n._thamyr;r(()=>{e(t)})}else"error"===n.connectionStatus&&r(()=>{t(S(n.error))})})})}const b=new Set(["then","catch","finally","toJSON"]),v=new Set(Object.getOwnPropertyNames(Object.prototype));function E(e){return"string"!=typeof e||v.has(e)}const _=new Map,I=new Proxy({},{get(e,t){if(E(t))return Reflect.get(e,t);if(b.has(t))return;const n=t;let r=_.get(n);return void 0===r&&(r=function(e){const t=new Map;return new Proxy({},{get(n,r){if(E(r))return Reflect.get(n,r);if(b.has(r))return;const o=r;let s=t.get(o);return void 0===s&&(s=async(...t)=>{const n=(await T())[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),_.set(n,r)),r}});export{w as a,g as b,d as c,p as m,I as t,m as u,T as w};
|
|
9
|
+
//# sourceMappingURL=api-BDSbXlo-.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-BDSbXlo-.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","withShopifyCart","context","shopifyCart","connectionStatus","storyId","undefined","_initialized","_thamyr","_shopify","cartNotices","init","config","window","debug","clientId","errorMessage","code","maxMessages","warn","Infinity","Math","max","thamyr","Thamyr","endpoint","uiObserver","Error","String","currentGen","onResponse","response","BLOCK_PATCH","data","CART_COMMAND","length","STORY_CREATED","story","id","onError","callimacusService","onConnectionStatus","connected","status","shopify","Boolean","setInitState","reset","disconnect","sendEvent","payload","declared","UserInteractionType","CREATE_ROUND","sendUserInteraction","sendAudio","audio","query","addResponseListener","cb","addConnectionListener","addErrorListener","_addCartNotice","notice","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 n,interactionRound as t,landingRound as e,parseMapPath as r,resolveMapPage as a,randomUuid as o,deliverResultOf as i}from"@callimacus/thamyr-core";export{ACTION_TYPES,ADD_TO_CART_RESULT_BLOCK,CallimacusEvent,ChapterStatus,ClientEvents,DELIVER_RESULT_BLOCK,GalleryMode,LANDING_VALUE_MAX_LENGTH,SLInputEventType,ServerEvents,ThamyrHttpError,ThamyrResponseType,UserInteractionType,actionOf,addToCartResultOf,applyBlockPatch,blockKeyOf,callimacusService,clearIntentSessionId,deliverResultOf,ensureIntentSessionId,extractTtsAudio,fieldsOf,getIntentSessionId,initIntent,interactionRound,isSetProduct,landingRound,logger,parseMapPath,receptorsOf,resolveMapPage,setConsent,setDebug,setDebugPanel,setGeo,setIntentSessionMaxAge,transformImageUrl}from"@callimacus/thamyr-core";import{jsx as l,jsxs as c,Fragment as s}from"react/jsx-runtime";import{useMemo as d,useEffect as u,useState as m,useRef as p,useCallback as b,useId as g}from"react";import{t as h,w as f,u as v,m as y,a as x,b as k,c as w}from"./chunks/api-CVQBsmzY.js";import"@callimacus/thamyr";function q(n,t){const e=p(t);e.current=t,u(()=>n(n=>{e.current(n)}),[n])}function _(n){const t=v(n=>n.init),e=v(n=>n.reset);x(),u(()=>(k(),t(n),()=>{e(),y()}),[t,e,n.clientId,n.endpoint])}function L(){const r=v(n=>n.messages),a=v(n=>n.sendEvent),o=v(n=>n.sendAudio),i=d(()=>({openLanding(t,r={}){a(n.CREATE_ROUND,e(t,r))},sendInteraction(e,r={}){a(n.CREATE_ROUND,t(e,r))},refresh(e,r,o={}){a(n.CREATE_ROUND,t(r,{...o,block:e}))}}),[a]);return{history:r,sendEvent:a,sendAudio:o,...i}}const C={suggestions:[],loading:!1};function E(n,t={}){const{storyId:e,language:r,debounceMs:a=200}=t,o=v(n=>"connected"===n.connectionStatus),[i,l]=m(C),[c,s]=m(o);return c!==o&&(s(o),o||l(C)),u(()=>{if(!o)return;let t=!1;const i=setTimeout(()=>{l(n=>({...n,loading:!0}));(v.getState()._thamyr?.suggest(n,{storyId:e,language:r})??Promise.resolve(C)).then(({suggestions:n})=>{t||l({suggestions:n,loading:!1})}).catch(()=>{t||l(C)})},""===n?0:a);return()=>{t=!0,clearTimeout(i)}},[n,e,r,a,o]),o?i:C}function I(){return{status:v(n=>n.connectionStatus)}}function S(n){q(v(n=>n.addResponseListener),n)}function T(n){q(v(n=>n.addConnectionListener),n)}function z(n){q(v(n=>n.addErrorListener),n)}function R(){return d(()=>({getCart:async()=>(await f()).cart.getCart(),addItem:async n=>(await f()).cart.addItemToCart({productId:n}),removeItem:async n=>(await f()).cart.removeItemFromCart({productId:n}),updateQuantity:async(n,t)=>(await f()).cart.updateProductQuantity({productId:n,quantity:t})}),[])}function N(){return h}function M(){return d(()=>({similar:async(n,t)=>(await f()).skesis.similar({anchorId:n,...t}),related:async(n,t)=>(await f()).skesis.related({anchorId:n,...t})}),[])}function A(){return d(()=>({getSitemap:async()=>(await f()).sitemap.getSitemap()}),[])}function O(n){const[t,e]=m(),o=void 0!==r(n);u(()=>{if(!o)return;let t=!1;return a(h,n).then(r=>{t||e({pathname:n,page:r})}).catch(r=>{t||e({pathname:n,error:r instanceof Error?r:new Error(String(r))})}),()=>{t=!0}},[n,o]);const i=o&&t?.pathname===n?t:void 0;return{page:i?.page,loading:o&&void 0===i,error:i?.error}}const D=n=>({ok:!1,error:n});const V={state:"idle"},U=w(()=>({})),H=new Map;function j(){const e=v(n=>"connected"===n.connectionStatus),r=v(n=>n.storyId),a=v(n=>n.sendEvent),l=v(n=>n.addResponseListener),c=b(async(e,c={})=>{const s=c.storyId??r,d=t=>{try{return a(n.CREATE_ROUND,{...t,...void 0!==s&&{storyId:s}}),{ok:!0}}catch(n){return D(n)}};switch(e.type){case"link":return void 0===globalThis.location?D(new Error("[thamyr] a link action needs a browser")):(e.newTab?globalThis.open(e.url,"_blank","noopener"):globalThis.location.assign(e.url),{ok:!0});case"ask":return d({inputEvent:{type:"question",data:{value:e.value}}});case"interact":return d(t(e.id,{value:e.value,payload:e.payload,block:e.block}));case"cart":return async function(n){try{const{error:t}=await n;return void 0===t?{ok:!0}:D(t)}catch(n){return D(n)}}(f().then(async n=>n.cart.addItemToCart({productId:e.productId})));case"submit":{const n=o();H.set(e.form,n),U.setState({[e.form]:{state:"sending"}});const r=d({...t(e.form,{payload:c.fields??{},submissionId:n}),...void 0!==globalThis.document&&{context:{title:(u=globalThis.document.title,u.replaceAll(/\p{Control}/gv,"").slice(0,500).replace(/\p{Surrogate}$/v,""))}}}),a=r.ok?await async function(n,t){return new Promise(e=>{let r=()=>{};const a=setTimeout(()=>{r(),e(D("timeout"))},3e4);r=t(t=>{if("chapter-event"!==t.type||"customInteraction"!==t.chapter.inputEvent?.type||t.chapter.inputEvent.data.submissionId!==n)return;const o=(t.chapter.blocks??[]).map(n=>i(n)).find(t=>t?.submissionId===n);void 0!==o&&(clearTimeout(a),r(),e({ok:!0,result:o}))})})}(n,l):r;return H.get(e.form)===n&&U.setState({[e.form]:a.ok?{state:"done",result:a.result}:V}),a}}var u},[a,r,l]);return d(()=>({run:c,ready:e,storyId:r}),[c,e,r])}function P(n){return U(t=>t[n]??V)}const B=-45,F=1800,K=3e4;function $({silenceThreshold:n=B,silenceDuration:t=F,maxDuration:e=K,onRecordingComplete:r}){const[a,o]=m("idle"),[i,l]=m([]),[c,s]=m(void 0),d=p(void 0),g=p(void 0),h=p(void 0),f=p(void 0),v=p(0),y=p(0),x=p(void 0),k=p([]),w=p(!1),q=b(()=>{if(0!==v.current&&(cancelAnimationFrame(v.current),v.current=0),void 0!==x.current&&(clearTimeout(x.current),x.current=void 0),f.current){for(const n of f.current.getTracks())n.stop();f.current=void 0}"closed"!==g.current?.state&&g.current?.close(),g.current=void 0,h.current=void 0,d.current=void 0,w.current=!1},[]);u(()=>q,[q]);const _=b(()=>{w.current||(w.current=!0,"recording"===d.current?.state&&d.current.stop(),0!==v.current&&(cancelAnimationFrame(v.current),v.current=0),void 0!==x.current&&(clearTimeout(x.current),x.current=void 0))},[]),L=b(async()=>{s(void 0),k.current=[],w.current=!1;try{const a=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0,sampleRate:16e3}});f.current=a;const i=new AudioContext({sampleRate:16e3});g.current=i;const c=i.createMediaStreamSource(a),s=i.createAnalyser();s.fftSize=256,s.smoothingTimeConstant=.7,c.connect(s),h.current=s;const u=MediaRecorder.isTypeSupported("audio/webm;codecs=opus")?"audio/webm;codecs=opus":"audio/webm",m=new MediaRecorder(a,{mimeType:u});d.current=m,m.addEventListener("dataavailable",n=>{n.data.size>0&&k.current.push(n.data)}),m.addEventListener("stop",()=>{o("processing");const n=new Blob(k.current,{type:u});q(),r(n)}),m.start(250),o("recording"),y.current=0,x.current=setTimeout(()=>{_()},e);const p=()=>{if(!h.current||w.current)return;const e=h.current.frequencyBinCount,r=new Uint8Array(e);h.current.getByteFrequencyData(r);const a=Math.floor(e/32),o=[];for(let n=0;n<32;n++){let t=0;for(let e=0;e<a;e++)t+=r[n*a+e];o.push(t/a/255)}l(o);let i=0;for(const n of r){const t=n/255;i+=t*t}const c=Math.sqrt(i/e);if((c>0?20*Math.log10(c):-100)<n){if(0===y.current)y.current=Date.now();else if(Date.now()-y.current>t)return void _()}else y.current=0;v.current=requestAnimationFrame(p)};p()}catch{s("Microphone access denied"),o("idle"),q()}},[n,t,e,r,_,q]),C=b(()=>{o("idle"),l([])},[]);return{state:a,audioLevels:i,startRecording:L,stopRecording:_,reset:C,error:c}}function G(n){const t=p(void 0),[e,r]=m("idle"),[a,o]=m(void 0);u(()=>{const e=n?.audioUrl;if("undefined"==typeof Audio||void 0===e||""===e)return t.current=void 0,void r("idle");const a=new Audio(e);a.preload="none",t.current=a,r("idle"),o(void 0);const i=()=>{r("playing")},l=()=>{r("loading")},c=()=>{r(n=>"ended"===n?n:"paused")},s=()=>{r("ended")},d=()=>{o("Audio playback failed"),r("error")};return a.addEventListener("playing",i),a.addEventListener("waiting",l),a.addEventListener("pause",c),a.addEventListener("ended",s),a.addEventListener("error",d),()=>{a.pause(),a.removeEventListener("playing",i),a.removeEventListener("waiting",l),a.removeEventListener("pause",c),a.removeEventListener("ended",s),a.removeEventListener("error",d),a.src="",t.current=void 0}},[n?.audioUrl]);const i=b(async()=>{const n=t.current;if(n)try{o(void 0),r("loading"),await n.play()}catch{o("Audio playback failed"),r("error")}},[]),l=b(()=>{t.current?.pause()},[]),c=b(()=>{const n=t.current;n&&(n.pause(),n.currentTime=0,r("idle"))},[]),s=b(()=>{const n=t.current;n&&(n.paused?i():n.pause())},[i]);return{state:e,isPlaying:"playing"===e||"loading"===e,error:a,play:i,pause:l,toggle:s,stop:c}}function Q(n){return l("svg",{viewBox:"0 0 40 45",fill:"currentColor",role:"img","aria-label":"Callimacus",...n,children:l("path",{d:"M39.2 21.6q.8-.6.8-1 0-.2-.3-.2h-1.3l-.5.1h-.3c-.3-.2-.6-1-.9-1.5l-.5-1q-.2-.2-.4-.2t-.3.2l-.2 1.2-.4 1.5h-.1l-.3-.3-.4-.3q-1.5-1.9-2.7-3.8Q27.7 11 23.3 6l-.9-1.1q.1-.4.7-1l.5-.5v-.5l-.4-.1-1 .1h-.4q-.7-.1-.9-1.3-.2-1-.6-1.4L20 0q-.5.4-.6 1.3-.2.8-.5 1-.5.3-1.7.2l-1 .1v.7q0 .3.6.5c.4.2 1 .5 1 .8q-.2.4-1 .8l-.3.3-1.1 1-1 1L13 8.9c-1.9 1.7-4 3.5-5.4 5.7l-2.3.8q-.6-.2-.8-.9h-.4q-.2 0-.1 1v.6l-.1.2v.7L1 18.1v.3l.3.2 2.7.2.5 2.3-.4 2.8-.5 4.2v.3l.1.3-.1.3-.2.3-.1.3c0 .3-.3 1-.4 1H0v.2q0 .3.2.4l.9.5q1 .3 1.3.9l-.2 1-.2.3q-.5.8-.4 1l.1.2q.7-.1 1.6-1l1.2-.8 1.7 2H7v-.1L6.5 33h.1l8.3 4.7.8.5 1.3.7q1 .5 2 1.3h.1H18l-.8.2-.1.2.2.4h.1l.4.5.3.4.5.3.7.4v.2q-.7 1-.6 2v.2h.2c.3 0 1.2-.8 1.4-1l.3-.4q.3-.5.6-.6.6.2 1.4.9l1 .6h.4V44l-.4-1-.3-.8.7-.4.3-.2 1-.7v-.6l-.3-.1h-2V40l.6-1 .5-.7 6-8.1 1-1.5c1.2-1.7 2.6-4 3.1-4.2v1l.2.1h.1l.8-.7c.5-.4 1.2-1 1.4-1l.6.3 1.3 1q.3.5.6.5l.2-.1c.1 0 0-.4-.6-2.2l-.4-1 .5-.6zM17.7 3.7l-.4-.3q-.3 0-.4-.3h1q1 0 1.4-.2l.5-1.2.3-.7V.9l.3.9q.3 1 .6 1.4.1.3.7.2h1L21.4 5l.3 2-.1-.1-.9-1-.2-.2-.1-.2q-.1-.4-.5-.4h-.3v.2c-.3.5-1.2 1.3-1.4 1.5q0-.6.4-1.4v-.1q.4-.3 0-.8zM8 15.5l.4-.8.3-.7c.9-1.4 3.1-3.4 4.7-4.8l4-3.5.4-.3-.6 2.3.3.1c.5 0 1.1-.7 1.6-1.2L20 6l.7.8q.5.7 1.1 1l.5.2q.1 0 .2-.2.2-.3-.1-1.5l-.2-.8a42 42 0 0 1 6.3 8l1.8 2.2 3 4 .4 1-1.4-.1q-1.2 0-2.5-.2-3.1-.5-6.7-.7l-3.4-.6.9-12.5h-.3l-.4.1v1.4l-.3 3.7-.3 3.3V18q-.3.5-.3 1.1l-4.7-.7-1-.2-2-.4h-1l-1 .1q-.9 0-1.6-.4l-.5-.5.4-.5zm13.1 11.9h-1l-.3-.1-.4-.2h-.2q-.5 0-1 .4l-.7.4-.1-.1q0-.3.2-.8l.1-1q-.2-.4-1.1-.4l-1-.2v-.1l.6-.2q.6 0 1-.4l.2-1.1.2-.9 1.2 1.5q.7-.1 1.2-.5l1.2-.5-.5 1.6-.3.5-.4.9q.1.3.5.4l.4.2zM14 18.9l2.1.3 2.7.5q.2.9 0 1.8l-.1 1.4-.9-1.2-.2-.3h-.2q-.4 0-.3.6v.3l-.4 1.5-2-1q-1.5-.6-2.7-1.3l-1.3-.9-1-.7-.7-.4-1.2-.7h1.2l.3-.3q.6-.2 1.3-.2 1.2 0 2.4.4zm-5.5 1 1.6 1 1.3 1 2.3 1.2 2.5 1.3-.4.2h-.2l-.2.2q-.5 0-1 .4-.1 0-.2.2 0 .3.2.3l1 .2.8.2a25 25 0 0 1-4 2h-.2l-1-1.6q-.7-.7-1.2-1.6c-1.1-1.7-2.6-4-3.5-5.8v-.2zm10.8 3.6v-2.2zm1.7 2.1.4-1q.7-1.3.6-1.7t-.4-.4l-2.3.9.2-3.6h.8l1.4.2.9.2q1.5.3 3 .2l2.3.2.8.2.6.2 1 .1a6 6 0 0 1 2.7.8l1 .5-3.8 1.3zM4.5 18.1H2.8l2-.9V17l-.2-.3v-1q.3 0 .2.4l.2.1 1.2-.4 1.4-.5L6.3 17q.5.7 1 .9l.5.2-1 .2-.5-.2-.6-.1-.5.1v.6q.3.2.2.3L5 20.3l-.1-.9zm.6 3.9q.3-.1.4-.4l.2-.9.2-1.2 5.7 9h-.3l-1.7.8q-1.4.9-2.2 1l-.4.1H5.6l-.1-.2L5 29v-.6l-.2-.6-.2-.2h-.1c-.1-.3.4-4.8.6-5.6M5.6 32q0 .6.3 1.1l.3 1L5 32.9l-.4-.3q-.3 0-.4.3l-.2.1q-.7.5-1.3.9l.5-1.8-.2-.1q-.7-.2-1.2-.7H2l.6.1.5.2.2-.1.5-1 .5-1.4.5 1.1.3 1h.3l.3-.1.1-.1L7 31v.2zm1 .1 1-.5.8-.5q.3-.2.2-.4v-.1l-.2-.1 2.7-1.4.9-.2 6.8 10.2zm6-3.5 4.2-2h.3l-.3 1-.3 1q0 0 .2.3l.3.1h.2l.2-.3.4-.3.6-.3.6-.2.4 1.7v1.8l-.1 1.3v2q.2 2.1 0 4v.1zM23 40.8h1l-.3.4-.5.2-.4.3h-.2l-.5.4v.1q.5.3.6.8l.2.3q-.3-.1-.8-.5l-1-.5H21L19.3 44q.1-.6.4-1h.2l.2-.3v-.5q-.3-.2-.5-.2h-.3c-.3-.2-1-.7-1.1-1h1.1l.6.1.5-.1.8-2.3.2.8q.1 1 .5 1.3H23m-3.2.2h.1m14.3-17.3-8.6 11.6-1 1.5-2.1 2.8-.3.2-.3-1.2q-.1-1.2-.4-1.3l-.2-.1H21l-1 2.4v-5.9l-.2-5.7 1.8.1.2.1.7.1h.3V28l-.4-.4-.3-.2-.8-1.1L27 25l1.2-.2 2-.5 1.1-.3c1-.4 2.6-.9 3-.9h.1q0 .3-.3.5m4.2-2.1-.4.3-.8.7q.1.4.4.3h.2l.6 1.4-1.8-1.2q-.4 0-.4.3v.1l-1.2.9q0-.8.4-1.4h.1q.3-.2.2-.5-.3-.5-1.2-.7-.8 0-1.1-.5h1l.7.2.5-.1q0-1.4.5-2.4c.2.3.8 1.4.9 1.9v.1l-.1.2h.2l1.8-.2zm-19 1.9.2-2.2zm1.8 3.9zm1.5.9h-.1m.3 15zm12.9-25.5"})})}const X={send:"Send",clear:"Clear prompt",suggestions:"Suggestions",history:"History",historyEmpty:"No earlier prompts yet",startVoice:"Talk",stopVoice:"Stop listening",addImages:"Add images",removeImage:"Remove"};function Y({onSubmit:n,value:t,onValueChange:e,placeholder:r="Ask about anything",appearance:a,colorScheme:o,radius:i,glow:s,suggestions:d,suggestionsAlign:b,history:h,onVoice:f,acceptImages:v,poweredBy:y=!0,labels:x,sendIcon:k,actions:w,font:q,loading:_,disabled:L,autoFocus:C,className:E="",style:I,children:S,sendLabel:T,tint:z}){const[R,N]=m(""),M=t??R,{ref:A,isMultiline:O}=function(n){const t=p(null),[e,r]=m(!1);return u(()=>{const n=t.current;if(!n||"undefined"==typeof ResizeObserver)return;const e=new ResizeObserver(()=>{r(n.clientHeight>1.5*Number.parseFloat(getComputedStyle(n).lineHeight))});return e.observe(n),()=>{e.disconnect()}},[]),u(()=>{const n=t.current;!n||"undefined"!=typeof CSS&&CSS.supports("field-sizing","content")||(n.style.height="auto",n.style.height=`${n.scrollHeight}px`)},[n]),{ref:t,isMultiline:e}}(M),{ref:D,isOpen:V,setIsOpen:U}=function(){const n=p(null),[t,e]=m(!1);return u(()=>{if(!t)return;const r=t=>{t.target instanceof Node&&!n.current?.contains(t.target)&&e(!1)};return document.addEventListener("pointerdown",r),()=>{document.removeEventListener("pointerdown",r)}},[t]),{ref:n,isOpen:t,setIsOpen:e}}(),{picked:H,add:j,remove:P,clear:B}=function(){const[n,t]=m([]),e=p(new Set);u(()=>{const n=e.current;return()=>{for(const t of n)URL.revokeObjectURL(t);n.clear()}},[]);const r=n=>{URL.revokeObjectURL(n),e.current.delete(n)};return{picked:n,add(n){const r=n.map(n=>({file:n,url:URL.createObjectURL(n)}));for(const{url:n}of r)e.current.add(n);t(n=>[...n,...r])},remove(n){r(n),t(t=>t.filter(t=>t.url!==n))},clear(){for(const{url:t}of n)r(t);t([])}}}(),F=g(),K=function(n,t){return{...X,...void 0!==t&&{send:t},...n}}(x,T),$=function({history:n,onVoice:t,acceptImages:e}){return void 0!==n||void 0!==t||!0===e?"tools":"compact"}({history:h,onVoice:f,acceptImages:v}),G=n=>{N(n),e?.(n)},Y=M.trim(),sn=function(n,t,e,r){return(""!==n||t.length>0)&&!e&&!r}(Y,H,_,L),dn=()=>{sn&&(n(Y,H.map(n=>n.file)),G(""),B(),U(!1))},mn=n=>{n.preventDefault(),dn()},hn=n=>{G(n),U(!1),A.current?.focus()};if(S)return l(Z,{className:E,loading:_,poweredBy:y,style:bn({colorScheme:o,radius:i,glow:s,paint:z,font:q,style:I}),onSubmit:mn,children:S({fieldProps:{ref:A,value:M,placeholder:r,"aria-label":r,enterKeyHint:"send",rows:1,disabled:L,autoFocus:C,onChange(n){G(n.target.value)},onKeyDown:pn},value:M,setValue:G,fill:hn,canSubmit:sn,submit:dn,images:H,addImages:j,removeImage:P})});return c("div",{ref:D,className:`cm-bar ${E}`.trimEnd(),"data-appearance":a,"data-layout":$,"data-multiline":O||void 0,"data-loading":!0===_||void 0,style:bn({colorScheme:o,radius:i,glow:s,paint:z,font:q,style:I}),onKeyDown:n=>{V&&"Escape"===n.key&&(U(!1),A.current?.focus())},children:[l("style",{children:gn}),l(nn,{suggestions:V?void 0:d,align:b,label:K.suggestions,disabled:L,onPick:hn}),c("div",{className:"cm-bar-shell",children:[l(W,{glow:s,paint:z,loading:_}),l(tn,{id:F,isOpen:V,entries:h,labels:K,onPick:hn}),c("form",{className:"cm-bar-field","aria-busy":_,onSubmit:mn,children:[l(en,{picked:H,label:K.removeImage,onRemove:P}),c("div",{className:"cm-bar-row",children:["compact"===$&&l(Q,{className:"cm-bar-mark"}),l("textarea",{ref:A,className:"cm-bar-input",rows:1,value:M,placeholder:r,"aria-label":r,enterKeyHint:"send",disabled:L,autoFocus:C,onChange:n=>{G(n.target.value)},onKeyDown:pn}),l(rn,{isShown:""!==M,label:K.clear,disabled:L,onClear:()=>{hn("")}}),"compact"===$&&w,l("button",{type:"submit",className:"cm-bar-send",disabled:!sn,"aria-label":K.send,children:k??l(cn,{})})]}),"tools"===$&&c("div",{className:"cm-bar-footer",children:[c("div",{className:"cm-bar-tools",children:[v&&l(on,{label:K.addImages,disabled:L,onAdd:j}),h&&l(an,{label:K.history,disabled:L,"aria-expanded":V,"aria-controls":F,onClick:()=>{U(n=>!n)},children:l(un,{})}),f&&l(ln,{labels:K,disabled:L,loading:_,onVoice:f}),w]}),l(J,{})]})]})]}),"compact"===$&&y&&l(J,{})]})}function Z({className:n,loading:t,poweredBy:e,style:r,onSubmit:a,children:o}){return c("div",{className:`cm-bar ${n}`.trimEnd(),"data-layout":"custom","data-loading":!0===t||void 0,style:r,children:[l("style",{children:gn}),c("form",{className:"cm-bar-custom","aria-busy":t,onSubmit:a,children:[l(Q,{className:"cm-bar-mark"}),o]}),e&&l(J,{})]})}function J(){return l("span",{className:"cm-bar-powered-by",children:"Powered by Callimacus"})}function W({glow:n,paint:t,loading:e}){return void 0!==n&&!1!==n||void 0!==t||!0===e?l("span",{className:"cm-bar-glow","aria-hidden":"true"}):null}function nn({suggestions:n=[],align:t,label:e,disabled:r,onPick:a}){return 0===n.length?null:l("div",{className:"cm-bar-suggestions",role:"group","aria-label":e,"data-align":t,children:n.map((n,t)=>l("button",{type:"button",className:"cm-bar-suggestion",disabled:r,onClick:()=>{a(n)},children:n},t))})}function tn({id:n,isOpen:t,entries:e=[],labels:r,onPick:a}){return t?l("div",{id:n,className:"cm-bar-history",role:"group","aria-label":r.history,children:0===e.length?l("p",{className:"cm-bar-history-empty",children:r.historyEmpty}):l("ul",{children:e.map((n,t)=>l("li",{children:l("button",{type:"button",className:"cm-bar-history-item",onClick:()=>{a(n)},children:n})},t))})}):null}function en({picked:n,label:t,onRemove:e}){return 0===n.length?null:l("ul",{className:"cm-bar-images",children:n.map(({file:n,url:r})=>c("li",{className:"cm-bar-image",children:[l("img",{src:r,alt:n.name}),l("button",{type:"button","aria-label":`${t} ${n.name}`,title:`${t} ${n.name}`,onClick:()=>{e(r)},children:l(sn,{})})]},r))})}function rn({isShown:n,label:t,disabled:e,onClear:r}){return n?l("button",{type:"button",className:"cm-bar-clear","aria-label":t,title:t,disabled:e,onClick:r,children:l(sn,{})}):null}function an({label:n,children:t,...e}){return l("button",{type:"button",className:"cm-bar-tool","aria-label":n,title:n,...e,children:t})}function on({label:n,disabled:t,onAdd:e}){const r=p(null);return c(s,{children:[l(an,{label:n,disabled:t,onClick:()=>{r.current?.click()},children:l(dn,{})}),l("input",{ref:r,hidden:!0,type:"file",accept:"image/*",multiple:!0,onChange:n=>{e([...n.target.files??[]]),n.target.value=""}})]})}function ln({labels:n,disabled:t,loading:e,onVoice:r}){const a=$({onRecordingComplete:r}),o="recording"===a.state,i=o?n.stopVoice:n.startVoice,c=(!0===t||!0===e)&&!o;return l(an,{label:a.error??i,disabled:c,"aria-pressed":o,onClick:()=>{o?a.stopRecording():a.startRecording()},children:l(mn,{})})}function cn(){return l("svg",{viewBox:"0 0 10 11",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:l("path",{d:"M.5 4.67 4.88.5m0 0 4.37 4.17M4.88.5v10"})})}function sn(){return l("svg",{viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeLinecap:"round","aria-hidden":"true",children:l("path",{d:"M.5.5l9 9m0-9-9 9"})})}function dn(){return l("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeLinecap:"round","aria-hidden":"true",children:l("path",{d:"M8 2.5v11M2.5 8h11"})})}function un(){return l("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:l("path",{d:"M8 4.5C6.9 3.6 5.3 3.2 2.5 3.2v8.9c2.8 0 4.4.4 5.5 1.4 1.1-1 2.7-1.4 5.5-1.4V3.2c-2.8 0-4.4.4-5.5 1.3Zm0 0v9"})})}function mn(){return c("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[l("rect",{x:"6",y:"2.5",width:"4",height:"7",rx:"2"}),l("path",{d:"M3.5 8a4.5 4.5 0 0 0 9 0M8 12.5v1"})]})}function pn(n){"Enter"!==n.key||n.shiftKey||n.nativeEvent.isComposing||(n.preventDefault(),n.currentTarget.form?.requestSubmit())}function bn({colorScheme:n,radius:t,glow:e,paint:r,font:a,style:o}){return{colorScheme:"auto"===n?void 0:n,"--cm-radius":"pill"===t?"999px":void 0===t?void 0:`${t}px`,"--cm-glow-colors":"object"==typeof e&&e.length>0?[...e,e[0]].join(", "):void 0,"--cm-tint":r,"--cm-font":a,...o}}const gn="\n.cm-bar {\n\t--_ink: var(--cm-fg, light-dark(#212121, #fff));\n\t--_fill: var(--cm-bg, light-dark(#fff, #404040));\n\t--_edge: var(--cm-border-color, light-dark(#f2f2f2, rgb(242 242 242 / .3)));\n\t--_button-fill: var(--_fill);\n\t--_button-edge: var(--cm-border-color, light-dark(#f2f2f2, rgb(136 136 136 / .3)));\n\t--_chip-edge: var(--cm-border-color, light-dark(#f2f2f2, rgb(242 242 242 / .3)));\n\t--_blur: none;\n\t--_radius: var(--cm-radius, 999px);\n\t--_corner: var(--_radius);\n\t--_size: var(--cm-size, 34px);\n\t--_pad: var(--cm-padding, 12px);\n\t--_glow-colors: var(--cm-glow-colors, #d698c7, #ffc691, #a8dfdb, #c1b1f0, #d698c7);\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\tfont-family: var(--cm-font, inherit);\n\tfont-size: var(--cm-font-size, 1rem);\n\tline-height: 1.25;\n}\n\n/* Figma \"Transparent\": the fill at 64% over the page, blurred. */\n.cm-bar[data-appearance='glass'] {\n\t--_fill: var(--cm-bg, light-dark(rgb(255 255 255 / .64), rgb(64 64 64 / .64)));\n\t--_edge: var(--cm-border-color, rgb(242 242 242 / .3));\n\t--_button-edge: var(--cm-border-color, light-dark(rgb(242 242 242 / .3), rgb(136 136 136 / .3)));\n\t--_chip-edge: var(--cm-border-color, light-dark(rgb(242 242 242 / .64), rgb(242 242 242 / .3)));\n\t--_blur: blur(var(--cm-blur, 7.3px));\n}\n\n/* The bar with tools is two rows tall, too tall for a pill: the Figma stops it at 16px. */\n.cm-bar[data-layout='tools'] {\n\t--_radius: min(var(--cm-radius, 999px), 16px);\n}\n\n/* Over the bar with tools, white glass keeps a white edge and a lighter send button. */\n.cm-bar[data-appearance='glass'][data-layout='tools'] {\n\t--_edge: var(--cm-border-color, light-dark(#f2f2f2, rgb(242 242 242 / .3)));\n\t--_button-fill: light-dark(rgb(255 255 255 / .3), rgb(64 64 64 / .64));\n\t--_button-edge: var(--cm-border-color, light-dark(#f2f2f2, rgb(136 136 136 / .3)));\n}\n\n/* A wrapped prompt is too tall for a pill. */\n.cm-bar[data-multiline] {\n\t--_corner: min(var(--_radius), 24px);\n}\n\n.cm-bar-suggestions {\n\t/* Above the glow, which spills over the bar's top edge. */\n\tposition: relative;\n\tz-index: 1;\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tjustify-content: center;\n\tgap: 4px;\n\tmargin-bottom: 4px;\n}\n\n.cm-bar[data-layout='tools'] .cm-bar-suggestions {\n\tjustify-content: flex-start;\n\tmargin-bottom: 5px;\n}\n\n.cm-bar .cm-bar-suggestions[data-align='start'] {\n\tjustify-content: flex-start;\n}\n\n.cm-bar .cm-bar-suggestions[data-align='center'] {\n\tjustify-content: center;\n}\n\n.cm-bar-suggestion {\n\tbox-sizing: border-box;\n\theight: 32px;\n\tmargin: 0;\n\tpadding: 0 16px;\n\tborder: 1px solid var(--_chip-edge);\n\tborder-radius: calc(var(--_radius) / 2);\n\tbackground: var(--_fill);\n\t-webkit-backdrop-filter: var(--_blur);\n\tbackdrop-filter: var(--_blur);\n\tcolor: var(--_ink);\n\tfont: inherit;\n\tfont-size: .875em;\n\tline-height: 1;\n\twhite-space: nowrap;\n\tcursor: pointer;\n\ttransition: translate .16s, box-shadow .16s;\n}\n\n.cm-bar-suggestion:enabled:hover {\n\ttranslate: 0 -1px;\n\tbox-shadow: 0 2px 6px rgb(0 0 0 / .08);\n}\n\n.cm-bar-suggestion:disabled {\n\tcursor: default;\n\topacity: .5;\n}\n\n.cm-bar-shell {\n\tposition: relative;\n}\n\n/* Figma draws the glow as a 4px gradient stroke centred on the bar's edge, under a 10px blur.\nThe blur sits on the outer box so the ring's mask doesn't clip it. */\n.cm-bar-glow {\n\tposition: absolute;\n\tinset: 0;\n\topacity: var(--cm-glow, 1);\n\tfilter: blur(5px);\n\tpointer-events: none;\n}\n\n.cm-bar-glow::before {\n\tcontent: '';\n\tposition: absolute;\n\tinset: -2px;\n\tpadding: 4px;\n\tborder-radius: calc(var(--_corner) + 2px);\n\tbackground: var(--cm-tint, conic-gradient(from var(--cm-bar-angle), var(--_glow-colors)));\n\t-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);\n\t-webkit-mask-composite: xor;\n\tmask-composite: exclude;\n\tanimation: cm-bar-turn 6s linear infinite;\n}\n\n.cm-bar[data-loading] .cm-bar-glow::before {\n\tanimation-duration: 2s;\n}\n\n.cm-bar-field {\n\tposition: relative;\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin: 0;\n\tpadding: var(--_pad) var(--_pad) var(--_pad) calc(var(--_pad) + 4px);\n\tborder: var(--cm-border-width, 1px) solid var(--_edge);\n\tborder-radius: var(--_corner);\n\tbackground: var(--_fill);\n\t-webkit-backdrop-filter: var(--_blur);\n\tbackdrop-filter: var(--_blur);\n\tbox-shadow: var(--cm-shadow, 0 4px 4px rgb(0 0 0 / .12));\n\tcolor: var(--_ink);\n\ttransition: border-radius .2s;\n}\n\n.cm-bar[data-layout='tools'] .cm-bar-field {\n\tgap: 8px;\n\tpadding-block: calc(var(--_pad) - 4px);\n}\n\n.cm-bar-field:has(.cm-bar-input:disabled) {\n\topacity: .5;\n}\n\n.cm-bar-row {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n}\n\n.cm-bar[data-layout='tools'] .cm-bar-row {\n\tpadding-bottom: 8px;\n\tborder-bottom: 1px solid rgb(33 33 33 / .1);\n}\n\n/* A wrapped prompt keeps the mark and the buttons on its last line. */\n.cm-bar[data-multiline] .cm-bar-row {\n\talign-items: flex-end;\n}\n\n/* The mark is the one fixed part of the compact bar: color and size are themable, hiding it is not. */\n.cm-bar-mark {\n\tflex: none;\n\tdisplay: block !important;\n\tvisibility: visible !important;\n\topacity: 1 !important;\n\twidth: auto;\n\theight: calc(var(--_size) * .8);\n\tmin-width: 1.1rem !important;\n\tmin-height: 1.25rem !important;\n\tcolor: var(--cm-mark-color, currentColor);\n}\n\n.cm-bar[data-loading] .cm-bar-mark {\n\tanimation: cm-bar-twinkle 1.5s ease-in-out infinite;\n}\n\n.cm-bar-input {\n\tflex: 1;\n\tbox-sizing: border-box;\n\tmin-width: 0;\n\tmin-height: 1lh;\n\tmax-height: 6lh;\n\tmargin: max(0px, calc((var(--_size) - 1lh) / 2)) 0;\n\tpadding: 0;\n\tborder: 0;\n\tborder-radius: 0;\n\toutline: 0;\n\tbackground: none;\n\tcolor: inherit;\n\tfont: inherit;\n\tresize: none;\n\tfield-sizing: content;\n}\n\n.cm-bar[data-multiline] .cm-bar-input {\n\tmargin-block: 0;\n}\n\n.cm-bar-input::placeholder {\n\tcolor: inherit;\n\topacity: .2;\n}\n\n.cm-bar-clear {\n\tflex: none;\n\tdisplay: grid;\n\tplace-items: center;\n\twidth: 20px;\n\theight: var(--_size);\n\tmargin: 0 -4px 0 0;\n\tpadding: 0;\n\tborder: 0;\n\tbackground: none;\n\tcolor: inherit;\n\tcursor: pointer;\n\topacity: .85;\n\ttransition: opacity .16s;\n}\n\n.cm-bar-clear:hover {\n\topacity: 1;\n}\n\n.cm-bar-clear svg {\n\twidth: 10px;\n\theight: 10px;\n}\n\n.cm-bar-send {\n\tflex: none;\n\tbox-sizing: border-box;\n\tdisplay: grid;\n\tplace-items: center;\n\twidth: var(--_size);\n\theight: var(--_size);\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 1px solid var(--_button-edge);\n\tborder-radius: calc(var(--_radius) / 2);\n\tbackground: var(--cm-button-bg, var(--_button-fill));\n\tcolor: var(--cm-button-fg, inherit);\n\tcursor: pointer;\n\ttransition: translate .16s, background-color .16s;\n}\n\n.cm-bar-send:enabled:hover {\n\ttranslate: 0 -1px;\n}\n\n.cm-bar-send:disabled {\n\tcursor: default;\n}\n\n.cm-bar-send:disabled > * {\n\topacity: .2;\n}\n\n.cm-bar-send svg {\n\twidth: 30%;\n\theight: auto;\n}\n\n.cm-bar-footer {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 8px;\n\theight: 20px;\n}\n\n/* The icons sit on one 16px grid; pulling the row in by the plus's own inset puts its stroke on the text's edge. */\n.cm-bar-tools {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n\tmargin-left: -6px;\n}\n\n.cm-bar-tool {\n\tdisplay: grid;\n\tplace-items: center;\n\twidth: 24px;\n\theight: 20px;\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tborder-radius: 6px;\n\tbackground: none;\n\tcolor: var(--cm-tool-color, light-dark(#6c6c6c, #fff));\n\tcursor: pointer;\n}\n\n.cm-bar-tool svg {\n\tdisplay: block;\n\twidth: 16px;\n\theight: 16px;\n}\n\n.cm-bar-tool:enabled:hover,\n.cm-bar-tool[aria-expanded='true'] {\n\tbackground: rgb(127 127 127 / .14);\n}\n\n.cm-bar-tool:disabled {\n\tcursor: default;\n\topacity: .5;\n}\n\n.cm-bar-tool[aria-pressed='true'] {\n\tcolor: #e5484d;\n\tanimation: cm-bar-listening 1.2s ease-in-out infinite;\n}\n\n.cm-bar-images {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 6px;\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n}\n\n.cm-bar-image {\n\tposition: relative;\n\twidth: 44px;\n\theight: 44px;\n}\n\n.cm-bar-image img {\n\tdisplay: block;\n\tbox-sizing: border-box;\n\twidth: 100%;\n\theight: 100%;\n\tborder: 1px solid var(--_edge);\n\tborder-radius: 6px;\n\tobject-fit: cover;\n}\n\n.cm-bar-image button {\n\tposition: absolute;\n\ttop: -5px;\n\tright: -5px;\n\tdisplay: grid;\n\tplace-items: center;\n\twidth: 16px;\n\theight: 16px;\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tborder-radius: 50%;\n\tbackground: #212121;\n\tcolor: #fff;\n\tcursor: pointer;\n}\n\n.cm-bar-image svg {\n\twidth: 7px;\n\theight: 7px;\n}\n\n.cm-bar-history {\n\tposition: absolute;\n\tz-index: 2;\n\tleft: 0;\n\tright: 0;\n\tbottom: calc(100% + 8px);\n\tbox-sizing: border-box;\n\tmax-height: 220px;\n\toverflow-y: auto;\n\tpadding: 6px;\n\tborder: 1px solid var(--_edge);\n\tborder-radius: 12px;\n\tbackground: var(--_fill);\n\t-webkit-backdrop-filter: blur(14px);\n\tbackdrop-filter: blur(14px);\n\tbox-shadow: 0 8px 24px rgb(0 0 0 / .12);\n\tcolor: var(--_ink);\n}\n\n.cm-bar[data-appearance='glass'] .cm-bar-history {\n\tbackground: var(--cm-bg, light-dark(rgb(255 255 255 / .64), rgb(48 48 48 / .86)));\n}\n\n.cm-bar-history ul {\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n}\n\n.cm-bar-history-item {\n\tdisplay: block;\n\tbox-sizing: border-box;\n\twidth: 100%;\n\tmargin: 0;\n\tpadding: 8px 10px;\n\tborder: 0;\n\tborder-radius: 8px;\n\tbackground: none;\n\tcolor: inherit;\n\tfont: inherit;\n\tfont-size: .875em;\n\tline-height: 1.3;\n\ttext-align: start;\n\tcursor: pointer;\n}\n\n.cm-bar-history-item:hover,\n.cm-bar-history-item:focus-visible {\n\tbackground: rgb(127 127 127 / .14);\n\toutline: none;\n}\n\n.cm-bar-history-empty {\n\tmargin: 0;\n\tpadding: 8px 10px;\n\tfont-size: .8125em;\n\topacity: .5;\n}\n\n.cm-bar-suggestion:focus-visible,\n.cm-bar-clear:focus-visible,\n.cm-bar-send:focus-visible,\n.cm-bar-tool:focus-visible,\n.cm-bar-image button:focus-visible {\n\toutline: 2px solid light-dark(rgb(33 33 33 / .4), rgb(255 255 255 / .6));\n\toutline-offset: 2px;\n}\n\n.cm-bar-powered-by {\n\tmargin-top: 10px;\n\tcolor: var(--cm-powered-by-color, inherit);\n\tfont-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n\tfont-size: .5em;\n\tline-height: 1;\n\ttext-align: center;\n\ttext-transform: uppercase;\n\twhite-space: nowrap;\n}\n\n/* In the tools row it takes the bar's ink, trimmed to its capitals so it lines up with the icons. */\n.cm-bar-footer .cm-bar-powered-by {\n\tmargin: 0;\n\ttext-box: trim-both cap alphabetic;\n}\n\n/* The colours travel round the edge: a conic gradient whose start angle turns. */\n@property --cm-bar-angle {\n\tsyntax: '<angle>';\n\tinherits: false;\n\tinitial-value: 0deg;\n}\n\n@keyframes cm-bar-turn {\n\tto {\n\t\t--cm-bar-angle: 360deg;\n\t}\n}\n\n/* Transform only: the mark's opacity is pinned to 1. */\n@keyframes cm-bar-twinkle {\n\t50% {\n\t\ttransform: scale(.85) rotate(-10deg);\n\t}\n}\n\n@keyframes cm-bar-listening {\n\t50% {\n\t\tbackground: rgb(229 72 77 / .14);\n\t}\n}\n\n@media (prefers-reduced-motion: reduce) {\n\t.cm-bar *,\n\t.cm-bar *::before {\n\t\tanimation: none !important;\n\t\ttransition: none !important;\n\t}\n}\n";export{Y as CallimacusBar,Q as CallimacusMark,h as thamyrApi,j as useActions,N as useApi,v as useCallimacusStore,R as useCart,I as useConnection,_ as useInitThamyr,O as useMapPage,T as useOnConnectionChange,z as useOnError,S as useOnResponse,A as useSitemap,M as useSkesis,P as useSubmission,E as useSuggestions,L as useThamyr,G as useTtsAudio,$ as useVoiceRecorder};
|
|
8
|
+
import{isVariantGid as n,createShopifyCart as t,createPageStorage as e,cartSettingsFor as r,readShopifySettings as a,createContractClient as o,ThamyrResponseType as i,UserInteractionType as c,interactionRound as s,landingRound as l,parseMapPath as d,resolveMapPage as u,randomUuid as m,deliverResultOf as p}from"@callimacus/thamyr-core";export{ACTION_TYPES,ADD_TO_CART_RESULT_BLOCK,CallimacusEvent,ChapterStatus,ClientEvents,DELIVER_RESULT_BLOCK,GalleryMode,LANDING_VALUE_MAX_LENGTH,SLInputEventType,STOREFRONT_API_VERSION,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 g,jsxs as b,Fragment as h}from"react/jsx-runtime";import{useMemo as f,useEffect as v,useState as y,useRef as x,useCallback as w,useId as k}from"react";import{u as _,w as q,t as I,m as S,a as C,b as L,c as E}from"./chunks/api-BDSbXlo-.js";import"@callimacus/thamyr";const T=new WeakMap;const z=new Map;let N;function R(n){let i=z.get(n);if(void 0===i){const c="undefined"!=typeof window;i=t({settings:async()=>r(await async function(){const n=await q();let t=T.get(n);if(void 0===t){const{endpoint:e,accessToken:r}=n.sitemap.config;t=a(o({endpoint:e,accessToken:r}),_.getState()._shopify),T.set(n,t)}return t}(),n??function(){const n="undefined"==typeof document?"":document.documentElement.lang;return""!==n?n:"undefined"==typeof navigator?void 0:navigator.language}()),...c&&{storage:N??=e()}}),c&&z.set(n,i)}return i}const M=()=>void 0!==_.getState()._shopify;function A(n={}){const{locale:t}=n;return f(()=>R(t),[t])}const O="callimacus:shopify-cart-commands",D=new Set;function V(n){const t=function(){try{const n=JSON.parse(localStorage.getItem(O)??"[]");return Array.isArray(n)?n.filter(n=>"string"==typeof n):[]}catch{return}}();if(t?.includes(n)||D.has(n))return!1;try{localStorage.setItem(O,JSON.stringify([...t??[],n].slice(-50)))}catch{D.add(n)}return!0}const U=new Set(["cart_disabled","cart_unavailable"]);async function j(t){if("shopify-add"!==t.command||!M()||!n(t.variantId)||!V(t.chapterId))return;const e=Math.trunc(t.quantity),r=Math.min(Math.max(Number.isFinite(e)?e:1,1),10),a=await R().addItem(t.variantId,r),o=function(n,t,e){const r=`${t>1?`${t} × `:""}${n.item.name}${n.item.options.length>0?` (${n.item.options.map(n=>n.value).join(", ")})`:""}`,a={id:n.chapterId,item:n.item,quantity:t};return void 0===e.error?{...a,outcome:"added",message:e.warnings[0]?.message??`${r} is in your bag.`}:"refused"===e.error.code?{...a,outcome:"refused",message:e.error.message}:U.has(e.error.code)?{...a,outcome:"unavailable",message:"The bag is not available on this site right now."}:{...a,outcome:"failed",message:e.error.message}}(t,r,a);_.getState()._addCartNotice(o);try{const n=await q();await n.analytics.trackEvent({storyId:t.storyId,eventName:"shopify_cart_add",payload:{chapterId:t.chapterId,variantId:t.variantId,quantity:r,outcome:o.outcome,...a.error&&{code:a.error.code}}})}catch{}return o}function H(){return _(n=>n.cartNotices)}function P(n,t){const e=x(t);e.current=t,v(()=>n(n=>{e.current(n)}),[n])}function B(n){const t=_(n=>n.init),e=_(n=>n.reset);C(),v(()=>{L(),t(n);const r=_.getState().addResponseListener(n=>{n.type===i.CART_COMMAND&&j(n.data)});return()=>{r(),e(),S()}},[t,e,n.clientId,n.endpoint])}function F(){const n=_(n=>n.messages),t=_(n=>n.sendEvent),e=_(n=>n.sendAudio),r=f(()=>({openLanding(n,e={}){t(c.CREATE_ROUND,l(n,e))},sendInteraction(n,e={}){t(c.CREATE_ROUND,s(n,e))},refresh(n,e,r={}){t(c.CREATE_ROUND,s(e,{...r,block:n}))}}),[t]);return{history:n,sendEvent:t,sendAudio:e,...r}}const $={suggestions:[],loading:!1};function K(n,t={}){const{storyId:e,language:r,debounceMs:a=200}=t,o=_(n=>"connected"===n.connectionStatus),[i,c]=y($),[s,l]=y(o);return s!==o&&(l(o),o||c($)),v(()=>{if(!o)return;let t=!1;const i=setTimeout(()=>{c(n=>({...n,loading:!0}));(_.getState()._thamyr?.suggest(n,{storyId:e,language:r})??Promise.resolve($)).then(({suggestions:n})=>{t||c({suggestions:n,loading:!1})}).catch(()=>{t||c($)})},""===n?0:a);return()=>{t=!0,clearTimeout(i)}},[n,e,r,a,o]),o?i:$}function G(){return{status:_(n=>n.connectionStatus)}}function Q(n){P(_(n=>n.addResponseListener),n)}function J(n){P(_(n=>n.addConnectionListener),n)}function W(n){P(_(n=>n.addErrorListener),n)}function X(){return f(()=>({getCart:async()=>(await q()).cart.getCart(),addItem:async n=>(await q()).cart.addItemToCart({productId:n}),removeItem:async n=>(await q()).cart.removeItemFromCart({productId:n}),updateQuantity:async(n,t)=>(await q()).cart.updateProductQuantity({productId:n,quantity:t})}),[])}function Y(){return I}function Z(){return f(()=>({similar:async(n,t)=>(await q()).skesis.similar({anchorId:n,...t}),related:async(n,t)=>(await q()).skesis.related({anchorId:n,...t})}),[])}function nn(){return f(()=>({getSitemap:async()=>(await q()).sitemap.getSitemap()}),[])}function tn(n){const[t,e]=y(),r=void 0!==d(n);v(()=>{if(!r)return;let t=!1;return u(I,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,r]);const a=r&&t?.pathname===n?t:void 0;return{page:a?.page,loading:r&&void 0===a,error:a?.error}}const en=n=>({ok:!1,error:n});const rn={state:"idle"},an=E(()=>({})),on=new Map;function cn(){const n=_(n=>"connected"===n.connectionStatus),t=_(n=>n.storyId),e=_(n=>n.sendEvent),r=_(n=>n.addResponseListener),a=w(async(n,a={})=>{const o=a.storyId??t,i=n=>{try{return e(c.CREATE_ROUND,{...n,...void 0!==o&&{storyId:o}}),{ok:!0}}catch(n){return en(n)}};switch(n.type){case"link":return void 0===globalThis.location?en(new Error("[thamyr] a link action needs a browser")):(n.newTab?globalThis.open(n.url,"_blank","noopener"):globalThis.location.assign(n.url),{ok:!0});case"ask":return i({inputEvent:{type:"question",data:{value:n.value}}});case"interact":return i(s(n.id,{value:n.value,payload:n.payload,block:n.block}));case"cart":return async function(n){try{const{error:t}=await n;return void 0===t?{ok:!0}:en(t)}catch(n){return en(n)}}(q().then(async t=>M()?R().addItem(n.productId):t.cart.addItemToCart({productId:n.productId})));case"submit":{const t=m();on.set(n.form,t),an.setState({[n.form]:{state:"sending"}});const e=i({...s(n.form,{payload:a.fields??{},submissionId:t}),...void 0!==globalThis.document&&{context:{title:(l=globalThis.document.title,l.replaceAll(/\p{Control}/gv,"").slice(0,500).replace(/\p{Surrogate}$/v,""))}}}),o=e.ok?await async function(n,t){return new Promise(e=>{let r=()=>{};const a=setTimeout(()=>{r(),e(en("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=>p(n)).find(t=>t?.submissionId===n);void 0!==o&&(clearTimeout(a),r(),e({ok:!0,result:o}))})})}(t,r):e;return on.get(n.form)===t&&an.setState({[n.form]:o.ok?{state:"done",result:o.result}:rn}),o}}var l},[e,t,r]);return f(()=>({run:a,ready:n,storyId:t}),[a,n,t])}function sn(n){return an(t=>t[n]??rn)}const ln=-45,dn=1800,un=3e4;function mn({silenceThreshold:n=ln,silenceDuration:t=dn,maxDuration:e=un,onRecordingComplete:r}){const[a,o]=y("idle"),[i,c]=y([]),[s,l]=y(void 0),d=x(void 0),u=x(void 0),m=x(void 0),p=x(void 0),g=x(0),b=x(0),h=x(void 0),f=x([]),k=x(!1),_=w(()=>{if(0!==g.current&&(cancelAnimationFrame(g.current),g.current=0),void 0!==h.current&&(clearTimeout(h.current),h.current=void 0),p.current){for(const n of p.current.getTracks())n.stop();p.current=void 0}"closed"!==u.current?.state&&u.current?.close(),u.current=void 0,m.current=void 0,d.current=void 0,k.current=!1},[]);v(()=>_,[_]);const q=w(()=>{k.current||(k.current=!0,"recording"===d.current?.state&&d.current.stop(),0!==g.current&&(cancelAnimationFrame(g.current),g.current=0),void 0!==h.current&&(clearTimeout(h.current),h.current=void 0))},[]),I=w(async()=>{l(void 0),f.current=[],k.current=!1;try{const a=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0,sampleRate:16e3}});p.current=a;const i=new AudioContext({sampleRate:16e3});u.current=i;const s=i.createMediaStreamSource(a),l=i.createAnalyser();l.fftSize=256,l.smoothingTimeConstant=.7,s.connect(l),m.current=l;const v=MediaRecorder.isTypeSupported("audio/webm;codecs=opus")?"audio/webm;codecs=opus":"audio/webm",y=new MediaRecorder(a,{mimeType:v});d.current=y,y.addEventListener("dataavailable",n=>{n.data.size>0&&f.current.push(n.data)}),y.addEventListener("stop",()=>{o("processing");const n=new Blob(f.current,{type:v});_(),r(n)}),y.start(250),o("recording"),b.current=0,h.current=setTimeout(()=>{q()},e);const x=()=>{if(!m.current||k.current)return;const e=m.current.frequencyBinCount,r=new Uint8Array(e);m.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)}c(o);let i=0;for(const n of r){const t=n/255;i+=t*t}const s=Math.sqrt(i/e);if((s>0?20*Math.log10(s):-100)<n){if(0===b.current)b.current=Date.now();else if(Date.now()-b.current>t)return void q()}else b.current=0;g.current=requestAnimationFrame(x)};x()}catch{l("Microphone access denied"),o("idle"),_()}},[n,t,e,r,q,_]),S=w(()=>{o("idle"),c([])},[]);return{state:a,audioLevels:i,startRecording:I,stopRecording:q,reset:S,error:s}}function pn(n){const t=x(void 0),[e,r]=y("idle"),[a,o]=y(void 0);v(()=>{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")},c=()=>{r("loading")},s=()=>{r(n=>"ended"===n?n:"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="",t.current=void 0}},[n?.audioUrl]);const i=w(async()=>{const n=t.current;if(n)try{o(void 0),r("loading"),await n.play()}catch{o("Audio playback failed"),r("error")}},[]),c=w(()=>{t.current?.pause()},[]),s=w(()=>{const n=t.current;n&&(n.pause(),n.currentTime=0,r("idle"))},[]),l=w(()=>{const n=t.current;n&&(n.paused?i():n.pause())},[i]);return{state:e,isPlaying:"playing"===e||"loading"===e,error:a,play:i,pause:c,toggle:l,stop:s}}function gn(n){return g("svg",{viewBox:"0 0 40 45",fill:"currentColor",role:"img","aria-label":"Callimacus",...n,children:g("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 bn={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 hn({onSubmit:n,value:t,onValueChange:e,placeholder:r="Ask about anything",appearance:a,colorScheme:o,radius:i,glow:c,suggestions:s,suggestionsAlign:l,history:d,onVoice:u,acceptImages:m,poweredBy:p=!0,labels:h,sendIcon:f,actions:w,font:_,loading:q,disabled:I,autoFocus:S,className:C="",style:L,children:E,sendLabel:T,tint:z}){const[N,R]=y(""),M=t??N,{ref:A,isMultiline:O}=function(n){const t=x(null),[e,r]=y(!1);return v(()=>{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()}},[]),v(()=>{const n=t.current;!n||"undefined"!=typeof CSS&&CSS.supports("field-sizing","content")||(n.style.height="auto",n.style.height=`${n.scrollHeight}px`)},[n]),{ref:t,isMultiline:e}}(M),{ref:D,isOpen:V,setIsOpen:U}=function(){const n=x(null),[t,e]=y(!1);return v(()=>{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:j,add:H,remove:P,clear:B}=function(){const[n,t]=y([]),e=x(new Set);v(()=>{const n=e.current;return()=>{for(const t of n)URL.revokeObjectURL(t);n.clear()}},[]);const r=n=>{URL.revokeObjectURL(n),e.current.delete(n)};return{picked:n,add(n){const r=n.map(n=>({file:n,url:URL.createObjectURL(n)}));for(const{url:n}of r)e.current.add(n);t(n=>[...n,...r])},remove(n){r(n),t(t=>t.filter(t=>t.url!==n))},clear(){for(const{url:t}of n)r(t);t([])}}}(),F=k(),$=function(n,t){return{...bn,...void 0!==t&&{send:t},...n}}(h,T),K=function({history:n,onVoice:t,acceptImages:e}){return void 0!==n||void 0!==t||!0===e?"tools":"compact"}({history:d,onVoice:u,acceptImages:m}),G=n=>{R(n),e?.(n)},Q=M.trim(),J=function(n,t,e,r){return(""!==n||t.length>0)&&!e&&!r}(Q,j,q,I),W=()=>{J&&(n(Q,j.map(n=>n.file)),G(""),B(),U(!1))},X=n=>{n.preventDefault(),W()},Y=n=>{G(n),U(!1),A.current?.focus()};if(E)return g(fn,{className:C,loading:q,poweredBy:p,style:Rn({colorScheme:o,radius:i,glow:c,paint:z,font:_,style:L}),onSubmit:X,children:E({fieldProps:{ref:A,value:M,placeholder:r,"aria-label":r,enterKeyHint:"send",rows:1,disabled:I,autoFocus:S,onChange(n){G(n.target.value)},onKeyDown:Nn},value:M,setValue:G,fill:Y,canSubmit:J,submit:W,images:j,addImages:H,removeImage:P})});return b("div",{ref:D,className:`cm-bar ${C}`.trimEnd(),"data-appearance":a,"data-layout":K,"data-multiline":O||void 0,"data-loading":!0===q||void 0,style:Rn({colorScheme:o,radius:i,glow:c,paint:z,font:_,style:L}),onKeyDown:n=>{V&&"Escape"===n.key&&(U(!1),A.current?.focus())},children:[g("style",{children:Mn}),g(xn,{suggestions:V?void 0:s,align:l,label:$.suggestions,disabled:I,onPick:Y}),b("div",{className:"cm-bar-shell",children:[g(yn,{glow:c,paint:z,loading:q}),g(wn,{id:F,isOpen:V,entries:d,labels:$,onPick:Y}),b("form",{className:"cm-bar-field","aria-busy":q,onSubmit:X,children:[g(kn,{picked:j,label:$.removeImage,onRemove:P}),b("div",{className:"cm-bar-row",children:["compact"===K&&g(gn,{className:"cm-bar-mark"}),g("textarea",{ref:A,className:"cm-bar-input",rows:1,value:M,placeholder:r,"aria-label":r,enterKeyHint:"send",disabled:I,autoFocus:S,onChange:n=>{G(n.target.value)},onKeyDown:Nn}),g(_n,{isShown:""!==M,label:$.clear,disabled:I,onClear:()=>{Y("")}}),"compact"===K&&w,g("button",{type:"submit",className:"cm-bar-send",disabled:!J,"aria-label":$.send,children:f??g(Cn,{})})]}),"tools"===K&&b("div",{className:"cm-bar-footer",children:[b("div",{className:"cm-bar-tools",children:[m&&g(In,{label:$.addImages,disabled:I,onAdd:H}),d&&g(qn,{label:$.history,disabled:I,"aria-expanded":V,"aria-controls":F,onClick:()=>{U(n=>!n)},children:g(Tn,{})}),u&&g(Sn,{labels:$,disabled:I,loading:q,onVoice:u}),w]}),g(vn,{})]})]})]}),"compact"===K&&p&&g(vn,{})]})}function fn({className:n,loading:t,poweredBy:e,style:r,onSubmit:a,children:o}){return b("div",{className:`cm-bar ${n}`.trimEnd(),"data-layout":"custom","data-loading":!0===t||void 0,style:r,children:[g("style",{children:Mn}),b("form",{className:"cm-bar-custom","aria-busy":t,onSubmit:a,children:[g(gn,{className:"cm-bar-mark"}),o]}),e&&g(vn,{})]})}function vn(){return g("span",{className:"cm-bar-powered-by",children:"Powered by Callimacus"})}function yn({glow:n,paint:t,loading:e}){return void 0!==n&&!1!==n||void 0!==t||!0===e?g("span",{className:"cm-bar-glow","aria-hidden":"true"}):null}function xn({suggestions:n=[],align:t,label:e,disabled:r,onPick:a}){return 0===n.length?null:g("div",{className:"cm-bar-suggestions",role:"group","aria-label":e,"data-align":t,children:n.map((n,t)=>g("button",{type:"button",className:"cm-bar-suggestion",disabled:r,onClick:()=>{a(n)},children:n},t))})}function wn({id:n,isOpen:t,entries:e=[],labels:r,onPick:a}){return t?g("div",{id:n,className:"cm-bar-history",role:"group","aria-label":r.history,children:0===e.length?g("p",{className:"cm-bar-history-empty",children:r.historyEmpty}):g("ul",{children:e.map((n,t)=>g("li",{children:g("button",{type:"button",className:"cm-bar-history-item",onClick:()=>{a(n)},children:n})},t))})}):null}function kn({picked:n,label:t,onRemove:e}){return 0===n.length?null:g("ul",{className:"cm-bar-images",children:n.map(({file:n,url:r})=>b("li",{className:"cm-bar-image",children:[g("img",{src:r,alt:n.name}),g("button",{type:"button","aria-label":`${t} ${n.name}`,title:`${t} ${n.name}`,onClick:()=>{e(r)},children:g(Ln,{})})]},r))})}function _n({isShown:n,label:t,disabled:e,onClear:r}){return n?g("button",{type:"button",className:"cm-bar-clear","aria-label":t,title:t,disabled:e,onClick:r,children:g(Ln,{})}):null}function qn({label:n,children:t,...e}){return g("button",{type:"button",className:"cm-bar-tool","aria-label":n,title:n,...e,children:t})}function In({label:n,disabled:t,onAdd:e}){const r=x(null);return b(h,{children:[g(qn,{label:n,disabled:t,onClick:()=>{r.current?.click()},children:g(En,{})}),g("input",{ref:r,hidden:!0,type:"file",accept:"image/*",multiple:!0,onChange:n=>{e([...n.target.files??[]]),n.target.value=""}})]})}function Sn({labels:n,disabled:t,loading:e,onVoice:r}){const a=mn({onRecordingComplete:r}),o="recording"===a.state,i=o?n.stopVoice:n.startVoice,c=(!0===t||!0===e)&&!o;return g(qn,{label:a.error??i,disabled:c,"aria-pressed":o,onClick:()=>{o?a.stopRecording():a.startRecording()},children:g(zn,{})})}function Cn(){return g("svg",{viewBox:"0 0 10 11",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:g("path",{d:"M.5 4.67 4.88.5m0 0 4.37 4.17M4.88.5v10"})})}function Ln(){return g("svg",{viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeLinecap:"round","aria-hidden":"true",children:g("path",{d:"M.5.5l9 9m0-9-9 9"})})}function En(){return g("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeLinecap:"round","aria-hidden":"true",children:g("path",{d:"M8 2.5v11M2.5 8h11"})})}function Tn(){return g("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:g("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 zn(){return b("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[g("rect",{x:"6",y:"2.5",width:"4",height:"7",rx:"2"}),g("path",{d:"M3.5 8a4.5 4.5 0 0 0 9 0M8 12.5v1"})]})}function Nn(n){"Enter"!==n.key||n.shiftKey||n.nativeEvent.isComposing||(n.preventDefault(),n.currentTarget.form?.requestSubmit())}function Rn({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 Mn="\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{hn as CallimacusBar,gn as CallimacusMark,j as runCartCommand,I as thamyrApi,cn as useActions,Y as useApi,_ as useCallimacusStore,X as useCart,G as useConnection,B as useInitThamyr,tn as useMapPage,J as useOnConnectionChange,W as useOnError,Q as useOnResponse,A as useShopifyCart,H as useShopifyCartNotices,nn as useSitemap,Z as useSkesis,sn as useSubmission,K as useSuggestions,F as useThamyr,pn as useTtsAudio,mn as useVoiceRecorder};
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/callimacus/hooks.ts","../../../src/callimacus/map.ts","../../../src/callimacus/actions.ts","../../../src/voice/use-voice-recorder.ts","../../../src/audio/use-tts-audio.ts","../../../src/callimacus-bar/callimacus-mark.tsx","../../../src/callimacus-bar/callimacus-bar.tsx"],"sourcesContent":[null,null,null,null,null,null,null],"names":["useEventListener","addListener","callback","callbackRef","useRef","current","useEffect","arg","useInitThamyr","config","init","useCallimacusStore","s","reset","markInitRequested","markInitOwnerMounted","markInitOwnerUnmounted","clientId","endpoint","useThamyr","history","messages","sendEvent","sendAudio","rounds","useMemo","openLanding","value","options","UserInteractionType","CREATE_ROUND","landingRound","sendInteraction","id","interactionRound","refresh","block","interaction","NO_SUGGESTIONS","suggestions","loading","useSuggestions","prefix","storyId","language","debounceMs","isConnected","connectionStatus","state","setState","useState","wasConnected","setWasConnected","isStale","timer","setTimeout","getState","_thamyr","suggest","Promise","resolve","then","catch","clearTimeout","useConnection","status","useOnResponse","addResponseListener","useOnConnectionChange","addConnectionListener","useOnError","addErrorListener","useCart","async","waitForInstance","cart","getCart","productId","addItemToCart","removeItemFromCart","quantity","updateProductQuantity","useApi","thamyrApi","useSkesis","anchorId","skesis","similar","related","useSitemap","sitemap","getSitemap","useMapPage","pathname","settled","setSettled","isMapPath","undefined","parseMapPath","resolveMapPage","page","error","Error","String","failed","ok","IDLE","useSubmissions","create","latestSubmission","Map","useActions","isReady","subscribe","run","useCallback","action","story","round","payload","type","globalThis","location","newTab","open","url","assign","inputEvent","data","call","thamyr","submissionId","randomUuid","set","form","sent","fields","document","context","title","replaceAll","slice","replace","result","unsubscribe","message","chapter","blocks","map","deliverResultOf","find","found","deliveredResult","get","ready","useSubmission","defaultOptions","useVoiceRecorder","silenceThreshold","silenceDuration","maxDuration","onRecordingComplete","audioLevels","setAudioLevels","setError","mediaRecorderRef","audioContextRef","analyserRef","streamRef","animationFrameRef","silenceStartRef","maxDurationTimerRef","chunksRef","stoppingRef","cleanup","cancelAnimationFrame","track","getTracks","stop","close","stopRecording","startRecording","stream","navigator","mediaDevices","getUserMedia","audio","echoCancellation","noiseSuppression","sampleRate","audioContext","AudioContext","source","createMediaStreamSource","analyser","createAnalyser","fftSize","smoothingTimeConstant","connect","mimeType","MediaRecorder","isTypeSupported","mediaRecorder","addEventListener","event","size","push","audioBlob","Blob","start","monitorAudio","bufferLength","frequencyBinCount","dataArray","Uint8Array","getByteFrequencyData","step","Math","floor","levels","i","sum","j","sumSquares","normalized","rms","sqrt","log10","Date","now","requestAnimationFrame","useTtsAudio","audioRef","audioUrl","Audio","element","preload","onPlaying","onWaiting","onPause","previous","onEnded","onError","pause","removeEventListener","src","play","currentTime","toggle","paused","isPlaying","CallimacusMark","props","_jsx","viewBox","fill","role","children","d","defaultLabels","send","clear","historyEmpty","startVoice","stopVoice","addImages","removeImage","CallimacusBar","onSubmit","controlledValue","onValueChange","placeholder","appearance","colorScheme","radius","glow","suggestionsAlign","onVoice","acceptImages","poweredBy","labels","labelOverrides","sendIcon","actions","font","disabled","autoFocus","className","style","sendLabel","tint","ownValue","setOwnValue","ref","inputRef","isMultiline","setIsMultiline","input","ResizeObserver","observer","clientHeight","Number","parseFloat","getComputedStyle","lineHeight","observe","disconnect","CSS","supports","height","scrollHeight","useTextField","rootRef","isOpen","isHistoryOpen","setIsOpen","setIsHistoryOpen","closeOutside","target","Node","contains","usePopover","picked","add","remove","clearImages","setPicked","urlsRef","Set","urls","URL","revokeObjectURL","release","delete","files","added","file","createObjectURL","filter","image","useImages","historyId","useId","overrides","labelsOf","layout","layoutOf","setValue","next","prompt","trim","canSubmit","images","length","canSend","submit","preventDefault","focus","HostBar","barStyle","paint","fieldProps","enterKeyHint","rows","onChange","onKeyDown","sendOnEnter","_jsxs","trimEnd","key","css","Suggestions","align","label","onPick","Glow","History","entries","Images","onRemove","ClearButton","isShown","onClear","ArrowIcon","AddImagesButton","onAdd","ToolButton","onClick","BookIcon","VoiceButton","PoweredBy","suggestion","index","entry","alt","name","CloseIcon","_Fragment","click","PlusIcon","hidden","accept","multiple","recorder","isRecording","isBlocked","MicIcon","stroke","strokeLinecap","strokeLinejoin","x","y","width","rx","shiftKey","nativeEvent","isComposing","currentTarget","requestSubmit","join"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/callimacus/shopify-cart.ts","../../../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,null],"names":["settingsByInstance","WeakMap","carts","Map","pageStorage","shopifyCart","locale","cart","get","undefined","isBrowser","window","createShopifyCart","settings","async","cartSettingsFor","thamyr","waitForInstance","endpoint","accessToken","sitemap","config","readShopifySettings","createContractClient","useCallimacusStore","getState","_shopify","set","shopifySettings","language","document","documentElement","lang","navigator","pageLocale","storage","createPageStorage","hasShopifySettings","useShopifyCart","options","useMemo","RAN_KEY","ranInPage","Set","isNewRound","chapterId","ran","JSON","parse","localStorage","getItem","Array","isArray","filter","id","storedRounds","includes","has","setItem","stringify","slice","add","UNAVAILABLE","runCartCommand","command","isVariantGid","variantId","asked","Math","trunc","quantity","min","max","Number","isFinite","result","addItem","notice","named","item","name","length","map","option","value","join","base","error","outcome","message","warnings","code","noticeOf","_addCartNotice","analytics","trackEvent","storyId","eventName","payload","useShopifyCartNotices","state","cartNotices","useEventListener","addListener","callback","callbackRef","useRef","current","useEffect","arg","useInitThamyr","init","s","reset","markInitRequested","markInitOwnerMounted","stopCartCommands","addResponseListener","response","type","ThamyrResponseType","CART_COMMAND","data","markInitOwnerUnmounted","clientId","useThamyr","history","messages","sendEvent","sendAudio","rounds","openLanding","UserInteractionType","CREATE_ROUND","landingRound","sendInteraction","interactionRound","refresh","block","interaction","NO_SUGGESTIONS","suggestions","loading","useSuggestions","prefix","debounceMs","isConnected","connectionStatus","setState","useState","wasConnected","setWasConnected","isStale","timer","setTimeout","_thamyr","suggest","Promise","resolve","then","catch","clearTimeout","useConnection","status","useOnResponse","useOnConnectionChange","addConnectionListener","useOnError","addErrorListener","useCart","getCart","productId","addItemToCart","removeItemFromCart","updateProductQuantity","useApi","thamyrApi","useSkesis","anchorId","skesis","similar","related","useSitemap","getSitemap","useMapPage","pathname","settled","setSettled","isMapPath","parseMapPath","resolveMapPage","page","Error","String","failed","ok","IDLE","useSubmissions","create","latestSubmission","useActions","isReady","subscribe","run","useCallback","action","story","round","globalThis","location","newTab","open","url","assign","inputEvent","call","submissionId","randomUuid","form","sent","fields","context","title","replaceAll","replace","unsubscribe","chapter","blocks","deliverResultOf","find","found","deliveredResult","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","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","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","parseFloat","getComputedStyle","lineHeight","observe","disconnect","CSS","supports","height","scrollHeight","useTextField","rootRef","isOpen","isHistoryOpen","setIsOpen","setIsHistoryOpen","closeOutside","target","Node","contains","usePopover","picked","remove","clearImages","setPicked","urlsRef","urls","URL","revokeObjectURL","release","delete","files","added","file","createObjectURL","image","useImages","historyId","useId","overrides","labelsOf","layout","layoutOf","setValue","next","prompt","trim","canSubmit","images","canSend","submit","preventDefault","focus","HostBar","barStyle","paint","fieldProps","enterKeyHint","rows","onChange","onKeyDown","sendOnEnter","_jsxs","trimEnd","key","css","Suggestions","align","label","onPick","Glow","History","entries","Images","onRemove","ClearButton","isShown","onClear","ArrowIcon","AddImagesButton","onAdd","ToolButton","onClick","BookIcon","VoiceButton","PoweredBy","suggestion","index","entry","alt","CloseIcon","_Fragment","click","PlusIcon","hidden","accept","multiple","recorder","isRecording","isBlocked","MicIcon","stroke","strokeLinecap","strokeLinejoin","x","y","width","rx","shiftKey","nativeEvent","isComposing","currentTarget","requestSubmit"],"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-
|
|
8
|
+
import{queryOptions as t}from"@tanstack/react-query";import{t as r}from"./chunks/api-BDSbXlo-.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
|
package/dist/types/index.d.ts
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
import * as _callimacus_thamyr_core from '@callimacus/thamyr-core';
|
|
9
|
-
import { UiObserverConfig, RoundOptions, CallimacusApi, ErrorMessage, ThamyrResponse, InteractionId, InteractionOptions, UserInteractionType, MapPage, InteractionPayloadMap, DeliverResult, Action, TtsAudio } from '@callimacus/thamyr-core';
|
|
10
|
-
export { ACTION_TYPES, ADD_TO_CART_RESULT_BLOCK, Action, ActionType, AddToCartResult, Block, BlockPatch, BoundingBox, CallimacusEvent, Chapter, ChapterStatus, ClientEvents, ClientInfo, ConnectionStatusCallback, DELIVER_RESULT_BLOCK, DeliverResult, DocumentIndexEntry, ErrorCallback, ErrorMessage, Gallery, GalleryMode, Image, ImageEdits, ImageFormatEdit, ImageResizeEdit, InteractionContext, InteractionId, InteractionOptions, InteractionPayload, InteractionPayloadMap, LANDING_VALUE_MAX_LENGTH, LocalizedEPArtwork, LocalizedEPChapter, LogLevel, LoggerConfig, MapPage, MapPath, ProductMatch, RiveManifest, RoundOptions, SLDocument, SLDocumentSection, SLInputEvent, SLInputEventType, ServerEvents, ServerResponseCallback, SkesisItemPage, Story, SuggestPayload, Suggestions, ThamyrHttpError, ThamyrInteractionMap, ThamyrResponse, ThamyrResponseType, Topic, TtsAudio, UiElement, UiObserverConfig, UiSnapshot, UserInteraction, UserInteractionType, Video, WhisperPayload, 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';
|
|
9
|
+
import { UiObserverConfig, ShopifyConfig, CartCommand, RoundOptions, CallimacusApi, ErrorMessage, ThamyrResponse, InteractionId, InteractionOptions, UserInteractionType, ShopifyCartClient, MapPage, InteractionPayloadMap, DeliverResult, Action, TtsAudio } from '@callimacus/thamyr-core';
|
|
10
|
+
export { ACTION_TYPES, ADD_TO_CART_RESULT_BLOCK, Action, ActionType, AddToCartResult, Block, BlockPatch, BoundingBox, CallimacusEvent, CartCommand, Chapter, ChapterStatus, ClientEvents, ClientInfo, ConnectionStatusCallback, DELIVER_RESULT_BLOCK, DeliverResult, DocumentIndexEntry, ErrorCallback, ErrorMessage, Gallery, GalleryMode, Image, ImageEdits, ImageFormatEdit, ImageResizeEdit, InteractionContext, InteractionId, InteractionOptions, InteractionPayload, InteractionPayloadMap, LANDING_VALUE_MAX_LENGTH, LocalizedEPArtwork, LocalizedEPChapter, LogLevel, LoggerConfig, MapPage, MapPath, ProductMatch, RiveManifest, RoundOptions, SLDocument, SLDocumentSection, SLInputEvent, SLInputEventType, STOREFRONT_API_VERSION, ServerEvents, ServerResponseCallback, ShopifyCart, ShopifyCartError, ShopifyCartErrorCode, ShopifyCartLine, ShopifyCartResult, ShopifyCartWarning, ShopifyConfig, ShopifyMoney, ShopifyUserError, SkesisItemPage, Story, SuggestPayload, Suggestions, ThamyrHttpError, ThamyrInteractionMap, ThamyrResponse, ThamyrResponseType, Topic, TtsAudio, UiElement, UiObserverConfig, UiSnapshot, UserInteraction, UserInteractionType, Video, WhisperPayload, 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';
|
|
11
11
|
import { Thamyr } from '@callimacus/thamyr';
|
|
12
12
|
import * as zustand from 'zustand';
|
|
13
13
|
import * as react from 'react';
|
|
@@ -37,6 +37,28 @@ type CallimacusInitConfig = {
|
|
|
37
37
|
Maximum number of messages to retain in history. Set to `0` for unlimited. Defaults to `50`.
|
|
38
38
|
*/
|
|
39
39
|
maxMessages?: number;
|
|
40
|
+
/**
|
|
41
|
+
The Shopify store the site sells from: its cart (`useShopifyCart`, and the `cart` action) then runs on
|
|
42
|
+
Shopify in the shopper's browser, tokenless until a storefront token exists. Once the store is connected,
|
|
43
|
+
what Callimacus knows about it (its primary domain, its token, the buyer's country per locale, whether the
|
|
44
|
+
cart is on) wins over these values; the token here stays in use while Callimacus has none.
|
|
45
|
+
*/
|
|
46
|
+
shopify?: ShopifyConfig;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
What one of the chat's adds to the bag came to, for the chat to show: `added`, `refused` by Shopify
|
|
50
|
+
(its own words in `message`: sold out, not available here), `unavailable` (the cart is off on this
|
|
51
|
+
site, or the store refuses it), or `failed` (the store did not answer).
|
|
52
|
+
*/
|
|
53
|
+
type ShopifyCartNotice = {
|
|
54
|
+
/**
|
|
55
|
+
The round that asked for it.
|
|
56
|
+
*/
|
|
57
|
+
id: string;
|
|
58
|
+
outcome: 'added' | 'refused' | 'unavailable' | 'failed';
|
|
59
|
+
message: string;
|
|
60
|
+
item: CartCommand['item'];
|
|
61
|
+
quantity: number;
|
|
40
62
|
};
|
|
41
63
|
|
|
42
64
|
/**
|
|
@@ -45,9 +67,9 @@ Initialize the Thamyr SDK for React usage.
|
|
|
45
67
|
Call this once in your root component. When `clientId` or `endpoint` change,
|
|
46
68
|
the hook tears down the current instance via `reset()` and re-initializes.
|
|
47
69
|
|
|
48
|
-
`uiObserver` and `
|
|
49
|
-
array because `uiObserver`
|
|
50
|
-
infinite reset loops. If these need to change at runtime, unmount and remount
|
|
70
|
+
`uiObserver`, `maxMessages` and `shopify` are intentionally excluded from the
|
|
71
|
+
dependency array because `uiObserver` and `shopify` are typically object literals
|
|
72
|
+
that would cause infinite reset loops. If these need to change at runtime, unmount and remount
|
|
51
73
|
the component calling `useInitThamyr` instead (e.g., use a `key` prop).
|
|
52
74
|
|
|
53
75
|
@param config - SDK configuration (client ID, endpoint, UI observer, max messages).
|
|
@@ -1850,6 +1872,23 @@ declare function useThamyr(): {
|
|
|
1850
1872
|
};
|
|
1851
1873
|
fire: Array<string>;
|
|
1852
1874
|
};
|
|
1875
|
+
} | {
|
|
1876
|
+
type: "cart-command";
|
|
1877
|
+
data: {
|
|
1878
|
+
storyId: string;
|
|
1879
|
+
chapterId: string;
|
|
1880
|
+
command: "shopify-add";
|
|
1881
|
+
variantId: string;
|
|
1882
|
+
quantity: number;
|
|
1883
|
+
item: {
|
|
1884
|
+
id: string;
|
|
1885
|
+
name: string;
|
|
1886
|
+
options: Array<{
|
|
1887
|
+
name: string;
|
|
1888
|
+
value: string;
|
|
1889
|
+
}>;
|
|
1890
|
+
};
|
|
1891
|
+
};
|
|
1853
1892
|
})[];
|
|
1854
1893
|
sendEvent: <T extends UserInteractionType>(type: T, payload: _callimacus_thamyr_core.InteractionPayloadMap[T]) => void;
|
|
1855
1894
|
sendAudio: (audio: Blob, query?: string) => void;
|
|
@@ -2112,6 +2151,61 @@ In React components, prefer {@link useApi}, which returns this object.
|
|
|
2112
2151
|
*/
|
|
2113
2152
|
declare const thamyrApi: CallimacusApi;
|
|
2114
2153
|
|
|
2154
|
+
/**
|
|
2155
|
+
Options of {@link useShopifyCart}.
|
|
2156
|
+
*/
|
|
2157
|
+
type UseShopifyCartOptions = {
|
|
2158
|
+
/**
|
|
2159
|
+
The site's current locale (`it-IT`, `en`): the buyer's country is the one Callimacus names for it.
|
|
2160
|
+
Defaults to the page's language (`<html lang>`), then the browser's.
|
|
2161
|
+
*/
|
|
2162
|
+
locale?: string;
|
|
2163
|
+
};
|
|
2164
|
+
/**
|
|
2165
|
+
Return type of {@link useShopifyCart}: `useCart`'s methods plus `checkout`, on Shopify.
|
|
2166
|
+
*/
|
|
2167
|
+
type ShopifyCartActions = ShopifyCartClient;
|
|
2168
|
+
/**
|
|
2169
|
+
The Shopify cart, kept in the shopper's browser: `useCart`'s methods plus `checkout()`, called straight
|
|
2170
|
+
on the store's Storefront API with the buyer's country, no Callimacus server in the path. The cart
|
|
2171
|
+
survives a reload and is shared by the tabs of the browser. Needs `shopify` in the `useInitThamyr` config,
|
|
2172
|
+
or a store connected to the project.
|
|
2173
|
+
|
|
2174
|
+
Every method resolves `{data, error, warnings}` and never rejects: `data` is the cart (`undefined` before
|
|
2175
|
+
the first add), `error.code` says what went wrong (`cart_disabled` on the site's preview, `refused` with
|
|
2176
|
+
Shopify's `userErrors` for a sold-out or unpublished product, `throttled`, `network`, …), and `warnings`
|
|
2177
|
+
carries what Shopify did other than asked (e.g. it added fewer than asked for).
|
|
2178
|
+
|
|
2179
|
+
@returns A referentially stable object (for a given `locale`).
|
|
2180
|
+
|
|
2181
|
+
@example
|
|
2182
|
+
```tsx
|
|
2183
|
+
function AddToBag({ variantId }: { variantId: string }) {
|
|
2184
|
+
const { addItem } = useShopifyCart();
|
|
2185
|
+
const onClick = async () => {
|
|
2186
|
+
const { error, warnings } = await addItem(variantId, 1);
|
|
2187
|
+
if (error) showNotice(error.message);
|
|
2188
|
+
else if (warnings.length > 0) showNotice(warnings[0].message);
|
|
2189
|
+
};
|
|
2190
|
+
return <button onClick={onClick}>Add to bag</button>;
|
|
2191
|
+
}
|
|
2192
|
+
```
|
|
2193
|
+
*/
|
|
2194
|
+
declare function useShopifyCart(options?: UseShopifyCartOptions): ShopifyCartActions;
|
|
2195
|
+
/**
|
|
2196
|
+
Runs one of the chat's adds to the bag (a `cart-command`) in the Shopify cart, at most once per
|
|
2197
|
+
round: a command for a round already run (a replay, a redelivery, a reload) adds nothing. Only a
|
|
2198
|
+
Shopify variant id goes out, and at most 10 of it. The outcome becomes a local notice
|
|
2199
|
+
(`useShopifyCartNotices`) and a track event, which starts no round. Never rejects; resolves the
|
|
2200
|
+
notice, or nothing when the command was not run.
|
|
2201
|
+
*/
|
|
2202
|
+
declare function runCartCommand(command: CartCommand): Promise<ShopifyCartNotice | undefined>;
|
|
2203
|
+
/**
|
|
2204
|
+
What the chat's adds to the bag came to, newest last: show them as local notices in the chat
|
|
2205
|
+
(the reply says the item is being added; the notice says whether it was).
|
|
2206
|
+
*/
|
|
2207
|
+
declare function useShopifyCartNotices(): ShopifyCartNotice[];
|
|
2208
|
+
|
|
2115
2209
|
/**
|
|
2116
2210
|
What {@link useMapPage} returns.
|
|
2117
2211
|
*/
|
|
@@ -2167,6 +2261,14 @@ type CallimacusState = {
|
|
|
2167
2261
|
error: ErrorMessage | undefined;
|
|
2168
2262
|
_initialized: boolean;
|
|
2169
2263
|
_thamyr: Thamyr | undefined;
|
|
2264
|
+
/**
|
|
2265
|
+
The init config's Shopify settings, kept with the instance they came with: the Shopify cart reads them.
|
|
2266
|
+
*/
|
|
2267
|
+
_shopify: ShopifyConfig | undefined;
|
|
2268
|
+
/**
|
|
2269
|
+
What the chat's adds to the bag came to, newest last: the local notices a chat shows (`useShopifyCartNotices`).
|
|
2270
|
+
*/
|
|
2271
|
+
cartNotices: ShopifyCartNotice[];
|
|
2170
2272
|
init: (config: CallimacusInitConfig) => void;
|
|
2171
2273
|
reset: () => void;
|
|
2172
2274
|
sendEvent: <T extends UserInteractionType>(type: T, payload: InteractionPayloadMap[T]) => void;
|
|
@@ -2174,6 +2276,7 @@ type CallimacusState = {
|
|
|
2174
2276
|
addResponseListener: (cb: ResponseListener) => () => void;
|
|
2175
2277
|
addConnectionListener: (cb: ConnectionListener) => () => void;
|
|
2176
2278
|
addErrorListener: (cb: ErrorListener) => () => void;
|
|
2279
|
+
_addCartNotice: (notice: ShopifyCartNotice) => void;
|
|
2177
2280
|
};
|
|
2178
2281
|
/**
|
|
2179
2282
|
Low-level Zustand store powering the Thamyr React SDK.
|
|
@@ -2233,8 +2336,8 @@ type Submission = {
|
|
|
2233
2336
|
};
|
|
2234
2337
|
/**
|
|
2235
2338
|
Runs component actions (`actionOf` reads them off block data): `link` opens the
|
|
2236
|
-
URL, `ask` and `interact` send a round on the open story, `cart` adds to the
|
|
2237
|
-
cart, `submit` sends the fields as a round of the project's form and resolves
|
|
2339
|
+
URL, `ask` and `interact` send a round on the open story, `cart` adds one to the
|
|
2340
|
+
cart (the Shopify cart when the init config has `shopify`), `submit` sends the fields as a round of the project's form and resolves
|
|
2238
2341
|
with its delivery result. A form is inputs plus a button that runs
|
|
2239
2342
|
`{type: 'submit', form}` with `{fields: fieldsOf(form)}`; `useSubmission(form)`
|
|
2240
2343
|
follows it.
|
|
@@ -2518,5 +2621,5 @@ The Callimacus constellation mark. Inherits `currentColor`.
|
|
|
2518
2621
|
*/
|
|
2519
2622
|
declare function CallimacusMark(props: SVGProps<SVGSVGElement>): react.JSX.Element;
|
|
2520
2623
|
|
|
2521
|
-
export { CallimacusBar, CallimacusMark, thamyrApi, useActions, useApi, useCallimacusStore, useCart, useConnection, useInitThamyr, useMapPage, useOnConnectionChange, useOnError, useOnResponse, useSitemap, useSkesis, useSubmission, useSuggestions, useThamyr, useTtsAudio, useVoiceRecorder };
|
|
2522
|
-
export type { ActionResult, Actions, CallimacusBarAppearance, CallimacusBarColorScheme, CallimacusBarLabels, CallimacusBarProps, CallimacusInitConfig, CartActions, ConnectionStatus, MapPageState, RunOptions, SitemapActions, SkesisActions, Submission, SuggestionsOptions, SuggestionsState, TtsAudioState, UseTtsAudioReturn, UseVoiceRecorderOptions, UseVoiceRecorderReturn, VoiceRecorderState };
|
|
2624
|
+
export { CallimacusBar, CallimacusMark, runCartCommand, thamyrApi, useActions, useApi, useCallimacusStore, useCart, useConnection, useInitThamyr, useMapPage, useOnConnectionChange, useOnError, useOnResponse, useShopifyCart, useShopifyCartNotices, useSitemap, useSkesis, useSubmission, useSuggestions, useThamyr, useTtsAudio, useVoiceRecorder };
|
|
2625
|
+
export type { ActionResult, Actions, CallimacusBarAppearance, CallimacusBarColorScheme, CallimacusBarLabels, CallimacusBarProps, CallimacusInitConfig, CartActions, ConnectionStatus, MapPageState, RunOptions, ShopifyCartActions, ShopifyCartNotice, SitemapActions, SkesisActions, Submission, SuggestionsOptions, SuggestionsState, TtsAudioState, UseShopifyCartOptions, UseTtsAudioReturn, UseVoiceRecorderOptions, UseVoiceRecorderReturn, VoiceRecorderState };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@callimacus/thamyr-react",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.13.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "React package for Thamyr",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
"storybook": "storybook dev -p 6006"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@callimacus/thamyr": "^4.
|
|
44
|
-
"@callimacus/thamyr-core": "^4.
|
|
43
|
+
"@callimacus/thamyr": "^4.13.0",
|
|
44
|
+
"@callimacus/thamyr-core": "^4.13.0",
|
|
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}),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 +0,0 @@
|
|
|
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]}
|