@everfur/sdk 0.1.1 → 0.3.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 (187) hide show
  1. package/CHANGELOG.md +634 -0
  2. package/README.md +58 -23
  3. package/consent/package.json +8 -0
  4. package/dist/Chat-DPUD6dnc.d.cts +128 -0
  5. package/dist/Chat-DwAC2vhB.d.ts +128 -0
  6. package/dist/DepthViews-DNEM96Se.d.ts +16 -0
  7. package/dist/DepthViews-DP0R-DhB.d.cts +19 -0
  8. package/dist/DepthViews-D_3hl4xk.d.ts +19 -0
  9. package/dist/DepthViews-DbFhR4Du.d.cts +16 -0
  10. package/dist/ErrorPolicyPort-CNf4uQZP.d.cts +22 -0
  11. package/dist/ErrorPolicyPort-CwbfmxzJ.d.ts +22 -0
  12. package/dist/{EverfurResult-D92-uL82.d.cts → EverfurResult-DN9pL2Ab.d.cts} +11 -10
  13. package/dist/{EverfurResult-D92-uL82.d.ts → EverfurResult-DN9pL2Ab.d.ts} +11 -10
  14. package/dist/{PhotoController-BItt5M7u.d.cts → PhotoController-3l7MT9jA.d.cts} +1 -1
  15. package/dist/{PhotoController-D8zMTdcW.d.ts → PhotoController-vzY5bfY_.d.ts} +1 -1
  16. package/dist/animations/index.cjs +1 -1997
  17. package/dist/animations/index.d.cts +35 -35
  18. package/dist/animations/index.d.ts +35 -35
  19. package/dist/animations/index.js +1 -1972
  20. package/dist/attachments-5NeobOCd.d.ts +256 -0
  21. package/dist/attachments-Bw3iMQgu.d.ts +146 -0
  22. package/dist/attachments-CQgFrEQ7.d.cts +146 -0
  23. package/dist/attachments-D8T5re7e.d.cts +256 -0
  24. package/dist/casesRepository-ClLv6qMl.d.ts +188 -0
  25. package/dist/casesRepository-DHwtGRYY.d.cts +188 -0
  26. package/dist/chat/index.cjs +1 -1170
  27. package/dist/chat/index.d.cts +31 -53
  28. package/dist/chat/index.d.ts +31 -53
  29. package/dist/chat/index.js +1 -1167
  30. package/dist/client/index.cjs +9 -2315
  31. package/dist/client/index.d.cts +77 -15
  32. package/dist/client/index.d.ts +77 -15
  33. package/dist/client/index.js +9 -2215
  34. package/dist/{config-CiJ0PVBB.d.ts → config-CzTZGlfF.d.cts} +63 -25
  35. package/dist/{config-BSjBdxrZ.d.cts → config-DW60uRb9.d.ts} +63 -25
  36. package/dist/consent/index.cjs +1 -0
  37. package/dist/consent/index.d.cts +33 -0
  38. package/dist/consent/index.d.ts +33 -0
  39. package/dist/consent/index.js +1 -0
  40. package/dist/context-DXhqHlPU.d.ts +159 -0
  41. package/dist/context-XvTzq1tE.d.cts +159 -0
  42. package/dist/copy-Mjoo91aS.d.ts +198 -0
  43. package/dist/copy-bKDNigLb.d.cts +198 -0
  44. package/dist/core/index.cjs +13 -3178
  45. package/dist/core/index.d.cts +58 -12
  46. package/dist/core/index.d.ts +58 -12
  47. package/dist/core/index.js +13 -3166
  48. package/dist/depth-CErXCU8J.d.cts +502 -0
  49. package/dist/depth-DjDcJ6kH.d.ts +502 -0
  50. package/dist/entitlementRepository-DKdXFgTo.d.cts +698 -0
  51. package/dist/entitlementRepository-DSbzuyAW.d.ts +698 -0
  52. package/dist/{identity-DK9zORrG.d.ts → identity-BMx2SUOM.d.ts} +19 -6
  53. package/dist/{identity-Brl-lDd6.d.cts → identity-DI4eVx9S.d.cts} +19 -6
  54. package/dist/{ids-CJ1S6adf.d.cts → ids-B2GAAifq.d.cts} +1 -1
  55. package/dist/{ids-CJ1S6adf.d.ts → ids-B2GAAifq.d.ts} +1 -1
  56. package/dist/index.cjs +12 -4494
  57. package/dist/index.d.cts +29 -121
  58. package/dist/index.d.ts +29 -121
  59. package/dist/index.js +12 -4470
  60. package/dist/models-B-Uh2LTf.d.ts +214 -0
  61. package/dist/models-D2EUxPZY.d.cts +214 -0
  62. package/dist/notifications/index.cjs +2 -0
  63. package/dist/notifications/index.d.cts +17 -0
  64. package/dist/notifications/index.d.ts +17 -0
  65. package/dist/notifications/index.js +2 -0
  66. package/dist/pets-CtQdRpWo.d.ts +92 -0
  67. package/dist/pets-aB8q0JyX.d.cts +92 -0
  68. package/dist/photo/index.cjs +1 -2189
  69. package/dist/photo/index.d.cts +6 -6
  70. package/dist/photo/index.d.ts +6 -6
  71. package/dist/photo/index.js +1 -2186
  72. package/dist/ports-BN6RHF9W.d.cts +48 -0
  73. package/dist/ports-BN6RHF9W.d.ts +48 -0
  74. package/dist/ports-DEBzEhbp.d.cts +386 -0
  75. package/dist/ports-DMolTRzU.d.ts +386 -0
  76. package/dist/profile-CSs1wlXT.d.cts +93 -0
  77. package/dist/profile-CSs1wlXT.d.ts +93 -0
  78. package/dist/records/depth/index.cjs +2 -0
  79. package/dist/records/depth/index.d.cts +13 -0
  80. package/dist/records/depth/index.d.ts +13 -0
  81. package/dist/records/depth/index.js +2 -0
  82. package/dist/records/index.cjs +3 -2839
  83. package/dist/records/index.d.cts +137 -203
  84. package/dist/records/index.d.ts +137 -203
  85. package/dist/records/index.js +3 -2833
  86. package/dist/requestFunnel-CjW7uDuA.d.ts +87 -0
  87. package/dist/requestFunnel-L-BQfi0z.d.cts +87 -0
  88. package/dist/{resolve-Dq_4_agU.d.ts → resolve-D4Ywz5OS.d.cts} +10 -4
  89. package/dist/{resolve-Dq_4_agU.d.cts → resolve-D4Ywz5OS.d.ts} +10 -4
  90. package/dist/{runtime-Bvr8yqXm.d.cts → runtime-B8s-_hv8.d.cts} +121 -59
  91. package/dist/{runtime-BIYzf9cK.d.ts → runtime-BR9ysG0J.d.ts} +121 -59
  92. package/dist/server/events/index.cjs +2 -0
  93. package/dist/server/events/index.d.cts +550 -0
  94. package/dist/server/events/index.d.ts +550 -0
  95. package/dist/server/events/index.js +2 -0
  96. package/dist/server/index.cjs +2 -533
  97. package/dist/server/index.d.cts +73 -18
  98. package/dist/server/index.d.ts +73 -18
  99. package/dist/server/index.js +2 -530
  100. package/dist/species-BXAIMh7I.d.cts +9 -0
  101. package/dist/species-BXAIMh7I.d.ts +9 -0
  102. package/dist/televet/index.cjs +1 -0
  103. package/dist/televet/index.d.cts +60 -0
  104. package/dist/televet/index.d.ts +60 -0
  105. package/dist/televet/index.js +1 -0
  106. package/dist/testing/index.cjs +5 -823
  107. package/dist/testing/index.d.cts +17 -3
  108. package/dist/testing/index.d.ts +17 -3
  109. package/dist/testing/index.js +5 -820
  110. package/dist/testing/rn/index.cjs +1 -449
  111. package/dist/testing/rn/index.d.cts +17 -29
  112. package/dist/testing/rn/index.d.ts +17 -29
  113. package/dist/testing/rn/index.js +1 -444
  114. package/dist/testing/web/index.cjs +1 -0
  115. package/dist/testing/web/index.d.cts +131 -0
  116. package/dist/testing/web/index.d.ts +131 -0
  117. package/dist/testing/web/index.js +1 -0
  118. package/dist/timelineRows-CaohZzXS.d.cts +19 -0
  119. package/dist/timelineRows-DZed6dAM.d.ts +19 -0
  120. package/dist/typeStyle-0TydiZ1w.d.cts +19 -0
  121. package/dist/typeStyle-CWMsoe6b.d.ts +19 -0
  122. package/dist/uploadTransport-D0M0T4hN.d.ts +38 -0
  123. package/dist/uploadTransport-DKJHs3Yj.d.cts +38 -0
  124. package/dist/useRecordsDepth-BHBzJ76R.d.cts +237 -0
  125. package/dist/useRecordsDepth-BU-OhzH6.d.ts +237 -0
  126. package/dist/useVetVisit-Bc84hWUU.d.cts +187 -0
  127. package/dist/useVetVisit-CjmMa896.d.ts +187 -0
  128. package/dist/video/index.cjs +1 -1941
  129. package/dist/video/index.d.cts +4 -4
  130. package/dist/video/index.d.ts +4 -4
  131. package/dist/video/index.js +1 -1938
  132. package/dist/view-C3qPIXGX.d.cts +310 -0
  133. package/dist/view-DtSPYpKa.d.ts +310 -0
  134. package/dist/visitIntent-D7_yVp1I.d.cts +8 -0
  135. package/dist/visitIntent-D7_yVp1I.d.ts +8 -0
  136. package/dist/web/consent/index.cjs +1 -0
  137. package/dist/web/consent/index.d.cts +34 -0
  138. package/dist/web/consent/index.d.ts +34 -0
  139. package/dist/web/consent/index.js +1 -0
  140. package/dist/web/index.cjs +14 -0
  141. package/dist/web/index.d.cts +217 -0
  142. package/dist/web/index.d.ts +217 -0
  143. package/dist/web/index.js +14 -0
  144. package/dist/web/notifications/index.cjs +2 -0
  145. package/dist/web/notifications/index.d.cts +213 -0
  146. package/dist/web/notifications/index.d.ts +213 -0
  147. package/dist/web/notifications/index.js +2 -0
  148. package/dist/web/records/depth/index.cjs +2 -0
  149. package/dist/web/records/depth/index.d.cts +12 -0
  150. package/dist/web/records/depth/index.d.ts +12 -0
  151. package/dist/web/records/depth/index.js +2 -0
  152. package/dist/web/records/index.cjs +4 -0
  153. package/dist/web/records/index.d.cts +194 -0
  154. package/dist/web/records/index.d.ts +194 -0
  155. package/dist/web/records/index.js +4 -0
  156. package/dist/web/televet/index.cjs +1 -0
  157. package/dist/web/televet/index.d.cts +50 -0
  158. package/dist/web/televet/index.d.ts +50 -0
  159. package/dist/web/televet/index.js +1 -0
  160. package/notifications/package.json +8 -0
  161. package/package.json +197 -9
  162. package/records/depth/package.json +8 -0
  163. package/server/events/device-blocked.cjs +15 -0
  164. package/server/events/package.json +9 -0
  165. package/televet/package.json +8 -0
  166. package/testing/web/native-blocked.cjs +12 -0
  167. package/testing/web/package.json +8 -0
  168. package/web/consent/native-blocked.cjs +12 -0
  169. package/web/consent/package.json +8 -0
  170. package/web/native-blocked.cjs +12 -0
  171. package/web/notifications/native-blocked.cjs +12 -0
  172. package/web/notifications/package.json +8 -0
  173. package/web/package.json +8 -0
  174. package/web/records/depth/native-blocked.cjs +12 -0
  175. package/web/records/depth/package.json +8 -0
  176. package/web/records/native-blocked.cjs +12 -0
  177. package/web/records/package.json +8 -0
  178. package/web/televet/native-blocked.cjs +12 -0
  179. package/web/televet/package.json +8 -0
  180. package/dist/ChatController-CKdBvPj2.d.ts +0 -146
  181. package/dist/ChatController-CpUMvvZf.d.cts +0 -146
  182. package/dist/FilePort-BabWrv7I.d.cts +0 -22
  183. package/dist/FilePort-BabWrv7I.d.ts +0 -22
  184. package/dist/petsRepository-BEGb97M9.d.cts +0 -326
  185. package/dist/petsRepository-Bu18r2kK.d.ts +0 -326
  186. package/dist/requestFunnel-DuUH-kAe.d.cts +0 -28
  187. package/dist/requestFunnel-dio5OmR9.d.ts +0 -28
