@everfur/sdk 0.5.1 → 0.5.2
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 +337 -0
- package/dist/BookedScreen-BJPbXLCG.d.ts +54 -0
- package/dist/BookedScreen-Cnld-jB_.d.cts +54 -0
- package/dist/{Chat-ypo6miKm.d.cts → Chat-B43wIXCv.d.cts} +3 -3
- package/dist/{Chat-Rzplrf5M.d.ts → Chat-my5aJLz5.d.ts} +3 -3
- package/dist/{DepthViews-ClykXOJj.d.cts → DepthViews-BBTv9VAs.d.cts} +1 -1
- package/dist/{DepthViews-Cui3oonj.d.cts → DepthViews-BLK0kgza.d.cts} +1 -1
- package/dist/{DepthViews-baYLMNQ-.d.ts → DepthViews-CNqAyjne.d.ts} +1 -1
- package/dist/{DepthViews-CeTfPUBX.d.ts → DepthViews-G-7YRtOX.d.ts} +1 -1
- package/dist/animations/index.d.cts +3 -3
- package/dist/animations/index.d.ts +3 -3
- package/dist/{attachments-CwsR-bPN.d.cts → attachments-CEmT52IA.d.cts} +5 -5
- package/dist/{attachments-D3HCBmOE.d.ts → attachments-CMNWE6YT.d.ts} +2 -2
- package/dist/{attachments-CzZ7in24.d.ts → attachments-DU1djTNd.d.ts} +5 -5
- package/dist/{attachments-Nk73Lll8.d.cts → attachments-ZyjWsZdI.d.cts} +2 -2
- package/dist/{bookingCopy-SDkXaxDf.d.ts → bookingCopy-BVhEt1bj.d.ts} +38 -200
- package/dist/{bookingCopy-Dv8rKqyV.d.cts → bookingCopy-ChZR5mtd.d.cts} +38 -200
- package/dist/bookingTypes-DCs8mmBb.d.cts +188 -0
- package/dist/bookingTypes-DCs8mmBb.d.ts +188 -0
- package/dist/{callCopy-rDH9JTFo.d.cts → callCopy-CPe9mbwG.d.cts} +7 -2
- package/dist/{callCopy-rDH9JTFo.d.ts → callCopy-CPe9mbwG.d.ts} +7 -2
- package/dist/{casesRepository-BTAecTnF.d.ts → casesRepository-C5zrCcaE.d.ts} +1 -1
- package/dist/{casesRepository-aryld7fJ.d.cts → casesRepository-q2ak9AW0.d.cts} +1 -1
- package/dist/chat/index.cjs +1 -1
- package/dist/chat/index.d.cts +14 -10
- package/dist/chat/index.d.ts +14 -10
- package/dist/chat/index.js +1 -1
- package/dist/client/index.cjs +1 -1
- package/dist/client/index.d.cts +6 -6
- package/dist/client/index.d.ts +6 -6
- package/dist/client/index.js +1 -1
- package/dist/{config-X6BtwDwQ.d.ts → config-DBpKJJbg.d.ts} +1 -1
- package/dist/{config-6qS7Sohy.d.cts → config-jocy3q66.d.cts} +1 -1
- package/dist/consent/index.d.cts +5 -5
- package/dist/consent/index.d.ts +5 -5
- package/dist/{context-CkqPM4Ml.d.cts → context-BfVBRgro.d.cts} +5 -5
- package/dist/{context-7f3Nb_xE.d.ts → context-C3n9s4aG.d.ts} +5 -5
- package/dist/{copy-Bd__Pw5s.d.cts → copy-IysFx8yL.d.cts} +2 -2
- package/dist/{copy-NgKgOOET.d.ts → copy-KP91zgtW.d.ts} +2 -2
- package/dist/core/index.cjs +5 -5
- package/dist/core/index.d.cts +12 -12
- package/dist/core/index.d.ts +12 -12
- package/dist/core/index.js +5 -5
- package/dist/{depth-CYPH92jE.d.ts → depth-BsMLLrQo.d.ts} +2 -2
- package/dist/{depth-CyjaJJ6V.d.cts → depth-O9kiVUjs.d.cts} +2 -2
- package/dist/{entitlementRepository-DdeFuEKp.d.ts → entitlementRepository-CHsY2kF3.d.ts} +2 -2
- package/dist/{entitlementRepository-Dl1qRLcJ.d.cts → entitlementRepository-DIG16pso.d.cts} +2 -2
- package/dist/{identity-DjqhDm5Z.d.cts → identity-D7GKfOE7.d.cts} +1 -1
- package/dist/{identity-Dy_L7Yq4.d.ts → identity-k8nCQ_qM.d.ts} +1 -1
- package/dist/index.cjs +6 -6
- package/dist/index.d.cts +13 -13
- package/dist/index.d.ts +13 -13
- 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-BSG2qbr_.d.cts → pets-Bod_DDiW.d.cts} +1 -1
- package/dist/{pets-D7cZutrX.d.ts → pets-C_QX8s5f.d.ts} +1 -1
- package/dist/{petsRepository-D1bnxDZg.d.cts → petsRepository-B3vr628I.d.cts} +1 -1
- package/dist/{petsRepository-DhsX3GLw.d.ts → petsRepository-DdzgINfF.d.ts} +1 -1
- package/dist/{ports-DNXyyzZF.d.cts → ports-BSm48zIC.d.cts} +16 -5
- package/dist/{ports-C0m1G1fS.d.ts → ports-DHhxhn95.d.ts} +16 -5
- package/dist/records/depth/index.d.cts +7 -7
- package/dist/records/depth/index.d.ts +7 -7
- package/dist/records/index.cjs +3 -3
- package/dist/records/index.d.cts +10 -10
- package/dist/records/index.d.ts +10 -10
- package/dist/records/index.js +3 -3
- package/dist/{requestFunnel-FvE5yLDD.d.ts → requestFunnel-CTG-wNc3.d.ts} +2 -2
- package/dist/{requestFunnel-Bqc1inM9.d.cts → requestFunnel-Dcjyh0j2.d.cts} +2 -2
- package/dist/{runtimeTypes-RN-VXTFV.d.cts → runtimeTypes-4qptUulD.d.cts} +4 -4
- package/dist/{runtimeTypes-C0yPBz89.d.ts → runtimeTypes-CmpdQaE2.d.ts} +4 -4
- 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 +2 -2
- package/dist/server/index.d.cts +3 -3
- package/dist/server/index.d.ts +3 -3
- package/dist/server/index.js +2 -2
- package/dist/televet/booking/index.cjs +1 -1
- package/dist/televet/booking/index.d.cts +17 -9
- package/dist/televet/booking/index.d.ts +17 -9
- package/dist/televet/booking/index.js +1 -1
- package/dist/televet/call/index.cjs +1 -1
- package/dist/televet/call/index.d.cts +13 -1
- package/dist/televet/call/index.d.ts +13 -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.d.cts +1 -1
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/rn/index.d.cts +7 -7
- package/dist/testing/rn/index.d.ts +7 -7
- package/dist/testing/web/index.d.cts +7 -7
- package/dist/testing/web/index.d.ts +7 -7
- package/dist/{timelineRows-DAB5dpjF.d.cts → timelineRows-BkLhRUDt.d.cts} +1 -1
- package/dist/{timelineRows-D4U6A8zE.d.ts → timelineRows-Dp4ZSnAo.d.ts} +1 -1
- package/dist/{uploadTransport-DKJHs3Yj.d.cts → uploadTransport-C1p8FuG8.d.cts} +5 -1
- package/dist/{uploadTransport-D0M0T4hN.d.ts → uploadTransport-bZIKBTyK.d.ts} +5 -1
- package/dist/{useRecordsDepth-B35y8bV-.d.cts → useRecordsDepth-DRNry1r9.d.cts} +1 -1
- package/dist/{useRecordsDepth--ObtMyjH.d.ts → useRecordsDepth-DnDhTaUL.d.ts} +1 -1
- package/dist/{view-D9JqNQai.d.ts → view-CwuOPIJc.d.ts} +7 -4
- package/dist/{view-B-Toym_j.d.cts → view-D4VdPKCa.d.cts} +7 -4
- package/dist/web/consent/index.d.cts +5 -5
- package/dist/web/consent/index.d.ts +5 -5
- package/dist/web/index.cjs +10 -10
- package/dist/web/index.d.cts +14 -14
- package/dist/web/index.d.ts +14 -14
- package/dist/web/index.js +10 -10
- package/dist/web/notifications/index.d.cts +3 -3
- package/dist/web/notifications/index.d.ts +3 -3
- package/dist/web/records/depth/index.d.cts +7 -7
- package/dist/web/records/depth/index.d.ts +7 -7
- package/dist/web/records/index.cjs +3 -3
- package/dist/web/records/index.d.cts +9 -9
- package/dist/web/records/index.d.ts +9 -9
- package/dist/web/records/index.js +3 -3
- package/dist/web/televet/booking/index.cjs +2 -2
- package/dist/web/televet/booking/index.d.cts +35 -50
- package/dist/web/televet/booking/index.d.ts +35 -50
- package/dist/web/televet/booking/index.js +2 -2
- package/dist/web/televet/call/index.cjs +1 -1
- package/dist/web/televet/call/index.d.cts +12 -5
- package/dist/web/televet/call/index.d.ts +12 -5
- package/dist/web/televet/call/index.js +1 -1
- package/dist/web/televet/index.cjs +4 -1
- package/dist/web/televet/index.d.cts +31 -2
- package/dist/web/televet/index.d.ts +31 -2
- package/dist/web/televet/index.js +4 -1
- package/package.json +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
import {createContext,forwardRef,useMemo,createElement,useState,useRef,useEffect,useCallback,useReducer,useContext,useSyncExternalStore,Component}from'react';import {StyleSheet,TextInput,Pressable,View,Alert,BackHandler,Image,ActivityIndicator,ScrollView,Modal,Text}from'react-native';import {jsxs,Fragment,jsx}from'react/jsx-runtime';import {useSafeAreaInsets}from'react-native-safe-area-context';var Fa=Object.defineProperty;var o=(e,t)=>Fa(e,"name",{value:t,configurable:true});function Gt(e){throw new Error(`assertNever: unhandled discriminated-union member ${JSON.stringify(e)}`)}o(Gt,"assertNever");function Fo(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(Fo,"errorFrame");function Mn(e){let t=globalThis.console;try{t?.error?.("[everfur] A host callback threw; the SDK ignored it.",e);}catch{}}o(Mn,"reportHostFailure");function Va(e){return (typeof e=="object"||typeof e=="function")&&e!==null&&typeof e.then=="function"}o(Va,"isThenable");function Jt(e,...t){if(typeof e=="function")try{let n=e(...t);return Va(n)&&Promise.resolve(n).then(void 0,Mn),n}catch(n){Mn(n);return}}o(Jt,"callHost");var No=new WeakMap;function Ma(e){if(typeof e!="function")return;let t=No.get(e);if(t!==void 0)return t;let n=o((...r)=>{Jt(e,...r);},"guarded");return No.set(e,n),n}o(Ma,"guardHost");function nt(e,t){let n=null;for(let r of t){let i=e[r];typeof i=="function"&&(n??={...e},n[r]=Ma(i));}return n??e}o(nt,"guardHostProps");function Xt(e,...t){let n;try{n=e(...t);}catch(r){return Mn(r),Promise.resolve({ok:false,error:r})}return Promise.resolve(n).then(r=>({ok:true,value:r}),r=>({ok:false,error:r}))}o(Xt,"callHostAsync");function Lo(){let e=[];return {register(t){return e=[...e,t],()=>{e=e.filter(n=>n!==t);}},dispatch(){for(let t of [...e].reverse())try{if(t())return !0}catch{}return false}}}o(Lo,"createTelevetBackChannel");var zn=createContext(null);function rt(e,t=true){let n=useContext(zn),r=useRef(e);r.current=e,useEffect(()=>{if(!(n===null||!t))return n.register(()=>r.current())},[n,t]);}o(rt,"useTelevetBackChannel");var m=o(e=>e,"DRAFT"),Wa=["[PLACEHOLDER","[PLAN NAME]","[LINK]","[Last]","TODO","TBD"];function qa(e){return Wa.some(t=>e.toUpperCase().includes(t.toUpperCase()))}o(qa,"isPlaceholderCopy");function ne(e,t){let n=e;for(let[r,i]of Object.entries(t))n=n.split(`{${r}}`).join(i);return n}o(ne,"fill");var u=Object.freeze({stateBlockedTitle:m("Not available in this state yet"),noCliniciansTitle:m("No vets available right now"),noCliniciansBody:m("Nobody is free in your area at the moment. This changes through the day."),noCliniciansRetryCta:m("Check again"),noCliniciansRegionBody:m("Video visits have to be with a vet licensed in your state, and we don\u2019t have one there yet."),yourVetTitle:m("Your Vet"),reviewsLabel:m("reviews"),rescheduleFromTemplate:m("Moving your visit on {when}"),rescheduleFailed:m("That did not move. Your original time is unchanged."),keepExistingCta:m("Keep my current time"),bookingPausedTitle:m("Booking is not available right now."),slotsErrorTitle:m("Could not load times"),noSlotsTitle:m("No times available"),nextOpeningTemplate:m("Next opening across our vets: {when}"),seeOtherVetsCta:m("See other vets"),retryCta:m("Try again"),holdExpired:m("That time is no longer held. Pick another."),slotTaken:m("That time was just taken. Pick another."),reasonPlaceholder:m("What is going on with your pet?"),reasonTooLong:m("That is too long. Please shorten it."),shareRecordsOff:m("Share health records with this vet"),confirmNotEntitled:m("A Pro membership is needed to book a video visit."),confirmFailed:m("That did not book. Try again."),checkAvailabilityCta:m("Check availability"),stateInterest:Object.freeze({cta:m("Add me to the list"),submitting:m("Adding you to the list\u2026"),joinedTitle:m("You are on the list"),joinedBody:m("We will let you know when this changes."),failed:m("That did not save. Try again.")}),media:Object.freeze({droppedTemplate:m("{n} attachment did not upload."),droppedPluralTemplate:m("{n} attachments did not upload."),refusedSizeTemplate:m("{n} attachment was too large to send."),refusedSizePluralTemplate:m("{n} attachments were too large to send."),refusedTypeTemplate:m("{n} attachment is a file type that cannot be sent."),refusedTypePluralTemplate:m("{n} attachments are file types that cannot be sent."),refusedUnreadableTemplate:m("{n} attachment could not be read."),refusedUnreadablePluralTemplate:m("{n} attachments could not be read.")}),navTitle:m("Book a visit"),rescheduleNavTitle:m("Change your visit"),close:m("Close"),continueCta:m("Continue"),petSelectTitle:m("Who is this visit for?"),addPetCta:m("Add a pet"),locationUnknownTitle:m("We need your location to find a vet"),locationUnknownBody:m("Turn on location for Everfur, then try again."),locationUnknownCta:m("Allow location"),locationBlockedTitle:m("Location is turned off"),locationBlockedBody:m("Everfur needs your location to match you with a vet in your area."),locationBlockedCta:m("Open Settings"),locationUnavailableTitle:m("We could not read your location"),locationUnavailableBody:m("Try again in a moment."),stateAttestTemplate:m("I confirm my pet and I are in {state} right now."),describeHeading:m("Tell the vet what you are seeing"),describeHelpLong:m("A few sentences is plenty. When it started, what changed, anything you've already tried."),addPhotoCta:m("ADD PHOTO OR VIDEO"),removePhotoLabel:m("Remove photo"),summaryPet:m("Pet"),summaryVet:m("Vet"),summaryWhen:m("When"),summaryLength:m("Length"),summaryReason:m("Reason"),summaryLengthTemplate:m("{n} minutes"),confirmCta:m("Confirm visit"),bookedTitle:m("You are booked."),addToCalendarCta:m("Add to calendar"),doneCta:m("Done"),booked:Object.freeze({remindPromise:m("We will notify you 30 minutes before."),summaryPromise:m("{pet}'s summary goes to the vet ahead of the call."),joinPromise:m("Join right here in the app. No links to hunt for."),backToPet:m("Back to {pet}"),calendarAdded:m("Added to your calendar"),calendarFailedBody:m("That did not save to your calendar.")}),chrome:Object.freeze({closeHint:m("Closes without saving"),discardTitle:m("Leave without booking?"),discardBody:m("Your answers will not be saved."),discardConfirmCta:m("Leave"),discardKeepCta:m("Keep going"),noPetsTitle:m("No pets on this account"),loadFailedTitle:m("Could not load"),retryCta:m("Try again")}),emergency:Object.freeze({bannerTitle:m("This cannot wait for a scheduled call."),keepBookingCta:m("I have handled this, keep booking"),lede:m("What you are describing is the kind of thing vets want to see in person, now."),exitPrimaryVetTitle:m("Call {petName}'s primary vet"),exitFindErTitle:m("Find an emergency vet near you"),startCallHint:m("Starts a phone call")}),visit:Object.freeze({title:m("Your visit")}),loading:Object.freeze({pets:"Loading pets. Nothing to read yet.",clinicians:"Loading vets. Nothing to read yet.",slots:"Loading times. Nothing to read yet.",consult:"Loading your visit. Nothing to read yet.",progressTemplate:"Step {step} of {total}"})});function Vo(e=u){return typeof e=="string"?[e]:typeof e!="object"||e===null?[]:Object.values(e).flatMap(t=>Vo(t))}o(Vo,"televetBookingCopyValues");function Se(){return Vo().every(e=>e.trim().length>0&&!qa(e))}o(Se,"isTelevetBookingCopyReady");var jn=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(jn.map(e=>e.wireCode));var Ka=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"}),zo=Object.freeze(jn.map(e=>Object.freeze({wireCode:e.wireCode,envelope:e.envelope,retryable:e.retryable,normalized:Ka[e.wireCode]}))),Ya=new Map(zo.map(e=>[e.envelope+e.wireCode.toUpperCase(),e])),Ga=Object.freeze(["http_envelope",...[...new Set(zo.map(e=>e.envelope))].filter(e=>e!=="http_envelope").sort()]);function Qt(e,t){if(typeof e!="string")return;let n=e.trim().toUpperCase();if(n.length!==0)for(let r of [t??"http_envelope",...Ga]){let i=Ya.get(r+n);if(i)return i}}o(Qt,"contractErrorFor");function Ja(e){return e.envelope==="sse_frame"?`/errors#sse-${e.wireCode}`:e.envelope==="oauth_error"?`/errors#oauth-${e.wireCode}`:`/errors#${e.wireCode}`}o(Ja,"contractDocUrl");function jo(e){return null}o(jo,"publishedDocUrl");var Xa=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 Ho(e){return Xa[e]}o(Ho,"categoryFor");function Uo(e){let t=Qt(e);if(t)return t.normalized;let n=(e??"").trim().toUpperCase(),r=n.replace(/[^A-Z0-9]/g,"");if(r==="AUTHREJECTED")return "authRejected";if(n.startsWith("AUTH"))return "authExpired";switch(r){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(Uo,"fromWire");var Qa=new Set(["streamTimeout","rateLimited","internalError","upstreamLlmTimeout","streamIncomplete"]);function Hn(e){return Qa.has(e)}o(Hn,"isAutoRetryable");var Za=new Set(["serviceUnavailable","conflict","idempotencyInFlight"]);function Wo(e){return Hn(e)||Za.has(e)}o(Wo,"isRetryableCode");var es=500,Un=8e3,qo=4;function $o(e,t=Math.random){let n=Math.max(0,e),r=Math.min(es*2**n,Un);return Math.floor(t()*r)}o($o,"backoffDelayMs");var ts=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 Wn(e){return ts[e]}o(Wn,"userFacingError");function Ko(e,t,n){Object.defineProperty(e,t,{value:n,enumerable:false,writable:false,configurable:false});}o(Ko,"defineHidden");var ns=/^[a-z][a-z0-9_]{0,63}$/;function ye(e,t){let n=Qt(t?.wireCode,t?.wireEnvelope),r={code:e,category:Ho(e),retryable:t?.retryable??Wo(e),displayMessage:Wn(e)};if(t?.httpStatus!==void 0&&(r.httpStatus=t.httpStatus),t?.requestId&&(r.requestId=t.requestId),typeof t?.reasonCode=="string"&&ns.test(t.reasonCode)&&(r.reasonCode=t.reasonCode),n);return t?.wireMessage&&Ko(r,"wireMessage",t.wireMessage),t?.raw!==void 0&&t.raw!==null&&Ko(r,"raw",t.raw),Object.freeze(r)}o(ye,"makeEverfurError");function L(e,t){return Object.freeze(t===void 0?{ok:true,value:e}:{ok:true,value:e,warning:t})}o(L,"ok");function w(e){return Object.freeze({ok:false,error:e})}o(w,"err");var Zt=class Zt extends Error{constructor(t,n){super(n),this.name="EverfurConfigError",this.kind=t,Object.setPrototypeOf(this,Zt.prototype);}};o(Zt,"EverfurConfigError");var bt=Zt;function rs(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(rs,"authHeaders");function ht(e,t){return {...e,headers:{...os(e.headers),...rs(t)}}}o(ht,"withAuthHeaders");function os(e){if(!e)return {};let t={};for(let[n,r]of Object.entries(e)){let i=n.toLowerCase();i==="authorization"||i==="x-everfur-partner-key"||(t[n]=r);}return t}o(os,"stripAuthHeaders");async function Yo(e,t){if(t.mode==="anonymous")return t.transport.request(ht(e,{mode:"anonymous",publishableKey:t.publishableKey,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));let n;try{n=await t.identity.currentToken();}catch{return w(qn())}let r=await t.transport.request(ht(e,{mode:"personalized",token:n,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));if(r.ok||r.error.httpStatus!==401)return r;let i;try{i=await t.identity.currentToken({forceRefresh:!0});}catch{return w(qn())}let l=await t.transport.request(ht(e,{mode:"personalized",token:i,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));return !l.ok&&l.error.httpStatus===401?w(qn(l.error.httpStatus)):l}o(Yo,"authedSend");function qn(e){return ye("authRejected",{retryable:false,...e!==void 0?{httpStatus:e}:{}})}o(qn,"authRejectedError");function Go(e){return ye("internalError",{retryable:true,wireMessage:ls(e)})}o(Go,"networkError");function ls(e){return e instanceof Error?e.message:typeof e=="string"?e:"network request failed"}o(ls,"describeCause");var is=3e4,as=Un*2,ss="idempotency-key",ds=new Set(["POST","PUT","PATCH","DELETE"]),cs=Object.freeze({onEvent(){}}),us=Object.freeze({setTimeout:o((e,t)=>setTimeout(e,t),"setTimeout"),clearTimeout:o(e=>clearTimeout(e),"clearTimeout"),now:o(()=>Date.now(),"now")});function ps(e){let t=e.trim().replace(/[^A-Za-z0-9_.:-]/g,"-");return t.length===0?null:`efs_${t}`.slice(0,128)}o(ps,"seededIdempotencyKey");function Tt(e){let t=e.observer??cs,n=e.timers??us,r=e.rng??Math.random,i=e.sleep??((f,y)=>_s(f,n,y)),l=e.maxAttempts??qo,a=e.unaryTimeoutMs??is,s=e.newIdempotencyKey??ys(),c=o(f=>{try{t.onEvent(f);}catch{}},"emit");async function d(f,y,E){let _=E?.maxAttempts,P=Math.max(1,_??l),h=E?.idempotent??ds.has(y.method),T=E?.idempotencyKey===void 0?null:ps(E.idempotencyKey),R=h?T??s():null,O=fs(y,R),C=0;for(;;){let q=o(oe=>Object.freeze({call:f,method:y.method,path:y.path,attempt:C,...R?{idempotencyKey:R}:{},...oe}),"stamp");c(q({phase:"attempt"}));let D=Ss(a,n),M=Rs(D.signal,y.signal),N;try{N=await Yo({...O,signal:M.signal},e.auth);}catch(oe){N=w(Go(oe));}finally{M.dispose(),D.cancel();}if(N.ok)return c(q({phase:"settled",ok:true,reason:"ok"})),N;let K=N.error,fe=vs(K,C,{maxAttempts:P,rng:r,now:n.now(),aborted:y.signal?.aborted===true,..._!==void 0?{perCallMaxAttempts:_}:{},...e.errorPolicy!==void 0?{policy:e.errorPolicy}:{}}),Q={ok:false,code:K.code,reason:fe.reason,...K.httpStatus!==void 0?{httpStatus:K.httpStatus}:{},...K.requestId!==void 0?{requestId:K.requestId}:{}};if(!fe.retry)return c(q({phase:"settled",...Q})),w(K);if(c(q({phase:"retry",...Q,delayMs:fe.delayMs})),await i(fe.delayMs,y.signal),y.signal?.aborted===true)return c(q({phase:"settled",...Q,reason:"aborted"})),w(K);C+=1;}}o(d,"send");async function p(f){return ht(f,await Cs(e.auth))}o(p,"authorize");async function*g(f,y,E){c(Object.freeze({call:f,phase:"stream.open",method:y.method,path:y.path,attempt:0}));try{yield*e.auth.transport.stream(y,E);}catch{yield Fo({code:"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null,serverRequestId:null});}}return o(g,"stream"),Object.freeze({send:d,authorize:p,stream:g})}o(Tt,"createRequestFunnel");function fs(e,t){let n={};for(let[r,i]of Object.entries(e.headers??{}))r.toLowerCase()!==ss&&(n[r]=i);return t!==null&&(n["Idempotency-Key"]=t),{...e,headers:n}}o(fs,"assembleHeaders");function ys(){let e=0;return ()=>`efk_${Date.now().toString(36)}_${(e++).toString(36)}_${Math.random().toString(36).slice(2,12)}`}o(ys,"defaultIdempotencyKeyFactory");var ms=10;function vs(e,t,n){if(n.aborted)return {retry:false,reason:"aborted"};let r=gs(e);if(r==="quota")return {retry:false,reason:"daily-quota-exhausted"};if(r!=="burst"&&!Hn(e.code))return {retry:false,reason:"terminal-code"};let i=r==="burst"?"burst-throttle":"retryable-code";if(o(()=>{if(n.policy===void 0)return false;try{return !n.policy.shouldRetry(e.code,t)}catch{return false}},"policyVetoedRetry")())return {retry:false,reason:"terminal-code"};let a=o(()=>{if(n.policy===void 0)return null;let d;try{d=n.policy.maxAttempts(e.code);}catch{return null}return typeof d!="number"||!Number.isFinite(d)?null:Math.max(1,Math.min(ms,Math.floor(d)))},"policyCeiling"),s=n.perCallMaxAttempts??a()??n.maxAttempts;if(t+1>=s)return {retry:false,reason:"attempts-exhausted"};let c=bs(e,n.now);return c!==null?c>as?{retry:false,reason:"server-reset-beyond-budget"}:{retry:true,reason:i,delayMs:c}:{retry:true,reason:i,delayMs:$o(t,n.rng)}}o(vs,"decideRetry");function gs(e){let t=e.code==="unknown"?Uo(ks(e.raw)):e.code;return t==="quotaExceeded"?"quota":t==="rateLimited"||e.httpStatus===429?"burst":null}o(gs,"throttleKind");function bs(e,t){let n=Ts(e.raw);if(n!==null){let i=n-t;return i>0?i:0}let r=hs(e.raw);return r===null?null:Math.round(r*1e3)}o(bs,"retryOverrideMs");function hs(e){for(let t of $n(e)){let n=t.retry_after_seconds;if(typeof n=="number"&&Number.isFinite(n)&&n>=0)return n}return null}o(hs,"findRetryAfterSeconds");function Ts(e){for(let t of $n(e)){let n=t.resets_at,r=Es(n);if(r!==null)return r}return null}o(Ts,"findResetsAt");function $n(e){if(!Jo(e))return [];let t=[e];for(let n of ["error","detail"]){let r=e[n];Jo(r)&&t.push(r);}return t}o($n,"candidateScopes");function Es(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(Es,"parseInstantMs");function ks(e){for(let t of $n(e)){let n=t.code;if(typeof n=="string"&&n.length>0)return n}return null}o(ks,"rawWireCode");function Jo(e){return typeof e=="object"&&e!==null}o(Jo,"isRecord");async function Cs(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(Cs,"resolveDeviceAuth");function Ss(e,t){let n=new AbortController,r=t.setTimeout(()=>n.abort(),e);return {signal:n.signal,cancel:o(()=>t.clearTimeout(r),"cancel")}}o(Ss,"boundedSignal");function Rs(e,t){let n=o(()=>{},"noop");if(!t)return {signal:e,dispose:n};let r=new AbortController;if(e.aborted||t.aborted)return r.abort(),{signal:r.signal,dispose:n};let i=o(()=>r.abort(),"onAbort");return e.addEventListener("abort",i,{once:true}),t.addEventListener("abort",i,{once:true}),{signal:r.signal,dispose:o(()=>{e.removeEventListener("abort",i),t.removeEventListener("abort",i);},"dispose")}}o(Rs,"mergeSignals");function _s(e,t,n){return e<=0||n?.aborted===true?Promise.resolve():new Promise(r=>{let i=t.setTimeout(()=>{n?.removeEventListener("abort",l),r();},e),l=o(()=>{t.clearTimeout(i),r();},"onAbort");n?.addEventListener("abort",l,{once:true});})}o(_s,"delayAbortable");function xs(e){try{return new URL(e.trim()).protocol==="https:"}catch{return false}}o(xs,"isSafeRoomUrl");function ws(e,t){return xs(e)&&t.trim().length>0}o(ws,"isUsableRoomCredential");function en(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}o(en,"isRecord");function Kn(e,t){return typeof e=="number"&&Number.isInteger(e)&&e>=t?e:null}o(Kn,"wholeNumber");function Ps(e){if(!en(e))return null;let t=Kn(e.consult_minutes,1),n=Kn(e.auto_end_minutes,0),r=Kn(e.warn_before_seconds,0);return t===null||n===null||r===null?null:Object.freeze({consultMinutes:t,autoEndMinutes:n,warnBeforeSeconds:r})}o(Ps,"parseCallLimits");function Yn(e){if(!en(e))return null;let t=e.room_url??e.url,n=e.token;if(typeof t!="string"||typeof n!="string"||!ws(t,n))return null;let r=e.recording_notice;return Object.freeze({roomUrl:t.trim(),token:n,recordingNotice:typeof r=="boolean"?r:true,callLimits:Ps(e.call_limits)})}o(Yn,"parseVetCallCredential");function Gn(e){let t=Xo(e.raw);return t!==null&&t.length>0?t:null}o(Gn,"vetCallJoinReason");function Xo(e){if(!en(e))return null;let t=e.detail??e.error,r=(en(t)?t:e).reason;return typeof r=="string"?r:null}o(Xo,"reasonOf");function Jn(e){if(e.httpStatus===404)return "unavailable";let t=Xo(e.raw);return t==="too_early"||t==="too_late"||t==="room_not_ready"?t:t!==null&&t.startsWith("status_")?"not_joinable":"unknown"}o(Jn,"vetCallJoinRefusal");var Zo=["scheduled","in_progress","awaiting_summary","completed","cancelled_owner","cancelled_ops","no_show_owner","no_show_vet"],$e=new Set(["completed","cancelled_owner","cancelled_ops","no_show_owner","no_show_vet"]),el=["wellness","prescription"],tn=64,_e=2e3,nn=10;function me(e){return typeof e=="string"&&/^[A-Za-z]{2}$/.test(e.trim())}o(me,"isWellFormedStateCode");function Re(e){return typeof e=="object"&&e!==null?e:null}o(Re,"row");function Z(e){return typeof e=="string"&&e.length>0?e:null}o(Z,"str");function Ne(e){return typeof e=="string"&&e.trim().length>0?e.trim():null}o(Ne,"trimmedOrNull");function ot(e,t){return typeof e=="boolean"?e:t}o(ot,"bool");function Xn(e){return typeof e=="number"&&Number.isFinite(e)?e:null}o(Xn,"num");function Qo(e,t){return typeof t=="string"&&e.includes(t)?t:"unknown"}o(Qo,"closed");function lt(e,t){if(!Array.isArray(e))return Object.freeze([]);let n=[];for(let r of e){let i=t(r);i!==null&&n.push(i);}return Object.freeze(n)}o(lt,"parseList");function tl(e,t){let n=Re(e);return n===null?null:Object.freeze({state:Z(n.state)??t,wellnessAvailable:ot(n.wellness_available,false),prescriptionsAvailable:ot(n.prescriptions_available,false),cancellationPolicyText:Ne(n.cancellation_policy_text)})}o(tl,"parseStatePolicy");function nl(e){let t=Re(e);if(t===null)return null;let n=Ne(t.summary),r=Ne(t.version);return n===null||r===null?null:Object.freeze({summary:n,version:r})}o(nl,"parseCancellationPolicy");function rl(e){let t=Re(e);if(t===null)return null;let n=Z(t.clinician_id),r=Z(t.display_name);return n===null||r===null?null:Object.freeze({clinicianId:n,displayName:r,credentials:Ne(t.credentials_text),rating:Xn(t.rating),ratingCount:Xn(t.rating_count),bio:Ne(t.bio),photoRef:Z(t.photo_ref),licensedStates:lt(t.licensed_states,i=>{let l=Re(i),a=l===null?null:Z(l.state);return a===null?null:Object.freeze({state:a,canPrescribe:ot(l?.can_prescribe,false)})})})}o(rl,"parseClinician");function Qn(e){let t=Re(e);if(t===null)return null;let n=Z(t.slot_id),r=Z(t.starts_at);return n===null||r===null?null:Object.freeze({slotId:n,startsAt:r,endsAt:Z(t.ends_at)??r})}o(Qn,"parseSlot");function ol(e){let t=Re(e);if(t===null)return null;let n=Z(t.slot_id),r=Z(t.hold_expires_at);return n===null||r===null?null:Object.freeze({slotId:n,expiresAt:r})}o(ol,"parseSlotHold");function Et(e){let t=Re(e);if(t===null)return null;let n=Z(t.consult_id),r=Z(t.scheduled_at);return n===null||r===null?null:Object.freeze({consultId:n,petId:Z(t.pet_id)??"",clinicianId:Z(t.clinician_id)??"",clinicianName:Ne(t.display_name),reasonText:Ne(t.reason_text),mediaRefs:lt(t.media_refs,i=>Z(i)),status:Qo(Zo,t.status),kind:Qo(el,t.kind),scheduledAt:r,emergencyFlagged:ot(t.emergency_flagged,false),hasRoom:Z(t.meeting_url)!==null})}o(Et,"parseConsult");function ll(e){let t=Re(e);return Object.freeze({active:ot(t?.active,false)})}o(ll,"parseBookingEntitlement");var rn=240;function il(e){let t=Re(e);if(t===null)return null;let n=Xn(t.fee_cents);return n===null||n<0?null:Object.freeze({feeCents:n,currency:Z(t.currency)??"usd",feeRecorded:ot(t.fee_recorded,n>0),summary:Ne(t.summary)})}o(il,"parseCancelReceipt");var Le="/widget/v1/televet",Is=`${Le}/state-policy`,Os=`${Le}/vets`,al=`${Le}/slots`,As=`${Le}/slots/next`,on=`${Le}/consults`,Bs=`${Le}/entitlement`,Ds=`${Le}/cancellation-policy`;function sl(e){return `${al}/${encodeURIComponent(e)}/hold`}o(sl,"televetHoldCall");function dl(e){return `${on}/${encodeURIComponent(e)}/reschedule`}o(dl,"televetRescheduleCall");function ln(e){return `${on}/${encodeURIComponent(e)}`}o(ln,"televetConsultCall");function cl(e){return `${ln(e)}/join`}o(cl,"televetJoinCall");function ul(e){return `${ln(e)}/cancel`}o(ul,"televetCancelCall");var pl=100;function ie(e){return w(ye("validationFailed",{retryable:false,wireMessage:e}))}o(ie,"invalid");function Ke(e){return w(ye("internalError",{retryable:false,httpStatus:502,wireMessage:e}))}o(Ke,"unusable");function Zn(e){return e.httpStatus===404}o(Zn,"isDark");function kt(e,t,n){try{e?.track(t,n);}catch{}}o(kt,"safeTrack");function fl(e){if(e.pet_id.trim().length===0)return "pet_id is required";if(e.clinician_id.trim().length===0)return "clinician_id is required";if(e.slot_id.trim().length===0)return "slot_id is required";if(!me(e.state))return "state must be a two-letter US state code";let t=e.reason_text.trim();return t.length===0?"reason_text is required":t.length>_e?`reason_text must be at most ${_e} characters`:Fs(e)}o(fl,"validateBookingBody");function Fs(e){let t=e.state_attested===true,n=e.cancellation_policy_version?.trim()??"";return t!==n.length>0?"state_attested and cancellation_policy_version must be sent together or omitted together":n.length>tn?`cancellation_policy_version must be at most ${tn} characters`:null}o(Fs,"attestationRefusal");function tr(e){let t=e.funnel??Tt({auth:e.auth,...e.errorPolicy?{errorPolicy:e.errorPolicy}:{}}),n=e.telemetry;return {async statePolicy(r,i){let l=r.trim();if(!me(l))return ie("state must be a two-letter US state code");let a=await t.send("televet.booking.state_policy",{method:"GET",path:`${Is}/${encodeURIComponent(l)}`,...i?{signal:i}:{}});if(!a.ok)return w(a.error);let s=tl(a.value,l);return s===null?Ke("the state policy response was unreadable"):L(s)},async entitlement(r){let i=await t.send("televet.booking.entitlement",{method:"GET",path:Bs,...r?{signal:r}:{}});return i.ok?L(ll(i.value)):w(i.error)},async cancellationPolicy(r){let i=await t.send("televet.booking.cancellation_policy",{method:"GET",path:Ds,...r?{signal:r}:{}});return i.ok?L(nl(i.value)):L(null)},async clinicians(r,i){let l=r.trim();if(!me(l))return ie("state must be a two-letter US state code");let a=await t.send("televet.booking.clinicians",{method:"GET",path:Os,query:{state:l},...i?{signal:i}:{}});return a.ok?L(lt(er(a.value,"vets"),rl)):Zn(a.error)?L(Object.freeze([])):w(a.error)},async slots(r,i){let l=r.trim();if(l.length===0)return ie("clinicianId is required");let a=await t.send("televet.booking.slots",{method:"GET",path:al,query:{clinician_id:l},...i?{signal:i}:{}});return a.ok?L(lt(er(a.value,"slots"),Qn)):Zn(a.error)?L(Object.freeze([])):w(a.error)},async nextSlot(r){let i=await t.send("televet.booking.next_slot",{method:"GET",path:As,...r?{signal:r}:{}});return i.ok?L(Qn(Ls(i.value,"slot"))):L(null)},async holdSlot(r){let i=r.trim();if(i.length===0)return ie("slotId is required");let l=await t.send("televet.booking.hold",{method:"POST",path:sl(i)},{idempotent:false,maxAttempts:1});if(!l.ok)return kt(n,"televet.booking.hold_failed",{status:l.error.httpStatus??null}),w(l.error);let a=ol(l.value);return a===null?Ke("the hold response carried no usable expiry"):L(a)},async book(r,i){let l=fl(r);if(l!==null)return ie(l);let a=i.trim();if(a.length===0)return ie("idempotencyKey is required");let s=await t.send("televet.booking.book",{method:"POST",path:on,body:Ns(r)},{idempotent:true,idempotencyKey:a,maxAttempts:1});if(!s.ok)return kt(n,"televet.booking.book_failed",{status:s.error.httpStatus??null}),w(s.error);let c=Et(s.value);return c===null?Ke("the booking response was unreadable"):L(c)},async reschedule(r,i){let l=r.trim(),a=i.trim();if(l.length===0)return ie("consultId is required");if(a.length===0)return ie("slotId is required");let s=await t.send("televet.booking.reschedule",{method:"POST",path:dl(l),body:{new_slot_id:a}},{idempotent:false,maxAttempts:1});if(!s.ok)return kt(n,"televet.booking.reschedule_failed",{status:s.error.httpStatus??null}),w(s.error);let c=Et(s.value);return c===null?Ke("the reschedule response was unreadable"):L(c)},async listConsults(r){let i=await t.send("televet.booking.consults",{method:"GET",path:on,query:{limit:String(pl)},...r?{signal:r}:{}});return i.ok?L(lt(er(i.value,"consults"),Et)):Zn(i.error)?L(Object.freeze([])):w(i.error)},async getConsult(r,i){let l=r.trim();if(l.length===0)return ie("consultId is required");let a=await t.send("televet.booking.consult",{method:"GET",path:ln(l),...i?{signal:i}:{}});if(!a.ok)return w(a.error);let s=Et(a.value);return s===null?Ke("the consult response was unreadable"):L(s)},async joinConsult(r){let i=r.trim();if(i.length===0)return ie("consultId is required");let l=await t.send("televet.booking.join",{method:"POST",path:cl(i)},{idempotent:false,maxAttempts:1});if(!l.ok)return kt(n,"televet.booking.join_failed",{status:l.error.httpStatus??null}),w(l.error);let a=Yn(l.value);return a===null?Ke("the join response carried no usable room credential"):L(a)},async cancelConsult(r,i){let l=r.trim(),a=i.trim();if(l.length===0)return ie("consultId is required");if(a.length===0)return ie("reason is required");if(a.length>rn)return ie(`reason must be at most ${rn} characters`);let s=await t.send("televet.booking.cancel",{method:"POST",path:ul(l),body:{reason:a}},{idempotent:false,maxAttempts:1});if(!s.ok)return kt(n,"televet.booking.cancel_failed",{status:s.error.httpStatus??null}),w(s.error);let c=il(s.value);return c===null?Ke("the cancel response was unreadable"):L(c)}}}o(tr,"createTelevetBookingController");function Ns(e){let t=e.cancellation_policy_version?.trim()??"",n=e.state_attested===true&&t.length>0;return {pet_id:e.pet_id,clinician_id:e.clinician_id,slot_id:e.slot_id,state:e.state,reason_text:e.reason_text.trim(),species:e.species,media_refs:[...e.media_refs],emergency_acknowledged:e.emergency_acknowledged,share_health_records:e.share_health_records,...n?{state_attested:true,cancellation_policy_version:t}:{}}}o(Ns,"bookingWireBody");function er(e,t){if(Array.isArray(e))return e;if(typeof e=="object"&&e!==null){let n=e,r=n[t]??n.items??n.data;if(Array.isArray(r))return r}return e}o(er,"rows");function Ls(e,t){if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let n=e,r=n[t]??n.data;if(typeof r=="object"&&r!==null)return r}return e}o(Ls,"unwrap");var yl=Symbol.for("@everfur/sdk#EverfurContext@v1"),ml=globalThis,vl=ml[yl]??(ml[yl]=createContext(null));vl.displayName??="EverfurContext";function Ye(){let e=useContext(vl);if(e===null)throw new bt("not-initialized","Everfur hooks must be called inside <EverfurProvider>. Wrap your tree once, high.");return e}o(Ye,"useEverfurContext");var zs=Object.freeze({chat:Object.freeze(["chat.message.create"]),records:Object.freeze(["records.upload.create","records.record.read"]),recordsClinic:Object.freeze(["records.clinic.create"]),video:Object.freeze(["video.gait.execute"]),photo:Object.freeze(["photo.checkup.execute"]),animations:Object.freeze(["animations.state.read"]),televet:Object.freeze(["televet.visit.create"])});function js(e){return zs[e]}o(js,"requires");function gl(e,t,n){let r=js(e),i=new Map;for(let s of t)i.set(s.resource,s);if(n?.isPending===true&&r.some(s=>!i.has(s)))return nr({name:e,enabled:false,isPending:true,limits:{}});let l=Hs(r,i);return r.filter(s=>i.get(s)?.granted!==true).length===0?nr({name:e,enabled:true,isPending:false,limits:l}):nr({name:e,enabled:false,isPending:false,limits:l,disabled:Us(r,i)})}o(gl,"decideCapability");function Hs(e,t){let n={};for(let r of e){let i=t.get(r)?.limits;if(i)for(let[l,a]of Object.entries(i)){let s=n[l];n[l]=s===void 0?a:Math.min(s,a);}}return n}o(Hs,"mergeLimits");function Us(e,t){for(let n of e){let r=t.get(n)?.disabled;if(r)return Object.freeze({reason:r.reason,level:r.level,recoverable:r.recoverable})}return Object.freeze({reason:Wn("accessDenied"),level:"user_entitlement",recoverable:false})}o(Us,"disabledFor");function nr(e){let t={name:e.name,enabled:e.enabled,isPending:e.isPending,limits:Object.freeze({...e.limits})};return e.disabled!==void 0&&(t.disabled=e.disabled),Object.freeze(t)}o(nr,"freezeDecision");function Ct(e){let{runtime:t}=Ye(),n=t.entitlements,r=useSyncExternalStore(n.subscribe,n.getSnapshot,n.getSnapshot);return useMemo(()=>gl(e,r.decisions,{isPending:r.isPending}),[e,r])}o(Ct,"useCapability");function ae(e){let{runtime:t,userRef:n,scopeEpoch:r}=Ye();return useMemo(()=>{if(e)return e;if(n===null)return null;let{services:i}=t.registry;return tr({auth:i.authFor(n),telemetry:i.telemetry,...i.errorPolicy?{errorPolicy:i.errorPolicy}:{}})},[t,n,r,e])}o(ae,"useTelevetBookingController");function $s(){let{userRef:e}=Ye(),t=Ct("televet");return useMemo(()=>({available:t.enabled&&e!==null,isPending:t.isPending}),[t.enabled,t.isPending,e])}o($s,"useTelevetBookingAvailable");function Ve(e,t,n){let[r,i]=useState(()=>({key:e,data:null,isPending:t&&n!==null,error:null})),[l,a]=useState(0),s=useRef(n);s.current=n,useEffect(()=>{let p=s.current;if(!t||p===null){i({key:e,data:null,isPending:false,error:null});return}let g=new AbortController,f=true;return i(y=>y.key===e?{...y,isPending:true,error:null}:{key:e,data:null,isPending:true,error:null}),(async()=>{let y;try{y=await p(g.signal);}catch{f&&i({key:e,data:null,isPending:false,error:null});return}f&&(y.ok?i({key:e,data:y.value,isPending:false,error:null}):i({key:e,data:null,isPending:false,error:y.error}));})(),()=>{f=false,g.abort();}},[e,t,l]);let c=useCallback(()=>a(p=>p+1),[]),d=r.key===e;return useMemo(()=>({enabled:t,data:d?r.data:null,isPending:t&&(!d||r.isPending),isError:d&&r.error!==null,error:d?r.error:null,refetch:c}),[t,d,r.data,r.isPending,r.error,c])}o(Ve,"useTelevetRead");function or(e,t){let n=e?.trim()??"",r=t?.statePolicy!==void 0&&me(n),i=t?.statePolicy;return Ve(`state-policy:${n}`,r,r&&i?l=>i.call(t,n,l):null)}o(or,"useTelevetStatePolicy");function lr(e){let t=e?.entitlement!==void 0,n=e?.entitlement;return Ve("entitlement",t,t&&n?r=>n.call(e,r):null)}o(lr,"useTelevetBookingEntitlement");function St(e){let t=e?.cancellationPolicy!==void 0,n=e?.cancellationPolicy;return Ve("cancellation-policy",t,t&&n?r=>n.call(e,r):null)}o(St,"useTelevetCancellationPolicy");function ir(e,t){let n=e?.trim()??"",r=t?.clinicians!==void 0&&me(n),i=t?.clinicians;return Ve(`clinicians:${n}`,r,r&&i?l=>i.call(t,n,l):null)}o(ir,"useTelevetClinicians");function Rt(e,t){let n=e?.trim()??"",r=t!==null&&n.length>0;return Ve(`slots:${n}`,r,r&&t?i=>t.slots(n,i):null)}o(Rt,"useTelevetSlots");function ar(e){let t=e?.nextSlot!==void 0,n=e?.nextSlot;return Ve("next-slot",t,t&&n?r=>n.call(e,r):null)}o(ar,"useTelevetNextSlot");function dn(e){let[t,n]=useState(null),r=useRef(true),i=useRef(false),l=useRef(e);l.current=e,useEffect(()=>(r.current=true,()=>{r.current=false;}),[]);let a=useCallback((...s)=>{let c=l.current;if(c===null||i.current)return;let d=s[s.length-1],p=typeof d=="object"&&d!==null&&("onSuccess"in d||"onError"in d),g=p?d:void 0,f=p?s.slice(0,-1):s;i.current=true,n({variables:f[0]??null}),(async()=>{let y=null;try{y=await c(...f);}catch{y=null;}i.current=false,r.current&&n(null),y!==null&&(y.ok?g?.onSuccess?.(y.value):g?.onError?.(y.error));})();},[]);return useMemo(()=>({isPending:t!==null,variables:t?.variables??null,mutate:a}),[t,a])}o(dn,"useTelevetWrite");function _t(e){return dn(e?t=>e.holdSlot(t):null)}o(_t,"useTelevetHoldSlot");function sr(e){return dn(e?(t,n)=>e.book(t,n):null)}o(sr,"useTelevetBookConsult");function dr(e,t){return dn(t&&e?n=>t.reschedule(e,n):null)}o(dr,"useTelevetRescheduleConsult");function cn(e,t=0){let n=e?.listConsults!==void 0,r=e?.listConsults;return Ve(`consults:${t}`,n,n&&r?i=>r.call(e,i):null)}o(cn,"useTelevetConsults");function Tl(e,t,n=0){let r=e?.trim()??"",i=t?.getConsult!==void 0&&r.length>0,l=t?.getConsult;return Ve(`consult:${r}:${n}`,i,i&&l?a=>l.call(t,r,a):null)}o(Tl,"useTelevetConsult");function El(e,t){let n=t?.cancelConsult;return dn(t&&n&&e?r=>n.call(t,e,r):null)}o(El,"useTelevetCancelConsult");function cr(e){return e.error!==null&&e.error.httpStatus===404}o(cr,"televetReadIsDark");var ur=15,pr=250,Ks=new Set(["scheduled","in_progress"]);function Ge(e){let t=Date.parse(e.scheduledAt);return Number.isNaN(t)?null:t}o(Ge,"startsAtMs");function Ys(e){let t=Ge(e);return t===null?null:t-ur*6e4}o(Ys,"televetJoinOpensAtMs");function fr(e,t){if(e===null)return {ready:false,reason:"not_open_yet"};if($e.has(e.status))return {ready:false,reason:"consult_over"};if(e.status==="in_progress")return {ready:true};let n=Ge(e);return n===null?{ready:false,reason:"not_open_yet"}:t<n-ur*6e4?{ready:false,reason:"not_open_yet"}:t>n+pr*6e4?{ready:false,reason:"consult_over"}:{ready:true}}o(fr,"televetJoinReadiness");function xt(e,t){let n=[],r=[];for(let i of e){let l=Ge(i);(Ks.has(i.status)&&l!==null&&l+pr*6e4>t?n:r).push(i);}return n.sort((i,l)=>(Ge(i)??0)-(Ge(l)??0)),r.sort((i,l)=>(Ge(l)??0)-(Ge(i)??0)),Object.freeze({upcoming:Object.freeze(n),past:Object.freeze(r)})}o(xt,"splitTelevetVisits");function yr(e){return e==="scheduled"}o(yr,"canManageTelevetVisit");function kl(e){let t=cn(e);return t.enabled?t.isPending?"pending":t.isError||xt(t.data??[],Date.now()).upcoming.length>0?"visits":"booking":"booking"}o(kl,"useTelevetLanding");function gr(e){if(e!==null&&typeof e=="object"&&!Object.isFrozen(e)){Object.freeze(e);for(let t of Object.keys(e))gr(e[t]);}return e}o(gr,"deepFreeze");var Gs=Object.freeze({content:0,heading:2,control:1.8,compact:1.5,badge:1.3}),Sl={xs:4,sm:8,md:12,lg:16,xl:24,xxl:32},Rl={tile:5,xs:6,sm:10,md:14,lg:20,xl:28,pill:500},Cl={nano:8,small:9,micro:10,tiny:11,caption:12,bodyTight:13,body:14,subtitle:16,heading:18,verdict:24},Js={tight:1.15,snug:1.3,normal:1.4,relaxed:1.55},Xs={regular:"400",medium:"500",bold:"700"},Qs={eyebrow:1,monoWide:.9,headerBrand:-0.42,tight:-0.35},Zs=0,un="System",pn="monospace",ed=["content","heading","control","compact","badge"];function td(e){let t={};for(let n of ed)t[n]=e;return t}o(td,"authoredTierSizes");function _l(){return {family:un,mono:pn,fontUrl:null,families:{regular:un,medium:un,bold:un,mono:pn,monoMedium:pn,monoBold:pn},namedFaces:{regular:false,medium:false,bold:false,mono:false,monoMedium:false,monoBold:false},fontUrls:{},size:Cl,tierSizes:td(Cl),lineHeight:Js,weight:Xs,letterSpacing:Qs,scale:1,maxScale:Zs,scaleCaps:Gs}}o(_l,"baseType");var xl={},mr=Object.freeze({standard:Object.freeze([.2,0,0,1]),emphasized:Object.freeze([.2,.8,.2,1]),exit:Object.freeze([.4,0,1,1])});function vr(e){return `cubic-bezier(${e.join(", ")})`}o(vr,"cssCubicBezier");var wl={duration:{instant:80,fast:140,normal:220,slow:320},spring:{gentle:{damping:18,stiffness:200}},easing:{standard:vr(mr.standard),emphasized:vr(mr.emphasized),exit:vr(mr.exit)},reducedMotion:false},nd={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",errorRed:"#FF1B00",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",skeleton:"#EFE9E3",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.10)",checkupCardConcernBg:"rgba(239,167,0,0.10)"},Pl=gr({brightness:"light",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:nd,space:Sl,radius:Rl,type:_l(),motion:wl,slots:xl}),rd={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",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",skeleton:"#23272C",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.16)",checkupCardConcernBg:"rgba(239,167,0,0.16)"};gr({brightness:"dark",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:rd,space:Sl,radius:Rl,type:_l(),motion:wl,slots:xl});var Il=Symbol.for("@everfur/sdk#EverfurThemeContext@v1"),Ol=globalThis,br=Ol[Il]??(Ol[Il]=createContext(Pl));br.displayName??="EverfurThemeContext";function S(){return useContext(br)}o(S,"useEverfurTheme");function dd(e,t){let n=e.scaleCaps[t];return n>0?n:void 0}o(dd,"tierMultiplier");function v({tier:e="content",...t}){let{type:n}=S(),r=dd(n,e);return createElement(Text,r===void 0?t:{maxFontSizeMultiplier:r,...t})}o(v,"Text");var Bl=forwardRef(o(function(t,n){return createElement(TextInput,{...t,...n===null?{}:{ref:n}})},"TextInput"));var cd=Object.freeze({regular:"regular",medium:"medium",bold:"bold",mono:"regular",monoMedium:"medium",monoBold:"bold"});function b(e,t){let n=e.type,r=n.families[t];return t==="mono"||n.namedFaces[t]?{fontFamily:r}:{fontFamily:r,fontWeight:n.weight[cd[t]]}}o(b,"face");var Er=class Er extends Component{constructor(){super(...arguments);this.state={failed:false,key:this.props.resetKey};}static getDerivedStateFromError(){return {failed:true}}static getDerivedStateFromProps(n,r){return Object.is(n.resetKey,r.key)?null:{failed:false,key:n.resetKey}}render(){return this.state.failed?this.props.fallback:this.props.children}};o(Er,"HostRenderBoundary");var hr=Er;function pd({render:e}){return e()}o(pd,"RenderHost");function Tr({render:e,fallback:t,resetKey:n}){return createElement(hr,{fallback:t,resetKey:n,children:createElement(pd,{render:e})})}o(Tr,"HostRender");var fd=48;function yd(e){return e.isPending?"pending":e.enabled?"enabled":"disabled"}o(yd,"selectView");function Vl(e){let{capability:t,children:n,renderDisabled:r,renderPending:i,style:l}=e,a=Ct(t),s=useMemo(()=>yd(a),[a]);switch(s){case "enabled":return n;case "pending":return i?jsx(Tr,{render:i,fallback:jsx(Nl,{capability:t,style:l})}):jsx(Nl,{capability:t,style:l});case "disabled":return r?jsx(Tr,{render:()=>r(a),fallback:jsx(Ll,{decision:a,style:l}),resetKey:a}):jsx(Ll,{decision:a,style:l});default:return Gt(s)}}o(Vl,"CapabilityGate");function Nl({capability:e,style:t}){let n=S(),r=useMemo(()=>Ml(n),[n]);return jsx(View,{style:[r.offstate,t],accessible:true,accessibilityState:{busy:true},accessibilityLabel:`Loading ${e}`,children:jsx(View,{style:r.skeletonBar})})}o(Nl,"PendingSkeleton");function Ll({decision:e,style:t}){let n=S(),r=useMemo(()=>Ml(n),[n]),i=e.disabled?.reason??"";return jsx(View,{style:[r.offstate,t],accessible:true,accessibilityRole:"text",accessibilityLabel:i,children:i.length>0?jsx(v,{style:r.offstateText,children:i}):null})}o(Ll,"OffState");function Ml(e){let{color:t,space:n,radius:r,type:i}=e;return StyleSheet.create({offstate:{minHeight:fd,justifyContent:"center",paddingHorizontal:n.lg,paddingVertical:n.md,backgroundColor:t.surfaceCream,borderRadius:r.md,borderWidth:StyleSheet.hairlineWidth,borderColor:t.brandBorder},offstateText:{...b(e,"regular"),fontSize:i.size.body,lineHeight:Math.round(i.size.body*i.lineHeight.normal),color:t.text.muted},skeletonBar:{height:n.md,borderRadius:r.xs,backgroundColor:t.brandSofter}})}o(Ml,"makeStyles");function fn(e){let t=e.raw;if(typeof t!="object"||t===null)return null;let n=t,r=n.detail??n.error;return typeof r=="object"&&r!==null?r:n}o(fn,"details");function md(e){let t=fn(e)?.categories;return Array.isArray(t)?Object.freeze(t.filter(n=>typeof n=="string")):Object.freeze([])}o(md,"categoriesOf");function zl(e){let t=fn(e)?.retry_after_seconds;return typeof t=="number"&&Number.isFinite(t)&&t>0?t:null}o(zl,"retryAfterOf");function jl(e){let t=e.wireMessage;if(typeof t=="string"&&t.trim().length>0)return t.trim();let n=fn(e)?.message;return typeof n=="string"&&n.trim().length>0?n.trim():null}o(jl,"messageOf");function vd(e){let t=e.reasonCode;if(typeof t=="string"&&t.length>0)return t;let n=fn(e),r=n?.code??n?.error_code;return typeof r=="string"&&r.length>0?r:null}o(vd,"codeOf");function xe(e){let t=e.httpStatus;if(t===402)return Object.freeze({kind:"not_entitled"});if(t===429||e.code==="rateLimited"||e.code==="quotaExceeded")return Object.freeze({kind:"rate_limited",retryAfterSeconds:zl(e),message:jl(e)});if(t===404)return Object.freeze({kind:"unavailable"});switch(vd(e)){case "televet_rate_limited":return Object.freeze({kind:"rate_limited",retryAfterSeconds:zl(e),message:jl(e)});case "televet_emergency_ack_required":return Object.freeze({kind:"emergency",categories:md(e)});case "televet_not_entitled":return Object.freeze({kind:"not_entitled"});case "televet_slot_conflict":return Object.freeze({kind:"slot_taken"});case "televet_hold_invalid":return Object.freeze({kind:"slot_taken"});case "televet_clinician_cannot_prescribe":case "televet_clinician_unavailable":case "televet_clinician_not_bookable":return Object.freeze({kind:"clinician_unavailable"});case "televet_membership_conflict":return Object.freeze({kind:"not_entitled"});case "televet_registry_unavailable":return Object.freeze({kind:"failed"});}return Object.freeze({kind:"failed"})}o(xe,"televetBookingRefusal");function Hl(e){if(e===null)return null;let t=xe(e);return t.kind==="rate_limited"?t.message:null}o(Hl,"televetRateLimitMessage");function yn(e){for(let t=0;t<e.length;t+=1){let n=e.charCodeAt(t);if(n>=55296&&n<=56319){let r=e.charCodeAt(t+1);if(!(r>=56320&&r<=57343))return true;t+=1;}else if(n>=56320&&n<=57343)return true}return false}o(yn,"hasLoneSurrogate");function mn(e){return [...e].length}o(mn,"serverLength");var Ul=Object.freeze({dog:"dog",canine:"dog",k9:"dog",puppy:"dog",cat:"cat",feline:"cat",kitten:"cat"});function Wl(e){if(typeof e!="string")return null;let t=e.trim().toLowerCase();return Object.prototype.hasOwnProperty.call(Ul,t)?Ul[t]:null}o(Wl,"canonicalPetSpecies");var ql=50,gd=128,Sr=120,$l=120,bd=2e3,Kl=120,hd=80,Jl=new Set(["male","female","unknown"]),Xl=new Set(["day","month","year"]),Ql=new Set(["low","medium","high","athletic"]),Zl=new Set(["indoor","outdoor","both"]),ei=new Set(["mild","moderate","severe"]),Td=/^(\d{4})-(\d{2})-(\d{2})$/,ti=[["sex","sex"],["spayedNeutered","spayed_neutered"],["birthDate","birth_date"],["birthDatePrecision","birth_date_precision"],["activityLevel","activity_level"],["indoorOutdoor","indoor_outdoor"],["foodBrand","food_brand"],["foodType","food_type"],["microchipId","microchip_id"]],ni=[["allergies","allergies"],["medications","medications"],["supplements","supplements"],["conditions","conditions"]];Object.freeze([...ti,...ni].map(([e])=>e));function Ed(e){let t=Td.exec(e);if(t===null)return false;let[n,r,i]=[Number(t[1]),Number(t[2]),Number(t[3])],l=new Date(Date.UTC(n,r-1,i));return l.getUTCFullYear()===n&&l.getUTCMonth()===r-1&&l.getUTCDate()===i}o(Ed,"isRealDate");var Pt=o(e=>(t,n)=>typeof n=="string"&&e.has(n)?null:`${t} must be one of ${[...e].join(", ")}`,"oneOf"),kd=o((e,t)=>typeof t=="boolean"?null:`${e} must be true or false`,"boolean"),gn=o((e,t)=>typeof t=="string"&&Ed(t)?null:`${e} must be a real date written YYYY-MM-DD`,"date"),ge=o((e,t={})=>(n,r)=>{if(typeof r!="string")return `${n} must be a string`;if(yn(r))return `${n} contains an unpaired surrogate and cannot be encoded`;let i=t.trimmed?r.trim():r;if(t.required&&i.length===0)return `${n} is required and must not be blank`;let l=mn(i);return l<=e?null:`${n} is ${l} characters; the server accepts at most ${e}`},"text"),Cd={sex:Pt(Jl),spayedNeutered:kd,birthDate:gn,birthDatePrecision:Pt(Xl),activityLevel:Pt(Ql),indoorOutdoor:Pt(Zl),foodBrand:ge(Kl),foodType:ge(Kl),microchipId:ge(hd)},Rr=["ref","ref",false,ge(gd,{required:true,trimmed:true})],_r=["notes","notes",false,ge(bd,{trimmed:true})],Yl=[Rr,["name","name",true,ge(Sr,{required:true,trimmed:true})],["dose","dose",false,ge($l,{trimmed:true})],["frequency","frequency",false,ge($l,{trimmed:true})],["startDate","start_date",false,gn],["endDate","end_date",false,gn],_r],Sd={allergies:[Rr,["allergen","allergen",true,ge(Sr,{required:true,trimmed:true})],["severity","severity",false,Pt(ei)],_r],medications:Yl,supplements:Yl,conditions:[Rr,["conditionName","condition_name",true,ge(Sr,{required:true,trimmed:true})],["diagnosedDate","diagnosed_date",false,gn],_r]};function Rd(e,t,n){let r=`${e}[${t}]`;if(typeof n!="object"||n===null||Array.isArray(n))return {error:`${r} must be an object`};let i=n,l={};for(let[c,d,p,g]of Sd[e]){let f=i[c];if(f==null){if(p)return {error:`${r}.${c} is required`};f===null&&(l[d]=null);continue}let y=g(`${r}.${c}`,f);if(y!==null)return {error:y};l[d]=f;}let a=l.start_date,s=l.end_date;return typeof a=="string"&&typeof s=="string"&&s<a?{error:`${r}.endDate must not be before startDate`}:{item:l}}o(Rd,"itemToWire");function _d(e,t){if(!Array.isArray(t))return {error:`${e} must be an array (send [] to clear it)`};if(t.length>ql)return {error:`${e} has ${t.length} items; the server accepts at most ${ql}`};let n=[],r=new Set;for(let i=0;i<t.length;i+=1){let l=Rd(e,i,t[i]);if("error"in l)return l;let a=l.item.ref;if(typeof a=="string"){let s=a.trim();if(r.has(s))return {error:`${e}: ref ${JSON.stringify(s)} is used twice; a ref names one item`};r.add(s);}n.push(l.item);}return {items:n}}o(_d,"listToWire");function ri(e,t){let n=e,r={};for(let[a,s]of ti){let c=n[a];if(c!==void 0){if(c!==null){let d=Cd[a](a,c);if(d!==null)return {error:d}}r[s]=c;}}let i=n.birthDate!==void 0,l=n.birthDatePrecision!==void 0;if(i!==l||i&&n.birthDate===null!=(n.birthDatePrecision===null))return {error:"birthDate and birthDatePrecision must be sent together, both set or both null"};for(let[a,s]of ni){let c=n[a];if(c===void 0)continue;let d=_d(a,c);if("error"in d)return d;r[s]=d.items;}return Object.keys(r).length>0&&t!==void 0&&Wl(t)===null?{error:"health fields need a pet Everfur reads as a dog or a cat (dog, canine, k9, puppy, cat, feline, kitten)"}:{body:r}}o(ri,"petHealthToWire");var J=o(e=>typeof e=="string"?e:null,"str"),wt=o((e,t)=>typeof t=="string"&&e.has(t)?t:null,"pick"),xd=o(e=>typeof e=="boolean"?e:null,"bool");function vn(e,t){return Array.isArray(e)?Object.freeze(e.flatMap(n=>{if(typeof n!="object"||n===null||Array.isArray(n))return [];let r=t(n);return r===null?[]:[r]})):Object.freeze([])}o(vn,"itemsFromWire");function Gl(e){let t=J(e.name);return t===null||t.length===0?null:Object.freeze({ref:J(e.ref),name:t,dose:J(e.dose),frequency:J(e.frequency),startDate:J(e.start_date),endDate:J(e.end_date),notes:J(e.notes)})}o(Gl,"medicationFromWire");function oi(e){let t=e.profile_version;return Object.freeze({profileVersion:typeof t=="number"&&Number.isInteger(t)&&t>=0?t:0,sex:wt(Jl,e.sex),spayedNeutered:xd(e.spayed_neutered),birthDate:J(e.birth_date),birthDatePrecision:wt(Xl,e.birth_date_precision),activityLevel:wt(Ql,e.activity_level),indoorOutdoor:wt(Zl,e.indoor_outdoor),foodBrand:J(e.food_brand),foodType:J(e.food_type),microchipId:J(e.microchip_id),allergies:vn(e.allergies,n=>{let r=J(n.allergen);return r===null||r.length===0?null:Object.freeze({ref:J(n.ref),allergen:r,severity:wt(ei,n.severity),notes:J(n.notes)})}),medications:vn(e.medications,Gl),supplements:vn(e.supplements,Gl),conditions:vn(e.conditions,n=>{let r=J(n.condition_name);return r===null||r.length===0?null:Object.freeze({ref:J(n.ref),conditionName:r,diagnosedDate:J(n.diagnosed_date),notes:J(n.notes)})})})}o(oi,"petHealthFromWire");var ai=100,si=50,di=100,ci=50,ui=500,wd=128,Pd=6e4;function he(e){return ye("validationFailed",{retryable:false,wireMessage:e})}o(he,"invalid");function Je(e,t,n){if(typeof t!="string")return he(`${e} must be a string`);let r=mn(t);return r<=n?null:he(`${e} is ${r} characters; the server accepts at most ${n}`)}o(Je,"checkString");function bn(e,t,n){return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=n?null:he(`${e} must be a finite number between 0 and ${n}`)}o(bn,"outOfRange");function li(e,t){if(typeof e!="string")return he("pet_ref must be a string");if(e.trim().length===0)return he("pet_ref must not be blank");if(yn(e))return he("pet_ref contains an unpaired surrogate and cannot be encoded");if(t!=null&&typeof t!="object")return he("profile must be an object");let n=[Je("pet_ref",e,wd)];return t?.name!==void 0&&n.push(Je("name",t.name,ai)),t?.species!==void 0&&n.push(Je("species",t.species,si)),t?.breed!==void 0&&n.push(Je("breed",t.breed,di)),t?.ageYears!==void 0&&n.push(bn("age_years",t.ageYears,ci)),t?.weightKg!==void 0&&n.push(bn("weight_kg",t.weightKg,ui)),n.find(r=>r!==null)??null}o(li,"validate");function pi(e,t){let n=ri(e,t);return "error"in n?{error:he(n.error)}:n}o(pi,"healthToWire");function Id(e){if(typeof e!="object"||e===null)return {error:he("patch must be an object")};let t=e,n=[["name","name",l=>Je("name",l,ai)],["species","species",l=>Je("species",l,si)],["breed","breed",l=>Je("breed",l,di)],["ageYears","age_years",l=>bn("age_years",l,ci)],["weightKg","weight_kg",l=>bn("weight_kg",l,ui)]],r={};for(let[l,a,s]of n){let c=t[l];if(c!==void 0){if(c!==null){let d=s(c);if(d!==null)return {error:d}}r[a]=c;}}let i=pi(t,t.species);return "error"in i?i:(Object.assign(r,i.body),Object.keys(r).length===0?{error:he("patch must change at least one field")}:{body:r})}o(Id,"patchToWire");function Od(e){if(e==null)return {body:{}};let t=pi(e,e.species);return "error"in t?t:{body:{...e.name!==void 0?{name:e.name}:{},...e.species!==void 0?{species:e.species}:{},...e.breed!==void 0?{breed:e.breed}:{},...e.ageYears!==void 0?{age_years:e.ageYears}:{},...e.weightKg!==void 0?{weight_kg:e.weightKg}:{},...t.body}}}o(Od,"toWire");var be=o(e=>typeof e=="string"?e:null,"str"),hn=o(e=>typeof e=="number"&&Number.isFinite(e)?e:null,"num");function ii(e,t){let n=typeof e=="object"&&e!==null?e:{};return Object.freeze({petRef:be(n.pet_ref)??t,name:be(n.name),species:be(n.species),breed:be(n.breed),ageYears:hn(n.age_years),weightKg:hn(n.weight_kg)})}o(ii,"fromWire");function fi(e){if(typeof e!="object"||e===null)return null;let t=e,n=be(t.pet_ref);return n===null||n.length===0?null:Object.freeze({petId:be(t.pet_id),petRef:n,name:be(t.name),species:be(t.species),breed:be(t.breed),ageYears:hn(t.age_years),weightKg:hn(t.weight_kg),updatedAt:be(t.updated_at)})}o(fi,"widgetPetFromWire");function Ad(e){let t=fi(e);return t===null?null:Object.freeze({...t,...oi(e)})}o(Ad,"widgetPetProfileFromWire");function Bd(e){let t=Array.isArray(e)?e:typeof e=="object"&&e!==null&&Array.isArray(e.pets)?e.pets:[];return Object.freeze(t.flatMap(n=>{let r=fi(n);return r===null?[]:[r]}))}o(Bd,"petListFromWire");function yi(e){return Dd(Tt({auth:e}),Tt({auth:e,unaryTimeoutMs:Pd}))}o(yi,"createPetsRepository");function Dd(e,t=e){let n=o((i,l)=>l?{...i,signal:l}:i,"withSignal"),r=o(i=>li(i,void 0)??`/widget/v1/pets/${encodeURIComponent(i)}`,"petPath");return {async list(i){let l=await e.send("pets.list",n({method:"GET",path:"/widget/v1/pets"},i?.signal));return l.ok?L(Bd(l.value)):w(l.error)},async registerPet(i,l,a){let s=li(i,l);if(s!==null)return w(s);let c=Od(l);if("error"in c)return w(c.error);let p={method:"POST",path:`/widget/v1/pets/${encodeURIComponent(i)}`,body:c.body},g=await e.send("pets.registerPet",a?.signal?{...p,signal:a.signal}:p);return g.ok?L(ii(g.value,i)):w(g.error)},async updatePet(i,l,a){let s=r(i);if(typeof s!="string")return w(s);let c=Id(l);if("error"in c)return w(c.error);let d=await e.send("pets.updatePet",n({method:"PATCH",path:s,body:c.body},a?.signal));return d.ok?L(ii(d.value,i)):w(d.error)},async getPetProfile(i,l){let a=r(i);if(typeof a!="string")return w(a);let s=await e.send("pets.getPetProfile",n({method:"GET",path:`${a}/profile`},l?.signal));if(!s.ok)return w(s.error);let c=Ad(s.value);return c===null?w(ye("internalError",{retryable:false,httpStatus:502,wireMessage:"the pet profile response carried no pet_ref"})):L(c)},async deletePet(i,l){let a=r(i);if(typeof a!="string")return w(a);let s=await e.send("pets.deletePet",n({method:"DELETE",path:a},l?.signal));return s.ok?L(void 0):w(s.error)},async eraseUserData(i){let l=await t.send("pets.eraseUserData",n({method:"DELETE",path:"/widget/v1/me"},i?.signal),{maxAttempts:1});return l.ok?L(void 0):w(l.error)}}}o(Dd,"createPetsRepositoryOver");function it(){let{runtime:e,userRef:t,activePet:n,scopeEpoch:r}=Ye(),i=useMemo(()=>yi(e.registry.services.authFor(t)),[e,t,r]),[l,a]=useState({repository:i,pets:[],loading:true,error:null}),s=l.repository===i?l:{pets:[],loading:true,error:null},c=useRef(0),d=useCallback(async()=>{let g=++c.current;a(y=>({...y,repository:i,loading:true,error:null,pets:y.repository===i?y.pets:[]}));let f=await i.list();g===c.current&&a(f.ok?{repository:i,pets:f.value,loading:false,error:null}:y=>({repository:i,pets:y.repository===i?y.pets:[],loading:false,error:f.error}));},[i]);useEffect(()=>(d(),()=>{c.current+=1;}),[d]);let p=useMemo(()=>n===null?null:s.pets.find(g=>g.petRef===n)??null,[n,s.pets]);return useMemo(()=>({pets:s.pets,activePet:p,loading:s.loading,error:s.error,refresh:d}),[s.pets,s.loading,s.error,p,d])}o(it,"useEverfurPets");var Me=Object.freeze(["pet","issues","reason","clinician","time","review","booked"]),mi=Object.freeze({petId:null,state:null,clinicianId:null,slot:null,holdExpiresAt:null,shareHealthRecords:false,idempotencyKey:null});function Pr(e,t={}){let n=Object.freeze({...mi,...t}),r=wr(0,e);return Object.freeze({index:r,draft:n,furthestIndex:r})}o(Pr,"initialTelevetBookingState");function Tn(e,t){return e==="pet"?t.ownedPetCount<=1:e==="issues"?t.withIssues!==true:false}o(Tn,"isSkipped");function En(e){return Me[e]}o(En,"stepAt");function wr(e,t){for(let n=e;n<Me.length;n+=1){let r=En(n);if(r&&!Tn(r,t))return n}return Me.length-1}o(wr,"nextVisible");function vi(e,t){for(let n=e;n>=0;n-=1){let r=En(n);if(r&&!Tn(r,t))return n}return null}o(vi,"previousVisible");function Ir(e,t){return vi(e.index-1,t)!==null}o(Ir,"hasPreviousStep");function Or(e,t,n){switch(t.type){case "patch":{let r={...e.draft,...t.patch};return ("petId"in t.patch&&t.patch.petId!==e.draft.petId||"state"in t.patch&&t.patch.state!==e.draft.state||"clinicianId"in t.patch&&t.patch.clinicianId!==e.draft.clinicianId)&&e.draft.slot?Object.freeze({...e,draft:Object.freeze({...r,slot:null,holdExpiresAt:null,idempotencyKey:null})}):Object.freeze({...e,draft:Object.freeze(r)})}case "next":{let r=wr(e.index+1,n);return Object.freeze({...e,index:r,furthestIndex:Math.max(e.furthestIndex,r)})}case "back":{if(En(e.index)==="booked")return e;let r=vi(e.index-1,n);return r===null?e:Object.freeze({...e,index:r})}case "goTo":{let r=Me.indexOf(t.step);if(r<0)return e;let i=Tn(t.step,n)?wr(r,n):r;return Object.freeze({...e,index:i,furthestIndex:Math.max(e.furthestIndex,i)})}default:return e}}o(Or,"televetBookingReducer");function Ar(e){return En(e.index)??"pet"}o(Ar,"currentStep");function It(e,t){let n=t.trim();return !!e.petId&&!!e.clinicianId&&!!e.slot&&me(e.state)&&n.length>0&&n.length<=_e}o(It,"canConfirm");function Br(e,t){if(!e.holdExpiresAt)return false;let n=Date.parse(e.holdExpiresAt);return Number.isNaN(n)?false:n<=t}o(Br,"isHoldExpired");function Dr(e){return `televet.book.${e}`}o(Dr,"televetBookingKey");function Fr(e,t,n){let r=n?.version?.trim()??"";return !e||!t||r.length===0?Object.freeze({}):Object.freeze({state_attested:true,cancellation_policy_version:r})}o(Fr,"attestation");function we(e){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}o(we,"parse");function Xe(e){let t=we(e);return t?t.toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"}):""}o(Xe,"formatClock");function Md(e){let t=we(e);return t?t.toLocaleDateString(void 0,{month:"long",day:"numeric"}):""}o(Md,"formatDate");var at=10;function st(e){let t=we(e);return t?new Intl.DateTimeFormat(void 0,{timeZoneName:"short"}).formatToParts(t).find(r=>r.type==="timeZoneName")?.value??"":""}o(st,"formatZone");function zd(e){let t=we(e);if(!t)return "";let n=new Date(t.getTime()+at*6e4).toISOString(),r=st(e),i=`${Xe(e)} - ${Xe(n)}`;return r&&r!==""?`${i} ${r}`:i}o(zd,"formatVisitRange");function gi(e){let t=Md(e),n=[Xe(e),st(e)].filter(Boolean).join(" ");return [t,n].filter(Boolean).join(", ")}o(gi,"formatWhen");function pe(e){let t=we(e);return t?[t.toLocaleDateString(void 0,{weekday:"short"}),gi(e)].filter(Boolean).join(", "):""}o(pe,"formatWhenWithDay");function bi(e){let t=we(e);if(!t)return "";let n=t.toLocaleDateString(void 0,{weekday:"short"}),r=t.toLocaleDateString(void 0,{year:"numeric",month:"long",day:"numeric"}),i=[Xe(e),st(e)].filter(Boolean).join(" ");return [n,r,i].filter(Boolean).join(", ")}o(bi,"formatRecordWhen");function kn(e){let t=we(e);return t?`${t.getFullYear()}-${t.getMonth()+1}-${t.getDate()}`:"unknown"}o(kn,"localDayKey");function hi(e){let t=we(e);return t===null?"":t.toLocaleDateString(void 0,{month:"long"})}o(hi,"formatMonthLabel");function Ti(e){let t=we(e);return t===null?"":t.toLocaleDateString(void 0,{weekday:"long",month:"long",day:"numeric"})}o(Ti,"formatFullDayLabel");function ki(e){let{draft:t,reasonText:n,book:r,stateAttested:i,termsAttested:l,cancellationPolicy:a,triage:s,goTo:c,setFailure:d,setRateLimitMessage:p,setEmergency:g,setBookedConsult:f,onBooked:y}=e,E=useCallback(P=>{if(!(!It(t,n)||!t.idempotencyKey)){if(Br(t,Date.now())){d("expired"),c("time");return}d(null),g(null),r.mutate({pet_id:t.petId,clinician_id:t.clinicianId,slot_id:t.slot.slotId,state:t.state,reason_text:n.trim(),species:null,media_refs:[],emergency_acknowledged:P||s.isAcknowledged(n),share_health_records:t.shareHealthRecords,...Fr(i,l,a)},t.idempotencyKey,{onSuccess:o(h=>{f(h),c("booked"),y?.(h);},"onSuccess"),onError:o(h=>{let T=xe(h);if(T.kind==="emergency"){g(T.categories);return}if(T.kind==="rate_limited"){p(T.message),d("rate_limited");return}d(T.kind==="not_entitled"?"not_entitled":T.kind==="slot_taken"?"taken":T.kind==="clinician_unavailable"?"clinician_unavailable":T.kind==="unavailable"?"unavailable":"failed"),T.kind==="slot_taken"&&c("time");},"onError")});}},[t,n,r,i,l,a,s,c,d,p,g,f,y]),_=useCallback(()=>E(false),[E]);return {submitBooking:E,confirm:_}}o(ki,"useBookingSubmit");function Vr(e){let[t,n]=useState(false),[r,i]=useState(false),[l,a]=useState(null),s=useRef(null),c=useRef(null),d=useRef(true);useEffect(()=>(d.current=true,()=>{d.current=false,c.current?.abort(),c.current=null;}),[]);let p=useCallback(()=>{c.current?.abort(),c.current=null,d.current&&i(false);},[]),g=useCallback(async P=>{if(c.current!==null)return false;let h=P.trim();if(l!==null&&l===h||!e)return true;let T=s.current!==null&&s.current.reason===h?s.current.emergency:null;if(T===null){let R=new AbortController;c.current=R,i(true);try{let O=await e(h,R.signal);if(R.signal.aborted||!d.current)return !1;O===null?T=!1:(T=O.isEmergency||O.fallback,s.current=Object.freeze({reason:h,emergency:T}));}catch{if(R.signal.aborted||!d.current)return false;T=false;}finally{c.current===R&&(c.current=null,d.current&&i(false));}}return T===true?(n(true),false):true},[l,e]),f=useCallback(P=>{a(P.trim()),n(false);},[]),y=useCallback(()=>n(false),[]),E=useCallback(()=>{p(),s.current=null,a(null),n(false);},[p]),_=useCallback(P=>l!==null&&l===P.trim(),[l]);return {open:t,checking:r,check:g,acknowledge:f,close:y,cancel:p,reset:E,isAcknowledged:_}}o(Vr,"useEarlyTriage");function qd(e){let t=e?.trim().toUpperCase()??"";return /^[A-Z]{2}$/.test(t)?t:null}o(qd,"normalizeStateCode");function Mr(e,t){let n=qd(e),[r,i]=useState(()=>Object.freeze({})),l=useRef(0),a=useRef(null),s=useCallback(c=>{if(!t||n===null)return null;let d=`${n}:${c}`;a.current!==null&&a.current!==d&&(l.current+=1),a.current=d;let p=r[d]??"idle";return {joined:p==="joined",pending:p==="pending",failed:p==="failed",onPress:o(()=>{if(p==="pending"||p==="joined")return;let g=l.current+=1;i(f=>Object.freeze({...f,[d]:"pending"})),(async()=>{let f=false;try{f=await t(n,c);}catch{f=false;}l.current===g&&i(y=>Object.freeze({...y,[d]:f?"joined":"failed"}));})();},"onPress")}},[n,r,t]);return useMemo(()=>({actionFor:s}),[s])}o(Mr,"useStateInterest");function zr(e){return Object.freeze(e==="dark"?{title:u.noCliniciansTitle,message:u.noCliniciansBody,retryLabel:u.noCliniciansRetryCta,interestReason:null}:{title:u.noCliniciansTitle,message:u.noCliniciansRegionBody,retryLabel:null,interestReason:"no_licensed_vet"})}o(zr,"televetEmptyRosterView");function jr(e){return e?"roster":"dark"}o(jr,"televetEmptyRosterCause");var Ot=Object.freeze({failed:0,refused:Object.freeze({size:0,type:0,unreadable:0})});function Hr(e){let{failed:t,refused:n}=e;return t<=0&&n.size<=0&&n.type<=0&&n.unreadable<=0}o(Hr,"isMediaShortfallEmpty");function Ur(e){let t=o(r=>Number.isFinite(r)&&r>0?Math.floor(r):0,"count"),n=u.media;return [{n:t(e.failed),one:n.droppedTemplate,many:n.droppedPluralTemplate},{n:t(e.refused.size),one:n.refusedSizeTemplate,many:n.refusedSizePluralTemplate},{n:t(e.refused.type),one:n.refusedTypeTemplate,many:n.refusedTypePluralTemplate},{n:t(e.refused.unreadable),one:n.refusedUnreadableTemplate,many:n.refusedUnreadablePluralTemplate}].filter(r=>r.n>0).map(r=>ne(r.n===1?r.one:r.many,{n:String(r.n)}))}o(Ur,"televetMediaShortfallLines");function Cn(e){let t=Number.isFinite(e)&&e>0?Math.floor(e):0;return t===0?Ot:Object.freeze({failed:t,refused:Ot.refused})}o(Cn,"mediaShortfallFromUnsentPicks");function $d(e,t){let n=Cn(t);return n.failed===0?e:Object.freeze({failed:e.failed+n.failed,refused:e.refused})}o($d,"withUnsentPicks");var X=44;function V(){let e=S();return useMemo(()=>Xd(e),[e])}o(V,"useBookingStyles");function A({label:e,onPress:t,kind:n="primary",disabled:r=false,loading:i=false,fullWidth:l=true,accessibilityLabel:a,testID:s,style:c}){let d=V(),p=S(),g=r||i;return jsxs(Pressable,{onPress:t,disabled:g,accessibilityRole:"button",accessibilityLabel:a??e,accessibilityState:{disabled:g,busy:i},style:[d.button,n==="primary"?d.buttonPrimary:n==="danger"?d.buttonDanger:d.buttonSecondary,l?d.buttonFull:d.buttonAuto,g?d.buttonDisabled:null,c],testID:s,children:[i?jsx(ActivityIndicator,{size:"small",color:n==="secondary"?p.color.brand:p.color.onPrimary}):null,jsx(v,{tier:"control",style:n==="secondary"?d.buttonSecondaryLabel:d.buttonPrimaryLabel,children:e})]})}o(A,"TelevetButton");function F({title:e,message:t,actionLabel:n,onAction:r,testID:i}){let l=V(),a=typeof n=="string"&&n.length>0&&typeof r=="function";return jsxs(View,{style:l.stateCard,testID:i,children:[jsx(v,{style:l.stateTitle,accessibilityRole:"header",children:e}),t?jsx(v,{style:l.stateMessage,children:t}):null,a?jsx(A,{label:n,onPress:r,kind:"secondary",fullWidth:false}):null]})}o(F,"TelevetStateCard");function ee({height:e,width:t="100%",testID:n}){let r=V();return jsx(View,{style:[r.skeleton,{height:e,width:t}],testID:n,accessibilityElementsHidden:true,importantForAccessibility:"no"})}o(ee,"TelevetSkeletonBlock");function $({message:e,assertive:t=false,testID:n,style:r}){let i=V();return jsx(v,{style:[i.failure,r],accessibilityLiveRegion:t?"assertive":"polite",testID:n,children:e})}o($,"TelevetFailureLine");function Xd(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return StyleSheet.create({screen:{flex:1,paddingHorizontal:n.xl,gap:n.md},stepFill:{flex:1,minHeight:0,gap:n.md},list:{gap:n.sm},button:{minHeight:X,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:n.sm,paddingHorizontal:n.xl,paddingVertical:n.sm,borderRadius:r.pill},buttonFull:{alignSelf:"stretch"},buttonAuto:{alignSelf:"flex-start",minWidth:X},buttonPrimary:{backgroundColor:t.primary},buttonSecondary:{borderWidth:1,borderColor:t.brandBorder,backgroundColor:"transparent"},buttonDanger:{backgroundColor:t.danger},buttonDisabled:{opacity:.45},buttonPrimaryLabel:{...b(e,"medium"),color:t.onPrimary,fontSize:l.body,lineHeight:l.body*a.snug},buttonSecondaryLabel:{...b(e,"medium"),color:t.brand,fontSize:l.body,lineHeight:l.body*a.snug},stateCard:{minHeight:140,justifyContent:"center",gap:n.sm,padding:n.lg,borderRadius:r.lg,borderWidth:1,borderColor:t.brandBorder},stateTitle:{...b(e,"medium"),color:t.brand,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},stateMessage:{...b(e,"regular"),color:t.text.metaCool,fontSize:l.body,lineHeight:l.body*a.normal},skeleton:{borderRadius:r.md,backgroundColor:t.skeleton},failure:{...b(e,"regular"),color:t.danger,fontSize:l.caption,lineHeight:l.caption*a.normal},stepTitle:{...b(e,"bold"),color:t.brand,fontSize:l.heading,lineHeight:l.heading*a.snug},stepHelp:{...b(e,"regular"),color:t.text.metaCool,fontSize:l.body,lineHeight:l.body*a.normal},divider:{height:1,backgroundColor:t.brandBorder},scrollRoot:{flex:1,minHeight:0},scrollBody:{flex:1},scrollFooter:{paddingTop:n.md,paddingBottom:n.lg}})}o(Xd,"makeBookingStyles");function At({petName:e,primaryVet:t,onFindEmergencyVet:n}){let r=S(),i=useMemo(()=>wi(r),[r]),l=e?.trim()??"";return jsxs(Fragment,{children:[n?jsx(Pressable,{accessibilityRole:"button",accessibilityLabel:u.emergency.exitFindErTitle,onPress:()=>{Jt(n);},style:i.vetCard,testID:"televet-emergency-find-vet",children:jsx(View,{style:i.vetRow,children:jsx(v,{tier:"control",style:i.vetTitle,children:u.emergency.exitFindErTitle})})}):null,t!=null&&l.length>0?jsx(Qd,{petName:l,vet:t}):null]})}o(At,"TelevetEmergencyExits");function Qd({petName:e,vet:t}){let n=S(),r=useMemo(()=>wi(n),[n]),i=ne(u.emergency.exitPrimaryVetTitle,{petName:e}),l=t.detail?.trim()??"",a=jsx(View,{style:r.vetRow,children:jsxs(View,{style:r.vetText,children:[jsx(v,{tier:"control",style:r.vetTitle,children:i}),l.length>0?jsx(v,{style:r.vetDetail,children:l}):null]})});if(!t.dial)return jsx(View,{style:r.vetCard,testID:"televet-early-emergency-primary-vet",children:a});let s=t.dial;return jsx(Pressable,{accessibilityRole:"link",accessibilityLabel:l.length>0?`${i}, ${l}`:i,accessibilityHint:u.emergency.startCallHint,onPress:()=>{Jt(s);},style:r.vetCard,testID:"televet-early-emergency-primary-vet-call",children:a})}o(Qd,"PrimaryVetCard");function wi(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return {vetCard:{minHeight:X,justifyContent:"center",padding:n.lg,borderRadius:r.lg,borderWidth:1,borderColor:t.brandBorder,backgroundColor:t.surface},vetRow:{flexDirection:"row",alignItems:"center",gap:n.sm},vetText:{flexShrink:1,gap:n.xs},vetTitle:{...b(e,"medium"),color:t.text.primary,fontSize:l.body,lineHeight:l.body*a.normal},vetDetail:{...b(e,"regular"),color:t.text.metaCool,fontSize:l.caption,lineHeight:l.caption*a.normal}}}o(wi,"makeExitStyles");function Oi({petName:e,primaryVet:t,onFindEmergencyVet:n,onContinue:r}){let i=S(),l=V(),a=useMemo(()=>Kr(i),[i]);return jsxs(View,{style:[l.stepFill,a.emergencyPanel],testID:"televet-early-emergency",children:[jsx(v,{tier:"heading",accessibilityRole:"header",accessibilityLiveRegion:"assertive",style:a.emergencyTitle,children:u.emergency.bannerTitle}),jsx(v,{style:a.emergencyLede,children:u.emergency.lede}),jsx(At,{petName:e,primaryVet:t,onFindEmergencyVet:n}),jsx(A,{label:u.emergency.keepBookingCta,kind:"secondary",onPress:r,testID:"televet-early-emergency-continue"})]})}o(Oi,"TelevetEarlyEmergency");function qr({action:e,testIDPrefix:t}){let n=S(),r=useMemo(()=>Kr(n),[n]);return e===null?null:e.joined?jsxs(View,{testID:`${t}-joined`,style:r.interestFeedback,children:[jsx(v,{tier:"control",accessibilityRole:"header",children:u.stateInterest.joinedTitle}),jsx(v,{style:r.interestBody,children:u.stateInterest.joinedBody})]}):jsxs(View,{testID:t,style:r.interestAction,children:[jsx(A,{label:u.stateInterest.cta,kind:"secondary",loading:e.pending,disabled:e.pending,onPress:e.onPress,testID:`${t}-submit`}),e.failed?jsx($,{message:u.stateInterest.failed,testID:`${t}-error`}):null]})}o(qr,"TelevetStateInterestAction");function Ai({cause:e,onRetry:t,stateInterest:n=null}){let r=zr(e);return jsxs(View,{testID:"televet-clinicians-empty",children:[jsx(F,{title:r.title,message:r.message,...r.retryLabel!==null&&t?{actionLabel:r.retryLabel,onAction:t}:{}}),r.interestReason!==null?jsx(qr,{action:n??null,testIDPrefix:"televet-state-interest-no-licensed-vet"}):null]})}o(Ai,"TelevetClinicianEmptyState");function tc({onCheckAvailability:e}){return jsx($r,{...e?{onCheckAvailability:e}:{}})}o(tc,"TelevetEntitlementInterestState");function $r({onCheckAvailability:e,renderUnavailable:t}){let n=V();return jsxs(View,{testID:"televet-booking-not-entitled",style:n.list,children:[t?t():jsx(F,{title:u.bookingPausedTitle}),e?jsx(A,{label:u.checkAvailabilityCta,kind:"secondary",onPress:e,testID:"televet-check-state-availability"}):null]})}o($r,"EntitlementPausedState");function Bt({shortfall:e,testIDPrefix:t}){let n=S(),r=useMemo(()=>Kr(n),[n]);if(Hr(e))return null;let i=Ur(e);return i.length===0?null:jsx(View,{style:r.mediaNotice,testID:`${t}-media-notice`,children:i.map((l,a)=>jsx(v,{style:r.mediaLine,accessibilityLiveRegion:"polite",testID:`${t}-media-line-${String(a)}`,children:l},l))})}o(Bt,"TelevetMediaDropNotice");function Kr(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return {emergencyPanel:{gap:n.sm,padding:n.lg,borderRadius:r.lg,borderWidth:2,borderColor:t.danger,backgroundColor:t.surface},emergencyTitle:{...b(e,"medium"),color:t.danger,fontSize:l.heading,lineHeight:l.heading*a.snug},emergencyLede:{...b(e,"regular"),color:t.text.primary,fontSize:l.subtitle,lineHeight:l.subtitle*a.normal},interestAction:{gap:n.sm,marginTop:n.sm},interestFeedback:{gap:n.xs,marginTop:n.sm},interestBody:{...b(e,"regular"),color:t.text.metaCool},mediaNotice:{gap:n.xs},mediaLine:{...b(e,"regular"),color:t.text.metaCool,fontSize:l.caption,lineHeight:l.caption*a.normal}}}o(Kr,"makeEdgeStyles");function Bi(e){let{surfaceUnavailable:t,notEntitled:n,policyBlocked:r,triageOpen:i,step:l}=e;return t||n&&l!=="clinician"||r?true:l==="reason"&&i}o(Bi,"televetBookingGateApplies");function Di({state:e,petName:t,primaryVet:n,onFindEmergencyVet:r,stateInterest:i=null,onCheckAvailability:l,onAcknowledgeEmergency:a,renderUnavailable:s}){let c=V(),{surfaceUnavailable:d,notEntitled:p,policyBlocked:g,triageOpen:f,step:y}=e;return d?jsx(View,{style:c.stepFill,testID:"televet-booking-unavailable",children:s?s():jsx(F,{title:u.bookingPausedTitle})}):p&&y!=="clinician"?jsx($r,{...l?{onCheckAvailability:l}:{},...s?{renderUnavailable:s}:{}}):g?jsxs(View,{testID:"televet-booking-state-blocked",children:[jsx(F,{title:u.stateBlockedTitle}),jsx(qr,{action:i,testIDPrefix:"televet-state-interest-state-blocked"})]}):y==="reason"&&f?jsx(Oi,{...t!==void 0?{petName:t}:{},...n?{primaryVet:n}:{},onFindEmergencyVet:r,onContinue:a}):null}o(Di,"TelevetBookingGate");var Ii=false;function nc(){if(!Ii){Ii=true;try{globalThis.console?.warn?.("[everfur] The vet booking has no US state for this member, so it cannot list vets. Pass the member's two-letter state as `usState` (on EverfurTelevet, VetVisitButton or EverfurChat as `vetUsState`), or pass `onRequestLocation` so the booking can ask your app to resolve one. The SDK never reads a device location itself.");}catch{}}}o(nc,"warnNoStateSeamOnce");function Fi(e){return e.noState?true:e.isPending||e.isError?false:e.isEmpty||e.notEntitled}o(Fi,"televetClinicianOutcomeApplies");function Ni({state:e,cause:t,locationStatus:n,onRequestLocation:r,onRetry:i,stateInterest:l=null,renderUnavailable:a}){let s=e.noState&&!r;return useEffect(()=>{s&&nc();},[s]),e.noState?jsx(View,{testID:"televet-booking-location-unknown",children:jsx(F,{title:n==="blocked"?u.locationBlockedTitle:n==="unavailable"?u.locationUnavailableTitle:u.locationUnknownTitle,message:n==="blocked"?u.locationBlockedBody:n==="unavailable"?u.locationUnavailableBody:r?u.locationUnknownBody:void 0,actionLabel:r?n==="blocked"?u.locationBlockedCta:u.locationUnknownCta:void 0,onAction:r})}):e.isEmpty?jsx(Ai,{cause:t,onRetry:i,stateInterest:l}):jsx($r,{...a?{renderUnavailable:a}:{}})}o(Ni,"TelevetClinicianOutcome");function Li(e){return `televet-consult-${e}`}o(Li,"televetConsultCalendarKey");function Gr({consult:e,petName:t,onDone:n,onAddToCalendar:r,canJoinInApp:i=false}){let l=S(),a=V(),s=useMemo(()=>ic(l),[l]),[c,d]=useState("idle"),p=o(async()=>{if(!r)return;d("saving");let f=new Date(e.scheduledAt);if(Number.isNaN(f.getTime())){d("failed");return}let y=await Xt(r,{key:Li(e.consultId),title:u.visit.title,startDate:f,endDate:new Date(f.getTime()+at*6e4),alarmOffsetMinutes:-30});d(y.ok&&y.value===true?"saved":"failed");},"addToCalendar"),g=[u.booked.remindPromise,ne(u.booked.summaryPromise,{pet:t??""}),...i?[u.booked.joinPromise]:[]];return Se()?jsxs(View,{style:s.screen,testID:"televet-booked",children:[jsx(View,{style:s.header,children:jsx(A,{label:u.doneCta,kind:"secondary",fullWidth:false,onPress:n,testID:"televet-booked-done"})}),jsx(View,{style:s.avatar,accessibilityElementsHidden:true,importantForAccessibility:"no"}),jsx(v,{tier:"heading",style:s.title,accessibilityRole:"header",children:u.bookedTitle}),jsx(v,{style:s.when,children:pe(e.scheduledAt)}),jsx(View,{style:s.steps,testID:"televet-booked-steps",children:g.map((f,y)=>jsxs(View,{style:s.step,children:[jsx(View,{style:s.stepNumber,accessibilityElementsHidden:true,importantForAccessibility:"no",children:jsx(v,{tier:"badge",style:s.stepNumberText,children:String(y+1)})}),jsx(v,{style:s.stepText,children:f.trim()})]},f))}),jsxs(View,{style:s.actions,children:[r?jsx(A,{label:c==="saved"?u.booked.calendarAdded:u.addToCalendarCta,kind:"primary",loading:c==="saving",disabled:c==="saving"||c==="saved",onPress:()=>{p();},testID:"televet-booked-calendar"}):null,c==="failed"?jsx(v,{style:[a.failure,s.calendarNote],accessibilityLiveRegion:"polite",testID:"televet-booked-calendar-failed",children:u.booked.calendarFailedBody}):null,jsx(A,{label:t?ne(u.booked.backToPet,{pet:t}):u.doneCta,kind:"secondary",onPress:n,testID:"televet-booked-back"})]})]}):jsx(View,{style:s.screen,testID:"televet-booked-copy-unapproved"})}o(Gr,"TelevetBookedScreen");function ic(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return StyleSheet.create({screen:{flex:1,paddingHorizontal:n.xl,gap:n.md},header:{alignItems:"flex-end",paddingBottom:n.lg},avatar:{alignSelf:"center",width:120,height:120,borderRadius:60,backgroundColor:t.surfaceSubtle,borderWidth:2,borderColor:t.success},title:{textAlign:"center",...b(e,"bold"),color:t.brand,fontSize:l.verdict,lineHeight:l.verdict*a.tight,letterSpacing:-0.7,paddingTop:n.lg},when:{textAlign:"center",...b(e,"regular"),color:t.text.metaCool,fontSize:l.subtitle,lineHeight:l.subtitle*a.normal},steps:{marginTop:n.xl,padding:n.lg,borderRadius:r.lg,borderWidth:1,borderColor:t.brandBorder,gap:n.lg},step:{flexDirection:"row",alignItems:"flex-start",gap:n.md},stepNumber:{width:26,height:26,borderRadius:13,backgroundColor:t.primary,alignItems:"center",justifyContent:"center"},stepNumberText:{...b(e,"medium"),color:t.onPrimary,fontSize:l.caption,lineHeight:l.caption,includeFontPadding:false},stepText:{flex:1,...b(e,"regular"),color:t.brand,fontSize:l.body,lineHeight:l.body*a.normal},actions:{marginTop:"auto",paddingBottom:n.xl,gap:n.md},calendarNote:{textAlign:"center"}})}o(ic,"makeStyles");function Xr({step:e,furthestIndex:t,title:n,canGoBack:r,isDirty:i,onBack:l,onClose:a,onConfirmDiscard:s}){let c=S(),d=useMemo(()=>uc(c),[c]),p=useMemo(()=>()=>{if(!i){a();return}let T={title:u.chrome.discardTitle,body:u.chrome.discardBody,confirmLabel:u.chrome.discardConfirmCta,keepLabel:u.chrome.discardKeepCta};if(s){Promise.resolve(s(T)).then(R=>{R&&a();},()=>{});return}Alert.alert(T.title,T.body,[{text:T.keepLabel,style:"cancel"},{text:T.confirmLabel,style:"destructive",onPress:a}]);},[i,a,s]),g=useMemo(()=>()=>r?(l(),true):(p(),true),[r,l,p]);useEffect(()=>{let T=BackHandler.addEventListener("hardwareBackPress",g);return ()=>{T.remove();}},[g]),rt(g);let f=Me.filter(T=>T!=="issues"),y=f.length,E=Me[t],_=E===void 0?0:Math.max(0,f.indexOf(E==="issues"?"reason":E)),h=e==="booked"?1:Math.min(1,(_+1)/y);return jsxs(View,{style:d.wrap,children:[jsxs(View,{style:d.bar,children:[jsx(View,{style:d.side,children:jsx(Pressable,{onPress:r?l:p,accessibilityRole:"button",accessibilityLabel:Rn,testID:"televet-booking-back",style:d.tap,children:jsx(View,{style:d.chevron,accessibilityElementsHidden:true,importantForAccessibility:"no"})})}),jsx(v,{tier:"heading",style:d.title,accessibilityRole:"header",children:n??u.navTitle}),jsx(View,{style:[d.side,d.sideRight],children:jsx(Pressable,{onPress:p,accessibilityRole:"button",accessibilityLabel:u.close,accessibilityHint:u.chrome.closeHint,testID:"televet-booking-close",style:d.tap,children:jsx(v,{tier:"control",style:d.close,children:u.close})})})]}),jsx(View,{style:d.railTrack,accessibilityElementsHidden:true,importantForAccessibility:"no-hide-descendants",children:jsx(View,{style:[d.railFill,{width:`${Math.round(h*100)}%`}],testID:"televet-booking-rail"})})]})}o(Xr,"TelevetBookingChrome");var Rn="Back";function uc(e){let{color:t,space:n,type:r}=e,{size:i,lineHeight:l}=r;return StyleSheet.create({wrap:{backgroundColor:t.surface},bar:{flexDirection:"row",alignItems:"center",paddingHorizontal:n.lg,minHeight:56},side:{minWidth:64,justifyContent:"center"},sideRight:{alignItems:"flex-end"},tap:{minHeight:X,minWidth:X,justifyContent:"center",paddingHorizontal:n.xs},chevron:{width:10,height:10,borderLeftWidth:2,borderBottomWidth:2,borderColor:t.brand,transform:[{rotate:"45deg"}]},title:{flex:1,textAlign:"center",...b(e,"medium"),color:t.brand,fontSize:i.subtitle,lineHeight:i.subtitle*l.normal},close:{...b(e,"medium"),color:t.brand,fontSize:i.subtitle,lineHeight:i.subtitle*l.normal},railTrack:{height:4,backgroundColor:t.surfaceSubtle},railFill:{height:4,backgroundColor:t.success}})}o(uc,"makeStyles");function zi(e){let t=[],n=pc(e.ageYears);n!==null&&t.push(`${String(n)} yr${n===1?"":"s"} old`);let r=e.weightKg;typeof r=="number"&&Number.isFinite(r)&&r>0&&t.push(`${String(Math.round(r))} kg`);let i=e.breed?.trim();return i&&t.push(i),t.join(" \xB7 ")}o(zi,"formatTelevetPetMetaLine");function pc(e){if(typeof e!="number"||!Number.isFinite(e))return null;let t=Math.floor(e);return t>=0?t:null}o(pc,"wholeYears");function Zr({media:e,onChange:t,onPickMedia:n}){let r=S(),i=useMemo(()=>Tc(r),[r]),l=nn-e.length,[a,s]=useState(false);if(!n)return null;let c=o(async()=>{if(!(a||l<=0)){s(true);try{let d=await Xt(n,l);if(!d.ok||d.value===null||d.value.length===0)return;let p=new Set(e.map(f=>f.uri)),g=d.value.filter(f=>typeof f?.uri=="string"&&f.uri.length>0&&!p.has(f.uri));if(g.length===0)return;t([...e,...g].slice(0,nn));}finally{s(false);}}},"pick");return jsxs(View,{style:i.row,children:[e.map((d,p)=>jsxs(View,{style:i.thumb,children:[jsx(Image,{source:{uri:d.uri},style:i.thumbImage,resizeMode:"cover"}),d.mimeType?.startsWith("video/")?jsx(View,{style:i.videoBadge,testID:`televet-intake-media-video-${String(p)}`,children:jsx(v,{tier:"badge",style:i.videoBadgeText,children:hc})}):null,jsx(Pressable,{onPress:()=>t(e.filter((g,f)=>f!==p)),accessibilityRole:"button",accessibilityLabel:u.removePhotoLabel,testID:`televet-intake-media-remove-${String(p)}`,style:i.remove,children:jsx(v,{tier:"control",style:i.removeGlyph,children:bc})})]},`${d.uri}-${String(p)}`)),l>0?jsx(Pressable,{onPress:()=>{c();},disabled:a,accessibilityRole:"button",accessibilityLabel:u.addPhotoCta,accessibilityState:{busy:a,disabled:a},testID:"televet-intake-add-media",style:[i.dropzone,a?i.dropzoneBusy:null],children:a?jsx(ActivityIndicator,{testID:"televet-intake-media-busy"}):jsx(v,{tier:"compact",style:i.dropzoneText,children:u.addPhotoCta})}):null]})}o(Zr,"TelevetIntakeMedia");var bc="\xD7",hc="\u25B6",_n=92;function Tc(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return StyleSheet.create({row:{flexDirection:"row",flexWrap:"wrap",gap:n.md,paddingTop:n.sm},thumb:{width:_n,height:_n,borderRadius:r.md,backgroundColor:t.surfaceSubtle},thumbImage:{width:"100%",height:"100%",borderRadius:r.md},videoBadge:{position:"absolute",left:6,bottom:6,paddingHorizontal:6,paddingVertical:2,borderRadius:r.sm,backgroundColor:t.shadow},videoBadgeText:{color:t.text.onBrand,fontSize:l.nano},remove:{position:"absolute",top:-8,right:-8,width:X-16,height:X-16,borderRadius:X/2,backgroundColor:t.text.metaCool,alignItems:"center",justifyContent:"center"},removeGlyph:{...b(e,"medium"),color:t.surface,fontSize:l.subtitle,lineHeight:l.subtitle,includeFontPadding:false},dropzone:{width:_n,height:_n,borderRadius:r.md,borderWidth:1,borderStyle:"dashed",borderColor:t.brandBorder,alignItems:"center",justifyContent:"center",paddingHorizontal:n.sm},dropzoneBusy:{opacity:.6},dropzoneText:{...b(e,"mono"),color:t.text.metaCool,fontSize:l.nano,lineHeight:l.nano*a.normal,letterSpacing:.3,textAlign:"center"}})}o(Tc,"makeStyles");function eo({slots:e,selectedDayKey:t,onSelectDay:n}){let r=S(),i=useMemo(()=>Rc(r),[r]),l=useMemo(()=>wn(e),[e]),a=l[0];return a===void 0?null:jsxs(View,{children:[jsx(v,{tier:"compact",style:i.month,testID:"televet-day-strip-month",children:hi(a.iso)}),jsx(ScrollView,{horizontal:true,showsHorizontalScrollIndicator:false,contentContainerStyle:i.strip,testID:"televet-day-strip",children:l.map(s=>{let c=s.key===t;return jsxs(Pressable,{onPress:()=>n(s),accessibilityRole:"button",accessibilityLabel:Ti(s.iso),accessibilityState:{selected:c},testID:`televet-day-${s.key}`,style:[i.day,c?i.daySelected:null],children:[jsx(v,{tier:"compact",style:[i.dayWeekday,c?i.dayTextSelected:null],children:s.weekday}),jsx(v,{tier:"compact",style:[i.dayNumber,c?i.dayTextSelected:null],children:s.dayNumber})]},s.key)})})]})}o(eo,"TelevetDayStrip");function wn(e){let t=new Map;for(let n of e){let r=kn(n.startsAt);if(t.has(r))continue;let i=new Date(n.startsAt);Number.isNaN(i.getTime())||t.set(r,Object.freeze({key:r,iso:n.startsAt,weekday:i.toLocaleDateString(void 0,{weekday:"short"}),dayNumber:String(i.getDate())}));}return Object.freeze([...t.values()])}o(wn,"televetDaysFromSlots");function Rc(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return StyleSheet.create({month:{textAlign:"center",...b(e,"medium"),color:t.brand,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug,paddingBottom:n.md},strip:{gap:n.sm,paddingHorizontal:n.xs},day:{width:52,minHeight:X,paddingVertical:n.md,borderRadius:r.md,borderWidth:1,borderColor:t.brandBorder,alignItems:"center",justifyContent:"center",gap:2},daySelected:{backgroundColor:t.primary,borderColor:t.primary},dayWeekday:{...b(e,"mono"),color:t.text.secondary,fontSize:l.tiny,lineHeight:l.tiny*a.tight},dayNumber:{...b(e,"medium"),color:t.brand,fontSize:l.heading,lineHeight:l.heading*a.tight},dayTextSelected:{color:t.onPrimary}})}o(Rc,"makeStyles");function Ft({slots:e,busySlotId:t,onPick:n,ListHeaderComponent:r,rowTestIdPrefix:i="televet-slot",testID:l="televet-slot-list"}){let a=S(),s=useMemo(()=>Oc(a),[a]),c=useMemo(()=>wn(e),[e]),[d,p]=useState(null),g=d??c[0]?.key??null,f=useMemo(()=>g?e.filter(h=>kn(h.startsAt)===g):[],[e,g]),y=r,E=useMemo(()=>f.map(h=>st(h.startsAt)),[f]),_=useMemo(()=>new Set(E.filter(h=>h.length>0)).size>1,[E]),P=f[0];return jsxs(View,{style:s.root,testID:l,children:[y?jsx(y,{}):null,jsx(eo,{slots:e,selectedDayKey:g,onSelectDay:h=>p(h.key)}),P&&!_?jsx(v,{tier:"compact",style:s.zone,testID:"televet-slot-zone",children:st(P.startsAt)}):null,jsx(ScrollView,{style:s.gridScroll,contentContainerStyle:s.grid,showsVerticalScrollIndicator:false,children:f.map((h,T)=>{let R=t===h.slotId,O=t!==null,C=_?E[T]??"":"";return jsxs(Pressable,{onPress:()=>n(h),disabled:O,accessibilityRole:"button",accessibilityLabel:[Xe(h.startsAt),C].filter(q=>q.length>0).join(" "),accessibilityState:{disabled:O,busy:R},testID:`${i}-${h.slotId}`,style:[s.chip,R?s.chipBusy:null,O&&!R?s.chipDisabled:null],children:[jsx(v,{tier:"compact",style:[s.chipLabel,R?s.chipLabelBusy:null],children:Xe(h.startsAt)}),C.length>0?jsx(v,{tier:"compact",style:[s.chipZone,R?s.chipLabelBusy:null],testID:`${i}-${h.slotId}-zone`,children:C}):null]},h.slotId)})})]})}o(Ft,"TelevetSlotPicker");function Oc(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return StyleSheet.create({root:{flex:1,minHeight:0},gridScroll:{flex:1},zone:{textAlign:"center",...b(e,"mono"),color:t.text.muted,fontSize:l.tiny,lineHeight:l.tiny*a.normal,letterSpacing:.4,paddingVertical:n.md},grid:{flexDirection:"row",flexWrap:"wrap",gap:n.md,paddingBottom:n.xl},chip:{minWidth:96,flexGrow:1,flexBasis:"28%",minHeight:48,borderRadius:r.pill,borderWidth:1,borderColor:t.brandBorder,alignItems:"center",justifyContent:"center",paddingHorizontal:n.md},chipBusy:{backgroundColor:t.primary,borderColor:t.primary},chipDisabled:{opacity:.45},chipLabel:{...b(e,"regular"),color:t.brand,fontSize:l.subtitle,lineHeight:l.subtitle*a.tight},chipLabelBusy:{color:t.onPrimary},chipZone:{...b(e,"mono"),color:t.text.muted,fontSize:l.tiny,lineHeight:l.tiny*a.normal,letterSpacing:.4}})}o(Oc,"makeStyles");function et({label:e,value:t,last:n=false,testID:r}){let i=S(),l=useMemo(()=>oo(i),[i]);return jsxs(View,{style:[l.row,n?l.rowLast:null],testID:r,children:[jsx(v,{style:l.rowLabel,children:e}),jsx(v,{style:l.rowValue,children:t})]})}o(et,"TelevetSummaryRow");function Nt({label:e,checked:t,onToggle:n,testID:r}){let i=S(),l=useMemo(()=>oo(i),[i]);return jsxs(Pressable,{onPress:()=>n(!t),accessibilityRole:"checkbox",accessibilityLabel:e,accessibilityState:{checked:t},testID:r,style:l.consent,children:[jsx(View,{style:[l.box,t?l.boxChecked:null],children:t?jsx(v,{tier:"badge",style:l.tick,children:Dc}):null}),jsx(v,{style:l.consentLabel,children:e})]})}o(Nt,"TelevetConsentCheckbox");var Dc="\u2713";function ro({children:e,testID:t}){let n=S(),r=useMemo(()=>oo(n),[n]);return jsx(View,{style:r.card,testID:t,children:e})}o(ro,"TelevetSummaryCard");function oo(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return StyleSheet.create({card:{borderRadius:r.lg,borderWidth:1,borderColor:t.brandBorder,paddingHorizontal:n.lg},row:{flexDirection:"row",alignItems:"flex-start",justifyContent:"space-between",gap:n.lg,paddingVertical:n.lg,borderBottomWidth:1,borderBottomColor:t.brandBorder},rowLast:{borderBottomWidth:0},rowLabel:{...b(e,"regular"),color:t.brand,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},rowValue:{flexShrink:1,textAlign:"right",...b(e,"medium"),color:t.brand,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},consent:{flexDirection:"row",alignItems:"flex-start",gap:n.md,minHeight:X,padding:n.lg,borderRadius:r.md,backgroundColor:t.surfaceSubtle},box:{width:22,height:22,borderRadius:r.xs,borderWidth:1.5,borderColor:t.brand,backgroundColor:t.surface,alignItems:"center",justifyContent:"center"},boxChecked:{backgroundColor:t.primary,borderColor:t.primary},tick:{...b(e,"bold"),color:t.onPrimary,fontSize:l.caption,lineHeight:l.caption,includeFontPadding:false},consentLabel:{flex:1,...b(e,"regular"),color:t.text.metaCool,fontSize:l.body,lineHeight:l.body*a.normal}})}o(oo,"makeStyles");function lo({when:e,clinician:t,petName:n,reason:r,shareRecords:i,onToggleShare:l,stateCode:a,stateAttested:s,onToggleStateAttest:c,cancellationTerms:d,termsAttested:p,onToggleTermsAttest:g,canConfirm:f,busy:y,failure:E,rateLimitMessage:_,onConfirm:P,emergency:h,onAcknowledgeEmergency:T,onSeeOtherVets:R,mediaShortfall:O=Ot,primaryVet:C,onFindEmergencyVet:q}){let D=V(),M=S(),N=useMemo(()=>He(M),[M]);return jsxs(View,{style:D.scrollRoot,testID:"televet-booking-review",children:[jsxs(ScrollView,{style:D.scrollBody,contentContainerStyle:D.list,keyboardShouldPersistTaps:"handled",showsVerticalScrollIndicator:false,testID:"televet-booking-review-scroll",children:[jsxs(ro,{testID:"televet-review-summary",children:[n?jsx(et,{label:u.summaryPet,value:n,testID:"televet-review-row-pet"}):null,t?jsx(et,{label:u.summaryVet,value:t,testID:"televet-review-row-vet"}):null,jsx(et,{label:u.summaryWhen,value:e,testID:"televet-review-row-when"}),jsx(et,{label:u.summaryLength,value:ne(u.summaryLengthTemplate,{n:String(at)}),testID:"televet-review-row-length"}),r?jsx(et,{label:u.summaryReason,value:r,last:true,testID:"televet-review-row-reason"}):null]}),jsx(Nt,{label:u.shareRecordsOff,checked:i,onToggle:l,testID:"televet-review-share-records"}),d?jsx(Nt,{label:d,checked:p,onToggle:g,testID:"televet-review-terms-attest"}):null,a?jsx(Nt,{label:ne(u.stateAttestTemplate,{state:a}),checked:s,onToggle:c,testID:"televet-review-state-attest"}):null,jsx(Bt,{shortfall:O,testIDPrefix:"televet-review"}),h?jsxs(View,{style:N.emergencyBanner,testID:"televet-review-emergency",children:[jsx(v,{tier:"heading",accessibilityRole:"header",accessibilityLiveRegion:"assertive",style:N.emergencyTitle,children:u.emergency.bannerTitle}),jsx(v,{style:N.emergencyLede,children:u.emergency.lede}),h.length>0?jsx(v,{style:N.emergencyLede,testID:"televet-review-emergency-categories",children:h.join(", ")}):null,jsx(At,{petName:n,primaryVet:C,onFindEmergencyVet:q}),jsx(A,{label:u.emergency.keepBookingCta,kind:"secondary",loading:y,disabled:y,onPress:T,testID:"televet-review-emergency-ack"})]}):null,E==="failed"?jsx($,{message:u.confirmFailed}):null,E==="clinician_unavailable"?jsxs(View,{style:D.list,testID:"televet-review-clinician-unavailable",children:[jsx($,{message:u.confirmFailed}),jsx(A,{label:u.seeOtherVetsCta,kind:"secondary",onPress:R,testID:"televet-review-see-other-vets"})]}):null,E==="rate_limited"&&_?jsx($,{message:_,testID:"televet-review-rate-limited"}):null,E==="rate_limited"&&!_?jsx($,{message:u.confirmFailed}):null,E==="not_entitled"?jsx($,{message:u.bookingPausedTitle,testID:"televet-review-not-entitled"}):null]}),h?null:jsx(View,{style:D.scrollFooter,children:jsx(A,{label:u.confirmCta,kind:"primary",loading:y,disabled:!f||y||!!a&&!s||!!d&&!p,onPress:P,testID:"televet-review-confirm"})})]})}o(lo,"ReviewStep");var Vc="\u25CB",Mc="+";function Ae(e,t){return t?e.find(r=>r.petRef===t||r.petId===t)?.name??null:null}o(Ae,"nameOf");function Gi({pets:e,isPending:t,isError:n,onRetry:r,selectedId:i,onSelect:l,onAddPet:a}){let s=V(),c=S(),d=useMemo(()=>He(c),[c]);return t?jsx(View,{style:s.list,testID:"televet-pets-loading",children:[0,1].map(p=>jsx(ee,{height:64},p))}):n?jsx(View,{testID:"televet-pets-error",children:jsx(F,{title:u.chrome.loadFailedTitle,actionLabel:u.chrome.retryCta,onAction:r})}):e.length===0?jsx(View,{testID:"televet-pets-empty",children:jsx(F,{title:u.chrome.noPetsTitle,actionLabel:u.addPetCta,onAction:a})}):jsxs(View,{style:s.stepFill,children:[jsx(v,{tier:"heading",style:s.stepTitle,accessibilityRole:"header",children:u.petSelectTitle}),jsxs(ScrollView,{contentContainerStyle:s.list,testID:"televet-pets",children:[e.map(p=>{let g=i===p.petRef,f=zi(p),y=p.name??"";return jsx(Ki,{name:y,meta:f,selected:g,onPress:()=>l(p.petRef),testID:`televet-pet-${p.petRef}`},p.petRef)}),a?jsx(Ki,{name:u.addPetCta,meta:"",selected:false,onPress:a,testID:"televet-pet-add",glyph:Mc}):null]}),jsx(View,{style:d.spacer})]})}o(Gi,"PetStep");function Ki({name:e,meta:t,selected:n,onPress:r,testID:i,glyph:l}){let a=S(),s=useMemo(()=>He(a),[a]);return jsxs(View,{style:[s.petRow,n?s.petRowSelected:null],children:[jsx(A,{label:e,onPress:r,kind:"secondary",accessibilityLabel:e,testID:i,style:s.petRowButton}),jsxs(View,{style:s.petRowText,pointerEvents:"none",children:[jsx(View,{style:s.petDisc,children:jsx(v,{tier:"compact",style:s.petDiscGlyph,children:l??Ji(e)})}),t?jsx(v,{tier:"compact",style:s.petRowMeta,children:t}):null]})]})}o(Ki,"PetRow");function Ji(e){let t=e.trim();return t.length===0?Vc:t.slice(0,1).toUpperCase()}o(Ji,"initialOf");function Xi({clinicians:e,isPending:t,isError:n,selectedId:r,onSelect:i,onRetry:l}){let a=V(),s=S(),c=useMemo(()=>He(s),[s]);if(t)return jsx(View,{style:a.list,testID:"televet-clinicians-loading",children:jsx(ee,{height:96})});if(n)return jsx(View,{testID:"televet-clinicians-error",children:jsx(F,{title:u.chrome.loadFailedTitle,actionLabel:u.chrome.retryCta,onAction:l})});if(e.length===0)return jsx(View,{testID:"televet-clinicians-empty",children:jsx(F,{title:u.noCliniciansTitle,message:u.noCliniciansBody,actionLabel:u.noCliniciansRetryCta,onAction:l})});let d=e.find(p=>p.clinicianId===r)??e[0];return d===void 0?null:jsxs(View,{style:a.list,testID:"televet-clinicians",children:[jsx(v,{tier:"heading",style:a.stepTitle,accessibilityRole:"header",children:u.yourVetTitle}),jsxs(View,{style:c.vetRow,children:[jsx(View,{style:c.vetAvatar,children:jsx(v,{tier:"heading",style:c.vetAvatarText,children:Ji(d.displayName)})}),jsxs(View,{style:c.vetIdentity,children:[jsx(v,{style:c.vetName,children:d.displayName}),d.credentials?jsx(v,{style:c.vetCredentials,children:d.credentials}):null,d.rating!==null&&d.ratingCount!==null?jsx(v,{tier:"compact",style:c.vetRating,testID:"televet-vet-rating",children:`\u2605 ${String(d.rating)} \xB7 ${String(d.ratingCount)} ${u.reviewsLabel}`}):null]})]}),d.bio?jsx(v,{style:c.vetBio,testID:"televet-vet-bio",children:d.bio}):null,jsx(View,{style:a.divider}),jsx(A,{label:u.continueCta,kind:"primary",onPress:()=>i(d.clinicianId),testID:`televet-clinician-${d.clinicianId}`})]})}o(Xi,"ClinicianStep");function Qi({slots:e,enabled:t,isPending:n,isError:r,busySlotId:i,failure:l,nextOpening:a,onPick:s,onRetry:c,onSeeOtherVets:d}){let p=V();return t?n?jsx(View,{style:p.list,testID:"televet-slots-loading",children:[0,1,2].map(g=>jsx(ee,{height:48},g))}):r?jsx(F,{title:u.slotsErrorTitle,actionLabel:u.retryCta,onAction:c,testID:"televet-slots-error"}):e.length===0?jsx(View,{testID:"televet-slots-empty",children:jsx(F,{title:u.noSlotsTitle,message:a?ne(u.nextOpeningTemplate,{when:pe(a.startsAt)}):void 0,actionLabel:a?u.seeOtherVetsCta:void 0,onAction:a?d:void 0})}):jsxs(View,{style:p.stepFill,testID:"televet-slots",children:[l==="expired"?jsx($,{message:u.holdExpired}):null,l==="taken"?jsx($,{message:u.slotTaken}):null,jsx(Ft,{slots:e,busySlotId:i,onPick:s})]}):jsx(View,{testID:"televet-slots-unavailable",children:jsx(F,{title:u.bookingPausedTitle})})}o(Qi,"SlotStep");function Zi({value:e,onChange:t,onNext:n,media:r,onChangeMedia:i,onPickMedia:l,checking:a=false}){let s=V(),c=S(),d=useMemo(()=>He(c),[c]),p=e.trim(),g=p.length>0&&p.length<=_e;return jsxs(View,{style:s.scrollRoot,testID:"televet-booking-reason",children:[jsxs(ScrollView,{style:s.scrollBody,contentContainerStyle:s.list,keyboardShouldPersistTaps:"handled",keyboardDismissMode:"interactive",showsVerticalScrollIndicator:false,testID:"televet-booking-reason-scroll",children:[jsx(v,{tier:"heading",style:s.stepTitle,accessibilityRole:"header",children:u.describeHeading}),jsx(v,{style:s.stepHelp,children:u.describeHelpLong}),jsx(Bl,{value:e,onChangeText:t,multiline:true,placeholder:u.reasonPlaceholder,placeholderTextColor:c.color.text.placeholder,style:d.reasonInput,testID:"televet-reason-input"}),p.length>_e?jsx($,{message:u.reasonTooLong}):null,jsx(Zr,{media:r,onChange:i,...l?{onPickMedia:l}:{}})]}),jsx(View,{style:s.scrollFooter,children:jsx(A,{label:u.continueCta,kind:"primary",disabled:!g,loading:a,onPress:n,testID:"televet-reason-next"})})]})}o(Zi,"ReasonStep");function He(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return StyleSheet.create({marker:{minHeight:1},spacer:{height:n.md},petRow:{gap:n.xs,paddingVertical:n.xs},petRowSelected:{opacity:1},petRowButton:{alignSelf:"stretch",justifyContent:"flex-start"},petRowText:{flexDirection:"row",alignItems:"center",gap:n.sm,paddingHorizontal:n.md},petDisc:{width:28,height:28,borderRadius:14,backgroundColor:t.surfaceSubtle,alignItems:"center",justifyContent:"center"},petDiscGlyph:{...b(e,"medium"),color:t.brand,fontSize:l.caption,lineHeight:l.caption},petRowMeta:{flexShrink:1,...b(e,"regular"),color:t.text.metaCool,fontSize:l.caption,lineHeight:l.caption*a.normal},vetRow:{flexDirection:"row",alignItems:"center",gap:n.md},vetAvatar:{width:64,height:64,borderRadius:32,backgroundColor:t.surfaceSubtle,alignItems:"center",justifyContent:"center"},vetAvatarText:{...b(e,"medium"),color:t.brand,fontSize:l.heading,lineHeight:l.heading},vetIdentity:{flex:1,gap:2},vetName:{...b(e,"medium"),color:t.brand,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},vetCredentials:{...b(e,"regular"),color:t.text.metaCool,fontSize:l.caption,lineHeight:l.caption*a.normal},vetRating:{...b(e,"regular"),color:t.text.secondary,fontSize:l.caption,lineHeight:l.caption*a.normal},vetBio:{...b(e,"regular"),color:t.brand,fontSize:l.body,lineHeight:l.body*a.normal},reasonInput:{minHeight:120,textAlignVertical:"top",borderWidth:1,borderColor:t.brandBorder,borderRadius:r.md,padding:n.md,...b(e,"regular"),color:t.text.primary,fontSize:l.body,lineHeight:l.body*a.normal},emergencyBanner:{gap:n.md,padding:n.lg,borderRadius:r.lg,borderWidth:1,borderColor:t.errorRed,backgroundColor:t.badgeBgCritical},emergencyTitle:{...b(e,"bold"),color:t.errorRed,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},emergencyLede:{...b(e,"regular"),color:t.text.primary,fontSize:l.body,lineHeight:l.body*a.normal}})}o(He,"makeLocalStyles");function so(e){let{petRef:t,usState:n,controller:r,onBooked:i,onExit:l,onAddPet:a,onPickMedia:s,onAddToCalendar:c,onConfirmDiscard:d,onRequestLocation:p,locationStatus:g="unknown",onTriageReason:f,onStateInterest:y,primaryVet:E,onFindEmergencyVet:_,canJoinInApp:P=false,renderUnavailable:h,style:T,testID:R}=nt(e,["onBooked","onExit","onAddPet","onRequestLocation","onFindEmergencyVet"]),O=V(),C=S(),q=useMemo(()=>He(C),[C]),D=ae(r),M=it(),N=M.pets,K=N.length,fe=useMemo(()=>({ownedPetCount:K}),[K]),[Q,oe]=useReducer((G,gt)=>Or(G,gt,fe),void 0,()=>Pr({ownedPetCount:0},{petId:t??null,state:n??null})),I=useCallback(G=>oe(G),[]),[ue,ke]=useState(""),[z,qe]=useState(null),[Wt,Bn]=useState(null),[qt,$t]=useState(null),[mt,ko]=useState(false),[Dn,Co]=useState(false),[So,ka]=useState([]),[Fn,Ca]=useState(null),{draft:B}=Q,le=Ar(Q),Ro=useRef(B.state);Ro.current!==B.state&&(Ro.current=B.state,mt&&ko(false),Dn&&Co(false));let Kt=or(B.state,D),_o=St(D),vt=lr(D),de=ir(B.state,D),tt=Rt(B.clinicianId,D),Sa=ar(D).data??null,Yt=_t(D),xo=sr(D),Ce=Vr(f??null),wo=Mr(B.state,y??null).actionFor("no_licensed_vet"),Nn=n??null;useEffect(()=>{Nn&&!B.state&&I({type:"patch",patch:{state:Nn}});},[Nn,B.state,I]),useEffect(()=>{t&&!B.petId&&I({type:"patch",patch:{petId:t}});},[t,B.petId,I]);let Ln=N.length===1?N[0]?.petRef??null:null;useEffect(()=>{Ln&&!B.petId&&I({type:"patch",patch:{petId:Ln}});},[Ln,B.petId,I]);let Po=useRef(le);Po.current=le;let Io=useRef(0);useEffect(()=>{K!==Io.current&&(Io.current=K,I({type:"goTo",step:Po.current}));},[K,I]);let Vn=de.data?.[0]?.clinicianId??null;useEffect(()=>{Vn&&!B.clinicianId&&I({type:"patch",patch:{clinicianId:Vn}});},[Vn,B.clinicianId,I]);let Ra=useCallback(G=>{qe(null),Yt.mutate(G.slotId,{onSuccess:o(gt=>{I({type:"patch",patch:{slot:G,holdExpiresAt:gt.expiresAt,idempotencyKey:Dr(G.slotId)}}),I({type:"next"});},"onSuccess"),onError:o(gt=>qe(xe(gt).kind==="unavailable"?"unavailable":"taken"),"onError")});},[Yt,I]),{submitBooking:_a,confirm:xa}=ki({draft:B,reasonText:ue,book:xo,stateAttested:mt,termsAttested:Dn,cancellationPolicy:_o.data??null,triage:Ce,goTo:useCallback(G=>I({type:"goTo",step:G}),[I]),setFailure:qe,setRateLimitMessage:Bn,setEmergency:$t,setBookedConsult:Ca,...i?{onBooked:i}:{}}),wa=Kt.enabled&&Kt.data!==null&&!Kt.data.wellnessAvailable,Oo=vt.enabled&&vt.data?.active===false||z==="not_entitled",Pa=vt.enabled&&vt.data!==null,Ia=jr(Pa),Ao=Cn(So.length),Oa=ue.trim().length>0||!!B.slot,Aa=D===null||z==="unavailable"||cr(vt)||cr(Kt),Bo={noState:!B.state,isPending:de.enabled&&de.isPending,isError:de.isError,isEmpty:(de.data?.length??0)===0,notEntitled:Oo},Ba=Fi(Bo),Do={surfaceUnavailable:Aa,notEntitled:Oo,policyBlocked:wa,triageOpen:Ce.open,step:le},Da=Bi(Do);return Se()?jsxs(View,{style:[O.screen,T],testID:R??"televet-booking",children:[jsx(Xr,{step:le,furthestIndex:Q.furthestIndex,canGoBack:(Ce.open||Ir(Q,fe))&&le!=="booked",isDirty:Oa,onBack:()=>{if(Ce.open){Ce.close();return}Ce.cancel(),I({type:"back"});},onClose:()=>l?.(),...d?{onConfirmDiscard:d}:{}}),Da?jsx(Di,{state:Do,petName:Ae(N,B.petId),...E?{primaryVet:E}:{},onFindEmergencyVet:_,stateInterest:wo,...y?{onCheckAvailability:o(()=>I({type:"goTo",step:"clinician"}),"onCheckAvailability")}:{},onAcknowledgeEmergency:()=>{Ce.acknowledge(ue),I({type:"next"});},...h?{renderUnavailable:h}:{}}):le==="time"?jsx(Qi,{slots:tt.data??[],enabled:tt.enabled,isPending:tt.enabled&&tt.isPending,isError:tt.isError,busySlotId:Yt.isPending?Yt.variables:null,failure:z,nextOpening:Sa,onPick:Ra,onRetry:()=>tt.refetch(),onSeeOtherVets:()=>I({type:"goTo",step:"clinician"})}):le==="review"?jsx(lo,{when:B.slot?pe(B.slot.startsAt):"",petName:Ae(N,B.petId),reason:ue.trim(),clinician:de.data?.find(G=>G.clinicianId===B.clinicianId)?.displayName??null,shareRecords:B.shareHealthRecords,stateCode:B.state,stateAttested:mt,onToggleStateAttest:ko,cancellationTerms:_o.data?.summary??null,termsAttested:Dn,onToggleTermsAttest:Co,onToggleShare:G=>I({type:"patch",patch:{shareHealthRecords:G}}),canConfirm:It(B,ue),busy:xo.isPending,failure:z,rateLimitMessage:Wt,onConfirm:xa,emergency:qt,onAcknowledgeEmergency:()=>_a(true),onSeeOtherVets:()=>I({type:"goTo",step:"clinician"}),mediaShortfall:Ao,primaryVet:E,onFindEmergencyVet:_}):le==="booked"?jsx(View,{style:O.stepFill,testID:"televet-booking-booked",children:Fn?jsxs(Fragment,{children:[jsx(Gr,{consult:Fn,petName:Ae(N,Fn.petId)??Ae(N,B.petId),onDone:()=>l?.(),canJoinInApp:P,...c?{onAddToCalendar:c}:{}}),jsx(Bt,{shortfall:Ao,testIDPrefix:"televet-booked"})]}):null}):le==="clinician"&&Ba?jsx(Ni,{state:Bo,cause:Ia,locationStatus:g,...p?{onRequestLocation:p}:{},onRetry:()=>de.refetch(),stateInterest:wo,...h?{renderUnavailable:h}:{}}):le==="clinician"?jsx(Xi,{clinicians:de.data??[],isPending:de.enabled&&de.isPending,isError:de.isError,selectedId:B.clinicianId,onRetry:()=>de.refetch(),onSelect:G=>{I({type:"patch",patch:{clinicianId:G}}),I({type:"next"});}}):le==="reason"?jsx(Zi,{value:ue,onChange:ke,media:So,onChangeMedia:ka,...s?{onPickMedia:s}:{},checking:Ce.checking,onNext:()=>{Ce.check(ue).then(G=>{G&&I({type:"next"});});}}):le==="pet"?jsx(Gi,{pets:N,isPending:M.loading,isError:M.error!==null,onRetry:()=>{M.refresh();},onAddPet:a,selectedId:B.petId,onSelect:G=>{I({type:"patch",patch:{petId:G}}),I({type:"next"});}}):jsx(View,{style:q.marker,testID:`televet-booking-step-${le}`})]}):jsx(View,{style:[O.screen,T],testID:R??"televet-booking",children:jsx(View,{style:O.stepFill,testID:"televet-booking-copy-unapproved",children:h?h():null})})}o(so,"EverfurTelevetBooking");var Wc=2e4;function On(e=true,t=Wc){let[n,r]=useState(()=>Date.now());return useEffect(()=>{if(!e)return;r(Date.now());let i=setInterval(()=>r(Date.now()),t);return ()=>clearInterval(i)},[e,t]),n}o(On,"useNowMs");var x=Object.freeze({pastTitle:"Past visits",upcomingTitle:"Upcoming visits",emptyTitle:"No visits yet",bookCta:"Find a time",bookCardTitle:"Book a video visit",bookCardSubtitle:"Get help for your pet from home.",loadErrorTitle:"Could not load your visits",retryCta:"Try again",statusCompleted:"Completed",statusCancelled:"Cancelled",statusMissed:"Missed",manageCta:"Manage",joinCta:"Join call",joinDisabledReason:"You can join closer to the time.",joinOverReason:"This visit has ended.",vetUnassigned:"Your vet",rescheduleCta:"Reschedule",cancelCta:"Cancel visit",cancelConfirmTitle:"Cancel this visit?",cancelConfirmBody:"You can book another one afterwards.",cancelConfirmCta:"Cancel visit",cancelKeepCta:"Keep visit",cancelFailedTitle:"Could not cancel",cancelReason:"Cancelled by the pet parent in the app.",cancelPolicyErrorTitle:"Could not load what you need to agree to",phaseCancelled:"This visit was cancelled",phaseCancelledBody:"You can book another visit when you are ready.",notFoundTitle:"Not found",notFoundBody:"This visit is no longer available.",staleTitle:"Could not load your visits",staleRetry:"Try again"});function na(e){switch(e){case "completed":return x.statusCompleted;case "cancelled_owner":case "cancelled_ops":return x.statusCancelled;case "no_show_owner":case "no_show_vet":return x.statusMissed;default:return null}}o(na,"televetVisitStatusNative");function zt({onBack:e,testID:t}){let n=ft();return jsx(View,{style:n.navRow,children:jsx(Pressable,{onPress:e,accessibilityRole:"button",accessibilityLabel:Rn,testID:t,style:n.backTap,children:jsx(View,{style:n.chevron,accessibilityElementsHidden:true,importantForAccessibility:"no"})})})}o(zt,"TelevetVisitBackRow");function ft(){let e=S();return useMemo(()=>Kc(e),[e])}o(ft,"useVisitStyles");function Kc(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return StyleSheet.create({screen:{flex:1,paddingHorizontal:n.xl},body:{gap:n.sm,paddingBottom:n.xl},navRow:{paddingVertical:n.sm,flexDirection:"row"},backTap:{minHeight:X,minWidth:X,justifyContent:"center"},chevron:{width:10,height:10,marginLeft:n.xs,borderLeftWidth:2,borderBottomWidth:2,borderColor:t.brand,transform:[{rotate:"45deg"}]},title:{...b(e,"medium"),color:t.brand,fontSize:l.heading,lineHeight:l.heading*a.snug,marginBottom:n.md},list:{gap:n.sm},row:{gap:n.xs,padding:n.md,borderRadius:r.md,borderWidth:1,borderColor:t.brandBorder,backgroundColor:t.surface},rowHead:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:n.sm},when:{flex:1,...b(e,"medium"),color:t.text.primary,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},status:{...b(e,"mono"),color:t.text.metaCool,fontSize:l.micro,letterSpacing:1},meta:{...b(e,"mono"),color:t.text.metaCool,fontSize:l.caption,lineHeight:l.caption*a.normal},bookCard:{gap:n.md,padding:n.xl,borderRadius:r.sm,borderWidth:StyleSheet.hairlineWidth,borderColor:t.brand,backgroundColor:t.surface},bookTitle:{...b(e,"medium"),color:t.brand,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},bookSubtitle:{...b(e,"regular"),color:t.text.metaCool,fontSize:l.body,lineHeight:l.body*a.normal},visitCard:{gap:n.md,padding:n.lg,borderRadius:r.lg,borderWidth:1,borderColor:t.brandBorder},visitWhen:{...b(e,"medium"),color:t.brand,fontSize:l.heading,lineHeight:l.heading*a.snug},visitWho:{...b(e,"regular"),color:t.text.primary,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},visitMeta:{...b(e,"regular"),color:t.text.metaCool,fontSize:l.caption,lineHeight:l.caption*a.normal},reason:{...b(e,"regular"),color:t.text.metaCool,fontSize:l.caption,lineHeight:l.caption*a.normal},terms:{padding:n.md,borderRadius:r.sm,backgroundColor:t.surfaceSubtle,...b(e,"regular"),color:t.text.metaCool,fontSize:l.caption,lineHeight:l.caption*a.normal},noticeTitle:{...b(e,"bold"),color:t.text.primary,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},noticeBody:{...b(e,"regular"),color:t.text.metaCool,fontSize:l.body,lineHeight:l.body*a.normal},receipt:{gap:n.xs,padding:n.md,borderRadius:r.sm,backgroundColor:t.surfaceSubtle},stack:{gap:n.xs}})}o(Kc,"makeVisitStyles");function uo({consult:e,controller:t,onJoin:n,onReschedule:r,onCancelled:i,onBack:l,revision:a=0,nowMs:s,style:c}){let d=ft(),p=ae(t),[g,f]=useState(0),y=Tl(e.consultId,p,a+g),E=St(p),_=El(e.consultId,p),{pets:P}=it(),[h,T]=useState(false),[R,O]=useState(false),[C,q]=useState(null),D=y.isError&&y.error?.httpStatus===404,M=D?null:y.data??e,N=M!==null&&$e.has(M.status),K=On(!N),Q=fr(M,s??K),oe=M===null?null:Ae(P,M.petId),I=E.data?.summary.trim()||null,ue=useCallback(()=>{I&&(O(false),_.mutate(x.cancelReason,{onSuccess:o($t=>{T(false),q($t),f(mt=>mt+1),i?.($t);},"onSuccess"),onError:o(()=>O(true),"onError")}));},[I,_,i]);if(M===null)return jsxs(View,{style:[d.screen,c],testID:"televet-consult-missing",children:[jsx(zt,{onBack:l,testID:"televet-consult-back"}),jsx(F,{title:x.notFoundTitle,message:x.notFoundBody})]});let ke=M.status,z=ke==="cancelled_owner"||ke==="cancelled_ops",qe=ke==="scheduled"||ke==="in_progress",Wt=yr(ke)&&C===null,Bn=M.clinicianName??x.vetUnassigned,qt=[oe,M.reasonText].filter(Boolean).join(" \xB7 ");return jsxs(View,{style:[d.screen,c],testID:"televet-consult",children:[jsx(zt,{onBack:l,testID:"televet-consult-back"}),jsxs(ScrollView,{contentContainerStyle:d.body,children:[jsxs(View,{style:d.visitCard,children:[jsx(v,{style:d.visitWhen,accessibilityRole:"header",testID:"televet-consult-when",children:pe(M.scheduledAt)}),jsxs(View,{style:d.stack,children:[jsx(v,{style:d.visitWho,testID:"televet-consult-vet",children:Bn}),qt?jsx(v,{style:d.visitMeta,numberOfLines:2,children:qt}):null]})]}),qe&&C===null?jsxs(Fragment,{children:[jsx(A,{label:x.joinCta,disabled:!Q.ready,onPress:()=>n(M,oe),testID:"televet-consult-join"}),Q.ready?null:jsx(v,{style:d.reason,testID:"televet-consult-join-reason",children:Q.reason==="consult_over"?x.joinOverReason:x.joinDisabledReason}),Wt&&r?jsx(A,{label:x.rescheduleCta,kind:"secondary",onPress:()=>r(M),testID:"televet-consult-reschedule"}):null]}):null,C?jsx(View,{style:d.receipt,testID:"televet-consult-cancel-receipt",children:jsx(v,{style:d.noticeTitle,accessibilityLiveRegion:"polite",children:C.summary??x.phaseCancelled})}):z?jsxs(View,{style:d.stack,testID:"televet-consult-cancelled",children:[jsx(v,{style:d.noticeTitle,accessibilityRole:"header",children:x.phaseCancelled}),jsx(v,{style:d.noticeBody,children:x.phaseCancelledBody})]}):null,Wt?jsxs(View,{style:d.stack,children:[I?jsx(v,{style:d.terms,accessibilityLiveRegion:"polite",testID:"televet-consult-cancellation-policy",children:I}):E.enabled&&E.isPending?jsx(View,{testID:"televet-consult-cancellation-policy-loading",children:jsx(ee,{height:42})}):jsx(F,{title:x.cancelPolicyErrorTitle,actionLabel:x.retryCta,onAction:()=>E.refetch(),testID:"televet-consult-cancellation-policy-error"}),h?jsxs(View,{style:d.stack,testID:"televet-consult-cancel-confirm",children:[jsx(v,{style:d.noticeTitle,children:x.cancelConfirmTitle}),jsx(v,{style:d.noticeBody,children:x.cancelConfirmBody}),R?jsx($,{message:x.cancelFailedTitle,testID:"televet-consult-cancel-failed"}):null,jsx(A,{label:x.cancelConfirmCta,kind:"danger",loading:_.isPending,onPress:ue,testID:"televet-consult-cancel-yes"}),jsx(A,{label:x.cancelKeepCta,kind:"secondary",disabled:_.isPending,onPress:()=>{T(false),O(false);},testID:"televet-consult-cancel-keep"})]}):jsx(A,{label:x.cancelCta,kind:"secondary",disabled:!I,onPress:()=>{O(false),T(true);},testID:"televet-consult-cancel"})]}):null,y.isError&&!D?jsx(F,{title:x.staleTitle,actionLabel:x.staleRetry,onAction:()=>y.refetch(),testID:"televet-consult-stale"}):null]})]})}o(uo,"TelevetConsultScreen");var jt=Object.freeze({muteCta:"Mute",unmuteCta:"Unmute",cameraOffCta:"Camera off",cameraOnCta:"Camera on",leaveCta:"Leave",switchCameraCta:"Switch camera",speakerOffCta:"Speaker off",speakerOnCta:"Speaker on",lobbyTitleNoName:"Your vet is joining",lobbySubtitle:"Usually under a minute",lobbyPrepLabel:"WHILE YOU WAIT",lobbyPrepNoPet:"Have your pet nearby and somewhere well lit.",lobbyTitle:o(e=>{let t=e?.trim()??"";return t.length>0?`${t} is joining`:jt.lobbyTitleNoName},"lobbyTitle"),lobbyPrep:o(e=>{let t=e?.trim()??"";return t.length>0?`Have ${t} nearby and somewhere well lit.`:jt.lobbyPrepNoPet},"lobbyPrep"),lobbyDuration:o(e=>`${e} MINUTE VISIT`,"lobbyDuration"),joinFailedReason:"That did not open. Try again.",recordingNoticeTitle:"This consultation is recorded.",recordingNoticeCta:"Continue to the call",recordingNoticeDecline:"Not now",selfCameraOffLabel:"Your camera is off"});function la(e){switch(e){case "too_early":return "You can join closer to the time.";case "too_late":return "This visit has ended.";case "room_not_ready":return "The room is still being set up. Try again in a moment.";case "not_joinable":return "This visit is no longer open.";case "unavailable":return "No way to join this visit yet.";default:return "That did not open. Try again."}}o(la,"televetJoinRefusalNativeCopy");var ia="No way to join this visit yet.";function aa(e){return e==="room_not_ready"||e==="unknown"}o(aa,"televetJoinIsRetryable");var sa=Symbol.for("@everfur/sdk/televet");function Xc(){let e=globalThis,t=e[sa];if(t!==void 0)return t;let n={presenter:null,snapshot:Object.freeze({request:null,serial:0,activeHost:null}),hosts:[],nextHost:1,listeners:new Set,dailyRegistered:false};return e[sa]=n,n}o(Xc,"televetGlobal");function da(){return Xc().dailyRegistered}o(da,"isEverfurDailyRegistered");function ca(e){let t=null;return ()=>{if(t!==null)return t;let n=e();return t=n,n.then(void 0,()=>{t===n&&(t=null);}),n}}o(ca,"memoizeTelevetLoader");var pa=Object.freeze({status:"joining"});function po(e,t){let[n,r]=useState(0),[i,l]=useState(pa),a=useRef(null);useEffect(()=>{let c=t?.joinConsult;if(t===null||c===void 0){l(Object.freeze({status:"refused",refusal:"unavailable",reason:null}));return}let d=`${e}#${String(n)}`,p=a.current;if(p===null||p.key!==d){let f;try{f=c.call(t,e);}catch(y){f=Promise.reject(y);}p={key:d,promise:f},a.current=p;}let g=true;return l(pa),p.promise.then(f=>{g&&(f.ok?l(Object.freeze({status:"ready",credential:f.value})):l(Object.freeze({status:"refused",refusal:Jn(f.error),reason:Gn(f.error)})));},()=>{g&&l(Object.freeze({status:"refused",refusal:"unknown",reason:null}));}),()=>{g=false;}},[e,t,n]);let s=useCallback(()=>r(c=>c+1),[]);return {state:i,retry:s}}o(po,"useTelevetJoin");var fo=createContext(null);function fa(e){let t=useContext(fo);useEffect(()=>{if(!(t===null||!e))return t.setFullBleed(true),()=>{t.setFullBleed(false);}},[t,e]);}o(fa,"useTelevetModalFullBleed");var iu=ca(()=>import('@everfur/sdk/televet/call'));function mo({consultId:e,controller:t,clinicianName:n,petName:r,onLeave:i,style:l}){let a=V(),s=ae(t),{state:c,retry:d}=po(e,s),[p,g]=useState(null),[f,y]=useState(false),E=c.status==="ready";useEffect(()=>{if(!E||p!==null)return;let R=true;return iu().then(O=>{R&&g(()=>O);},()=>{R&&y(true);}),()=>{R=false;}},[E,p]);let _=E&&p!==null&&!f,P=o(()=>(_||i(),true),"onBackPress");rt(P);let h=useRef(P);if(h.current=P,useEffect(()=>{let R=BackHandler.addEventListener("hardwareBackPress",()=>h.current());return ()=>{R.remove();}},[]),fa(_),c.status==="refused"||f){let R=c.status==="refused"?c.refusal:"unavailable";return jsxs(View,{style:[a.stepFill,l],testID:"televet-join-refused",children:[jsx($,{message:la(R),testID:"televet-join-refused-message"}),aa(R)&&c.status==="refused"?jsx(A,{label:u.retryCta,kind:"primary",onPress:d,testID:"televet-join-retry"}):null,jsx(A,{label:jt.leaveCta,kind:"secondary",onPress:i,testID:"televet-join-leave"})]})}if(c.status==="joining"||p===null)return jsx(View,{style:[a.list,l],testID:"televet-join-loading",accessibilityLabel:u.loading.consult,children:jsx(ee,{height:48})});let{EverfurVetCall:T}=p;return jsx(T,{roomUrl:c.credential.roomUrl,token:c.credential.token,onLeave:i,clinicianName:n??null,petName:r??null,renderUnavailable:()=>jsxs(View,{style:[a.stepFill,l],testID:"televet-join-call-unavailable",children:[jsx($,{message:ia}),jsx(A,{label:jt.leaveCta,kind:"secondary",onPress:i,testID:"televet-join-unavailable-leave"})]}),style:l})}o(mo,"TelevetJoinScreen");function vo(e){let{consult:t,onRescheduled:n,onCancel:r,controller:i,style:l,testID:a}=nt(e,["onRescheduled","onCancel"]),s=V(),c=ae(i),d=Rt(t?.clinicianId??null,c),p=_t(c),g=dr(t?.consultId??null,c),[f,y]=useState(null),E=useCallback(P=>{y(null),p.mutate(P.slotId,{onSuccess:o(()=>{g.mutate(P.slotId,{onSuccess:o(h=>n?.(h),"onSuccess"),onError:o(h=>y(xe(h).kind==="unavailable"?"unavailable":"failed"),"onError")});},"onSuccess"),onError:o(h=>y(xe(h).kind==="unavailable"?"unavailable":"taken"),"onError")});},[p,g,n]),_=p.isPending||g.isPending;return Se()?t?jsxs(View,{style:[s.stepFill,l],testID:a??"televet-reschedule",children:[jsx(v,{tier:"compact",style:s.stepHelp,children:ne(u.rescheduleFromTemplate,{when:pe(t.scheduledAt)})}),f==="taken"?jsx($,{message:u.slotTaken}):null,f==="failed"?jsx($,{message:u.rescheduleFailed}):null,f==="unavailable"?jsx($,{message:u.bookingPausedTitle,testID:"televet-reschedule-unavailable"}):null,d.enabled?d.isPending?jsx(View,{style:s.list,testID:"televet-reschedule-slots-loading",children:[0,1,2].map(P=>jsx(ee,{height:48},P))}):d.isError?jsx(F,{title:u.slotsErrorTitle,actionLabel:u.retryCta,onAction:()=>d.refetch(),testID:"televet-reschedule-slots-error"}):(d.data??[]).length===0?jsx(View,{testID:"televet-reschedule-empty",children:jsx(F,{title:u.noSlotsTitle})}):jsx(Ft,{slots:d.data??[],busySlotId:_?p.variables:null,onPick:E,rowTestIdPrefix:"televet-reschedule-slot",testID:"televet-reschedule-slots"}):jsx(View,{testID:"televet-reschedule-paused",children:jsx(F,{title:u.bookingPausedTitle})}),jsx(A,{label:u.keepExistingCta,kind:"secondary",disabled:_,onPress:()=>r?.(),testID:"televet-reschedule-keep"})]}):jsx(View,{style:[s.list,l],testID:"televet-reschedule-loading",children:[0,1].map(P=>jsx(ee,{height:48},P))}):jsx(View,{style:[s.stepFill,l],testID:"televet-reschedule-copy-unapproved"})}o(vo,"EverfurTelevetReschedule");function go({controller:e,onOpenVisit:t,onBook:n,onBack:r,revision:i=0,nowMs:l,style:a}){let s=ft(),c=ae(e),d=cn(c,i),{pets:p}=it(),g=d.data??[],f=g.some(C=>!$e.has(C.status)),y=On(f),E=l??y,{upcoming:_,past:P}=useMemo(()=>xt(g,E),[g,E]),h=d.enabled&&d.isPending,T=d.isError&&d.data===null,R=!h&&!T&&g.length>0,O=o(C=>{let q=na(C.status),D=[C.clinicianName,Ae(p,C.petId)].filter(Boolean).join(" \xB7 ");return jsxs(View,{style:s.row,testID:`televet-visits-row-${C.consultId}`,children:[jsxs(View,{style:s.rowHead,children:[jsx(v,{style:s.when,children:bi(C.scheduledAt)}),q?jsx(v,{style:s.status,testID:`televet-visits-status-${C.consultId}`,children:q}):null]}),D?jsx(v,{style:s.meta,children:D}):null,C.status==="completed"?null:jsx(A,{label:x.manageCta,kind:"secondary",onPress:()=>t(C),testID:`televet-visits-open-${C.consultId}`})]},C.consultId)},"renderRow");return jsxs(View,{style:[s.screen,a],testID:"televet-visits",children:[jsx(zt,{onBack:r,testID:"televet-visits-back"}),jsxs(ScrollView,{contentContainerStyle:s.body,children:[R?null:jsx(v,{style:s.title,accessibilityRole:"header",children:x.pastTitle}),T?jsxs(View,{style:s.list,children:[jsx(F,{title:x.loadErrorTitle,message:Hl(d.error)??void 0,actionLabel:x.retryCta,onAction:()=>d.refetch(),testID:"televet-visits-error"}),n?jsx(ga,{onBook:n}):null]}):h?jsx(View,{style:s.list,testID:"televet-visits-loading",children:[0,1,2].map(C=>jsx(ee,{height:72},C))}):g.length===0?jsxs(View,{style:s.list,testID:"televet-visits-empty",children:[jsx(F,{title:x.emptyTitle}),n?jsx(A,{label:x.bookCta,onPress:n,testID:"televet-visits-book"}):null]}):jsxs(View,{style:s.list,children:[_.length>0?jsxs(Fragment,{children:[jsx(v,{style:s.title,accessibilityRole:"header",children:x.upcomingTitle}),jsx(View,{style:s.list,testID:"televet-visits-upcoming",children:_.map(O)})]}):null,n?jsx(ga,{onBook:n}):null,jsx(v,{style:s.title,accessibilityRole:"header",children:x.pastTitle}),P.length>0?jsx(View,{style:s.list,testID:"televet-visits-past",children:P.map(O)}):null]})]})]})}o(go,"TelevetVisitsScreen");function ga({onBook:e}){let t=ft();return jsxs(View,{style:t.bookCard,testID:"televet-visits-book-card",children:[jsx(v,{style:t.bookTitle,children:x.bookCardTitle}),jsx(v,{style:t.bookSubtitle,children:x.bookCardSubtitle}),jsx(A,{label:x.bookCta,kind:"primary",onPress:e,testID:"televet-visits-book"})]})}o(ga,"BookCard");var bo=Object.freeze({name:"home"}),vu=Object.freeze({name:"visits"}),gu=Object.freeze({name:"booking"});function ho(e){let t=e.visitRef?.trim()??"";return t.length>0?Object.freeze({name:"visit",visitRef:t,intent:e.intent??null}):bo}o(ho,"televetScreenForRequest");function bu(e,t){switch(t.type){case "push":return Object.freeze({stack:Object.freeze([...e.stack,t.screen])});case "pop":return e.stack.length<=1?e:Object.freeze({stack:Object.freeze(e.stack.slice(0,-1))});case "land":return e.stack[0]?.name!=="home"?e:Object.freeze({stack:Object.freeze([t.screen,...e.stack.slice(1)])});default:return e}}o(bu,"navReducer");function Ta(e){let{style:t,renderPending:n,...r}=nt(e,["onExit","onBooked","onAddPet","onRequestLocation","onFindEmergencyVet"]);return jsx(Vl,{capability:"televet",style:t,...n?{renderPending:n}:{},children:jsx(hu,{...r,style:t})})}o(Ta,"EverfurTelevetFlow");function hu({petRef:e,usState:t,controller:n,onBooked:r,onExit:i,onAddPet:l,onPickMedia:a,onAddToCalendar:s,onConfirmDiscard:c,onRequestLocation:d,locationStatus:p,primaryVet:g,onFindEmergencyVet:f,onTriageReason:y,canJoinInApp:E=false,renderUnavailable:_,initialScreen:P,style:h}){let T=V(),[R,O]=useReducer(bu,P??bo,z=>Object.freeze({stack:Object.freeze([z])})),C=R.stack[R.stack.length-1]??bo,q=R.stack.length,[D,M]=useState(0),N=useCallback(()=>M(z=>z+1),[]),K=useCallback(()=>q<=1||C.name==="call"||C.name==="booking"?false:(O({type:"pop"}),true),[q,C.name]);useEffect(()=>{let z=BackHandler.addEventListener("hardwareBackPress",K);return ()=>{z.remove();}},[K]),rt(K);let fe=useCallback(()=>_?_():jsx(View,{style:T.list,testID:"televet-unavailable",children:Se()?jsx(F,{title:u.bookingPausedTitle}):null}),[_,T.list]),Q=useCallback(()=>{q>1?O({type:"pop"}):i?.();},[q,i]),oe=o(z=>O({type:"push",screen:z}),"push"),I=useCallback(z=>O({type:"land",screen:z==="visits"?vu:gu}),[]),ue=jsx(so,{...e!==void 0?{petRef:e}:{},...t!==void 0?{usState:t}:{},...n?{controller:n}:{},onBooked:z=>{N(),r?.(z);},onExit:Q,...l?{onAddPet:l}:{},...a?{onPickMedia:a}:{},...s?{onAddToCalendar:s}:{},...c?{onConfirmDiscard:c}:{},...d?{onRequestLocation:d}:{},...p?{locationStatus:p}:{},...g?{primaryVet:g}:{},...f?{onFindEmergencyVet:f}:{},...y?{onTriageReason:y}:{},canJoinInApp:E,renderUnavailable:fe,style:h}),ke=jsx(go,{...n?{controller:n}:{},revision:D,onOpenVisit:z=>oe({name:"consult",consult:z}),onBook:()=>oe({name:"booking"}),onBack:Q,style:h});switch(C.name){case "home":return jsx(Tu,{controller:n,onLand:I,style:h});case "booking":return ue;case "visits":case "visit":return ke;case "consult":return jsx(uo,{consult:C.consult,...n?{controller:n}:{},revision:D,onJoin:(z,qe)=>oe({name:"call",consultId:z.consultId,clinicianName:z.clinicianName,petName:qe}),onReschedule:z=>oe({name:"reschedule",consult:z}),onCancelled:N,onBack:Q,style:h});case "reschedule":return jsx(vo,{consult:C.consult,...n?{controller:n}:{},onRescheduled:()=>{N(),O({type:"pop"});},onCancel:()=>O({type:"pop"}),style:h});case "call":return jsx(mo,{consultId:C.consultId,...n?{controller:n}:{},...C.clinicianName!==void 0?{clinicianName:C.clinicianName}:{},...C.petName!==void 0?{petName:C.petName}:{},onLeave:()=>{N(),Q();},style:h});default:return Gt(C)}}o(hu,"TelevetFlowBody");function Tu({controller:e,onLand:t,style:n}){let r=V(),i=ae(e),l=kl(i);return useEffect(()=>{l!=="pending"&&t(l);},[l,t]),jsxs(View,{style:[r.screen,r.list,n],testID:"televet-landing-loading",children:[jsx(ee,{height:72}),jsx(ee,{height:72})]})}o(Tu,"TelevetLandingScreen");var To=Ta;function wu({request:e,onClose:t}){let n=S(),r=useSafeAreaInsets(),i=useMemo(()=>Lo(),[]),l=useCallback(()=>{i.dispatch()||t();},[i,t]),[a,s]=useState(false),c=useMemo(()=>({setFullBleed:s}),[]),d=useMemo(()=>ho(e),[e]);return jsx(Modal,{visible:true,animationType:n.motion.reducedMotion?"none":"slide",presentationStyle:"fullScreen",onRequestClose:l,children:jsx(View,{testID:"everfur-televet-modal",style:[Ea.root,{backgroundColor:n.color.surface},a?null:{paddingTop:r.top,paddingBottom:r.bottom}],children:jsx(zn.Provider,{value:i,children:jsx(fo.Provider,{value:c,children:jsx(To,{...e.petRef!==void 0?{petRef:e.petRef}:{},...e.usState!==void 0?{usState:e.usState}:{},initialScreen:d,onExit:t,canJoinInApp:da(),style:Ea.root})})})})})}o(wu,"EverfurTelevetModal");var Ea=StyleSheet.create({root:{flex:1}});export{Rn as BACK_LABEL,tn as CANCELLATION_POLICY_VERSION_MAX,rn as CANCEL_REASON_MAX,el as CONSULT_KINDS,at as CONSULT_MINUTES,Zo as CONSULT_STATUSES,To as EverfurTelevet,so as EverfurTelevetBooking,Ta as EverfurTelevetFlow,wu as EverfurTelevetModal,vo as EverfurTelevetReschedule,nn as MEDIA_REFS_MAX,Ot as NO_MEDIA_SHORTFALL,_e as REASON_TEXT_MAX,Le as TELEVET_BOOKING_BASE,u as TELEVET_BOOKING_COPY,Me as TELEVET_BOOKING_STEPS,pl as TELEVET_CONSULT_PAGE_LIMIT,pr as TELEVET_JOIN_CLOSES_MINUTES_AFTER,ur as TELEVET_JOIN_OPENS_MINUTES_BEFORE,$e as TERMINAL_CONSULT_STATUSES,Gr as TelevetBookedScreen,Xr as TelevetBookingChrome,Ai as TelevetClinicianEmptyState,Nt as TelevetConsentCheckbox,uo as TelevetConsultScreen,eo as TelevetDayStrip,Oi as TelevetEarlyEmergency,At as TelevetEmergencyExits,tc as TelevetEntitlementInterestState,Zr as TelevetIntakeMedia,mo as TelevetJoinScreen,Bt as TelevetMediaDropNotice,Ft as TelevetSlotPicker,qr as TelevetStateInterestAction,ro as TelevetSummaryCard,et as TelevetSummaryRow,go as TelevetVisitsScreen,Fr as attestation,It as canConfirm,yr as canManageTelevetVisit,tr as createTelevetBookingController,Ar as currentStep,mi as emptyTelevetDraft,zd as formatVisitRange,gi as formatWhen,pe as formatWhenWithDay,Ir as hasPreviousStep,Pr as initialTelevetBookingState,Br as isHoldExpired,Hr as isMediaShortfallEmpty,Tn as isSkipped,Se as isTelevetBookingCopyReady,me as isWellFormedStateCode,Cn as mediaShortfallFromUnsentPicks,Yn as parseVetCallCredential,xt as splitTelevetVisits,Dr as televetBookingKey,Or as televetBookingReducer,xe as televetBookingRefusal,ul as televetCancelCall,Li as televetConsultCalendarKey,ln as televetConsultCall,wn as televetDaysFromSlots,jr as televetEmptyRosterCause,zr as televetEmptyRosterView,sl as televetHoldCall,cl as televetJoinCall,Ys as televetJoinOpensAtMs,fr as televetJoinReadiness,Ur as televetMediaShortfallLines,dl as televetRescheduleCall,ho as televetScreenForRequest,Vr as useEarlyTriage,Mr as useStateInterest,sr as useTelevetBookConsult,$s as useTelevetBookingAvailable,ae as useTelevetBookingController,lr as useTelevetBookingEntitlement,St as useTelevetCancellationPolicy,ir as useTelevetClinicians,_t as useTelevetHoldSlot,po as useTelevetJoin,ar as useTelevetNextSlot,dr as useTelevetRescheduleConsult,Rt as useTelevetSlots,or as useTelevetStatePolicy,fl as validateBookingBody,Gn as vetCallJoinReason,Jn as vetCallJoinRefusal,$d as withUnsentPicks};
|
|
1
|
+
import {createContext,forwardRef,useMemo,createElement,useState,useRef,useEffect,useCallback,useReducer,useContext,useSyncExternalStore,Component}from'react';import {StyleSheet,TextInput,Pressable,View,Alert,BackHandler,Image,ActivityIndicator,ScrollView,Modal,Text}from'react-native';import {jsxs,Fragment,jsx}from'react/jsx-runtime';import {useSafeAreaInsets}from'react-native-safe-area-context';var Za=Object.defineProperty;var o=(e,t)=>Za(e,"name",{value:t,configurable:true});function Xt(e){throw new Error(`assertNever: unhandled discriminated-union member ${JSON.stringify(e)}`)}o(Xt,"assertNever");function Uo(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(Uo,"errorFrame");function $n(e){let t=globalThis.console;try{t?.error?.("[everfur] A host callback threw; the SDK ignored it.",e);}catch{}}o($n,"reportHostFailure");function ns(e){return (typeof e=="object"||typeof e=="function")&&e!==null&&typeof e.then=="function"}o(ns,"isThenable");function Qt(e,...t){if(typeof e=="function")try{let n=e(...t);return ns(n)&&Promise.resolve(n).then(void 0,$n),n}catch(n){$n(n);return}}o(Qt,"callHost");var Wo=new WeakMap;function rs(e){if(typeof e!="function")return;let t=Wo.get(e);if(t!==void 0)return t;let n=o((...r)=>{Qt(e,...r);},"guarded");return Wo.set(e,n),n}o(rs,"guardHost");function ot(e,t){let n=null;for(let r of t){let i=e[r];typeof i=="function"&&(n??={...e},n[r]=rs(i));}return n??e}o(ot,"guardHostProps");function Zt(e,...t){let n;try{n=e(...t);}catch(r){return $n(r),Promise.resolve({ok:false,error:r})}return Promise.resolve(n).then(r=>({ok:true,value:r}),r=>({ok:false,error:r}))}o(Zt,"callHostAsync");function qo(){let e=[];return {register(t){return e=[...e,t],()=>{e=e.filter(n=>n!==t);}},dispatch(){for(let t of [...e].reverse())try{if(t())return !0}catch{}return false}}}o(qo,"createTelevetBackChannel");var Yn=createContext(null);function lt(e,t=true){let n=useContext(Yn),r=useRef(e);r.current=e,useEffect(()=>{if(!(n===null||!t))return n.register(()=>r.current())},[n,t]);}o(lt,"useTelevetBackChannel");var m=o(e=>e,"DRAFT"),ss=["[PLACEHOLDER","[PLAN NAME]","[LINK]","[Last]","TODO","TBD"];function ds(e){return ss.some(t=>e.toUpperCase().includes(t.toUpperCase()))}o(ds,"isPlaceholderCopy");function ne(e,t){let n=e;for(let[r,i]of Object.entries(t))n=n.split(`{${r}}`).join(i);return n}o(ne,"fill");var u=Object.freeze({stateBlockedTitle:m("Not available in this state yet"),noCliniciansTitle:m("No vets available right now"),noCliniciansBody:m("Nobody is free in your area at the moment. This changes through the day."),noCliniciansRetryCta:m("Check again"),noCliniciansRegionBody:m("Video visits have to be with a vet licensed in your state, and we don\u2019t have one there yet."),yourVetTitle:m("Your Vet"),reviewsLabel:m("reviews"),rescheduleFromTemplate:m("Moving your visit on {when}"),rescheduleFailed:m("That did not move. Your original time is unchanged."),keepExistingCta:m("Keep my current time"),bookingPausedTitle:m("Booking is not available right now."),slotsErrorTitle:m("Could not load times"),noSlotsTitle:m("No times available"),nextOpeningTemplate:m("Next opening across our vets: {when}"),seeOtherVetsCta:m("See other vets"),retryCta:m("Try again"),holdExpired:m("That time is no longer held. Pick another."),slotTaken:m("That time was just taken. Pick another."),reasonPlaceholder:m("What is going on with your pet?"),reasonTooLong:m("That is too long. Please shorten it."),shareRecordsOff:m("Share health records with this vet"),confirmNotEntitled:m("A Pro membership is needed to book a video visit."),confirmFailed:m("That did not book. Try again."),checkAvailabilityCta:m("Check availability"),stateInterest:Object.freeze({cta:m("Add me to the list"),submitting:m("Adding you to the list\u2026"),joinedTitle:m("You are on the list"),joinedBody:m("We will let you know when this changes."),failed:m("That did not save. Try again.")}),media:Object.freeze({droppedTemplate:m("{n} attachment did not upload."),droppedPluralTemplate:m("{n} attachments did not upload."),refusedSizeTemplate:m("{n} attachment was too large to send."),refusedSizePluralTemplate:m("{n} attachments were too large to send."),refusedTypeTemplate:m("{n} attachment is a file type that cannot be sent."),refusedTypePluralTemplate:m("{n} attachments are file types that cannot be sent."),refusedUnreadableTemplate:m("{n} attachment could not be read."),refusedUnreadablePluralTemplate:m("{n} attachments could not be read.")}),navTitle:m("Book a visit"),rescheduleNavTitle:m("Change your visit"),close:m("Close"),continueCta:m("Continue"),petSelectTitle:m("Who is this visit for?"),addPetCta:m("Add a pet"),locationUnknownTitle:m("We need your location to find a vet"),locationUnknownBody:m("Turn on location for Everfur, then try again."),locationUnknownCta:m("Allow location"),locationBlockedTitle:m("Location is turned off"),locationBlockedBody:m("Everfur needs your location to match you with a vet in your area."),locationBlockedCta:m("Open Settings"),locationUnavailableTitle:m("We could not read your location"),locationUnavailableBody:m("Try again in a moment."),stateAttestTemplate:m("I confirm my pet and I are in {state} right now."),describeHeading:m("Tell the vet what you are seeing"),describeHelpLong:m("A few sentences is plenty. When it started, what changed, anything you've already tried."),addPhotoCta:m("ADD PHOTO OR VIDEO"),removePhotoLabel:m("Remove photo"),summaryPet:m("Pet"),summaryVet:m("Vet"),summaryWhen:m("When"),summaryLength:m("Length"),summaryReason:m("Reason"),summaryLengthTemplate:m("{n} minutes"),confirmCta:m("Confirm visit"),bookedTitle:m("You are booked."),addToCalendarCta:m("Add to calendar"),doneCta:m("Done"),booked:Object.freeze({remindPromise:m("We will notify you 30 minutes before."),summaryPromise:m("{pet}'s summary goes to the vet ahead of the call."),joinPromise:m("Join right here in the app. No links to hunt for."),backToPet:m("Back to {pet}"),calendarAdded:m("Added to your calendar"),calendarFailedBody:m("That did not save to your calendar.")}),chrome:Object.freeze({closeHint:m("Closes without saving"),discardTitle:m("Leave without booking?"),discardBody:m("Your answers will not be saved."),discardConfirmCta:m("Leave"),discardKeepCta:m("Keep going"),noPetsTitle:m("No pets on this account"),loadFailedTitle:m("Could not load"),retryCta:m("Try again")}),emergency:Object.freeze({bannerTitle:m("This cannot wait for a scheduled call."),keepBookingCta:m("I have handled this, keep booking"),lede:m("What you are describing is the kind of thing vets want to see in person, now."),exitPrimaryVetTitle:m("Call {petName}'s primary vet"),exitFindErTitle:m("Find an emergency vet near you"),startCallHint:m("Starts a phone call")}),visit:Object.freeze({title:m("Your visit")}),loading:Object.freeze({pets:"Loading pets. Nothing to read yet.",clinicians:"Loading vets. Nothing to read yet.",slots:"Loading times. Nothing to read yet.",consult:"Loading your visit. Nothing to read yet.",progressTemplate:"Step {step} of {total}"})});function Ko(e=u){return typeof e=="string"?[e]:typeof e!="object"||e===null?[]:Object.values(e).flatMap(t=>Ko(t))}o(Ko,"televetBookingCopyValues");function Re(){return Ko().every(e=>e.trim().length>0&&!ds(e))}o(Re,"isTelevetBookingCopyReady");var Gn=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(Gn.map(e=>e.wireCode));var us=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"}),Yo=Object.freeze(Gn.map(e=>Object.freeze({wireCode:e.wireCode,envelope:e.envelope,retryable:e.retryable,normalized:us[e.wireCode]}))),ps=new Map(Yo.map(e=>[e.envelope+e.wireCode.toUpperCase(),e])),fs=Object.freeze(["http_envelope",...[...new Set(Yo.map(e=>e.envelope))].filter(e=>e!=="http_envelope").sort()]);function en(e,t){if(typeof e!="string")return;let n=e.trim().toUpperCase();if(n.length!==0)for(let r of [t??"http_envelope",...fs]){let i=ps.get(r+n);if(i)return i}}o(en,"contractErrorFor");function ys(e){return e.envelope==="sse_frame"?`/errors#sse-${e.wireCode}`:e.envelope==="oauth_error"?`/errors#oauth-${e.wireCode}`:`/errors#${e.wireCode}`}o(ys,"contractDocUrl");function Go(e){return null}o(Go,"publishedDocUrl");var ms=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 Jo(e){return ms[e]}o(Jo,"categoryFor");function Xo(e){let t=en(e);if(t)return t.normalized;let n=(e??"").trim().toUpperCase(),r=n.replace(/[^A-Z0-9]/g,"");if(r==="AUTHREJECTED")return "authRejected";if(n.startsWith("AUTH"))return "authExpired";switch(r){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(Xo,"fromWire");var vs=new Set(["streamTimeout","rateLimited","internalError","upstreamLlmTimeout","streamIncomplete"]);function Jn(e){return vs.has(e)}o(Jn,"isAutoRetryable");var gs=new Set(["serviceUnavailable","conflict","idempotencyInFlight"]);function Qo(e){return Jn(e)||gs.has(e)}o(Qo,"isRetryableCode");var bs=500,Xn=8e3,Zo=4;function el(e,t=Math.random){let n=Math.max(0,e),r=Math.min(bs*2**n,Xn);return Math.floor(t()*r)}o(el,"backoffDelayMs");var hs=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 Qn(e){return hs[e]}o(Qn,"userFacingError");function tl(e,t,n){Object.defineProperty(e,t,{value:n,enumerable:false,writable:false,configurable:false});}o(tl,"defineHidden");var Ts=/^[a-z][a-z0-9_]{0,63}$/;function ae(e,t){let n=en(t?.wireCode,t?.wireEnvelope),r={code:e,category:Jo(e),retryable:t?.retryable??Qo(e),displayMessage:Qn(e)};if(t?.httpStatus!==void 0&&(r.httpStatus=t.httpStatus),t?.requestId&&(r.requestId=t.requestId),typeof t?.reasonCode=="string"&&Ts.test(t.reasonCode)&&(r.reasonCode=t.reasonCode),n);return t?.wireMessage&&tl(r,"wireMessage",t.wireMessage),t?.raw!==void 0&&t.raw!==null&&tl(r,"raw",t.raw),Object.freeze(r)}o(ae,"makeEverfurError");function V(e,t){return Object.freeze(t===void 0?{ok:true,value:e}:{ok:true,value:e,warning:t})}o(V,"ok");function x(e){return Object.freeze({ok:false,error:e})}o(x,"err");var tn=class tn extends Error{constructor(t,n){super(n),this.name="EverfurConfigError",this.kind=t,Object.setPrototypeOf(this,tn.prototype);}};o(tn,"EverfurConfigError");var Et=tn;function Es(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(Es,"authHeaders");function kt(e,t){return {...e,headers:{...ks(e.headers),...Es(t)}}}o(kt,"withAuthHeaders");function ks(e){if(!e)return {};let t={};for(let[n,r]of Object.entries(e)){let i=n.toLowerCase();i==="authorization"||i==="x-everfur-partner-key"||(t[n]=r);}return t}o(ks,"stripAuthHeaders");async function nl(e,t){if(t.mode==="anonymous")return t.transport.request(kt(e,{mode:"anonymous",publishableKey:t.publishableKey,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));let n;try{n=await t.identity.currentToken();}catch{return x(Zn())}let r=await t.transport.request(kt(e,{mode:"personalized",token:n,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));if(r.ok||r.error.httpStatus!==401)return r;let i;try{i=await t.identity.currentToken({forceRefresh:!0});}catch{return x(Zn())}let l=await t.transport.request(kt(e,{mode:"personalized",token:i,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));return !l.ok&&l.error.httpStatus===401?x(Zn(l.error.httpStatus)):l}o(nl,"authedSend");function Zn(e){return ae("authRejected",{retryable:false,...e!==void 0?{httpStatus:e}:{}})}o(Zn,"authRejectedError");function rl(e){return ae("internalError",{retryable:true,wireMessage:Cs(e)})}o(rl,"networkError");function Cs(e){return e instanceof Error?e.message:typeof e=="string"?e:"network request failed"}o(Cs,"describeCause");var Ss=3e4,Rs=Xn*2,_s="idempotency-key",xs=new Set(["POST","PUT","PATCH","DELETE"]),ws=Object.freeze({onEvent(){}}),Ps=Object.freeze({setTimeout:o((e,t)=>setTimeout(e,t),"setTimeout"),clearTimeout:o(e=>clearTimeout(e),"clearTimeout"),now:o(()=>Date.now(),"now")});function Is(e){let t=e.trim().replace(/[^A-Za-z0-9_.:-]/g,"-");return t.length===0?null:`efs_${t}`.slice(0,128)}o(Is,"seededIdempotencyKey");function Ct(e){let t=e.observer??ws,n=e.timers??Ps,r=e.rng??Math.random,i=e.sleep??((f,y)=>Us(f,n,y)),l=e.maxAttempts??Zo,a=e.unaryTimeoutMs??Ss,s=e.newIdempotencyKey??er(),d=o(f=>{try{t.onEvent(f);}catch{}},"emit");async function c(f,y,C){let _=C?.maxAttempts,I=Math.max(1,_??l),S=C?.idempotent??xs.has(y.method),E=C?.idempotencyKey===void 0?null:Is(C.idempotencyKey),T=S?E??s():null,D=Os(y,T),h=0;for(;;){let z=o(le=>Object.freeze({call:f,method:y.method,path:y.path,attempt:h,...T?{idempotencyKey:T}:{},...le}),"stamp");d(z({phase:"attempt"}));let B=js(a,n),N=Hs(B.signal,y.signal),M;try{M=await nl({...D,signal:N.signal},e.auth);}catch(le){M=x(rl(le));}finally{N.dispose(),B.cancel();}if(M.ok)return d(z({phase:"settled",ok:true,reason:"ok"})),M;let $=M.error,me=Ds($,h,{maxAttempts:I,rng:r,now:n.now(),aborted:y.signal?.aborted===true,..._!==void 0?{perCallMaxAttempts:_}:{},...e.errorPolicy!==void 0?{policy:e.errorPolicy}:{}}),X={ok:false,code:$.code,reason:me.reason,...$.httpStatus!==void 0?{httpStatus:$.httpStatus}:{},...$.requestId!==void 0?{requestId:$.requestId}:{}};if(!me.retry)return d(z({phase:"settled",...X})),x($);if(d(z({phase:"retry",...X,delayMs:me.delayMs})),await i(me.delayMs,y.signal),y.signal?.aborted===true)return d(z({phase:"settled",...X,reason:"aborted"})),x($);h+=1;}}o(c,"send");async function p(f){return kt(f,await zs(e.auth))}o(p,"authorize");async function*g(f,y,C){d(Object.freeze({call:f,phase:"stream.open",method:y.method,path:y.path,attempt:0}));try{yield*e.auth.transport.stream(y,C);}catch{yield Uo({code:"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null,serverRequestId:null});}}return o(g,"stream"),Object.freeze({send:c,authorize:p,stream:g})}o(Ct,"createRequestFunnel");function Os(e,t){let n={};for(let[r,i]of Object.entries(e.headers??{}))r.toLowerCase()!==_s&&(n[r]=i);return t!==null&&(n["Idempotency-Key"]=t),{...e,headers:n}}o(Os,"assembleHeaders");function er(){let e=0;return ()=>`efk_${Date.now().toString(36)}_${(e++).toString(36)}_${Math.random().toString(36).slice(2,12)}`}o(er,"defaultIdempotencyKeyFactory");var As=10;function Ds(e,t,n){if(n.aborted)return {retry:false,reason:"aborted"};let r=Bs(e);if(r==="quota")return {retry:false,reason:"daily-quota-exhausted"};if(r!=="burst"&&!Jn(e.code))return {retry:false,reason:"terminal-code"};let i=r==="burst"?"burst-throttle":"retryable-code";if(o(()=>{if(n.policy===void 0)return false;try{return !n.policy.shouldRetry(e.code,t)}catch{return false}},"policyVetoedRetry")())return {retry:false,reason:"terminal-code"};let a=o(()=>{if(n.policy===void 0)return null;let c;try{c=n.policy.maxAttempts(e.code);}catch{return null}return typeof c!="number"||!Number.isFinite(c)?null:Math.max(1,Math.min(As,Math.floor(c)))},"policyCeiling"),s=n.perCallMaxAttempts??a()??n.maxAttempts;if(t+1>=s)return {retry:false,reason:"attempts-exhausted"};let d=Fs(e,n.now);return d!==null?d>Rs?{retry:false,reason:"server-reset-beyond-budget"}:{retry:true,reason:i,delayMs:d}:{retry:true,reason:i,delayMs:el(t,n.rng)}}o(Ds,"decideRetry");function Bs(e){let t=e.code==="unknown"?Xo(Vs(e.raw)):e.code;return t==="quotaExceeded"?"quota":t==="rateLimited"||e.httpStatus===429?"burst":null}o(Bs,"throttleKind");function Fs(e,t){let n=Ls(e.raw);if(n!==null){let i=n-t;return i>0?i:0}let r=Ns(e.raw);return r===null?null:Math.round(r*1e3)}o(Fs,"retryOverrideMs");function Ns(e){for(let t of tr(e)){let n=t.retry_after_seconds;if(typeof n=="number"&&Number.isFinite(n)&&n>=0)return n}return null}o(Ns,"findRetryAfterSeconds");function Ls(e){for(let t of tr(e)){let n=t.resets_at,r=Ms(n);if(r!==null)return r}return null}o(Ls,"findResetsAt");function tr(e){if(!ol(e))return [];let t=[e];for(let n of ["error","detail"]){let r=e[n];ol(r)&&t.push(r);}return t}o(tr,"candidateScopes");function Ms(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(Ms,"parseInstantMs");function Vs(e){for(let t of tr(e)){let n=t.code;if(typeof n=="string"&&n.length>0)return n}return null}o(Vs,"rawWireCode");function ol(e){return typeof e=="object"&&e!==null}o(ol,"isRecord");async function zs(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(zs,"resolveDeviceAuth");function js(e,t){let n=new AbortController,r=t.setTimeout(()=>n.abort(),e);return {signal:n.signal,cancel:o(()=>t.clearTimeout(r),"cancel")}}o(js,"boundedSignal");function Hs(e,t){let n=o(()=>{},"noop");if(!t)return {signal:e,dispose:n};let r=new AbortController;if(e.aborted||t.aborted)return r.abort(),{signal:r.signal,dispose:n};let i=o(()=>r.abort(),"onAbort");return e.addEventListener("abort",i,{once:true}),t.addEventListener("abort",i,{once:true}),{signal:r.signal,dispose:o(()=>{e.removeEventListener("abort",i),t.removeEventListener("abort",i);},"dispose")}}o(Hs,"mergeSignals");function Us(e,t,n){return e<=0||n?.aborted===true?Promise.resolve():new Promise(r=>{let i=t.setTimeout(()=>{n?.removeEventListener("abort",l),r();},e),l=o(()=>{t.clearTimeout(i),r();},"onAbort");n?.addEventListener("abort",l,{once:true});})}o(Us,"delayAbortable");var sl="televet_booking_not_live";function nn(e){return ae("conflict",{retryable:false,reasonCode:sl,wireMessage:`the booking was answered with a consult whose status is ${e}, which is not a live visit`})}o(nn,"televetBookingNotLiveError");var nr="televet_booking_key_reused",ll="IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST";function rn(e){return e.httpStatus!==409||e.reasonCode===nr||St(e)?.code!==ll?e:ae(e.code,{retryable:false,httpStatus:409,...e.requestId!==void 0?{requestId:e.requestId}:{},wireCode:ll,reasonCode:nr,...e.wireMessage!==void 0?{wireMessage:e.wireMessage}:{},raw:e.raw})}o(rn,"foldTelevetBookingKeyReused");function St(e){let t=e.raw;if(typeof t!="object"||t===null)return null;let n=t,r=n.detail??n.error;return typeof r=="object"&&r!==null?r:n}o(St,"details");function Ws(e){let t=St(e)?.categories;return Array.isArray(t)?Object.freeze(t.filter(n=>typeof n=="string")):Object.freeze([])}o(Ws,"categoriesOf");function il(e){let t=St(e)?.retry_after_seconds;return typeof t=="number"&&Number.isFinite(t)&&t>0?t:null}o(il,"retryAfterOf");function al(e){let t=e.wireMessage;if(typeof t=="string"&&t.trim().length>0)return t.trim();let n=St(e)?.message;return typeof n=="string"&&n.trim().length>0?n.trim():null}o(al,"messageOf");function qs(e){let t=e.reasonCode;if(typeof t=="string"&&t.length>0)return t;let n=St(e),r=n?.code??n?.error_code;return typeof r=="string"&&r.length>0?r:null}o(qs,"codeOf");function Le(e){let t=e.httpStatus;if(t===402)return Object.freeze({kind:"not_entitled"});if(t===429||e.code==="rateLimited"||e.code==="quotaExceeded")return Object.freeze({kind:"rate_limited",retryAfterSeconds:il(e),message:al(e)});if(t===404)return Object.freeze({kind:"unavailable"});switch(qs(e)){case "televet_rate_limited":return Object.freeze({kind:"rate_limited",retryAfterSeconds:il(e),message:al(e)});case "televet_emergency_ack_required":return Object.freeze({kind:"emergency",categories:Ws(e)});case "televet_not_entitled":return Object.freeze({kind:"not_entitled"});case "televet_slot_conflict":return Object.freeze({kind:"slot_taken"});case "televet_hold_invalid":return Object.freeze({kind:"slot_taken"});case sl:return Object.freeze({kind:"slot_taken"});case nr:return Object.freeze({kind:"slot_taken"});case "televet_clinician_cannot_prescribe":case "televet_clinician_unavailable":case "televet_clinician_not_bookable":return Object.freeze({kind:"clinician_unavailable"});case "televet_membership_conflict":return Object.freeze({kind:"not_entitled"});case "televet_registry_unavailable":return Object.freeze({kind:"failed"});}return Object.freeze({kind:"failed"})}o(Le,"televetBookingRefusal");function Ks(e){try{return new URL(e.trim()).protocol==="https:"}catch{return false}}o(Ks,"isSafeRoomUrl");function $s(e,t){return Ks(e)&&t.trim().length>0}o($s,"isUsableRoomCredential");function on(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}o(on,"isRecord");function rr(e,t){return typeof e=="number"&&Number.isInteger(e)&&e>=t?e:null}o(rr,"wholeNumber");function Ys(e){if(!on(e))return null;let t=rr(e.consult_minutes,1),n=rr(e.auto_end_minutes,0),r=rr(e.warn_before_seconds,0);return t===null||n===null||r===null?null:Object.freeze({consultMinutes:t,autoEndMinutes:n,warnBeforeSeconds:r})}o(Ys,"parseCallLimits");function or(e){if(!on(e))return null;let t=e.room_url??e.url,n=e.token;if(typeof t!="string"||typeof n!="string"||!$s(t,n))return null;let r=e.recording_notice;return Object.freeze({roomUrl:t.trim(),token:n,recordingNotice:typeof r=="boolean"?r:true,callLimits:Ys(e.call_limits)})}o(or,"parseVetCallCredential");function lr(e){let t=dl(e.raw);return t!==null&&t.length>0?t:null}o(lr,"vetCallJoinReason");function dl(e){if(!on(e))return null;let t=e.detail??e.error,r=(on(t)?t:e).reason;return typeof r=="string"?r:null}o(dl,"reasonOf");function ir(e){if(e.httpStatus===404)return "unavailable";let t=dl(e.raw);return t==="too_early"||t==="too_late"||t==="room_not_ready"?t:t!==null&&t.startsWith("status_")?"not_joinable":"unknown"}o(ir,"vetCallJoinRefusal");var ul=["scheduled","in_progress","awaiting_summary","completed","cancelled_owner","cancelled_ops","no_show_owner","no_show_vet"],Ke=new Set(["completed","cancelled_owner","cancelled_ops","no_show_owner","no_show_vet"]),Gs=new Set(["scheduled","in_progress","awaiting_summary"]);function ln(e){return Gs.has(e.status)}o(ln,"isLiveConsult");var pl=["wellness","prescription"],Js=60;function fl(e){let t=Date.parse(e.startsAt),n=Date.parse(e.endsAt);if(Number.isNaN(t)||Number.isNaN(n))return null;let r=Math.round((n-t)/6e4);return r>0?Math.min(r,Js):null}o(fl,"televetSlotMinutes");var an=64,xe=2e3,sn=10;function ve(e){return typeof e=="string"&&/^[A-Za-z]{2}$/.test(e.trim())}o(ve,"isWellFormedStateCode");function _e(e){return typeof e=="object"&&e!==null?e:null}o(_e,"row");function Q(e){return typeof e=="string"&&e.length>0?e:null}o(Q,"str");function Me(e){return typeof e=="string"&&e.trim().length>0?e.trim():null}o(Me,"trimmedOrNull");function it(e,t){return typeof e=="boolean"?e:t}o(it,"bool");function ar(e){return typeof e=="number"&&Number.isFinite(e)?e:null}o(ar,"num");function cl(e,t){return typeof t=="string"&&e.includes(t)?t:"unknown"}o(cl,"closed");function at(e,t){if(!Array.isArray(e))return Object.freeze([]);let n=[];for(let r of e){let i=t(r);i!==null&&n.push(i);}return Object.freeze(n)}o(at,"parseList");function yl(e,t){let n=_e(e);return n===null?null:Object.freeze({state:Q(n.state)??t,wellnessAvailable:it(n.wellness_available,false),prescriptionsAvailable:it(n.prescriptions_available,false),cancellationPolicyText:Me(n.cancellation_policy_text)})}o(yl,"parseStatePolicy");function ml(e){let t=_e(e);if(t===null)return null;let n=Me(t.summary),r=Me(t.version);return n===null||r===null?null:Object.freeze({summary:n,version:r})}o(ml,"parseCancellationPolicy");function vl(e){let t=_e(e);if(t===null)return null;let n=Q(t.clinician_id),r=Q(t.display_name);return n===null||r===null?null:Object.freeze({clinicianId:n,displayName:r,credentials:Me(t.credentials_text),rating:ar(t.rating),ratingCount:ar(t.rating_count),bio:Me(t.bio),photoRef:Q(t.photo_ref),licensedStates:at(t.licensed_states,i=>{let l=_e(i),a=l===null?null:Q(l.state);return a===null?null:Object.freeze({state:a,canPrescribe:it(l?.can_prescribe,false)})})})}o(vl,"parseClinician");function sr(e){let t=_e(e);if(t===null)return null;let n=Q(t.slot_id),r=Q(t.starts_at);return n===null||r===null?null:Object.freeze({slotId:n,startsAt:r,endsAt:Q(t.ends_at)??r})}o(sr,"parseSlot");function gl(e){let t=_e(e);if(t===null)return null;let n=Q(t.slot_id),r=Q(t.hold_expires_at);return n===null||r===null?null:Object.freeze({slotId:n,expiresAt:r})}o(gl,"parseSlotHold");function Rt(e){let t=_e(e);if(t===null)return null;let n=Q(t.consult_id),r=Q(t.scheduled_at);return n===null||r===null?null:Object.freeze({consultId:n,petId:Q(t.pet_id)??"",clinicianId:Q(t.clinician_id)??"",clinicianName:Me(t.display_name),reasonText:Me(t.reason_text),mediaRefs:at(t.media_refs,i=>Q(i)),status:cl(ul,t.status),kind:cl(pl,t.kind),scheduledAt:r,emergencyFlagged:it(t.emergency_flagged,false),hasRoom:Q(t.meeting_url)!==null})}o(Rt,"parseConsult");function bl(e){let t=_e(e);return Object.freeze({active:it(t?.active,false)})}o(bl,"parseBookingEntitlement");var dn=240;function hl(e){let t=_e(e);if(t===null)return null;let n=ar(t.fee_cents);return n===null||n<0?null:Object.freeze({feeCents:n,currency:Q(t.currency)??"usd",feeRecorded:it(t.fee_recorded,n>0),summary:Me(t.summary)})}o(hl,"parseCancelReceipt");var Ve="/widget/v1/televet",Xs=`${Ve}/state-policy`,Qs=`${Ve}/vets`,Tl=`${Ve}/slots`,Zs=`${Ve}/slots/next`,cn=`${Ve}/consults`,ed=`${Ve}/entitlement`,td=`${Ve}/cancellation-policy`;function El(e){return `${Tl}/${encodeURIComponent(e)}/hold`}o(El,"televetHoldCall");function kl(e){return `${cn}/${encodeURIComponent(e)}/reschedule`}o(kl,"televetRescheduleCall");function un(e){return `${cn}/${encodeURIComponent(e)}`}o(un,"televetConsultCall");function Cl(e){return `${un(e)}/join`}o(Cl,"televetJoinCall");function Sl(e){return `${un(e)}/cancel`}o(Sl,"televetCancelCall");var Rl=100;function se(e){return x(ae("validationFailed",{retryable:false,wireMessage:e}))}o(se,"invalid");function $e(e){return x(ae("internalError",{retryable:false,httpStatus:502,wireMessage:e}))}o($e,"unusable");function dr(e){return e.httpStatus===404}o(dr,"isDark");function st(e,t,n){try{e?.track(t,n);}catch{}}o(st,"safeTrack");function _l(e){if(e.pet_id.trim().length===0)return "pet_id is required";if(e.clinician_id.trim().length===0)return "clinician_id is required";if(e.slot_id.trim().length===0)return "slot_id is required";if(!ve(e.state))return "state must be a two-letter US state code";let t=e.reason_text.trim();return t.length===0?"reason_text is required":t.length>xe?`reason_text must be at most ${xe} characters`:nd(e)}o(_l,"validateBookingBody");function nd(e){let t=e.state_attested===true,n=e.cancellation_policy_version?.trim()??"";return t!==n.length>0?"state_attested and cancellation_policy_version must be sent together or omitted together":n.length>an?`cancellation_policy_version must be at most ${an} characters`:null}o(nd,"attestationRefusal");function ur(e){let t=e.funnel??Ct({auth:e.auth,...e.errorPolicy?{errorPolicy:e.errorPolicy}:{}}),n=e.telemetry;return {async statePolicy(r,i){let l=r.trim();if(!ve(l))return se("state must be a two-letter US state code");let a=await t.send("televet.booking.state_policy",{method:"GET",path:`${Xs}/${encodeURIComponent(l)}`,...i?{signal:i}:{}});if(!a.ok)return x(a.error);let s=yl(a.value,l);return s===null?$e("the state policy response was unreadable"):V(s)},async entitlement(r){let i=await t.send("televet.booking.entitlement",{method:"GET",path:ed,...r?{signal:r}:{}});return i.ok?V(bl(i.value)):x(i.error)},async cancellationPolicy(r){let i=await t.send("televet.booking.cancellation_policy",{method:"GET",path:td,...r?{signal:r}:{}});return i.ok?V(ml(i.value)):V(null)},async clinicians(r,i){let l=r.trim();if(!ve(l))return se("state must be a two-letter US state code");let a=await t.send("televet.booking.clinicians",{method:"GET",path:Qs,query:{state:l},...i?{signal:i}:{}});return a.ok?V(at(cr(a.value,"vets"),vl)):dr(a.error)?V(Object.freeze([])):x(a.error)},async slots(r,i){let l=r.trim();if(l.length===0)return se("clinicianId is required");let a=await t.send("televet.booking.slots",{method:"GET",path:Tl,query:{clinician_id:l},...i?{signal:i}:{}});return a.ok?V(at(cr(a.value,"slots"),sr)):dr(a.error)?V(Object.freeze([])):x(a.error)},async nextSlot(r){let i=await t.send("televet.booking.next_slot",{method:"GET",path:Zs,...r?{signal:r}:{}});return i.ok?V(sr(od(i.value,"slot"))):V(null)},async holdSlot(r){let i=r.trim();if(i.length===0)return se("slotId is required");let l=await t.send("televet.booking.hold",{method:"POST",path:El(i)},{idempotent:false,maxAttempts:1});if(!l.ok)return st(n,"televet.booking.hold_failed",{status:l.error.httpStatus??null}),x(l.error);let a=gl(l.value);return a===null?$e("the hold response carried no usable expiry"):V(a)},async book(r,i){let l=_l(r);if(l!==null)return se(l);let a=i.trim();if(a.length===0)return se("idempotencyKey is required");let s=await t.send("televet.booking.book",{method:"POST",path:cn,body:rd(r)},{idempotent:true,idempotencyKey:a,maxAttempts:1});if(!s.ok)return st(n,"televet.booking.book_failed",{status:s.error.httpStatus??null}),x(rn(s.error));let d=Rt(s.value);return d===null?$e("the booking response was unreadable"):ln(d)?V(d):(st(n,"televet.booking.book_failed",{status:null,consult_status:d.status}),x(nn(d.status)))},async reschedule(r,i){let l=r.trim(),a=i.trim();if(l.length===0)return se("consultId is required");if(a.length===0)return se("slotId is required");let s=await t.send("televet.booking.reschedule",{method:"POST",path:kl(l),body:{new_slot_id:a}},{idempotent:false,maxAttempts:1});if(!s.ok)return st(n,"televet.booking.reschedule_failed",{status:s.error.httpStatus??null}),x(s.error);let d=Rt(s.value);return d===null?$e("the reschedule response was unreadable"):V(d)},async listConsults(r){let i=await t.send("televet.booking.consults",{method:"GET",path:cn,query:{limit:String(Rl)},...r?{signal:r}:{}});return i.ok?V(at(cr(i.value,"consults"),Rt)):dr(i.error)?V(Object.freeze([])):x(i.error)},async getConsult(r,i){let l=r.trim();if(l.length===0)return se("consultId is required");let a=await t.send("televet.booking.consult",{method:"GET",path:un(l),...i?{signal:i}:{}});if(!a.ok)return x(a.error);let s=Rt(a.value);return s===null?$e("the consult response was unreadable"):V(s)},async joinConsult(r){let i=r.trim();if(i.length===0)return se("consultId is required");let l=await t.send("televet.booking.join",{method:"POST",path:Cl(i)},{idempotent:false,maxAttempts:1});if(!l.ok)return st(n,"televet.booking.join_failed",{status:l.error.httpStatus??null}),x(l.error);let a=or(l.value);return a===null?$e("the join response carried no usable room credential"):V(a)},async cancelConsult(r,i){let l=r.trim(),a=i.trim();if(l.length===0)return se("consultId is required");if(a.length===0)return se("reason is required");if(a.length>dn)return se(`reason must be at most ${dn} characters`);let s=await t.send("televet.booking.cancel",{method:"POST",path:Sl(l),body:{reason:a}},{idempotent:false,maxAttempts:1});if(!s.ok)return st(n,"televet.booking.cancel_failed",{status:s.error.httpStatus??null}),x(s.error);let d=hl(s.value);return d===null?$e("the cancel response was unreadable"):V(d)}}}o(ur,"createTelevetBookingController");function rd(e){let t=e.cancellation_policy_version?.trim()??"",n=e.state_attested===true&&t.length>0;return {pet_id:e.pet_id,clinician_id:e.clinician_id,slot_id:e.slot_id,state:e.state,reason_text:e.reason_text.trim(),species:e.species,media_refs:[...e.media_refs],emergency_acknowledged:e.emergency_acknowledged,share_health_records:e.share_health_records,...n?{state_attested:true,cancellation_policy_version:t}:{}}}o(rd,"bookingWireBody");function cr(e,t){if(Array.isArray(e))return e;if(typeof e=="object"&&e!==null){let n=e,r=n[t]??n.items??n.data;if(Array.isArray(r))return r}return e}o(cr,"rows");function od(e,t){if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let n=e,r=n[t]??n.data;if(typeof r=="object"&&r!==null)return r}return e}o(od,"unwrap");var xl=Symbol.for("@everfur/sdk#EverfurContext@v1"),wl=globalThis,Pl=wl[xl]??(wl[xl]=createContext(null));Pl.displayName??="EverfurContext";function Ye(){let e=useContext(Pl);if(e===null)throw new Et("not-initialized","Everfur hooks must be called inside <EverfurProvider>. Wrap your tree once, high.");return e}o(Ye,"useEverfurContext");var ad=Object.freeze({chat:Object.freeze(["chat.message.create"]),records:Object.freeze(["records.upload.create","records.record.read"]),recordsClinic:Object.freeze(["records.clinic.create"]),video:Object.freeze(["video.gait.execute"]),photo:Object.freeze(["photo.checkup.execute"]),animations:Object.freeze(["animations.state.read"]),televet:Object.freeze(["televet.visit.create"])});function sd(e){return ad[e]}o(sd,"requires");function Il(e,t,n){let r=sd(e),i=new Map;for(let s of t)i.set(s.resource,s);if(n?.isPending===true&&r.some(s=>!i.has(s)))return pr({name:e,enabled:false,isPending:true,limits:{}});let l=dd(r,i);return r.filter(s=>i.get(s)?.granted!==true).length===0?pr({name:e,enabled:true,isPending:false,limits:l}):pr({name:e,enabled:false,isPending:false,limits:l,disabled:cd(r,i)})}o(Il,"decideCapability");function dd(e,t){let n={};for(let r of e){let i=t.get(r)?.limits;if(i)for(let[l,a]of Object.entries(i)){let s=n[l];n[l]=s===void 0?a:Math.min(s,a);}}return n}o(dd,"mergeLimits");function cd(e,t){for(let n of e){let r=t.get(n)?.disabled;if(r)return Object.freeze({reason:r.reason,level:r.level,recoverable:r.recoverable})}return Object.freeze({reason:Qn("accessDenied"),level:"user_entitlement",recoverable:false})}o(cd,"disabledFor");function pr(e){let t={name:e.name,enabled:e.enabled,isPending:e.isPending,limits:Object.freeze({...e.limits})};return e.disabled!==void 0&&(t.disabled=e.disabled),Object.freeze(t)}o(pr,"freezeDecision");function _t(e){let{runtime:t}=Ye(),n=t.entitlements,r=useSyncExternalStore(n.subscribe,n.getSnapshot,n.getSnapshot);return useMemo(()=>Il(e,r.decisions,{isPending:r.isPending}),[e,r])}o(_t,"useCapability");function de(e){let{runtime:t,userRef:n,scopeEpoch:r}=Ye();return useMemo(()=>{if(e)return e;if(n===null)return null;let{services:i}=t.registry;return ur({auth:i.authFor(n),telemetry:i.telemetry,...i.errorPolicy?{errorPolicy:i.errorPolicy}:{}})},[t,n,r,e])}o(de,"useTelevetBookingController");function fd(){let{userRef:e}=Ye(),t=_t("televet");return useMemo(()=>({available:t.enabled&&e!==null,isPending:t.isPending}),[t.enabled,t.isPending,e])}o(fd,"useTelevetBookingAvailable");function ze(e,t,n){let[r,i]=useState(()=>({key:e,data:null,isPending:t&&n!==null,error:null})),[l,a]=useState(0),s=useRef(n);s.current=n,useEffect(()=>{let p=s.current;if(!t||p===null){i({key:e,data:null,isPending:false,error:null});return}let g=new AbortController,f=true;return i(y=>y.key===e?{...y,isPending:true,error:null}:{key:e,data:null,isPending:true,error:null}),(async()=>{let y;try{y=await p(g.signal);}catch{f&&i({key:e,data:null,isPending:false,error:null});return}f&&(y.ok?i({key:e,data:y.value,isPending:false,error:null}):i({key:e,data:null,isPending:false,error:y.error}));})(),()=>{f=false,g.abort();}},[e,t,l]);let d=useCallback(()=>a(p=>p+1),[]),c=r.key===e;return useMemo(()=>({enabled:t,data:c?r.data:null,isPending:t&&(!c||r.isPending),isError:c&&r.error!==null,error:c?r.error:null,refetch:d}),[t,c,r.data,r.isPending,r.error,d])}o(ze,"useTelevetRead");function yr(e,t){let n=e?.trim()??"",r=t?.statePolicy!==void 0&&ve(n),i=t?.statePolicy;return ze(`state-policy:${n}`,r,r&&i?l=>i.call(t,n,l):null)}o(yr,"useTelevetStatePolicy");function mr(e){let t=e?.entitlement!==void 0,n=e?.entitlement;return ze("entitlement",t,t&&n?r=>n.call(e,r):null)}o(mr,"useTelevetBookingEntitlement");function xt(e){let t=e?.cancellationPolicy!==void 0,n=e?.cancellationPolicy;return ze("cancellation-policy",t,t&&n?r=>n.call(e,r):null)}o(xt,"useTelevetCancellationPolicy");function vr(e,t){let n=e?.trim()??"",r=t?.clinicians!==void 0&&ve(n),i=t?.clinicians;return ze(`clinicians:${n}`,r,r&&i?l=>i.call(t,n,l):null)}o(vr,"useTelevetClinicians");function wt(e,t){let n=e?.trim()??"",r=t!==null&&n.length>0;return ze(`slots:${n}`,r,r&&t?i=>t.slots(n,i):null)}o(wt,"useTelevetSlots");function gr(e){let t=e?.nextSlot!==void 0,n=e?.nextSlot;return ze("next-slot",t,t&&n?r=>n.call(e,r):null)}o(gr,"useTelevetNextSlot");function yn(e){let[t,n]=useState(null),r=useRef(true),i=useRef(false),l=useRef(e);l.current=e,useEffect(()=>(r.current=true,()=>{r.current=false;}),[]);let a=useCallback((...s)=>{let d=l.current;if(d===null||i.current)return;let c=s[s.length-1],p=typeof c=="object"&&c!==null&&("onSuccess"in c||"onError"in c),g=p?c:void 0,f=p?s.slice(0,-1):s;i.current=true,n({variables:f[0]??null}),(async()=>{let y=null;try{y=await d(...f);}catch{y=null;}i.current=false,r.current&&n(null),y!==null&&(y.ok?g?.onSuccess?.(y.value):g?.onError?.(y.error));})();},[]);return useMemo(()=>({isPending:t!==null,variables:t?.variables??null,mutate:a}),[t,a])}o(yn,"useTelevetWrite");function Pt(e){return yn(e?t=>e.holdSlot(t):null)}o(Pt,"useTelevetHoldSlot");function br(e){return yn(e?(t,n)=>e.book(t,n):null)}o(br,"useTelevetBookConsult");function hr(e,t){return yn(t&&e?n=>t.reschedule(e,n):null)}o(hr,"useTelevetRescheduleConsult");function mn(e,t=0){let n=e?.listConsults!==void 0,r=e?.listConsults;return ze(`consults:${t}`,n,n&&r?i=>r.call(e,i):null)}o(mn,"useTelevetConsults");function Dl(e,t,n=0){let r=e?.trim()??"",i=t?.getConsult!==void 0&&r.length>0,l=t?.getConsult;return ze(`consult:${r}:${n}`,i,i&&l?a=>l.call(t,r,a):null)}o(Dl,"useTelevetConsult");function Bl(e,t){let n=t?.cancelConsult;return yn(t&&n&&e?r=>n.call(t,e,r):null)}o(Bl,"useTelevetCancelConsult");function Tr(e){return e.error!==null&&e.error.httpStatus===404}o(Tr,"televetReadIsDark");var Er=15,kr=250,yd=new Set(["scheduled","in_progress"]);function Ge(e){let t=Date.parse(e.scheduledAt);return Number.isNaN(t)?null:t}o(Ge,"startsAtMs");function md(e){let t=Ge(e);return t===null?null:t-Er*6e4}o(md,"televetJoinOpensAtMs");function Cr(e,t){if(e===null)return {ready:false,reason:"not_open_yet"};if(Ke.has(e.status))return {ready:false,reason:"consult_over"};if(e.status==="in_progress")return {ready:true};let n=Ge(e);return n===null?{ready:false,reason:"not_open_yet"}:t<n-Er*6e4?{ready:false,reason:"not_open_yet"}:t>n+kr*6e4?{ready:false,reason:"consult_over"}:{ready:true}}o(Cr,"televetJoinReadiness");function It(e,t){let n=[],r=[];for(let i of e){let l=Ge(i);(yd.has(i.status)&&l!==null&&l+kr*6e4>t?n:r).push(i);}return n.sort((i,l)=>(Ge(i)??0)-(Ge(l)??0)),r.sort((i,l)=>(Ge(l)??0)-(Ge(i)??0)),Object.freeze({upcoming:Object.freeze(n),past:Object.freeze(r)})}o(It,"splitTelevetVisits");function Sr(e){return e==="scheduled"}o(Sr,"canManageTelevetVisit");function Fl(e){let t=mn(e);return t.enabled?t.isPending?"pending":t.isError||It(t.data??[],Date.now()).upcoming.length>0?"visits":"booking":"booking"}o(Fl,"useTelevetLanding");function xr(e){if(e!==null&&typeof e=="object"&&!Object.isFrozen(e)){Object.freeze(e);for(let t of Object.keys(e))xr(e[t]);}return e}o(xr,"deepFreeze");var vd=Object.freeze({content:0,heading:2,control:1.8,compact:1.5,badge:1.3}),Ll={xs:4,sm:8,md:12,lg:16,xl:24,xxl:32},Ml={tile:5,xs:6,sm:10,md:14,lg:20,xl:28,pill:500},Nl={nano:8,small:9,micro:10,tiny:11,caption:12,bodyTight:13,body:14,subtitle:16,heading:18,verdict:24},gd={tight:1.15,snug:1.3,normal:1.4,relaxed:1.55},bd={regular:"400",medium:"500",bold:"700"},hd={eyebrow:1,monoWide:.9,headerBrand:-0.42,tight:-0.35},Td=0,vn="System",gn="monospace",Ed=["content","heading","control","compact","badge"];function kd(e){let t={};for(let n of Ed)t[n]=e;return t}o(kd,"authoredTierSizes");function Vl(){return {family:vn,mono:gn,fontUrl:null,families:{regular:vn,medium:vn,bold:vn,mono:gn,monoMedium:gn,monoBold:gn},namedFaces:{regular:false,medium:false,bold:false,mono:false,monoMedium:false,monoBold:false},fontUrls:{},size:Nl,tierSizes:kd(Nl),lineHeight:gd,weight:bd,letterSpacing:hd,scale:1,maxScale:Td,scaleCaps:vd}}o(Vl,"baseType");var zl={},Rr=Object.freeze({standard:Object.freeze([.2,0,0,1]),emphasized:Object.freeze([.2,.8,.2,1]),exit:Object.freeze([.4,0,1,1])});function _r(e){return `cubic-bezier(${e.join(", ")})`}o(_r,"cssCubicBezier");var jl={duration:{instant:80,fast:140,normal:220,slow:320},spring:{gentle:{damping:18,stiffness:200}},easing:{standard:_r(Rr.standard),emphasized:_r(Rr.emphasized),exit:_r(Rr.exit)},reducedMotion:false},Cd={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",errorRed:"#FF1B00",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",skeleton:"#EFE9E3",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.10)",checkupCardConcernBg:"rgba(239,167,0,0.10)"},Hl=xr({brightness:"light",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:Cd,space:Ll,radius:Ml,type:Vl(),motion:jl,slots:zl}),Sd={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",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",skeleton:"#23272C",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.16)",checkupCardConcernBg:"rgba(239,167,0,0.16)"};xr({brightness:"dark",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:Sd,space:Ll,radius:Ml,type:Vl(),motion:jl,slots:zl});var Ul=Symbol.for("@everfur/sdk#EverfurThemeContext@v1"),Wl=globalThis,wr=Wl[Ul]??(Wl[Ul]=createContext(Hl));wr.displayName??="EverfurThemeContext";function R(){return useContext(wr)}o(R,"useEverfurTheme");function Id(e,t){let n=e.scaleCaps[t];return n>0?n:void 0}o(Id,"tierMultiplier");function v({tier:e="content",...t}){let{type:n}=R(),r=Id(n,e);return createElement(Text,r===void 0?t:{maxFontSizeMultiplier:r,...t})}o(v,"Text");var Kl=forwardRef(o(function(t,n){return createElement(TextInput,{...t,...n===null?{}:{ref:n}})},"TextInput"));var Od=Object.freeze({regular:"regular",medium:"medium",bold:"bold",mono:"regular",monoMedium:"medium",monoBold:"bold"});function b(e,t){let n=e.type,r=n.families[t];return t==="mono"||n.namedFaces[t]?{fontFamily:r}:{fontFamily:r,fontWeight:n.weight[Od[t]]}}o(b,"face");var Or=class Or extends Component{constructor(){super(...arguments);this.state={failed:false,key:this.props.resetKey};}static getDerivedStateFromError(){return {failed:true}}static getDerivedStateFromProps(n,r){return Object.is(n.resetKey,r.key)?null:{failed:false,key:n.resetKey}}render(){return this.state.failed?this.props.fallback:this.props.children}};o(Or,"HostRenderBoundary");var Pr=Or;function Dd({render:e}){return e()}o(Dd,"RenderHost");function Ir({render:e,fallback:t,resetKey:n}){return createElement(Pr,{fallback:t,resetKey:n,children:createElement(Dd,{render:e})})}o(Ir,"HostRender");var Bd=48;function Fd(e){return e.isPending?"pending":e.enabled?"enabled":"disabled"}o(Fd,"selectView");function Xl(e){let{capability:t,children:n,renderDisabled:r,renderPending:i,style:l}=e,a=_t(t),s=useMemo(()=>Fd(a),[a]);switch(s){case "enabled":return n;case "pending":return i?jsx(Ir,{render:i,fallback:jsx(Gl,{capability:t,style:l})}):jsx(Gl,{capability:t,style:l});case "disabled":return r?jsx(Ir,{render:()=>r(a),fallback:jsx(Jl,{decision:a,style:l}),resetKey:a}):jsx(Jl,{decision:a,style:l});default:return Xt(s)}}o(Xl,"CapabilityGate");function Gl({capability:e,style:t}){let n=R(),r=useMemo(()=>Ql(n),[n]);return jsx(View,{style:[r.offstate,t],accessible:true,accessibilityState:{busy:true},accessibilityLabel:`Loading ${e}`,children:jsx(View,{style:r.skeletonBar})})}o(Gl,"PendingSkeleton");function Jl({decision:e,style:t}){let n=R(),r=useMemo(()=>Ql(n),[n]),i=e.disabled?.reason??"";return jsx(View,{style:[r.offstate,t],accessible:true,accessibilityRole:"text",accessibilityLabel:i,children:i.length>0?jsx(v,{style:r.offstateText,children:i}):null})}o(Jl,"OffState");function Ql(e){let{color:t,space:n,radius:r,type:i}=e;return StyleSheet.create({offstate:{minHeight:Bd,justifyContent:"center",paddingHorizontal:n.lg,paddingVertical:n.md,backgroundColor:t.surfaceCream,borderRadius:r.md,borderWidth:StyleSheet.hairlineWidth,borderColor:t.brandBorder},offstateText:{...b(e,"regular"),fontSize:i.size.body,lineHeight:Math.round(i.size.body*i.lineHeight.normal),color:t.text.muted},skeletonBar:{height:n.md,borderRadius:r.xs,backgroundColor:t.brandSofter}})}o(Ql,"makeStyles");function bn(e){for(let t=0;t<e.length;t+=1){let n=e.charCodeAt(t);if(n>=55296&&n<=56319){let r=e.charCodeAt(t+1);if(!(r>=56320&&r<=57343))return true;t+=1;}else if(n>=56320&&n<=57343)return true}return false}o(bn,"hasLoneSurrogate");function hn(e){return [...e].length}o(hn,"serverLength");var Zl=Object.freeze({dog:"dog",canine:"dog",k9:"dog",puppy:"dog",cat:"cat",feline:"cat",kitten:"cat"});function ei(e){if(typeof e!="string")return null;let t=e.trim().toLowerCase();return Object.prototype.hasOwnProperty.call(Zl,t)?Zl[t]:null}o(ei,"canonicalPetSpecies");var ti=50,Nd=128,Br=120,ni=120,Ld=2e3,ri=120,Md=80,ii=new Set(["male","female","unknown"]),ai=new Set(["day","month","year"]),si=new Set(["low","medium","high","athletic"]),di=new Set(["indoor","outdoor","both"]),ci=new Set(["mild","moderate","severe"]),Vd=/^(\d{4})-(\d{2})-(\d{2})$/,ui=[["sex","sex"],["spayedNeutered","spayed_neutered"],["birthDate","birth_date"],["birthDatePrecision","birth_date_precision"],["activityLevel","activity_level"],["indoorOutdoor","indoor_outdoor"],["foodBrand","food_brand"],["foodType","food_type"],["microchipId","microchip_id"]],pi=[["allergies","allergies"],["medications","medications"],["supplements","supplements"],["conditions","conditions"]];Object.freeze([...ui,...pi].map(([e])=>e));function zd(e){let t=Vd.exec(e);if(t===null)return false;let[n,r,i]=[Number(t[1]),Number(t[2]),Number(t[3])],l=new Date(Date.UTC(n,r-1,i));return l.getUTCFullYear()===n&&l.getUTCMonth()===r-1&&l.getUTCDate()===i}o(zd,"isRealDate");var At=o(e=>(t,n)=>typeof n=="string"&&e.has(n)?null:`${t} must be one of ${[...e].join(", ")}`,"oneOf"),jd=o((e,t)=>typeof t=="boolean"?null:`${e} must be true or false`,"boolean"),En=o((e,t)=>typeof t=="string"&&zd(t)?null:`${e} must be a real date written YYYY-MM-DD`,"date"),be=o((e,t={})=>(n,r)=>{if(typeof r!="string")return `${n} must be a string`;if(bn(r))return `${n} contains an unpaired surrogate and cannot be encoded`;let i=t.trimmed?r.trim():r;if(t.required&&i.length===0)return `${n} is required and must not be blank`;let l=hn(i);return l<=e?null:`${n} is ${l} characters; the server accepts at most ${e}`},"text"),Hd={sex:At(ii),spayedNeutered:jd,birthDate:En,birthDatePrecision:At(ai),activityLevel:At(si),indoorOutdoor:At(di),foodBrand:be(ri),foodType:be(ri),microchipId:be(Md)},Fr=["ref","ref",false,be(Nd,{required:true,trimmed:true})],Nr=["notes","notes",false,be(Ld,{trimmed:true})],oi=[Fr,["name","name",true,be(Br,{required:true,trimmed:true})],["dose","dose",false,be(ni,{trimmed:true})],["frequency","frequency",false,be(ni,{trimmed:true})],["startDate","start_date",false,En],["endDate","end_date",false,En],Nr],Ud={allergies:[Fr,["allergen","allergen",true,be(Br,{required:true,trimmed:true})],["severity","severity",false,At(ci)],Nr],medications:oi,supplements:oi,conditions:[Fr,["conditionName","condition_name",true,be(Br,{required:true,trimmed:true})],["diagnosedDate","diagnosed_date",false,En],Nr]};function Wd(e,t,n){let r=`${e}[${t}]`;if(typeof n!="object"||n===null||Array.isArray(n))return {error:`${r} must be an object`};let i=n,l={};for(let[d,c,p,g]of Ud[e]){let f=i[d];if(f==null){if(p)return {error:`${r}.${d} is required`};f===null&&(l[c]=null);continue}let y=g(`${r}.${d}`,f);if(y!==null)return {error:y};l[c]=f;}let a=l.start_date,s=l.end_date;return typeof a=="string"&&typeof s=="string"&&s<a?{error:`${r}.endDate must not be before startDate`}:{item:l}}o(Wd,"itemToWire");function qd(e,t){if(!Array.isArray(t))return {error:`${e} must be an array (send [] to clear it)`};if(t.length>ti)return {error:`${e} has ${t.length} items; the server accepts at most ${ti}`};let n=[],r=new Set;for(let i=0;i<t.length;i+=1){let l=Wd(e,i,t[i]);if("error"in l)return l;let a=l.item.ref;if(typeof a=="string"){let s=a.trim();if(r.has(s))return {error:`${e}: ref ${JSON.stringify(s)} is used twice; a ref names one item`};r.add(s);}n.push(l.item);}return {items:n}}o(qd,"listToWire");function fi(e,t){let n=e,r={};for(let[a,s]of ui){let d=n[a];if(d!==void 0){if(d!==null){let c=Hd[a](a,d);if(c!==null)return {error:c}}r[s]=d;}}let i=n.birthDate!==void 0,l=n.birthDatePrecision!==void 0;if(i!==l||i&&n.birthDate===null!=(n.birthDatePrecision===null))return {error:"birthDate and birthDatePrecision must be sent together, both set or both null"};for(let[a,s]of pi){let d=n[a];if(d===void 0)continue;let c=qd(a,d);if("error"in c)return c;r[s]=c.items;}return Object.keys(r).length>0&&t!==void 0&&ei(t)===null?{error:"health fields need a pet Everfur reads as a dog or a cat (dog, canine, k9, puppy, cat, feline, kitten)"}:{body:r}}o(fi,"petHealthToWire");var G=o(e=>typeof e=="string"?e:null,"str"),Ot=o((e,t)=>typeof t=="string"&&e.has(t)?t:null,"pick"),Kd=o(e=>typeof e=="boolean"?e:null,"bool");function Tn(e,t){return Array.isArray(e)?Object.freeze(e.flatMap(n=>{if(typeof n!="object"||n===null||Array.isArray(n))return [];let r=t(n);return r===null?[]:[r]})):Object.freeze([])}o(Tn,"itemsFromWire");function li(e){let t=G(e.name);return t===null||t.length===0?null:Object.freeze({ref:G(e.ref),name:t,dose:G(e.dose),frequency:G(e.frequency),startDate:G(e.start_date),endDate:G(e.end_date),notes:G(e.notes)})}o(li,"medicationFromWire");function yi(e){let t=e.profile_version;return Object.freeze({profileVersion:typeof t=="number"&&Number.isInteger(t)&&t>=0?t:0,sex:Ot(ii,e.sex),spayedNeutered:Kd(e.spayed_neutered),birthDate:G(e.birth_date),birthDatePrecision:Ot(ai,e.birth_date_precision),activityLevel:Ot(si,e.activity_level),indoorOutdoor:Ot(di,e.indoor_outdoor),foodBrand:G(e.food_brand),foodType:G(e.food_type),microchipId:G(e.microchip_id),allergies:Tn(e.allergies,n=>{let r=G(n.allergen);return r===null||r.length===0?null:Object.freeze({ref:G(n.ref),allergen:r,severity:Ot(ci,n.severity),notes:G(n.notes)})}),medications:Tn(e.medications,li),supplements:Tn(e.supplements,li),conditions:Tn(e.conditions,n=>{let r=G(n.condition_name);return r===null||r.length===0?null:Object.freeze({ref:G(n.ref),conditionName:r,diagnosedDate:G(n.diagnosed_date),notes:G(n.notes)})})})}o(yi,"petHealthFromWire");var gi=100,bi=50,hi=100,Ti=50,Ei=500,$d=128,Yd=6e4;function Te(e){return ae("validationFailed",{retryable:false,wireMessage:e})}o(Te,"invalid");function Je(e,t,n){if(typeof t!="string")return Te(`${e} must be a string`);let r=hn(t);return r<=n?null:Te(`${e} is ${r} characters; the server accepts at most ${n}`)}o(Je,"checkString");function kn(e,t,n){return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=n?null:Te(`${e} must be a finite number between 0 and ${n}`)}o(kn,"outOfRange");function mi(e,t){if(typeof e!="string")return Te("pet_ref must be a string");if(e.trim().length===0)return Te("pet_ref must not be blank");if(bn(e))return Te("pet_ref contains an unpaired surrogate and cannot be encoded");if(t!=null&&typeof t!="object")return Te("profile must be an object");let n=[Je("pet_ref",e,$d)];return t?.name!==void 0&&n.push(Je("name",t.name,gi)),t?.species!==void 0&&n.push(Je("species",t.species,bi)),t?.breed!==void 0&&n.push(Je("breed",t.breed,hi)),t?.ageYears!==void 0&&n.push(kn("age_years",t.ageYears,Ti)),t?.weightKg!==void 0&&n.push(kn("weight_kg",t.weightKg,Ei)),n.find(r=>r!==null)??null}o(mi,"validate");function ki(e,t){let n=fi(e,t);return "error"in n?{error:Te(n.error)}:n}o(ki,"healthToWire");function Gd(e){if(typeof e!="object"||e===null)return {error:Te("patch must be an object")};let t=e,n=[["name","name",l=>Je("name",l,gi)],["species","species",l=>Je("species",l,bi)],["breed","breed",l=>Je("breed",l,hi)],["ageYears","age_years",l=>kn("age_years",l,Ti)],["weightKg","weight_kg",l=>kn("weight_kg",l,Ei)]],r={};for(let[l,a,s]of n){let d=t[l];if(d!==void 0){if(d!==null){let c=s(d);if(c!==null)return {error:c}}r[a]=d;}}let i=ki(t,t.species);return "error"in i?i:(Object.assign(r,i.body),Object.keys(r).length===0?{error:Te("patch must change at least one field")}:{body:r})}o(Gd,"patchToWire");function Jd(e){if(e==null)return {body:{}};let t=ki(e,e.species);return "error"in t?t:{body:{...e.name!==void 0?{name:e.name}:{},...e.species!==void 0?{species:e.species}:{},...e.breed!==void 0?{breed:e.breed}:{},...e.ageYears!==void 0?{age_years:e.ageYears}:{},...e.weightKg!==void 0?{weight_kg:e.weightKg}:{},...t.body}}}o(Jd,"toWire");var he=o(e=>typeof e=="string"?e:null,"str"),Cn=o(e=>typeof e=="number"&&Number.isFinite(e)?e:null,"num");function vi(e,t){let n=typeof e=="object"&&e!==null?e:{};return Object.freeze({petRef:he(n.pet_ref)??t,name:he(n.name),species:he(n.species),breed:he(n.breed),ageYears:Cn(n.age_years),weightKg:Cn(n.weight_kg)})}o(vi,"fromWire");function Ci(e){if(typeof e!="object"||e===null)return null;let t=e,n=he(t.pet_ref);return n===null||n.length===0?null:Object.freeze({petId:he(t.pet_id),petRef:n,name:he(t.name),species:he(t.species),breed:he(t.breed),ageYears:Cn(t.age_years),weightKg:Cn(t.weight_kg),updatedAt:he(t.updated_at)})}o(Ci,"widgetPetFromWire");function Xd(e){let t=Ci(e);return t===null?null:Object.freeze({...t,...yi(e)})}o(Xd,"widgetPetProfileFromWire");function Qd(e){let t=Array.isArray(e)?e:typeof e=="object"&&e!==null&&Array.isArray(e.pets)?e.pets:[];return Object.freeze(t.flatMap(n=>{let r=Ci(n);return r===null?[]:[r]}))}o(Qd,"petListFromWire");function Si(e){return Zd(Ct({auth:e}),Ct({auth:e,unaryTimeoutMs:Yd}))}o(Si,"createPetsRepository");function Zd(e,t=e){let n=o((i,l)=>l?{...i,signal:l}:i,"withSignal"),r=o(i=>mi(i,void 0)??`/widget/v1/pets/${encodeURIComponent(i)}`,"petPath");return {async list(i){let l=await e.send("pets.list",n({method:"GET",path:"/widget/v1/pets"},i?.signal));return l.ok?V(Qd(l.value)):x(l.error)},async registerPet(i,l,a){let s=mi(i,l);if(s!==null)return x(s);let d=Jd(l);if("error"in d)return x(d.error);let p={method:"POST",path:`/widget/v1/pets/${encodeURIComponent(i)}`,body:d.body},g=await e.send("pets.registerPet",a?.signal?{...p,signal:a.signal}:p);return g.ok?V(vi(g.value,i)):x(g.error)},async updatePet(i,l,a){let s=r(i);if(typeof s!="string")return x(s);let d=Gd(l);if("error"in d)return x(d.error);let c=await e.send("pets.updatePet",n({method:"PATCH",path:s,body:d.body},a?.signal));return c.ok?V(vi(c.value,i)):x(c.error)},async getPetProfile(i,l){let a=r(i);if(typeof a!="string")return x(a);let s=await e.send("pets.getPetProfile",n({method:"GET",path:`${a}/profile`},l?.signal));if(!s.ok)return x(s.error);let d=Xd(s.value);return d===null?x(ae("internalError",{retryable:false,httpStatus:502,wireMessage:"the pet profile response carried no pet_ref"})):V(d)},async deletePet(i,l){let a=r(i);if(typeof a!="string")return x(a);let s=await e.send("pets.deletePet",n({method:"DELETE",path:a},l?.signal));return s.ok?V(void 0):x(s.error)},async eraseUserData(i){let l=await t.send("pets.eraseUserData",n({method:"DELETE",path:"/widget/v1/me"},i?.signal),{maxAttempts:1});return l.ok?V(void 0):x(l.error)}}}o(Zd,"createPetsRepositoryOver");function dt(){let{runtime:e,userRef:t,activePet:n,scopeEpoch:r}=Ye(),i=useMemo(()=>Si(e.registry.services.authFor(t)),[e,t,r]),[l,a]=useState({repository:i,pets:[],loading:true,error:null}),s=l.repository===i?l:{pets:[],loading:true,error:null},d=useRef(0),c=useCallback(async()=>{let g=++d.current;a(y=>({...y,repository:i,loading:true,error:null,pets:y.repository===i?y.pets:[]}));let f=await i.list();g===d.current&&a(f.ok?{repository:i,pets:f.value,loading:false,error:null}:y=>({repository:i,pets:y.repository===i?y.pets:[],loading:false,error:f.error}));},[i]);useEffect(()=>(c(),()=>{d.current+=1;}),[c]);let p=useMemo(()=>n===null?null:s.pets.find(g=>g.petRef===n)??null,[n,s.pets]);return useMemo(()=>({pets:s.pets,activePet:p,loading:s.loading,error:s.error,refresh:c}),[s.pets,s.loading,s.error,p,c])}o(dt,"useEverfurPets");var je=Object.freeze(["pet","issues","reason","clinician","time","review","booked"]),Ri=Object.freeze({petId:null,state:null,clinicianId:null,slot:null,holdExpiresAt:null,shareHealthRecords:false,idempotencyKey:null});function Vr(e,t={}){let n=Object.freeze({...Ri,...t}),r=Mr(0,e);return Object.freeze({index:r,draft:n,furthestIndex:r})}o(Vr,"initialTelevetBookingState");function Sn(e,t){return e==="pet"?t.ownedPetCount<=1:e==="issues"?t.withIssues!==true:false}o(Sn,"isSkipped");function Rn(e){return je[e]}o(Rn,"stepAt");function Mr(e,t){for(let n=e;n<je.length;n+=1){let r=Rn(n);if(r&&!Sn(r,t))return n}return je.length-1}o(Mr,"nextVisible");function _i(e,t){for(let n=e;n>=0;n-=1){let r=Rn(n);if(r&&!Sn(r,t))return n}return null}o(_i,"previousVisible");function zr(e,t){return _i(e.index-1,t)!==null}o(zr,"hasPreviousStep");function jr(e,t,n){switch(t.type){case "patch":{let r={...e.draft,...t.patch};return ("petId"in t.patch&&t.patch.petId!==e.draft.petId||"state"in t.patch&&t.patch.state!==e.draft.state||"clinicianId"in t.patch&&t.patch.clinicianId!==e.draft.clinicianId)&&e.draft.slot?Object.freeze({...e,draft:Object.freeze({...r,slot:null,holdExpiresAt:null,idempotencyKey:null})}):Object.freeze({...e,draft:Object.freeze(r)})}case "next":{let r=Mr(e.index+1,n);return Object.freeze({...e,index:r,furthestIndex:Math.max(e.furthestIndex,r)})}case "back":{if(Rn(e.index)==="booked")return e;let r=_i(e.index-1,n);return r===null?e:Object.freeze({...e,index:r})}case "goTo":{let r=je.indexOf(t.step);if(r<0)return e;let i=Sn(t.step,n)?Mr(r,n):r;return Object.freeze({...e,index:i,furthestIndex:Math.max(e.furthestIndex,i)})}default:return e}}o(jr,"televetBookingReducer");function Hr(e){return Rn(e.index)??"pet"}o(Hr,"currentStep");function Dt(e,t){let n=t.trim();return !!e.petId&&!!e.clinicianId&&!!e.slot&&ve(e.state)&&n.length>0&&n.length<=xe}o(Dt,"canConfirm");function _n(e,t){if(!e.holdExpiresAt)return false;let n=Date.parse(e.holdExpiresAt);return Number.isNaN(n)?false:n<=t}o(_n,"isHoldExpired");function xi(e,t,n){return e.slot?.slotId!==t||e.holdExpiresAt===null||e.idempotencyKey===null?false:!_n(e,n)}o(xi,"holdsSlot");var wi=Object.freeze({slot:null,holdExpiresAt:null,idempotencyKey:null}),oc=er();function Ur(e){return `televet.book.${oc()}.${e}`}o(Ur,"televetBookingKey");function Wr(e,t,n){let r=n?.version?.trim()??"";return !e||!t||r.length===0?Object.freeze({}):Object.freeze({state_attested:true,cancellation_policy_version:r})}o(Wr,"attestation");function we(e){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}o(we,"parse");function Xe(e){let t=we(e);return t?t.toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"}):""}o(Xe,"formatClock");function lc(e){let t=we(e);return t?t.toLocaleDateString(void 0,{month:"long",day:"numeric"}):""}o(lc,"formatDate");var ct=10;function ut(e){let t=we(e);return t?new Intl.DateTimeFormat(void 0,{timeZoneName:"short"}).formatToParts(t).find(r=>r.type==="timeZoneName")?.value??"":""}o(ut,"formatZone");function ic(e){let t=we(e);if(!t)return "";let n=new Date(t.getTime()+ct*6e4).toISOString(),r=ut(e),i=`${Xe(e)} - ${Xe(n)}`;return r&&r!==""?`${i} ${r}`:i}o(ic,"formatVisitRange");function Pi(e){let t=lc(e),n=[Xe(e),ut(e)].filter(Boolean).join(" ");return [t,n].filter(Boolean).join(", ")}o(Pi,"formatWhen");function ye(e){let t=we(e);return t?[t.toLocaleDateString(void 0,{weekday:"short"}),Pi(e)].filter(Boolean).join(", "):""}o(ye,"formatWhenWithDay");function Ii(e){let t=we(e);if(!t)return "";let n=t.toLocaleDateString(void 0,{weekday:"short"}),r=t.toLocaleDateString(void 0,{year:"numeric",month:"long",day:"numeric"}),i=[Xe(e),ut(e)].filter(Boolean).join(" ");return [n,r,i].filter(Boolean).join(", ")}o(Ii,"formatRecordWhen");function Bt(e){let t=we(e);return t?`${t.getFullYear()}-${t.getMonth()+1}-${t.getDate()}`:"unknown"}o(Bt,"localDayKey");function Oi(e){let t=we(e);return t===null?"":t.toLocaleDateString(void 0,{month:"long"})}o(Oi,"formatMonthLabel");function Ai(e){let t=we(e);return t===null?"":t.toLocaleDateString(void 0,{weekday:"long",month:"long",day:"numeric"})}o(Ai,"formatFullDayLabel");function Bi(e){let{draft:t,reasonText:n,book:r,stateAttested:i,termsAttested:l,cancellationPolicy:a,triage:s,goTo:d,releaseSlot:c,setFailure:p,setEmergency:g,setBookedConsult:f,onBooked:y}=e,C=useCallback(I=>{if(!Dt(t,n)||!t.idempotencyKey)return;if(_n(t,Date.now())){p("expired"),d("time");return}let S=o(E=>{let T=Le(E);if(T.kind==="emergency"){g(T.categories);return}if(T.kind==="rate_limited"){p("rate_limited");return}p(T.kind==="not_entitled"?"not_entitled":T.kind==="slot_taken"?"taken":T.kind==="clinician_unavailable"?"clinician_unavailable":T.kind==="unavailable"?"unavailable":"failed"),T.kind==="slot_taken"&&(c(),d("time"));},"refuse");p(null),g(null),r.mutate({pet_id:t.petId,clinician_id:t.clinicianId,slot_id:t.slot.slotId,state:t.state,reason_text:n.trim(),species:null,media_refs:[],emergency_acknowledged:I||s.isAcknowledged(n),share_health_records:t.shareHealthRecords,...Wr(i,l,a)},t.idempotencyKey,{onSuccess:o(E=>{if(!ln(E)){S(nn(E.status));return}f(E),d("booked"),y?.(E);},"onSuccess"),onError:o(E=>S(rn(E)),"onError")});},[t,n,r,i,l,a,s,d,c,p,g,f,y]),_=useCallback(()=>C(false),[C]);return {submitBooking:C,confirm:_}}o(Bi,"useBookingSubmit");function sc(e){if(e.httpStatus===409)return Object.freeze({failure:"taken"});switch(Le(e).kind){case "slot_taken":return Object.freeze({failure:"taken"});case "rate_limited":return Object.freeze({failure:"rate_limited"});case "not_entitled":return Object.freeze({failure:"not_entitled"});case "unavailable":return Object.freeze({failure:"unavailable"});default:return Object.freeze({failure:"failed"})}}o(sc,"televetHoldFailure");function Fi(e){let{draft:t,hold:n,dispatch:r,setFailure:i,refetchSlots:l}=e;return useCallback(a=>{if(i(null),xi(t,a.slotId,Date.now())){r({type:"next"});return}n.mutate(a.slotId,{onSuccess:o(s=>{r({type:"patch",patch:{slot:a,holdExpiresAt:s.expiresAt,idempotencyKey:Ur(a.slotId)}}),r({type:"next"});},"onSuccess"),onError:o(s=>{let d=sc(s);i(d.failure),d.failure==="taken"&&l();},"onError")});},[t,n,r,i,l])}o(Fi,"useSlotHold");function $r(e){let[t,n]=useState(false),[r,i]=useState(false),[l,a]=useState(null),s=useRef(null),d=useRef(null),c=useRef(true);useEffect(()=>(c.current=true,()=>{c.current=false,d.current?.abort(),d.current=null;}),[]);let p=useCallback(()=>{d.current?.abort(),d.current=null,c.current&&i(false);},[]),g=useCallback(async I=>{if(d.current!==null)return false;let S=I.trim();if(l!==null&&l===S||!e)return true;let E=s.current!==null&&s.current.reason===S?s.current.emergency:null;if(E===null){let T=new AbortController;d.current=T,i(true);try{let D=await e(S,T.signal);if(T.signal.aborted||!c.current)return !1;D===null?E=!1:(E=D.isEmergency||D.fallback,s.current=Object.freeze({reason:S,emergency:E}));}catch{if(T.signal.aborted||!c.current)return false;E=false;}finally{d.current===T&&(d.current=null,c.current&&i(false));}}return E===true?(n(true),false):true},[l,e]),f=useCallback(I=>{a(I.trim()),n(false);},[]),y=useCallback(()=>n(false),[]),C=useCallback(()=>{p(),s.current=null,a(null),n(false);},[p]),_=useCallback(I=>l!==null&&l===I.trim(),[l]);return {open:t,checking:r,check:g,acknowledge:f,close:y,cancel:p,reset:C,isAcknowledged:_}}o($r,"useEarlyTriage");function fc(e){let t=e?.trim().toUpperCase()??"";return /^[A-Z]{2}$/.test(t)?t:null}o(fc,"normalizeStateCode");function Yr(e,t){let n=fc(e),[r,i]=useState(()=>Object.freeze({})),l=useRef(0),a=useRef(null),s=useCallback(d=>{if(!t||n===null)return null;let c=`${n}:${d}`;a.current!==null&&a.current!==c&&(l.current+=1),a.current=c;let p=r[c]??"idle";return {joined:p==="joined",pending:p==="pending",failed:p==="failed",onPress:o(()=>{if(p==="pending"||p==="joined")return;let g=l.current+=1;i(f=>Object.freeze({...f,[c]:"pending"})),(async()=>{let f=false;try{f=await t(n,d);}catch{f=false;}l.current===g&&i(y=>Object.freeze({...y,[c]:f?"joined":"failed"}));})();},"onPress")}},[n,r,t]);return useMemo(()=>({actionFor:s}),[s])}o(Yr,"useStateInterest");function Gr(e){return Object.freeze(e==="dark"?{title:u.noCliniciansTitle,message:u.noCliniciansBody,retryLabel:u.noCliniciansRetryCta,interestReason:null}:{title:u.noCliniciansTitle,message:u.noCliniciansRegionBody,retryLabel:null,interestReason:"no_licensed_vet"})}o(Gr,"televetEmptyRosterView");function Jr(e){return e?"roster":"dark"}o(Jr,"televetEmptyRosterCause");var Ft=Object.freeze({failed:0,refused:Object.freeze({size:0,type:0,unreadable:0})});function Xr(e){let{failed:t,refused:n}=e;return t<=0&&n.size<=0&&n.type<=0&&n.unreadable<=0}o(Xr,"isMediaShortfallEmpty");function Qr(e){let t=o(r=>Number.isFinite(r)&&r>0?Math.floor(r):0,"count"),n=u.media;return [{n:t(e.failed),one:n.droppedTemplate,many:n.droppedPluralTemplate},{n:t(e.refused.size),one:n.refusedSizeTemplate,many:n.refusedSizePluralTemplate},{n:t(e.refused.type),one:n.refusedTypeTemplate,many:n.refusedTypePluralTemplate},{n:t(e.refused.unreadable),one:n.refusedUnreadableTemplate,many:n.refusedUnreadablePluralTemplate}].filter(r=>r.n>0).map(r=>ne(r.n===1?r.one:r.many,{n:String(r.n)}))}o(Qr,"televetMediaShortfallLines");function xn(e){let t=Number.isFinite(e)&&e>0?Math.floor(e):0;return t===0?Ft:Object.freeze({failed:t,refused:Ft.refused})}o(xn,"mediaShortfallFromUnsentPicks");function yc(e,t){let n=xn(t);return n.failed===0?e:Object.freeze({failed:e.failed+n.failed,refused:e.refused})}o(yc,"withUnsentPicks");var J=44;function F(){let e=R();return useMemo(()=>hc(e),[e])}o(F,"useBookingStyles");function P({label:e,onPress:t,kind:n="primary",disabled:r=false,loading:i=false,fullWidth:l=true,accessibilityLabel:a,testID:s,style:d}){let c=F(),p=R(),g=r||i;return jsxs(Pressable,{onPress:t,disabled:g,accessibilityRole:"button",accessibilityLabel:a??e,accessibilityState:{disabled:g,busy:i},style:[c.button,n==="primary"?c.buttonPrimary:n==="danger"?c.buttonDanger:c.buttonSecondary,l?c.buttonFull:c.buttonAuto,g?c.buttonDisabled:null,d],testID:s,children:[i?jsx(ActivityIndicator,{size:"small",color:n==="secondary"?p.color.brand:p.color.onPrimary}):null,jsx(v,{tier:"control",style:n==="secondary"?c.buttonSecondaryLabel:c.buttonPrimaryLabel,children:e})]})}o(P,"TelevetButton");function L({title:e,message:t,actionLabel:n,onAction:r,testID:i}){let l=F(),a=typeof n=="string"&&n.length>0&&typeof r=="function";return jsxs(View,{style:l.stateCard,testID:i,children:[jsx(v,{style:l.stateTitle,accessibilityRole:"header",children:e}),t?jsx(v,{style:l.stateMessage,children:t}):null,a?jsx(P,{label:n,onPress:r,kind:"secondary",fullWidth:false}):null]})}o(L,"TelevetStateCard");function re({height:e,width:t="100%",testID:n}){let r=F();return jsx(View,{style:[r.skeleton,{height:e,width:t}],testID:n,accessibilityElementsHidden:true,importantForAccessibility:"no"})}o(re,"TelevetSkeletonBlock");function q({message:e,assertive:t=false,testID:n,style:r}){let i=F();return jsx(v,{style:[i.failure,r],accessibilityLiveRegion:t?"assertive":"polite",testID:n,children:e})}o(q,"TelevetFailureLine");function hc(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return StyleSheet.create({screen:{flex:1,paddingHorizontal:n.xl,gap:n.md},stepFill:{flex:1,minHeight:0,gap:n.md},list:{gap:n.sm},button:{minHeight:J,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:n.sm,paddingHorizontal:n.xl,paddingVertical:n.sm,borderRadius:r.pill},buttonFull:{alignSelf:"stretch"},buttonAuto:{alignSelf:"flex-start",minWidth:J},buttonPrimary:{backgroundColor:t.primary},buttonSecondary:{borderWidth:1,borderColor:t.brandBorder,backgroundColor:"transparent"},buttonDanger:{backgroundColor:t.danger},buttonDisabled:{opacity:.45},buttonPrimaryLabel:{...b(e,"medium"),color:t.onPrimary,fontSize:l.body,lineHeight:l.body*a.snug},buttonSecondaryLabel:{...b(e,"medium"),color:t.brand,fontSize:l.body,lineHeight:l.body*a.snug},stateCard:{minHeight:140,justifyContent:"center",gap:n.sm,padding:n.lg,borderRadius:r.lg,borderWidth:1,borderColor:t.brandBorder},stateTitle:{...b(e,"medium"),color:t.brand,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},stateMessage:{...b(e,"regular"),color:t.text.metaCool,fontSize:l.body,lineHeight:l.body*a.normal},skeleton:{borderRadius:r.md,backgroundColor:t.skeleton},failure:{...b(e,"regular"),color:t.danger,fontSize:l.caption,lineHeight:l.caption*a.normal},stepTitle:{...b(e,"bold"),color:t.brand,fontSize:l.heading,lineHeight:l.heading*a.snug},stepHelp:{...b(e,"regular"),color:t.text.metaCool,fontSize:l.body,lineHeight:l.body*a.normal},divider:{height:1,backgroundColor:t.brandBorder},scrollRoot:{flex:1,minHeight:0},scrollBody:{flex:1},scrollFooter:{paddingTop:n.md,paddingBottom:n.lg}})}o(hc,"makeBookingStyles");function Nt({petName:e,primaryVet:t,onFindEmergencyVet:n}){let r=R(),i=useMemo(()=>ji(r),[r]),l=e?.trim()??"";return jsxs(Fragment,{children:[n?jsx(Pressable,{accessibilityRole:"button",accessibilityLabel:u.emergency.exitFindErTitle,onPress:()=>{Qt(n);},style:i.vetCard,testID:"televet-emergency-find-vet",children:jsx(View,{style:i.vetRow,children:jsx(v,{tier:"control",style:i.vetTitle,children:u.emergency.exitFindErTitle})})}):null,t!=null&&l.length>0?jsx(Tc,{petName:l,vet:t}):null]})}o(Nt,"TelevetEmergencyExits");function Tc({petName:e,vet:t}){let n=R(),r=useMemo(()=>ji(n),[n]),i=ne(u.emergency.exitPrimaryVetTitle,{petName:e}),l=t.detail?.trim()??"",a=jsx(View,{style:r.vetRow,children:jsxs(View,{style:r.vetText,children:[jsx(v,{tier:"control",style:r.vetTitle,children:i}),l.length>0?jsx(v,{style:r.vetDetail,children:l}):null]})});if(!t.dial)return jsx(View,{style:r.vetCard,testID:"televet-early-emergency-primary-vet",children:a});let s=t.dial;return jsx(Pressable,{accessibilityRole:"link",accessibilityLabel:l.length>0?`${i}, ${l}`:i,accessibilityHint:u.emergency.startCallHint,onPress:()=>{Qt(s);},style:r.vetCard,testID:"televet-early-emergency-primary-vet-call",children:a})}o(Tc,"PrimaryVetCard");function ji(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return {vetCard:{minHeight:J,justifyContent:"center",padding:n.lg,borderRadius:r.lg,borderWidth:1,borderColor:t.brandBorder,backgroundColor:t.surface},vetRow:{flexDirection:"row",alignItems:"center",gap:n.sm},vetText:{flexShrink:1,gap:n.xs},vetTitle:{...b(e,"medium"),color:t.text.primary,fontSize:l.body,lineHeight:l.body*a.normal},vetDetail:{...b(e,"regular"),color:t.text.metaCool,fontSize:l.caption,lineHeight:l.caption*a.normal}}}o(ji,"makeExitStyles");function Wi({petName:e,primaryVet:t,onFindEmergencyVet:n,onContinue:r}){let i=R(),l=F(),a=useMemo(()=>no(i),[i]);return jsxs(View,{style:[l.stepFill,a.emergencyPanel],testID:"televet-early-emergency",children:[jsx(v,{tier:"heading",accessibilityRole:"header",accessibilityLiveRegion:"assertive",style:a.emergencyTitle,children:u.emergency.bannerTitle}),jsx(v,{style:a.emergencyLede,children:u.emergency.lede}),jsx(Nt,{petName:e,primaryVet:t,onFindEmergencyVet:n}),jsx(P,{label:u.emergency.keepBookingCta,kind:"secondary",onPress:r,testID:"televet-early-emergency-continue"})]})}o(Wi,"TelevetEarlyEmergency");function eo({action:e,testIDPrefix:t}){let n=R(),r=useMemo(()=>no(n),[n]);return e===null?null:e.joined?jsxs(View,{testID:`${t}-joined`,style:r.interestFeedback,children:[jsx(v,{tier:"control",accessibilityRole:"header",children:u.stateInterest.joinedTitle}),jsx(v,{style:r.interestBody,children:u.stateInterest.joinedBody})]}):jsxs(View,{testID:t,style:r.interestAction,children:[jsx(P,{label:u.stateInterest.cta,kind:"secondary",loading:e.pending,disabled:e.pending,onPress:e.onPress,testID:`${t}-submit`}),e.failed?jsx(q,{message:u.stateInterest.failed,testID:`${t}-error`}):null]})}o(eo,"TelevetStateInterestAction");function qi({cause:e,onRetry:t,stateInterest:n=null}){let r=Gr(e);return jsxs(View,{testID:"televet-clinicians-empty",children:[jsx(L,{title:r.title,message:r.message,...r.retryLabel!==null&&t?{actionLabel:r.retryLabel,onAction:t}:{}}),r.interestReason!==null?jsx(eo,{action:n??null,testIDPrefix:"televet-state-interest-no-licensed-vet"}):null]})}o(qi,"TelevetClinicianEmptyState");function Cc({onCheckAvailability:e}){return jsx(to,{...e?{onCheckAvailability:e}:{}})}o(Cc,"TelevetEntitlementInterestState");function to({onCheckAvailability:e,renderUnavailable:t}){let n=F();return jsxs(View,{testID:"televet-booking-not-entitled",style:n.list,children:[t?t():jsx(L,{title:u.bookingPausedTitle}),e?jsx(P,{label:u.checkAvailabilityCta,kind:"secondary",onPress:e,testID:"televet-check-state-availability"}):null]})}o(to,"EntitlementPausedState");function Lt({shortfall:e,testIDPrefix:t}){let n=R(),r=useMemo(()=>no(n),[n]);if(Xr(e))return null;let i=Qr(e);return i.length===0?null:jsx(View,{style:r.mediaNotice,testID:`${t}-media-notice`,children:i.map((l,a)=>jsx(v,{style:r.mediaLine,accessibilityLiveRegion:"polite",testID:`${t}-media-line-${String(a)}`,children:l},l))})}o(Lt,"TelevetMediaDropNotice");function no(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return {emergencyPanel:{gap:n.sm,padding:n.lg,borderRadius:r.lg,borderWidth:2,borderColor:t.danger,backgroundColor:t.surface},emergencyTitle:{...b(e,"medium"),color:t.danger,fontSize:l.heading,lineHeight:l.heading*a.snug},emergencyLede:{...b(e,"regular"),color:t.text.primary,fontSize:l.subtitle,lineHeight:l.subtitle*a.normal},interestAction:{gap:n.sm,marginTop:n.sm},interestFeedback:{gap:n.xs,marginTop:n.sm},interestBody:{...b(e,"regular"),color:t.text.metaCool},mediaNotice:{gap:n.xs},mediaLine:{...b(e,"regular"),color:t.text.metaCool,fontSize:l.caption,lineHeight:l.caption*a.normal}}}o(no,"makeEdgeStyles");function Ki(e){let{surfaceUnavailable:t,notEntitled:n,policyBlocked:r,triageOpen:i,step:l}=e;return t||n&&l!=="clinician"||r?true:l==="reason"&&i}o(Ki,"televetBookingGateApplies");function $i({state:e,petName:t,primaryVet:n,onFindEmergencyVet:r,stateInterest:i=null,onCheckAvailability:l,onAcknowledgeEmergency:a,renderUnavailable:s}){let d=F(),{surfaceUnavailable:c,notEntitled:p,policyBlocked:g,triageOpen:f,step:y}=e;return c?jsx(View,{style:d.stepFill,testID:"televet-booking-unavailable",children:s?s():jsx(L,{title:u.bookingPausedTitle})}):p&&y!=="clinician"?jsx(to,{...l?{onCheckAvailability:l}:{},...s?{renderUnavailable:s}:{}}):g?jsxs(View,{testID:"televet-booking-state-blocked",children:[jsx(L,{title:u.stateBlockedTitle}),jsx(eo,{action:i,testIDPrefix:"televet-state-interest-state-blocked"})]}):y==="reason"&&f?jsx(Wi,{...t!==void 0?{petName:t}:{},...n?{primaryVet:n}:{},onFindEmergencyVet:r,onContinue:a}):null}o($i,"TelevetBookingGate");var Ui=false;function Sc(){if(!Ui){Ui=true;try{globalThis.console?.warn?.("[everfur] The vet booking has no US state for this member, so it cannot list vets. Pass the member's two-letter state as `usState` (on EverfurTelevet, VetVisitButton or EverfurChat as `vetUsState`), or pass `onRequestLocation` so the booking can ask your app to resolve one. The SDK never reads a device location itself.");}catch{}}}o(Sc,"warnNoStateSeamOnce");function Yi(e){return e.noState?true:e.isPending||e.isError?false:e.isEmpty||e.notEntitled}o(Yi,"televetClinicianOutcomeApplies");function Gi({state:e,cause:t,locationStatus:n,onRequestLocation:r,onRetry:i,stateInterest:l=null,renderUnavailable:a}){let s=e.noState&&!r;return useEffect(()=>{s&&Sc();},[s]),e.noState?jsx(View,{testID:"televet-booking-location-unknown",children:jsx(L,{title:n==="blocked"?u.locationBlockedTitle:n==="unavailable"?u.locationUnavailableTitle:u.locationUnknownTitle,message:n==="blocked"?u.locationBlockedBody:n==="unavailable"?u.locationUnavailableBody:r?u.locationUnknownBody:void 0,actionLabel:r?n==="blocked"?u.locationBlockedCta:u.locationUnknownCta:void 0,onAction:r})}):e.isEmpty?jsx(qi,{cause:t,onRetry:i,stateInterest:l}):jsx(to,{...a?{renderUnavailable:a}:{}})}o(Gi,"TelevetClinicianOutcome");function Ji(e){return `televet-consult-${e}`}o(Ji,"televetConsultCalendarKey");function oo({consult:e,petName:t,onDone:n,onAddToCalendar:r,canJoinInApp:i=false}){let l=R(),a=F(),s=useMemo(()=>wc(l),[l]),[d,c]=useState("idle"),p=o(async()=>{if(!r)return;c("saving");let f=new Date(e.scheduledAt);if(Number.isNaN(f.getTime())){c("failed");return}let y=await Zt(r,{key:Ji(e.consultId),title:u.visit.title,startDate:f,endDate:new Date(f.getTime()+ct*6e4),alarmOffsetMinutes:-30});c(y.ok&&y.value===true?"saved":"failed");},"addToCalendar"),g=[u.booked.remindPromise,ne(u.booked.summaryPromise,{pet:t??""}),...i?[u.booked.joinPromise]:[]];return Re()?jsxs(View,{style:s.screen,testID:"televet-booked",children:[jsx(View,{style:s.header,children:jsx(P,{label:u.doneCta,kind:"secondary",fullWidth:false,onPress:n,testID:"televet-booked-done"})}),jsx(View,{style:s.avatar,accessibilityElementsHidden:true,importantForAccessibility:"no"}),jsx(v,{tier:"heading",style:s.title,accessibilityRole:"header",children:u.bookedTitle}),jsx(v,{style:s.when,children:ye(e.scheduledAt)}),jsx(View,{style:s.steps,testID:"televet-booked-steps",children:g.map((f,y)=>jsxs(View,{style:s.step,children:[jsx(View,{style:s.stepNumber,accessibilityElementsHidden:true,importantForAccessibility:"no",children:jsx(v,{tier:"badge",style:s.stepNumberText,children:String(y+1)})}),jsx(v,{style:s.stepText,children:f.trim()})]},f))}),jsxs(View,{style:s.actions,children:[r?jsx(P,{label:d==="saved"?u.booked.calendarAdded:u.addToCalendarCta,kind:"primary",loading:d==="saving",disabled:d==="saving"||d==="saved",onPress:()=>{p();},testID:"televet-booked-calendar"}):null,d==="failed"?jsx(v,{style:[a.failure,s.calendarNote],accessibilityLiveRegion:"polite",testID:"televet-booked-calendar-failed",children:u.booked.calendarFailedBody}):null,jsx(P,{label:t?ne(u.booked.backToPet,{pet:t}):u.doneCta,kind:"secondary",onPress:n,testID:"televet-booked-back"})]})]}):jsx(View,{style:s.screen,testID:"televet-booked-copy-unapproved"})}o(oo,"TelevetBookedScreen");function wc(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return StyleSheet.create({screen:{flex:1,paddingHorizontal:n.xl,gap:n.md},header:{alignItems:"flex-end",paddingBottom:n.lg},avatar:{alignSelf:"center",width:120,height:120,borderRadius:60,backgroundColor:t.surfaceSubtle,borderWidth:2,borderColor:t.success},title:{textAlign:"center",...b(e,"bold"),color:t.brand,fontSize:l.verdict,lineHeight:l.verdict*a.tight,letterSpacing:-0.7,paddingTop:n.lg},when:{textAlign:"center",...b(e,"regular"),color:t.text.metaCool,fontSize:l.subtitle,lineHeight:l.subtitle*a.normal},steps:{marginTop:n.xl,padding:n.lg,borderRadius:r.lg,borderWidth:1,borderColor:t.brandBorder,gap:n.lg},step:{flexDirection:"row",alignItems:"flex-start",gap:n.md},stepNumber:{width:26,height:26,borderRadius:13,backgroundColor:t.primary,alignItems:"center",justifyContent:"center"},stepNumberText:{...b(e,"medium"),color:t.onPrimary,fontSize:l.caption,lineHeight:l.caption,includeFontPadding:false},stepText:{flex:1,...b(e,"regular"),color:t.brand,fontSize:l.body,lineHeight:l.body*a.normal},actions:{marginTop:"auto",paddingBottom:n.xl,gap:n.md},calendarNote:{textAlign:"center"}})}o(wc,"makeStyles");function io({step:e,furthestIndex:t,title:n,canGoBack:r,isDirty:i,onBack:l,onClose:a,onConfirmDiscard:s}){let d=R(),c=useMemo(()=>Dc(d),[d]),p=useMemo(()=>()=>{if(!i){a();return}let E={title:u.chrome.discardTitle,body:u.chrome.discardBody,confirmLabel:u.chrome.discardConfirmCta,keepLabel:u.chrome.discardKeepCta};if(s){Promise.resolve(s(E)).then(T=>{T&&a();},()=>{});return}Alert.alert(E.title,E.body,[{text:E.keepLabel,style:"cancel"},{text:E.confirmLabel,style:"destructive",onPress:a}]);},[i,a,s]),g=useMemo(()=>()=>r?(l(),true):(p(),true),[r,l,p]);useEffect(()=>{let E=BackHandler.addEventListener("hardwareBackPress",g);return ()=>{E.remove();}},[g]),lt(g);let f=je.filter(E=>E!=="issues"),y=f.length,C=je[t],_=C===void 0?0:Math.max(0,f.indexOf(C==="issues"?"reason":C)),S=e==="booked"?1:Math.min(1,(_+1)/y);return jsxs(View,{style:c.wrap,children:[jsxs(View,{style:c.bar,children:[jsx(View,{style:c.side,children:jsx(Pressable,{onPress:r?l:p,accessibilityRole:"button",accessibilityLabel:Pn,testID:"televet-booking-back",style:c.tap,children:jsx(View,{style:c.chevron,accessibilityElementsHidden:true,importantForAccessibility:"no"})})}),jsx(v,{tier:"heading",style:c.title,accessibilityRole:"header",children:n??u.navTitle}),jsx(View,{style:[c.side,c.sideRight],children:jsx(Pressable,{onPress:p,accessibilityRole:"button",accessibilityLabel:u.close,accessibilityHint:u.chrome.closeHint,testID:"televet-booking-close",style:c.tap,children:jsx(v,{tier:"control",style:c.close,children:u.close})})})]}),jsx(View,{style:c.railTrack,accessibilityElementsHidden:true,importantForAccessibility:"no-hide-descendants",children:jsx(View,{style:[c.railFill,{width:`${Math.round(S*100)}%`}],testID:"televet-booking-rail"})})]})}o(io,"TelevetBookingChrome");var Pn="Back";function Dc(e){let{color:t,space:n,type:r}=e,{size:i,lineHeight:l}=r;return StyleSheet.create({wrap:{backgroundColor:t.surface},bar:{flexDirection:"row",alignItems:"center",paddingHorizontal:n.lg,minHeight:56},side:{minWidth:64,justifyContent:"center"},sideRight:{alignItems:"flex-end"},tap:{minHeight:J,minWidth:J,justifyContent:"center",paddingHorizontal:n.xs},chevron:{width:10,height:10,borderLeftWidth:2,borderBottomWidth:2,borderColor:t.brand,transform:[{rotate:"45deg"}]},title:{flex:1,textAlign:"center",...b(e,"medium"),color:t.brand,fontSize:i.subtitle,lineHeight:i.subtitle*l.normal},close:{...b(e,"medium"),color:t.brand,fontSize:i.subtitle,lineHeight:i.subtitle*l.normal},railTrack:{height:4,backgroundColor:t.surfaceSubtle},railFill:{height:4,backgroundColor:t.success}})}o(Dc,"makeStyles");function Zi(e){let t=[],n=Bc(e.ageYears);n!==null&&t.push(`${String(n)} yr${n===1?"":"s"} old`);let r=e.weightKg;typeof r=="number"&&Number.isFinite(r)&&r>0&&t.push(`${String(Math.round(r))} kg`);let i=e.breed?.trim();return i&&t.push(i),t.join(" \xB7 ")}o(Zi,"formatTelevetPetMetaLine");function Bc(e){if(typeof e!="number"||!Number.isFinite(e))return null;let t=Math.floor(e);return t>=0?t:null}o(Bc,"wholeYears");function so({media:e,onChange:t,onPickMedia:n}){let r=R(),i=useMemo(()=>Hc(r),[r]),l=sn-e.length,[a,s]=useState(false);if(!n)return null;let d=o(async()=>{if(!(a||l<=0)){s(true);try{let c=await Zt(n,l);if(!c.ok||c.value===null||c.value.length===0)return;let p=new Set(e.map(f=>f.uri)),g=c.value.filter(f=>typeof f?.uri=="string"&&f.uri.length>0&&!p.has(f.uri));if(g.length===0)return;t([...e,...g].slice(0,sn));}finally{s(false);}}},"pick");return jsxs(View,{style:i.row,children:[e.map((c,p)=>jsxs(View,{style:i.thumb,children:[jsx(Image,{source:{uri:c.uri},style:i.thumbImage,resizeMode:"cover"}),c.mimeType?.startsWith("video/")?jsx(View,{style:i.videoBadge,testID:`televet-intake-media-video-${String(p)}`,children:jsx(v,{tier:"badge",style:i.videoBadgeText,children:jc})}):null,jsx(Pressable,{onPress:()=>t(e.filter((g,f)=>f!==p)),accessibilityRole:"button",accessibilityLabel:u.removePhotoLabel,testID:`televet-intake-media-remove-${String(p)}`,style:i.remove,children:jsx(v,{tier:"control",style:i.removeGlyph,children:zc})})]},`${c.uri}-${String(p)}`)),l>0?jsx(Pressable,{onPress:()=>{d();},disabled:a,accessibilityRole:"button",accessibilityLabel:u.addPhotoCta,accessibilityState:{busy:a,disabled:a},testID:"televet-intake-add-media",style:[i.dropzone,a?i.dropzoneBusy:null],children:a?jsx(ActivityIndicator,{testID:"televet-intake-media-busy"}):jsx(v,{tier:"compact",style:i.dropzoneText,children:u.addPhotoCta})}):null]})}o(so,"TelevetIntakeMedia");var zc="\xD7",jc="\u25B6",In=92;function Hc(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return StyleSheet.create({row:{flexDirection:"row",flexWrap:"wrap",gap:n.md,paddingTop:n.sm},thumb:{width:In,height:In,borderRadius:r.md,backgroundColor:t.surfaceSubtle},thumbImage:{width:"100%",height:"100%",borderRadius:r.md},videoBadge:{position:"absolute",left:6,bottom:6,paddingHorizontal:6,paddingVertical:2,borderRadius:r.sm,backgroundColor:t.shadow},videoBadgeText:{color:t.text.onBrand,fontSize:l.nano},remove:{position:"absolute",top:-8,right:-8,width:J-16,height:J-16,borderRadius:J/2,backgroundColor:t.text.metaCool,alignItems:"center",justifyContent:"center"},removeGlyph:{...b(e,"medium"),color:t.surface,fontSize:l.subtitle,lineHeight:l.subtitle,includeFontPadding:false},dropzone:{width:In,height:In,borderRadius:r.md,borderWidth:1,borderStyle:"dashed",borderColor:t.brandBorder,alignItems:"center",justifyContent:"center",paddingHorizontal:n.sm},dropzoneBusy:{opacity:.6},dropzoneText:{...b(e,"mono"),color:t.text.metaCool,fontSize:l.nano,lineHeight:l.nano*a.normal,letterSpacing:.3,textAlign:"center"}})}o(Hc,"makeStyles");function co({slots:e,selectedDayKey:t,onSelectDay:n}){let r=R(),i=useMemo(()=>Gc(r),[r]),l=useMemo(()=>Dn(e),[e]),a=Yc(),s=l[0];return s===void 0?null:jsxs(View,{children:[jsx(v,{tier:"compact",style:i.month,testID:"televet-day-strip-month",children:Oi(s.iso)}),jsx(ScrollView,{ref:a.scrollRef,horizontal:true,showsHorizontalScrollIndicator:false,contentContainerStyle:i.strip,onLayout:a.onStripLayout,onContentSizeChange:a.onContentSize,testID:"televet-day-strip",children:l.map(d=>{let c=d.key===t;return jsxs(Pressable,{onLayout:c?a.onSelectedDayLayout:void 0,onPress:()=>n(d),accessibilityRole:"button",accessibilityLabel:Ai(d.iso),accessibilityState:{selected:c},testID:`televet-day-${d.key}`,style:[i.day,c?i.daySelected:null],children:[jsx(v,{tier:"compact",style:[i.dayWeekday,c?i.dayTextSelected:null],children:d.weekday}),jsx(v,{tier:"compact",style:[i.dayNumber,c?i.dayTextSelected:null],children:d.dayNumber})]},d.key)})})]})}o(co,"TelevetDayStrip");var $c=Object.freeze({done:false,viewport:null,content:null,chip:null});function Yc(){let e=useRef(null),t=useRef($c),n=useCallback(a=>{let s={...t.current,...a};if(s.done||s.viewport===null||s.content===null||s.chip===null){t.current=s;return}t.current={...s,done:true};let d=s.chip.x-(s.viewport-s.chip.width)/2,c=Math.min(Math.max(0,d),Math.max(0,s.content-s.viewport));c>0&&e.current?.scrollTo({x:c,animated:false});},[]),r=useCallback(a=>n({viewport:a.nativeEvent.layout.width}),[n]),i=useCallback(a=>n({content:a}),[n]),l=useCallback(a=>{let{x:s,width:d}=a.nativeEvent.layout;n({chip:{x:s,width:d}});},[n]);return {scrollRef:e,onStripLayout:r,onContentSize:i,onSelectedDayLayout:l}}o(Yc,"useRevealSelectedDay");function Dn(e){let t=new Map;for(let n of e){let r=Bt(n.startsAt);if(t.has(r))continue;let i=new Date(n.startsAt);Number.isNaN(i.getTime())||t.set(r,Object.freeze({key:r,iso:n.startsAt,weekday:i.toLocaleDateString(void 0,{weekday:"short"}),dayNumber:String(i.getDate())}));}return Object.freeze([...t.values()])}o(Dn,"televetDaysFromSlots");function Gc(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return StyleSheet.create({month:{textAlign:"center",...b(e,"medium"),color:t.brand,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug,paddingBottom:n.md},strip:{gap:n.sm,paddingHorizontal:n.xs},day:{width:52,minHeight:J,paddingVertical:n.md,borderRadius:r.md,borderWidth:1,borderColor:t.brandBorder,alignItems:"center",justifyContent:"center",gap:2},daySelected:{backgroundColor:t.primary,borderColor:t.primary},dayWeekday:{...b(e,"mono"),color:t.text.secondary,fontSize:l.tiny,lineHeight:l.tiny*a.tight},dayNumber:{...b(e,"medium"),color:t.brand,fontSize:l.heading,lineHeight:l.heading*a.tight},dayTextSelected:{color:t.onPrimary}})}o(Gc,"makeStyles");function Vt({slots:e,busySlotId:t,onPick:n,selectedSlot:r=null,ListHeaderComponent:i,rowTestIdPrefix:l="televet-slot",testID:a="televet-slot-list"}){let s=R(),d=useMemo(()=>nu(s),[s]),c=useMemo(()=>Dn(e),[e]),[p,g]=useState(null),f=r?Bt(r.startsAt):null,y=tu(c,[p,f])??c[0]?.key??null,C=useMemo(()=>y?e.filter(T=>Bt(T.startsAt)===y):[],[e,y]),_=i,I=useMemo(()=>C.map(T=>ut(T.startsAt)),[C]),S=useMemo(()=>new Set(I.filter(T=>T.length>0)).size>1,[I]),E=C[0];return jsxs(View,{style:d.root,testID:a,children:[_?jsx(_,{}):null,jsx(co,{slots:e,selectedDayKey:y,onSelectDay:T=>g(T.key)}),E&&!S?jsx(v,{tier:"compact",style:d.zone,testID:"televet-slot-zone",children:ut(E.startsAt)}):null,jsx(ScrollView,{style:d.gridScroll,contentContainerStyle:d.grid,showsVerticalScrollIndicator:false,children:C.map((T,D)=>{let h=t===T.slotId,z=t!==null,B=S?I[D]??"":"";return jsxs(Pressable,{onPress:()=>n(T),disabled:z,accessibilityRole:"button",accessibilityLabel:[Xe(T.startsAt),B].filter(N=>N.length>0).join(" "),accessibilityState:{disabled:z,busy:h},testID:`${l}-${T.slotId}`,style:[d.chip,h?d.chipBusy:null,z&&!h?d.chipDisabled:null],children:[jsx(v,{tier:"compact",style:[d.chipLabel,h?d.chipLabelBusy:null],children:Xe(T.startsAt)}),B.length>0?jsx(v,{tier:"compact",style:[d.chipZone,h?d.chipLabelBusy:null],testID:`${l}-${T.slotId}-zone`,children:B}):null]},T.slotId)})})]})}o(Vt,"TelevetSlotPicker");function tu(e,t){for(let n of t)if(n!==null&&e.some(r=>r.key===n))return n;return null}o(tu,"firstOffered");function nu(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return StyleSheet.create({root:{flex:1,minHeight:0},gridScroll:{flex:1},zone:{textAlign:"center",...b(e,"mono"),color:t.text.muted,fontSize:l.tiny,lineHeight:l.tiny*a.normal,letterSpacing:.4,paddingVertical:n.md},grid:{flexDirection:"row",flexWrap:"wrap",gap:n.md,paddingBottom:n.xl},chip:{minWidth:96,flexGrow:1,flexBasis:"28%",minHeight:48,borderRadius:r.pill,borderWidth:1,borderColor:t.brandBorder,alignItems:"center",justifyContent:"center",paddingHorizontal:n.md},chipBusy:{backgroundColor:t.primary,borderColor:t.primary},chipDisabled:{opacity:.45},chipLabel:{...b(e,"regular"),color:t.brand,fontSize:l.subtitle,lineHeight:l.subtitle*a.tight},chipLabelBusy:{color:t.onPrimary},chipZone:{...b(e,"mono"),color:t.text.muted,fontSize:l.tiny,lineHeight:l.tiny*a.normal,letterSpacing:.4}})}o(nu,"makeStyles");function et({label:e,value:t,last:n=false,testID:r}){let i=R(),l=useMemo(()=>yo(i),[i]);return jsxs(View,{style:[l.row,n?l.rowLast:null],testID:r,children:[jsx(v,{style:l.rowLabel,children:e}),jsx(v,{style:l.rowValue,children:t})]})}o(et,"TelevetSummaryRow");function zt({label:e,checked:t,onToggle:n,testID:r}){let i=R(),l=useMemo(()=>yo(i),[i]);return jsxs(Pressable,{onPress:()=>n(!t),accessibilityRole:"checkbox",accessibilityLabel:e,accessibilityState:{checked:t},testID:r,style:l.consent,children:[jsx(View,{style:[l.box,t?l.boxChecked:null],children:t?jsx(v,{tier:"badge",style:l.tick,children:lu}):null}),jsx(v,{style:l.consentLabel,children:e})]})}o(zt,"TelevetConsentCheckbox");var lu="\u2713";function fo({children:e,testID:t}){let n=R(),r=useMemo(()=>yo(n),[n]);return jsx(View,{style:r.card,testID:t,children:e})}o(fo,"TelevetSummaryCard");function yo(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return StyleSheet.create({card:{borderRadius:r.lg,borderWidth:1,borderColor:t.brandBorder,paddingHorizontal:n.lg},row:{flexDirection:"row",alignItems:"flex-start",justifyContent:"space-between",gap:n.lg,paddingVertical:n.lg,borderBottomWidth:1,borderBottomColor:t.brandBorder},rowLast:{borderBottomWidth:0},rowLabel:{...b(e,"regular"),color:t.brand,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},rowValue:{flexShrink:1,textAlign:"right",...b(e,"medium"),color:t.brand,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},consent:{flexDirection:"row",alignItems:"flex-start",gap:n.md,minHeight:J,padding:n.lg,borderRadius:r.md,backgroundColor:t.surfaceSubtle},box:{width:22,height:22,borderRadius:r.xs,borderWidth:1.5,borderColor:t.brand,backgroundColor:t.surface,alignItems:"center",justifyContent:"center"},boxChecked:{backgroundColor:t.primary,borderColor:t.primary},tick:{...b(e,"bold"),color:t.onPrimary,fontSize:l.caption,lineHeight:l.caption,includeFontPadding:false},consentLabel:{flex:1,...b(e,"regular"),color:t.text.metaCool,fontSize:l.body,lineHeight:l.body*a.normal}})}o(yo,"makeStyles");function mo({when:e,lengthMinutes:t,clinician:n,petName:r,reason:i,shareRecords:l,onToggleShare:a,stateCode:s,stateAttested:d,onToggleStateAttest:c,cancellationTerms:p,termsAttested:g,onToggleTermsAttest:f,canConfirm:y,busy:C,failure:_,onConfirm:I,emergency:S,onAcknowledgeEmergency:E,onSeeOtherVets:T,mediaShortfall:D=Ft,primaryVet:h,onFindEmergencyVet:z}){let B=F(),N=R(),M=useMemo(()=>We(N),[N]);return jsxs(View,{style:B.scrollRoot,testID:"televet-booking-review",children:[jsxs(ScrollView,{style:B.scrollBody,contentContainerStyle:B.list,keyboardShouldPersistTaps:"handled",showsVerticalScrollIndicator:false,testID:"televet-booking-review-scroll",children:[jsxs(fo,{testID:"televet-review-summary",children:[r?jsx(et,{label:u.summaryPet,value:r,testID:"televet-review-row-pet"}):null,n?jsx(et,{label:u.summaryVet,value:n,testID:"televet-review-row-vet"}):null,jsx(et,{label:u.summaryWhen,value:e,testID:"televet-review-row-when"}),jsx(et,{label:u.summaryLength,value:ne(u.summaryLengthTemplate,{n:String(t)}),testID:"televet-review-row-length"}),i?jsx(et,{label:u.summaryReason,value:i,last:true,testID:"televet-review-row-reason"}):null]}),jsx(zt,{label:u.shareRecordsOff,checked:l,onToggle:a,testID:"televet-review-share-records"}),p?jsx(zt,{label:p,checked:g,onToggle:f,testID:"televet-review-terms-attest"}):null,s?jsx(zt,{label:ne(u.stateAttestTemplate,{state:s}),checked:d,onToggle:c,testID:"televet-review-state-attest"}):null,jsx(Lt,{shortfall:D,testIDPrefix:"televet-review"}),S?jsxs(View,{style:M.emergencyBanner,testID:"televet-review-emergency",children:[jsx(v,{tier:"heading",accessibilityRole:"header",accessibilityLiveRegion:"assertive",style:M.emergencyTitle,children:u.emergency.bannerTitle}),jsx(v,{style:M.emergencyLede,children:u.emergency.lede}),S.length>0?jsx(v,{style:M.emergencyLede,testID:"televet-review-emergency-categories",children:S.join(", ")}):null,jsx(Nt,{petName:r,primaryVet:h,onFindEmergencyVet:z}),jsx(P,{label:u.emergency.keepBookingCta,kind:"secondary",loading:C,disabled:C,onPress:E,testID:"televet-review-emergency-ack"})]}):null,_==="failed"?jsx(q,{message:u.confirmFailed}):null,_==="clinician_unavailable"?jsxs(View,{style:B.list,testID:"televet-review-clinician-unavailable",children:[jsx(q,{message:u.confirmFailed}),jsx(P,{label:u.seeOtherVetsCta,kind:"secondary",onPress:T,testID:"televet-review-see-other-vets"})]}):null,_==="rate_limited"?jsx(q,{message:u.confirmFailed,testID:"televet-review-rate-limited"}):null,_==="not_entitled"?jsx(q,{message:u.bookingPausedTitle,testID:"televet-review-not-entitled"}):null]}),S?null:jsx(View,{style:B.scrollFooter,children:jsx(P,{label:u.confirmCta,kind:"primary",loading:C,disabled:!y||C||!!s&&!d||!!p&&!g,onPress:I,testID:"televet-review-confirm"})})]})}o(mo,"ReviewStep");var du="\u25CB",cu="+";function Ae(e,t){return t?e.find(r=>r.petRef===t||r.petId===t)?.name??null:null}o(Ae,"nameOf");function da({pets:e,isPending:t,isError:n,onRetry:r,selectedId:i,onSelect:l,onAddPet:a}){let s=F(),d=R(),c=useMemo(()=>We(d),[d]);return t?jsx(View,{style:s.list,testID:"televet-pets-loading",children:[0,1].map(p=>jsx(re,{height:64},p))}):n?jsx(View,{testID:"televet-pets-error",children:jsx(L,{title:u.chrome.loadFailedTitle,actionLabel:u.chrome.retryCta,onAction:r})}):e.length===0?jsx(View,{testID:"televet-pets-empty",children:jsx(L,{title:u.chrome.noPetsTitle,actionLabel:u.addPetCta,onAction:a})}):jsxs(View,{style:s.stepFill,children:[jsx(v,{tier:"heading",style:s.stepTitle,accessibilityRole:"header",children:u.petSelectTitle}),jsxs(ScrollView,{contentContainerStyle:s.list,testID:"televet-pets",children:[e.map(p=>{let g=i===p.petRef,f=Zi(p),y=p.name??"";return jsx(aa,{name:y,meta:f,selected:g,onPress:()=>l(p.petRef),testID:`televet-pet-${p.petRef}`},p.petRef)}),a?jsx(aa,{name:u.addPetCta,meta:"",selected:false,onPress:a,testID:"televet-pet-add",glyph:cu}):null]}),jsx(View,{style:c.spacer})]})}o(da,"PetStep");function aa({name:e,meta:t,selected:n,onPress:r,testID:i,glyph:l}){let a=R(),s=useMemo(()=>We(a),[a]);return jsxs(View,{style:[s.petRow,n?s.petRowSelected:null],children:[jsx(P,{label:e,onPress:r,kind:"secondary",accessibilityLabel:e,testID:i,style:s.petRowButton}),jsxs(View,{style:s.petRowText,pointerEvents:"none",children:[jsx(View,{style:s.petDisc,children:jsx(v,{tier:"compact",style:s.petDiscGlyph,children:l??ca(e)})}),t?jsx(v,{tier:"compact",style:s.petRowMeta,children:t}):null]})]})}o(aa,"PetRow");function ca(e){let t=e.trim();return t.length===0?du:t.slice(0,1).toUpperCase()}o(ca,"initialOf");function ua({clinicians:e,isPending:t,isError:n,selectedId:r,onSelect:i,onRetry:l}){let a=F(),s=R(),d=useMemo(()=>We(s),[s]);if(t)return jsx(View,{style:a.list,testID:"televet-clinicians-loading",children:jsx(re,{height:96})});if(n)return jsx(View,{testID:"televet-clinicians-error",children:jsx(L,{title:u.chrome.loadFailedTitle,actionLabel:u.chrome.retryCta,onAction:l})});if(e.length===0)return jsx(View,{testID:"televet-clinicians-empty",children:jsx(L,{title:u.noCliniciansTitle,message:u.noCliniciansBody,actionLabel:u.noCliniciansRetryCta,onAction:l})});let c=e.find(p=>p.clinicianId===r)??e[0];return c===void 0?null:jsxs(View,{style:a.list,testID:"televet-clinicians",children:[jsx(v,{tier:"heading",style:a.stepTitle,accessibilityRole:"header",children:u.yourVetTitle}),jsxs(View,{style:d.vetRow,children:[jsx(View,{style:d.vetAvatar,children:jsx(v,{tier:"heading",style:d.vetAvatarText,children:ca(c.displayName)})}),jsxs(View,{style:d.vetIdentity,children:[jsx(v,{style:d.vetName,children:c.displayName}),c.credentials?jsx(v,{style:d.vetCredentials,children:c.credentials}):null,c.rating!==null&&c.ratingCount!==null?jsx(v,{tier:"compact",style:d.vetRating,testID:"televet-vet-rating",children:`\u2605 ${String(c.rating)} \xB7 ${String(c.ratingCount)} ${u.reviewsLabel}`}):null]})]}),c.bio?jsx(v,{style:d.vetBio,testID:"televet-vet-bio",children:c.bio}):null,jsx(View,{style:a.divider}),jsx(P,{label:u.continueCta,kind:"primary",onPress:()=>i(c.clinicianId),testID:`televet-clinician-${c.clinicianId}`})]})}o(ua,"ClinicianStep");function pa({slots:e,enabled:t,isPending:n,isError:r,busySlotId:i,failure:l,selectedSlot:a,nextOpening:s,onPick:d,onRetry:c,onSeeOtherVets:p}){let g=F();return t?n?jsx(View,{style:g.list,testID:"televet-slots-loading",children:[0,1,2].map(f=>jsx(re,{height:48},f))}):r?jsx(L,{title:u.slotsErrorTitle,actionLabel:u.retryCta,onAction:c,testID:"televet-slots-error"}):e.length===0?jsx(View,{testID:"televet-slots-empty",children:jsx(L,{title:u.noSlotsTitle,message:s?ne(u.nextOpeningTemplate,{when:ye(s.startsAt)}):void 0,actionLabel:s?u.seeOtherVetsCta:void 0,onAction:s?p:void 0})}):jsxs(View,{style:g.stepFill,testID:"televet-slots",children:[l==="expired"?jsx(q,{message:u.holdExpired}):null,l==="taken"?jsx(q,{message:u.slotTaken}):null,l==="failed"||l==="rate_limited"?jsx(q,{message:u.confirmFailed,testID:"televet-slots-hold-failed"}):null,jsx(Vt,{slots:e,busySlotId:i,onPick:d,selectedSlot:a})]}):jsx(View,{testID:"televet-slots-unavailable",children:jsx(L,{title:u.bookingPausedTitle})})}o(pa,"SlotStep");function fa({value:e,onChange:t,onNext:n,media:r,onChangeMedia:i,onPickMedia:l,checking:a=false}){let s=F(),d=R(),c=useMemo(()=>We(d),[d]),p=e.trim(),g=p.length>0&&p.length<=xe;return jsxs(View,{style:s.scrollRoot,testID:"televet-booking-reason",children:[jsxs(ScrollView,{style:s.scrollBody,contentContainerStyle:s.list,keyboardShouldPersistTaps:"handled",keyboardDismissMode:"interactive",showsVerticalScrollIndicator:false,testID:"televet-booking-reason-scroll",children:[jsx(v,{tier:"heading",style:s.stepTitle,accessibilityRole:"header",children:u.describeHeading}),jsx(v,{style:s.stepHelp,children:u.describeHelpLong}),jsx(Kl,{value:e,onChangeText:t,multiline:true,placeholder:u.reasonPlaceholder,placeholderTextColor:d.color.text.placeholder,style:c.reasonInput,testID:"televet-reason-input"}),p.length>xe?jsx(q,{message:u.reasonTooLong}):null,jsx(so,{media:r,onChange:i,...l?{onPickMedia:l}:{}})]}),jsx(View,{style:s.scrollFooter,children:jsx(P,{label:u.continueCta,kind:"primary",disabled:!g,loading:a,onPress:n,testID:"televet-reason-next"})})]})}o(fa,"ReasonStep");function We(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return StyleSheet.create({marker:{minHeight:1},spacer:{height:n.md},petRow:{gap:n.xs,paddingVertical:n.xs},petRowSelected:{opacity:1},petRowButton:{alignSelf:"stretch",justifyContent:"flex-start"},petRowText:{flexDirection:"row",alignItems:"center",gap:n.sm,paddingHorizontal:n.md},petDisc:{width:28,height:28,borderRadius:14,backgroundColor:t.surfaceSubtle,alignItems:"center",justifyContent:"center"},petDiscGlyph:{...b(e,"medium"),color:t.brand,fontSize:l.caption,lineHeight:l.caption},petRowMeta:{flexShrink:1,...b(e,"regular"),color:t.text.metaCool,fontSize:l.caption,lineHeight:l.caption*a.normal},vetRow:{flexDirection:"row",alignItems:"center",gap:n.md},vetAvatar:{width:64,height:64,borderRadius:32,backgroundColor:t.surfaceSubtle,alignItems:"center",justifyContent:"center"},vetAvatarText:{...b(e,"medium"),color:t.brand,fontSize:l.heading,lineHeight:l.heading},vetIdentity:{flex:1,gap:2},vetName:{...b(e,"medium"),color:t.brand,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},vetCredentials:{...b(e,"regular"),color:t.text.metaCool,fontSize:l.caption,lineHeight:l.caption*a.normal},vetRating:{...b(e,"regular"),color:t.text.secondary,fontSize:l.caption,lineHeight:l.caption*a.normal},vetBio:{...b(e,"regular"),color:t.brand,fontSize:l.body,lineHeight:l.body*a.normal},reasonInput:{minHeight:120,textAlignVertical:"top",borderWidth:1,borderColor:t.brandBorder,borderRadius:r.md,padding:n.md,...b(e,"regular"),color:t.text.primary,fontSize:l.body,lineHeight:l.body*a.normal},emergencyBanner:{gap:n.md,padding:n.lg,borderRadius:r.lg,borderWidth:1,borderColor:t.errorRed,backgroundColor:t.badgeBgCritical},emergencyTitle:{...b(e,"bold"),color:t.errorRed,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},emergencyLede:{...b(e,"regular"),color:t.text.primary,fontSize:l.body,lineHeight:l.body*a.normal}})}o(We,"makeLocalStyles");function bo(e){let{petRef:t,usState:n,controller:r,onBooked:i,onExit:l,onAddPet:a,onPickMedia:s,onAddToCalendar:d,onConfirmDiscard:c,onRequestLocation:p,locationStatus:g="unknown",onTriageReason:f,onStateInterest:y,primaryVet:C,onFindEmergencyVet:_,canJoinInApp:I=false,renderUnavailable:S,style:E,testID:T}=ot(e,["onBooked","onExit","onAddPet","onRequestLocation","onFindEmergencyVet"]),D=F(),h=R(),z=useMemo(()=>We(h),[h]),B=de(r),N=dt(),M=N.pets,$=M.length,me=useMemo(()=>({ownedPetCount:$}),[$]),[X,le]=useReducer((te,Qa)=>jr(te,Qa,me),void 0,()=>Vr({ownedPetCount:0},{petId:t??null,state:n??null})),O=useCallback(te=>le(te),[]),[fe,Ce]=useState(""),[j,nt]=useState(null),[Gt,zn]=useState(null),[rt,bt]=useState(false),[ht,Oo]=useState(false),[Ao,Va]=useState([]),[jn,za]=useState(null),{draft:A}=X,ie=Hr(X),Do=useRef(A.state);Do.current!==A.state&&(Do.current=A.state,rt&&bt(false),ht&&Oo(false));let Jt=yr(A.state,B),Bo=xt(B),Tt=mr(B),ue=vr(A.state,B),Ne=wt(A.clinicianId,B),Hn=Ne.refetch,ja=gr(B).data??null,Un=Pt(B),Fo=br(B),Se=$r(f??null),No=Yr(A.state,y??null).actionFor("no_licensed_vet"),Wn=n??null;useEffect(()=>{Wn&&!A.state&&O({type:"patch",patch:{state:Wn}});},[Wn,A.state,O]),useEffect(()=>{t&&!A.petId&&O({type:"patch",patch:{petId:t}});},[t,A.petId,O]);let qn=M.length===1?M[0]?.petRef??null:null;useEffect(()=>{qn&&!A.petId&&O({type:"patch",patch:{petId:qn}});},[qn,A.petId,O]);let Lo=useRef(ie);Lo.current=ie;let Mo=useRef(0);useEffect(()=>{$!==Mo.current&&(Mo.current=$,O({type:"goTo",step:Lo.current}));},[$,O]);let Kn=ue.data?.[0]?.clinicianId??null;useEffect(()=>{Kn&&!A.clinicianId&&O({type:"patch",patch:{clinicianId:Kn}});},[Kn,A.clinicianId,O]);let Ha=Fi({draft:A,hold:Un,dispatch:O,setFailure:nt,refetchSlots:Hn}),{submitBooking:Ua,confirm:Wa}=Bi({draft:A,reasonText:fe,book:Fo,stateAttested:rt,termsAttested:ht,cancellationPolicy:Bo.data??null,triage:Se,goTo:useCallback(te=>O({type:"goTo",step:te}),[O]),releaseSlot:useCallback(()=>{O({type:"patch",patch:wi}),Hn();},[O,Hn]),setFailure:nt,setEmergency:zn,setBookedConsult:za,...i?{onBooked:i}:{}}),qa=Jt.enabled&&Jt.data!==null&&!Jt.data.wellnessAvailable,Vo=Tt.enabled&&Tt.data?.active===false||j==="not_entitled",Ka=Tt.enabled&&Tt.data!==null,$a=Jr(Ka),zo=xn(Ao.length),Ya=fe.trim().length>0||!!A.slot,Ga=B===null||j==="unavailable"||Tr(Tt)||Tr(Jt),jo={noState:!A.state,isPending:ue.enabled&&ue.isPending,isError:ue.isError,isEmpty:(ue.data?.length??0)===0,notEntitled:Vo},Ja=Yi(jo),Ho={surfaceUnavailable:Ga,notEntitled:Vo,policyBlocked:qa,triageOpen:Se.open,step:ie},Xa=Ki(Ho);return Re()?jsxs(View,{style:[D.screen,E],testID:T??"televet-booking",children:[jsx(io,{step:ie,furthestIndex:X.furthestIndex,canGoBack:(Se.open||zr(X,me))&&ie!=="booked",isDirty:Ya,onBack:()=>{if(Se.open){Se.close();return}Se.cancel(),O({type:"back"});},onClose:()=>l?.(),...c?{onConfirmDiscard:c}:{}}),Xa?jsx($i,{state:Ho,petName:Ae(M,A.petId),...C?{primaryVet:C}:{},onFindEmergencyVet:_,stateInterest:No,...y?{onCheckAvailability:o(()=>O({type:"goTo",step:"clinician"}),"onCheckAvailability")}:{},onAcknowledgeEmergency:()=>{Se.acknowledge(fe),O({type:"next"});},...S?{renderUnavailable:S}:{}}):ie==="time"?jsx(pa,{slots:Ne.data??[],enabled:Ne.enabled,isPending:Ne.enabled&&Ne.isPending&&Ne.data===null,isError:Ne.isError,busySlotId:Un.isPending?Un.variables:null,failure:j,selectedSlot:A.slot,nextOpening:ja,onPick:Ha,onRetry:()=>Ne.refetch(),onSeeOtherVets:()=>O({type:"goTo",step:"clinician"})}):ie==="review"?jsx(mo,{when:A.slot?ye(A.slot.startsAt):"",lengthMinutes:(A.slot?fl(A.slot):null)??ct,petName:Ae(M,A.petId),reason:fe.trim(),clinician:ue.data?.find(te=>te.clinicianId===A.clinicianId)?.displayName??null,shareRecords:A.shareHealthRecords,stateCode:A.state,stateAttested:rt,onToggleStateAttest:bt,cancellationTerms:Bo.data?.summary??null,termsAttested:ht,onToggleTermsAttest:Oo,onToggleShare:te=>O({type:"patch",patch:{shareHealthRecords:te}}),canConfirm:Dt(A,fe),busy:Fo.isPending,failure:j,onConfirm:Wa,emergency:Gt,onAcknowledgeEmergency:()=>Ua(true),onSeeOtherVets:()=>O({type:"goTo",step:"clinician"}),mediaShortfall:zo,primaryVet:C,onFindEmergencyVet:_}):ie==="booked"?jsx(View,{style:D.stepFill,testID:"televet-booking-booked",children:jn?jsxs(Fragment,{children:[jsx(oo,{consult:jn,petName:Ae(M,jn.petId)??Ae(M,A.petId),onDone:()=>l?.(),canJoinInApp:I,...d?{onAddToCalendar:d}:{}}),jsx(Lt,{shortfall:zo,testIDPrefix:"televet-booked"})]}):null}):ie==="clinician"&&Ja?jsx(Gi,{state:jo,cause:$a,locationStatus:g,...p?{onRequestLocation:p}:{},onRetry:()=>ue.refetch(),stateInterest:No,...S?{renderUnavailable:S}:{}}):ie==="clinician"?jsx(ua,{clinicians:ue.data??[],isPending:ue.enabled&&ue.isPending,isError:ue.isError,selectedId:A.clinicianId,onRetry:()=>ue.refetch(),onSelect:te=>{O({type:"patch",patch:{clinicianId:te}}),O({type:"next"});}}):ie==="reason"?jsx(fa,{value:fe,onChange:Ce,media:Ao,onChangeMedia:Va,...s?{onPickMedia:s}:{},checking:Se.checking,onNext:()=>{Se.check(fe).then(te=>{te&&O({type:"next"});});}}):ie==="pet"?jsx(da,{pets:M,isPending:N.loading,isError:N.error!==null,onRetry:()=>{N.refresh();},onAddPet:a,selectedId:A.petId,onSelect:te=>{O({type:"patch",patch:{petId:te}}),O({type:"next"});}}):jsx(View,{style:z.marker,testID:`televet-booking-step-${ie}`})]}):jsx(View,{style:[D.screen,E],testID:T??"televet-booking",children:jsx(View,{style:D.stepFill,testID:"televet-booking-copy-unapproved",children:S?S():null})})}o(bo,"EverfurTelevetBooking");var mu=2e4;function Nn(e=true,t=mu){let[n,r]=useState(()=>Date.now());return useEffect(()=>{if(!e)return;r(Date.now());let i=setInterval(()=>r(Date.now()),t);return ()=>clearInterval(i)},[e,t]),n}o(Nn,"useNowMs");var w=Object.freeze({pastTitle:"Past visits",upcomingTitle:"Upcoming visits",emptyTitle:"No visits yet",bookCta:"Find a time",bookCardTitle:"Book a video visit",bookCardSubtitle:"Get help for your pet from home.",loadErrorTitle:"Could not load your visits",retryCta:"Try again",statusCompleted:"Completed",statusCancelled:"Cancelled",statusMissed:"Missed",manageCta:"Manage",joinCta:"Join call",joinDisabledReason:"You can join closer to the time.",joinOverReason:"This visit has ended.",vetUnassigned:"Your vet",rescheduleCta:"Reschedule",cancelCta:"Cancel visit",cancelConfirmTitle:"Cancel this visit?",cancelConfirmBody:"You can book another one afterwards.",cancelConfirmCta:"Cancel visit",cancelKeepCta:"Keep visit",cancelFailedTitle:"Could not cancel",cancelReason:"Cancelled by the pet parent in the app.",cancelPolicyErrorTitle:"Could not load what you need to agree to",phaseCancelled:"This visit was cancelled",phaseCancelledBody:"You can book another visit when you are ready.",notFoundTitle:"Not found",notFoundBody:"This visit is no longer available.",staleTitle:"Could not load your visits",staleRetry:"Try again"});function va(e){switch(e){case "completed":return w.statusCompleted;case "cancelled_owner":case "cancelled_ops":return w.statusCancelled;case "no_show_owner":case "no_show_vet":return w.statusMissed;default:return null}}o(va,"televetVisitStatusNative");function Wt({onBack:e,testID:t}){let n=vt();return jsx(View,{style:n.navRow,children:jsx(Pressable,{onPress:e,accessibilityRole:"button",accessibilityLabel:Pn,testID:t,style:n.backTap,children:jsx(View,{style:n.chevron,accessibilityElementsHidden:true,importantForAccessibility:"no"})})})}o(Wt,"TelevetVisitBackRow");function vt(){let e=R();return useMemo(()=>bu(e),[e])}o(vt,"useVisitStyles");function bu(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return StyleSheet.create({screen:{flex:1,paddingHorizontal:n.xl},body:{gap:n.sm,paddingBottom:n.xl},navRow:{paddingVertical:n.sm,flexDirection:"row"},backTap:{minHeight:J,minWidth:J,justifyContent:"center"},chevron:{width:10,height:10,marginLeft:n.xs,borderLeftWidth:2,borderBottomWidth:2,borderColor:t.brand,transform:[{rotate:"45deg"}]},title:{...b(e,"medium"),color:t.brand,fontSize:l.heading,lineHeight:l.heading*a.snug,marginBottom:n.md},list:{gap:n.sm},row:{gap:n.xs,padding:n.md,borderRadius:r.md,borderWidth:1,borderColor:t.brandBorder,backgroundColor:t.surface},rowHead:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:n.sm},when:{flex:1,...b(e,"medium"),color:t.text.primary,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},status:{...b(e,"mono"),color:t.text.metaCool,fontSize:l.micro,letterSpacing:1},meta:{...b(e,"mono"),color:t.text.metaCool,fontSize:l.caption,lineHeight:l.caption*a.normal},bookCard:{gap:n.md,padding:n.xl,borderRadius:r.sm,borderWidth:StyleSheet.hairlineWidth,borderColor:t.brand,backgroundColor:t.surface},bookTitle:{...b(e,"medium"),color:t.brand,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},bookSubtitle:{...b(e,"regular"),color:t.text.metaCool,fontSize:l.body,lineHeight:l.body*a.normal},visitCard:{gap:n.md,padding:n.lg,borderRadius:r.lg,borderWidth:1,borderColor:t.brandBorder},visitWhen:{...b(e,"medium"),color:t.brand,fontSize:l.heading,lineHeight:l.heading*a.snug},visitWho:{...b(e,"regular"),color:t.text.primary,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},visitMeta:{...b(e,"regular"),color:t.text.metaCool,fontSize:l.caption,lineHeight:l.caption*a.normal},reason:{...b(e,"regular"),color:t.text.metaCool,fontSize:l.caption,lineHeight:l.caption*a.normal},terms:{padding:n.md,borderRadius:r.sm,backgroundColor:t.surfaceSubtle,...b(e,"regular"),color:t.text.metaCool,fontSize:l.caption,lineHeight:l.caption*a.normal},noticeTitle:{...b(e,"bold"),color:t.text.primary,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},noticeBody:{...b(e,"regular"),color:t.text.metaCool,fontSize:l.body,lineHeight:l.body*a.normal},receipt:{gap:n.xs,padding:n.md,borderRadius:r.sm,backgroundColor:t.surfaceSubtle},stack:{gap:n.xs}})}o(bu,"makeVisitStyles");function To({consult:e,controller:t,onJoin:n,onReschedule:r,onCancelled:i,onBack:l,revision:a=0,nowMs:s,style:d}){let c=vt(),p=de(t),[g,f]=useState(0),y=Dl(e.consultId,p,a+g),C=xt(p),_=Bl(e.consultId,p),{pets:I}=dt(),[S,E]=useState(false),[T,D]=useState(false),[h,z]=useState(null),B=y.isError&&y.error?.httpStatus===404,N=B?null:y.data??e,M=N!==null&&Ke.has(N.status),$=Nn(!M),X=Cr(N,s??$),le=N===null?null:Ae(I,N.petId),O=C.data?.summary.trim()||null,fe=useCallback(()=>{O&&(D(false),_.mutate(w.cancelReason,{onSuccess:o(bt=>{E(false),z(bt),f(ht=>ht+1),i?.(bt);},"onSuccess"),onError:o(()=>D(true),"onError")}));},[O,_,i]);if(N===null)return jsxs(View,{style:[c.screen,d],testID:"televet-consult-missing",children:[jsx(Wt,{onBack:l,testID:"televet-consult-back"}),jsx(L,{title:w.notFoundTitle,message:w.notFoundBody})]});let Ce=N.status,j=Ce==="cancelled_owner"||Ce==="cancelled_ops",nt=Ce==="scheduled"||Ce==="in_progress",Gt=Sr(Ce)&&h===null,zn=N.clinicianName??w.vetUnassigned,rt=[le,N.reasonText].filter(Boolean).join(" \xB7 ");return jsxs(View,{style:[c.screen,d],testID:"televet-consult",children:[jsx(Wt,{onBack:l,testID:"televet-consult-back"}),jsxs(ScrollView,{contentContainerStyle:c.body,children:[jsxs(View,{style:c.visitCard,children:[jsx(v,{style:c.visitWhen,accessibilityRole:"header",testID:"televet-consult-when",children:ye(N.scheduledAt)}),jsxs(View,{style:c.stack,children:[jsx(v,{style:c.visitWho,testID:"televet-consult-vet",children:zn}),rt?jsx(v,{style:c.visitMeta,numberOfLines:2,children:rt}):null]})]}),nt&&h===null?jsxs(Fragment,{children:[jsx(P,{label:w.joinCta,disabled:!X.ready,onPress:()=>n(N,le),testID:"televet-consult-join"}),X.ready?null:jsx(v,{style:c.reason,testID:"televet-consult-join-reason",children:X.reason==="consult_over"?w.joinOverReason:w.joinDisabledReason}),Gt&&r?jsx(P,{label:w.rescheduleCta,kind:"secondary",onPress:()=>r(N),testID:"televet-consult-reschedule"}):null]}):null,h?jsx(View,{style:c.receipt,testID:"televet-consult-cancel-receipt",children:jsx(v,{style:c.noticeTitle,accessibilityLiveRegion:"polite",children:h.summary??w.phaseCancelled})}):j?jsxs(View,{style:c.stack,testID:"televet-consult-cancelled",children:[jsx(v,{style:c.noticeTitle,accessibilityRole:"header",children:w.phaseCancelled}),jsx(v,{style:c.noticeBody,children:w.phaseCancelledBody})]}):null,Gt?jsxs(View,{style:c.stack,children:[O?jsx(v,{style:c.terms,accessibilityLiveRegion:"polite",testID:"televet-consult-cancellation-policy",children:O}):C.enabled&&C.isPending?jsx(View,{testID:"televet-consult-cancellation-policy-loading",children:jsx(re,{height:42})}):jsx(L,{title:w.cancelPolicyErrorTitle,actionLabel:w.retryCta,onAction:()=>C.refetch(),testID:"televet-consult-cancellation-policy-error"}),S?jsxs(View,{style:c.stack,testID:"televet-consult-cancel-confirm",children:[jsx(v,{style:c.noticeTitle,children:w.cancelConfirmTitle}),jsx(v,{style:c.noticeBody,children:w.cancelConfirmBody}),T?jsx(q,{message:w.cancelFailedTitle,testID:"televet-consult-cancel-failed"}):null,jsx(P,{label:w.cancelConfirmCta,kind:"danger",loading:_.isPending,onPress:fe,testID:"televet-consult-cancel-yes"}),jsx(P,{label:w.cancelKeepCta,kind:"secondary",disabled:_.isPending,onPress:()=>{E(false),D(false);},testID:"televet-consult-cancel-keep"})]}):jsx(P,{label:w.cancelCta,kind:"secondary",disabled:!O,onPress:()=>{D(false),E(true);},testID:"televet-consult-cancel"})]}):null,y.isError&&!B?jsx(L,{title:w.staleTitle,actionLabel:w.staleRetry,onAction:()=>y.refetch(),testID:"televet-consult-stale"}):null]})]})}o(To,"TelevetConsultScreen");var qe=Object.freeze({muteCta:"Mute",unmuteCta:"Unmute",cameraOffCta:"Camera off",cameraOnCta:"Camera on",leaveCta:"Leave",switchCameraCta:"Switch camera",speakerOffCta:"Speaker off",speakerOnCta:"Speaker on",lobbyTitleNoName:"Your vet is joining",lobbySubtitle:"Usually under a minute",lobbyPrepLabel:"WHILE YOU WAIT",lobbyPrepNoPet:"Have your pet nearby and somewhere well lit.",lobbyTitle:o(e=>{let t=e?.trim()??"";return t.length>0?`${t} is joining`:qe.lobbyTitleNoName},"lobbyTitle"),lobbyPrep:o(e=>{let t=e?.trim()??"";return t.length>0?`Have ${t} nearby and somewhere well lit.`:qe.lobbyPrepNoPet},"lobbyPrep"),lobbyDuration:o(e=>`${e} MINUTE VISIT`,"lobbyDuration"),joinFailedReason:"That did not open. Try again.",recordingNoticeTitle:"This consultation is recorded.",recordingNoticeCta:"Continue to the call",recordingNoticeDecline:"Not now",selfCameraOffLabel:"Your camera is off"});function ha(e){switch(e){case "too_early":return "You can join closer to the time.";case "too_late":return "This visit has ended.";case "room_not_ready":return "The room is still being set up. Try again in a moment.";case "not_joinable":return "This visit is no longer open.";case "unavailable":return "No way to join this visit yet.";default:return "That did not open. Try again."}}o(ha,"televetJoinRefusalNativeCopy");var Ta="No way to join this visit yet.";function Ea(e){return e==="room_not_ready"||e==="unknown"}o(Ea,"televetJoinIsRetryable");var ka=Symbol.for("@everfur/sdk/televet");function ku(){let e=globalThis,t=e[ka];if(t!==void 0)return t;let n={presenter:null,snapshot:Object.freeze({request:null,serial:0,activeHost:null}),hosts:[],nextHost:1,listeners:new Set,dailyRegistered:false};return e[ka]=n,n}o(ku,"televetGlobal");function Mn(){return ku().dailyRegistered}o(Mn,"isEverfurDailyRegistered");function Ca(e){let t=null;return ()=>{if(t!==null)return t;let n=e();return t=n,n.then(void 0,()=>{t===n&&(t=null);}),n}}o(Ca,"memoizeTelevetLoader");var Ra=Object.freeze({status:"joining"});function Eo(e,t){let[n,r]=useState(0),[i,l]=useState(Ra),a=useRef(null);useEffect(()=>{let d=t?.joinConsult;if(t===null||d===void 0){l(Object.freeze({status:"refused",refusal:"unavailable",reason:null}));return}let c=`${e}#${String(n)}`,p=a.current;if(p===null||p.key!==c){let f;try{f=d.call(t,e);}catch(y){f=Promise.reject(y);}p={key:c,promise:f},a.current=p;}let g=true;return l(Ra),p.promise.then(f=>{g&&(f.ok?l(Object.freeze({status:"ready",credential:f.value})):l(Object.freeze({status:"refused",refusal:ir(f.error),reason:lr(f.error)})));},()=>{g&&l(Object.freeze({status:"refused",refusal:"unknown",reason:null}));}),()=>{g=false;}},[e,t,n]);let s=useCallback(()=>r(d=>d+1),[]);return {state:i,retry:s}}o(Eo,"useTelevetJoin");var _u=Symbol.for("@everfur/sdk/televet/recording-notice-receipt");function _a(){let e=globalThis;return e[_u]??=new Map}o(_a,"receipts");function xa(e){let t=_a();t.set(e,(t.get(e)??0)+1);}o(xa,"markRecordingNoticeAccepted");function wa(e){let t=_a(),n=t.get(e)??0;n<=1?t.delete(e):t.set(e,n-1);}o(wa,"clearRecordingNoticeAccepted");var ko=createContext(null);function Pa(e){let t=useContext(ko);useEffect(()=>{if(!(t===null||!e))return t.setFullBleed(true),()=>{t.setFullBleed(false);}},[t,e]);}o(Pa,"useTelevetModalFullBleed");var Ia=Ca(()=>import('@everfur/sdk/televet/call'));function Co({consultId:e,...t}){let n=F(),r=Fu();return r===null?jsx(View,{style:[n.screen,t.style],testID:"televet-join-checking"}):jsx(Du,{consultId:e,...t,canHostCall:r},e)}o(Co,"TelevetJoinScreen");function Du({canHostCall:e,onLeave:t,style:n,...r}){let[i,l]=useState(false);Da(()=>(t(),true),!i);let a=useCallback(()=>{l(false),t();},[t]);return e?i?jsx(Bu,{...r,onLeave:a,style:n}):jsx(Oa,{onContinue:()=>l(true),onLeave:t,style:n}):jsx(Aa,{onLeave:t,style:n})}o(Du,"TelevetJoinGate");function Bu({consultId:e,controller:t,clinicianName:n,petName:r,onLeave:i,style:l}){let a=F(),s=de(t),{state:d,retry:c}=Eo(e,s),[p,g]=useState(null),[f,y]=useState(false),C=d.status==="ready";useEffect(()=>{if(!C||p!==null)return;let h=true;return Ia().then(z=>{h&&g(()=>z);},()=>{h&&y(true);}),()=>{h=false;}},[C,p]);let _=d.status==="ready"?d.credential.roomUrl:null,[I,S]=useState(null);useEffect(()=>{if(_!==null)return xa(_),S(_),()=>{wa(_);}},[_]);let E=C&&p!==null&&!f;Da(()=>(E||i(),true),true);let T=d.status==="ready"?d.credential:null;if(Pa(E&&T!==null&&p.isUsableRoomCredential(T.roomUrl,T.token)&&p.loadEverfurDaily().available),d.status==="refused"||f){let h=d.status==="refused"?d.refusal:"unavailable";return jsxs(View,{style:[a.screen,a.stepFill,l],testID:"televet-join-refused",children:[jsx(q,{message:ha(h),testID:"televet-join-refused-message"}),Ea(h)&&d.status==="refused"?jsx(P,{label:u.retryCta,kind:"primary",onPress:c,testID:"televet-join-retry"}):null,jsx(P,{label:qe.leaveCta,kind:"secondary",onPress:i,testID:"televet-join-leave"})]})}if(d.status==="joining"||p===null||I!==d.credential.roomUrl)return jsx(Oa,{busy:true,onLeave:i,style:l});let{EverfurVetCall:D}=p;return jsx(D,{roomUrl:d.credential.roomUrl,token:d.credential.token,onLeave:i,clinicianName:n??null,petName:r??null,consultMinutes:d.credential.callLimits?.consultMinutes??null,renderUnavailable:()=>jsx(Aa,{onLeave:i,style:l}),style:l})}o(Bu,"TelevetJoinRoom");function Oa({onContinue:e,onLeave:t,busy:n=false,style:r}){let i=F();return jsx(View,{style:[i.screen,i.stepFill,r],children:jsxs(View,{style:i.stateCard,testID:"everfur-vet-call-recording-notice",accessibilityState:{busy:n},children:[jsx(v,{style:i.stateTitle,accessibilityRole:"header",children:qe.recordingNoticeTitle}),jsx(P,{label:qe.recordingNoticeCta,kind:"primary",loading:n,onPress:()=>e?.(),testID:"everfur-vet-call-recording-continue"}),jsx(P,{label:qe.leaveCta,kind:"secondary",onPress:t,testID:"everfur-vet-call-recording-leave"})]})})}o(Oa,"TelevetRecordingNotice");function Aa({onLeave:e,style:t}){let n=F();return jsxs(View,{style:[n.screen,n.stepFill,t],testID:"televet-join-call-unavailable",children:[jsx(q,{message:Ta}),jsx(P,{label:qe.leaveCta,kind:"secondary",onPress:e,testID:"televet-join-unavailable-leave"})]})}o(Aa,"TelevetJoinUnavailable");function Da(e,t){lt(e,t);let n=useRef(e);n.current=e,useEffect(()=>{if(!t)return;let r=BackHandler.addEventListener("hardwareBackPress",()=>n.current());return ()=>{r.remove();}},[t]);}o(Da,"useJoinBackPress");function Fu(){let[e,t]=useState(()=>Mn()?null:false);return useEffect(()=>{let n=true;return Ia().then(r=>{if(!n)return;let i=r.loadEverfurDaily();if(t(i.available),!i.available)try{globalThis.console?.warn?.(`${r.EVERFUR_DAILY_SETUP} (${i.reason})`);}catch{}},()=>{n&&t(false);}),()=>{n=false;}},[]),e}o(Fu,"useCanHostCall");function Ro(e){let{consult:t,onRescheduled:n,onCancel:r,controller:i,style:l,testID:a}=ot(e,["onRescheduled","onCancel"]),s=F(),d=de(i),c=wt(t?.clinicianId??null,d),p=Pt(d),g=hr(t?.consultId??null,d),[f,y]=useState(null),C=useCallback(I=>{y(null),p.mutate(I.slotId,{onSuccess:o(()=>{g.mutate(I.slotId,{onSuccess:o(S=>n?.(S),"onSuccess"),onError:o(S=>y(Le(S).kind==="unavailable"?"unavailable":"failed"),"onError")});},"onSuccess"),onError:o(S=>y(Le(S).kind==="unavailable"?"unavailable":"taken"),"onError")});},[p,g,n]),_=p.isPending||g.isPending;return Re()?t?jsxs(View,{style:[s.screen,s.stepFill,l],testID:a??"televet-reschedule",children:[jsx(v,{tier:"compact",style:s.stepHelp,children:ne(u.rescheduleFromTemplate,{when:ye(t.scheduledAt)})}),f==="taken"?jsx(q,{message:u.slotTaken}):null,f==="failed"?jsx(q,{message:u.rescheduleFailed}):null,f==="unavailable"?jsx(q,{message:u.bookingPausedTitle,testID:"televet-reschedule-unavailable"}):null,c.enabled?c.isPending?jsx(View,{style:s.list,testID:"televet-reschedule-slots-loading",children:[0,1,2].map(I=>jsx(re,{height:48},I))}):c.isError?jsx(L,{title:u.slotsErrorTitle,actionLabel:u.retryCta,onAction:()=>c.refetch(),testID:"televet-reschedule-slots-error"}):(c.data??[]).length===0?jsx(View,{testID:"televet-reschedule-empty",children:jsx(L,{title:u.noSlotsTitle})}):jsx(Vt,{slots:c.data??[],busySlotId:_?p.variables:null,onPick:C,rowTestIdPrefix:"televet-reschedule-slot",testID:"televet-reschedule-slots"}):jsx(View,{testID:"televet-reschedule-paused",children:jsx(L,{title:u.bookingPausedTitle})}),jsx(P,{label:u.keepExistingCta,kind:"secondary",disabled:_,onPress:()=>r?.(),testID:"televet-reschedule-keep"})]}):jsx(View,{style:[s.screen,s.list,l],testID:"televet-reschedule-loading",children:[0,1].map(I=>jsx(re,{height:48},I))}):jsx(View,{style:[s.screen,s.stepFill,l],testID:"televet-reschedule-copy-unapproved"})}o(Ro,"EverfurTelevetReschedule");function _o({controller:e,onOpenVisit:t,onBook:n,onBack:r,revision:i=0,nowMs:l,style:a}){let s=vt(),d=de(e),c=mn(d,i),{pets:p}=dt(),g=c.data??[],f=g.some(h=>!Ke.has(h.status)),y=Nn(f),C=l??y,{upcoming:_,past:I}=useMemo(()=>It(g,C),[g,C]),S=c.enabled&&c.isPending,E=c.isError&&c.data===null,T=!S&&!E&&g.length>0,D=o(h=>{let z=va(h.status),B=[h.clinicianName,Ae(p,h.petId)].filter(Boolean).join(" \xB7 ");return jsxs(View,{style:s.row,testID:`televet-visits-row-${h.consultId}`,children:[jsxs(View,{style:s.rowHead,children:[jsx(v,{style:s.when,children:Ii(h.scheduledAt)}),z?jsx(v,{style:s.status,testID:`televet-visits-status-${h.consultId}`,children:z}):null]}),B?jsx(v,{style:s.meta,children:B}):null,h.status==="completed"?null:jsx(P,{label:w.manageCta,kind:"secondary",onPress:()=>t(h),testID:`televet-visits-open-${h.consultId}`})]},h.consultId)},"renderRow");return jsxs(View,{style:[s.screen,a],testID:"televet-visits",children:[jsx(Wt,{onBack:r,testID:"televet-visits-back"}),jsxs(ScrollView,{contentContainerStyle:s.body,children:[T?null:jsx(v,{style:s.title,accessibilityRole:"header",children:w.pastTitle}),E?jsxs(View,{style:s.list,children:[jsx(L,{title:w.loadErrorTitle,actionLabel:w.retryCta,onAction:()=>c.refetch(),testID:"televet-visits-error"}),n?jsx(Ba,{onBook:n}):null]}):S?jsx(View,{style:s.list,testID:"televet-visits-loading",children:[0,1,2].map(h=>jsx(re,{height:72},h))}):g.length===0?jsxs(View,{style:s.list,testID:"televet-visits-empty",children:[jsx(L,{title:w.emptyTitle}),n?jsx(P,{label:w.bookCta,onPress:n,testID:"televet-visits-book"}):null]}):jsxs(View,{style:s.list,children:[_.length>0?jsxs(Fragment,{children:[jsx(v,{style:s.title,accessibilityRole:"header",children:w.upcomingTitle}),jsx(View,{style:s.list,testID:"televet-visits-upcoming",children:_.map(D)})]}):null,n?jsx(Ba,{onBook:n}):null,jsx(v,{style:s.title,accessibilityRole:"header",children:w.pastTitle}),I.length>0?jsx(View,{style:s.list,testID:"televet-visits-past",children:I.map(D)}):null]})]})]})}o(_o,"TelevetVisitsScreen");function Ba({onBook:e}){let t=vt();return jsxs(View,{style:t.bookCard,testID:"televet-visits-book-card",children:[jsx(v,{style:t.bookTitle,children:w.bookCardTitle}),jsx(v,{style:t.bookSubtitle,children:w.bookCardSubtitle}),jsx(P,{label:w.bookCta,kind:"primary",onPress:e,testID:"televet-visits-book"})]})}o(Ba,"BookCard");var xo=Object.freeze({name:"home"}),qu=Object.freeze({name:"visits"}),Ku=Object.freeze({name:"booking"});function wo(e){let t=e.visitRef?.trim()??"";return t.length>0?Object.freeze({name:"visit",visitRef:t,intent:e.intent??null}):xo}o(wo,"televetScreenForRequest");function $u(e,t){switch(t.type){case "push":return Object.freeze({stack:Object.freeze([...e.stack,t.screen])});case "pop":return e.stack.length<=1?e:Object.freeze({stack:Object.freeze(e.stack.slice(0,-1))});case "land":return e.stack[0]?.name!=="home"?e:Object.freeze({stack:Object.freeze([t.screen,...e.stack.slice(1)])});default:return e}}o($u,"navReducer");function La(e){let{style:t,renderPending:n,...r}=ot(e,["onExit","onBooked","onAddPet","onRequestLocation","onFindEmergencyVet"]);return jsx(Xl,{capability:"televet",style:t,...n?{renderPending:n}:{},children:jsx(Yu,{...r,style:t})})}o(La,"EverfurTelevetFlow");function Yu({petRef:e,usState:t,controller:n,onBooked:r,onExit:i,onAddPet:l,onPickMedia:a,onAddToCalendar:s,onConfirmDiscard:d,onRequestLocation:c,locationStatus:p,primaryVet:g,onFindEmergencyVet:f,onTriageReason:y,canJoinInApp:C=false,renderUnavailable:_,initialScreen:I,style:S}){let E=F(),[T,D]=useReducer($u,I??xo,j=>Object.freeze({stack:Object.freeze([j])})),h=T.stack[T.stack.length-1]??xo,z=T.stack.length,[B,N]=useState(0),M=useCallback(()=>N(j=>j+1),[]),$=useCallback(()=>z<=1||h.name==="call"||h.name==="booking"?false:(D({type:"pop"}),true),[z,h.name]);useEffect(()=>{let j=BackHandler.addEventListener("hardwareBackPress",$);return ()=>{j.remove();}},[$]),lt($);let me=useCallback(()=>_?_():jsx(View,{style:E.list,testID:"televet-unavailable",children:Re()?jsx(L,{title:u.bookingPausedTitle}):null}),[_,E.list]),X=useCallback(()=>{z>1?D({type:"pop"}):i?.();},[z,i]),le=o(j=>D({type:"push",screen:j}),"push"),O=useCallback(j=>D({type:"land",screen:j==="visits"?qu:Ku}),[]),fe=jsx(bo,{...e!==void 0?{petRef:e}:{},...t!==void 0?{usState:t}:{},...n?{controller:n}:{},onBooked:j=>{M(),r?.(j);},onExit:X,...l?{onAddPet:l}:{},...a?{onPickMedia:a}:{},...s?{onAddToCalendar:s}:{},...d?{onConfirmDiscard:d}:{},...c?{onRequestLocation:c}:{},...p?{locationStatus:p}:{},...g?{primaryVet:g}:{},...f?{onFindEmergencyVet:f}:{},...y?{onTriageReason:y}:{},canJoinInApp:C,renderUnavailable:me,style:S}),Ce=jsx(_o,{...n?{controller:n}:{},revision:B,onOpenVisit:j=>le({name:"consult",consult:j}),onBook:()=>le({name:"booking"}),onBack:X,style:S});switch(h.name){case "home":return jsx(Gu,{controller:n,onLand:O,style:S});case "booking":return fe;case "visits":case "visit":return Ce;case "consult":return jsx(To,{consult:h.consult,...n?{controller:n}:{},revision:B,onJoin:(j,nt)=>le({name:"call",consultId:j.consultId,clinicianName:j.clinicianName,petName:nt}),onReschedule:j=>le({name:"reschedule",consult:j}),onCancelled:M,onBack:X,style:S});case "reschedule":return jsx(Ro,{consult:h.consult,...n?{controller:n}:{},onRescheduled:()=>{M(),D({type:"pop"});},onCancel:()=>D({type:"pop"}),style:S});case "call":return jsx(Co,{consultId:h.consultId,...n?{controller:n}:{},...h.clinicianName!==void 0?{clinicianName:h.clinicianName}:{},...h.petName!==void 0?{petName:h.petName}:{},onLeave:()=>{M(),X();},style:S});default:return Xt(h)}}o(Yu,"TelevetFlowBody");function Gu({controller:e,onLand:t,style:n}){let r=F(),i=de(e),l=Fl(i);return useEffect(()=>{l!=="pending"&&t(l);},[l,t]),jsxs(View,{style:[r.screen,r.list,n],testID:"televet-landing-loading",children:[jsx(re,{height:72}),jsx(re,{height:72})]})}o(Gu,"TelevetLandingScreen");var Po=La;function rp({request:e,onClose:t}){let n=R(),r=useSafeAreaInsets(),i=useMemo(()=>qo(),[]),l=useCallback(()=>{i.dispatch()||t();},[i,t]),[a,s]=useState(false),d=useMemo(()=>({setFullBleed:s}),[]),c=useMemo(()=>wo(e),[e]);return jsx(Modal,{visible:true,animationType:n.motion.reducedMotion?"none":"slide",presentationStyle:"fullScreen",onRequestClose:l,children:jsx(View,{testID:"everfur-televet-modal",style:[Ma.root,{backgroundColor:n.color.surface},a?null:{paddingTop:r.top,paddingBottom:r.bottom}],children:jsx(Yn.Provider,{value:i,children:jsx(ko.Provider,{value:d,children:jsx(Po,{...e.petRef!==void 0?{petRef:e.petRef}:{},...e.usState!==void 0?{usState:e.usState}:{},initialScreen:c,onExit:t,canJoinInApp:Mn(),style:Ma.root})})})})})}o(rp,"EverfurTelevetModal");var Ma=StyleSheet.create({root:{flex:1}});export{Pn as BACK_LABEL,an as CANCELLATION_POLICY_VERSION_MAX,dn as CANCEL_REASON_MAX,pl as CONSULT_KINDS,ct as CONSULT_MINUTES,ul as CONSULT_STATUSES,Po as EverfurTelevet,bo as EverfurTelevetBooking,La as EverfurTelevetFlow,rp as EverfurTelevetModal,Ro as EverfurTelevetReschedule,sn as MEDIA_REFS_MAX,Ft as NO_MEDIA_SHORTFALL,xe as REASON_TEXT_MAX,Ve as TELEVET_BOOKING_BASE,u as TELEVET_BOOKING_COPY,je as TELEVET_BOOKING_STEPS,Rl as TELEVET_CONSULT_PAGE_LIMIT,kr as TELEVET_JOIN_CLOSES_MINUTES_AFTER,Er as TELEVET_JOIN_OPENS_MINUTES_BEFORE,Ke as TERMINAL_CONSULT_STATUSES,oo as TelevetBookedScreen,io as TelevetBookingChrome,qi as TelevetClinicianEmptyState,zt as TelevetConsentCheckbox,To as TelevetConsultScreen,co as TelevetDayStrip,Wi as TelevetEarlyEmergency,Nt as TelevetEmergencyExits,Cc as TelevetEntitlementInterestState,so as TelevetIntakeMedia,Co as TelevetJoinScreen,Lt as TelevetMediaDropNotice,Vt as TelevetSlotPicker,eo as TelevetStateInterestAction,fo as TelevetSummaryCard,et as TelevetSummaryRow,_o as TelevetVisitsScreen,Wr as attestation,Dt as canConfirm,Sr as canManageTelevetVisit,ur as createTelevetBookingController,Hr as currentStep,Ri as emptyTelevetDraft,ic as formatVisitRange,Pi as formatWhen,ye as formatWhenWithDay,zr as hasPreviousStep,Vr as initialTelevetBookingState,_n as isHoldExpired,Xr as isMediaShortfallEmpty,Sn as isSkipped,Re as isTelevetBookingCopyReady,ve as isWellFormedStateCode,xn as mediaShortfallFromUnsentPicks,or as parseVetCallCredential,It as splitTelevetVisits,Ur as televetBookingKey,jr as televetBookingReducer,Le as televetBookingRefusal,Sl as televetCancelCall,Ji as televetConsultCalendarKey,un as televetConsultCall,Dn as televetDaysFromSlots,Jr as televetEmptyRosterCause,Gr as televetEmptyRosterView,El as televetHoldCall,Cl as televetJoinCall,md as televetJoinOpensAtMs,Cr as televetJoinReadiness,Qr as televetMediaShortfallLines,kl as televetRescheduleCall,wo as televetScreenForRequest,$r as useEarlyTriage,Yr as useStateInterest,br as useTelevetBookConsult,fd as useTelevetBookingAvailable,de as useTelevetBookingController,mr as useTelevetBookingEntitlement,xt as useTelevetCancellationPolicy,vr as useTelevetClinicians,Pt as useTelevetHoldSlot,Eo as useTelevetJoin,gr as useTelevetNextSlot,hr as useTelevetRescheduleConsult,wt as useTelevetSlots,yr as useTelevetStatePolicy,_l as validateBookingBody,lr as vetCallJoinReason,ir as vetCallJoinRefusal,yc as withUnsentPicks};
|