@everfur/sdk 0.5.8 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/CHANGELOG.md +89 -0
  2. package/dist/{Chat-z0C6qgrU.d.cts → Chat-BoAvCWhI.d.cts} +3 -3
  3. package/dist/{Chat-V_fRV7kR.d.ts → Chat-CHqcgMyw.d.ts} +3 -3
  4. package/dist/{DepthViews-B-rnrFpR.d.ts → DepthViews-7Y8Ur058.d.ts} +1 -1
  5. package/dist/{DepthViews-CmIFMqoE.d.cts → DepthViews-B0g83e_N.d.cts} +1 -1
  6. package/dist/{DepthViews-DQo49-QL.d.cts → DepthViews-CT5mQld9.d.cts} +1 -1
  7. package/dist/{DepthViews-R8bKbJ6t.d.ts → DepthViews-Dg2bIon_.d.ts} +1 -1
  8. package/dist/animations/index.cjs +1 -1
  9. package/dist/animations/index.d.cts +3 -3
  10. package/dist/animations/index.d.ts +3 -3
  11. package/dist/animations/index.js +1 -1
  12. package/dist/{attachments-D9wvXx_d.d.cts → attachments-C3HJNYQ7.d.cts} +2 -2
  13. package/dist/{attachments-BxewZK83.d.ts → attachments-CThFsH4b.d.ts} +5 -5
  14. package/dist/{attachments-CXLSLEvy.d.ts → attachments-CfxsVg7W.d.ts} +2 -2
  15. package/dist/{attachments-HXsnkA6A.d.cts → attachments-rkox0ewd.d.cts} +5 -5
  16. package/dist/{bookingCopy-DpqgkSZ_.d.cts → bookingCopy-Do3zMeXb.d.cts} +2 -2
  17. package/dist/{bookingCopy-DJnAMiJw.d.ts → bookingCopy-Y3OGdoMT.d.ts} +2 -2
  18. package/dist/{branding-xpQ056sM.d.ts → branding-ChXm8gxI.d.cts} +136 -4
  19. package/dist/{branding-Xb_wL8N1.d.cts → branding-DYWma2il.d.ts} +136 -4
  20. package/dist/{casesRepository-s5EjE3Md.d.ts → casesRepository-BbgXYPxa.d.ts} +1 -1
  21. package/dist/{casesRepository-C2gzlgJW.d.cts → casesRepository-Jj6t60AY.d.cts} +1 -1
  22. package/dist/chat/index.cjs +1 -1
  23. package/dist/chat/index.d.cts +9 -9
  24. package/dist/chat/index.d.ts +9 -9
  25. package/dist/chat/index.js +1 -1
  26. package/dist/client/index.cjs +6 -6
  27. package/dist/client/index.d.cts +10 -10
  28. package/dist/client/index.d.ts +10 -10
  29. package/dist/client/index.js +6 -6
  30. package/dist/{config-CBJgbICJ.d.cts → config-BZX97FmW.d.cts} +1 -1
  31. package/dist/{config-CQ4VFCgE.d.ts → config-Dfbj5mlx.d.ts} +1 -1
  32. package/dist/consent/index.cjs +1 -1
  33. package/dist/consent/index.d.cts +5 -5
  34. package/dist/consent/index.d.ts +5 -5
  35. package/dist/consent/index.js +1 -1
  36. package/dist/{context-CQohsg_w.d.ts → context-Cbe0zYym.d.ts} +7 -7
  37. package/dist/{context-t2PM_Hwc.d.cts → context-DJXnZ1Mx.d.cts} +7 -7
  38. package/dist/{copy-DfWmYRTc.d.ts → copy-DHekqSKE.d.ts} +2 -2
  39. package/dist/{copy-BuawMcCw.d.cts → copy-dKK5KoAQ.d.cts} +2 -2
  40. package/dist/core/index.cjs +9 -9
  41. package/dist/core/index.d.cts +15 -15
  42. package/dist/core/index.d.ts +15 -15
  43. package/dist/core/index.js +9 -9
  44. package/dist/{depth-Cvw1LdWV.d.ts → depth-CrpRjWGB.d.ts} +2 -2
  45. package/dist/{depth-DXK5Y7sO.d.cts → depth-NmWSbvfi.d.cts} +2 -2
  46. package/dist/{entitlementRepository-CatKDVru.d.cts → entitlementRepository-iL-9vS1i.d.cts} +3 -3
  47. package/dist/{entitlementRepository-MhuhRhmI.d.ts → entitlementRepository-tVNazi8R.d.ts} +3 -3
  48. package/dist/{identity-vvueVndA.d.ts → identity-B8rp0L9G.d.ts} +1 -1
  49. package/dist/{identity-DczAiVsf.d.cts → identity-D7PO5s9m.d.cts} +1 -1
  50. package/dist/index.cjs +6 -6
  51. package/dist/index.d.cts +16 -16
  52. package/dist/index.d.ts +16 -16
  53. package/dist/index.js +6 -6
  54. package/dist/notifications/index.d.cts +2 -2
  55. package/dist/notifications/index.d.ts +2 -2
  56. package/dist/{pets-BP2lkMbR.d.ts → pets-BQbXmICf.d.ts} +1 -1
  57. package/dist/{pets-BRsxDv4g.d.cts → pets-BWx9BKea.d.cts} +1 -1
  58. package/dist/{petsRepository-C4oEuH9r.d.ts → petsRepository-0oBVydl6.d.ts} +1 -1
  59. package/dist/{petsRepository-DeQqFxAV.d.cts → petsRepository-SqIvEMiT.d.cts} +1 -1
  60. package/dist/photo/index.cjs +1 -1
  61. package/dist/photo/index.js +1 -1
  62. package/dist/{ports-D0YSZnxV.d.cts → ports-ChnzSy4E.d.cts} +25 -6
  63. package/dist/{ports-DOoFLAKN.d.ts → ports-iXPWd7Vt.d.ts} +25 -6
  64. package/dist/records/depth/index.cjs +1 -1
  65. package/dist/records/depth/index.d.cts +7 -7
  66. package/dist/records/depth/index.d.ts +7 -7
  67. package/dist/records/depth/index.js +1 -1
  68. package/dist/records/index.cjs +2 -2
  69. package/dist/records/index.d.cts +9 -9
  70. package/dist/records/index.d.ts +9 -9
  71. package/dist/records/index.js +2 -2
  72. package/dist/{requestFunnel-D6UOCs0L.d.ts → requestFunnel-CQzz2DIW.d.ts} +2 -2
  73. package/dist/{requestFunnel-BGpcJ_po.d.cts → requestFunnel-DAwb7haa.d.cts} +2 -2
  74. package/dist/{runtimeTypes-Bi-_nYuC.d.ts → runtimeTypes-BNOxfmfg.d.ts} +5 -5
  75. package/dist/{runtimeTypes-wFAjfnu3.d.cts → runtimeTypes-DB9-kigO.d.cts} +5 -5
  76. package/dist/server/events/index.cjs +1 -1
  77. package/dist/server/events/index.d.cts +2 -2
  78. package/dist/server/events/index.d.ts +2 -2
  79. package/dist/server/events/index.js +1 -1
  80. package/dist/server/index.cjs +1 -1
  81. package/dist/server/index.d.cts +3 -3
  82. package/dist/server/index.d.ts +3 -3
  83. package/dist/server/index.js +1 -1
  84. package/dist/televet/booking/index.cjs +1 -1
  85. package/dist/televet/booking/index.d.cts +6 -6
  86. package/dist/televet/booking/index.d.ts +6 -6
  87. package/dist/televet/booking/index.js +1 -1
  88. package/dist/televet/call/index.cjs +1 -1
  89. package/dist/televet/call/index.js +1 -1
  90. package/dist/televet/index.cjs +1 -1
  91. package/dist/televet/index.js +1 -1
  92. package/dist/testing/index.d.cts +1 -1
  93. package/dist/testing/index.d.ts +1 -1
  94. package/dist/testing/rn/index.cjs +1 -1
  95. package/dist/testing/rn/index.d.cts +9 -9
  96. package/dist/testing/rn/index.d.ts +9 -9
  97. package/dist/testing/rn/index.js +1 -1
  98. package/dist/testing/web/index.d.cts +9 -9
  99. package/dist/testing/web/index.d.ts +9 -9
  100. package/dist/{timelineRows-CRy4jphH.d.cts → timelineRows-BuNhzDbH.d.cts} +1 -1
  101. package/dist/{timelineRows-BzaTUbq_.d.ts → timelineRows-Dll2IGFg.d.ts} +1 -1
  102. package/dist/{tokens-CIngRkvt.d.cts → tokens-ARWZtMOU.d.cts} +14 -2
  103. package/dist/{tokens-CIngRkvt.d.ts → tokens-ARWZtMOU.d.ts} +14 -2
  104. package/dist/{typeStyle-YPS_MXeI.d.ts → typeStyle-8iEqQmP_.d.ts} +2 -2
  105. package/dist/{typeStyle-DHJzDaUo.d.cts → typeStyle-YCS8dt19.d.cts} +2 -2
  106. package/dist/{useRecordsDepth-DIeDEXgB.d.cts → useRecordsDepth-CNEHZJtj.d.cts} +1 -1
  107. package/dist/{useRecordsDepth-UNvpPiHN.d.ts → useRecordsDepth-CuNdne6E.d.ts} +1 -1
  108. package/dist/video/index.cjs +1 -1
  109. package/dist/video/index.js +1 -1
  110. package/dist/{view-D4bOSC88.d.cts → view-BhqWlYrZ.d.cts} +2 -2
  111. package/dist/{view-DvY7eq4Q.d.ts → view-DFy8EDwf.d.ts} +2 -2
  112. package/dist/web/consent/index.cjs +1 -1
  113. package/dist/web/consent/index.d.cts +5 -5
  114. package/dist/web/consent/index.d.ts +5 -5
  115. package/dist/web/consent/index.js +1 -1
  116. package/dist/web/index.cjs +7 -7
  117. package/dist/web/index.d.cts +19 -19
  118. package/dist/web/index.d.ts +19 -19
  119. package/dist/web/index.js +7 -7
  120. package/dist/web/notifications/index.d.cts +3 -3
  121. package/dist/web/notifications/index.d.ts +3 -3
  122. package/dist/web/records/depth/index.cjs +1 -1
  123. package/dist/web/records/depth/index.d.cts +7 -7
  124. package/dist/web/records/depth/index.d.ts +7 -7
  125. package/dist/web/records/depth/index.js +1 -1
  126. package/dist/web/records/index.cjs +3 -3
  127. package/dist/web/records/index.d.cts +9 -9
  128. package/dist/web/records/index.d.ts +9 -9
  129. package/dist/web/records/index.js +3 -3
  130. package/dist/web/televet/booking/index.cjs +2 -2
  131. package/dist/web/televet/booking/index.d.cts +7 -7
  132. package/dist/web/televet/booking/index.d.ts +7 -7
  133. package/dist/web/televet/booking/index.js +2 -2
  134. package/dist/web/televet/call/index.cjs +1 -1
  135. package/dist/web/televet/call/index.js +1 -1
  136. package/dist/web/televet/index.cjs +3 -3
  137. package/dist/web/televet/index.js +3 -3
  138. package/package.json +1 -1