@@ -0,0 +1 @@
1
+ 'use strict';var react=require('react'),reactNative=require('react-native'),jsxRuntime=require('react/jsx-runtime');var dr=Object.defineProperty;var n=(e,r)=>dr(e,"name",{value:r,configurable:true});var $=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($.map(e=>e.wireCode));var cr=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"}),me=Object.freeze($.map(e=>Object.freeze({wireCode:e.wireCode,envelope:e.envelope,retryable:e.retryable,normalized:cr[e.wireCode]}))),fr=new Map(me.map(e=>[e.envelope+e.wireCode.toUpperCase(),e])),pr=Object.freeze(["http_envelope",...[...new Set(me.map(e=>e.envelope))].filter(e=>e!=="http_envelope").sort()]);function N(e,r){if(typeof e!="string")return;let t=e.trim().toUpperCase();if(t.length!==0)for(let o of [r??"http_envelope",...pr]){let i=fr.get(o+t);if(i)return i}}n(N,"contractErrorFor");function yr(e){return e.envelope==="sse_frame"?`/errors#sse-${e.wireCode}`:e.envelope==="oauth_error"?`/errors#oauth-${e.wireCode}`:`/errors#${e.wireCode}`}n(yr,"contractDocUrl");function ve(e){return null}n(ve,"publishedDocUrl");var mr=Object.freeze({authExpired:"authentication",authRejected:"authentication",sessionRequired:"authentication",accessDenied:"authorization",paymentRequired:"entitlement",quotaExceeded:"rateLimit",rateLimited:"rateLimit",validationFailed:"invalidRequest",sdkUpdateRequired:"invalidRequest",conversationNotFound:"notFound",petNotFound:"notFound",resourceNotFound:"notFound",conflict:"conflict",idempotencyConflict:"conflict",idempotencyInFlight:"conflict",streamTimeout:"connection",streamIncomplete:"connection",upstreamLlmTimeout:"connection",serviceUnavailable:"connection",internalError:"server",notImplemented:"server",mediaUploadFailed:"media",moderationBlocked:"policy",unknown:"unknown"});function be(e){return mr[e]}n(be,"categoryFor");function Ee(e){let r=N(e);if(r)return r.normalized;let t=(e??"").trim().toUpperCase(),o=t.replace(/[^A-Z0-9]/g,"");if(o==="AUTHREJECTED")return "authRejected";if(t.startsWith("AUTH"))return "authExpired";switch(o){case "DAILYQUOTAEXCEEDED":case "QUOTAEXCEEDED":return "quotaExceeded";case "RATELIMITED":case "TOOMANYREQUESTS":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(Ee,"fromWire");var vr=new Set(["streamTimeout","rateLimited","internalError","upstreamLlmTimeout","streamIncomplete"]);function Q(e){return vr.has(e)}n(Q,"isAutoRetryable");var br=new Set(["serviceUnavailable","conflict","idempotencyInFlight"]);function ge(e){return Q(e)||br.has(e)}n(ge,"isRetryableCode");var Er=500,X=8e3,he=4;function _e(e,r=Math.random){let t=Math.max(0,e),o=Math.min(Er*2**t,X);return Math.floor(r()*o)}n(_e,"backoffDelayMs");var gr=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 J(e){return gr[e]}n(J,"userFacingError");function Re(e,r,t){Object.defineProperty(e,r,{value:t,enumerable:false,writable:false,configurable:false});}n(Re,"defineHidden");var hr=/^[a-z][a-z0-9_]{0,63}$/;function w(e,r){let t=N(r?.wireCode,r?.wireEnvelope),o={code:e,category:be(e),retryable:r?.retryable??ge(e),displayMessage:J(e)};if(r?.httpStatus!==void 0&&(o.httpStatus=r.httpStatus),r?.requestId&&(o.requestId=r.requestId),typeof r?.reasonCode=="string"&&hr.test(r.reasonCode)&&(o.reasonCode=r.reasonCode),t);return r?.wireMessage&&Re(o,"wireMessage",r.wireMessage),r?.raw!==void 0&&r.raw!==null&&Re(o,"raw",r.raw),Object.freeze(o)}n(w,"makeEverfurError");function Z(e,r){return Object.freeze(r===void 0?{ok:true,value:e}:{ok:true,value:e,warning:r})}n(Z,"ok");function R(e){return Object.freeze({ok:false,error:e})}n(R,"err");var L=class L extends Error{constructor(r,t){super(t),this.name="EverfurConfigError",this.kind=r,Object.setPrototypeOf(this,L.prototype);}};n(L,"EverfurConfigError");var A=L;function Te(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(Te,"errorFrame");function Tr(e){let r={};return e.mode==="personalized"?r.authorization=`Bearer ${e.token}`:r["x-everfur-partner-key"]=e.publishableKey,e.userRef&&(r["x-everfur-user-ref"]=e.userRef),e.sessionId&&(r["x-everfur-session-id"]=e.sessionId),r}n(Tr,"authHeaders");function P(e,r){return {...e,headers:{...Cr(e.headers),...Tr(r)}}}n(P,"withAuthHeaders");function Cr(e){if(!e)return {};let r={};for(let[t,o]of Object.entries(e)){let i=t.toLowerCase();i==="authorization"||i==="x-everfur-partner-key"||(r[t]=o);}return r}n(Cr,"stripAuthHeaders");async function Ce(e,r){if(r.mode==="anonymous")return r.transport.request(P(e,{mode:"anonymous",publishableKey:r.publishableKey,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));let t;try{t=await r.identity.currentToken();}catch{return R(ee())}let o=await r.transport.request(P(e,{mode:"personalized",token:t,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));if(o.ok||o.error.httpStatus!==401)return o;let i;try{i=await r.identity.currentToken({forceRefresh:!0});}catch{return R(ee())}let a=await r.transport.request(P(e,{mode:"personalized",token:i,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));return !a.ok&&a.error.httpStatus===401?R(ee(a.error.httpStatus)):a}n(Ce,"authedSend");function ee(e){return w("authRejected",{retryable:false,...e!==void 0?{httpStatus:e}:{}})}n(ee,"authRejectedError");function xe(e){return w("internalError",{retryable:true,wireMessage:xr(e)})}n(xe,"networkError");function xr(e){return e instanceof Error?e.message:typeof e=="string"?e:"network request failed"}n(xr,"describeCause");var wr=3e4,Sr=X*2,kr="idempotency-key",Fr=new Set(["POST","PUT","PATCH","DELETE"]),Or=Object.freeze({onEvent(){}}),Vr=Object.freeze({setTimeout:n((e,r)=>setTimeout(e,r),"setTimeout"),clearTimeout:n(e=>clearTimeout(e),"clearTimeout"),now:n(()=>Date.now(),"now")});function Se(e){let r=e.observer??Or,t=e.timers??Vr,o=e.rng??Math.random,i=e.sleep??((d,c)=>qr(d,t,c)),a=e.maxAttempts??he,l=e.unaryTimeoutMs??wr,u=e.newIdempotencyKey??Ar(),s=n(d=>{try{r.onEvent(d);}catch{}},"emit");async function p(d,c,y){let h=y?.maxAttempts,f=Math.max(1,h??a),E=y?.idempotent??Fr.has(c.method)?u():null,k=Ir(c,E),F=0;for(;;){let g=n(x=>Object.freeze({call:d,method:c.method,path:c.path,attempt:F,...E?{idempotencyKey:E}:{},...x}),"stamp");s(g({phase:"attempt"}));let O=Br(l,t),D=Hr(O.signal,c.signal),V;try{V=await Ce({...k,signal:D.signal},e.auth);}catch(x){V=R(xe(x));}finally{D.dispose(),O.cancel();}if(V.ok)return s(g({phase:"settled",ok:true,reason:"ok"})),V;let m=V.error,_=zr(m,F,{maxAttempts:f,rng:o,now:t.now(),aborted:c.signal?.aborted===true,...h!==void 0?{perCallMaxAttempts:h}:{},...e.errorPolicy!==void 0?{policy:e.errorPolicy}:{}}),C={ok:false,code:m.code,reason:_.reason,...m.httpStatus!==void 0?{httpStatus:m.httpStatus}:{},...m.requestId!==void 0?{requestId:m.requestId}:{}};if(!_.retry)return s(g({phase:"settled",...C})),R(m);if(s(g({phase:"retry",...C,delayMs:_.delayMs})),await i(_.delayMs,c.signal),c.signal?.aborted===true)return s(g({phase:"settled",...C,reason:"aborted"})),R(m);F+=1;}}n(p,"send");async function v(d){return P(d,await Mr(e.auth))}n(v,"authorize");async function*b(d,c,y){s(Object.freeze({call:d,phase:"stream.open",method:c.method,path:c.path,attempt:0}));try{yield*e.auth.transport.stream(c,y);}catch{yield Te({code:"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null,serverRequestId:null});}}return n(b,"stream"),Object.freeze({send:p,authorize:v,stream:b})}n(Se,"createRequestFunnel");function Ir(e,r){let t={};for(let[o,i]of Object.entries(e.headers??{}))o.toLowerCase()!==kr&&(t[o]=i);return r!==null&&(t["Idempotency-Key"]=r),{...e,headers:t}}n(Ir,"assembleHeaders");function Ar(){let e=0;return ()=>`efk_${Date.now().toString(36)}_${(e++).toString(36)}_${Math.random().toString(36).slice(2,12)}`}n(Ar,"defaultIdempotencyKeyFactory");var Pr=10;function zr(e,r,t){if(t.aborted)return {retry:false,reason:"aborted"};let o=jr(e);if(o==="quota")return {retry:false,reason:"daily-quota-exhausted"};if(o!=="burst"&&!Q(e.code))return {retry:false,reason:"terminal-code"};let i=o==="burst"?"burst-throttle":"retryable-code";if(n(()=>{if(t.policy===void 0)return false;try{return !t.policy.shouldRetry(e.code,r)}catch{return false}},"policyVetoedRetry")())return {retry:false,reason:"terminal-code"};let l=n(()=>{if(t.policy===void 0)return null;let p;try{p=t.policy.maxAttempts(e.code);}catch{return null}return typeof p!="number"||!Number.isFinite(p)?null:Math.max(1,Math.min(Pr,Math.floor(p)))},"policyCeiling"),u=t.perCallMaxAttempts??l()??t.maxAttempts;if(r+1>=u)return {retry:false,reason:"attempts-exhausted"};let s=Dr(e,t.now);return s!==null?s>Sr?{retry:false,reason:"server-reset-beyond-budget"}:{retry:true,reason:i,delayMs:s}:{retry:true,reason:i,delayMs:_e(r,t.rng)}}n(zr,"decideRetry");function jr(e){let r=e.code==="unknown"?Ee(Ur(e.raw)):e.code;return r==="quotaExceeded"?"quota":r==="rateLimited"||e.httpStatus===429?"burst":null}n(jr,"throttleKind");function Dr(e,r){let t=Nr(e.raw);if(t===null)return null;let o=t-r;return o>0?o:0}n(Dr,"retryOverrideMs");function Nr(e){for(let r of ke(e)){let t=r.resets_at,o=Lr(t);if(o!==null)return o}return null}n(Nr,"findResetsAt");function ke(e){if(!we(e))return [];let r=[e];for(let t of ["error","detail"]){let o=e[t];we(o)&&r.push(o);}return r}n(ke,"candidateScopes");function Lr(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 r=Date.parse(e);return Number.isFinite(r)?r:null}return null}n(Lr,"parseInstantMs");function Ur(e){for(let r of ke(e)){let t=r.code;if(typeof t=="string"&&t.length>0)return t}return null}n(Ur,"rawWireCode");function we(e){return typeof e=="object"&&e!==null}n(we,"isRecord");async function Mr(e){return e.mode==="anonymous"?{mode:"anonymous",publishableKey:e.publishableKey,userRef:e.userRef,...e.sessionId?{sessionId:e.sessionId}:{}}:{mode:"personalized",token:await e.identity.currentToken(),userRef:e.userRef,...e.sessionId?{sessionId:e.sessionId}:{}}}n(Mr,"resolveDeviceAuth");function Br(e,r){let t=new AbortController,o=r.setTimeout(()=>t.abort(),e);return {signal:t.signal,cancel:n(()=>r.clearTimeout(o),"cancel")}}n(Br,"boundedSignal");function Hr(e,r){let t=n(()=>{},"noop");if(!r)return {signal:e,dispose:t};let o=new AbortController;if(e.aborted||r.aborted)return o.abort(),{signal:o.signal,dispose:t};let i=n(()=>o.abort(),"onAbort");return e.addEventListener("abort",i,{once:true}),r.addEventListener("abort",i,{once:true}),{signal:o.signal,dispose:n(()=>{e.removeEventListener("abort",i),r.removeEventListener("abort",i);},"dispose")}}n(Hr,"mergeSignals");function qr(e,r,t){return e<=0||t?.aborted===true?Promise.resolve():new Promise(o=>{let i=r.setTimeout(()=>{t?.removeEventListener("abort",a),o();},e),a=n(()=>{r.clearTimeout(i),o();},"onAbort");t?.addEventListener("abort",a,{once:true});})}n(qr,"delayAbortable");var U=Object.freeze(["visit","join","summary","messages"]);function M(e){return typeof e=="string"&&U.includes(e)}n(M,"isVetVisitIntent");var Yr="/widget/v1/televet/handoffs",Wr="/widget/v1/televet/availability",Kr="/widget/v1/televet/chat-entry",Gr=/^[a-z0-9][a-z0-9_-]{0,39}$/,ze=/^[A-Za-z0-9_-]{22}$/,Fe="everfur_flow",Oe=32,Ve=128,Ie=64;function B(e){let r=e.httpStatus;switch(e.code){case "sessionRequired":return "sessionRequired";case "authExpired":case "authRejected":return "authRejected";case "sdkUpdateRequired":return "sdkUpdateRequired";case "validationFailed":return "invalidRequest";case "rateLimited":case "quotaExceeded":return "rateLimited";}return r===void 0?e.code==="internalError"?"network":"unknown":r===429?"rateLimited":r===404?"unavailable":r===403?"accessDenied":r===401?"authRejected":r===400||r===422?"invalidRequest":r>=500?"serverError":"unknown"}n(B,"vetVisitErrorReasonOf");function Ae(e){return R(w("validationFailed",{retryable:false,wireMessage:e}))}n(Ae,"invalid");function re(e){return R(w("internalError",{retryable:false,httpStatus:502,wireMessage:e}))}n(re,"unusable");function $r(e,r){let t={};e!==void 0&&(t.pet_ref=e);let o=r?.returnTo;if(o!=null){if(typeof o!="string"||!Gr.test(o))return {ok:false,message:"returnTo must be a registered return destination key"};t.return_to=o;}let i=r?.entry;if(i!=null){if(i!=="chat"||e===void 0)return {ok:false,message:"entry 'chat' needs the pet the chat is about"};t.entry=i;}let a=r?.visitRef,l=r?.intent,u=a!=null;if(u){let s=typeof a=="string"?a.trim():"";if(s.length<1||[...s].length>Ie)return {ok:false,message:`visitRef must be 1..${Ie} characters`};t.visit_ref=s;}if(l!=null){if(!u)return {ok:false,message:"intent needs the visitRef it opens"};if(!M(l))return {ok:false,message:`intent must be one of ${U.join(", ")}`};t.intent=l;}return {ok:true,body:t}}n($r,"handoffBody");function Qr(e){if(typeof e!="object"||e===null)return null;let{visit_ref:r,intent:t}=e;return typeof r!="string"||r.length===0||!M(t)?null:Object.freeze({visitRef:r,intent:t})}n(Qr,"parseVisitEcho");function je(e){let r=e.funnel??Se({auth:e.auth,...e.errorPolicy?{errorPolicy:e.errorPolicy}:{}}),t=e.telemetry,o=n(i=>(Pe(t,"televet.visit.handoff_failed",{reason:B(i)}),R(i)),"failed");return {async createHandoff(i,a){let l;if(i!=null){let f=typeof i=="string"?[...i].length:0;if(f<1||f>Ve)return o(w("validationFailed",{retryable:false,wireMessage:`pet_ref must be 1..${Ve} characters`}));l=i;}let u=$r(l,a);if(!u.ok){let f=Ae(u.message);return f.ok?f:o(f.error)}let s=u.body,p=await r.send("televet.visit.handoff",{method:"POST",path:Yr,body:s},{idempotent:false,maxAttempts:1});if(!p.ok)return o(p.error);let v=Jr(p.value),b=s.return_to!==void 0,d=b?p.value?.flow_id:void 0;if(b&&(typeof d!="string"||!ze.test(d))){let f=re("the handoff response carried no usable return flow id");return f.ok?f:o(f.error)}let c=s.visit_ref!==void 0,y=c?Qr(p.value?.visit):null;if(c&&y===null){let f=re("the handoff response did not confirm the visit it opens");return f.ok?f:o(f.error)}let h=v===null?null:Object.freeze({...v,...b?{flowId:d}:{},...y!==null?{visit:y}:{}});return h===null?o(w("internalError",{retryable:false,httpStatus:502,wireMessage:"the handoff response carried no usable visit url"})):(Pe(t,"televet.visit.handoff_created",{pet_scoped:s.pet_ref!==void 0}),Z(h))},async checkAvailability(i){if(typeof i!="string"||i.length>Oe)return Ae(`state must be at most ${Oe} characters`);let a=await r.send("televet.visit.availability",{method:"POST",path:Wr,body:{state:i}},{idempotent:false,maxAttempts:1});if(!a.ok)return R(a.error);let l=a.value?.available;return typeof l!="boolean"?re("the availability response carried no usable answer"):Z(Object.freeze({available:l}))},async chatEntryOpen(){try{let i=await r.send("televet.visit.chat_entry",{method:"GET",path:Kr},{maxAttempts:1});return i.ok&&i.value?.open===!0}catch{return false}}}}n(je,"createVetVisitController");function Xr(e){if(typeof e!="string")return null;let r=e.indexOf("#"),t=r<0?e:e.slice(0,r),o=t.indexOf("?");if(o<0)return null;let i=t.slice(o+1).split("&").filter(a=>a.startsWith(`${Fe}=`)).map(a=>a.slice(Fe.length+1));return i.length!==1||!ze.test(i[0]??"")?null:Object.freeze({flowId:i[0]})}n(Xr,"parseVetVisitReturn");function Jr(e){if(typeof e!="object"||e===null)return null;let{url:r,expires_at:t}=e;return typeof r!="string"||typeof t!="string"||t.length===0||!tt(r)?null:Object.freeze({url:r,expiresAt:t})}n(Jr,"parseHandoff");var Zr=new Set(["localhost","127.0.0.1","[::1]"]),et=/^([A-Za-z][A-Za-z0-9+.-]*):\/\/([^/?#]*)/,rt=/[\s\u0000-\u001f\u007f]/;function tt(e){if(rt.test(e))return false;let r=et.exec(e);if(r===null)return false;let t=(r[1]??"").toLowerCase(),o=r[2]??"";if(o.length===0||o.includes("@"))return false;let i=o.replace(/:\d+$/,"").toLowerCase(),a=t==="https",l=t==="http"&&Zr.has(i);if(!a&&!l)return false;let u=e.indexOf("#");if(u<0)return false;let s=e.slice(u);return s.startsWith("#h=")&&s.length>3}n(tt,"isOpenableVisitUrl");function Pe(e,r,t){if(e)try{e.track(r,t);}catch{}}n(Pe,"safeTrack");var De=Symbol.for("@everfur/sdk#EverfurContext@v1"),Ne=globalThis,Le=Ne[De]??(Ne[De]=react.createContext(null));Le.displayName??="EverfurContext";function H(){let e=react.useContext(Le);if(e===null)throw new A("not-initialized","Everfur hooks must be called inside <EverfurProvider>. Wrap your tree once, high.");return e}n(H,"useEverfurContext");var it=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 at(e){return it[e]}n(at,"requires");function Ue(e,r,t){let o=at(e),i=new Map;for(let u of r)i.set(u.resource,u);if(t?.isPending===true&&o.some(u=>!i.has(u)))return te({name:e,enabled:false,isPending:true,limits:{}});let a=st(o,i);return o.filter(u=>i.get(u)?.granted!==true).length===0?te({name:e,enabled:true,isPending:false,limits:a}):te({name:e,enabled:false,isPending:false,limits:a,disabled:lt(o,i)})}n(Ue,"decideCapability");function st(e,r){let t={};for(let o of e){let i=r.get(o)?.limits;if(i)for(let[a,l]of Object.entries(i)){let u=t[a];t[a]=u===void 0?l:Math.min(u,l);}}return t}n(st,"mergeLimits");function lt(e,r){for(let t of e){let o=r.get(t)?.disabled;if(o)return Object.freeze({reason:o.reason,level:o.level,recoverable:o.recoverable})}return Object.freeze({reason:J("accessDenied"),level:"user_entitlement",recoverable:false})}n(lt,"disabledFor");function te(e){let r={name:e.name,enabled:e.enabled,isPending:e.isPending,limits:Object.freeze({...e.limits})};return e.disabled!==void 0&&(r.disabled=e.disabled),Object.freeze(r)}n(te,"freezeDecision");function Me(e){let{runtime:r}=H(),t=r.entitlements,o=react.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getSnapshot);return react.useMemo(()=>Ue(e,o.decisions,{isPending:o.isPending}),[e,o])}n(Me,"useCapability");var He=Object.freeze({status:"idle",error:null,errorReason:null});function ft(e,r,t){let{usState:o,chat:i,scope:a}=t,l=r&&(o!==null||i),u=`${o??""}|${i?"chat":""}`,[s,p]=react.useState(null);if(react.useEffect(()=>{if(!l)return;let b=true,d=e.current;return p(null),n(async()=>{try{if(i&&!(d.chatEntryOpen&&await d.chatEntryOpen()))return !1;if(o===null)return !0;if(!d.checkAvailability)return !1;let y=await d.checkAvailability(o);return y.ok&&y.value.available}catch{return false}},"ask")().then(y=>{b&&p({key:u,open:y});}),()=>{b=false;}},[l,u,o,i,a,e]),!l)return null;let v=s!==null&&s.key===u;return {open:v&&s.open,pending:!v}}n(ft,"usePreflight");var pt=Object.freeze({status:"opening",error:null,errorReason:null});function Ye(e,r={}){let{runtime:t,userRef:o,scopeEpoch:i}=H(),a=Me("televet"),l=a.enabled&&o!==null,u=r.usState??null,s=r.entry==="chat",p=r.petRef??null,v=react.useMemo(()=>{if(r.controller)return r.controller;let{services:m}=t.registry;return je({auth:m.authFor(o),telemetry:m.telemetry,...m.errorPolicy?{errorPolicy:m.errorPolicy}:{}})},[t,o,i,r.controller]),b=react.useRef(v);b.current=v;let d=react.useMemo(()=>({runtime:t,userRef:o,scopeEpoch:i}),[t,o,i]),c=ft(b,l,{usState:u,chat:s,scope:d}),y=l&&(c===null||c.open)&&(!s||p!==null),h=r.returnTo??null,[f,S]=react.useState(He),E=react.useRef(null),k=react.useRef({runtime:t,userRef:o,scopeEpoch:i});k.current={runtime:t,userRef:o,scopeEpoch:i};let F=react.useRef(v);F.current=v;let g=react.useRef(y);g.current=y;let O=react.useCallback((m,_)=>{if(E.current)return E.current;let C=n((T,I)=>(S({status:T==="cancelled"?"idle":"error",error:I,errorReason:T==="cancelled"?null:T}),Object.freeze({opened:false,reason:T,error:I})),"fail");if(!g.current)return Promise.resolve(C("unavailable",null));let x=e.prepare();if(!x.ok)return Promise.resolve(C(x.reason,null));let W=k.current,de=F.current;S(pt);let K=(async()=>{let T,I={...h!==null?{returnTo:h}:{},...s?{entry:"chat"}:{},..._!==null?{visitRef:_.visitRef}:{},..._!==null&&_.intent!==null&&_.intent!==void 0?{intent:_.intent}:{}},ce=Object.keys(I).length===0?void 0:I,fe=m===void 0?p:m;try{T=await(ce===void 0?de.createHandoff(fe):de.createHandoff(fe,ce));}catch{return e.abandon(x.value),C("unknown",null)}let G=k.current;if(G.runtime!==W.runtime||G.userRef!==W.userRef||G.scopeEpoch!==W.scopeEpoch)return e.abandon(x.value),C("cancelled",null);if(!T.ok)return e.abandon(x.value),C(B(T.error),T.error);let pe=await e.finish(x.value,T.value);return pe!==null?C(pe,null):(S(He),Object.freeze(T.value.flowId===void 0?{opened:true}:{opened:true,flowId:T.value.flowId}))})().finally(()=>{E.current===K&&(E.current=null);});return E.current=K,K},[e,p,h,s]),D=react.useCallback(m=>O(m,null),[O]),V=react.useCallback((m,_)=>O(void 0,{visitRef:m,intent:_??null}),[O]);return {available:y,isPending:a.isPending||(c?.pending??false),status:f.status,error:f.error,errorReason:f.errorReason,open:D,openVisit:V}}n(Ye,"useVetVisitWith");var vt=n(e=>reactNative.Linking.openURL(e),"defaultOpenUrl");function oe(e={}){let{openUrl:r,...t}=e,o=react.useMemo(()=>{let i=r??vt;return {prepare:n(()=>({ok:true,value:null}),"prepare"),async finish(a,l){try{return await i(l.url),null}catch{return "openFailed"}},abandon:n(()=>{},"abandon")}},[r]);return Ye(o,t)}n(oe,"useVetVisit");function se(e){if(e!==null&&typeof e=="object"&&!Object.isFrozen(e)){Object.freeze(e);for(let r of Object.keys(e))se(e[r]);}return e}n(se,"deepFreeze");var bt=Object.freeze({content:0,heading:2,control:1.8,compact:1.5,badge:1.3}),Ke={xs:4,sm:8,md:12,lg:16,xl:24,xxl:32},Ge={tile:5,xs:6,sm:10,md:14,lg:20,xl:28,pill:500},We={nano:8,small:9,micro:10,tiny:11,caption:12,bodyTight:13,body:14,subtitle:16,heading:18,verdict:24},Et={tight:1.15,snug:1.3,normal:1.4,relaxed:1.55},gt={regular:"400",medium:"500",bold:"700"},ht={eyebrow:1,monoWide:.9,headerBrand:-0.42,tight:-0.35},_t=0,q="System",Y="monospace",Rt=["content","heading","control","compact","badge"];function Tt(e){let r={};for(let t of Rt)r[t]=e;return r}n(Tt,"authoredTierSizes");function $e(){return {family:q,mono:Y,fontUrl:null,families:{regular:q,medium:q,bold:q,mono:Y,monoMedium:Y,monoBold:Y},namedFaces:{regular:false,medium:false,bold:false,mono:false,monoMedium:false,monoBold:false},fontUrls:{},size:We,tierSizes:Tt(We),lineHeight:Et,weight:gt,letterSpacing:ht,scale:1,maxScale:_t,scaleCaps:bt}}n($e,"baseType");var Qe={},ie=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 Xe={duration:{instant:80,fast:140,normal:220,slow:320},spring:{gentle:{damping:18,stiffness:200}},easing:{standard:ae(ie.standard),emphasized:ae(ie.emphasized),exit:ae(ie.exit)},reducedMotion:false},Ct={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)"},Je=se({brightness:"light",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:Ct,space:Ke,radius:Ge,type:$e(),motion:Xe,slots:Qe}),xt={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)"};se({brightness:"dark",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:xt,space:Ke,radius:Ge,type:$e(),motion:Xe,slots:Qe});var Ze=Symbol.for("@everfur/sdk#EverfurThemeContext@v1"),er=globalThis,le=er[Ze]??(er[Ze]=react.createContext(Je));le.displayName??="EverfurThemeContext";function j(){return react.useContext(le)}n(j,"useEverfurTheme");function Vt(e,r){let t=e.scaleCaps[r];return t>0?t:void 0}n(Vt,"tierMultiplier");function tr({tier:e="content",...r}){let{type:t}=j(),o=Vt(t,e);return react.createElement(reactNative.Text,o===void 0?r:{maxFontSizeMultiplier:o,...r})}n(tr,"Text");react.forwardRef(n(function(r,t){return react.createElement(reactNative.TextInput,{...r,...t===null?{}:{ref:t}})},"TextInput"));function nr(e,r){if(e===void 0)return {};let t={};return e.backgroundColor!==void 0&&(t.backgroundColor=e.backgroundColor),e.borderColor!==void 0&&(t.borderColor=e.borderColor,t.borderWidth=r??1),e.borderRadius!==void 0&&(t.borderRadius=e.borderRadius),t}n(nr,"slotBox");function or(e){return e?.textColor===void 0?{}:{color:e.textColor}}n(or,"slotText");var It=Object.freeze({regular:"regular",medium:"medium",bold:"bold",mono:"regular",monoMedium:"medium",monoBold:"bold"});function ir(e,r){let t=e.type,o=t.families[r];return r==="mono"||t.namedFaces[r]?{fontFamily:o}:{fontFamily:o,fontWeight:t.weight[It[r]]}}n(ir,"face");function ar(e){let r=globalThis.console;try{r?.error?.("[everfur] A host callback threw; the SDK ignored it.",e);}catch{}}n(ar,"reportHostFailure");function At(e){return (typeof e=="object"||typeof e=="function")&&e!==null&&typeof e.then=="function"}n(At,"isThenable");function ue(e,...r){if(typeof e=="function")try{let t=e(...r);return At(t)&&Promise.resolve(t).then(void 0,ar),t}catch(t){ar(t);return}}n(ue,"callHost");var sr=Object.freeze({visitButton:"Talk to a vet"});var lr=44,Nt=.6;function Lt(e){let{petRef:r,label:t,openUrl:o,onOpened:i,onError:a,style:l,labelStyle:u,controller:s,returnTo:p,usState:v,entry:b,visitRef:d,intent:c}=e,y=oe({...p!==void 0?{returnTo:p}:{},...v!==void 0?{usState:v}:{},...b!==void 0?{entry:b}:{},...r!==void 0?{petRef:r}:{},...o!==void 0?{openUrl:o}:{},...s!==void 0?{controller:s}:{}}),h=j(),f=react.useMemo(()=>Ut(h),[h]),S=react.useRef(false);if(!y.available)return null;let E=y.status==="opening",k=t??sr.visitButton;return jsxRuntime.jsx(reactNative.Pressable,{onPress:n(()=>{E||S.current||(S.current=true,(d==null?y.open():y.openVisit(d,c??null)).then(g=>{g.opened?ue(i,g.flowId??null):g.reason!=="cancelled"&&ue(a,g.reason,g.error);}).finally(()=>{S.current=false;}));},"onPress"),accessibilityRole:"button",accessibilityLabel:k,accessibilityState:{busy:E,disabled:E},style:[f.button,E?f.busy:null,l],children:jsxRuntime.jsx(tr,{style:[f.label,u],children:k})})}n(Lt,"VetVisitButton");function Ut(e){let{color:r,space:t,radius:o,type:i,slots:a}=e;return reactNative.StyleSheet.create({button:{minHeight:lr,minWidth:lr,alignItems:"center",justifyContent:"center",paddingHorizontal:t.xl,paddingVertical:t.sm,borderRadius:o.pill,backgroundColor:r.primary,...nr(a.vetVisitButton)},busy:{opacity:Nt},label:{...ir(e,"medium"),color:r.onPrimary,fontSize:i.size.body,lineHeight:i.size.body*i.lineHeight.snug,...or(a.vetVisitButton)}})}n(Ut,"makeStyles");exports.VET_VISIT_INTENTS=U;exports.VetVisitButton=Lt;exports.isVetVisitIntent=M;exports.parseVetVisitReturn=Xr;exports.useVetVisit=oe;exports.vetVisitErrorReasonOf=B;
@@ -0,0 +1,60 @@
1
+ import { U as UseVetVisitOptions, a as UseVetVisitState, V as VetVisitEntry, b as VetVisitErrorReason, c as VetVisitController } from '../useVetVisit-Bc84hWUU.cjs';
2
+ export { d as VetVisitAvailability, e as VetVisitHandoff, f as VetVisitHandoffOptions, g as VetVisitHandoffVisit, h as VetVisitOpenResult, i as VetVisitReturn, j as VetVisitStatus, p as parseVetVisitReturn, v as vetVisitErrorReasonOf } from '../useVetVisit-Bc84hWUU.cjs';
3
+ import { ReactNode } from 'react';
4
+ import { StyleProp, ViewStyle, TextStyle } from 'react-native';
5
+ import { E as EverfurError } from '../EverfurResult-DN9pL2Ab.cjs';
6
+ export { a as EverfurErrorCategory, b as EverfurErrorCode, c as EverfurResult } from '../EverfurResult-DN9pL2Ab.cjs';
7
+ import { P as PetRef } from '../ids-B2GAAifq.cjs';
8
+ export { B as Brand, _ as __brand } from '../ids-B2GAAifq.cjs';
9
+ import { V as VetVisitIntent } from '../visitIntent-D7_yVp1I.cjs';
10
+ export { a as VET_VISIT_INTENTS, i as isVetVisitIntent } from '../visitIntent-D7_yVp1I.cjs';
11
+
12
+ interface UseNativeVetVisitOptions extends UseVetVisitOptions {
13
+ /**
14
+ * Opens the minted visit URL. Defaults to `Linking.openURL`. Receives a single-use URL: open it once, now,
15
+ * and never log, store or share it.
16
+ */
17
+ readonly openUrl?: ((url: string) => Promise<unknown>) | undefined;
18
+ }
19
+ /**
20
+ * The vet visit hook for a React Native app. `available` is false (render nothing) unless Everfur grants vet
21
+ * visits to this signed-in user. Requires a signed session: pass `user` with a `getToken` backed by your
22
+ * server's session mint.
23
+ */
24
+ declare function useVetVisit(opts?: UseNativeVetVisitOptions): UseVetVisitState;
25
+
26
+ interface VetVisitButtonProps {
27
+ /** The partner's pet reference to scope the visit to. Optional. */
28
+ readonly petRef?: PetRef | null | undefined;
29
+ /** The button label. Defaults to Everfur's label. */
30
+ readonly label?: string | undefined;
31
+ /** Opens the minted URL. Defaults to `Linking.openURL` (the system browser). */
32
+ readonly openUrl?: ((url: string) => Promise<unknown>) | undefined;
33
+ /** Called after the URL was handed to the browser, with the return flow id when `returnTo` was given. */
34
+ readonly onOpened?: ((flowId: string | null) => void) | undefined;
35
+ /** The KEY of a return destination your tenant registered with Everfur; `onOpened` then receives the flow id. */
36
+ readonly returnTo?: string | null | undefined;
37
+ /** The user's US state. When set, the button renders only once Everfur confirms a visit is available there. */
38
+ readonly usState?: string | null | undefined;
39
+ /** `'chat'` for the entry inside Chat: renders only while Everfur has it switched on, and needs `petRef`. */
40
+ readonly entry?: VetVisitEntry | null | undefined;
41
+ /**
42
+ * TV-01. A visit this member already has. The button then OPENS that visit rather than starting a booking:
43
+ * put the `visitRef` a tapped push carries here. Without it the button books, exactly as before.
44
+ */
45
+ readonly visitRef?: string | null | undefined;
46
+ /** What to open for `visitRef`: `visit` (the default), `join`, `summary` or `messages`. */
47
+ readonly intent?: VetVisitIntent | null | undefined;
48
+ /** Called when the visit could not be opened. `error` is null for a device-side failure. */
49
+ readonly onError?: ((reason: VetVisitErrorReason, error: EverfurError | null) => void) | undefined;
50
+ /** Merged over the button's own style. */
51
+ readonly style?: StyleProp<ViewStyle>;
52
+ /** Merged over the label's own style. */
53
+ readonly labelStyle?: StyleProp<TextStyle>;
54
+ /** Host/test seam: inject a controller instead of building one from the provider's session. */
55
+ readonly controller?: VetVisitController | undefined;
56
+ }
57
+ /** Opens the hosted Everfur vet visit in the browser. Renders nothing unless vet visits are granted. */
58
+ declare function VetVisitButton(props: VetVisitButtonProps): ReactNode;
59
+
60
+ export { EverfurError, PetRef, type UseNativeVetVisitOptions, UseVetVisitOptions, UseVetVisitState, VetVisitButton, type VetVisitButtonProps, VetVisitController, VetVisitEntry, VetVisitErrorReason, VetVisitIntent, useVetVisit };
@@ -0,0 +1,60 @@
1
+ import { U as UseVetVisitOptions, a as UseVetVisitState, V as VetVisitEntry, b as VetVisitErrorReason, c as VetVisitController } from '../useVetVisit-CjmMa896.js';
2
+ export { d as VetVisitAvailability, e as VetVisitHandoff, f as VetVisitHandoffOptions, g as VetVisitHandoffVisit, h as VetVisitOpenResult, i as VetVisitReturn, j as VetVisitStatus, p as parseVetVisitReturn, v as vetVisitErrorReasonOf } from '../useVetVisit-CjmMa896.js';
3
+ import { ReactNode } from 'react';
4
+ import { StyleProp, ViewStyle, TextStyle } from 'react-native';
5
+ import { E as EverfurError } from '../EverfurResult-DN9pL2Ab.js';
6
+ export { a as EverfurErrorCategory, b as EverfurErrorCode, c as EverfurResult } from '../EverfurResult-DN9pL2Ab.js';
7
+ import { P as PetRef } from '../ids-B2GAAifq.js';
8
+ export { B as Brand, _ as __brand } from '../ids-B2GAAifq.js';
9
+ import { V as VetVisitIntent } from '../visitIntent-D7_yVp1I.js';
10
+ export { a as VET_VISIT_INTENTS, i as isVetVisitIntent } from '../visitIntent-D7_yVp1I.js';
11
+
12
+ interface UseNativeVetVisitOptions extends UseVetVisitOptions {
13
+ /**
14
+ * Opens the minted visit URL. Defaults to `Linking.openURL`. Receives a single-use URL: open it once, now,
15
+ * and never log, store or share it.
16
+ */
17
+ readonly openUrl?: ((url: string) => Promise<unknown>) | undefined;
18
+ }
19
+ /**
20
+ * The vet visit hook for a React Native app. `available` is false (render nothing) unless Everfur grants vet
21
+ * visits to this signed-in user. Requires a signed session: pass `user` with a `getToken` backed by your
22
+ * server's session mint.
23
+ */
24
+ declare function useVetVisit(opts?: UseNativeVetVisitOptions): UseVetVisitState;
25
+
26
+ interface VetVisitButtonProps {
27
+ /** The partner's pet reference to scope the visit to. Optional. */
28
+ readonly petRef?: PetRef | null | undefined;
29
+ /** The button label. Defaults to Everfur's label. */
30
+ readonly label?: string | undefined;
31
+ /** Opens the minted URL. Defaults to `Linking.openURL` (the system browser). */
32
+ readonly openUrl?: ((url: string) => Promise<unknown>) | undefined;
33
+ /** Called after the URL was handed to the browser, with the return flow id when `returnTo` was given. */
34
+ readonly onOpened?: ((flowId: string | null) => void) | undefined;
35
+ /** The KEY of a return destination your tenant registered with Everfur; `onOpened` then receives the flow id. */
36
+ readonly returnTo?: string | null | undefined;
37
+ /** The user's US state. When set, the button renders only once Everfur confirms a visit is available there. */
38
+ readonly usState?: string | null | undefined;
39
+ /** `'chat'` for the entry inside Chat: renders only while Everfur has it switched on, and needs `petRef`. */
40
+ readonly entry?: VetVisitEntry | null | undefined;
41
+ /**
42
+ * TV-01. A visit this member already has. The button then OPENS that visit rather than starting a booking:
43
+ * put the `visitRef` a tapped push carries here. Without it the button books, exactly as before.
44
+ */
45
+ readonly visitRef?: string | null | undefined;
46
+ /** What to open for `visitRef`: `visit` (the default), `join`, `summary` or `messages`. */
47
+ readonly intent?: VetVisitIntent | null | undefined;
48
+ /** Called when the visit could not be opened. `error` is null for a device-side failure. */
49
+ readonly onError?: ((reason: VetVisitErrorReason, error: EverfurError | null) => void) | undefined;
50
+ /** Merged over the button's own style. */
51
+ readonly style?: StyleProp<ViewStyle>;
52
+ /** Merged over the label's own style. */
53
+ readonly labelStyle?: StyleProp<TextStyle>;
54
+ /** Host/test seam: inject a controller instead of building one from the provider's session. */
55
+ readonly controller?: VetVisitController | undefined;
56
+ }
57
+ /** Opens the hosted Everfur vet visit in the browser. Renders nothing unless vet visits are granted. */
58
+ declare function VetVisitButton(props: VetVisitButtonProps): ReactNode;
59
+
60
+ export { EverfurError, PetRef, type UseNativeVetVisitOptions, UseVetVisitOptions, UseVetVisitState, VetVisitButton, type VetVisitButtonProps, VetVisitController, VetVisitEntry, VetVisitErrorReason, VetVisitIntent, useVetVisit };
@@ -0,0 +1 @@
1
+ import {createContext,forwardRef,useMemo,createElement,useRef,useContext,useSyncExternalStore,useState,useEffect,useCallback}from'react';import {Linking,TextInput,Pressable,StyleSheet,Text}from'react-native';import {jsx}from'react/jsx-runtime';var dr=Object.defineProperty;var n=(e,r)=>dr(e,"name",{value:r,configurable:true});var $=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($.map(e=>e.wireCode));var cr=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"}),me=Object.freeze($.map(e=>Object.freeze({wireCode:e.wireCode,envelope:e.envelope,retryable:e.retryable,normalized:cr[e.wireCode]}))),fr=new Map(me.map(e=>[e.envelope+e.wireCode.toUpperCase(),e])),pr=Object.freeze(["http_envelope",...[...new Set(me.map(e=>e.envelope))].filter(e=>e!=="http_envelope").sort()]);function N(e,r){if(typeof e!="string")return;let t=e.trim().toUpperCase();if(t.length!==0)for(let o of [r??"http_envelope",...pr]){let i=fr.get(o+t);if(i)return i}}n(N,"contractErrorFor");function yr(e){return e.envelope==="sse_frame"?`/errors#sse-${e.wireCode}`:e.envelope==="oauth_error"?`/errors#oauth-${e.wireCode}`:`/errors#${e.wireCode}`}n(yr,"contractDocUrl");function ve(e){return null}n(ve,"publishedDocUrl");var mr=Object.freeze({authExpired:"authentication",authRejected:"authentication",sessionRequired:"authentication",accessDenied:"authorization",paymentRequired:"entitlement",quotaExceeded:"rateLimit",rateLimited:"rateLimit",validationFailed:"invalidRequest",sdkUpdateRequired:"invalidRequest",conversationNotFound:"notFound",petNotFound:"notFound",resourceNotFound:"notFound",conflict:"conflict",idempotencyConflict:"conflict",idempotencyInFlight:"conflict",streamTimeout:"connection",streamIncomplete:"connection",upstreamLlmTimeout:"connection",serviceUnavailable:"connection",internalError:"server",notImplemented:"server",mediaUploadFailed:"media",moderationBlocked:"policy",unknown:"unknown"});function be(e){return mr[e]}n(be,"categoryFor");function Ee(e){let r=N(e);if(r)return r.normalized;let t=(e??"").trim().toUpperCase(),o=t.replace(/[^A-Z0-9]/g,"");if(o==="AUTHREJECTED")return "authRejected";if(t.startsWith("AUTH"))return "authExpired";switch(o){case "DAILYQUOTAEXCEEDED":case "QUOTAEXCEEDED":return "quotaExceeded";case "RATELIMITED":case "TOOMANYREQUESTS":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(Ee,"fromWire");var vr=new Set(["streamTimeout","rateLimited","internalError","upstreamLlmTimeout","streamIncomplete"]);function Q(e){return vr.has(e)}n(Q,"isAutoRetryable");var br=new Set(["serviceUnavailable","conflict","idempotencyInFlight"]);function ge(e){return Q(e)||br.has(e)}n(ge,"isRetryableCode");var Er=500,X=8e3,he=4;function _e(e,r=Math.random){let t=Math.max(0,e),o=Math.min(Er*2**t,X);return Math.floor(r()*o)}n(_e,"backoffDelayMs");var gr=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 J(e){return gr[e]}n(J,"userFacingError");function Re(e,r,t){Object.defineProperty(e,r,{value:t,enumerable:false,writable:false,configurable:false});}n(Re,"defineHidden");var hr=/^[a-z][a-z0-9_]{0,63}$/;function w(e,r){let t=N(r?.wireCode,r?.wireEnvelope),o={code:e,category:be(e),retryable:r?.retryable??ge(e),displayMessage:J(e)};if(r?.httpStatus!==void 0&&(o.httpStatus=r.httpStatus),r?.requestId&&(o.requestId=r.requestId),typeof r?.reasonCode=="string"&&hr.test(r.reasonCode)&&(o.reasonCode=r.reasonCode),t);return r?.wireMessage&&Re(o,"wireMessage",r.wireMessage),r?.raw!==void 0&&r.raw!==null&&Re(o,"raw",r.raw),Object.freeze(o)}n(w,"makeEverfurError");function Z(e,r){return Object.freeze(r===void 0?{ok:true,value:e}:{ok:true,value:e,warning:r})}n(Z,"ok");function R(e){return Object.freeze({ok:false,error:e})}n(R,"err");var L=class L extends Error{constructor(r,t){super(t),this.name="EverfurConfigError",this.kind=r,Object.setPrototypeOf(this,L.prototype);}};n(L,"EverfurConfigError");var A=L;function Te(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(Te,"errorFrame");function Tr(e){let r={};return e.mode==="personalized"?r.authorization=`Bearer ${e.token}`:r["x-everfur-partner-key"]=e.publishableKey,e.userRef&&(r["x-everfur-user-ref"]=e.userRef),e.sessionId&&(r["x-everfur-session-id"]=e.sessionId),r}n(Tr,"authHeaders");function P(e,r){return {...e,headers:{...Cr(e.headers),...Tr(r)}}}n(P,"withAuthHeaders");function Cr(e){if(!e)return {};let r={};for(let[t,o]of Object.entries(e)){let i=t.toLowerCase();i==="authorization"||i==="x-everfur-partner-key"||(r[t]=o);}return r}n(Cr,"stripAuthHeaders");async function Ce(e,r){if(r.mode==="anonymous")return r.transport.request(P(e,{mode:"anonymous",publishableKey:r.publishableKey,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));let t;try{t=await r.identity.currentToken();}catch{return R(ee())}let o=await r.transport.request(P(e,{mode:"personalized",token:t,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));if(o.ok||o.error.httpStatus!==401)return o;let i;try{i=await r.identity.currentToken({forceRefresh:!0});}catch{return R(ee())}let a=await r.transport.request(P(e,{mode:"personalized",token:i,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));return !a.ok&&a.error.httpStatus===401?R(ee(a.error.httpStatus)):a}n(Ce,"authedSend");function ee(e){return w("authRejected",{retryable:false,...e!==void 0?{httpStatus:e}:{}})}n(ee,"authRejectedError");function xe(e){return w("internalError",{retryable:true,wireMessage:xr(e)})}n(xe,"networkError");function xr(e){return e instanceof Error?e.message:typeof e=="string"?e:"network request failed"}n(xr,"describeCause");var wr=3e4,Sr=X*2,kr="idempotency-key",Fr=new Set(["POST","PUT","PATCH","DELETE"]),Or=Object.freeze({onEvent(){}}),Vr=Object.freeze({setTimeout:n((e,r)=>setTimeout(e,r),"setTimeout"),clearTimeout:n(e=>clearTimeout(e),"clearTimeout"),now:n(()=>Date.now(),"now")});function Se(e){let r=e.observer??Or,t=e.timers??Vr,o=e.rng??Math.random,i=e.sleep??((d,c)=>qr(d,t,c)),a=e.maxAttempts??he,l=e.unaryTimeoutMs??wr,u=e.newIdempotencyKey??Ar(),s=n(d=>{try{r.onEvent(d);}catch{}},"emit");async function p(d,c,y){let h=y?.maxAttempts,f=Math.max(1,h??a),E=y?.idempotent??Fr.has(c.method)?u():null,k=Ir(c,E),F=0;for(;;){let g=n(x=>Object.freeze({call:d,method:c.method,path:c.path,attempt:F,...E?{idempotencyKey:E}:{},...x}),"stamp");s(g({phase:"attempt"}));let O=Br(l,t),D=Hr(O.signal,c.signal),V;try{V=await Ce({...k,signal:D.signal},e.auth);}catch(x){V=R(xe(x));}finally{D.dispose(),O.cancel();}if(V.ok)return s(g({phase:"settled",ok:true,reason:"ok"})),V;let m=V.error,_=zr(m,F,{maxAttempts:f,rng:o,now:t.now(),aborted:c.signal?.aborted===true,...h!==void 0?{perCallMaxAttempts:h}:{},...e.errorPolicy!==void 0?{policy:e.errorPolicy}:{}}),C={ok:false,code:m.code,reason:_.reason,...m.httpStatus!==void 0?{httpStatus:m.httpStatus}:{},...m.requestId!==void 0?{requestId:m.requestId}:{}};if(!_.retry)return s(g({phase:"settled",...C})),R(m);if(s(g({phase:"retry",...C,delayMs:_.delayMs})),await i(_.delayMs,c.signal),c.signal?.aborted===true)return s(g({phase:"settled",...C,reason:"aborted"})),R(m);F+=1;}}n(p,"send");async function v(d){return P(d,await Mr(e.auth))}n(v,"authorize");async function*b(d,c,y){s(Object.freeze({call:d,phase:"stream.open",method:c.method,path:c.path,attempt:0}));try{yield*e.auth.transport.stream(c,y);}catch{yield Te({code:"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null,serverRequestId:null});}}return n(b,"stream"),Object.freeze({send:p,authorize:v,stream:b})}n(Se,"createRequestFunnel");function Ir(e,r){let t={};for(let[o,i]of Object.entries(e.headers??{}))o.toLowerCase()!==kr&&(t[o]=i);return r!==null&&(t["Idempotency-Key"]=r),{...e,headers:t}}n(Ir,"assembleHeaders");function Ar(){let e=0;return ()=>`efk_${Date.now().toString(36)}_${(e++).toString(36)}_${Math.random().toString(36).slice(2,12)}`}n(Ar,"defaultIdempotencyKeyFactory");var Pr=10;function zr(e,r,t){if(t.aborted)return {retry:false,reason:"aborted"};let o=jr(e);if(o==="quota")return {retry:false,reason:"daily-quota-exhausted"};if(o!=="burst"&&!Q(e.code))return {retry:false,reason:"terminal-code"};let i=o==="burst"?"burst-throttle":"retryable-code";if(n(()=>{if(t.policy===void 0)return false;try{return !t.policy.shouldRetry(e.code,r)}catch{return false}},"policyVetoedRetry")())return {retry:false,reason:"terminal-code"};let l=n(()=>{if(t.policy===void 0)return null;let p;try{p=t.policy.maxAttempts(e.code);}catch{return null}return typeof p!="number"||!Number.isFinite(p)?null:Math.max(1,Math.min(Pr,Math.floor(p)))},"policyCeiling"),u=t.perCallMaxAttempts??l()??t.maxAttempts;if(r+1>=u)return {retry:false,reason:"attempts-exhausted"};let s=Dr(e,t.now);return s!==null?s>Sr?{retry:false,reason:"server-reset-beyond-budget"}:{retry:true,reason:i,delayMs:s}:{retry:true,reason:i,delayMs:_e(r,t.rng)}}n(zr,"decideRetry");function jr(e){let r=e.code==="unknown"?Ee(Ur(e.raw)):e.code;return r==="quotaExceeded"?"quota":r==="rateLimited"||e.httpStatus===429?"burst":null}n(jr,"throttleKind");function Dr(e,r){let t=Nr(e.raw);if(t===null)return null;let o=t-r;return o>0?o:0}n(Dr,"retryOverrideMs");function Nr(e){for(let r of ke(e)){let t=r.resets_at,o=Lr(t);if(o!==null)return o}return null}n(Nr,"findResetsAt");function ke(e){if(!we(e))return [];let r=[e];for(let t of ["error","detail"]){let o=e[t];we(o)&&r.push(o);}return r}n(ke,"candidateScopes");function Lr(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 r=Date.parse(e);return Number.isFinite(r)?r:null}return null}n(Lr,"parseInstantMs");function Ur(e){for(let r of ke(e)){let t=r.code;if(typeof t=="string"&&t.length>0)return t}return null}n(Ur,"rawWireCode");function we(e){return typeof e=="object"&&e!==null}n(we,"isRecord");async function Mr(e){return e.mode==="anonymous"?{mode:"anonymous",publishableKey:e.publishableKey,userRef:e.userRef,...e.sessionId?{sessionId:e.sessionId}:{}}:{mode:"personalized",token:await e.identity.currentToken(),userRef:e.userRef,...e.sessionId?{sessionId:e.sessionId}:{}}}n(Mr,"resolveDeviceAuth");function Br(e,r){let t=new AbortController,o=r.setTimeout(()=>t.abort(),e);return {signal:t.signal,cancel:n(()=>r.clearTimeout(o),"cancel")}}n(Br,"boundedSignal");function Hr(e,r){let t=n(()=>{},"noop");if(!r)return {signal:e,dispose:t};let o=new AbortController;if(e.aborted||r.aborted)return o.abort(),{signal:o.signal,dispose:t};let i=n(()=>o.abort(),"onAbort");return e.addEventListener("abort",i,{once:true}),r.addEventListener("abort",i,{once:true}),{signal:o.signal,dispose:n(()=>{e.removeEventListener("abort",i),r.removeEventListener("abort",i);},"dispose")}}n(Hr,"mergeSignals");function qr(e,r,t){return e<=0||t?.aborted===true?Promise.resolve():new Promise(o=>{let i=r.setTimeout(()=>{t?.removeEventListener("abort",a),o();},e),a=n(()=>{r.clearTimeout(i),o();},"onAbort");t?.addEventListener("abort",a,{once:true});})}n(qr,"delayAbortable");var U=Object.freeze(["visit","join","summary","messages"]);function M(e){return typeof e=="string"&&U.includes(e)}n(M,"isVetVisitIntent");var Yr="/widget/v1/televet/handoffs",Wr="/widget/v1/televet/availability",Kr="/widget/v1/televet/chat-entry",Gr=/^[a-z0-9][a-z0-9_-]{0,39}$/,ze=/^[A-Za-z0-9_-]{22}$/,Fe="everfur_flow",Oe=32,Ve=128,Ie=64;function B(e){let r=e.httpStatus;switch(e.code){case "sessionRequired":return "sessionRequired";case "authExpired":case "authRejected":return "authRejected";case "sdkUpdateRequired":return "sdkUpdateRequired";case "validationFailed":return "invalidRequest";case "rateLimited":case "quotaExceeded":return "rateLimited";}return r===void 0?e.code==="internalError"?"network":"unknown":r===429?"rateLimited":r===404?"unavailable":r===403?"accessDenied":r===401?"authRejected":r===400||r===422?"invalidRequest":r>=500?"serverError":"unknown"}n(B,"vetVisitErrorReasonOf");function Ae(e){return R(w("validationFailed",{retryable:false,wireMessage:e}))}n(Ae,"invalid");function re(e){return R(w("internalError",{retryable:false,httpStatus:502,wireMessage:e}))}n(re,"unusable");function $r(e,r){let t={};e!==void 0&&(t.pet_ref=e);let o=r?.returnTo;if(o!=null){if(typeof o!="string"||!Gr.test(o))return {ok:false,message:"returnTo must be a registered return destination key"};t.return_to=o;}let i=r?.entry;if(i!=null){if(i!=="chat"||e===void 0)return {ok:false,message:"entry 'chat' needs the pet the chat is about"};t.entry=i;}let a=r?.visitRef,l=r?.intent,u=a!=null;if(u){let s=typeof a=="string"?a.trim():"";if(s.length<1||[...s].length>Ie)return {ok:false,message:`visitRef must be 1..${Ie} characters`};t.visit_ref=s;}if(l!=null){if(!u)return {ok:false,message:"intent needs the visitRef it opens"};if(!M(l))return {ok:false,message:`intent must be one of ${U.join(", ")}`};t.intent=l;}return {ok:true,body:t}}n($r,"handoffBody");function Qr(e){if(typeof e!="object"||e===null)return null;let{visit_ref:r,intent:t}=e;return typeof r!="string"||r.length===0||!M(t)?null:Object.freeze({visitRef:r,intent:t})}n(Qr,"parseVisitEcho");function je(e){let r=e.funnel??Se({auth:e.auth,...e.errorPolicy?{errorPolicy:e.errorPolicy}:{}}),t=e.telemetry,o=n(i=>(Pe(t,"televet.visit.handoff_failed",{reason:B(i)}),R(i)),"failed");return {async createHandoff(i,a){let l;if(i!=null){let f=typeof i=="string"?[...i].length:0;if(f<1||f>Ve)return o(w("validationFailed",{retryable:false,wireMessage:`pet_ref must be 1..${Ve} characters`}));l=i;}let u=$r(l,a);if(!u.ok){let f=Ae(u.message);return f.ok?f:o(f.error)}let s=u.body,p=await r.send("televet.visit.handoff",{method:"POST",path:Yr,body:s},{idempotent:false,maxAttempts:1});if(!p.ok)return o(p.error);let v=Jr(p.value),b=s.return_to!==void 0,d=b?p.value?.flow_id:void 0;if(b&&(typeof d!="string"||!ze.test(d))){let f=re("the handoff response carried no usable return flow id");return f.ok?f:o(f.error)}let c=s.visit_ref!==void 0,y=c?Qr(p.value?.visit):null;if(c&&y===null){let f=re("the handoff response did not confirm the visit it opens");return f.ok?f:o(f.error)}let h=v===null?null:Object.freeze({...v,...b?{flowId:d}:{},...y!==null?{visit:y}:{}});return h===null?o(w("internalError",{retryable:false,httpStatus:502,wireMessage:"the handoff response carried no usable visit url"})):(Pe(t,"televet.visit.handoff_created",{pet_scoped:s.pet_ref!==void 0}),Z(h))},async checkAvailability(i){if(typeof i!="string"||i.length>Oe)return Ae(`state must be at most ${Oe} characters`);let a=await r.send("televet.visit.availability",{method:"POST",path:Wr,body:{state:i}},{idempotent:false,maxAttempts:1});if(!a.ok)return R(a.error);let l=a.value?.available;return typeof l!="boolean"?re("the availability response carried no usable answer"):Z(Object.freeze({available:l}))},async chatEntryOpen(){try{let i=await r.send("televet.visit.chat_entry",{method:"GET",path:Kr},{maxAttempts:1});return i.ok&&i.value?.open===!0}catch{return false}}}}n(je,"createVetVisitController");function Xr(e){if(typeof e!="string")return null;let r=e.indexOf("#"),t=r<0?e:e.slice(0,r),o=t.indexOf("?");if(o<0)return null;let i=t.slice(o+1).split("&").filter(a=>a.startsWith(`${Fe}=`)).map(a=>a.slice(Fe.length+1));return i.length!==1||!ze.test(i[0]??"")?null:Object.freeze({flowId:i[0]})}n(Xr,"parseVetVisitReturn");function Jr(e){if(typeof e!="object"||e===null)return null;let{url:r,expires_at:t}=e;return typeof r!="string"||typeof t!="string"||t.length===0||!tt(r)?null:Object.freeze({url:r,expiresAt:t})}n(Jr,"parseHandoff");var Zr=new Set(["localhost","127.0.0.1","[::1]"]),et=/^([A-Za-z][A-Za-z0-9+.-]*):\/\/([^/?#]*)/,rt=/[\s\u0000-\u001f\u007f]/;function tt(e){if(rt.test(e))return false;let r=et.exec(e);if(r===null)return false;let t=(r[1]??"").toLowerCase(),o=r[2]??"";if(o.length===0||o.includes("@"))return false;let i=o.replace(/:\d+$/,"").toLowerCase(),a=t==="https",l=t==="http"&&Zr.has(i);if(!a&&!l)return false;let u=e.indexOf("#");if(u<0)return false;let s=e.slice(u);return s.startsWith("#h=")&&s.length>3}n(tt,"isOpenableVisitUrl");function Pe(e,r,t){if(e)try{e.track(r,t);}catch{}}n(Pe,"safeTrack");var De=Symbol.for("@everfur/sdk#EverfurContext@v1"),Ne=globalThis,Le=Ne[De]??(Ne[De]=createContext(null));Le.displayName??="EverfurContext";function H(){let e=useContext(Le);if(e===null)throw new A("not-initialized","Everfur hooks must be called inside <EverfurProvider>. Wrap your tree once, high.");return e}n(H,"useEverfurContext");var it=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 at(e){return it[e]}n(at,"requires");function Ue(e,r,t){let o=at(e),i=new Map;for(let u of r)i.set(u.resource,u);if(t?.isPending===true&&o.some(u=>!i.has(u)))return te({name:e,enabled:false,isPending:true,limits:{}});let a=st(o,i);return o.filter(u=>i.get(u)?.granted!==true).length===0?te({name:e,enabled:true,isPending:false,limits:a}):te({name:e,enabled:false,isPending:false,limits:a,disabled:lt(o,i)})}n(Ue,"decideCapability");function st(e,r){let t={};for(let o of e){let i=r.get(o)?.limits;if(i)for(let[a,l]of Object.entries(i)){let u=t[a];t[a]=u===void 0?l:Math.min(u,l);}}return t}n(st,"mergeLimits");function lt(e,r){for(let t of e){let o=r.get(t)?.disabled;if(o)return Object.freeze({reason:o.reason,level:o.level,recoverable:o.recoverable})}return Object.freeze({reason:J("accessDenied"),level:"user_entitlement",recoverable:false})}n(lt,"disabledFor");function te(e){let r={name:e.name,enabled:e.enabled,isPending:e.isPending,limits:Object.freeze({...e.limits})};return e.disabled!==void 0&&(r.disabled=e.disabled),Object.freeze(r)}n(te,"freezeDecision");function Me(e){let{runtime:r}=H(),t=r.entitlements,o=useSyncExternalStore(t.subscribe,t.getSnapshot,t.getSnapshot);return useMemo(()=>Ue(e,o.decisions,{isPending:o.isPending}),[e,o])}n(Me,"useCapability");var He=Object.freeze({status:"idle",error:null,errorReason:null});function ft(e,r,t){let{usState:o,chat:i,scope:a}=t,l=r&&(o!==null||i),u=`${o??""}|${i?"chat":""}`,[s,p]=useState(null);if(useEffect(()=>{if(!l)return;let b=true,d=e.current;return p(null),n(async()=>{try{if(i&&!(d.chatEntryOpen&&await d.chatEntryOpen()))return !1;if(o===null)return !0;if(!d.checkAvailability)return !1;let y=await d.checkAvailability(o);return y.ok&&y.value.available}catch{return false}},"ask")().then(y=>{b&&p({key:u,open:y});}),()=>{b=false;}},[l,u,o,i,a,e]),!l)return null;let v=s!==null&&s.key===u;return {open:v&&s.open,pending:!v}}n(ft,"usePreflight");var pt=Object.freeze({status:"opening",error:null,errorReason:null});function Ye(e,r={}){let{runtime:t,userRef:o,scopeEpoch:i}=H(),a=Me("televet"),l=a.enabled&&o!==null,u=r.usState??null,s=r.entry==="chat",p=r.petRef??null,v=useMemo(()=>{if(r.controller)return r.controller;let{services:m}=t.registry;return je({auth:m.authFor(o),telemetry:m.telemetry,...m.errorPolicy?{errorPolicy:m.errorPolicy}:{}})},[t,o,i,r.controller]),b=useRef(v);b.current=v;let d=useMemo(()=>({runtime:t,userRef:o,scopeEpoch:i}),[t,o,i]),c=ft(b,l,{usState:u,chat:s,scope:d}),y=l&&(c===null||c.open)&&(!s||p!==null),h=r.returnTo??null,[f,S]=useState(He),E=useRef(null),k=useRef({runtime:t,userRef:o,scopeEpoch:i});k.current={runtime:t,userRef:o,scopeEpoch:i};let F=useRef(v);F.current=v;let g=useRef(y);g.current=y;let O=useCallback((m,_)=>{if(E.current)return E.current;let C=n((T,I)=>(S({status:T==="cancelled"?"idle":"error",error:I,errorReason:T==="cancelled"?null:T}),Object.freeze({opened:false,reason:T,error:I})),"fail");if(!g.current)return Promise.resolve(C("unavailable",null));let x=e.prepare();if(!x.ok)return Promise.resolve(C(x.reason,null));let W=k.current,de=F.current;S(pt);let K=(async()=>{let T,I={...h!==null?{returnTo:h}:{},...s?{entry:"chat"}:{},..._!==null?{visitRef:_.visitRef}:{},..._!==null&&_.intent!==null&&_.intent!==void 0?{intent:_.intent}:{}},ce=Object.keys(I).length===0?void 0:I,fe=m===void 0?p:m;try{T=await(ce===void 0?de.createHandoff(fe):de.createHandoff(fe,ce));}catch{return e.abandon(x.value),C("unknown",null)}let G=k.current;if(G.runtime!==W.runtime||G.userRef!==W.userRef||G.scopeEpoch!==W.scopeEpoch)return e.abandon(x.value),C("cancelled",null);if(!T.ok)return e.abandon(x.value),C(B(T.error),T.error);let pe=await e.finish(x.value,T.value);return pe!==null?C(pe,null):(S(He),Object.freeze(T.value.flowId===void 0?{opened:true}:{opened:true,flowId:T.value.flowId}))})().finally(()=>{E.current===K&&(E.current=null);});return E.current=K,K},[e,p,h,s]),D=useCallback(m=>O(m,null),[O]),V=useCallback((m,_)=>O(void 0,{visitRef:m,intent:_??null}),[O]);return {available:y,isPending:a.isPending||(c?.pending??false),status:f.status,error:f.error,errorReason:f.errorReason,open:D,openVisit:V}}n(Ye,"useVetVisitWith");var vt=n(e=>Linking.openURL(e),"defaultOpenUrl");function oe(e={}){let{openUrl:r,...t}=e,o=useMemo(()=>{let i=r??vt;return {prepare:n(()=>({ok:true,value:null}),"prepare"),async finish(a,l){try{return await i(l.url),null}catch{return "openFailed"}},abandon:n(()=>{},"abandon")}},[r]);return Ye(o,t)}n(oe,"useVetVisit");function se(e){if(e!==null&&typeof e=="object"&&!Object.isFrozen(e)){Object.freeze(e);for(let r of Object.keys(e))se(e[r]);}return e}n(se,"deepFreeze");var bt=Object.freeze({content:0,heading:2,control:1.8,compact:1.5,badge:1.3}),Ke={xs:4,sm:8,md:12,lg:16,xl:24,xxl:32},Ge={tile:5,xs:6,sm:10,md:14,lg:20,xl:28,pill:500},We={nano:8,small:9,micro:10,tiny:11,caption:12,bodyTight:13,body:14,subtitle:16,heading:18,verdict:24},Et={tight:1.15,snug:1.3,normal:1.4,relaxed:1.55},gt={regular:"400",medium:"500",bold:"700"},ht={eyebrow:1,monoWide:.9,headerBrand:-0.42,tight:-0.35},_t=0,q="System",Y="monospace",Rt=["content","heading","control","compact","badge"];function Tt(e){let r={};for(let t of Rt)r[t]=e;return r}n(Tt,"authoredTierSizes");function $e(){return {family:q,mono:Y,fontUrl:null,families:{regular:q,medium:q,bold:q,mono:Y,monoMedium:Y,monoBold:Y},namedFaces:{regular:false,medium:false,bold:false,mono:false,monoMedium:false,monoBold:false},fontUrls:{},size:We,tierSizes:Tt(We),lineHeight:Et,weight:gt,letterSpacing:ht,scale:1,maxScale:_t,scaleCaps:bt}}n($e,"baseType");var Qe={},ie=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 Xe={duration:{instant:80,fast:140,normal:220,slow:320},spring:{gentle:{damping:18,stiffness:200}},easing:{standard:ae(ie.standard),emphasized:ae(ie.emphasized),exit:ae(ie.exit)},reducedMotion:false},Ct={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)"},Je=se({brightness:"light",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:Ct,space:Ke,radius:Ge,type:$e(),motion:Xe,slots:Qe}),xt={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)"};se({brightness:"dark",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:xt,space:Ke,radius:Ge,type:$e(),motion:Xe,slots:Qe});var Ze=Symbol.for("@everfur/sdk#EverfurThemeContext@v1"),er=globalThis,le=er[Ze]??(er[Ze]=createContext(Je));le.displayName??="EverfurThemeContext";function j(){return useContext(le)}n(j,"useEverfurTheme");function Vt(e,r){let t=e.scaleCaps[r];return t>0?t:void 0}n(Vt,"tierMultiplier");function tr({tier:e="content",...r}){let{type:t}=j(),o=Vt(t,e);return createElement(Text,o===void 0?r:{maxFontSizeMultiplier:o,...r})}n(tr,"Text");forwardRef(n(function(r,t){return createElement(TextInput,{...r,...t===null?{}:{ref:t}})},"TextInput"));function nr(e,r){if(e===void 0)return {};let t={};return e.backgroundColor!==void 0&&(t.backgroundColor=e.backgroundColor),e.borderColor!==void 0&&(t.borderColor=e.borderColor,t.borderWidth=r??1),e.borderRadius!==void 0&&(t.borderRadius=e.borderRadius),t}n(nr,"slotBox");function or(e){return e?.textColor===void 0?{}:{color:e.textColor}}n(or,"slotText");var It=Object.freeze({regular:"regular",medium:"medium",bold:"bold",mono:"regular",monoMedium:"medium",monoBold:"bold"});function ir(e,r){let t=e.type,o=t.families[r];return r==="mono"||t.namedFaces[r]?{fontFamily:o}:{fontFamily:o,fontWeight:t.weight[It[r]]}}n(ir,"face");function ar(e){let r=globalThis.console;try{r?.error?.("[everfur] A host callback threw; the SDK ignored it.",e);}catch{}}n(ar,"reportHostFailure");function At(e){return (typeof e=="object"||typeof e=="function")&&e!==null&&typeof e.then=="function"}n(At,"isThenable");function ue(e,...r){if(typeof e=="function")try{let t=e(...r);return At(t)&&Promise.resolve(t).then(void 0,ar),t}catch(t){ar(t);return}}n(ue,"callHost");var sr=Object.freeze({visitButton:"Talk to a vet"});var lr=44,Nt=.6;function Lt(e){let{petRef:r,label:t,openUrl:o,onOpened:i,onError:a,style:l,labelStyle:u,controller:s,returnTo:p,usState:v,entry:b,visitRef:d,intent:c}=e,y=oe({...p!==void 0?{returnTo:p}:{},...v!==void 0?{usState:v}:{},...b!==void 0?{entry:b}:{},...r!==void 0?{petRef:r}:{},...o!==void 0?{openUrl:o}:{},...s!==void 0?{controller:s}:{}}),h=j(),f=useMemo(()=>Ut(h),[h]),S=useRef(false);if(!y.available)return null;let E=y.status==="opening",k=t??sr.visitButton;return jsx(Pressable,{onPress:n(()=>{E||S.current||(S.current=true,(d==null?y.open():y.openVisit(d,c??null)).then(g=>{g.opened?ue(i,g.flowId??null):g.reason!=="cancelled"&&ue(a,g.reason,g.error);}).finally(()=>{S.current=false;}));},"onPress"),accessibilityRole:"button",accessibilityLabel:k,accessibilityState:{busy:E,disabled:E},style:[f.button,E?f.busy:null,l],children:jsx(tr,{style:[f.label,u],children:k})})}n(Lt,"VetVisitButton");function Ut(e){let{color:r,space:t,radius:o,type:i,slots:a}=e;return StyleSheet.create({button:{minHeight:lr,minWidth:lr,alignItems:"center",justifyContent:"center",paddingHorizontal:t.xl,paddingVertical:t.sm,borderRadius:o.pill,backgroundColor:r.primary,...nr(a.vetVisitButton)},busy:{opacity:Nt},label:{...ir(e,"medium"),color:r.onPrimary,fontSize:i.size.body,lineHeight:i.size.body*i.lineHeight.snug,...or(a.vetVisitButton)}})}n(Ut,"makeStyles");export{U as VET_VISIT_INTENTS,Lt as VetVisitButton,M as isVetVisitIntent,Xr as parseVetVisitReturn,oe as useVetVisit,B as vetVisitErrorReasonOf};