@everfur/sdk 0.6.0 → 0.7.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.md +213 -0
- package/dist/{BookedScreen-BJPbXLCG.d.ts → BookedScreen-DFJcgf1e.d.ts} +12 -2
- package/dist/{BookedScreen-Cnld-jB_.d.cts → BookedScreen-R5X_Zrlh.d.cts} +12 -2
- package/dist/{Chat-CHqcgMyw.d.ts → Chat-DZpYH8Uh.d.ts} +4 -4
- package/dist/{Chat-BoAvCWhI.d.cts → Chat-bATY4atj.d.cts} +4 -4
- package/dist/{DepthViews-7Y8Ur058.d.ts → DepthViews-BpHUbjSY.d.cts} +1 -1
- package/dist/{DepthViews-B0g83e_N.d.cts → DepthViews-C4DC4Kom.d.cts} +1 -1
- package/dist/{DepthViews-Dg2bIon_.d.ts → DepthViews-dLTizxjr.d.ts} +1 -1
- package/dist/{DepthViews-CT5mQld9.d.cts → DepthViews-qBIoA48w.d.ts} +1 -1
- package/dist/animations/index.cjs +1 -1
- package/dist/animations/index.d.cts +3 -3
- package/dist/animations/index.d.ts +3 -3
- package/dist/animations/index.js +1 -1
- package/dist/{attachments-CfxsVg7W.d.ts → attachments-CPRFfoHT.d.ts} +2 -2
- package/dist/{attachments-rkox0ewd.d.cts → attachments-CUOGILir.d.cts} +5 -5
- package/dist/{attachments-CThFsH4b.d.ts → attachments-CXAnZcEg.d.ts} +5 -5
- package/dist/{attachments-C3HJNYQ7.d.cts → attachments-Ce06TWqe.d.cts} +2 -2
- package/dist/{bookingCopy-Do3zMeXb.d.cts → bookingCopy-BwVopcoV.d.cts} +451 -50
- package/dist/{bookingCopy-Y3OGdoMT.d.ts → bookingCopy-DFTv9w6J.d.ts} +451 -50
- package/dist/{bookingTypes-DCs8mmBb.d.cts → bookingTypes-D4pD3tHs.d.cts} +13 -1
- package/dist/{bookingTypes-DCs8mmBb.d.ts → bookingTypes-D4pD3tHs.d.ts} +13 -1
- package/dist/{branding-DYWma2il.d.ts → branding-Bio5MM6g.d.cts} +3 -3
- package/dist/{branding-ChXm8gxI.d.cts → branding-ytH4jJq1.d.ts} +3 -3
- package/dist/{callCopy-CPe9mbwG.d.cts → callCopy-DHjem0R-.d.cts} +12 -1
- package/dist/{callCopy-CPe9mbwG.d.ts → callCopy-DHjem0R-.d.ts} +12 -1
- package/dist/{casesRepository-Jj6t60AY.d.cts → casesRepository-CJchNp3x.d.cts} +1 -1
- package/dist/{casesRepository-BbgXYPxa.d.ts → casesRepository-DAVcY3jC.d.ts} +1 -1
- package/dist/chat/index.cjs +1 -1
- package/dist/chat/index.d.cts +9 -9
- package/dist/chat/index.d.ts +9 -9
- package/dist/chat/index.js +1 -1
- package/dist/client/index.cjs +2 -2
- package/dist/client/index.d.cts +10 -10
- package/dist/client/index.d.ts +10 -10
- package/dist/client/index.js +2 -2
- package/dist/{config-Dfbj5mlx.d.ts → config-ZxwCylac.d.ts} +1 -1
- package/dist/{config-BZX97FmW.d.cts → config-h5h6TsHL.d.cts} +1 -1
- package/dist/consent/index.cjs +1 -1
- package/dist/consent/index.d.cts +5 -5
- package/dist/consent/index.d.ts +5 -5
- package/dist/consent/index.js +1 -1
- package/dist/{context-DJXnZ1Mx.d.cts → context-CtsAgJnc.d.cts} +7 -7
- package/dist/{context-Cbe0zYym.d.ts → context-DtPIshVA.d.ts} +7 -7
- package/dist/{copy-dKK5KoAQ.d.cts → copy-CaWaplQc.d.cts} +2 -2
- package/dist/{copy-DHekqSKE.d.ts → copy-Cg89Qoal.d.ts} +2 -2
- package/dist/core/index.cjs +7 -7
- package/dist/core/index.d.cts +21 -21
- package/dist/core/index.d.ts +21 -21
- package/dist/core/index.js +7 -7
- package/dist/{depth-CrpRjWGB.d.ts → depth-Bo4bAwcn.d.ts} +132 -38
- package/dist/{depth-NmWSbvfi.d.cts → depth-EXZYEO70.d.cts} +132 -38
- package/dist/{entitlementRepository-iL-9vS1i.d.cts → entitlementRepository-BYtVb1oU.d.cts} +3 -3
- package/dist/{entitlementRepository-tVNazi8R.d.ts → entitlementRepository-DcbIx8yV.d.ts} +3 -3
- package/dist/{identity-B8rp0L9G.d.ts → identity-EC5-apbY.d.ts} +1 -1
- package/dist/{identity-D7PO5s9m.d.cts → identity-b5Vp32Vp.d.cts} +1 -1
- package/dist/index.cjs +6 -6
- package/dist/index.d.cts +17 -17
- package/dist/index.d.ts +17 -17
- package/dist/index.js +6 -6
- package/dist/notifications/index.d.cts +2 -2
- package/dist/notifications/index.d.ts +2 -2
- package/dist/{pets-BQbXmICf.d.ts → pets-B_27_agU.d.ts} +1 -1
- package/dist/{pets-BWx9BKea.d.cts → pets-DM8QvKLo.d.cts} +1 -1
- package/dist/{petsRepository-SqIvEMiT.d.cts → petsRepository-BJsJ4cju.d.cts} +1 -1
- package/dist/{petsRepository-0oBVydl6.d.ts → petsRepository-CuYZZaI5.d.ts} +1 -1
- package/dist/photo/index.cjs +1 -1
- package/dist/photo/index.js +1 -1
- package/dist/{ports-ChnzSy4E.d.cts → ports-ZmJYgd5I.d.cts} +10 -9
- package/dist/{ports-iXPWd7Vt.d.ts → ports-nXHf50_X.d.ts} +10 -9
- package/dist/records/depth/index.cjs +2 -2
- package/dist/records/depth/index.d.cts +7 -7
- package/dist/records/depth/index.d.ts +7 -7
- package/dist/records/depth/index.js +2 -2
- package/dist/records/index.cjs +3 -3
- package/dist/records/index.d.cts +19 -10
- package/dist/records/index.d.ts +19 -10
- package/dist/records/index.js +3 -3
- package/dist/{requestFunnel-DAwb7haa.d.cts → requestFunnel-C_cZXhIA.d.cts} +2 -2
- package/dist/{requestFunnel-CQzz2DIW.d.ts → requestFunnel-Ve9BshTB.d.ts} +2 -2
- package/dist/{runtimeTypes-BNOxfmfg.d.ts → runtimeTypes-ByKsp8hm.d.ts} +5 -5
- package/dist/{runtimeTypes-DB9-kigO.d.cts → runtimeTypes-D155OlBW.d.cts} +5 -5
- package/dist/server/events/index.cjs +1 -1
- package/dist/server/events/index.d.cts +2 -2
- package/dist/server/events/index.d.ts +2 -2
- package/dist/server/events/index.js +1 -1
- package/dist/server/index.cjs +1 -1
- package/dist/server/index.d.cts +3 -3
- package/dist/server/index.d.ts +3 -3
- package/dist/server/index.js +1 -1
- package/dist/televet/booking/index.cjs +4 -1
- package/dist/televet/booking/index.d.cts +116 -29
- package/dist/televet/booking/index.d.ts +116 -29
- package/dist/televet/booking/index.js +4 -1
- package/dist/televet/call/index.cjs +1 -1
- package/dist/televet/call/index.d.cts +1 -1
- package/dist/televet/call/index.d.ts +1 -1
- package/dist/televet/call/index.js +1 -1
- package/dist/televet/index.cjs +1 -1
- package/dist/televet/index.js +1 -1
- package/dist/testing/index.cjs +3 -3
- package/dist/testing/index.d.cts +1 -1
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/index.js +3 -3
- package/dist/testing/rn/index.cjs +1 -1
- package/dist/testing/rn/index.d.cts +14 -12
- package/dist/testing/rn/index.d.ts +14 -12
- package/dist/testing/rn/index.js +1 -1
- package/dist/testing/web/index.d.cts +9 -9
- package/dist/testing/web/index.d.ts +9 -9
- package/dist/{timelineRows-BuNhzDbH.d.cts → timelineRows-BNF43SXK.d.cts} +1 -1
- package/dist/{timelineRows-Dll2IGFg.d.ts → timelineRows-DXpjECfA.d.ts} +1 -1
- package/dist/{tokens-ARWZtMOU.d.cts → tokens-BYtbKwFh.d.cts} +6 -3
- package/dist/{tokens-ARWZtMOU.d.ts → tokens-BYtbKwFh.d.ts} +6 -3
- package/dist/{typeStyle-YCS8dt19.d.cts → typeStyle-BqfwxZH4.d.cts} +2 -2
- package/dist/{typeStyle-8iEqQmP_.d.ts → typeStyle-DKz02DGU.d.ts} +2 -2
- package/dist/{uploadTransport-C1p8FuG8.d.cts → uploadTransport-BM_pnEWj.d.cts} +5 -0
- package/dist/{uploadTransport-bZIKBTyK.d.ts → uploadTransport-C6kGP1Kd.d.ts} +5 -0
- package/dist/{useRecordsDepth-CNEHZJtj.d.cts → useRecordsDepth-CARTuHKh.d.cts} +1 -1
- package/dist/{useRecordsDepth-CuNdne6E.d.ts → useRecordsDepth-fPSv-GXU.d.ts} +1 -1
- package/dist/video/index.cjs +1 -1
- package/dist/video/index.js +1 -1
- package/dist/{view-BhqWlYrZ.d.cts → view-DGPaVno8.d.cts} +47 -5
- package/dist/{view-DFy8EDwf.d.ts → view-Dc-JlFkf.d.ts} +47 -5
- package/dist/web/consent/index.cjs +1 -1
- package/dist/web/consent/index.d.cts +5 -5
- package/dist/web/consent/index.d.ts +5 -5
- package/dist/web/consent/index.js +1 -1
- package/dist/web/index.cjs +7 -7
- package/dist/web/index.d.cts +23 -22
- package/dist/web/index.d.ts +23 -22
- package/dist/web/index.js +7 -7
- package/dist/web/notifications/index.d.cts +3 -3
- package/dist/web/notifications/index.d.ts +3 -3
- package/dist/web/records/depth/index.cjs +2 -2
- package/dist/web/records/depth/index.d.cts +7 -7
- package/dist/web/records/depth/index.d.ts +7 -7
- package/dist/web/records/depth/index.js +2 -2
- package/dist/web/records/index.cjs +3 -3
- package/dist/web/records/index.d.cts +28 -17
- package/dist/web/records/index.d.ts +28 -17
- package/dist/web/records/index.js +3 -3
- package/dist/web/televet/booking/index.cjs +4 -2
- package/dist/web/televet/booking/index.d.cts +228 -90
- package/dist/web/televet/booking/index.d.ts +228 -90
- package/dist/web/televet/booking/index.js +4 -2
- package/dist/web/televet/call/index.cjs +1 -1
- package/dist/web/televet/call/index.d.cts +1 -1
- package/dist/web/televet/call/index.d.ts +1 -1
- package/dist/web/televet/call/index.js +1 -1
- package/dist/web/televet/index.cjs +3 -3
- package/dist/web/televet/index.d.cts +2 -2
- package/dist/web/televet/index.d.ts +2 -2
- package/dist/web/televet/index.js +3 -3
- package/package.json +1 -1
package/dist/testing/rn/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {createContext,forwardRef,useMemo,useRef,useEffect,createElement,useState,useContext}from'react';import {View,Animated,StyleSheet,TextInput,Easing,Text}from'react-native';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {z as z$1}from'zod';var it=Object.defineProperty;var o=(e,t)=>it(e,"name",{value:t,configurable:true});var se=Object.freeze({placeholder:"Ask me anything!",send:"Send",stop:"Stop",retry:"Try again",followUps:"Helpful follow-ups",poweredBy:"powered by everfur",senderUser:"You",senderAssistant:"Assistant",senderVet:"Your vet",typing:"Assistant is typing",loading:"Loading",empty:"No messages yet",transcript:"Conversation",emptyTitle:"What can we help {petName} with today?",emptyTitlePetFallback:"your pet",copied:"Copied",copyUserMessage:"Copy your message",copyAssistantMessage:"Copy assistant message",feedbackHelpful:"Helpful",feedbackNeutral:"Neutral",feedbackNotHelpful:"Not helpful",feedbackTitle:"What went wrong?",feedbackSubtitle:"Your feedback helps make answers more reliable.",feedbackReasonInaccurate:"Inaccurate",feedbackReasonOutdated:"Out of date",feedbackReasonUnsafe:"Unsafe advice",feedbackReasonUnclear:"Confusing or unclear",feedbackReasonOther:"Something else",feedbackNotesPlaceholder:"Add details (optional)",feedbackSubmit:"Submit feedback",feedbackSkip:"Skip",feedbackSkipA11y:"Skip feedback",feedbackThanks:"Thanks for the feedback",feedbackFailed:"Couldn't send feedback. Please try again.",turnFailedTitle:"Message failed",turnRetry:"Retry",turnUnreachableTitle:"Couldn't reach this chat",turnStartNewChat:"Start a new chat",reconnecting:"Reconnecting\u2026",turnStoppedTitle:"Response stopped",turnStoppedBody:"You stopped this response before it finished. Tap retry to try again.",sourceSingular:"source",sourcePlural:"sources",showSources:"Show",hideSources:"Hide",openSource:"Open source",urgencyGeneralReason:"Just general info about {petName}. Nothing here needs action right now.",findVet:"Find a vet",findVetA11y:"Find a vet near you",showLatestVetAlert:"Show latest vet alert",dismissBanner:"Dismiss {label} banner",openMenu:"Open menu",openMenuUnread:"Open menu, unread chats",yourPets:"Your Pets",yourPet:"Your pet",switchActivePet:"Switch active pet, {name}",petCurrentlyActive:"{name}, currently active",switchToPet:"Switch to {name}",activePrefix:"Active \xB7 ",close:"Close",addAnotherPet:"Add another pet",addPet:"Add a pet",attachmentPhoto:"Photo",attachmentCamera:"Camera",closeAttachmentPicker:"Close attachment picker",addAttachment:"Add attachment, {used} of {total} used",attachmentsFull:"Attachments full, {used} of {total} used",retryUpload:"Retry uploading {filename}",removeAttachment:"Remove {filename}",previewAttachment:"Preview {filename}",closePreview:"Close preview",attachedImage:"Attached image: {filename}, opens a full-screen preview",attachmentTooLarge:"Files must be under {max}. {filename} is {size}.",attachmentTooMany:"You can attach up to {max} files per message.",attachmentUnsupported:"{filename} isn't a supported file type yet.",attachmentNetwork:"Couldn't reach the server. Check your connection and try again.",attachmentServer:"Upload failed{status}. Please try again.",attachmentCancelled:"Upload cancelled.",attachmentRateLimited:"Slow down. Please wait a moment and try again.",attachmentQuota:"Daily image limit reached. Try again tomorrow.",attachmentConflict:"Something went wrong. Tap to retry.",attachmentUnknown:"Something went wrong. Please try again.",attachmentsFailedBlocked:"Some attachments failed to upload. Remove or retry them before sending.",dictate:"Dictate a message",stopDictation:"Stop dictation",listening:"Listening",micBlocked:"Microphone access is blocked. Allow it in your browser settings to dictate.",noSpeech:"We didn't catch that. Tap the mic and try again.",dictationUnavailable:"Voice typing isn't available right now."});function G(e){if(e!==null&&typeof e=="object"&&!Object.isFrozen(e)){Object.freeze(e);for(let t of Object.keys(e))G(e[t]);}return e}o(G,"deepFreeze");var st=Object.freeze({content:0,heading:2,control:1.8,compact:1.5,badge:1.3}),ue={xs:4,sm:8,md:12,lg:16,xl:24,xxl:32},de={tile:5,xs:6,sm:10,md:14,lg:20,xl:28,pill:500},le={nano:8,small:9,micro:10,tiny:11,caption:12,bodyTight:13,body:14,subtitle:16,heading:18,verdict:24},lt={tight:1.15,snug:1.3,normal:1.4,relaxed:1.55},ut={regular:"400",medium:"500",bold:"700"},dt={eyebrow:1,monoWide:.9,headerBrand:-0.42,tight:-0.35},ct=0,k="System",F="monospace",pt=["content","heading","control","compact","badge"];function ft(e){let t={};for(let r of pt)t[r]=e;return t}o(ft,"authoredTierSizes");function ce(){return {family:k,mono:F,fontUrl:null,families:{regular:k,medium:k,bold:k,mono:F,monoMedium:F,monoBold:F},namedFaces:{regular:false,medium:false,bold:false,mono:false,monoMedium:false,monoBold:false},fontUrls:{},size:le,tierSizes:ft(le),lineHeight:lt,weight:ut,letterSpacing:dt,scale:1,maxScale:ct,scaleCaps:st}}o(ce,"baseType");var pe={},Y=Object.freeze({standard:Object.freeze([.2,0,0,1]),emphasized:Object.freeze([.2,.8,.2,1]),exit:Object.freeze([.4,0,1,1])});function W(e){return `cubic-bezier(${e.join(", ")})`}o(W,"cssCubicBezier");var fe={duration:{instant:80,fast:140,normal:220,slow:320},spring:{gentle:{damping:18,stiffness:200}},easing:{standard:W(Y.standard),emphasized:W(Y.emphasized),exit:W(Y.exit)},reducedMotion:false},mt={brand:"#10462E",brandSoft:"rgba(16,70,46,0.10)",brandSofter:"rgba(16,70,46,0.15)",brandBorder:"rgba(16,70,46,0.18)",borderHairlineGreen:"rgba(16,70,46,0.25)",brandBorderStrong:"rgba(16,70,46,0.55)",brandInk:"#10462E",linkInk:"#10462E",surface:"#FFFFFF",surfaceCream:"#FDFBF8",surfaceSubtle:"#EFE9E3",background:"#FFFFFF",borderRingCream:"#D8D2C8",chatGround:"#FFFFFF",composerFill:"#FDFBF8",composerBorder:"rgba(16,70,46,0.75)",shadow:"#0B3421",text:{primary:"#111111",secondary:"#0E462E",muted:"#6E6660",placeholder:"rgba(61,61,61,0.75)",onBrand:"#FFFFFF",metaCool:"#3D3D3D",timestamp:"rgba(61,61,61,0.75)"},primary:"#10462E",onPrimary:"#FFFFFF",accent:"#10462E",onAccent:"#FFFFFF",accentEdge:"#07C168",success:"#07C168",danger:"#B91C1C",onDanger:"#FFFFFF",errorRed:"#CC1600",warningStrong:"#A45610",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.12)",badgeBgCaution:"rgba(217,130,29,0.14)",badgeBgCritical:"rgba(185,28,28,0.12)",badgeBgNeutral:"rgba(110,102,96,0.12)",bubbleUser:"#10462E",bubbleAssistant:"#FFFFFF",bubbleVet:"#FFC3BC",onBubbleVet:"#111111",skeleton:"#EFE9E3",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.10)",checkupCardConcernBg:"rgba(239,167,0,0.10)"},me=G({brightness:"light",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:mt,space:ue,radius:de,type:ce(),motion:fe,slots:pe}),yt={brand:"#6BD39A",brandSoft:"rgba(107,211,154,0.12)",brandSofter:"rgba(107,211,154,0.18)",brandBorder:"rgba(107,211,154,0.22)",borderHairlineGreen:"rgba(107,211,154,0.28)",brandBorderStrong:"rgba(107,211,154,0.55)",brandInk:"#6BD39A",linkInk:"#6BD39A",surface:"#1C1F23",surfaceCream:"#23272C",surfaceSubtle:"#23272C",background:"#15171A",borderRingCream:"#3A3F45",chatGround:"#1C1F23",composerFill:"#23272C",composerBorder:"rgba(107,211,154,0.75)",shadow:"#000000",text:{primary:"#F5F3F0",secondary:"#A9E4C4",muted:"#9A938C",placeholder:"rgba(255,255,255,0.55)",onBrand:"#0E1F17",metaCool:"#C9C9C9",timestamp:"rgba(245,243,240,0.7)"},primary:"#6BD39A",onPrimary:"#0E1F17",accent:"#6BD39A",onAccent:"#0E1F17",accentEdge:"#34D888",success:"#07C168",danger:"#F87171",onDanger:"#0E1F17",errorRed:"#FF6B5B",warningStrong:"#F0A35E",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.18)",badgeBgCaution:"rgba(217,130,29,0.20)",badgeBgCritical:"rgba(185,28,28,0.22)",badgeBgNeutral:"rgba(255,255,255,0.10)",bubbleUser:"#6BD39A",bubbleAssistant:"#1C1F23",bubbleVet:"#FFC3BC",onBubbleVet:"#111111",skeleton:"#23272C",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.16)",checkupCardConcernBg:"rgba(239,167,0,0.16)"};G({brightness:"dark",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:yt,space:ue,radius:de,type:ce(),motion:fe,slots:pe});var ye=Symbol.for("@everfur/sdk#EverfurThemeContext@v1"),be=globalThis,K=be[ye]??(be[ye]=createContext(me));K.displayName??="EverfurThemeContext";function b(){return useContext(K)}o(b,"useEverfurTheme");var he=6,Re=520,Rt=Math.round(Re*.18),Ee=.44,St=.5,_e=[0,.5,1],wt=[0,1,2];function Ct(){let e=b(),t=useMemo(()=>xt(e),[e]),r=!e.motion.reducedMotion;return jsx(View,{style:t.card,accessible:true,accessibilityRole:"text",accessibilityLabel:se.typing,accessibilityLiveRegion:"polite",accessibilityState:{busy:true},children:wt.map(n=>r?jsx(Tt,{index:n,style:t.dot},n):jsx(View,{style:[t.dot,t.dotStatic]},n))})}o(Ct,"TypingIndicator");function Tt({index:e,style:t}){let r=useRef(new Animated.Value(0)).current;useEffect(()=>{let s=Animated.sequence([Animated.delay(e*Rt),Animated.loop(Animated.timing(r,{toValue:1,duration:Re,useNativeDriver:true}))]);return s.start(),()=>s.stop()},[r,e]);let n=r.interpolate({inputRange:_e,outputRange:[Ee,1,Ee]}),i=r.interpolate({inputRange:_e,outputRange:[0,-3.5,0]});return jsx(Animated.View,{style:[t,{opacity:n,transform:[{translateY:i}]}]})}o(Tt,"AnimatedDot");function xt(e){let t=e.color,r=e.space,n=e.radius;return StyleSheet.create({card:{alignSelf:"flex-start",flexDirection:"row",alignItems:"center",gap:r.xs,paddingHorizontal:r.md,paddingVertical:r.sm,backgroundColor:t.surfaceCream,borderRadius:n.md,borderWidth:StyleSheet.hairlineWidth,borderColor:t.brandBorder},dot:{width:he,height:he,borderRadius:n.pill,backgroundColor:t.brand},dotStatic:{opacity:St}})}o(xt,"makeStyles");function At(e,t){let r=e.scaleCaps[t];return r>0?r:void 0}o(At,"tierMultiplier");function A({tier:e="content",...t}){let{type:r}=b(),n=At(r,e);return createElement(Text,n===void 0?t:{maxFontSizeMultiplier:n,...t})}o(A,"Text");forwardRef(o(function(t,r){return createElement(TextInput,{...t,...r===null?{}:{ref:r}})},"TextInput"));var Lt=1400,Vt=300;function Nt(){let e=b(),t=useMemo(()=>Ut(e),[e]),r=e.motion.reducedMotion,[n,i]=useState(false);useEffect(()=>{let d=setTimeout(()=>i(true),Vt);return ()=>clearTimeout(d)},[]);let s=useRef(new Animated.Value(0)).current;useEffect(()=>{if(r||!n)return;let d=Animated.loop(Animated.timing(s,{toValue:1,duration:Lt,easing:Easing.linear,useNativeDriver:true}));return d.start(),()=>d.stop()},[r,n,s]);let l=r?null:{transform:[{rotate:s.interpolate({inputRange:[0,1],outputRange:["0deg","360deg"]})}]};return jsx(View,{style:t.wrap,accessible:true,accessibilityState:{busy:true},accessibilityLabel:"Analyzing photo",children:n?jsxs(Fragment,{children:[jsx(Animated.View,{style:[t.ring,l]}),jsx(A,{style:t.statusLine,children:"Analyzing"})]}):null})}o(Nt,"AnalyzingIndicator");function Ut(e){let{color:t,space:r,radius:n,type:i}=e,s=i.weight.medium,l=r.xxl*2,d=r.xs;return StyleSheet.create({wrap:{flexGrow:1,alignItems:"center",justifyContent:"center",padding:r.xl,gap:r.md},ring:{width:l,height:l,borderRadius:n.pill,borderWidth:d,borderTopColor:t.success,borderRightColor:t.success,borderBottomColor:t.borderRingCream,borderLeftColor:t.borderRingCream},statusLine:{color:t.text.secondary,fontFamily:i.family,fontSize:i.size.subtitle,lineHeight:i.size.subtitle*i.lineHeight.snug,fontWeight:s,letterSpacing:i.letterSpacing.tight,textAlign:"center"}})}o(Ut,"makeStyles");var Kt=1100,$t=1.6,Qt=.35;function Xt(e,t){let{color:r}=e;switch(t){case "low_risk":return {accent:r.success,wash:r.badgeBgPositive,label:"Low risk",pulse:false};case "concern":return {accent:r.cautionAccent,wash:r.badgeBgCaution,label:"Concern",pulse:true};case "uncertain":return {accent:r.text.muted,wash:r.badgeBgNeutral,label:"Uncertain",pulse:false}}}o(Xt,"toneSpec");function Jt({riskTier:e}){let t=b(),r=useMemo(()=>Zt(t),[t]),n=useRef(new Animated.Value(0)).current,i=e===null?null:Xt(t,e),s=i!==null&&i.pulse&&!t.motion.reducedMotion;return useEffect(()=>{if(!s)return;let l=Animated.loop(Animated.timing(n,{toValue:1,duration:Kt,easing:Easing.out(Easing.quad),useNativeDriver:true}));return l.start(),()=>l.stop()},[s,n]),i===null?null:jsxs(View,{style:[r.pill,{backgroundColor:i.wash}],accessible:true,accessibilityRole:"text",accessibilityLabel:i.label,children:[jsxs(View,{style:r.dotWrap,children:[s?jsx(Animated.View,{pointerEvents:"none",style:[r.dotRing,{backgroundColor:i.accent,opacity:n.interpolate({inputRange:[0,1],outputRange:[Qt,0]}),transform:[{scale:n.interpolate({inputRange:[0,1],outputRange:[1,$t]})}]}]}):null,jsx(View,{style:[r.dot,{backgroundColor:i.accent}]})]}),jsx(A,{style:[r.label,{color:i.accent}],children:i.label})]})}o(Jt,"SeverityBadge");function Zt(e){let{space:t,radius:r,type:n}=e,i=n.weight.bold,s=t.sm;return StyleSheet.create({pill:{alignSelf:"flex-start",flexDirection:"row",alignItems:"center",gap:t.sm,paddingHorizontal:t.md,paddingVertical:t.xs,borderRadius:r.pill},dotWrap:{width:s,height:s,alignItems:"center",justifyContent:"center"},dot:{width:s,height:s,borderRadius:r.pill},dotRing:{position:"absolute",width:s,height:s,borderRadius:r.pill},label:{fontFamily:n.family,fontSize:n.size.caption,lineHeight:n.size.caption*n.lineHeight.snug,fontWeight:i,letterSpacing:n.letterSpacing.eyebrow}})}o(Zt,"makeStyles");function j(e,t){return Object.freeze(t===void 0?{ok:true,value:e}:{ok:true,value:e,warning:t})}o(j,"ok");function u(e){return Object.freeze({ok:false,error:e})}o(u,"err");var z=class z extends Error{constructor(t,r){super(r),this.name="EverfurConfigError",this.kind=t,Object.setPrototypeOf(this,z.prototype);}};o(z,"EverfurConfigError");var w=z;var xe=Symbol.for("@everfur/sdk#EverfurContext@v1"),ke=globalThis,Fe=ke[xe]??(ke[xe]=createContext(null));Fe.displayName??="EverfurContext";function _(){let e=useContext(Fe);if(e===null)throw new w("not-initialized","Everfur hooks must be called inside <EverfurProvider>. Wrap your tree once, high.");return e}o(_,"useEverfurContext");function nr(){let{runtime:e}=_();return useMemo(()=>({apply:o(t=>e.updateEntitlements(t),"apply")}),[e])}o(nr,"useEverfurTestEntitlements");var J=Object.freeze([Object.freeze({wireCode:"AccessDeniedException",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"AuthorizationException",envelope:"http_envelope",httpStatus:401,retryable:false}),Object.freeze({wireCode:"ConflictException",envelope:"http_envelope",httpStatus:409,retryable:true}),Object.freeze({wireCode:"DAILY_QUOTA_EXCEEDED",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"FILE_TOO_LARGE",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"IDEMPOTENCY_KEY_IN_FLIGHT",envelope:"http_envelope",httpStatus:409,retryable:true}),Object.freeze({wireCode:"IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"INVALID_CONTENT_TYPE",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"InternalFailureException",envelope:"http_envelope",httpStatus:500,retryable:true}),Object.freeze({wireCode:"MethodNotAllowedException",envelope:"http_envelope",httpStatus:405,retryable:false}),Object.freeze({wireCode:"NotImplementedException",envelope:"http_envelope",httpStatus:501,retryable:false}),Object.freeze({wireCode:"PaymentRequiredException",envelope:"http_envelope",httpStatus:402,retryable:false}),Object.freeze({wireCode:"ResourceNotFoundException",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"ServiceUnavailableException",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"TIER_UPGRADE_REQUIRED",envelope:"http_envelope",httpStatus:402,retryable:false}),Object.freeze({wireCode:"ThrottlingException",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"ValidationException",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"accessDenied",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"access_denied",envelope:"oauth_error",httpStatus:302,retryable:false}),Object.freeze({wireCode:"attachment_unreadable",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"authExpired",envelope:"http_envelope",httpStatus:401,retryable:true}),Object.freeze({wireCode:"authRejected",envelope:"http_envelope",httpStatus:401,retryable:false}),Object.freeze({wireCode:"consent_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"consent_required",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"consent_scope_wrong_route",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"device_cipher_unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"email_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"event_cursor_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_filter_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_payload_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_type_not_available",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_type_unknown",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"idempotency_key_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"idempotency_key_required",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"idempotency_key_reused",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"insufficientCapability",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"insufficient_scope",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"internal_error",envelope:"sse_frame",httpStatus:200,retryable:false}),Object.freeze({wireCode:"invalidRequest",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_client",envelope:"oauth_error",httpStatus:401,retryable:false}),Object.freeze({wireCode:"invalid_client_metadata",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_grant",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_redirect_uri",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_request",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_scope",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_target",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"mcp_connection_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"mcp_request_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"mcp_request_gone",envelope:"http_envelope",httpStatus:410,retryable:false}),Object.freeze({wireCode:"mcp_request_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"not_found",envelope:"sse_frame",httpStatus:200,retryable:false}),Object.freeze({wireCode:"partner_visit_link_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"partner_visit_owner_only",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"partner_visit_pet_already_mapped",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"payload_too_large",envelope:"http_envelope",httpStatus:413,retryable:false}),Object.freeze({wireCode:"petRefInUse",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"pet_health_list_removals_unconfirmed",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"pet_health_species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"pet_not_registered",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"provider_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"rateLimited",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"record_species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"record_subject_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"record_upload_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"records_consent_required",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"sandbox_only",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"session_required",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"share_limit_reached",envelope:"http_envelope",httpStatus:429,retryable:false}),Object.freeze({wireCode:"slow_down",envelope:"oauth_error",httpStatus:429,retryable:true}),Object.freeze({wireCode:"species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"tenant_filter_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"tenant_has_no_capabilities",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"tenant_resource_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"tenant_surface_not_enabled",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"timeout",envelope:"sse_frame",httpStatus:200,retryable:true}),Object.freeze({wireCode:"token_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"unavailable",envelope:"sse_frame",httpStatus:200,retryable:true}),Object.freeze({wireCode:"unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"unsupported_grant_type",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"unsupported_response_type",envelope:"oauth_error",httpStatus:302,retryable:false}),Object.freeze({wireCode:"verify_mint_rate_limited",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"verify_mint_refused",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"verify_mint_unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"verify_user_ref_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"webhook_endpoint_update_empty",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"webhook_endpoint_update_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"webhook_url_rejected",envelope:"http_envelope",httpStatus:400,retryable:false})]);Object.freeze(J.map(e=>e.wireCode));var or=Object.freeze({ValidationException:"validationFailed",AuthorizationException:"authRejected",PaymentRequiredException:"paymentRequired",AccessDeniedException:"accessDenied",ResourceNotFoundException:"resourceNotFound",ConflictException:"conflict",ThrottlingException:"rateLimited",InternalFailureException:"internalError",NotImplementedException:"notImplemented",ServiceUnavailableException:"serviceUnavailable",MethodNotAllowedException:"validationFailed",authExpired:"authExpired",unavailable:"serviceUnavailable",session_required:"sessionRequired",accessDenied:"accessDenied",invalidRequest:"sdkUpdateRequired",authRejected:"authRejected",rateLimited:"rateLimited",insufficientCapability:"accessDenied",event_cursor_invalid:"validationFailed",event_filter_invalid:"validationFailed",event_payload_invalid:"validationFailed",event_type_unknown:"validationFailed",idempotency_key_invalid:"validationFailed",idempotency_key_required:"validationFailed",idempotency_key_reused:"idempotencyConflict",payload_too_large:"validationFailed",webhook_url_rejected:"validationFailed",webhook_endpoint_update_empty:"validationFailed",webhook_endpoint_update_invalid:"validationFailed",event_type_not_available:"conflict",record_subject_not_found:"resourceNotFound",records_consent_required:"conflict",record_species_unsupported:"validationFailed",record_upload_invalid:"validationFailed",FILE_TOO_LARGE:"validationFailed",INVALID_CONTENT_TYPE:"validationFailed",attachment_unreadable:"validationFailed",provider_unsupported:"validationFailed",token_invalid:"validationFailed",device_cipher_unavailable:"serviceUnavailable",email_invalid:"validationFailed",consent_required:"validationFailed",consent_invalid:"validationFailed",consent_scope_wrong_route:"validationFailed",IDEMPOTENCY_KEY_IN_FLIGHT:"idempotencyInFlight",IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST:"idempotencyConflict",DAILY_QUOTA_EXCEEDED:"quotaExceeded",TIER_UPGRADE_REQUIRED:"paymentRequired",not_found:"conversationNotFound",timeout:"streamTimeout",internal_error:"internalError",invalid_request:"validationFailed",invalid_client:"authRejected",invalid_grant:"authRejected",unsupported_grant_type:"validationFailed",invalid_scope:"validationFailed",invalid_target:"validationFailed",invalid_redirect_uri:"validationFailed",invalid_client_metadata:"validationFailed",unsupported_response_type:"validationFailed",access_denied:"accessDenied",slow_down:"rateLimited",mcp_request_not_found:"resourceNotFound",mcp_request_gone:"resourceNotFound",mcp_connection_not_found:"resourceNotFound",mcp_request_conflict:"conflict",sandbox_only:"accessDenied",tenant_has_no_capabilities:"conflict",verify_mint_refused:"accessDenied",verify_mint_rate_limited:"rateLimited",verify_mint_unavailable:"serviceUnavailable",verify_user_ref_invalid:"validationFailed",insufficient_scope:"accessDenied",tenant_filter_invalid:"validationFailed",tenant_resource_not_found:"resourceNotFound",tenant_surface_not_enabled:"conflict",pet_health_species_unsupported:"validationFailed",pet_health_list_removals_unconfirmed:"validationFailed",petRefInUse:"conflict",share_limit_reached:"conflict",pet_not_registered:"resourceNotFound",species_unsupported:"validationFailed",partner_visit_owner_only:"accessDenied",partner_visit_link_conflict:"conflict",partner_visit_pet_already_mapped:"conflict"}),Ae=Object.freeze(J.map(e=>Object.freeze({wireCode:e.wireCode,envelope:e.envelope,retryable:e.retryable,normalized:or[e.wireCode]}))),ar=new Map(Ae.map(e=>[e.envelope+e.wireCode.toUpperCase(),e])),ir=Object.freeze(["http_envelope",...[...new Set(Ae.map(e=>e.envelope))].filter(e=>e!=="http_envelope").sort()]);function D(e,t){if(typeof e!="string")return;let r=e.trim().toUpperCase();if(r.length!==0)for(let n of [t??"http_envelope",...ir]){let i=ar.get(n+r);if(i)return i}}o(D,"contractErrorFor");function sr(e){return e.envelope==="sse_frame"?`/errors#sse-${e.wireCode}`:e.envelope==="oauth_error"?`/errors#oauth-${e.wireCode}`:`/errors#${e.wireCode}`}o(sr,"contractDocUrl");function Ie(e){return null}o(Ie,"publishedDocUrl");var lr=Object.freeze({authExpired:"authentication",authRejected:"authentication",sessionRequired:"authentication",accessDenied:"authorization",paymentRequired:"entitlement",quotaExceeded:"rateLimit",rateLimited:"rateLimit",validationFailed:"invalidRequest",sdkUpdateRequired:"invalidRequest",conversationNotFound:"notFound",petNotFound:"notFound",resourceNotFound:"notFound",conflict:"conflict",idempotencyConflict:"conflict",idempotencyInFlight:"conflict",streamTimeout:"connection",streamIncomplete:"connection",upstreamLlmTimeout:"connection",serviceUnavailable:"connection",internalError:"server",notImplemented:"server",mediaUploadFailed:"media",moderationBlocked:"policy",unknown:"unknown"});function Pe(e){return lr[e]}o(Pe,"categoryFor");function ze(e){let t=D(e);if(t)return t.normalized;let r=(e??"").trim().toUpperCase(),n=r.replace(/[^A-Z0-9]/g,"");if(n==="AUTHREJECTED")return "authRejected";if(r.startsWith("AUTH"))return "authExpired";switch(n){case "DAILYQUOTAEXCEEDED":case "QUOTAEXCEEDED":return "quotaExceeded";case "RATELIMITED":case "TOOMANYREQUESTS":case "TELEVETRATELIMITED":return "rateLimited";case "IDEMPOTENCYKEYCONFLICT":case "IDEMPOTENCYCONFLICT":return "idempotencyConflict";case "ACCESSDENIED":case "FORBIDDEN":return "accessDenied";case "NOTFOUND":case "CONVERSATIONNOTFOUND":return "conversationNotFound";case "PETNOTFOUND":return "petNotFound";case "TIMEOUT":case "STREAMTIMEOUT":return "streamTimeout";case "MEDIAUPLOADFAILED":case "UNRECOGNIZEDVIDEOFORMAT":case "FILETOOSMALL":return "mediaUploadFailed";case "MODERATIONBLOCKED":return "moderationBlocked";case "UPSTREAMLLMTIMEOUT":return "upstreamLlmTimeout";case "INTERNALERROR":case "INTERNALSERVERERROR":return "internalError";case "STREAMINCOMPLETE":case "CHATSTREAMINCOMPLETE":return "streamIncomplete";case "INVALIDANALYSISTYPE":case "INVALIDUPLOADPURPOSE":return "unknown";default:return "unknown"}}o(ze,"fromWire");var ur=new Set(["streamTimeout","rateLimited","internalError","upstreamLlmTimeout","streamIncomplete"]);function Z(e){return ur.has(e)}o(Z,"isAutoRetryable");var dr=new Set(["serviceUnavailable","conflict","idempotencyInFlight"]);function je(e){return Z(e)||dr.has(e)}o(je,"isRetryableCode");var cr=500,ee=8e3,De=4;function Me(e,t=Math.random){let r=Math.max(0,e),n=Math.min(cr*2**r,ee);return Math.floor(t()*n)}o(Me,"backoffDelayMs");var pr=Object.freeze({authExpired:"Please sign in again to continue.",authRejected:"Please sign in again to continue.",sessionRequired:"This app needs to be updated to keep using Everfur.",accessDenied:"This feature isn't available on your account right now.",paymentRequired:"This is part of a paid plan.",quotaExceeded:"You have used today's messages. This resets tomorrow.",rateLimited:"You are sending messages quickly. Try again in a few seconds.",validationFailed:"Something in that request was not right. Check the details and try again.",sdkUpdateRequired:"This app needs to be updated to keep using Everfur.",conflict:"That is already running. Wait for it to finish, then try again.",idempotencyConflict:"That message was already delivered.",idempotencyInFlight:"That is still processing. Give it a moment.",conversationNotFound:"This conversation is no longer available.",petNotFound:"We could not find that pet. Please pick a pet and try again.",resourceNotFound:"We could not find that.",streamTimeout:"The response timed out. Tap retry to try again.",mediaUploadFailed:"We could not upload that photo. Please attach it again.",moderationBlocked:"This request cannot be answered here.",upstreamLlmTimeout:"The response timed out. Tap retry to try again.",internalError:"We hit a snag on our end. Please try again.",notImplemented:"That is not available yet.",serviceUnavailable:"That service is briefly unavailable. Try again shortly.",streamIncomplete:"The connection dropped mid-answer. Tap retry to continue.",unknown:"Something went wrong. Please try again."});function fr(e){return pr[e]}o(fr,"userFacingError");function Le(e,t,r){Object.defineProperty(e,t,{value:r,enumerable:false,writable:false,configurable:false});}o(Le,"defineHidden");var mr=/^[a-z][a-z0-9_]{0,63}$/;function m(e,t){let r=D(t?.wireCode,t?.wireEnvelope),n={code:e,category:Pe(e),retryable:t?.retryable??je(e),displayMessage:fr(e)};if(t?.httpStatus!==void 0&&(n.httpStatus=t.httpStatus),t?.requestId&&(n.requestId=t.requestId),typeof t?.reasonCode=="string"&&mr.test(t.reasonCode)&&(n.reasonCode=t.reasonCode),r);return t?.wireMessage&&Le(n,"wireMessage",t.wireMessage),t?.raw!==void 0&&t.raw!==null&&Le(n,"raw",t.raw),Object.freeze(n)}o(m,"makeEverfurError");function Ve(e){return Object.freeze({kind:"error",terminal:true,code:e.code,retryable:e.retryable,wireMessage:e.wireMessage,synthesized:e.synthesized,lastEventId:e.lastEventId,serverRequestId:e.serverRequestId??null})}o(Ve,"errorFrame");function gr(e){let t={};return e.mode==="personalized"?t.authorization=`Bearer ${e.token}`:t["x-everfur-partner-key"]=e.publishableKey,e.userRef&&(t["x-everfur-user-ref"]=e.userRef),e.sessionId&&(t["x-everfur-session-id"]=e.sessionId),t}o(gr,"authHeaders");function C(e,t){return {...e,headers:{...vr(e.headers),...gr(t)}}}o(C,"withAuthHeaders");function vr(e){if(!e)return {};let t={};for(let[r,n]of Object.entries(e)){let i=r.toLowerCase();i==="authorization"||i==="x-everfur-partner-key"||(t[r]=n);}return t}o(vr,"stripAuthHeaders");async function Ne(e,t){if(t.mode==="anonymous")return t.transport.request(C(e,{mode:"anonymous",publishableKey:t.publishableKey,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));let r;try{r=await t.identity.currentToken();}catch{return u(te())}let n=await t.transport.request(C(e,{mode:"personalized",token:r,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));if(n.ok||n.error.httpStatus!==401)return n;let i;try{i=await t.identity.currentToken({forceRefresh:!0});}catch{return u(te())}let s=await t.transport.request(C(e,{mode:"personalized",token:i,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));return !s.ok&&s.error.httpStatus===401?u(te(s.error.httpStatus)):s}o(Ne,"authedSend");function te(e){return m("authRejected",{retryable:false,...e!==void 0?{httpStatus:e}:{}})}o(te,"authRejectedError");function Ue(e){return m("internalError",{retryable:true,wireMessage:hr(e)})}o(Ue,"networkError");function hr(e){return e instanceof Error?e.message:typeof e=="string"?e:"network request failed"}o(hr,"describeCause");var Er=3e4,_r=ee*2,Rr="idempotency-key",Sr=new Set(["POST","PUT","PATCH","DELETE"]),wr=Object.freeze({onEvent(){}}),Cr=Object.freeze({setTimeout:o((e,t)=>setTimeout(e,t),"setTimeout"),clearTimeout:o(e=>clearTimeout(e),"clearTimeout"),now:o(()=>Date.now(),"now")});function Tr(e){let t=e.trim().replace(/[^A-Za-z0-9_.:-]/g,"-");return t.length===0?null:`efs_${t}`.slice(0,128)}o(Tr,"seededIdempotencyKey");function M(e){let t=e.observer??wr,r=e.timers??Cr,n=e.rng??Math.random,i=e.sleep??((y,c)=>Nr(y,r,c)),s=e.maxAttempts??De,l=e.unaryTimeoutMs??Er,d=e.newIdempotencyKey??kr(),p=o(y=>{try{t.onEvent(y);}catch{}},"emit");async function f(y,c,h){let N=h?.maxAttempts,rt=Math.max(1,N??s),nt=h?.idempotent??Sr.has(c.method),ot=h?.idempotencyKey===void 0?null:Tr(h.idempotencyKey),U=nt?ot??d():null,at=xr(c,U),q=0;for(;;){let R=o(H=>Object.freeze({call:y,method:c.method,path:c.path,attempt:q,...U?{idempotencyKey:U}:{},...H}),"stamp");p(R({phase:"attempt"}));let ae=Lr(l,r),ie=Vr(ae.signal,c.signal),S;try{S=await Ne({...at,signal:ie.signal},e.auth);}catch(H){S=u(Ue(H));}finally{ie.dispose(),ae.cancel();}if(S.ok)return p(R({phase:"settled",ok:true,reason:"ok"})),S;let g=S.error,x=Or(g,q,{maxAttempts:rt,rng:n,now:r.now(),aborted:c.signal?.aborted===true,...N!==void 0?{perCallMaxAttempts:N}:{},...e.errorPolicy!==void 0?{policy:e.errorPolicy}:{}}),B={ok:false,code:g.code,reason:x.reason,...g.httpStatus!==void 0?{httpStatus:g.httpStatus}:{},...g.requestId!==void 0?{requestId:g.requestId}:{}};if(!x.retry)return p(R({phase:"settled",...B})),u(g);if(p(R({phase:"retry",...B,delayMs:x.delayMs})),await i(x.delayMs,c.signal),c.signal?.aborted===true)return p(R({phase:"settled",...B,reason:"aborted"})),u(g);q+=1;}}o(f,"send");async function T(y){return C(y,await Mr(e.auth))}o(T,"authorize");async function*tt(y,c,h){p(Object.freeze({call:y,phase:"stream.open",method:c.method,path:c.path,attempt:0}));try{yield*e.auth.transport.stream(c,h);}catch{yield Ve({code:"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null,serverRequestId:null});}}return o(tt,"stream"),Object.freeze({send:f,authorize:T,stream:tt})}o(M,"createRequestFunnel");function xr(e,t){let r={};for(let[n,i]of Object.entries(e.headers??{}))n.toLowerCase()!==Rr&&(r[n]=i);return t!==null&&(r["Idempotency-Key"]=t),{...e,headers:r}}o(xr,"assembleHeaders");function kr(){let e=0;return ()=>`efk_${Date.now().toString(36)}_${(e++).toString(36)}_${Math.random().toString(36).slice(2,12)}`}o(kr,"defaultIdempotencyKeyFactory");var Fr=10;function Or(e,t,r){if(r.aborted)return {retry:false,reason:"aborted"};let n=Ar(e);if(n==="quota")return {retry:false,reason:"daily-quota-exhausted"};if(n!=="burst"&&!Z(e.code))return {retry:false,reason:"terminal-code"};let i=n==="burst"?"burst-throttle":"retryable-code";if(o(()=>{if(r.policy===void 0)return false;try{return !r.policy.shouldRetry(e.code,t)}catch{return false}},"policyVetoedRetry")())return {retry:false,reason:"terminal-code"};let l=o(()=>{if(r.policy===void 0)return null;let f;try{f=r.policy.maxAttempts(e.code);}catch{return null}return typeof f!="number"||!Number.isFinite(f)?null:Math.max(1,Math.min(Fr,Math.floor(f)))},"policyCeiling"),d=r.perCallMaxAttempts??l()??r.maxAttempts;if(t+1>=d)return {retry:false,reason:"attempts-exhausted"};let p=Ir(e,r.now);return p!==null?p>_r?{retry:false,reason:"server-reset-beyond-budget"}:{retry:true,reason:i,delayMs:p}:{retry:true,reason:i,delayMs:Me(t,r.rng)}}o(Or,"decideRetry");function Ar(e){let t=e.code==="unknown"?ze(Dr(e.raw)):e.code;return t==="quotaExceeded"?"quota":t==="rateLimited"||e.httpStatus===429?"burst":null}o(Ar,"throttleKind");function Ir(e,t){let r=zr(e.raw);if(r!==null){let i=r-t;return i>0?i:0}let n=Pr(e.raw);return n===null?null:Math.round(n*1e3)}o(Ir,"retryOverrideMs");function Pr(e){for(let t of re(e)){let r=t.retry_after_seconds;if(typeof r=="number"&&Number.isFinite(r)&&r>=0)return r}return null}o(Pr,"findRetryAfterSeconds");function zr(e){for(let t of re(e)){let r=t.resets_at,n=jr(r);if(n!==null)return n}return null}o(zr,"findResetsAt");function re(e){if(!qe(e))return [];let t=[e];for(let r of ["error","detail"]){let n=e[r];qe(n)&&t.push(n);}return t}o(re,"candidateScopes");function jr(e){if(typeof e=="number"&&Number.isFinite(e))return e<1e11?Math.round(e*1e3):Math.round(e);if(typeof e=="string"&&e.trim().length>0){let t=Date.parse(e);return Number.isFinite(t)?t:null}return null}o(jr,"parseInstantMs");function Dr(e){for(let t of re(e)){let r=t.code;if(typeof r=="string"&&r.length>0)return r}return null}o(Dr,"rawWireCode");function qe(e){return typeof e=="object"&&e!==null}o(qe,"isRecord");async function Mr(e){return e.mode==="anonymous"?{mode:"anonymous",publishableKey:e.publishableKey,userRef:e.userRef,...e.sessionId?{sessionId:e.sessionId}:{}}:{mode:"personalized",token:await e.identity.currentToken(),userRef:e.userRef,...e.sessionId?{sessionId:e.sessionId}:{}}}o(Mr,"resolveDeviceAuth");function Lr(e,t){let r=new AbortController,n=t.setTimeout(()=>r.abort(),e);return {signal:r.signal,cancel:o(()=>t.clearTimeout(n),"cancel")}}o(Lr,"boundedSignal");function Vr(e,t){let r=o(()=>{},"noop");if(!t)return {signal:e,dispose:r};let n=new AbortController;if(e.aborted||t.aborted)return n.abort(),{signal:n.signal,dispose:r};let i=o(()=>n.abort(),"onAbort");return e.addEventListener("abort",i,{once:true}),t.addEventListener("abort",i,{once:true}),{signal:n.signal,dispose:o(()=>{e.removeEventListener("abort",i),t.removeEventListener("abort",i);},"dispose")}}o(Vr,"mergeSignals");function Nr(e,t,r){return e<=0||r?.aborted===true?Promise.resolve():new Promise(n=>{let i=t.setTimeout(()=>{r?.removeEventListener("abort",s),n();},e),s=o(()=>{t.clearTimeout(i),n();},"onAbort");r?.addEventListener("abort",s,{once:true});})}o(Nr,"delayAbortable");function L(e){for(let t=0;t<e.length;t+=1){let r=e.charCodeAt(t);if(r>=55296&&r<=56319){let n=e.charCodeAt(t+1);if(!(n>=56320&&n<=57343))return true;t+=1;}else if(r>=56320&&r<=57343)return true}return false}o(L,"hasLoneSurrogate");function Be(e){return [...e].length}o(Be,"serverLength");var We=new Set(["requested","awaiting_clinic","awaiting_upload","received","parsing","in_review","published","failed","revoked"]),He=Object.freeze({submitted:"requested",sent:"requested",dispatching:"requested",awaiting_response:"awaiting_clinic",clinic_responded_no_records:"awaiting_clinic",records_received:"received",parsing_failed:"in_review",review_email_failed:"in_review",clinic_declined:"failed"});function Ur(e){let t=Object.prototype.hasOwnProperty.call(He,e)?He[e]:void 0;if(t!==void 0)return t;let r=e;return We.has(r)?r:"parsing"}o(Ur,"normalizeStatus");var qr=z$1.object({request_id:z$1.string().min(1),pet_ref:z$1.string().min(1),status:z$1.string(),simple_status:z$1.string().nullish(),simple_status_detail:z$1.string().nullish(),status_label:z$1.string().optional(),dispatch_status:z$1.string().nullish(),can_retry_send:z$1.boolean().optional(),can_revoke:z$1.boolean().optional(),can_convert_to_upload:z$1.boolean().optional(),can_update_clinic_email:z$1.boolean().optional(),reminder_count:z$1.number().int().nonnegative().optional(),last_reminder_at:z$1.string().nullish(),waiting_expectation:z$1.string().nullish(),document_count:z$1.number().optional(),held_item_count:z$1.number().optional(),received_at:z$1.string().nullish(),parsing_started_at:z$1.string().nullish(),review_started_at:z$1.string().nullish(),created_at:z$1.string().optional(),updated_at:z$1.string().optional(),source:z$1.string().nullish().catch(null),action_needed_label:z$1.string().nullish().catch(null),failure_reason:z$1.string().nullish().catch(null),failure_code:z$1.string().nullish().catch(null),recovery_stage:z$1.string().nullish().catch(null),show_clinic_phone:z$1.boolean().optional().catch(void 0),clinic_name:z$1.string().nullish().catch(null),clinic_email:z$1.string().nullish().catch(null),clinic_phone:z$1.string().nullish().catch(null),converted_to_upload_at:z$1.string().nullish().catch(null),request_group_id:z$1.string().nullish().catch(null)}).passthrough();function Ge(e){let t=qr.safeParse(e);if(!t.success)return null;let r=t.data,n=Br(r.simple_status),i=n==="requested"&&(r.status==="awaiting_upload"||r.simple_status_detail==="awaiting_owner_upload")?"awaiting_upload":n==="parsing"&&(r.simple_status_detail==="in_review"||r.simple_status_detail==="review_email_failed")?"in_review":n??Ur(r.status);return Object.freeze({id:r.request_id,petRef:r.pet_ref,status:i,simpleStatus:n,simpleStatusDetail:r.simple_status_detail??null,statusLabel:r.status_label??"",dispatchStatus:r.dispatch_status??null,canRetrySend:r.can_retry_send===true,canRevoke:r.can_revoke===true,canConvertToUpload:r.can_convert_to_upload===true,canUpdateClinicEmail:r.can_update_clinic_email===true,reminderCount:r.reminder_count??0,lastReminderAt:r.last_reminder_at??null,waitingExpectation:r.waiting_expectation??null,documentCount:Ye(r.document_count,0),heldItemCount:Ye(r.held_item_count,0),receivedAt:r.received_at??null,parsingStartedAt:r.parsing_started_at??null,reviewStartedAt:r.review_started_at??null,createdAt:r.created_at??"",updatedAt:r.updated_at??"",wireStatus:r.status,source:r.source??null,actionNeededLabel:r.action_needed_label??null,failureReason:r.failure_reason??null,failureCode:r.failure_code??null,recoveryStage:r.recovery_stage??null,showClinicPhone:r.show_clinic_phone===true,clinicName:r.clinic_name??null,clinicEmail:r.clinic_email??null,clinicPhone:r.clinic_phone??null,convertedToUploadAt:r.converted_to_upload_at??null,requestGroupId:r.request_group_id??null})}o(Ge,"mapRequestView");z$1.object({request_group_id:z$1.string().min(1),pet_ref:z$1.string().min(1),total:z$1.number().int().nonnegative(),responded:z$1.number().int().nonnegative(),pending:z$1.number().int().nonnegative(),members:z$1.array(z$1.unknown())});function Br(e){return !e||e==="awaiting_upload"||e==="in_review"?null:We.has(e)?e:null}o(Br,"normalizeSimpleStatus");z$1.object({source_doc_id:z$1.string().min(1),request_id:z$1.string().min(1)});var Hr=z$1.object({label:z$1.string(),value:z$1.string()}),Yr=z$1.object({key:z$1.string(),category:z$1.string().optional(),label:z$1.string().optional(),value:z$1.string().nullish(),unit:z$1.string().nullish(),observed_at:z$1.string().nullish(),status:z$1.string().nullish(),origin:z$1.string().nullish(),canonical_key:z$1.string().nullish()}),Wr=z$1.object({at:z$1.string(),value:z$1.number().nullish(),display:z$1.string().nullish(),origin:z$1.string().nullish()}),Gr=z$1.object({key:z$1.string(),label:z$1.string().optional(),points:z$1.array(Wr).optional()}),Kr=z$1.object({title:z$1.string(),detail:z$1.string().nullish(),due_at:z$1.string().nullish()}),$r=z$1.object({doc_id:z$1.string(),title:z$1.string().nullish(),page_count:z$1.number().nullish(),received_at:z$1.string().nullish()});z$1.object({identity:z$1.array(Hr).optional(),entities:z$1.array(Yr).optional(),entity_series:z$1.array(Gr).optional(),forward_looking:z$1.array(Kr).optional(),documents:z$1.array($r).optional()});z$1.object({pet_ref:z$1.string().optional(),granted:z$1.boolean().optional(),version:z$1.string().nullish(),granted_at:z$1.string().nullish()});function Ye(e,t){return typeof e=="number"&&Number.isFinite(e)?e:t}o(Ye,"numberOr");var Qr="/widget/v1/records/sandbox/requests",Ke=64,Xr=new Set(["records","no_records","declined"]),Jr=new Set(["applied","already_applied","not_applicable"]);function V(e){return m("validationFailed",{retryable:false,wireMessage:e})}o(V,"invalid");function Zr(e){return typeof e!="string"||e.length===0?V("request_id is required and must be a non-empty string"):L(e)?V("request_id contains an unpaired surrogate and cannot be encoded"):[...e].length>Ke?V(`request_id is longer than ${Ke} characters`):null}o(Zr,"requestIdError");function en(e){if(typeof e!="object"||e===null)return null;let{result:t,request:r}=e;if(typeof t!="string"||!Jr.has(t))return null;let n=Ge(r);return n===null?null:Object.freeze({result:t,request:n})}o(en,"mapActionResult");function $e(e){let t=e.funnel??M({auth:e.auth,...e.errorPolicy?{errorPolicy:e.errorPolicy}:{}}),r=o(async(n,i,s,l)=>{let d=Zr(i);if(d!==null)return u(d);let p=`${Qr}/${encodeURIComponent(i)}/${s}`,f=await t.send(n,l===void 0?{method:"POST",path:p}:{method:"POST",path:p,body:l});if(!f.ok)return u(f.error);let T=en(f.value);return T===null?u(m("internalError",{retryable:false})):j(T)},"run");return {simulateClinicReply(n,i){return typeof i!="string"||!Xr.has(i)?Promise.resolve(u(V("outcome must be records, no_records or declined"))):r("records.sandbox.clinicReply",n,"clinic-reply",{outcome:i})},publishSampleRecord(n){return r("records.sandbox.publishSample",n,"publish-sample")}}}o($e,"createRecordsSandboxController");function rn(){let{runtime:e,userRef:t,scopeEpoch:r}=_();return useMemo(()=>{let{services:n}=e.registry;return $e({auth:n.authFor(t),...n.errorPolicy?{errorPolicy:n.errorPolicy}:{}})},[e,t,r])}o(rn,"useEverfurRecordsSandbox");var ne="/widget/v1/televet/sandbox/visits",nn=128,Qe=64,Ze=new Set(["booked","cancelled","completed","no_show"]),on=new Set(["applied","already_applied","not_applicable"]),Xe=new Set(["rescheduled","reminder","followup_sent","message_received","ended"]),Je=new Set(["24h","30m"]);function v(e){return m("validationFailed",{retryable:false,wireMessage:e})}o(v,"invalid");function oe(e,t,r){return typeof t!="string"||t.length===0?v(`${e} is required and must be a non-empty string`):L(t)?v(`${e} contains an unpaired surrogate and cannot be encoded`):Be(t)>r?v(`${e} is longer than ${r} characters`):null}o(oe,"textError");function an(e){if(typeof e!="object"||e===null)return null;let{result:t,visit:r}=e;if(typeof t!="string"||!on.has(t)||typeof r!="object"||r===null)return null;let{visit_ref:n,pet_ref:i,status:s,scheduled_at:l}=r;return typeof n!="string"||n.length===0||typeof i!="string"||i.length===0||typeof s!="string"||!Ze.has(s)||typeof l!="string"||l.length===0?null:Object.freeze({result:t,visit:Object.freeze({visitRef:n,petRef:i,status:s,scheduledAt:l})})}o(an,"mapActionResult");function et(e){let t=e.funnel??M({auth:e.auth,...e.errorPolicy?{errorPolicy:e.errorPolicy}:{}}),r=o(async(n,i,s)=>{let l=await t.send(n,{method:"POST",path:i,body:s},{idempotent:false,maxAttempts:1});if(!l.ok)return u(l.error);let d=an(l.value);return d===null?u(m("internalError",{retryable:false})):j(d)},"run");return {createVisit(n){let i=oe("pet_ref",n,nn);return i!==null?Promise.resolve(u(i)):r("televet.sandbox.createVisit",ne,{pet_ref:n})},advanceVisit(n,i){let s=oe("visit_ref",n,Qe);if(s!==null)return Promise.resolve(u(s));if(typeof i!="string"||!Ze.has(i))return Promise.resolve(u(v("to must be booked, cancelled, completed or no_show")));let l=`${ne}/${encodeURIComponent(n)}/advance`;return r("televet.sandbox.advanceVisit",l,{to:i})},simulateVisitEvent(n,i,s){let l=oe("visit_ref",n,Qe);if(l!==null)return Promise.resolve(u(l));if(typeof i!="string"||!Xe.has(i))return Promise.resolve(u(v(`event must be one of ${[...Xe].join(", ")}`)));if(i==="reminder"){if(typeof s!="string"||!Je.has(s))return Promise.resolve(u(v(`stage must be one of ${[...Je].join(", ")} for a reminder`)))}else if(s!==void 0)return Promise.resolve(u(v("stage is only for a reminder")));let d=`${ne}/${encodeURIComponent(n)}/simulate`;return r("televet.sandbox.simulateVisitEvent",d,s===void 0?{event:i}:{event:i,stage:s})}}}o(et,"createVetVisitSandboxController");function ln(){let{runtime:e,userRef:t,scopeEpoch:r}=_();return useMemo(()=>{let{services:n}=e.registry;return et({auth:n.authFor(t),...n.errorPolicy?{errorPolicy:n.errorPolicy}:{}})},[e,t,r])}o(ln,"useEverfurVetVisitSandbox");export{Nt as AnalyzingIndicator,Jt as SeverityBadge,Ct as TypingIndicator,rn as useEverfurRecordsSandbox,nr as useEverfurTestEntitlements,ln as useEverfurVetVisitSandbox};
|
|
1
|
+
import {createContext,forwardRef,createElement,useMemo,useState,useEffect,useRef,useContext}from'react';import {TextInput,Animated,Easing,View,StyleSheet,Text}from'react-native';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {z as z$1}from'zod';var mt=Object.defineProperty;var o=(e,t)=>mt(e,"name",{value:t,configurable:true});var X=Object.freeze({placeholder:"Ask anything about {petName}\u2026",placeholderFollowUpWeb:"Ask a follow-up\u2026",placeholderUrgentWeb:"Tell us what\u2019s happening\u2026",composerLabel:"Message",attachPhotoOrFileNative:"Add a photo or file",footnoteNative:"Educational, not a diagnosis. Emergency? Call a vet.",footnoteWeb:"Everfur\u2019s assistant isn\u2019t a vet and doesn\u2019t diagnose. Your vet makes the calls. Not for emergencies: if {petName} is in distress, go to the nearest emergency animal hospital now.",suggestions:"Suggestions",reading:"Reading {petName}\u2019s records\u2026",answered:"Everfur answered.",assistantName:"Everfur",followUpsHeadingNative:"Follow-up questions",turnFailedTitleWeb:"Everfur couldn\u2019t answer that just now.",send:"Send",stop:"Stop",retry:"Try again",poweredBy:"powered by everfur",senderUser:"You",senderAssistant:"Assistant",senderVet:"Your vet",loading:"Loading",empty:"No messages yet",transcript:"Chat with Everfur",emptyTitle:"What can we help {petName} with today?",emptyTitlePetFallback:"your pet",copied:"Copied",copyUserMessage:"Copy your message",copyAssistantMessage:"Copy assistant message",feedbackHelpful:"Helpful",feedbackNeutral:"Neutral",feedbackNotHelpful:"Not helpful",feedbackTitle:"What went wrong?",feedbackSubtitle:"Your feedback helps make answers more reliable.",feedbackReasonInaccurate:"Inaccurate",feedbackReasonOutdated:"Out of date",feedbackReasonUnsafe:"Unsafe advice",feedbackReasonUnclear:"Confusing or unclear",feedbackReasonOther:"Something else",feedbackNotesPlaceholder:"Add details (optional)",feedbackSubmit:"Submit feedback",feedbackSkip:"Skip",feedbackSkipA11y:"Skip feedback",feedbackThanks:"Thanks for the feedback",feedbackFailed:"Couldn't send feedback. Please try again.",turnFailedTitle:"Message failed",turnRetry:"Retry",turnUnreachableTitle:"Couldn't reach this chat",turnStartNewChat:"Start a new chat",reconnecting:"Reconnecting\u2026",turnStoppedTitle:"Response stopped",turnStoppedBody:"You stopped this response before it finished. Tap retry to try again.",sourceSingular:"source",sourcePlural:"sources",showSources:"Show",hideSources:"Hide",openSource:"Open source",urgencyGeneralReason:"Just general info about {petName}. Nothing here needs action right now.",findVet:"Find a vet",findVetA11y:"Find a vet near you",nearestEmergencyVet:"Nearest emergency vet",poisonControlWeb:"ASPCA Poison Control",poisonControlNative:"ASPCA Animal Poison Control, (888) 426-4435",showLatestVetAlert:"Show latest vet alert",dismissBanner:"Dismiss {label} banner",openHistoryNative:"Chats and vet messages",openHistoryWeb:"Chats",showChatsWeb:"Show chats",hideChatsWeb:"Hide chats",newReplySuffix:", a new reply",yourPets:"Your pets",yourPet:"Your pet",switchActivePet:"{name}. Switch pet",petCurrentlyActive:"{name}, currently active",switchToPet:"Switch to {name}",activePrefix:"Active \xB7 ",close:"Close",addAnotherPet:"Add a pet",addPet:"Add a pet",attachmentPhoto:"Photo",attachmentCamera:"Camera",closeAttachmentPicker:"Close attachment picker",addAttachment:"Add attachment, {used} of {total} used",attachmentsFull:"Attachments full, {used} of {total} used",retryUpload:"Retry uploading {filename}",removeAttachment:"Remove {filename}",previewAttachment:"Preview {filename}",closePreview:"Close preview",attachedImage:"Attached image: {filename}, opens a full-screen preview",attachmentTooLarge:"Files must be under {max}. {filename} is {size}.",attachmentTooMany:"You can attach up to {max} files per message.",attachmentUnsupported:"{filename} isn't a supported file type yet.",attachmentNetwork:"Couldn't reach the server. Check your connection and try again.",attachmentServer:"Upload failed{status}. Please try again.",attachmentCancelled:"Upload cancelled.",attachmentRateLimited:"Slow down. Please wait a moment and try again.",attachmentQuota:"Daily image limit reached. Try again tomorrow.",attachmentConflict:"Something went wrong. Tap to retry.",attachmentUnknown:"Something went wrong. Please try again.",attachmentsFailedBlocked:"Some attachments failed to upload. Remove or retry them before sending.",dictate:"Dictate a message",stopDictation:"Stop dictation",listening:"Listening",micBlocked:"Microphone access is blocked. Allow it in your browser settings to dictate.",noSpeech:"We didn't catch that. Tap the mic and try again.",dictationUnavailable:"Voice typing isn't available right now."});function yt(e,t){return e.replace(/\{(\w+)\}/g,(r,n)=>{let i=t[n];return i===void 0?r:String(i)})}o(yt,"fillCopy");function bt(e){return e?.trim()||X.emptyTitlePetFallback}o(bt,"petNameSlot");function fe(e,t){return yt(e,{petName:bt(t)})}o(fe,"forPet");function J(e){if(e!==null&&typeof e=="object"&&!Object.isFrozen(e)){Object.freeze(e);for(let t of Object.keys(e))J(e[t]);}return e}o(J,"deepFreeze");var gt=Object.freeze({content:0,heading:2,control:1.8,compact:1.5,badge:1.3}),ye={xs:4,sm:8,md:12,lg:16,xl:24,xxl:32},be={tile:5,xs:6,sm:10,md:14,lg:20,xl:28,pill:500},me={nano:8,small:9,micro:10,tiny:11,caption:13,bodyTight:15,body:17,subtitle:20,heading:22,verdict:24},vt={tight:1.15,snug:1.3,normal:1.4,relaxed:1.55},ht={regular:"400",medium:"500",bold:"700"},Et={eyebrow:1,monoWide:.9,headerBrand:-0.42,tight:-0.35},_t=0,P="System",z="monospace",Rt=["content","heading","control","compact","badge"];function St(e){let t={};for(let r of Rt)t[r]=e;return t}o(St,"authoredTierSizes");function ge(){return {family:P,mono:z,fontUrl:null,families:{regular:P,medium:P,bold:P,mono:z,monoMedium:z,monoBold:z},namedFaces:{regular:false,medium:false,bold:false,mono:false,monoMedium:false,monoBold:false},fontUrls:{},size:me,tierSizes:St(me),lineHeight:vt,weight:ht,letterSpacing:Et,scale:1,maxScale:_t,scaleCaps:gt}}o(ge,"baseType");var ve={},Q=Object.freeze({standard:Object.freeze([.2,0,0,1]),emphasized:Object.freeze([.2,.8,.2,1]),exit:Object.freeze([.4,0,1,1])});function Z(e){return `cubic-bezier(${e.join(", ")})`}o(Z,"cssCubicBezier");var he={duration:{instant:80,fast:140,normal:220,slow:320},spring:{gentle:{damping:18,stiffness:200}},easing:{standard:Z(Q.standard),emphasized:Z(Q.emphasized),exit:Z(Q.exit)},reducedMotion:false},xt={brand:"#10462E",brandSoft:"rgba(16,70,46,0.10)",brandSofter:"rgba(16,70,46,0.15)",brandBorder:"rgba(16,70,46,0.18)",borderHairlineGreen:"rgba(16,70,46,0.25)",brandBorderStrong:"rgba(16,70,46,0.55)",brandInk:"#10462E",linkInk:"#10462E",surface:"#FFFFFF",surfaceCream:"#FFFFFF",surfaceSubtle:"#F1F5F2",background:"#FFFFFF",borderRingCream:"#E4E4E4",chatGround:"#FFFFFF",composerFill:"#FFFFFF",composerBorder:"rgba(16,70,46,0.75)",shadow:"#0B3421",text:{primary:"#000000",secondary:"#0E462E",muted:"#6B6B6B",placeholder:"rgba(61,61,61,0.75)",onBrand:"#FFFFFF",metaCool:"#3D3D3D",timestamp:"rgba(61,61,61,0.75)"},primary:"#10462E",onPrimary:"#FFFFFF",accent:"#10462E",onAccent:"#FFFFFF",accentEdge:"#07C168",success:"#07C168",danger:"#C03410",onDanger:"#FFFFFF",errorRed:"#C03410",warningStrong:"#A45610",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.12)",badgeBgCaution:"rgba(217,130,29,0.14)",badgeBgCritical:"rgba(192,52,16,0.06)",badgeBgNeutral:"rgba(107,107,107,0.12)",bubbleUser:"#10462E",bubbleAssistant:"#FFFFFF",bubbleVet:"#FFC3BC",onBubbleVet:"#000000",skeleton:"#E9F1E9",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.10)",checkupCardConcernBg:"rgba(239,167,0,0.10)"},Ee=J({brightness:"light",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:xt,space:ye,radius:be,type:ge(),motion:he,slots:ve}),Tt={brand:"#6BD39A",brandSoft:"rgba(107,211,154,0.12)",brandSofter:"rgba(107,211,154,0.18)",brandBorder:"rgba(107,211,154,0.22)",borderHairlineGreen:"rgba(107,211,154,0.28)",brandBorderStrong:"rgba(107,211,154,0.55)",brandInk:"#6BD39A",linkInk:"#6BD39A",surface:"#1C1F23",surfaceCream:"#23272C",surfaceSubtle:"#23272C",background:"#15171A",borderRingCream:"#3A3F45",chatGround:"#1C1F23",composerFill:"#23272C",composerBorder:"rgba(107,211,154,0.75)",shadow:"#000000",text:{primary:"#F5F3F0",secondary:"#A9E4C4",muted:"#9A9A9A",placeholder:"rgba(255,255,255,0.55)",onBrand:"#0E1F17",metaCool:"#C9C9C9",timestamp:"rgba(245,243,240,0.7)"},primary:"#6BD39A",onPrimary:"#0E1F17",accent:"#6BD39A",onAccent:"#0E1F17",accentEdge:"#34D888",success:"#07C168",danger:"#F87171",onDanger:"#0E1F17",errorRed:"#FF6B5B",warningStrong:"#F0A35E",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.18)",badgeBgCaution:"rgba(217,130,29,0.20)",badgeBgCritical:"rgba(185,28,28,0.22)",badgeBgNeutral:"rgba(255,255,255,0.10)",bubbleUser:"#6BD39A",bubbleAssistant:"#1C1F23",bubbleVet:"#FFC3BC",onBubbleVet:"#000000",skeleton:"#23272C",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.16)",checkupCardConcernBg:"rgba(239,167,0,0.16)"};J({brightness:"dark",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:Tt,space:ye,radius:be,type:ge(),motion:he,slots:ve});var _e=Symbol.for("@everfur/sdk#EverfurThemeContext@v1"),Re=globalThis,ee=Re[_e]??(Re[_e]=createContext(Ee));ee.displayName??="EverfurThemeContext";function g(){return useContext(ee)}o(g,"useEverfurTheme");function Ot(e,t){let r=e.scaleCaps[t];return r>0?r:void 0}o(Ot,"tierMultiplier");function R({tier:e="content",...t}){let{type:r}=g(),n=Ot(r,e);return createElement(Text,n===void 0?t:{maxFontSizeMultiplier:n,...t})}o(R,"Text");forwardRef(o(function(t,r){return createElement(TextInput,{...t,...r===null?{}:{ref:r}})},"TextInput"));function h(e,t){if(e===void 0)return {};let r={};return e.backgroundColor!==void 0&&(r.backgroundColor=e.backgroundColor),e.borderColor!==void 0&&(r.borderColor=e.borderColor,r.borderWidth=t??1),e.borderRadius!==void 0&&(r.borderRadius=e.borderRadius),r}o(h,"slotBox");function S(e){return e?.textColor===void 0?{}:{color:e.textColor}}o(S,"slotText");var At=Object.freeze({regular:"regular",medium:"medium",bold:"bold",mono:"regular",monoMedium:"medium",monoBold:"bold"});function u(e,t){let r=e.type,n=r.families[t];return t==="mono"||r.namedFaces[t]?{fontFamily:n}:{fontFamily:n,fontWeight:r.weight[At[t]]}}o(u,"face");var Te=120,k=44,zt=120,Nt="88%",Ce=520,N=2,D=.5,Dt=1.5,jt=1.6,Lt=.6,Ut=56,we=1.5,Mt=5,Bt=5,ke=36,Vt=20,qt=14,w=k;var Ht=.4,Fe=k;var Wt=.4,Yt=480,Gt=12,Kt=.72,$t=48,Ie=1,Xt=12,Qt=18,Zt="12%";function Oe(){let e=g(),t=useMemo(()=>Jt(e),[e]);return {theme:e,styles:t}}o(Oe,"useChatTheme");function Jt(e){let t=e.color,r=e.space,n=e.radius,i=e.type,s=Math.round(i.size.body*Dt),l=Math.round(i.size.body*jt),p=Math.round(Vt*i.size.body/qt),f=t.borderRingCream,d=e.slots;return StyleSheet.create({container:{flex:1,minHeight:Te,backgroundColor:t.chatGround},body:{flex:1},centered:{minHeight:Te,flexGrow:1,alignItems:"center",justifyContent:"center",padding:r.xl},emptyContent:{flexGrow:1,alignItems:"stretch",justifyContent:"flex-start",paddingTop:Zt,paddingHorizontal:r.lg,paddingBottom:r.lg,minHeight:Yt,gap:r.lg},errorText:{...u(e,"regular"),fontSize:i.size.subtitle,lineHeight:i.size.subtitle*i.lineHeight.snug,color:t.danger,textAlign:"center",marginBottom:r.md},retryButton:{minHeight:k,minWidth:k,alignItems:"center",justifyContent:"center",paddingHorizontal:r.xl,paddingVertical:r.sm,borderRadius:n.pill,backgroundColor:t.brand,...h(d.primaryButton)},retryLabel:{...u(e,"medium"),color:t.onPrimary,fontSize:i.size.body,...S(d.primaryButton)},setupNotice:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:r.sm,paddingHorizontal:r.lg,paddingVertical:r.sm,backgroundColor:t.surfaceCream},setupNoticeText:{...u(e,"regular"),color:t.danger,fontSize:i.size.caption,flexShrink:1},turnNotice:{gap:r.xs,padding:r.md,borderRadius:n.lg,backgroundColor:t.surfaceCream,borderWidth:StyleSheet.hairlineWidth,borderColor:t.brandBorder,alignItems:"flex-start"},turnNoticeError:{borderColor:t.danger},turnNoticeTitle:{...u(e,"bold"),color:t.text.primary,fontSize:i.size.body},turnNoticeTitleError:{color:t.danger},turnNoticeBody:{...u(e,"regular"),color:t.text.secondary,fontSize:i.size.caption,lineHeight:i.size.caption*i.lineHeight.normal},turnNoticeAction:{minHeight:k,justifyContent:"center"},turnNoticeActionLabel:{...u(e,"medium"),color:t.brandInk,fontSize:i.size.body},setupNoticeAction:{...u(e,"medium"),color:t.brandInk,fontSize:i.size.caption},reconnectingCaption:{...u(e,"medium"),color:t.text.secondary,fontSize:i.size.caption,lineHeight:i.size.caption*i.lineHeight.normal,textTransform:"uppercase",letterSpacing:.5},readingLine:{...u(e,"regular"),color:t.text.muted,fontSize:i.size.bodyTight,lineHeight:Math.round(i.size.bodyTight*i.lineHeight.relaxed)},list:{flex:1},listContent:{padding:r.lg,gap:r.xl},rowBlock:{gap:r.sm},rowBlockUser:{},rowBlockAssistant:{paddingRight:r.xl},row:{flexDirection:"row"},rowUser:{justifyContent:"flex-end"},rowAssistant:{justifyContent:"flex-start"},bubble:{maxWidth:Nt,alignItems:"flex-start"},bubbleSideUser:{alignItems:"flex-end"},bubbleUser:{maxWidth:Ce,paddingVertical:r.md,paddingHorizontal:r.lg+N,backgroundColor:t.bubbleUser,borderRadius:n.lg,borderBottomRightRadius:n.xs,...h(d.userBubble,D)},bubbleAssistant:d.assistantBubble?.backgroundColor===void 0?{...h(d.assistantBubble,D)}:{paddingVertical:r.md,paddingHorizontal:r.lg+N,borderRadius:n.lg,...h(d.assistantBubble,D)},bubbleVet:{maxWidth:Ce,paddingVertical:r.md,paddingHorizontal:r.lg+N,backgroundColor:t.bubbleVet,borderRadius:n.lg,borderTopLeftRadius:n.xs,...h(d.vetBubble,D)},bubblePending:{opacity:Lt},bubbleTextUser:{...u(e,"regular"),color:t.onPrimary,fontSize:i.size.body,lineHeight:s,...S(d.userBubble)},bubbleTextAssistant:{...u(e,"regular"),color:t.text.primary,fontSize:i.size.body,lineHeight:l,...S(d.assistantBubble)},bubbleTextVet:{...u(e,"regular"),color:t.onBubbleVet,fontSize:i.size.body,lineHeight:s,...S(d.vetBubble)},assistantName:{...u(e,"bold"),color:t.brandInk,fontSize:i.size.bodyTight,marginBottom:r.xs},vetHeader:{flexDirection:"row",alignItems:"baseline",gap:r.sm,marginBottom:r.xs},vetSender:{...u(e,"bold"),color:t.text.primary,fontSize:i.size.bodyTight},vetTime:{...u(e,"regular"),color:t.text.muted,fontSize:i.size.caption},bubbleBold:u(e,"bold"),bubbleItalic:{fontStyle:"italic"},bubbleCode:u(e,"mono"),followUps:{alignSelf:"stretch",marginTop:r.md},followUpsHeading:{...u(e,"monoBold"),color:t.text.muted,fontSize:Gt,textTransform:"uppercase",letterSpacing:Kt,paddingBottom:r.sm,borderBottomWidth:Ie,borderBottomColor:f},followUpSlot:{alignSelf:"stretch"},followUpSlotRuled:{borderTopWidth:Ie,borderTopColor:f},followUpRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:r.md,minHeight:$t,paddingVertical:r.sm+N},followUpText:{...u(e,"bold"),flex:1,color:t.brandInk,fontSize:i.size.bodyTight},composerOuter:{position:"relative"},composer:{marginHorizontal:r.md,marginTop:r.xs,minHeight:Ut,justifyContent:"center",paddingLeft:r.sm,paddingRight:Mt,paddingVertical:Bt,backgroundColor:t.composerFill,borderWidth:we,borderColor:t.composerBorder,borderRadius:n.pill,...h(d.composerInput,we)},composerRow:{flexDirection:"row",alignItems:"center",gap:r.xs,minHeight:ke},attachControl:{width:Fe,height:Fe,alignItems:"center",justifyContent:"center"},attachControlDisabled:{opacity:Wt},input:{flex:1,minHeight:ke,maxHeight:zt,paddingHorizontal:0,paddingVertical:0,...u(e,"regular"),fontSize:i.size.body,lineHeight:p,color:t.text.primary,...S(d.composerInput)},sendControl:{minHeight:w,minWidth:w,alignItems:"center",justifyContent:"center"},sendDisc:{width:w,height:w,borderRadius:w/2,alignItems:"center",justifyContent:"center",...h(d.sendButton)},sendControlDisabled:{opacity:Ht},footnote:{...u(e,"regular"),color:t.text.muted,fontSize:Xt,lineHeight:Qt,textAlign:"center",marginTop:r.sm,marginBottom:r.xs,paddingHorizontal:r.lg},poweredBy:{...u(e,"regular"),color:t.text.muted,fontSize:i.size.micro,textAlign:"center",paddingBottom:r.xs}})}o(Jt,"makeStyles");function er({petName:e=null}){let{styles:t}=Oe(),r=fe(X.reading,e);return jsx(R,{tier:"compact",style:t.readingLine,accessibilityRole:"text",accessibilityLabel:r,accessibilityLiveRegion:"polite",accessibilityState:{busy:true},children:r})}o(er,"TypingIndicator");var lr=1400,dr=300;function ur(){let e=g(),t=useMemo(()=>cr(e),[e]),r=e.motion.reducedMotion,[n,i]=useState(false);useEffect(()=>{let p=setTimeout(()=>i(true),dr);return ()=>clearTimeout(p)},[]);let s=useRef(new Animated.Value(0)).current;useEffect(()=>{if(r||!n)return;let p=Animated.loop(Animated.timing(s,{toValue:1,duration:lr,easing:Easing.linear,useNativeDriver:true}));return p.start(),()=>p.stop()},[r,n,s]);let l=r?null:{transform:[{rotate:s.interpolate({inputRange:[0,1],outputRange:["0deg","360deg"]})}]};return jsx(View,{style:t.wrap,accessible:true,accessibilityState:{busy:true},accessibilityLabel:"Analyzing photo",children:n?jsxs(Fragment,{children:[jsx(Animated.View,{style:[t.ring,l]}),jsx(R,{style:t.statusLine,children:"Analyzing"})]}):null})}o(ur,"AnalyzingIndicator");function cr(e){let{color:t,space:r,radius:n,type:i}=e,s=i.weight.medium,l=r.xxl*2,p=r.xs;return StyleSheet.create({wrap:{flexGrow:1,alignItems:"center",justifyContent:"center",padding:r.xl,gap:r.md},ring:{width:l,height:l,borderRadius:n.pill,borderWidth:p,borderTopColor:t.success,borderRightColor:t.success,borderBottomColor:t.borderRingCream,borderLeftColor:t.borderRingCream},statusLine:{color:t.text.secondary,fontFamily:i.family,fontSize:i.size.subtitle,lineHeight:i.size.subtitle*i.lineHeight.snug,fontWeight:s,letterSpacing:i.letterSpacing.tight,textAlign:"center"}})}o(cr,"makeStyles");var vr=1100,hr=1.6,Er=.35;function _r(e,t){let{color:r}=e;switch(t){case "low_risk":return {accent:r.success,wash:r.badgeBgPositive,label:"Low risk",pulse:false};case "concern":return {accent:r.cautionAccent,wash:r.badgeBgCaution,label:"Concern",pulse:true};case "uncertain":return {accent:r.text.muted,wash:r.badgeBgNeutral,label:"Uncertain",pulse:false}}}o(_r,"toneSpec");function Rr({riskTier:e}){let t=g(),r=useMemo(()=>Sr(t),[t]),n=useRef(new Animated.Value(0)).current,i=e===null?null:_r(t,e),s=i!==null&&i.pulse&&!t.motion.reducedMotion;return useEffect(()=>{if(!s)return;let l=Animated.loop(Animated.timing(n,{toValue:1,duration:vr,easing:Easing.out(Easing.quad),useNativeDriver:true}));return l.start(),()=>l.stop()},[s,n]),i===null?null:jsxs(View,{style:[r.pill,{backgroundColor:i.wash}],accessible:true,accessibilityRole:"text",accessibilityLabel:i.label,children:[jsxs(View,{style:r.dotWrap,children:[s?jsx(Animated.View,{pointerEvents:"none",style:[r.dotRing,{backgroundColor:i.accent,opacity:n.interpolate({inputRange:[0,1],outputRange:[Er,0]}),transform:[{scale:n.interpolate({inputRange:[0,1],outputRange:[1,hr]})}]}]}):null,jsx(View,{style:[r.dot,{backgroundColor:i.accent}]})]}),jsx(R,{style:[r.label,{color:i.accent}],children:i.label})]})}o(Rr,"SeverityBadge");function Sr(e){let{space:t,radius:r,type:n}=e,i=n.weight.bold,s=t.sm;return StyleSheet.create({pill:{alignSelf:"flex-start",flexDirection:"row",alignItems:"center",gap:t.sm,paddingHorizontal:t.md,paddingVertical:t.xs,borderRadius:r.pill},dotWrap:{width:s,height:s,alignItems:"center",justifyContent:"center"},dot:{width:s,height:s,borderRadius:r.pill},dotRing:{position:"absolute",width:s,height:s,borderRadius:r.pill},label:{fontFamily:n.family,fontSize:n.size.caption,lineHeight:n.size.caption*n.lineHeight.snug,fontWeight:i,letterSpacing:n.letterSpacing.eyebrow}})}o(Sr,"makeStyles");function M(e,t){return Object.freeze(t===void 0?{ok:true,value:e}:{ok:true,value:e,warning:t})}o(M,"ok");function c(e){return Object.freeze({ok:false,error:e})}o(c,"err");var U=class U extends Error{constructor(t,r){super(r),this.name="EverfurConfigError",this.kind=t,Object.setPrototypeOf(this,U.prototype);}};o(U,"EverfurConfigError");var F=U;var Ne=Symbol.for("@everfur/sdk#EverfurContext@v1"),De=globalThis,je=De[Ne]??(De[Ne]=createContext(null));je.displayName??="EverfurContext";function x(){let e=useContext(je);if(e===null)throw new F("not-initialized","Everfur hooks must be called inside <EverfurProvider>. Wrap your tree once, high.");return e}o(x,"useEverfurContext");function wr(){let{runtime:e}=x();return useMemo(()=>({apply:o(t=>e.updateEntitlements(t),"apply")}),[e])}o(wr,"useEverfurTestEntitlements");var oe=Object.freeze([Object.freeze({wireCode:"AccessDeniedException",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"AuthorizationException",envelope:"http_envelope",httpStatus:401,retryable:false}),Object.freeze({wireCode:"ConflictException",envelope:"http_envelope",httpStatus:409,retryable:true}),Object.freeze({wireCode:"DAILY_QUOTA_EXCEEDED",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"FILE_TOO_LARGE",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"IDEMPOTENCY_KEY_IN_FLIGHT",envelope:"http_envelope",httpStatus:409,retryable:true}),Object.freeze({wireCode:"IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"INVALID_CONTENT_TYPE",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"InternalFailureException",envelope:"http_envelope",httpStatus:500,retryable:true}),Object.freeze({wireCode:"MethodNotAllowedException",envelope:"http_envelope",httpStatus:405,retryable:false}),Object.freeze({wireCode:"NotImplementedException",envelope:"http_envelope",httpStatus:501,retryable:false}),Object.freeze({wireCode:"PaymentRequiredException",envelope:"http_envelope",httpStatus:402,retryable:false}),Object.freeze({wireCode:"ResourceNotFoundException",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"ServiceUnavailableException",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"TIER_UPGRADE_REQUIRED",envelope:"http_envelope",httpStatus:402,retryable:false}),Object.freeze({wireCode:"ThrottlingException",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"ValidationException",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"accessDenied",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"access_denied",envelope:"oauth_error",httpStatus:302,retryable:false}),Object.freeze({wireCode:"attachment_unreadable",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"authExpired",envelope:"http_envelope",httpStatus:401,retryable:true}),Object.freeze({wireCode:"authRejected",envelope:"http_envelope",httpStatus:401,retryable:false}),Object.freeze({wireCode:"consent_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"consent_required",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"consent_scope_wrong_route",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"device_cipher_unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"email_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"event_cursor_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_filter_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_payload_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_type_not_available",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_type_unknown",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"idempotency_key_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"idempotency_key_required",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"idempotency_key_reused",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"insufficientCapability",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"insufficient_scope",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"internal_error",envelope:"sse_frame",httpStatus:200,retryable:false}),Object.freeze({wireCode:"invalidRequest",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_client",envelope:"oauth_error",httpStatus:401,retryable:false}),Object.freeze({wireCode:"invalid_client_metadata",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_grant",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_redirect_uri",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_request",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_scope",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_target",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"mcp_connection_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"mcp_request_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"mcp_request_gone",envelope:"http_envelope",httpStatus:410,retryable:false}),Object.freeze({wireCode:"mcp_request_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"not_found",envelope:"sse_frame",httpStatus:200,retryable:false}),Object.freeze({wireCode:"partner_visit_link_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"partner_visit_owner_only",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"partner_visit_pet_already_mapped",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"payload_too_large",envelope:"http_envelope",httpStatus:413,retryable:false}),Object.freeze({wireCode:"petRefInUse",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"pet_health_list_removals_unconfirmed",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"pet_health_species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"pet_not_registered",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"provider_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"rateLimited",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"record_species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"record_subject_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"record_upload_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"records_consent_required",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"sandbox_only",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"session_required",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"share_limit_reached",envelope:"http_envelope",httpStatus:429,retryable:false}),Object.freeze({wireCode:"slow_down",envelope:"oauth_error",httpStatus:429,retryable:true}),Object.freeze({wireCode:"species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"tenant_filter_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"tenant_has_no_capabilities",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"tenant_resource_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"tenant_surface_not_enabled",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"timeout",envelope:"sse_frame",httpStatus:200,retryable:true}),Object.freeze({wireCode:"token_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"unavailable",envelope:"sse_frame",httpStatus:200,retryable:true}),Object.freeze({wireCode:"unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"unsupported_grant_type",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"unsupported_response_type",envelope:"oauth_error",httpStatus:302,retryable:false}),Object.freeze({wireCode:"verify_mint_rate_limited",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"verify_mint_refused",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"verify_mint_unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"verify_user_ref_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"webhook_endpoint_update_empty",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"webhook_endpoint_update_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"webhook_url_rejected",envelope:"http_envelope",httpStatus:400,retryable:false})]);Object.freeze(oe.map(e=>e.wireCode));var kr=Object.freeze({ValidationException:"validationFailed",AuthorizationException:"authRejected",PaymentRequiredException:"paymentRequired",AccessDeniedException:"accessDenied",ResourceNotFoundException:"resourceNotFound",ConflictException:"conflict",ThrottlingException:"rateLimited",InternalFailureException:"internalError",NotImplementedException:"notImplemented",ServiceUnavailableException:"serviceUnavailable",MethodNotAllowedException:"validationFailed",authExpired:"authExpired",unavailable:"serviceUnavailable",session_required:"sessionRequired",accessDenied:"accessDenied",invalidRequest:"sdkUpdateRequired",authRejected:"authRejected",rateLimited:"rateLimited",insufficientCapability:"accessDenied",event_cursor_invalid:"validationFailed",event_filter_invalid:"validationFailed",event_payload_invalid:"validationFailed",event_type_unknown:"validationFailed",idempotency_key_invalid:"validationFailed",idempotency_key_required:"validationFailed",idempotency_key_reused:"idempotencyConflict",payload_too_large:"validationFailed",webhook_url_rejected:"validationFailed",webhook_endpoint_update_empty:"validationFailed",webhook_endpoint_update_invalid:"validationFailed",event_type_not_available:"conflict",record_subject_not_found:"resourceNotFound",records_consent_required:"conflict",record_species_unsupported:"validationFailed",record_upload_invalid:"validationFailed",FILE_TOO_LARGE:"validationFailed",INVALID_CONTENT_TYPE:"validationFailed",attachment_unreadable:"validationFailed",provider_unsupported:"validationFailed",token_invalid:"validationFailed",device_cipher_unavailable:"serviceUnavailable",email_invalid:"validationFailed",consent_required:"validationFailed",consent_invalid:"validationFailed",consent_scope_wrong_route:"validationFailed",IDEMPOTENCY_KEY_IN_FLIGHT:"idempotencyInFlight",IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST:"idempotencyConflict",DAILY_QUOTA_EXCEEDED:"quotaExceeded",TIER_UPGRADE_REQUIRED:"paymentRequired",not_found:"conversationNotFound",timeout:"streamTimeout",internal_error:"internalError",invalid_request:"validationFailed",invalid_client:"authRejected",invalid_grant:"authRejected",unsupported_grant_type:"validationFailed",invalid_scope:"validationFailed",invalid_target:"validationFailed",invalid_redirect_uri:"validationFailed",invalid_client_metadata:"validationFailed",unsupported_response_type:"validationFailed",access_denied:"accessDenied",slow_down:"rateLimited",mcp_request_not_found:"resourceNotFound",mcp_request_gone:"resourceNotFound",mcp_connection_not_found:"resourceNotFound",mcp_request_conflict:"conflict",sandbox_only:"accessDenied",tenant_has_no_capabilities:"conflict",verify_mint_refused:"accessDenied",verify_mint_rate_limited:"rateLimited",verify_mint_unavailable:"serviceUnavailable",verify_user_ref_invalid:"validationFailed",insufficient_scope:"accessDenied",tenant_filter_invalid:"validationFailed",tenant_resource_not_found:"resourceNotFound",tenant_surface_not_enabled:"conflict",pet_health_species_unsupported:"validationFailed",pet_health_list_removals_unconfirmed:"validationFailed",petRefInUse:"conflict",share_limit_reached:"conflict",pet_not_registered:"resourceNotFound",species_unsupported:"validationFailed",partner_visit_owner_only:"accessDenied",partner_visit_link_conflict:"conflict",partner_visit_pet_already_mapped:"conflict"}),Ue=Object.freeze(oe.map(e=>Object.freeze({wireCode:e.wireCode,envelope:e.envelope,retryable:e.retryable,normalized:kr[e.wireCode]}))),Fr=new Map(Ue.map(e=>[e.envelope+e.wireCode.toUpperCase(),e])),Ir=Object.freeze(["http_envelope",...[...new Set(Ue.map(e=>e.envelope))].filter(e=>e!=="http_envelope").sort()]);function B(e,t){if(typeof e!="string")return;let r=e.trim().toUpperCase();if(r.length!==0)for(let n of [t??"http_envelope",...Ir]){let i=Fr.get(n+r);if(i)return i}}o(B,"contractErrorFor");function Or(e){return e.envelope==="sse_frame"?`/errors#sse-${e.wireCode}`:e.envelope==="oauth_error"?`/errors#oauth-${e.wireCode}`:`/errors#${e.wireCode}`}o(Or,"contractDocUrl");function Me(e){return null}o(Me,"publishedDocUrl");var Ar=Object.freeze({authExpired:"authentication",authRejected:"authentication",sessionRequired:"authentication",accessDenied:"authorization",paymentRequired:"entitlement",quotaExceeded:"rateLimit",rateLimited:"rateLimit",validationFailed:"invalidRequest",sdkUpdateRequired:"invalidRequest",conversationNotFound:"notFound",petNotFound:"notFound",resourceNotFound:"notFound",conflict:"conflict",idempotencyConflict:"conflict",idempotencyInFlight:"conflict",streamTimeout:"connection",streamIncomplete:"connection",upstreamLlmTimeout:"connection",serviceUnavailable:"connection",internalError:"server",notImplemented:"server",mediaUploadFailed:"media",moderationBlocked:"policy",unknown:"unknown"});function Be(e){return Ar[e]}o(Be,"categoryFor");function Ve(e){let t=B(e);if(t)return t.normalized;let r=(e??"").trim().toUpperCase(),n=r.replace(/[^A-Z0-9]/g,"");if(n==="AUTHREJECTED")return "authRejected";if(r.startsWith("AUTH"))return "authExpired";switch(n){case "DAILYQUOTAEXCEEDED":case "QUOTAEXCEEDED":return "quotaExceeded";case "RATELIMITED":case "TOOMANYREQUESTS":case "TELEVETRATELIMITED":return "rateLimited";case "IDEMPOTENCYKEYCONFLICT":case "IDEMPOTENCYCONFLICT":return "idempotencyConflict";case "ACCESSDENIED":case "FORBIDDEN":return "accessDenied";case "NOTFOUND":case "CONVERSATIONNOTFOUND":return "conversationNotFound";case "PETNOTFOUND":return "petNotFound";case "TIMEOUT":case "STREAMTIMEOUT":return "streamTimeout";case "MEDIAUPLOADFAILED":case "UNRECOGNIZEDVIDEOFORMAT":case "FILETOOSMALL":return "mediaUploadFailed";case "MODERATIONBLOCKED":return "moderationBlocked";case "UPSTREAMLLMTIMEOUT":return "upstreamLlmTimeout";case "INTERNALERROR":case "INTERNALSERVERERROR":return "internalError";case "STREAMINCOMPLETE":case "CHATSTREAMINCOMPLETE":return "streamIncomplete";case "INVALIDANALYSISTYPE":case "INVALIDUPLOADPURPOSE":return "unknown";default:return "unknown"}}o(Ve,"fromWire");var Pr=new Set(["streamTimeout","rateLimited","internalError","upstreamLlmTimeout","streamIncomplete"]);function ie(e){return Pr.has(e)}o(ie,"isAutoRetryable");var zr=new Set(["serviceUnavailable","conflict","idempotencyInFlight"]);function qe(e){return ie(e)||zr.has(e)}o(qe,"isRetryableCode");var Nr=500,ae=8e3,He=4;function We(e,t=Math.random){let r=Math.max(0,e),n=Math.min(Nr*2**r,ae);return Math.floor(t()*n)}o(We,"backoffDelayMs");var Dr=Object.freeze({authExpired:"Please sign in again to continue.",authRejected:"Please sign in again to continue.",sessionRequired:"This app needs to be updated to keep using Everfur.",accessDenied:"This feature isn't available on your account right now.",paymentRequired:"This is part of a paid plan.",quotaExceeded:"You have used today's messages. This resets tomorrow.",rateLimited:"You are sending messages quickly. Try again in a few seconds.",validationFailed:"Something in that request was not right. Check the details and try again.",sdkUpdateRequired:"This app needs to be updated to keep using Everfur.",conflict:"That is already running. Wait for it to finish, then try again.",idempotencyConflict:"That message was already delivered.",idempotencyInFlight:"That is still processing. Give it a moment.",conversationNotFound:"This conversation is no longer available.",petNotFound:"We could not find that pet. Please pick a pet and try again.",resourceNotFound:"We could not find that.",streamTimeout:"The response timed out. Tap retry to try again.",mediaUploadFailed:"We could not upload that photo. Please attach it again.",moderationBlocked:"This request cannot be answered here.",upstreamLlmTimeout:"The response timed out. Tap retry to try again.",internalError:"We hit a snag on our end. Please try again.",notImplemented:"That is not available yet.",serviceUnavailable:"That service is briefly unavailable. Try again shortly.",streamIncomplete:"The connection dropped mid-answer. Tap retry to continue.",unknown:"Something went wrong. Please try again."});function jr(e){return Dr[e]}o(jr,"userFacingError");function Ye(e,t,r){Object.defineProperty(e,t,{value:r,enumerable:false,writable:false,configurable:false});}o(Ye,"defineHidden");var Lr=/^[a-z][a-z0-9_]{0,63}$/;function y(e,t){let r=B(t?.wireCode,t?.wireEnvelope),n={code:e,category:Be(e),retryable:t?.retryable??qe(e),displayMessage:jr(e)};if(t?.httpStatus!==void 0&&(n.httpStatus=t.httpStatus),t?.requestId&&(n.requestId=t.requestId),typeof t?.reasonCode=="string"&&Lr.test(t.reasonCode)&&(n.reasonCode=t.reasonCode),r);return t?.wireMessage&&Ye(n,"wireMessage",t.wireMessage),t?.raw!==void 0&&t.raw!==null&&Ye(n,"raw",t.raw),Object.freeze(n)}o(y,"makeEverfurError");function Ge(e){return Object.freeze({kind:"error",terminal:true,code:e.code,retryable:e.retryable,wireMessage:e.wireMessage,synthesized:e.synthesized,lastEventId:e.lastEventId,serverRequestId:e.serverRequestId??null})}o(Ge,"errorFrame");function Br(e){let t={};return e.mode==="personalized"?t.authorization=`Bearer ${e.token}`:t["x-everfur-partner-key"]=e.publishableKey,e.userRef&&(t["x-everfur-user-ref"]=e.userRef),e.sessionId&&(t["x-everfur-session-id"]=e.sessionId),t}o(Br,"authHeaders");function I(e,t){return {...e,headers:{...Vr(e.headers),...Br(t)}}}o(I,"withAuthHeaders");function Vr(e){if(!e)return {};let t={};for(let[r,n]of Object.entries(e)){let i=r.toLowerCase();i==="authorization"||i==="x-everfur-partner-key"||(t[r]=n);}return t}o(Vr,"stripAuthHeaders");async function Ke(e,t){if(t.mode==="anonymous")return t.transport.request(I(e,{mode:"anonymous",publishableKey:t.publishableKey,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));let r;try{r=await t.identity.currentToken();}catch{return c(se())}let n=await t.transport.request(I(e,{mode:"personalized",token:r,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));if(n.ok||n.error.httpStatus!==401)return n;let i;try{i=await t.identity.currentToken({forceRefresh:!0});}catch{return c(se())}let s=await t.transport.request(I(e,{mode:"personalized",token:i,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));return !s.ok&&s.error.httpStatus===401?c(se(s.error.httpStatus)):s}o(Ke,"authedSend");function se(e){return y("authRejected",{retryable:false,...e!==void 0?{httpStatus:e}:{}})}o(se,"authRejectedError");function $e(e){return y("internalError",{retryable:true,wireMessage:qr(e)})}o($e,"networkError");function qr(e){return e instanceof Error?e.message:typeof e=="string"?e:"network request failed"}o(qr,"describeCause");var Hr=3e4,Wr=ae*2,Yr="idempotency-key",Gr=new Set(["POST","PUT","PATCH","DELETE"]),Kr=Object.freeze({onEvent(){}}),$r=Object.freeze({setTimeout:o((e,t)=>setTimeout(e,t),"setTimeout"),clearTimeout:o(e=>clearTimeout(e),"clearTimeout"),now:o(()=>Date.now(),"now")});function Xr(e){let t=e.trim().replace(/[^A-Za-z0-9_.:-]/g,"-");return t.length===0?null:`efs_${t}`.slice(0,128)}o(Xr,"seededIdempotencyKey");function V(e){let t=e.observer??Kr,r=e.timers??$r,n=e.rng??Math.random,i=e.sleep??((b,m)=>cn(b,r,m)),s=e.maxAttempts??He,l=e.unaryTimeoutMs??Hr,p=e.newIdempotencyKey??Zr(),f=o(b=>{try{t.onEvent(b);}catch{}},"emit");async function d(b,m,_){let W=_?.maxAttempts,ut=Math.max(1,W??s),ct=_?.idempotent??Gr.has(m.method),pt=_?.idempotencyKey===void 0?null:Xr(_.idempotencyKey),Y=ct?pt??p():null,ft=Qr(m,Y),G=0;for(;;){let T=o($=>Object.freeze({call:b,method:m.method,path:m.path,attempt:G,...Y?{idempotencyKey:Y}:{},...$}),"stamp");f(T({phase:"attempt"}));let ce=dn(l,r),pe=un(ce.signal,m.signal),C;try{C=await Ke({...ft,signal:pe.signal},e.auth);}catch($){C=c($e($));}finally{pe.dispose(),ce.cancel();}if(C.ok)return f(T({phase:"settled",ok:true,reason:"ok"})),C;let v=C.error,A=en(v,G,{maxAttempts:ut,rng:n,now:r.now(),aborted:m.signal?.aborted===true,...W!==void 0?{perCallMaxAttempts:W}:{},...e.errorPolicy!==void 0?{policy:e.errorPolicy}:{}}),K={ok:false,code:v.code,reason:A.reason,...v.httpStatus!==void 0?{httpStatus:v.httpStatus}:{},...v.requestId!==void 0?{requestId:v.requestId}:{}};if(!A.retry)return f(T({phase:"settled",...K})),c(v);if(f(T({phase:"retry",...K,delayMs:A.delayMs})),await i(A.delayMs,m.signal),m.signal?.aborted===true)return f(T({phase:"settled",...K,reason:"aborted"})),c(v);G+=1;}}o(d,"send");async function O(b){return I(b,await ln(e.auth))}o(O,"authorize");async function*dt(b,m,_){f(Object.freeze({call:b,phase:"stream.open",method:m.method,path:m.path,attempt:0}));try{yield*e.auth.transport.stream(m,_);}catch{yield Ge({code:"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null,serverRequestId:null});}}return o(dt,"stream"),Object.freeze({send:d,authorize:O,stream:dt})}o(V,"createRequestFunnel");function Qr(e,t){let r={};for(let[n,i]of Object.entries(e.headers??{}))n.toLowerCase()!==Yr&&(r[n]=i);return t!==null&&(r["Idempotency-Key"]=t),{...e,headers:r}}o(Qr,"assembleHeaders");function Zr(){let e=0;return ()=>`efk_${Date.now().toString(36)}_${(e++).toString(36)}_${Math.random().toString(36).slice(2,12)}`}o(Zr,"defaultIdempotencyKeyFactory");var Jr=10;function en(e,t,r){if(r.aborted)return {retry:false,reason:"aborted"};let n=tn(e);if(n==="quota")return {retry:false,reason:"daily-quota-exhausted"};if(n!=="burst"&&!ie(e.code))return {retry:false,reason:"terminal-code"};let i=n==="burst"?"burst-throttle":"retryable-code";if(o(()=>{if(r.policy===void 0)return false;try{return !r.policy.shouldRetry(e.code,t)}catch{return false}},"policyVetoedRetry")())return {retry:false,reason:"terminal-code"};let l=o(()=>{if(r.policy===void 0)return null;let d;try{d=r.policy.maxAttempts(e.code);}catch{return null}return typeof d!="number"||!Number.isFinite(d)?null:Math.max(1,Math.min(Jr,Math.floor(d)))},"policyCeiling"),p=r.perCallMaxAttempts??l()??r.maxAttempts;if(t+1>=p)return {retry:false,reason:"attempts-exhausted"};let f=rn(e,r.now);return f!==null?f>Wr?{retry:false,reason:"server-reset-beyond-budget"}:{retry:true,reason:i,delayMs:f}:{retry:true,reason:i,delayMs:We(t,r.rng)}}o(en,"decideRetry");function tn(e){let t=e.code==="unknown"?Ve(sn(e.raw)):e.code;return t==="quotaExceeded"?"quota":t==="rateLimited"||e.httpStatus===429?"burst":null}o(tn,"throttleKind");function rn(e,t){let r=on(e.raw);if(r!==null){let i=r-t;return i>0?i:0}let n=nn(e.raw);return n===null?null:Math.round(n*1e3)}o(rn,"retryOverrideMs");function nn(e){for(let t of le(e)){let r=t.retry_after_seconds;if(typeof r=="number"&&Number.isFinite(r)&&r>=0)return r}return null}o(nn,"findRetryAfterSeconds");function on(e){for(let t of le(e)){let r=t.resets_at,n=an(r);if(n!==null)return n}return null}o(on,"findResetsAt");function le(e){if(!Xe(e))return [];let t=[e];for(let r of ["error","detail"]){let n=e[r];Xe(n)&&t.push(n);}return t}o(le,"candidateScopes");function an(e){if(typeof e=="number"&&Number.isFinite(e))return e<1e11?Math.round(e*1e3):Math.round(e);if(typeof e=="string"&&e.trim().length>0){let t=Date.parse(e);return Number.isFinite(t)?t:null}return null}o(an,"parseInstantMs");function sn(e){for(let t of le(e)){let r=t.code;if(typeof r=="string"&&r.length>0)return r}return null}o(sn,"rawWireCode");function Xe(e){return typeof e=="object"&&e!==null}o(Xe,"isRecord");async function ln(e){return e.mode==="anonymous"?{mode:"anonymous",publishableKey:e.publishableKey,userRef:e.userRef,...e.sessionId?{sessionId:e.sessionId}:{}}:{mode:"personalized",token:await e.identity.currentToken(),userRef:e.userRef,...e.sessionId?{sessionId:e.sessionId}:{}}}o(ln,"resolveDeviceAuth");function dn(e,t){let r=new AbortController,n=t.setTimeout(()=>r.abort(),e);return {signal:r.signal,cancel:o(()=>t.clearTimeout(n),"cancel")}}o(dn,"boundedSignal");function un(e,t){let r=o(()=>{},"noop");if(!t)return {signal:e,dispose:r};let n=new AbortController;if(e.aborted||t.aborted)return n.abort(),{signal:n.signal,dispose:r};let i=o(()=>n.abort(),"onAbort");return e.addEventListener("abort",i,{once:true}),t.addEventListener("abort",i,{once:true}),{signal:n.signal,dispose:o(()=>{e.removeEventListener("abort",i),t.removeEventListener("abort",i);},"dispose")}}o(un,"mergeSignals");function cn(e,t,r){return e<=0||r?.aborted===true?Promise.resolve():new Promise(n=>{let i=t.setTimeout(()=>{r?.removeEventListener("abort",s),n();},e),s=o(()=>{t.clearTimeout(i),n();},"onAbort");r?.addEventListener("abort",s,{once:true});})}o(cn,"delayAbortable");function q(e){for(let t=0;t<e.length;t+=1){let r=e.charCodeAt(t);if(r>=55296&&r<=56319){let n=e.charCodeAt(t+1);if(!(n>=56320&&n<=57343))return true;t+=1;}else if(r>=56320&&r<=57343)return true}return false}o(q,"hasLoneSurrogate");function Qe(e){return [...e].length}o(Qe,"serverLength");var et=new Set(["requested","awaiting_clinic","awaiting_upload","received","parsing","in_review","published","failed","revoked"]),Ze=Object.freeze({submitted:"requested",sent:"requested",dispatching:"requested",awaiting_response:"awaiting_clinic",clinic_responded_no_records:"awaiting_clinic",records_received:"received",parsing_failed:"in_review",review_email_failed:"in_review",clinic_declined:"failed"});function pn(e){let t=Object.prototype.hasOwnProperty.call(Ze,e)?Ze[e]:void 0;if(t!==void 0)return t;let r=e;return et.has(r)?r:"parsing"}o(pn,"normalizeStatus");var fn=z$1.object({request_id:z$1.string().min(1),pet_ref:z$1.string().min(1),status:z$1.string(),simple_status:z$1.string().nullish(),simple_status_detail:z$1.string().nullish(),status_label:z$1.string().optional(),dispatch_status:z$1.string().nullish(),can_retry_send:z$1.boolean().optional(),can_revoke:z$1.boolean().optional(),can_convert_to_upload:z$1.boolean().optional(),can_update_clinic_email:z$1.boolean().optional(),reminder_count:z$1.number().int().nonnegative().optional(),last_reminder_at:z$1.string().nullish(),waiting_expectation:z$1.string().nullish(),document_count:z$1.number().optional(),held_item_count:z$1.number().optional(),received_at:z$1.string().nullish(),parsing_started_at:z$1.string().nullish(),review_started_at:z$1.string().nullish(),created_at:z$1.string().optional(),updated_at:z$1.string().optional(),source:z$1.string().nullish().catch(null),action_needed_label:z$1.string().nullish().catch(null),failure_reason:z$1.string().nullish().catch(null),failure_code:z$1.string().nullish().catch(null),recovery_stage:z$1.string().nullish().catch(null),show_clinic_phone:z$1.boolean().optional().catch(void 0),clinic_name:z$1.string().nullish().catch(null),clinic_email:z$1.string().nullish().catch(null),clinic_phone:z$1.string().nullish().catch(null),converted_to_upload_at:z$1.string().nullish().catch(null),request_group_id:z$1.string().nullish().catch(null)}).passthrough();function tt(e){let t=fn.safeParse(e);if(!t.success)return null;let r=t.data,n=mn(r.simple_status),i=n==="requested"&&(r.status==="awaiting_upload"||r.simple_status_detail==="awaiting_owner_upload")?"awaiting_upload":n==="parsing"&&(r.simple_status_detail==="in_review"||r.simple_status_detail==="review_email_failed")?"in_review":n??pn(r.status);return Object.freeze({id:r.request_id,petRef:r.pet_ref,status:i,simpleStatus:n,simpleStatusDetail:r.simple_status_detail??null,statusLabel:r.status_label??"",dispatchStatus:r.dispatch_status??null,canRetrySend:r.can_retry_send===true,canRevoke:r.can_revoke===true,canConvertToUpload:r.can_convert_to_upload===true,canUpdateClinicEmail:r.can_update_clinic_email===true,reminderCount:r.reminder_count??0,lastReminderAt:r.last_reminder_at??null,waitingExpectation:r.waiting_expectation??null,documentCount:Je(r.document_count,0),heldItemCount:Je(r.held_item_count,0),receivedAt:r.received_at??null,parsingStartedAt:r.parsing_started_at??null,reviewStartedAt:r.review_started_at??null,createdAt:r.created_at??"",updatedAt:r.updated_at??"",wireStatus:r.status,source:r.source??null,actionNeededLabel:r.action_needed_label??null,failureReason:r.failure_reason??null,failureCode:r.failure_code??null,recoveryStage:r.recovery_stage??null,showClinicPhone:r.show_clinic_phone===true,clinicName:r.clinic_name??null,clinicEmail:r.clinic_email??null,clinicPhone:r.clinic_phone??null,convertedToUploadAt:r.converted_to_upload_at??null,requestGroupId:r.request_group_id??null})}o(tt,"mapRequestView");z$1.object({request_group_id:z$1.string().min(1),pet_ref:z$1.string().min(1),total:z$1.number().int().nonnegative(),responded:z$1.number().int().nonnegative(),pending:z$1.number().int().nonnegative(),members:z$1.array(z$1.unknown())});function mn(e){return !e||e==="awaiting_upload"||e==="in_review"?null:et.has(e)?e:null}o(mn,"normalizeSimpleStatus");z$1.object({source_doc_id:z$1.string().min(1),request_id:z$1.string().min(1)});var yn=z$1.object({label:z$1.string(),value:z$1.string()}),bn=z$1.object({key:z$1.string(),category:z$1.string().optional(),label:z$1.string().optional(),value:z$1.string().nullish(),unit:z$1.string().nullish(),observed_at:z$1.string().nullish(),status:z$1.string().nullish(),origin:z$1.string().nullish(),canonical_key:z$1.string().nullish()}),gn=z$1.object({at:z$1.string(),value:z$1.number().nullish(),display:z$1.string().nullish(),origin:z$1.string().nullish()}),vn=z$1.object({key:z$1.string(),label:z$1.string().optional(),points:z$1.array(gn).optional()}),hn=z$1.object({title:z$1.string(),detail:z$1.string().nullish(),due_at:z$1.string().nullish()}),En=z$1.object({doc_id:z$1.string(),title:z$1.string().nullish(),page_count:z$1.number().nullish(),received_at:z$1.string().nullish()});z$1.object({identity:z$1.array(yn).optional(),entities:z$1.array(bn).optional(),entity_series:z$1.array(vn).optional(),forward_looking:z$1.array(hn).optional(),documents:z$1.array(En).optional()});z$1.object({pet_ref:z$1.string().optional(),granted:z$1.boolean().optional(),version:z$1.string().nullish(),granted_at:z$1.string().nullish()});function Je(e,t){return typeof e=="number"&&Number.isFinite(e)?e:t}o(Je,"numberOr");var _n="/widget/v1/records/sandbox/requests",rt=64,Rn=new Set(["records","no_records","declined"]),Sn=new Set(["applied","already_applied","not_applicable"]);function H(e){return y("validationFailed",{retryable:false,wireMessage:e})}o(H,"invalid");function xn(e){return typeof e!="string"||e.length===0?H("request_id is required and must be a non-empty string"):q(e)?H("request_id contains an unpaired surrogate and cannot be encoded"):[...e].length>rt?H(`request_id is longer than ${rt} characters`):null}o(xn,"requestIdError");function Tn(e){if(typeof e!="object"||e===null)return null;let{result:t,request:r}=e;if(typeof t!="string"||!Sn.has(t))return null;let n=tt(r);return n===null?null:Object.freeze({result:t,request:n})}o(Tn,"mapActionResult");function nt(e){let t=e.funnel??V({auth:e.auth,...e.errorPolicy?{errorPolicy:e.errorPolicy}:{}}),r=o(async(n,i,s,l)=>{let p=xn(i);if(p!==null)return c(p);let f=`${_n}/${encodeURIComponent(i)}/${s}`,d=await t.send(n,l===void 0?{method:"POST",path:f}:{method:"POST",path:f,body:l});if(!d.ok)return c(d.error);let O=Tn(d.value);return O===null?c(y("internalError",{retryable:false})):M(O)},"run");return {simulateClinicReply(n,i){return typeof i!="string"||!Rn.has(i)?Promise.resolve(c(H("outcome must be records, no_records or declined"))):r("records.sandbox.clinicReply",n,"clinic-reply",{outcome:i})},publishSampleRecord(n){return r("records.sandbox.publishSample",n,"publish-sample")}}}o(nt,"createRecordsSandboxController");function wn(){let{runtime:e,userRef:t,scopeEpoch:r}=x();return useMemo(()=>{let{services:n}=e.registry;return nt({auth:n.authFor(t),...n.errorPolicy?{errorPolicy:n.errorPolicy}:{}})},[e,t,r])}o(wn,"useEverfurRecordsSandbox");var de="/widget/v1/televet/sandbox/visits",kn=128,ot=64,st=new Set(["booked","cancelled","completed","no_show"]),Fn=new Set(["applied","already_applied","not_applicable"]),it=new Set(["rescheduled","reminder","followup_sent","message_received","ended"]),at=new Set(["24h","30m"]);function E(e){return y("validationFailed",{retryable:false,wireMessage:e})}o(E,"invalid");function ue(e,t,r){return typeof t!="string"||t.length===0?E(`${e} is required and must be a non-empty string`):q(t)?E(`${e} contains an unpaired surrogate and cannot be encoded`):Qe(t)>r?E(`${e} is longer than ${r} characters`):null}o(ue,"textError");function In(e){if(typeof e!="object"||e===null)return null;let{result:t,visit:r}=e;if(typeof t!="string"||!Fn.has(t)||typeof r!="object"||r===null)return null;let{visit_ref:n,pet_ref:i,status:s,scheduled_at:l}=r;return typeof n!="string"||n.length===0||typeof i!="string"||i.length===0||typeof s!="string"||!st.has(s)||typeof l!="string"||l.length===0?null:Object.freeze({result:t,visit:Object.freeze({visitRef:n,petRef:i,status:s,scheduledAt:l})})}o(In,"mapActionResult");function lt(e){let t=e.funnel??V({auth:e.auth,...e.errorPolicy?{errorPolicy:e.errorPolicy}:{}}),r=o(async(n,i,s)=>{let l=await t.send(n,{method:"POST",path:i,body:s},{idempotent:false,maxAttempts:1});if(!l.ok)return c(l.error);let p=In(l.value);return p===null?c(y("internalError",{retryable:false})):M(p)},"run");return {createVisit(n){let i=ue("pet_ref",n,kn);return i!==null?Promise.resolve(c(i)):r("televet.sandbox.createVisit",de,{pet_ref:n})},advanceVisit(n,i){let s=ue("visit_ref",n,ot);if(s!==null)return Promise.resolve(c(s));if(typeof i!="string"||!st.has(i))return Promise.resolve(c(E("to must be booked, cancelled, completed or no_show")));let l=`${de}/${encodeURIComponent(n)}/advance`;return r("televet.sandbox.advanceVisit",l,{to:i})},simulateVisitEvent(n,i,s){let l=ue("visit_ref",n,ot);if(l!==null)return Promise.resolve(c(l));if(typeof i!="string"||!it.has(i))return Promise.resolve(c(E(`event must be one of ${[...it].join(", ")}`)));if(i==="reminder"){if(typeof s!="string"||!at.has(s))return Promise.resolve(c(E(`stage must be one of ${[...at].join(", ")} for a reminder`)))}else if(s!==void 0)return Promise.resolve(c(E("stage is only for a reminder")));let p=`${de}/${encodeURIComponent(n)}/simulate`;return r("televet.sandbox.simulateVisitEvent",p,s===void 0?{event:i}:{event:i,stage:s})}}}o(lt,"createVetVisitSandboxController");function An(){let{runtime:e,userRef:t,scopeEpoch:r}=x();return useMemo(()=>{let{services:n}=e.registry;return lt({auth:n.authFor(t),...n.errorPolicy?{errorPolicy:n.errorPolicy}:{}})},[e,t,r])}o(An,"useEverfurVetVisitSandbox");export{ur as AnalyzingIndicator,Rr as SeverityBadge,er as TypingIndicator,wn as useEverfurRecordsSandbox,wr as useEverfurTestEntitlements,An as useEverfurVetVisitSandbox};
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { E as EntitlementSnapshot } from '../../runtimeTypes-
|
|
1
|
+
import { E as EntitlementSnapshot } from '../../runtimeTypes-D155OlBW.cjs';
|
|
2
2
|
import { E as EverfurResult } from '../../EverfurResult-ZtH-YV1h.cjs';
|
|
3
3
|
import { R as RecordsRequestId, P as PetRef } from '../../ids-B2GAAifq.cjs';
|
|
4
4
|
export { B as Brand, _ as __brand } from '../../ids-B2GAAifq.cjs';
|
|
5
5
|
import { d as RecordsRequestView } from '../../models-Bn2z0NNo.cjs';
|
|
6
6
|
export { c as RecordsRequestStatus, e as RecordsSimpleStatus } from '../../models-Bn2z0NNo.cjs';
|
|
7
7
|
export { E as EverfurError, a as EverfurErrorCategory, b as EverfurErrorCode } from '../../EverfurError-DmELDpXp.cjs';
|
|
8
|
-
export { C as ClientBranding, R as RadiusScale, S as SurfaceStyle } from '../../branding-
|
|
8
|
+
export { C as ClientBranding, R as RadiusScale, S as SurfaceStyle } from '../../branding-Bio5MM6g.cjs';
|
|
9
9
|
export { b as CapabilityDisabled, D as DisabledLevel, E as EntitlementDecision } from '../../resolve-D4Ywz5OS.cjs';
|
|
10
|
-
import '../../petsRepository-
|
|
11
|
-
import '../../identity-
|
|
12
|
-
import '../../config-
|
|
10
|
+
import '../../petsRepository-BJsJ4cju.cjs';
|
|
11
|
+
import '../../identity-b5Vp32Vp.cjs';
|
|
12
|
+
import '../../config-h5h6TsHL.cjs';
|
|
13
13
|
import '../../profile-CSs1wlXT.cjs';
|
|
14
14
|
import '../../cacheEpoch-DknKn3S0.cjs';
|
|
15
15
|
import '../../ErrorPolicyPort-D6CybiqJ.cjs';
|
|
16
|
-
import '../../ports-
|
|
17
|
-
import '../../casesRepository-
|
|
18
|
-
import '../../requestFunnel-
|
|
16
|
+
import '../../ports-ZmJYgd5I.cjs';
|
|
17
|
+
import '../../casesRepository-CJchNp3x.cjs';
|
|
18
|
+
import '../../requestFunnel-C_cZXhIA.cjs';
|
|
19
19
|
import '../../TelemetryPort-BDNr00hu.cjs';
|
|
20
20
|
import '../../ports-BN6RHF9W.cjs';
|
|
21
21
|
import '../../CameraPort-Cv31Pz7g.cjs';
|
|
22
|
-
import '../../tokens-
|
|
22
|
+
import '../../tokens-BYtbKwFh.cjs';
|
|
23
23
|
|
|
24
24
|
/** The testing seam handle: apply a resolved verdict to THIS provider's runtime. */
|
|
25
25
|
interface EverfurTestEntitlements {
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { E as EntitlementSnapshot } from '../../runtimeTypes-
|
|
1
|
+
import { E as EntitlementSnapshot } from '../../runtimeTypes-ByKsp8hm.js';
|
|
2
2
|
import { E as EverfurResult } from '../../EverfurResult-SGvHKsCB.js';
|
|
3
3
|
import { R as RecordsRequestId, P as PetRef } from '../../ids-B2GAAifq.js';
|
|
4
4
|
export { B as Brand, _ as __brand } from '../../ids-B2GAAifq.js';
|
|
5
5
|
import { d as RecordsRequestView } from '../../models-DSqA5Ahs.js';
|
|
6
6
|
export { c as RecordsRequestStatus, e as RecordsSimpleStatus } from '../../models-DSqA5Ahs.js';
|
|
7
7
|
export { E as EverfurError, a as EverfurErrorCategory, b as EverfurErrorCode } from '../../EverfurError-DmELDpXp.js';
|
|
8
|
-
export { C as ClientBranding, R as RadiusScale, S as SurfaceStyle } from '../../branding-
|
|
8
|
+
export { C as ClientBranding, R as RadiusScale, S as SurfaceStyle } from '../../branding-ytH4jJq1.js';
|
|
9
9
|
export { b as CapabilityDisabled, D as DisabledLevel, E as EntitlementDecision } from '../../resolve-D4Ywz5OS.js';
|
|
10
|
-
import '../../petsRepository-
|
|
11
|
-
import '../../identity-
|
|
12
|
-
import '../../config-
|
|
10
|
+
import '../../petsRepository-CuYZZaI5.js';
|
|
11
|
+
import '../../identity-EC5-apbY.js';
|
|
12
|
+
import '../../config-ZxwCylac.js';
|
|
13
13
|
import '../../profile-CSs1wlXT.js';
|
|
14
14
|
import '../../cacheEpoch-DknKn3S0.js';
|
|
15
15
|
import '../../ErrorPolicyPort-D22LUVrK.js';
|
|
16
|
-
import '../../ports-
|
|
17
|
-
import '../../casesRepository-
|
|
18
|
-
import '../../requestFunnel-
|
|
16
|
+
import '../../ports-nXHf50_X.js';
|
|
17
|
+
import '../../casesRepository-DAVcY3jC.js';
|
|
18
|
+
import '../../requestFunnel-Ve9BshTB.js';
|
|
19
19
|
import '../../TelemetryPort-BDNr00hu.js';
|
|
20
20
|
import '../../ports-BN6RHF9W.js';
|
|
21
21
|
import '../../CameraPort-Cv31Pz7g.js';
|
|
22
|
-
import '../../tokens-
|
|
22
|
+
import '../../tokens-BYtbKwFh.js';
|
|
23
23
|
|
|
24
24
|
/** The testing seam handle: apply a resolved verdict to THIS provider's runtime. */
|
|
25
25
|
interface EverfurTestEntitlements {
|
|
@@ -66,7 +66,7 @@ interface EverfurTextColorTokens {
|
|
|
66
66
|
readonly primary: string;
|
|
67
67
|
readonly secondary: string;
|
|
68
68
|
readonly muted: string;
|
|
69
|
-
/** The composer placeholder ink (the Everfur app's `rgba(61,61,61,0.75)`, 5:1 on
|
|
69
|
+
/** The composer placeholder ink (the Everfur app's `rgba(61,61,61,0.75)`, 5:1 on white; a lifted twin on dark). */
|
|
70
70
|
readonly placeholder: string;
|
|
71
71
|
/** Text drawn on the brand fill (a compiled default; resolve recomputes onPrimary/onAccent via WCAG). */
|
|
72
72
|
readonly onBrand: string;
|
|
@@ -111,7 +111,10 @@ interface EverfurColorTokens {
|
|
|
111
111
|
* repaints the composer or the record cards.
|
|
112
112
|
*/
|
|
113
113
|
readonly chatGround: string;
|
|
114
|
-
/**
|
|
114
|
+
/**
|
|
115
|
+
* The composer pill's fill, whatever `surface_style` picks for the ground. White on the compiled light palette
|
|
116
|
+
* (the design tokens retired the cream: "composers are White with a Dark Green edge").
|
|
117
|
+
*/
|
|
115
118
|
readonly composerFill: string;
|
|
116
119
|
/** The composer pill's edge: the brand at 75% (the Everfur app's, 5:1 on white). */
|
|
117
120
|
readonly composerBorder: string;
|
|
@@ -160,7 +163,7 @@ interface EverfurColorTokens {
|
|
|
160
163
|
* or the owner's fill. The same on both palettes: a light bubble with dark ink, as the dark user bubble is.
|
|
161
164
|
*/
|
|
162
165
|
readonly bubbleVet: string;
|
|
163
|
-
/** The ink on `bubbleVet`:
|
|
166
|
+
/** The ink on `bubbleVet`: body black, 13:1 on the pink, on both palettes. */
|
|
164
167
|
readonly onBubbleVet: string;
|
|
165
168
|
readonly skeleton: string;
|
|
166
169
|
readonly scanButtonPink: string;
|
|
@@ -66,7 +66,7 @@ interface EverfurTextColorTokens {
|
|
|
66
66
|
readonly primary: string;
|
|
67
67
|
readonly secondary: string;
|
|
68
68
|
readonly muted: string;
|
|
69
|
-
/** The composer placeholder ink (the Everfur app's `rgba(61,61,61,0.75)`, 5:1 on
|
|
69
|
+
/** The composer placeholder ink (the Everfur app's `rgba(61,61,61,0.75)`, 5:1 on white; a lifted twin on dark). */
|
|
70
70
|
readonly placeholder: string;
|
|
71
71
|
/** Text drawn on the brand fill (a compiled default; resolve recomputes onPrimary/onAccent via WCAG). */
|
|
72
72
|
readonly onBrand: string;
|
|
@@ -111,7 +111,10 @@ interface EverfurColorTokens {
|
|
|
111
111
|
* repaints the composer or the record cards.
|
|
112
112
|
*/
|
|
113
113
|
readonly chatGround: string;
|
|
114
|
-
/**
|
|
114
|
+
/**
|
|
115
|
+
* The composer pill's fill, whatever `surface_style` picks for the ground. White on the compiled light palette
|
|
116
|
+
* (the design tokens retired the cream: "composers are White with a Dark Green edge").
|
|
117
|
+
*/
|
|
115
118
|
readonly composerFill: string;
|
|
116
119
|
/** The composer pill's edge: the brand at 75% (the Everfur app's, 5:1 on white). */
|
|
117
120
|
readonly composerBorder: string;
|
|
@@ -160,7 +163,7 @@ interface EverfurColorTokens {
|
|
|
160
163
|
* or the owner's fill. The same on both palettes: a light bubble with dark ink, as the dark user bubble is.
|
|
161
164
|
*/
|
|
162
165
|
readonly bubbleVet: string;
|
|
163
|
-
/** The ink on `bubbleVet`:
|
|
166
|
+
/** The ink on `bubbleVet`: body black, 13:1 on the pink, on both palettes. */
|
|
164
167
|
readonly onBubbleVet: string;
|
|
165
168
|
readonly skeleton: string;
|
|
166
169
|
readonly scanButtonPink: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { C as ClientBranding, E as EverfurThemeInput } from './branding-
|
|
2
|
-
import { E as EverfurTheme, a as EverfurFontWeight, b as EverfurFontFaceKey } from './tokens-
|
|
1
|
+
import { C as ClientBranding, E as EverfurThemeInput } from './branding-Bio5MM6g.cjs';
|
|
2
|
+
import { E as EverfurTheme, a as EverfurFontWeight, b as EverfurFontFaceKey } from './tokens-BYtbKwFh.cjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Overlay `b` onto `base`, field by field: a non-null branding field WINS; a null field KEEPS the base. A
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { C as ClientBranding, E as EverfurThemeInput } from './branding-
|
|
2
|
-
import { E as EverfurTheme, a as EverfurFontWeight, b as EverfurFontFaceKey } from './tokens-
|
|
1
|
+
import { C as ClientBranding, E as EverfurThemeInput } from './branding-ytH4jJq1.js';
|
|
2
|
+
import { E as EverfurTheme, a as EverfurFontWeight, b as EverfurFontFaceKey } from './tokens-BYtbKwFh.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Overlay `b` onto `base`, field by field: a non-null branding field WINS; a null field KEEPS the base. A
|
|
@@ -26,6 +26,11 @@ interface RnRecordsUploadTransportOptions {
|
|
|
26
26
|
* and `sizeBytes`. A batch uploads one file at a time with a live row per file; a non-PDF or oversize file in
|
|
27
27
|
* it is skipped with a reason before any request is made (the single-file path refuses it the same way).
|
|
28
28
|
* `name` is optional, rendered in the rows locally, and never sent.
|
|
29
|
+
*
|
|
30
|
+
* The same shape serves `onPickPhotos` (a photo-library picker for a photo of a paper record), offered only
|
|
31
|
+
* while the records features read says photo upload is live: resolve each photo with its `mimeType`
|
|
32
|
+
* (`image/jpeg`, `image/png`, `image/heic` or `image/heif`) and `sizeBytes`. The server decides what a file is
|
|
33
|
+
* from its bytes, so a wrong `mimeType` fails at complete rather than uploading as something else.
|
|
29
34
|
*/
|
|
30
35
|
type RecordsDocumentPicker = () => Promise<FileHandle | readonly FileHandle[] | null>;
|
|
31
36
|
/**
|
|
@@ -26,6 +26,11 @@ interface RnRecordsUploadTransportOptions {
|
|
|
26
26
|
* and `sizeBytes`. A batch uploads one file at a time with a live row per file; a non-PDF or oversize file in
|
|
27
27
|
* it is skipped with a reason before any request is made (the single-file path refuses it the same way).
|
|
28
28
|
* `name` is optional, rendered in the rows locally, and never sent.
|
|
29
|
+
*
|
|
30
|
+
* The same shape serves `onPickPhotos` (a photo-library picker for a photo of a paper record), offered only
|
|
31
|
+
* while the records features read says photo upload is live: resolve each photo with its `mimeType`
|
|
32
|
+
* (`image/jpeg`, `image/png`, `image/heic` or `image/heif`) and `sizeBytes`. The server decides what a file is
|
|
33
|
+
* from its bytes, so a wrong `mimeType` fails at complete rather than uploading as something else.
|
|
29
34
|
*/
|
|
30
35
|
type RecordsDocumentPicker = () => Promise<FileHandle | readonly FileHandle[] | null>;
|
|
31
36
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { R as RecordsRequestId, P as PetRef } from './ids-B2GAAifq.cjs';
|
|
2
|
-
import {
|
|
2
|
+
import { ag as RecordsClinicSearchInput, ah as RecordsClinicSearchPage, ai as RecordsRecentClinicsInput, aj as RecordsAuthorizationCopy, ak as CreateClinicRequestInput, al as RecordsSignatureUploadPolicy, l as RecordsClinic, W as RecordsClinicBatch, X as RecordsClinicBatchClient, m as RecordsDepthClient } from './depth-EXZYEO70.cjs';
|
|
3
3
|
import { E as EverfurResult } from './EverfurResult-ZtH-YV1h.cjs';
|
|
4
4
|
import { f as RecordsRequestGroupView, d as RecordsRequestView } from './models-Bn2z0NNo.cjs';
|
|
5
5
|
import { E as EverfurError } from './EverfurError-DmELDpXp.cjs';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { R as RecordsRequestId, P as PetRef } from './ids-B2GAAifq.js';
|
|
2
|
-
import {
|
|
2
|
+
import { ag as RecordsClinicSearchInput, ah as RecordsClinicSearchPage, ai as RecordsRecentClinicsInput, aj as RecordsAuthorizationCopy, ak as CreateClinicRequestInput, al as RecordsSignatureUploadPolicy, l as RecordsClinic, W as RecordsClinicBatch, X as RecordsClinicBatchClient, m as RecordsDepthClient } from './depth-Bo4bAwcn.js';
|
|
3
3
|
import { E as EverfurResult } from './EverfurResult-SGvHKsCB.js';
|
|
4
4
|
import { f as RecordsRequestGroupView, d as RecordsRequestView } from './models-DSqA5Ahs.js';
|
|
5
5
|
import { E as EverfurError } from './EverfurError-DmELDpXp.js';
|