vdb-ai-chat 1.0.37 → 1.0.39

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.
@@ -235,20 +235,21 @@
235
235
  flex-direction: row;
236
236
  align-items: center;
237
237
  gap: 2px;
238
- `,Ao=vn.View``,Ro=i.A.create({listContent:{gap:8},left:{flexDirection:"row",alignItems:"flex-start",minWidth:0},serialContainer:{alignItems:"flex-start",justifyContent:"center",marginRight:4},tokens:{flexDirection:"row",flexWrap:"wrap",gap:2,flex:1,minWidth:0},lineBreak:{width:"100%",height:0},rowCenter:{flexDirection:"row",alignItems:"center"}}),To=(0,t.memo)(ao),Po=e=>{let{data:n,onViewAll:r,onItemPress:i,variant:o="list",totalResults:a,item:s,showMoreResults:l,showLessResults:u,trackAnalyticsEvent:c,currentPage:d=1,isLoadingMore:h=!1}=e;return n&&n.length?"list"===o?t.createElement(To,{data:n,onViewAll:r,onItemPress:i,totalResults:a,item:s,showMoreResults:l,showLessResults:u,trackAnalyticsEvent:c,currentPage:d,isLoadingMore:h}):t.createElement(to,{data:n,onViewAll:r,onItemPress:i,totalResults:a,item:s}):null},Oo=e=>{let{messageId:i,payload:o,onFetched:a,priceMode:s,apiUrl:l}=e;const{ref:u,inView:c}=function(){const e=(0,t.useRef)(null),[n,i]=(0,t.useState)(!1);return(0,t.useEffect)(()=>{if("web"!==r.A.OS)return void i(!0);const t=e.current;if(!t||"undefined"==typeof IntersectionObserver)return void i(!0);const n=new IntersectionObserver(e=>{const t=e[0];i(t.isIntersecting)},{root:null,rootMargin:"0px",threshold:.1});return n.observe(t),()=>{n.disconnect()}},[]),{ref:e,inView:n}}(),d=(0,t.useRef)(!1);return(0,t.useEffect)(()=>{d.current||o&&"object"==typeof o&&c&&(d.current=!0,(async()=>{try{const e=await Ki(l,o);a(i,e)}catch(e){console.error("Lazy fetch products failed",e)}})())},[c,i,a,o,s]),t.createElement(n.A,{ref:u,style:{height:1}})},Io=e=>{let t="web";if(e)switch(e){case"Linux":t="android";break;case"iPhone":t="ios";break;default:t="web"}else t=String(r.A.OS);return(e=>{switch(e){case ai.WEB:return 0;case ai.IOS:return 1;case ai.ANDROID:default:return 2}})(t).toString()},No=async()=>{const e=await oi(),t="web"===r.A.OS?{system_type_enum:Io(null),platform_action_enum:"0"}:{};return{user_company_id:e?.company_id?.toString(),user_company_name:e?.company,user_email:e?.email,user_id:e?.id?.toString(),user_name:e?.first_name?`${e?.first_name} ${e?.last_name}`:void 0,user_price_mode:e?.price_mode?.toString(),price_mode:e?.price_mode?.toString(),has_plan_details:!!e?.plan_details,userAgent:"web"===r.A.OS?navigator.userAgent:"",...t}};var Lo=a(7918),Do=a.n(Lo),Mo=a(5685);var Fo=a(5556),Vo=a.n(Fo);const jo=Vo().oneOfType([Vo().string,Vo().number]),zo={all:Vo().bool,grid:Vo().bool,aural:Vo().bool,braille:Vo().bool,handheld:Vo().bool,print:Vo().bool,projection:Vo().bool,screen:Vo().bool,tty:Vo().bool,tv:Vo().bool,embossed:Vo().bool},Bo={orientation:Vo().oneOf(["portrait","landscape"]),scan:Vo().oneOf(["progressive","interlace"]),aspectRatio:Vo().string,deviceAspectRatio:Vo().string,height:jo,deviceHeight:jo,width:jo,deviceWidth:jo,color:Vo().bool,colorIndex:Vo().bool,monochrome:Vo().bool,resolution:jo,type:Object.keys(zo)},{type:Ho,...$o}=Bo,Wo={minAspectRatio:Vo().string,maxAspectRatio:Vo().string,minDeviceAspectRatio:Vo().string,maxDeviceAspectRatio:Vo().string,minHeight:jo,maxHeight:jo,minDeviceHeight:jo,maxDeviceHeight:jo,minWidth:jo,maxWidth:jo,minDeviceWidth:jo,maxDeviceWidth:jo,minColor:Vo().number,maxColor:Vo().number,minColorIndex:Vo().number,maxColorIndex:Vo().number,minMonochrome:Vo().number,maxMonochrome:Vo().number,minResolution:jo,maxResolution:jo,...$o};var Uo={all:{...zo,...Wo},types:zo,matchers:Bo,features:Wo};const Ko=(0,t.createContext)(void 0),qo=e=>{if(e)return Object.keys(e).reduce((t,n)=>(t[(0,Mo.default)(n)]=e[n],t),{})},Yo=()=>{const e=(0,t.useRef)(!1);return(0,t.useEffect)(()=>{e.current=!0},[]),e.current},Go=e=>{const n=()=>(e=>e.query||(e=>{const t=[];return Object.keys(Uo.all).forEach(n=>{const r=e[n];null!=r&&t.push(((e,t)=>{const n=(0,Mo.default)(e);return"number"==typeof t&&(t=`${t}px`),!0===t?n:!1===t?`not ${n}`:`(${n}: ${t})`})(n,r))}),t.join(" and ")})(e))(e),[r,i]=(0,t.useState)(n);return(0,t.useEffect)(()=>{const e=n();r!==e&&i(e)},[e]),r},Xo=(e,n,r)=>{const i=(e=>{const n=(0,t.useContext)(Ko),r=()=>qo(e)||qo(n),[i,o]=(0,t.useState)(r);return(0,t.useEffect)(()=>{const e=r();(function(e,t){if(e===t)return!0;if(!e||!t)return!1;const n=Object.keys(e),r=Object.keys(t),i=n.length;if(r.length!==i)return!1;for(let r=0;r<i;r++){const i=n[r];if(e[i]!==t[i]||!Object.prototype.hasOwnProperty.call(t,i))return!1}return!0})(i,e)||o(e)},[e,n]),i})(n),o=Go(e);if(!o)throw new Error("Invalid or missing MediaQuery!");const a=((e,n)=>{const r=()=>Do()(e,n||{},!!n),[i,o]=(0,t.useState)(r),a=Yo();return(0,t.useEffect)(()=>{if(a){const e=r();return o(e),()=>{e&&e.dispose()}}},[e,n]),i})(o,i),s=(e=>{const[n,r]=(0,t.useState)(e.matches);return(0,t.useEffect)(()=>{const t=e=>{r(e.matches)};return e.addListener(t),r(e.matches),()=>{e.removeListener(t)}},[e]),n})(a),l=Yo();return(0,t.useEffect)(()=>{l&&r&&r(s)},[s]),(0,t.useEffect)(()=>()=>{a&&a.dispose()},[]),s},Jo={transparent:"transparent","main-01":"#292735","main-02":"#37363F","main-03":"#E3E3E9","main-04":"#3378F6","main-05":"#ffffff","main-06":"#292735","diam-01":"#804195","diam-02":"#713782","diam-03":"#EEE1F3","diam-04":"#9138AE","diam-05":"#ffffff","diam-06":"#9138AE","core-01":"#ffffff","core-02":"#EDEDF2","core-03":"#D5D5DC","core-04":"#ACACB3","core-05":"#020001","core-06":"#4F4E57","extra-01":"#A1A0AB","extra-02":"#292735","extra-03":"#E4E4EC","extra-04":"#DADAE0","extra-05":"#ffffff","extra-06":"#4F4E57","gem-01":"#3B72CC","gem-02":"#3C62A0","gem-03":"#DCE6F6","gem-04":"#3E76D2","gem-05":"#ffffff","gem-06":"#3E76D2","jewelry-01":"#58B8A5","jewelry-02":"#4CA191","jewelry-03":"#D6F1ED","jewelry-04":"#27AC92","jewelry-05":"#ffffff","jewelry-06":"#27AC92","lab-01":"#E97F5B","lab-02":"#DA704B","lab-03":"#F9E2D9","lab-04":"#E87B56","lab-05":"#ffffff","lab-06":"#E87B56","over-01":"#000000b3","over-02":"rgba(55,54,64,0.3)","over-03":"rgba(255,255,255,0.7)","over-04":"#ffffff","cont-00":"#ffffff","success-02":"#DBFFE4","success-01":"#00B140","error-02":"#FFE2E0","error-01":"#D0021B","warn-02":"#FFF8DB","warn-01":"#FFA500","primary-bg-static":"#292735","primary-bg-hover":"#37363F","primary-bg-disabled":"#D5D5DC","primary-cont":"#ffffff","primary-cont-disabled":"#ACACB3","secondary-bor-disabled":"#D5D5DC","secondary-cont-disabled":"#ACACB3","secondary-bg-hover":"#E3E3E9","secondary-bor-hover":"#37363F","secondary-bor-static":"#292735","secondary-cont":"#292735","tertiary-bg-static":"#E3E3E9","tertiary-bg-disabled":"#D5D5DC","tertiary-cont":"#292735","tertiary-cont-disabled":"#ACACB3","link-static":"#3378F6","link-hover":"#292735","option-bg-static":"#E4E4EC","option-bg-hover":"#DADAE0","option-bg-active":"#A1A0AB","option-cont":"#4F4E57","option-cont-active":"#ffffff","knob-bg-hover":"#E4E4EC","knob-bg-active":"#292735","knob-cont":"#ffffff","knob-bor":"#292735","toggle-bg-static":"#DADAE0","toggle-bg-on":"#292735","toggle-cont":"#ffffff","option-bg-disabled":"#D5D5DC","option-cont-disabled":"#ACACB3","knob-bg-disabled-off":"#EDEDF2","knob-bg-disabled-on":"#D5D5DC","knob-cont-disabled-on":"#ffffff","toggle-bg-disabled":"#D5D5DC","toggle-cont-disabled":"#EDEDF2","header-cont":"#ffffff","header-btn-cont":"#ffffff","header-bg-static":"#37363F","header-btn-bg-hover":"#37363F","header-btn-bg-active":"#E3E3E9","header-btn-bg-static":"#292735","header-btn-bor-hover":"#292735","header-btn-cont-active":"#292735","knob-bg-static":"#ffffff",Shadows:{Huge:{x:"2",y:"16",blur:"32",type:"dropShadow",color:"#37364066",spread:"-8"},Gentle:{x:"1",y:"2",blur:"4",type:"dropShadow",color:"#37364014",spread:"-2"},Normal:{x:"2",y:"8",blur:"24",type:"dropShadow",color:"#37364042",spread:"-6"},"Bottom-scroll":{x:"0",y:"-8",blur:"24",type:"dropShadow",color:"#37364029",spread:"-8"}}};let Qo=null;if("web"!==r.A.OS)try{Qo=a(Object(function(){var e=new Error("Cannot find module 'expo-device'");throw e.code="MODULE_NOT_FOUND",e}()))}catch{}const Zo=e=>{let{children:n}=e;const[i,o]=(0,t.useState)(Jo);if((0,t.useEffect)(()=>{(async()=>{try{const e=JSON.parse(await Pr("persist:root")||"{}"),t=e.theme?JSON.parse(e.theme):null;t&&o(t)}catch{}})()},[]),"web"===r.A.OS&&window.matchMedia("print").matches)return null;const a=Xo({maxWidth:767}),s=Xo({minWidth:767,maxWidth:1279}),l=Xo({minWidth:1279}),{width:u}=ei,c=a||u<=767,d=s||u>767&&u<=1279||"iPadOS"===Qo?.osName||ci(),h=(l||u>1279)&&!("iPadOS"===Qo?.osName||ci()),f=h&&!d&&!c,p={isMobile:c,isTablet:d,isDesktop:h,isLargeScreen:f},m=(0,t.useMemo)(()=>({...i,...p}),[i,c,d,h,f]);return t.createElement(Ut,{theme:m},n)};function ea(){return ea=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ea.apply(null,arguments)}const ta=(0,t.forwardRef)((i,o)=>{let{apiUrl:a,userToken:s,priceMode:l,modalHeight:u,theme:c,initialMessages:d=[],placeholder:h,onClose:f,onClearChat:p,onViewAllPress:m,onItemPress:g,isBetaMode:v,activeProductType:y,trackAnalyticsEvent:b,fromFilterScreen:_,translations:w,locale:S="en"}=i;const{t:x}=Br(),[C,E]=(0,t.useState)(d),[k,A]=(0,t.useState)(""),[R,T]=(0,t.useState)(!1),[P,O]=(0,t.useState)(null),[I,N]=(0,t.useState)(null),[L,D]=(0,t.useState)(""),[M,F]=(0,t.useState)({}),[V,j]=(0,t.useState)(new Set),[z,B]=(0,t.useState)(l||null),[H,$]=(0,t.useState)(s||""),[W,U]=(0,t.useState)(!1),[K,q]=(0,t.useState)(!0),[Y,G]=(0,t.useState)(void 0),[X,J]=(0,t.useState)(1),[Q,Z]=(0,t.useState)({}),[ee,te]=(0,t.useState)(new Set),ne=(0,t.useRef)(null),re=(0,t.useRef)(null),ie=(0,t.useRef)(0),oe=(0,t.useRef)(0),ae=(0,t.useRef)(!1),se=(0,t.useRef)(!1),le=(0,t.useRef)(!1),ue=(0,t.useMemo)(()=>({...Di,...c||{}}),[c]),{_identify:ce}=(()=>{const e=(0,t.useContext)(ht);return{trackEvent:async(t,n)=>{const r=await No(),i=e||window.analytics;i&&await i.track(t,{...r,...n})},_identify:async(t,n)=>{const r=e||window.analytics;r&&await r.identify(t,n)},_track:async(t,n)=>{const i=await No();if(o=i?.userAgent,o&&/^Mozilla\/5\.0 \([^;]+; CPU [^)]+ like Mac OS X\) AppleWebKit\/600\.1\.4 \(KHTML, like Gecko\) Version\/\d\.0 Mobile\/10B329 Safari\/8536\.25$/.test(o))return void console.warn("Skipping tracking for Segment user agent:",i.userAgent);var o;if(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return!e&&"web"===r.A.OS||[/bot/i,/crawl/i,/spider/i,/HeadlessChrome/i,/PhantomJS/i,/slurp/i,/curl/i,/wget/i,/httpclient/i].some(t=>t.test(e))}(i?.userAgent))return void console.warn("Skipping tracking for bot user agent:",i.userAgent);const a=e||window.analytics;if(!a)return;const s=await oi();s?.id?await a.identify(`${s.id}`,{name:`${s.first_name} ${s.last_name}`,email:s.email,country:s.country}):(console.error("Track Event tracked without user:",t,JSON.stringify(n)),console.error("Can't identify as user is not logged in",JSON.stringify(s))),await a.track(t,{...i,...n})}}})(),de=Boolean(v),he=Wt(),fe=he.isTablet;(0,t.useEffect)(()=>{zr({locale:S,translations:w})},[]),(0,t.useEffect)(()=>{(async(e,t)=>{if(!Dr.isInitialized)return;const n=await Vr(),r=jr(n,t),i=Fr(r);Dr.addResourceBundle(e,"translation",i,!0,!0),Dr.language!==e&&Dr.changeLanguage(e)})(S,w)},[S,w]),(0,t.useEffect)(()=>{(async()=>{try{if(!s){const e=await Nr("persist:userInfo",{}),t=JSON.parse(e?.user||"{}"),n=t?.token||"";n&&$(n)}}catch(e){console.error("Failed to load auth data from storage",e)}})()},[s]);const pe=async()=>{y&&await Lr("external_context",y)};(0,t.useEffect)(()=>{0===C.length&&pe()},[C]),(0,t.useEffect)(()=>{pe()},[y]);const me=(0,t.useCallback)(e=>{let t=e?.search_payload;const n=JSON.stringify(t),i=e?.search_payload;if(!i)return;const o="string"==typeof i.lab_grown?"true"===i.lab_grown:"boolean"==typeof i.lab_grown&&i.lab_grown,s=`${a}webapp/${o?"lab-grown-diamonds":"natural-diamonds"}/search?priceMode=${z}&productType=${o?mi.LAB_GROWN_DIAMOND:mi.DIAMOND}&fromNewFilterScreen=false&filterSplitStep=1&sectionName=${"pair"===t.pair?"Pairs":"Single Stones"}&breadCrumbLabel=Stone%20Search&enterSecondFlow=false&saved_search=${n}`;m?m(s,i):"web"===r.A.OS&&window.open(s,"_parent")},[a,z,m]),ge=(0,t.useCallback)(e=>{const t=`${a}webapp/${e.type===mi.LAB_GROWN_DIAMOND?"lab-grown-diamonds":"natural-diamonds"}/item-detail/${e.id}?productType=${e.type}&priceMode=${z}&breadCrumbLabel=Stone%20Details`;g?g(t,e):"web"===r.A.OS&&window.open(t,"_parent")},[a,z,g]),ve=(0,t.useMemo)(()=>Boolean(H),[H]),ye=(0,t.useMemo)(()=>({conversationId:H}),[H]),be=(0,t.useCallback)(async(e,t,n)=>{try{let r="0";E(e=>{const t=e.find(e=>e.id===n);return r=t?.reaction||"0",e});const i=r===e?ni.UNSET:e,o=await(async(e,t,n,r)=>{const i=`${ji(e,n,r)}`,o={reaction:t};return await fetch(i,{method:"POST",headers:await Bi(),body:JSON.stringify(o)})})(a,i,t,n);o.ok?E(e=>e.map(e=>e.id===n?{...e,reaction:i}:e)):console.error("Feedback API failed",o.status)}catch(e){console.error("Feedback API error",e)}},[]);(0,t.useEffect)(()=>{let e=!1;return d.length||(async()=>{if(ve)try{const t=await Ui(a,0,z);if(!e){const e=(await Wi(t,z)).reverse();if(void 0!==t?.has_more&&q(t.has_more),void 0!==t?.next_cursor&&G(t.next_cursor),le.current=!1,ae.current=!1,0===e.length){const e={id:"",role:"assistant",text:x("chat.welcome.message.text",'Describe the diamond you\'re looking for — for example, "2ct F VS2 under $10,000" or "1–2ct D–F VS pear" — and I\'ll take it from there.'),createdAt:Date.now(),isLoading:!1,suggestions:[],search_payload:{},reaction:"0"};E([e]),q(!1)}else E(e)}}catch(e){console.error("Failed to fetch initial messages",e)}})(),()=>{e=!0}},[a,ye,d.length,ve,z]);const _e=(0,t.useCallback)(async e=>{const t=e.trim();if(!t||R)return;const n=await Nr("external_context"),r={id:`user-${Date.now()}`,role:"user",text:t,createdAt:Date.now(),external_context:n||null},i=`bot-loading-${Date.now()}`,o={id:i,role:"assistant",text:x("chat.thinking.text","Thinking"),createdAt:Date.now(),reaction:"0",isLoading:!0,search_payload:{}};E(e=>[...e,r,o]),O(i),T(!0);try{if(!ve)return void E(e=>e.map(e=>e.id===i?{...e,text:x("chat.authError.text","Chat is unavailable (missing user authentication)."),isLoading:!1}:e));const e=await async function(e,t,n,r,i){const o=await Hi(),a=o?.[i]?.conversation_id??null;if(void 0===i)return null;const s=await Nr("external_context");s&&await Ir("external_context");const l={query:t,external_context:s||null};a&&(l.conversation_id=Number.isNaN(Number(a))?a:Number(a));const u=await fetch(Fi(e),{method:"POST",headers:await Bi(),body:JSON.stringify(l)});if(!u.ok)throw new Error(`POST ${Fi(e)} failed with ${u.status}`);const c=await u.json();if(c&&null!=c.conversation_id&&i){const e={...o};e[i]={conversation_id:c.conversation_id},await $i(e)}return c}(a,t,0,0,z),n=(await Wi(e,z)).find(e=>"assistant"===e.role);if(n?.text){if(n?.search_payload&&"object"==typeof n.search_payload&&Object.keys(n.search_payload).length>0){const e=await Ki(a,n.search_payload);b?.(li.AI_CHAT_WIDGET,{action:ui.SEARCH_INITIATED,search_payload:n.search_payload});const t=e&&e.response&&e.response.body&&Array.isArray(e.response.body.diamonds)&&e.response.body.diamonds.length>0;t?_&&t&&me({search_payload:n.search_payload}):b?.(li.AI_CHAT_WIDGET,{action:ui.NO_RESULTS_FOUND,search_payload:n.search_payload}),F(t=>({...t,[n.id]:e}))}O(null),E(e=>e.map(e=>e.id===i?{...e,id:n.id,text:"",isLoading:!1,suggestions:n.suggestions,search_payload:n.search_payload??{}}:e)),setTimeout(()=>{N(n.id),D(n.text),ne.current?.scrollToEnd({animated:!0})},50)}else E(e=>e.map(e=>e.id===i?{...e,isLoading:!1}:e))}catch(e){E(e=>e.map(e=>e.id===i?{...e,text:x("chat.error.text","Sorry, something went wrong. Please try again."),isLoading:!1}:e)),console.error(e)}finally{T(!1),O(null),re.current?.focus()}},[a,R,C,ye,ve,z,me,_]),we=(0,t.useCallback)(async()=>{const e=k.trim();e&&(A(""),_e(e))},[k,_e]),Se=(0,t.useCallback)(e=>{_e(e)},[_e]),xe=(0,t.useCallback)(async e=>{const t=e.id;try{j(e=>new Set(e).add(t));const n=e?.search_payload;if(!n||0===Object.keys(n).length)return;const r=await Ki(a,n);F(e=>({...e,[t]:r}))}catch(e){console.error("Reload results failed",e)}finally{j(e=>{const n=new Set(e);return n.delete(t),n})}},[]),Ce=(0,t.useCallback)(async(e,t)=>{if(ee.has(e))return;const n=(Q[e]||1)+1;if(!(n>6))try{te(t=>new Set(t).add(e));const r=await async function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const r=await fetch(Vi(e),{method:"POST",headers:await Bi(),body:JSON.stringify({vdb:{...t,page_size:5,page_number:n}})});if(!r.ok)throw new Error(`POST failed with ${r.status}`);return await r.json()}(a,t,n);r?.response?.body?.diamonds&&(F(t=>{const n=t[e];if(!n)return t;const i=n.response?.body?.diamonds||[],o=r.response.body.diamonds;return{...t,[e]:{...n,response:{...n.response,body:{...n.response.body,diamonds:[...i,...o]}}}}}),Z(t=>({...t,[e]:n})))}catch(e){console.error("Failed to load more results:",e)}finally{te(t=>{const n=new Set(t);return n.delete(e),n})}},[a,ee,Q]),Ee=(0,t.useCallback)(async(e,t)=>{try{const n=await Ki(a,t);n?.response?.body?.diamonds&&(F(t=>({...t,[e]:n})),Z(t=>({...t,[e]:1})))}catch(e){console.error("Failed to show less results:",e)}},[a]),ke=(0,t.useCallback)(async()=>{if(W||!K||!ve)return;se.current=!0;const e=oe.current;U(!0);try{const t=await async function(e,t,n,r){const i=await Hi(),o=i?.[t??""]?.conversation_id??null;if(!o)return{messages:[],has_more:!1};const a={conversation_id:Number.isNaN(Number(o))?o:Number(o),fetch_history:!0};void 0!==n&&(a.cursor=n),void 0!==r&&(a.page=r);const s=await fetch(Fi(e),{method:"POST",headers:await Bi(),body:JSON.stringify(a)});if(!s.ok)throw new Error(`POST ${Fi(e)} failed with ${s.status}`);const l=await s.json();return{messages:l.messages||[],conversation_id:l.conversation_id,has_more:l.has_more??!1,next_cursor:l.next_cursor,total_count:l.total_count}}(a,z,Y,X+1),n=(await Wi(t,z)).reverse();n.length>0?(E(e=>{const t=new Set(e.map(e=>e.id)),r=n.filter(e=>!t.has(e.id));return console.log("[...newMessages, ...prev]",[...r,...e]),[...r,...e]}),J(e=>e+1),requestAnimationFrame(()=>{const t=oe.current-e;t>0&&ne.current&&ne.current.scrollTo({y:ie.current+t,animated:!1}),se.current=!1})):se.current=!1,q(t.has_more??n.length>0),G(t.next_cursor)}catch(e){console.error("Failed to load older messages",e),se.current=!1}finally{U(!1)}},[W,K,ve,a,z,Y,X]);(0,t.useEffect)(()=>{const e=()=>{setTimeout(()=>{try{ne.current?.scrollToEnd({animated:!0})}catch(e){}},100)},t="ios"===r.A.OS?"keyboardWillShow":"keyboardDidShow",n="ios"===r.A.OS?"keyboardWillHide":"keyboardDidHide",i=pt.A.addListener(t,e),o=pt.A.addListener(n,e);return()=>{i.remove(),o.remove()}},[]),(0,t.useEffect)(()=>(e.A.addListener("clearChat",Re),e.A.addListener("changePriceMode",e=>Ae(e.priceMode)),Ae(),(async()=>{const e=await oi(),t=e?.id,n=JSON.stringify(e?.email)??void 0;t&&ce(`${t}`,{email:n}).then()})(),()=>{e.A.removeAllListeners("clearChat"),e.A.removeAllListeners("changePriceMode")}),[]);const Ae=async e=>{if(!e&&l&&(e=l),!e){let t=await Nr("persist:userInfo",{user:void 0});t=t&&t.user?JSON.parse(t.user):{},e=t?.price_mode}B(void 0===e?null:String(e))},Re=(0,t.useCallback)(async()=>{try{const e=await Nr("vdbchat_conversations",null);if(e&&z&&e.conversations?.[z]){const t={...e.conversations};delete t[z],await Lr("vdbchat_conversations",{token:e.token,conversations:t})}E([]),F({}),j(new Set),T(!1),O(null),N(null),D(""),q(!0),G(void 0),J(1),le.current=!1,ae.current=!1,se.current=!1;const t=await Ui(a,0,z),n=(await Wi(t,z)).reverse();if(0===n.length){const e={id:"",role:"assistant",text:x("chat.welcome.message.text",'Describe the diamond you\'re looking for — for example, "2ct F VS2 under $10,000" or "1–2ct D–F VS pear" — and I\'ll take it from there.'),createdAt:Date.now(),isLoading:!1,suggestions:[],reaction:"0",search_payload:{}};E([e])}else E(n);p?.()}catch(e){console.error("Failed to clear chat",e)}},[a,z]);(0,t.useEffect)(()=>{if(!P||I)return;let e=0;const t=x("chat.thinking.text","Thinking"),n=setInterval(()=>{e=(e+1)%3;const n=".".repeat(e+1);E(e=>e.map(e=>e.id===P&&e.isLoading?{...e,text:`${t}${n}`}:e))},500);return()=>{clearInterval(n)}},[P,I,x]),(0,t.useImperativeHandle)(o,()=>({clearChat:Re}),[Re]);const Te=(0,t.useRef)(0);return(0,t.useEffect)(()=>{if(!I||!L)return void(Te.current=0);Te.current=0;const e=L.length,t=I,n=L,r=setInterval(()=>{Te.current+=1;const i=Te.current,o=n.slice(0,i);E(e=>e.map(e=>e.id===t?{...e,text:o}:e)),i>=e&&(clearInterval(r),N(null),D(""),E(e=>e.map(e=>e.id===t?{...e,isLoading:!1}:e)))},25);return()=>{clearInterval(r)}},[I,L]),t.createElement(ra,{theme:he},t.createElement(mt.A,{style:{flex:1},behavior:"ios"===r.A.OS?"padding":"height",keyboardVerticalOffset:100},t.createElement(gt.A,{ref:ne,keyboardShouldPersistTaps:"handled",onScroll:e=>{const{contentOffset:t,contentSize:n,layoutMeasurement:r}=e.nativeEvent;ie.current=t.y;const i=n.height-(r.height+t.y);ae.current=i>100,t.y<50&&K&&!W&&!se.current&&ke()},scrollEventThrottle:16,style:u?{height:u,backgroundColor:he["core-01"]||"#FFFFFF"}:{backgroundColor:he["core-01"]||"#FFFFFF"},contentContainerStyle:{backgroundColor:he["core-01"]||ue?.listContentBackgroundColor||"#FFFFFF",...ca.listContent,justifyContent:0===C.length?"center":"flex-end",minHeight:u||void 0,...fe?{maxWidth:608,alignSelf:"center",width:"100%"}:{}},onContentSizeChange:(e,t)=>{oe.current=t,se.current||W||(le.current?ae.current||ne.current?.scrollToEnd({animated:!1}):(ne.current?.scrollToEnd({animated:!1}),le.current=!0))}},W&&t.createElement(la,null,t.createElement(vt.A,{size:"small",color:he["core-06"]||"#4F4E57"}),t.createElement(ua,{theme:he},x("chat.loadingOlder.text","Loading older messages..."))),C?.[0]?.createdAt&&t.createElement(ia,{theme:he},t.createElement(oa,{theme:he},x("chat.chatStartedAt.text","Chat Started at {{time}}",{time:ti(C[0].createdAt,x)}))),(()=>{const e=[...C];return e.map((r,i)=>{const o=i===e.length-1,s=Boolean(M[r.id]?.response?.body?.diamonds&&M[r.id]?.response?.body?.diamonds.length>0);return t.createElement(n.A,{key:r.id+i,style:{gap:12}},t.createElement(xi,{message:r,userTheme:ue,priceMode:z,handleFeedbackAction:be,onReloadResults:xe,reloading:V.has(r.id),hasResults:s,totalResults:M[r.id]?.response?.header?M[r.id].response.header?.total_diamonds_found??0:null,shownResults:M[r.id]?.response?.body?.diamonds.length||0,onSuggestionSelect:Se,isLatest:o,isTyping:I===r.id}),"assistant"===r.role&&r.search_payload&&Object.keys(r.search_payload).length>0&&!M[r.id]&&t.createElement(Oo,{apiUrl:a,priceMode:z,messageId:r.id,payload:r.search_payload,onFetched:(e,t)=>{F(n=>({...n,[e]:t}))}}),"assistant"===r.role&&s&&!_&&t.createElement(Po,{data:M[r.id]?.response?.body?.diamonds||[],totalResults:M[r.id]?.response?.header?.total_diamonds_found||0,onViewAll:me,onItemPress:ge,item:r,showMoreResults:()=>Ce(r.id,r.search_payload),showLessResults:()=>Ee(r.id,r.search_payload),trackAnalyticsEvent:b,currentPage:Q[r.id]||1,isLoadingMore:ee.has(r.id)}),t.createElement(Li,{message:r,priceMode:z||"",handleFeedbackAction:be,onReloadResults:xe,reloading:V.has(r.id),hasResults:s}))})})()),t.createElement(sa,null),t.createElement(aa,{theme:he},t.createElement(Wr,{value:k,onChangeText:A,onSend:we,disabled:R,placeholder:h,theme:ue,inputRef:re}),t.createElement(Gi,{active:de}))))});ta.displayName="ChatWidgetInner";const na=(0,t.forwardRef)((e,n)=>t.createElement(Zo,null,t.createElement(ta,ea({},e,{ref:n}))));na.displayName="ChatWidget";const ra=vn.View`
238
+ `,Ao=vn.View``,Ro=i.A.create({listContent:{gap:8},left:{flexDirection:"row",alignItems:"flex-start",minWidth:0},serialContainer:{alignItems:"flex-start",justifyContent:"center",marginRight:4},tokens:{flexDirection:"row",flexWrap:"wrap",gap:2,flex:1,minWidth:0},lineBreak:{width:"100%",height:0},rowCenter:{flexDirection:"row",alignItems:"center"}}),To=(0,t.memo)(ao),Po=e=>{let{data:n,onViewAll:r,onItemPress:i,variant:o="list",totalResults:a,item:s,showMoreResults:l,showLessResults:u,trackAnalyticsEvent:c,currentPage:d=1,isLoadingMore:h=!1}=e;return n&&n.length?"list"===o?t.createElement(To,{data:n,onViewAll:r,onItemPress:i,totalResults:a,item:s,showMoreResults:l,showLessResults:u,trackAnalyticsEvent:c,currentPage:d,isLoadingMore:h}):t.createElement(to,{data:n,onViewAll:r,onItemPress:i,totalResults:a,item:s}):null},Oo=e=>{let{messageId:i,payload:o,onFetched:a,priceMode:s,apiUrl:l}=e;const{ref:u,inView:c}=function(){const e=(0,t.useRef)(null),[n,i]=(0,t.useState)(!1);return(0,t.useEffect)(()=>{if("web"!==r.A.OS)return void i(!0);const t=e.current;if(!t||"undefined"==typeof IntersectionObserver)return void i(!0);const n=new IntersectionObserver(e=>{const t=e[0];i(t.isIntersecting)},{root:null,rootMargin:"0px",threshold:.1});return n.observe(t),()=>{n.disconnect()}},[]),{ref:e,inView:n}}(),d=(0,t.useRef)(!1);return(0,t.useEffect)(()=>{d.current||o&&"object"==typeof o&&c&&(d.current=!0,(async()=>{try{const e=await Ki(l,o);a(i,e)}catch(e){console.error("Lazy fetch products failed",e)}})())},[c,i,a,o,s]),t.createElement(n.A,{ref:u,style:{height:1}})},Io=e=>{let t="web";if(e)switch(e){case"Linux":t="android";break;case"iPhone":t="ios";break;default:t="web"}else t=String(r.A.OS);return(e=>{switch(e){case ai.WEB:return 0;case ai.IOS:return 1;case ai.ANDROID:default:return 2}})(t).toString()},No=async()=>{const e=await oi(),t="web"===r.A.OS?{system_type_enum:Io(null),platform_action_enum:"0"}:{};return{user_company_id:e?.company_id?.toString(),user_company_name:e?.company,user_email:e?.email,user_id:e?.id?.toString(),user_name:e?.first_name?`${e?.first_name} ${e?.last_name}`:void 0,user_price_mode:e?.price_mode?.toString(),price_mode:e?.price_mode?.toString(),has_plan_details:!!e?.plan_details,userAgent:"web"===r.A.OS?navigator.userAgent:"",...t}};var Lo=a(7918),Do=a.n(Lo),Mo=a(5685);var Fo=a(5556),Vo=a.n(Fo);const jo=Vo().oneOfType([Vo().string,Vo().number]),zo={all:Vo().bool,grid:Vo().bool,aural:Vo().bool,braille:Vo().bool,handheld:Vo().bool,print:Vo().bool,projection:Vo().bool,screen:Vo().bool,tty:Vo().bool,tv:Vo().bool,embossed:Vo().bool},Bo={orientation:Vo().oneOf(["portrait","landscape"]),scan:Vo().oneOf(["progressive","interlace"]),aspectRatio:Vo().string,deviceAspectRatio:Vo().string,height:jo,deviceHeight:jo,width:jo,deviceWidth:jo,color:Vo().bool,colorIndex:Vo().bool,monochrome:Vo().bool,resolution:jo,type:Object.keys(zo)},{type:Ho,...$o}=Bo,Wo={minAspectRatio:Vo().string,maxAspectRatio:Vo().string,minDeviceAspectRatio:Vo().string,maxDeviceAspectRatio:Vo().string,minHeight:jo,maxHeight:jo,minDeviceHeight:jo,maxDeviceHeight:jo,minWidth:jo,maxWidth:jo,minDeviceWidth:jo,maxDeviceWidth:jo,minColor:Vo().number,maxColor:Vo().number,minColorIndex:Vo().number,maxColorIndex:Vo().number,minMonochrome:Vo().number,maxMonochrome:Vo().number,minResolution:jo,maxResolution:jo,...$o};var Uo={all:{...zo,...Wo},types:zo,matchers:Bo,features:Wo};const Ko=(0,t.createContext)(void 0),qo=e=>{if(e)return Object.keys(e).reduce((t,n)=>(t[(0,Mo.default)(n)]=e[n],t),{})},Yo=()=>{const e=(0,t.useRef)(!1);return(0,t.useEffect)(()=>{e.current=!0},[]),e.current},Go=e=>{const n=()=>(e=>e.query||(e=>{const t=[];return Object.keys(Uo.all).forEach(n=>{const r=e[n];null!=r&&t.push(((e,t)=>{const n=(0,Mo.default)(e);return"number"==typeof t&&(t=`${t}px`),!0===t?n:!1===t?`not ${n}`:`(${n}: ${t})`})(n,r))}),t.join(" and ")})(e))(e),[r,i]=(0,t.useState)(n);return(0,t.useEffect)(()=>{const e=n();r!==e&&i(e)},[e]),r},Xo=(e,n,r)=>{const i=(e=>{const n=(0,t.useContext)(Ko),r=()=>qo(e)||qo(n),[i,o]=(0,t.useState)(r);return(0,t.useEffect)(()=>{const e=r();(function(e,t){if(e===t)return!0;if(!e||!t)return!1;const n=Object.keys(e),r=Object.keys(t),i=n.length;if(r.length!==i)return!1;for(let r=0;r<i;r++){const i=n[r];if(e[i]!==t[i]||!Object.prototype.hasOwnProperty.call(t,i))return!1}return!0})(i,e)||o(e)},[e,n]),i})(n),o=Go(e);if(!o)throw new Error("Invalid or missing MediaQuery!");const a=((e,n)=>{const r=()=>Do()(e,n||{},!!n),[i,o]=(0,t.useState)(r),a=Yo();return(0,t.useEffect)(()=>{if(a){const e=r();return o(e),()=>{e&&e.dispose()}}},[e,n]),i})(o,i),s=(e=>{const[n,r]=(0,t.useState)(e.matches);return(0,t.useEffect)(()=>{const t=e=>{r(e.matches)};return e.addListener(t),r(e.matches),()=>{e.removeListener(t)}},[e]),n})(a),l=Yo();return(0,t.useEffect)(()=>{l&&r&&r(s)},[s]),(0,t.useEffect)(()=>()=>{a&&a.dispose()},[]),s},Jo={transparent:"transparent","main-01":"#292735","main-02":"#37363F","main-03":"#E3E3E9","main-04":"#3378F6","main-05":"#ffffff","main-06":"#292735","diam-01":"#804195","diam-02":"#713782","diam-03":"#EEE1F3","diam-04":"#9138AE","diam-05":"#ffffff","diam-06":"#9138AE","core-01":"#ffffff","core-02":"#EDEDF2","core-03":"#D5D5DC","core-04":"#ACACB3","core-05":"#020001","core-06":"#4F4E57","extra-01":"#A1A0AB","extra-02":"#292735","extra-03":"#E4E4EC","extra-04":"#DADAE0","extra-05":"#ffffff","extra-06":"#4F4E57","gem-01":"#3B72CC","gem-02":"#3C62A0","gem-03":"#DCE6F6","gem-04":"#3E76D2","gem-05":"#ffffff","gem-06":"#3E76D2","jewelry-01":"#58B8A5","jewelry-02":"#4CA191","jewelry-03":"#D6F1ED","jewelry-04":"#27AC92","jewelry-05":"#ffffff","jewelry-06":"#27AC92","lab-01":"#E97F5B","lab-02":"#DA704B","lab-03":"#F9E2D9","lab-04":"#E87B56","lab-05":"#ffffff","lab-06":"#E87B56","over-01":"#000000b3","over-02":"rgba(55,54,64,0.3)","over-03":"rgba(255,255,255,0.7)","over-04":"#ffffff","cont-00":"#ffffff","success-02":"#DBFFE4","success-01":"#00B140","error-02":"#FFE2E0","error-01":"#D0021B","warn-02":"#FFF8DB","warn-01":"#FFA500","primary-bg-static":"#292735","primary-bg-hover":"#37363F","primary-bg-disabled":"#D5D5DC","primary-cont":"#ffffff","primary-cont-disabled":"#ACACB3","secondary-bor-disabled":"#D5D5DC","secondary-cont-disabled":"#ACACB3","secondary-bg-hover":"#E3E3E9","secondary-bor-hover":"#37363F","secondary-bor-static":"#292735","secondary-cont":"#292735","tertiary-bg-static":"#E3E3E9","tertiary-bg-disabled":"#D5D5DC","tertiary-cont":"#292735","tertiary-cont-disabled":"#ACACB3","link-static":"#3378F6","link-hover":"#292735","option-bg-static":"#E4E4EC","option-bg-hover":"#DADAE0","option-bg-active":"#A1A0AB","option-cont":"#4F4E57","option-cont-active":"#ffffff","knob-bg-hover":"#E4E4EC","knob-bg-active":"#292735","knob-cont":"#ffffff","knob-bor":"#292735","toggle-bg-static":"#DADAE0","toggle-bg-on":"#292735","toggle-cont":"#ffffff","option-bg-disabled":"#D5D5DC","option-cont-disabled":"#ACACB3","knob-bg-disabled-off":"#EDEDF2","knob-bg-disabled-on":"#D5D5DC","knob-cont-disabled-on":"#ffffff","toggle-bg-disabled":"#D5D5DC","toggle-cont-disabled":"#EDEDF2","header-cont":"#ffffff","header-btn-cont":"#ffffff","header-bg-static":"#37363F","header-btn-bg-hover":"#37363F","header-btn-bg-active":"#E3E3E9","header-btn-bg-static":"#292735","header-btn-bor-hover":"#292735","header-btn-cont-active":"#292735","knob-bg-static":"#ffffff",Shadows:{Huge:{x:"2",y:"16",blur:"32",type:"dropShadow",color:"#37364066",spread:"-8"},Gentle:{x:"1",y:"2",blur:"4",type:"dropShadow",color:"#37364014",spread:"-2"},Normal:{x:"2",y:"8",blur:"24",type:"dropShadow",color:"#37364042",spread:"-6"},"Bottom-scroll":{x:"0",y:"-8",blur:"24",type:"dropShadow",color:"#37364029",spread:"-8"}}};let Qo=null;if("web"!==r.A.OS)try{Qo=a(Object(function(){var e=new Error("Cannot find module 'expo-device'");throw e.code="MODULE_NOT_FOUND",e}()))}catch{}const Zo=e=>{let{children:n}=e;const[i,o]=(0,t.useState)(Jo);if((0,t.useEffect)(()=>{(async()=>{try{const e=JSON.parse(await Pr("persist:root")||"{}"),t=e.theme?JSON.parse(e.theme):null;t&&o(t)}catch{}})()},[]),"web"===r.A.OS&&window.matchMedia("print").matches)return null;const a=Xo({maxWidth:767}),s=Xo({minWidth:767,maxWidth:1279}),l=Xo({minWidth:1279}),{width:u}=ei,c=a||u<=767,d=s||u>767&&u<=1279||"iPadOS"===Qo?.osName||ci(),h=(l||u>1279)&&!("iPadOS"===Qo?.osName||ci()),f=h&&!d&&!c,p={isMobile:c,isTablet:d,isDesktop:h,isLargeScreen:f},m=(0,t.useMemo)(()=>({...i,...p}),[i,c,d,h,f]);return t.createElement(Ut,{theme:m},n)},ea=(0,t.forwardRef)((i,o)=>{let{apiUrl:a,userToken:s,priceMode:l,modalHeight:u,theme:c,initialMessages:d=[],placeholder:h,onClose:f,onClearChat:p,onViewAllPress:m,onItemPress:g,isBetaMode:v,activeProductType:y,trackAnalyticsEvent:b,fromFilterScreen:_,translations:w,locale:S="en",classic_search_filters:x={}}=i;const{t:C}=Br(),[E,k]=(0,t.useState)(d),[A,R]=(0,t.useState)(""),[T,P]=(0,t.useState)(!1),[O,I]=(0,t.useState)(null),[N,L]=(0,t.useState)(null),[D,M]=(0,t.useState)(""),[F,V]=(0,t.useState)({}),[j,z]=(0,t.useState)(new Set),[B,H]=(0,t.useState)(l||null),[$,W]=(0,t.useState)(s||""),[U,K]=(0,t.useState)(!1),[q,Y]=(0,t.useState)(!0),[G,X]=(0,t.useState)(void 0),[J,Q]=(0,t.useState)(1),[Z,ee]=(0,t.useState)({}),[te,ne]=(0,t.useState)(new Set),re=(0,t.useRef)(null),ie=(0,t.useRef)(null),oe=(0,t.useRef)(!0),ae=(0,t.useRef)(0),se=(0,t.useRef)(0),le=(0,t.useRef)(!1),ue=(0,t.useRef)(!1),ce=(0,t.useRef)(!1),de=(0,t.useMemo)(()=>({...Di,...c||{}}),[c]),{_identify:he}=(()=>{const e=(0,t.useContext)(ht);return{trackEvent:async(t,n)=>{const r=await No(),i=e||window.analytics;i&&await i.track(t,{...r,...n})},_identify:async(t,n)=>{const r=e||window.analytics;r&&await r.identify(t,n)},_track:async(t,n)=>{const i=await No();if(o=i?.userAgent,o&&/^Mozilla\/5\.0 \([^;]+; CPU [^)]+ like Mac OS X\) AppleWebKit\/600\.1\.4 \(KHTML, like Gecko\) Version\/\d\.0 Mobile\/10B329 Safari\/8536\.25$/.test(o))return void console.warn("Skipping tracking for Segment user agent:",i.userAgent);var o;if(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return!e&&"web"===r.A.OS||[/bot/i,/crawl/i,/spider/i,/HeadlessChrome/i,/PhantomJS/i,/slurp/i,/curl/i,/wget/i,/httpclient/i].some(t=>t.test(e))}(i?.userAgent))return void console.warn("Skipping tracking for bot user agent:",i.userAgent);const a=e||window.analytics;if(!a)return;const s=await oi();s?.id?await a.identify(`${s.id}`,{name:`${s.first_name} ${s.last_name}`,email:s.email,country:s.country}):(console.error("Track Event tracked without user:",t,JSON.stringify(n)),console.error("Can't identify as user is not logged in",JSON.stringify(s))),await a.track(t,{...i,...n})}}})(),fe=Boolean(v),pe=Wt(),me=pe.isTablet;(0,t.useEffect)(()=>{zr({locale:S,translations:w})},[]),(0,t.useEffect)(()=>{(async(e,t)=>{if(!Dr.isInitialized)return;const n=await Vr(),r=jr(n,t),i=Fr(r);Dr.addResourceBundle(e,"translation",i,!0,!0),Dr.language!==e&&Dr.changeLanguage(e)})(S,w)},[S,w]),(0,t.useEffect)(()=>{(async()=>{try{if(!s){const e=await Nr("persist:userInfo",{}),t=JSON.parse(e?.user||"{}"),n=t?.token||"";n&&W(n)}}catch(e){console.error("Failed to load auth data from storage",e)}})()},[s]);const ge=async()=>{y&&await Lr("external_context",y)};(0,t.useEffect)(()=>{0===E.length&&ge()},[E]),(0,t.useEffect)(()=>{ge()},[y]);const ve=(0,t.useCallback)(e=>{let t=e?.search_payload;const n=JSON.stringify(t),i=e?.search_payload;if(!i)return;const o="string"==typeof i.lab_grown?"true"===i.lab_grown:"boolean"==typeof i.lab_grown&&i.lab_grown,s=`${a}webapp/${o?"lab-grown-diamonds":"natural-diamonds"}/search?priceMode=${B}&productType=${o?mi.LAB_GROWN_DIAMOND:mi.DIAMOND}&fromNewFilterScreen=false&filterSplitStep=1&sectionName=${"pair"===t.pair?"Pairs":"Single Stones"}&breadCrumbLabel=Stone%20Search&enterSecondFlow=false&saved_search=${encodeURIComponent(n)}`;m?m(s,i):"web"===r.A.OS&&window.open(s,"_parent")},[a,B,m]),ye=(0,t.useCallback)(e=>{const t=`${a}webapp/${e.type===mi.LAB_GROWN_DIAMOND?"lab-grown-diamonds":"natural-diamonds"}/item-detail/${e.id}?productType=${e.type}&priceMode=${B}&breadCrumbLabel=Stone%20Details`;g?g(t,e):"web"===r.A.OS&&window.open(t,"_parent")},[a,B,g]),be=(0,t.useMemo)(()=>Boolean($),[$]),_e=(0,t.useMemo)(()=>({conversationId:$}),[$]),we=(0,t.useCallback)(async(e,t,n)=>{try{let r="0";k(e=>{const t=e.find(e=>e.id===n);return r=t?.reaction||"0",e});const i=r===e?ni.UNSET:e,o=await(async(e,t,n,r)=>{const i=`${ji(e,n,r)}`,o={reaction:t};return await fetch(i,{method:"POST",headers:await Bi(),body:JSON.stringify(o)})})(a,i,t,n);o.ok?k(e=>e.map(e=>e.id===n?{...e,reaction:i}:e)):console.error("Feedback API failed",o.status)}catch(e){console.error("Feedback API error",e)}},[]);(0,t.useEffect)(()=>{let e=!1;return d.length||(async()=>{if(be)try{const t=await Ui(a,0,B);if(!e){const e=(await Wi(t,B)).reverse();if(void 0!==t?.has_more&&Y(t.has_more),void 0!==t?.next_cursor&&X(t.next_cursor),ce.current=!1,le.current=!1,0===e.length){const e={id:"",role:"assistant",text:C("chat.welcome.message.text",'Describe the diamond you\'re looking for — for example, "2ct F VS2 under $10,000" or "1–2ct D–F VS pear" — and I\'ll take it from there.'),createdAt:Date.now(),isLoading:!1,suggestions:[],search_payload:{},reaction:"0"};k([e]),Y(!1)}else k(e)}}catch(e){console.error("Failed to fetch initial messages",e)}})(),()=>{e=!0}},[a,_e,d.length,be,B]);const Se=(0,t.useCallback)(async e=>{const t=e.trim();if(!t||T)return;const n=await Nr("external_context"),r={id:`user-${Date.now()}`,role:"user",text:t,createdAt:Date.now(),external_context:n||null},i=`bot-loading-${Date.now()}`,o={id:i,role:"assistant",text:C("chat.thinking.text","Thinking"),createdAt:Date.now(),reaction:"0",isLoading:!0,search_payload:{}};k(e=>[...e,r,o]),I(i),P(!0);try{if(!be)return void k(e=>e.map(e=>e.id===i?{...e,text:C("chat.authError.text","Chat is unavailable (missing user authentication)."),isLoading:!1}:e));const e=[...E,r],n=oe.current?x:{};oe.current=!1;const o=await async function(e,t,n,r,i){let o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};const a=await Hi(),s=a?.[i]?.conversation_id??null;if(void 0===i)return null;const l=await Nr("external_context");l&&await Ir("external_context");const u={query:t,external_context:l||null,...Object.keys(o).length>0&&{classic_search_filters:o}};s&&(u.conversation_id=Number.isNaN(Number(s))?s:Number(s));const c=await fetch(Fi(e),{method:"POST",headers:await Bi(),body:JSON.stringify(u)});if(!c.ok)throw new Error(`POST ${Fi(e)} failed with ${c.status}`);const d=await c.json();if(d&&null!=d.conversation_id&&i){const e={...a};e[i]={conversation_id:d.conversation_id},await $i(e)}return d}(a,t,_e,e,B,n),s=(await Wi(o,B)).find(e=>"assistant"===e.role);if(s?.text){if(s?.search_payload&&"object"==typeof s.search_payload&&Object.keys(s.search_payload).length>0){const e=await Ki(a,s.search_payload);b?.(li.AI_CHAT_WIDGET,{action:ui.SEARCH_INITIATED,search_payload:s.search_payload});const t=e&&e.response&&e.response.body&&Array.isArray(e.response.body.diamonds)&&e.response.body.diamonds.length>0;t?_&&t&&ve({search_payload:s.search_payload}):b?.(li.AI_CHAT_WIDGET,{action:ui.NO_RESULTS_FOUND,search_payload:s.search_payload}),V(t=>({...t,[s.id]:e}))}I(null),k(e=>e.map(e=>e.id===i?{...e,id:s.id,text:"",isLoading:!1,suggestions:s.suggestions,search_payload:s.search_payload??{}}:e)),setTimeout(()=>{L(s.id),M(s.text),re.current?.scrollToEnd({animated:!0})},50)}else k(e=>e.map(e=>e.id===i?{...e,isLoading:!1}:e))}catch(e){k(e=>e.map(e=>e.id===i?{...e,text:C("chat.error.text","Sorry, something went wrong. Please try again."),isLoading:!1}:e)),console.error(e)}finally{P(!1),I(null),ie.current?.focus()}},[a,T,E,_e,be,B,ve,_,x]),xe=(0,t.useCallback)(async()=>{const e=A.trim();e&&(R(""),Se(e))},[A,Se]),Ce=(0,t.useCallback)(e=>{Se(e)},[Se]),Ee=(0,t.useCallback)(async e=>{const t=e.id;try{z(e=>new Set(e).add(t));const n=e?.search_payload;if(!n||0===Object.keys(n).length)return;const r=await Ki(a,n);V(e=>({...e,[t]:r}))}catch(e){console.error("Reload results failed",e)}finally{z(e=>{const n=new Set(e);return n.delete(t),n})}},[]),ke=(0,t.useCallback)(async(e,t)=>{if(te.has(e))return;const n=(Z[e]||1)+1;if(!(n>6))try{ne(t=>new Set(t).add(e));const r=await async function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const r=await fetch(Vi(e),{method:"POST",headers:await Bi(),body:JSON.stringify({vdb:{...t,page_size:5,page_number:n}})});if(!r.ok)throw new Error(`POST failed with ${r.status}`);return await r.json()}(a,t,n);r?.response?.body?.diamonds&&(V(t=>{const n=t[e];if(!n)return t;const i=n.response?.body?.diamonds||[],o=r.response.body.diamonds;return{...t,[e]:{...n,response:{...n.response,body:{...n.response.body,diamonds:[...i,...o]}}}}}),ee(t=>({...t,[e]:n})))}catch(e){console.error("Failed to load more results:",e)}finally{ne(t=>{const n=new Set(t);return n.delete(e),n})}},[a,te,Z]),Ae=(0,t.useCallback)(async(e,t)=>{try{const n=await Ki(a,t);n?.response?.body?.diamonds&&(V(t=>({...t,[e]:n})),ee(t=>({...t,[e]:1})))}catch(e){console.error("Failed to show less results:",e)}},[a]),Re=(0,t.useCallback)(async()=>{if(U||!q||!be)return;ue.current=!0;const e=se.current;K(!0);try{const t=await async function(e,t,n,r){const i=await Hi(),o=i?.[t??""]?.conversation_id??null;if(!o)return{messages:[],has_more:!1};const a={conversation_id:Number.isNaN(Number(o))?o:Number(o),fetch_history:!0};void 0!==n&&(a.cursor=n),void 0!==r&&(a.page=r);const s=await fetch(Fi(e),{method:"POST",headers:await Bi(),body:JSON.stringify(a)});if(!s.ok)throw new Error(`POST ${Fi(e)} failed with ${s.status}`);const l=await s.json();return{messages:l.messages||[],conversation_id:l.conversation_id,has_more:l.has_more??!1,next_cursor:l.next_cursor,total_count:l.total_count}}(a,B,G,J+1),n=(await Wi(t,B)).reverse();n.length>0?(k(e=>{const t=new Set(e.map(e=>e.id)),r=n.filter(e=>!t.has(e.id));return console.log("[...newMessages, ...prev]",[...r,...e]),[...r,...e]}),Q(e=>e+1),requestAnimationFrame(()=>{const t=se.current-e;t>0&&re.current&&re.current.scrollTo({y:ae.current+t,animated:!1}),ue.current=!1})):ue.current=!1,Y(t.has_more??n.length>0),X(t.next_cursor)}catch(e){console.error("Failed to load older messages",e),ue.current=!1}finally{K(!1)}},[U,q,be,a,B,G,J]);(0,t.useEffect)(()=>{const e=()=>{setTimeout(()=>{try{re.current?.scrollToEnd({animated:!0})}catch(e){}},100)},t="ios"===r.A.OS?"keyboardWillShow":"keyboardDidShow",n="ios"===r.A.OS?"keyboardWillHide":"keyboardDidHide",i=pt.A.addListener(t,e),o=pt.A.addListener(n,e);return()=>{i.remove(),o.remove()}},[]),(0,t.useEffect)(()=>(e.A.addListener("clearChat",Pe),e.A.addListener("changePriceMode",e=>Te(e.priceMode)),Te(),(async()=>{const e=await oi(),t=e?.id,n=JSON.stringify(e?.email)??void 0;t&&he(`${t}`,{email:n}).then()})(),()=>{e.A.removeAllListeners("clearChat"),e.A.removeAllListeners("changePriceMode")}),[]);const Te=async e=>{if(!e&&l&&(e=l),!e){let t=await Nr("persist:userInfo",{user:void 0});t=t&&t.user?JSON.parse(t.user):{},e=t?.price_mode}H(void 0===e?null:String(e))},Pe=(0,t.useCallback)(async()=>{try{const e=await Nr("vdbchat_conversations",null);if(e&&B&&e.conversations?.[B]){const t={...e.conversations};delete t[B],await Lr("vdbchat_conversations",{token:e.token,conversations:t})}k([]),V({}),z(new Set),P(!1),I(null),L(null),M(""),Y(!0),X(void 0),Q(1),ce.current=!1,le.current=!1,ue.current=!1;const t=await Ui(a,0,B),n=(await Wi(t,B)).reverse();if(0===n.length){const e={id:"",role:"assistant",text:C("chat.welcome.message.text",'Describe the diamond you\'re looking for — for example, "2ct F VS2 under $10,000" or "1–2ct D–F VS pear" — and I\'ll take it from there.'),createdAt:Date.now(),isLoading:!1,suggestions:[],reaction:"0",search_payload:{}};k([e])}else k(n);p?.()}catch(e){console.error("Failed to clear chat",e)}},[a,B]);(0,t.useEffect)(()=>{if(!O||N)return;let e=0;const t=C("chat.thinking.text","Thinking"),n=setInterval(()=>{e=(e+1)%3;const n=".".repeat(e+1);k(e=>e.map(e=>e.id===O&&e.isLoading?{...e,text:`${t}${n}`}:e))},500);return()=>{clearInterval(n)}},[O,N,C]),(0,t.useImperativeHandle)(o,()=>({clearChat:Pe}),[Pe]);const Oe=(0,t.useRef)(0);return(0,t.useEffect)(()=>{if(!N||!D)return void(Oe.current=0);Oe.current=0;const e=D.length,t=N,n=D,r=setInterval(()=>{Oe.current+=1;const i=Oe.current,o=n.slice(0,i);k(e=>e.map(e=>e.id===t?{...e,text:o}:e)),i>=e&&(clearInterval(r),L(null),M(""),k(e=>e.map(e=>e.id===t?{...e,isLoading:!1}:e)))},25);return()=>{clearInterval(r)}},[N,D]),t.createElement(Zo,null,t.createElement(ta,{theme:pe},t.createElement(mt.A,{style:{flex:1},behavior:"ios"===r.A.OS?"padding":"height",keyboardVerticalOffset:_?150:100},E?.[0]?.createdAt&&t.createElement(na,{theme:pe},t.createElement(ua,{onPress:Pe},t.createElement(la,null,C("chatbot.clearChat.text","Clear Chat"))),t.createElement(ra,{theme:pe},C("chat.chatStartedAt.text","Chat Started at {{time}}",{time:ti(E[0].createdAt,C)}))),t.createElement(gt.A,{ref:re,keyboardShouldPersistTaps:"handled",onScroll:e=>{const{contentOffset:t,contentSize:n,layoutMeasurement:r}=e.nativeEvent;ae.current=t.y;const i=n.height-(r.height+t.y);le.current=i>100,t.y<50&&q&&!U&&!ue.current&&Re()},scrollEventThrottle:16,style:u?{height:u,backgroundColor:pe["core-01"]||"#FFFFFF"}:{backgroundColor:pe["core-01"]||"#FFFFFF"},contentContainerStyle:{backgroundColor:pe["core-01"]||de?.listContentBackgroundColor||"#FFFFFF",...ca.listContent,justifyContent:0===E.length?"center":"flex-end",minHeight:u||void 0,...me?{maxWidth:608,alignSelf:"center",width:"100%"}:{}},onContentSizeChange:(e,t)=>{se.current=t,ue.current||U||(ce.current?le.current||re.current?.scrollToEnd({animated:!1}):(re.current?.scrollToEnd({animated:!1}),ce.current=!0))}},U&&t.createElement(aa,null,t.createElement(vt.A,{size:"small",color:pe["core-06"]||"#4F4E57"}),t.createElement(sa,{theme:pe},C("chat.loadingOlder.text","Loading older messages..."))),(()=>{const e=[...E];return e.map((r,i)=>{const o=i===e.length-1,s=Boolean(F[r.id]?.response?.body?.diamonds&&F[r.id]?.response?.body?.diamonds.length>0);return t.createElement(n.A,{key:r.id+i,style:{gap:12}},t.createElement(xi,{message:r,userTheme:de,priceMode:B,handleFeedbackAction:we,onReloadResults:Ee,reloading:j.has(r.id),hasResults:s,totalResults:F[r.id]?.response?.header?F[r.id].response.header?.total_diamonds_found??0:null,shownResults:F[r.id]?.response?.body?.diamonds.length||0,onSuggestionSelect:Ce,isLatest:o,isTyping:N===r.id}),"assistant"===r.role&&r.search_payload&&Object.keys(r.search_payload).length>0&&!F[r.id]&&t.createElement(Oo,{apiUrl:a,priceMode:B,messageId:r.id,payload:r.search_payload,onFetched:(e,t)=>{V(n=>({...n,[e]:t}))}}),"assistant"===r.role&&s&&!_&&t.createElement(Po,{data:F[r.id]?.response?.body?.diamonds||[],totalResults:F[r.id]?.response?.header?.total_diamonds_found||0,onViewAll:ve,onItemPress:ye,item:r,showMoreResults:()=>ke(r.id,r.search_payload),showLessResults:()=>Ae(r.id,r.search_payload),trackAnalyticsEvent:b,currentPage:Z[r.id]||1,isLoadingMore:te.has(r.id)}),t.createElement(Li,{message:r,priceMode:B||"",handleFeedbackAction:we,onReloadResults:Ee,reloading:j.has(r.id),hasResults:s}))})})()),t.createElement(oa,null),t.createElement(ia,{theme:pe},t.createElement(Wr,{value:A,onChangeText:R,onSend:xe,disabled:T,placeholder:h,theme:de,inputRef:ie}),t.createElement(Gi,{active:fe})))))});ea.displayName="ChatWidget";const ta=vn.View`
239
239
  background-color: ${e=>{let{theme:t}=e;return t["core-01"]||"#FFFFFF"}};
