@everfur/sdk 0.6.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +228 -0
- package/dist/{Chat-CHqcgMyw.d.ts → Chat-CFi5cNUF.d.ts} +4 -4
- package/dist/{Chat-BoAvCWhI.d.cts → Chat-DQOsAumH.d.cts} +4 -4
- package/dist/{DepthViews-B0g83e_N.d.cts → DepthViews-C409ubw-.d.cts} +1 -1
- package/dist/{DepthViews-7Y8Ur058.d.ts → DepthViews-D81c95Ra.d.cts} +1 -1
- package/dist/{DepthViews-Dg2bIon_.d.ts → DepthViews-es8mIK0w.d.ts} +1 -1
- package/dist/{DepthViews-CT5mQld9.d.cts → DepthViews-uilL1NJZ.d.ts} +1 -1
- package/dist/IntakeMedia-BcjjUizr.d.ts +103 -0
- package/dist/IntakeMedia-CL_S2tZE.d.cts +103 -0
- package/dist/animations/index.cjs +1 -1
- package/dist/animations/index.d.cts +3 -3
- package/dist/animations/index.d.ts +3 -3
- package/dist/animations/index.js +1 -1
- package/dist/{attachments-C3HJNYQ7.d.cts → attachments-B2GjBgvF.d.cts} +2 -2
- package/dist/{attachments-rkox0ewd.d.cts → attachments-DI710no4.d.cts} +5 -5
- package/dist/{attachments-CfxsVg7W.d.ts → attachments-DNaSbmA3.d.ts} +2 -2
- package/dist/{attachments-CThFsH4b.d.ts → attachments-SF88N654.d.ts} +5 -5
- package/dist/{bookingCopy-Y3OGdoMT.d.ts → bookingCopy-D2N3RhsV.d.ts} +451 -50
- package/dist/{bookingCopy-Do3zMeXb.d.cts → bookingCopy-xlXxORCA.d.cts} +451 -50
- package/dist/{bookingTypes-DCs8mmBb.d.cts → bookingTypes-D4pD3tHs.d.cts} +13 -1
- package/dist/{bookingTypes-DCs8mmBb.d.ts → bookingTypes-D4pD3tHs.d.ts} +13 -1
- package/dist/{branding-DYWma2il.d.ts → branding-Bio5MM6g.d.cts} +3 -3
- package/dist/{branding-ChXm8gxI.d.cts → branding-ytH4jJq1.d.ts} +3 -3
- package/dist/{callCopy-CPe9mbwG.d.cts → callCopy-DHjem0R-.d.cts} +12 -1
- package/dist/{callCopy-CPe9mbwG.d.ts → callCopy-DHjem0R-.d.ts} +12 -1
- package/dist/{casesRepository-Jj6t60AY.d.cts → casesRepository-B-md8h1S.d.cts} +1 -1
- package/dist/{casesRepository-BbgXYPxa.d.ts → casesRepository-CC6951TK.d.ts} +1 -1
- package/dist/chat/index.cjs +1 -1
- package/dist/chat/index.d.cts +9 -9
- package/dist/chat/index.d.ts +9 -9
- package/dist/chat/index.js +1 -1
- package/dist/client/index.cjs +2 -2
- package/dist/client/index.d.cts +10 -10
- package/dist/client/index.d.ts +10 -10
- package/dist/client/index.js +2 -2
- package/dist/{config-Dfbj5mlx.d.ts → config-BM0sv5jx.d.ts} +1 -1
- package/dist/{config-BZX97FmW.d.cts → config-Daa1plhQ.d.cts} +1 -1
- package/dist/consent/index.cjs +1 -1
- package/dist/consent/index.d.cts +5 -5
- package/dist/consent/index.d.ts +5 -5
- package/dist/consent/index.js +1 -1
- package/dist/{context-Cbe0zYym.d.ts → context-CDV2pwGI.d.ts} +7 -7
- package/dist/{context-DJXnZ1Mx.d.cts → context-DQHtwcHN.d.cts} +7 -7
- package/dist/{copy-dKK5KoAQ.d.cts → copy-BEx5F71o.d.cts} +2 -2
- package/dist/{copy-DHekqSKE.d.ts → copy-Cl1l-qmY.d.ts} +2 -2
- package/dist/core/index.cjs +7 -7
- package/dist/core/index.d.cts +21 -21
- package/dist/core/index.d.ts +21 -21
- package/dist/core/index.js +7 -7
- package/dist/{depth-NmWSbvfi.d.cts → depth-CAAwiStc.d.cts} +132 -38
- package/dist/{depth-CrpRjWGB.d.ts → depth-DfNRVtrV.d.ts} +132 -38
- package/dist/{entitlementRepository-tVNazi8R.d.ts → entitlementRepository-CVWvND1P.d.ts} +3 -3
- package/dist/{entitlementRepository-iL-9vS1i.d.cts → entitlementRepository-DPvWjV-N.d.cts} +3 -3
- package/dist/{identity-B8rp0L9G.d.ts → identity-BhT7oJDS.d.ts} +1 -1
- package/dist/{identity-D7PO5s9m.d.cts → identity-DUlshgow.d.cts} +1 -1
- package/dist/index.cjs +6 -6
- package/dist/index.d.cts +17 -17
- package/dist/index.d.ts +17 -17
- package/dist/index.js +6 -6
- package/dist/notifications/index.d.cts +2 -2
- package/dist/notifications/index.d.ts +2 -2
- package/dist/{pets-BWx9BKea.d.cts → pets-Bneph9m1.d.cts} +1 -1
- package/dist/{pets-BQbXmICf.d.ts → pets-DjcLmRrW.d.ts} +1 -1
- package/dist/{petsRepository-SqIvEMiT.d.cts → petsRepository-BnVre3q7.d.cts} +1 -1
- package/dist/{petsRepository-0oBVydl6.d.ts → petsRepository-BwxmfX_s.d.ts} +1 -1
- package/dist/photo/index.cjs +1 -1
- package/dist/photo/index.js +1 -1
- package/dist/{ports-ChnzSy4E.d.cts → ports-BPKxFOSe.d.cts} +10 -9
- package/dist/{ports-iXPWd7Vt.d.ts → ports-Di9rdLO9.d.ts} +10 -9
- package/dist/records/depth/index.cjs +2 -2
- package/dist/records/depth/index.d.cts +7 -7
- package/dist/records/depth/index.d.ts +7 -7
- package/dist/records/depth/index.js +2 -2
- package/dist/records/index.cjs +3 -3
- package/dist/records/index.d.cts +19 -10
- package/dist/records/index.d.ts +19 -10
- package/dist/records/index.js +3 -3
- package/dist/{requestFunnel-CQzz2DIW.d.ts → requestFunnel-CiSX2pun.d.ts} +2 -2
- package/dist/{requestFunnel-DAwb7haa.d.cts → requestFunnel-DMR_1T3O.d.cts} +2 -2
- package/dist/{runtimeTypes-DB9-kigO.d.cts → runtimeTypes-2gJ5hYoE.d.cts} +5 -5
- package/dist/{runtimeTypes-BNOxfmfg.d.ts → runtimeTypes-CkMFCbHW.d.ts} +5 -5
- package/dist/server/events/index.cjs +1 -1
- package/dist/server/events/index.d.cts +2 -2
- package/dist/server/events/index.d.ts +2 -2
- package/dist/server/events/index.js +1 -1
- package/dist/server/index.cjs +1 -1
- package/dist/server/index.d.cts +3 -3
- package/dist/server/index.d.ts +3 -3
- package/dist/server/index.js +1 -1
- package/dist/televet/booking/index.cjs +4 -1
- package/dist/televet/booking/index.d.cts +116 -29
- package/dist/televet/booking/index.d.ts +116 -29
- package/dist/televet/booking/index.js +4 -1
- package/dist/televet/call/index.cjs +1 -1
- package/dist/televet/call/index.d.cts +1 -1
- package/dist/televet/call/index.d.ts +1 -1
- package/dist/televet/call/index.js +1 -1
- package/dist/televet/index.cjs +1 -1
- package/dist/televet/index.js +1 -1
- package/dist/testing/index.cjs +3 -3
- package/dist/testing/index.d.cts +1 -1
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/index.js +3 -3
- package/dist/testing/rn/index.cjs +1 -1
- package/dist/testing/rn/index.d.cts +14 -12
- package/dist/testing/rn/index.d.ts +14 -12
- package/dist/testing/rn/index.js +1 -1
- package/dist/testing/web/index.d.cts +9 -9
- package/dist/testing/web/index.d.ts +9 -9
- package/dist/{timelineRows-Dll2IGFg.d.ts → timelineRows-D3171ksh.d.ts} +1 -1
- package/dist/{timelineRows-BuNhzDbH.d.cts → timelineRows-DDnz4gx2.d.cts} +1 -1
- package/dist/{tokens-ARWZtMOU.d.cts → tokens-BYtbKwFh.d.cts} +6 -3
- package/dist/{tokens-ARWZtMOU.d.ts → tokens-BYtbKwFh.d.ts} +6 -3
- package/dist/{typeStyle-YCS8dt19.d.cts → typeStyle-BqfwxZH4.d.cts} +2 -2
- package/dist/{typeStyle-8iEqQmP_.d.ts → typeStyle-DKz02DGU.d.ts} +2 -2
- package/dist/{uploadTransport-C1p8FuG8.d.cts → uploadTransport-BM_pnEWj.d.cts} +5 -0
- package/dist/{uploadTransport-bZIKBTyK.d.ts → uploadTransport-C6kGP1Kd.d.ts} +5 -0
- package/dist/{useRecordsDepth-CNEHZJtj.d.cts → useRecordsDepth-COJ0wSYK.d.cts} +1 -1
- package/dist/{useRecordsDepth-CuNdne6E.d.ts → useRecordsDepth-Z9FF5X4E.d.ts} +1 -1
- package/dist/video/index.cjs +1 -1
- package/dist/video/index.js +1 -1
- package/dist/{view-DFy8EDwf.d.ts → view-DoQEHXJR.d.ts} +47 -5
- package/dist/{view-BhqWlYrZ.d.cts → view-nRy6SitU.d.cts} +47 -5
- package/dist/web/consent/index.cjs +1 -1
- package/dist/web/consent/index.d.cts +5 -5
- package/dist/web/consent/index.d.ts +5 -5
- package/dist/web/consent/index.js +1 -1
- package/dist/web/index.cjs +7 -7
- package/dist/web/index.d.cts +23 -22
- package/dist/web/index.d.ts +23 -22
- package/dist/web/index.js +7 -7
- package/dist/web/notifications/index.d.cts +3 -3
- package/dist/web/notifications/index.d.ts +3 -3
- package/dist/web/records/depth/index.cjs +2 -2
- package/dist/web/records/depth/index.d.cts +7 -7
- package/dist/web/records/depth/index.d.ts +7 -7
- package/dist/web/records/depth/index.js +2 -2
- package/dist/web/records/index.cjs +3 -3
- package/dist/web/records/index.d.cts +28 -17
- package/dist/web/records/index.d.ts +28 -17
- package/dist/web/records/index.js +3 -3
- package/dist/web/televet/booking/index.cjs +4 -2
- package/dist/web/televet/booking/index.d.cts +227 -123
- package/dist/web/televet/booking/index.d.ts +227 -123
- package/dist/web/televet/booking/index.js +4 -2
- package/dist/web/televet/call/index.cjs +1 -1
- package/dist/web/televet/call/index.d.cts +1 -1
- package/dist/web/televet/call/index.d.ts +1 -1
- package/dist/web/televet/call/index.js +1 -1
- package/dist/web/televet/index.cjs +3 -3
- package/dist/web/televet/index.d.cts +12 -4
- package/dist/web/televet/index.d.ts +12 -4
- package/dist/web/televet/index.js +3 -3
- package/package.json +1 -1
- package/dist/BookedScreen-BJPbXLCG.d.ts +0 -54
- package/dist/BookedScreen-Cnld-jB_.d.cts +0 -54
|
@@ -1 +1,4 @@
|
|
|
1
|
-
'use strict';var react=require('react'),reactNative=require('react-native'),jsxRuntime=require('react/jsx-runtime'),reactNativeSafeAreaContext=require('react-native-safe-area-context');var Es=Object.defineProperty;var o=(e,t)=>Es(e,"name",{value:t,configurable:true});function on(e){throw new Error(`assertNever: unhandled discriminated-union member ${JSON.stringify(e)}`)}o(on,"assertNever");function Qo(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(Qo,"errorFrame");function Zn(e){let t=globalThis.console;try{t?.error?.("[everfur] A host callback threw; the SDK ignored it.",e);}catch{}}o(Zn,"reportHostFailure");function Cs(e){return (typeof e=="object"||typeof e=="function")&&e!==null&&typeof e.then=="function"}o(Cs,"isThenable");function ln(e,...t){if(typeof e=="function")try{let n=e(...t);return Cs(n)&&Promise.resolve(n).then(void 0,Zn),n}catch(n){Zn(n);return}}o(ln,"callHost");var Zo=new WeakMap;function Rs(e){if(typeof e!="function")return;let t=Zo.get(e);if(t!==void 0)return t;let n=o((...r)=>{ln(e,...r);},"guarded");return Zo.set(e,n),n}o(Rs,"guardHost");function dt(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(dt,"guardHostProps");function an(e,...t){let n;try{n=e(...t);}catch(r){return Zn(r),Promise.resolve({ok:false,error:r})}return Promise.resolve(n).then(r=>({ok:true,value:r}),r=>({ok:false,error:r}))}o(an,"callHostAsync");function el(){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(el,"createTelevetBackChannel");var er=react.createContext(null);function ut(e,t=true){let n=react.useContext(er),r=react.useRef(e);r.current=e,react.useEffect(()=>{if(!(n===null||!t))return n.register(()=>r.current())},[n,t]);}o(ut,"useTelevetBackChannel");var m=o(e=>e,"DRAFT"),Is=["[PLACEHOLDER","[PLAN NAME]","[LINK]","[Last]","TODO","TBD"];function Os(e){return Is.some(t=>e.toUpperCase().includes(t.toUpperCase()))}o(Os,"isPlaceholderCopy");function G(e,t){let n=e;for(let[r,i]of Object.entries(t))n=n.split(`{${r}}`).join(i);return n}o(G,"fill");var c=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 tl(e=c){return typeof e=="string"?[e]:typeof e!="object"||e===null?[]:Object.values(e).flatMap(t=>tl(t))}o(tl,"televetBookingCopyValues");function we(){return tl().every(e=>e.trim().length>0&&!Os(e))}o(we,"isTelevetBookingCopyReady");var tr=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(tr.map(e=>e.wireCode));var Ds=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"}),rl=Object.freeze(tr.map(e=>Object.freeze({wireCode:e.wireCode,envelope:e.envelope,retryable:e.retryable,normalized:Ds[e.wireCode]}))),Bs=new Map(rl.map(e=>[e.envelope+e.wireCode.toUpperCase(),e])),Fs=Object.freeze(["http_envelope",...[...new Set(rl.map(e=>e.envelope))].filter(e=>e!=="http_envelope").sort()]);function sn(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=Bs.get(r+n);if(i)return i}}o(sn,"contractErrorFor");function Ns(e){return e.envelope==="sse_frame"?`/errors#sse-${e.wireCode}`:e.envelope==="oauth_error"?`/errors#oauth-${e.wireCode}`:`/errors#${e.wireCode}`}o(Ns,"contractDocUrl");function ol(e){return null}o(ol,"publishedDocUrl");var Ls=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 ll(e){return Ls[e]}o(ll,"categoryFor");function il(e){let t=sn(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(il,"fromWire");var Vs=new Set(["streamTimeout","rateLimited","internalError","upstreamLlmTimeout","streamIncomplete"]);function nr(e){return Vs.has(e)}o(nr,"isAutoRetryable");var Ms=new Set(["serviceUnavailable","conflict","idempotencyInFlight"]);function al(e){return nr(e)||Ms.has(e)}o(al,"isRetryableCode");var zs=500,rr=8e3,sl=4;function dl(e,t=Math.random){let n=Math.max(0,e),r=Math.min(zs*2**n,rr);return Math.floor(t()*r)}o(dl,"backoffDelayMs");var js=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 or(e){return js[e]}o(or,"userFacingError");function ul(e,t,n){Object.defineProperty(e,t,{value:n,enumerable:false,writable:false,configurable:false});}o(ul,"defineHidden");var Hs=/^[a-z][a-z0-9_]{0,63}$/;function ne(e,t){let n=sn(t?.wireCode,t?.wireEnvelope),r={code:e,category:ll(e),retryable:t?.retryable??al(e),displayMessage:or(e)};if(t?.httpStatus!==void 0&&(r.httpStatus=t.httpStatus),t?.requestId&&(r.requestId=t.requestId),typeof t?.reasonCode=="string"&&Hs.test(t.reasonCode)&&(r.reasonCode=t.reasonCode),n);return t?.wireMessage&&ul(r,"wireMessage",t.wireMessage),t?.raw!==void 0&&t.raw!==null&&ul(r,"raw",t.raw),Object.freeze(r)}o(ne,"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 R(e){return Object.freeze({ok:false,error:e})}o(R,"err");var dn=class dn extends Error{constructor(t,n){super(n),this.name="EverfurConfigError",this.kind=t,Object.setPrototypeOf(this,dn.prototype);}};o(dn,"EverfurConfigError");var _t=dn;function Us(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(Us,"authHeaders");function wt(e,t){return {...e,headers:{...Ws(e.headers),...Us(t)}}}o(wt,"withAuthHeaders");function Ws(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(Ws,"stripAuthHeaders");async function cl(e,t){if(t.mode==="anonymous")return t.transport.request(wt(e,{mode:"anonymous",publishableKey:t.publishableKey,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));let n;try{n=await t.identity.currentToken();}catch{return R(lr())}let r=await t.transport.request(wt(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 R(lr())}let l=await t.transport.request(wt(e,{mode:"personalized",token:i,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));return !l.ok&&l.error.httpStatus===401?R(lr(l.error.httpStatus)):l}o(cl,"authedSend");function lr(e){return ne("authRejected",{retryable:false,...e!==void 0?{httpStatus:e}:{}})}o(lr,"authRejectedError");function pl(e){return ne("internalError",{retryable:true,wireMessage:qs(e)})}o(pl,"networkError");function qs(e){return e instanceof Error?e.message:typeof e=="string"?e:"network request failed"}o(qs,"describeCause");var $s=3e4,Ks=rr*2,Ys="idempotency-key",Gs=new Set(["POST","PUT","PATCH","DELETE"]),Js=Object.freeze({onEvent(){}}),Xs=Object.freeze({setTimeout:o((e,t)=>setTimeout(e,t),"setTimeout"),clearTimeout:o(e=>clearTimeout(e),"clearTimeout"),now:o(()=>Date.now(),"now")});function Qs(e){let t=e.trim().replace(/[^A-Za-z0-9_.:-]/g,"-");return t.length===0?null:`efs_${t}`.slice(0,128)}o(Qs,"seededIdempotencyKey");function Ge(e){let t=e.observer??Js,n=e.timers??Xs,r=e.rng??Math.random,i=e.sleep??((f,y)=>cd(f,n,y)),l=e.maxAttempts??sl,a=e.unaryTimeoutMs??$s,s=e.newIdempotencyKey??ir(),d=o(f=>{try{t.onEvent(f);}catch{}},"emit");async function u(f,y,k){let S=k?.maxAttempts,P=Math.max(1,S??l),C=k?.idempotent??Gs.has(y.method),T=k?.idempotencyKey===void 0?null:Qs(k.idempotencyKey),E=C?T??s():null,D=Zs(y,E),h=0;for(;;){let z=o(ie=>Object.freeze({call:f,method:y.method,path:y.path,attempt:h,...E?{idempotencyKey:E}:{},...ie}),"stamp");d(z({phase:"attempt"}));let B=dd(a,n),L=ud(B.signal,y.signal),M;try{M=await cl({...D,signal:L.signal},e.auth);}catch(ie){M=R(pl(ie));}finally{L.dispose(),B.cancel();}if(M.ok)return d(z({phase:"settled",ok:true,reason:"ok"})),M;let K=M.error,be=td(K,h,{maxAttempts:P,rng:r,now:n.now(),aborted:y.signal?.aborted===true,...S!==void 0?{perCallMaxAttempts:S}:{},...e.errorPolicy!==void 0?{policy:e.errorPolicy}:{}}),Q={ok:false,code:K.code,reason:be.reason,...K.httpStatus!==void 0?{httpStatus:K.httpStatus}:{},...K.requestId!==void 0?{requestId:K.requestId}:{}};if(!be.retry)return d(z({phase:"settled",...Q})),R(K);if(d(z({phase:"retry",...Q,delayMs:be.delayMs})),await i(be.delayMs,y.signal),y.signal?.aborted===true)return d(z({phase:"settled",...Q,reason:"aborted"})),R(K);h+=1;}}o(u,"send");async function p(f){return wt(f,await sd(e.auth))}o(p,"authorize");async function*g(f,y,k){d(Object.freeze({call:f,phase:"stream.open",method:y.method,path:y.path,attempt:0}));try{yield*e.auth.transport.stream(y,k);}catch{yield Qo({code:"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null,serverRequestId:null});}}return o(g,"stream"),Object.freeze({send:u,authorize:p,stream:g})}o(Ge,"createRequestFunnel");function Zs(e,t){let n={};for(let[r,i]of Object.entries(e.headers??{}))r.toLowerCase()!==Ys&&(n[r]=i);return t!==null&&(n["Idempotency-Key"]=t),{...e,headers:n}}o(Zs,"assembleHeaders");function ir(){let e=0;return ()=>`efk_${Date.now().toString(36)}_${(e++).toString(36)}_${Math.random().toString(36).slice(2,12)}`}o(ir,"defaultIdempotencyKeyFactory");var ed=10;function td(e,t,n){if(n.aborted)return {retry:false,reason:"aborted"};let r=nd(e);if(r==="quota")return {retry:false,reason:"daily-quota-exhausted"};if(r!=="burst"&&!nr(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 u;try{u=n.policy.maxAttempts(e.code);}catch{return null}return typeof u!="number"||!Number.isFinite(u)?null:Math.max(1,Math.min(ed,Math.floor(u)))},"policyCeiling"),s=n.perCallMaxAttempts??a()??n.maxAttempts;if(t+1>=s)return {retry:false,reason:"attempts-exhausted"};let d=rd(e,n.now);return d!==null?d>Ks?{retry:false,reason:"server-reset-beyond-budget"}:{retry:true,reason:i,delayMs:d}:{retry:true,reason:i,delayMs:dl(t,n.rng)}}o(td,"decideRetry");function nd(e){let t=e.code==="unknown"?il(ad(e.raw)):e.code;return t==="quotaExceeded"?"quota":t==="rateLimited"||e.httpStatus===429?"burst":null}o(nd,"throttleKind");function rd(e,t){let n=ld(e.raw);if(n!==null){let i=n-t;return i>0?i:0}let r=od(e.raw);return r===null?null:Math.round(r*1e3)}o(rd,"retryOverrideMs");function od(e){for(let t of ar(e)){let n=t.retry_after_seconds;if(typeof n=="number"&&Number.isFinite(n)&&n>=0)return n}return null}o(od,"findRetryAfterSeconds");function ld(e){for(let t of ar(e)){let n=t.resets_at,r=id(n);if(r!==null)return r}return null}o(ld,"findResetsAt");function ar(e){if(!fl(e))return [];let t=[e];for(let n of ["error","detail"]){let r=e[n];fl(r)&&t.push(r);}return t}o(ar,"candidateScopes");function id(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(id,"parseInstantMs");function ad(e){for(let t of ar(e)){let n=t.code;if(typeof n=="string"&&n.length>0)return n}return null}o(ad,"rawWireCode");function fl(e){return typeof e=="object"&&e!==null}o(fl,"isRecord");async function sd(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(sd,"resolveDeviceAuth");function dd(e,t){let n=new AbortController,r=t.setTimeout(()=>n.abort(),e);return {signal:n.signal,cancel:o(()=>t.clearTimeout(r),"cancel")}}o(dd,"boundedSignal");function ud(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(ud,"mergeSignals");function cd(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(cd,"delayAbortable");var gl="televet_booking_not_live";function un(e){return ne("conflict",{retryable:false,reasonCode:gl,wireMessage:`the booking was answered with a consult whose status is ${e}, which is not a live visit`})}o(un,"televetBookingNotLiveError");var sr="televet_booking_key_reused",yl="IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST";function cn(e){return e.httpStatus!==409||e.reasonCode===sr||Pt(e)?.code!==yl?e:ne(e.code,{retryable:false,httpStatus:409,...e.requestId!==void 0?{requestId:e.requestId}:{},wireCode:yl,reasonCode:sr,...e.wireMessage!==void 0?{wireMessage:e.wireMessage}:{},raw:e.raw})}o(cn,"foldTelevetBookingKeyReused");function Pt(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(Pt,"details");function pd(e){let t=Pt(e)?.categories;return Array.isArray(t)?Object.freeze(t.filter(n=>typeof n=="string")):Object.freeze([])}o(pd,"categoriesOf");function ml(e){let t=Pt(e)?.retry_after_seconds;return typeof t=="number"&&Number.isFinite(t)&&t>0?t:null}o(ml,"retryAfterOf");function vl(e){let t=e.wireMessage;if(typeof t=="string"&&t.trim().length>0)return t.trim();let n=Pt(e)?.message;return typeof n=="string"&&n.trim().length>0?n.trim():null}o(vl,"messageOf");function fd(e){let t=e.reasonCode;if(typeof t=="string"&&t.length>0)return t;let n=Pt(e),r=n?.code??n?.error_code;return typeof r=="string"&&r.length>0?r:null}o(fd,"codeOf");function ze(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:ml(e),message:vl(e)});if(t===404)return Object.freeze({kind:"unavailable"});switch(fd(e)){case "televet_rate_limited":return Object.freeze({kind:"rate_limited",retryAfterSeconds:ml(e),message:vl(e)});case "televet_emergency_ack_required":return Object.freeze({kind:"emergency",categories:pd(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 gl:return Object.freeze({kind:"slot_taken"});case sr: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(ze,"televetBookingRefusal");function yd(e){try{return new URL(e.trim()).protocol==="https:"}catch{return false}}o(yd,"isSafeRoomUrl");function md(e,t){return yd(e)&&t.trim().length>0}o(md,"isUsableRoomCredential");function pn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}o(pn,"isRecord");function dr(e,t){return typeof e=="number"&&Number.isInteger(e)&&e>=t?e:null}o(dr,"wholeNumber");function vd(e){if(!pn(e))return null;let t=dr(e.consult_minutes,1),n=dr(e.auto_end_minutes,0),r=dr(e.warn_before_seconds,0);return t===null||n===null||r===null?null:Object.freeze({consultMinutes:t,autoEndMinutes:n,warnBeforeSeconds:r})}o(vd,"parseCallLimits");function ur(e){if(!pn(e))return null;let t=e.room_url??e.url,n=e.token;if(typeof t!="string"||typeof n!="string"||!md(t,n))return null;let r=e.recording_notice;return Object.freeze({roomUrl:t.trim(),token:n,recordingNotice:typeof r=="boolean"?r:true,callLimits:vd(e.call_limits)})}o(ur,"parseVetCallCredential");function cr(e){let t=bl(e.raw);return t!==null&&t.length>0?t:null}o(cr,"vetCallJoinReason");function bl(e){if(!pn(e))return null;let t=e.detail??e.error,r=(pn(t)?t:e).reason;return typeof r=="string"?r:null}o(bl,"reasonOf");function pr(e){if(e.httpStatus===404)return "unavailable";let t=bl(e.raw);return t==="too_early"||t==="too_late"||t==="room_not_ready"?t:t!==null&&t.startsWith("status_")?"not_joinable":"unknown"}o(pr,"vetCallJoinRefusal");var Tl=["scheduled","in_progress","awaiting_summary","completed","cancelled_owner","cancelled_ops","no_show_owner","no_show_vet"],Je=new Set(["completed","cancelled_owner","cancelled_ops","no_show_owner","no_show_vet"]),gd=new Set(["scheduled","in_progress","awaiting_summary"]);function fn(e){return gd.has(e.status)}o(fn,"isLiveConsult");var El=["wellness","prescription"],bd=60;function Sl(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,bd):null}o(Sl,"televetSlotMinutes");var yn=64,Ie=2e3,mn=10;function he(e){return typeof e=="string"&&/^[A-Za-z]{2}$/.test(e.trim())}o(he,"isWellFormedStateCode");function Pe(e){return typeof e=="object"&&e!==null?e:null}o(Pe,"row");function ee(e){return typeof e=="string"&&e.length>0?e:null}o(ee,"str");function je(e){return typeof e=="string"&&e.trim().length>0?e.trim():null}o(je,"trimmedOrNull");function ct(e,t){return typeof e=="boolean"?e:t}o(ct,"bool");function fr(e){return typeof e=="number"&&Number.isFinite(e)?e:null}o(fr,"num");function hl(e,t){return typeof t=="string"&&e.includes(t)?t:"unknown"}o(hl,"closed");function pt(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(pt,"parseList");function kl(e,t){let n=Pe(e);return n===null?null:Object.freeze({state:ee(n.state)??t,wellnessAvailable:ct(n.wellness_available,false),prescriptionsAvailable:ct(n.prescriptions_available,false),cancellationPolicyText:je(n.cancellation_policy_text)})}o(kl,"parseStatePolicy");function Cl(e){let t=Pe(e);if(t===null)return null;let n=je(t.summary),r=je(t.version);return n===null||r===null?null:Object.freeze({summary:n,version:r})}o(Cl,"parseCancellationPolicy");function Rl(e){let t=Pe(e);if(t===null)return null;let n=ee(t.clinician_id),r=ee(t.display_name);return n===null||r===null?null:Object.freeze({clinicianId:n,displayName:r,credentials:je(t.credentials_text),rating:fr(t.rating),ratingCount:fr(t.rating_count),bio:je(t.bio),photoRef:ee(t.photo_ref),licensedStates:pt(t.licensed_states,i=>{let l=Pe(i),a=l===null?null:ee(l.state);return a===null?null:Object.freeze({state:a,canPrescribe:ct(l?.can_prescribe,false)})})})}o(Rl,"parseClinician");function yr(e){let t=Pe(e);if(t===null)return null;let n=ee(t.slot_id),r=ee(t.starts_at);return n===null||r===null?null:Object.freeze({slotId:n,startsAt:r,endsAt:ee(t.ends_at)??r})}o(yr,"parseSlot");function xl(e){let t=Pe(e);if(t===null)return null;let n=ee(t.slot_id),r=ee(t.hold_expires_at);return n===null||r===null?null:Object.freeze({slotId:n,expiresAt:r})}o(xl,"parseSlotHold");function It(e){let t=Pe(e);if(t===null)return null;let n=ee(t.consult_id),r=ee(t.scheduled_at);return n===null||r===null?null:Object.freeze({consultId:n,petId:ee(t.pet_id)??"",clinicianId:ee(t.clinician_id)??"",clinicianName:je(t.display_name),reasonText:je(t.reason_text),mediaRefs:pt(t.media_refs,i=>ee(i)),status:hl(Tl,t.status),kind:hl(El,t.kind),scheduledAt:r,emergencyFlagged:ct(t.emergency_flagged,false),hasRoom:ee(t.meeting_url)!==null})}o(It,"parseConsult");function _l(e){let t=Pe(e);return Object.freeze({active:ct(t?.active,false)})}o(_l,"parseBookingEntitlement");var vn=240;function wl(e){let t=Pe(e);if(t===null)return null;let n=fr(t.fee_cents);return n===null||n<0?null:Object.freeze({feeCents:n,currency:ee(t.currency)??"usd",feeRecorded:ct(t.fee_recorded,n>0),summary:je(t.summary)})}o(wl,"parseCancelReceipt");var He="/widget/v1/televet",hd=`${He}/state-policy`,Td=`${He}/vets`,Pl=`${He}/slots`,Ed=`${He}/slots/next`,gn=`${He}/consults`,Sd=`${He}/entitlement`,kd=`${He}/cancellation-policy`;function Il(e){return `${Pl}/${encodeURIComponent(e)}/hold`}o(Il,"televetHoldCall");function Ol(e){return `${gn}/${encodeURIComponent(e)}/reschedule`}o(Ol,"televetRescheduleCall");function bn(e){return `${gn}/${encodeURIComponent(e)}`}o(bn,"televetConsultCall");function Al(e){return `${bn(e)}/join`}o(Al,"televetJoinCall");function Dl(e){return `${bn(e)}/cancel`}o(Dl,"televetCancelCall");var Bl=100;function se(e){return R(ne("validationFailed",{retryable:false,wireMessage:e}))}o(se,"invalid");function Xe(e){return R(ne("internalError",{retryable:false,httpStatus:502,wireMessage:e}))}o(Xe,"unusable");function mr(e){return e.httpStatus===404}o(mr,"isDark");function ft(e,t,n){try{e?.track(t,n);}catch{}}o(ft,"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(!he(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>Ie?`reason_text must be at most ${Ie} characters`:Cd(e)}o(Fl,"validateBookingBody");function Cd(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>yn?`cancellation_policy_version must be at most ${yn} characters`:null}o(Cd,"attestationRefusal");function gr(e){let t=e.funnel??Ge({auth:e.auth,...e.errorPolicy?{errorPolicy:e.errorPolicy}:{}}),n=e.telemetry;return {async statePolicy(r,i){let l=r.trim();if(!he(l))return se("state must be a two-letter US state code");let a=await t.send("televet.booking.state_policy",{method:"GET",path:`${hd}/${encodeURIComponent(l)}`,...i?{signal:i}:{}});if(!a.ok)return R(a.error);let s=kl(a.value,l);return s===null?Xe("the state policy response was unreadable"):V(s)},async entitlement(r){let i=await t.send("televet.booking.entitlement",{method:"GET",path:Sd,...r?{signal:r}:{}});return i.ok?V(_l(i.value)):R(i.error)},async cancellationPolicy(r){let i=await t.send("televet.booking.cancellation_policy",{method:"GET",path:kd,...r?{signal:r}:{}});return i.ok?V(Cl(i.value)):V(null)},async clinicians(r,i){let l=r.trim();if(!he(l))return se("state must be a two-letter US state code");let a=await t.send("televet.booking.clinicians",{method:"GET",path:Td,query:{state:l},...i?{signal:i}:{}});return a.ok?V(pt(vr(a.value,"vets"),Rl)):mr(a.error)?V(Object.freeze([])):R(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:Pl,query:{clinician_id:l},...i?{signal:i}:{}});return a.ok?V(pt(vr(a.value,"slots"),yr)):mr(a.error)?V(Object.freeze([])):R(a.error)},async nextSlot(r){let i=await t.send("televet.booking.next_slot",{method:"GET",path:Ed,...r?{signal:r}:{}});return i.ok?V(yr(xd(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:Il(i)},{idempotent:false,maxAttempts:1});if(!l.ok)return ft(n,"televet.booking.hold_failed",{status:l.error.httpStatus??null}),R(l.error);let a=xl(l.value);return a===null?Xe("the hold response carried no usable expiry"):V(a)},async book(r,i){let l=Fl(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:gn,body:Rd(r)},{idempotent:true,idempotencyKey:a,maxAttempts:1});if(!s.ok)return ft(n,"televet.booking.book_failed",{status:s.error.httpStatus??null}),R(cn(s.error));let d=It(s.value);return d===null?Xe("the booking response was unreadable"):fn(d)?V(d):(ft(n,"televet.booking.book_failed",{status:null,consult_status:d.status}),R(un(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:Ol(l),body:{new_slot_id:a}},{idempotent:false,maxAttempts:1});if(!s.ok)return ft(n,"televet.booking.reschedule_failed",{status:s.error.httpStatus??null}),R(s.error);let d=It(s.value);return d===null?Xe("the reschedule response was unreadable"):V(d)},async listConsults(r){let i=await t.send("televet.booking.consults",{method:"GET",path:gn,query:{limit:String(Bl)},...r?{signal:r}:{}});return i.ok?V(pt(vr(i.value,"consults"),It)):mr(i.error)?V(Object.freeze([])):R(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:bn(l),...i?{signal:i}:{}});if(!a.ok)return R(a.error);let s=It(a.value);return s===null?Xe("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:Al(i)},{idempotent:false,maxAttempts:1});if(!l.ok)return ft(n,"televet.booking.join_failed",{status:l.error.httpStatus??null}),R(l.error);let a=ur(l.value);return a===null?Xe("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>vn)return se(`reason must be at most ${vn} characters`);let s=await t.send("televet.booking.cancel",{method:"POST",path:Dl(l),body:{reason:a}},{idempotent:false,maxAttempts:1});if(!s.ok)return ft(n,"televet.booking.cancel_failed",{status:s.error.httpStatus??null}),R(s.error);let d=wl(s.value);return d===null?Xe("the cancel response was unreadable"):V(d)}}}o(gr,"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 vr(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(vr,"rows");function xd(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(xd,"unwrap");var Nl=Symbol.for("@everfur/sdk#EverfurContext@v1"),Ll=globalThis,Vl=Ll[Nl]??(Ll[Nl]=react.createContext(null));Vl.displayName??="EverfurContext";function me(){let e=react.useContext(Vl);if(e===null)throw new _t("not-initialized","Everfur hooks must be called inside <EverfurProvider>. Wrap your tree once, high.");return e}o(me,"useEverfurContext");var Pd=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 Id(e){return Pd[e]}o(Id,"requires");function Ml(e,t,n){let r=Id(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 br({name:e,enabled:false,isPending:true,limits:{}});let l=Od(r,i);return r.filter(s=>i.get(s)?.granted!==true).length===0?br({name:e,enabled:true,isPending:false,limits:l}):br({name:e,enabled:false,isPending:false,limits:l,disabled:Ad(r,i)})}o(Ml,"decideCapability");function Od(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(Od,"mergeLimits");function Ad(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:or("accessDenied"),level:"user_entitlement",recoverable:false})}o(Ad,"disabledFor");function br(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(br,"freezeDecision");function Ot(e){let{runtime:t}=me(),n=t.entitlements,r=react.useSyncExternalStore(n.subscribe,n.getSnapshot,n.getSnapshot);return react.useMemo(()=>Ml(e,r.decisions,{isPending:r.isPending}),[e,r])}o(Ot,"useCapability");function de(e){let{runtime:t,userRef:n,scopeEpoch:r}=me();return react.useMemo(()=>{if(e)return e;if(n===null)return null;let{services:i}=t.registry;return gr({auth:i.authFor(n),telemetry:i.telemetry,...i.errorPolicy?{errorPolicy:i.errorPolicy}:{}})},[t,n,r,e])}o(de,"useTelevetBookingController");function Fd(){let{userRef:e}=me(),t=Ot("televet");return react.useMemo(()=>({available:t.enabled&&e!==null,isPending:t.isPending}),[t.enabled,t.isPending,e])}o(Fd,"useTelevetBookingAvailable");function Ue(e,t,n){let[r,i]=react.useState(()=>({key:e,data:null,isPending:t&&n!==null,error:null})),[l,a]=react.useState(0),s=react.useRef(n);s.current=n,react.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=react.useCallback(()=>a(p=>p+1),[]),u=r.key===e;return react.useMemo(()=>({enabled:t,data:u?r.data:null,isPending:t&&(!u||r.isPending),isError:u&&r.error!==null,error:u?r.error:null,refetch:d}),[t,u,r.data,r.isPending,r.error,d])}o(Ue,"useTelevetRead");function Tr(e,t){let n=e?.trim()??"",r=t?.statePolicy!==void 0&&he(n),i=t?.statePolicy;return Ue(`state-policy:${n}`,r,r&&i?l=>i.call(t,n,l):null)}o(Tr,"useTelevetStatePolicy");function Er(e){let t=e?.entitlement!==void 0,n=e?.entitlement;return Ue("entitlement",t,t&&n?r=>n.call(e,r):null)}o(Er,"useTelevetBookingEntitlement");function At(e){let t=e?.cancellationPolicy!==void 0,n=e?.cancellationPolicy;return Ue("cancellation-policy",t,t&&n?r=>n.call(e,r):null)}o(At,"useTelevetCancellationPolicy");function Sr(e,t){let n=e?.trim()??"",r=t?.clinicians!==void 0&&he(n),i=t?.clinicians;return Ue(`clinicians:${n}`,r,r&&i?l=>i.call(t,n,l):null)}o(Sr,"useTelevetClinicians");function Dt(e,t){let n=e?.trim()??"",r=t!==null&&n.length>0;return Ue(`slots:${n}`,r,r&&t?i=>t.slots(n,i):null)}o(Dt,"useTelevetSlots");function kr(e){let t=e?.nextSlot!==void 0,n=e?.nextSlot;return Ue("next-slot",t,t&&n?r=>n.call(e,r):null)}o(kr,"useTelevetNextSlot");function En(e){let[t,n]=react.useState(null),r=react.useRef(true),i=react.useRef(false),l=react.useRef(e);l.current=e,react.useEffect(()=>(r.current=true,()=>{r.current=false;}),[]);let a=react.useCallback((...s)=>{let d=l.current;if(d===null||i.current)return;let u=s[s.length-1],p=typeof u=="object"&&u!==null&&("onSuccess"in u||"onError"in u),g=p?u: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 react.useMemo(()=>({isPending:t!==null,variables:t?.variables??null,mutate:a}),[t,a])}o(En,"useTelevetWrite");function Bt(e){return En(e?t=>e.holdSlot(t):null)}o(Bt,"useTelevetHoldSlot");function Cr(e){return En(e?(t,n)=>e.book(t,n):null)}o(Cr,"useTelevetBookConsult");function Rr(e,t){return En(t&&e?n=>t.reschedule(e,n):null)}o(Rr,"useTelevetRescheduleConsult");function Sn(e,t=0){let n=e?.listConsults!==void 0,r=e?.listConsults;return Ue(`consults:${t}`,n,n&&r?i=>r.call(e,i):null)}o(Sn,"useTelevetConsults");function Hl(e,t,n=0){let r=e?.trim()??"",i=t?.getConsult!==void 0&&r.length>0,l=t?.getConsult;return Ue(`consult:${r}:${n}`,i,i&&l?a=>l.call(t,r,a):null)}o(Hl,"useTelevetConsult");function Ul(e,t){let n=t?.cancelConsult;return En(t&&n&&e?r=>n.call(t,e,r):null)}o(Ul,"useTelevetCancelConsult");function Ft(e){return e.error!==null&&e.error.httpStatus===404}o(Ft,"televetReadIsDark");var xr=15,_r=250,Nd=new Set(["scheduled","in_progress"]);function Qe(e){let t=Date.parse(e.scheduledAt);return Number.isNaN(t)?null:t}o(Qe,"startsAtMs");function Ld(e){let t=Qe(e);return t===null?null:t-xr*6e4}o(Ld,"televetJoinOpensAtMs");function wr(e,t){if(e===null)return {ready:false,reason:"not_open_yet"};if(Je.has(e.status))return {ready:false,reason:"consult_over"};if(e.status==="in_progress")return {ready:true};let n=Qe(e);return n===null?{ready:false,reason:"not_open_yet"}:t<n-xr*6e4?{ready:false,reason:"not_open_yet"}:t>n+_r*6e4?{ready:false,reason:"consult_over"}:{ready:true}}o(wr,"televetJoinReadiness");function Nt(e,t){let n=[],r=[];for(let i of e){let l=Qe(i);(Nd.has(i.status)&&l!==null&&l+_r*6e4>t?n:r).push(i);}return n.sort((i,l)=>(Qe(i)??0)-(Qe(l)??0)),r.sort((i,l)=>(Qe(l)??0)-(Qe(i)??0)),Object.freeze({upcoming:Object.freeze(n),past:Object.freeze(r)})}o(Nt,"splitTelevetVisits");function Pr(e){return e==="scheduled"}o(Pr,"canManageTelevetVisit");function Wl(e){let t=Sn(e);return t.enabled?t.isPending?"pending":t.isError||Nt(t.data??[],Date.now()).upcoming.length>0?"visits":"booking":"booking"}o(Wl,"useTelevetLanding");function Ar(e){if(e!==null&&typeof e=="object"&&!Object.isFrozen(e)){Object.freeze(e);for(let t of Object.keys(e))Ar(e[t]);}return e}o(Ar,"deepFreeze");var Vd=Object.freeze({content:0,heading:2,control:1.8,compact:1.5,badge:1.3}),$l={xs:4,sm:8,md:12,lg:16,xl:24,xxl:32},Kl={tile:5,xs:6,sm:10,md:14,lg:20,xl:28,pill:500},ql={nano:8,small:9,micro:10,tiny:11,caption:12,bodyTight:13,body:14,subtitle:16,heading:18,verdict:24},Md={tight:1.15,snug:1.3,normal:1.4,relaxed:1.55},zd={regular:"400",medium:"500",bold:"700"},jd={eyebrow:1,monoWide:.9,headerBrand:-0.42,tight:-0.35},Hd=0,kn="System",Cn="monospace",Ud=["content","heading","control","compact","badge"];function Wd(e){let t={};for(let n of Ud)t[n]=e;return t}o(Wd,"authoredTierSizes");function Yl(){return {family:kn,mono:Cn,fontUrl:null,families:{regular:kn,medium:kn,bold:kn,mono:Cn,monoMedium:Cn,monoBold:Cn},namedFaces:{regular:false,medium:false,bold:false,mono:false,monoMedium:false,monoBold:false},fontUrls:{},size:ql,tierSizes:Wd(ql),lineHeight:Md,weight:zd,letterSpacing:jd,scale:1,maxScale:Hd,scaleCaps:Vd}}o(Yl,"baseType");var Gl={},Ir=Object.freeze({standard:Object.freeze([.2,0,0,1]),emphasized:Object.freeze([.2,.8,.2,1]),exit:Object.freeze([.4,0,1,1])});function Or(e){return `cubic-bezier(${e.join(", ")})`}o(Or,"cssCubicBezier");var Jl={duration:{instant:80,fast:140,normal:220,slow:320},spring:{gentle:{damping:18,stiffness:200}},easing:{standard:Or(Ir.standard),emphasized:Or(Ir.emphasized),exit:Or(Ir.exit)},reducedMotion:false},qd={brand:"#10462E",brandSoft:"rgba(16,70,46,0.10)",brandSofter:"rgba(16,70,46,0.15)",brandBorder:"rgba(16,70,46,0.18)",borderHairlineGreen:"rgba(16,70,46,0.25)",brandBorderStrong:"rgba(16,70,46,0.55)",brandInk:"#10462E",linkInk:"#10462E",surface:"#FFFFFF",surfaceCream:"#FDFBF8",surfaceSubtle:"#EFE9E3",background:"#FFFFFF",borderRingCream:"#D8D2C8",chatGround:"#FFFFFF",composerFill:"#FDFBF8",composerBorder:"rgba(16,70,46,0.75)",shadow:"#0B3421",text:{primary:"#111111",secondary:"#0E462E",muted:"#6E6660",placeholder:"rgba(61,61,61,0.75)",onBrand:"#FFFFFF",metaCool:"#3D3D3D",timestamp:"rgba(61,61,61,0.75)"},primary:"#10462E",onPrimary:"#FFFFFF",accent:"#10462E",onAccent:"#FFFFFF",accentEdge:"#07C168",success:"#07C168",danger:"#B91C1C",onDanger:"#FFFFFF",errorRed:"#CC1600",warningStrong:"#A45610",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.12)",badgeBgCaution:"rgba(217,130,29,0.14)",badgeBgCritical:"rgba(185,28,28,0.12)",badgeBgNeutral:"rgba(110,102,96,0.12)",bubbleUser:"#10462E",bubbleAssistant:"#FFFFFF",bubbleVet:"#FFC3BC",onBubbleVet:"#111111",skeleton:"#EFE9E3",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.10)",checkupCardConcernBg:"rgba(239,167,0,0.10)"},Xl=Ar({brightness:"light",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:qd,space:$l,radius:Kl,type:Yl(),motion:Jl,slots:Gl}),$d={brand:"#6BD39A",brandSoft:"rgba(107,211,154,0.12)",brandSofter:"rgba(107,211,154,0.18)",brandBorder:"rgba(107,211,154,0.22)",borderHairlineGreen:"rgba(107,211,154,0.28)",brandBorderStrong:"rgba(107,211,154,0.55)",brandInk:"#6BD39A",linkInk:"#6BD39A",surface:"#1C1F23",surfaceCream:"#23272C",surfaceSubtle:"#23272C",background:"#15171A",borderRingCream:"#3A3F45",chatGround:"#1C1F23",composerFill:"#23272C",composerBorder:"rgba(107,211,154,0.75)",shadow:"#000000",text:{primary:"#F5F3F0",secondary:"#A9E4C4",muted:"#9A938C",placeholder:"rgba(255,255,255,0.55)",onBrand:"#0E1F17",metaCool:"#C9C9C9",timestamp:"rgba(245,243,240,0.7)"},primary:"#6BD39A",onPrimary:"#0E1F17",accent:"#6BD39A",onAccent:"#0E1F17",accentEdge:"#34D888",success:"#07C168",danger:"#F87171",onDanger:"#0E1F17",errorRed:"#FF6B5B",warningStrong:"#F0A35E",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.18)",badgeBgCaution:"rgba(217,130,29,0.20)",badgeBgCritical:"rgba(185,28,28,0.22)",badgeBgNeutral:"rgba(255,255,255,0.10)",bubbleUser:"#6BD39A",bubbleAssistant:"#1C1F23",bubbleVet:"#FFC3BC",onBubbleVet:"#111111",skeleton:"#23272C",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.16)",checkupCardConcernBg:"rgba(239,167,0,0.16)"};Ar({brightness:"dark",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:$d,space:$l,radius:Kl,type:Yl(),motion:Jl,slots:Gl});var Ql=Symbol.for("@everfur/sdk#EverfurThemeContext@v1"),Zl=globalThis,Dr=Zl[Ql]??(Zl[Ql]=react.createContext(Xl));Dr.displayName??="EverfurThemeContext";function _(){return react.useContext(Dr)}o(_,"useEverfurTheme");function Qd(e,t){let n=e.scaleCaps[t];return n>0?n:void 0}o(Qd,"tierMultiplier");function v({tier:e="content",...t}){let{type:n}=_(),r=Qd(n,e);return react.createElement(reactNative.Text,r===void 0?t:{maxFontSizeMultiplier:r,...t})}o(v,"Text");var ti=react.forwardRef(o(function(t,n){return react.createElement(reactNative.TextInput,{...t,...n===null?{}:{ref:n}})},"TextInput"));var Zd=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[Zd[t]]}}o(b,"face");var Nr=class Nr extends react.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(Nr,"HostRenderBoundary");var Br=Nr;function tu({render:e}){return e()}o(tu,"RenderHost");function Fr({render:e,fallback:t,resetKey:n}){return react.createElement(Br,{fallback:t,resetKey:n,children:react.createElement(tu,{render:e})})}o(Fr,"HostRender");var nu=48;function ru(e){return e.isPending?"pending":e.enabled?"enabled":"disabled"}o(ru,"selectView");function ii(e){let{capability:t,children:n,renderDisabled:r,renderPending:i,style:l}=e,a=Ot(t),s=react.useMemo(()=>ru(a),[a]);switch(s){case "enabled":return n;case "pending":return i?jsxRuntime.jsx(Fr,{render:i,fallback:jsxRuntime.jsx(oi,{capability:t,style:l})}):jsxRuntime.jsx(oi,{capability:t,style:l});case "disabled":return r?jsxRuntime.jsx(Fr,{render:()=>r(a),fallback:jsxRuntime.jsx(li,{decision:a,style:l}),resetKey:a}):jsxRuntime.jsx(li,{decision:a,style:l});default:return on(s)}}o(ii,"CapabilityGate");function oi({capability:e,style:t}){let n=_(),r=react.useMemo(()=>ai(n),[n]);return jsxRuntime.jsx(reactNative.View,{style:[r.offstate,t],accessible:true,accessibilityState:{busy:true},accessibilityLabel:`Loading ${e}`,children:jsxRuntime.jsx(reactNative.View,{style:r.skeletonBar})})}o(oi,"PendingSkeleton");function li({decision:e,style:t}){let n=_(),r=react.useMemo(()=>ai(n),[n]),i=e.disabled?.reason??"";return jsxRuntime.jsx(reactNative.View,{style:[r.offstate,t],accessible:true,accessibilityRole:"text",accessibilityLabel:i,children:i.length>0?jsxRuntime.jsx(v,{style:r.offstateText,children:i}):null})}o(li,"OffState");function ai(e){let{color:t,space:n,radius:r,type:i}=e;return reactNative.StyleSheet.create({offstate:{minHeight:nu,justifyContent:"center",paddingHorizontal:n.lg,paddingVertical:n.md,backgroundColor:t.surfaceCream,borderRadius:r.md,borderWidth:reactNative.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(ai,"makeStyles");function yt(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(yt,"hasLoneSurrogate");function mt(e){return [...e].length}o(mt,"serverLength");var si=Object.freeze({dog:"dog",canine:"dog",k9:"dog",puppy:"dog",cat:"cat",feline:"cat",kitten:"cat"});function di(e){if(typeof e!="string")return null;let t=e.trim().toLowerCase();return Object.prototype.hasOwnProperty.call(si,t)?si[t]:null}o(di,"canonicalPetSpecies");var ui=50,ou=128,Mr=120,ci=120,lu=2e3,pi=120,iu=80,mi=new Set(["male","female","unknown"]),vi=new Set(["day","month","year"]),gi=new Set(["low","medium","high","athletic"]),bi=new Set(["indoor","outdoor","both"]),hi=new Set(["mild","moderate","severe"]),au=/^(\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"]],Ei=[["allergies","allergies"],["medications","medications"],["supplements","supplements"],["conditions","conditions"]];Object.freeze([...Ti,...Ei].map(([e])=>e));function su(e){let t=au.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(su,"isRealDate");var Vt=o(e=>(t,n)=>typeof n=="string"&&e.has(n)?null:`${t} must be one of ${[...e].join(", ")}`,"oneOf"),du=o((e,t)=>typeof t=="boolean"?null:`${e} must be true or false`,"boolean"),xn=o((e,t)=>typeof t=="string"&&su(t)?null:`${e} must be a real date written YYYY-MM-DD`,"date"),Ee=o((e,t={})=>(n,r)=>{if(typeof r!="string")return `${n} must be a string`;if(yt(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=mt(i);return l<=e?null:`${n} is ${l} characters; the server accepts at most ${e}`},"text"),uu={sex:Vt(mi),spayedNeutered:du,birthDate:xn,birthDatePrecision:Vt(vi),activityLevel:Vt(gi),indoorOutdoor:Vt(bi),foodBrand:Ee(pi),foodType:Ee(pi),microchipId:Ee(iu)},zr=["ref","ref",false,Ee(ou,{required:true,trimmed:true})],jr=["notes","notes",false,Ee(lu,{trimmed:true})],fi=[zr,["name","name",true,Ee(Mr,{required:true,trimmed:true})],["dose","dose",false,Ee(ci,{trimmed:true})],["frequency","frequency",false,Ee(ci,{trimmed:true})],["startDate","start_date",false,xn],["endDate","end_date",false,xn],jr],cu={allergies:[zr,["allergen","allergen",true,Ee(Mr,{required:true,trimmed:true})],["severity","severity",false,Vt(hi)],jr],medications:fi,supplements:fi,conditions:[zr,["conditionName","condition_name",true,Ee(Mr,{required:true,trimmed:true})],["diagnosedDate","diagnosed_date",false,xn],jr]};function pu(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,u,p,g]of cu[e]){let f=i[d];if(f==null){if(p)return {error:`${r}.${d} is required`};f===null&&(l[u]=null);continue}let y=g(`${r}.${d}`,f);if(y!==null)return {error:y};l[u]=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(pu,"itemToWire");function fu(e,t){if(!Array.isArray(t))return {error:`${e} must be an array (send [] to clear it)`};if(t.length>ui)return {error:`${e} has ${t.length} items; the server accepts at most ${ui}`};let n=[],r=new Set;for(let i=0;i<t.length;i+=1){let l=pu(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(fu,"listToWire");function Si(e,t){let n=e,r={};for(let[a,s]of Ti){let d=n[a];if(d!==void 0){if(d!==null){let u=uu[a](a,d);if(u!==null)return {error:u}}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 Ei){let d=n[a];if(d===void 0)continue;let u=fu(a,d);if("error"in u)return u;r[s]=u.items;}return Object.keys(r).length>0&&t!==void 0&&di(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(Si,"petHealthToWire");var J=o(e=>typeof e=="string"?e:null,"str"),Lt=o((e,t)=>typeof t=="string"&&e.has(t)?t:null,"pick"),yu=o(e=>typeof e=="boolean"?e:null,"bool");function Rn(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(Rn,"itemsFromWire");function yi(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(yi,"medicationFromWire");function ki(e){let t=e.profile_version;return Object.freeze({profileVersion:typeof t=="number"&&Number.isInteger(t)&&t>=0?t:0,sex:Lt(mi,e.sex),spayedNeutered:yu(e.spayed_neutered),birthDate:J(e.birth_date),birthDatePrecision:Lt(vi,e.birth_date_precision),activityLevel:Lt(gi,e.activity_level),indoorOutdoor:Lt(bi,e.indoor_outdoor),foodBrand:J(e.food_brand),foodType:J(e.food_type),microchipId:J(e.microchip_id),allergies:Rn(e.allergies,n=>{let r=J(n.allergen);return r===null||r.length===0?null:Object.freeze({ref:J(n.ref),allergen:r,severity:Lt(hi,n.severity),notes:J(n.notes)})}),medications:Rn(e.medications,yi),supplements:Rn(e.supplements,yi),conditions:Rn(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(ki,"petHealthFromWire");var xi=100,_i=50,wi=100,Pi=50,Ii=500,mu=128,vu=6e4;function ke(e){return ne("validationFailed",{retryable:false,wireMessage:e})}o(ke,"invalid");function Ze(e,t,n){if(typeof t!="string")return ke(`${e} must be a string`);let r=mt(t);return r<=n?null:ke(`${e} is ${r} characters; the server accepts at most ${n}`)}o(Ze,"checkString");function _n(e,t,n){return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=n?null:ke(`${e} must be a finite number between 0 and ${n}`)}o(_n,"outOfRange");function Ci(e,t){if(typeof e!="string")return ke("pet_ref must be a string");if(e.trim().length===0)return ke("pet_ref must not be blank");if(yt(e))return ke("pet_ref contains an unpaired surrogate and cannot be encoded");if(t!=null&&typeof t!="object")return ke("profile must be an object");let n=[Ze("pet_ref",e,mu)];return t?.name!==void 0&&n.push(Ze("name",t.name,xi)),t?.species!==void 0&&n.push(Ze("species",t.species,_i)),t?.breed!==void 0&&n.push(Ze("breed",t.breed,wi)),t?.ageYears!==void 0&&n.push(_n("age_years",t.ageYears,Pi)),t?.weightKg!==void 0&&n.push(_n("weight_kg",t.weightKg,Ii)),n.find(r=>r!==null)??null}o(Ci,"validate");function Oi(e,t){let n=Si(e,t);return "error"in n?{error:ke(n.error)}:n}o(Oi,"healthToWire");function gu(e){if(typeof e!="object"||e===null)return {error:ke("patch must be an object")};let t=e,n=[["name","name",l=>Ze("name",l,xi)],["species","species",l=>Ze("species",l,_i)],["breed","breed",l=>Ze("breed",l,wi)],["ageYears","age_years",l=>_n("age_years",l,Pi)],["weightKg","weight_kg",l=>_n("weight_kg",l,Ii)]],r={};for(let[l,a,s]of n){let d=t[l];if(d!==void 0){if(d!==null){let u=s(d);if(u!==null)return {error:u}}r[a]=d;}}let i=Oi(t,t.species);return "error"in i?i:(Object.assign(r,i.body),Object.keys(r).length===0?{error:ke("patch must change at least one field")}:{body:r})}o(gu,"patchToWire");function bu(e){if(e==null)return {body:{}};let t=Oi(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(bu,"toWire");var Se=o(e=>typeof e=="string"?e:null,"str"),wn=o(e=>typeof e=="number"&&Number.isFinite(e)?e:null,"num");function Ri(e,t){let n=typeof e=="object"&&e!==null?e:{};return Object.freeze({petRef:Se(n.pet_ref)??t,name:Se(n.name),species:Se(n.species),breed:Se(n.breed),ageYears:wn(n.age_years),weightKg:wn(n.weight_kg)})}o(Ri,"fromWire");function Ai(e){if(typeof e!="object"||e===null)return null;let t=e,n=Se(t.pet_ref);return n===null||n.length===0?null:Object.freeze({petId:Se(t.pet_id),petRef:n,name:Se(t.name),species:Se(t.species),breed:Se(t.breed),ageYears:wn(t.age_years),weightKg:wn(t.weight_kg),updatedAt:Se(t.updated_at)})}o(Ai,"widgetPetFromWire");function hu(e){let t=Ai(e);return t===null?null:Object.freeze({...t,...ki(e)})}o(hu,"widgetPetProfileFromWire");function Tu(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=Ai(n);return r===null?[]:[r]}))}o(Tu,"petListFromWire");function Di(e){return Eu(Ge({auth:e}),Ge({auth:e,unaryTimeoutMs:vu}))}o(Di,"createPetsRepository");function Eu(e,t=e){let n=o((i,l)=>l?{...i,signal:l}:i,"withSignal"),r=o(i=>Ci(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(Tu(l.value)):R(l.error)},async registerPet(i,l,a){let s=Ci(i,l);if(s!==null)return R(s);let d=bu(l);if("error"in d)return R(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(Ri(g.value,i)):R(g.error)},async updatePet(i,l,a){let s=r(i);if(typeof s!="string")return R(s);let d=gu(l);if("error"in d)return R(d.error);let u=await e.send("pets.updatePet",n({method:"PATCH",path:s,body:d.body},a?.signal));return u.ok?V(Ri(u.value,i)):R(u.error)},async getPetProfile(i,l){let a=r(i);if(typeof a!="string")return R(a);let s=await e.send("pets.getPetProfile",n({method:"GET",path:`${a}/profile`},l?.signal));if(!s.ok)return R(s.error);let d=hu(s.value);return d===null?R(ne("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 R(a);let s=await e.send("pets.deletePet",n({method:"DELETE",path:a},l?.signal));return s.ok?V(void 0):R(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):R(l.error)}}}o(Eu,"createPetsRepositoryOver");function vt(){let{runtime:e,userRef:t,activePet:n,scopeEpoch:r}=me(),i=react.useMemo(()=>Di(e.registry.services.authFor(t)),[e,t,r]),[l,a]=react.useState({repository:i,pets:[],loading:true,error:null}),s=l.repository===i?l:{pets:[],loading:true,error:null},d=react.useRef(0),u=react.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]);react.useEffect(()=>(u(),()=>{d.current+=1;}),[u]);let p=react.useMemo(()=>n===null?null:s.pets.find(g=>g.petRef===n)??null,[n,s.pets]);return react.useMemo(()=>({pets:s.pets,activePet:p,loading:s.loading,error:s.error,refresh:u}),[s.pets,s.loading,s.error,p,u])}o(vt,"useEverfurPets");var We=Object.freeze(["pet","issues","reason","clinician","time","review","booked"]),Bi=Object.freeze({petId:null,state:null,clinicianId:null,slot:null,holdExpiresAt:null,shareHealthRecords:false,idempotencyKey:null});function Wr(e,t={}){let n=Object.freeze({...Bi,...t}),r=Ur(0,e);return Object.freeze({index:r,draft:n,furthestIndex:r})}o(Wr,"initialTelevetBookingState");function Pn(e,t){return e==="pet"?t.ownedPetCount<=1:e==="issues"?t.withIssues!==true:false}o(Pn,"isSkipped");function In(e){return We[e]}o(In,"stepAt");function Ur(e,t){for(let n=e;n<We.length;n+=1){let r=In(n);if(r&&!Pn(r,t))return n}return We.length-1}o(Ur,"nextVisible");function Fi(e,t){for(let n=e;n>=0;n-=1){let r=In(n);if(r&&!Pn(r,t))return n}return null}o(Fi,"previousVisible");function qr(e,t){return Fi(e.index-1,t)!==null}o(qr,"hasPreviousStep");function $r(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=Ur(e.index+1,n);return Object.freeze({...e,index:r,furthestIndex:Math.max(e.furthestIndex,r)})}case "back":{if(In(e.index)==="booked")return e;let r=Fi(e.index-1,n);return r===null?e:Object.freeze({...e,index:r})}case "goTo":{let r=We.indexOf(t.step);if(r<0)return e;let i=Pn(t.step,n)?Ur(r,n):r;return Object.freeze({...e,index:i,furthestIndex:Math.max(e.furthestIndex,i)})}default:return e}}o($r,"televetBookingReducer");function Kr(e){return In(e.index)??"pet"}o(Kr,"currentStep");function Mt(e,t){let n=t.trim();return !!e.petId&&!!e.clinicianId&&!!e.slot&&he(e.state)&&n.length>0&&n.length<=Ie}o(Mt,"canConfirm");function On(e,t){if(!e.holdExpiresAt)return false;let n=Date.parse(e.holdExpiresAt);return Number.isNaN(n)?false:n<=t}o(On,"isHoldExpired");function Ni(e,t,n){return e.slot?.slotId!==t||e.holdExpiresAt===null||e.idempotencyKey===null?false:!On(e,n)}o(Ni,"holdsSlot");var Li=Object.freeze({slot:null,holdExpiresAt:null,idempotencyKey:null}),xu=ir();function Yr(e){return `televet.book.${xu()}.${e}`}o(Yr,"televetBookingKey");function Gr(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(Gr,"attestation");function Oe(e){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}o(Oe,"parse");function et(e){let t=Oe(e);return t?t.toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"}):""}o(et,"formatClock");function _u(e){let t=Oe(e);return t?t.toLocaleDateString(void 0,{month:"long",day:"numeric"}):""}o(_u,"formatDate");var gt=10;function bt(e){let t=Oe(e);return t?new Intl.DateTimeFormat(void 0,{timeZoneName:"short"}).formatToParts(t).find(r=>r.type==="timeZoneName")?.value??"":""}o(bt,"formatZone");function wu(e){let t=Oe(e);if(!t)return "";let n=new Date(t.getTime()+gt*6e4).toISOString(),r=bt(e),i=`${et(e)} - ${et(n)}`;return r&&r!==""?`${i} ${r}`:i}o(wu,"formatVisitRange");function Vi(e){let t=_u(e),n=[et(e),bt(e)].filter(Boolean).join(" ");return [t,n].filter(Boolean).join(", ")}o(Vi,"formatWhen");function ve(e){let t=Oe(e);return t?[t.toLocaleDateString(void 0,{weekday:"short"}),Vi(e)].filter(Boolean).join(", "):""}o(ve,"formatWhenWithDay");function Mi(e){let t=Oe(e);if(!t)return "";let n=t.toLocaleDateString(void 0,{weekday:"short"}),r=t.toLocaleDateString(void 0,{year:"numeric",month:"long",day:"numeric"}),i=[et(e),bt(e)].filter(Boolean).join(" ");return [n,r,i].filter(Boolean).join(", ")}o(Mi,"formatRecordWhen");function zt(e){let t=Oe(e);return t?`${t.getFullYear()}-${t.getMonth()+1}-${t.getDate()}`:"unknown"}o(zt,"localDayKey");function zi(e){let t=Oe(e);return t===null?"":t.toLocaleDateString(void 0,{month:"long"})}o(zi,"formatMonthLabel");function ji(e){let t=Oe(e);return t===null?"":t.toLocaleDateString(void 0,{weekday:"long",month:"long",day:"numeric"})}o(ji,"formatFullDayLabel");function Ui(e){let{draft:t,reasonText:n,book:r,stateAttested:i,termsAttested:l,cancellationPolicy:a,triage:s,goTo:d,releaseSlot:u,setFailure:p,setEmergency:g,setBookedConsult:f,onBooked:y}=e,k=react.useCallback(P=>{if(!Mt(t,n)||!t.idempotencyKey)return;if(On(t,Date.now())){p("expired"),d("time");return}let C=o(T=>{let E=ze(T);if(E.kind==="emergency"){g(E.categories);return}if(E.kind==="rate_limited"){p("rate_limited");return}p(E.kind==="not_entitled"?"not_entitled":E.kind==="slot_taken"?"taken":E.kind==="clinician_unavailable"?"clinician_unavailable":E.kind==="unavailable"?"unavailable":"failed"),E.kind==="slot_taken"&&(u(),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:P||s.isAcknowledged(n),share_health_records:t.shareHealthRecords,...Gr(i,l,a)},t.idempotencyKey,{onSuccess:o(T=>{if(!fn(T)){C(un(T.status));return}f(T),d("booked"),y?.(T);},"onSuccess"),onError:o(T=>C(cn(T)),"onError")});},[t,n,r,i,l,a,s,d,u,p,g,f,y]),S=react.useCallback(()=>k(false),[k]);return {submitBooking:k,confirm:S}}o(Ui,"useBookingSubmit");function Iu(e){if(e.httpStatus===409)return Object.freeze({failure:"taken"});switch(ze(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(Iu,"televetHoldFailure");function Wi(e){let{draft:t,hold:n,dispatch:r,setFailure:i,refetchSlots:l}=e;return react.useCallback(a=>{if(i(null),Ni(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:Yr(a.slotId)}}),r({type:"next"});},"onSuccess"),onError:o(s=>{let d=Iu(s);i(d.failure),d.failure==="taken"&&l();},"onError")});},[t,n,r,i,l])}o(Wi,"useSlotHold");function Qr(e){let[t,n]=react.useState(false),[r,i]=react.useState(false),[l,a]=react.useState(null),s=react.useRef(null),d=react.useRef(null),u=react.useRef(true);react.useEffect(()=>(u.current=true,()=>{u.current=false,d.current?.abort(),d.current=null;}),[]);let p=react.useCallback(()=>{d.current?.abort(),d.current=null,u.current&&i(false);},[]),g=react.useCallback(async P=>{if(d.current!==null)return false;let C=P.trim();if(l!==null&&l===C||!e)return true;let T=s.current!==null&&s.current.reason===C?s.current.emergency:null;if(T===null){let E=new AbortController;d.current=E,i(true);try{let D=await e(C,E.signal);if(E.signal.aborted||!u.current)return !1;D===null?T=!1:(T=D.isEmergency||D.fallback,s.current=Object.freeze({reason:C,emergency:T}));}catch{if(E.signal.aborted||!u.current)return false;T=false;}finally{d.current===E&&(d.current=null,u.current&&i(false));}}return T===true?(n(true),false):true},[l,e]),f=react.useCallback(P=>{a(P.trim()),n(false);},[]),y=react.useCallback(()=>n(false),[]),k=react.useCallback(()=>{p(),s.current=null,a(null),n(false);},[p]),S=react.useCallback(P=>l!==null&&l===P.trim(),[l]);return {open:t,checking:r,check:g,acknowledge:f,close:y,cancel:p,reset:k,isAcknowledged:S}}o(Qr,"useEarlyTriage");function Fu(e){let t=e?.trim().toUpperCase()??"";return /^[A-Z]{2}$/.test(t)?t:null}o(Fu,"normalizeStateCode");function Zr(e,t){let n=Fu(e),[r,i]=react.useState(()=>Object.freeze({})),l=react.useRef(0),a=react.useRef(null),s=react.useCallback(d=>{if(!t||n===null)return null;let u=`${n}:${d}`;a.current!==null&&a.current!==u&&(l.current+=1),a.current=u;let p=r[u]??"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,[u]:"pending"})),(async()=>{let f=false;try{f=await t(n,d);}catch{f=false;}l.current===g&&i(y=>Object.freeze({...y,[u]:f?"joined":"failed"}));})();},"onPress")}},[n,r,t]);return react.useMemo(()=>({actionFor:s}),[s])}o(Zr,"useStateInterest");function eo(e){return Object.freeze(e==="dark"?{title:c.noCliniciansTitle,message:c.noCliniciansBody,retryLabel:c.noCliniciansRetryCta,interestReason:null}:{title:c.noCliniciansTitle,message:c.noCliniciansRegionBody,retryLabel:null,interestReason:"no_licensed_vet"})}o(eo,"televetEmptyRosterView");function to(e){return e?"roster":"dark"}o(to,"televetEmptyRosterCause");var jt=Object.freeze({failed:0,refused:Object.freeze({size:0,type:0,unreadable:0})});function no(e){let{failed:t,refused:n}=e;return t<=0&&n.size<=0&&n.type<=0&&n.unreadable<=0}o(no,"isMediaShortfallEmpty");function ro(e){let t=o(r=>Number.isFinite(r)&&r>0?Math.floor(r):0,"count"),n=c.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=>G(r.n===1?r.one:r.many,{n:String(r.n)}))}o(ro,"televetMediaShortfallLines");function An(e){let t=Number.isFinite(e)&&e>0?Math.floor(e):0;return t===0?jt:Object.freeze({failed:t,refused:jt.refused})}o(An,"mediaShortfallFromUnsentPicks");function Nu(e,t){let n=An(t);return n.failed===0?e:Object.freeze({failed:e.failed+n.failed,refused:e.refused})}o(Nu,"withUnsentPicks");var ue=Object.freeze({title:"Vet test mode (sandbox tenants)",create:"Create a simulated visit for this pet",createLabel:"Create",visitTemplate:"Visit {visitRef}: {status}, scheduled {scheduledAt}.",eventsNote:"Raise one of the visit events that is not a status change, to see what a tap on it opens:",advance:Object.freeze({completed:"Complete it",cancelled:"Cancel it",no_show:"Mark no-show"}),events:Object.freeze({rescheduled:"Rescheduled",reminder:"Reminder (24h)",followup_sent:"Follow-up sent",message_received:"Vet replied",ended:"Ended"}),resultTemplate:"{label}: {result}.",errorTemplate:"{label}: {message}"});var oo="/widget/v1/televet/sandbox/visits",Lu=128,$i=64,Gi=new Set(["booked","cancelled","completed","no_show"]),Vu=new Set(["applied","already_applied","not_applicable"]),Ki=new Set(["rescheduled","reminder","followup_sent","message_received","ended"]),Yi=new Set(["24h","30m"]);function tt(e){return ne("validationFailed",{retryable:false,wireMessage:e})}o(tt,"invalid");function lo(e,t,n){return typeof t!="string"||t.length===0?tt(`${e} is required and must be a non-empty string`):yt(t)?tt(`${e} contains an unpaired surrogate and cannot be encoded`):mt(t)>n?tt(`${e} is longer than ${n} characters`):null}o(lo,"textError");function Mu(e){if(typeof e!="object"||e===null)return null;let{result:t,visit:n}=e;if(typeof t!="string"||!Vu.has(t)||typeof n!="object"||n===null)return null;let{visit_ref:r,pet_ref:i,status:l,scheduled_at:a}=n;return typeof r!="string"||r.length===0||typeof i!="string"||i.length===0||typeof l!="string"||!Gi.has(l)||typeof a!="string"||a.length===0?null:Object.freeze({result:t,visit:Object.freeze({visitRef:r,petRef:i,status:l,scheduledAt:a})})}o(Mu,"mapActionResult");function Ji(e){let t=e.funnel??Ge({auth:e.auth,...e.errorPolicy?{errorPolicy:e.errorPolicy}:{}}),n=o(async(r,i,l)=>{let a=await t.send(r,{method:"POST",path:i,body:l},{idempotent:false,maxAttempts:1});if(!a.ok)return R(a.error);let s=Mu(a.value);return s===null?R(ne("internalError",{retryable:false})):V(s)},"run");return {createVisit(r){let i=lo("pet_ref",r,Lu);return i!==null?Promise.resolve(R(i)):n("televet.sandbox.createVisit",oo,{pet_ref:r})},advanceVisit(r,i){let l=lo("visit_ref",r,$i);if(l!==null)return Promise.resolve(R(l));if(typeof i!="string"||!Gi.has(i))return Promise.resolve(R(tt("to must be booked, cancelled, completed or no_show")));let a=`${oo}/${encodeURIComponent(r)}/advance`;return n("televet.sandbox.advanceVisit",a,{to:i})},simulateVisitEvent(r,i,l){let a=lo("visit_ref",r,$i);if(a!==null)return Promise.resolve(R(a));if(typeof i!="string"||!Ki.has(i))return Promise.resolve(R(tt(`event must be one of ${[...Ki].join(", ")}`)));if(i==="reminder"){if(typeof l!="string"||!Yi.has(l))return Promise.resolve(R(tt(`stage must be one of ${[...Yi].join(", ")} for a reminder`)))}else if(l!==void 0)return Promise.resolve(R(tt("stage is only for a reminder")));let s=`${oo}/${encodeURIComponent(r)}/simulate`;return n("televet.sandbox.simulateVisitEvent",s,l===void 0?{event:i}:{event:i,stage:l})}}}o(Ji,"createVetVisitSandboxController");function Xi(){let{runtime:e,userRef:t,scopeEpoch:n}=me();return react.useMemo(()=>{let{services:r}=e.registry;return Ji({auth:r.authFor(t),...r.errorPolicy?{errorPolicy:r.errorPolicy}:{}})},[e,t,n])}o(Xi,"useEverfurVetVisitSandbox");function Uu(e,t){return !e||!t.enabled?false:t.data!==null&&t.data.active===false||Ft({error:t.error??null})}o(Uu,"televetOpensSimulator");var Wu=o(e=>e.livemode===false,"isSandbox");function qu(){let e=me().runtime.entitlements,t=react.useCallback(()=>Wu(e.getSnapshot()),[e]);return react.useSyncExternalStore(e.subscribe,t,t)}o(qu,"useTelevetSandboxTenant");function Zi(e,t){let n=Uu(qu(),e);return {simulate:n,fundingRefused:t&&!n}}o(Zi,"useTelevetSimulatorRoute");function ea(e){let t=Xi(),[n,r]=react.useState(null),[i,l]=react.useState(null),[a,s]=react.useState(false),d=react.useRef(false),u=react.useRef(true);react.useEffect(()=>(u.current=true,()=>{u.current=false;}),[]);let p=react.useCallback((S,P,C)=>{d.current||(d.current=true,s(true),P().then(T=>{if(d.current=false,!!u.current){if(s(false),!T.ok){l({tone:"danger",text:G(ue.errorTemplate,{label:S,message:T.error.displayMessage})});return}C&&r(T.value.visit),l({tone:"ok",text:G(ue.resultTemplate,{label:S,result:T.value.result})});}}));},[]),g=react.useCallback(()=>{p(ue.createLabel,()=>t.createVisit(e),true);},[e,p,t]),f=react.useCallback(S=>{n!==null&&p(ue.advance[S],()=>t.advanceVisit(n.visitRef,S),true);},[p,t,n]),y=react.useCallback(S=>{if(n===null)return;let P=S==="reminder"?"24h":void 0;p(ue.events[S],()=>t.simulateVisitEvent(n.visitRef,S,P),false);},[p,t,n]),k=n===null?null:G(ue.visitTemplate,{visitRef:n.visitRef,status:n.status,scheduledAt:n.scheduledAt});return {visit:n,visitLine:k,line:i,busy:a,create:g,advance:f,raise:y}}o(ea,"useTelevetVisitSimulator");var ta=Object.freeze(["completed","cancelled","no_show"]),na=Object.freeze(["rescheduled","reminder","followup_sent","message_received","ended"]);var X=44;function F(){let e=_();return react.useMemo(()=>Ju(e),[e])}o(F,"useBookingStyles");function w({label:e,onPress:t,kind:n="primary",disabled:r=false,loading:i=false,fullWidth:l=true,accessibilityLabel:a,testID:s,style:d}){let u=F(),p=_(),g=r||i;return jsxRuntime.jsxs(reactNative.Pressable,{onPress:t,disabled:g,accessibilityRole:"button",accessibilityLabel:a??e,accessibilityState:{disabled:g,busy:i},style:[u.button,n==="primary"?u.buttonPrimary:n==="danger"?u.buttonDanger:u.buttonSecondary,l?u.buttonFull:u.buttonAuto,g?u.buttonDisabled:null,d],testID:s,children:[i?jsxRuntime.jsx(reactNative.ActivityIndicator,{size:"small",color:n==="secondary"?p.color.brandInk:n==="danger"?p.color.onDanger:p.color.onPrimary}):null,jsxRuntime.jsx(v,{tier:"control",style:n==="secondary"?u.buttonSecondaryLabel:n==="danger"?u.buttonDangerLabel:u.buttonPrimaryLabel,children:e})]})}o(w,"TelevetButton");function N({title:e,message:t,actionLabel:n,onAction:r,testID:i}){let l=F(),a=typeof n=="string"&&n.length>0&&typeof r=="function";return jsxRuntime.jsxs(reactNative.View,{style:l.stateCard,testID:i,children:[jsxRuntime.jsx(v,{style:l.stateTitle,accessibilityRole:"header",children:e}),t?jsxRuntime.jsx(v,{style:l.stateMessage,children:t}):null,a?jsxRuntime.jsx(w,{label:n,onPress:r,kind:"secondary",fullWidth:false}):null]})}o(N,"TelevetStateCard");function le({height:e,width:t="100%",testID:n}){let r=F();return jsxRuntime.jsx(reactNative.View,{style:[r.skeleton,{height:e,width:t}],testID:n,accessibilityElementsHidden:true,importantForAccessibility:"no"})}o(le,"TelevetSkeletonBlock");function W({message:e,assertive:t=false,testID:n,style:r}){let i=F();return jsxRuntime.jsx(v,{style:[i.failure,r],accessibilityLiveRegion:t?"assertive":"polite",testID:n,children:e})}o(W,"TelevetFailureLine");function Ju(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return reactNative.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},buttonDangerLabel:{...b(e,"medium"),color:t.onDanger,fontSize:l.body,lineHeight:l.body*a.snug},buttonSecondaryLabel:{...b(e,"medium"),color:t.brandInk,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.brandInk,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.brandInk,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(Ju,"makeBookingStyles");function Ut({petName:e,primaryVet:t,onFindEmergencyVet:n}){let r=_(),i=react.useMemo(()=>aa(r),[r]),l=e?.trim()??"";return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[n?jsxRuntime.jsx(reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:c.emergency.exitFindErTitle,onPress:()=>{ln(n);},style:i.vetCard,testID:"televet-emergency-find-vet",children:jsxRuntime.jsx(reactNative.View,{style:i.vetRow,children:jsxRuntime.jsx(v,{tier:"control",style:i.vetTitle,children:c.emergency.exitFindErTitle})})}):null,t!=null&&l.length>0?jsxRuntime.jsx(Xu,{petName:l,vet:t}):null]})}o(Ut,"TelevetEmergencyExits");function Xu({petName:e,vet:t}){let n=_(),r=react.useMemo(()=>aa(n),[n]),i=G(c.emergency.exitPrimaryVetTitle,{petName:e}),l=t.detail?.trim()??"",a=jsxRuntime.jsx(reactNative.View,{style:r.vetRow,children:jsxRuntime.jsxs(reactNative.View,{style:r.vetText,children:[jsxRuntime.jsx(v,{tier:"control",style:r.vetTitle,children:i}),l.length>0?jsxRuntime.jsx(v,{style:r.vetDetail,children:l}):null]})});if(!t.dial)return jsxRuntime.jsx(reactNative.View,{style:r.vetCard,testID:"televet-early-emergency-primary-vet",children:a});let s=t.dial;return jsxRuntime.jsx(reactNative.Pressable,{accessibilityRole:"link",accessibilityLabel:l.length>0?`${i}, ${l}`:i,accessibilityHint:c.emergency.startCallHint,onPress:()=>{ln(s);},style:r.vetCard,testID:"televet-early-emergency-primary-vet-call",children:a})}o(Xu,"PrimaryVetCard");function aa(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(aa,"makeExitStyles");function ua({petName:e,primaryVet:t,onFindEmergencyVet:n,onContinue:r}){let i=_(),l=F(),a=react.useMemo(()=>co(i),[i]);return jsxRuntime.jsxs(reactNative.View,{style:[l.stepFill,a.emergencyPanel],testID:"televet-early-emergency",children:[jsxRuntime.jsx(v,{tier:"heading",accessibilityRole:"header",accessibilityLiveRegion:"assertive",style:a.emergencyTitle,children:c.emergency.bannerTitle}),jsxRuntime.jsx(v,{style:a.emergencyLede,children:c.emergency.lede}),jsxRuntime.jsx(Ut,{petName:e,primaryVet:t,onFindEmergencyVet:n}),jsxRuntime.jsx(w,{label:c.emergency.keepBookingCta,kind:"secondary",onPress:r,testID:"televet-early-emergency-continue"})]})}o(ua,"TelevetEarlyEmergency");function so({action:e,testIDPrefix:t}){let n=_(),r=react.useMemo(()=>co(n),[n]);return e===null?null:e.joined?jsxRuntime.jsxs(reactNative.View,{testID:`${t}-joined`,style:r.interestFeedback,children:[jsxRuntime.jsx(v,{tier:"control",accessibilityRole:"header",children:c.stateInterest.joinedTitle}),jsxRuntime.jsx(v,{style:r.interestBody,children:c.stateInterest.joinedBody})]}):jsxRuntime.jsxs(reactNative.View,{testID:t,style:r.interestAction,children:[jsxRuntime.jsx(w,{label:c.stateInterest.cta,kind:"secondary",loading:e.pending,disabled:e.pending,onPress:e.onPress,testID:`${t}-submit`}),e.failed?jsxRuntime.jsx(W,{message:c.stateInterest.failed,testID:`${t}-error`}):null]})}o(so,"TelevetStateInterestAction");function ca({cause:e,onRetry:t,stateInterest:n=null}){let r=eo(e);return jsxRuntime.jsxs(reactNative.View,{testID:"televet-clinicians-empty",children:[jsxRuntime.jsx(N,{title:r.title,message:r.message,...r.retryLabel!==null&&t?{actionLabel:r.retryLabel,onAction:t}:{}}),r.interestReason!==null?jsxRuntime.jsx(so,{action:n??null,testIDPrefix:"televet-state-interest-no-licensed-vet"}):null]})}o(ca,"TelevetClinicianEmptyState");function ec({onCheckAvailability:e}){return jsxRuntime.jsx(uo,{...e?{onCheckAvailability:e}:{}})}o(ec,"TelevetEntitlementInterestState");function uo({onCheckAvailability:e,renderUnavailable:t}){let n=F();return jsxRuntime.jsxs(reactNative.View,{testID:"televet-booking-not-entitled",style:n.list,children:[t?t():jsxRuntime.jsx(N,{title:c.bookingPausedTitle}),e?jsxRuntime.jsx(w,{label:c.checkAvailabilityCta,kind:"secondary",onPress:e,testID:"televet-check-state-availability"}):null]})}o(uo,"EntitlementPausedState");function Wt({shortfall:e,testIDPrefix:t}){let n=_(),r=react.useMemo(()=>co(n),[n]);if(no(e))return null;let i=ro(e);return i.length===0?null:jsxRuntime.jsx(reactNative.View,{style:r.mediaNotice,testID:`${t}-media-notice`,children:i.map((l,a)=>jsxRuntime.jsx(v,{style:r.mediaLine,accessibilityLiveRegion:"polite",testID:`${t}-media-line-${String(a)}`,children:l},l))})}o(Wt,"TelevetMediaDropNotice");function co(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(co,"makeEdgeStyles");function pa(e){let{surfaceUnavailable:t,notEntitled:n,policyBlocked:r,triageOpen:i,step:l}=e;return t||n&&l!=="clinician"||r?true:l==="reason"&&i}o(pa,"televetBookingGateApplies");function fa({state:e,petName:t,primaryVet:n,onFindEmergencyVet:r,stateInterest:i=null,onCheckAvailability:l,onAcknowledgeEmergency:a,renderUnavailable:s}){let d=F(),{surfaceUnavailable:u,notEntitled:p,policyBlocked:g,triageOpen:f,step:y}=e;return u?jsxRuntime.jsx(reactNative.View,{style:d.stepFill,testID:"televet-booking-unavailable",children:s?s():jsxRuntime.jsx(N,{title:c.bookingPausedTitle})}):p&&y!=="clinician"?jsxRuntime.jsx(uo,{...l?{onCheckAvailability:l}:{},...s?{renderUnavailable:s}:{}}):g?jsxRuntime.jsxs(reactNative.View,{testID:"televet-booking-state-blocked",children:[jsxRuntime.jsx(N,{title:c.stateBlockedTitle}),jsxRuntime.jsx(so,{action:i,testIDPrefix:"televet-state-interest-state-blocked"})]}):y==="reason"&&f?jsxRuntime.jsx(ua,{...t!==void 0?{petName:t}:{},...n?{primaryVet:n}:{},onFindEmergencyVet:r,onContinue:a}):null}o(fa,"TelevetBookingGate");var da=false;function tc(){if(!da){da=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(tc,"warnNoStateSeamOnce");function ya(e){return e.noState?true:e.isPending||e.isError?false:e.isEmpty||e.notEntitled}o(ya,"televetClinicianOutcomeApplies");function ma({state:e,cause:t,locationStatus:n,onRequestLocation:r,onRetry:i,stateInterest:l=null,renderUnavailable:a}){let s=e.noState&&!r;return react.useEffect(()=>{s&&tc();},[s]),e.noState?jsxRuntime.jsx(reactNative.View,{testID:"televet-booking-location-unknown",children:jsxRuntime.jsx(N,{title:n==="blocked"?c.locationBlockedTitle:n==="unavailable"?c.locationUnavailableTitle:c.locationUnknownTitle,message:n==="blocked"?c.locationBlockedBody:n==="unavailable"?c.locationUnavailableBody:r?c.locationUnknownBody:void 0,actionLabel:r?n==="blocked"?c.locationBlockedCta:c.locationUnknownCta:void 0,onAction:r})}):e.isEmpty?jsxRuntime.jsx(ca,{cause:t,onRetry:i,stateInterest:l}):jsxRuntime.jsx(uo,{...a?{renderUnavailable:a}:{}})}o(ma,"TelevetClinicianOutcome");function va(e){return `televet-consult-${e}`}o(va,"televetConsultCalendarKey");function fo({consult:e,petName:t,onDone:n,onAddToCalendar:r,canJoinInApp:i=false}){let l=_(),a=F(),s=react.useMemo(()=>lc(l),[l]),[d,u]=react.useState("idle"),p=o(async()=>{if(!r)return;u("saving");let f=new Date(e.scheduledAt);if(Number.isNaN(f.getTime())){u("failed");return}let y=await an(r,{key:va(e.consultId),title:c.visit.title,startDate:f,endDate:new Date(f.getTime()+gt*6e4),alarmOffsetMinutes:-30});u(y.ok&&y.value===true?"saved":"failed");},"addToCalendar"),g=[c.booked.remindPromise,G(c.booked.summaryPromise,{pet:t??""}),...i?[c.booked.joinPromise]:[]];return we()?jsxRuntime.jsxs(reactNative.View,{style:s.screen,testID:"televet-booked",children:[jsxRuntime.jsx(reactNative.View,{style:s.header,children:jsxRuntime.jsx(w,{label:c.doneCta,kind:"secondary",fullWidth:false,onPress:n,testID:"televet-booked-done"})}),jsxRuntime.jsx(reactNative.View,{style:s.avatar,accessibilityElementsHidden:true,importantForAccessibility:"no"}),jsxRuntime.jsx(v,{tier:"heading",style:s.title,accessibilityRole:"header",children:c.bookedTitle}),jsxRuntime.jsx(v,{style:s.when,children:ve(e.scheduledAt)}),jsxRuntime.jsx(reactNative.View,{style:s.steps,testID:"televet-booked-steps",children:g.map((f,y)=>jsxRuntime.jsxs(reactNative.View,{style:s.step,children:[jsxRuntime.jsx(reactNative.View,{style:s.stepNumber,accessibilityElementsHidden:true,importantForAccessibility:"no",children:jsxRuntime.jsx(v,{tier:"badge",style:s.stepNumberText,children:String(y+1)})}),jsxRuntime.jsx(v,{style:s.stepText,children:f.trim()})]},f))}),jsxRuntime.jsxs(reactNative.View,{style:s.actions,children:[r?jsxRuntime.jsx(w,{label:d==="saved"?c.booked.calendarAdded:c.addToCalendarCta,kind:"primary",loading:d==="saving",disabled:d==="saving"||d==="saved",onPress:()=>{p();},testID:"televet-booked-calendar"}):null,d==="failed"?jsxRuntime.jsx(v,{style:[a.failure,s.calendarNote],accessibilityLiveRegion:"polite",testID:"televet-booked-calendar-failed",children:c.booked.calendarFailedBody}):null,jsxRuntime.jsx(w,{label:t?G(c.booked.backToPet,{pet:t}):c.doneCta,kind:"secondary",onPress:n,testID:"televet-booked-back"})]})]}):jsxRuntime.jsx(reactNative.View,{style:s.screen,testID:"televet-booked-copy-unapproved"})}o(fo,"TelevetBookedScreen");function lc(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return reactNative.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.brandInk,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.brandInk,fontSize:l.body,lineHeight:l.body*a.normal},actions:{marginTop:"auto",paddingBottom:n.xl,gap:n.md},calendarNote:{textAlign:"center"}})}o(lc,"makeStyles");function mo({step:e,furthestIndex:t,title:n,canGoBack:r,isDirty:i,onBack:l,onClose:a,onConfirmDiscard:s}){let d=_(),u=react.useMemo(()=>uc(d),[d]),p=react.useMemo(()=>()=>{if(!i){a();return}let T={title:c.chrome.discardTitle,body:c.chrome.discardBody,confirmLabel:c.chrome.discardConfirmCta,keepLabel:c.chrome.discardKeepCta};if(s){Promise.resolve(s(T)).then(E=>{E&&a();},()=>{});return}reactNative.Alert.alert(T.title,T.body,[{text:T.keepLabel,style:"cancel"},{text:T.confirmLabel,style:"destructive",onPress:a}]);},[i,a,s]),g=react.useMemo(()=>()=>r?(l(),true):(p(),true),[r,l,p]);react.useEffect(()=>{let T=reactNative.BackHandler.addEventListener("hardwareBackPress",g);return ()=>{T.remove();}},[g]),ut(g);let f=We.filter(T=>T!=="issues"),y=f.length,k=We[t],S=k===void 0?0:Math.max(0,f.indexOf(k==="issues"?"reason":k)),C=e==="booked"?1:Math.min(1,(S+1)/y);return jsxRuntime.jsxs(reactNative.View,{style:u.wrap,children:[jsxRuntime.jsxs(reactNative.View,{style:u.bar,children:[jsxRuntime.jsx(reactNative.View,{style:u.side,children:jsxRuntime.jsx(reactNative.Pressable,{onPress:r?l:p,accessibilityRole:"button",accessibilityLabel:Bn,testID:"televet-booking-back",style:u.tap,children:jsxRuntime.jsx(reactNative.View,{style:u.chevron,accessibilityElementsHidden:true,importantForAccessibility:"no"})})}),jsxRuntime.jsx(v,{tier:"heading",style:u.title,accessibilityRole:"header",children:n??c.navTitle}),jsxRuntime.jsx(reactNative.View,{style:[u.side,u.sideRight],children:jsxRuntime.jsx(reactNative.Pressable,{onPress:p,accessibilityRole:"button",accessibilityLabel:c.close,accessibilityHint:c.chrome.closeHint,testID:"televet-booking-close",style:u.tap,children:jsxRuntime.jsx(v,{tier:"control",style:u.close,children:c.close})})})]}),jsxRuntime.jsx(reactNative.View,{style:u.railTrack,accessibilityElementsHidden:true,importantForAccessibility:"no-hide-descendants",children:jsxRuntime.jsx(reactNative.View,{style:[u.railFill,{width:`${Math.round(C*100)}%`}],testID:"televet-booking-rail"})})]})}o(mo,"TelevetBookingChrome");var Bn="Back";function uc(e){let{color:t,space:n,type:r}=e,{size:i,lineHeight:l}=r;return reactNative.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.brandInk,transform:[{rotate:"45deg"}]},title:{flex:1,textAlign:"center",...b(e,"medium"),color:t.brandInk,fontSize:i.subtitle,lineHeight:i.subtitle*l.normal},close:{...b(e,"medium"),color:t.brandInk,fontSize:i.subtitle,lineHeight:i.subtitle*l.normal},railTrack:{height:4,backgroundColor:t.surfaceSubtle},railFill:{height:4,backgroundColor:t.success}})}o(uc,"makeStyles");function ha(e){let t=[],n=cc(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(ha,"formatTelevetPetMetaLine");function cc(e){if(typeof e!="number"||!Number.isFinite(e))return null;let t=Math.floor(e);return t>=0?t:null}o(cc,"wholeYears");function go({media:e,onChange:t,onPickMedia:n}){let r=_(),i=react.useMemo(()=>hc(r),[r]),l=mn-e.length,[a,s]=react.useState(false);if(!n)return null;let d=o(async()=>{if(!(a||l<=0)){s(true);try{let u=await an(n,l);if(!u.ok||u.value===null||u.value.length===0)return;let p=new Set(e.map(f=>f.uri)),g=u.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,mn));}finally{s(false);}}},"pick");return jsxRuntime.jsxs(reactNative.View,{style:i.row,children:[e.map((u,p)=>jsxRuntime.jsxs(reactNative.View,{style:i.thumb,children:[jsxRuntime.jsx(reactNative.Image,{source:{uri:u.uri},style:i.thumbImage,resizeMode:"cover"}),u.mimeType?.startsWith("video/")?jsxRuntime.jsx(reactNative.View,{style:i.videoBadge,testID:`televet-intake-media-video-${String(p)}`,children:jsxRuntime.jsx(v,{tier:"badge",style:i.videoBadgeText,children:bc})}):null,jsxRuntime.jsx(reactNative.Pressable,{onPress:()=>t(e.filter((g,f)=>f!==p)),accessibilityRole:"button",accessibilityLabel:c.removePhotoLabel,testID:`televet-intake-media-remove-${String(p)}`,style:i.remove,children:jsxRuntime.jsx(v,{tier:"control",style:i.removeGlyph,children:gc})})]},`${u.uri}-${String(p)}`)),l>0?jsxRuntime.jsx(reactNative.Pressable,{onPress:()=>{d();},disabled:a,accessibilityRole:"button",accessibilityLabel:c.addPhotoCta,accessibilityState:{busy:a,disabled:a},testID:"televet-intake-add-media",style:[i.dropzone,a?i.dropzoneBusy:null],children:a?jsxRuntime.jsx(reactNative.ActivityIndicator,{testID:"televet-intake-media-busy"}):jsxRuntime.jsx(v,{tier:"compact",style:i.dropzoneText,children:c.addPhotoCta})}):null]})}o(go,"TelevetIntakeMedia");var gc="\xD7",bc="\u25B6",Fn=92;function hc(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return reactNative.StyleSheet.create({row:{flexDirection:"row",flexWrap:"wrap",gap:n.md,paddingTop:n.sm},thumb:{width:Fn,height:Fn,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:Fn,height:Fn,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 bo({slots:e,selectedDayKey:t,onSelectDay:n}){let r=_(),i=react.useMemo(()=>xc(r),[r]),l=react.useMemo(()=>Vn(e),[e]),a=Rc(),s=l[0];return s===void 0?null:jsxRuntime.jsxs(reactNative.View,{children:[jsxRuntime.jsx(v,{tier:"compact",style:i.month,testID:"televet-day-strip-month",children:zi(s.iso)}),jsxRuntime.jsx(reactNative.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 u=d.key===t;return jsxRuntime.jsxs(reactNative.Pressable,{onLayout:u?a.onSelectedDayLayout:void 0,onPress:()=>n(d),accessibilityRole:"button",accessibilityLabel:ji(d.iso),accessibilityState:{selected:u},testID:`televet-day-${d.key}`,style:[i.day,u?i.daySelected:null],children:[jsxRuntime.jsx(v,{tier:"compact",style:[i.dayWeekday,u?i.dayTextSelected:null],children:d.weekday}),jsxRuntime.jsx(v,{tier:"compact",style:[i.dayNumber,u?i.dayTextSelected:null],children:d.dayNumber})]},d.key)})})]})}o(bo,"TelevetDayStrip");var Cc=Object.freeze({done:false,viewport:null,content:null,chip:null});function Rc(){let e=react.useRef(null),t=react.useRef(Cc),n=react.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,u=Math.min(Math.max(0,d),Math.max(0,s.content-s.viewport));u>0&&e.current?.scrollTo({x:u,animated:false});},[]),r=react.useCallback(a=>n({viewport:a.nativeEvent.layout.width}),[n]),i=react.useCallback(a=>n({content:a}),[n]),l=react.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(Rc,"useRevealSelectedDay");function Vn(e){let t=new Map;for(let n of e){let r=zt(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(Vn,"televetDaysFromSlots");function xc(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return reactNative.StyleSheet.create({month:{textAlign:"center",...b(e,"medium"),color:t.brandInk,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.brandInk,fontSize:l.heading,lineHeight:l.heading*a.tight},dayTextSelected:{color:t.onPrimary}})}o(xc,"makeStyles");function $t({slots:e,busySlotId:t,onPick:n,selectedSlot:r=null,ListHeaderComponent:i,rowTestIdPrefix:l="televet-slot",testID:a="televet-slot-list"}){let s=_(),d=react.useMemo(()=>Dc(s),[s]),u=react.useMemo(()=>Vn(e),[e]),[p,g]=react.useState(null),f=r?zt(r.startsAt):null,y=Ac(u,[p,f])??u[0]?.key??null,k=react.useMemo(()=>y?e.filter(E=>zt(E.startsAt)===y):[],[e,y]),S=i,P=react.useMemo(()=>k.map(E=>bt(E.startsAt)),[k]),C=react.useMemo(()=>new Set(P.filter(E=>E.length>0)).size>1,[P]),T=k[0];return jsxRuntime.jsxs(reactNative.View,{style:d.root,testID:a,children:[S?jsxRuntime.jsx(S,{}):null,jsxRuntime.jsx(bo,{slots:e,selectedDayKey:y,onSelectDay:E=>g(E.key)}),T&&!C?jsxRuntime.jsx(v,{tier:"compact",style:d.zone,testID:"televet-slot-zone",children:bt(T.startsAt)}):null,jsxRuntime.jsx(reactNative.ScrollView,{style:d.gridScroll,contentContainerStyle:d.grid,showsVerticalScrollIndicator:false,children:k.map((E,D)=>{let h=t===E.slotId,z=t!==null,B=C?P[D]??"":"";return jsxRuntime.jsxs(reactNative.Pressable,{onPress:()=>n(E),disabled:z,accessibilityRole:"button",accessibilityLabel:[et(E.startsAt),B].filter(L=>L.length>0).join(" "),accessibilityState:{disabled:z,busy:h},testID:`${l}-${E.slotId}`,style:[d.chip,h?d.chipBusy:null,z&&!h?d.chipDisabled:null],children:[jsxRuntime.jsx(v,{tier:"compact",style:[d.chipLabel,h?d.chipLabelBusy:null],children:et(E.startsAt)}),B.length>0?jsxRuntime.jsx(v,{tier:"compact",style:[d.chipZone,h?d.chipLabelBusy:null],testID:`${l}-${E.slotId}-zone`,children:B}):null]},E.slotId)})})]})}o($t,"TelevetSlotPicker");function Ac(e,t){for(let n of t)if(n!==null&&e.some(r=>r.key===n))return n;return null}o(Ac,"firstOffered");function Dc(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return reactNative.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.brandInk,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(Dc,"makeStyles");function ot({label:e,value:t,last:n=false,testID:r}){let i=_(),l=react.useMemo(()=>So(i),[i]);return jsxRuntime.jsxs(reactNative.View,{style:[l.row,n?l.rowLast:null],testID:r,children:[jsxRuntime.jsx(v,{style:l.rowLabel,children:e}),jsxRuntime.jsx(v,{style:l.rowValue,children:t})]})}o(ot,"TelevetSummaryRow");function Kt({label:e,checked:t,onToggle:n,testID:r}){let i=_(),l=react.useMemo(()=>So(i),[i]);return jsxRuntime.jsxs(reactNative.Pressable,{onPress:()=>n(!t),accessibilityRole:"checkbox",accessibilityLabel:e,accessibilityState:{checked:t},testID:r,style:l.consent,children:[jsxRuntime.jsx(reactNative.View,{style:[l.box,t?l.boxChecked:null],children:t?jsxRuntime.jsx(v,{tier:"badge",style:l.tick,children:Nc}):null}),jsxRuntime.jsx(v,{style:l.consentLabel,children:e})]})}o(Kt,"TelevetConsentCheckbox");var Nc="\u2713";function Eo({children:e,testID:t}){let n=_(),r=react.useMemo(()=>So(n),[n]);return jsxRuntime.jsx(reactNative.View,{style:r.card,testID:t,children:e})}o(Eo,"TelevetSummaryCard");function So(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return reactNative.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.brandInk,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},rowValue:{flexShrink:1,textAlign:"right",...b(e,"medium"),color:t.brandInk,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.brandInk,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(So,"makeStyles");function ko({when:e,lengthMinutes:t,clinician:n,petName:r,reason:i,shareRecords:l,onToggleShare:a,stateCode:s,stateAttested:d,onToggleStateAttest:u,cancellationTerms:p,termsAttested:g,onToggleTermsAttest:f,canConfirm:y,busy:k,failure:S,onConfirm:P,emergency:C,onAcknowledgeEmergency:T,onSeeOtherVets:E,mediaShortfall:D=jt,primaryVet:h,onFindEmergencyVet:z}){let B=F(),L=_(),M=react.useMemo(()=>Ke(L),[L]);return jsxRuntime.jsxs(reactNative.View,{style:B.scrollRoot,testID:"televet-booking-review",children:[jsxRuntime.jsxs(reactNative.ScrollView,{style:B.scrollBody,contentContainerStyle:B.list,keyboardShouldPersistTaps:"handled",showsVerticalScrollIndicator:false,testID:"televet-booking-review-scroll",children:[jsxRuntime.jsxs(Eo,{testID:"televet-review-summary",children:[r?jsxRuntime.jsx(ot,{label:c.summaryPet,value:r,testID:"televet-review-row-pet"}):null,n?jsxRuntime.jsx(ot,{label:c.summaryVet,value:n,testID:"televet-review-row-vet"}):null,jsxRuntime.jsx(ot,{label:c.summaryWhen,value:e,testID:"televet-review-row-when"}),jsxRuntime.jsx(ot,{label:c.summaryLength,value:G(c.summaryLengthTemplate,{n:String(t)}),testID:"televet-review-row-length"}),i?jsxRuntime.jsx(ot,{label:c.summaryReason,value:i,last:true,testID:"televet-review-row-reason"}):null]}),jsxRuntime.jsx(Kt,{label:c.shareRecordsOff,checked:l,onToggle:a,testID:"televet-review-share-records"}),p?jsxRuntime.jsx(Kt,{label:p,checked:g,onToggle:f,testID:"televet-review-terms-attest"}):null,s?jsxRuntime.jsx(Kt,{label:G(c.stateAttestTemplate,{state:s}),checked:d,onToggle:u,testID:"televet-review-state-attest"}):null,jsxRuntime.jsx(Wt,{shortfall:D,testIDPrefix:"televet-review"}),C?jsxRuntime.jsxs(reactNative.View,{style:M.emergencyBanner,testID:"televet-review-emergency",children:[jsxRuntime.jsx(v,{tier:"heading",accessibilityRole:"header",accessibilityLiveRegion:"assertive",style:M.emergencyTitle,children:c.emergency.bannerTitle}),jsxRuntime.jsx(v,{style:M.emergencyLede,children:c.emergency.lede}),C.length>0?jsxRuntime.jsx(v,{style:M.emergencyLede,testID:"televet-review-emergency-categories",children:C.join(", ")}):null,jsxRuntime.jsx(Ut,{petName:r,primaryVet:h,onFindEmergencyVet:z}),jsxRuntime.jsx(w,{label:c.emergency.keepBookingCta,kind:"secondary",loading:k,disabled:k,onPress:T,testID:"televet-review-emergency-ack"})]}):null,S==="failed"?jsxRuntime.jsx(W,{message:c.confirmFailed}):null,S==="clinician_unavailable"?jsxRuntime.jsxs(reactNative.View,{style:B.list,testID:"televet-review-clinician-unavailable",children:[jsxRuntime.jsx(W,{message:c.confirmFailed}),jsxRuntime.jsx(w,{label:c.seeOtherVetsCta,kind:"secondary",onPress:E,testID:"televet-review-see-other-vets"})]}):null,S==="rate_limited"?jsxRuntime.jsx(W,{message:c.confirmFailed,testID:"televet-review-rate-limited"}):null,S==="not_entitled"?jsxRuntime.jsx(W,{message:c.bookingPausedTitle,testID:"televet-review-not-entitled"}):null]}),C?null:jsxRuntime.jsx(reactNative.View,{style:B.scrollFooter,children:jsxRuntime.jsx(w,{label:c.confirmCta,kind:"primary",loading:k,disabled:!y||k||!!s&&!d||!!p&&!g,onPress:P,testID:"televet-review-confirm"})})]})}o(ko,"ReviewStep");var zc="\u25CB",jc="+";function Fe(e,t){return t?e.find(r=>r.petRef===t||r.petId===t)?.name??null:null}o(Fe,"nameOf");function jn({pets:e,isPending:t,isError:n,onRetry:r,selectedId:i,onSelect:l,onAddPet:a}){let s=F(),d=_(),u=react.useMemo(()=>Ke(d),[d]);return t?jsxRuntime.jsx(reactNative.View,{style:s.list,testID:"televet-pets-loading",children:[0,1].map(p=>jsxRuntime.jsx(le,{height:64},p))}):n?jsxRuntime.jsx(reactNative.View,{testID:"televet-pets-error",children:jsxRuntime.jsx(N,{title:c.chrome.loadFailedTitle,actionLabel:c.chrome.retryCta,onAction:r})}):e.length===0?jsxRuntime.jsx(reactNative.View,{testID:"televet-pets-empty",children:jsxRuntime.jsx(N,{title:c.chrome.noPetsTitle,actionLabel:c.addPetCta,onAction:a})}):jsxRuntime.jsxs(reactNative.View,{style:s.stepFill,children:[jsxRuntime.jsx(v,{tier:"heading",style:s.stepTitle,accessibilityRole:"header",children:c.petSelectTitle}),jsxRuntime.jsxs(reactNative.ScrollView,{contentContainerStyle:s.list,testID:"televet-pets",children:[e.map(p=>{let g=i===p.petRef,f=ha(p),y=p.name??"";return jsxRuntime.jsx(_a,{name:y,meta:f,selected:g,onPress:()=>l(p.petRef),testID:`televet-pet-${p.petRef}`},p.petRef)}),a?jsxRuntime.jsx(_a,{name:c.addPetCta,meta:"",selected:false,onPress:a,testID:"televet-pet-add",glyph:jc}):null]}),jsxRuntime.jsx(reactNative.View,{style:u.spacer})]})}o(jn,"PetStep");function _a({name:e,meta:t,selected:n,onPress:r,testID:i,glyph:l}){let a=_(),s=react.useMemo(()=>Ke(a),[a]);return jsxRuntime.jsxs(reactNative.View,{style:[s.petRow,n?s.petRowSelected:null],children:[jsxRuntime.jsx(w,{label:e,onPress:r,kind:"secondary",accessibilityLabel:e,testID:i,style:s.petRowButton}),jsxRuntime.jsxs(reactNative.View,{style:s.petRowText,pointerEvents:"none",children:[jsxRuntime.jsx(reactNative.View,{style:s.petDisc,children:jsxRuntime.jsx(v,{tier:"compact",style:s.petDiscGlyph,children:l??Pa(e)})}),t?jsxRuntime.jsx(v,{tier:"compact",style:s.petRowMeta,children:t}):null]})]})}o(_a,"PetRow");function Pa(e){let t=e.trim();return t.length===0?zc:t.slice(0,1).toUpperCase()}o(Pa,"initialOf");function Ia({clinicians:e,isPending:t,isError:n,selectedId:r,onSelect:i,onRetry:l}){let a=F(),s=_(),d=react.useMemo(()=>Ke(s),[s]);if(t)return jsxRuntime.jsx(reactNative.View,{style:a.list,testID:"televet-clinicians-loading",children:jsxRuntime.jsx(le,{height:96})});if(n)return jsxRuntime.jsx(reactNative.View,{testID:"televet-clinicians-error",children:jsxRuntime.jsx(N,{title:c.chrome.loadFailedTitle,actionLabel:c.chrome.retryCta,onAction:l})});if(e.length===0)return jsxRuntime.jsx(reactNative.View,{testID:"televet-clinicians-empty",children:jsxRuntime.jsx(N,{title:c.noCliniciansTitle,message:c.noCliniciansBody,actionLabel:c.noCliniciansRetryCta,onAction:l})});let u=e.find(p=>p.clinicianId===r)??e[0];return u===void 0?null:jsxRuntime.jsxs(reactNative.View,{style:a.list,testID:"televet-clinicians",children:[jsxRuntime.jsx(v,{tier:"heading",style:a.stepTitle,accessibilityRole:"header",children:c.yourVetTitle}),jsxRuntime.jsxs(reactNative.View,{style:d.vetRow,children:[jsxRuntime.jsx(reactNative.View,{style:d.vetAvatar,children:jsxRuntime.jsx(v,{tier:"heading",style:d.vetAvatarText,children:Pa(u.displayName)})}),jsxRuntime.jsxs(reactNative.View,{style:d.vetIdentity,children:[jsxRuntime.jsx(v,{style:d.vetName,children:u.displayName}),u.credentials?jsxRuntime.jsx(v,{style:d.vetCredentials,children:u.credentials}):null,u.rating!==null&&u.ratingCount!==null?jsxRuntime.jsx(v,{tier:"compact",style:d.vetRating,testID:"televet-vet-rating",children:`\u2605 ${String(u.rating)} \xB7 ${String(u.ratingCount)} ${c.reviewsLabel}`}):null]})]}),u.bio?jsxRuntime.jsx(v,{style:d.vetBio,testID:"televet-vet-bio",children:u.bio}):null,jsxRuntime.jsx(reactNative.View,{style:a.divider}),jsxRuntime.jsx(w,{label:c.continueCta,kind:"primary",onPress:()=>i(u.clinicianId),testID:`televet-clinician-${u.clinicianId}`})]})}o(Ia,"ClinicianStep");function Oa({slots:e,enabled:t,isPending:n,isError:r,busySlotId:i,failure:l,selectedSlot:a,nextOpening:s,onPick:d,onRetry:u,onSeeOtherVets:p}){let g=F();return t?n?jsxRuntime.jsx(reactNative.View,{style:g.list,testID:"televet-slots-loading",children:[0,1,2].map(f=>jsxRuntime.jsx(le,{height:48},f))}):r?jsxRuntime.jsx(N,{title:c.slotsErrorTitle,actionLabel:c.retryCta,onAction:u,testID:"televet-slots-error"}):e.length===0?jsxRuntime.jsx(reactNative.View,{testID:"televet-slots-empty",children:jsxRuntime.jsx(N,{title:c.noSlotsTitle,message:s?G(c.nextOpeningTemplate,{when:ve(s.startsAt)}):void 0,actionLabel:s?c.seeOtherVetsCta:void 0,onAction:s?p:void 0})}):jsxRuntime.jsxs(reactNative.View,{style:g.stepFill,testID:"televet-slots",children:[l==="expired"?jsxRuntime.jsx(W,{message:c.holdExpired}):null,l==="taken"?jsxRuntime.jsx(W,{message:c.slotTaken}):null,l==="failed"||l==="rate_limited"?jsxRuntime.jsx(W,{message:c.confirmFailed,testID:"televet-slots-hold-failed"}):null,jsxRuntime.jsx($t,{slots:e,busySlotId:i,onPick:d,selectedSlot:a})]}):jsxRuntime.jsx(reactNative.View,{testID:"televet-slots-unavailable",children:jsxRuntime.jsx(N,{title:c.bookingPausedTitle})})}o(Oa,"SlotStep");function Aa({value:e,onChange:t,onNext:n,media:r,onChangeMedia:i,onPickMedia:l,checking:a=false}){let s=F(),d=_(),u=react.useMemo(()=>Ke(d),[d]),p=e.trim(),g=p.length>0&&p.length<=Ie;return jsxRuntime.jsxs(reactNative.View,{style:s.scrollRoot,testID:"televet-booking-reason",children:[jsxRuntime.jsxs(reactNative.ScrollView,{style:s.scrollBody,contentContainerStyle:s.list,keyboardShouldPersistTaps:"handled",keyboardDismissMode:"interactive",showsVerticalScrollIndicator:false,testID:"televet-booking-reason-scroll",children:[jsxRuntime.jsx(v,{tier:"heading",style:s.stepTitle,accessibilityRole:"header",children:c.describeHeading}),jsxRuntime.jsx(v,{style:s.stepHelp,children:c.describeHelpLong}),jsxRuntime.jsx(ti,{value:e,onChangeText:t,multiline:true,placeholder:c.reasonPlaceholder,placeholderTextColor:d.color.text.placeholder,style:u.reasonInput,testID:"televet-reason-input"}),p.length>Ie?jsxRuntime.jsx(W,{message:c.reasonTooLong}):null,jsxRuntime.jsx(go,{media:r,onChange:i,...l?{onPickMedia:l}:{}})]}),jsxRuntime.jsx(reactNative.View,{style:s.scrollFooter,children:jsxRuntime.jsx(w,{label:c.continueCta,kind:"primary",disabled:!g,loading:a,onPress:n,testID:"televet-reason-next"})})]})}o(Aa,"ReasonStep");function Ke(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return reactNative.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.brandInk,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.brandInk,fontSize:l.heading,lineHeight:l.heading},vetIdentity:{flex:1,gap:2},vetName:{...b(e,"medium"),color:t.brandInk,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.brandInk,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(Ke,"makeLocalStyles");function Ba({petId:e,roster:t,onAddPet:n,onPickPet:r}){return e===null?jsxRuntime.jsx(jn,{pets:t.pets,isPending:t.loading,isError:t.error!==null,onRetry:()=>{t.refresh();},onAddPet:n,selectedId:null,onSelect:r}):jsxRuntime.jsx(Wc,{petRef:e})}o(Ba,"TelevetVisitSimulator");function Wc({petRef:e}){let t=F(),n=ea(e);return jsxRuntime.jsx(reactNative.View,{style:t.stepFill,testID:"televet-simulator",children:jsxRuntime.jsxs(reactNative.ScrollView,{contentContainerStyle:t.list,children:[jsxRuntime.jsx(N,{title:ue.title}),jsxRuntime.jsx(w,{label:ue.create,onPress:n.create,kind:"secondary",disabled:n.busy,testID:"televet-simulator-create"}),n.visitLine!==null?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(v,{style:t.stateMessage,testID:"televet-simulator-visit",children:n.visitLine}),ta.map(r=>jsxRuntime.jsx(w,{label:ue.advance[r],onPress:()=>n.advance(r),kind:"secondary",disabled:n.busy,testID:`televet-simulator-advance-${r}`},r)),jsxRuntime.jsx(v,{style:t.stateMessage,children:ue.eventsNote}),na.map(r=>jsxRuntime.jsx(w,{label:ue.events[r],onPress:()=>n.raise(r),kind:"secondary",disabled:n.busy,testID:`televet-simulator-event-${r}`},r))]}):null,n.line===null?null:n.line.tone==="danger"?jsxRuntime.jsx(W,{message:n.line.text,testID:"televet-simulator-error"}):jsxRuntime.jsx(v,{style:t.stateMessage,accessibilityLiveRegion:"polite",testID:"televet-simulator-log",children:n.line.text})]})})}o(Wc,"SimulatorScreen");function xo(e){let{petRef:t,usState:n,controller:r,onBooked:i,onExit:l,onAddPet:a,onPickMedia:s,onAddToCalendar:d,onConfirmDiscard:u,onRequestLocation:p,locationStatus:g="unknown",onTriageReason:f,onStateInterest:y,primaryVet:k,onFindEmergencyVet:S,canJoinInApp:P=false,renderUnavailable:C,style:T,testID:E}=dt(e,["onBooked","onExit","onAddPet","onRequestLocation","onFindEmergencyVet"]),D=F(),h=_(),z=react.useMemo(()=>Ke(h),[h]),B=de(r),L=vt(),M=L.pets,K=M.length,be=react.useMemo(()=>({ownedPetCount:K}),[K]),[Q,ie]=react.useReducer((Z,Ts)=>$r(Z,Ts,be),void 0,()=>Wr({ownedPetCount:0},{petId:t??null,state:n??null})),O=react.useCallback(Z=>ie(Z),[]),[ye,xe]=react.useState(""),[j,it]=react.useState(null),[nn,$n]=react.useState(null),[at,Rt]=react.useState(false),[xt,Mo]=react.useState(false),[zo,is]=react.useState([]),[Kn,as]=react.useState(null),{draft:A}=Q,ae=Kr(Q),jo=react.useRef(A.state);jo.current!==A.state&&(jo.current=A.state,at&&Rt(false),xt&&Mo(false));let rn=Tr(A.state,B),Ho=At(B),st=Er(B),pe=Sr(A.state,B),Me=Dt(A.clinicianId,B),Yn=Me.refetch,ss=kr(B).data??null,Gn=Bt(B),Uo=Cr(B),_e=Qr(f??null),Wo=Zr(A.state,y??null).actionFor("no_licensed_vet"),Jn=n??null;react.useEffect(()=>{Jn&&!A.state&&O({type:"patch",patch:{state:Jn}});},[Jn,A.state,O]),react.useEffect(()=>{t&&!A.petId&&O({type:"patch",patch:{petId:t}});},[t,A.petId,O]);let Xn=M.length===1?M[0]?.petRef??null:null;react.useEffect(()=>{Xn&&!A.petId&&O({type:"patch",patch:{petId:Xn}});},[Xn,A.petId,O]);let qo=react.useRef(ae);qo.current=ae;let $o=react.useRef(0);react.useEffect(()=>{K!==$o.current&&($o.current=K,O({type:"goTo",step:qo.current}));},[K,O]);let Qn=pe.data?.[0]?.clinicianId??null;react.useEffect(()=>{Qn&&!A.clinicianId&&O({type:"patch",patch:{clinicianId:Qn}});},[Qn,A.clinicianId,O]);let ds=Wi({draft:A,hold:Gn,dispatch:O,setFailure:it,refetchSlots:Yn}),{submitBooking:us,confirm:cs}=Ui({draft:A,reasonText:ye,book:Uo,stateAttested:at,termsAttested:xt,cancellationPolicy:Ho.data??null,triage:_e,goTo:react.useCallback(Z=>O({type:"goTo",step:Z}),[O]),releaseSlot:react.useCallback(()=>{O({type:"patch",patch:Li}),Yn();},[O,Yn]),setFailure:it,setEmergency:$n,setBookedConsult:as,...i?{onBooked:i}:{}}),ps=rn.enabled&&rn.data!==null&&!rn.data.wellnessAvailable,fs=st.enabled&&st.data?.active===false||j==="not_entitled",{simulate:Ko,fundingRefused:Yo}=Zi(st,fs),ys=st.enabled&&st.data!==null,ms=to(ys),Go=An(zo.length),vs=ye.trim().length>0||!!A.slot,gs=B===null||j==="unavailable"||Ft(st)||Ft(rn),Jo={noState:!A.state,isPending:pe.enabled&&pe.isPending,isError:pe.isError,isEmpty:(pe.data?.length??0)===0,notEntitled:Yo},bs=ya(Jo),Xo={surfaceUnavailable:gs,notEntitled:Yo,policyBlocked:ps,triageOpen:_e.open,step:ae},hs=pa(Xo);return we()?jsxRuntime.jsxs(reactNative.View,{style:[D.screen,T],testID:E??"televet-booking",children:[jsxRuntime.jsx(mo,{step:ae,furthestIndex:Q.furthestIndex,canGoBack:!Ko&&(_e.open||qr(Q,be))&&ae!=="booked",isDirty:vs,onBack:()=>{if(_e.open){_e.close();return}_e.cancel(),O({type:"back"});},onClose:()=>l?.(),...u?{onConfirmDiscard:u}:{}}),Ko?jsxRuntime.jsx(Ba,{petId:A.petId,roster:L,onAddPet:a,onPickPet:Z=>O({type:"patch",patch:{petId:Z}})}):hs?jsxRuntime.jsx(fa,{state:Xo,petName:Fe(M,A.petId),...k?{primaryVet:k}:{},onFindEmergencyVet:S,stateInterest:Wo,...y?{onCheckAvailability:o(()=>O({type:"goTo",step:"clinician"}),"onCheckAvailability")}:{},onAcknowledgeEmergency:()=>{_e.acknowledge(ye),O({type:"next"});},...C?{renderUnavailable:C}:{}}):ae==="time"?jsxRuntime.jsx(Oa,{slots:Me.data??[],enabled:Me.enabled,isPending:Me.enabled&&Me.isPending&&Me.data===null,isError:Me.isError,busySlotId:Gn.isPending?Gn.variables:null,failure:j,selectedSlot:A.slot,nextOpening:ss,onPick:ds,onRetry:()=>Me.refetch(),onSeeOtherVets:()=>O({type:"goTo",step:"clinician"})}):ae==="review"?jsxRuntime.jsx(ko,{when:A.slot?ve(A.slot.startsAt):"",lengthMinutes:(A.slot?Sl(A.slot):null)??gt,petName:Fe(M,A.petId),reason:ye.trim(),clinician:pe.data?.find(Z=>Z.clinicianId===A.clinicianId)?.displayName??null,shareRecords:A.shareHealthRecords,stateCode:A.state,stateAttested:at,onToggleStateAttest:Rt,cancellationTerms:Ho.data?.summary??null,termsAttested:xt,onToggleTermsAttest:Mo,onToggleShare:Z=>O({type:"patch",patch:{shareHealthRecords:Z}}),canConfirm:Mt(A,ye),busy:Uo.isPending,failure:j,onConfirm:cs,emergency:nn,onAcknowledgeEmergency:()=>us(true),onSeeOtherVets:()=>O({type:"goTo",step:"clinician"}),mediaShortfall:Go,primaryVet:k,onFindEmergencyVet:S}):ae==="booked"?jsxRuntime.jsx(reactNative.View,{style:D.stepFill,testID:"televet-booking-booked",children:Kn?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(fo,{consult:Kn,petName:Fe(M,Kn.petId)??Fe(M,A.petId),onDone:()=>l?.(),canJoinInApp:P,...d?{onAddToCalendar:d}:{}}),jsxRuntime.jsx(Wt,{shortfall:Go,testIDPrefix:"televet-booked"})]}):null}):ae==="clinician"&&bs?jsxRuntime.jsx(ma,{state:Jo,cause:ms,locationStatus:g,...p?{onRequestLocation:p}:{},onRetry:()=>pe.refetch(),stateInterest:Wo,...C?{renderUnavailable:C}:{}}):ae==="clinician"?jsxRuntime.jsx(Ia,{clinicians:pe.data??[],isPending:pe.enabled&&pe.isPending,isError:pe.isError,selectedId:A.clinicianId,onRetry:()=>pe.refetch(),onSelect:Z=>{O({type:"patch",patch:{clinicianId:Z}}),O({type:"next"});}}):ae==="reason"?jsxRuntime.jsx(Aa,{value:ye,onChange:xe,media:zo,onChangeMedia:is,...s?{onPickMedia:s}:{},checking:_e.checking,onNext:()=>{_e.check(ye).then(Z=>{Z&&O({type:"next"});});}}):ae==="pet"?jsxRuntime.jsx(jn,{pets:M,isPending:L.loading,isError:L.error!==null,onRetry:()=>{L.refresh();},onAddPet:a,selectedId:A.petId,onSelect:Z=>{O({type:"patch",patch:{petId:Z}}),O({type:"next"});}}):jsxRuntime.jsx(reactNative.View,{style:z.marker,testID:`televet-booking-step-${ae}`})]}):jsxRuntime.jsx(reactNative.View,{style:[D.screen,T],testID:E??"televet-booking",children:jsxRuntime.jsx(reactNative.View,{style:D.stepFill,testID:"televet-booking-copy-unapproved",children:C?C():null})})}o(xo,"EverfurTelevetBooking");var Jc=2e4;function Hn(e=true,t=Jc){let[n,r]=react.useState(()=>Date.now());return react.useEffect(()=>{if(!e)return;r(Date.now());let i=setInterval(()=>r(Date.now()),t);return ()=>clearInterval(i)},[e,t]),n}o(Hn,"useNowMs");var I=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 La(e){switch(e){case "completed":return I.statusCompleted;case "cancelled_owner":case "cancelled_ops":return I.statusCancelled;case "no_show_owner":case "no_show_vet":return I.statusMissed;default:return null}}o(La,"televetVisitStatusNative");function Xt({onBack:e,testID:t}){let n=kt();return jsxRuntime.jsx(reactNative.View,{style:n.navRow,children:jsxRuntime.jsx(reactNative.Pressable,{onPress:e,accessibilityRole:"button",accessibilityLabel:Bn,testID:t,style:n.backTap,children:jsxRuntime.jsx(reactNative.View,{style:n.chevron,accessibilityElementsHidden:true,importantForAccessibility:"no"})})})}o(Xt,"TelevetVisitBackRow");function kt(){let e=_();return react.useMemo(()=>Zc(e),[e])}o(kt,"useVisitStyles");function Zc(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return reactNative.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.brandInk,transform:[{rotate:"45deg"}]},title:{...b(e,"medium"),color:t.brandInk,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:reactNative.StyleSheet.hairlineWidth,borderColor:t.brandInk,backgroundColor:t.surface},bookTitle:{...b(e,"medium"),color:t.brandInk,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.brandInk,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(Zc,"makeVisitStyles");function wo({consult:e,controller:t,onJoin:n,onReschedule:r,onCancelled:i,onBack:l,revision:a=0,nowMs:s,style:d}){let u=kt(),p=de(t),[g,f]=react.useState(0),y=Hl(e.consultId,p,a+g),k=At(p),S=Ul(e.consultId,p),{pets:P}=vt(),[C,T]=react.useState(false),[E,D]=react.useState(false),[h,z]=react.useState(null),B=y.isError&&y.error?.httpStatus===404,L=B?null:y.data??e,M=L!==null&&Je.has(L.status),K=Hn(!M),Q=wr(L,s??K),ie=L===null?null:Fe(P,L.petId),O=k.data?.summary.trim()||null,ye=react.useCallback(()=>{O&&(D(false),S.mutate(I.cancelReason,{onSuccess:o(Rt=>{T(false),z(Rt),f(xt=>xt+1),i?.(Rt);},"onSuccess"),onError:o(()=>D(true),"onError")}));},[O,S,i]);if(L===null)return jsxRuntime.jsxs(reactNative.View,{style:[u.screen,d],testID:"televet-consult-missing",children:[jsxRuntime.jsx(Xt,{onBack:l,testID:"televet-consult-back"}),jsxRuntime.jsx(N,{title:I.notFoundTitle,message:I.notFoundBody})]});let xe=L.status,j=xe==="cancelled_owner"||xe==="cancelled_ops",it=xe==="scheduled"||xe==="in_progress",nn=Pr(xe)&&h===null,$n=L.clinicianName??I.vetUnassigned,at=[ie,L.reasonText].filter(Boolean).join(" \xB7 ");return jsxRuntime.jsxs(reactNative.View,{style:[u.screen,d],testID:"televet-consult",children:[jsxRuntime.jsx(Xt,{onBack:l,testID:"televet-consult-back"}),jsxRuntime.jsxs(reactNative.ScrollView,{contentContainerStyle:u.body,children:[jsxRuntime.jsxs(reactNative.View,{style:u.visitCard,children:[jsxRuntime.jsx(v,{style:u.visitWhen,accessibilityRole:"header",testID:"televet-consult-when",children:ve(L.scheduledAt)}),jsxRuntime.jsxs(reactNative.View,{style:u.stack,children:[jsxRuntime.jsx(v,{style:u.visitWho,testID:"televet-consult-vet",children:$n}),at?jsxRuntime.jsx(v,{style:u.visitMeta,numberOfLines:2,children:at}):null]})]}),it&&h===null?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(w,{label:I.joinCta,disabled:!Q.ready,onPress:()=>n(L,ie),testID:"televet-consult-join"}),Q.ready?null:jsxRuntime.jsx(v,{style:u.reason,testID:"televet-consult-join-reason",children:Q.reason==="consult_over"?I.joinOverReason:I.joinDisabledReason}),nn&&r?jsxRuntime.jsx(w,{label:I.rescheduleCta,kind:"secondary",onPress:()=>r(L),testID:"televet-consult-reschedule"}):null]}):null,h?jsxRuntime.jsx(reactNative.View,{style:u.receipt,testID:"televet-consult-cancel-receipt",children:jsxRuntime.jsx(v,{style:u.noticeTitle,accessibilityLiveRegion:"polite",children:h.summary??I.phaseCancelled})}):j?jsxRuntime.jsxs(reactNative.View,{style:u.stack,testID:"televet-consult-cancelled",children:[jsxRuntime.jsx(v,{style:u.noticeTitle,accessibilityRole:"header",children:I.phaseCancelled}),jsxRuntime.jsx(v,{style:u.noticeBody,children:I.phaseCancelledBody})]}):null,nn?jsxRuntime.jsxs(reactNative.View,{style:u.stack,children:[O?jsxRuntime.jsx(v,{style:u.terms,accessibilityLiveRegion:"polite",testID:"televet-consult-cancellation-policy",children:O}):k.enabled&&k.isPending?jsxRuntime.jsx(reactNative.View,{testID:"televet-consult-cancellation-policy-loading",children:jsxRuntime.jsx(le,{height:42})}):jsxRuntime.jsx(N,{title:I.cancelPolicyErrorTitle,actionLabel:I.retryCta,onAction:()=>k.refetch(),testID:"televet-consult-cancellation-policy-error"}),C?jsxRuntime.jsxs(reactNative.View,{style:u.stack,testID:"televet-consult-cancel-confirm",children:[jsxRuntime.jsx(v,{style:u.noticeTitle,children:I.cancelConfirmTitle}),jsxRuntime.jsx(v,{style:u.noticeBody,children:I.cancelConfirmBody}),E?jsxRuntime.jsx(W,{message:I.cancelFailedTitle,testID:"televet-consult-cancel-failed"}):null,jsxRuntime.jsx(w,{label:I.cancelConfirmCta,kind:"danger",loading:S.isPending,onPress:ye,testID:"televet-consult-cancel-yes"}),jsxRuntime.jsx(w,{label:I.cancelKeepCta,kind:"secondary",disabled:S.isPending,onPress:()=>{T(false),D(false);},testID:"televet-consult-cancel-keep"})]}):jsxRuntime.jsx(w,{label:I.cancelCta,kind:"secondary",disabled:!O,onPress:()=>{D(false),T(true);},testID:"televet-consult-cancel"})]}):null,y.isError&&!B?jsxRuntime.jsx(N,{title:I.staleTitle,actionLabel:I.staleRetry,onAction:()=>y.refetch(),testID:"televet-consult-stale"}):null]})]})}o(wo,"TelevetConsultScreen");var Ye=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`:Ye.lobbyTitleNoName},"lobbyTitle"),lobbyPrep:o(e=>{let t=e?.trim()??"";return t.length>0?`Have ${t} nearby and somewhere well lit.`:Ye.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 za(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(za,"televetJoinRefusalNativeCopy");var ja="No way to join this visit yet.";function Ha(e){return e==="room_not_ready"||e==="unknown"}o(Ha,"televetJoinIsRetryable");var Ua=Symbol.for("@everfur/sdk/televet");function rp(){let e=globalThis,t=e[Ua];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[Ua]=n,n}o(rp,"televetGlobal");function Wn(){return rp().dailyRegistered}o(Wn,"isEverfurDailyRegistered");function Wa(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(Wa,"memoizeTelevetLoader");var $a=Object.freeze({status:"joining"});function Po(e,t){let[n,r]=react.useState(0),[i,l]=react.useState($a),a=react.useRef(null);react.useEffect(()=>{let d=t?.joinConsult;if(t===null||d===void 0){l(Object.freeze({status:"refused",refusal:"unavailable",reason:null}));return}let u=`${e}#${String(n)}`,p=a.current;if(p===null||p.key!==u){let f;try{f=d.call(t,e);}catch(y){f=Promise.reject(y);}p={key:u,promise:f},a.current=p;}let g=true;return l($a),p.promise.then(f=>{g&&(f.ok?l(Object.freeze({status:"ready",credential:f.value})):l(Object.freeze({status:"refused",refusal:pr(f.error),reason:cr(f.error)})));},()=>{g&&l(Object.freeze({status:"refused",refusal:"unknown",reason:null}));}),()=>{g=false;}},[e,t,n]);let s=react.useCallback(()=>r(d=>d+1),[]);return {state:i,retry:s}}o(Po,"useTelevetJoin");var ap=Symbol.for("@everfur/sdk/televet/recording-notice-receipt");function Ka(){let e=globalThis;return e[ap]??=new Map}o(Ka,"receipts");function Ya(e){let t=Ka();t.set(e,(t.get(e)??0)+1);}o(Ya,"markRecordingNoticeAccepted");function Ga(e){let t=Ka(),n=t.get(e)??0;n<=1?t.delete(e):t.set(e,n-1);}o(Ga,"clearRecordingNoticeAccepted");var Io=react.createContext(null);function Ja(e){let t=react.useContext(Io);react.useEffect(()=>{if(!(t===null||!e))return t.setFullBleed(true),()=>{t.setFullBleed(false);}},[t,e]);}o(Ja,"useTelevetModalFullBleed");var Xa=Wa(()=>import('@everfur/sdk/televet/call'));function Oo({consultId:e,...t}){let n=F(),r=vp();return r===null?jsxRuntime.jsx(reactNative.View,{style:[n.screen,t.style],testID:"televet-join-checking"}):jsxRuntime.jsx(yp,{consultId:e,...t,canHostCall:r},e)}o(Oo,"TelevetJoinScreen");function yp({canHostCall:e,onLeave:t,style:n,...r}){let[i,l]=react.useState(false);es(()=>(t(),true),!i);let a=react.useCallback(()=>{l(false),t();},[t]);return e?i?jsxRuntime.jsx(mp,{...r,onLeave:a,style:n}):jsxRuntime.jsx(Qa,{onContinue:()=>l(true),onLeave:t,style:n}):jsxRuntime.jsx(Za,{onLeave:t,style:n})}o(yp,"TelevetJoinGate");function mp({consultId:e,controller:t,clinicianName:n,petName:r,onLeave:i,style:l}){let a=F(),s=de(t),{state:d,retry:u}=Po(e,s),[p,g]=react.useState(null),[f,y]=react.useState(false),k=d.status==="ready";react.useEffect(()=>{if(!k||p!==null)return;let h=true;return Xa().then(z=>{h&&g(()=>z);},()=>{h&&y(true);}),()=>{h=false;}},[k,p]);let S=d.status==="ready"?d.credential.roomUrl:null,[P,C]=react.useState(null);react.useEffect(()=>{if(S!==null)return Ya(S),C(S),()=>{Ga(S);}},[S]);let T=k&&p!==null&&!f;es(()=>(T||i(),true),true);let E=d.status==="ready"?d.credential:null;if(Ja(T&&E!==null&&p.isUsableRoomCredential(E.roomUrl,E.token)&&p.loadEverfurDaily().available),d.status==="refused"||f){let h=d.status==="refused"?d.refusal:"unavailable";return jsxRuntime.jsxs(reactNative.View,{style:[a.screen,a.stepFill,l],testID:"televet-join-refused",children:[jsxRuntime.jsx(W,{message:za(h),testID:"televet-join-refused-message"}),Ha(h)&&d.status==="refused"?jsxRuntime.jsx(w,{label:c.retryCta,kind:"primary",onPress:u,testID:"televet-join-retry"}):null,jsxRuntime.jsx(w,{label:Ye.leaveCta,kind:"secondary",onPress:i,testID:"televet-join-leave"})]})}if(d.status==="joining"||p===null||P!==d.credential.roomUrl)return jsxRuntime.jsx(Qa,{busy:true,onLeave:i,style:l});let{EverfurVetCall:D}=p;return jsxRuntime.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:()=>jsxRuntime.jsx(Za,{onLeave:i,style:l}),style:l})}o(mp,"TelevetJoinRoom");function Qa({onContinue:e,onLeave:t,busy:n=false,style:r}){let i=F();return jsxRuntime.jsx(reactNative.View,{style:[i.screen,i.stepFill,r],children:jsxRuntime.jsxs(reactNative.View,{style:i.stateCard,testID:"everfur-vet-call-recording-notice",accessibilityState:{busy:n},children:[jsxRuntime.jsx(v,{style:i.stateTitle,accessibilityRole:"header",children:Ye.recordingNoticeTitle}),jsxRuntime.jsx(w,{label:Ye.recordingNoticeCta,kind:"primary",loading:n,onPress:()=>e?.(),testID:"everfur-vet-call-recording-continue"}),jsxRuntime.jsx(w,{label:Ye.leaveCta,kind:"secondary",onPress:t,testID:"everfur-vet-call-recording-leave"})]})})}o(Qa,"TelevetRecordingNotice");function Za({onLeave:e,style:t}){let n=F();return jsxRuntime.jsxs(reactNative.View,{style:[n.screen,n.stepFill,t],testID:"televet-join-call-unavailable",children:[jsxRuntime.jsx(W,{message:ja}),jsxRuntime.jsx(w,{label:Ye.leaveCta,kind:"secondary",onPress:e,testID:"televet-join-unavailable-leave"})]})}o(Za,"TelevetJoinUnavailable");function es(e,t){ut(e,t);let n=react.useRef(e);n.current=e,react.useEffect(()=>{if(!t)return;let r=reactNative.BackHandler.addEventListener("hardwareBackPress",()=>n.current());return ()=>{r.remove();}},[t]);}o(es,"useJoinBackPress");function vp(){let[e,t]=react.useState(()=>Wn()?null:false);return react.useEffect(()=>{let n=true;return Xa().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(vp,"useCanHostCall");function Do(e){let{consult:t,onRescheduled:n,onCancel:r,controller:i,style:l,testID:a}=dt(e,["onRescheduled","onCancel"]),s=F(),d=de(i),u=Dt(t?.clinicianId??null,d),p=Bt(d),g=Rr(t?.consultId??null,d),[f,y]=react.useState(null),k=react.useCallback(P=>{y(null),p.mutate(P.slotId,{onSuccess:o(()=>{g.mutate(P.slotId,{onSuccess:o(C=>n?.(C),"onSuccess"),onError:o(C=>y(ze(C).kind==="unavailable"?"unavailable":"failed"),"onError")});},"onSuccess"),onError:o(C=>y(ze(C).kind==="unavailable"?"unavailable":"taken"),"onError")});},[p,g,n]),S=p.isPending||g.isPending;return we()?t?jsxRuntime.jsxs(reactNative.View,{style:[s.screen,s.stepFill,l],testID:a??"televet-reschedule",children:[jsxRuntime.jsx(v,{tier:"compact",style:s.stepHelp,children:G(c.rescheduleFromTemplate,{when:ve(t.scheduledAt)})}),f==="taken"?jsxRuntime.jsx(W,{message:c.slotTaken}):null,f==="failed"?jsxRuntime.jsx(W,{message:c.rescheduleFailed}):null,f==="unavailable"?jsxRuntime.jsx(W,{message:c.bookingPausedTitle,testID:"televet-reschedule-unavailable"}):null,u.enabled?u.isPending?jsxRuntime.jsx(reactNative.View,{style:s.list,testID:"televet-reschedule-slots-loading",children:[0,1,2].map(P=>jsxRuntime.jsx(le,{height:48},P))}):u.isError?jsxRuntime.jsx(N,{title:c.slotsErrorTitle,actionLabel:c.retryCta,onAction:()=>u.refetch(),testID:"televet-reschedule-slots-error"}):(u.data??[]).length===0?jsxRuntime.jsx(reactNative.View,{testID:"televet-reschedule-empty",children:jsxRuntime.jsx(N,{title:c.noSlotsTitle})}):jsxRuntime.jsx($t,{slots:u.data??[],busySlotId:S?p.variables:null,onPick:k,rowTestIdPrefix:"televet-reschedule-slot",testID:"televet-reschedule-slots"}):jsxRuntime.jsx(reactNative.View,{testID:"televet-reschedule-paused",children:jsxRuntime.jsx(N,{title:c.bookingPausedTitle})}),jsxRuntime.jsx(w,{label:c.keepExistingCta,kind:"secondary",disabled:S,onPress:()=>r?.(),testID:"televet-reschedule-keep"})]}):jsxRuntime.jsx(reactNative.View,{style:[s.screen,s.list,l],testID:"televet-reschedule-loading",children:[0,1].map(P=>jsxRuntime.jsx(le,{height:48},P))}):jsxRuntime.jsx(reactNative.View,{style:[s.screen,s.stepFill,l],testID:"televet-reschedule-copy-unapproved"})}o(Do,"EverfurTelevetReschedule");function Bo({controller:e,onOpenVisit:t,onBook:n,onBack:r,revision:i=0,nowMs:l,style:a}){let s=kt(),d=de(e),u=Sn(d,i),{pets:p}=vt(),g=u.data??[],f=g.some(h=>!Je.has(h.status)),y=Hn(f),k=l??y,{upcoming:S,past:P}=react.useMemo(()=>Nt(g,k),[g,k]),C=u.enabled&&u.isPending,T=u.isError&&u.data===null,E=!C&&!T&&g.length>0,D=o(h=>{let z=La(h.status),B=[h.clinicianName,Fe(p,h.petId)].filter(Boolean).join(" \xB7 ");return jsxRuntime.jsxs(reactNative.View,{style:s.row,testID:`televet-visits-row-${h.consultId}`,children:[jsxRuntime.jsxs(reactNative.View,{style:s.rowHead,children:[jsxRuntime.jsx(v,{style:s.when,children:Mi(h.scheduledAt)}),z?jsxRuntime.jsx(v,{style:s.status,testID:`televet-visits-status-${h.consultId}`,children:z}):null]}),B?jsxRuntime.jsx(v,{style:s.meta,children:B}):null,h.status==="completed"?null:jsxRuntime.jsx(w,{label:I.manageCta,kind:"secondary",onPress:()=>t(h),testID:`televet-visits-open-${h.consultId}`})]},h.consultId)},"renderRow");return jsxRuntime.jsxs(reactNative.View,{style:[s.screen,a],testID:"televet-visits",children:[jsxRuntime.jsx(Xt,{onBack:r,testID:"televet-visits-back"}),jsxRuntime.jsxs(reactNative.ScrollView,{contentContainerStyle:s.body,children:[E?null:jsxRuntime.jsx(v,{style:s.title,accessibilityRole:"header",children:I.pastTitle}),T?jsxRuntime.jsxs(reactNative.View,{style:s.list,children:[jsxRuntime.jsx(N,{title:I.loadErrorTitle,actionLabel:I.retryCta,onAction:()=>u.refetch(),testID:"televet-visits-error"}),n?jsxRuntime.jsx(ts,{onBook:n}):null]}):C?jsxRuntime.jsx(reactNative.View,{style:s.list,testID:"televet-visits-loading",children:[0,1,2].map(h=>jsxRuntime.jsx(le,{height:72},h))}):g.length===0?jsxRuntime.jsxs(reactNative.View,{style:s.list,testID:"televet-visits-empty",children:[jsxRuntime.jsx(N,{title:I.emptyTitle}),n?jsxRuntime.jsx(w,{label:I.bookCta,onPress:n,testID:"televet-visits-book"}):null]}):jsxRuntime.jsxs(reactNative.View,{style:s.list,children:[S.length>0?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(v,{style:s.title,accessibilityRole:"header",children:I.upcomingTitle}),jsxRuntime.jsx(reactNative.View,{style:s.list,testID:"televet-visits-upcoming",children:S.map(D)})]}):null,n?jsxRuntime.jsx(ts,{onBook:n}):null,jsxRuntime.jsx(v,{style:s.title,accessibilityRole:"header",children:I.pastTitle}),P.length>0?jsxRuntime.jsx(reactNative.View,{style:s.list,testID:"televet-visits-past",children:P.map(D)}):null]})]})]})}o(Bo,"TelevetVisitsScreen");function ts({onBook:e}){let t=kt();return jsxRuntime.jsxs(reactNative.View,{style:t.bookCard,testID:"televet-visits-book-card",children:[jsxRuntime.jsx(v,{style:t.bookTitle,children:I.bookCardTitle}),jsxRuntime.jsx(v,{style:t.bookSubtitle,children:I.bookCardSubtitle}),jsxRuntime.jsx(w,{label:I.bookCta,kind:"primary",onPress:e,testID:"televet-visits-book"})]})}o(ts,"BookCard");var Fo=Object.freeze({name:"home"}),xp=Object.freeze({name:"visits"}),_p=Object.freeze({name:"booking"});function No(e){let t=e.visitRef?.trim()??"";return t.length>0?Object.freeze({name:"visit",visitRef:t,intent:e.intent??null}):Fo}o(No,"televetScreenForRequest");function wp(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(wp,"navReducer");function os(e){let{style:t,renderPending:n,...r}=dt(e,["onExit","onBooked","onAddPet","onRequestLocation","onFindEmergencyVet"]);return jsxRuntime.jsx(ii,{capability:"televet",style:t,...n?{renderPending:n}:{},children:jsxRuntime.jsx(Pp,{...r,style:t})})}o(os,"EverfurTelevetFlow");function Pp({petRef:e,usState:t,controller:n,onBooked:r,onExit:i,onAddPet:l,onPickMedia:a,onAddToCalendar:s,onConfirmDiscard:d,onRequestLocation:u,locationStatus:p,primaryVet:g,onFindEmergencyVet:f,onTriageReason:y,canJoinInApp:k=false,renderUnavailable:S,initialScreen:P,style:C}){let T=F(),[E,D]=react.useReducer(wp,P??Fo,j=>Object.freeze({stack:Object.freeze([j])})),h=E.stack[E.stack.length-1]??Fo,z=E.stack.length,[B,L]=react.useState(0),M=react.useCallback(()=>L(j=>j+1),[]),K=react.useCallback(()=>z<=1||h.name==="call"||h.name==="booking"?false:(D({type:"pop"}),true),[z,h.name]);react.useEffect(()=>{let j=reactNative.BackHandler.addEventListener("hardwareBackPress",K);return ()=>{j.remove();}},[K]),ut(K);let be=react.useCallback(()=>S?S():jsxRuntime.jsx(reactNative.View,{style:T.list,testID:"televet-unavailable",children:we()?jsxRuntime.jsx(N,{title:c.bookingPausedTitle}):null}),[S,T.list]),Q=react.useCallback(()=>{z>1?D({type:"pop"}):i?.();},[z,i]),ie=o(j=>D({type:"push",screen:j}),"push"),O=react.useCallback(j=>D({type:"land",screen:j==="visits"?xp:_p}),[]),ye=jsxRuntime.jsx(xo,{...e!==void 0?{petRef:e}:{},...t!==void 0?{usState:t}:{},...n?{controller:n}:{},onBooked:j=>{M(),r?.(j);},onExit:Q,...l?{onAddPet:l}:{},...a?{onPickMedia:a}:{},...s?{onAddToCalendar:s}:{},...d?{onConfirmDiscard:d}:{},...u?{onRequestLocation:u}:{},...p?{locationStatus:p}:{},...g?{primaryVet:g}:{},...f?{onFindEmergencyVet:f}:{},...y?{onTriageReason:y}:{},canJoinInApp:k,renderUnavailable:be,style:C}),xe=jsxRuntime.jsx(Bo,{...n?{controller:n}:{},revision:B,onOpenVisit:j=>ie({name:"consult",consult:j}),onBook:()=>ie({name:"booking"}),onBack:Q,style:C});switch(h.name){case "home":return jsxRuntime.jsx(Ip,{controller:n,onLand:O,style:C});case "booking":return ye;case "visits":case "visit":return xe;case "consult":return jsxRuntime.jsx(wo,{consult:h.consult,...n?{controller:n}:{},revision:B,onJoin:(j,it)=>ie({name:"call",consultId:j.consultId,clinicianName:j.clinicianName,petName:it}),onReschedule:j=>ie({name:"reschedule",consult:j}),onCancelled:M,onBack:Q,style:C});case "reschedule":return jsxRuntime.jsx(Do,{consult:h.consult,...n?{controller:n}:{},onRescheduled:()=>{M(),D({type:"pop"});},onCancel:()=>D({type:"pop"}),style:C});case "call":return jsxRuntime.jsx(Oo,{consultId:h.consultId,...n?{controller:n}:{},...h.clinicianName!==void 0?{clinicianName:h.clinicianName}:{},...h.petName!==void 0?{petName:h.petName}:{},onLeave:()=>{M(),Q();},style:C});default:return on(h)}}o(Pp,"TelevetFlowBody");function Ip({controller:e,onLand:t,style:n}){let r=F(),i=de(e),l=Wl(i);return react.useEffect(()=>{l!=="pending"&&t(l);},[l,t]),jsxRuntime.jsxs(reactNative.View,{style:[r.screen,r.list,n],testID:"televet-landing-loading",children:[jsxRuntime.jsx(le,{height:72}),jsxRuntime.jsx(le,{height:72})]})}o(Ip,"TelevetLandingScreen");var Lo=os;function Vp({request:e,onClose:t}){let n=_(),r=reactNativeSafeAreaContext.useSafeAreaInsets(),i=react.useMemo(()=>el(),[]),l=react.useCallback(()=>{i.dispatch()||t();},[i,t]),[a,s]=react.useState(false),d=react.useMemo(()=>({setFullBleed:s}),[]),u=react.useMemo(()=>No(e),[e]);return jsxRuntime.jsx(reactNative.Modal,{visible:true,animationType:n.motion.reducedMotion?"none":"slide",presentationStyle:"fullScreen",onRequestClose:l,children:jsxRuntime.jsx(reactNative.View,{testID:"everfur-televet-modal",style:[ls.root,{backgroundColor:n.color.surface},a?null:{paddingTop:r.top,paddingBottom:r.bottom}],children:jsxRuntime.jsx(er.Provider,{value:i,children:jsxRuntime.jsx(Io.Provider,{value:d,children:jsxRuntime.jsx(Lo,{...e.petRef!==void 0?{petRef:e.petRef}:{},...e.usState!==void 0?{usState:e.usState}:{},initialScreen:u,onExit:t,canJoinInApp:Wn(),style:ls.root})})})})})}o(Vp,"EverfurTelevetModal");var ls=reactNative.StyleSheet.create({root:{flex:1}});exports.BACK_LABEL=Bn;exports.CANCELLATION_POLICY_VERSION_MAX=yn;exports.CANCEL_REASON_MAX=vn;exports.CONSULT_KINDS=El;exports.CONSULT_MINUTES=gt;exports.CONSULT_STATUSES=Tl;exports.EverfurTelevet=Lo;exports.EverfurTelevetBooking=xo;exports.EverfurTelevetFlow=os;exports.EverfurTelevetModal=Vp;exports.EverfurTelevetReschedule=Do;exports.MEDIA_REFS_MAX=mn;exports.NO_MEDIA_SHORTFALL=jt;exports.REASON_TEXT_MAX=Ie;exports.TELEVET_BOOKING_BASE=He;exports.TELEVET_BOOKING_COPY=c;exports.TELEVET_BOOKING_STEPS=We;exports.TELEVET_CONSULT_PAGE_LIMIT=Bl;exports.TELEVET_JOIN_CLOSES_MINUTES_AFTER=_r;exports.TELEVET_JOIN_OPENS_MINUTES_BEFORE=xr;exports.TERMINAL_CONSULT_STATUSES=Je;exports.TelevetBookedScreen=fo;exports.TelevetBookingChrome=mo;exports.TelevetClinicianEmptyState=ca;exports.TelevetConsentCheckbox=Kt;exports.TelevetConsultScreen=wo;exports.TelevetDayStrip=bo;exports.TelevetEarlyEmergency=ua;exports.TelevetEmergencyExits=Ut;exports.TelevetEntitlementInterestState=ec;exports.TelevetIntakeMedia=go;exports.TelevetJoinScreen=Oo;exports.TelevetMediaDropNotice=Wt;exports.TelevetSlotPicker=$t;exports.TelevetStateInterestAction=so;exports.TelevetSummaryCard=Eo;exports.TelevetSummaryRow=ot;exports.TelevetVisitsScreen=Bo;exports.attestation=Gr;exports.canConfirm=Mt;exports.canManageTelevetVisit=Pr;exports.createTelevetBookingController=gr;exports.currentStep=Kr;exports.emptyTelevetDraft=Bi;exports.formatVisitRange=wu;exports.formatWhen=Vi;exports.formatWhenWithDay=ve;exports.hasPreviousStep=qr;exports.initialTelevetBookingState=Wr;exports.isHoldExpired=On;exports.isMediaShortfallEmpty=no;exports.isSkipped=Pn;exports.isTelevetBookingCopyReady=we;exports.isWellFormedStateCode=he;exports.mediaShortfallFromUnsentPicks=An;exports.parseVetCallCredential=ur;exports.splitTelevetVisits=Nt;exports.televetBookingKey=Yr;exports.televetBookingReducer=$r;exports.televetBookingRefusal=ze;exports.televetCancelCall=Dl;exports.televetConsultCalendarKey=va;exports.televetConsultCall=bn;exports.televetDaysFromSlots=Vn;exports.televetEmptyRosterCause=to;exports.televetEmptyRosterView=eo;exports.televetHoldCall=Il;exports.televetJoinCall=Al;exports.televetJoinOpensAtMs=Ld;exports.televetJoinReadiness=wr;exports.televetMediaShortfallLines=ro;exports.televetRescheduleCall=Ol;exports.televetScreenForRequest=No;exports.useEarlyTriage=Qr;exports.useStateInterest=Zr;exports.useTelevetBookConsult=Cr;exports.useTelevetBookingAvailable=Fd;exports.useTelevetBookingController=de;exports.useTelevetBookingEntitlement=Er;exports.useTelevetCancellationPolicy=At;exports.useTelevetClinicians=Sr;exports.useTelevetHoldSlot=Bt;exports.useTelevetJoin=Po;exports.useTelevetNextSlot=kr;exports.useTelevetRescheduleConsult=Rr;exports.useTelevetSlots=Dt;exports.useTelevetStatePolicy=Tr;exports.validateBookingBody=Fl;exports.vetCallJoinReason=cr;exports.vetCallJoinRefusal=pr;exports.withUnsentPicks=Nu;
|
|
1
|
+
'use strict';var react=require('react'),reactNative=require('react-native'),zod=require('zod'),jsxRuntime=require('react/jsx-runtime'),reactNativeSafeAreaContext=require('react-native-safe-area-context');var Fu=Object.defineProperty;var o=(e,t)=>Fu(e,"name",{value:t,configurable:true});function sr(e){throw new Error(`assertNever: unhandled discriminated-union member ${JSON.stringify(e)}`)}o(sr,"assertNever");function Li(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(Li,"errorFrame");function so(e){let t=globalThis.console;try{t?.error?.("[everfur] A host callback threw; the SDK ignored it.",e);}catch{}}o(so,"reportHostFailure");function Mu(e){return (typeof e=="object"||typeof e=="function")&&e!==null&&typeof e.then=="function"}o(Mu,"isThenable");function dr(e,...t){if(typeof e=="function")try{let n=e(...t);return Mu(n)&&Promise.resolve(n).then(void 0,so),n}catch(n){so(n);return}}o(dr,"callHost");var Bi=new WeakMap;function zu(e){if(typeof e!="function")return;let t=Bi.get(e);if(t!==void 0)return t;let n=o((...r)=>{dr(e,...r);},"guarded");return Bi.set(e,n),n}o(zu,"guardHost");function Yt(e,t){let n=null;for(let r of t){let i=e[r];typeof i=="function"&&(n??={...e},n[r]=zu(i));}return n??e}o(Yt,"guardHostProps");function ur(e,...t){let n;try{n=e(...t);}catch(r){return so(r),Promise.resolve({ok:false,error:r})}return Promise.resolve(n).then(r=>({ok:true,value:r}),r=>({ok:false,error:r}))}o(ur,"callHostAsync");function Mi(){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(Mi,"createTelevetBackChannel");var uo=react.createContext(null);function Gt(e,t=true){let n=react.useContext(uo),r=react.useRef(e);r.current=e,react.useEffect(()=>{if(!(n===null||!t))return n.register(()=>r.current())},[n,t]);}o(Gt,"useTelevetBackChannel");var m=o(e=>e,"DRAFT"),$u=["[PLACEHOLDER","[PLAN NAME]","[LINK]","[Last]","TODO","TBD"];function qu(e){return $u.some(t=>e.toUpperCase().includes(t.toUpperCase()))}o(qu,"isPlaceholderCopy");function H(e,t){let n=e;for(let[r,i]of Object.entries(t))n=n.split(`{${r}}`).join(i);return n}o(H,"fill");var p=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"),licensedPillTemplate:m("Licensed in {state}"),reviewsLabel:m("reviews"),rescheduleFromTemplate:m("Moving your visit on {when}"),rescheduleFailed:m("That did not move. Your original time is unchanged."),rescheduleStepLabel:m("Reschedule"),rescheduleTitleTemplate:m("Pick a new time for {pet}"),rescheduleNowLabel:m("Now"),rescheduleMoveTemplate:m("Move to {when}"),rescheduleMoving:m("Moving\u2026"),rescheduleKeepLabel:m("Keep the visit as it is"),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"),petFallback:"your pet",whereTitleTemplate:m("Where will {pet} be during the visit?"),whereLeadTemplate:m("Pick where {pronoun} be for the call, not where you live. It decides what the vet can do."),wherePronounFallback:"they\u2019ll",whereFormLabelTemplate:m("Where {pet} will be"),whereLegend:m("State"),wherePrescribeMetaTemplate:m("Video visit, and prescriptions if {pet} needs them"),whereWellnessMeta:m("Wellness visit: advice and a care plan, no prescriptions yet"),whereAnotherState:m("Another state"),whereWhichState:m("Which state?"),whereLicensedTemplate:m("{vet} is licensed in {state}, so a prescription can be part of {pet}\u2019s plan."),whereAskEveryTime:m("We ask every time: state rules require it."),issuesTitleTemplate:m("What\u2019s going on with {pet}?"),issuesHint:m("Pick as many as you like."),issuesFormLabel:m("What\u2019s going on"),issuesLegend:m("Main issues"),issuesPickOne:m("Pick at least one. Not sure? Choose Something else."),otherIssue:m("Something else"),describeHeadingTemplate:m("Tell {vet} what you\u2019re seeing"),describeFieldLabel:m("What you\u2019re seeing"),emergencyCheck:Object.freeze({titleTemplate:m("Is {pet} doing any of these right now?"),lead:m("A scheduled video visit isn\u2019t the right place for an emergency."),signs:Object.freeze([m("Trouble breathing, or blue, grey or very pale gums"),m("Collapsed, or can\u2019t stand up"),m("A seizure"),m("Ate something toxic, like grapes, chocolate, xylitol or medicine"),m("A swollen, hard belly, or retching with nothing coming up"),m("Bleeding that won\u2019t stop"),m("Straining to pee with nothing coming out")]),formLabel:m("Emergency check"),legend:m("Any of these now?"),noneCta:m("No, none of these"),someCta:m("Yes, at least one")}),timeHeading:m("Pick a time"),timeMorning:m("Morning"),timeAfternoon:m("Afternoon"),timeEvening:m("Evening"),timeLegendTemplate:m("Time on {day}"),dayLegend:m("Day"),reviewHeading:m("Does this look right?"),summaryWhere:m("Where"),changeCta:m("Change"),whereAttestTemplate:m("{pet} and I will be in {state} during the visit."),attestBoth:m("Check both boxes to book the visit."),bookedStepLabel:m("Booked"),bookedTitleTemplate:m("You\u2019re booked with {vet}"),bookedLeadTemplate:m("{when}, for {pet}."),footnote:m("Video visits are with a licensed veterinarian. Prescriptions where allowed, starting with California. In an emergency, go to the nearest emergency animal hospital."),rescheduleNavTitle:m("Change your visit"),close:m("Close"),continueCta:m("Continue"),petSelectTitle:m("Who is this visit for?"),addPetCta:m("Add a pet"),addAnotherPetCta:m("Add another 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("When it started, what\u2019s changed, what you\u2019ve tried. Anything helps."),addPhotoCta:m("Add photos or videos"),addPhotoMeta:m("Optional. A close-up in good light helps."),removePhotoLabel:m("Remove photo"),summaryPet:m("Pet"),summaryVet:m("Vet"),summaryWhen:m("When"),summaryLength:m("Length"),summaryReason:m("About"),summaryLengthTemplate:m("{n} minutes"),confirmCta:m("Book the visit"),confirmBusy:m("Booking\u2026"),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."),recordsPromiseTemplate:m("{pet}\u2019s records and your notes go to {vet} ahead of the call."),recordsPhotoPromiseTemplate:m("{pet}\u2019s records, your notes and the photo go to {vet} ahead of the call."),stepsLabel:m("What happens next"),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 can\u2019t wait for a scheduled visit."),keepBookingCta:m("I\u2019ve handled this, continue booking"),lede:m("What you\u2019re describing is the kind of thing vets want to see in person, now. Call one of these first."),ledeWithoutExits:m("What you\u2019re describing is the kind of thing vets want to see in person, now."),exitPrimaryVetTitle:m("Call {petName}\u2019s regular vet"),exitFindErTitle:m("Find an emergency vet near you"),startCallHint:m("Starts a phone call"),poisonControl:m("ASPCA Animal Poison Control"),poisonControlDetail:m("(888) 426-4435 \xB7 a fee may apply"),poisonControlTel:"tel:+18884264435"}),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 zi(e=p){return typeof e=="string"?[e]:typeof e!="object"||e===null?[]:Object.values(e).flatMap(t=>zi(t))}o(zi,"televetBookingCopyValues");function ot(){return zi().every(e=>e.trim().length>0&&!qu(e))}o(ot,"isTelevetBookingCopyReady");var co=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(co.map(e=>e.wireCode));var Yu=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"}),Hi=Object.freeze(co.map(e=>Object.freeze({wireCode:e.wireCode,envelope:e.envelope,retryable:e.retryable,normalized:Yu[e.wireCode]}))),Gu=new Map(Hi.map(e=>[e.envelope+e.wireCode.toUpperCase(),e])),Ju=Object.freeze(["http_envelope",...[...new Set(Hi.map(e=>e.envelope))].filter(e=>e!=="http_envelope").sort()]);function cr(e,t){if(typeof e!="string")return;let n=e.trim().toUpperCase();if(n.length!==0)for(let r of [t??"http_envelope",...Ju]){let i=Gu.get(r+n);if(i)return i}}o(cr,"contractErrorFor");function Xu(e){return e.envelope==="sse_frame"?`/errors#sse-${e.wireCode}`:e.envelope==="oauth_error"?`/errors#oauth-${e.wireCode}`:`/errors#${e.wireCode}`}o(Xu,"contractDocUrl");function Ui(e){return null}o(Ui,"publishedDocUrl");var Qu=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 Wi(e){return Qu[e]}o(Wi,"categoryFor");function $i(e){let t=cr(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($i,"fromWire");var Zu=new Set(["streamTimeout","rateLimited","internalError","upstreamLlmTimeout","streamIncomplete"]);function po(e){return Zu.has(e)}o(po,"isAutoRetryable");var ec=new Set(["serviceUnavailable","conflict","idempotencyInFlight"]);function qi(e){return po(e)||ec.has(e)}o(qi,"isRetryableCode");var tc=500,fo=8e3,Ki=4;function Yi(e,t=Math.random){let n=Math.max(0,e),r=Math.min(tc*2**n,fo);return Math.floor(t()*r)}o(Yi,"backoffDelayMs");var nc=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 yo(e){return nc[e]}o(yo,"userFacingError");function Gi(e,t,n){Object.defineProperty(e,t,{value:n,enumerable:false,writable:false,configurable:false});}o(Gi,"defineHidden");var rc=/^[a-z][a-z0-9_]{0,63}$/;function ce(e,t){let n=cr(t?.wireCode,t?.wireEnvelope),r={code:e,category:Wi(e),retryable:t?.retryable??qi(e),displayMessage:yo(e)};if(t?.httpStatus!==void 0&&(r.httpStatus=t.httpStatus),t?.requestId&&(r.requestId=t.requestId),typeof t?.reasonCode=="string"&&rc.test(t.reasonCode)&&(r.reasonCode=t.reasonCode),n);return t?.wireMessage&&Gi(r,"wireMessage",t.wireMessage),t?.raw!==void 0&&t.raw!==null&&Gi(r,"raw",t.raw),Object.freeze(r)}o(ce,"makeEverfurError");function U(e,t){return Object.freeze(t===void 0?{ok:true,value:e}:{ok:true,value:e,warning:t})}o(U,"ok");function V(e){return Object.freeze({ok:false,error:e})}o(V,"err");var pr=class pr extends Error{constructor(t,n){super(n),this.name="EverfurConfigError",this.kind=t,Object.setPrototypeOf(this,pr.prototype);}};o(pr,"EverfurConfigError");var yn=pr;function oc(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(oc,"authHeaders");function mn(e,t){return {...e,headers:{...lc(e.headers),...oc(t)}}}o(mn,"withAuthHeaders");function lc(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(lc,"stripAuthHeaders");async function Ji(e,t){if(t.mode==="anonymous")return t.transport.request(mn(e,{mode:"anonymous",publishableKey:t.publishableKey,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));let n;try{n=await t.identity.currentToken();}catch{return V(mo())}let r=await t.transport.request(mn(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 V(mo())}let l=await t.transport.request(mn(e,{mode:"personalized",token:i,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));return !l.ok&&l.error.httpStatus===401?V(mo(l.error.httpStatus)):l}o(Ji,"authedSend");function mo(e){return ce("authRejected",{retryable:false,...e!==void 0?{httpStatus:e}:{}})}o(mo,"authRejectedError");function Xi(e){return ce("internalError",{retryable:true,wireMessage:ic(e)})}o(Xi,"networkError");function ic(e){return e instanceof Error?e.message:typeof e=="string"?e:"network request failed"}o(ic,"describeCause");var ac=3e4,sc=fo*2,dc="idempotency-key",uc=new Set(["POST","PUT","PATCH","DELETE"]),cc=Object.freeze({onEvent(){}}),pc=Object.freeze({setTimeout:o((e,t)=>setTimeout(e,t),"setTimeout"),clearTimeout:o(e=>clearTimeout(e),"clearTimeout"),now:o(()=>Date.now(),"now")});function fc(e){let t=e.trim().replace(/[^A-Za-z0-9_.:-]/g,"-");return t.length===0?null:`efs_${t}`.slice(0,128)}o(fc,"seededIdempotencyKey");function Pt(e){let t=e.observer??cc,n=e.timers??pc,r=e.rng??Math.random,i=e.sleep??((g,v)=>Rc(g,n,v)),l=e.maxAttempts??Ki,a=e.unaryTimeoutMs??ac,s=e.newIdempotencyKey??go(),u=o(g=>{try{t.onEvent(g);}catch{}},"emit");async function d(g,v,k){let T=k?.maxAttempts,w=Math.max(1,T??l),x=k?.idempotent??uc.has(v.method),R=k?.idempotencyKey===void 0?null:fc(k.idempotencyKey),_=x?R??s():null,E=yc(v,_),S=0;for(;;){let P=o(O=>Object.freeze({call:g,method:v.method,path:v.path,attempt:S,..._?{idempotencyKey:_}:{},...O}),"stamp");u(P({phase:"attempt"}));let L=Cc(a,n),J=xc(L.signal,v.signal),C;try{C=await Ji({...E,signal:J.signal},e.auth);}catch(O){C=V(Xi(O));}finally{J.dispose(),L.cancel();}if(C.ok)return u(P({phase:"settled",ok:true,reason:"ok"})),C;let h=C.error,A=gc(h,S,{maxAttempts:w,rng:r,now:n.now(),aborted:v.signal?.aborted===true,...T!==void 0?{perCallMaxAttempts:T}:{},...e.errorPolicy!==void 0?{policy:e.errorPolicy}:{}}),I={ok:false,code:h.code,reason:A.reason,...h.httpStatus!==void 0?{httpStatus:h.httpStatus}:{},...h.requestId!==void 0?{requestId:h.requestId}:{}};if(!A.retry)return u(P({phase:"settled",...I})),V(h);if(u(P({phase:"retry",...I,delayMs:A.delayMs})),await i(A.delayMs,v.signal),v.signal?.aborted===true)return u(P({phase:"settled",...I,reason:"aborted"})),V(h);S+=1;}}o(d,"send");async function c(g){return mn(g,await Sc(e.auth))}o(c,"authorize");async function*y(g,v,k){u(Object.freeze({call:g,phase:"stream.open",method:v.method,path:v.path,attempt:0}));try{yield*e.auth.transport.stream(v,k);}catch{yield Li({code:"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null,serverRequestId:null});}}return o(y,"stream"),Object.freeze({send:d,authorize:c,stream:y})}o(Pt,"createRequestFunnel");function yc(e,t){let n={};for(let[r,i]of Object.entries(e.headers??{}))r.toLowerCase()!==dc&&(n[r]=i);return t!==null&&(n["Idempotency-Key"]=t),{...e,headers:n}}o(yc,"assembleHeaders");function go(){let e=0;return ()=>`efk_${Date.now().toString(36)}_${(e++).toString(36)}_${Math.random().toString(36).slice(2,12)}`}o(go,"defaultIdempotencyKeyFactory");var mc=10;function gc(e,t,n){if(n.aborted)return {retry:false,reason:"aborted"};let r=vc(e);if(r==="quota")return {retry:false,reason:"daily-quota-exhausted"};if(r!=="burst"&&!po(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(mc,Math.floor(d)))},"policyCeiling"),s=n.perCallMaxAttempts??a()??n.maxAttempts;if(t+1>=s)return {retry:false,reason:"attempts-exhausted"};let u=bc(e,n.now);return u!==null?u>sc?{retry:false,reason:"server-reset-beyond-budget"}:{retry:true,reason:i,delayMs:u}:{retry:true,reason:i,delayMs:Yi(t,n.rng)}}o(gc,"decideRetry");function vc(e){let t=e.code==="unknown"?$i(kc(e.raw)):e.code;return t==="quotaExceeded"?"quota":t==="rateLimited"||e.httpStatus===429?"burst":null}o(vc,"throttleKind");function bc(e,t){let n=Tc(e.raw);if(n!==null){let i=n-t;return i>0?i:0}let r=hc(e.raw);return r===null?null:Math.round(r*1e3)}o(bc,"retryOverrideMs");function hc(e){for(let t of vo(e)){let n=t.retry_after_seconds;if(typeof n=="number"&&Number.isFinite(n)&&n>=0)return n}return null}o(hc,"findRetryAfterSeconds");function Tc(e){for(let t of vo(e)){let n=t.resets_at,r=Ec(n);if(r!==null)return r}return null}o(Tc,"findResetsAt");function vo(e){if(!Qi(e))return [];let t=[e];for(let n of ["error","detail"]){let r=e[n];Qi(r)&&t.push(r);}return t}o(vo,"candidateScopes");function Ec(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(Ec,"parseInstantMs");function kc(e){for(let t of vo(e)){let n=t.code;if(typeof n=="string"&&n.length>0)return n}return null}o(kc,"rawWireCode");function Qi(e){return typeof e=="object"&&e!==null}o(Qi,"isRecord");async function Sc(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(Sc,"resolveDeviceAuth");function Cc(e,t){let n=new AbortController,r=t.setTimeout(()=>n.abort(),e);return {signal:n.signal,cancel:o(()=>t.clearTimeout(r),"cancel")}}o(Cc,"boundedSignal");function xc(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(xc,"mergeSignals");function Rc(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(Rc,"delayAbortable");var wc=Object.freeze(["image/jpeg","image/png","image/webp","image/heic","image/heif","application/pdf","text/csv","video/mp4","video/quicktime"]),Zi=25*1024*1024,_c=200*1024*1024,Pc=[[".jpg","image/jpeg"],[".jpeg","image/jpeg"],[".png","image/png"],[".webp","image/webp"],[".heic","image/heic"],[".heif","image/heif"],[".pdf","application/pdf"],[".csv","text/csv"],[".mp4","video/mp4"],[".mov","video/quicktime"]];function fr(e,t){let n=(t??"").trim().toLowerCase();if(n==="image/jpg")return "image/jpeg";if(wc.includes(n))return n;if(n.length>0)return null;let r=e.toLowerCase();return Pc.find(([i])=>r.endsWith(i))?.[1]??null}o(fr,"televetAttachmentContentType");function ea(e){let t=fr(e.filename,e.mimeType);if(t===null)return "type";if(!Number.isFinite(e.fileSize)||e.fileSize<=0)return "unreadable";let n=t.startsWith("video/")?_c:Zi;return e.fileSize<=n?null:"size"}o(ea,"televetAttachmentRefusal");function ta(e){if(typeof e!="object"||e===null)return null;let t=e,n=o(u=>typeof u=="string"&&u.length>0?u:null,"str"),r=o(u=>typeof u=="number"&&Number.isFinite(u)?u:null,"num"),i=n(t.upload_url),l=n(t.s3_key);if(i===null||l===null)return null;let a={},s=t.upload_fields;if(typeof s=="object"&&s!==null)for(let[u,d]of Object.entries(s))typeof d=="string"&&(a[u]=d);return Object.freeze({upload_id:n(t.upload_id)??"",upload_url:i,upload_fields:Object.freeze(a),expires_in_seconds:r(t.expires_in_seconds)??0,max_content_length:r(t.max_content_length)??Zi,s3_key:l,purpose:n(t.purpose)})}o(ta,"parseTelevetAttachmentPolicy");function Ic(e){if(typeof e!="object"||e===null)return null;let t=[e,e.detail,e.error];for(let n of t)if(!(typeof n!="object"||n===null))for(let r of ["error","code"]){let i=n[r];if(typeof i=="string"&&i.length>0)return i}return null}o(Ic,"wireCodeOf");function na(e){if(e.httpStatus===404)return "dark";if(e.httpStatus===400){let t=Ic(e.raw);if(t==="FILE_TOO_LARGE")return "size";if(t==="INVALID_CONTENT_TYPE")return "type"}return "failed"}o(na,"televetAttachmentInitiateFailure");var ia="televet_booking_not_live";function yr(e){return ce("conflict",{retryable:false,reasonCode:ia,wireMessage:`the booking was answered with a consult whose status is ${e}, which is not a live visit`})}o(yr,"televetBookingNotLiveError");var bo="televet_booking_key_reused",ra="IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST";function mr(e){return e.httpStatus!==409||e.reasonCode===bo||gn(e)?.code!==ra?e:ce(e.code,{retryable:false,httpStatus:409,...e.requestId!==void 0?{requestId:e.requestId}:{},wireCode:ra,reasonCode:bo,...e.wireMessage!==void 0?{wireMessage:e.wireMessage}:{},raw:e.raw})}o(mr,"foldTelevetBookingKeyReused");function gn(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(gn,"details");function Ac(e){let t=gn(e)?.categories;return Array.isArray(t)?Object.freeze(t.filter(n=>typeof n=="string")):Object.freeze([])}o(Ac,"categoriesOf");function oa(e){let t=gn(e)?.retry_after_seconds;return typeof t=="number"&&Number.isFinite(t)&&t>0?t:null}o(oa,"retryAfterOf");function la(e){let t=e.wireMessage;if(typeof t=="string"&&t.trim().length>0)return t.trim();let n=gn(e)?.message;return typeof n=="string"&&n.trim().length>0?n.trim():null}o(la,"messageOf");function Vc(e){let t=e.reasonCode;if(typeof t=="string"&&t.length>0)return t;let n=gn(e),r=n?.code??n?.error_code;return typeof r=="string"&&r.length>0?r:null}o(Vc,"codeOf");function gt(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:oa(e),message:la(e)});if(t===404)return Object.freeze({kind:"unavailable"});switch(Vc(e)){case "televet_rate_limited":return Object.freeze({kind:"rate_limited",retryAfterSeconds:oa(e),message:la(e)});case "televet_emergency_ack_required":return Object.freeze({kind:"emergency",categories:Ac(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 ia:return Object.freeze({kind:"slot_taken"});case bo: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(gt,"televetBookingRefusal");function Oc(e){try{return new URL(e.trim()).protocol==="https:"}catch{return false}}o(Oc,"isSafeRoomUrl");function Nc(e,t){return Oc(e)&&t.trim().length>0}o(Nc,"isUsableRoomCredential");function gr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}o(gr,"isRecord");function ho(e,t){return typeof e=="number"&&Number.isInteger(e)&&e>=t?e:null}o(ho,"wholeNumber");function Dc(e){if(!gr(e))return null;let t=ho(e.consult_minutes,1),n=ho(e.auto_end_minutes,0),r=ho(e.warn_before_seconds,0);return t===null||n===null||r===null?null:Object.freeze({consultMinutes:t,autoEndMinutes:n,warnBeforeSeconds:r})}o(Dc,"parseCallLimits");function To(e){if(!gr(e))return null;let t=e.room_url??e.url,n=e.token;if(typeof t!="string"||typeof n!="string"||!Nc(t,n))return null;let r=e.recording_notice;return Object.freeze({roomUrl:t.trim(),token:n,recordingNotice:typeof r=="boolean"?r:true,callLimits:Dc(e.call_limits)})}o(To,"parseVetCallCredential");function Eo(e){let t=aa(e.raw);return t!==null&&t.length>0?t:null}o(Eo,"vetCallJoinReason");function aa(e){if(!gr(e))return null;let t=e.detail??e.error,r=(gr(t)?t:e).reason;return typeof r=="string"?r:null}o(aa,"reasonOf");function ko(e){if(e.httpStatus===404)return "unavailable";let t=aa(e.raw);return t==="too_early"||t==="too_late"||t==="room_not_ready"?t:t!==null&&t.startsWith("status_")?"not_joinable":"unknown"}o(ko,"vetCallJoinRefusal");var da=["scheduled","in_progress","awaiting_summary","completed","cancelled_owner","cancelled_ops","no_show_owner","no_show_vet"],It=new Set(["completed","cancelled_owner","cancelled_ops","no_show_owner","no_show_vet"]),Fc=new Set(["scheduled","in_progress","awaiting_summary"]);function vr(e){return Fc.has(e.status)}o(vr,"isLiveConsult");var ua=["wellness","prescription"],Lc=60;function ca(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,Lc):null}o(ca,"televetSlotMinutes");var br=64,lt=2e3,hr=10;function Ie(e){return typeof e=="string"&&/^[A-Za-z]{2}$/.test(e.trim())}o(Ie,"isWellFormedStateCode");function Ke(e){return typeof e=="object"&&e!==null?e:null}o(Ke,"row");function ve(e){return typeof e=="string"&&e.length>0?e:null}o(ve,"str");function vt(e){return typeof e=="string"&&e.trim().length>0?e.trim():null}o(vt,"trimmedOrNull");function Jt(e,t){return typeof e=="boolean"?e:t}o(Jt,"bool");function So(e){return typeof e=="number"&&Number.isFinite(e)?e:null}o(So,"num");function sa(e,t){return typeof t=="string"&&e.includes(t)?t:"unknown"}o(sa,"closed");function Xt(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(Xt,"parseList");function pa(e,t){let n=Ke(e);return n===null?null:Object.freeze({state:ve(n.state)??t,wellnessAvailable:Jt(n.wellness_available,false),prescriptionsAvailable:Jt(n.prescriptions_available,false),cancellationPolicyText:vt(n.cancellation_policy_text)})}o(pa,"parseStatePolicy");function fa(e){let t=Ke(e);if(t===null)return null;let n=vt(t.summary),r=vt(t.version);return n===null||r===null?null:Object.freeze({summary:n,version:r})}o(fa,"parseCancellationPolicy");function ya(e){let t=Ke(e);if(t===null)return null;let n=ve(t.clinician_id),r=ve(t.display_name);return n===null||r===null?null:Object.freeze({clinicianId:n,displayName:r,credentials:vt(t.credentials_text),rating:So(t.rating),ratingCount:So(t.rating_count),bio:vt(t.bio),photoRef:ve(t.photo_ref),licensedStates:Xt(t.licensed_states,i=>{let l=Ke(i),a=l===null?null:ve(l.state);return a===null?null:Object.freeze({state:a,canPrescribe:Jt(l?.can_prescribe,false)})})})}o(ya,"parseClinician");function Co(e){let t=Ke(e);if(t===null)return null;let n=ve(t.slot_id),r=ve(t.starts_at);return n===null||r===null?null:Object.freeze({slotId:n,startsAt:r,endsAt:ve(t.ends_at)??r})}o(Co,"parseSlot");function ma(e){let t=Ke(e);if(t===null)return null;let n=t.is_emergency===true,r=t.fallback===true;return n||r?Object.freeze({isEmergency:n,fallback:r}):t.is_emergency===false&&t.fallback===false?Object.freeze({isEmergency:false,fallback:false}):null}o(ma,"parseTriageVerdict");function ga(e){let t=Ke(e);if(t===null)return null;let n=ve(t.slot_id),r=ve(t.hold_expires_at);return n===null||r===null?null:Object.freeze({slotId:n,expiresAt:r})}o(ga,"parseSlotHold");function vn(e){let t=Ke(e);if(t===null)return null;let n=ve(t.consult_id),r=ve(t.scheduled_at);return n===null||r===null?null:Object.freeze({consultId:n,petId:ve(t.pet_id)??"",clinicianId:ve(t.clinician_id)??"",clinicianName:vt(t.display_name),reasonText:vt(t.reason_text),mediaRefs:Xt(t.media_refs,i=>ve(i)),status:sa(da,t.status),kind:sa(ua,t.kind),scheduledAt:r,emergencyFlagged:Jt(t.emergency_flagged,false),hasRoom:ve(t.meeting_url)!==null})}o(vn,"parseConsult");function va(e){let t=Ke(e);return Object.freeze({active:Jt(t?.active,false)})}o(va,"parseBookingEntitlement");var Tr=240;function ba(e){let t=Ke(e);if(t===null)return null;let n=So(t.fee_cents);return n===null||n<0?null:Object.freeze({feeCents:n,currency:ve(t.currency)??"usd",feeRecorded:Jt(t.fee_recorded,n>0),summary:vt(t.summary)})}o(ba,"parseCancelReceipt");var Ta="/widget/v1/televet",kr=`${Ta}/messages/threads`;function xo(e){return `${kr}/${encodeURIComponent(e)}/messages`}o(xo,"televetThreadMessagesCall");function Ea(e){return `${kr}/${encodeURIComponent(e)}/read`}o(Ea,"televetThreadReadCall");function ka(e){return `${Ta}/consults/${encodeURIComponent(e)}/summary`}o(ka,"televetVisitSummaryCall");var Ro=4e3,bn=50,Sa=100,wo=zod.z.string().min(1).refine(e=>!Number.isNaN(Date.parse(e))),ht=zod.z.string().nullish(),_o=zod.z.object({message_id:zod.z.string().min(1),pet_ref:zod.z.string().min(1),role:zod.z.enum(["owner","vet","system"]),content:zod.z.string(),created_at:wo,sender:zod.z.object({display_name:ht,specialty:ht}).nullish(),sender_display_name:ht,attachment_count:zod.z.number().int().nonnegative().nullish()}),Bc=zod.z.object({pet_ref:zod.z.string().min(1),last_message_at:wo,unread_count:zod.z.number().int().nonnegative().nullish(),owner_can_start:zod.z.boolean().nullish(),last_message:_o.nullish()}),Mc=zod.z.object({drug:zod.z.string().nullish(),strength:ht,form:ht,sig:ht,quantity:zod.z.union([zod.z.string(),zod.z.number()]).nullish(),refills:zod.z.number().int().nonnegative().nullish()}).passthrough(),zc=zod.z.object({consult_id:zod.z.string().min(1),findings_text:zod.z.string().nullish(),next_steps_text:zod.z.string().nullish(),medications:zod.z.array(zod.z.unknown()).nullish(),product_refs:zod.z.array(zod.z.string()).nullish(),action_items:zod.z.array(zod.z.string()).nullish(),approved_at:wo,approved_by_display_name:ht,credentials_text:ht});function Ye(e){let t=e?.trim()??"";return t.length>0?t:null}o(Ye,"nonBlank");function Po(e){let t=e.role==="vet";return Object.freeze({messageId:e.message_id,petRef:e.pet_ref,role:e.role,content:e.content,createdAt:e.created_at,senderName:t?Ye(e.sender?.display_name)??Ye(e.sender_display_name):null,senderSpecialty:t?Ye(e.sender?.specialty):null,attachmentCount:e.attachment_count??0})}o(Po,"toMessage");function jc(e){let t=_o.safeParse(e);return t.success?Po(t.data):null}o(jc,"mapVetMessage");function Hc(e){let t=zod.z.array(_o).safeParse(e);return t.success?Object.freeze(t.data.map(Po)):null}o(Hc,"mapVetMessages");function Uc(e){let t=zod.z.array(Bc).safeParse(e);return t.success?Object.freeze(t.data.map(n=>Object.freeze({petRef:n.pet_ref,lastMessageAt:n.last_message_at,unreadCount:n.unread_count??0,ownerCanStart:n.owner_can_start??true,lastMessage:n.last_message?Po(n.last_message):null}))):null}o(Uc,"mapVetThreads");function Wc(e){let t=Mc.safeParse(e);if(!t.success)return null;let n=Ye(t.data.drug);if(n===null)return null;let r=t.data.quantity;return Object.freeze({drug:n,strength:Ye(t.data.strength),form:Ye(t.data.form),sig:Ye(t.data.sig),quantity:r==null?null:Ye(String(r)),refills:t.data.refills??null})}o(Wc,"toMedication");function $c(e){let t=zc.safeParse(e);if(!t.success)return null;let n=t.data;return Object.freeze({consultId:n.consult_id,findingsText:n.findings_text??"",nextStepsText:n.next_steps_text??"",medications:Object.freeze((n.medications??[]).map(Wc).filter(r=>r!==null)),productRefs:Object.freeze([...n.product_refs??[]]),actionItems:Object.freeze((n.action_items??[]).filter(r=>r.trim().length>0)),approvedAt:n.approved_at,approvedByName:Ye(n.approved_by_display_name),credentialsText:Ye(n.credentials_text)})}o($c,"mapVisitSummary");function hn(e){return e.httpStatus===404}o(hn,"isVetMessagesDark");function Io(e){return e.httpStatus===409}o(Io,"isVetThreadVetFirst");function bt(e){return V(ce("validationFailed",{retryable:false,wireMessage:e}))}o(bt,"invalid");function Er(e){return V(ce("internalError",{retryable:false,httpStatus:502,wireMessage:e}))}o(Er,"unusable");function qc(e){return e===void 0||!Number.isFinite(e)?bn:Math.min(Sa,Math.max(1,Math.trunc(e)))}o(qc,"clampLimit");function ha(e){return e.trim().length>0&&!Number.isNaN(Date.parse(e))}o(ha,"isStamp");function Kc(e,t,n){try{e?.track(t,n);}catch{}}o(Kc,"safeTrack");function Ca(e,t){return {async listVetThreads(n){let r=await e.send("televet.messages.threads",{method:"GET",path:kr,...n?{signal:n}:{}});if(!r.ok)return V(r.error);let i=Uc(r.value);return i===null?Er("the vet thread list was unreadable"):U(i)},async listVetMessages(n,r={},i){let l=n.trim();if(l.length===0)return bt("petRef is required");let a=r.before?.trim();if(a!==void 0&&a.length>0&&!ha(a))return bt("before must be an ISO date-time");let s=await e.send("televet.messages.thread",{method:"GET",path:xo(l),query:{...a?{before:a}:{},limit:qc(r.limit)},...i?{signal:i}:{}});if(!s.ok)return V(s.error);let u=Hc(s.value);return u===null?Er("the vet thread page was unreadable"):U(u)},async sendVetMessage(n,r){let i=n.trim();if(i.length===0)return bt("petRef is required");if(r.trim().length===0)return bt("content must not be blank");if(r.length>Ro)return bt(`content must be at most ${Ro} characters`);let l=await e.send("televet.messages.send",{method:"POST",path:xo(i),body:{content:r}},{idempotent:false,maxAttempts:1});if(!l.ok)return Kc(t,"televet.messages.send_failed",{status:l.error.httpStatus??null}),V(l.error);let a=jc(l.value);return a===null?Er("the sent message was unreadable"):U(a)},async markVetThreadRead(n,r){let i=n.trim();if(i.length===0)return bt("petRef is required");if(!ha(r))return bt("readAt must be an ISO date-time");let l=await e.send("televet.messages.read",{method:"PUT",path:Ea(i),body:{read_at:r}});return l.ok?U(void 0):V(l.error)},async visitSummary(n,r){let i=n.trim();if(i.length===0)return bt("consultId is required");let l=await e.send("televet.messages.summary",{method:"GET",path:ka(i),...r?{signal:r}:{}});if(!l.ok)return V(l.error);let a=$c(l.value);return a===null?Er("the visit summary was unreadable"):U(a)}}}o(Ca,"createTelevetMessagesMethods");var it="/widget/v1/televet",Yc=`${it}/state-policy`,Gc=`${it}/vets`,xa=`${it}/slots`,Jc=`${it}/slots/next`,Tn=`${it}/consults`,Xc=`${it}/entitlement`,Qc=`${it}/cancellation-policy`,Zc=`${it}/attachments/initiate`,ep=`${Tn}/triage`;function Ra(e){return `${xa}/${encodeURIComponent(e)}/hold`}o(Ra,"televetHoldCall");function wa(e){return `${Tn}/${encodeURIComponent(e)}/reschedule`}o(wa,"televetRescheduleCall");function Sr(e){return `${Tn}/${encodeURIComponent(e)}`}o(Sr,"televetConsultCall");function _a(e){return `${Sr(e)}/join`}o(_a,"televetJoinCall");function Pa(e){return `${Sr(e)}/cancel`}o(Pa,"televetCancelCall");var Ia=100;function Ae(e){return V(ce("validationFailed",{retryable:false,wireMessage:e}))}o(Ae,"invalid");function Tt(e){return V(ce("internalError",{retryable:false,httpStatus:502,wireMessage:e}))}o(Tt,"unusable");function Ao(e){return e.httpStatus===404}o(Ao,"isDark");function At(e,t,n){try{e?.track(t,n);}catch{}}o(At,"safeTrack");function Aa(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(!Ie(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>lt?`reason_text must be at most ${lt} characters`:tp(e)}o(Aa,"validateBookingBody");function tp(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>br?`cancellation_policy_version must be at most ${br} characters`:null}o(tp,"attestationRefusal");function Oo(e){let t=e.funnel??Pt({auth:e.auth,...e.errorPolicy?{errorPolicy:e.errorPolicy}:{}}),n=e.telemetry;return {...Ca(t,n),async statePolicy(r,i){let l=r.trim();if(!Ie(l))return Ae("state must be a two-letter US state code");let a=await t.send("televet.booking.state_policy",{method:"GET",path:`${Yc}/${encodeURIComponent(l)}`,...i?{signal:i}:{}});if(!a.ok)return V(a.error);let s=pa(a.value,l);return s===null?Tt("the state policy response was unreadable"):U(s)},async entitlement(r){let i=await t.send("televet.booking.entitlement",{method:"GET",path:Xc,...r?{signal:r}:{}});return i.ok?U(va(i.value)):V(i.error)},async cancellationPolicy(r){let i=await t.send("televet.booking.cancellation_policy",{method:"GET",path:Qc,...r?{signal:r}:{}});return i.ok?U(fa(i.value)):U(null)},async clinicians(r,i){let l=r.trim();if(!Ie(l))return Ae("state must be a two-letter US state code");let a=await t.send("televet.booking.clinicians",{method:"GET",path:Gc,query:{state:l},...i?{signal:i}:{}});return a.ok?U(Xt(Vo(a.value,"vets"),ya)):Ao(a.error)?U(Object.freeze([])):V(a.error)},async slots(r,i){let l=r.trim();if(l.length===0)return Ae("clinicianId is required");let a=await t.send("televet.booking.slots",{method:"GET",path:xa,query:{clinician_id:l},...i?{signal:i}:{}});return a.ok?U(Xt(Vo(a.value,"slots"),Co)):Ao(a.error)?U(Object.freeze([])):V(a.error)},async nextSlot(r){let i=await t.send("televet.booking.next_slot",{method:"GET",path:Jc,...r?{signal:r}:{}});return i.ok?U(Co(rp(i.value,"slot"))):U(null)},async holdSlot(r){let i=r.trim();if(i.length===0)return Ae("slotId is required");let l=await t.send("televet.booking.hold",{method:"POST",path:Ra(i)},{idempotent:false,maxAttempts:1});if(!l.ok)return At(n,"televet.booking.hold_failed",{status:l.error.httpStatus??null}),V(l.error);let a=ga(l.value);return a===null?Tt("the hold response carried no usable expiry"):U(a)},async book(r,i){let l=Aa(r);if(l!==null)return Ae(l);let a=i.trim();if(a.length===0)return Ae("idempotencyKey is required");let s=await t.send("televet.booking.book",{method:"POST",path:Tn,body:np(r)},{idempotent:true,idempotencyKey:a,maxAttempts:1});if(!s.ok)return At(n,"televet.booking.book_failed",{status:s.error.httpStatus??null}),V(mr(s.error));let u=vn(s.value);return u===null?Tt("the booking response was unreadable"):vr(u)?U(u):(At(n,"televet.booking.book_failed",{status:null,consult_status:u.status}),V(yr(u.status)))},async reschedule(r,i){let l=r.trim(),a=i.trim();if(l.length===0)return Ae("consultId is required");if(a.length===0)return Ae("slotId is required");let s=await t.send("televet.booking.reschedule",{method:"POST",path:wa(l),body:{new_slot_id:a}},{idempotent:false,maxAttempts:1});if(!s.ok)return At(n,"televet.booking.reschedule_failed",{status:s.error.httpStatus??null}),V(s.error);let u=vn(s.value);return u===null?Tt("the reschedule response was unreadable"):U(u)},async triage(r,i){let l=r.trim();if(l.length===0)return U(null);let a=await t.send("televet.booking.triage",{method:"POST",path:ep,body:{reason_text:l},...i?{signal:i}:{}},{idempotent:false,maxAttempts:1});return a.ok?U(ma(a.value)):(At(n,"televet.booking.triage_unavailable",{status:a.error.httpStatus??null}),U(null))},async listConsults(r){let i=await t.send("televet.booking.consults",{method:"GET",path:Tn,query:{limit:String(Ia)},...r?{signal:r}:{}});return i.ok?U(Xt(Vo(i.value,"consults"),vn)):Ao(i.error)?U(Object.freeze([])):V(i.error)},async getConsult(r,i){let l=r.trim();if(l.length===0)return Ae("consultId is required");let a=await t.send("televet.booking.consult",{method:"GET",path:Sr(l),...i?{signal:i}:{}});if(!a.ok)return V(a.error);let s=vn(a.value);return s===null?Tt("the consult response was unreadable"):U(s)},async joinConsult(r){let i=r.trim();if(i.length===0)return Ae("consultId is required");let l=await t.send("televet.booking.join",{method:"POST",path:_a(i)},{idempotent:false,maxAttempts:1});if(!l.ok)return At(n,"televet.booking.join_failed",{status:l.error.httpStatus??null}),V(l.error);let a=To(l.value);return a===null?Tt("the join response carried no usable room credential"):U(a)},async cancelConsult(r,i){let l=r.trim(),a=i.trim();if(l.length===0)return Ae("consultId is required");if(a.length===0)return Ae("reason is required");if(a.length>Tr)return Ae(`reason must be at most ${Tr} characters`);let s=await t.send("televet.booking.cancel",{method:"POST",path:Pa(l),body:{reason:a}},{idempotent:false,maxAttempts:1});if(!s.ok)return At(n,"televet.booking.cancel_failed",{status:s.error.httpStatus??null}),V(s.error);let u=ba(s.value);return u===null?Tt("the cancel response was unreadable"):U(u)},async initiateAttachment(r,i){let l=await t.send("televet.booking.attachment_initiate",{method:"POST",path:Zc,body:{filename:r.filename,content_type:r.contentType,file_size:r.fileSize},...i?{signal:i}:{}});if(!l.ok)return V(l.error);let a=ta(l.value);return a===null?Tt("the attachment presign was unreadable"):U(a)}}}o(Oo,"createTelevetBookingController");function np(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(np,"bookingWireBody");function Vo(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(Vo,"rows");function rp(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(rp,"unwrap");var Va=Symbol.for("@everfur/sdk#EverfurContext@v1"),Oa=globalThis,Na=Oa[Va]??(Oa[Va]=react.createContext(null));Na.displayName??="EverfurContext";function He(){let e=react.useContext(Na);if(e===null)throw new yn("not-initialized","Everfur hooks must be called inside <EverfurProvider>. Wrap your tree once, high.");return e}o(He,"useEverfurContext");var ip=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 ap(e){return ip[e]}o(ap,"requires");function Da(e,t,n){let r=ap(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 No({name:e,enabled:false,isPending:true,limits:{}});let l=sp(r,i);return r.filter(s=>i.get(s)?.granted!==true).length===0?No({name:e,enabled:true,isPending:false,limits:l}):No({name:e,enabled:false,isPending:false,limits:l,disabled:dp(r,i)})}o(Da,"decideCapability");function sp(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(sp,"mergeLimits");function dp(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:yo("accessDenied"),level:"user_entitlement",recoverable:false})}o(dp,"disabledFor");function No(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(No,"freezeDecision");function En(e){let{runtime:t}=He(),n=t.entitlements,r=react.useSyncExternalStore(n.subscribe,n.getSnapshot,n.getSnapshot);return react.useMemo(()=>Da(e,r.decisions,{isPending:r.isPending}),[e,r])}o(En,"useCapability");function be(e){let{runtime:t,userRef:n,scopeEpoch:r}=He();return react.useMemo(()=>{if(e)return e;if(n===null)return null;let{services:i}=t.registry;return Oo({auth:i.authFor(n),telemetry:i.telemetry,...i.errorPolicy?{errorPolicy:i.errorPolicy}:{}})},[t,n,r,e])}o(be,"useTelevetBookingController");function pp(){let{userRef:e}=He(),t=En("televet");return react.useMemo(()=>({available:t.enabled&&e!==null,isPending:t.isPending}),[t.enabled,t.isPending,e])}o(pp,"useTelevetBookingAvailable");function Et(e,t,n){let[r,i]=react.useState(()=>({key:e,data:null,isPending:t&&n!==null,error:null})),[l,a]=react.useState(0),s=react.useRef(n);s.current=n,react.useEffect(()=>{let c=s.current;if(!t||c===null){i({key:e,data:null,isPending:false,error:null});return}let y=new AbortController,g=true;return i(v=>v.key===e?{...v,isPending:true,error:null}:{key:e,data:null,isPending:true,error:null}),(async()=>{let v;try{v=await c(y.signal);}catch{g&&i({key:e,data:null,isPending:false,error:null});return}g&&(v.ok?i({key:e,data:v.value,isPending:false,error:null}):i({key:e,data:null,isPending:false,error:v.error}));})(),()=>{g=false,y.abort();}},[e,t,l]);let u=react.useCallback(()=>a(c=>c+1),[]),d=r.key===e;return react.useMemo(()=>({enabled:t,data:d?r.data:null,isPending:t&&(!d||r.isPending),isError:d&&r.error!==null,error:d?r.error:null,refetch:u}),[t,d,r.data,r.isPending,r.error,u])}o(Et,"useTelevetRead");function kn(e,t){let n=e?.trim()??"",r=t?.statePolicy!==void 0&&Ie(n),i=t?.statePolicy;return Et(`state-policy:${n}`,r,r&&i?l=>i.call(t,n,l):null)}o(kn,"useTelevetStatePolicy");function Fo(e){let t=e?.entitlement!==void 0,n=e?.entitlement;return Et("entitlement",t,t&&n?r=>n.call(e,r):null)}o(Fo,"useTelevetBookingEntitlement");function Sn(e){let t=e?.cancellationPolicy!==void 0,n=e?.cancellationPolicy;return Et("cancellation-policy",t,t&&n?r=>n.call(e,r):null)}o(Sn,"useTelevetCancellationPolicy");function Lo(e,t){let n=e?.trim()??"",r=t?.clinicians!==void 0&&Ie(n),i=t?.clinicians;return Et(`clinicians:${n}`,r,r&&i?l=>i.call(t,n,l):null)}o(Lo,"useTelevetClinicians");function Cn(e,t){let n=e?.trim()??"",r=t!==null&&n.length>0;return Et(`slots:${n}`,r,r&&t?i=>t.slots(n,i):null)}o(Cn,"useTelevetSlots");function Bo(e){let t=e?.nextSlot!==void 0,n=e?.nextSlot;return Et("next-slot",t,t&&n?r=>n.call(e,r):null)}o(Bo,"useTelevetNextSlot");function Rr(e){let[t,n]=react.useState(null),r=react.useRef(true),i=react.useRef(false),l=react.useRef(e);l.current=e,react.useEffect(()=>(r.current=true,()=>{r.current=false;}),[]);let a=react.useCallback((...s)=>{let u=l.current;if(u===null||i.current)return;let d=s[s.length-1],c=typeof d=="object"&&d!==null&&("onSuccess"in d||"onError"in d),y=c?d:void 0,g=c?s.slice(0,-1):s;i.current=true,n({variables:g[0]??null}),(async()=>{let v=null;try{v=await u(...g);}catch{v=null;}i.current=false,r.current&&n(null),v!==null&&(v.ok?y?.onSuccess?.(v.value):y?.onError?.(v.error));})();},[]);return react.useMemo(()=>({isPending:t!==null,variables:t?.variables??null,mutate:a}),[t,a])}o(Rr,"useTelevetWrite");function xn(e){return Rr(e?t=>e.holdSlot(t):null)}o(xn,"useTelevetHoldSlot");function Mo(e){return Rr(e?(t,n)=>e.book(t,n):null)}o(Mo,"useTelevetBookConsult");function zo(e,t){return Rr(t&&e?n=>t.reschedule(e,n):null)}o(zo,"useTelevetRescheduleConsult");function wr(e,t=0){let n=e?.listConsults!==void 0,r=e?.listConsults;return Et(`consults:${t}`,n,n&&r?i=>r.call(e,i):null)}o(wr,"useTelevetConsults");function Ba(e,t,n=0){let r=e?.trim()??"",i=t?.getConsult!==void 0&&r.length>0,l=t?.getConsult;return Et(`consult:${r}:${n}`,i,i&&l?a=>l.call(t,r,a):null)}o(Ba,"useTelevetConsult");function Ma(e,t){let n=t?.cancelConsult;return Rr(t&&n&&e?r=>n.call(t,e,r):null)}o(Ma,"useTelevetCancelConsult");function Rn(e){return e.error!==null&&e.error.httpStatus===404}o(Rn,"televetReadIsDark");var jo=15,Ho=250,fp=new Set(["scheduled","in_progress"]);function Vt(e){let t=Date.parse(e.scheduledAt);return Number.isNaN(t)?null:t}o(Vt,"startsAtMs");function yp(e){let t=Vt(e);return t===null?null:t-jo*6e4}o(yp,"televetJoinOpensAtMs");function Uo(e,t){if(e===null)return {ready:false,reason:"not_open_yet"};if(It.has(e.status))return {ready:false,reason:"consult_over"};if(e.status==="in_progress")return {ready:true};let n=Vt(e);return n===null?{ready:false,reason:"not_open_yet"}:t<n-jo*6e4?{ready:false,reason:"not_open_yet"}:t>n+Ho*6e4?{ready:false,reason:"consult_over"}:{ready:true}}o(Uo,"televetJoinReadiness");function wn(e,t){let n=[],r=[];for(let i of e){let l=Vt(i);(fp.has(i.status)&&l!==null&&l+Ho*6e4>t?n:r).push(i);}return n.sort((i,l)=>(Vt(i)??0)-(Vt(l)??0)),r.sort((i,l)=>(Vt(l)??0)-(Vt(i)??0)),Object.freeze({upcoming:Object.freeze(n),past:Object.freeze(r)})}o(wn,"splitTelevetVisits");function Wo(e){return e==="scheduled"}o(Wo,"canManageTelevetVisit");function za(e){let t=wr(e);return t.enabled?t.isPending?"pending":t.isError||wn(t.data??[],Date.now()).upcoming.length>0?"visits":"booking":"booking"}o(za,"useTelevetLanding");function Ko(e){if(e!==null&&typeof e=="object"&&!Object.isFrozen(e)){Object.freeze(e);for(let t of Object.keys(e))Ko(e[t]);}return e}o(Ko,"deepFreeze");var mp=Object.freeze({content:0,heading:2,control:1.8,compact:1.5,badge:1.3}),Ha={xs:4,sm:8,md:12,lg:16,xl:24,xxl:32},Ua={tile:5,xs:6,sm:10,md:14,lg:20,xl:28,pill:500},ja={nano:8,small:9,micro:10,tiny:11,caption:13,bodyTight:15,body:17,subtitle:20,heading:22,verdict:24},gp={tight:1.15,snug:1.3,normal:1.4,relaxed:1.55},vp={regular:"400",medium:"500",bold:"700"},bp={eyebrow:1,monoWide:.9,headerBrand:-0.42,tight:-0.35},hp=0,_r="System",Pr="monospace",Tp=["content","heading","control","compact","badge"];function Ep(e){let t={};for(let n of Tp)t[n]=e;return t}o(Ep,"authoredTierSizes");function Wa(){return {family:_r,mono:Pr,fontUrl:null,families:{regular:_r,medium:_r,bold:_r,mono:Pr,monoMedium:Pr,monoBold:Pr},namedFaces:{regular:false,medium:false,bold:false,mono:false,monoMedium:false,monoBold:false},fontUrls:{},size:ja,tierSizes:Ep(ja),lineHeight:gp,weight:vp,letterSpacing:bp,scale:1,maxScale:hp,scaleCaps:mp}}o(Wa,"baseType");var $a={},$o=Object.freeze({standard:Object.freeze([.2,0,0,1]),emphasized:Object.freeze([.2,.8,.2,1]),exit:Object.freeze([.4,0,1,1])});function qo(e){return `cubic-bezier(${e.join(", ")})`}o(qo,"cssCubicBezier");var qa={duration:{instant:80,fast:140,normal:220,slow:320},spring:{gentle:{damping:18,stiffness:200}},easing:{standard:qo($o.standard),emphasized:qo($o.emphasized),exit:qo($o.exit)},reducedMotion:false},kp={brand:"#10462E",brandSoft:"rgba(16,70,46,0.10)",brandSofter:"rgba(16,70,46,0.15)",brandBorder:"rgba(16,70,46,0.18)",borderHairlineGreen:"rgba(16,70,46,0.25)",brandBorderStrong:"rgba(16,70,46,0.55)",brandInk:"#10462E",linkInk:"#10462E",surface:"#FFFFFF",surfaceCream:"#FFFFFF",surfaceSubtle:"#F1F5F2",background:"#FFFFFF",borderRingCream:"#E4E4E4",chatGround:"#FFFFFF",composerFill:"#FFFFFF",composerBorder:"rgba(16,70,46,0.75)",shadow:"#0B3421",text:{primary:"#000000",secondary:"#0E462E",muted:"#6B6B6B",placeholder:"rgba(61,61,61,0.75)",onBrand:"#FFFFFF",metaCool:"#3D3D3D",timestamp:"rgba(61,61,61,0.75)"},primary:"#10462E",onPrimary:"#FFFFFF",accent:"#10462E",onAccent:"#FFFFFF",accentEdge:"#07C168",success:"#07C168",danger:"#C03410",onDanger:"#FFFFFF",errorRed:"#C03410",warningStrong:"#A45610",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.12)",badgeBgCaution:"rgba(217,130,29,0.14)",badgeBgCritical:"rgba(192,52,16,0.06)",badgeBgNeutral:"rgba(107,107,107,0.12)",bubbleUser:"#10462E",bubbleAssistant:"#FFFFFF",bubbleVet:"#FFC3BC",onBubbleVet:"#000000",skeleton:"#E9F1E9",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.10)",checkupCardConcernBg:"rgba(239,167,0,0.10)"},Ka=Ko({brightness:"light",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:kp,space:Ha,radius:Ua,type:Wa(),motion:qa,slots:$a}),Sp={brand:"#6BD39A",brandSoft:"rgba(107,211,154,0.12)",brandSofter:"rgba(107,211,154,0.18)",brandBorder:"rgba(107,211,154,0.22)",borderHairlineGreen:"rgba(107,211,154,0.28)",brandBorderStrong:"rgba(107,211,154,0.55)",brandInk:"#6BD39A",linkInk:"#6BD39A",surface:"#1C1F23",surfaceCream:"#23272C",surfaceSubtle:"#23272C",background:"#15171A",borderRingCream:"#3A3F45",chatGround:"#1C1F23",composerFill:"#23272C",composerBorder:"rgba(107,211,154,0.75)",shadow:"#000000",text:{primary:"#F5F3F0",secondary:"#A9E4C4",muted:"#9A9A9A",placeholder:"rgba(255,255,255,0.55)",onBrand:"#0E1F17",metaCool:"#C9C9C9",timestamp:"rgba(245,243,240,0.7)"},primary:"#6BD39A",onPrimary:"#0E1F17",accent:"#6BD39A",onAccent:"#0E1F17",accentEdge:"#34D888",success:"#07C168",danger:"#F87171",onDanger:"#0E1F17",errorRed:"#FF6B5B",warningStrong:"#F0A35E",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.18)",badgeBgCaution:"rgba(217,130,29,0.20)",badgeBgCritical:"rgba(185,28,28,0.22)",badgeBgNeutral:"rgba(255,255,255,0.10)",bubbleUser:"#6BD39A",bubbleAssistant:"#1C1F23",bubbleVet:"#FFC3BC",onBubbleVet:"#000000",skeleton:"#23272C",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.16)",checkupCardConcernBg:"rgba(239,167,0,0.16)"};Ko({brightness:"dark",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:Sp,space:Ha,radius:Ua,type:Wa(),motion:qa,slots:$a});var Ya=Symbol.for("@everfur/sdk#EverfurThemeContext@v1"),Ga=globalThis,Yo=Ga[Ya]??(Ga[Ya]=react.createContext(Ka));Yo.displayName??="EverfurThemeContext";function D(){return react.useContext(Yo)}o(D,"useEverfurTheme");function Pp(e,t){let n=e.scaleCaps[t];return n>0?n:void 0}o(Pp,"tierMultiplier");function f({tier:e="content",...t}){let{type:n}=D(),r=Pp(n,e);return react.createElement(reactNative.Text,r===void 0?t:{maxFontSizeMultiplier:r,...t})}o(f,"Text");var Ir=react.forwardRef(o(function(t,n){return react.createElement(reactNative.TextInput,{...t,...n===null?{}:{ref:n}})},"TextInput"));var Ip=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[Ip[t]]}}o(b,"face");var Xo=class Xo extends react.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(Xo,"HostRenderBoundary");var Go=Xo;function Vp({render:e}){return e()}o(Vp,"RenderHost");function Jo({render:e,fallback:t,resetKey:n}){return react.createElement(Go,{fallback:t,resetKey:n,children:react.createElement(Vp,{render:e})})}o(Jo,"HostRender");var Op=48;function Np(e){return e.isPending?"pending":e.enabled?"enabled":"disabled"}o(Np,"selectView");function ts(e){let{capability:t,children:n,renderDisabled:r,renderPending:i,style:l}=e,a=En(t),s=react.useMemo(()=>Np(a),[a]);switch(s){case "enabled":return n;case "pending":return i?jsxRuntime.jsx(Jo,{render:i,fallback:jsxRuntime.jsx(Za,{capability:t,style:l})}):jsxRuntime.jsx(Za,{capability:t,style:l});case "disabled":return r?jsxRuntime.jsx(Jo,{render:()=>r(a),fallback:jsxRuntime.jsx(es,{decision:a,style:l}),resetKey:a}):jsxRuntime.jsx(es,{decision:a,style:l});default:return sr(s)}}o(ts,"CapabilityGate");function Za({capability:e,style:t}){let n=D(),r=react.useMemo(()=>ns(n),[n]);return jsxRuntime.jsx(reactNative.View,{style:[r.offstate,t],accessible:true,accessibilityState:{busy:true},accessibilityLabel:`Loading ${e}`,children:jsxRuntime.jsx(reactNative.View,{style:r.skeletonBar})})}o(Za,"PendingSkeleton");function es({decision:e,style:t}){let n=D(),r=react.useMemo(()=>ns(n),[n]),i=e.disabled?.reason??"";return jsxRuntime.jsx(reactNative.View,{style:[r.offstate,t],accessible:true,accessibilityRole:"text",accessibilityLabel:i,children:i.length>0?jsxRuntime.jsx(f,{style:r.offstateText,children:i}):null})}o(es,"OffState");function ns(e){let{color:t,space:n,radius:r,type:i}=e;return reactNative.StyleSheet.create({offstate:{minHeight:Op,justifyContent:"center",paddingHorizontal:n.lg,paddingVertical:n.md,backgroundColor:t.surfaceCream,borderRadius:r.md,borderWidth:reactNative.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(ns,"makeStyles");function Qt(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(Qt,"hasLoneSurrogate");function Zt(e){return [...e].length}o(Zt,"serverLength");var rs=Object.freeze({dog:"dog",canine:"dog",k9:"dog",puppy:"dog",cat:"cat",feline:"cat",kitten:"cat"});function os(e){if(typeof e!="string")return null;let t=e.trim().toLowerCase();return Object.prototype.hasOwnProperty.call(rs,t)?rs[t]:null}o(os,"canonicalPetSpecies");var ls=50,Dp=128,el=120,is=120,Fp=2e3,as=120,Lp=80,us=new Set(["male","female","unknown"]),cs=new Set(["day","month","year"]),ps=new Set(["low","medium","high","athletic"]),fs=new Set(["indoor","outdoor","both"]),ys=new Set(["mild","moderate","severe"]),Bp=/^(\d{4})-(\d{2})-(\d{2})$/,ms=[["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"]],gs=[["allergies","allergies"],["medications","medications"],["supplements","supplements"],["conditions","conditions"]];Object.freeze([...ms,...gs].map(([e])=>e));function Mp(e){let t=Bp.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(Mp,"isRealDate");var Pn=o(e=>(t,n)=>typeof n=="string"&&e.has(n)?null:`${t} must be one of ${[...e].join(", ")}`,"oneOf"),zp=o((e,t)=>typeof t=="boolean"?null:`${e} must be true or false`,"boolean"),Vr=o((e,t)=>typeof t=="string"&&Mp(t)?null:`${e} must be a real date written YYYY-MM-DD`,"date"),Je=o((e,t={})=>(n,r)=>{if(typeof r!="string")return `${n} must be a string`;if(Qt(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=Zt(i);return l<=e?null:`${n} is ${l} characters; the server accepts at most ${e}`},"text"),jp={sex:Pn(us),spayedNeutered:zp,birthDate:Vr,birthDatePrecision:Pn(cs),activityLevel:Pn(ps),indoorOutdoor:Pn(fs),foodBrand:Je(as),foodType:Je(as),microchipId:Je(Lp)},tl=["ref","ref",false,Je(Dp,{required:true,trimmed:true})],nl=["notes","notes",false,Je(Fp,{trimmed:true})],ss=[tl,["name","name",true,Je(el,{required:true,trimmed:true})],["dose","dose",false,Je(is,{trimmed:true})],["frequency","frequency",false,Je(is,{trimmed:true})],["startDate","start_date",false,Vr],["endDate","end_date",false,Vr],nl],Hp={allergies:[tl,["allergen","allergen",true,Je(el,{required:true,trimmed:true})],["severity","severity",false,Pn(ys)],nl],medications:ss,supplements:ss,conditions:[tl,["conditionName","condition_name",true,Je(el,{required:true,trimmed:true})],["diagnosedDate","diagnosed_date",false,Vr],nl]};function Up(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[u,d,c,y]of Hp[e]){let g=i[u];if(g==null){if(c)return {error:`${r}.${u} is required`};g===null&&(l[d]=null);continue}let v=y(`${r}.${u}`,g);if(v!==null)return {error:v};l[d]=g;}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(Up,"itemToWire");function Wp(e,t){if(!Array.isArray(t))return {error:`${e} must be an array (send [] to clear it)`};if(t.length>ls)return {error:`${e} has ${t.length} items; the server accepts at most ${ls}`};let n=[],r=new Set;for(let i=0;i<t.length;i+=1){let l=Up(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(Wp,"listToWire");function vs(e,t){let n=e,r={};for(let[a,s]of ms){let u=n[a];if(u!==void 0){if(u!==null){let d=jp[a](a,u);if(d!==null)return {error:d}}r[s]=u;}}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 gs){let u=n[a];if(u===void 0)continue;let d=Wp(a,u);if("error"in d)return d;r[s]=d.items;}return Object.keys(r).length>0&&t!==void 0&&os(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(vs,"petHealthToWire");var ye=o(e=>typeof e=="string"?e:null,"str"),_n=o((e,t)=>typeof t=="string"&&e.has(t)?t:null,"pick"),$p=o(e=>typeof e=="boolean"?e:null,"bool");function Ar(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(Ar,"itemsFromWire");function ds(e){let t=ye(e.name);return t===null||t.length===0?null:Object.freeze({ref:ye(e.ref),name:t,dose:ye(e.dose),frequency:ye(e.frequency),startDate:ye(e.start_date),endDate:ye(e.end_date),notes:ye(e.notes)})}o(ds,"medicationFromWire");function bs(e){let t=e.profile_version;return Object.freeze({profileVersion:typeof t=="number"&&Number.isInteger(t)&&t>=0?t:0,sex:_n(us,e.sex),spayedNeutered:$p(e.spayed_neutered),birthDate:ye(e.birth_date),birthDatePrecision:_n(cs,e.birth_date_precision),activityLevel:_n(ps,e.activity_level),indoorOutdoor:_n(fs,e.indoor_outdoor),foodBrand:ye(e.food_brand),foodType:ye(e.food_type),microchipId:ye(e.microchip_id),allergies:Ar(e.allergies,n=>{let r=ye(n.allergen);return r===null||r.length===0?null:Object.freeze({ref:ye(n.ref),allergen:r,severity:_n(ys,n.severity),notes:ye(n.notes)})}),medications:Ar(e.medications,ds),supplements:Ar(e.supplements,ds),conditions:Ar(e.conditions,n=>{let r=ye(n.condition_name);return r===null||r.length===0?null:Object.freeze({ref:ye(n.ref),conditionName:r,diagnosedDate:ye(n.diagnosed_date),notes:ye(n.notes)})})})}o(bs,"petHealthFromWire");var Es=100,ks=50,Ss=100,Cs=50,xs=500,qp=128,Kp=6e4;function Qe(e){return ce("validationFailed",{retryable:false,wireMessage:e})}o(Qe,"invalid");function Ot(e,t,n){if(typeof t!="string")return Qe(`${e} must be a string`);let r=Zt(t);return r<=n?null:Qe(`${e} is ${r} characters; the server accepts at most ${n}`)}o(Ot,"checkString");function Or(e,t,n){return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=n?null:Qe(`${e} must be a finite number between 0 and ${n}`)}o(Or,"outOfRange");function hs(e,t){if(typeof e!="string")return Qe("pet_ref must be a string");if(e.trim().length===0)return Qe("pet_ref must not be blank");if(Qt(e))return Qe("pet_ref contains an unpaired surrogate and cannot be encoded");if(t!=null&&typeof t!="object")return Qe("profile must be an object");let n=[Ot("pet_ref",e,qp)];return t?.name!==void 0&&n.push(Ot("name",t.name,Es)),t?.species!==void 0&&n.push(Ot("species",t.species,ks)),t?.breed!==void 0&&n.push(Ot("breed",t.breed,Ss)),t?.ageYears!==void 0&&n.push(Or("age_years",t.ageYears,Cs)),t?.weightKg!==void 0&&n.push(Or("weight_kg",t.weightKg,xs)),n.find(r=>r!==null)??null}o(hs,"validate");function Rs(e,t){let n=vs(e,t);return "error"in n?{error:Qe(n.error)}:n}o(Rs,"healthToWire");function Yp(e){if(typeof e!="object"||e===null)return {error:Qe("patch must be an object")};let t=e,n=[["name","name",l=>Ot("name",l,Es)],["species","species",l=>Ot("species",l,ks)],["breed","breed",l=>Ot("breed",l,Ss)],["ageYears","age_years",l=>Or("age_years",l,Cs)],["weightKg","weight_kg",l=>Or("weight_kg",l,xs)]],r={};for(let[l,a,s]of n){let u=t[l];if(u!==void 0){if(u!==null){let d=s(u);if(d!==null)return {error:d}}r[a]=u;}}let i=Rs(t,t.species);return "error"in i?i:(Object.assign(r,i.body),Object.keys(r).length===0?{error:Qe("patch must change at least one field")}:{body:r})}o(Yp,"patchToWire");function Gp(e){if(e==null)return {body:{}};let t=Rs(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(Gp,"toWire");var Xe=o(e=>typeof e=="string"?e:null,"str"),Nr=o(e=>typeof e=="number"&&Number.isFinite(e)?e:null,"num");function Ts(e,t){let n=typeof e=="object"&&e!==null?e:{};return Object.freeze({petRef:Xe(n.pet_ref)??t,name:Xe(n.name),species:Xe(n.species),breed:Xe(n.breed),ageYears:Nr(n.age_years),weightKg:Nr(n.weight_kg)})}o(Ts,"fromWire");function ws(e){if(typeof e!="object"||e===null)return null;let t=e,n=Xe(t.pet_ref);return n===null||n.length===0?null:Object.freeze({petId:Xe(t.pet_id),petRef:n,name:Xe(t.name),species:Xe(t.species),breed:Xe(t.breed),ageYears:Nr(t.age_years),weightKg:Nr(t.weight_kg),updatedAt:Xe(t.updated_at)})}o(ws,"widgetPetFromWire");function Jp(e){let t=ws(e);return t===null?null:Object.freeze({...t,...bs(e)})}o(Jp,"widgetPetProfileFromWire");function Xp(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=ws(n);return r===null?[]:[r]}))}o(Xp,"petListFromWire");function _s(e){return Qp(Pt({auth:e}),Pt({auth:e,unaryTimeoutMs:Kp}))}o(_s,"createPetsRepository");function Qp(e,t=e){let n=o((i,l)=>l?{...i,signal:l}:i,"withSignal"),r=o(i=>hs(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?U(Xp(l.value)):V(l.error)},async registerPet(i,l,a){let s=hs(i,l);if(s!==null)return V(s);let u=Gp(l);if("error"in u)return V(u.error);let c={method:"POST",path:`/widget/v1/pets/${encodeURIComponent(i)}`,body:u.body},y=await e.send("pets.registerPet",a?.signal?{...c,signal:a.signal}:c);return y.ok?U(Ts(y.value,i)):V(y.error)},async updatePet(i,l,a){let s=r(i);if(typeof s!="string")return V(s);let u=Yp(l);if("error"in u)return V(u.error);let d=await e.send("pets.updatePet",n({method:"PATCH",path:s,body:u.body},a?.signal));return d.ok?U(Ts(d.value,i)):V(d.error)},async getPetProfile(i,l){let a=r(i);if(typeof a!="string")return V(a);let s=await e.send("pets.getPetProfile",n({method:"GET",path:`${a}/profile`},l?.signal));if(!s.ok)return V(s.error);let u=Jp(s.value);return u===null?V(ce("internalError",{retryable:false,httpStatus:502,wireMessage:"the pet profile response carried no pet_ref"})):U(u)},async deletePet(i,l){let a=r(i);if(typeof a!="string")return V(a);let s=await e.send("pets.deletePet",n({method:"DELETE",path:a},l?.signal));return s.ok?U(void 0):V(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?U(void 0):V(l.error)}}}o(Qp,"createPetsRepositoryOver");function Ze(){let{runtime:e,userRef:t,activePet:n,scopeEpoch:r}=He(),i=react.useMemo(()=>_s(e.registry.services.authFor(t)),[e,t,r]),[l,a]=react.useState({repository:i,pets:[],loading:true,error:null}),s=l.repository===i?l:{pets:[],loading:true,error:null},u=react.useRef(0),d=react.useCallback(async()=>{let y=++u.current;a(v=>({...v,repository:i,loading:true,error:null,pets:v.repository===i?v.pets:[]}));let g=await i.list();y===u.current&&a(g.ok?{repository:i,pets:g.value,loading:false,error:null}:v=>({repository:i,pets:v.repository===i?v.pets:[],loading:false,error:g.error}));},[i]);react.useEffect(()=>(d(),()=>{u.current+=1;}),[d]);let c=react.useMemo(()=>n===null?null:s.pets.find(y=>y.petRef===n)??null,[n,s.pets]);return react.useMemo(()=>({pets:s.pets,activePet:c,loading:s.loading,error:s.error,refresh:d}),[s.pets,s.loading,s.error,c,d])}o(Ze,"useEverfurPets");var rf=Object.freeze([{id:"itchy-skin",label:"Itchy skin and allergies"},{id:"ear-infections",label:"Ear problems"},{id:"upset-stomach",label:"Upset stomach"},{id:"anxiety",label:"Anxiety and behavior"},{id:"parasites",label:"Fleas, ticks and heartworm"},{id:"joint-pain",label:"Joints and mobility"},{id:"eye-issues",label:"Eyes"},{id:"urinary",label:"Peeing and urinary"},{id:"surgery-aftercare",label:"Surgery aftercare"},{id:"senior-care",label:"Senior care"},{id:"wellness",label:"A wellness check-in"}].map(e=>Object.freeze(e))),of="other";function Ps(e){return Object.freeze([...rf,Object.freeze({id:of,label:p.otherIssue})])}o(Ps,"televetIssueChips");function Is(e,t){let n=e.filter(i=>i.trim().length>0),r=t.trim();return n.length===0?r:r.length===0?n.join(", "):`${n.join(", ")}
|
|
2
|
+
${r}`}o(Is,"composeTelevetReason");var ol=Object.freeze([["AL","Alabama"],["AK","Alaska"],["AZ","Arizona"],["AR","Arkansas"],["CA","California"],["CO","Colorado"],["CT","Connecticut"],["DE","Delaware"],["DC","District of Columbia"],["FL","Florida"],["GA","Georgia"],["HI","Hawaii"],["ID","Idaho"],["IL","Illinois"],["IN","Indiana"],["IA","Iowa"],["KS","Kansas"],["KY","Kentucky"],["LA","Louisiana"],["ME","Maine"],["MD","Maryland"],["MA","Massachusetts"],["MI","Michigan"],["MN","Minnesota"],["MS","Mississippi"],["MO","Missouri"],["MT","Montana"],["NE","Nebraska"],["NV","Nevada"],["NH","New Hampshire"],["NJ","New Jersey"],["NM","New Mexico"],["NY","New York"],["NC","North Carolina"],["ND","North Dakota"],["OH","Ohio"],["OK","Oklahoma"],["OR","Oregon"],["PA","Pennsylvania"],["RI","Rhode Island"],["SC","South Carolina"],["SD","South Dakota"],["TN","Tennessee"],["TX","Texas"],["UT","Utah"],["VT","Vermont"],["VA","Virginia"],["WA","Washington"],["WV","West Virginia"],["WI","Wisconsin"],["WY","Wyoming"]].map(([e,t])=>Object.freeze({code:e,name:t})));function In(e){let t=e?.trim().toUpperCase()??"";return ol.find(n=>n.code===t)?.name??t}o(In,"televetStateName");function As(e,t){return e?e.wellnessAvailable?e.prescriptionsAvailable?H(p.wherePrescribeMetaTemplate,{pet:t}):p.whereWellnessMeta:p.stateBlockedTitle:null}o(As,"televetWhereMeta");function af(e,t,n,r){if(!e||!t||!n||!t.prescriptionsAvailable)return null;let i=n.trim().toUpperCase();return e.licensedStates.some(a=>a.state.trim().toUpperCase()===i&&a.canPrescribe)?H(p.whereLicensedTemplate,{vet:e.displayName,state:In(i),pet:r}):null}o(af,"televetWhereLicensedLine");function Vs(e){let{hostState:t,state:n,policy:r,clinician:i,petName:l,controller:a,onState:s}=e,u=t&&Ie(t)?t.trim().toUpperCase():null,d=n&&Ie(n)?n.trim().toUpperCase():null,c=kn(u,a),[y,g]=react.useState(u===null||d!==null&&d!==u),v=u===null||y,k=react.useCallback(()=>{u!==null&&(g(false),s(u));},[u,s]),T=react.useCallback(()=>{g(true),d===u&&s(null);},[d,u,s]),w=react.useCallback(E=>{g(true),s(E.trim().toUpperCase());},[s]),x=u===null?null:{code:u,name:In(u),meta:As(c.data,l)},R=v&&d!==null&&(u===null||d!==u||y)?d:null,_=R===null?null:{code:R,name:In(R),meta:As(r.data,l)};return {hostPlace:x,otherSelected:v,otherPlace:_,licensedLine:af(i,r.data,d,l),stateName:d===null?null:In(d),canContinue:d!==null,pickHost:k,pickOther:T,pickState:w}}o(Vs,"useTelevetWhere");function Ds(e){let{reasonText:t,state:n,hostState:r,clinicianId:i,clinicians:l,policy:a,petName:s,controller:u,dispatch:d}=e,[c,y]=react.useState([]),[g,v]=react.useState(null),k=react.useRef(false),T=react.useMemo(()=>Ps(),[]),w=c.map(P=>T.find(L=>L.id===P)?.label??"").filter(Boolean),x=Is(w,t),R=w.length>0?w.join(", "):t.trim(),_=react.useCallback(P=>y(L=>L.includes(P)?L.filter(J=>J!==P):[...L,P]),[]),E=l?.find(P=>P.clinicianId===i)??l?.[0]??null,S=Vs({hostState:r,state:n,policy:a,clinician:E,petName:s??p.petFallback,controller:u,onState:react.useCallback(P=>{k.current=true,d({type:"patch",patch:{state:P,clinicianId:null}});},[d])});return {issueChips:T,concernIds:c,toggleConcern:_,composedReason:x,aboutLine:R,emergencyAnswer:g,setEmergencyAnswer:v,where:S,matchedClinician:E,whereTouched:k}}o(Ds,"useTelevetBookingIntake");var en=Object.freeze(["pet","where","issues","reason","emergency","clinician","time","review","booked"]),Fs=Object.freeze({petId:null,state:null,clinicianId:null,slot:null,holdExpiresAt:null,shareHealthRecords:false,idempotencyKey:null});function al(e,t={}){let n=Object.freeze({...Fs,...t}),r=il(0,e);return Object.freeze({index:r,draft:n,furthestIndex:r})}o(al,"initialTelevetBookingState");function An(e,t){return e==="pet"?t.ownedPetCount<=1:e==="issues"?t.withIssues!==true:false}o(An,"isSkipped");function Dr(e){return en[e]}o(Dr,"stepAt");function il(e,t){for(let n=e;n<en.length;n+=1){let r=Dr(n);if(r&&!An(r,t))return n}return en.length-1}o(il,"nextVisible");function Ls(e,t){for(let n=e;n>=0;n-=1){let r=Dr(n);if(r&&!An(r,t))return n}return null}o(Ls,"previousVisible");function sl(e,t){return Ls(e.index-1,t)!==null}o(sl,"hasPreviousStep");function dl(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=il(e.index+1,n);return Object.freeze({...e,index:r,furthestIndex:Math.max(e.furthestIndex,r)})}case "back":{if(Dr(e.index)==="booked")return e;let r=Ls(e.index-1,n);return r===null?e:Object.freeze({...e,index:r})}case "goTo":{let r=en.indexOf(t.step);if(r<0)return e;let i=An(t.step,n)?il(r,n):r;return Object.freeze({...e,index:i,furthestIndex:Math.max(e.furthestIndex,i)})}default:return e}}o(dl,"televetBookingReducer");function ul(e){return en.filter(t=>t!=="booked"&&(e===void 0||!An(t,e)))}o(ul,"televetBarSteps");function Bs(e,t,n=false){let r=e==="reason"&&n?"emergency":e,i=r==="booked"||t.includes(r)?t:ul();return {current:r==="booked"?i.length:i.indexOf(r)+1,total:i.length,steps:i}}o(Bs,"televetBarPosition");function cl(e){return Dr(e.index)??"pet"}o(cl,"currentStep");function Vn(e,t){let n=t.trim();return !!e.petId&&!!e.clinicianId&&!!e.slot&&Ie(e.state)&&n.length>0&&n.length<=lt}o(Vn,"canConfirm");function Fr(e,t){if(!e.holdExpiresAt)return false;let n=Date.parse(e.holdExpiresAt);return Number.isNaN(n)?false:n<=t}o(Fr,"isHoldExpired");function Ms(e,t,n){return e.slot?.slotId!==t||e.holdExpiresAt===null||e.idempotencyKey===null?false:!Fr(e,n)}o(Ms,"holdsSlot");var zs=Object.freeze({slot:null,holdExpiresAt:null,idempotencyKey:null}),uf=go();function pl(e){return `televet.book.${uf()}.${e}`}o(pl,"televetBookingKey");function fl(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(fl,"attestation");function xe(e){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}o(xe,"parse");function Ue(e){let t=xe(e);return t?t.toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"}):""}o(Ue,"formatClock");function yl(e){let t=xe(e);return t?t.toLocaleDateString(void 0,{month:"long",day:"numeric"}):""}o(yl,"formatDate");function ml(e){let t=xe(e);return t?t.toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"}):""}o(ml,"formatDayLong");var tn=10;function Nt(e){let t=xe(e);return t?new Intl.DateTimeFormat(void 0,{timeZoneName:"short"}).formatToParts(t).find(r=>r.type==="timeZoneName")?.value??"":""}o(Nt,"formatZone");function cf(e){let t=xe(e);if(!t)return "";let n=new Date(t.getTime()+tn*6e4).toISOString(),r=Nt(e),i=`${Ue(e)} - ${Ue(n)}`;return r&&r!==""?`${i} ${r}`:i}o(cf,"formatVisitRange");function js(e){let t=yl(e),n=[Ue(e),Nt(e)].filter(Boolean).join(" ");return [t,n].filter(Boolean).join(", ")}o(js,"formatWhen");function On(e){let t=xe(e);return t?[t.toLocaleDateString(void 0,{weekday:"short"}),js(e)].filter(Boolean).join(", "):""}o(On,"formatWhenWithDay");function nn(e){let t=xe(e);if(!t)return "";let n=t.toLocaleDateString(void 0,{weekday:"short"}),r=t.toLocaleDateString(void 0,{year:"numeric",month:"long",day:"numeric"}),i=[Ue(e),Nt(e)].filter(Boolean).join(" ");return [n,r,i].filter(Boolean).join(", ")}o(nn,"formatRecordWhen");function gl(e){return [Ue(e),Nt(e)].filter(Boolean).join(" ")}o(gl,"formatClockWithZone");function Nn(e){let t=xe(e);return t?`${t.getFullYear()}-${t.getMonth()+1}-${t.getDate()}`:"unknown"}o(Nn,"localDayKey");function Hs(e){let t=xe(e);return t===null?"":t.toLocaleDateString(void 0,{month:"long"})}o(Hs,"formatMonthLabel");function vl(e){let t=xe(e);return t===null?"":t.toLocaleDateString(void 0,{weekday:"long",month:"long",day:"numeric"})}o(vl,"formatFullDayLabel");function Us(e){return e.toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"})}o(Us,"shortDay");function Dt(e){let t=xe(e);return t?[Us(t),gl(e)].filter(Boolean).join(" \xB7 "):""}o(Dt,"formatVisitDayTime");function bl(e){return xe(e)?`${vl(e)} at ${gl(e)}`:""}o(bl,"formatBookedWhen");function Ws(e,t=false){let n=xe(e);return n?`${Us(n)} at ${t?gl(e):Ue(e)}`:""}o(Ws,"formatMoveTo");function $s(e){let t=xe(e),n=t===null?0:t.getHours();return n<12?"morning":n<17?"afternoon":"evening"}o($s,"televetDayPeriod");function Ks(e){let{draft:t,reasonText:n,book:r,stateAttested:i,termsAttested:l,cancellationPolicy:a,triage:s,goTo:u,releaseSlot:d,setFailure:c,setEmergency:y,setBookedConsult:g,onBooked:v,media:k}=e,T=react.useCallback(x=>{let R=t.idempotencyKey;if(!Vn(t,n)||!R||k?.sending)return;if(Fr(t,Date.now())){c("expired"),u("time");return}let _=o(S=>{let P=gt(S);if(P.kind==="emergency"){y(P.categories);return}if(P.kind==="rate_limited"){c("rate_limited");return}c(P.kind==="not_entitled"?"not_entitled":P.kind==="slot_taken"?"taken":P.kind==="clinician_unavailable"?"clinician_unavailable":P.kind==="unavailable"?"unavailable":"failed"),P.kind==="slot_taken"&&(d(),u("time"));},"refuse");c(null),y(null);let E=o(S=>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:S,emergency_acknowledged:x||s.isAcknowledged(n),share_health_records:t.shareHealthRecords,...fl(i,l,a)},R,{onSuccess:o(P=>{if(!vr(P)){_(yr(P.status));return}g(P),u("booked"),v?.(P);},"onSuccess"),onError:o(P=>_(mr(P)),"onError")}),"bookWith");if(!k){E([]);return}k.send().then(E,()=>E([]));},[t,n,r,i,l,a,s,u,d,c,y,g,v,k]),w=react.useCallback(()=>T(false),[T]);return {submitBooking:T,confirm:w}}o(Ks,"useBookingSubmit");function ff(e){if(e.httpStatus===409)return Object.freeze({failure:"taken"});switch(gt(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(ff,"televetHoldFailure");function Ys(e){let{draft:t,hold:n,dispatch:r,setFailure:i,refetchSlots:l}=e;return react.useCallback(a=>{if(i(null),Ms(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:pl(a.slotId)}}),r({type:"next"});},"onSuccess"),onError:o(s=>{let u=ff(s);i(u.failure),u.failure==="taken"&&l();},"onError")});},[t,n,r,i,l])}o(Ys,"useSlotHold");function Gs(e){let t=e?.triage;return !e||!t?null:async(n,r)=>{let i=await t.call(e,n,r);return i.ok?i.value:null}}o(Gs,"televetTriageReadFrom");function El(e){let[t,n]=react.useState(false),[r,i]=react.useState(false),[l,a]=react.useState(null),s=react.useRef(null),u=react.useRef(null),d=react.useRef(true);react.useEffect(()=>(d.current=true,()=>{d.current=false,u.current?.abort(),u.current=null;}),[]);let c=react.useCallback(()=>{u.current?.abort(),u.current=null,d.current&&i(false);},[]),y=react.useCallback(async w=>{if(u.current!==null)return false;let x=w.trim();if(l!==null&&l===x||!e)return true;let R=s.current!==null&&s.current.reason===x?s.current.emergency:null;if(R===null){let _=new AbortController;u.current=_,i(true);try{let E=await e(x,_.signal);if(_.signal.aborted||!d.current)return !1;E===null?R=!1:(R=E.isEmergency||E.fallback,s.current=Object.freeze({reason:x,emergency:R}));}catch{if(_.signal.aborted||!d.current)return false;R=false;}finally{u.current===_&&(u.current=null,d.current&&i(false));}}return R===true?(n(true),false):true},[l,e]),g=react.useCallback(w=>{a(w.trim()),n(false);},[]),v=react.useCallback(()=>n(false),[]),k=react.useCallback(()=>{c(),s.current=null,a(null),n(false);},[c]),T=react.useCallback(w=>l!==null&&l===w.trim(),[l]);return {open:t,checking:r,check:y,acknowledge:g,close:v,cancel:c,reset:k,isAcknowledged:T}}o(El,"useEarlyTriage");function bf(e){let t=e?.trim().toUpperCase()??"";return /^[A-Z]{2}$/.test(t)?t:null}o(bf,"normalizeStateCode");function kl(e,t){let n=bf(e),[r,i]=react.useState(()=>Object.freeze({})),l=react.useRef(0),a=react.useRef(null),s=react.useCallback(u=>{if(!t||n===null)return null;let d=`${n}:${u}`;a.current!==null&&a.current!==d&&(l.current+=1),a.current=d;let c=r[d]??"idle";return {joined:c==="joined",pending:c==="pending",failed:c==="failed",onPress:o(()=>{if(c==="pending"||c==="joined")return;let y=l.current+=1;i(g=>Object.freeze({...g,[d]:"pending"})),(async()=>{let g=false;try{g=await t(n,u);}catch{g=false;}l.current===y&&i(v=>Object.freeze({...v,[d]:g?"joined":"failed"}));})();},"onPress")}},[n,r,t]);return react.useMemo(()=>({actionFor:s}),[s])}o(kl,"useStateInterest");function Sl(e){return Object.freeze(e==="dark"?{title:p.noCliniciansTitle,message:p.noCliniciansBody,retryLabel:p.noCliniciansRetryCta,interestReason:null}:{title:p.noCliniciansTitle,message:p.noCliniciansRegionBody,retryLabel:null,interestReason:"no_licensed_vet"})}o(Sl,"televetEmptyRosterView");function Cl(e){return e?"roster":"dark"}o(Cl,"televetEmptyRosterCause");var Dn=120;function Xs(e){if(!e)return "attachment";let t=e.replace(/[\\/]+/g," ").replace(/[\x00-\x1f\x7f"]/g,"").replace(/\s+/g," ").trim();if(!t)return "attachment";if(t.length<=Dn)return t;let n=t.lastIndexOf(".");if(n===-1||n===t.length-1)return t.slice(0,Dn);let r=t.slice(n);return r.length>=Dn?t.slice(0,Dn):`${t.slice(0,n).slice(0,Dn-r.length)}${r}`}o(Xs,"sanitizeFilename");var hf=o(e=>Object.freeze({ok:true,value:e}),"ok"),xl=o(e=>Object.freeze({ok:false,error:e}),"err");function Rl(e,t,n,r){return Object.freeze({code:e,retryable:t,filename:n,...r??{}})}o(Rl,"failure");async function Qs(e,t,n,r){let i=o(()=>r?.signal?.aborted===true,"cancelled");if(i())return xl(Rl("cancelled",true,n.filename));try{return await e.postMultipart(t,n.file,{...r?.signal?{signal:r.signal}:{},...r?.onProgress?{onProgress:r.onProgress}:{}}),hf(void 0)}catch{return i()?xl(Rl("cancelled",true,n.filename)):xl(Rl("server",true,n.filename))}}o(Qs,"uploadAttachmentBytes");var kt=Object.freeze({failed:0,refused:Object.freeze({size:0,type:0,unreadable:0})});function wl(e){let{failed:t,refused:n}=e;return t<=0&&n.size<=0&&n.type<=0&&n.unreadable<=0}o(wl,"isMediaShortfallEmpty");function _l(e){let t=o(r=>Number.isFinite(r)&&r>0?Math.floor(r):0,"count"),n=p.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=>H(r.n===1?r.one:r.many,{n:String(r.n)}))}o(_l,"televetMediaShortfallLines");function Lr(e){let t=Number.isFinite(e)&&e>0?Math.floor(e):0;return t===0?kt:Object.freeze({failed:t,refused:kt.refused})}o(Lr,"mediaShortfallFromUnsentPicks");function Tf(e,t){let n=Lr(t);return n.failed===0?e:Object.freeze({failed:e.failed+n.failed,refused:e.refused})}o(Tf,"withUnsentPicks");var Ef=6e4;function ed(e){let t=fr(e.filename,e.mimeType);return t===null?null:{file:{uri:e.uri,name:e.filename,mimeType:t,sizeBytes:e.fileSize},filename:e.filename,contentType:t,sizeBytes:e.fileSize}}o(ed,"validated");function kf(e,t){if(e?.kind!=="ready")return null;let n=e.policy.expires_in_seconds*1e3;return t-e.at<n-Ef?e.policy:null}o(kf,"fresh");function td({media:e,controller:t,transport:n}){let[r,i]=react.useState(()=>new Map),[l,a]=react.useState(false),[s,u]=react.useState(false),d=react.useRef(r),c=react.useRef(e);c.current=e;let y=react.useRef(false),g=react.useRef(false),v=react.useRef(new AbortController);react.useEffect(()=>{let C=new AbortController;return v.current=C,()=>C.abort()},[]);let k=t?.initiateAttachment?.bind(t),T=l||k===void 0,w=react.useCallback((C,h)=>{let A=new Map(d.current);A.set(C,h),d.current=A,i(A);},[]),x=react.useCallback(()=>{y.current=true,a(true);},[]),R=react.useCallback(async(C,h)=>{if(k===void 0)return "dark";let A=await k({filename:h.filename,contentType:h.contentType,fileSize:h.sizeBytes},v.current.signal);if(v.current.signal.aborted)return null;if(A.ok)return w(C.uri,{kind:"ready",policy:A.value,at:Date.now()}),A.value;let I=na(A.error);return I==="dark"?"dark":(w(C.uri,I==="failed"?{kind:"retry"}:{kind:"refused",cause:I}),null)},[k,w]);react.useEffect(()=>{if(!T)for(let C of e){if(d.current.has(C.uri))continue;let h=ea(C),A=ed(C);if(h!==null||A===null){w(C.uri,{kind:"refused",cause:h??"type"});continue}w(C.uri,{kind:"checking"}),R(C,A).then(I=>{I==="dark"&&x();});}},[e,T,R,w,x]);let _=react.useCallback(async()=>{if(y.current||k===void 0||g.current)return [];g.current=true,u(true);let C=[];try{for(let h of c.current){let A=d.current.get(h.uri);if(A?.kind==="sent"){C.push(A.s3Key);continue}if(A?.kind==="refused")continue;let I=ed(h);if(I===null)continue;let O=kf(A,Date.now());if(O===null){let Ee=await R(h,I);if(Ee==="dark")return x(),[];if(Ee===null){d.current.get(h.uri)?.kind==="retry"&&w(h.uri,{kind:"failed"});continue}O=Ee;}if(v.current.signal.aborted)return [];let M=await Qs(n,O,I,{signal:v.current.signal});if(v.current.signal.aborted)return [];M.ok?(w(h.uri,{kind:"sent",s3Key:O.s3_key}),C.push(O.s3_key)):w(h.uri,{kind:"failed"});}return C}catch{return C}finally{g.current=false,v.current.signal.aborted||u(false);}},[k,R,w,x,n]),E=react.useMemo(()=>{if(e.length===0)return kt;if(T)return Lr(e.length);let C={size:0,type:0,unreadable:0},h=0;for(let A of e){let I=r.get(A.uri);I?.kind==="refused"?C[I.cause]+=1:I?.kind==="failed"&&(h+=1);}return h===0&&C.size+C.type+C.unreadable===0?kt:Object.freeze({failed:h,refused:Object.freeze(C)})},[e,T,r]),S=react.useMemo(()=>e.flatMap(C=>{let h=r.get(C.uri);return h?.kind==="sent"?[{key:h.s3Key,pick:C}]:[]}),[e,r]),P=react.useCallback(C=>{if(T)return E;let h=new Set(C.mediaRefs),A=S.filter(I=>!h.has(I.key)).length;return A===0?E:Object.freeze({failed:E.failed+A,refused:E.refused})},[T,E,S]),L=react.useCallback(C=>{if(T||S.length!==1)return false;let[h]=S;return h===void 0||!C.mediaRefs.includes(h.key)?false:(fr(h.pick.filename,h.pick.mimeType)??"").startsWith("image/")},[T,S]),J=!T&&[...r.values()].some(C=>C.kind==="ready"||C.kind==="sent");return react.useMemo(()=>({shortfall:E,sending:s,live:J,send:_,bookedShortfall:P,sentOnePhoto:L}),[E,s,J,_,P,L])}o(td,"useTelevetBookingMedia");var Sf="file",Al="multipart upload failed";function nd(e){let t;try{t=new FormData;for(let[n,r]of Object.entries(e.fields))t.append(n,r);t.append(Sf,e.file);}catch{return Promise.reject(new Error(Al))}return e.fetch!==void 0?Rf(e.fetch,e.url,t,e.signal):xf(e.url,t,e.signal)}o(nd,"postRnMultipart");function Cf(e){return e>=200&&e<300}o(Cf,"stored");function xf(e,t,n){return new Promise((r,i)=>{let l=globalThis.XMLHttpRequest;if(typeof l!="function"||n?.aborted===true){i(new Error(Al));return}let a=null,s=o(()=>{a!==null&&n?.removeEventListener("abort",a);},"release"),u=o(()=>{s(),i(new Error(Al));},"fail");try{let d=new l;d.open("POST",e),d.withCredentials=!1,d.onload=()=>{s(),r(Cf(d.status));},d.onerror=u,d.ontimeout=u,d.onabort=u,n!==void 0&&(a=o(()=>{try{d.abort();}finally{u();}},"onAbort"),n.addEventListener("abort",a,{once:!0})),d.send(t);}catch{u();}})}o(xf,"postWithXhr");function Rf(e,t,n,r){return Promise.resolve().then(()=>e(t,{method:"POST",body:n,credentials:"omit",...r?{signal:r}:{}})).then(i=>i.ok)}o(Rf,"postWithFetch");var wf="chat attachment upload: the file handle has no uri",_f="chat attachment upload failed";function Pf(e){return {uri:e.uri,name:Xs(e.name),type:e.mimeType}}o(Pf,"filePartOf");function rd(e={}){return Object.freeze({postMultipart(t,n,r){if(typeof n.uri!="string"||n.uri.length===0)return Promise.reject(new Error(wf));let{signal:i,onProgress:l}=r,a=o(()=>Promise.reject(new Error(_f)),"failed");return i?.aborted===true?a():nd({url:t.upload_url,fields:t.upload_fields,file:Pf(n),signal:i,fetch:e.fetch}).then(s=>{if(!s)return a();l?.(1);},a)}})}o(rd,"createRnChatAttachmentTransport");var Ve=Object.freeze({title:"Vet test mode (sandbox tenants)",create:"Create a simulated visit for this pet",createLabel:"Create",visitTemplate:"Visit {visitRef}: {status}, scheduled {scheduledAt}.",eventsNote:"Raise one of the visit events that is not a status change, to see what a tap on it opens:",advance:Object.freeze({completed:"Complete it",cancelled:"Cancel it",no_show:"Mark no-show"}),events:Object.freeze({rescheduled:"Rescheduled",reminder:"Reminder (24h)",followup_sent:"Follow-up sent",message_received:"Vet replied",ended:"Ended"}),resultTemplate:"{label}: {result}.",errorTemplate:"{label}: {message}"});var Vl="/widget/v1/televet/sandbox/visits",If=128,od=64,ad=new Set(["booked","cancelled","completed","no_show"]),Af=new Set(["applied","already_applied","not_applicable"]),ld=new Set(["rescheduled","reminder","followup_sent","message_received","ended"]),id=new Set(["24h","30m"]);function Ft(e){return ce("validationFailed",{retryable:false,wireMessage:e})}o(Ft,"invalid");function Ol(e,t,n){return typeof t!="string"||t.length===0?Ft(`${e} is required and must be a non-empty string`):Qt(t)?Ft(`${e} contains an unpaired surrogate and cannot be encoded`):Zt(t)>n?Ft(`${e} is longer than ${n} characters`):null}o(Ol,"textError");function Vf(e){if(typeof e!="object"||e===null)return null;let{result:t,visit:n}=e;if(typeof t!="string"||!Af.has(t)||typeof n!="object"||n===null)return null;let{visit_ref:r,pet_ref:i,status:l,scheduled_at:a}=n;return typeof r!="string"||r.length===0||typeof i!="string"||i.length===0||typeof l!="string"||!ad.has(l)||typeof a!="string"||a.length===0?null:Object.freeze({result:t,visit:Object.freeze({visitRef:r,petRef:i,status:l,scheduledAt:a})})}o(Vf,"mapActionResult");function sd(e){let t=e.funnel??Pt({auth:e.auth,...e.errorPolicy?{errorPolicy:e.errorPolicy}:{}}),n=o(async(r,i,l)=>{let a=await t.send(r,{method:"POST",path:i,body:l},{idempotent:false,maxAttempts:1});if(!a.ok)return V(a.error);let s=Vf(a.value);return s===null?V(ce("internalError",{retryable:false})):U(s)},"run");return {createVisit(r){let i=Ol("pet_ref",r,If);return i!==null?Promise.resolve(V(i)):n("televet.sandbox.createVisit",Vl,{pet_ref:r})},advanceVisit(r,i){let l=Ol("visit_ref",r,od);if(l!==null)return Promise.resolve(V(l));if(typeof i!="string"||!ad.has(i))return Promise.resolve(V(Ft("to must be booked, cancelled, completed or no_show")));let a=`${Vl}/${encodeURIComponent(r)}/advance`;return n("televet.sandbox.advanceVisit",a,{to:i})},simulateVisitEvent(r,i,l){let a=Ol("visit_ref",r,od);if(a!==null)return Promise.resolve(V(a));if(typeof i!="string"||!ld.has(i))return Promise.resolve(V(Ft(`event must be one of ${[...ld].join(", ")}`)));if(i==="reminder"){if(typeof l!="string"||!id.has(l))return Promise.resolve(V(Ft(`stage must be one of ${[...id].join(", ")} for a reminder`)))}else if(l!==void 0)return Promise.resolve(V(Ft("stage is only for a reminder")));let s=`${Vl}/${encodeURIComponent(r)}/simulate`;return n("televet.sandbox.simulateVisitEvent",s,l===void 0?{event:i}:{event:i,stage:l})}}}o(sd,"createVetVisitSandboxController");function dd(){let{runtime:e,userRef:t,scopeEpoch:n}=He();return react.useMemo(()=>{let{services:r}=e.registry;return sd({auth:r.authFor(t),...r.errorPolicy?{errorPolicy:r.errorPolicy}:{}})},[e,t,n])}o(dd,"useEverfurVetVisitSandbox");function Ff(e,t){return !e||!t.enabled?false:t.data!==null&&t.data.active===false||Rn({error:t.error??null})}o(Ff,"televetOpensSimulator");var Lf=o(e=>e.livemode===false,"isSandbox");function Bf(){let e=He().runtime.entitlements,t=react.useCallback(()=>Lf(e.getSnapshot()),[e]);return react.useSyncExternalStore(e.subscribe,t,t)}o(Bf,"useTelevetSandboxTenant");function cd(e,t){let n=Ff(Bf(),e);return {simulate:n,fundingRefused:t&&!n}}o(cd,"useTelevetSimulatorRoute");function pd(e){let t=dd(),[n,r]=react.useState(null),[i,l]=react.useState(null),[a,s]=react.useState(false),u=react.useRef(false),d=react.useRef(true);react.useEffect(()=>(d.current=true,()=>{d.current=false;}),[]);let c=react.useCallback((T,w,x)=>{u.current||(u.current=true,s(true),w().then(R=>{if(u.current=false,!!d.current){if(s(false),!R.ok){l({tone:"danger",text:H(Ve.errorTemplate,{label:T,message:R.error.displayMessage})});return}x&&r(R.value.visit),l({tone:"ok",text:H(Ve.resultTemplate,{label:T,result:R.value.result})});}}));},[]),y=react.useCallback(()=>{c(Ve.createLabel,()=>t.createVisit(e),true);},[e,c,t]),g=react.useCallback(T=>{n!==null&&c(Ve.advance[T],()=>t.advanceVisit(n.visitRef,T),true);},[c,t,n]),v=react.useCallback(T=>{if(n===null)return;let w=T==="reminder"?"24h":void 0;c(Ve.events[T],()=>t.simulateVisitEvent(n.visitRef,T,w),false);},[c,t,n]),k=n===null?null:H(Ve.visitTemplate,{visitRef:n.visitRef,status:n.status,scheduledAt:n.scheduledAt});return {visit:n,visitLine:k,line:i,busy:a,create:y,advance:g,raise:v}}o(pd,"useTelevetVisitSimulator");var fd=Object.freeze(["completed","cancelled","no_show"]),yd=Object.freeze(["rescheduled","reminder","followup_sent","message_received","ended"]);function Ml(e){if(typeof e=="number")return md(e);if(typeof e!="string")return null;let t=e.trim();if(t.length===0)return null;if(t.startsWith("#"))return Dl(t.slice(1));if(t.toLowerCase().startsWith("0x"))return Dl(t.slice(2));if(t.toLowerCase().startsWith("rgb"))return Mf(t);if(/^[0-9a-fA-F]+$/.test(t)){let n=Dl(t);if(n!==null)return n}return /^\d+$/.test(t)?md(Number.parseInt(t,10)):null}o(Ml,"toRgba");function Dl(e){let t=e.trim();if(!/^[0-9a-fA-F]+$/.test(t))return null;if(t.length===3)return {r:Fl(t[0]),g:Fl(t[1]),b:Fl(t[2]),a:1};if(t.length===6)return {r:Lt(t,0),g:Lt(t,2),b:Lt(t,4),a:1};if(t.length===8){let n=Lt(t,0);return {r:Lt(t,2),g:Lt(t,4),b:Lt(t,6),a:n/255}}return null}o(Dl,"fromHex");function Mf(e){let t=e.indexOf("("),n=e.indexOf(")");if(t<0||n<0||n<t)return null;let r=e.slice(t+1,n).split(",").map(u=>u.trim());if(r.length<3)return null;let i=Ll(Number(r[0])),l=Ll(Number(r[1])),a=Ll(Number(r[2]));if(i===null||l===null||a===null)return null;let s=1;if(r.length>=4){let u=Number(r[3]);if(!Number.isFinite(u))return null;s=Math.min(1,Math.max(0,u));}return {r:i,g:l,b:a,a:s}}o(Mf,"fromRgbFunc");function md(e){if(!Number.isFinite(e))return null;let t=Math.trunc(e)>>>0,n=t>>>24&255;return {r:t>>>16&255,g:t>>>8&255,b:t&255,a:n===0?1:n/255}}o(md,"argbIntToRgba");function Lt(e,t){return Number.parseInt(e.slice(t,t+2),16)}o(Lt,"byte");function Fl(e){return Number.parseInt(`${e??"0"}${e??"0"}`,16)}o(Fl,"dup");function Ll(e){return Number.isFinite(e)?Math.min(255,Math.max(0,Math.round(e))):null}o(Ll,"clampByte");function zf(e,t,n){return `#${Bl(e)}${Bl(t)}${Bl(n)}`.toUpperCase()}o(zf,"rgbToHex");function Bl(e){return e.toString(16).padStart(2,"0")}o(Bl,"hex2");function jf(e,t){let n=e.a,r=o((i,l)=>Math.round(i*n+l*(1-n)),"mix");return {r:r(e.r,t.r),g:r(e.g,t.g),b:r(e.b,t.b),a:1}}o(jf,"composite");function gd(e,t){let n=Ml(e),r=Ml(t);if(n===null||r===null)return null;let i=n.a>=1?n:jf(n,{...r});return zf(i.r,i.g,i.b)}o(gd,"flattenOnto");function vd(e,t){let n=Ml(e);if(n===null)return null;let r=Math.min(1,Math.max(0,t));return `rgba(${n.r}, ${n.g}, ${n.b}, ${r})`}o(vd,"withAlpha");var Hf=.22;function Uf(e){let t=e.color;return {ink:t.brandInk,text:t.text.primary,muted:t.text.muted,line:t.borderRingCream,mist:t.surfaceSubtle,surface:t.surface,pink:t.scanButtonPink,onPink:t.onBubbleVet,go:t.success,alert:t.danger,alertWash:t.badgeBgCritical}}o(Uf,"televetPlainLook");function se(e){let t=e.color,n=vd(t.scanButtonPink,Hf);return {...Uf(e),pinkSoft:(n===null?null:gd(n,t.surface))??t.surface}}o(se,"televetLook");var Q=44;function Y(){let e=D();return react.useMemo(()=>Yf(e),[e])}o(Y,"useBookingStyles");function B({label:e,onPress:t,kind:n="primary",disabled:r=false,loading:i=false,fullWidth:l=true,accessibilityLabel:a,testID:s,style:u}){let d=Y(),c=D(),y=r||i;return jsxRuntime.jsxs(reactNative.Pressable,{onPress:t,disabled:y,accessibilityRole:"button",accessibilityLabel:a??e,accessibilityState:{disabled:y,busy:i},style:({pressed:g})=>[d.button,n==="primary"?d.buttonPrimary:n==="danger"?d.buttonDanger:n==="quiet"?d.buttonQuiet:d.buttonSecondary,l?d.buttonFull:d.buttonAuto,y?d.buttonDisabled:null,g&&!c.motion.reducedMotion?d.buttonPressed:null,u],testID:s,children:[i?jsxRuntime.jsx(reactNative.ActivityIndicator,{size:"small",color:n==="secondary"||n==="quiet"?c.color.brandInk:n==="danger"?c.color.onDanger:c.color.onPrimary}):null,jsxRuntime.jsx(f,{tier:"control",style:n==="secondary"||n==="quiet"?d.buttonSecondaryLabel:n==="danger"?d.buttonDangerLabel:d.buttonPrimaryLabel,children:e})]})}o(B,"TelevetButton");function q({title:e,message:t,actionLabel:n,onAction:r,testID:i}){let l=Y(),a=typeof n=="string"&&n.length>0&&typeof r=="function";return jsxRuntime.jsxs(reactNative.View,{style:l.stateCard,testID:i,children:[jsxRuntime.jsx(f,{style:l.stateTitle,accessibilityRole:"header",children:e}),t?jsxRuntime.jsx(f,{style:l.stateMessage,children:t}):null,a?jsxRuntime.jsx(B,{label:n,onPress:r,kind:"secondary",fullWidth:false}):null]})}o(q,"TelevetStateCard");function de({height:e,width:t="100%",testID:n}){let r=Y();return jsxRuntime.jsx(reactNative.View,{style:[r.skeleton,{height:e,width:t}],testID:n,accessibilityElementsHidden:true,importantForAccessibility:"no"})}o(de,"TelevetSkeletonBlock");function re({message:e,assertive:t=false,testID:n,style:r}){let i=Y();return jsxRuntime.jsx(f,{style:[i.failure,r],accessibilityLiveRegion:t?"assertive":"polite",testID:n,children:e})}o(re,"TelevetFailureLine");function Yf(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return reactNative.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:52,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:n.sm,paddingHorizontal:20,paddingVertical:n.xs,borderRadius:r.pill,borderWidth:1.5,borderColor:"transparent"},buttonFull:{alignSelf:"stretch"},buttonAuto:{alignSelf:"flex-start",minWidth:Q,minHeight:Q},buttonPrimary:{backgroundColor:t.primary,borderColor:t.primary},buttonSecondary:{borderColor:t.brandInk,backgroundColor:t.surface},buttonQuiet:{backgroundColor:"transparent",paddingHorizontal:n.sm},buttonDanger:{backgroundColor:t.danger,borderColor:t.danger},buttonDisabled:{opacity:.45},buttonPressed:{transform:[{scale:.97}]},buttonPrimaryLabel:{...b(e,"bold"),color:t.onPrimary,fontSize:l.bodyTight,lineHeight:l.bodyTight*a.snug},buttonDangerLabel:{...b(e,"bold"),color:t.onDanger,fontSize:l.bodyTight,lineHeight:l.bodyTight*a.snug},buttonSecondaryLabel:{...b(e,"bold"),color:t.brandInk,fontSize:l.bodyTight,lineHeight:l.bodyTight*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.brandInk,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,"medium"),color:t.brandInk,fontSize:l.heading,lineHeight:l.heading*a.snug,letterSpacing:-0.33},stepHelp:{...b(e,"regular"),color:t.text.primary,fontSize:l.body,lineHeight:l.body*a.relaxed},divider:{height:1,backgroundColor:t.brandBorder},scrollRoot:{flex:1,minHeight:0},scrollBody:{flex:1},scrollFooter:{paddingTop:n.md,paddingBottom:n.lg}})}o(Yf,"makeBookingStyles");function Br({petName:e,primaryVet:t,onFindEmergencyVet:n}){return true}o(Br,"hasTelevetEmergencyExitRn");function zt({petName:e,primaryVet:t,onFindEmergencyVet:n}){let r=D(),i=react.useMemo(()=>kd(r),[r]),l=e?.trim()??"",a=[];return n&&a.push(jsxRuntime.jsx(reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:p.emergency.exitFindErTitle,onPress:()=>{dr(n);},style:i.vetCard,testID:"televet-emergency-find-vet",children:jsxRuntime.jsx(reactNative.View,{style:i.vetRow,children:jsxRuntime.jsx(f,{tier:"control",style:i.vetTitle,children:p.emergency.exitFindErTitle})})},"find")),a.push(jsxRuntime.jsx(reactNative.Pressable,{accessibilityRole:"link",accessibilityLabel:`${p.emergency.poisonControl}, ${p.emergency.poisonControlDetail}`,accessibilityHint:p.emergency.startCallHint,onPress:()=>{reactNative.Linking.openURL(p.emergency.poisonControlTel).catch(()=>{});},style:i.vetCard,testID:"televet-emergency-poison-control",children:jsxRuntime.jsxs(reactNative.View,{style:i.vetText,children:[jsxRuntime.jsx(f,{tier:"control",style:i.vetTitle,children:p.emergency.poisonControl}),jsxRuntime.jsx(f,{style:i.vetDetail,children:p.emergency.poisonControlDetail})]})},"poison")),t!=null&&l.length>0&&a.push(jsxRuntime.jsx(Jf,{petName:l,vet:t},"clinic")),a.length===0?null:jsxRuntime.jsx(reactNative.View,{style:i.box,testID:"televet-emergency-exits",children:a.map((s,u)=>jsxRuntime.jsx(reactNative.View,{style:u>0?i.split:null,children:s},u))})}o(zt,"TelevetEmergencyExits");function Jf({petName:e,vet:t}){let n=D(),r=react.useMemo(()=>kd(n),[n]),i=H(p.emergency.exitPrimaryVetTitle,{petName:e}),l=t.detail?.trim()??"",a=jsxRuntime.jsx(reactNative.View,{style:r.vetRow,children:jsxRuntime.jsxs(reactNative.View,{style:r.vetText,children:[jsxRuntime.jsx(f,{tier:"control",style:r.vetTitle,children:i}),l.length>0?jsxRuntime.jsx(f,{style:r.vetDetail,children:l}):null]})});if(!t.dial)return jsxRuntime.jsx(reactNative.View,{style:r.vetCard,testID:"televet-early-emergency-primary-vet",children:a});let s=t.dial;return jsxRuntime.jsx(reactNative.Pressable,{accessibilityRole:"link",accessibilityLabel:l.length>0?`${i}, ${l}`:i,accessibilityHint:p.emergency.startCallHint,onPress:()=>{dr(s);},style:r.vetCard,testID:"televet-early-emergency-primary-vet-call",children:a})}o(Jf,"PrimaryVetCard");function kd(e){let{space:t,radius:n,type:r}=e,{size:i,lineHeight:l}=r,a=se(e);return {box:{borderRadius:n.sm,backgroundColor:a.surface,paddingHorizontal:14},split:{borderTopWidth:1,borderTopColor:a.line},vetCard:{minHeight:Q,justifyContent:"center",paddingVertical:t.md},vetRow:{flexDirection:"row",alignItems:"center",gap:t.sm},vetText:{flexShrink:1,gap:2},vetTitle:{...b(e,"bold"),color:a.ink,fontSize:i.body,lineHeight:i.body*l.snug},vetDetail:{...b(e,"regular"),color:a.muted,fontSize:i.caption,lineHeight:i.caption*l.normal}}}o(kd,"makeExitStyles");function xd({petName:e,primaryVet:t,onFindEmergencyVet:n,onContinue:r}){let i=D(),l=Y(),a=react.useMemo(()=>Wl(i),[i]);return jsxRuntime.jsxs(reactNative.View,{style:[l.stepFill,a.emergencyPanel],testID:"televet-early-emergency",children:[jsxRuntime.jsx(f,{tier:"heading",accessibilityRole:"header",accessibilityLiveRegion:"assertive",style:a.emergencyTitle,children:p.emergency.bannerTitle}),jsxRuntime.jsx(f,{style:a.emergencyLede,children:p.emergency.lede}),jsxRuntime.jsx(zt,{petName:e,primaryVet:t,onFindEmergencyVet:n}),jsxRuntime.jsx(B,{label:p.emergency.keepBookingCta,kind:"secondary",onPress:r,testID:"televet-early-emergency-continue"})]})}o(xd,"TelevetEarlyEmergency");function Hl({action:e,testIDPrefix:t}){let n=D(),r=react.useMemo(()=>Wl(n),[n]);return e===null?null:e.joined?jsxRuntime.jsxs(reactNative.View,{testID:`${t}-joined`,style:r.interestFeedback,children:[jsxRuntime.jsx(f,{tier:"control",accessibilityRole:"header",children:p.stateInterest.joinedTitle}),jsxRuntime.jsx(f,{style:r.interestBody,children:p.stateInterest.joinedBody})]}):jsxRuntime.jsxs(reactNative.View,{testID:t,style:r.interestAction,children:[jsxRuntime.jsx(B,{label:p.stateInterest.cta,kind:"secondary",loading:e.pending,disabled:e.pending,onPress:e.onPress,testID:`${t}-submit`}),e.failed?jsxRuntime.jsx(re,{message:p.stateInterest.failed,testID:`${t}-error`}):null]})}o(Hl,"TelevetStateInterestAction");function Rd({cause:e,onRetry:t,stateInterest:n=null}){let r=Sl(e);return jsxRuntime.jsxs(reactNative.View,{testID:"televet-clinicians-empty",children:[jsxRuntime.jsx(q,{title:r.title,message:r.message,...r.retryLabel!==null&&t?{actionLabel:r.retryLabel,onAction:t}:{}}),r.interestReason!==null?jsxRuntime.jsx(Hl,{action:n??null,testIDPrefix:"televet-state-interest-no-licensed-vet"}):null]})}o(Rd,"TelevetClinicianEmptyState");function Qf({onCheckAvailability:e}){return jsxRuntime.jsx(Ul,{...e?{onCheckAvailability:e}:{}})}o(Qf,"TelevetEntitlementInterestState");function Ul({onCheckAvailability:e,renderUnavailable:t}){let n=Y();return jsxRuntime.jsxs(reactNative.View,{testID:"televet-booking-not-entitled",style:n.list,children:[t?t():jsxRuntime.jsx(q,{title:p.bookingPausedTitle}),e?jsxRuntime.jsx(B,{label:p.checkAvailabilityCta,kind:"secondary",onPress:e,testID:"televet-check-state-availability"}):null]})}o(Ul,"EntitlementPausedState");function Bn({shortfall:e,testIDPrefix:t}){let n=D(),r=react.useMemo(()=>Wl(n),[n]);if(wl(e))return null;let i=_l(e);return i.length===0?null:jsxRuntime.jsx(reactNative.View,{style:r.mediaNotice,testID:`${t}-media-notice`,children:i.map((l,a)=>jsxRuntime.jsx(f,{style:r.mediaLine,accessibilityLiveRegion:"polite",testID:`${t}-media-line-${String(a)}`,children:l},l))})}o(Bn,"TelevetMediaDropNotice");function Wl(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(Wl,"makeEdgeStyles");function wd(e){let{surfaceUnavailable:t,notEntitled:n,policyBlocked:r,triageOpen:i,step:l}=e;return t||n&&l!=="clinician"||r?true:l==="reason"&&i}o(wd,"televetBookingGateApplies");function _d({state:e,petName:t,primaryVet:n,onFindEmergencyVet:r,stateInterest:i=null,onCheckAvailability:l,onAcknowledgeEmergency:a,renderUnavailable:s}){let u=Y(),{surfaceUnavailable:d,notEntitled:c,policyBlocked:y,triageOpen:g,step:v}=e;return d?jsxRuntime.jsx(reactNative.View,{style:u.stepFill,testID:"televet-booking-unavailable",children:s?s():jsxRuntime.jsx(q,{title:p.bookingPausedTitle})}):c&&v!=="clinician"?jsxRuntime.jsx(Ul,{...l?{onCheckAvailability:l}:{},...s?{renderUnavailable:s}:{}}):y?jsxRuntime.jsxs(reactNative.View,{testID:"televet-booking-state-blocked",children:[jsxRuntime.jsx(q,{title:p.stateBlockedTitle}),jsxRuntime.jsx(Hl,{action:i,testIDPrefix:"televet-state-interest-state-blocked"})]}):v==="reason"&&g?jsxRuntime.jsx(xd,{...t!==void 0?{petName:t}:{},...n?{primaryVet:n}:{},onFindEmergencyVet:r,onContinue:a}):null}o(_d,"TelevetBookingGate");var Cd=false;function Zf(){if(!Cd){Cd=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(Zf,"warnNoStateSeamOnce");function Pd(e){return e.noState?true:e.isPending||e.isError?false:e.isEmpty||e.notEntitled}o(Pd,"televetClinicianOutcomeApplies");function Id({state:e,cause:t,locationStatus:n,onRequestLocation:r,onRetry:i,stateInterest:l=null,renderUnavailable:a}){let s=e.noState&&!r;return react.useEffect(()=>{s&&Zf();},[s]),e.noState?jsxRuntime.jsx(reactNative.View,{testID:"televet-booking-location-unknown",children:jsxRuntime.jsx(q,{title:n==="blocked"?p.locationBlockedTitle:n==="unavailable"?p.locationUnavailableTitle:p.locationUnknownTitle,message:n==="blocked"?p.locationBlockedBody:n==="unavailable"?p.locationUnavailableBody:r?p.locationUnknownBody:void 0,actionLabel:r?n==="blocked"?p.locationBlockedCta:p.locationUnknownCta:void 0,onAction:r})}):e.isEmpty?jsxRuntime.jsx(Rd,{cause:t,onRetry:i,stateInterest:l}):jsxRuntime.jsx(Ul,{...a?{renderUnavailable:a}:{}})}o(Id,"TelevetClinicianOutcome");function Ad(e){return `televet-consult-${e}`}o(Ad,"televetConsultCalendarKey");function Kl({consult:e,petName:t,onDone:n,onAddToCalendar:r,canJoinInApp:i=false,sharedRecords:l=false,sentPhoto:a=false}){let s=D(),u=Y(),d=react.useMemo(()=>ly(s),[s]),[c,y]=react.useState("idle"),g=o(async()=>{if(!r)return;y("saving");let w=new Date(e.scheduledAt);if(Number.isNaN(w.getTime())){y("failed");return}let x=await ur(r,{key:Ad(e.consultId),title:p.visit.title,startDate:w,endDate:new Date(w.getTime()+tn*6e4),alarmOffsetMinutes:-30});y(x.ok&&x.value===true?"saved":"failed");},"addToCalendar"),v=e.clinicianName?.trim()??"",k=[p.booked.remindPromise,l&&v.length>0?H(a?p.booked.recordsPhotoPromiseTemplate:p.booked.recordsPromiseTemplate,{pet:t??p.petFallback,vet:v}):H(p.booked.summaryPromise,{pet:t??""}),...i?[p.booked.joinPromise]:[]],T=react.useRef(new reactNative.Animated.Value(s.motion.reducedMotion?1:0)).current;return react.useEffect(()=>{s.motion.reducedMotion||reactNative.Animated.spring(T,{toValue:1,damping:14,stiffness:180,mass:1,useNativeDriver:true}).start();},[T,s.motion.reducedMotion]),ot()?jsxRuntime.jsxs(reactNative.View,{style:d.screen,testID:"televet-booked",children:[jsxRuntime.jsx(reactNative.Animated.View,{style:[d.avatar,{opacity:T,transform:[{scale:T.interpolate({inputRange:[0,1],outputRange:[.92,1]})}]}],accessibilityElementsHidden:true,importantForAccessibility:"no-hide-descendants",children:jsxRuntime.jsx(f,{tier:"heading",style:d.avatarText,children:v.length>0?v.replace(/^dr\.?\s+/i,"").slice(0,1).toUpperCase():""})}),jsxRuntime.jsx(f,{tier:"heading",style:d.title,accessibilityRole:"header",children:v.length>0?H(p.bookedTitleTemplate,{vet:v}):p.bookedTitle}),jsxRuntime.jsx(f,{style:d.when,children:t?H(p.bookedLeadTemplate,{when:bl(e.scheduledAt),pet:t}):bl(e.scheduledAt)}),jsxRuntime.jsx(reactNative.View,{style:d.steps,accessibilityLabel:p.booked.stepsLabel,testID:"televet-booked-steps",children:k.map((w,x)=>jsxRuntime.jsxs(reactNative.View,{style:[d.step,x===k.length-1?d.stepLast:null],children:[jsxRuntime.jsx(f,{tier:"badge",style:d.stepNumberText,accessibilityElementsHidden:true,importantForAccessibility:"no",children:String(x+1).padStart(2,"0")}),jsxRuntime.jsx(f,{style:d.stepText,children:w.trim()})]},w))}),jsxRuntime.jsxs(reactNative.View,{style:d.actions,children:[c==="failed"?jsxRuntime.jsx(f,{style:[u.failure,d.calendarNote],accessibilityLiveRegion:"polite",testID:"televet-booked-calendar-failed",children:p.booked.calendarFailedBody}):null,r?jsxRuntime.jsx(B,{label:c==="saved"?p.booked.calendarAdded:p.addToCalendarCta,kind:"secondary",loading:c==="saving",disabled:c==="saving"||c==="saved",onPress:()=>{g();},testID:"televet-booked-calendar"}):null,jsxRuntime.jsx(B,{label:p.doneCta,kind:"primary",onPress:n,testID:"televet-booked-done"})]})]}):jsxRuntime.jsx(reactNative.View,{style:d.screen,testID:"televet-booked-copy-unapproved"})}o(Kl,"TelevetBookedScreen");function ly(e){let{space:t,radius:n,type:r}=e,{size:i,lineHeight:l}=r,a=se(e);return reactNative.StyleSheet.create({screen:{flex:1,paddingHorizontal:t.xl,paddingTop:t.lg,gap:t.md},avatar:{alignSelf:"center",width:112,height:112,borderRadius:56,backgroundColor:a.mist,borderWidth:4,borderColor:a.go,alignItems:"center",justifyContent:"center"},avatarText:{...b(e,"medium"),color:a.ink,fontSize:38,lineHeight:44},title:{textAlign:"center",...b(e,"medium"),color:a.ink,fontSize:i.heading,lineHeight:i.heading*l.snug,letterSpacing:-0.33,paddingTop:t.md},when:{textAlign:"center",...b(e,"regular"),color:a.text,fontSize:i.body,lineHeight:i.body*l.relaxed},steps:{marginTop:t.md,paddingHorizontal:t.lg,borderRadius:n.lg,borderWidth:1,borderColor:a.line,backgroundColor:a.surface},step:{flexDirection:"row",alignItems:"flex-start",gap:t.md,paddingVertical:14,borderBottomWidth:1,borderBottomColor:a.line},stepLast:{borderBottomWidth:0},stepNumberText:{width:28,...b(e,"monoBold"),color:a.ink,fontSize:13,lineHeight:i.body*l.relaxed},stepText:{flex:1,...b(e,"regular"),color:a.text,fontSize:i.body,lineHeight:i.body*l.relaxed},actions:{marginTop:"auto",paddingBottom:t.xl,gap:t.md},calendarNote:{textAlign:"center"}})}o(ly,"makeStyles");function Yl({step:e,furthestIndex:t,title:n,canGoBack:r,isDirty:i,onBack:l,onClose:a,onConfirmDiscard:s,triageOpen:u=false,stepContext:d}){let c=D(),y=react.useMemo(()=>cy(c),[c]),g=react.useMemo(()=>()=>{if(!i){a();return}let E={title:p.chrome.discardTitle,body:p.chrome.discardBody,confirmLabel:p.chrome.discardConfirmCta,keepLabel:p.chrome.discardKeepCta};if(s){Promise.resolve(s(E)).then(S=>{S&&a();},()=>{});return}reactNative.Alert.alert(E.title,E.body,[{text:E.keepLabel,style:"cancel"},{text:E.confirmLabel,style:"destructive",onPress:a}]);},[i,a,s]),v=react.useMemo(()=>()=>r?(l(),true):(g(),true),[r,l,g]);react.useEffect(()=>{let E=reactNative.BackHandler.addEventListener("hardwareBackPress",v);return ()=>{E.remove();}},[v]),Gt(v);let k=react.useMemo(()=>ul(d),[d]),{current:T,total:w,steps:x}=Bs(e,k,u),_=e==="booked"?p.bookedStepLabel:H(p.loading.progressTemplate,{step:String(T),total:String(w)});return jsxRuntime.jsx(reactNative.View,{style:y.wrap,children:jsxRuntime.jsxs(reactNative.View,{style:y.bar,children:[jsxRuntime.jsx(reactNative.Pressable,{onPress:r?l:g,accessibilityRole:"button",accessibilityLabel:zr,testID:"televet-booking-back",style:y.ring,children:jsxRuntime.jsx(reactNative.View,{style:y.chevron,accessibilityElementsHidden:true,importantForAccessibility:"no"})}),jsxRuntime.jsxs(reactNative.View,{style:y.center,accessibilityRole:"header",accessibilityLabel:`${n??p.navTitle}, ${_}`,children:[jsxRuntime.jsx(f,{tier:"compact",style:y.stepLabel,testID:"televet-booking-progress-label",children:_}),jsxRuntime.jsx(reactNative.View,{style:y.segments,accessibilityElementsHidden:true,importantForAccessibility:"no-hide-descendants",testID:"televet-booking-rail",children:x.map((E,S)=>jsxRuntime.jsx(reactNative.View,{style:[y.segment,S<T?y.segmentDone:null]},E))})]}),jsxRuntime.jsx(reactNative.Pressable,{onPress:g,accessibilityRole:"button",accessibilityLabel:p.close,accessibilityHint:p.chrome.closeHint,testID:"televet-booking-close",style:y.ring,children:jsxRuntime.jsx(f,{tier:"control",style:y.close,accessibilityElementsHidden:true,importantForAccessibility:"no",children:uy})})]})})}o(Yl,"TelevetBookingChrome");var uy="\xD7",zr="Back";function cy(e){let{space:t,type:n}=e,r=se(e);return reactNative.StyleSheet.create({wrap:{},bar:{flexDirection:"row",alignItems:"center",gap:t.md,paddingVertical:t.sm,minHeight:60},ring:{width:Q,height:Q,borderRadius:Q/2,borderWidth:1.5,borderColor:r.line,alignItems:"center",justifyContent:"center"},chevron:{width:10,height:10,marginLeft:4,borderLeftWidth:2,borderBottomWidth:2,borderColor:r.ink,transform:[{rotate:"45deg"}]},close:{...b(e,"regular"),color:r.ink,fontSize:24,lineHeight:26},center:{flex:1,alignItems:"center",gap:6},stepLabel:{...b(e,"monoBold"),color:r.ink,fontSize:12,lineHeight:16,letterSpacing:1.2,textTransform:"uppercase"},segments:{flexDirection:"row",gap:4,alignSelf:"stretch"},segment:{flex:1,height:4,borderRadius:2,backgroundColor:r.mist},segmentDone:{backgroundColor:r.go},title:{...b(e,"medium"),color:r.ink,fontSize:n.size.subtitle}})}o(cy,"makeStyles");function Nd(e){let t=[],n=e.breed?.trim();n&&t.push(n);let r=py(e.ageYears);r!==null&&t.push(`${String(r)} year${r===1?"":"s"}`);let i=e.weightKg;return typeof i=="number"&&Number.isFinite(i)&&i>0&&t.push(`${String(Math.round(i))} kg`),t.join(" \xB7 ")}o(Nd,"formatTelevetPetMetaLine");function py(e){if(typeof e!="number"||!Number.isFinite(e))return null;let t=Math.floor(e);return t>=0?t:null}o(py,"wholeYears");function Jl({media:e,onChange:t,onPickMedia:n,meta:r}){let i=D(),l=react.useMemo(()=>Ty(i),[i]),a=hr-e.length,[s,u]=react.useState(false);if(!n)return null;let d=o(async()=>{if(!(s||a<=0)){u(true);try{let c=await ur(n,a);if(!c.ok||c.value===null||c.value.length===0)return;let y=new Set(e.map(v=>v.uri)),g=c.value.filter(v=>typeof v?.uri=="string"&&v.uri.length>0&&!y.has(v.uri));if(g.length===0)return;t([...e,...g].slice(0,hr));}finally{u(false);}}},"pick");return jsxRuntime.jsxs(reactNative.View,{children:[jsxRuntime.jsxs(reactNative.View,{style:l.row,children:[e.map((c,y)=>jsxRuntime.jsxs(reactNative.View,{style:l.thumb,children:[jsxRuntime.jsx(reactNative.Image,{source:{uri:c.uri},style:l.thumbImage,resizeMode:"cover"}),c.mimeType?.startsWith("video/")?jsxRuntime.jsx(reactNative.View,{style:l.videoBadge,testID:`televet-intake-media-video-${String(y)}`,children:jsxRuntime.jsx(f,{tier:"badge",style:l.videoBadgeText,children:hy})}):null,jsxRuntime.jsx(reactNative.Pressable,{onPress:()=>t(e.filter((g,v)=>v!==y)),accessibilityRole:"button",accessibilityLabel:p.removePhotoLabel,testID:`televet-intake-media-remove-${String(y)}`,style:l.remove,children:jsxRuntime.jsx(f,{tier:"control",style:l.removeGlyph,children:by})})]},`${c.uri}-${String(y)}`)),a>0?jsxRuntime.jsx(reactNative.Pressable,{onPress:()=>{d();},disabled:s,accessibilityRole:"button",accessibilityLabel:p.addPhotoCta,accessibilityState:{busy:s,disabled:s},testID:"televet-intake-add-media",style:[l.dropzone,s?l.dropzoneBusy:null],children:s?jsxRuntime.jsx(reactNative.ActivityIndicator,{testID:"televet-intake-media-busy"}):jsxRuntime.jsx(f,{tier:"compact",style:l.dropzoneText,children:p.addPhotoCta})}):null]}),r?jsxRuntime.jsx(f,{tier:"compact",style:l.meta,testID:"televet-intake-media-meta",children:r}):null]})}o(Jl,"TelevetIntakeMedia");var by="\xD7",hy="\u25B6",Hr=92;function Ty(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return reactNative.StyleSheet.create({row:{flexDirection:"row",flexWrap:"wrap",gap:n.md,paddingTop:n.sm},thumb:{width:Hr,height:Hr,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:Q-16,height:Q-16,borderRadius:Q/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:Hr,height:Hr,borderRadius:r.md,borderWidth:1,borderStyle:"dashed",borderColor:t.brandBorder,alignItems:"center",justifyContent:"center",paddingHorizontal:n.sm},dropzoneBusy:{opacity:.6},meta:{...b(e,"regular"),color:t.text.metaCool,fontSize:l.caption,lineHeight:l.caption*a.normal,paddingTop:n.sm},dropzoneText:{...b(e,"mono"),color:t.text.metaCool,fontSize:l.nano,lineHeight:l.nano*a.normal,letterSpacing:.3,textAlign:"center"}})}o(Ty,"makeStyles");function Xl({slots:e,selectedDayKey:t,onSelectDay:n}){let r=D(),i=react.useMemo(()=>wy(r),[r]),l=react.useMemo(()=>$r(e),[e]),a=Ry(),s=l[0];return s===void 0?null:jsxRuntime.jsxs(reactNative.View,{children:[jsxRuntime.jsx(f,{tier:"compact",style:i.month,testID:"televet-day-strip-month",children:Hs(s.iso)}),jsxRuntime.jsx(reactNative.ScrollView,{ref:a.scrollRef,horizontal:true,showsHorizontalScrollIndicator:false,contentContainerStyle:i.strip,onLayout:a.onStripLayout,onContentSizeChange:a.onContentSize,testID:"televet-day-strip",children:l.map(u=>{let d=u.key===t;return jsxRuntime.jsxs(reactNative.Pressable,{onLayout:d?a.onSelectedDayLayout:void 0,onPress:()=>n(u),accessibilityRole:"button",accessibilityLabel:vl(u.iso),accessibilityState:{selected:d},testID:`televet-day-${u.key}`,style:[i.day,d?i.daySelected:null],children:[jsxRuntime.jsx(f,{tier:"compact",style:[i.dayWeekday,d?i.dayTextSelected:null],children:u.weekday}),jsxRuntime.jsx(f,{tier:"compact",style:[i.dayNumber,d?i.dayTextSelected:null],children:u.dayNumber})]},u.key)})})]})}o(Xl,"TelevetDayStrip");var xy=Object.freeze({done:false,viewport:null,content:null,chip:null});function Ry(){let e=react.useRef(null),t=react.useRef(xy),n=react.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 u=s.chip.x-(s.viewport-s.chip.width)/2,d=Math.min(Math.max(0,u),Math.max(0,s.content-s.viewport));d>0&&e.current?.scrollTo({x:d,animated:false});},[]),r=react.useCallback(a=>n({viewport:a.nativeEvent.layout.width}),[n]),i=react.useCallback(a=>n({content:a}),[n]),l=react.useCallback(a=>{let{x:s,width:u}=a.nativeEvent.layout;n({chip:{x:s,width:u}});},[n]);return {scrollRef:e,onStripLayout:r,onContentSize:i,onSelectedDayLayout:l}}o(Ry,"useRevealSelectedDay");function $r(e){let t=new Map;for(let n of e){let r=Nn(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($r,"televetDaysFromSlots");function wy(e){let{space:t,type:n}=e,{size:r,lineHeight:i}=n,l=se(e);return reactNative.StyleSheet.create({month:{...b(e,"bold"),color:l.ink,fontSize:r.body,lineHeight:r.body*i.snug,paddingBottom:t.md},strip:{gap:t.sm,paddingHorizontal:2,paddingVertical:2},day:{width:52,minHeight:64,paddingVertical:t.sm,borderRadius:14,borderWidth:1.5,borderColor:l.line,backgroundColor:l.surface,alignItems:"center",justifyContent:"center",gap:2},daySelected:{backgroundColor:l.pink,borderColor:l.ink},dayWeekday:{...b(e,"monoBold"),color:l.ink,fontSize:11,lineHeight:14,letterSpacing:.88,textTransform:"uppercase"},dayNumber:{...b(e,"medium"),color:l.ink,fontSize:r.heading,lineHeight:r.heading*i.tight},dayTextSelected:{color:l.onPink}})}o(wy,"makeStyles");function jn({slots:e,busySlotId:t,onPick:n,selectedSlot:r=null,ListHeaderComponent:i,rowTestIdPrefix:l="televet-slot",testID:a="televet-slot-list",periodLabels:s}){let u=D(),d=react.useMemo(()=>Ny(u),[u]),c=react.useMemo(()=>$r(e),[e]),[y,g]=react.useState(null),v=r?Nn(r.startsAt):null,k=Oy(c,[y,v])??c[0]?.key??null,T=react.useMemo(()=>k?e.filter(E=>Nn(E.startsAt)===k):[],[e,k]),w=i,x=react.useMemo(()=>T.map(E=>Nt(E.startsAt)),[T]),R=react.useMemo(()=>new Set(x.filter(E=>E.length>0)).size>1,[x]),_=T[0];return jsxRuntime.jsxs(reactNative.View,{style:d.root,testID:a,children:[w?jsxRuntime.jsx(w,{}):null,jsxRuntime.jsx(Xl,{slots:e,selectedDayKey:k,onSelectDay:E=>g(E.key)}),_&&!R?jsxRuntime.jsx(f,{tier:"compact",style:d.zone,testID:"televet-slot-zone",children:Nt(_.startsAt)}):null,jsxRuntime.jsx(reactNative.ScrollView,{style:d.gridScroll,contentContainerStyle:d.groups,showsVerticalScrollIndicator:false,children:Vy(T,s).map(E=>jsxRuntime.jsxs(reactNative.View,{style:d.group,children:[E.label?jsxRuntime.jsx(f,{tier:"compact",style:d.period,accessibilityRole:"header",testID:`televet-slot-period-${E.key}`,children:E.label}):null,jsxRuntime.jsx(reactNative.View,{style:d.grid,children:E.slots.map(S=>{let P=T.indexOf(S),L=t===S.slotId,J=t!==null,C=r?.slotId===S.slotId,h=R?x[P]??"":"";return jsxRuntime.jsxs(reactNative.Pressable,{onPress:()=>n(S),disabled:J,accessibilityRole:"button",accessibilityLabel:[Ue(S.startsAt),h].filter(A=>A.length>0).join(" "),accessibilityState:{disabled:J,busy:L,selected:C},testID:`${l}-${S.slotId}`,style:({pressed:A})=>[d.chip,C?d.chipPicked:null,L?d.chipBusy:null,J&&!L?d.chipDisabled:null,A&&!u.motion.reducedMotion?d.chipPressed:null],children:[jsxRuntime.jsx(f,{tier:"compact",style:[d.chipLabel,C?d.chipLabelPicked:null,L?d.chipLabelBusy:null],children:Ue(S.startsAt)}),h.length>0?jsxRuntime.jsx(f,{tier:"compact",style:[d.chipZone,C?d.chipLabelPicked:null,L?d.chipLabelBusy:null],testID:`${l}-${S.slotId}-zone`,children:h}):null]},S.slotId)})})]},E.key))})]})}o(jn,"TelevetSlotPicker");function Vy(e,t){return t?["morning","afternoon","evening"].map(r=>({key:r,label:t[r],slots:e.filter(i=>$s(i.startsAt)===r)})).filter(r=>r.slots.length>0):[{key:"all",label:null,slots:e}]}o(Vy,"groups");function Oy(e,t){for(let n of t)if(n!==null&&e.some(r=>r.key===n))return n;return null}o(Oy,"firstOffered");function Ny(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i,s=se(e);return reactNative.StyleSheet.create({root:{flex:1,minHeight:0},groups:{gap:n.lg,paddingBottom:n.xl},group:{gap:n.sm},period:{...b(e,"monoBold"),color:s.muted,fontSize:12,lineHeight:16,letterSpacing:.96,textTransform:"uppercase"},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.sm},chip:{minWidth:96,flexGrow:1,flexBasis:"28%",minHeight:44,borderRadius:r.pill,borderWidth:1.5,borderColor:s.line,backgroundColor:s.surface,alignItems:"center",justifyContent:"center",paddingHorizontal:n.md},chipPicked:{borderColor:s.ink,backgroundColor:s.pink},chipLabelPicked:{color:s.onPink},chipPressed:{transform:[{scale:.95}]},chipBusy:{backgroundColor:t.primary,borderColor:t.primary},chipDisabled:{opacity:.45},chipLabel:{...b(e,"bold"),color:s.ink,fontSize:l.bodyTight,lineHeight:l.bodyTight*a.snug,fontVariant:["tabular-nums"]},chipLabelBusy:{color:t.onPrimary},chipZone:{...b(e,"mono"),color:t.text.muted,fontSize:l.tiny,lineHeight:l.tiny*a.normal,letterSpacing:.4}})}o(Ny,"makeStyles");function xt({label:e,value:t,last:n=false,action:r,testID:i}){let l=D(),a=react.useMemo(()=>ri(l),[l]);return jsxRuntime.jsxs(reactNative.View,{style:[a.row,n?a.rowLast:null],testID:i,children:[jsxRuntime.jsx(f,{style:a.rowLabel,children:e}),jsxRuntime.jsx(f,{style:a.rowValue,children:t}),r??null]})}o(xt,"TelevetSummaryRow");function Hn({label:e,checked:t,onToggle:n,testID:r}){let i=D(),l=react.useMemo(()=>ri(i),[i]);return jsxRuntime.jsxs(reactNative.Pressable,{onPress:()=>n(!t),accessibilityRole:"checkbox",accessibilityLabel:e,accessibilityState:{checked:t},testID:r,style:l.consent,children:[jsxRuntime.jsx(reactNative.View,{style:[l.box,t?l.boxChecked:null],children:t?jsxRuntime.jsx(f,{tier:"badge",style:l.tick,children:Ly}):null}),jsxRuntime.jsx(f,{style:l.consentLabel,children:e})]})}o(Hn,"TelevetConsentCheckbox");var Ly="\u2713";function ni({children:e,testID:t}){let n=D(),r=react.useMemo(()=>ri(n),[n]);return jsxRuntime.jsx(reactNative.View,{style:r.card,testID:t,children:e})}o(ni,"TelevetSummaryCard");function ri(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i;return reactNative.StyleSheet.create({card:{borderRadius:r.lg,borderWidth:1,borderColor:t.borderRingCream,backgroundColor:t.surface,paddingHorizontal:n.lg},row:{flexDirection:"row",alignItems:"center",gap:n.md,minHeight:48,paddingVertical:n.md,borderBottomWidth:1,borderBottomColor:t.borderRingCream},rowLast:{borderBottomWidth:0},rowLabel:{width:64,...b(e,"regular"),color:t.text.muted,fontSize:l.bodyTight,lineHeight:l.bodyTight*a.normal},rowValue:{flex:1,...b(e,"bold"),color:t.brandInk,fontSize:l.bodyTight,lineHeight:l.bodyTight*a.normal},consent:{flexDirection:"row",alignItems:"flex-start",gap:n.md,minHeight:Q,paddingVertical:14,paddingHorizontal:n.lg,borderRadius:r.sm,backgroundColor:t.surfaceSubtle},box:{width:22,height:22,borderRadius:r.xs,borderWidth:1.5,borderColor:t.brandInk,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.primary,fontSize:l.bodyTight,lineHeight:l.bodyTight*a.relaxed}})}o(ri,"makeStyles");function oi({when:e,onChangeWhen:t,stateName:n,about:r,lengthMinutes:i,clinician:l,petName:a,reason:s,shareRecords:u,onToggleShare:d,stateCode:c,stateAttested:y,onToggleStateAttest:g,cancellationTerms:v,termsAttested:k,onToggleTermsAttest:T,canConfirm:w,busy:x,failure:R,onConfirm:_,emergency:E,onAcknowledgeEmergency:S,onSeeOtherVets:P,mediaShortfall:L=kt,primaryVet:J,onFindEmergencyVet:C}){let h=Y(),A=D(),I=react.useMemo(()=>Be(A),[A]),O=n??c??"",M=a?H(p.whereAttestTemplate,{pet:a,state:O}):H(p.stateAttestTemplate,{state:O}),Ee=r??s,ae=p.emergency.lede;return jsxRuntime.jsxs(reactNative.View,{style:h.scrollRoot,testID:"televet-booking-review",children:[jsxRuntime.jsxs(reactNative.ScrollView,{style:h.scrollBody,contentContainerStyle:I.body,keyboardShouldPersistTaps:"handled",showsVerticalScrollIndicator:false,testID:"televet-booking-review-scroll",children:[jsxRuntime.jsx(f,{tier:"heading",style:h.stepTitle,accessibilityRole:"header",children:p.reviewHeading}),jsxRuntime.jsxs(ni,{testID:"televet-review-summary",children:[a?jsxRuntime.jsx(xt,{label:p.summaryPet,value:a,testID:"televet-review-row-pet"}):null,l?jsxRuntime.jsx(xt,{label:p.summaryVet,value:l,testID:"televet-review-row-vet"}):null,jsxRuntime.jsx(xt,{label:p.summaryWhen,value:e,testID:"televet-review-row-when",action:t?jsxRuntime.jsx(B,{label:p.changeCta,kind:"quiet",fullWidth:false,onPress:t,testID:"televet-review-change-when"}):null}),jsxRuntime.jsx(xt,{label:p.summaryLength,value:H(p.summaryLengthTemplate,{n:String(i)}),testID:"televet-review-row-length"}),O?jsxRuntime.jsx(xt,{label:p.summaryWhere,value:O,testID:"televet-review-row-where"}):null,Ee?jsxRuntime.jsx(xt,{label:p.summaryReason,value:Ee,last:true,testID:"televet-review-row-reason"}):null]}),c?jsxRuntime.jsx(Hn,{label:M,checked:y,onToggle:g,testID:"televet-review-state-attest"}):null,v?jsxRuntime.jsx(Hn,{label:v,checked:k,onToggle:T,testID:"televet-review-terms-attest"}):null,jsxRuntime.jsx(Hn,{label:p.shareRecordsOff,checked:u,onToggle:d,testID:"televet-review-share-records"}),jsxRuntime.jsx(Bn,{shortfall:L,testIDPrefix:"televet-review"}),E?jsxRuntime.jsxs(reactNative.View,{style:I.emergencyBanner,testID:"televet-review-emergency",children:[jsxRuntime.jsx(f,{tier:"heading",accessibilityRole:"header",accessibilityLiveRegion:"assertive",style:I.emergencyTitle,children:p.emergency.bannerTitle}),jsxRuntime.jsx(f,{style:I.emergencyLede,children:ae}),E.length>0?jsxRuntime.jsx(f,{style:I.emergencyLede,testID:"televet-review-emergency-categories",children:E.join(", ")}):null,jsxRuntime.jsx(zt,{petName:a,primaryVet:J,onFindEmergencyVet:C}),jsxRuntime.jsx(B,{label:p.emergency.keepBookingCta,kind:"secondary",loading:x,disabled:x,onPress:S,testID:"televet-review-emergency-ack"})]}):null,R==="failed"?jsxRuntime.jsx(re,{message:p.confirmFailed}):null,R==="clinician_unavailable"?jsxRuntime.jsxs(reactNative.View,{style:h.list,testID:"televet-review-clinician-unavailable",children:[jsxRuntime.jsx(re,{message:p.confirmFailed}),jsxRuntime.jsx(B,{label:p.seeOtherVetsCta,kind:"secondary",onPress:P,testID:"televet-review-see-other-vets"})]}):null,R==="rate_limited"?jsxRuntime.jsx(re,{message:p.confirmFailed,testID:"televet-review-rate-limited"}):null,R==="not_entitled"?jsxRuntime.jsx(re,{message:p.bookingPausedTitle,testID:"televet-review-not-entitled"}):null]}),E?null:jsxRuntime.jsx(reactNative.View,{style:h.scrollFooter,children:jsxRuntime.jsx(B,{label:x?p.confirmBusy:p.confirmCta,kind:"primary",loading:x,disabled:!w||x||!!c&&!y||!!v&&!k,onPress:_,testID:"televet-review-confirm"})})]})}o(oi,"ReviewStep");var Uy="\u25CB";function we(e,t){return t?e.find(r=>r.petRef===t||r.petId===t)?.name??null:null}o(we,"nameOf");function jt({heading:e,lead:t,testID:n,scrollTestID:r,footer:i,children:l}){let a=Y(),s=D(),u=react.useMemo(()=>Be(s),[s]);return jsxRuntime.jsxs(reactNative.View,{style:a.scrollRoot,testID:n,children:[jsxRuntime.jsxs(reactNative.ScrollView,{style:a.scrollBody,contentContainerStyle:u.body,keyboardShouldPersistTaps:"handled",keyboardDismissMode:"interactive",showsVerticalScrollIndicator:false,...r?{testID:r}:{},children:[jsxRuntime.jsxs(reactNative.View,{style:u.head,children:[jsxRuntime.jsx(f,{tier:"heading",style:a.stepTitle,accessibilityRole:"header",children:e}),t?jsxRuntime.jsx(f,{style:a.stepHelp,children:t}):null]}),l]}),i?jsxRuntime.jsx(reactNative.View,{style:a.scrollFooter,children:i}):null]})}o(jt,"TelevetStepFrame");function Rt({title:e,meta:t,selected:n,onPress:r,testID:i,leading:l}){let a=D(),s=react.useMemo(()=>Be(a),[a]);return jsxRuntime.jsxs(reactNative.Pressable,{onPress:r,accessibilityRole:"radio",accessibilityLabel:t?`${e}, ${t}`:e,accessibilityState:{checked:n,selected:n},testID:i,style:({pressed:u})=>[s.choice,n?s.choiceSelected:null,u&&!a.motion.reducedMotion?s.pressed:null],children:[l??jsxRuntime.jsx(reactNative.View,{style:s.radio,children:jsxRuntime.jsx(reactNative.View,{style:[s.radioDot,n?s.radioDotOn:null]})}),jsxRuntime.jsxs(reactNative.View,{style:s.choiceText,children:[jsxRuntime.jsx(f,{style:s.choiceTitle,children:e}),t?jsxRuntime.jsx(f,{tier:"compact",style:s.choiceMeta,children:t}):null]})]})}o(Rt,"TelevetChoiceRow");function Kr({pets:e,isPending:t,isError:n,onRetry:r,selectedId:i,onSelect:l,onNext:a,onAddPet:s}){let u=Y(),d=D(),c=react.useMemo(()=>Be(d),[d]);return t?jsxRuntime.jsx(reactNative.View,{style:u.list,testID:"televet-pets-loading",children:[0,1].map(y=>jsxRuntime.jsx(de,{height:72},y))}):n?jsxRuntime.jsx(reactNative.View,{testID:"televet-pets-error",children:jsxRuntime.jsx(q,{title:p.chrome.loadFailedTitle,actionLabel:p.chrome.retryCta,onAction:r})}):e.length===0?jsxRuntime.jsx(reactNative.View,{testID:"televet-pets-empty",children:jsxRuntime.jsx(q,{title:p.chrome.noPetsTitle,actionLabel:p.addPetCta,onAction:s})}):jsxRuntime.jsxs(jt,{heading:p.petSelectTitle,testID:"televet-booking-pets",footer:a?jsxRuntime.jsx(B,{label:p.continueCta,kind:"primary",disabled:!i,onPress:a,testID:"televet-pets-next"}):null,children:[jsxRuntime.jsx(reactNative.View,{style:c.choices,accessibilityRole:"radiogroup",testID:"televet-pets",children:e.map(y=>jsxRuntime.jsx(Rt,{title:y.name??"",meta:Nd(y),selected:i===y.petRef,onPress:()=>l(y.petRef),testID:`televet-pet-${y.petRef}`,leading:jsxRuntime.jsx(reactNative.View,{style:c.petDisc,children:jsxRuntime.jsx(f,{tier:"compact",style:c.petDiscGlyph,children:zd(y.name??"")})})},y.petRef))}),s?jsxRuntime.jsx(B,{label:p.addAnotherPetCta,kind:"quiet",fullWidth:false,onPress:s,testID:"televet-pet-add"}):null]})}o(Kr,"PetStep");function zd(e){let t=e.trim();return t.length===0?Uy:t.slice(0,1).toUpperCase()}o(zd,"initialOf");function jd({clinicians:e,isPending:t,isError:n,selectedId:r,stateCode:i,stateName:l,onSelect:a,onRetry:s}){let u=Y(),d=D(),c=react.useMemo(()=>Be(d),[d]);if(t)return jsxRuntime.jsx(reactNative.View,{style:u.list,testID:"televet-clinicians-loading",children:jsxRuntime.jsx(de,{height:220})});if(n)return jsxRuntime.jsx(reactNative.View,{testID:"televet-clinicians-error",children:jsxRuntime.jsx(q,{title:p.chrome.loadFailedTitle,actionLabel:p.chrome.retryCta,onAction:s})});if(e.length===0)return jsxRuntime.jsx(reactNative.View,{testID:"televet-clinicians-empty",children:jsxRuntime.jsx(q,{title:p.noCliniciansTitle,message:p.noCliniciansBody,actionLabel:p.noCliniciansRetryCta,onAction:s})});let y=e.find(k=>k.clinicianId===r)??e[0];if(y===void 0)return null;let g=i?.trim().toUpperCase()??"",v=g.length>0&&y.licensedStates.some(k=>k.state.trim().toUpperCase()===g);return jsxRuntime.jsx(jt,{heading:p.yourVetTitle,testID:"televet-clinicians",footer:jsxRuntime.jsx(B,{label:p.continueCta,kind:"primary",onPress:()=>a(y.clinicianId),testID:`televet-clinician-${y.clinicianId}`}),children:jsxRuntime.jsxs(reactNative.View,{style:c.meet,children:[jsxRuntime.jsx(reactNative.View,{style:c.vetAvatar,children:jsxRuntime.jsx(f,{tier:"heading",style:c.vetAvatarText,children:zd(y.displayName)})}),jsxRuntime.jsx(f,{style:c.vetName,children:y.credentials?`${y.displayName}, ${y.credentials}`:y.displayName}),v&&l?jsxRuntime.jsx(reactNative.View,{style:c.pill,testID:"televet-vet-licensed",children:jsxRuntime.jsx(f,{tier:"badge",style:c.pillText,children:H(p.licensedPillTemplate,{state:l})})}):null,y.rating!==null&&y.ratingCount!==null?jsxRuntime.jsx(f,{tier:"compact",style:c.vetRating,testID:"televet-vet-rating",children:`\u2605 ${String(y.rating)} \xB7 ${String(y.ratingCount)} ${p.reviewsLabel}`}):null,y.bio?jsxRuntime.jsx(f,{style:c.vetBio,testID:"televet-vet-bio",children:y.bio}):null]})})}o(jd,"ClinicianStep");function Hd({slots:e,enabled:t,isPending:n,isError:r,busySlotId:i,failure:l,selectedSlot:a,nextOpening:s,onPick:u,onRetry:d,onSeeOtherVets:c}){let y=Y();return t?n?jsxRuntime.jsx(reactNative.View,{style:y.list,testID:"televet-slots-loading",children:[0,1,2].map(g=>jsxRuntime.jsx(de,{height:48},g))}):r?jsxRuntime.jsx(q,{title:p.slotsErrorTitle,actionLabel:p.retryCta,onAction:d,testID:"televet-slots-error"}):e.length===0?jsxRuntime.jsx(reactNative.View,{testID:"televet-slots-empty",children:jsxRuntime.jsx(q,{title:p.noSlotsTitle,message:s?H(p.nextOpeningTemplate,{when:On(s.startsAt)}):void 0,actionLabel:s?p.seeOtherVetsCta:void 0,onAction:s?c:void 0})}):jsxRuntime.jsxs(reactNative.View,{style:y.stepFill,testID:"televet-slots",children:[jsxRuntime.jsx(f,{tier:"heading",style:y.stepTitle,accessibilityRole:"header",children:p.timeHeading}),l==="expired"?jsxRuntime.jsx(re,{message:p.holdExpired}):null,l==="taken"?jsxRuntime.jsx(re,{message:p.slotTaken}):null,l==="failed"||l==="rate_limited"?jsxRuntime.jsx(re,{message:p.confirmFailed,testID:"televet-slots-hold-failed"}):null,jsxRuntime.jsx(jn,{slots:e,busySlotId:i,onPick:u,selectedSlot:a,periodLabels:{morning:p.timeMorning,afternoon:p.timeAfternoon,evening:p.timeEvening}})]}):jsxRuntime.jsx(reactNative.View,{testID:"televet-slots-unavailable",children:jsxRuntime.jsx(q,{title:p.bookingPausedTitle})})}o(Hd,"SlotStep");function Ud({value:e,composed:t,vetName:n,onChange:r,onNext:i,media:l,onChangeMedia:a,onPickMedia:s,mediaLive:u=false,checking:d=false}){let c=D(),y=react.useMemo(()=>Be(c),[c]),g=(t??e).trim(),v=g.length>0&&g.length<=lt,k=n?H(p.describeHeadingTemplate,{vet:n}):p.describeHeading;return jsxRuntime.jsxs(jt,{heading:k,lead:p.describeHelpLong,testID:"televet-booking-reason",scrollTestID:"televet-booking-reason-scroll",footer:jsxRuntime.jsx(B,{label:p.continueCta,kind:"primary",disabled:!v,loading:d,onPress:i,testID:"televet-reason-next"}),children:[jsxRuntime.jsxs(reactNative.View,{style:y.field,children:[jsxRuntime.jsx(f,{tier:"compact",style:y.fieldLabel,children:p.describeFieldLabel}),jsxRuntime.jsx(Ir,{value:e,onChangeText:r,multiline:true,accessibilityLabel:p.describeFieldLabel,placeholder:p.reasonPlaceholder,placeholderTextColor:c.color.text.placeholder,style:y.reasonInput,testID:"televet-reason-input"})]}),(t??e).trim().length>lt?jsxRuntime.jsx(re,{message:p.reasonTooLong}):null,jsxRuntime.jsx(Jl,{media:l,onChange:a,meta:u?p.addPhotoMeta:null,...s?{onPickMedia:s}:{}})]})}o(Ud,"ReasonStep");function Be(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i,s=se(e);return reactNative.StyleSheet.create({marker:{minHeight:1},spacer:{height:n.md},body:{gap:n.xl,paddingBottom:n.xl},head:{gap:n.sm},pressed:{transform:[{scale:.98}]},choices:{gap:n.md},choice:{flexDirection:"row",alignItems:"center",gap:n.lg,minHeight:64,paddingVertical:n.lg,paddingHorizontal:18,borderRadius:r.lg,borderWidth:1.5,borderColor:s.line,backgroundColor:s.surface},choiceSelected:{borderColor:s.ink,backgroundColor:s.pinkSoft},radio:{width:22,height:22,borderRadius:11,borderWidth:1.5,borderColor:s.ink,alignItems:"center",justifyContent:"center"},radioDot:{width:10,height:10,borderRadius:5,backgroundColor:"transparent"},radioDotOn:{backgroundColor:s.ink},choiceText:{flex:1,gap:2},choiceTitle:{...b(e,"bold"),color:s.ink,fontSize:l.body,lineHeight:l.body*a.snug},choiceMeta:{...b(e,"regular"),color:s.muted,fontSize:l.caption,lineHeight:l.caption*a.normal},petDisc:{width:48,height:48,borderRadius:24,backgroundColor:s.mist,alignItems:"center",justifyContent:"center"},petDiscGlyph:{...b(e,"medium"),color:s.ink,fontSize:l.subtitle,lineHeight:l.subtitle},meet:{alignItems:"center",gap:6,paddingVertical:n.xxl,paddingHorizontal:n.xl,borderRadius:r.lg,borderWidth:1,borderColor:s.line},vetAvatar:{width:104,height:104,borderRadius:52,borderWidth:4,borderColor:s.go,backgroundColor:s.mist,alignItems:"center",justifyContent:"center",marginBottom:n.sm},vetAvatarText:{...b(e,"medium"),color:s.ink,fontSize:36,lineHeight:40},vetName:{...b(e,"medium"),color:s.ink,fontSize:l.heading,lineHeight:l.heading*a.snug,textAlign:"center"},pill:{height:24,paddingHorizontal:10,borderRadius:r.pill,borderWidth:1.5,borderColor:s.line,justifyContent:"center",marginVertical:n.xs},pillText:{...b(e,"monoBold"),color:s.muted,fontSize:11,letterSpacing:.9,textTransform:"uppercase"},vetRating:{...b(e,"regular"),color:s.muted,fontSize:l.caption,lineHeight:l.caption*a.normal},vetBio:{...b(e,"regular"),color:s.text,fontSize:l.bodyTight,lineHeight:l.bodyTight*a.relaxed,textAlign:"center"},field:{gap:n.sm},fieldLabel:{...b(e,"bold"),color:s.ink,fontSize:l.bodyTight,lineHeight:l.bodyTight*a.snug},reasonInput:{minHeight:140,textAlignVertical:"top",borderWidth:1.5,borderColor:s.line,borderRadius:r.lg,paddingVertical:n.lg,paddingHorizontal:18,backgroundColor:s.surface,...b(e,"regular"),color:t.text.primary,fontSize:l.body,lineHeight:l.body*a.relaxed},emergencyBanner:{gap:n.md,padding:18,borderRadius:r.lg,borderWidth:1.5,borderColor:s.alert,backgroundColor:s.alertWash},emergencyTitle:{...b(e,"bold"),color:t.errorRed,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},emergencyLede:{...b(e,"regular"),color:s.text,fontSize:l.body,lineHeight:l.body*a.relaxed}})}o(Be,"makeLocalStyles");function $d({petId:e,roster:t,onAddPet:n,onPickPet:r}){return e===null?jsxRuntime.jsx(Kr,{pets:t.pets,isPending:t.loading,isError:t.error!==null,onRetry:()=>{t.refresh();},onAddPet:n,selectedId:null,onSelect:r}):jsxRuntime.jsx(qy,{petRef:e})}o($d,"TelevetVisitSimulator");function qy({petRef:e}){let t=Y(),n=pd(e);return jsxRuntime.jsx(reactNative.View,{style:t.stepFill,testID:"televet-simulator",children:jsxRuntime.jsxs(reactNative.ScrollView,{contentContainerStyle:t.list,children:[jsxRuntime.jsx(q,{title:Ve.title}),jsxRuntime.jsx(B,{label:Ve.create,onPress:n.create,kind:"secondary",disabled:n.busy,testID:"televet-simulator-create"}),n.visitLine!==null?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(f,{style:t.stateMessage,testID:"televet-simulator-visit",children:n.visitLine}),fd.map(r=>jsxRuntime.jsx(B,{label:Ve.advance[r],onPress:()=>n.advance(r),kind:"secondary",disabled:n.busy,testID:`televet-simulator-advance-${r}`},r)),jsxRuntime.jsx(f,{style:t.stateMessage,children:Ve.eventsNote}),yd.map(r=>jsxRuntime.jsx(B,{label:Ve.events[r],onPress:()=>n.raise(r),kind:"secondary",disabled:n.busy,testID:`televet-simulator-event-${r}`},r))]}):null,n.line===null?null:n.line.tone==="danger"?jsxRuntime.jsx(re,{message:n.line.text,testID:"televet-simulator-error"}):jsxRuntime.jsx(f,{style:t.stateMessage,accessibilityLiveRegion:"polite",testID:"televet-simulator-log",children:n.line.text})]})})}o(qy,"SimulatorScreen");function qd({label:e,on:t,onPress:n,testID:r,role:i="checkbox"}){let l=D(),a=react.useMemo(()=>Yr(l),[l]);return jsxRuntime.jsxs(reactNative.Pressable,{onPress:n,accessibilityRole:i,accessibilityLabel:e,accessibilityState:{checked:t},testID:r,style:({pressed:s})=>[a.pick,t?a.pickOn:null,s&&!l.motion.reducedMotion?a.pressed:null],children:[t?jsxRuntime.jsx(reactNative.View,{style:a.check,accessibilityElementsHidden:true,importantForAccessibility:"no"}):null,jsxRuntime.jsx(f,{tier:"control",style:[a.pickLabel,t?a.pickLabelOn:null],children:e})]})}o(qd,"TelevetPick");function Kd({petName:e,where:t,onNext:n}){let r=D(),i=react.useMemo(()=>Be(r),[r]),l=react.useMemo(()=>Yr(r),[r]),a=e??p.petFallback,s=t.otherSelected;return jsxRuntime.jsxs(jt,{heading:H(p.whereTitleTemplate,{pet:a}),lead:H(p.whereLeadTemplate,{pronoun:p.wherePronounFallback}),testID:"televet-booking-where",footer:jsxRuntime.jsx(B,{label:p.continueCta,kind:"primary",disabled:!t.canContinue,onPress:n,testID:"televet-where-next"}),children:[t.hostPlace?jsxRuntime.jsxs(reactNative.View,{style:i.choices,accessibilityRole:"radiogroup",accessibilityLabel:H(p.whereFormLabelTemplate,{pet:a}),children:[jsxRuntime.jsx(Rt,{title:t.hostPlace.name,meta:t.hostPlace.meta,selected:!s,onPress:t.pickHost,testID:"televet-where-host"}),jsxRuntime.jsx(Rt,{title:p.whereAnotherState,meta:t.otherPlace?.meta??null,selected:s,onPress:t.pickOther,testID:"televet-where-other"})]}):null,s?jsxRuntime.jsxs(reactNative.View,{style:i.field,children:[jsxRuntime.jsx(f,{tier:"compact",style:i.fieldLabel,accessibilityRole:"header",children:p.whereWhichState}),jsxRuntime.jsx(reactNative.View,{style:l.pickRow,accessibilityRole:"radiogroup",accessibilityLabel:p.whereWhichState,children:ol.filter(u=>u.code!==t.hostPlace?.code).map(u=>jsxRuntime.jsx(qd,{label:u.name,role:"radio",on:t.otherPlace?.code===u.code,onPress:()=>t.pickState(u.code),testID:`televet-where-state-${u.code}`},u.code))}),t.hostPlace===null&&t.otherPlace?.meta?jsxRuntime.jsx(f,{style:l.note,children:t.otherPlace.meta}):null]}):null,t.licensedLine?jsxRuntime.jsx(f,{style:l.callout,testID:"televet-where-licensed",children:t.licensedLine}):null,jsxRuntime.jsx(f,{style:l.note,children:p.whereAskEveryTime})]})}o(Kd,"WhereStep");function Yd({petName:e,chips:t,selected:n,onToggle:r,onNext:i}){let l=D(),a=react.useMemo(()=>Yr(l),[l]);return jsxRuntime.jsx(jt,{heading:H(p.issuesTitleTemplate,{pet:e??p.petFallback}),lead:p.issuesHint,testID:"televet-booking-issues",footer:jsxRuntime.jsx(B,{label:p.continueCta,kind:"primary",disabled:n.length===0,onPress:i,testID:"televet-issues-next"}),children:jsxRuntime.jsx(reactNative.View,{style:a.pickRow,accessibilityLabel:p.issuesFormLabel,children:t.map(s=>jsxRuntime.jsx(qd,{label:s.label,on:n.includes(s.id),onPress:()=>r(s.id),testID:`televet-issue-${s.id}`},s.id))})})}o(Yd,"IssuesStep");function Gd({petName:e,answer:t,onAnswer:n,onNext:r,onHandled:i,primaryVet:l,onFindEmergencyVet:a}){let s=D(),u=react.useMemo(()=>Be(s),[s]),d=react.useMemo(()=>Yr(s),[s]),c=p.emergencyCheck,y=p.emergency.lede;return jsxRuntime.jsxs(jt,{heading:H(c.titleTemplate,{pet:e??p.petFallback}),lead:c.lead,testID:"televet-booking-emergency",footer:jsxRuntime.jsx(B,{label:p.continueCta,kind:"primary",disabled:t!=="none",onPress:r,testID:"televet-emergency-next"}),children:[jsxRuntime.jsx(reactNative.View,{style:d.signs,testID:"televet-emergency-signs",children:c.signs.map(g=>jsxRuntime.jsxs(reactNative.View,{style:d.sign,children:[jsxRuntime.jsx(reactNative.View,{style:d.bullet}),jsxRuntime.jsx(f,{style:d.signText,children:g})]},g))}),jsxRuntime.jsxs(reactNative.View,{style:u.choices,accessibilityRole:"radiogroup",accessibilityLabel:c.legend,children:[jsxRuntime.jsx(Rt,{title:c.noneCta,selected:t==="none",onPress:()=>n("none"),testID:"televet-emergency-none"}),jsxRuntime.jsx(Rt,{title:c.someCta,selected:t==="some",onPress:()=>n("some"),testID:"televet-emergency-some"})]}),t==="some"?jsxRuntime.jsxs(reactNative.View,{style:u.emergencyBanner,accessibilityLiveRegion:"assertive",testID:"televet-emergency-panel",children:[jsxRuntime.jsx(f,{style:u.emergencyTitle,accessibilityRole:"header",children:p.emergency.bannerTitle}),jsxRuntime.jsx(f,{style:u.emergencyLede,children:y}),jsxRuntime.jsx(zt,{petName:e,primaryVet:l,onFindEmergencyVet:a}),jsxRuntime.jsx(B,{label:p.emergency.keepBookingCta,kind:"quiet",fullWidth:false,onPress:i,testID:"televet-emergency-handled"})]}):null]})}o(Gd,"EmergencyStep");function Yr(e){let{space:t,radius:n,type:r}=e,{size:i,lineHeight:l}=r,a=se(e);return reactNative.StyleSheet.create({pickRow:{flexDirection:"row",flexWrap:"wrap",gap:10},pick:{minHeight:44,flexDirection:"row",alignItems:"center",gap:t.sm,paddingHorizontal:t.lg,borderRadius:n.pill,borderWidth:1,borderColor:a.ink,backgroundColor:a.surface},pickOn:{backgroundColor:a.pink},pressed:{transform:[{scale:.97}]},check:{width:12,height:7,marginTop:-3,borderLeftWidth:2,borderBottomWidth:2,borderColor:a.onPink,transform:[{rotate:"-45deg"}]},pickLabel:{...b(e,"bold"),color:a.ink,fontSize:i.bodyTight,lineHeight:i.bodyTight*l.snug},pickLabelOn:{color:a.onPink},note:{...b(e,"regular"),color:a.muted,fontSize:i.bodyTight,lineHeight:i.bodyTight*l.relaxed},callout:{padding:t.md,borderRadius:n.sm,backgroundColor:a.mist,overflow:"hidden",...b(e,"regular"),color:a.text,fontSize:i.bodyTight,lineHeight:i.bodyTight*l.relaxed},signs:{gap:t.sm},sign:{flexDirection:"row",gap:t.md,alignItems:"flex-start"},bullet:{width:6,height:6,borderRadius:3,backgroundColor:a.text,marginTop:i.body*.6},signText:{flex:1,...b(e,"regular"),color:a.text,fontSize:i.body,lineHeight:i.body*l.relaxed}})}o(Yr,"makePickStyles");function ii(e){let{petRef:t,usState:n,controller:r,onBooked:i,onExit:l,onAddPet:a,onPickMedia:s,onAddToCalendar:u,onConfirmDiscard:d,onRequestLocation:c,locationStatus:y="unknown",onTriageReason:g,onStateInterest:v,primaryVet:k,onFindEmergencyVet:T,canJoinInApp:w=false,renderUnavailable:x,style:R,testID:_}=Yt(e,["onBooked","onExit","onAddPet","onRequestLocation","onFindEmergencyVet"]),E=Y(),S=D(),P=react.useMemo(()=>Be(S),[S]),L=be(r),J=Ze(),C=J.pets,h=C.length,A=react.useMemo(()=>({ownedPetCount:h,withIssues:true}),[h]),[I,O]=react.useReducer((ue,Du)=>dl(ue,Du,A),void 0,()=>al({ownedPetCount:0,withIssues:true},{petId:t??null,state:n??null})),M=react.useCallback(ue=>O(ue),[]),[Ee,ae]=react.useState(""),[z,ne]=react.useState(null),[Ce,nt]=react.useState(null),[ke,rr]=react.useState(false),[cn,pn]=react.useState(false),[or,lr]=react.useState([]),qt=react.useMemo(()=>rd(),[]),rt=td({media:or,controller:L,transport:qt}),[pt,Se]=react.useState(null),{draft:j}=I,fe=cl(I),Ri=react.useRef(j.state);Ri.current!==j.state&&(Ri.current=j.state,ke&&rr(false),cn&&pn(false));let fn=kn(j.state,L),wi=Sn(L),Kt=Fo(L),Pe=Lo(j.state,L),ft=Cn(j.clinicianId,L),ro=ft.refetch,Eu=Bo(L).data??null,oo=xn(L),_i=Mo(L),ku=react.useMemo(()=>Gs(L),[L]),je=El(g??ku),Pi=kl(j.state,v??null).actionFor("no_licensed_vet"),ir=n??null,ar=we(C,j.petId),yt=Ds({reasonText:Ee,state:j.state,hostState:ir,clinicianId:j.clinicianId,clinicians:Pe.data,policy:fn,petName:ar,controller:L,dispatch:M}),{composedReason:mt,where:lo,matchedClinician:Su}=yt;react.useEffect(()=>{ir&&!j.state&&!yt.whereTouched.current&&M({type:"patch",patch:{state:ir}});},[ir,j.state,M]),react.useEffect(()=>{t&&!j.petId&&M({type:"patch",patch:{petId:t}});},[t,j.petId,M]);let io=C.length===1?C[0]?.petRef??null:null;react.useEffect(()=>{io&&!j.petId&&M({type:"patch",patch:{petId:io}});},[io,j.petId,M]);let Ii=react.useRef(fe);Ii.current=fe;let Ai=react.useRef(j.petId);Ai.current=j.petId;let Vi=react.useRef(0);react.useEffect(()=>{if(h===Vi.current)return;Vi.current=h;let ue=h>1&&!Ai.current;M({type:"goTo",step:ue?"pet":Ii.current});},[h,M]);let ao=Pe.data?.[0]?.clinicianId??null;react.useEffect(()=>{ao&&!j.clinicianId&&M({type:"patch",patch:{clinicianId:ao}});},[ao,j.clinicianId,M]);let Cu=Ys({draft:j,hold:oo,dispatch:M,setFailure:ne,refetchSlots:ro}),{submitBooking:xu,confirm:Ru}=Ks({draft:j,reasonText:mt,book:_i,stateAttested:ke,termsAttested:cn,cancellationPolicy:wi.data??null,triage:je,goTo:react.useCallback(ue=>M({type:"goTo",step:ue}),[M]),releaseSlot:react.useCallback(()=>{M({type:"patch",patch:zs}),ro();},[M,ro]),setFailure:ne,setEmergency:nt,setBookedConsult:Se,...i?{onBooked:i}:{},media:rt}),wu=fn.enabled&&fn.data!==null&&!fn.data.wellnessAvailable&&fe!=="pet"&&fe!=="where",_u=Kt.enabled&&Kt.data?.active===false||z==="not_entitled",{simulate:Oi,fundingRefused:Ni}=cd(Kt,_u),Pu=Kt.enabled&&Kt.data!==null,Iu=Cl(Pu),Au=mt.trim().length>0||!!j.slot,Vu=L===null||z==="unavailable"||Rn(Kt)||Rn(fn),Di={noState:!j.state,isPending:Pe.enabled&&Pe.isPending,isError:Pe.isError,isEmpty:(Pe.data?.length??0)===0,notEntitled:Ni},Ou=Pd(Di),Fi={surfaceUnavailable:Vu,notEntitled:Ni,policyBlocked:wu,triageOpen:je.open,step:fe},Nu=wd(Fi);return ot()?jsxRuntime.jsxs(reactNative.View,{style:[E.screen,R],testID:_??"televet-booking",children:[jsxRuntime.jsx(Yl,{step:fe,furthestIndex:I.furthestIndex,canGoBack:!Oi&&(je.open||sl(I,A))&&fe!=="booked",isDirty:Au,onBack:()=>{if(je.open){je.close();return}je.cancel(),M({type:"back"});},onClose:()=>l?.(),triageOpen:je.open,stepContext:A,...d?{onConfirmDiscard:d}:{}}),Oi?jsxRuntime.jsx($d,{petId:j.petId,roster:J,onAddPet:a,onPickPet:ue=>M({type:"patch",patch:{petId:ue}})}):Nu?jsxRuntime.jsx(_d,{state:Fi,petName:we(C,j.petId),...k?{primaryVet:k}:{},onFindEmergencyVet:T,stateInterest:Pi,...v?{onCheckAvailability:o(()=>M({type:"goTo",step:"clinician"}),"onCheckAvailability")}:{},onAcknowledgeEmergency:()=>{je.acknowledge(mt),M({type:"next"});},...x?{renderUnavailable:x}:{}}):fe==="time"?jsxRuntime.jsx(Hd,{slots:ft.data??[],enabled:ft.enabled,isPending:ft.enabled&&ft.isPending&&ft.data===null,isError:ft.isError,busySlotId:oo.isPending?oo.variables:null,failure:z,selectedSlot:j.slot,nextOpening:Eu,onPick:Cu,onRetry:()=>ft.refetch(),onSeeOtherVets:()=>M({type:"goTo",step:"clinician"})}):fe==="review"?jsxRuntime.jsx(oi,{when:j.slot?Dt(j.slot.startsAt):"",onChangeWhen:()=>M({type:"goTo",step:"time"}),stateName:lo.stateName,about:yt.aboutLine,lengthMinutes:(j.slot?ca(j.slot):null)??tn,petName:we(C,j.petId),reason:mt.trim(),clinician:Pe.data?.find(ue=>ue.clinicianId===j.clinicianId)?.displayName??null,shareRecords:j.shareHealthRecords,stateCode:j.state,stateAttested:ke,onToggleStateAttest:rr,cancellationTerms:wi.data?.summary??null,termsAttested:cn,onToggleTermsAttest:pn,onToggleShare:ue=>M({type:"patch",patch:{shareHealthRecords:ue}}),canConfirm:Vn(j,mt),busy:_i.isPending||rt.sending,failure:z,onConfirm:Ru,emergency:Ce,onAcknowledgeEmergency:()=>xu(true),onSeeOtherVets:()=>M({type:"goTo",step:"clinician"}),mediaShortfall:rt.shortfall,primaryVet:k,onFindEmergencyVet:T}):fe==="booked"?jsxRuntime.jsx(reactNative.View,{style:E.stepFill,testID:"televet-booking-booked",children:pt?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(Kl,{consult:pt,petName:we(C,pt.petId)??we(C,j.petId),onDone:()=>l?.(),canJoinInApp:w,sharedRecords:j.shareHealthRecords,sentPhoto:rt.sentOnePhoto(pt),...u?{onAddToCalendar:u}:{}}),jsxRuntime.jsx(Bn,{shortfall:rt.bookedShortfall(pt),testIDPrefix:"televet-booked"})]}):null}):fe==="clinician"&&Ou?jsxRuntime.jsx(Id,{state:Di,cause:Iu,locationStatus:y,...c?{onRequestLocation:c}:{},onRetry:()=>Pe.refetch(),stateInterest:Pi,...x?{renderUnavailable:x}:{}}):fe==="clinician"?jsxRuntime.jsx(jd,{clinicians:Pe.data??[],isPending:Pe.enabled&&Pe.isPending,isError:Pe.isError,selectedId:j.clinicianId,stateCode:j.state,stateName:lo.stateName,onRetry:()=>Pe.refetch(),onSelect:ue=>{M({type:"patch",patch:{clinicianId:ue}}),M({type:"next"});}}):fe==="reason"?jsxRuntime.jsx(Ud,{value:Ee,composed:mt,vetName:Su?.displayName??null,onChange:ae,media:or,onChangeMedia:lr,mediaLive:rt.live,...s?{onPickMedia:s}:{},checking:je.checking,onNext:()=>{je.check(mt).then(ue=>{ue&&M({type:"next"});});}}):fe==="pet"?jsxRuntime.jsx(Kr,{pets:C,isPending:J.loading,isError:J.error!==null,onRetry:()=>{J.refresh();},onAddPet:a,selectedId:j.petId,onSelect:ue=>M({type:"patch",patch:{petId:ue}}),onNext:()=>M({type:"next"})}):fe==="where"?jsxRuntime.jsx(Kd,{petName:ar,where:lo,onNext:()=>M({type:"next"})}):fe==="issues"?jsxRuntime.jsx(Yd,{petName:ar,chips:yt.issueChips,selected:yt.concernIds,onToggle:yt.toggleConcern,onNext:()=>M({type:"next"})}):fe==="emergency"?jsxRuntime.jsx(Gd,{petName:ar,answer:yt.emergencyAnswer,onAnswer:yt.setEmergencyAnswer,onNext:()=>M({type:"next"}),onHandled:()=>{je.acknowledge(mt),M({type:"next"});},...k?{primaryVet:k}:{},onFindEmergencyVet:T}):jsxRuntime.jsx(reactNative.View,{style:P.marker,testID:`televet-booking-step-${fe}`})]}):jsxRuntime.jsx(reactNative.View,{style:[E.screen,R],testID:_??"televet-booking",children:jsxRuntime.jsx(reactNative.View,{style:E.stepFill,testID:"televet-booking-copy-unapproved",children:x?x():null})})}o(ii,"EverfurTelevetBooking");var em=2e4;function Xr(e=true,t=em){let[n,r]=react.useState(()=>Date.now());return react.useEffect(()=>{if(!e)return;r(Date.now());let i=setInterval(()=>r(Date.now()),t);return ()=>clearInterval(i)},[e,t]),n}o(Xr,"useNowMs");function tm(e){return e.httpStatus!==void 0&&!hn(e)}o(tm,"answeredBehindSwitch");function Gn(e,t=0){let n=e?.listVetThreads,r=n!==void 0,[i,l]=react.useState(()=>({availability:r?"pending":"dark",threads:[],isPending:r,error:null})),[a,s]=react.useState(0);react.useEffect(()=>{if(!e||!n){l({availability:"dark",threads:[],isPending:false,error:null});return}let d=new AbortController,c=true;return l(y=>({...y,isPending:true})),n.call(e,d.signal).then(y=>{c&&(y.ok?l({availability:"lit",threads:y.value,isPending:false,error:null}):hn(y.error)?l({availability:"dark",threads:[],isPending:false,error:null}):l(g=>({availability:tm(y.error)?"lit":g.availability,threads:g.threads,isPending:false,error:y.error})));},()=>{c&&l(y=>({...y,isPending:false}));}),()=>{c=false,d.abort();}},[e,n,t,a]);let u=react.useCallback(()=>s(d=>d+1),[]);return react.useMemo(()=>({...i,refetch:u}),[i,u])}o(Gn,"useVetThreads");function si(e,t,n={}){let r=n.now??Date.now,i=e?.listVetMessages,[l,a]=react.useState([]),[s,u]=react.useState("loading"),[d,c]=react.useState(false),[y,g]=react.useState(false),[v,k]=react.useState(n.ownerCanStart===false),[T,w]=react.useState(false),[x,R]=react.useState(null),[_,E]=react.useState(0),[S,P]=react.useState(0),L=react.useRef(true),J=react.useRef(false),C=react.useRef(false),h=react.useRef(r);h.current=r,react.useEffect(()=>(L.current=true,()=>{L.current=false;}),[]),react.useEffect(()=>{n.ownerCanStart===false&&k(true);},[n.ownerCanStart]),react.useEffect(()=>{if(a([]),c(false),!e||!i){u("ready");return}u("loading");let ae=new AbortController,z=true;return i.call(e,t,{},ae.signal).then(ne=>{if(z){if(!ne.ok){u("error");return}a([...ne.value].reverse()),c(ne.value.length>=bn),u("ready");}},()=>{z&&u("error");}),()=>{z=false,ae.abort();}},[e,i,t,S]);let A=react.useRef(null);react.useEffect(()=>{let ae=e?.markVetThreadRead;s!=="ready"||!e||!ae||A.current===t||(A.current=t,ae.call(e,t,new Date(h.current()).toISOString()).catch(()=>{}));},[s,e,t]);let I=react.useCallback(()=>{let ae=l[0];if(!e||!i||!d||ae===void 0||C.current)return;C.current=true,g(true);let z=new AbortController;i.call(e,t,{before:ae.createdAt},z.signal).then(ne=>{if(C.current=false,!L.current||(g(false),!ne.ok))return;let Ce=new Set(l.map(ke=>ke.messageId)),nt=[...ne.value].reverse().filter(ke=>!Ce.has(ke.messageId));a(ke=>[...nt,...ke]),c(ne.value.length>=bn);},()=>{C.current=false,L.current&&g(false);});},[e,i,t,d,l]),O=react.useCallback(async ae=>{let z=e?.sendVetMessage;if(!e||!z||J.current||ae.trim().length===0)return false;J.current=true,w(true),R(null);let ne=false;try{let Ce=await z.call(e,t,ae);if(!L.current)return Ce.ok;Ce.ok?(ne=!0,a(nt=>[...nt,Ce.value]),E(nt=>nt+1)):Io(Ce.error)?(k(!0),R("vetWritesFirst")):R("notSent");}catch{L.current&&R("notSent");}finally{J.current=false,L.current&&w(false);}return ne},[e,t]),M=react.useCallback(()=>P(ae=>ae+1),[]),Ee=e?.sendVetMessage!==void 0&&!v;return react.useMemo(()=>({status:s,messages:l,hasOlder:d,loadingOlder:y,loadOlder:I,canWrite:Ee,sending:T,sendFailure:x,sentCount:_,send:O,retry:M}),[s,l,d,y,I,Ee,T,x,_,O,M])}o(si,"useVetThread");function di(e,t){let n=e?.visitSummary,[r,i]=react.useState(()=>({status:n?"loading":"absent",summary:null})),[l,a]=react.useState(0);react.useEffect(()=>{if(!e||!n){i({status:"absent",summary:null});return}i({status:"loading",summary:null});let u=new AbortController,d=true;return n.call(e,t,u.signal).then(c=>{d&&(c.ok?i({status:"ready",summary:c.value}):i({status:hn(c.error)?"pending":"error",summary:null}));},()=>{d&&i({status:"error",summary:null});}),()=>{d=false,u.abort();}},[e,n,t,l]);let s=react.useCallback(()=>a(u=>u+1),[]);return react.useMemo(()=>({...r,retry:s}),[r,s])}o(di,"useVisitSummary");function Jn(e,t){return t?e.find(n=>n.petRef===t||n.petId===t)?.petRef??null:null}o(Jn,"vetThreadPetRef");var ui="your vet",nm="your pet",W=Object.freeze({messagesTitle:"Messages",newPillNative:"New",newPillWeb:"New reply",previewOwnerTemplate:"You: {text}",previewVetTemplateWeb:"{vet}: {text}",threadMetaTemplateNative:"With {vet}",threadLogTemplate:"Messages with {vet}",composerLabelTemplateNative:"Message {vet}",composerLabelWeb:"Message",composerPlaceholderTemplate:"Message {vet}\u2026",send:"Send",composerNoteTemplate:"{vet} usually replies within a day. Emergency? Call a vet.",sent:"Sent",bookVisitWeb:"Book a visit",empty:"No messages yet",loading:"Loading",loadFailed:"Could not load",retry:"Try again",notSent:"Not sent",vetWritesFirst:"Your vet will write first. You can reply once they do.",attachmentsTemplate:"{n} attached",runningLateTemplate:"Running late? Message {vet}",sawTitleTemplate:"What {vet} saw",summaryLabel:"Summary",fromVetTemplate:"From {vet}",planTitleTemplate:"{pet}\u2019s plan",wordForWord:"Word for word",fromThisVisitTitle:"From this visit",messageVetTemplate:"Message {vet}",bookFollowUp:"Book a follow-up",summaryFootnoteTemplate:"A summary of your video visit, written by {vet}. In an emergency, go to the nearest emergency animal hospital.",summaryPending:"Summary on its way"});function ge(e,t){let n=e;for(let[r,i]of Object.entries(t))n=n.split(`{${r}}`).join(i);return n}o(ge,"fillVetCopy");function Ne(e){return e.length===0?e:e.charAt(0).toUpperCase()+e.slice(1)}o(Ne,"sentenceCase");function Qr(e){let t=e?.trim()??"";return t.length>0?t:ui}o(Qr,"vetNameOr");function Ut(e){let t=e?.trim()??"";return t.length>0?t:nm}o(Ut,"petNameOr");function Xd(e){let t=new Date(e);return Number.isNaN(t.getTime())?"":t.toLocaleDateString(void 0,{month:"short",day:"numeric"})}o(Xd,"formatThreadDay");var N=Object.freeze({pastTitle:"Past video visits",upcomingTitle:"Next video visit",bookedPill:"Booked",visitTitleTemplate:"{pet} with {vet}",minutesTemplate:"{n} minutes",emptyTitle:"No visits yet",bookCta:"Find a time",bookCardTitle:"Book a video visit",bookAnotherTitle:"Book another 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",getReadyCta:"Get ready",joinCta:"Join the visit",joinDisabledReason:"You can join closer to the time.",joinOverReason:"This visit has ended.",vetUnassigned:"Your vet",rescheduleCta:"Reschedule",cancelCta:"Cancel",cancelConfirmTitleTemplate:"Cancel {pet}\u2019s visit?",cancelConfirmTitle:"Cancel this visit?",cancelConfirmBody:"You can book another one afterwards.",cancelConfirmCta:"Cancel the visit",cancelKeepCta:"Keep the visit",cancelWhyTitle:"What changed?",cancelWhyOptional:"Optional",cancelWhyBetterTemplate:"{pet} is better",cancelWhyTime:"The time doesn\u2019t work",cancelWhyRegularVet:"We\u2019ll see our regular vet",cancelWhyOther:"Something else",cancelWhyTimeHint:"Another time might be easier.",cancelMoveInstead:"Move the visit instead",summaryWhen:"When",summaryVet:"Vet",summaryAbout:"About",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 Qd(e){switch(e){case "completed":return N.statusCompleted;case "cancelled_owner":case "cancelled_ops":return N.statusCancelled;case "no_show_owner":case "no_show_vet":return N.statusMissed;default:return null}}o(Qd,"televetVisitStatusNative");function dt({onBack:e,testID:t}){let n=Me();return jsxRuntime.jsx(reactNative.View,{style:n.navRow,children:jsxRuntime.jsx(reactNative.Pressable,{onPress:e,accessibilityRole:"button",accessibilityLabel:zr,testID:t,style:n.backTap,children:jsxRuntime.jsx(reactNative.View,{style:n.chevron,accessibilityElementsHidden:true,importantForAccessibility:"no"})})})}o(dt,"TelevetVisitBackRow");function Me(){let e=D();return react.useMemo(()=>im(e),[e])}o(Me,"useVisitStyles");function im(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i,s=se(e);return reactNative.StyleSheet.create({screen:{flex:1,paddingHorizontal:n.xl},body:{gap:n.lg,paddingBottom:n.xl},navRow:{paddingVertical:n.sm,flexDirection:"row"},backTap:{width:Q,height:Q,borderRadius:Q/2,borderWidth:1.5,borderColor:s.line,alignItems:"center",justifyContent:"center"},chevron:{width:10,height:10,marginLeft:n.xs,borderLeftWidth:2,borderBottomWidth:2,borderColor:s.ink,transform:[{rotate:"45deg"}]},title:{...b(e,"bold"),color:s.ink,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},list:{gap:0},card:{gap:14,padding:n.lg,borderRadius:r.lg,borderWidth:1,borderColor:s.line,backgroundColor:s.surface},cardHead:{flexDirection:"row",alignItems:"center",gap:n.sm},pill:{marginLeft:"auto",height:24,paddingHorizontal:10,borderRadius:r.pill,backgroundColor:s.pink,justifyContent:"center"},pillLine:{backgroundColor:s.surface,borderWidth:1.5,borderColor:s.line},pillText:{...b(e,"monoBold"),color:s.onPink,fontSize:11,letterSpacing:.9,textTransform:"uppercase"},pillLineText:{color:s.muted},visit:{flexDirection:"row",alignItems:"flex-start",gap:n.lg},dateTile:{width:56,paddingVertical:n.sm,borderRadius:14,backgroundColor:s.pinkSoft,alignItems:"center",gap:2},dateTileSmall:{...b(e,"monoBold"),color:s.ink,fontSize:11,letterSpacing:.9,textTransform:"uppercase"},dateTileDay:{...b(e,"medium"),color:s.ink,fontSize:l.heading,lineHeight:l.heading*a.tight},visitMain:{flex:1,gap:2},visitTitle:{...b(e,"bold"),color:s.ink,fontSize:l.body,lineHeight:l.body*a.snug},visitLine:{...b(e,"regular"),color:s.text,fontSize:l.bodyTight,lineHeight:l.bodyTight*a.normal},row:{gap:2,paddingVertical:n.md,borderTopWidth:1,borderTopColor:s.line},rowFirst:{borderTopWidth:0,paddingTop:0},rowHead:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:n.sm},when:{flex:1,...b(e,"bold"),color:s.ink,fontSize:l.body,lineHeight:l.body*a.snug},status:{...b(e,"monoBold"),color:s.muted,fontSize:11,letterSpacing:.9,textTransform:"uppercase"},meta:{...b(e,"regular"),color:s.muted,fontSize:l.caption,lineHeight:l.caption*a.normal},bookCard:{gap:n.md,padding:n.lg,borderRadius:r.lg,borderWidth:1,borderColor:s.line,backgroundColor:s.surface},bookTitle:{...b(e,"bold"),color:s.ink,fontSize:l.subtitle,lineHeight:l.subtitle*a.snug},bookSubtitle:{...b(e,"regular"),color:s.muted,fontSize:l.bodyTight,lineHeight:l.bodyTight*a.normal},footnote:{...b(e,"regular"),color:s.muted,fontSize:l.caption,lineHeight:l.caption*a.relaxed,textAlign:"center"},visitCard:{gap:n.md,padding:n.lg,borderRadius:r.lg,borderWidth:1,borderColor:s.line,backgroundColor:s.surface},visitWhen:{...b(e,"medium"),color:s.ink,fontSize:l.heading,lineHeight:l.heading*a.snug},visitWho:{...b(e,"bold"),color:s.ink,fontSize:l.body,lineHeight:l.body*a.snug},visitMeta:{...b(e,"regular"),color:s.text,fontSize:l.bodyTight,lineHeight:l.bodyTight*a.normal},reason:{...b(e,"regular"),color:s.muted,fontSize:l.caption,lineHeight:l.caption*a.normal},terms:{padding:n.md,borderRadius:r.sm,backgroundColor:s.mist,...b(e,"regular"),color:s.text,fontSize:l.caption,lineHeight:l.caption*a.normal},noticeTitle:{...b(e,"medium"),color:s.ink,fontSize:l.heading,lineHeight:l.heading*a.snug},noticeBody:{...b(e,"regular"),color:s.muted,fontSize:l.body,lineHeight:l.body*a.normal},receipt:{gap:n.xs,padding:n.md,borderRadius:r.sm,backgroundColor:s.mist},stack:{gap:n.sm},whyHead:{flexDirection:"row",flexWrap:"wrap",alignItems:"baseline",gap:n.sm},whyTitle:{...b(e,"bold"),color:s.ink,fontSize:l.bodyTight,lineHeight:l.bodyTight*a.snug},whyNote:{...b(e,"regular"),color:s.muted,fontSize:l.caption,lineHeight:l.caption*a.normal},hint:{flexDirection:"row",flexWrap:"wrap",alignItems:"center",justifyContent:"space-between",gap:n.sm,paddingVertical:n.sm,paddingHorizontal:n.lg,borderRadius:r.sm,backgroundColor:s.mist},muted:{...b(e,"regular"),color:t.text.primary,fontSize:l.bodyTight}})}o(im,"makeVisitStyles");function dm(e){let{color:t,space:n,radius:r,type:i}=e,{size:l,lineHeight:a}=i,s=se(e),u={...b(e,"regular"),maxWidth:"85%",paddingVertical:10,paddingHorizontal:14,borderRadius:18,fontSize:l.body,lineHeight:l.body*a.normal};return reactNative.StyleSheet.create({head:{gap:2},screenTitle:{...b(e,"medium"),color:s.ink,fontSize:l.heading,lineHeight:l.heading*a.snug},meta:{...b(e,"regular"),color:s.muted,fontSize:l.bodyTight,lineHeight:l.bodyTight*a.normal},log:{gap:n.sm,paddingBottom:n.md},day:{alignSelf:"center",...b(e,"monoBold"),color:s.muted,fontSize:11,letterSpacing:.9,textTransform:"uppercase",paddingTop:n.sm},item:{gap:4,alignItems:"flex-start"},itemMine:{alignItems:"flex-end"},whoRow:{flexDirection:"row",alignItems:"baseline",gap:n.sm},who:{...b(e,"bold"),color:s.ink,fontSize:l.bodyTight},time:{...b(e,"regular"),color:s.muted,fontSize:l.caption},bubbleMine:{...u,backgroundColor:t.bubbleUser,color:t.onPrimary,borderBottomRightRadius:6},bubbleVet:{...u,backgroundColor:t.bubbleVet,color:t.onBubbleVet,borderBottomLeftRadius:6},system:{...b(e,"regular"),color:s.muted,fontSize:l.caption,textAlign:"center",alignSelf:"center"},attachments:{...b(e,"regular"),color:s.muted,fontSize:l.caption},composer:{flexDirection:"row",alignItems:"flex-end",gap:n.sm,padding:n.sm,borderRadius:r.lg,borderWidth:1.5,borderColor:s.line,backgroundColor:s.surface},field:{flex:1,minHeight:Q,paddingHorizontal:n.sm,paddingVertical:10,...b(e,"regular"),color:s.text,fontSize:l.body},send:{minWidth:Q,height:Q,paddingHorizontal:n.md,borderRadius:Q/2,backgroundColor:t.primary,alignItems:"center",justifyContent:"center"},sendDisabled:{opacity:.5},sendLabel:{...b(e,"bold"),color:t.onPrimary,fontSize:l.bodyTight},note:{...b(e,"regular"),color:s.muted,fontSize:l.caption,lineHeight:l.caption*a.normal},failure:{...b(e,"bold"),color:s.alert,fontSize:l.caption},label:{...b(e,"monoBold"),color:s.muted,fontSize:11,letterSpacing:.9,textTransform:"uppercase"},body:{...b(e,"regular"),color:s.text,fontSize:l.body,lineHeight:l.body*a.normal},planItem:{flexDirection:"row",gap:n.md,alignItems:"flex-start"},planNumber:{...b(e,"monoBold"),color:s.ink,fontSize:12,letterSpacing:.9,paddingTop:3},planText:{flex:1,...b(e,"regular"),color:s.text,fontSize:l.body,lineHeight:l.body*a.normal},rowPress:{flexDirection:"row",alignItems:"center",gap:n.md,minHeight:Q},rowMain:{flex:1,gap:2},rowEnd:{alignItems:"flex-end",gap:4},preview:{...b(e,"regular"),color:s.muted,fontSize:l.caption},link:{minHeight:Q,justifyContent:"center",alignSelf:"flex-start"},linkText:{...b(e,"bold"),color:t.linkInk,fontSize:l.bodyTight,textDecorationLine:"underline"}})}o(dm,"makeVetThreadStyles");function _t(){let e=D();return react.useMemo(()=>dm(e),[e])}o(_t,"useVetThreadStyles");function pi({consult:e,controller:t,onJoin:n,onReschedule:r,onCancelled:i,onBack:l,revision:a=0,onMessageVet:s,nowMs:u,style:d}){let c=Me(),y=_t(),g=be(t),[v,k]=react.useState(0),T=Ba(e.consultId,g,a+v),w=Sn(g),x=Ma(e.consultId,g),{pets:R}=Ze(),_=Gn(g),[E,S]=react.useState(false),[P,L]=react.useState(null),[J,C]=react.useState(false),[h,A]=react.useState(null),I=T.isError&&T.error?.httpStatus===404,O=I?null:T.data??e,M=O!==null&&It.has(O.status),Ee=Xr(!M),z=Uo(O,u??Ee),ne=O===null?null:we(R,O.petId),Ce=w.data?.summary.trim()||null,nt=react.useCallback(()=>{Ce&&(C(false),x.mutate(P??N.cancelReason,{onSuccess:o(Se=>{S(false),A(Se),k(j=>j+1),i?.(Se);},"onSuccess"),onError:o(()=>C(true),"onError")}));},[Ce,x,i,P]);if(O===null)return jsxRuntime.jsxs(reactNative.View,{style:[c.screen,d],testID:"televet-consult-missing",children:[jsxRuntime.jsx(dt,{onBack:l,testID:"televet-consult-back"}),jsxRuntime.jsx(q,{title:N.notFoundTitle,message:N.notFoundBody})]});let ke=O.status,rr=ke==="cancelled_owner"||ke==="cancelled_ops",cn=ke==="scheduled"||ke==="in_progress",pn=Wo(ke)&&h===null,or=O.clinicianName??N.vetUnassigned,lr=[ne,O.reasonText].filter(Boolean).join(" \xB7 "),qt=_.availability==="lit"?Jn(R,O.petId):null,rt=qt===null?void 0:_.threads.find(Se=>Se.petRef===qt),pt=qt===null?null:{petRef:qt,petName:ne,vetName:O.clinicianName,...rt?{ownerCanStart:rt.ownerCanStart}:{}};return jsxRuntime.jsxs(reactNative.View,{style:[c.screen,d],testID:"televet-consult",children:[jsxRuntime.jsx(dt,{onBack:l,testID:"televet-consult-back"}),jsxRuntime.jsxs(reactNative.ScrollView,{contentContainerStyle:c.body,children:[jsxRuntime.jsxs(reactNative.View,{style:c.visitCard,children:[jsxRuntime.jsx(f,{style:c.visitWhen,accessibilityRole:"header",testID:"televet-consult-when",children:On(O.scheduledAt)}),jsxRuntime.jsxs(reactNative.View,{style:c.stack,children:[jsxRuntime.jsx(f,{style:c.visitWho,testID:"televet-consult-vet",children:or}),lr?jsxRuntime.jsx(f,{style:c.visitMeta,numberOfLines:2,children:lr}):null]})]}),cn&&h===null?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(B,{label:N.joinCta,disabled:!z.ready,onPress:()=>n(O,ne),testID:"televet-consult-join"}),z.ready?null:jsxRuntime.jsx(f,{style:c.reason,testID:"televet-consult-join-reason",children:z.reason==="consult_over"?N.joinOverReason:N.joinDisabledReason}),pt&&s?jsxRuntime.jsx(reactNative.Pressable,{onPress:()=>s(pt),accessibilityRole:"link",style:y.link,testID:"televet-consult-late",children:jsxRuntime.jsx(f,{style:y.linkText,children:ge(W.runningLateTemplate,{vet:O.clinicianName??ui})})}):null,pn&&r?jsxRuntime.jsx(B,{label:N.rescheduleCta,kind:"secondary",onPress:()=>r(O),testID:"televet-consult-reschedule"}):null]}):null,h?jsxRuntime.jsx(reactNative.View,{style:c.receipt,testID:"televet-consult-cancel-receipt",children:jsxRuntime.jsx(f,{style:c.noticeTitle,accessibilityLiveRegion:"polite",children:h.summary??N.phaseCancelled})}):rr?jsxRuntime.jsxs(reactNative.View,{style:c.stack,testID:"televet-consult-cancelled",children:[jsxRuntime.jsx(f,{style:c.noticeTitle,accessibilityRole:"header",children:N.phaseCancelled}),jsxRuntime.jsx(f,{style:c.noticeBody,children:N.phaseCancelledBody})]}):null,pn?jsxRuntime.jsxs(reactNative.View,{style:c.stack,children:[Ce?jsxRuntime.jsx(f,{style:c.terms,accessibilityLiveRegion:"polite",testID:"televet-consult-cancellation-policy",children:Ce}):w.enabled&&w.isPending?jsxRuntime.jsx(reactNative.View,{testID:"televet-consult-cancellation-policy-loading",children:jsxRuntime.jsx(de,{height:42})}):jsxRuntime.jsx(q,{title:N.cancelPolicyErrorTitle,actionLabel:N.retryCta,onAction:()=>w.refetch(),testID:"televet-consult-cancellation-policy-error"}),E?jsxRuntime.jsxs(reactNative.View,{style:c.stack,testID:"televet-consult-cancel-confirm",children:[jsxRuntime.jsx(f,{style:c.noticeTitle,accessibilityRole:"header",children:ne?H(N.cancelConfirmTitleTemplate,{pet:ne}):N.cancelConfirmTitle}),jsxRuntime.jsxs(reactNative.View,{style:c.whyHead,children:[jsxRuntime.jsx(f,{style:c.whyTitle,children:N.cancelWhyTitle}),jsxRuntime.jsx(f,{style:c.whyNote,testID:"televet-consult-cancel-optional",children:N.cancelWhyOptional})]}),jsxRuntime.jsx(reactNative.View,{style:c.stack,accessibilityRole:"radiogroup",accessibilityLabel:`${N.cancelWhyTitle} ${N.cancelWhyOptional}`,children:[...ne?[{id:"better",label:H(N.cancelWhyBetterTemplate,{pet:ne})}]:[],{id:"time",label:N.cancelWhyTime},{id:"regular-vet",label:N.cancelWhyRegularVet},{id:"other",label:N.cancelWhyOther}].map(Se=>jsxRuntime.jsxs(reactNative.View,{style:c.stack,children:[jsxRuntime.jsx(Rt,{title:Se.label,selected:P===Se.label,onPress:()=>L(P===Se.label?null:Se.label),testID:`televet-consult-cancel-why-${Se.id}`}),Se.id==="time"&&P===Se.label?jsxRuntime.jsxs(reactNative.View,{style:c.hint,testID:"televet-consult-cancel-time-hint",children:[jsxRuntime.jsx(f,{style:c.muted,children:N.cancelWhyTimeHint}),r?jsxRuntime.jsx(B,{label:N.cancelMoveInstead,kind:"quiet",fullWidth:false,onPress:()=>r(O),testID:"televet-consult-cancel-move"}):null]}):null]},Se.id))}),J?jsxRuntime.jsx(re,{message:N.cancelFailedTitle,testID:"televet-consult-cancel-failed"}):null,jsxRuntime.jsx(B,{label:N.cancelConfirmCta,kind:"danger",loading:x.isPending,onPress:nt,testID:"televet-consult-cancel-yes"}),jsxRuntime.jsx(B,{label:N.cancelKeepCta,kind:"secondary",disabled:x.isPending,onPress:()=>{S(false),C(false);},testID:"televet-consult-cancel-keep"})]}):jsxRuntime.jsx(B,{label:N.cancelCta,kind:"secondary",disabled:!Ce,onPress:()=>{C(false),S(true);},testID:"televet-consult-cancel"})]}):null,T.isError&&!I?jsxRuntime.jsx(q,{title:N.staleTitle,actionLabel:N.staleRetry,onAction:()=>T.refetch(),testID:"televet-consult-stale"}):null]})]})}o(pi,"TelevetConsultScreen");var ut=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`:ut.lobbyTitleNoName},"lobbyTitle"),lobbyPrep:o(e=>{let t=e?.trim()??"";return t.length>0?`Have ${t} nearby and somewhere well lit.`:ut.lobbyPrepNoPet},"lobbyPrep"),lobbyDuration:o(e=>`${e} minutes`,"lobbyDuration"),waitingRoomLabel:"Waiting room",leaveWaitingRoomLabel:"Leave the waiting room",lobbyTipsTitle:o(e=>{let t=e?.trim()??"";return t.length>0?`Before ${t} joins`:ut.lobbyPrepLabel},"lobbyTipsTitle"),lobbyTipSpot:"Find a bright, quiet spot.",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 eu(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(eu,"televetJoinRefusalNativeCopy");var tu="No way to join this visit yet.";function nu(e){return e==="room_not_ready"||e==="unknown"}o(nu,"televetJoinIsRetryable");var ru=Symbol.for("@everfur/sdk/televet");function ym(){let e=globalThis,t=e[ru];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[ru]=n,n}o(ym,"televetGlobal");function Zr(){return ym().dailyRegistered}o(Zr,"isEverfurDailyRegistered");function ou(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(ou,"memoizeTelevetLoader");var iu=Object.freeze({status:"joining"});function fi(e,t){let[n,r]=react.useState(0),[i,l]=react.useState(iu),a=react.useRef(null);react.useEffect(()=>{let u=t?.joinConsult;if(t===null||u===void 0){l(Object.freeze({status:"refused",refusal:"unavailable",reason:null}));return}let d=`${e}#${String(n)}`,c=a.current;if(c===null||c.key!==d){let g;try{g=u.call(t,e);}catch(v){g=Promise.reject(v);}c={key:d,promise:g},a.current=c;}let y=true;return l(iu),c.promise.then(g=>{y&&(g.ok?l(Object.freeze({status:"ready",credential:g.value})):l(Object.freeze({status:"refused",refusal:ko(g.error),reason:Eo(g.error)})));},()=>{y&&l(Object.freeze({status:"refused",refusal:"unknown",reason:null}));}),()=>{y=false;}},[e,t,n]);let s=react.useCallback(()=>r(u=>u+1),[]);return {state:i,retry:s}}o(fi,"useTelevetJoin");var bm=Symbol.for("@everfur/sdk/televet/recording-notice-receipt");function au(){let e=globalThis;return e[bm]??=new Map}o(au,"receipts");function su(e){let t=au();t.set(e,(t.get(e)??0)+1);}o(su,"markRecordingNoticeAccepted");function du(e){let t=au(),n=t.get(e)??0;n<=1?t.delete(e):t.set(e,n-1);}o(du,"clearRecordingNoticeAccepted");var yi=react.createContext(null);function uu(e){let t=react.useContext(yi);react.useEffect(()=>{if(!(t===null||!e))return t.setFullBleed(true),()=>{t.setFullBleed(false);}},[t,e]);}o(uu,"useTelevetModalFullBleed");var cu=ou(()=>import('@everfur/sdk/televet/call'));function mi({consultId:e,...t}){let n=Y(),r=wm();return r===null?jsxRuntime.jsx(reactNative.View,{style:[n.screen,t.style],testID:"televet-join-checking"}):jsxRuntime.jsx(xm,{consultId:e,...t,canHostCall:r},e)}o(mi,"TelevetJoinScreen");function xm({canHostCall:e,onLeave:t,style:n,...r}){let[i,l]=react.useState(false);yu(()=>(t(),true),!i);let a=react.useCallback(()=>{l(false),t();},[t]);return e?i?jsxRuntime.jsx(Rm,{...r,onLeave:a,style:n}):jsxRuntime.jsx(pu,{onContinue:()=>l(true),onLeave:t,style:n}):jsxRuntime.jsx(fu,{onLeave:t,style:n})}o(xm,"TelevetJoinGate");function Rm({consultId:e,controller:t,clinicianName:n,petName:r,onLeave:i,style:l}){let a=Y(),s=be(t),{state:u,retry:d}=fi(e,s),[c,y]=react.useState(null),[g,v]=react.useState(false),k=u.status==="ready";react.useEffect(()=>{if(!k||c!==null)return;let S=true;return cu().then(P=>{S&&y(()=>P);},()=>{S&&v(true);}),()=>{S=false;}},[k,c]);let T=u.status==="ready"?u.credential.roomUrl:null,[w,x]=react.useState(null);react.useEffect(()=>{if(T!==null)return su(T),x(T),()=>{du(T);}},[T]);let R=k&&c!==null&&!g;yu(()=>(R||i(),true),true);let _=u.status==="ready"?u.credential:null;if(uu(R&&_!==null&&c.isUsableRoomCredential(_.roomUrl,_.token)&&c.loadEverfurDaily().available),u.status==="refused"||g){let S=u.status==="refused"?u.refusal:"unavailable";return jsxRuntime.jsxs(reactNative.View,{style:[a.screen,a.stepFill,l],testID:"televet-join-refused",children:[jsxRuntime.jsx(re,{message:eu(S),testID:"televet-join-refused-message"}),nu(S)&&u.status==="refused"?jsxRuntime.jsx(B,{label:p.retryCta,kind:"primary",onPress:d,testID:"televet-join-retry"}):null,jsxRuntime.jsx(B,{label:ut.leaveCta,kind:"secondary",onPress:i,testID:"televet-join-leave"})]})}if(u.status==="joining"||c===null||w!==u.credential.roomUrl)return jsxRuntime.jsx(pu,{busy:true,onLeave:i,style:l});let{EverfurVetCall:E}=c;return jsxRuntime.jsx(E,{roomUrl:u.credential.roomUrl,token:u.credential.token,onLeave:i,clinicianName:n??null,petName:r??null,consultMinutes:u.credential.callLimits?.consultMinutes??null,renderUnavailable:()=>jsxRuntime.jsx(fu,{onLeave:i,style:l}),style:l})}o(Rm,"TelevetJoinRoom");function pu({onContinue:e,onLeave:t,busy:n=false,style:r}){let i=Y();return jsxRuntime.jsx(reactNative.View,{style:[i.screen,i.stepFill,r],children:jsxRuntime.jsxs(reactNative.View,{style:i.stateCard,testID:"everfur-vet-call-recording-notice",accessibilityState:{busy:n},children:[jsxRuntime.jsx(f,{style:i.stateTitle,accessibilityRole:"header",children:ut.recordingNoticeTitle}),jsxRuntime.jsx(B,{label:ut.recordingNoticeCta,kind:"primary",loading:n,onPress:()=>e?.(),testID:"everfur-vet-call-recording-continue"}),jsxRuntime.jsx(B,{label:ut.leaveCta,kind:"secondary",onPress:t,testID:"everfur-vet-call-recording-leave"})]})})}o(pu,"TelevetRecordingNotice");function fu({onLeave:e,style:t}){let n=Y();return jsxRuntime.jsxs(reactNative.View,{style:[n.screen,n.stepFill,t],testID:"televet-join-call-unavailable",children:[jsxRuntime.jsx(re,{message:tu}),jsxRuntime.jsx(B,{label:ut.leaveCta,kind:"secondary",onPress:e,testID:"televet-join-unavailable-leave"})]})}o(fu,"TelevetJoinUnavailable");function yu(e,t){Gt(e,t);let n=react.useRef(e);n.current=e,react.useEffect(()=>{if(!t)return;let r=reactNative.BackHandler.addEventListener("hardwareBackPress",()=>n.current());return ()=>{r.remove();}},[t]);}o(yu,"useJoinBackPress");function wm(){let[e,t]=react.useState(()=>Zr()?null:false);return react.useEffect(()=>{let n=true;return cu().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(wm,"useCanHostCall");function bi(e){let{consult:t,onRescheduled:n,onCancel:r,controller:i,style:l,testID:a}=Yt(e,["onRescheduled","onCancel"]),s=Y(),u=be(i),d=Cn(t?.clinicianId??null,u),c=xn(u),y=zo(t?.consultId??null,u),[g,v]=react.useState(null),[k,T]=react.useState(null),{pets:w}=Ze(),x=D(),R=react.useMemo(()=>Vm(x),[x]),_=react.useCallback(S=>{v(null),c.mutate(S.slotId,{onSuccess:o(()=>{y.mutate(S.slotId,{onSuccess:o(P=>n?.(P),"onSuccess"),onError:o(P=>v(gt(P).kind==="unavailable"?"unavailable":"failed"),"onError")});},"onSuccess"),onError:o(P=>v(gt(P).kind==="unavailable"?"unavailable":"taken"),"onError")});},[c,y,n]),E=c.isPending||y.isPending;return ot()?t?jsxRuntime.jsxs(reactNative.View,{style:[s.screen,s.stepFill,l],testID:a??"televet-reschedule",children:[jsxRuntime.jsxs(reactNative.View,{style:R.bar,children:[jsxRuntime.jsx(reactNative.Pressable,{onPress:()=>r?.(),disabled:E,accessibilityRole:"button",accessibilityLabel:p.keepExistingCta,testID:"televet-reschedule-keep",style:R.ring,children:jsxRuntime.jsx(reactNative.View,{style:R.chevron,accessibilityElementsHidden:true,importantForAccessibility:"no"})}),jsxRuntime.jsx(f,{tier:"compact",style:R.label,children:p.rescheduleStepLabel})]}),jsxRuntime.jsx(f,{tier:"heading",style:s.stepTitle,accessibilityRole:"header",children:H(p.rescheduleTitleTemplate,{pet:we(w,t.petId)??p.petFallback})}),jsxRuntime.jsxs(reactNative.View,{style:R.now,testID:"televet-reschedule-now",children:[jsxRuntime.jsx(reactNative.View,{style:R.nowPill,children:jsxRuntime.jsx(f,{tier:"badge",style:R.nowPillText,children:p.rescheduleNowLabel})}),jsxRuntime.jsx(f,{style:R.nowText,accessibilityLabel:H(p.rescheduleFromTemplate,{when:Dt(t.scheduledAt)}),children:Dt(t.scheduledAt)})]}),g==="taken"?jsxRuntime.jsx(re,{message:p.slotTaken}):null,g==="failed"?jsxRuntime.jsx(re,{message:p.rescheduleFailed}):null,g==="unavailable"?jsxRuntime.jsx(re,{message:p.bookingPausedTitle,testID:"televet-reschedule-unavailable"}):null,d.enabled?d.isPending?jsxRuntime.jsx(reactNative.View,{style:s.list,testID:"televet-reschedule-slots-loading",children:[0,1,2].map(S=>jsxRuntime.jsx(de,{height:48},S))}):d.isError?jsxRuntime.jsx(q,{title:p.slotsErrorTitle,actionLabel:p.retryCta,onAction:()=>d.refetch(),testID:"televet-reschedule-slots-error"}):(d.data??[]).length===0?jsxRuntime.jsx(reactNative.View,{testID:"televet-reschedule-empty",children:jsxRuntime.jsx(q,{title:p.noSlotsTitle})}):jsxRuntime.jsx(jn,{slots:d.data??[],busySlotId:E?c.variables:null,onPick:S=>{v(null),T(S);},selectedSlot:k,periodLabels:{morning:p.timeMorning,afternoon:p.timeAfternoon,evening:p.timeEvening},rowTestIdPrefix:"televet-reschedule-slot",testID:"televet-reschedule-slots"}):jsxRuntime.jsx(reactNative.View,{testID:"televet-reschedule-paused",children:jsxRuntime.jsx(q,{title:p.bookingPausedTitle})}),k?jsxRuntime.jsx(reactNative.View,{style:s.scrollFooter,children:jsxRuntime.jsx(B,{label:E?p.rescheduleMoving:H(p.rescheduleMoveTemplate,{when:Ws(k.startsAt)}),loading:E,onPress:()=>_(k),testID:"televet-reschedule-move"})}):null]}):jsxRuntime.jsx(reactNative.View,{style:[s.screen,s.list,l],testID:"televet-reschedule-loading",children:[0,1].map(S=>jsxRuntime.jsx(de,{height:48},S))}):jsxRuntime.jsx(reactNative.View,{style:[s.screen,s.stepFill,l],testID:"televet-reschedule-copy-unapproved"})}o(bi,"EverfurTelevetReschedule");function Vm(e){let t=se(e);return reactNative.StyleSheet.create({bar:{flexDirection:"row",alignItems:"center",gap:14,paddingVertical:e.space.sm},ring:{width:44,height:44,borderRadius:22,borderWidth:1.5,borderColor:t.line,alignItems:"center",justifyContent:"center"},chevron:{width:10,height:10,marginLeft:4,borderLeftWidth:2,borderBottomWidth:2,borderColor:t.ink,transform:[{rotate:"45deg"}]},label:{...b(e,"monoBold"),color:t.muted,fontSize:12,letterSpacing:.96,textTransform:"uppercase"},now:{flexDirection:"row",flexWrap:"wrap",alignItems:"center",gap:10},nowPill:{height:24,paddingHorizontal:10,borderRadius:999,borderWidth:1.5,borderColor:t.line,justifyContent:"center"},nowPillText:{...b(e,"monoBold"),color:t.muted,fontSize:11,letterSpacing:.9,textTransform:"uppercase"},nowText:{...b(e,"regular"),color:t.muted,fontSize:e.type.size.body,textDecorationLine:"line-through"}})}o(Vm,"makeLook");function gu({threads:e,pets:t,onOpen:n}){let r=Me(),i=_t();return jsxRuntime.jsxs(reactNative.View,{style:r.card,testID:"televet-messages-card",children:[jsxRuntime.jsx(f,{style:r.title,accessibilityRole:"header",children:W.messagesTitle}),jsxRuntime.jsx(reactNative.View,{style:r.list,children:e.map((l,a)=>{let s=t.find(v=>v.petRef===l.petRef)?.name??null,u=l.lastMessage?.role==="vet"?l.lastMessage.senderName:null,d=Ne(Ut(s)),c=l.lastMessage?Nm(l.lastMessage):null,y=Xd(l.lastMessageAt),g=l.unreadCount>0;return jsxRuntime.jsxs(reactNative.Pressable,{onPress:()=>n({petRef:l.petRef,petName:s,vetName:u,ownerCanStart:l.ownerCanStart}),accessibilityRole:"button",accessibilityLabel:[d,c,y,g?W.newPillNative:null].filter(Boolean).join(", "),style:[r.row,a===0?r.rowFirst:null,i.rowPress],testID:`televet-messages-row-${l.petRef}`,children:[jsxRuntime.jsxs(reactNative.View,{style:i.rowMain,children:[jsxRuntime.jsx(f,{style:r.when,children:d}),c?jsxRuntime.jsx(f,{style:i.preview,numberOfLines:1,children:c}):null]}),jsxRuntime.jsxs(reactNative.View,{style:i.rowEnd,children:[y?jsxRuntime.jsx(f,{style:r.meta,children:y}):null,g?jsxRuntime.jsx(reactNative.View,{style:[r.pill,{marginLeft:0}],children:jsxRuntime.jsx(f,{tier:"badge",style:r.pillText,children:W.newPillNative})}):null]})]},l.petRef)})})]})}o(gu,"TelevetVetMessagesCard");function Nm(e){let t=e.content.split(`
|
|
3
|
+
`)[0]?.trim()??"";return e.role==="owner"?ge(W.previewOwnerTemplate,{text:t}):t}o(Nm,"previewLine");function hi({controller:e,onOpenVisit:t,onBook:n,onBack:r,revision:i=0,onOpenThread:l,onOpenSummary:a,nowMs:s,style:u}){let d=Me(),c=be(e),y=wr(c,i),{pets:g}=Ze(),v=Gn(c,i),k=v.availability==="lit",T=y.data??[],w=T.some(h=>!It.has(h.status)),x=Xr(w),R=s??x,{upcoming:_,past:E}=react.useMemo(()=>wn(T,R),[T,R]),S=y.enabled&&y.isPending,P=y.isError&&y.data===null,L=o(h=>{let A=we(g,h.petId),I=h.clinicianName;return A&&I?H(N.visitTitleTemplate,{pet:A,vet:I}):A??I},"titleOf"),J=o((h,A)=>{let I=Qd(h.status),O=L(h);return h.status==="completed"&&k&&a?jsxRuntime.jsxs(reactNative.Pressable,{onPress:()=>a(h),accessibilityRole:"button",accessibilityLabel:[O??nn(h.scheduledAt),I].filter(Boolean).join(", "),style:[d.row,A===0?d.rowFirst:null],testID:`televet-visits-summary-${h.consultId}`,children:[jsxRuntime.jsxs(reactNative.View,{style:d.rowHead,children:[jsxRuntime.jsx(f,{style:d.when,children:O??nn(h.scheduledAt)}),I?jsxRuntime.jsx(f,{style:d.status,children:I}):null]}),O?jsxRuntime.jsx(f,{style:d.meta,children:nn(h.scheduledAt)}):null]},h.consultId):jsxRuntime.jsxs(reactNative.View,{style:[d.row,A===0?d.rowFirst:null],testID:`televet-visits-row-${h.consultId}`,children:[jsxRuntime.jsxs(reactNative.View,{style:d.rowHead,children:[jsxRuntime.jsx(f,{style:d.when,children:O??nn(h.scheduledAt)}),I?jsxRuntime.jsx(f,{style:d.status,testID:`televet-visits-status-${h.consultId}`,children:I}):null]}),O?jsxRuntime.jsx(f,{style:d.meta,children:nn(h.scheduledAt)}):null,h.status==="completed"?null:jsxRuntime.jsx(B,{label:N.manageCta,kind:"quiet",fullWidth:false,onPress:()=>t(h),testID:`televet-visits-open-${h.consultId}`})]},h.consultId)},"renderRow"),C=o(h=>{let A=new Date(h.scheduledAt),I=Number.isNaN(A.getTime())?null:{weekday:A.toLocaleDateString(void 0,{weekday:"short"}),day:String(A.getDate()),month:A.toLocaleDateString(void 0,{month:"short"})},O=h.reasonText?.split(`
|
|
4
|
+
`)[0]?.trim()??"";return jsxRuntime.jsxs(reactNative.View,{style:d.card,testID:`televet-visits-row-${h.consultId}`,children:[jsxRuntime.jsxs(reactNative.View,{style:d.cardHead,children:[jsxRuntime.jsx(f,{style:d.title,accessibilityRole:"header",children:N.upcomingTitle}),h.status==="scheduled"?jsxRuntime.jsx(reactNative.View,{style:d.pill,children:jsxRuntime.jsx(f,{tier:"badge",style:d.pillText,children:N.bookedPill})}):null]}),jsxRuntime.jsxs(reactNative.View,{style:d.visit,children:[I?jsxRuntime.jsxs(reactNative.View,{style:d.dateTile,accessibilityElementsHidden:true,importantForAccessibility:"no-hide-descendants",children:[jsxRuntime.jsx(f,{tier:"badge",style:d.dateTileSmall,children:I.weekday}),jsxRuntime.jsx(f,{tier:"heading",style:d.dateTileDay,children:I.day}),jsxRuntime.jsx(f,{tier:"badge",style:d.dateTileSmall,children:I.month})]}):null,jsxRuntime.jsxs(reactNative.View,{style:d.visitMain,children:[L(h)?jsxRuntime.jsx(f,{style:d.visitTitle,children:L(h)}):null,jsxRuntime.jsx(f,{style:d.visitLine,children:Dt(h.scheduledAt)}),O?jsxRuntime.jsx(f,{style:d.visitLine,children:O}):null]})]}),jsxRuntime.jsx(B,{label:N.getReadyCta,kind:"primary",onPress:()=>t(h),testID:`televet-visits-open-${h.consultId}`})]},h.consultId)},"renderUpcoming");return jsxRuntime.jsxs(reactNative.View,{style:[d.screen,u],testID:"televet-visits",children:[jsxRuntime.jsx(dt,{onBack:r,testID:"televet-visits-back"}),jsxRuntime.jsxs(reactNative.ScrollView,{contentContainerStyle:d.body,children:[P?jsxRuntime.jsxs(reactNative.View,{style:d.stack,children:[jsxRuntime.jsx(q,{title:N.loadErrorTitle,actionLabel:N.retryCta,onAction:()=>y.refetch(),testID:"televet-visits-error"}),n?jsxRuntime.jsx(no,{title:N.bookCardTitle,onBook:n}):null]}):S?jsxRuntime.jsx(reactNative.View,{style:d.stack,testID:"televet-visits-loading",children:[0,1,2].map(h=>jsxRuntime.jsx(de,{height:72},h))}):T.length===0?jsxRuntime.jsxs(reactNative.View,{style:d.stack,testID:"televet-visits-empty",children:[n?jsxRuntime.jsx(no,{title:N.bookCardTitle,onBook:n}):null,jsxRuntime.jsxs(reactNative.View,{style:d.card,children:[jsxRuntime.jsx(f,{style:d.title,accessibilityRole:"header",children:N.pastTitle}),jsxRuntime.jsx(f,{style:d.meta,children:N.emptyTitle})]})]}):jsxRuntime.jsxs(reactNative.View,{style:d.body,children:[_.length>0?jsxRuntime.jsx(reactNative.View,{style:d.body,testID:"televet-visits-upcoming",children:_.map(C)}):n?jsxRuntime.jsx(no,{title:N.bookCardTitle,onBook:n}):null,k&&l&&v.threads.length>0?jsxRuntime.jsx(gu,{threads:v.threads,pets:g,onOpen:l}):null,jsxRuntime.jsxs(reactNative.View,{style:d.card,testID:"televet-visits-past",children:[jsxRuntime.jsx(f,{style:d.title,accessibilityRole:"header",children:N.pastTitle}),E.length>0?jsxRuntime.jsx(reactNative.View,{style:d.list,children:E.map(J)}):null]}),_.length>0&&n?jsxRuntime.jsx(no,{title:N.bookAnotherTitle,onBook:n}):null]}),jsxRuntime.jsx(f,{style:d.footnote,testID:"televet-visits-footnote",children:p.footnote})]})]})}o(hi,"TelevetVisitsScreen");function no({title:e,onBook:t}){let n=Me();return jsxRuntime.jsxs(reactNative.View,{style:n.bookCard,testID:"televet-visits-book-card",children:[jsxRuntime.jsx(f,{style:n.bookTitle,children:e}),jsxRuntime.jsx(f,{style:n.bookSubtitle,children:N.bookCardSubtitle}),jsxRuntime.jsx(B,{label:N.bookCta,kind:"primary",onPress:t,testID:"televet-visits-book"})]})}o(no,"BookCard");var Um=48;function Ti({petRef:e,petName:t,vetName:n,ownerCanStart:r,controller:i,onBack:l,style:a}){let s=Me(),u=_t(),d=be(i),c=si(d,e,{ownerCanStart:r}),[y,g]=react.useState(""),v=react.useRef(null),k=n?.trim()||$m(c.messages),T=Qr(k),w=c.messages[c.messages.length-1]?.messageId;react.useEffect(()=>{c.status==="ready"&&v.current?.scrollToEnd?.({animated:false});},[c.status,w]);let x=o(()=>{let _=y;_.trim().length===0||c.sending||c.send(_).then(E=>{E&&g("");});},"submit"),R=y.trim().length>0&&!c.sending;return jsxRuntime.jsxs(reactNative.View,{style:[s.screen,a],testID:"televet-vet-thread",children:[jsxRuntime.jsx(dt,{onBack:l,testID:"televet-vet-thread-back"}),jsxRuntime.jsxs(reactNative.View,{style:u.head,children:[jsxRuntime.jsx(f,{style:u.screenTitle,accessibilityRole:"header",children:Ne(Ut(t))}),k?jsxRuntime.jsx(f,{style:u.meta,children:ge(W.threadMetaTemplateNative,{vet:k})}):null]}),c.status==="loading"?jsxRuntime.jsxs(reactNative.View,{style:s.stack,testID:"televet-vet-thread-loading",accessibilityLabel:W.loading,children:[jsxRuntime.jsx(de,{height:56}),jsxRuntime.jsx(de,{height:56})]}):c.status==="error"?jsxRuntime.jsx(q,{title:W.loadFailed,actionLabel:W.retry,onAction:c.retry,testID:"televet-vet-thread-error"}):jsxRuntime.jsxs(reactNative.ScrollView,{ref:v,accessibilityLabel:ge(W.threadLogTemplate,{vet:T}),contentContainerStyle:u.log,scrollEventThrottle:64,onScroll:_=>{_.nativeEvent.contentOffset.y<=Um&&c.loadOlder();},testID:"televet-vet-thread-log",children:[c.messages.length===0?jsxRuntime.jsx(f,{style:u.system,children:W.empty}):null,c.messages.map((_,E)=>jsxRuntime.jsx(Wm,{message:_,previous:c.messages[E-1],vet:T,styles:u},_.messageId))]}),c.status==="ready"&&c.canWrite?jsxRuntime.jsxs(reactNative.View,{style:s.stack,children:[jsxRuntime.jsxs(reactNative.View,{style:u.composer,children:[jsxRuntime.jsx(Ir,{value:y,onChangeText:g,multiline:true,accessibilityLabel:Ne(ge(W.composerLabelTemplateNative,{vet:T})),placeholder:ge(W.composerPlaceholderTemplate,{vet:T}),style:u.field,testID:"televet-vet-thread-field"}),jsxRuntime.jsx(reactNative.Pressable,{onPress:x,disabled:!R,accessibilityRole:"button",accessibilityLabel:W.send,accessibilityState:{disabled:!R,busy:c.sending},style:[u.send,R?null:u.sendDisabled],testID:"televet-vet-thread-send",children:jsxRuntime.jsx(f,{tier:"control",style:u.sendLabel,children:W.send})})]}),c.sendFailure==="notSent"?jsxRuntime.jsx(f,{style:u.failure,accessibilityLiveRegion:"assertive",testID:"televet-vet-thread-failure",children:W.notSent}):c.sentCount>0?jsxRuntime.jsx(f,{style:u.note,accessibilityLiveRegion:"polite",testID:"televet-vet-thread-status",children:W.sent}):null,jsxRuntime.jsx(f,{style:u.note,children:Ne(ge(W.composerNoteTemplate,{vet:T}))})]}):null,c.sendFailure==="vetWritesFirst"?jsxRuntime.jsx(f,{style:u.note,accessibilityLiveRegion:"polite",testID:"televet-vet-thread-vet-first",children:W.vetWritesFirst}):null]})}o(Ti,"TelevetVetThreadScreen");function Wm({message:e,previous:t,vet:n,styles:r}){let i=ml(e.createdAt),l=t===void 0||ml(t.createdAt)!==i,a=e.attachmentCount>0?ge(W.attachmentsTemplate,{n:String(e.attachmentCount)}):null;return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[l?jsxRuntime.jsx(f,{style:r.day,children:i}):null,e.role==="system"?jsxRuntime.jsx(f,{style:r.system,children:e.content}):jsxRuntime.jsxs(reactNative.View,{style:[r.item,e.role==="owner"?r.itemMine:null],testID:`televet-vet-thread-message-${e.messageId}`,children:[e.role==="vet"?jsxRuntime.jsxs(reactNative.View,{style:r.whoRow,children:[jsxRuntime.jsx(f,{style:r.who,children:e.senderName??Ne(n)}),jsxRuntime.jsx(f,{style:r.time,children:Ue(e.createdAt)})]}):null,e.content.length>0?jsxRuntime.jsx(f,{style:e.role==="owner"?r.bubbleMine:r.bubbleVet,children:e.content}):null,a?jsxRuntime.jsx(f,{style:r.attachments,children:a}):null]})]})}o(Wm,"ThreadItem");function $m(e){for(let t=e.length-1;t>=0;t-=1){let n=e[t]?.role==="vet"?e[t]?.senderName:null;if(n)return n}return null}o($m,"newestVetName");function Ei({consult:e,controller:t,onBack:n,onMessageVet:r,onBook:i,style:l}){let a=Me(),s=_t(),u=be(t),d=di(u,e.consultId),{pets:c}=Ze(),y=we(c,e.petId),g=d.summary,v=g?.approvedByName??e.clinicianName,k=Qr(v),T=y&&e.clinicianName?ge(N.visitTitleTemplate,{pet:y,vet:e.clinicianName}):Ne(Ut(y)),w=[yl(e.scheduledAt),v].filter(Boolean).join(" \xB7 "),x=Jn(c,e.petId),R=r&&x!==null?()=>r({petRef:x,petName:y,vetName:v??null}):void 0;return jsxRuntime.jsxs(reactNative.View,{style:[a.screen,l],testID:"televet-visit-summary",children:[jsxRuntime.jsx(dt,{onBack:n,testID:"televet-visit-summary-back"}),jsxRuntime.jsxs(reactNative.ScrollView,{contentContainerStyle:a.body,children:[jsxRuntime.jsxs(reactNative.View,{style:s.head,children:[jsxRuntime.jsx(f,{style:s.screenTitle,accessibilityRole:"header",children:T}),w?jsxRuntime.jsx(f,{style:s.meta,children:w}):null]}),d.status==="loading"?jsxRuntime.jsxs(reactNative.View,{style:a.stack,testID:"televet-visit-summary-loading",accessibilityLabel:W.loading,children:[jsxRuntime.jsx(de,{height:96}),jsxRuntime.jsx(de,{height:96})]}):d.status==="absent"?null:d.status==="pending"?jsxRuntime.jsx(q,{title:W.summaryPending,testID:"televet-visit-summary-pending"}):d.status==="error"||g===null?jsxRuntime.jsx(q,{title:W.loadFailed,actionLabel:W.retry,onAction:d.retry,testID:"televet-visit-summary-error"}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[g.findingsText.trim().length>0?jsxRuntime.jsxs(reactNative.View,{style:a.card,children:[jsxRuntime.jsx(f,{style:a.title,accessibilityRole:"header",children:Ne(ge(W.sawTitleTemplate,{vet:k}))}),jsxRuntime.jsxs(reactNative.View,{style:a.cardHead,children:[jsxRuntime.jsx(f,{style:s.label,children:W.summaryLabel}),jsxRuntime.jsx(reactNative.View,{style:[a.pill,a.pillLine],children:jsxRuntime.jsx(f,{tier:"badge",style:[a.pillText,a.pillLineText],children:Ne(ge(W.fromVetTemplate,{vet:k}))})})]}),jsxRuntime.jsx(f,{style:s.body,children:g.findingsText})]}):null,g.nextStepsText.trim().length>0||g.actionItems.length>0?jsxRuntime.jsxs(reactNative.View,{style:a.card,testID:"televet-visit-summary-plan",children:[jsxRuntime.jsxs(reactNative.View,{style:a.cardHead,children:[jsxRuntime.jsx(f,{style:a.title,accessibilityRole:"header",children:Ne(ge(W.planTitleTemplate,{pet:Ut(y)}))}),jsxRuntime.jsx(reactNative.View,{style:a.pill,children:jsxRuntime.jsx(f,{tier:"badge",style:a.pillText,children:W.wordForWord})})]}),g.nextStepsText.trim().length>0?jsxRuntime.jsx(f,{style:s.body,children:g.nextStepsText}):null,g.actionItems.map((_,E)=>jsxRuntime.jsxs(reactNative.View,{style:s.planItem,children:[jsxRuntime.jsx(f,{style:s.planNumber,children:String(E+1).padStart(2,"0")}),jsxRuntime.jsx(f,{style:s.planText,children:`\u201C${_}\u201D`})]},`${String(E)}-${_}`))]}):null,g.medications.length>0?jsxRuntime.jsxs(reactNative.View,{style:a.card,testID:"televet-visit-summary-medications",children:[jsxRuntime.jsx(f,{style:a.title,accessibilityRole:"header",children:W.fromThisVisitTitle}),g.medications.map((_,E)=>jsxRuntime.jsxs(reactNative.View,{style:[a.row,E===0?a.rowFirst:null],children:[jsxRuntime.jsx(f,{style:a.when,children:[_.drug,_.strength].filter(Boolean).join(" ")}),_.sig?jsxRuntime.jsx(f,{style:a.meta,children:_.sig}):null]},`${String(E)}-${_.drug}`))]}):null,v||R?jsxRuntime.jsxs(reactNative.View,{style:a.card,testID:"televet-visit-summary-vet",children:[v?jsxRuntime.jsx(f,{style:a.title,children:v}):null,g.credentialsText?jsxRuntime.jsx(f,{style:a.meta,children:g.credentialsText}):null,R?jsxRuntime.jsx(B,{label:Ne(ge(W.messageVetTemplate,{vet:k})),kind:"secondary",fullWidth:false,onPress:R,testID:"televet-visit-summary-message"}):null]}):null,i?jsxRuntime.jsx(B,{label:W.bookFollowUp,onPress:i,testID:"televet-visit-summary-book"}):null,jsxRuntime.jsx(f,{style:a.footnote,testID:"televet-visit-summary-footnote",children:ge(W.summaryFootnoteTemplate,{vet:k})})]})]})]})}o(Ei,"TelevetVisitSummaryScreen");var ki=Object.freeze({name:"home"}),Qm=Object.freeze({name:"visits"}),Zm=Object.freeze({name:"booking"});function Si(e){let t=e.visitRef?.trim()??"";return t.length>0?Object.freeze({name:"visit",visitRef:t,intent:e.intent??null}):ki}o(Si,"televetScreenForRequest");function eg(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(eg,"navReducer");function hu(e){let{style:t,renderPending:n,...r}=Yt(e,["onExit","onBooked","onAddPet","onRequestLocation","onFindEmergencyVet"]);return jsxRuntime.jsx(ts,{capability:"televet",style:t,...n?{renderPending:n}:{},children:jsxRuntime.jsx(tg,{...r,style:t})})}o(hu,"EverfurTelevetFlow");function tg({petRef:e,usState:t,controller:n,onBooked:r,onExit:i,onAddPet:l,onPickMedia:a,onAddToCalendar:s,onConfirmDiscard:u,onRequestLocation:d,locationStatus:c,primaryVet:y,onFindEmergencyVet:g,onTriageReason:v,canJoinInApp:k=false,renderUnavailable:T,initialScreen:w,style:x}){let R=Y(),[_,E]=react.useReducer(eg,w??ki,z=>Object.freeze({stack:Object.freeze([z])})),S=_.stack[_.stack.length-1]??ki,P=_.stack.length,[L,J]=react.useState(0),C=react.useCallback(()=>J(z=>z+1),[]),h=react.useCallback(()=>P<=1||S.name==="call"||S.name==="booking"?false:(E({type:"pop"}),true),[P,S.name]);react.useEffect(()=>{let z=reactNative.BackHandler.addEventListener("hardwareBackPress",h);return ()=>{z.remove();}},[h]),Gt(h);let A=react.useCallback(()=>T?T():jsxRuntime.jsx(reactNative.View,{style:R.list,testID:"televet-unavailable",children:ot()?jsxRuntime.jsx(q,{title:p.bookingPausedTitle}):null}),[T,R.list]),I=react.useCallback(()=>{P>1?E({type:"pop"}):i?.();},[P,i]),O=o(z=>E({type:"push",screen:z}),"push"),M=react.useCallback(z=>E({type:"land",screen:z==="visits"?Qm:Zm}),[]),Ee=jsxRuntime.jsx(ii,{...e!==void 0?{petRef:e}:{},...t!==void 0?{usState:t}:{},...n?{controller:n}:{},onBooked:z=>{C(),r?.(z);},onExit:I,...l?{onAddPet:l}:{},...a?{onPickMedia:a}:{},...s?{onAddToCalendar:s}:{},...u?{onConfirmDiscard:u}:{},...d?{onRequestLocation:d}:{},...c?{locationStatus:c}:{},...y?{primaryVet:y}:{},...g?{onFindEmergencyVet:g}:{},...v?{onTriageReason:v}:{},canJoinInApp:k,renderUnavailable:A,style:x}),ae=jsxRuntime.jsx(hi,{...n?{controller:n}:{},revision:L,onOpenVisit:z=>O({name:"consult",consult:z}),onBook:()=>O({name:"booking"}),onBack:I,onOpenThread:z=>O({name:"thread",target:z}),onOpenSummary:z=>O({name:"summary",consult:z}),style:x});switch(S.name){case "home":return jsxRuntime.jsx(ng,{controller:n,onLand:M,style:x});case "booking":return Ee;case "visits":case "visit":return ae;case "consult":return jsxRuntime.jsx(pi,{consult:S.consult,...n?{controller:n}:{},revision:L,onJoin:(z,ne)=>O({name:"call",consultId:z.consultId,clinicianName:z.clinicianName,petName:ne}),onReschedule:z=>O({name:"reschedule",consult:z}),onCancelled:C,onBack:I,onMessageVet:z=>O({name:"thread",target:z}),style:x});case "reschedule":return jsxRuntime.jsx(bi,{consult:S.consult,...n?{controller:n}:{},onRescheduled:()=>{C(),E({type:"pop"});},onCancel:()=>E({type:"pop"}),style:x});case "call":return jsxRuntime.jsx(mi,{consultId:S.consultId,...n?{controller:n}:{},...S.clinicianName!==void 0?{clinicianName:S.clinicianName}:{},...S.petName!==void 0?{petName:S.petName}:{},onLeave:()=>{C(),I();},style:x});case "thread":return jsxRuntime.jsx(Ti,{petRef:S.target.petRef,petName:S.target.petName,vetName:S.target.vetName,...S.target.ownerCanStart!==void 0?{ownerCanStart:S.target.ownerCanStart}:{},...n?{controller:n}:{},onBack:()=>{C(),I();},style:x});case "summary":return jsxRuntime.jsx(Ei,{consult:S.consult,...n?{controller:n}:{},onBack:I,onMessageVet:z=>O({name:"thread",target:z}),onBook:()=>O({name:"booking"}),style:x});default:return sr(S)}}o(tg,"TelevetFlowBody");function ng({controller:e,onLand:t,style:n}){let r=Y(),i=be(e),l=za(i);return react.useEffect(()=>{l!=="pending"&&t(l);},[l,t]),jsxRuntime.jsxs(reactNative.View,{style:[r.screen,r.list,n],testID:"televet-landing-loading",children:[jsxRuntime.jsx(de,{height:72}),jsxRuntime.jsx(de,{height:72})]})}o(ng,"TelevetLandingScreen");var Ci=hu;function ug({request:e,onClose:t}){let n=D(),r=reactNativeSafeAreaContext.useSafeAreaInsets(),i=react.useMemo(()=>Mi(),[]),l=react.useCallback(()=>{i.dispatch()||t();},[i,t]),[a,s]=react.useState(false),u=react.useMemo(()=>({setFullBleed:s}),[]),d=react.useMemo(()=>Si(e),[e]);return jsxRuntime.jsx(reactNative.Modal,{visible:true,animationType:n.motion.reducedMotion?"none":"slide",presentationStyle:"fullScreen",onRequestClose:l,children:jsxRuntime.jsx(reactNative.View,{testID:"everfur-televet-modal",style:[Tu.root,{backgroundColor:n.color.surface},a?null:{paddingTop:r.top,paddingBottom:r.bottom}],children:jsxRuntime.jsx(uo.Provider,{value:i,children:jsxRuntime.jsx(yi.Provider,{value:u,children:jsxRuntime.jsx(Ci,{...e.petRef!==void 0?{petRef:e.petRef}:{},...e.usState!==void 0?{usState:e.usState}:{},initialScreen:d,onExit:t,canJoinInApp:Zr(),style:Tu.root})})})})})}o(ug,"EverfurTelevetModal");var Tu=reactNative.StyleSheet.create({root:{flex:1}});exports.BACK_LABEL=zr;exports.CANCELLATION_POLICY_VERSION_MAX=br;exports.CANCEL_REASON_MAX=Tr;exports.CONSULT_KINDS=ua;exports.CONSULT_MINUTES=tn;exports.CONSULT_STATUSES=da;exports.EverfurTelevet=Ci;exports.EverfurTelevetBooking=ii;exports.EverfurTelevetFlow=hu;exports.EverfurTelevetModal=ug;exports.EverfurTelevetReschedule=bi;exports.MEDIA_REFS_MAX=hr;exports.NO_MEDIA_SHORTFALL=kt;exports.REASON_TEXT_MAX=lt;exports.TELEVET_BOOKING_BASE=it;exports.TELEVET_BOOKING_COPY=p;exports.TELEVET_BOOKING_STEPS=en;exports.TELEVET_CONSULT_PAGE_LIMIT=Ia;exports.TELEVET_JOIN_CLOSES_MINUTES_AFTER=Ho;exports.TELEVET_JOIN_OPENS_MINUTES_BEFORE=jo;exports.TELEVET_MESSAGE_THREADS_PATH=kr;exports.TERMINAL_CONSULT_STATUSES=It;exports.TelevetBookedScreen=Kl;exports.TelevetBookingChrome=Yl;exports.TelevetClinicianEmptyState=Rd;exports.TelevetConsentCheckbox=Hn;exports.TelevetConsultScreen=pi;exports.TelevetDayStrip=Xl;exports.TelevetEarlyEmergency=xd;exports.TelevetEmergencyExits=zt;exports.TelevetEntitlementInterestState=Qf;exports.TelevetIntakeMedia=Jl;exports.TelevetJoinScreen=mi;exports.TelevetMediaDropNotice=Bn;exports.TelevetSlotPicker=jn;exports.TelevetStateInterestAction=Hl;exports.TelevetSummaryCard=ni;exports.TelevetSummaryRow=xt;exports.TelevetVetThreadScreen=Ti;exports.TelevetVisitSummaryScreen=Ei;exports.TelevetVisitsScreen=hi;exports.VET_MESSAGES_COPY=W;exports.VET_MESSAGE_CONTENT_MAX=Ro;exports.VET_MESSAGE_PAGE_DEFAULT=bn;exports.VET_MESSAGE_PAGE_MAX=Sa;exports.attestation=fl;exports.canConfirm=Vn;exports.canManageTelevetVisit=Wo;exports.createTelevetBookingController=Oo;exports.currentStep=cl;exports.emptyTelevetDraft=Fs;exports.formatVisitRange=cf;exports.formatWhen=js;exports.formatWhenWithDay=On;exports.hasPreviousStep=sl;exports.initialTelevetBookingState=al;exports.isHoldExpired=Fr;exports.isMediaShortfallEmpty=wl;exports.isSkipped=An;exports.isTelevetBookingCopyReady=ot;exports.isVetMessagesDark=hn;exports.isVetThreadVetFirst=Io;exports.isWellFormedStateCode=Ie;exports.mediaShortfallFromUnsentPicks=Lr;exports.parseVetCallCredential=To;exports.splitTelevetVisits=wn;exports.televetBookingKey=pl;exports.televetBookingReducer=dl;exports.televetBookingRefusal=gt;exports.televetCancelCall=Pa;exports.televetConsultCalendarKey=Ad;exports.televetConsultCall=Sr;exports.televetDaysFromSlots=$r;exports.televetEmptyRosterCause=Cl;exports.televetEmptyRosterView=Sl;exports.televetHoldCall=Ra;exports.televetJoinCall=_a;exports.televetJoinOpensAtMs=yp;exports.televetJoinReadiness=Uo;exports.televetMediaShortfallLines=_l;exports.televetRescheduleCall=wa;exports.televetScreenForRequest=Si;exports.televetThreadMessagesCall=xo;exports.televetThreadReadCall=Ea;exports.televetVisitSummaryCall=ka;exports.useEarlyTriage=El;exports.useStateInterest=kl;exports.useTelevetBookConsult=Mo;exports.useTelevetBookingAvailable=pp;exports.useTelevetBookingController=be;exports.useTelevetBookingEntitlement=Fo;exports.useTelevetCancellationPolicy=Sn;exports.useTelevetClinicians=Lo;exports.useTelevetHoldSlot=xn;exports.useTelevetJoin=fi;exports.useTelevetNextSlot=Bo;exports.useTelevetRescheduleConsult=zo;exports.useTelevetSlots=Cn;exports.useTelevetStatePolicy=kn;exports.useVetThread=si;exports.useVetThreads=Gn;exports.useVisitSummary=di;exports.validateBookingBody=Aa;exports.vetCallJoinReason=Eo;exports.vetCallJoinRefusal=ko;exports.vetThreadPetRef=Jn;exports.withUnsentPicks=Tf;
|