@@ -1 +1 @@
1
- import {createContext,forwardRef,createElement,useState,useEffect,useCallback,useSyncExternalStore,useMemo,useRef,useContext,Component}from'react';import {TextInput,AccessibilityInfo,View,Image,ActivityIndicator,StyleSheet,Text}from'react-native';import {jsx,jsxs}from'react/jsx-runtime';import {z}from'zod';var Mt=Object.defineProperty;var n=(e,t)=>Mt(e,"name",{value:t,configurable:true});function ie(e){if(e!==null&&typeof e=="object"&&!Object.isFrozen(e)){Object.freeze(e);for(let t of Object.keys(e))ie(e[t]);}return e}n(ie,"deepFreeze");var Dt=Object.freeze({content:0,heading:2,control:1.8,compact:1.5,badge:1.3}),Be={xs:4,sm:8,md:12,lg:16,xl:24,xxl:32},Ke={tile:5,xs:6,sm:10,md:14,lg:20,xl:28,pill:500},Ue={nano:8,small:9,micro:10,tiny:11,caption:12,bodyTight:13,body:14,subtitle:16,heading:18,verdict:24},zt={tight:1.15,snug:1.3,normal:1.4,relaxed:1.55},jt={regular:"400",medium:"500",bold:"700"},Nt={eyebrow:1,monoWide:.9,headerBrand:-0.42,tight:-0.35},Lt=0,G="System",Y="monospace",Ut=["content","heading","control","compact","badge"];function Bt(e){let t={};for(let r of Ut)t[r]=e;return t}n(Bt,"authoredTierSizes");function qe(){return {family:G,mono:Y,fontUrl:null,families:{regular:G,medium:G,bold:G,mono:Y,monoMedium:Y,monoBold:Y},namedFaces:{regular:false,medium:false,bold:false,mono:false,monoMedium:false,monoBold:false},fontUrls:{},size:Ue,tierSizes:Bt(Ue),lineHeight:zt,weight:jt,letterSpacing:Nt,scale:1,maxScale:Lt,scaleCaps:Dt}}n(qe,"baseType");var Ve={},oe=Object.freeze({standard:Object.freeze([.2,0,0,1]),emphasized:Object.freeze([.2,.8,.2,1]),exit:Object.freeze([.4,0,1,1])});function ae(e){return `cubic-bezier(${e.join(", ")})`}n(ae,"cssCubicBezier");var He={duration:{instant:80,fast:140,normal:220,slow:320},spring:{gentle:{damping:18,stiffness:200}},easing:{standard:ae(oe.standard),emphasized:ae(oe.emphasized),exit:ae(oe.exit)},reducedMotion:false},Kt={brand:"#10462E",brandSoft:"rgba(16,70,46,0.10)",brandSofter:"rgba(16,70,46,0.15)",brandBorder:"rgba(16,70,46,0.18)",borderHairlineGreen:"rgba(16,70,46,0.25)",brandBorderStrong:"rgba(16,70,46,0.55)",brandInk:"#10462E",linkInk:"#10462E",surface:"#FFFFFF",surfaceCream:"#FDFBF8",surfaceSubtle:"#EFE9E3",background:"#FFFFFF",borderRingCream:"#D8D2C8",chatGround:"#FFFFFF",composerFill:"#FDFBF8",composerBorder:"rgba(16,70,46,0.75)",shadow:"#0B3421",text:{primary:"#111111",secondary:"#0E462E",muted:"#6E6660",placeholder:"rgba(61,61,61,0.75)",onBrand:"#FFFFFF",metaCool:"#3D3D3D",timestamp:"rgba(61,61,61,0.75)"},primary:"#10462E",onPrimary:"#FFFFFF",accent:"#10462E",onAccent:"#FFFFFF",accentEdge:"#07C168",success:"#07C168",danger:"#B91C1C",errorRed:"#FF1B00",warningStrong:"#A45610",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.12)",badgeBgCaution:"rgba(217,130,29,0.14)",badgeBgCritical:"rgba(185,28,28,0.12)",badgeBgNeutral:"rgba(110,102,96,0.12)",bubbleUser:"#10462E",bubbleAssistant:"#FFFFFF",skeleton:"#EFE9E3",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.10)",checkupCardConcernBg:"rgba(239,167,0,0.10)"},We=ie({brightness:"light",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:Kt,space:Be,radius:Ke,type:qe(),motion:He,slots:Ve}),qt={brand:"#6BD39A",brandSoft:"rgba(107,211,154,0.12)",brandSofter:"rgba(107,211,154,0.18)",brandBorder:"rgba(107,211,154,0.22)",borderHairlineGreen:"rgba(107,211,154,0.28)",brandBorderStrong:"rgba(107,211,154,0.55)",brandInk:"#6BD39A",linkInk:"#6BD39A",surface:"#1C1F23",surfaceCream:"#23272C",surfaceSubtle:"#23272C",background:"#15171A",borderRingCream:"#3A3F45",chatGround:"#1C1F23",composerFill:"#23272C",composerBorder:"rgba(107,211,154,0.75)",shadow:"#000000",text:{primary:"#F5F3F0",secondary:"#A9E4C4",muted:"#9A938C",placeholder:"rgba(255,255,255,0.55)",onBrand:"#0E1F17",metaCool:"#C9C9C9",timestamp:"rgba(245,243,240,0.7)"},primary:"#6BD39A",onPrimary:"#0E1F17",accent:"#6BD39A",onAccent:"#0E1F17",accentEdge:"#34D888",success:"#07C168",danger:"#F87171",errorRed:"#FF6B5B",warningStrong:"#F0A35E",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.18)",badgeBgCaution:"rgba(217,130,29,0.20)",badgeBgCritical:"rgba(185,28,28,0.22)",badgeBgNeutral:"rgba(255,255,255,0.10)",bubbleUser:"#6BD39A",bubbleAssistant:"#1C1F23",skeleton:"#23272C",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.16)",checkupCardConcernBg:"rgba(239,167,0,0.16)"};ie({brightness:"dark",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:qt,space:Be,radius:Ke,type:qe(),motion:He,slots:Ve});var Ge=Symbol.for("@everfur/sdk#EverfurThemeContext@v1"),Ye=globalThis,se=Ye[Ge]??(Ye[Ge]=createContext(We));se.displayName??="EverfurThemeContext";function M(){return useContext(se)}n(M,"useEverfurTheme");function $t(e,t){let r=e.scaleCaps[t];return r>0?r:void 0}n($t,"tierMultiplier");function $({tier:e="content",...t}){let{type:r}=M(),o=$t(r,e);return createElement(Text,o===void 0?t:{maxFontSizeMultiplier:o,...t})}n($,"Text");forwardRef(n(function(t,r){return createElement(TextInput,{...t,...r===null?{}:{ref:r}})},"TextInput"));function Q(e){throw new Error(`assertNever: unhandled discriminated-union member ${JSON.stringify(e)}`)}n(Q,"assertNever");function Qe(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})}n(Qe,"errorFrame");var Jt=Object.freeze({regular:"regular",medium:"medium",bold:"bold",mono:"regular",monoMedium:"medium",monoBold:"bold"});function Xe(e,t){let r=e.type,o=r.families[t];return t==="mono"||r.namedFaces[t]?{fontFamily:o}:{fontFamily:o,fontWeight:r.weight[Jt[t]]}}n(Xe,"face");var ue=class ue extends Component{constructor(){super(...arguments);this.state={failed:false,key:this.props.resetKey};}static getDerivedStateFromError(){return {failed:true}}static getDerivedStateFromProps(r,o){return Object.is(r.resetKey,o.key)?null:{failed:false,key:r.resetKey}}render(){return this.state.failed?this.props.fallback:this.props.children}};n(ue,"HostRenderBoundary");var le=ue;function er({render:e}){return e()}n(er,"RenderHost");function de({render:e,fallback:t,resetKey:r}){return createElement(le,{fallback:t,resetKey:r,children:createElement(er,{render:e})})}n(de,"HostRender");var ce=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(ce.map(e=>e.wireCode));var tr=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"}),et=Object.freeze(ce.map(e=>Object.freeze({wireCode:e.wireCode,envelope:e.envelope,retryable:e.retryable,normalized:tr[e.wireCode]}))),rr=new Map(et.map(e=>[e.envelope+e.wireCode.toUpperCase(),e])),nr=Object.freeze(["http_envelope",...[...new Set(et.map(e=>e.envelope))].filter(e=>e!=="http_envelope").sort()]);function X(e,t){if(typeof e!="string")return;let r=e.trim().toUpperCase();if(r.length!==0)for(let o of [t??"http_envelope",...nr]){let a=rr.get(o+r);if(a)return a}}n(X,"contractErrorFor");function or(e){return e.envelope==="sse_frame"?`/errors#sse-${e.wireCode}`:e.envelope==="oauth_error"?`/errors#oauth-${e.wireCode}`:`/errors#${e.wireCode}`}n(or,"contractDocUrl");function tt(e){return null}n(tt,"publishedDocUrl");var ar=Object.freeze({authExpired:"authentication",authRejected:"authentication",sessionRequired:"authentication",accessDenied:"authorization",paymentRequired:"entitlement",quotaExceeded:"rateLimit",rateLimited:"rateLimit",validationFailed:"invalidRequest",sdkUpdateRequired:"invalidRequest",conversationNotFound:"notFound",petNotFound:"notFound",resourceNotFound:"notFound",conflict:"conflict",idempotencyConflict:"conflict",idempotencyInFlight:"conflict",streamTimeout:"connection",streamIncomplete:"connection",upstreamLlmTimeout:"connection",serviceUnavailable:"connection",internalError:"server",notImplemented:"server",mediaUploadFailed:"media",moderationBlocked:"policy",unknown:"unknown"});function rt(e){return ar[e]}n(rt,"categoryFor");function nt(e){let t=X(e);if(t)return t.normalized;let r=(e??"").trim().toUpperCase(),o=r.replace(/[^A-Z0-9]/g,"");if(o==="AUTHREJECTED")return "authRejected";if(r.startsWith("AUTH"))return "authExpired";switch(o){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"}}n(nt,"fromWire");var ir=new Set(["streamTimeout","rateLimited","internalError","upstreamLlmTimeout","streamIncomplete"]);function pe(e){return ir.has(e)}n(pe,"isAutoRetryable");var sr=new Set(["serviceUnavailable","conflict","idempotencyInFlight"]);function ot(e){return pe(e)||sr.has(e)}n(ot,"isRetryableCode");var lr=500,fe=8e3,at=4;function it(e,t=Math.random){let r=Math.max(0,e),o=Math.min(lr*2**r,fe);return Math.floor(t()*o)}n(it,"backoffDelayMs");var dr=Object.freeze({authExpired:"Please sign in again to continue.",authRejected:"Please sign in again to continue.",sessionRequired:"This app needs to be updated to keep using Everfur.",accessDenied:"This feature isn't available on your account right now.",paymentRequired:"This is part of a paid plan.",quotaExceeded:"You have used today's messages. This resets tomorrow.",rateLimited:"You are sending messages quickly. Try again in a few seconds.",validationFailed:"Something in that request was not right. Check the details and try again.",sdkUpdateRequired:"This app needs to be updated to keep using Everfur.",conflict:"That is already running. Wait for it to finish, then try again.",idempotencyConflict:"That message was already delivered.",idempotencyInFlight:"That is still processing. Give it a moment.",conversationNotFound:"This conversation is no longer available.",petNotFound:"We could not find that pet. Please pick a pet and try again.",resourceNotFound:"We could not find that.",streamTimeout:"The response timed out. Tap retry to try again.",mediaUploadFailed:"We could not upload that photo. Please attach it again.",moderationBlocked:"This request cannot be answered here.",upstreamLlmTimeout:"The response timed out. Tap retry to try again.",internalError:"We hit a snag on our end. Please try again.",notImplemented:"That is not available yet.",serviceUnavailable:"That service is briefly unavailable. Try again shortly.",streamIncomplete:"The connection dropped mid-answer. Tap retry to continue.",unknown:"Something went wrong. Please try again."});function U(e){return dr[e]}n(U,"userFacingError");function st(e,t,r){Object.defineProperty(e,t,{value:r,enumerable:false,writable:false,configurable:false});}n(st,"defineHidden");var ur=/^[a-z][a-z0-9_]{0,63}$/;function N(e,t){let r=X(t?.wireCode,t?.wireEnvelope),o={code:e,category:rt(e),retryable:t?.retryable??ot(e),displayMessage:U(e)};if(t?.httpStatus!==void 0&&(o.httpStatus=t.httpStatus),t?.requestId&&(o.requestId=t.requestId),typeof t?.reasonCode=="string"&&ur.test(t.reasonCode)&&(o.reasonCode=t.reasonCode),r);return t?.wireMessage&&st(o,"wireMessage",t.wireMessage),t?.raw!==void 0&&t.raw!==null&&st(o,"raw",t.raw),Object.freeze(o)}n(N,"makeEverfurError");var cr=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 pr(e){return cr[e]}n(pr,"requires");function lt(e,t,r){let o=pr(e),a=new Map;for(let c of t)a.set(c.resource,c);if(r?.isPending===true&&o.some(c=>!a.has(c)))return ye({name:e,enabled:false,isPending:true,limits:{}});let s=fr(o,a);return o.filter(c=>a.get(c)?.granted!==true).length===0?ye({name:e,enabled:true,isPending:false,limits:s}):ye({name:e,enabled:false,isPending:false,limits:s,disabled:yr(o,a)})}n(lt,"decideCapability");function fr(e,t){let r={};for(let o of e){let a=t.get(o)?.limits;if(a)for(let[s,d]of Object.entries(a)){let c=r[s];r[s]=c===void 0?d:Math.min(c,d);}}return r}n(fr,"mergeLimits");function yr(e,t){for(let r of e){let o=t.get(r)?.disabled;if(o)return Object.freeze({reason:o.reason,level:o.level,recoverable:o.recoverable})}return Object.freeze({reason:U("accessDenied"),level:"user_entitlement",recoverable:false})}n(yr,"disabledFor");function ye(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)}n(ye,"freezeDecision");function me(e,t){return Object.freeze(t===void 0?{ok:true,value:e}:{ok:true,value:e,warning:t})}n(me,"ok");function P(e){return Object.freeze({ok:false,error:e})}n(P,"err");var J=class J extends Error{constructor(t,r){super(r),this.name="EverfurConfigError",this.kind=t,Object.setPrototypeOf(this,J.prototype);}};n(J,"EverfurConfigError");var B=J;var dt=Symbol.for("@everfur/sdk#EverfurContext@v1"),ut=globalThis,ct=ut[dt]??(ut[dt]=createContext(null));ct.displayName??="EverfurContext";function Z(){let e=useContext(ct);if(e===null)throw new B("not-initialized","Everfur hooks must be called inside <EverfurProvider>. Wrap your tree once, high.");return e}n(Z,"useEverfurContext");function K(e){let{runtime:t}=Z(),r=t.entitlements,o=useSyncExternalStore(r.subscribe,r.getSnapshot,r.getSnapshot);return useMemo(()=>lt(e,o.decisions,{isPending:o.isPending}),[e,o])}n(K,"useCapability");var Er=48;function hr(e){return e.isPending?"pending":e.enabled?"enabled":"disabled"}n(hr,"selectView");function mt(e){let{capability:t,children:r,renderDisabled:o,renderPending:a,style:s}=e,d=K(t),c=useMemo(()=>hr(d),[d]);switch(c){case "enabled":return r;case "pending":return a?jsx(de,{render:a,fallback:jsx(ft,{capability:t,style:s})}):jsx(ft,{capability:t,style:s});case "disabled":return o?jsx(de,{render:()=>o(d),fallback:jsx(yt,{decision:d,style:s}),resetKey:d}):jsx(yt,{decision:d,style:s});default:return Q(c)}}n(mt,"CapabilityGate");function ft({capability:e,style:t}){let r=M(),o=useMemo(()=>bt(r),[r]);return jsx(View,{style:[o.offstate,t],accessible:true,accessibilityState:{busy:true},accessibilityLabel:`Loading ${e}`,children:jsx(View,{style:o.skeletonBar})})}n(ft,"PendingSkeleton");function yt({decision:e,style:t}){let r=M(),o=useMemo(()=>bt(r),[r]),a=e.disabled?.reason??"";return jsx(View,{style:[o.offstate,t],accessible:true,accessibilityRole:"text",accessibilityLabel:a,children:a.length>0?jsx($,{style:o.offstateText,children:a}):null})}n(yt,"OffState");function bt(e){let{color:t,space:r,radius:o,type:a}=e;return StyleSheet.create({offstate:{minHeight:Er,justifyContent:"center",paddingHorizontal:r.lg,paddingVertical:r.md,backgroundColor:t.surfaceCream,borderRadius:o.md,borderWidth:StyleSheet.hairlineWidth,borderColor:t.brandBorder},offstateText:{...Xe(e,"regular"),fontSize:a.size.body,lineHeight:Math.round(a.size.body*a.lineHeight.normal),color:t.text.muted},skeletonBar:{height:r.md,borderRadius:o.xs,backgroundColor:t.brandSofter}})}n(bt,"makeStyles");function _r(){let e=new Uint8Array(16),t=globalThis.crypto;if(typeof t?.getRandomValues=="function")t.getRandomValues(e);else for(let o=0;o<e.length;o+=1)e[o]=Math.floor(Math.random()*256);e[6]=e[6]&15|64,e[8]=e[8]&63|128;let r=[];for(let o=0;o<e.length;o+=1)r.push(e[o].toString(16).padStart(2,"0"));return r.slice(0,4).join("")+"-"+r.slice(4,6).join("")+"-"+r.slice(6,8).join("")+"-"+r.slice(8,10).join("")+"-"+r.slice(10,16).join("")}n(_r,"newSessionId");function Sr(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}n(Sr,"authHeaders");function q(e,t){return {...e,headers:{...Rr(e.headers),...Sr(t)}}}n(q,"withAuthHeaders");function Rr(e){if(!e)return {};let t={};for(let[r,o]of Object.entries(e)){let a=r.toLowerCase();a==="authorization"||a==="x-everfur-partner-key"||(t[r]=o);}return t}n(Rr,"stripAuthHeaders");async function vt(e,t){if(t.mode==="anonymous")return t.transport.request(q(e,{mode:"anonymous",publishableKey:t.publishableKey,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));let r;try{r=await t.identity.currentToken();}catch{return P(ge())}let o=await t.transport.request(q(e,{mode:"personalized",token:r,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));if(o.ok||o.error.httpStatus!==401)return o;let a;try{a=await t.identity.currentToken({forceRefresh:!0});}catch{return P(ge())}let s=await t.transport.request(q(e,{mode:"personalized",token:a,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));return !s.ok&&s.error.httpStatus===401?P(ge(s.error.httpStatus)):s}n(vt,"authedSend");function ge(e){return N("authRejected",{retryable:false,...e!==void 0?{httpStatus:e}:{}})}n(ge,"authRejectedError");function gt(e){return N("internalError",{retryable:true,wireMessage:Tr(e)})}n(gt,"networkError");function Tr(e){return e instanceof Error?e.message:typeof e=="string"?e:"network request failed"}n(Tr,"describeCause");var Cr=3e4,wr=fe*2,kr="idempotency-key",xr=new Set(["POST","PUT","PATCH","DELETE"]),Fr=Object.freeze({onEvent(){}}),Pr=Object.freeze({setTimeout:n((e,t)=>setTimeout(e,t),"setTimeout"),clearTimeout:n(e=>clearTimeout(e),"clearTimeout"),now:n(()=>Date.now(),"now")});function Or(e){let t=e.trim().replace(/[^A-Za-z0-9_.:-]/g,"-");return t.length===0?null:`efs_${t}`.slice(0,128)}n(Or,"seededIdempotencyKey");function ht(e){let t=e.observer??Fr,r=e.timers??Pr,o=e.rng??Math.random,a=e.sleep??((y,p)=>Hr(y,r,p)),s=e.maxAttempts??at,d=e.unaryTimeoutMs??Cr,c=e.newIdempotencyKey??Ir(),m=n(y=>{try{t.onEvent(y);}catch{}},"emit");async function f(y,p,_){let S=_?.maxAttempts,F=Math.max(1,S??s),I=_?.idempotent??xr.has(p.method),E=_?.idempotencyKey===void 0?null:Or(_.idempotencyKey),C=I?E??c():null,z=Ar(p,C),l=0;for(;;){let v=n(T=>Object.freeze({call:y,method:p.method,path:p.path,attempt:l,...C?{idempotencyKey:C}:{},...T}),"stamp");m(v({phase:"attempt"}));let O=qr(d,r),j=Vr(O.signal,p.signal),i;try{i=await vt({...z,signal:j.signal},e.auth);}catch(T){i=P(gt(T));}finally{j.dispose(),O.cancel();}if(i.ok)return m(v({phase:"settled",ok:true,reason:"ok"})),i;let u=i.error,g=Dr(u,l,{maxAttempts:F,rng:o,now:r.now(),aborted:p.signal?.aborted===true,...S!==void 0?{perCallMaxAttempts:S}:{},...e.errorPolicy!==void 0?{policy:e.errorPolicy}:{}}),R={ok:false,code:u.code,reason:g.reason,...u.httpStatus!==void 0?{httpStatus:u.httpStatus}:{},...u.requestId!==void 0?{requestId:u.requestId}:{}};if(!g.retry)return m(v({phase:"settled",...R})),P(u);if(m(v({phase:"retry",...R,delayMs:g.delayMs})),await a(g.delayMs,p.signal),p.signal?.aborted===true)return m(v({phase:"settled",...R,reason:"aborted"})),P(u);l+=1;}}n(f,"send");async function b(y){return q(y,await Kr(e.auth))}n(b,"authorize");async function*h(y,p,_){m(Object.freeze({call:y,phase:"stream.open",method:p.method,path:p.path,attempt:0}));try{yield*e.auth.transport.stream(p,_);}catch{yield Qe({code:"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null,serverRequestId:null});}}return n(h,"stream"),Object.freeze({send:f,authorize:b,stream:h})}n(ht,"createRequestFunnel");function Ar(e,t){let r={};for(let[o,a]of Object.entries(e.headers??{}))o.toLowerCase()!==kr&&(r[o]=a);return t!==null&&(r["Idempotency-Key"]=t),{...e,headers:r}}n(Ar,"assembleHeaders");function Ir(){let e=0;return ()=>`efk_${Date.now().toString(36)}_${(e++).toString(36)}_${Math.random().toString(36).slice(2,12)}`}n(Ir,"defaultIdempotencyKeyFactory");var Mr=10;function Dr(e,t,r){if(r.aborted)return {retry:false,reason:"aborted"};let o=zr(e);if(o==="quota")return {retry:false,reason:"daily-quota-exhausted"};if(o!=="burst"&&!pe(e.code))return {retry:false,reason:"terminal-code"};let a=o==="burst"?"burst-throttle":"retryable-code";if(n(()=>{if(r.policy===void 0)return false;try{return !r.policy.shouldRetry(e.code,t)}catch{return false}},"policyVetoedRetry")())return {retry:false,reason:"terminal-code"};let d=n(()=>{if(r.policy===void 0)return null;let f;try{f=r.policy.maxAttempts(e.code);}catch{return null}return typeof f!="number"||!Number.isFinite(f)?null:Math.max(1,Math.min(Mr,Math.floor(f)))},"policyCeiling"),c=r.perCallMaxAttempts??d()??r.maxAttempts;if(t+1>=c)return {retry:false,reason:"attempts-exhausted"};let m=jr(e,r.now);return m!==null?m>wr?{retry:false,reason:"server-reset-beyond-budget"}:{retry:true,reason:a,delayMs:m}:{retry:true,reason:a,delayMs:it(t,r.rng)}}n(Dr,"decideRetry");function zr(e){let t=e.code==="unknown"?nt(Br(e.raw)):e.code;return t==="quotaExceeded"?"quota":t==="rateLimited"||e.httpStatus===429?"burst":null}n(zr,"throttleKind");function jr(e,t){let r=Lr(e.raw);if(r!==null){let a=r-t;return a>0?a:0}let o=Nr(e.raw);return o===null?null:Math.round(o*1e3)}n(jr,"retryOverrideMs");function Nr(e){for(let t of Ee(e)){let r=t.retry_after_seconds;if(typeof r=="number"&&Number.isFinite(r)&&r>=0)return r}return null}n(Nr,"findRetryAfterSeconds");function Lr(e){for(let t of Ee(e)){let r=t.resets_at,o=Ur(r);if(o!==null)return o}return null}n(Lr,"findResetsAt");function Ee(e){if(!Et(e))return [];let t=[e];for(let r of ["error","detail"]){let o=e[r];Et(o)&&t.push(o);}return t}n(Ee,"candidateScopes");function Ur(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}n(Ur,"parseInstantMs");function Br(e){for(let t of Ee(e)){let r=t.code;if(typeof r=="string"&&r.length>0)return r}return null}n(Br,"rawWireCode");function Et(e){return typeof e=="object"&&e!==null}n(Et,"isRecord");async function Kr(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}:{}}}n(Kr,"resolveDeviceAuth");function qr(e,t){let r=new AbortController,o=t.setTimeout(()=>r.abort(),e);return {signal:r.signal,cancel:n(()=>t.clearTimeout(o),"cancel")}}n(qr,"boundedSignal");function Vr(e,t){let r=n(()=>{},"noop");if(!t)return {signal:e,dispose:r};let o=new AbortController;if(e.aborted||t.aborted)return o.abort(),{signal:o.signal,dispose:r};let a=n(()=>o.abort(),"onAbort");return e.addEventListener("abort",a,{once:true}),t.addEventListener("abort",a,{once:true}),{signal:o.signal,dispose:n(()=>{e.removeEventListener("abort",a),t.removeEventListener("abort",a);},"dispose")}}n(Vr,"mergeSignals");function Hr(e,t,r){return e<=0||r?.aborted===true?Promise.resolve():new Promise(o=>{let a=t.setTimeout(()=>{r?.removeEventListener("abort",s),o();},e),s=n(()=>{t.clearTimeout(a),o();},"onAbort");r?.addEventListener("abort",s,{once:true});})}n(Hr,"delayAbortable");function _t(e){for(let t=0;t<e.length;t+=1){let r=e.charCodeAt(t);if(r>=55296&&r<=56319){let o=e.charCodeAt(t+1);if(!(o>=56320&&o<=57343))return true;t+=1;}else if(r>=56320&&r<=57343)return true}return false}n(_t,"hasLoneSurrogate");function he(e){let t={url:e.url,kind:e.kind,expiresAt:e.expires_at};return typeof e.loop_duration_ms=="number"&&(t.loopDurationMs=e.loop_duration_ms),typeof e.cache_key=="string"&&e.cache_key.length>0&&(t.cacheKey=e.cache_key),Object.freeze(t)}n(he,"mapTier");function _e(e){let t={};e.tiers.animation&&(t.animation=he(e.tiers.animation)),e.tiers.image&&(t.image=he(e.tiers.image));let r={};e.overlays.weather_alert&&(r.weatherAlert=he(e.overlays.weather_alert));let o={category:e.category,tiers:Object.freeze(t),overlays:Object.freeze(r),idle:"bundled",ttlSeconds:e.ttl_seconds,degraded:e.degraded};return typeof e.cache_epoch=="number"&&(o.cacheEpoch=e.cache_epoch),Object.freeze(o)}n(_e,"mapPetStateResponse");var Wr=z.enum(["webp","video"]),Gr=z.enum(["health","attention","moment","activity","mood","idle"]),Se=z.object({url:z.string(),kind:Wr.default("webp"),loop_duration_ms:z.number().nullish(),expires_at:z.string(),cache_key:z.string().nullish()}),St=z.object({category:Gr,tiers:z.object({animation:Se.optional(),image:Se.optional()}).default({}),overlays:z.object({weather_alert:Se.optional()}).default({}),idle:z.literal("bundled").default("bundled"),ttl_seconds:z.number(),degraded:z.boolean().default(false),cache_epoch:z.number().default(0)});function Re(e){let t=St.safeParse(e);return t.success?t.data:null}n(Re,"parsePetStateWire");function Te(e){return Yr(ht({auth:e}))}n(Te,"createPetStateRepository");function Yr(e){return {async getState(t,r){if(_t(t))return P(N("validationFailed",{retryable:false,wireMessage:"pet_ref contains an unpaired surrogate and cannot be encoded"}));let o=`/widget/v1/pets/${encodeURIComponent(t)}/state`,a=await e.send("animations.getState",r?.signal?{method:"GET",path:o,signal:r.signal}:{method:"GET",path:o});if(a.ok){let s=Re(a.value);return s===null?P(N("internalError",{retryable:true})):me(_e(s))}return a.error.httpStatus===404?me(null):P(a.error)}}}n(Yr,"createPetStateRepositoryOver");function Ce(e){if(e===void 0)return "bundled:none";if(typeof e=="number")return `bundled:${e}`;if("kind"in e)return `bundled:${e.id}`;let t=e.uri,r=t.indexOf("?");return r===-1?t:t.slice(0,r)}n(Ce,"stableMediaKey");function we(e){return e.hasPhoto&&!e.photoFailed?"photo":e.canAnimate&&!e.animationFailed?"animation":e.hasImage&&!e.imageFailed?"image":"idle"}n(we,"selectTier");function ke(e,t){switch(e){case "photo":return {failed:V({...t,photo:true}),reason:"network_error"};case "animation":return {failed:V({...t,animation:true}),reason:"network_error"};case "image":return {failed:V({...t,image:true}),reason:"network_error"};case "idle":return {failed:V(t),reason:"idle_asset_failed"};default:return {failed:V(t),reason:"network_error"}}}n(ke,"retireTier");var H=Object.freeze({photo:false,animation:false,image:false});function V(e){return Object.freeze({photo:e.photo,animation:e.animation,image:e.image})}n(V,"freezeFailed");function $r(e){switch(e){case "activity":case "mood":case "moment":case "idle":return true;case "health":case "attention":return false;default:return false}}n($r,"isLoaderSafeCategory");var xe="everfur.petState.cacheEpoch";function Fe(e){let t=0,r=false,o=null,a=n(async s=>{if(r||(t=await Qr(e.kv),r=true),s<=t)return false;try{await e.kv.setItem(xe,String(s));}catch{}t=s;try{await e.cache.clearMemoryCache();}catch{}try{await e.cache.clearDiskCache();}catch{}return true},"run");return {async sync(s){return typeof s!="number"||!Number.isFinite(s)||s<=0||r&&s<=t?false:o||(o=a(s).finally(()=>{o=null;}),o)}}}n(Fe,"createCacheEpochGuard");async function Qr(e){let t;try{t=await e.getItem(xe);}catch{return 0}if(t===null)return 0;let r=Number(t);return Number.isFinite(r)&&r>0?r:0}n(Qr,"readStoredEpoch");var Pe=1,Oe="everfur.manifest.lastKnownGood",L=Object.freeze({kind:"bundled",id:"everfur-idle"}),W=Object.freeze({schemaVersion:Pe,revision:"compiled-default",surfaces:Object.freeze({animations:Object.freeze({enabled:true,idle:L})})}),Xr=z.object({kind:z.literal("bundled"),id:z.string().min(1)}),Jr=z.object({enabled:z.boolean().default(true),idle:Xr.optional()}),Zr=z.object({schema_version:z.number().int(),revision:z.string().default(""),surfaces:z.object({animations:Jr.optional()}).default({})});function Ae(e){let t=Zr.safeParse(e);if(!t.success)return {ok:false,reason:"unparseable"};if(t.data.schema_version>Pe)return {ok:false,reason:"newer_schema"};let r=t.data.surfaces.animations,o={};return r&&(o.animations=Object.freeze({enabled:r.enabled,idle:r.idle?Object.freeze({...r.idle}):L})),{ok:true,manifest:Object.freeze({schemaVersion:t.data.schema_version,revision:t.data.revision,surfaces:Object.freeze(o)})}}n(Ae,"parseManifest");async function en(e,t,r){if(e!=null){let a=Ae(e);if(a.ok)return await tn(t,e),r.track("manifest.fallback",{source:"live"}),Object.freeze({manifest:a.manifest,source:"live"});a.reason==="newer_schema"&&r.track("manifest.refused_newer",{});}let o=await rn(t);return o?(r.track("manifest.fallback",{source:"last-known-good"}),Object.freeze({manifest:o,source:"last-known-good"})):(r.track("manifest.fallback",{source:"compiled-default"}),Object.freeze({manifest:W,source:"compiled-default"}))}n(en,"resolveManifest");function Ie(e){return e.surfaces.animations??W.surfaces.animations??{enabled:true,idle:L}}n(Ie,"animationsSurfaceOf");async function tn(e,t){try{await e.setItem(Oe,JSON.stringify(t));}catch{}}n(tn,"writeLastKnownGood");async function rn(e){let t;try{t=await e.getItem(Oe);}catch{return null}if(t===null)return null;let r;try{r=JSON.parse(t);}catch{return null}let o=Ae(r);return o.ok?o.manifest:null}n(rn,"readLastKnownGood");var Rt=Object.freeze({data:null,isPending:false,isError:false,error:null,isDark:false});function Me(e){let{repo:t,cacheEpoch:r,timers:o}=e,a=new Set,s=new Map,d=Rt,c=null,m=null,f=false,b=null,h=null,y=null,p=0,_=n(()=>{for(let i of a)i();},"emit"),S=n(i=>{d=Object.freeze({...d,...i}),_();},"patch"),F=n(()=>{h!==null&&(o.clearTimeout(h),h=null);},"clearRemint"),I=n(i=>i?Math.max(1,i.ttlSeconds)*1e3:6e4,"staleMs"),E=n(i=>{let u=s.get(i);u!==void 0&&(s.delete(i),s.set(i,u));},"touchWarm"),C=n((i,u)=>{for(s.delete(i),s.set(i,Object.freeze({data:u,fetchedAt:o.now()}));s.size>32;){let g=s.keys().next().value;if(g===void 0||g===i)break;s.delete(g);}},"setWarm"),z=n(i=>{let u=s.get(i);return u?!!(u.data.tiers.animation||u.data.tiers.image):false},"hasGoodTiers"),l=n((i,u)=>{if(F(),!f)return;let g=Math.max(1,u)*1e3,R=p;h=o.setTimeout(()=>{h=null,!(R!==p||c!==i||!f)&&v(i,0);},g);},"scheduleRemint"),v=n(async(i,u)=>{if(c!==i||b===i||!f)return;let g=p;y?.abort();let R=new AbortController;y=R;let T=await t.getState(i,{signal:R.signal});if(!(g!==p||c!==i)){if(T.ok){let w=T.value;if(w===null){O(i);return}r.sync(w.cacheEpoch);let ne=!!(w.tiers.animation||w.tiers.image);if(w.degraded&&!ne&&z(i)){S({isError:false,error:null,isPending:false,isDark:false}),l(i,w.ttlSeconds);return}C(i,w),m=i,S({data:w,isPending:false,isError:false,error:null,isDark:false}),l(i,w.ttlSeconds);return}if(Tt(T.error)){j(i,T.error);return}if(S({isError:true,error:T.error,isPending:d.data===null&&m!==i}),u<2){F();let w=500*(u+1),ne=p;h=o.setTimeout(()=>{h=null,!(ne!==p||c!==i||!f)&&v(i,u+1);},w);}else l(i,5);}},"fetchOnce"),O=n(i=>{b=i,s.delete(i),F(),m=i,S({data:null,isPending:false,isError:false,error:null,isDark:true});},"onTerminalDark"),j=n((i,u)=>{b=i,s.delete(i),F(),m=i,S({data:null,isPending:false,isError:false,error:u,isDark:true});},"onTerminalDisabled");return {observe(i,u){let g=u.isFocused!==f;if(f=u.isFocused,i!==c){if(p+=1,y?.abort(),y=null,F(),b=null,c=i,i===null){m=null,d=Rt,_();return}let T=s.get(i),w=T&&o.now()-T.fetchedAt<I(T.data)?T:null;w?(E(i),m=i,S({data:w.data,isPending:false,isError:false,error:null,isDark:false})):S({isPending:true,isError:false,error:null,isDark:false}),f&&v(i,0);return}if(!g||i===null)return;if(!f){F();return}let R=s.get(i);!R||o.now()-R.fetchedAt>=I(R.data)?b!==i&&v(i,0):l(i,R.data.ttlSeconds);},getSnapshot(){return d},subscribe(i){return a.add(i),()=>{a.delete(i);}},getCachedPetStateMedia(i){let u=s.get(i);return !u||o.now()-u.fetchedAt>=I(u.data)?null:(E(i),u.data)},dispose(){p+=1,y?.abort(),y=null,F(),a.clear(),s.clear();}}}n(Me,"createPetStateStore");function Tt(e){if(typeof e!="object"||e===null)return false;let t=e,r=typeof t.status=="number"?t.status:t.httpStatus;return r===403||r===404}n(Tt,"isTerminalPetStateError");var Ct=Object.freeze({track(){},trackExpectedFailure(){}});function ee(e){let t=e.telemetry??Ct,r=e.timers??an(e.now),o=Me({repo:e.repo,cacheEpoch:Fe({kv:e.kv,cache:e.cache}),timers:r}),a=new Set,s=H,d="none",c=false,m=null,f=null,b=false,h=0,y="",p=on(S()),_=false;function S(){let l=e.manifest?e.manifest():W;return Ie(l)}n(S,"surface");let F=n(()=>{for(let l of a)l();},"emit"),I=o.subscribe(()=>{E();});function E(){let l=o.getSnapshot();(l.data!==f||l.isDark!==b)&&(f=l.data,b=l.isDark,s=H,d=l.isDark?"dark_or_missing":"none",h+=1),C(l);}n(E,"onStoreChange");function C(l=o.getSnapshot()){let v=S(),O=nn(v,l,{failed:s,fallbackReason:d,paused:c,photoUrl:m,reducedMotion:e.reducedMotion()});p=O,z(O),F();}n(C,"recompute");function z(l){if(l.kind!=="ready")return;let v=`${l.category}|${l.tier}|${l.fallbackReason}|${l.reducedMotion?1:0}`;v!==y&&(y=v,t.track("pet_state_shown",{category:l.category,tier:l.tier,fallback_reason:l.fallbackReason,reduced_motion:l.reducedMotion}),l.fallbackReason==="idle_asset_failed"&&t.trackExpectedFailure("idle_asset_failed",{category:l.category}));}return n(z,"maybeEmitShown"),{observe(l,v){_||(m=v.photoUrl??null,s=H,o.observe(l,{isFocused:v.isFocused}),E());},getState(){return p},subscribe(l){return a.add(l),()=>{a.delete(l);}},onMediaError(){if(_||p.kind!=="ready")return;let l=ke(p.tier,s);s=l.failed,d=l.reason,C();},setPaused(l){_||c===l||(c=l,C());},dispose(){_||(_=true,I(),o.dispose(),a.clear());}}}n(ee,"createAnimationController");function nn(e,t,r){let o=e.idle;if(!e.enabled)return Object.freeze({kind:"disabled",reason:U("accessDenied"),level:"partner_config",source:o,idle:e.idle});if(t.isPending&&t.data===null&&!t.isDark)return Object.freeze({kind:"pending",showSkeleton:true,source:o});let a=t.data,s=a?.category??"idle",d=a?.tiers.animation,c=a?.tiers.image,m=!!d&&d?.kind==="webp"&&!r.reducedMotion&&!r.failed.animation,f=we({hasPhoto:r.photoUrl!==null&&r.photoUrl.length>0,photoFailed:r.failed.photo,canAnimate:m,animationFailed:r.failed.animation,hasImage:!!c,imageFailed:r.failed.image}),b=o,h=null,y=false;f==="photo"&&r.photoUrl?b=De(r.photoUrl,void 0):f==="animation"&&d?(b=De(d.url,d.cacheKey),h=d.loopDurationMs??null,y=d.cacheKey!==void 0):f==="image"&&c&&(b=De(c.url,c.cacheKey),y=c.cacheKey!==void 0);let p=b.kind==="uri"?b.cacheKey:`bundled:${b.id}`;return Object.freeze({kind:"ready",tier:f,source:b,recyclingKey:p,category:s,loopDurationMs:h,paused:r.paused,reducedMotion:r.reducedMotion,cacheHit:y,fallbackReason:r.fallbackReason,isDark:t.isDark,isTransientError:t.isError})}n(nn,"buildView");function De(e,t){return Object.freeze({kind:"uri",uri:e,cacheKey:t??Ce({uri:e})})}n(De,"uriSource");function on(e){return Object.freeze({kind:"pending",showSkeleton:true,source:e.idle})}n(on,"pendingView");function an(e){return {setTimeout:n((t,r)=>setTimeout(t,r),"setTimeout"),clearTimeout:n(t=>clearTimeout(t),"clearTimeout"),now:e}}n(an,"defaultTimers");var un=Object.freeze({kind:"pending",showSkeleton:true,source:L}),cn=n(()=>{},"NOOP_UNSUBSCRIBE");function je(e){let{petRef:t,repo:r,cache:o,kv:a,isFocused:s=true,photoUrl:d=null,telemetry:c,reducedMotion:m,manifest:f,timers:b,now:h}=e,{runtime:y,userRef:p}=Z(),_=K("animations"),S=pn(m),I=r!==void 0&&o!==void 0&&a!==void 0?"override":`${p??""}|${t??""}`,[E,C]=useState(null);useEffect(()=>{if(r!==void 0&&o!==void 0&&a!==void 0){let g={repo:r,cache:o,kv:a,reducedMotion:S,now:h??kt,...c?{telemetry:c}:{},...f?{manifest:f}:{},...b?{timers:b}:{}},R=ee(g);return C(R),()=>{C(T=>T===R?null:T),R.dispose();}}let{services:i}=y.registry,u=y.registry.acquire("animations",`${p??""}|${t??""}`,()=>ee({repo:Te(i.authFor(p)),cache:i.imageCache,kv:i.kv,reducedMotion:S,now:h??kt,telemetry:i.telemetry,...f?{manifest:f}:{},...b?{timers:b}:{}}),g=>g.dispose());return C(u),()=>{C(g=>g===u?null:g),y.registry.release(u);}},[I,r,o,a,y]),useEffect(()=>{E?.observe(t,{isFocused:s,photoUrl:d});},[E,t,s,d]);let z=useCallback(i=>E?E.subscribe(i):cn,[E]),l=useCallback(()=>E?E.getState():un,[E]),v=useSyncExternalStore(z,l,l),O=useCallback(()=>{E?.onMediaError();},[E]),j=useCallback(i=>{E?.setPaused(i);},[E]);return useMemo(()=>({capability:_,state:v,onMediaError:O,setPaused:j}),[_,v,O,j])}n(je,"useAnimations");function pn(e){let t=useRef(true);return useEffect(()=>{if(e)return;let r=true,o=AccessibilityInfo.isReduceMotionEnabled?.();o&&typeof o.then=="function"&&o.then(s=>{r&&(t.current=s);});let a=AccessibilityInfo.addEventListener?.("reduceMotionChanged",s=>{t.current=s;});return ()=>{r=false,a?.remove?.();}},[e]),useMemo(()=>e??(()=>t.current),[e])}n(pn,"useSystemReducedMotion");function kt(){return Date.now()}n(kt,"defaultNow");var gn=200,En=300,Ne=120;function hn(e){let{style:t,accessibilityLabel:r}=e,o={accessibilityLabel:r,decorative:At(e)};return jsx(mt,{capability:"animations",style:t,renderPending:()=>jsx(re,{style:t,a11y:o,busy:true}),renderDisabled:a=>jsx(re,{style:t,a11y:o,reason:a.disabled?.reason??""}),children:jsx(_n,{...e})})}n(hn,"PetStateView");function At(e){return e.decorative===true||e.accessibilityLabel===void 0}n(At,"isDecorative");function _n(e){let t=Le(),r={accessibilityLabel:e.accessibilityLabel,decorative:At(e)},o=je(Tn(e));return jsx(View,{style:[t.container,e.style],children:Sn(o.state,o.onMediaError,r)})}n(_n,"PetStateBody");function Sn(e,t,r){switch(e.kind){case "pending":return jsx(Pt,{source:e.source,recyclingKey:"pending",reducedMotion:true,a11y:r,busy:true,onMediaError:t});case "disabled":return jsx(re,{a11y:r,reason:e.reason});case "ready":return jsx(Pt,{source:e.source,recyclingKey:e.recyclingKey,reducedMotion:e.reducedMotion,a11y:r,onMediaError:t});default:return Q(e)}}n(Sn,"renderState");function Pt({source:e,recyclingKey:t,reducedMotion:r,a11y:o,busy:a,onMediaError:s}){let d=Le();return e.kind==="uri"?jsx(Image,{source:{uri:e.uri},onError:s,fadeDuration:r?0:gn,style:d.media,...It(o)},t):jsx(re,{a11y:o,busy:a})}n(Pt,"MediaNode");function re({style:e,a11y:t,busy:r,reason:o}){let a=Le();return jsxs(View,{style:[a.idlePlaceholder,e],...It(t),children:[r?jsx(Rn,{}):null,o&&o.length>0?jsx($,{style:a.reasonText,children:o}):null]})}n(re,"IdleRegion");function Rn(){let e=M(),[t,r]=useState(false);return useEffect(()=>{let o=setTimeout(()=>r(true),En);return ()=>clearTimeout(o)},[]),t?jsx(ActivityIndicator,{color:e.color.brand}):null}n(Rn,"DelayedSpinner");function It(e){if(e.decorative)return {accessible:false,accessibilityElementsHidden:true,importantForAccessibility:"no-hide-descendants"};let t=e.accessibilityLabel;return t!==void 0?{accessible:true,accessibilityRole:"image",accessibilityLabel:t}:{accessible:true,accessibilityRole:"image"}}n(It,"a11yProps");function Tn(e){let t={petRef:e.petRef,repo:e.repo,cache:e.cache,kv:e.kv};return e.isFocused!==void 0&&(t.isFocused=e.isFocused),e.photoUrl!==void 0&&(t.photoUrl=e.photoUrl),e.telemetry!==void 0&&(t.telemetry=e.telemetry),e.reducedMotion!==void 0&&(t.reducedMotion=e.reducedMotion),e.manifest!==void 0&&(t.manifest=e.manifest),e.timers!==void 0&&(t.timers=e.timers),e.now!==void 0&&(t.now=e.now),t}n(Tn,"buildParams");function Le(){let e=M();return useMemo(()=>Cn(e),[e])}n(Le,"useStyles");function Cn(e){return StyleSheet.create({container:{minHeight:Ne,width:"100%",backgroundColor:e.color.surfaceCream,borderRadius:e.radius.lg,overflow:"hidden"},media:{minHeight:Ne,width:"100%"},idlePlaceholder:{minHeight:Ne,width:"100%",alignItems:"center",justifyContent:"center",backgroundColor:e.color.surfaceCream,borderRadius:e.radius.lg,borderWidth:StyleSheet.hairlineWidth,borderColor:e.color.borderRingCream,padding:e.space.lg},reasonText:{marginTop:e.space.sm,fontFamily:e.type.family,fontSize:e.type.size.bodyTight,lineHeight:Math.round(e.type.size.bodyTight*e.type.lineHeight.normal),fontWeight:e.type.weight.medium,color:e.color.text.muted,textAlign:"center"}})}n(Cn,"makeStyles");export{xe as CACHE_EPOCH_STORAGE_KEY,L as COMPILED_DEFAULT_IDLE,W as COMPILED_DEFAULT_MANIFEST,Oe as MANIFEST_LKG_STORAGE_KEY,H as NO_FAILURES,hn as PetStateView,Pe as SUPPORTED_SCHEMA_VERSION,Ie as animationsSurfaceOf,ee as createAnimationController,Fe as createCacheEpochGuard,Te as createPetStateRepository,Me as createPetStateStore,$r as isLoaderSafeCategory,Tt as isTerminalPetStateError,_e as mapPetStateResponse,_r as newSessionId,Ae as parseManifest,Re as parsePetStateWire,St as petStateResponseWireSchema,en as resolveManifest,ke as retireTier,we as selectTier,Ce as stableMediaKey,je as useAnimations};
1
+ import {createContext,forwardRef,createElement,useState,useEffect,useCallback,useSyncExternalStore,useMemo,useRef,useContext,Component}from'react';import {TextInput,AccessibilityInfo,View,Image,ActivityIndicator,StyleSheet,Text}from'react-native';import {jsx,jsxs}from'react/jsx-runtime';import {z}from'zod';var Mt=Object.defineProperty;var n=(e,t)=>Mt(e,"name",{value:t,configurable:true});function ie(e){if(e!==null&&typeof e=="object"&&!Object.isFrozen(e)){Object.freeze(e);for(let t of Object.keys(e))ie(e[t]);}return e}n(ie,"deepFreeze");var Dt=Object.freeze({content:0,heading:2,control:1.8,compact:1.5,badge:1.3}),Be={xs:4,sm:8,md:12,lg:16,xl:24,xxl:32},Ke={tile:5,xs:6,sm:10,md:14,lg:20,xl:28,pill:500},Ue={nano:8,small:9,micro:10,tiny:11,caption:12,bodyTight:13,body:14,subtitle:16,heading:18,verdict:24},zt={tight:1.15,snug:1.3,normal:1.4,relaxed:1.55},jt={regular:"400",medium:"500",bold:"700"},Nt={eyebrow:1,monoWide:.9,headerBrand:-0.42,tight:-0.35},Lt=0,G="System",Y="monospace",Ut=["content","heading","control","compact","badge"];function Bt(e){let t={};for(let r of Ut)t[r]=e;return t}n(Bt,"authoredTierSizes");function qe(){return {family:G,mono:Y,fontUrl:null,families:{regular:G,medium:G,bold:G,mono:Y,monoMedium:Y,monoBold:Y},namedFaces:{regular:false,medium:false,bold:false,mono:false,monoMedium:false,monoBold:false},fontUrls:{},size:Ue,tierSizes:Bt(Ue),lineHeight:zt,weight:jt,letterSpacing:Nt,scale:1,maxScale:Lt,scaleCaps:Dt}}n(qe,"baseType");var Ve={},oe=Object.freeze({standard:Object.freeze([.2,0,0,1]),emphasized:Object.freeze([.2,.8,.2,1]),exit:Object.freeze([.4,0,1,1])});function ae(e){return `cubic-bezier(${e.join(", ")})`}n(ae,"cssCubicBezier");var He={duration:{instant:80,fast:140,normal:220,slow:320},spring:{gentle:{damping:18,stiffness:200}},easing:{standard:ae(oe.standard),emphasized:ae(oe.emphasized),exit:ae(oe.exit)},reducedMotion:false},Kt={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)"},We=ie({brightness:"light",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:Kt,space:Be,radius:Ke,type:qe(),motion:He,slots:Ve}),qt={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)"};ie({brightness:"dark",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:qt,space:Be,radius:Ke,type:qe(),motion:He,slots:Ve});var Ge=Symbol.for("@everfur/sdk#EverfurThemeContext@v1"),Ye=globalThis,se=Ye[Ge]??(Ye[Ge]=createContext(We));se.displayName??="EverfurThemeContext";function M(){return useContext(se)}n(M,"useEverfurTheme");function $t(e,t){let r=e.scaleCaps[t];return r>0?r:void 0}n($t,"tierMultiplier");function $({tier:e="content",...t}){let{type:r}=M(),o=$t(r,e);return createElement(Text,o===void 0?t:{maxFontSizeMultiplier:o,...t})}n($,"Text");forwardRef(n(function(t,r){return createElement(TextInput,{...t,...r===null?{}:{ref:r}})},"TextInput"));function Q(e){throw new Error(`assertNever: unhandled discriminated-union member ${JSON.stringify(e)}`)}n(Q,"assertNever");function Qe(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})}n(Qe,"errorFrame");var Jt=Object.freeze({regular:"regular",medium:"medium",bold:"bold",mono:"regular",monoMedium:"medium",monoBold:"bold"});function Xe(e,t){let r=e.type,o=r.families[t];return t==="mono"||r.namedFaces[t]?{fontFamily:o}:{fontFamily:o,fontWeight:r.weight[Jt[t]]}}n(Xe,"face");var ue=class ue extends Component{constructor(){super(...arguments);this.state={failed:false,key:this.props.resetKey};}static getDerivedStateFromError(){return {failed:true}}static getDerivedStateFromProps(r,o){return Object.is(r.resetKey,o.key)?null:{failed:false,key:r.resetKey}}render(){return this.state.failed?this.props.fallback:this.props.children}};n(ue,"HostRenderBoundary");var le=ue;function er({render:e}){return e()}n(er,"RenderHost");function de({render:e,fallback:t,resetKey:r}){return createElement(le,{fallback:t,resetKey:r,children:createElement(er,{render:e})})}n(de,"HostRender");var ce=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(ce.map(e=>e.wireCode));var tr=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"}),et=Object.freeze(ce.map(e=>Object.freeze({wireCode:e.wireCode,envelope:e.envelope,retryable:e.retryable,normalized:tr[e.wireCode]}))),rr=new Map(et.map(e=>[e.envelope+e.wireCode.toUpperCase(),e])),nr=Object.freeze(["http_envelope",...[...new Set(et.map(e=>e.envelope))].filter(e=>e!=="http_envelope").sort()]);function X(e,t){if(typeof e!="string")return;let r=e.trim().toUpperCase();if(r.length!==0)for(let o of [t??"http_envelope",...nr]){let a=rr.get(o+r);if(a)return a}}n(X,"contractErrorFor");function or(e){return e.envelope==="sse_frame"?`/errors#sse-${e.wireCode}`:e.envelope==="oauth_error"?`/errors#oauth-${e.wireCode}`:`/errors#${e.wireCode}`}n(or,"contractDocUrl");function tt(e){return null}n(tt,"publishedDocUrl");var ar=Object.freeze({authExpired:"authentication",authRejected:"authentication",sessionRequired:"authentication",accessDenied:"authorization",paymentRequired:"entitlement",quotaExceeded:"rateLimit",rateLimited:"rateLimit",validationFailed:"invalidRequest",sdkUpdateRequired:"invalidRequest",conversationNotFound:"notFound",petNotFound:"notFound",resourceNotFound:"notFound",conflict:"conflict",idempotencyConflict:"conflict",idempotencyInFlight:"conflict",streamTimeout:"connection",streamIncomplete:"connection",upstreamLlmTimeout:"connection",serviceUnavailable:"connection",internalError:"server",notImplemented:"server",mediaUploadFailed:"media",moderationBlocked:"policy",unknown:"unknown"});function rt(e){return ar[e]}n(rt,"categoryFor");function nt(e){let t=X(e);if(t)return t.normalized;let r=(e??"").trim().toUpperCase(),o=r.replace(/[^A-Z0-9]/g,"");if(o==="AUTHREJECTED")return "authRejected";if(r.startsWith("AUTH"))return "authExpired";switch(o){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"}}n(nt,"fromWire");var ir=new Set(["streamTimeout","rateLimited","internalError","upstreamLlmTimeout","streamIncomplete"]);function pe(e){return ir.has(e)}n(pe,"isAutoRetryable");var sr=new Set(["serviceUnavailable","conflict","idempotencyInFlight"]);function ot(e){return pe(e)||sr.has(e)}n(ot,"isRetryableCode");var lr=500,fe=8e3,at=4;function it(e,t=Math.random){let r=Math.max(0,e),o=Math.min(lr*2**r,fe);return Math.floor(t()*o)}n(it,"backoffDelayMs");var dr=Object.freeze({authExpired:"Please sign in again to continue.",authRejected:"Please sign in again to continue.",sessionRequired:"This app needs to be updated to keep using Everfur.",accessDenied:"This feature isn't available on your account right now.",paymentRequired:"This is part of a paid plan.",quotaExceeded:"You have used today's messages. This resets tomorrow.",rateLimited:"You are sending messages quickly. Try again in a few seconds.",validationFailed:"Something in that request was not right. Check the details and try again.",sdkUpdateRequired:"This app needs to be updated to keep using Everfur.",conflict:"That is already running. Wait for it to finish, then try again.",idempotencyConflict:"That message was already delivered.",idempotencyInFlight:"That is still processing. Give it a moment.",conversationNotFound:"This conversation is no longer available.",petNotFound:"We could not find that pet. Please pick a pet and try again.",resourceNotFound:"We could not find that.",streamTimeout:"The response timed out. Tap retry to try again.",mediaUploadFailed:"We could not upload that photo. Please attach it again.",moderationBlocked:"This request cannot be answered here.",upstreamLlmTimeout:"The response timed out. Tap retry to try again.",internalError:"We hit a snag on our end. Please try again.",notImplemented:"That is not available yet.",serviceUnavailable:"That service is briefly unavailable. Try again shortly.",streamIncomplete:"The connection dropped mid-answer. Tap retry to continue.",unknown:"Something went wrong. Please try again."});function U(e){return dr[e]}n(U,"userFacingError");function st(e,t,r){Object.defineProperty(e,t,{value:r,enumerable:false,writable:false,configurable:false});}n(st,"defineHidden");var ur=/^[a-z][a-z0-9_]{0,63}$/;function N(e,t){let r=X(t?.wireCode,t?.wireEnvelope),o={code:e,category:rt(e),retryable:t?.retryable??ot(e),displayMessage:U(e)};if(t?.httpStatus!==void 0&&(o.httpStatus=t.httpStatus),t?.requestId&&(o.requestId=t.requestId),typeof t?.reasonCode=="string"&&ur.test(t.reasonCode)&&(o.reasonCode=t.reasonCode),r);return t?.wireMessage&&st(o,"wireMessage",t.wireMessage),t?.raw!==void 0&&t.raw!==null&&st(o,"raw",t.raw),Object.freeze(o)}n(N,"makeEverfurError");var cr=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 pr(e){return cr[e]}n(pr,"requires");function lt(e,t,r){let o=pr(e),a=new Map;for(let c of t)a.set(c.resource,c);if(r?.isPending===true&&o.some(c=>!a.has(c)))return ye({name:e,enabled:false,isPending:true,limits:{}});let s=fr(o,a);return o.filter(c=>a.get(c)?.granted!==true).length===0?ye({name:e,enabled:true,isPending:false,limits:s}):ye({name:e,enabled:false,isPending:false,limits:s,disabled:yr(o,a)})}n(lt,"decideCapability");function fr(e,t){let r={};for(let o of e){let a=t.get(o)?.limits;if(a)for(let[s,d]of Object.entries(a)){let c=r[s];r[s]=c===void 0?d:Math.min(c,d);}}return r}n(fr,"mergeLimits");function yr(e,t){for(let r of e){let o=t.get(r)?.disabled;if(o)return Object.freeze({reason:o.reason,level:o.level,recoverable:o.recoverable})}return Object.freeze({reason:U("accessDenied"),level:"user_entitlement",recoverable:false})}n(yr,"disabledFor");function ye(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)}n(ye,"freezeDecision");function me(e,t){return Object.freeze(t===void 0?{ok:true,value:e}:{ok:true,value:e,warning:t})}n(me,"ok");function P(e){return Object.freeze({ok:false,error:e})}n(P,"err");var J=class J extends Error{constructor(t,r){super(r),this.name="EverfurConfigError",this.kind=t,Object.setPrototypeOf(this,J.prototype);}};n(J,"EverfurConfigError");var B=J;var dt=Symbol.for("@everfur/sdk#EverfurContext@v1"),ut=globalThis,ct=ut[dt]??(ut[dt]=createContext(null));ct.displayName??="EverfurContext";function Z(){let e=useContext(ct);if(e===null)throw new B("not-initialized","Everfur hooks must be called inside <EverfurProvider>. Wrap your tree once, high.");return e}n(Z,"useEverfurContext");function K(e){let{runtime:t}=Z(),r=t.entitlements,o=useSyncExternalStore(r.subscribe,r.getSnapshot,r.getSnapshot);return useMemo(()=>lt(e,o.decisions,{isPending:o.isPending}),[e,o])}n(K,"useCapability");var Er=48;function hr(e){return e.isPending?"pending":e.enabled?"enabled":"disabled"}n(hr,"selectView");function mt(e){let{capability:t,children:r,renderDisabled:o,renderPending:a,style:s}=e,d=K(t),c=useMemo(()=>hr(d),[d]);switch(c){case "enabled":return r;case "pending":return a?jsx(de,{render:a,fallback:jsx(ft,{capability:t,style:s})}):jsx(ft,{capability:t,style:s});case "disabled":return o?jsx(de,{render:()=>o(d),fallback:jsx(yt,{decision:d,style:s}),resetKey:d}):jsx(yt,{decision:d,style:s});default:return Q(c)}}n(mt,"CapabilityGate");function ft({capability:e,style:t}){let r=M(),o=useMemo(()=>bt(r),[r]);return jsx(View,{style:[o.offstate,t],accessible:true,accessibilityState:{busy:true},accessibilityLabel:`Loading ${e}`,children:jsx(View,{style:o.skeletonBar})})}n(ft,"PendingSkeleton");function yt({decision:e,style:t}){let r=M(),o=useMemo(()=>bt(r),[r]),a=e.disabled?.reason??"";return jsx(View,{style:[o.offstate,t],accessible:true,accessibilityRole:"text",accessibilityLabel:a,children:a.length>0?jsx($,{style:o.offstateText,children:a}):null})}n(yt,"OffState");function bt(e){let{color:t,space:r,radius:o,type:a}=e;return StyleSheet.create({offstate:{minHeight:Er,justifyContent:"center",paddingHorizontal:r.lg,paddingVertical:r.md,backgroundColor:t.surfaceCream,borderRadius:o.md,borderWidth:StyleSheet.hairlineWidth,borderColor:t.brandBorder},offstateText:{...Xe(e,"regular"),fontSize:a.size.body,lineHeight:Math.round(a.size.body*a.lineHeight.normal),color:t.text.muted},skeletonBar:{height:r.md,borderRadius:o.xs,backgroundColor:t.brandSofter}})}n(bt,"makeStyles");function _r(){let e=new Uint8Array(16),t=globalThis.crypto;if(typeof t?.getRandomValues=="function")t.getRandomValues(e);else for(let o=0;o<e.length;o+=1)e[o]=Math.floor(Math.random()*256);e[6]=e[6]&15|64,e[8]=e[8]&63|128;let r=[];for(let o=0;o<e.length;o+=1)r.push(e[o].toString(16).padStart(2,"0"));return r.slice(0,4).join("")+"-"+r.slice(4,6).join("")+"-"+r.slice(6,8).join("")+"-"+r.slice(8,10).join("")+"-"+r.slice(10,16).join("")}n(_r,"newSessionId");function Sr(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}n(Sr,"authHeaders");function q(e,t){return {...e,headers:{...Rr(e.headers),...Sr(t)}}}n(q,"withAuthHeaders");function Rr(e){if(!e)return {};let t={};for(let[r,o]of Object.entries(e)){let a=r.toLowerCase();a==="authorization"||a==="x-everfur-partner-key"||(t[r]=o);}return t}n(Rr,"stripAuthHeaders");async function vt(e,t){if(t.mode==="anonymous")return t.transport.request(q(e,{mode:"anonymous",publishableKey:t.publishableKey,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));let r;try{r=await t.identity.currentToken();}catch{return P(ge())}let o=await t.transport.request(q(e,{mode:"personalized",token:r,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));if(o.ok||o.error.httpStatus!==401)return o;let a;try{a=await t.identity.currentToken({forceRefresh:!0});}catch{return P(ge())}let s=await t.transport.request(q(e,{mode:"personalized",token:a,userRef:t.userRef,...t.sessionId?{sessionId:t.sessionId}:{}}));return !s.ok&&s.error.httpStatus===401?P(ge(s.error.httpStatus)):s}n(vt,"authedSend");function ge(e){return N("authRejected",{retryable:false,...e!==void 0?{httpStatus:e}:{}})}n(ge,"authRejectedError");function gt(e){return N("internalError",{retryable:true,wireMessage:Tr(e)})}n(gt,"networkError");function Tr(e){return e instanceof Error?e.message:typeof e=="string"?e:"network request failed"}n(Tr,"describeCause");var Cr=3e4,wr=fe*2,kr="idempotency-key",Fr=new Set(["POST","PUT","PATCH","DELETE"]),xr=Object.freeze({onEvent(){}}),Pr=Object.freeze({setTimeout:n((e,t)=>setTimeout(e,t),"setTimeout"),clearTimeout:n(e=>clearTimeout(e),"clearTimeout"),now:n(()=>Date.now(),"now")});function Or(e){let t=e.trim().replace(/[^A-Za-z0-9_.:-]/g,"-");return t.length===0?null:`efs_${t}`.slice(0,128)}n(Or,"seededIdempotencyKey");function ht(e){let t=e.observer??xr,r=e.timers??Pr,o=e.rng??Math.random,a=e.sleep??((y,p)=>Hr(y,r,p)),s=e.maxAttempts??at,d=e.unaryTimeoutMs??Cr,c=e.newIdempotencyKey??Ir(),m=n(y=>{try{t.onEvent(y);}catch{}},"emit");async function f(y,p,_){let S=_?.maxAttempts,x=Math.max(1,S??s),I=_?.idempotent??Fr.has(p.method),E=_?.idempotencyKey===void 0?null:Or(_.idempotencyKey),C=I?E??c():null,z=Ar(p,C),l=0;for(;;){let v=n(T=>Object.freeze({call:y,method:p.method,path:p.path,attempt:l,...C?{idempotencyKey:C}:{},...T}),"stamp");m(v({phase:"attempt"}));let O=qr(d,r),j=Vr(O.signal,p.signal),i;try{i=await vt({...z,signal:j.signal},e.auth);}catch(T){i=P(gt(T));}finally{j.dispose(),O.cancel();}if(i.ok)return m(v({phase:"settled",ok:true,reason:"ok"})),i;let u=i.error,g=Dr(u,l,{maxAttempts:x,rng:o,now:r.now(),aborted:p.signal?.aborted===true,...S!==void 0?{perCallMaxAttempts:S}:{},...e.errorPolicy!==void 0?{policy:e.errorPolicy}:{}}),R={ok:false,code:u.code,reason:g.reason,...u.httpStatus!==void 0?{httpStatus:u.httpStatus}:{},...u.requestId!==void 0?{requestId:u.requestId}:{}};if(!g.retry)return m(v({phase:"settled",...R})),P(u);if(m(v({phase:"retry",...R,delayMs:g.delayMs})),await a(g.delayMs,p.signal),p.signal?.aborted===true)return m(v({phase:"settled",...R,reason:"aborted"})),P(u);l+=1;}}n(f,"send");async function b(y){return q(y,await Kr(e.auth))}n(b,"authorize");async function*h(y,p,_){m(Object.freeze({call:y,phase:"stream.open",method:p.method,path:p.path,attempt:0}));try{yield*e.auth.transport.stream(p,_);}catch{yield Qe({code:"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null,serverRequestId:null});}}return n(h,"stream"),Object.freeze({send:f,authorize:b,stream:h})}n(ht,"createRequestFunnel");function Ar(e,t){let r={};for(let[o,a]of Object.entries(e.headers??{}))o.toLowerCase()!==kr&&(r[o]=a);return t!==null&&(r["Idempotency-Key"]=t),{...e,headers:r}}n(Ar,"assembleHeaders");function Ir(){let e=0;return ()=>`efk_${Date.now().toString(36)}_${(e++).toString(36)}_${Math.random().toString(36).slice(2,12)}`}n(Ir,"defaultIdempotencyKeyFactory");var Mr=10;function Dr(e,t,r){if(r.aborted)return {retry:false,reason:"aborted"};let o=zr(e);if(o==="quota")return {retry:false,reason:"daily-quota-exhausted"};if(o!=="burst"&&!pe(e.code))return {retry:false,reason:"terminal-code"};let a=o==="burst"?"burst-throttle":"retryable-code";if(n(()=>{if(r.policy===void 0)return false;try{return !r.policy.shouldRetry(e.code,t)}catch{return false}},"policyVetoedRetry")())return {retry:false,reason:"terminal-code"};let d=n(()=>{if(r.policy===void 0)return null;let f;try{f=r.policy.maxAttempts(e.code);}catch{return null}return typeof f!="number"||!Number.isFinite(f)?null:Math.max(1,Math.min(Mr,Math.floor(f)))},"policyCeiling"),c=r.perCallMaxAttempts??d()??r.maxAttempts;if(t+1>=c)return {retry:false,reason:"attempts-exhausted"};let m=jr(e,r.now);return m!==null?m>wr?{retry:false,reason:"server-reset-beyond-budget"}:{retry:true,reason:a,delayMs:m}:{retry:true,reason:a,delayMs:it(t,r.rng)}}n(Dr,"decideRetry");function zr(e){let t=e.code==="unknown"?nt(Br(e.raw)):e.code;return t==="quotaExceeded"?"quota":t==="rateLimited"||e.httpStatus===429?"burst":null}n(zr,"throttleKind");function jr(e,t){let r=Lr(e.raw);if(r!==null){let a=r-t;return a>0?a:0}let o=Nr(e.raw);return o===null?null:Math.round(o*1e3)}n(jr,"retryOverrideMs");function Nr(e){for(let t of Ee(e)){let r=t.retry_after_seconds;if(typeof r=="number"&&Number.isFinite(r)&&r>=0)return r}return null}n(Nr,"findRetryAfterSeconds");function Lr(e){for(let t of Ee(e)){let r=t.resets_at,o=Ur(r);if(o!==null)return o}return null}n(Lr,"findResetsAt");function Ee(e){if(!Et(e))return [];let t=[e];for(let r of ["error","detail"]){let o=e[r];Et(o)&&t.push(o);}return t}n(Ee,"candidateScopes");function Ur(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}n(Ur,"parseInstantMs");function Br(e){for(let t of Ee(e)){let r=t.code;if(typeof r=="string"&&r.length>0)return r}return null}n(Br,"rawWireCode");function Et(e){return typeof e=="object"&&e!==null}n(Et,"isRecord");async function Kr(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}:{}}}n(Kr,"resolveDeviceAuth");function qr(e,t){let r=new AbortController,o=t.setTimeout(()=>r.abort(),e);return {signal:r.signal,cancel:n(()=>t.clearTimeout(o),"cancel")}}n(qr,"boundedSignal");function Vr(e,t){let r=n(()=>{},"noop");if(!t)return {signal:e,dispose:r};let o=new AbortController;if(e.aborted||t.aborted)return o.abort(),{signal:o.signal,dispose:r};let a=n(()=>o.abort(),"onAbort");return e.addEventListener("abort",a,{once:true}),t.addEventListener("abort",a,{once:true}),{signal:o.signal,dispose:n(()=>{e.removeEventListener("abort",a),t.removeEventListener("abort",a);},"dispose")}}n(Vr,"mergeSignals");function Hr(e,t,r){return e<=0||r?.aborted===true?Promise.resolve():new Promise(o=>{let a=t.setTimeout(()=>{r?.removeEventListener("abort",s),o();},e),s=n(()=>{t.clearTimeout(a),o();},"onAbort");r?.addEventListener("abort",s,{once:true});})}n(Hr,"delayAbortable");function _t(e){for(let t=0;t<e.length;t+=1){let r=e.charCodeAt(t);if(r>=55296&&r<=56319){let o=e.charCodeAt(t+1);if(!(o>=56320&&o<=57343))return true;t+=1;}else if(r>=56320&&r<=57343)return true}return false}n(_t,"hasLoneSurrogate");function he(e){let t={url:e.url,kind:e.kind,expiresAt:e.expires_at};return typeof e.loop_duration_ms=="number"&&(t.loopDurationMs=e.loop_duration_ms),typeof e.cache_key=="string"&&e.cache_key.length>0&&(t.cacheKey=e.cache_key),Object.freeze(t)}n(he,"mapTier");function _e(e){let t={};e.tiers.animation&&(t.animation=he(e.tiers.animation)),e.tiers.image&&(t.image=he(e.tiers.image));let r={};e.overlays.weather_alert&&(r.weatherAlert=he(e.overlays.weather_alert));let o={category:e.category,tiers:Object.freeze(t),overlays:Object.freeze(r),idle:"bundled",ttlSeconds:e.ttl_seconds,degraded:e.degraded};return typeof e.cache_epoch=="number"&&(o.cacheEpoch=e.cache_epoch),Object.freeze(o)}n(_e,"mapPetStateResponse");var Wr=z.enum(["webp","video"]),Gr=z.enum(["health","attention","moment","activity","mood","idle"]),Se=z.object({url:z.string(),kind:Wr.default("webp"),loop_duration_ms:z.number().nullish(),expires_at:z.string(),cache_key:z.string().nullish()}),St=z.object({category:Gr,tiers:z.object({animation:Se.optional(),image:Se.optional()}).default({}),overlays:z.object({weather_alert:Se.optional()}).default({}),idle:z.literal("bundled").default("bundled"),ttl_seconds:z.number(),degraded:z.boolean().default(false),cache_epoch:z.number().default(0)});function Re(e){let t=St.safeParse(e);return t.success?t.data:null}n(Re,"parsePetStateWire");function Te(e){return Yr(ht({auth:e}))}n(Te,"createPetStateRepository");function Yr(e){return {async getState(t,r){if(_t(t))return P(N("validationFailed",{retryable:false,wireMessage:"pet_ref contains an unpaired surrogate and cannot be encoded"}));let o=`/widget/v1/pets/${encodeURIComponent(t)}/state`,a=await e.send("animations.getState",r?.signal?{method:"GET",path:o,signal:r.signal}:{method:"GET",path:o});if(a.ok){let s=Re(a.value);return s===null?P(N("internalError",{retryable:true})):me(_e(s))}return a.error.httpStatus===404?me(null):P(a.error)}}}n(Yr,"createPetStateRepositoryOver");function Ce(e){if(e===void 0)return "bundled:none";if(typeof e=="number")return `bundled:${e}`;if("kind"in e)return `bundled:${e.id}`;let t=e.uri,r=t.indexOf("?");return r===-1?t:t.slice(0,r)}n(Ce,"stableMediaKey");function we(e){return e.hasPhoto&&!e.photoFailed?"photo":e.canAnimate&&!e.animationFailed?"animation":e.hasImage&&!e.imageFailed?"image":"idle"}n(we,"selectTier");function ke(e,t){switch(e){case "photo":return {failed:V({...t,photo:true}),reason:"network_error"};case "animation":return {failed:V({...t,animation:true}),reason:"network_error"};case "image":return {failed:V({...t,image:true}),reason:"network_error"};case "idle":return {failed:V(t),reason:"idle_asset_failed"};default:return {failed:V(t),reason:"network_error"}}}n(ke,"retireTier");var H=Object.freeze({photo:false,animation:false,image:false});function V(e){return Object.freeze({photo:e.photo,animation:e.animation,image:e.image})}n(V,"freezeFailed");function $r(e){switch(e){case "activity":case "mood":case "moment":case "idle":return true;case "health":case "attention":return false;default:return false}}n($r,"isLoaderSafeCategory");var Fe="everfur.petState.cacheEpoch";function xe(e){let t=0,r=false,o=null,a=n(async s=>{if(r||(t=await Qr(e.kv),r=true),s<=t)return false;try{await e.kv.setItem(Fe,String(s));}catch{}t=s;try{await e.cache.clearMemoryCache();}catch{}try{await e.cache.clearDiskCache();}catch{}return true},"run");return {async sync(s){return typeof s!="number"||!Number.isFinite(s)||s<=0||r&&s<=t?false:o||(o=a(s).finally(()=>{o=null;}),o)}}}n(xe,"createCacheEpochGuard");async function Qr(e){let t;try{t=await e.getItem(Fe);}catch{return 0}if(t===null)return 0;let r=Number(t);return Number.isFinite(r)&&r>0?r:0}n(Qr,"readStoredEpoch");var Pe=1,Oe="everfur.manifest.lastKnownGood",L=Object.freeze({kind:"bundled",id:"everfur-idle"}),W=Object.freeze({schemaVersion:Pe,revision:"compiled-default",surfaces:Object.freeze({animations:Object.freeze({enabled:true,idle:L})})}),Xr=z.object({kind:z.literal("bundled"),id:z.string().min(1)}),Jr=z.object({enabled:z.boolean().default(true),idle:Xr.optional()}),Zr=z.object({schema_version:z.number().int(),revision:z.string().default(""),surfaces:z.object({animations:Jr.optional()}).default({})});function Ae(e){let t=Zr.safeParse(e);if(!t.success)return {ok:false,reason:"unparseable"};if(t.data.schema_version>Pe)return {ok:false,reason:"newer_schema"};let r=t.data.surfaces.animations,o={};return r&&(o.animations=Object.freeze({enabled:r.enabled,idle:r.idle?Object.freeze({...r.idle}):L})),{ok:true,manifest:Object.freeze({schemaVersion:t.data.schema_version,revision:t.data.revision,surfaces:Object.freeze(o)})}}n(Ae,"parseManifest");async function en(e,t,r){if(e!=null){let a=Ae(e);if(a.ok)return await tn(t,e),r.track("manifest.fallback",{source:"live"}),Object.freeze({manifest:a.manifest,source:"live"});a.reason==="newer_schema"&&r.track("manifest.refused_newer",{});}let o=await rn(t);return o?(r.track("manifest.fallback",{source:"last-known-good"}),Object.freeze({manifest:o,source:"last-known-good"})):(r.track("manifest.fallback",{source:"compiled-default"}),Object.freeze({manifest:W,source:"compiled-default"}))}n(en,"resolveManifest");function Ie(e){return e.surfaces.animations??W.surfaces.animations??{enabled:true,idle:L}}n(Ie,"animationsSurfaceOf");async function tn(e,t){try{await e.setItem(Oe,JSON.stringify(t));}catch{}}n(tn,"writeLastKnownGood");async function rn(e){let t;try{t=await e.getItem(Oe);}catch{return null}if(t===null)return null;let r;try{r=JSON.parse(t);}catch{return null}let o=Ae(r);return o.ok?o.manifest:null}n(rn,"readLastKnownGood");var Rt=Object.freeze({data:null,isPending:false,isError:false,error:null,isDark:false});function Me(e){let{repo:t,cacheEpoch:r,timers:o}=e,a=new Set,s=new Map,d=Rt,c=null,m=null,f=false,b=null,h=null,y=null,p=0,_=n(()=>{for(let i of a)i();},"emit"),S=n(i=>{d=Object.freeze({...d,...i}),_();},"patch"),x=n(()=>{h!==null&&(o.clearTimeout(h),h=null);},"clearRemint"),I=n(i=>i?Math.max(1,i.ttlSeconds)*1e3:6e4,"staleMs"),E=n(i=>{let u=s.get(i);u!==void 0&&(s.delete(i),s.set(i,u));},"touchWarm"),C=n((i,u)=>{for(s.delete(i),s.set(i,Object.freeze({data:u,fetchedAt:o.now()}));s.size>32;){let g=s.keys().next().value;if(g===void 0||g===i)break;s.delete(g);}},"setWarm"),z=n(i=>{let u=s.get(i);return u?!!(u.data.tiers.animation||u.data.tiers.image):false},"hasGoodTiers"),l=n((i,u)=>{if(x(),!f)return;let g=Math.max(1,u)*1e3,R=p;h=o.setTimeout(()=>{h=null,!(R!==p||c!==i||!f)&&v(i,0);},g);},"scheduleRemint"),v=n(async(i,u)=>{if(c!==i||b===i||!f)return;let g=p;y?.abort();let R=new AbortController;y=R;let T=await t.getState(i,{signal:R.signal});if(!(g!==p||c!==i)){if(T.ok){let w=T.value;if(w===null){O(i);return}r.sync(w.cacheEpoch);let ne=!!(w.tiers.animation||w.tiers.image);if(w.degraded&&!ne&&z(i)){S({isError:false,error:null,isPending:false,isDark:false}),l(i,w.ttlSeconds);return}C(i,w),m=i,S({data:w,isPending:false,isError:false,error:null,isDark:false}),l(i,w.ttlSeconds);return}if(Tt(T.error)){j(i,T.error);return}if(S({isError:true,error:T.error,isPending:d.data===null&&m!==i}),u<2){x();let w=500*(u+1),ne=p;h=o.setTimeout(()=>{h=null,!(ne!==p||c!==i||!f)&&v(i,u+1);},w);}else l(i,5);}},"fetchOnce"),O=n(i=>{b=i,s.delete(i),x(),m=i,S({data:null,isPending:false,isError:false,error:null,isDark:true});},"onTerminalDark"),j=n((i,u)=>{b=i,s.delete(i),x(),m=i,S({data:null,isPending:false,isError:false,error:u,isDark:true});},"onTerminalDisabled");return {observe(i,u){let g=u.isFocused!==f;if(f=u.isFocused,i!==c){if(p+=1,y?.abort(),y=null,x(),b=null,c=i,i===null){m=null,d=Rt,_();return}let T=s.get(i),w=T&&o.now()-T.fetchedAt<I(T.data)?T:null;w?(E(i),m=i,S({data:w.data,isPending:false,isError:false,error:null,isDark:false})):S({isPending:true,isError:false,error:null,isDark:false}),f&&v(i,0);return}if(!g||i===null)return;if(!f){x();return}let R=s.get(i);!R||o.now()-R.fetchedAt>=I(R.data)?b!==i&&v(i,0):l(i,R.data.ttlSeconds);},getSnapshot(){return d},subscribe(i){return a.add(i),()=>{a.delete(i);}},getCachedPetStateMedia(i){let u=s.get(i);return !u||o.now()-u.fetchedAt>=I(u.data)?null:(E(i),u.data)},dispose(){p+=1,y?.abort(),y=null,x(),a.clear(),s.clear();}}}n(Me,"createPetStateStore");function Tt(e){if(typeof e!="object"||e===null)return false;let t=e,r=typeof t.status=="number"?t.status:t.httpStatus;return r===403||r===404}n(Tt,"isTerminalPetStateError");var Ct=Object.freeze({track(){},trackExpectedFailure(){}});function ee(e){let t=e.telemetry??Ct,r=e.timers??an(e.now),o=Me({repo:e.repo,cacheEpoch:xe({kv:e.kv,cache:e.cache}),timers:r}),a=new Set,s=H,d="none",c=false,m=null,f=null,b=false,h=0,y="",p=on(S()),_=false;function S(){let l=e.manifest?e.manifest():W;return Ie(l)}n(S,"surface");let x=n(()=>{for(let l of a)l();},"emit"),I=o.subscribe(()=>{E();});function E(){let l=o.getSnapshot();(l.data!==f||l.isDark!==b)&&(f=l.data,b=l.isDark,s=H,d=l.isDark?"dark_or_missing":"none",h+=1),C(l);}n(E,"onStoreChange");function C(l=o.getSnapshot()){let v=S(),O=nn(v,l,{failed:s,fallbackReason:d,paused:c,photoUrl:m,reducedMotion:e.reducedMotion()});p=O,z(O),x();}n(C,"recompute");function z(l){if(l.kind!=="ready")return;let v=`${l.category}|${l.tier}|${l.fallbackReason}|${l.reducedMotion?1:0}`;v!==y&&(y=v,t.track("pet_state_shown",{category:l.category,tier:l.tier,fallback_reason:l.fallbackReason,reduced_motion:l.reducedMotion}),l.fallbackReason==="idle_asset_failed"&&t.trackExpectedFailure("idle_asset_failed",{category:l.category}));}return n(z,"maybeEmitShown"),{observe(l,v){_||(m=v.photoUrl??null,s=H,o.observe(l,{isFocused:v.isFocused}),E());},getState(){return p},subscribe(l){return a.add(l),()=>{a.delete(l);}},onMediaError(){if(_||p.kind!=="ready")return;let l=ke(p.tier,s);s=l.failed,d=l.reason,C();},setPaused(l){_||c===l||(c=l,C());},dispose(){_||(_=true,I(),o.dispose(),a.clear());}}}n(ee,"createAnimationController");function nn(e,t,r){let o=e.idle;if(!e.enabled)return Object.freeze({kind:"disabled",reason:U("accessDenied"),level:"partner_config",source:o,idle:e.idle});if(t.isPending&&t.data===null&&!t.isDark)return Object.freeze({kind:"pending",showSkeleton:true,source:o});let a=t.data,s=a?.category??"idle",d=a?.tiers.animation,c=a?.tiers.image,m=!!d&&d?.kind==="webp"&&!r.reducedMotion&&!r.failed.animation,f=we({hasPhoto:r.photoUrl!==null&&r.photoUrl.length>0,photoFailed:r.failed.photo,canAnimate:m,animationFailed:r.failed.animation,hasImage:!!c,imageFailed:r.failed.image}),b=o,h=null,y=false;f==="photo"&&r.photoUrl?b=De(r.photoUrl,void 0):f==="animation"&&d?(b=De(d.url,d.cacheKey),h=d.loopDurationMs??null,y=d.cacheKey!==void 0):f==="image"&&c&&(b=De(c.url,c.cacheKey),y=c.cacheKey!==void 0);let p=b.kind==="uri"?b.cacheKey:`bundled:${b.id}`;return Object.freeze({kind:"ready",tier:f,source:b,recyclingKey:p,category:s,loopDurationMs:h,paused:r.paused,reducedMotion:r.reducedMotion,cacheHit:y,fallbackReason:r.fallbackReason,isDark:t.isDark,isTransientError:t.isError})}n(nn,"buildView");function De(e,t){return Object.freeze({kind:"uri",uri:e,cacheKey:t??Ce({uri:e})})}n(De,"uriSource");function on(e){return Object.freeze({kind:"pending",showSkeleton:true,source:e.idle})}n(on,"pendingView");function an(e){return {setTimeout:n((t,r)=>setTimeout(t,r),"setTimeout"),clearTimeout:n(t=>clearTimeout(t),"clearTimeout"),now:e}}n(an,"defaultTimers");var un=Object.freeze({kind:"pending",showSkeleton:true,source:L}),cn=n(()=>{},"NOOP_UNSUBSCRIBE");function je(e){let{petRef:t,repo:r,cache:o,kv:a,isFocused:s=true,photoUrl:d=null,telemetry:c,reducedMotion:m,manifest:f,timers:b,now:h}=e,{runtime:y,userRef:p}=Z(),_=K("animations"),S=pn(m),I=r!==void 0&&o!==void 0&&a!==void 0?"override":`${p??""}|${t??""}`,[E,C]=useState(null);useEffect(()=>{if(r!==void 0&&o!==void 0&&a!==void 0){let g={repo:r,cache:o,kv:a,reducedMotion:S,now:h??kt,...c?{telemetry:c}:{},...f?{manifest:f}:{},...b?{timers:b}:{}},R=ee(g);return C(R),()=>{C(T=>T===R?null:T),R.dispose();}}let{services:i}=y.registry,u=y.registry.acquire("animations",`${p??""}|${t??""}`,()=>ee({repo:Te(i.authFor(p)),cache:i.imageCache,kv:i.kv,reducedMotion:S,now:h??kt,telemetry:i.telemetry,...f?{manifest:f}:{},...b?{timers:b}:{}}),g=>g.dispose());return C(u),()=>{C(g=>g===u?null:g),y.registry.release(u);}},[I,r,o,a,y]),useEffect(()=>{E?.observe(t,{isFocused:s,photoUrl:d});},[E,t,s,d]);let z=useCallback(i=>E?E.subscribe(i):cn,[E]),l=useCallback(()=>E?E.getState():un,[E]),v=useSyncExternalStore(z,l,l),O=useCallback(()=>{E?.onMediaError();},[E]),j=useCallback(i=>{E?.setPaused(i);},[E]);return useMemo(()=>({capability:_,state:v,onMediaError:O,setPaused:j}),[_,v,O,j])}n(je,"useAnimations");function pn(e){let t=useRef(true);return useEffect(()=>{if(e)return;let r=true,o=AccessibilityInfo.isReduceMotionEnabled?.();o&&typeof o.then=="function"&&o.then(s=>{r&&(t.current=s);});let a=AccessibilityInfo.addEventListener?.("reduceMotionChanged",s=>{t.current=s;});return ()=>{r=false,a?.remove?.();}},[e]),useMemo(()=>e??(()=>t.current),[e])}n(pn,"useSystemReducedMotion");function kt(){return Date.now()}n(kt,"defaultNow");var gn=200,En=300,Ne=120;function hn(e){let{style:t,accessibilityLabel:r}=e,o={accessibilityLabel:r,decorative:At(e)};return jsx(mt,{capability:"animations",style:t,renderPending:()=>jsx(re,{style:t,a11y:o,busy:true}),renderDisabled:a=>jsx(re,{style:t,a11y:o,reason:a.disabled?.reason??""}),children:jsx(_n,{...e})})}n(hn,"PetStateView");function At(e){return e.decorative===true||e.accessibilityLabel===void 0}n(At,"isDecorative");function _n(e){let t=Le(),r={accessibilityLabel:e.accessibilityLabel,decorative:At(e)},o=je(Tn(e));return jsx(View,{style:[t.container,e.style],children:Sn(o.state,o.onMediaError,r)})}n(_n,"PetStateBody");function Sn(e,t,r){switch(e.kind){case "pending":return jsx(Pt,{source:e.source,recyclingKey:"pending",reducedMotion:true,a11y:r,busy:true,onMediaError:t});case "disabled":return jsx(re,{a11y:r,reason:e.reason});case "ready":return jsx(Pt,{source:e.source,recyclingKey:e.recyclingKey,reducedMotion:e.reducedMotion,a11y:r,onMediaError:t});default:return Q(e)}}n(Sn,"renderState");function Pt({source:e,recyclingKey:t,reducedMotion:r,a11y:o,busy:a,onMediaError:s}){let d=Le();return e.kind==="uri"?jsx(Image,{source:{uri:e.uri},onError:s,fadeDuration:r?0:gn,style:d.media,...It(o)},t):jsx(re,{a11y:o,busy:a})}n(Pt,"MediaNode");function re({style:e,a11y:t,busy:r,reason:o}){let a=Le();return jsxs(View,{style:[a.idlePlaceholder,e],...It(t),children:[r?jsx(Rn,{}):null,o&&o.length>0?jsx($,{style:a.reasonText,children:o}):null]})}n(re,"IdleRegion");function Rn(){let e=M(),[t,r]=useState(false);return useEffect(()=>{let o=setTimeout(()=>r(true),En);return ()=>clearTimeout(o)},[]),t?jsx(ActivityIndicator,{color:e.color.brandInk}):null}n(Rn,"DelayedSpinner");function It(e){if(e.decorative)return {accessible:false,accessibilityElementsHidden:true,importantForAccessibility:"no-hide-descendants"};let t=e.accessibilityLabel;return t!==void 0?{accessible:true,accessibilityRole:"image",accessibilityLabel:t}:{accessible:true,accessibilityRole:"image"}}n(It,"a11yProps");function Tn(e){let t={petRef:e.petRef,repo:e.repo,cache:e.cache,kv:e.kv};return e.isFocused!==void 0&&(t.isFocused=e.isFocused),e.photoUrl!==void 0&&(t.photoUrl=e.photoUrl),e.telemetry!==void 0&&(t.telemetry=e.telemetry),e.reducedMotion!==void 0&&(t.reducedMotion=e.reducedMotion),e.manifest!==void 0&&(t.manifest=e.manifest),e.timers!==void 0&&(t.timers=e.timers),e.now!==void 0&&(t.now=e.now),t}n(Tn,"buildParams");function Le(){let e=M();return useMemo(()=>Cn(e),[e])}n(Le,"useStyles");function Cn(e){return StyleSheet.create({container:{minHeight:Ne,width:"100%",backgroundColor:e.color.surfaceCream,borderRadius:e.radius.lg,overflow:"hidden"},media:{minHeight:Ne,width:"100%"},idlePlaceholder:{minHeight:Ne,width:"100%",alignItems:"center",justifyContent:"center",backgroundColor:e.color.surfaceCream,borderRadius:e.radius.lg,borderWidth:StyleSheet.hairlineWidth,borderColor:e.color.borderRingCream,padding:e.space.lg},reasonText:{marginTop:e.space.sm,fontFamily:e.type.family,fontSize:e.type.size.bodyTight,lineHeight:Math.round(e.type.size.bodyTight*e.type.lineHeight.normal),fontWeight:e.type.weight.medium,color:e.color.text.muted,textAlign:"center"}})}n(Cn,"makeStyles");export{Fe as CACHE_EPOCH_STORAGE_KEY,L as COMPILED_DEFAULT_IDLE,W as COMPILED_DEFAULT_MANIFEST,Oe as MANIFEST_LKG_STORAGE_KEY,H as NO_FAILURES,hn as PetStateView,Pe as SUPPORTED_SCHEMA_VERSION,Ie as animationsSurfaceOf,ee as createAnimationController,xe as createCacheEpochGuard,Te as createPetStateRepository,Me as createPetStateStore,$r as isLoaderSafeCategory,Tt as isTerminalPetStateError,_e as mapPetStateResponse,_r as newSessionId,Ae as parseManifest,Re as parsePetStateWire,St as petStateResponseWireSchema,en as resolveManifest,ke as retireTier,we as selectTier,Ce as stableMediaKey,je as useAnimations};
@@ -1,7 +1,7 @@
1
1
  import { E as EverfurError } from './EverfurError-DmELDpXp.cjs';
2
- import { R as RequestFunnel } from './requestFunnel-BGpcJ_po.cjs';
2
+ import { R as RequestFunnel } from './requestFunnel-DAwb7haa.cjs';
3
3
  import { F as FileHandle, U as UploadTransport, a as UploadPolicyWire } from './ports-BN6RHF9W.cjs';
4
- import { R as ReadableStore, T as Timers } from './ports-D0YSZnxV.cjs';
4
+ import { R as ReadableStore, T as Timers } from './ports-ChnzSy4E.cjs';
5
5
 
6
6
  /** The image MIME types the chat accepts (the server's `CHAT_ATTACHMENT` rule, plus the `image/jpg` alias). */
7
7
  declare const ATTACHMENT_MIME_TYPES: readonly string[];
@@ -1,12 +1,12 @@
1
1
  import { E as EverfurError } from './EverfurError-DmELDpXp.js';
2
2
  import { E as EverfurResult } from './EverfurResult-SGvHKsCB.js';
3
3
  import { C as ConversationId, P as PetRef, b as ResponseId } from './ids-B2GAAifq.js';
4
- import { f as ChatFeedbackType, j as ChatStatus, i as ChatMessage, c as ChatConversationListOptions, d as ChatConversationPage, g as ChatHistoryOptions, h as ChatMessagePage, a as ChatCheckinTarget, e as ChatFeedbackReceipt } from './ports-DOoFLAKN.js';
5
- import { C as CheckinAnswer, a as CheckinOutcome } from './casesRepository-s5EjE3Md.js';
6
- import { i as UrgencyLevel } from './config-CQ4VFCgE.js';
7
- import { W as WidgetPet } from './petsRepository-C4oEuH9r.js';
4
+ import { f as ChatFeedbackType, l as ChatStatus, i as ChatMessage, c as ChatConversationListOptions, d as ChatConversationPage, g as ChatHistoryOptions, h as ChatMessagePage, a as ChatCheckinTarget, e as ChatFeedbackReceipt } from './ports-iXPWd7Vt.js';
5
+ import { C as CheckinAnswer, a as CheckinOutcome } from './casesRepository-BbgXYPxa.js';
6
+ import { i as UrgencyLevel } from './config-Dfbj5mlx.js';
7
+ import { W as WidgetPet } from './petsRepository-0oBVydl6.js';
8
8
  import { U as UploadTransport, F as FileHandle } from './ports-BN6RHF9W.js';
9
- import { c as AttachmentQueue, d as AttachmentState, A as AttachmentError, b as AttachmentOutcome } from './attachments-CXLSLEvy.js';
9
+ import { c as AttachmentQueue, d as AttachmentState, A as AttachmentError, b as AttachmentOutcome } from './attachments-CfxsVg7W.js';
10
10
 
11
11
  /** The three thumbs. `'neutral'` is the app's rotated thumbs-down glyph. */
12
12
  type ChatSentiment = 'up' | 'neutral' | 'down';
@@ -1,7 +1,7 @@
1
1
  import { E as EverfurError } from './EverfurError-DmELDpXp.js';
2
- import { R as RequestFunnel } from './requestFunnel-D6UOCs0L.js';
2
+ import { R as RequestFunnel } from './requestFunnel-CQzz2DIW.js';
3
3
  import { F as FileHandle, U as UploadTransport, a as UploadPolicyWire } from './ports-BN6RHF9W.js';
4
- import { R as ReadableStore, T as Timers } from './ports-DOoFLAKN.js';
4
+ import { R as ReadableStore, T as Timers } from './ports-iXPWd7Vt.js';
5
5
 
6
6
  /** The image MIME types the chat accepts (the server's `CHAT_ATTACHMENT` rule, plus the `image/jpg` alias). */
7
7
  declare const ATTACHMENT_MIME_TYPES: readonly string[];
@@ -1,12 +1,12 @@
1
1
  import { E as EverfurError } from './EverfurError-DmELDpXp.cjs';
2
2
  import { E as EverfurResult } from './EverfurResult-ZtH-YV1h.cjs';
3
3
  import { C as ConversationId, P as PetRef, b as ResponseId } from './ids-B2GAAifq.cjs';
4
- import { f as ChatFeedbackType, j as ChatStatus, i as ChatMessage, c as ChatConversationListOptions, d as ChatConversationPage, g as ChatHistoryOptions, h as ChatMessagePage, a as ChatCheckinTarget, e as ChatFeedbackReceipt } from './ports-D0YSZnxV.cjs';
5
- import { C as CheckinAnswer, a as CheckinOutcome } from './casesRepository-C2gzlgJW.cjs';
6
- import { i as UrgencyLevel } from './config-CBJgbICJ.cjs';
7
- import { W as WidgetPet } from './petsRepository-DeQqFxAV.cjs';
4
+ import { f as ChatFeedbackType, l as ChatStatus, i as ChatMessage, c as ChatConversationListOptions, d as ChatConversationPage, g as ChatHistoryOptions, h as ChatMessagePage, a as ChatCheckinTarget, e as ChatFeedbackReceipt } from './ports-ChnzSy4E.cjs';
5
+ import { C as CheckinAnswer, a as CheckinOutcome } from './casesRepository-Jj6t60AY.cjs';
6
+ import { i as UrgencyLevel } from './config-BZX97FmW.cjs';
7
+ import { W as WidgetPet } from './petsRepository-SqIvEMiT.cjs';
8
8
  import { U as UploadTransport, F as FileHandle } from './ports-BN6RHF9W.cjs';
9
- import { c as AttachmentQueue, d as AttachmentState, A as AttachmentError, b as AttachmentOutcome } from './attachments-D9wvXx_d.cjs';
9
+ import { c as AttachmentQueue, d as AttachmentState, A as AttachmentError, b as AttachmentOutcome } from './attachments-C3HJNYQ7.cjs';
10
10
 
11
11
  /** The three thumbs. `'neutral'` is the app's rotated thumbs-down glyph. */
12
12
  type ChatSentiment = 'up' | 'neutral' | 'down';
@@ -1,8 +1,8 @@
1
1
  import { a as TelevetStatePolicy, b as TelevetBookingEntitlement, c as TelevetCancellationPolicy, d as TelevetClinician, e as TelevetSlot, f as TelevetSlotHold, g as TelevetBookingBody, T as TelevetConsult, h as TelevetCancelReceipt, C as ConsultStatus } from './bookingTypes-DCs8mmBb.cjs';
2
2
  import { E as EverfurError } from './EverfurError-DmELDpXp.cjs';
3
3
  import { E as EverfurResult } from './EverfurResult-ZtH-YV1h.cjs';
4
- import { R as RequestFunnel } from './requestFunnel-BGpcJ_po.cjs';
5
- import { A as AuthContext } from './identity-DczAiVsf.cjs';
4
+ import { R as RequestFunnel } from './requestFunnel-DAwb7haa.cjs';
5
+ import { A as AuthContext } from './identity-D7PO5s9m.cjs';
6
6
  import { E as ErrorPolicyPort } from './ErrorPolicyPort-D6CybiqJ.cjs';
7
7
  import { T as TelemetryPort } from './TelemetryPort-BDNr00hu.cjs';
8
8
  import { b as VetCallCredential, c as VetCallJoinRefusal } from './callRoom-B_EqaUzx.cjs';
@@ -1,8 +1,8 @@
1
1
  import { a as TelevetStatePolicy, b as TelevetBookingEntitlement, c as TelevetCancellationPolicy, d as TelevetClinician, e as TelevetSlot, f as TelevetSlotHold, g as TelevetBookingBody, T as TelevetConsult, h as TelevetCancelReceipt, C as ConsultStatus } from './bookingTypes-DCs8mmBb.js';
2
2
  import { E as EverfurError } from './EverfurError-DmELDpXp.js';
3
3
  import { E as EverfurResult } from './EverfurResult-SGvHKsCB.js';
4
- import { R as RequestFunnel } from './requestFunnel-D6UOCs0L.js';
5
- import { A as AuthContext } from './identity-vvueVndA.js';
4
+ import { R as RequestFunnel } from './requestFunnel-CQzz2DIW.js';
5
+ import { A as AuthContext } from './identity-B8rp0L9G.js';
6
6
  import { E as ErrorPolicyPort } from './ErrorPolicyPort-D22LUVrK.js';
7
7
  import { T as TelemetryPort } from './TelemetryPort-BDNr00hu.js';
8
8
  import { b as VetCallCredential, c as VetCallJoinRefusal } from './callRoom-7wrE3RP2.js';
@@ -1,4 +1,80 @@
1
- import { c as EverfurThemeSlotName, b as EverfurFontFaceKey, d as EverfurThemeSlots } from './tokens-CIngRkvt.js';
1
+ import { p as EverfurThemeSlotName, b as EverfurFontFaceKey, q as EverfurThemeSlots } from './tokens-ARWZtMOU.cjs';
2
+
3
+ /** The presets an appearance may start from. `everfur` is the compiled default. */
4
+ declare const APPEARANCE_PRESET_NAMES: readonly ["everfur", "minimal", "night"];
5
+ type EverfurAppearancePreset = (typeof APPEARANCE_PRESET_NAMES)[number];
6
+ /**
7
+ * The global variables, Stripe's names. Colours in any form `parseColor` reads; sizes as a number of px or a
8
+ * `'16px'` string. Each maps onto one flat branding field:
9
+ * - `colorPrimary` -> `primary_color`, `colorAccent` -> `accent_color`
10
+ * - `colorBackground` -> `background_color`, `colorText` -> `text_color` (the `_dark` twins under a dark scheme)
11
+ * - `colorDanger` -> `danger_color` (`danger_color_dark` under a dark scheme)
12
+ * - `fontFamily` -> `font_family`, `fontSizeBase` -> `font_size_base` (px, 12 to 20; the body size, default 14)
13
+ * - `borderRadius` -> `border_radius` (px, 0 to 32; the medium corner, default 14)
14
+ * - `spacingUnit` -> `spacing_unit` (px, 3 to 6; the smallest step, default 4)
15
+ * - `colorScheme` -> `color_scheme` (`light`, `dark` or `auto`)
16
+ */
17
+ interface EverfurAppearanceVariables {
18
+ readonly colorPrimary?: string | number;
19
+ readonly colorAccent?: string | number;
20
+ readonly colorBackground?: string | number;
21
+ readonly colorText?: string | number;
22
+ readonly colorDanger?: string | number;
23
+ readonly fontFamily?: string;
24
+ readonly fontSizeBase?: number | string;
25
+ readonly borderRadius?: number | string;
26
+ readonly spacingUnit?: number | string;
27
+ readonly colorScheme?: 'light' | 'dark' | 'auto' | string;
28
+ }
29
+ /**
30
+ * Per-component rules: the nine paint slots, each with the slot paint keys (camelCase or the wire's snake_case).
31
+ * Stripe's `.Class` selectors (`.Input`, `.Tab:hover`) are not slots and are ignored.
32
+ */
33
+ type EverfurAppearanceRules = Readonly<Partial<Record<EverfurThemeSlotName, EverfurThemeSlotInput>>>;
34
+ /** The Stripe-shaped appearance object: a preset, global variables, and per-slot rules. Every key optional. */
35
+ interface EverfurAppearance {
36
+ readonly theme?: EverfurAppearancePreset | string;
37
+ readonly variables?: EverfurAppearanceVariables;
38
+ readonly rules?: EverfurAppearanceRules;
39
+ }
40
+ /**
41
+ * What each preset sets, as variables. Pinned by `contract/appearance/appearance_v1.json`, which EFBackend runs too,
42
+ * so a preset means the same thing in a partner's code and in the console.
43
+ */
44
+ declare const APPEARANCE_PRESETS: Readonly<Record<EverfurAppearancePreset, EverfurAppearanceVariables>>;
45
+ /** The accepted range of each size variable, in px. A value outside it is clamped by the parse (branding.ts). */
46
+ declare const APPEARANCE_SIZE_RANGES: Readonly<{
47
+ fontSizeBase: Readonly<{
48
+ min: 12;
49
+ max: 20;
50
+ default: 14;
51
+ }>;
52
+ borderRadius: Readonly<{
53
+ min: 0;
54
+ max: 32;
55
+ default: 14;
56
+ }>;
57
+ spacingUnit: Readonly<{
58
+ min: 3;
59
+ max: 6;
60
+ default: 4;
61
+ }>;
62
+ }>;
63
+ /**
64
+ * A px size from a number or a `'16px'` / `'16'` / `'16 px'` string; else undefined (the parse drops it). The range
65
+ * clamp is the flat field's parse, so a size set flat and one set through `variables` are bounded by the same code.
66
+ *
67
+ * Linear on any input: the length is capped before the regex runs, the string is trimmed rather than matched with
68
+ * leading and trailing `\s*` runs, and no two adjacent parts of the pattern can match the same character (the old
69
+ * `\s*(px)?\s*$` shape backtracked quadratically on a long run of spaces).
70
+ */
71
+ declare function parsePx(value: unknown): number | undefined;
72
+ /**
73
+ * Expand an appearance into the flat branding record (snake_case wire keys) the resolver parses, or null when it
74
+ * sets nothing. Preset first, then `variables` over it, then `rules` as `slots`. Pure and total: any input is
75
+ * tolerated and nothing throws. The result is frozen.
76
+ */
77
+ declare function expandAppearance(appearance: unknown): Readonly<Record<string, unknown>> | null;
2
78
 
3
79
  /**
4
80
  * One slot's paint on the `theme` prop; colours in any form `parseColor` reads, the radius in dp/px. The console's
@@ -14,7 +90,7 @@ interface EverfurThemeSlotInput {
14
90
  readonly textColor?: string | number;
15
91
  readonly text_color?: string | number;
16
92
  }
17
- /** The `slots` map on the `theme` prop: any subset of the eight slot names. */
93
+ /** The `slots` map on the `theme` prop: any subset of the nine slot names. */
18
94
  type EverfurThemeSlotsInput = Readonly<Partial<Record<EverfurThemeSlotName, EverfurThemeSlotInput>>>;
19
95
  /**
20
96
  * The faces a theme names: the three text weights and the three mono weights (`EverfurFontFaceKey` on the tokens).
@@ -99,6 +175,38 @@ interface EverfurThemeInput {
99
175
  readonly accessibilityMaxFontScale?: number | string;
100
176
  /** Paint overrides at the named slots. */
101
177
  readonly slots?: EverfurThemeSlotsInput;
178
+ /**
179
+ * The Stripe-shaped way to set all of this: `{ theme, variables, rules }` (appearance.ts). It expands onto the
180
+ * flat keys of this same object, and a flat key written beside it wins: preset < variables < rules < flat keys.
181
+ */
182
+ readonly appearance?: EverfurAppearance;
183
+ /** The light palette's ground (surface, chat ground, page); the cream and subtle grounds derive from it. */
184
+ readonly background_color?: string | number;
185
+ readonly backgroundColor?: string | number;
186
+ /** The dark palette's ground; absent, the dark palette keeps Everfur's own. */
187
+ readonly background_color_dark?: string | number;
188
+ readonly backgroundColorDark?: string | number;
189
+ /** The light palette's body text, kept at 4.5:1 on every ground by the resolver. */
190
+ readonly text_color?: string | number;
191
+ readonly textColor?: string | number;
192
+ /** The dark palette's body text, guarded the same way. */
193
+ readonly text_color_dark?: string | number;
194
+ readonly textColorDark?: string | number;
195
+ /** Errors and destructive actions on the light palette (the dark twin is derived from it when unset), kept at 4.5:1. */
196
+ readonly danger_color?: string | number;
197
+ readonly dangerColor?: string | number;
198
+ /** Errors and destructive actions on the dark palette; absent, derived from `danger_color`. */
199
+ readonly danger_color_dark?: string | number;
200
+ readonly dangerColorDark?: string | number;
201
+ /** The body text size in px, 12 to 20 (clamped); every size scales from it. Default 14. */
202
+ readonly font_size_base?: number | string;
203
+ readonly fontSizeBase?: number | string;
204
+ /** The medium corner radius in px, 0 to 32 (clamped); every radius but the pill scales from it. Default 14. */
205
+ readonly border_radius?: number | string;
206
+ readonly borderRadius?: number | string;
207
+ /** The smallest spacing step in px, 3 to 6 (clamped); every step scales from it. Default 4. */
208
+ readonly spacing_unit?: number | string;
209
+ readonly spacingUnit?: number | string;
102
210
  /** Tolerated for any other key; ignored by the resolver. */
103
211
  readonly [key: string]: unknown;
104
212
  }
@@ -161,6 +269,30 @@ interface ClientBranding {
161
269
  * attribution.
162
270
  */
163
271
  readonly lockedFields?: readonly ThemeLockName[] | null;
272
+ /**
273
+ * background_color: the ground of the LIGHT palette (the surface, the chat ground, the page, the assistant reply),
274
+ * with the cream, subtle and ring grounds derived from it. Absent/null keeps Everfur's own grounds.
275
+ */
276
+ readonly backgroundColor?: string | null;
277
+ /** background_color_dark: the same on the dark palette. Absent/null keeps Everfur's dark grounds. */
278
+ readonly backgroundColorDark?: string | null;
279
+ /** text_color: the body text of the light palette; guarded at 4.5:1 on every ground. Absent/null keeps the base. */
280
+ readonly textColor?: string | null;
281
+ /** text_color_dark: the body text of the dark palette, guarded the same way. */
282
+ readonly textColorDark?: string | null;
283
+ /**
284
+ * danger_color: errors and destructive actions on the LIGHT palette; the dark palette derives its variant from
285
+ * it when `danger_color_dark` is absent (as EFBackend's fold does). Guarded at 4.5:1 on every ground it is drawn on.
286
+ */
287
+ readonly dangerColor?: string | null;
288
+ /** danger_color_dark: the same on the dark palette. Absent/null, it is derived from `danger_color`. */
289
+ readonly dangerColorDark?: string | null;
290
+ /** font_size_base: the body size in px (12..20, clamped); every type size scales by it over 14. */
291
+ readonly fontSizeBase?: number | null;
292
+ /** border_radius: the medium corner in px (0..32, clamped); every radius but the pill scales by it over 14. */
293
+ readonly borderRadius?: number | null;
294
+ /** spacing_unit: the smallest spacing step in px (3..6, clamped); every step scales by it over 4. */
295
+ readonly spacingUnit?: number | null;
164
296
  /**
165
297
  * schema_version: the wire version the branding was written for. null when absent (schema 1); 0 when present but
166
298
  * not a positive integer. A version this SDK does not know (`THEME_SCHEMA_VERSIONS`) drops the server branding.
@@ -175,7 +307,7 @@ type RadiusScale = 'sharp' | 'default' | 'round';
175
307
  * The wire names a tenant may list in `locked_fields` (every cosmetic field). `hide_powered_by` is not listed:
176
308
  * it is server-wins unconditionally, so locking it is meaningless.
177
309
  */
178
- declare const LOCKABLE_THEME_FIELDS: readonly ["display_name", "logo_url", "logo_url_dark", "primary_color", "accent_color", "primary_color_dark", "accent_color_dark", "brightness", "color_scheme", "font_family", "font_url", "fonts", "font_urls", "chat_placeholder", "surface_style", "radius_scale", "accessibility_max_font_scale", "slots"];
310
+ declare const LOCKABLE_THEME_FIELDS: readonly ["display_name", "logo_url", "logo_url_dark", "primary_color", "accent_color", "primary_color_dark", "accent_color_dark", "brightness", "color_scheme", "font_family", "font_url", "fonts", "font_urls", "chat_placeholder", "surface_style", "radius_scale", "accessibility_max_font_scale", "slots", "background_color", "background_color_dark", "text_color", "text_color_dark", "danger_color", "danger_color_dark", "font_size_base", "border_radius", "spacing_unit"];
179
311
  type LockableThemeField = (typeof LOCKABLE_THEME_FIELDS)[number];
180
312
  /** The `locked_fields` key that locks one slot (`slots.<name>`), as EFBackend branding_slots.py emits it. */
181
313
  declare const SLOT_LOCK_PREFIX = "slots.";
@@ -209,4 +341,4 @@ declare const MAX_FONT_SCALE_CEILING = 3.1;
209
341
  */
210
342
  declare function hardenHttpsUrl(url: string | null): string | null;
211
343
 
212
- export { type ClientBranding as C, type EverfurThemeInput as E, LOCKABLE_THEME_FIELDS as L, MAX_FONT_SCALE_CEILING as M, type RadiusScale as R, type SurfaceStyle as S, THEME_SCHEMA_VERSIONS as T, type EverfurThemeFontFaceKey as a, type EverfurThemeFontUrlsInput as b, type EverfurThemeFontsInput as c, type EverfurThemeSlotInput as d, type EverfurThemeSlotsInput as e, type LockableThemeField as f, SLOT_LOCK_PREFIX as g, type SlotLockName as h, type ThemeLockName as i, hardenHttpsUrl as j, isEmptyBranding as k, isKnownBrandingSchema as l, lockedFieldsOf as m, parseClientBranding as p };
344
+ export { APPEARANCE_PRESETS as A, type ClientBranding as C, type EverfurThemeInput as E, LOCKABLE_THEME_FIELDS as L, MAX_FONT_SCALE_CEILING as M, type RadiusScale as R, type SurfaceStyle as S, THEME_SCHEMA_VERSIONS as T, APPEARANCE_PRESET_NAMES as a, APPEARANCE_SIZE_RANGES as b, type EverfurAppearance as c, type EverfurAppearancePreset as d, type EverfurAppearanceRules as e, type EverfurAppearanceVariables as f, type EverfurThemeFontFaceKey as g, type EverfurThemeFontUrlsInput as h, type EverfurThemeFontsInput as i, type EverfurThemeSlotInput as j, type EverfurThemeSlotsInput as k, expandAppearance as l, type LockableThemeField as m, SLOT_LOCK_PREFIX as n, type SlotLockName as o, type ThemeLockName as p, hardenHttpsUrl as q, isEmptyBranding as r, isKnownBrandingSchema as s, lockedFieldsOf as t, parseClientBranding as u, parsePx as v };