240
240
  flex: 1;
241
241
  width: 100%;
242
- `,ia=vn.View`
243
- padding: 16px;
242
+ `,na=vn.View`
243
+ padding: 8px;
244
+ flex-direction: row;
245
+ justify-content: space-between;
244
246
  align-items: center;
245
- justify-content: center;
246
247
  background-color: ${e=>{let{theme:t}=e;return t["core-01"]||"#FFFFFF"}};
247
- `,oa=vn.Text`
248
+ `,ra=vn.Text`
248
249
  font-size: 13px;
249
250
  font-weight: 400;
250
251
  color: ${e=>{let{theme:t}=e;return t["core-06"]||"#4F4E57"}};
251
- `,aa=vn.View`
252
+ `,ia=vn.View`
252
253
  padding-vertical: 12px;
253
254
  padding-horizontal: 16px;
254
255
  flex-direction: column;
@@ -261,16 +262,22 @@
261
262
  align-self: center;
262
263
  width: 100%;
263
264
  `}};
264
- `,sa=vn.View`
265
+ `,oa=vn.View`
265
266
  border-top-color: ${e=>{let{theme:t}=e;return t["core-03"]||"#E0E0E0"}};
266
267
  border-top-width: 1;
267
- `,la=vn.View`
268
+ `,aa=vn.View`
268
269
  padding: 12px;
269
270
  align-items: center;
270
271
  justify-content: center;
271
272
  flex-direction: row;
272
273
  gap: 8px;
273
- `,ua=vn.Text`
274
+ `,sa=vn.Text`
274
275
  font-size: 12px;
275
276
  color: ${e=>{let{theme:t}=e;return t["core-06"]||"#4F4E57"}};
276
- `,ca=i.A.create({listContent:{paddingVertical:8,flexGrow:1,justifyContent:"flex-end"},loading:{paddingVertical:8,alignItems:"center"}}),da=i.A.create({root:{flex:1,height:"100%",width:"100%"}});window.createChatWidget=function(e){const{id:i="chat-widget",apiUrl:a,theme:s,height:l="500px",width:u="360px",button:c={label:"",icon:"",iconColor:"transparent",labelColor:"transparent",backgroundColor:"transparent",borderRadius:"9999px",padding:"0",buttonPosition:{bottom:"60px",right:"44px"}},segmentWriteKey:d,isBetaMode:h,locale:f,translations:p}=e;(f||p)&&zr({locale:f,translations:p});const m=`${i}-modal`,g=`${i}-launcher`;let v=document.getElementById(g);v||(v=document.createElement("button"),v.id=g,v.type="button",v.innerText=c.label||"",v.innerHTML=c.icon||"<svg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 72 72' fill='none'> <g filter='url(#filter0_d_10_66)'> <g clip-path='url(#clip0_10_66)'> <foreignObject x='-33.12' y='-33.12' width='138.24' height='138.24'><div xmlns='http://www.w3.org/1999/xhtml' style='backdrop-filter:blur(1px);clip-path:url(#bgblur_1_10_66_clip_path);height:100%;width:100%'></div></foreignObject><g filter='url(#filter1_g_10_66)' data-figma-bg-blur-radius='2'> <rect width='72' height='72' fill='white' fill-opacity='0.05'/> </g> <g filter='url(#filter2_iii_10_66)'> <rect width='72' height='72' rx='36' fill='url(#paint0_linear_10_66)' fill-opacity='0.7'/> <rect x='0.5' y='0.5' width='71' height='71' rx='35.5' stroke='white' stroke-opacity='0.2'/> </g> <path d='M36 20C36 20 36.8828 28.2399 40.3215 31.6785C43.7601 35.1172 52 36 52 36C52 36 43.7601 36.8828 40.3215 40.3215C36.8828 43.7601 36 52 36 52C36 52 35.1172 43.7601 31.6785 40.3215C28.2399 36.8828 20 36 20 36C20 36 28.2399 35.1172 31.6785 31.6785C35.1172 28.2399 36 20 36 20Z' fill='white'/> </g> </g> <defs> <filter id='filter0_d_10_66' x='0' y='0' width='112' height='112' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'> <feFlood flood-opacity='0' result='BackgroundImageFix'/> <feColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/> <feOffset dx='20' dy='20'/> <feGaussianBlur stdDeviation='10'/> <feComposite in2='hardAlpha' operator='out'/> <feColorMatrix type='matrix' values='0 0 0 0 0.862354 0 0 0 0 0.862354 0 0 0 0 0.89855 0 0 0 0.2 0'/> <feBlend mode='normal' in2='BackgroundImageFix' result='effect1_dropShadow_10_66'/> <feBlend mode='normal' in='SourceGraphic' in2='effect1_dropShadow_10_66' result='shape'/> </filter> <filter id='filter1_g_10_66' x='-33.12' y='-33.12' width='138.24' height='138.24' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'> <feFlood flood-opacity='0' result='BackgroundImageFix'/> <feBlend mode='normal' in='SourceGraphic' in2='BackgroundImageFix' result='shape'/> <feTurbulence type='fractalNoise' baseFrequency='0.012303149327635765 0.012303149327635765' numOctaves='3' seed='8425'/> <feDisplacementMap in='shape' scale='66.239997863769531' xChannelSelector='R' yChannelSelector='G' result='displacedImage' width='100%' height='100%'/> <feMerge result='effect1_texture_10_66'> <feMergeNode in='displacedImage'/> </feMerge> </filter> <clipPath id='bgblur_1_10_66_clip_path' transform='translate(33.12 33.12)'><rect width='72' height='72'/> </clipPath><filter id='filter2_iii_10_66' x='-1' y='-2' width='74' height='76' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'> <feFlood flood-opacity='0' result='BackgroundImageFix'/> <feBlend mode='normal' in='SourceGraphic' in2='BackgroundImageFix' result='shape'/> <feColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/> <feOffset/> <feGaussianBlur stdDeviation='7'/> <feComposite in2='hardAlpha' operator='arithmetic' k2='-1' k3='1'/> <feColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.3 0'/> <feBlend mode='normal' in2='shape' result='effect1_innerShadow_10_66'/> <feColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/> <feOffset dx='-1' dy='-3'/> <feGaussianBlur stdDeviation='1'/> <feComposite in2='hardAlpha' operator='arithmetic' k2='-1' k3='1'/> <feColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0'/> <feBlend mode='normal' in2='effect1_innerShadow_10_66' result='effect2_innerShadow_10_66'/> <feColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/> <feOffset dx='1' dy='3'/> <feGaussianBlur stdDeviation='1'/> <feComposite in2='hardAlpha' operator='arithmetic' k2='-1' k3='1'/> <feColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.3 0'/> <feBlend mode='normal' in2='effect2_innerShadow_10_66' result='effect3_innerShadow_10_66'/> </filter> <linearGradient id='paint0_linear_10_66' x1='4.5' y1='16' x2='67.5' y2='52.5' gradientUnits='userSpaceOnUse'> <stop stop-color='#C000FF'/> <stop offset='1' stop-color='#2BFFCA'/> </linearGradient> <clipPath id='clip0_10_66'> <rect width='72' height='72' rx='36' fill='white'/> </clipPath> </defs> </svg>",v.style.color=c.iconColor||"#ffffff",v.style.position="fixed",v.style.zIndex="2147483000",v.style.borderRadius="100px",v.style.padding="0",v.style.width="56px",v.style.height="56px",v.style.backgroundColor=c.backgroundColor||"transparent",v.style.color=c.labelColor||"transparent",v.style.border="none",v.style.cursor="pointer",v.style.boxShadow="0 4px 12px rgba(0,0,0,0.2)",v.style.fontFamily="system-ui, -apple-system, BlinkMacSystemFont, sans-serif",v.style.fontSize="14px",v.style.bottom=c.buttonPosition?.bottom||"24px",c.buttonPosition?.top&&(v.style.top=c.buttonPosition.top),v.style.right=c.buttonPosition?.right||"20px",c.buttonPosition?.left&&(v.style.left=c.buttonPosition.left),document.body.appendChild(v));let y=document.getElementById(m);y||(y=document.createElement("div"),y.id=m,y.style.position="fixed",y.style.zIndex="2147483000",y.style.bottom=c.modalPosition?.bottom||"30px",c.modalPosition?.top&&(y.style.top=c.modalPosition.top),y.style.right=c.modalPosition?.right||"30px",c.modalPosition?.left&&(y.style.left=c.modalPosition.left),y.style.width=u,y.style.height=l,y.style.maxWidth="30%",y.style.maxHeight="80%",y.style.backgroundColor="#ffffff",y.style.borderRadius="12px",y.style.overflow="hidden",y.style.boxShadow="0 16px 40px rgba(0,0,0,0.25)",y.style.display="none",y.style.opacity="0",y.style.transform="translateY(16px) scale(0.98)",y.style.transition="transform 220ms ease-out, opacity 220ms ease-out",document.body.appendChild(y)),function(e,i,a,s,l,u,c,d,h){const f=(0,o.H)(e),p=(e,t)=>{const n={source:"vdb-ai-chat",type:e,payload:t},r=JSON.stringify(n),i=window.ReactNativeWebView;if(i?.postMessage)i.postMessage(r);else{try{window.parent?.postMessage(n,"*")}catch{}try{window.dispatchEvent(new CustomEvent("vdb-ai-event",{detail:n}))}catch{}}},m=t.createElement(n.A,{style:da.root},t.createElement(na,{apiUrl:Fi(i),theme:a,onClose:s,onClearChat:()=>{},onViewAllPress:(e,t)=>{p("ai_view_all",{url:e,payload:t}),s?.()},onItemPress:(e,t)=>{p("ai_item_click",{url:e,item:t}),s?.()},isBetaMode:h}));if(f.render(m),"web"===r.A.OS&&u)try{const e="undefined"!=typeof navigator&&(navigator.userAgent.includes("Edg")||navigator.userAgent.includes("Edge"));dt.load({writeKey:u,trackAppLifecycleEvents:!1,flushAt:e?1:10,flushInterval:1e4,maxBatchSize:e?1:10}).then(async e=>{let[n]=e;n?.debug?.(!0),window.analytics=n,n.page?.();try{const e=await oi(),t=e?.id;t&&n.identify(t)}catch{}const r=t.createElement(ft,{client:n},m);f.render(r)}).catch(e=>{console.error("[Segment] init failed",e)})}catch(e){console.error("[Segment] init failed",e)}}(y,a,s,()=>_(!1),0,d,0,0,h);let b=!1;const _=e=>{b=e,e?(y.style.display="block",requestAnimationFrame(()=>{y.style.opacity="1",y.style.transform="translateY(0px) scale(1)";const e=document.getElementById("chat-input");e&&e.focus()})):(y.style.opacity="0",y.style.transform="translateY(16px) scale(0.98)",setTimeout(()=>{b||(y.style.display="none")},230))};v.onclick=()=>{try{const e=window.analytics;e&&(b?e.track(si.WIDGET_CLOSED,{userAgent:"undefined"!=typeof navigator?navigator.userAgent:""}).then?.():e.track(si.WIDGET_OPENED,{userAgent:"undefined"!=typeof navigator?navigator.userAgent:""}).then?.())}catch(e){}_(!b)}},window.clearChat=function(){e.A.emit("clearChat")},window.changePriceMode=function(t){e.A.emit("changePriceMode",{priceMode:t})},window.setTranslations=async e=>{try{const t=await Pr("persist:root"),n=t?JSON.parse(t):{};let r="string"==typeof n?.globalData?JSON.parse(n.globalData):n?.globalData||{};if(r.ai_chat_bot={...r.ai_chat_bot,translations:e},n.globalData=JSON.stringify(r),await Or("persist:root",JSON.stringify(n)),Dr.isInitialized){const t=Fr(e);Dr.addResourceBundle(Dr.language,"translation",t,!0,!0)}}catch{}},window.getTranslations=async()=>{const e=await Vr();return e&&Object.keys(e).length>0?e:Cr},window.changeLanguage=async e=>{const t=await Vr(),n=jr(t,void 0),r=Fr(n);Dr.addResourceBundle(e,"translation",r,!0,!0),await Dr.changeLanguage(e)},window.initI18n=zr})()})();
277
+ `,la=vn.Text`
278
+ color: ${e=>{let{theme:t}=e;return t["link-static"]||"#3378f6"}};
279
+ text-align: right;
280
+ font-size: 13px;
281
+ font-weight: 500;
282
+ line-height: 136%;
283
+ `,ua=vn.TouchableOpacity``,ca=i.A.create({listContent:{paddingVertical:8,flexGrow:1,justifyContent:"flex-end"},loading:{paddingVertical:8,alignItems:"center"}}),da=i.A.create({root:{flex:1,height:"100%",width:"100%"}});window.createChatWidget=function(e){const{id:i="chat-widget",apiUrl:a,theme:s,height:l="500px",width:u="360px",button:c={label:"",icon:"",iconColor:"transparent",labelColor:"transparent",backgroundColor:"transparent",borderRadius:"9999px",padding:"0",buttonPosition:{bottom:"60px",right:"44px"}},segmentWriteKey:d,isBetaMode:h,locale:f,translations:p}=e;(f||p)&&zr({locale:f,translations:p});const m=`${i}-modal`,g=`${i}-launcher`;let v=document.getElementById(g);v||(v=document.createElement("button"),v.id=g,v.type="button",v.innerText=c.label||"",v.innerHTML=c.icon||"<svg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 72 72' fill='none'> <g filter='url(#filter0_d_10_66)'> <g clip-path='url(#clip0_10_66)'> <foreignObject x='-33.12' y='-33.12' width='138.24' height='138.24'><div xmlns='http://www.w3.org/1999/xhtml' style='backdrop-filter:blur(1px);clip-path:url(#bgblur_1_10_66_clip_path);height:100%;width:100%'></div></foreignObject><g filter='url(#filter1_g_10_66)' data-figma-bg-blur-radius='2'> <rect width='72' height='72' fill='white' fill-opacity='0.05'/> </g> <g filter='url(#filter2_iii_10_66)'> <rect width='72' height='72' rx='36' fill='url(#paint0_linear_10_66)' fill-opacity='0.7'/> <rect x='0.5' y='0.5' width='71' height='71' rx='35.5' stroke='white' stroke-opacity='0.2'/> </g> <path d='M36 20C36 20 36.8828 28.2399 40.3215 31.6785C43.7601 35.1172 52 36 52 36C52 36 43.7601 36.8828 40.3215 40.3215C36.8828 43.7601 36 52 36 52C36 52 35.1172 43.7601 31.6785 40.3215C28.2399 36.8828 20 36 20 36C20 36 28.2399 35.1172 31.6785 31.6785C35.1172 28.2399 36 20 36 20Z' fill='white'/> </g> </g> <defs> <filter id='filter0_d_10_66' x='0' y='0' width='112' height='112' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'> <feFlood flood-opacity='0' result='BackgroundImageFix'/> <feColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/> <feOffset dx='20' dy='20'/> <feGaussianBlur stdDeviation='10'/> <feComposite in2='hardAlpha' operator='out'/> <feColorMatrix type='matrix' values='0 0 0 0 0.862354 0 0 0 0 0.862354 0 0 0 0 0.89855 0 0 0 0.2 0'/> <feBlend mode='normal' in2='BackgroundImageFix' result='effect1_dropShadow_10_66'/> <feBlend mode='normal' in='SourceGraphic' in2='effect1_dropShadow_10_66' result='shape'/> </filter> <filter id='filter1_g_10_66' x='-33.12' y='-33.12' width='138.24' height='138.24' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'> <feFlood flood-opacity='0' result='BackgroundImageFix'/> <feBlend mode='normal' in='SourceGraphic' in2='BackgroundImageFix' result='shape'/> <feTurbulence type='fractalNoise' baseFrequency='0.012303149327635765 0.012303149327635765' numOctaves='3' seed='8425'/> <feDisplacementMap in='shape' scale='66.239997863769531' xChannelSelector='R' yChannelSelector='G' result='displacedImage' width='100%' height='100%'/> <feMerge result='effect1_texture_10_66'> <feMergeNode in='displacedImage'/> </feMerge> </filter> <clipPath id='bgblur_1_10_66_clip_path' transform='translate(33.12 33.12)'><rect width='72' height='72'/> </clipPath><filter id='filter2_iii_10_66' x='-1' y='-2' width='74' height='76' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'> <feFlood flood-opacity='0' result='BackgroundImageFix'/> <feBlend mode='normal' in='SourceGraphic' in2='BackgroundImageFix' result='shape'/> <feColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/> <feOffset/> <feGaussianBlur stdDeviation='7'/> <feComposite in2='hardAlpha' operator='arithmetic' k2='-1' k3='1'/> <feColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.3 0'/> <feBlend mode='normal' in2='shape' result='effect1_innerShadow_10_66'/> <feColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/> <feOffset dx='-1' dy='-3'/> <feGaussianBlur stdDeviation='1'/> <feComposite in2='hardAlpha' operator='arithmetic' k2='-1' k3='1'/> <feColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0'/> <feBlend mode='normal' in2='effect1_innerShadow_10_66' result='effect2_innerShadow_10_66'/> <feColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/> <feOffset dx='1' dy='3'/> <feGaussianBlur stdDeviation='1'/> <feComposite in2='hardAlpha' operator='arithmetic' k2='-1' k3='1'/> <feColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.3 0'/> <feBlend mode='normal' in2='effect2_innerShadow_10_66' result='effect3_innerShadow_10_66'/> </filter> <linearGradient id='paint0_linear_10_66' x1='4.5' y1='16' x2='67.5' y2='52.5' gradientUnits='userSpaceOnUse'> <stop stop-color='#C000FF'/> <stop offset='1' stop-color='#2BFFCA'/> </linearGradient> <clipPath id='clip0_10_66'> <rect width='72' height='72' rx='36' fill='white'/> </clipPath> </defs> </svg>",v.style.color=c.iconColor||"#ffffff",v.style.position="fixed",v.style.zIndex="2147483000",v.style.borderRadius="100px",v.style.padding="0",v.style.width="56px",v.style.height="56px",v.style.backgroundColor=c.backgroundColor||"transparent",v.style.color=c.labelColor||"transparent",v.style.border="none",v.style.cursor="pointer",v.style.boxShadow="0 4px 12px rgba(0,0,0,0.2)",v.style.fontFamily="system-ui, -apple-system, BlinkMacSystemFont, sans-serif",v.style.fontSize="14px",v.style.bottom=c.buttonPosition?.bottom||"24px",c.buttonPosition?.top&&(v.style.top=c.buttonPosition.top),v.style.right=c.buttonPosition?.right||"20px",c.buttonPosition?.left&&(v.style.left=c.buttonPosition.left),document.body.appendChild(v));let y=document.getElementById(m);y||(y=document.createElement("div"),y.id=m,y.style.position="fixed",y.style.zIndex="2147483000",y.style.bottom=c.modalPosition?.bottom||"30px",c.modalPosition?.top&&(y.style.top=c.modalPosition.top),y.style.right=c.modalPosition?.right||"30px",c.modalPosition?.left&&(y.style.left=c.modalPosition.left),y.style.width=u,y.style.height=l,y.style.maxWidth="30%",y.style.maxHeight="80%",y.style.backgroundColor="#ffffff",y.style.borderRadius="12px",y.style.overflow="hidden",y.style.boxShadow="0 16px 40px rgba(0,0,0,0.25)",y.style.display="none",y.style.opacity="0",y.style.transform="translateY(16px) scale(0.98)",y.style.transition="transform 220ms ease-out, opacity 220ms ease-out",document.body.appendChild(y)),function(e,i,a,s,l,u,c,d,h){const f=(0,o.H)(e),p=(e,t)=>{const n={source:"vdb-ai-chat",type:e,payload:t},r=JSON.stringify(n),i=window.ReactNativeWebView;if(i?.postMessage)i.postMessage(r);else{try{window.parent?.postMessage(n,"*")}catch{}try{window.dispatchEvent(new CustomEvent("vdb-ai-event",{detail:n}))}catch{}}},m=t.createElement(n.A,{style:da.root},t.createElement(ea,{apiUrl:Fi(i),theme:a,onClose:s,onClearChat:()=>{},onViewAllPress:(e,t)=>{p("ai_view_all",{url:e,payload:t}),s?.()},onItemPress:(e,t)=>{p("ai_item_click",{url:e,item:t}),s?.()},isBetaMode:h,classic_search_filters:void 0}));if(f.render(m),"web"===r.A.OS&&u)try{const e="undefined"!=typeof navigator&&(navigator.userAgent.includes("Edg")||navigator.userAgent.includes("Edge"));dt.load({writeKey:u,trackAppLifecycleEvents:!1,flushAt:e?1:10,flushInterval:1e4,maxBatchSize:e?1:10}).then(async e=>{let[n]=e;n?.debug?.(!0),window.analytics=n,n.page?.();try{const e=await oi(),t=e?.id;t&&n.identify(t)}catch{}const r=t.createElement(ft,{client:n},m);f.render(r)}).catch(e=>{console.error("[Segment] init failed",e)})}catch(e){console.error("[Segment] init failed",e)}}(y,a,s,()=>_(!1),0,d,0,0,h);let b=!1;const _=e=>{b=e,e?(y.style.display="block",requestAnimationFrame(()=>{y.style.opacity="1",y.style.transform="translateY(0px) scale(1)";const e=document.getElementById("chat-input");e&&e.focus()})):(y.style.opacity="0",y.style.transform="translateY(16px) scale(0.98)",setTimeout(()=>{b||(y.style.display="none")},230))};v.onclick=()=>{try{const e=window.analytics;e&&(b?e.track(si.WIDGET_CLOSED,{userAgent:"undefined"!=typeof navigator?navigator.userAgent:""}).then?.():e.track(si.WIDGET_OPENED,{userAgent:"undefined"!=typeof navigator?navigator.userAgent:""}).then?.())}catch(e){}_(!b)}},window.clearChat=function(){e.A.emit("clearChat")},window.changePriceMode=function(t){e.A.emit("changePriceMode",{priceMode:t})},window.setTranslations=async e=>{try{const t=await Pr("persist:root"),n=t?JSON.parse(t):{};let r="string"==typeof n?.globalData?JSON.parse(n.globalData):n?.globalData||{};if(r.ai_chat_bot={...r.ai_chat_bot,translations:e},n.globalData=JSON.stringify(r),await Or("persist:root",JSON.stringify(n)),Dr.isInitialized){const t=Fr(e);Dr.addResourceBundle(Dr.language,"translation",t,!0,!0)}}catch{}},window.getTranslations=async()=>{const e=await Vr();return e&&Object.keys(e).length>0?e:Cr},window.changeLanguage=async e=>{const t=await Vr(),n=jr(t,void 0),r=Fr(n);Dr.addResourceBundle(e,"translation",r,!0,!0),await Dr.changeLanguage(e)},window.initI18n=zr})()})();
@@ -187,7 +187,7 @@ async function fetchOlderMessages(apiUrl, priceMode, cursor, pageNumber) {
187
187
  total_count: data.total_count
188
188
  };
189
189
  }
190
- async function sendUserMessage(apiUrl, userMessage, _params, _history, priceMode) {
190
+ async function sendUserMessage(apiUrl, userMessage, _params, _history, priceMode, classic_search_filters = {}) {
191
191
  // Get conversations valid for current session
192
192
  const conversations = await getValidConversations();
193
193
  const storedId = conversations?.[priceMode]?.conversation_id ?? null;
@@ -200,7 +200,10 @@ async function sendUserMessage(apiUrl, userMessage, _params, _history, priceMode
200
200
  }
201
201
  const body = {
202
202
  query: userMessage,
203
- external_context: external_context || null
203
+ external_context: external_context || null,
204
+ ...(Object.keys(classic_search_filters).length > 0 && {
205
+ classic_search_filters: classic_search_filters
206
+ })
204
207
  };
205
208
  if (storedId) {
206
209
  body.conversation_id = Number.isNaN(Number(storedId)) ? storedId : Number(storedId);
@@ -1 +1 @@
1
- {"version":3,"names":["_utils","require","_routes","_interopRequireDefault","_storage","e","__esModule","default","getUserToken","userInfo","Storage","getJSON","userData","JSON","parse","user","token","buildHeaders","iid","getItem","installationId","parsed","installationIdentifier","session","Accept","Authorization","Cookie","getValidConversations","currentToken","stored","removeItem","conversations","saveConversations","data","setJSON","normaliseMessages","raw","priceMode","messages","Array","isArray","searchResultViewTypeMap","searchResultViewType","rootState","selectedGroups","map","m","index","isLabgrown","lab_grown","activeProduct","ProductCategory","LAB_GROWN_DIAMOND","DIAMOND","mGroupIds","vdbSetting","includes","filter","groupId","length","queryParamList","Object","assign","group_ids","id","String","role","created_at","Date","now","text","content","createdAt","search_payload","keys","renderSearchParams","searchPayload","reaction","suggestions","undefined","fetchInitialMessages","apiUrl","_params","storedId","conversation_id","body","Number","isNaN","res","fetch","Routes","AGENCT_CONVERSATIONS","method","headers","stringify","ok","Error","status","json","updatedConversations","fetchOlderMessages","cursor","pageNumber","has_more","fetch_history","page","next_cursor","total_count","sendUserMessage","userMessage","_history","external_context","query","clearChatHistory","url","URL","searchParams","set","toString","getProducts","params","SEARCH_DIAMONDS","vdb","page_size","page_number","getProductsPaginated","handleFeedbackActionApi","action","message_id","feedbackUrl","REACTION","payload","response","exports"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_utils","require","_routes","_interopRequireDefault","_storage","e","__esModule","default","getUserToken","userInfo","Storage","getJSON","userData","JSON","parse","user","token","buildHeaders","iid","getItem","installationId","parsed","installationIdentifier","session","Accept","Authorization","Cookie","getValidConversations","currentToken","stored","removeItem","conversations","saveConversations","data","setJSON","normaliseMessages","raw","priceMode","messages","Array","isArray","searchResultViewTypeMap","searchResultViewType","rootState","selectedGroups","map","m","index","isLabgrown","lab_grown","activeProduct","ProductCategory","LAB_GROWN_DIAMOND","DIAMOND","mGroupIds","vdbSetting","includes","filter","groupId","length","queryParamList","Object","assign","group_ids","id","String","role","created_at","Date","now","text","content","createdAt","search_payload","keys","renderSearchParams","searchPayload","reaction","suggestions","undefined","fetchInitialMessages","apiUrl","_params","storedId","conversation_id","body","Number","isNaN","res","fetch","Routes","AGENCT_CONVERSATIONS","method","headers","stringify","ok","Error","status","json","updatedConversations","fetchOlderMessages","cursor","pageNumber","has_more","fetch_history","page","next_cursor","total_count","sendUserMessage","userMessage","_history","classic_search_filters","external_context","query","clearChatHistory","url","URL","searchParams","set","toString","getProducts","params","SEARCH_DIAMONDS","vdb","page_size","page_number","getProductsPaginated","handleFeedbackActionApi","action","message_id","feedbackUrl","REACTION","payload","response","exports"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":"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","ignoreList":[]}
@@ -22,8 +22,7 @@ var _native = _interopRequireWildcard(require("styled-components/native"));
22
22
  var _i18n = require("../i18n");
23
23
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
24
24
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
25
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
26
- const ChatWidgetInner = /*#__PURE__*/(0, _react.forwardRef)(({
25
+ const ChatWidget = exports.ChatWidget = /*#__PURE__*/(0, _react.forwardRef)(({
27
26
  apiUrl,
28
27
  userToken: userTokenProp,
29
28
  priceMode: priceModeProp,
@@ -40,7 +39,8 @@ const ChatWidgetInner = /*#__PURE__*/(0, _react.forwardRef)(({
40
39
  trackAnalyticsEvent,
41
40
  fromFilterScreen,
42
41
  translations,
43
- locale = "en"
42
+ locale = "en",
43
+ classic_search_filters = {}
44
44
  }, ref) => {
45
45
  const {
46
46
  t
@@ -65,6 +65,7 @@ const ChatWidgetInner = /*#__PURE__*/(0, _react.forwardRef)(({
65
65
  const [loadingMoreResults, setLoadingMoreResults] = (0, _react.useState)(new Set());
66
66
  const scrollRef = (0, _react.useRef)(null);
67
67
  const inputRef = (0, _react.useRef)(null);
68
+ const isFirstMessageRef = (0, _react.useRef)(true);
68
69
  // Scroll management refs - using refs instead of state to avoid re-renders
69
70
  const scrollYRef = (0, _react.useRef)(0);
70
71
  const contentHeightRef = (0, _react.useRef)(0);
@@ -124,7 +125,7 @@ const ChatWidgetInner = /*#__PURE__*/(0, _react.forwardRef)(({
124
125
  const payload = item?.search_payload;
125
126
  if (!payload) return;
126
127
  const isLabgrown = typeof payload.lab_grown === "string" ? payload.lab_grown === "true" : typeof payload.lab_grown === "boolean" ? payload.lab_grown : false;
127
- const deepLinkUrl = `${apiUrl}webapp/${isLabgrown ? "lab-grown-diamonds" : "natural-diamonds"}/search?priceMode=${priceMode}&productType=${isLabgrown ? _utils.ProductCategory.LAB_GROWN_DIAMOND : _utils.ProductCategory.DIAMOND}&fromNewFilterScreen=false&filterSplitStep=1&sectionName=${searchPayload.pair === "pair" ? "Pairs" : "Single Stones"}&breadCrumbLabel=Stone%20Search&enterSecondFlow=false&saved_search=${stringifiedSearchPayload}`;
128
+ const deepLinkUrl = `${apiUrl}webapp/${isLabgrown ? "lab-grown-diamonds" : "natural-diamonds"}/search?priceMode=${priceMode}&productType=${isLabgrown ? _utils.ProductCategory.LAB_GROWN_DIAMOND : _utils.ProductCategory.DIAMOND}&fromNewFilterScreen=false&filterSplitStep=1&sectionName=${searchPayload.pair === "pair" ? "Pairs" : "Single Stones"}&breadCrumbLabel=Stone%20Search&enterSecondFlow=false&saved_search=${encodeURIComponent(stringifiedSearchPayload)}`;
128
129
  if (onViewAllPress) {
129
130
  onViewAllPress(deepLinkUrl, payload);
130
131
  } else if (_reactNative.Platform.OS === "web") {
@@ -247,7 +248,9 @@ const ChatWidgetInner = /*#__PURE__*/(0, _react.forwardRef)(({
247
248
  return;
248
249
  }
249
250
  const historyForApi = [...messages, userMessage];
250
- const updatedMessages = await (0, _api.sendUserMessage)(apiUrl, trimmed, apiParams, historyForApi, priceMode);
251
+ const filtersForFirstMessage = isFirstMessageRef.current ? classic_search_filters : {};
252
+ isFirstMessageRef.current = false;
253
+ const updatedMessages = await (0, _api.sendUserMessage)(apiUrl, trimmed, apiParams, historyForApi, priceMode, filtersForFirstMessage);
251
254
  const normalised = await (0, _api.normaliseMessages)(updatedMessages, priceMode);
252
255
  const latestAssistant = normalised.find(m => m.role === "assistant");
253
256
  if (latestAssistant?.text) {
@@ -327,7 +330,7 @@ const ChatWidgetInner = /*#__PURE__*/(0, _react.forwardRef)(({
327
330
  setLoadingMessageId(null);
328
331
  inputRef.current?.focus();
329
332
  }
330
- }, [apiUrl, loading, messages, apiParams, hasAuth, priceMode, onViewAll, fromFilterScreen]);
333
+ }, [apiUrl, loading, messages, apiParams, hasAuth, priceMode, onViewAll, fromFilterScreen, classic_search_filters]);
331
334
  const identifySegmentUser = async () => {
332
335
  const user = await (0, _utils.getUserDetails)();
333
336
  const userId = user?.id;
@@ -611,15 +614,23 @@ const ChatWidgetInner = /*#__PURE__*/(0, _react.forwardRef)(({
611
614
  clearInterval(interval);
612
615
  };
613
616
  }, [typingMessageId, typingFullText]);
614
- return /*#__PURE__*/_react.default.createElement(Container, {
617
+ return /*#__PURE__*/_react.default.createElement(_ThemeProvider.default, null, /*#__PURE__*/_react.default.createElement(Container, {
615
618
  theme: theme
616
619
  }, /*#__PURE__*/_react.default.createElement(_reactNative.KeyboardAvoidingView, {
617
620
  style: {
618
621
  flex: 1
619
622
  },
620
623
  behavior: _reactNative.Platform.OS === "ios" ? "padding" : "height",
621
- keyboardVerticalOffset: 100
622
- }, /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
624
+ keyboardVerticalOffset: fromFilterScreen ? 150 : 100
625
+ }, messages?.[0]?.createdAt && /*#__PURE__*/_react.default.createElement(EmptyContainer, {
626
+ theme: theme
627
+ }, /*#__PURE__*/_react.default.createElement(ClearChatContainer, {
628
+ onPress: handleClearChat
629
+ }, /*#__PURE__*/_react.default.createElement(ClearChatText, null, t("chatbot.clearChat.text", "Clear Chat"))), /*#__PURE__*/_react.default.createElement(EmptyText, {
630
+ theme: theme
631
+ }, t("chat.chatStartedAt.text", "Chat Started at {{time}}", {
632
+ time: (0, _utils.formatToTime)(messages[0].createdAt, t)
633
+ }))), /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
623
634
  ref: scrollRef,
624
635
  keyboardShouldPersistTaps: "handled",
625
636
  onScroll: e => {
@@ -684,13 +695,7 @@ const ChatWidgetInner = /*#__PURE__*/(0, _react.forwardRef)(({
684
695
  color: theme["core-06"] || "#4F4E57"
685
696
  }), /*#__PURE__*/_react.default.createElement(LoadingOlderText, {
686
697
  theme: theme
687
- }, t("chat.loadingOlder.text", "Loading older messages..."))), messages?.[0]?.createdAt && /*#__PURE__*/_react.default.createElement(EmptyContainer, {
688
- theme: theme
689
- }, /*#__PURE__*/_react.default.createElement(EmptyText, {
690
- theme: theme
691
- }, t("chat.chatStartedAt.text", "Chat Started at {{time}}", {
692
- time: (0, _utils.formatToTime)(messages[0].createdAt, t)
693
- }))), (() => {
698
+ }, t("chat.loadingOlder.text", "Loading older messages..."))), (() => {
694
699
  const ordered = [...messages];
695
700
  return ordered.map((item, index) => {
696
701
  const isLatest = index === ordered.length - 1;
@@ -774,12 +779,8 @@ const ChatWidgetInner = /*#__PURE__*/(0, _react.forwardRef)(({
774
779
  inputRef: inputRef
775
780
  }), /*#__PURE__*/_react.default.createElement(_BetaNotice.default, {
776
781
  active: betaActive
777
- }))));
782
+ })))));
778
783
  });
779
- ChatWidgetInner.displayName = "ChatWidgetInner";
780
- const ChatWidget = exports.ChatWidget = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => /*#__PURE__*/_react.default.createElement(_ThemeProvider.default, null, /*#__PURE__*/_react.default.createElement(ChatWidgetInner, _extends({}, props, {
781
- ref: ref
782
- }))));
783
784
  ChatWidget.displayName = "ChatWidget";
784
785
  const Container = _native.default.View`
785
786
  background-color: ${({
@@ -789,9 +790,10 @@ const Container = _native.default.View`
789
790
  width: 100%;
790
791
  `;
791
792
  const EmptyContainer = _native.default.View`
792
- padding: 16px;
793
+ padding: 8px;
794
+ flex-direction: row;
795
+ justify-content: space-between;
793
796
  align-items: center;
794
- justify-content: center;
795
797
  background-color: ${({
796
798
  theme
797
799
  }) => theme["core-01"] || "#FFFFFF"};
@@ -838,6 +840,16 @@ const LoadingOlderText = _native.default.Text`
838
840
  theme
839
841
  }) => theme["core-06"] || "#4F4E57"};
840
842
  `;
843
+ const ClearChatText = _native.default.Text`
844
+ color: ${({
845
+ theme
846
+ }) => theme["link-static"] || "#3378f6"};
847
+ text-align: right;
848
+ font-size: 13px;
849
+ font-weight: 500;
850
+ line-height: 136%;
851
+ `;
852
+ const ClearChatContainer = _native.default.TouchableOpacity``;
841
853
  const styles = _reactNative.StyleSheet.create({
842
854
  listContent: {
843
855
  paddingVertical: 8,