@everfur/sdk 0.15.0 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/LICENSE.md +1 -0
  3. package/README.md +12 -5
  4. package/SDK-LICENSE.txt +130 -0
  5. package/THIRD_PARTY_NOTICES +9 -0
  6. package/dist/CameraPort.d-Cv31Pz7g.d.cts +1 -0
  7. package/dist/CameraPort.d-Cv31Pz7g.d.ts +1 -0
  8. package/dist/{Chat.d-CtfANk3A.d.cts → Chat.d-BO5iJsR2.d.cts} +12 -3
  9. package/dist/{Chat.d-a7Ksz7NZ.d.ts → Chat.d-BlsnQwCQ.d.ts} +12 -3
  10. package/dist/{DepthViews.d-DbJejGm3.d.ts → DepthViews.d--1daZblh.d.cts} +2 -1
  11. package/dist/{DepthViews.d-dXWL6ToG.d.cts → DepthViews.d-BuEWI6Ln.d.ts} +2 -1
  12. package/dist/{DepthViews.d-CuBElgEc.d.ts → DepthViews.d-CKTnEeUo.d.ts} +2 -1
  13. package/dist/{DepthViews.d-BqMnWSMu.d.cts → DepthViews.d-PuBGdAYk.d.cts} +2 -1
  14. package/dist/ErrorPolicyPort.d-68yrE3BE.d.ts +1 -0
  15. package/dist/ErrorPolicyPort.d-DirW9hgO.d.cts +1 -0
  16. package/dist/EverfurError.d-8NHtlgzA.d.cts +1 -0
  17. package/dist/EverfurError.d-8NHtlgzA.d.ts +1 -0
  18. package/dist/EverfurResult.d-BFH-3s6E.d.cts +1 -0
  19. package/dist/EverfurResult.d-D_-254ZY.d.ts +1 -0
  20. package/dist/IntakeMedia.d-4a89XrP7.d.ts +1 -0
  21. package/dist/IntakeMedia.d-DGxrhgIW.d.ts +1 -0
  22. package/dist/IntakeMedia.d-DUPR4lVM.d.cts +1 -0
  23. package/dist/IntakeMedia.d-JJCUvQu7.d.cts +1 -0
  24. package/dist/LICENSE.md +1 -0
  25. package/dist/LifecyclePort.d-Cr1p33a7.d.cts +1 -0
  26. package/dist/LifecyclePort.d-Cr1p33a7.d.ts +1 -0
  27. package/dist/PhotoController.d-BzCJOE7e.d.cts +1 -0
  28. package/dist/PhotoController.d-D0XiUUOl.d.ts +1 -0
  29. package/dist/{RecordsPage.d-DKrZ9rHX.d.ts → RecordsPage.d-CBB8sfoY.d.ts} +2 -1
  30. package/dist/{RecordsPage.d-DRPdUAo4.d.cts → RecordsPage.d-Dq5gpQG0.d.cts} +2 -1
  31. package/dist/SDK-LICENSE.txt +130 -0
  32. package/dist/THIRD_PARTY_NOTICES +9 -0
  33. package/dist/TelemetryPort.d-BDNr00hu.d.cts +1 -0
  34. package/dist/TelemetryPort.d-BDNr00hu.d.ts +1 -0
  35. package/dist/animations/index.cjs +2 -1
  36. package/dist/animations/index.d.cts +22 -21
  37. package/dist/animations/index.d.ts +22 -21
  38. package/dist/animations/index.js +2 -1
  39. package/dist/{attachments.d-CoQhXrP9.d.ts → attachments.d-C2nkIyDB.d.ts} +3 -2
  40. package/dist/{attachments.d-BGn2_knv.d.ts → attachments.d-DFP9yvz9.d.ts} +7 -6
  41. package/dist/{attachments.d-CpaOfi2g.d.cts → attachments.d-DRHsJkni.d.cts} +7 -6
  42. package/dist/{attachments.d-CqHMGoER.d.cts → attachments.d-DRUC35Ti.d.cts} +3 -2
  43. package/dist/{bookingCopy.d-BwCOCZUj.d.ts → bookingCopy.d-CFL-1Be2.d.ts} +3 -2
  44. package/dist/{bookingCopy.d-Bnq2zk0F.d.cts → bookingCopy.d-bF_QknDC.d.cts} +3 -2
  45. package/dist/branding.d-Bbc6p1XY.d.cts +1 -0
  46. package/dist/branding.d-y6c0UwhE.d.ts +1 -0
  47. package/dist/cacheEpoch.d-DknKn3S0.d.cts +1 -0
  48. package/dist/cacheEpoch.d-DknKn3S0.d.ts +1 -0
  49. package/dist/callCopy.d-Bw6oZT54.d.cts +1 -0
  50. package/dist/callCopy.d-Bw6oZT54.d.ts +1 -0
  51. package/dist/callRoom.d-B1DoYdJe.d.cts +1 -0
  52. package/dist/callRoom.d-Dqm1rUqT.d.ts +1 -0
  53. package/dist/{casesRepository.d-CsUJ2Oyb.d.cts → casesRepository.d-BMOnT1fg.d.cts} +2 -1
  54. package/dist/{casesRepository.d-DG83Ggbq.d.ts → casesRepository.d-C__BnffJ.d.ts} +2 -1
  55. package/dist/chat/index.cjs +13 -12
  56. package/dist/chat/index.d.cts +10 -9
  57. package/dist/chat/index.d.ts +10 -9
  58. package/dist/chat/index.js +13 -12
  59. package/dist/client/index.cjs +2 -1
  60. package/dist/client/index.d.cts +7 -6
  61. package/dist/client/index.d.ts +7 -6
  62. package/dist/client/index.js +2 -1
  63. package/dist/{clinicBatch.d-BLpbpS51.d.cts → clinicBatch.d-C5deJ4xY.d.cts} +3 -2
  64. package/dist/{clinicBatch.d-Byjx4y_W.d.ts → clinicBatch.d-D68RYvc3.d.ts} +3 -2
  65. package/dist/clinicModels.d-BXgKZqDb.d.cts +1 -0
  66. package/dist/clinicModels.d-CaS64-P-.d.ts +1 -0
  67. package/dist/clinicRequestProps.d-1dCtouGA.d.cts +1 -0
  68. package/dist/clinicRequestProps.d-CjsMg_OD.d.ts +1 -0
  69. package/dist/{config.d-C0WgjutL.d.cts → config.d-BQgrIDdu.d.cts} +2 -1
  70. package/dist/{config.d-zd2eTb2L.d.ts → config.d-XSMThgVj.d.ts} +2 -1
  71. package/dist/consent/index.cjs +1 -0
  72. package/dist/consent/index.d.cts +6 -5
  73. package/dist/consent/index.d.ts +6 -5
  74. package/dist/consent/index.js +1 -0
  75. package/dist/{context.d-Du_UPxa1.d.cts → context.d-Ba8YyJpk.d.cts} +6 -5
  76. package/dist/{context.d-BBjmV0rz.d.ts → context.d-xoh5vmxS.d.ts} +6 -5
  77. package/dist/{copy.d-Da_PP2K3.d.cts → copy.d-Cq-s-UUv.d.cts} +3 -2
  78. package/dist/{copy.d-D_VVj01o.d.ts → copy.d-HV9fU5kh.d.ts} +3 -2
  79. package/dist/core/index.cjs +2 -1
  80. package/dist/core/index.d.cts +14 -13
  81. package/dist/core/index.d.ts +14 -13
  82. package/dist/core/index.js +2 -1
  83. package/dist/{depth.d-BEedifOR.d.ts → depth.d-D7kKiYl7.d.ts} +3 -2
  84. package/dist/{depth.d-RTV61QNf.d.cts → depth.d-DYnkz8Re.d.cts} +3 -2
  85. package/dist/{entitlementRepository.d-C-stdRyA.d.cts → entitlementRepository.d-B_kEPLhz.d.cts} +3 -2
  86. package/dist/{entitlementRepository.d-BwThmh3V.d.ts → entitlementRepository.d-DmnUZLl_.d.ts} +3 -2
  87. package/dist/features.d-DrQxTw3-.d.cts +1 -0
  88. package/dist/features.d-DrQxTw3-.d.ts +1 -0
  89. package/dist/{focus.d-Dsm39DjO.d.cts → focus.d-BHm_QtQ9.d.cts} +3 -2
  90. package/dist/{focus.d-CtotIyEt.d.ts → focus.d-CjL6Cj0m.d.ts} +3 -2
  91. package/dist/health-plan/index.cjs +2 -1
  92. package/dist/health-plan/index.d.cts +9 -8
  93. package/dist/health-plan/index.d.ts +9 -8
  94. package/dist/health-plan/index.js +2 -1
  95. package/dist/{idempotency.d-Cv-B7SfC.d.ts → idempotency.d-BSRK8od4.d.cts} +2 -1
  96. package/dist/{idempotency.d-Bfm7oIxS.d.cts → idempotency.d-CFc4CCc9.d.ts} +2 -1
  97. package/dist/{identity.d-BksOEa6m.d.ts → identity.d-Be2Es9Td.d.ts} +2 -1
  98. package/dist/{identity.d-CioQhZrq.d.cts → identity.d-HbwYQ4-z.d.cts} +2 -1
  99. package/dist/ids.d-B2GAAifq.d.cts +1 -0
  100. package/dist/ids.d-B2GAAifq.d.ts +1 -0
  101. package/dist/index.cjs +14 -13
  102. package/dist/index.d.cts +13 -12
  103. package/dist/index.d.ts +13 -12
  104. package/dist/index.js +14 -13
  105. package/dist/{introEvents.d-tOi4o3F4.d.ts → introEvents.d-DflJ6J9H.d.ts} +2 -1
  106. package/dist/{introEvents.d-fAZitxMA.d.cts → introEvents.d-Dr34KIaD.d.cts} +2 -1
  107. package/dist/introEvents.d-dS3fJCH1.d.cts +1 -0
  108. package/dist/introEvents.d-dS3fJCH1.d.ts +1 -0
  109. package/dist/models.d-BSqvbTE1.d.cts +1 -0
  110. package/dist/models.d-DOwnr8fi.d.ts +1 -0
  111. package/dist/notifications/index.cjs +1 -0
  112. package/dist/notifications/index.d.cts +5 -4
  113. package/dist/notifications/index.d.ts +5 -4
  114. package/dist/notifications/index.js +1 -0
  115. package/dist/{optInView.d-B8zTORO2.d.ts → optInView.d-3mbj1mR6.d.ts} +15 -2
  116. package/dist/{optInView.d-BkNSv4Gk.d.cts → optInView.d-D23o1gtT.d.cts} +15 -2
  117. package/dist/optionalModule.d-DbJmsq5f.d.cts +1 -0
  118. package/dist/optionalModule.d-DbJmsq5f.d.ts +1 -0
  119. package/dist/{parse.d-BgjO82mY.d.cts → parse.d-4lUXdmvY.d.cts} +2 -1
  120. package/dist/{parse.d-B5JHS6Pr.d.ts → parse.d-BERabxHw.d.ts} +2 -1
  121. package/dist/{pets.d-B_LoizOv.d.cts → pets.d-CHU0UbXt.d.cts} +2 -1
  122. package/dist/{pets.d-OWxskXCP.d.ts → pets.d-D_ayuqjp.d.ts} +2 -1
  123. package/dist/{petsRepository.d-B5DWzU7C.d.cts → petsRepository.d-Bwfe8yuR.d.cts} +2 -1
  124. package/dist/{petsRepository.d-Ba3xhJcj.d.ts → petsRepository.d-DUaAWoTv.d.ts} +2 -1
  125. package/dist/photo/index.cjs +1 -0
  126. package/dist/photo/index.d.cts +1 -0
  127. package/dist/photo/index.d.ts +1 -0
  128. package/dist/photo/index.js +1 -0
  129. package/dist/{planSignals.d-DtxZoWGM.d.ts → planSignals.d-CON9gTvJ.d.ts} +3 -2
  130. package/dist/{planSignals.d-Cl6n5QpS.d.cts → planSignals.d-Dha2CMDF.d.cts} +3 -2
  131. package/dist/ports.d-BX4f4UsB.d.cts +1 -0
  132. package/dist/ports.d-BX4f4UsB.d.ts +1 -0
  133. package/dist/{ports.d-gZNTn8Qf.d.cts → ports.d-ClbPRUtx.d.cts} +5 -4
  134. package/dist/{ports.d-BDtwHxmW.d.ts → ports.d-DzEJMVRs.d.ts} +5 -4
  135. package/dist/presentation.d-vy8kTGfR.d.cts +1 -0
  136. package/dist/presentation.d-vy8kTGfR.d.ts +1 -0
  137. package/dist/profile.d-CSs1wlXT.d.cts +1 -0
  138. package/dist/profile.d-CSs1wlXT.d.ts +1 -0
  139. package/dist/projection.d-CeIUsbSk.d.cts +1 -0
  140. package/dist/projection.d-CeIUsbSk.d.ts +1 -0
  141. package/dist/quickPrompts.d-NM_81Jc1.d.cts +1 -0
  142. package/dist/quickPrompts.d-NM_81Jc1.d.ts +1 -0
  143. package/dist/records/depth/index.cjs +1 -0
  144. package/dist/records/depth/index.d.cts +10 -9
  145. package/dist/records/depth/index.d.ts +10 -9
  146. package/dist/records/depth/index.js +1 -0
  147. package/dist/records/index.cjs +3 -2
  148. package/dist/records/index.d.cts +11 -10
  149. package/dist/records/index.d.ts +11 -10
  150. package/dist/records/index.js +3 -2
  151. package/dist/recordsAsk.d-C5CGSi3j.d.cts +1 -0
  152. package/dist/recordsAsk.d-C5CGSi3j.d.ts +1 -0
  153. package/dist/{requestFunnel.d-CR4akGCY.d.cts → requestFunnel.d-JoqddYSx.d.cts} +3 -2
  154. package/dist/{requestFunnel.d-DFf9C__p.d.ts → requestFunnel.d-YabU6G-Z.d.ts} +3 -2
  155. package/dist/resolve.d-CoQWUy1Y.d.cts +1 -0
  156. package/dist/resolve.d-CoQWUy1Y.d.ts +1 -0
  157. package/dist/{runtimeTypes.d-CHdH-y2c.d.cts → runtimeTypes.d-Cv38YuzP.d.cts} +5 -4
  158. package/dist/{runtimeTypes.d-BqBOrZxa.d.ts → runtimeTypes.d-DQTBJAbk.d.ts} +5 -4
  159. package/dist/{screenProps.d-CVqFJw-J.d.ts → screenProps.d-BuJLzFkN.d.ts} +2 -1
  160. package/dist/{screenProps.d-B1dIANI0.d.cts → screenProps.d-C-AuHoyF.d.cts} +2 -1
  161. package/dist/server/events/index.cjs +2 -1
  162. package/dist/server/events/index.d.cts +3 -2
  163. package/dist/server/events/index.d.ts +3 -2
  164. package/dist/server/events/index.js +2 -1
  165. package/dist/server/index.cjs +2 -1
  166. package/dist/server/index.d.cts +4 -3
  167. package/dist/server/index.d.ts +4 -3
  168. package/dist/server/index.js +2 -1
  169. package/dist/sheetCopy.d-CAhLOxjc.d.cts +1 -0
  170. package/dist/sheetCopy.d-CAhLOxjc.d.ts +1 -0
  171. package/dist/sheetSeam.d-B09jf4YC.d.ts +1 -0
  172. package/dist/sheetSeam.d-BBuEIVsa.d.cts +1 -0
  173. package/dist/shop/index.cjs +1 -0
  174. package/dist/shop/index.d.cts +4 -3
  175. package/dist/shop/index.d.ts +4 -3
  176. package/dist/shop/index.js +1 -0
  177. package/dist/species.d-BXAIMh7I.d.cts +1 -0
  178. package/dist/species.d-BXAIMh7I.d.ts +1 -0
  179. package/dist/tabs/index.cjs +1 -0
  180. package/dist/tabs/index.d.cts +7 -6
  181. package/dist/tabs/index.d.ts +7 -6
  182. package/dist/tabs/index.js +1 -0
  183. package/dist/tabsModel.d-BfIQg6yS.d.cts +1 -0
  184. package/dist/tabsModel.d-BfIQg6yS.d.ts +1 -0
  185. package/dist/televet/booking/index.cjs +1 -0
  186. package/dist/televet/booking/index.d.cts +7 -6
  187. package/dist/televet/booking/index.d.ts +7 -6
  188. package/dist/televet/booking/index.js +1 -0
  189. package/dist/televet/call/index.cjs +1 -0
  190. package/dist/televet/call/index.d.cts +1 -0
  191. package/dist/televet/call/index.d.ts +1 -0
  192. package/dist/televet/call/index.js +1 -0
  193. package/dist/televet/index.cjs +1 -0
  194. package/dist/televet/index.d.cts +1 -0
  195. package/dist/televet/index.d.ts +1 -0
  196. package/dist/televet/index.js +1 -0
  197. package/dist/televetGlobal.d-CC-DrqkQ.d.ts +1 -0
  198. package/dist/televetGlobal.d-CKwDCbmN.d.cts +1 -0
  199. package/dist/testing/index.cjs +1 -0
  200. package/dist/testing/index.d.cts +2 -1
  201. package/dist/testing/index.d.ts +2 -1
  202. package/dist/testing/index.js +1 -0
  203. package/dist/testing/rn/index.cjs +2 -2
  204. package/dist/testing/rn/index.d.cts +11 -9
  205. package/dist/testing/rn/index.d.ts +11 -9
  206. package/dist/testing/rn/index.js +2 -2
  207. package/dist/testing/web/index.cjs +1 -0
  208. package/dist/testing/web/index.d.cts +8 -7
  209. package/dist/testing/web/index.d.ts +8 -7
  210. package/dist/testing/web/index.js +1 -0
  211. package/dist/texting/index.cjs +2 -1
  212. package/dist/texting/index.d.cts +9 -6
  213. package/dist/texting/index.d.ts +9 -6
  214. package/dist/texting/index.js +2 -1
  215. package/dist/{threadOptions.d-DZ0AoQGk.d.ts → threadOptions.d-8x_1evAr.d.ts} +3 -2
  216. package/dist/{threadOptions.d-CnSfFVMr.d.cts → threadOptions.d-DBrmOwmb.d.cts} +3 -2
  217. package/dist/{timelineRows.d-CF1KvLcQ.d.cts → timelineRows.d-B6lLC8Ud.d.cts} +2 -1
  218. package/dist/{timelineRows.d-CtL0y7y1.d.ts → timelineRows.d-Brlkti-G.d.ts} +2 -1
  219. package/dist/tokens.d-BUVqme2D.d.cts +1 -0
  220. package/dist/tokens.d-BUVqme2D.d.ts +1 -0
  221. package/dist/typeStyle.d-B3Kdtjie.d.ts +1 -0
  222. package/dist/typeStyle.d-DmlwyJq-.d.cts +1 -0
  223. package/dist/uploadTransport.d-CWL7CdWP.d.cts +1 -0
  224. package/dist/uploadTransport.d-EGoUl7gX.d.ts +1 -0
  225. package/dist/useIntroSeen.d-CTWFUthO.d.cts +1 -0
  226. package/dist/useIntroSeen.d-CTWFUthO.d.ts +1 -0
  227. package/dist/{usePresentation.d-CZS0qlLI.d.cts → usePresentation.d-BcdCIuEU.d.cts} +2 -1
  228. package/dist/{usePresentation.d-BsR08Wxt.d.ts → usePresentation.d-Bne14SlX.d.ts} +2 -1
  229. package/dist/useRecords.d-BYNX01El.d.cts +1 -0
  230. package/dist/useRecords.d-DWk61a4c.d.ts +1 -0
  231. package/dist/{useRecordsDepth.d-DTAxFf5s.d.ts → useRecordsDepth.d-Cd6J03o5.d.ts} +2 -1
  232. package/dist/{useRecordsDepth.d-k-zYIHTe.d.cts → useRecordsDepth.d-DAa169VY.d.cts} +2 -1
  233. package/dist/useVetVisit.d-BtdwhmgD.d.cts +1 -0
  234. package/dist/useVetVisit.d-DoYQimyt.d.ts +1 -0
  235. package/dist/video/index.cjs +1 -0
  236. package/dist/video/index.d.cts +1 -0
  237. package/dist/video/index.d.ts +1 -0
  238. package/dist/video/index.js +1 -0
  239. package/dist/{view.d-CAWQjcY_.d.cts → view.d-3d5_O7Xk.d.cts} +4 -3
  240. package/dist/{view.d-BE7VOlsB.d.ts → view.d-DkGM8GNA.d.ts} +4 -3
  241. package/dist/visitIntent.d-D7_yVp1I.d.cts +1 -0
  242. package/dist/visitIntent.d-D7_yVp1I.d.ts +1 -0
  243. package/dist/web/consent/index.cjs +1 -0
  244. package/dist/web/consent/index.d.cts +6 -5
  245. package/dist/web/consent/index.d.ts +6 -5
  246. package/dist/web/consent/index.js +1 -0
  247. package/dist/web/health-plan/index.cjs +2 -1
  248. package/dist/web/health-plan/index.d.cts +11 -10
  249. package/dist/web/health-plan/index.d.ts +11 -10
  250. package/dist/web/health-plan/index.js +2 -1
  251. package/dist/web/index.cjs +16 -13
  252. package/dist/web/index.d.cts +31 -22
  253. package/dist/web/index.d.ts +31 -22
  254. package/dist/web/index.js +16 -13
  255. package/dist/web/intro/index.cjs +1 -0
  256. package/dist/web/intro/index.d.cts +7 -6
  257. package/dist/web/intro/index.d.ts +7 -6
  258. package/dist/web/intro/index.js +1 -0
  259. package/dist/web/notifications/index.cjs +1 -0
  260. package/dist/web/notifications/index.d.cts +4 -3
  261. package/dist/web/notifications/index.d.ts +4 -3
  262. package/dist/web/notifications/index.js +1 -0
  263. package/dist/web/records/depth/index.cjs +1 -0
  264. package/dist/web/records/depth/index.d.cts +10 -9
  265. package/dist/web/records/depth/index.d.ts +10 -9
  266. package/dist/web/records/depth/index.js +1 -0
  267. package/dist/web/records/index.cjs +1 -0
  268. package/dist/web/records/index.d.cts +12 -11
  269. package/dist/web/records/index.d.ts +12 -11
  270. package/dist/web/records/index.js +1 -0
  271. package/dist/web/records/upload/index.cjs +1 -0
  272. package/dist/web/records/upload/index.d.cts +1 -0
  273. package/dist/web/records/upload/index.d.ts +1 -0
  274. package/dist/web/records/upload/index.js +1 -0
  275. package/dist/web/records-sheet/index.cjs +3 -2
  276. package/dist/web/records-sheet/index.d.cts +1 -0
  277. package/dist/web/records-sheet/index.d.ts +1 -0
  278. package/dist/web/records-sheet/index.js +3 -2
  279. package/dist/web/shop/index.cjs +1 -0
  280. package/dist/web/shop/index.d.cts +4 -3
  281. package/dist/web/shop/index.d.ts +4 -3
  282. package/dist/web/shop/index.js +1 -0
  283. package/dist/web/televet/booking/index.cjs +1 -0
  284. package/dist/web/televet/booking/index.d.cts +7 -6
  285. package/dist/web/televet/booking/index.d.ts +7 -6
  286. package/dist/web/televet/booking/index.js +1 -0
  287. package/dist/web/televet/call/index.cjs +1 -0
  288. package/dist/web/televet/call/index.d.cts +1 -0
  289. package/dist/web/televet/call/index.d.ts +1 -0
  290. package/dist/web/televet/call/index.js +1 -0
  291. package/dist/web/televet/index.cjs +1 -0
  292. package/dist/web/televet/index.d.cts +1 -0
  293. package/dist/web/televet/index.d.ts +1 -0
  294. package/dist/web/televet/index.js +1 -0
  295. package/dist/web/texting/index.cjs +2 -1
  296. package/dist/web/texting/index.d.cts +9 -6
  297. package/dist/web/texting/index.d.ts +9 -6
  298. package/dist/web/texting/index.js +2 -1
  299. package/package.json +10 -5
  300. package/LICENSE +0 -21
@@ -1,3 +1,4 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  /** His drag (plan.src.html L5345-5368): out past 90px, or past 12px at more than 0.11 px/ms. */
2
3
  declare function isIntroSwipeOut(dy: number, ms: number): boolean;
3
4
 
@@ -1,7 +1,8 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  import { ReactNode } from 'react';
2
3
  import { E as EverfurError } from './EverfurError.d-8NHtlgzA.cjs';
3
4
  import { P as PetRef } from './ids.d-B2GAAifq.cjs';
4
- import { f as HealthPlanItem, m as HealthPlan, n as HealthPlanRepository, o as HealthPlanReasonKind } from './focus.d-Dsm39DjO.cjs';
5
+ import { f as HealthPlanItem, m as HealthPlan, n as HealthPlanRepository, o as HealthPlanReasonKind } from './focus.d-BHm_QtQ9.cjs';
5
6
  import { L as LifecyclePort } from './LifecyclePort.d-Cr1p33a7.cjs';
6
7
  import { d as RecordsRequestView, f as RecordsView } from './models.d-BSqvbTE1.cjs';
7
8
  import { i as EverfurPresentationInput, h as EverfurPresentation } from './presentation.d-vy8kTGfR.cjs';
@@ -1,7 +1,8 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  import { ReactNode } from 'react';
2
3
  import { E as EverfurError } from './EverfurError.d-8NHtlgzA.js';
3
4
  import { P as PetRef } from './ids.d-B2GAAifq.js';
4
- import { f as HealthPlanItem, m as HealthPlan, n as HealthPlanRepository, o as HealthPlanReasonKind } from './focus.d-CtotIyEt.js';
5
+ import { f as HealthPlanItem, m as HealthPlan, n as HealthPlanRepository, o as HealthPlanReasonKind } from './focus.d-CjL6Cj0m.js';
5
6
  import { L as LifecyclePort } from './LifecyclePort.d-Cr1p33a7.js';
6
7
  import { d as RecordsRequestView, f as RecordsView } from './models.d-DOwnr8fi.js';
7
8
  import { i as EverfurPresentationInput, h as EverfurPresentation } from './presentation.d-vy8kTGfR.js';
@@ -1,3 +1,4 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  import { E as EverfurError } from './EverfurError.d-8NHtlgzA.cjs';
2
3
  import { E as EverfurResult } from './EverfurResult.d-BFH-3s6E.cjs';
3
4
  import { R as RecordsRequestId, P as PetRef } from './ids.d-B2GAAifq.cjs';
@@ -1,3 +1,4 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  import { E as EverfurError } from './EverfurError.d-8NHtlgzA.js';
2
3
  import { E as EverfurResult } from './EverfurResult.d-D_-254ZY.js';
3
4
  import { R as RecordsRequestId, P as PetRef } from './ids.d-B2GAAifq.js';
@@ -1,7 +1,8 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  import { E as EverfurError } from './EverfurError.d-8NHtlgzA.js';
2
3
  import { E as EverfurResult } from './EverfurResult.d-D_-254ZY.js';
3
4
  import { P as PetRef } from './ids.d-B2GAAifq.js';
4
- import { l as RecordsDepthClient } from './depth.d-BEedifOR.js';
5
+ import { l as RecordsDepthClient } from './depth.d-D7kKiYl7.js';
5
6
 
6
7
  type RecordsDepthStatus = 'loading' | 'empty' | 'error' | 'populated';
7
8
  /** One depth read as a render state. `withheld` (no consent, or a fail-closed parse) renders nothing. */
@@ -1,7 +1,8 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  import { E as EverfurError } from './EverfurError.d-8NHtlgzA.cjs';
2
3
  import { E as EverfurResult } from './EverfurResult.d-BFH-3s6E.cjs';
3
4
  import { P as PetRef } from './ids.d-B2GAAifq.cjs';
4
- import { l as RecordsDepthClient } from './depth.d-RTV61QNf.cjs';
5
+ import { l as RecordsDepthClient } from './depth.d-DYnkz8Re.cjs';
5
6
 
6
7
  type RecordsDepthStatus = 'loading' | 'empty' | 'error' | 'populated';
7
8
  /** One depth read as a render state. `withheld` (no consent, or a fail-closed parse) renders nothing. */
@@ -1,3 +1,4 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  import { E as EverfurError } from './EverfurError.d-8NHtlgzA.cjs';
2
3
  import { P as PetRef } from './ids.d-B2GAAifq.cjs';
3
4
  import { E as EverfurResult } from './EverfurResult.d-BFH-3s6E.cjs';
@@ -1,3 +1,4 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  import { E as EverfurError } from './EverfurError.d-8NHtlgzA.js';
2
3
  import { P as PetRef } from './ids.d-B2GAAifq.js';
3
4
  import { E as EverfurResult } from './EverfurResult.d-D_-254ZY.js';
@@ -1,3 +1,4 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  "use strict";var react=require("react"),reactNative=require("react-native"),jsxRuntime=require("react/jsx-runtime");var CONTRACT_RETRYABILITY=/* @__PURE__ */Object.freeze([
2
3
  /* @__PURE__ */Object.freeze({wireCode:"AccessDeniedException",envelope:"http_envelope",httpStatus:403,retryable:false}),
3
4
  /* @__PURE__ */Object.freeze({wireCode:"AuthorizationException",envelope:"http_envelope",httpStatus:401,retryable:false}),
@@ -1,3 +1,4 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  import { E as EverfurError } from '../EverfurError.d-8NHtlgzA.cjs';
2
3
  export { a as EverfurErrorCategory, b as EverfurErrorCode } from '../EverfurError.d-8NHtlgzA.cjs';
3
4
  import { E as EverfurResult } from '../EverfurResult.d-BFH-3s6E.cjs';
@@ -1,3 +1,4 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  import { E as EverfurError } from '../EverfurError.d-8NHtlgzA.js';
2
3
  export { a as EverfurErrorCategory, b as EverfurErrorCode } from '../EverfurError.d-8NHtlgzA.js';
3
4
  import { E as EverfurResult } from '../EverfurResult.d-D_-254ZY.js';
@@ -1,3 +1,4 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  import{createContext,forwardRef,createElement,useState,useEffect,useCallback,useSyncExternalStore,useMemo,useContext,Component}from"react";import{TextInput,View,ActivityIndicator,Pressable,ScrollView,StyleSheet,Text as Text$1}from"react-native";import{jsx,jsxs}from"react/jsx-runtime";var CONTRACT_RETRYABILITY=/* @__PURE__ */Object.freeze([
2
3
  /* @__PURE__ */Object.freeze({wireCode:"AccessDeniedException",envelope:"http_envelope",httpStatus:403,retryable:false}),
3
4
  /* @__PURE__ */Object.freeze({wireCode:"AuthorizationException",envelope:"http_envelope",httpStatus:401,retryable:false}),
@@ -1,11 +1,12 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  import { E as EverfurError } from './EverfurError.d-8NHtlgzA.cjs';
2
3
  import { P as PetRef } from './ids.d-B2GAAifq.cjs';
3
- import { E as RecordMarkersView } from './depth.d-RTV61QNf.cjs';
4
- import { R as RecordsDepthStatus } from './useRecordsDepth.d-k-zYIHTe.cjs';
4
+ import { E as RecordMarkersView } from './depth.d-DYnkz8Re.cjs';
5
+ import { R as RecordsDepthStatus } from './useRecordsDepth.d-DAa169VY.cjs';
5
6
  import { E as EverfurResult } from './EverfurResult.d-BFH-3s6E.cjs';
6
7
  import { g as RecordPdfLink, i as RecordShareAudienceScope, R as RecordShareAudience, c as RecordShareLink, d as RecordShareEmailInput, e as RecordShareEmailReceipt } from './features.d-DrQxTw3-.cjs';
7
8
  import { a as RecordEntity, d as RecordsRequestView } from './models.d-BSqvbTE1.cjs';
8
- import { a as RecordsClinicBatchClient } from './clinicBatch.d-BLpbpS51.cjs';
9
+ import { a as RecordsClinicBatchClient } from './clinicBatch.d-C5deJ4xY.cjs';
9
10
  import { R as RecordsClinicController } from './clinicRequestProps.d-1dCtouGA.cjs';
10
11
 
11
12
  interface UseRecordsMarkersState {
@@ -1,11 +1,12 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  import { E as EverfurError } from './EverfurError.d-8NHtlgzA.js';
2
3
  import { P as PetRef } from './ids.d-B2GAAifq.js';
3
- import { E as RecordMarkersView } from './depth.d-BEedifOR.js';
4
- import { R as RecordsDepthStatus } from './useRecordsDepth.d-DTAxFf5s.js';
4
+ import { E as RecordMarkersView } from './depth.d-D7kKiYl7.js';
5
+ import { R as RecordsDepthStatus } from './useRecordsDepth.d-Cd6J03o5.js';
5
6
  import { E as EverfurResult } from './EverfurResult.d-D_-254ZY.js';
6
7
  import { g as RecordPdfLink, i as RecordShareAudienceScope, R as RecordShareAudience, c as RecordShareLink, d as RecordShareEmailInput, e as RecordShareEmailReceipt } from './features.d-DrQxTw3-.js';
7
8
  import { a as RecordEntity, d as RecordsRequestView } from './models.d-DOwnr8fi.js';
8
- import { a as RecordsClinicBatchClient } from './clinicBatch.d-Byjx4y_W.js';
9
+ import { a as RecordsClinicBatchClient } from './clinicBatch.d-D68RYvc3.js';
9
10
  import { R as RecordsClinicController } from './clinicRequestProps.d-CjsMg_OD.js';
10
11
 
11
12
  interface UseRecordsMarkersState {
@@ -1,3 +1,4 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  /** What the hosted page opens for an existing visit, in EFBackend's order. `visit` is the default. */
2
3
  declare const VET_VISIT_INTENTS: readonly ["visit", "join", "summary", "messages"];
3
4
  /** One intent: the visit itself, its call, its summary, or its messages. */
@@ -1,3 +1,4 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  /** What the hosted page opens for an existing visit, in EFBackend's order. `visit` is the default. */
2
3
  declare const VET_VISIT_INTENTS: readonly ["visit", "join", "summary", "messages"];
3
4
  /** One intent: the visit itself, its call, its summary, or its messages. */
@@ -1,3 +1,4 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  "use client";
2
3
  "use strict";var react=require("react"),jsxRuntime=require("react/jsx-runtime");var CONSENT_COPY=/* @__PURE__ */Object.freeze({loading:"Loading",retry:"Try again",signedOut:"Sign in required",changeable:"You can change this at any time.",saving:"Saving"}),CONSENT_SCOPE_COPY=/* @__PURE__ */Object.freeze({transcript_exposure:/* @__PURE__ */Object.freeze({title:"Conversation sharing",body:partner=>`Let ${partner} read the conversations you have with Everfur.`}),partner_context:/* @__PURE__ */Object.freeze({title:"Pet details",body:partner=>`Let Everfur use the pet details ${partner} already holds as background in your conversations.`})});function consentRowView(state,scope){if(state.status==="signed_out")return{kind:"signedOut"};let entry=state.scopes.find(candidate=>candidate.scope===scope);return entry===void 0?state.error!==null?{kind:"failed",error:state.error}:{kind:"loading"}:entry.loaded?{kind:"row",scope:entry.scope,granted:entry.granted,hasDecision:entry.hasDecision,saving:entry.saving,error:entry.error}:entry.error!==null?{kind:"failed",error:entry.error}:{kind:"loading"}}var CONTRACT_RETRYABILITY=/* @__PURE__ */Object.freeze([
3
4
  /* @__PURE__ */Object.freeze({wireCode:"AccessDeniedException",envelope:"http_envelope",httpStatus:403,retryable:false}),
@@ -1,14 +1,15 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  import { ReactNode, CSSProperties } from 'react';
2
- import { E as EverfurConsentScope } from '../../copy.d-Da_PP2K3.cjs';
3
- export { C as CONSENT_COPY, a as CONSENT_SCOPE_COPY, b as CONSENT_VERSION_MAX, c as ConsentRepository, d as ConsentRepositoryDeps, e as ConsentRowView, f as ConsentRuntime, g as ConsentScopeCopy, h as EVERFUR_CONSENT_SCOPES, i as EverfurConsentDecision, j as EverfurConsentOptions, k as EverfurConsentScopeState, l as EverfurConsentState, m as EverfurConsentStatus, n as EverfurConsentVerdict, o as consentRowView, p as createConsentRepository, q as createConsentRepositoryOver, r as isEverfurConsentScope, u as useEverfurConsent, s as useEverfurConsentRepository } from '../../copy.d-Da_PP2K3.cjs';
3
+ import { E as EverfurConsentScope } from '../../copy.d-Cq-s-UUv.cjs';
4
+ export { C as CONSENT_COPY, a as CONSENT_SCOPE_COPY, b as CONSENT_VERSION_MAX, c as ConsentRepository, d as ConsentRepositoryDeps, e as ConsentRowView, f as ConsentRuntime, g as ConsentScopeCopy, h as EVERFUR_CONSENT_SCOPES, i as EverfurConsentDecision, j as EverfurConsentOptions, k as EverfurConsentScopeState, l as EverfurConsentState, m as EverfurConsentStatus, n as EverfurConsentVerdict, o as consentRowView, p as createConsentRepository, q as createConsentRepositoryOver, r as isEverfurConsentScope, u as useEverfurConsent, s as useEverfurConsentRepository } from '../../copy.d-Cq-s-UUv.cjs';
4
5
  import { E as EverfurError } from '../../EverfurError.d-8NHtlgzA.cjs';
5
6
  export { a as EverfurErrorCategory, b as EverfurErrorCode } from '../../EverfurError.d-8NHtlgzA.cjs';
6
- export { A as AuthContext, I as IdentityProvider, M as MintedToken, T as TokenProvider } from '../../identity.d-CioQhZrq.cjs';
7
- export { A as AcceptedFrame, a as AnalysisCompleteFrame, b as AnalysisStartedFrame, D as DeltaFrame, c as DoneFrame, E as ErrorFrame, d as EverfurRequest, e as EverfurRequestBase, F as Frame, f as FrameBase, g as FrameKind, H as HeartbeatFrame, h as HttpMethod, M as MultipartBody, T as TransportPort, U as UnknownFrame, i as UrgencyLevel } from '../../config.d-C0WgjutL.cjs';
7
+ export { A as AuthContext, I as IdentityProvider, M as MintedToken, T as TokenProvider } from '../../identity.d-HbwYQ4-z.cjs';
8
+ export { A as AcceptedFrame, a as AnalysisCompleteFrame, b as AnalysisStartedFrame, D as DeltaFrame, c as DoneFrame, E as ErrorFrame, d as EverfurRequest, e as EverfurRequestBase, F as Frame, f as FrameBase, g as FrameKind, H as HeartbeatFrame, h as HttpMethod, M as MultipartBody, T as TransportPort, U as UnknownFrame, i as UrgencyLevel } from '../../config.d-BQgrIDdu.cjs';
8
9
  export { B as Brand, C as ConversationId, P as PetRef, R as RecordsRequestId, U as UserRef, _ as __brand } from '../../ids.d-B2GAAifq.cjs';
9
10
  export { E as EverfurResult } from '../../EverfurResult.d-BFH-3s6E.cjs';
10
11
  export { E as ErrorPolicyPort } from '../../ErrorPolicyPort.d-DirW9hgO.cjs';
11
- import '../../requestFunnel.d-CR4akGCY.cjs';
12
+ import '../../requestFunnel.d-JoqddYSx.cjs';
12
13
 
13
14
  interface EverfurConsentToggleProps {
14
15
  /** Which act this row is. One row is one act; two acts are two rows, never one switch. */
@@ -1,14 +1,15 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  import { ReactNode, CSSProperties } from 'react';
2
- import { E as EverfurConsentScope } from '../../copy.d-D_VVj01o.js';
3
- export { C as CONSENT_COPY, a as CONSENT_SCOPE_COPY, b as CONSENT_VERSION_MAX, c as ConsentRepository, d as ConsentRepositoryDeps, e as ConsentRowView, f as ConsentRuntime, g as ConsentScopeCopy, h as EVERFUR_CONSENT_SCOPES, i as EverfurConsentDecision, j as EverfurConsentOptions, k as EverfurConsentScopeState, l as EverfurConsentState, m as EverfurConsentStatus, n as EverfurConsentVerdict, o as consentRowView, p as createConsentRepository, q as createConsentRepositoryOver, r as isEverfurConsentScope, u as useEverfurConsent, s as useEverfurConsentRepository } from '../../copy.d-D_VVj01o.js';
3
+ import { E as EverfurConsentScope } from '../../copy.d-HV9fU5kh.js';
4
+ export { C as CONSENT_COPY, a as CONSENT_SCOPE_COPY, b as CONSENT_VERSION_MAX, c as ConsentRepository, d as ConsentRepositoryDeps, e as ConsentRowView, f as ConsentRuntime, g as ConsentScopeCopy, h as EVERFUR_CONSENT_SCOPES, i as EverfurConsentDecision, j as EverfurConsentOptions, k as EverfurConsentScopeState, l as EverfurConsentState, m as EverfurConsentStatus, n as EverfurConsentVerdict, o as consentRowView, p as createConsentRepository, q as createConsentRepositoryOver, r as isEverfurConsentScope, u as useEverfurConsent, s as useEverfurConsentRepository } from '../../copy.d-HV9fU5kh.js';
4
5
  import { E as EverfurError } from '../../EverfurError.d-8NHtlgzA.js';
5
6
  export { a as EverfurErrorCategory, b as EverfurErrorCode } from '../../EverfurError.d-8NHtlgzA.js';
6
- export { A as AuthContext, I as IdentityProvider, M as MintedToken, T as TokenProvider } from '../../identity.d-BksOEa6m.js';
7
- export { A as AcceptedFrame, a as AnalysisCompleteFrame, b as AnalysisStartedFrame, D as DeltaFrame, c as DoneFrame, E as ErrorFrame, d as EverfurRequest, e as EverfurRequestBase, F as Frame, f as FrameBase, g as FrameKind, H as HeartbeatFrame, h as HttpMethod, M as MultipartBody, T as TransportPort, U as UnknownFrame, i as UrgencyLevel } from '../../config.d-zd2eTb2L.js';
7
+ export { A as AuthContext, I as IdentityProvider, M as MintedToken, T as TokenProvider } from '../../identity.d-Be2Es9Td.js';
8
+ export { A as AcceptedFrame, a as AnalysisCompleteFrame, b as AnalysisStartedFrame, D as DeltaFrame, c as DoneFrame, E as ErrorFrame, d as EverfurRequest, e as EverfurRequestBase, F as Frame, f as FrameBase, g as FrameKind, H as HeartbeatFrame, h as HttpMethod, M as MultipartBody, T as TransportPort, U as UnknownFrame, i as UrgencyLevel } from '../../config.d-XSMThgVj.js';
8
9
  export { B as Brand, C as ConversationId, P as PetRef, R as RecordsRequestId, U as UserRef, _ as __brand } from '../../ids.d-B2GAAifq.js';
9
10
  export { E as EverfurResult } from '../../EverfurResult.d-D_-254ZY.js';
10
11
  export { E as ErrorPolicyPort } from '../../ErrorPolicyPort.d-68yrE3BE.js';
11
- import '../../requestFunnel.d-DFf9C__p.js';
12
+ import '../../requestFunnel.d-YabU6G-Z.js';
12
13
 
13
14
  interface EverfurConsentToggleProps {
14
15
  /** Which act this row is. One row is one act; two acts are two rows, never one switch. */
@@ -1,3 +1,4 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  "use client";
2
3
  import{createContext,useMemo,useState,useRef,useCallback,useEffect,useContext,createElement,Component}from"react";import{jsxs,jsx}from"react/jsx-runtime";var CONSENT_COPY=/* @__PURE__ */Object.freeze({loading:"Loading",retry:"Try again",signedOut:"Sign in required",changeable:"You can change this at any time.",saving:"Saving"}),CONSENT_SCOPE_COPY=/* @__PURE__ */Object.freeze({transcript_exposure:/* @__PURE__ */Object.freeze({title:"Conversation sharing",body:partner=>`Let ${partner} read the conversations you have with Everfur.`}),partner_context:/* @__PURE__ */Object.freeze({title:"Pet details",body:partner=>`Let Everfur use the pet details ${partner} already holds as background in your conversations.`})});function consentRowView(state,scope){if(state.status==="signed_out")return{kind:"signedOut"};let entry=state.scopes.find(candidate=>candidate.scope===scope);return entry===void 0?state.error!==null?{kind:"failed",error:state.error}:{kind:"loading"}:entry.loaded?{kind:"row",scope:entry.scope,granted:entry.granted,hasDecision:entry.hasDecision,saving:entry.saving,error:entry.error}:entry.error!==null?{kind:"failed",error:entry.error}:{kind:"loading"}}var CONTRACT_RETRYABILITY=/* @__PURE__ */Object.freeze([
3
4
  /* @__PURE__ */Object.freeze({wireCode:"AccessDeniedException",envelope:"http_envelope",httpStatus:403,retryable:false}),
@@ -1,3 +1,4 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  "use client";
2
3
  "use strict";var react=require("react"),jsxRuntime=require("react/jsx-runtime"),reactDom=require("react-dom");var HEALTH_PLAN_COPY=/* @__PURE__ */Object.freeze({loading:"Loading",retry:"Try again",signedOut:"Sign in required",addToCart:"Add to cart",added:"Added",remove:"Remove",checkout:"Checkout",subtotal:"Subtotal",sample:"Sample",cartEmpty:"Your cart is empty.",choosePet:"Choose a pet",emptyTitle:"",emptyBody:"",emptyAsk:""}),COPY_ASKS=/* @__PURE__ */Object.freeze({emptyTitle:true,emptyBody:true,emptyAsk:true}),HEALTH_PLAN_REASON_LABELS=/* @__PURE__ */Object.freeze({dna:"",records:"Records",inside:"Inside",profile:""}),HEALTH_PLAN_TEMPLATES=/* @__PURE__ */Object.freeze({planTitle:petName=>`${petName}'s care plan`,cartLabel:brand=>`${brand} cart`}),HEALTH_PLAN_COPY_PLACEHOLDERS=/* @__PURE__ */Object.freeze([...Object.keys(HEALTH_PLAN_COPY).filter(key=>COPY_ASKS[key]===true&&HEALTH_PLAN_COPY[key]==="").map(key=>`HEALTH_PLAN_COPY.${key}`),...["profile"].filter(kind=>HEALTH_PLAN_REASON_LABELS[kind]==="").map(kind=>`HEALTH_PLAN_REASON_LABELS.${kind}`)]);var HEALTH_PLAN_LAYOUT_DEFAULTS=/* @__PURE__ */Object.freeze({imageVariant:"wide",reasonVariant:"pills",cartBarVisibility:"whenItems",cartBarPlacement:"sticky",addButtonSize:"full",addedVariant:"link",categoryVariant:"text",showCategory:false,cardShadow:false,cardBorder:true});function healthPlanWrites(plan,setInPlan){return{setInPlan:setInPlan,addAll:async()=>{let missing=(plan?.items??[]).filter(item=>!item.inPlan);return(await Promise.all(missing.map(item=>setInPlan(item.productId,true)))).every(Boolean)}}}function showHealthPlanCartBar(visibility,count){return(visibility??HEALTH_PLAN_LAYOUT_DEFAULTS.cartBarVisibility)==="always"||count>0}var HEALTH_PLAN_CARD_OPTION_KEYS=/* @__PURE__ */Object.freeze(["showCategory","cardShadow","cardBorder","addButtonSize","addButtonFontSize","addedVariant","categoryVariant","cardPadding","itemTitleSize","itemTitleWeight","priceSize","priceWeight","reasonTextSize","reasonLabelWidth","reasonGap"]);function pickHealthPlanCardOptions(props){let out={};for(let key of HEALTH_PLAN_CARD_OPTION_KEYS)props[key]!==void 0&&(out[key]=props[key]);return out}function healthPlanAddButtonHeight(size){let height=typeof size=="number"&&Number.isFinite(size)&&size>0?size:size==="compact"?32:44;return{height:height,hit:Math.max(44,height)}}function healthPlanLength(value){return typeof value=="number"&&Number.isFinite(value)&&value>=0?value:null}function healthPlanTitleOffset(titleGap,sectionGap){let gap=healthPlanLength(titleGap);return gap===null?0:gap-sectionGap}function isHealthPlanSessionRequired(error){return error!==null&&(error.reasonCode==="session_required"||error.code==="sessionRequired")}var DockContext=react.createContext(null);function HealthPlanCartScope({children:children}){let[dock,setDock]=react.useState(null),store=react.useMemo(()=>({dock:dock,publish:setDock}),[dock]);return react.createElement(DockContext.Provider,{value:store},children)}function useHealthPlanCartDock(){return react.useContext(DockContext)?.dock??null}function usePublishHealthPlanCart(enabled,cart,busy,petRef,plan,setInPlan){let publish=react.useContext(DockContext)?.publish,latest=react.useRef(setInPlan);react.useEffect(()=>{latest.current=setInPlan},[setInPlan]);let writes=react.useMemo(()=>healthPlanWrites(plan,(productId,inPlan)=>latest.current(productId,inPlan)),[plan]);react.useEffect(()=>{if(!(publish===void 0||!enabled))return publish(/* @__PURE__ */Object.freeze({cart:cart,busy:busy,petRef:petRef,plan:plan,...writes})),()=>publish(null)},[publish,enabled,cart,busy,petRef,plan,writes])}function healthPlanPetWords(name,sex){let n=name?.trim()??"",named=n===""?"your pet":n,Named=n===""?"Your pet":n;return sex==="female"?{name:named,Name:Named,poss:"her",Poss:"Her",obj:"her"}:sex==="male"?{name:named,Name:Named,poss:"his",Poss:"His",obj:"him"}:{name:named,Name:Named,poss:`${named}'s`,Poss:`${Named}'s`,obj:named}}var cartRenewal=p=>p===null?"":`${p.productName} renews every ${p.intervalDays} days at ${p.box??""} until you cancel; skip or cancel anytime in the app.`,HEALTH_PLAN_NO_SHIP_DAY_COPY=/* @__PURE__ */Object.freeze({onceFine:"",cartFine:cartRenewal,startedWhat:()=>""});function healthPlanFocusCopyFor(pet){let w=healthPlanPetWords(pet.name,pet.sex),nameOf=p=>p.petName?.trim()||w.name,NameOf=p=>p.petName?.trim()||w.Name,copy=/* @__PURE__ */Object.freeze({jumpKicker:(p,subscribed)=>subscribed?`In ${w.poss} plan, every ${p.intervalDays} days`:p.offer?`${p.discountPercent}% off ${w.poss} first box`:p.intervalDays>0?`Ships every ${p.intervalDays} days`:copy.onceLine(p),optionsLabel:"How to buy",subscribe:"Subscribe",bestValue:"Best value",subscribeLine:p=>p.offer?`First box, then ${p.box??""}`:`${p.box??""} every ${p.intervalDays} days`,priceLine:p=>p.offer?`${p.discountPercent}% off the first box. Ships every ${p.intervalDays} days.`:p.intervalDays>0?`Ships every ${p.intervalDays} days.`:copy.onceOffer(p),once:"One box",onceLine:p=>p.onceDiscountPercent>0?`${p.onceDiscountPercent}% off, ships once`:"Ships once",buyOnce:p=>`Buy one box, ${p.once??p.box??""}`,subscribed:"Subscribed",subscribedLine:(p,next)=>next===null?`Every ${p.intervalDays} days`:`Every ${p.intervalDays} days · next box ${next}`,manage:"Manage",checkoutKicker:"Checkout",checkoutTitle:p=>`Checkout: ${p.productName}`,checkoutOffer:p=>`${p.discountPercent}% off your first box.`,shipsEvery:"Ships every",days:n=>`${n} days`,buyOnceOption:"Buy once",checkoutGo:(_p,subscribe,today)=>`${subscribe?"Subscribe":"Buy now"} · ${today} today`,renews:p=>`Renews every ${p.intervalDays} days at ${p.box??""} until you cancel; skip or cancel anytime in the app.`,onceFine:"One box, ships tomorrow.",onceOffer:p=>p.onceDiscountPercent>0?`${p.onceDiscountPercent}% off, ships once.`:"Ships once.",checkoutNote:"",close:"Close",startedTitle:p=>`${NameOf(p)}'s plan has started.`,orderedTitle:()=>"Order placed.",startedWhat:p=>`${p.productName} ships tomorrow.`,startedNote:"",startedSteps:"What happens next",tomorrow:"Tomorrow",firstBoxShips:`${w.Poss} first box ships.`,trackingComesByText:"Tracking comes by text.",checkin:q=>q===null?"A 2-week check-in by text.":`A 2-week check-in by text: ${q}`,refill:`A text 3 days before ${w.poss} next box. Reply SKIP to skip it.`,nextBoxShips:p=>`${w.Poss} next box ships, ${p.box??""}.`,startedDone:`Back to ${w.poss} plan`,manageKicker:"Your subscription",manageTitle:p=>`Manage ${p.productName}`,skip:"Skip the next box",cancel:"Cancel subscription",skipped:(_p,next)=>next===null?"Skipped.":`Skipped. ${w.Poss} next box ships ${next}.`,cancelled:p=>`${p.productName} is cancelled. Restart it from ${w.poss} plan anytime.`,orders:"Orders",startedHeader:"Subscribed",placedHeader:"Order placed",cartCheckoutTitle:"Checkout",orderNote:"",cartLabel:n=>n>0?`Cart, ${n} item${n>1?"s":""}`:"Cart, empty",addToCart:price=>`Add to cart · ${price}`,viewCart:"View cart",addedToCart:(p,subscription)=>`${p.productName} is in your cart${subscription?", as a subscription":""}.`,removedFromCart:name=>`${name} is out of your cart.`,cartTitle:"Cart",cartEmptyTitle:"Your cart is empty",cartEmptyBody:p=>`${NameOf(p)}'s plan pick lands here when you add it.`,seeOrders:`See ${w.poss} orders`,quantityLabel:name=>`How many: ${name}`,fewer:"One fewer",more:"One more",remove:"Remove",cartSubLine:p=>p.offer?`First box ${p.discountPercent}% off, then ${p.box??""} every ${p.intervalDays} days`:`Every ${p.intervalDays} days`,cartOnceLine:(p,subscribed)=>subscribed?`An extra box. ${w.Poss} plan keeps shipping.`:p.onceDiscountPercent>0?`One box, ${p.onceDiscountPercent}% off`:"One box",cartModeLabel:name=>`How to buy ${name}`,cartModeSubscribe:p=>p.offer?`Subscribe, ${p.discountPercent}% off the first box`:"Subscribe",cartModeOnce:p=>p.onceDiscountPercent>0?`One box, ${p.onceDiscountPercent}% off`:"One box",subtotal:"Subtotal",shipping:"Shipping",shippingValue:"",shippingTag:"",total:"Total",dueToday:"Due today",thenRenews:p=>`Then ${p.productName}`,renewsEvery:p=>`${p.box??""} every ${p.intervalDays} days`,checkoutCart:total=>`Checkout · ${total}`,cartOneAtATime:"",cartSubscriptionApart:"",cartItemSubscription:p=>`Subscription, every ${p.intervalDays} days`,cartItemQuantity:n=>`Qty ${n}`,placeOrder:(total,subscribe)=>`${subscribe?"Place order and subscribe":"Place order"} · ${total}`,cartFine:p=>`${p===null?"":`${cartRenewal(p)} `}Ships tomorrow.`,placedSteps:"What's coming",placedShips:"It ships.",placedArrives:"It arrives at home.",viewOrder:"View order",herSubscription:`${w.Poss} subscription`,nextBox:day=>`Next box ${day}`,everyDays:n=>`Every ${n} days`,ordersHeading:afterSubscription=>afterSubscription?"Orders":`${w.Poss} orders`,ordersFine:"",ordersEmptyTitle:"No orders yet",ordersEmptyBody:p=>`The boxes from ${nameOf(p)}'s plan show up here.`,moreOrders:"",orderSteps:["Ordered","Shipped","Out for delivery","Delivered"],subscriptionBox:"Subscription box",orderTitle:n=>n===null?"Order":`Order ${n}`,arrivesBy:day=>`Arrives by ${day}`,deliveredOn:day=>`Delivered ${day}`,expected:day=>`Expected ${day}`,tracking:"Tracking",trackingByText:"The tracking number comes by text when it ships.",trackOn:carrier=>`Track on ${carrier}`,trackLink:"",inThisOrder:"In this order",orderItemLine:(n,box)=>`Qty ${n}${box?" · subscription box":""}`,paidWith:"Paid with",buyAgain:"Buy again",orderHelp:"Get help with this order",addWeightTitle:`Add ${w.poss} weight to size ${w.poss} dose`,addWeightBody:`From a home scale or ${w.poss} last vet visit.`,connectRecordsTitle:`Connect ${w.poss} vet records`,connectRecordsBody:`${w.Poss} weight, visits and labs make ${w.poss} plan sharper.`,weightKicker:`${w.Poss} weight`,weightTitle:p=>`Add ${nameOf(p)}'s weight`,weightBody:`From a home scale or ${w.poss} last vet visit. ${w.Poss} plan uses it to size ${w.poss} dose.`,weightField:`${w.Poss} weight`,weightUnit:"lb",weightUnitKg:"kg",weightErrorKg:"Enter your pet’s weight",weightError:`Enter ${w.poss} weight in pounds, like 14.1.`,weightSave:`Save ${w.poss} weight`,weightSaved:lb=>`Saved: ${lb} lb. ${w.Poss} dose is sized for ${w.obj}.`,weightSavedKg:kg=>`Saved: ${kg} kg. ${w.Poss} dose is sized for ${w.obj}.`,checkoutFailed:"That didn't go through. Please try again.",builtWith:vet=>`Built with ${vet}`,fromVet:shortName=>`From ${shortName}`,waitVetTips:vet=>`Free tips from ${vet}, built around that risk`,signalsFit:count=>`${count} of ${count} signals fit ${w.Name}`,signalsValue:count=>`${count}/${count}`,noPick:`No supplement for this one. ${w.Poss} vet comes first.`,callYourVet:"Call your vet today",callAVet:"Call a vet today",saveForCheckup:`Save for ${w.poss} next checkup`,savedForCheckup:`Saved for ${w.poss} next checkup`,blanksLabel:`${w.Poss} three blanks`,blanksAsked:clinic=>`Asked ${clinic}`,blanksAskedNoClinic:"",blanksWaitPill:"2 to 5 days",blanksFilledKicker:`From ${w.poss} vet records`,blanksFilled:(filled,total)=>`${filled} of ${total} filled`,blanksWeight:`Keep ${w.obj} at `,blanksWeightSource:`From ${w.poss} vet visits`,blanksDose:(dose,product)=>`${dose} of ${product}`,blanksDoseSource:`Sized to ${w.poss} weight`,blanksShots:`${w.Poss} next shots are due `,blanksShotsSource:`From ${w.poss} clinic`,blankEmpty:"blank",recordsLanded:`${w.Poss} records are in. ${w.Poss} plan now uses ${w.poss} weight and ${w.poss} visits.`});return copy}var HEALTH_PLAN_FOCUS_COPY=healthPlanFocusCopyFor({sex:"female"});function formatHealthPlanDay(iso,locale){if(iso===null||!/^\d{4}-\d{2}-\d{2}$/.test(iso))return null;let d=/* @__PURE__ */new Date(`${iso}T00:00:00Z`);if(Number.isNaN(d.getTime()))return null;try{return new Intl.DateTimeFormat(locale??"en-US",{month:"short",day:"numeric",timeZone:"UTC"}).format(d)}catch{return iso}}function healthPlanPageDrawsWithoutItems(design){return design!=null&&(design.wait!==void 0||design.pick.hidden===true)}function withoutProductPart(design){return{...design,pick:{...design.pick,none:true,hidden:true}}}var NO_PLAN_ITEM=/* @__PURE__ */Object.freeze({productId:"",partnerSku:null,title:"",description:null,category:null,price:null,currency:null,imageUrl:null,url:null,reasons:[],inPlan:false,sample:false});var noopTelemetry=/* @__PURE__ */Object.freeze({track(){},trackExpectedFailure(){}});function ok(value,warning){/* @__PURE__ */
3
4
  return Object.freeze({ok:true,value:value})}function err(error){/* @__PURE__ */
@@ -406,7 +407,7 @@ return jsxRuntime.jsxs("article",{className:className,style:{...cardStyle,...sty
406
407
  /* @__PURE__ */jsxRuntime.jsx("h3",{style:titleStyle,children:item.title}),item.sample?/* @__PURE__ */jsxRuntime.jsx("span",{style:styles2.sample,children:HEALTH_PLAN_COPY.sample}):null,item.description===null?null:/* @__PURE__ */jsxRuntime.jsx("p",{style:styles2.body,children:item.description})]})]}):/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[item.imageUrl===null?null:/* @__PURE__ */jsxRuntime.jsx("img",{src:item.imageUrl,alt:"",style:styles2.image,loading:"lazy"}),category,
407
408
  /* @__PURE__ */jsxRuntime.jsxs("div",{style:styles2.head,children:[
408
409
  /* @__PURE__ */jsxRuntime.jsx("h3",{style:titleStyle,children:item.title}),priceNode]}),item.sample?/* @__PURE__ */jsxRuntime.jsx("span",{style:styles2.sample,children:HEALTH_PLAN_COPY.sample}):null,item.description===null?null:/* @__PURE__ */jsxRuntime.jsx("p",{style:styles2.body,children:item.description})]}),item.reasons.length===0?null:/* @__PURE__ */jsxRuntime.jsx("ul",{style:rows?reasonRowsStyle:styles2.reasons,children:item.reasons.map((reason,index)=>/* @__PURE__ */jsxRuntime.jsxs("li",{style:rows?styles2.reasonRow:reasonPillStyle,children:[HEALTH_PLAN_REASON_LABELS[reason.kind]===""?null:/* @__PURE__ */jsxRuntime.jsx("span",{style:rows?styles2.reasonRowKind:styles2.reasonKind,children:HEALTH_PLAN_REASON_LABELS[reason.kind]}),
409
- /* @__PURE__ */jsxRuntime.jsx("span",{style:rows?reasonRowTextStyle:reasonTextStyle,children:reason.text})]},`${reason.kind}-${index}`))}),renderFooter===void 0?null:/* @__PURE__ */jsxRuntime.jsx(HostRender,{resetKey:item,render:()=>renderFooter(item),fallback:null}),thumbnail?/* @__PURE__ */jsxRuntime.jsxs("div",{style:styles2.actionRow,children:[priceNode,control]}):control,error===null?null:/* @__PURE__ */jsxRuntime.jsx("p",{style:styles2.error,role:"alert",children:error.displayMessage})]})}function cardShadowCss(shadow,soft){if(shadow===true)return soft;if(typeof shadow=="string")return shadow.length>0&&shadow.length<=200?{boxShadow:shadow}:{};if(shadow===void 0||shadow===false)return{};let rgba=toRgba(shadow.color);if(rgba===null)return{};let alpha=Math.min(1,Math.max(0,rgba.a*(shadow.opacity??1)));return{boxShadow:`${shadow.offsetX??0}px ${shadow.offsetY}px ${Math.max(0,shadow.blur)}px rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${alpha})`}}var THUMB_SIZE=64;function makeStyles3(theme){let{color:color,radius:radius,space:space,type:type,slots:slots}=theme,line=size=>`${Math.round(size*type.lineHeight.snug)}px`,text2=(size,ink,weight)=>({margin:0,...faceCss(theme,weight),fontSize:size,lineHeight:line(size),color:ink}),cardInk=slots.planCard?.textColor??slots.card?.textColor,reasonLabelInk=slots.planReasonLabel?.textColor??slots.chip?.textColor??color.brandInk,addPaint={borderRadius:radius.pill,border:"none",backgroundColor:color.brand,color:color.text.onBrand,cursor:"pointer",...faceCss(theme,"bold")};return{card:{boxSizing:"border-box",display:"flex",flexDirection:"column",gap:space.sm,padding:space.lg,borderRadius:radius.lg,border:`1px solid ${color.brandBorder}`,backgroundColor:color.surface,...slotCss(slots.card,1),...slotCss(slots.planCard,1)},cardShadow:{boxShadow:`0 ${space.xs}px ${space.md}px ${withAlpha(color.shadow,.08)??"transparent"}`},category:text2(type.size.caption,cardInk??color.text.secondary,"regular"),categoryLabel:{...text2(type.size.micro,reasonLabelInk,"regular"),...faceCss(theme,"monoMedium"),textTransform:"uppercase",letterSpacing:type.letterSpacing.monoWide},addPressed:{display:"inline-flex",alignItems:"center",borderRadius:radius.pill,border:"none",backgroundColor:color.brandInk,color:readableOn(color.brandInk),cursor:"pointer",...faceCss(theme,"bold"),...slots.primaryButton?.borderRadius===void 0?null:{borderRadius:slots.primaryButton.borderRadius}},image:{width:"100%",aspectRatio:"4 / 3",objectFit:"cover",borderRadius:radius.md,backgroundColor:color.surfaceSubtle},thumbHead:{display:"flex",alignItems:"flex-start",gap:space.md},thumb:{flex:"0 0 auto",width:THUMB_SIZE,height:THUMB_SIZE,objectFit:"cover",borderRadius:radius.md,backgroundColor:color.surfaceSubtle},thumbCopy:{display:"flex",flexDirection:"column",gap:space.xs,minWidth:0,flex:1},actionRow:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:space.sm},reasonRows:{listStyle:"none",margin:0,padding:0,display:"grid",gridTemplateColumns:"max-content 1fr",columnGap:space.lg,rowGap:space.sm},reasonRow:{display:"contents"},reasonRowKind:{...text2(type.size.micro,reasonLabelInk,"regular"),...faceCss(theme,"monoMedium"),textTransform:"uppercase",letterSpacing:type.letterSpacing.monoWide,paddingTop:2},reasonRowText:text2(type.size.caption,cardInk??color.text.secondary,"regular"),head:{display:"flex",alignItems:"baseline",justifyContent:"space-between",gap:space.sm},title:text2(type.size.body,cardInk??color.text.primary,"bold"),price:{...text2(type.size.body,cardInk??color.text.primary,"bold"),whiteSpace:"nowrap"},sample:{alignSelf:"flex-start",padding:`2px ${space.sm}px`,borderRadius:radius.pill,backgroundColor:color.badgeBgNeutral,...text2(type.size.caption,color.text.secondary,"bold")},body:text2(type.size.caption,cardInk??color.text.secondary,"regular"),reasons:{listStyle:"none",margin:0,padding:0,display:"flex",flexDirection:"column",gap:space.xs},reason:{display:"flex",alignItems:"baseline",gap:space.sm,padding:`${space.xs}px ${space.sm}px`,borderRadius:radius.md,backgroundColor:color.brandSofter,...slotCss(slots.chip,1)},reasonKind:{...text2(type.size.caption,slots.chip?.textColor??color.brandInk,"bold"),textTransform:"uppercase",letterSpacing:.4},reasonText:text2(type.size.caption,slots.chip?.textColor??color.text.secondary,"regular"),row:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:space.sm},added:text2(type.size.caption,color.brandInk,"bold"),add:{minHeight:44,padding:`0 ${space.lg}px`,...addPaint,fontSize:type.size.body,...slotCss(slots.primaryButton)},addCompactHit:{minHeight:44,padding:0,border:"none",background:"none",cursor:"pointer",display:"inline-flex",alignItems:"center",alignSelf:"flex-start"},addCompact:{display:"inline-flex",alignItems:"center",minHeight:32,padding:`0 ${space.md}px`,...addPaint,fontSize:type.size.caption,...slotCss(slots.primaryButton)},remove:{minHeight:44,padding:0,border:"none",background:"none",cursor:"pointer",...faceCss(theme,"bold"),fontSize:type.size.caption,color:color.linkInk,...slotCss(slots.link)},error:text2(type.size.caption,color.errorRed,"regular")}}var WAITING=/* @__PURE__ */new Set(["requested","awaiting_clinic","awaiting_upload","received","parsing","in_review"]),VACCINE=/vaccin|rabies|dhpp|booster|bordetella|lepto|lyme|parvo|distemper/i,LB_PER_KG2=2.20462262;function dayMs(value){if(value==null||value.length===0)return null;let ms=Date.parse(/^\d{4}-\d{2}-\d{2}$/.test(value)?`${value}T00:00:00Z`:value);return Number.isNaN(ms)?null:ms}function kilograms(value,unit){return value===null||!Number.isFinite(value)||value<=0||unit===null?null:/^\s*kg|kilo/i.test(unit)?value:/^\s*(lb|lbs|pound)/i.test(unit)?value/LB_PER_KG2:null}function healthPlanRecordsWeightKg(record){if(record===null||record.isEmpty||record.withheld)return null;let readings=[];for(let series of record.entitySeries)if(series.key.startsWith("body_weight"))for(let point of series.points){if(point.origin==="owner_reported")continue;let at=dayMs(point.at),unit=point.display?.replace(/^[\d.,\s]+/,"")??null,kg=kilograms(point.value,unit);at!==null&&kg!==null&&readings.push({at:at,kg:kg})}for(let entity of record.entities){if(entity.category!=="body_weight"||entity.origin==="owner_reported")continue;let at=dayMs(entity.observedAt),kg=kilograms(entity.value===null?null:Number.parseFloat(entity.value),entity.unit);at!==null&&kg!==null&&readings.push({at:at,kg:kg})}return readings.length===0?null:(readings.sort((a,b)=>b.at-a.at),readings[0]?.kg??null)}function healthPlanNextShotsAt(record,today){if(record===null||record.isEmpty||record.withheld)return null;let next=null;for(let item of record.forwardLooking){if(!VACCINE.test(item.title))continue;let due=dayMs(item.dueAt);due===null||due<today||(next===null||due<next)&&(next=due)}return next}function healthPlanBlanksFacts(input,now){let asked=input.requests.filter(r=>r.source==="clinic_request").slice().sort((a,b)=>(dayMs(b.createdAt)??0)-(dayMs(a.createdAt)??0))[0];if(asked===void 0)return null;let clinicName=asked.clinicName?.trim()?asked.clinicName.trim():null;if(WAITING.has(asked.status))return{phase:"wait",requestId:String(asked.id),clinicName:clinicName,weightKg:null,nextShotsAt:null};if(asked.status!=="published"||input.record===null||input.record.isEmpty||input.record.withheld)return null;let today=Math.floor(now/864e5)*864e5;return{phase:"filled",requestId:String(asked.id),clinicName:clinicName,weightKg:healthPlanRecordsWeightKg(input.record),nextShotsAt:healthPlanNextShotsAt(input.record,today)}}var COARSE_NOW_TICK_MS=3600*1e3;function useCoarseNow(fixed,shown=true){let[now,setNow]=react.useState(()=>Date.now()),first=react.useRef(true);return react.useEffect(()=>{if(first.current){first.current=false;return}shown&&setNow(Date.now())},[fixed,shown]),react.useEffect(()=>{if(!shown)return;let tick=setInterval(()=>setNow(Date.now()),COARSE_NOW_TICK_MS),onVisible=()=>{document.visibilityState==="visible"&&setNow(Date.now())},doc=typeof document<"u"&&typeof document.addEventListener=="function"?document:null;return doc?.addEventListener("visibilitychange",onVisible),()=>{clearInterval(tick),doc?.removeEventListener("visibilitychange",onVisible)}},[fixed,shown]),now}function probeOver(useRecords){return function(props){let{status:status,requests:requests,record:record,refresh:refresh}=useRecords({petRef:props.petRef}),{onRead:onRead,petRef:petRef}=props,now=useCoarseNow(),blanks=react.useMemo(()=>healthPlanBlanksFacts({requests:requests,record:record},now),[requests,record,now]);react.useEffect(()=>{onRead({missing:status==="empty",blanks:blanks})},[status,blanks,onRead]);let reread=react.useRef(refresh);return reread.current=refresh,react.useEffect(()=>onHealthPlanRecordsLanded((pet,source)=>{pet===petRef&&source==="host"&&reread.current()}),[petRef]),null}}var Nothing=()=>null,LazyProbe=react.lazy(()=>import("@everfur/sdk/web/records").then(m=>({default:probeOver(m.useEverfurRecords)}),()=>({default:Nothing})));function RecordsMissingProbe(props){/* @__PURE__ */
410
+ /* @__PURE__ */jsxRuntime.jsx("span",{style:rows?reasonRowTextStyle:reasonTextStyle,children:reason.text})]},`${reason.kind}-${index}`))}),renderFooter===void 0?null:/* @__PURE__ */jsxRuntime.jsx(HostRender,{resetKey:item,render:()=>renderFooter(item),fallback:null}),thumbnail?/* @__PURE__ */jsxRuntime.jsxs("div",{style:styles2.actionRow,children:[priceNode,control]}):control,error===null?null:/* @__PURE__ */jsxRuntime.jsx("p",{style:styles2.error,role:"alert",children:error.displayMessage})]})}function cardShadowCss(shadow,soft){if(shadow===true)return soft;if(typeof shadow=="string")return shadow.length>0&&shadow.length<=200?{boxShadow:shadow}:{};if(shadow===void 0||shadow===false)return{};let rgba=toRgba(shadow.color);if(rgba===null)return{};let alpha=Math.min(1,Math.max(0,rgba.a*(shadow.opacity??1)));return{boxShadow:`${shadow.offsetX??0}px ${shadow.offsetY}px ${Math.max(0,shadow.blur)}px rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${alpha})`}}var THUMB_SIZE=64;function makeStyles3(theme){let{color:color,radius:radius,space:space,type:type,slots:slots}=theme,line=size=>`${Math.round(size*type.lineHeight.snug)}px`,text2=(size,ink,weight)=>({margin:0,...faceCss(theme,weight),fontSize:size,lineHeight:line(size),color:ink}),cardInk=slots.planCard?.textColor??slots.card?.textColor,reasonLabelInk=slots.planReasonLabel?.textColor??slots.chip?.textColor??color.brandInk,addPaint={borderRadius:radius.pill,border:"none",backgroundColor:color.brand,color:color.text.onBrand,cursor:"pointer",...faceCss(theme,"bold")};return{card:{boxSizing:"border-box",display:"flex",flexDirection:"column",gap:space.sm,padding:space.lg,borderRadius:radius.lg,border:`1px solid ${color.brandBorder}`,backgroundColor:color.surface,...slotCss(slots.card,1),...slotCss(slots.planCard,1)},cardShadow:{boxShadow:`0 ${space.xs}px ${space.md}px ${withAlpha(color.shadow,.08)??"transparent"}`},category:text2(type.size.caption,cardInk??color.text.secondary,"regular"),categoryLabel:{...text2(type.size.micro,reasonLabelInk,"regular"),...faceCss(theme,"monoMedium"),textTransform:"uppercase",letterSpacing:type.letterSpacing.monoWide},addPressed:{display:"inline-flex",alignItems:"center",borderRadius:radius.pill,border:"none",backgroundColor:color.brandInk,color:readableOn(color.brandInk),cursor:"pointer",...faceCss(theme,"bold"),...slots.primaryButton?.borderRadius===void 0?null:{borderRadius:slots.primaryButton.borderRadius}},image:{width:"100%",aspectRatio:"4 / 3",objectFit:"cover",borderRadius:radius.md,backgroundColor:color.surfaceSubtle},thumbHead:{display:"flex",alignItems:"flex-start",gap:space.md},thumb:{flex:"0 0 auto",width:THUMB_SIZE,height:THUMB_SIZE,objectFit:"cover",borderRadius:radius.md,backgroundColor:color.surfaceSubtle},thumbCopy:{display:"flex",flexDirection:"column",gap:space.xs,minWidth:0,flex:1},actionRow:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:space.sm},reasonRows:{listStyle:"none",margin:0,padding:0,display:"grid",gridTemplateColumns:"max-content 1fr",columnGap:space.lg,rowGap:space.sm},reasonRow:{display:"contents"},reasonRowKind:{...text2(type.size.micro,reasonLabelInk,"regular"),...faceCss(theme,"monoMedium"),textTransform:"uppercase",letterSpacing:type.letterSpacing.monoWide,paddingTop:2},reasonRowText:text2(type.size.caption,cardInk??color.text.secondary,"regular"),head:{display:"flex",alignItems:"baseline",justifyContent:"space-between",gap:space.sm},title:text2(type.size.body,cardInk??color.text.primary,"bold"),price:{...text2(type.size.body,cardInk??color.text.primary,"bold"),whiteSpace:"nowrap"},sample:{alignSelf:"flex-start",padding:`2px ${space.sm}px`,borderRadius:radius.pill,backgroundColor:color.badgeBgNeutral,...text2(type.size.caption,color.text.secondary,"bold")},body:text2(type.size.caption,cardInk??color.text.secondary,"regular"),reasons:{listStyle:"none",margin:0,padding:0,display:"flex",flexDirection:"column",gap:space.xs},reason:{display:"flex",alignItems:"baseline",gap:space.sm,padding:`${space.xs}px ${space.sm}px`,borderRadius:radius.md,backgroundColor:color.brandSofter,...slotCss(slots.chip,1)},reasonKind:{...text2(type.size.caption,slots.chip?.textColor??color.brandInk,"bold"),textTransform:"uppercase",letterSpacing:.4},reasonText:text2(type.size.caption,slots.chip?.textColor??color.text.secondary,"regular"),row:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:space.sm},added:text2(type.size.caption,color.brandInk,"bold"),add:{minHeight:44,padding:`0 ${space.lg}px`,...addPaint,fontSize:type.size.body,...slotCss(slots.primaryButton)},addCompactHit:{minHeight:44,padding:0,border:"none",background:"none",cursor:"pointer",display:"inline-flex",alignItems:"center",alignSelf:"flex-start"},addCompact:{display:"inline-flex",alignItems:"center",minHeight:32,padding:`0 ${space.md}px`,...addPaint,fontSize:type.size.caption,...slotCss(slots.primaryButton)},remove:{minHeight:44,padding:0,border:"none",background:"none",cursor:"pointer",...faceCss(theme,"bold"),fontSize:type.size.caption,color:color.linkInk,...slotCss(slots.link)},error:text2(type.size.caption,color.errorRed,"regular")}}var WAITING=/* @__PURE__ */new Set(["requested","awaiting_clinic","awaiting_upload","received","parsing","in_review"]),VACCINE=/vaccin|rabies|dhpp|booster|bordetella|lepto|lyme|parvo|distemper/i,LB_PER_KG2=2.20462262;function dayMs(value){if(value==null||value.length===0)return null;let ms=Date.parse(/^\d{4}-\d{2}-\d{2}$/.test(value)?`${value}T00:00:00Z`:value);return Number.isNaN(ms)?null:ms}function kilograms(value,unit){return value===null||!Number.isFinite(value)||value<=0||unit===null?null:/^\s*kg|kilo/i.test(unit)?value:/^\s*(lb|lbs|pound)/i.test(unit)?value/LB_PER_KG2:null}function healthPlanRecordsWeightKg(record){if(record===null||record.isEmpty||record.withheld)return null;let readings=[];for(let series of record.entitySeries)if(series.key.startsWith("body_weight"))for(let point of series.points){if(point.origin==="owner_reported")continue;let at=dayMs(point.at),unit=point.display?.replace(/^[\d.,\s]+/,"")??null,kg=kilograms(point.value,unit);at!==null&&kg!==null&&readings.push({at:at,kg:kg})}for(let entity of record.entities){if(entity.category!=="body_weight"||entity.origin==="owner_reported")continue;let at=dayMs(entity.observedAt),kg=kilograms(entity.value===null?null:Number.parseFloat(entity.value),entity.unit);at!==null&&kg!==null&&readings.push({at:at,kg:kg})}return readings.length===0?null:(readings.sort((a,b)=>b.at-a.at),readings[0]?.kg??null)}function healthPlanNextShotsAt(record,today){if(record===null||record.isEmpty||record.withheld)return null;let next=null;for(let item of record.forwardLooking){if(!VACCINE.test(item.title))continue;let due=dayMs(item.dueAt);due===null||due<today||(next===null||due<next)&&(next=due)}return next}function latestClinicRequest(requests){return requests.filter(r=>r.source==="clinic_request").slice().sort((a,b)=>(dayMs(b.createdAt)??0)-(dayMs(a.createdAt)??0))[0]}function healthPlanRecordsHoldNoBlanks(input,now){let asked=latestClinicRequest(input.requests);if(asked===void 0||asked.status!=="published"||input.record===null||input.record.withheld)return false;let today=Math.floor(now/864e5)*864e5;return healthPlanRecordsWeightKg(input.record)===null&&healthPlanNextShotsAt(input.record,today)===null}function healthPlanBlanksFacts(input,now){let asked=latestClinicRequest(input.requests);if(asked===void 0)return null;let clinicName=asked.clinicName?.trim()?asked.clinicName.trim():null;if(WAITING.has(asked.status))return{phase:"wait",requestId:String(asked.id),clinicName:clinicName,weightKg:null,nextShotsAt:null};if(asked.status!=="published"||input.record===null||input.record.isEmpty||input.record.withheld)return null;let today=Math.floor(now/864e5)*864e5,weightKg=healthPlanRecordsWeightKg(input.record),nextShotsAt=healthPlanNextShotsAt(input.record,today);return weightKg===null&&nextShotsAt===null?null:{phase:"filled",requestId:String(asked.id),clinicName:clinicName,weightKg:weightKg,nextShotsAt:nextShotsAt}}var COARSE_NOW_TICK_MS=3600*1e3;function useCoarseNow(fixed,shown=true){let[now,setNow]=react.useState(()=>Date.now()),first=react.useRef(true);return react.useEffect(()=>{if(first.current){first.current=false;return}shown&&setNow(Date.now())},[fixed,shown]),react.useEffect(()=>{if(!shown)return;let tick=setInterval(()=>setNow(Date.now()),COARSE_NOW_TICK_MS),onVisible=()=>{document.visibilityState==="visible"&&setNow(Date.now())},doc=typeof document<"u"&&typeof document.addEventListener=="function"?document:null;return doc?.addEventListener("visibilitychange",onVisible),()=>{clearInterval(tick),doc?.removeEventListener("visibilitychange",onVisible)}},[fixed,shown]),now}function probeOver(useRecords){return function(props){let{status:status,requests:requests,record:record,refresh:refresh}=useRecords({petRef:props.petRef}),{onRead:onRead,petRef:petRef}=props,now=useCoarseNow(),blanks=react.useMemo(()=>healthPlanBlanksFacts({requests:requests,record:record},now),[requests,record,now]),heldNone=react.useMemo(()=>healthPlanRecordsHoldNoBlanks({requests:requests,record:record},now),[requests,record,now]);react.useEffect(()=>{onRead({missing:status==="empty"||heldNone,blanks:blanks})},[status,heldNone,blanks,onRead]);let reread=react.useRef(refresh);return reread.current=refresh,react.useEffect(()=>onHealthPlanRecordsLanded((pet,source)=>{pet===petRef&&source==="host"&&reread.current()}),[petRef]),null}}var Nothing=()=>null,LazyProbe=react.lazy(()=>import("@everfur/sdk/web/records").then(m=>({default:probeOver(m.useEverfurRecords)}),()=>({default:Nothing})));function RecordsMissingProbe(props){/* @__PURE__ */
410
411
  return jsxRuntime.jsx(react.Suspense,{fallback:null,children:/* @__PURE__ */jsxRuntime.jsx(LazyProbe,{petRef:props.petRef,onRead:props.onRead})})}function EverfurHealthPlan(props){let guarded=guardHostProps(props,["onCheckout","onAvailability","onAsk"]),focus=react.useMemo(()=>{let f=props.focus;if(f===void 0)return;let voids=guardHostProps(f,["onBuy","onMore","onExtra","onAddToVisit","onOverlayChange","onSubscriptionChange","onOneBoxOrder","navigate"]),{renderIcon:renderIcon,overlayContainer:overlayContainer}=f;return{...voids,...renderIcon?{renderIcon:(icon,className)=>callHost(renderIcon,icon,className)??null}:{},...overlayContainer?{overlayContainer:layer=>callHost(overlayContainer,layer)??null}:{}}},[props.focus]),focusOn=useEverfurPresentation(props.presentation?.healthPlanLayout===void 0?void 0:{healthPlanLayout:props.presentation.healthPlanLayout}).healthPlanLayout==="focus_plan"?focus??NO_FOCUS_OPTIONS:void 0,planProps={...guarded};delete planProps.focus,delete planProps.presentation,delete planProps.lifecycle,delete planProps.refreshKey;let{lifecycle:lifecycle,refreshKey:refreshKey}=guarded,lifecyclePort=react.useMemo(()=>lifecycle===void 0?createBrowserLifecycle():lifecycle,[lifecycle]),theme=useEverfurTheme(),styles2=react.useMemo(()=>makeStyles4(theme),[theme]),plan=useEverfurHealthPlan({...guarded.petRef===void 0?{}:{petRef:guarded.petRef},lifecycle:lifecyclePort,...refreshKey===void 0?{}:{refreshKey:refreshKey}});return plan.status==="signedOut"?/* @__PURE__ */jsxRuntime.jsx("section",{className:guarded.className,style:{...styles2.page,...guarded.style},children:/* @__PURE__ */jsxRuntime.jsx("p",{style:styles2.body,children:HEALTH_PLAN_COPY.signedOut})}):/* @__PURE__ */jsxRuntime.jsx(CapabilityGate,{capability:"healthPlan",...guarded.renderDisabled?{renderDisabled:guarded.renderDisabled}:{},style:guarded.style,className:guarded.className,children:/* @__PURE__ */jsxRuntime.jsx(PlanBody,{...planProps,...focusOn?{focus:focusOn}:{},plan:plan,styles:styles2,theme:theme,pageLifecycle:lifecyclePort,...refreshKey===void 0?{}:{pageRefreshKey:refreshKey}})})}function PlanBody({plan:plan,styles:styles2,onCheckout:onCheckout,renderNotice:renderNotice,style:style,className:className,imageVariant:imageVariant,reasonVariant:reasonVariant,cartBarVisibility:cartBarVisibility,priceFormat:priceFormat,renderHeader:renderHeader,renderItemFooter:renderItemFooter,renderFooter:renderFooter,titleSize:titleSize,titleGap:titleGap,sectionGap:sectionGap,cartBarPlacement:cartBarPlacement,titleLineHeight:titleLineHeight,renderBetweenItems:renderBetweenItems,theme:theme,focus:focus,pageLifecycle:pageLifecycle,pageRefreshKey:pageRefreshKey,onAvailability:onAvailability,onAsk:onAsk,emptyCopy:emptyCopy,...cardProps}){let{pets:pets}=useEverfurPets(),petName=pets.find(pet=>pet.petRef===plan.petRef)?.name??null,title=plan.plan?.headline??(petName===null?null:HEALTH_PLAN_TEMPLATES.planTitle(petName)),docked=cartBarPlacement==="none";usePublishHealthPlanCart(docked&&plan.status==="ready",plan.cart,plan.pending.length>0,plan.petRef,plan.plan,plan.setInPlan);let telemetry=useHealthPlanTelemetry(),fromBackend=focus!==void 0&&focus.design===void 0,page=useHealthPlanPage({petRef:plan.petRef,enabled:fromBackend,...focus?.pageRepository?{repository:focus.pageRepository}:{},lifecycle:pageLifecycle,...pageRefreshKey===void 0?{}:{refreshKey:pageRefreshKey}});useHealthPlanOpened(plan.status==="ready"||plan.status==="empty",plan.petRef,plan.plan);let pageFallback=healthPlanPageFallback(fromBackend,page),itemless=plan.status==="empty"&&healthPlanPageDrawsWithoutItems(fromBackend?page.page?.page:focus?.design),itemlessPending=plan.status==="empty"&&fromBackend&&(page.phase==="loading"||page.phase==="idle")&&page.page===null,available=plan.status==="empty"?itemless?true:itemlessPending?void 0:false:plan.status==="ready"&&(!fromBackend||pageFallback==="list"||page.phase==="ready"&&page.page!==null)?true:void 0,availability=react.useRef(onAvailability);availability.current=onAvailability,react.useEffect(()=>{available!==void 0&&availability.current?.(available,plan.petRef)},[available,plan.petRef]);let[recordsRead,setRecordsRead]=react.useState(NO_RECORDS_READ),probeRecords=focus!==void 0&&focus.onConnectRecords!==void 0&&focus.recordsMissing===void 0&&focus.recordsBlanks===void 0&&plan.petRef!==null,probe=probeRecords&&plan.petRef!==null?/* @__PURE__ */jsxRuntime.jsx(RecordsMissingProbe,{petRef:plan.petRef,onRead:setRecordsRead},plan.petRef):null,gap=healthPlanLength(sectionGap),pageStyle=gap===null?styles2.page:{...styles2.page,gap:gap},size=healthPlanLength(titleSize),ratio=healthPlanLength(titleLineHeight),titlePx=size===null||size===0?theme.type.size.heading:size,titleStyle={...styles2.title,...size===null||size===0?null:{fontSize:size,lineHeight:`${Math.round(size*theme.type.lineHeight.snug)}px`},...ratio===null||ratio===0?null:{lineHeight:`${Math.round(titlePx*ratio)}px`},marginBottom:healthPlanTitleOffset(titleGap,gap??theme.space.lg)},titleNode=title===null?null:/* @__PURE__ */jsxRuntime.jsx("h2",{style:titleStyle,children:title}),writes=react.useMemo(()=>healthPlanWrites(plan.plan,plan.setInPlan),[plan.plan,plan.setInPlan]),context={petRef:plan.petRef,plan:plan.plan,cart:plan.cart,...writes},cardOptions=pickHealthPlanCardOptions(cardProps),between=(index,item)=>renderBetweenItems===void 0||index===0?null:/* @__PURE__ */jsxRuntime.jsx(HostRender,{resetKey:item,render:()=>renderBetweenItems(index,item),fallback:null}),header=renderHeader===void 0?null:/* @__PURE__ */jsxRuntime.jsx(HostRender,{resetKey:plan.plan,render:()=>renderHeader(context),fallback:null}),frame=(children,busy=false)=>/* @__PURE__ */jsxRuntime.jsx("section",{className:className,style:{...pageStyle,...style},"aria-busy":busy?"true":void 0,children:children});if(plan.status==="noPet")return frame(/* @__PURE__ */jsxRuntime.jsx("p",{style:styles2.body,children:HEALTH_PLAN_COPY.choosePet}));let loading=()=>/* @__PURE__ */jsxRuntime.jsxs("section",{className:className,style:{...styles2.page,...style},role:"status","aria-busy":"true","aria-label":HEALTH_PLAN_COPY.loading,children:[
411
412
  /* @__PURE__ */jsxRuntime.jsx("div",{style:styles2.skeletonTitle}),
412
413
  /* @__PURE__ */jsxRuntime.jsx("div",{style:styles2.skeletonCard}),
@@ -1,23 +1,24 @@
1
- import { E as EverfurChatTopCard } from '../../threadOptions.d-CnSfFVMr.cjs';
2
- export { a as EverfurHealthPlan, b as EverfurHealthPlanProps, H as HealthPlanFocus, c as HealthPlanFocusLayer, d as HealthPlanFocusOptions, e as HealthPlanFocusOverlay, f as HealthPlanFocusOverlayControls, g as HealthPlanFocusProps } from '../../threadOptions.d-CnSfFVMr.cjs';
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
2
+ import { E as EverfurChatTopCard } from '../../threadOptions.d-DBrmOwmb.cjs';
3
+ export { a as EverfurHealthPlan, b as EverfurHealthPlanProps, H as HealthPlanFocus, c as HealthPlanFocusLayer, d as HealthPlanFocusOptions, e as HealthPlanFocusOverlay, f as HealthPlanFocusOverlayControls, g as HealthPlanFocusProps } from '../../threadOptions.d-DBrmOwmb.cjs';
3
4
  import { ReactNode, CSSProperties } from 'react';
4
5
  import { E as EverfurError } from '../../EverfurError.d-8NHtlgzA.cjs';
5
6
  export { a as EverfurErrorCategory, b as EverfurErrorCode } from '../../EverfurError.d-8NHtlgzA.cjs';
6
- import { f as HealthPlanItem, p as HealthPlanFocusPart, i as HealthPlanSubscriptionRepository, q as HealthPlanSubscriptionQuote, g as HealthPlanSubscription, h as HealthPlanOneBoxOrder, r as HealthPlanPagePet, b as HealthPlanFocusDesign, H as HealthPlanPage } from '../../focus.d-Dsm39DjO.cjs';
7
- export { s as HEALTH_PLAN_FOCUS_COPY, t as HEALTH_PLAN_REASON_KINDS, m as HealthPlan, u as HealthPlanCartCheckoutRequest, v as HealthPlanCheckoutItem, l as HealthPlanCheckoutProvider, w as HealthPlanCheckoutRefusal, x as HealthPlanCheckoutRequest, y as HealthPlanCheckoutSession, z as HealthPlanCheckoutState, A as HealthPlanCheckoutStatus, d as HealthPlanFocusClassNames, c as HealthPlanFocusCopy, B as HealthPlanFocusExtra, e as HealthPlanFocusIcon, C as HealthPlanFocusPrices, D as HealthPlanFocusReasonRow, E as HealthPlanFocusReview, F as HealthPlanFocusSign, G as HealthPlanFocusStep, I as HealthPlanFocusWait, J as HealthPlanOneBoxOffer, K as HealthPlanOneBoxOrderPage, L as HealthPlanOneBoxOrderPageOptions, M as HealthPlanOrderStatus, N as HealthPlanOrderTracking, O as HealthPlanOrderTrackingStatus, j as HealthPlanPageRepository, a as HealthPlanPetWords, P as HealthPlanPurchase, Q as HealthPlanReason, o as HealthPlanReasonKind, n as HealthPlanRepository, R as HealthPlanRepositoryDeps, S as HealthPlanRuntime, k as HealthPlanShopOrder, T as HealthPlanSubscriptionRenewal, U as HealthPlanSubscriptionStatus, V as HealthPlanSubscriptionStep, W as HealthPlanSubscriptionSupply, X as HealthPlanTrackStep, Y as createHealthPlanPageRepository, Z as createHealthPlanPageRepositoryOver, _ as createHealthPlanRepository, $ as createHealthPlanRepositoryOver, a0 as createHealthPlanSubscriptionRepository, a1 as createHealthPlanSubscriptionRepositoryOver, a2 as formatHealthPlanDay, a3 as healthPlanCheckoutRefusal, a4 as healthPlanCheckoutSessionFromWire, a5 as healthPlanCheckoutStateFromWire, a6 as healthPlanFocusCopyFor, a7 as healthPlanFocusDesignFromWire, a8 as healthPlanFromWire, a9 as healthPlanOneBoxOrderFromWire, aa as healthPlanOneBoxOrderPageFromWire, ab as healthPlanOrderTrackingFromWire, ac as healthPlanPageFromWire, ad as healthPlanPetWords, ae as healthPlanSubscriptionFromWire, af as healthPlanSubscriptionQuoteFromWire, ag as isHealthPlanSubscriptionUnavailable } from '../../focus.d-Dsm39DjO.cjs';
8
- import { e as HealthPlanCardOptions, f as HealthPlanImageVariant, g as HealthPlanReasonVariant, a as HealthPlanPriceFormat, d as HealthPlanCart } from '../../usePresentation.d-CZS0qlLI.cjs';
9
- export { E as EverfurHealthPlanOptions, h as EverfurHealthPlanState, i as EverfurHealthPlanStatus, j as HEALTH_PLAN_COPY, k as HEALTH_PLAN_COPY_PLACEHOLDERS, l as HEALTH_PLAN_LAYOUT_DEFAULTS, m as HEALTH_PLAN_REASON_LABELS, n as HEALTH_PLAN_TEMPLATES, o as HealthPlanAddButtonSize, p as HealthPlanAddedVariant, H as HealthPlanBlanksFacts, q as HealthPlanBlanksPhase, r as HealthPlanCardShadow, s as HealthPlanCartBarPlacement, t as HealthPlanCartBarVisibility, u as HealthPlanCategoryVariant, c as HealthPlanEmptyCopy, v as HealthPlanFontWeight, w as HealthPlanHeaderContext, b as HealthPlanLayoutProps, x as HealthPlanPageContext, y as HealthPlanShadow, z as formatHealthPlanPrice, A as formatHealthPlanPriceWith, B as healthPlanBlanksFacts, C as healthPlanCart, D as healthPlanNextShotsAt, F as healthPlanRecordsWeightKg, G as isHealthPlanSessionRequired, I as showHealthPlanCartBar, J as useEverfurHealthPlan, K as useEverfurHealthPlanRepository, L as useEverfurPresentation } from '../../usePresentation.d-CZS0qlLI.cjs';
10
- export { H as HealthPlanCartDock, a as HealthPlanCartScope, b as HealthPlanCartScopeProps, c as HealthPlanController, d as HealthPlanNoVetListener, e as HealthPlanPageOptions, f as HealthPlanPagePhase, g as HealthPlanPageState, h as HealthPlanPhase, i as HealthPlanRecordsLandedListener, j as HealthPlanRecordsLandedSource, k as HealthPlanSnapshot, l as healthPlanNoVet, n as notifyHealthPlanRecordsLanded, o as onHealthPlanNoVet, m as onHealthPlanRecordsLanded, s as setHealthPlanNoVet, u as useHealthPlanCartDock, p as useHealthPlanPage, q as useHealthPlanPageRepository } from '../../planSignals.d-Cl6n5QpS.cjs';
7
+ import { f as HealthPlanItem, p as HealthPlanFocusPart, i as HealthPlanSubscriptionRepository, q as HealthPlanSubscriptionQuote, g as HealthPlanSubscription, h as HealthPlanOneBoxOrder, r as HealthPlanPagePet, b as HealthPlanFocusDesign, H as HealthPlanPage } from '../../focus.d-BHm_QtQ9.cjs';
8
+ export { s as HEALTH_PLAN_FOCUS_COPY, t as HEALTH_PLAN_REASON_KINDS, m as HealthPlan, u as HealthPlanCartCheckoutRequest, v as HealthPlanCheckoutItem, l as HealthPlanCheckoutProvider, w as HealthPlanCheckoutRefusal, x as HealthPlanCheckoutRequest, y as HealthPlanCheckoutSession, z as HealthPlanCheckoutState, A as HealthPlanCheckoutStatus, d as HealthPlanFocusClassNames, c as HealthPlanFocusCopy, B as HealthPlanFocusExtra, e as HealthPlanFocusIcon, C as HealthPlanFocusPrices, D as HealthPlanFocusReasonRow, E as HealthPlanFocusReview, F as HealthPlanFocusSign, G as HealthPlanFocusStep, I as HealthPlanFocusWait, J as HealthPlanOneBoxOffer, K as HealthPlanOneBoxOrderPage, L as HealthPlanOneBoxOrderPageOptions, M as HealthPlanOrderStatus, N as HealthPlanOrderTracking, O as HealthPlanOrderTrackingStatus, j as HealthPlanPageRepository, a as HealthPlanPetWords, P as HealthPlanPurchase, Q as HealthPlanReason, o as HealthPlanReasonKind, n as HealthPlanRepository, R as HealthPlanRepositoryDeps, S as HealthPlanRuntime, k as HealthPlanShopOrder, T as HealthPlanSubscriptionRenewal, U as HealthPlanSubscriptionStatus, V as HealthPlanSubscriptionStep, W as HealthPlanSubscriptionSupply, X as HealthPlanTrackStep, Y as createHealthPlanPageRepository, Z as createHealthPlanPageRepositoryOver, _ as createHealthPlanRepository, $ as createHealthPlanRepositoryOver, a0 as createHealthPlanSubscriptionRepository, a1 as createHealthPlanSubscriptionRepositoryOver, a2 as formatHealthPlanDay, a3 as healthPlanCheckoutRefusal, a4 as healthPlanCheckoutSessionFromWire, a5 as healthPlanCheckoutStateFromWire, a6 as healthPlanFocusCopyFor, a7 as healthPlanFocusDesignFromWire, a8 as healthPlanFromWire, a9 as healthPlanOneBoxOrderFromWire, aa as healthPlanOneBoxOrderPageFromWire, ab as healthPlanOrderTrackingFromWire, ac as healthPlanPageFromWire, ad as healthPlanPetWords, ae as healthPlanSubscriptionFromWire, af as healthPlanSubscriptionQuoteFromWire, ag as isHealthPlanSubscriptionUnavailable } from '../../focus.d-BHm_QtQ9.cjs';
9
+ import { e as HealthPlanCardOptions, f as HealthPlanImageVariant, g as HealthPlanReasonVariant, a as HealthPlanPriceFormat, d as HealthPlanCart } from '../../usePresentation.d-BcdCIuEU.cjs';
10
+ export { E as EverfurHealthPlanOptions, h as EverfurHealthPlanState, i as EverfurHealthPlanStatus, j as HEALTH_PLAN_COPY, k as HEALTH_PLAN_COPY_PLACEHOLDERS, l as HEALTH_PLAN_LAYOUT_DEFAULTS, m as HEALTH_PLAN_REASON_LABELS, n as HEALTH_PLAN_TEMPLATES, o as HealthPlanAddButtonSize, p as HealthPlanAddedVariant, H as HealthPlanBlanksFacts, q as HealthPlanBlanksPhase, r as HealthPlanCardShadow, s as HealthPlanCartBarPlacement, t as HealthPlanCartBarVisibility, u as HealthPlanCategoryVariant, c as HealthPlanEmptyCopy, v as HealthPlanFontWeight, w as HealthPlanHeaderContext, b as HealthPlanLayoutProps, x as HealthPlanPageContext, y as HealthPlanShadow, z as formatHealthPlanPrice, A as formatHealthPlanPriceWith, B as healthPlanBlanksFacts, C as healthPlanCart, D as healthPlanNextShotsAt, F as healthPlanRecordsWeightKg, G as isHealthPlanSessionRequired, I as showHealthPlanCartBar, J as useEverfurHealthPlan, K as useEverfurHealthPlanRepository, L as useEverfurPresentation } from '../../usePresentation.d-BcdCIuEU.cjs';
11
+ export { H as HealthPlanCartDock, a as HealthPlanCartScope, b as HealthPlanCartScopeProps, c as HealthPlanController, d as HealthPlanNoVetListener, e as HealthPlanPageOptions, f as HealthPlanPagePhase, g as HealthPlanPageState, h as HealthPlanPhase, i as HealthPlanRecordsLandedListener, j as HealthPlanRecordsLandedSource, k as HealthPlanSnapshot, l as healthPlanNoVet, n as notifyHealthPlanRecordsLanded, o as onHealthPlanNoVet, m as onHealthPlanRecordsLanded, s as setHealthPlanNoVet, u as useHealthPlanCartDock, p as useHealthPlanPage, q as useHealthPlanPageRepository } from '../../planSignals.d-Dha2CMDF.cjs';
11
12
  import { E as EverfurResult } from '../../EverfurResult.d-BFH-3s6E.cjs';
12
13
  import { P as PetRef } from '../../ids.d-B2GAAifq.cjs';
13
14
  export { B as Brand, C as ConversationId, R as RecordsRequestId, U as UserRef, _ as __brand } from '../../ids.d-B2GAAifq.cjs';
14
15
  import { L as LifecyclePort } from '../../LifecyclePort.d-Cr1p33a7.cjs';
15
- export { A as AuthContext, I as IdentityProvider, M as MintedToken, T as TokenProvider } from '../../identity.d-CioQhZrq.cjs';
16
- export { A as AcceptedFrame, a as AnalysisCompleteFrame, b as AnalysisStartedFrame, D as DeltaFrame, c as DoneFrame, E as ErrorFrame, d as EverfurRequest, e as EverfurRequestBase, F as Frame, f as FrameBase, g as FrameKind, H as HeartbeatFrame, h as HttpMethod, M as MultipartBody, T as TransportPort, U as UnknownFrame, i as UrgencyLevel } from '../../config.d-C0WgjutL.cjs';
16
+ export { A as AuthContext, I as IdentityProvider, M as MintedToken, T as TokenProvider } from '../../identity.d-HbwYQ4-z.cjs';
17
+ export { A as AcceptedFrame, a as AnalysisCompleteFrame, b as AnalysisStartedFrame, D as DeltaFrame, c as DoneFrame, E as ErrorFrame, d as EverfurRequest, e as EverfurRequestBase, F as Frame, f as FrameBase, g as FrameKind, H as HeartbeatFrame, h as HttpMethod, M as MultipartBody, T as TransportPort, U as UnknownFrame, i as UrgencyLevel } from '../../config.d-BQgrIDdu.cjs';
17
18
  export { E as ErrorPolicyPort } from '../../ErrorPolicyPort.d-DirW9hgO.cjs';
18
19
  export { E as EverfurChatAnswerStyle, a as EverfurChatComposerPlaceholder, b as EverfurChatComposerStyle, c as EverfurChatHistoryBarSetting, d as EverfurChatHistoryStyle, e as EverfurChatSendButtonSetting, f as EverfurChatTopCardSetting, g as EverfurHealthPlanLayout, h as EverfurPresentation, i as EverfurPresentationInput, j as EverfurSafetyDisclaimerPlacement } from '../../presentation.d-vy8kTGfR.cjs';
19
20
  import '../../resolve.d-CoQWUy1Y.cjs';
20
- import '../../requestFunnel.d-CR4akGCY.cjs';
21
+ import '../../requestFunnel.d-JoqddYSx.cjs';
21
22
  import '../../models.d-BSqvbTE1.cjs';
22
23
 
23
24
  interface HealthPlanItemCardProps extends HealthPlanCardOptions {
@@ -1,23 +1,24 @@
1
- import { E as EverfurChatTopCard } from '../../threadOptions.d-DZ0AoQGk.js';
2
- export { a as EverfurHealthPlan, b as EverfurHealthPlanProps, H as HealthPlanFocus, c as HealthPlanFocusLayer, d as HealthPlanFocusOptions, e as HealthPlanFocusOverlay, f as HealthPlanFocusOverlayControls, g as HealthPlanFocusProps } from '../../threadOptions.d-DZ0AoQGk.js';
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
2
+ import { E as EverfurChatTopCard } from '../../threadOptions.d-8x_1evAr.js';
3
+ export { a as EverfurHealthPlan, b as EverfurHealthPlanProps, H as HealthPlanFocus, c as HealthPlanFocusLayer, d as HealthPlanFocusOptions, e as HealthPlanFocusOverlay, f as HealthPlanFocusOverlayControls, g as HealthPlanFocusProps } from '../../threadOptions.d-8x_1evAr.js';
3
4
  import { ReactNode, CSSProperties } from 'react';
4
5
  import { E as EverfurError } from '../../EverfurError.d-8NHtlgzA.js';
5
6
  export { a as EverfurErrorCategory, b as EverfurErrorCode } from '../../EverfurError.d-8NHtlgzA.js';
6
- import { f as HealthPlanItem, p as HealthPlanFocusPart, i as HealthPlanSubscriptionRepository, q as HealthPlanSubscriptionQuote, g as HealthPlanSubscription, h as HealthPlanOneBoxOrder, r as HealthPlanPagePet, b as HealthPlanFocusDesign, H as HealthPlanPage } from '../../focus.d-CtotIyEt.js';
7
- export { s as HEALTH_PLAN_FOCUS_COPY, t as HEALTH_PLAN_REASON_KINDS, m as HealthPlan, u as HealthPlanCartCheckoutRequest, v as HealthPlanCheckoutItem, l as HealthPlanCheckoutProvider, w as HealthPlanCheckoutRefusal, x as HealthPlanCheckoutRequest, y as HealthPlanCheckoutSession, z as HealthPlanCheckoutState, A as HealthPlanCheckoutStatus, d as HealthPlanFocusClassNames, c as HealthPlanFocusCopy, B as HealthPlanFocusExtra, e as HealthPlanFocusIcon, C as HealthPlanFocusPrices, D as HealthPlanFocusReasonRow, E as HealthPlanFocusReview, F as HealthPlanFocusSign, G as HealthPlanFocusStep, I as HealthPlanFocusWait, J as HealthPlanOneBoxOffer, K as HealthPlanOneBoxOrderPage, L as HealthPlanOneBoxOrderPageOptions, M as HealthPlanOrderStatus, N as HealthPlanOrderTracking, O as HealthPlanOrderTrackingStatus, j as HealthPlanPageRepository, a as HealthPlanPetWords, P as HealthPlanPurchase, Q as HealthPlanReason, o as HealthPlanReasonKind, n as HealthPlanRepository, R as HealthPlanRepositoryDeps, S as HealthPlanRuntime, k as HealthPlanShopOrder, T as HealthPlanSubscriptionRenewal, U as HealthPlanSubscriptionStatus, V as HealthPlanSubscriptionStep, W as HealthPlanSubscriptionSupply, X as HealthPlanTrackStep, Y as createHealthPlanPageRepository, Z as createHealthPlanPageRepositoryOver, _ as createHealthPlanRepository, $ as createHealthPlanRepositoryOver, a0 as createHealthPlanSubscriptionRepository, a1 as createHealthPlanSubscriptionRepositoryOver, a2 as formatHealthPlanDay, a3 as healthPlanCheckoutRefusal, a4 as healthPlanCheckoutSessionFromWire, a5 as healthPlanCheckoutStateFromWire, a6 as healthPlanFocusCopyFor, a7 as healthPlanFocusDesignFromWire, a8 as healthPlanFromWire, a9 as healthPlanOneBoxOrderFromWire, aa as healthPlanOneBoxOrderPageFromWire, ab as healthPlanOrderTrackingFromWire, ac as healthPlanPageFromWire, ad as healthPlanPetWords, ae as healthPlanSubscriptionFromWire, af as healthPlanSubscriptionQuoteFromWire, ag as isHealthPlanSubscriptionUnavailable } from '../../focus.d-CtotIyEt.js';
8
- import { e as HealthPlanCardOptions, f as HealthPlanImageVariant, g as HealthPlanReasonVariant, a as HealthPlanPriceFormat, d as HealthPlanCart } from '../../usePresentation.d-BsR08Wxt.js';
9
- export { E as EverfurHealthPlanOptions, h as EverfurHealthPlanState, i as EverfurHealthPlanStatus, j as HEALTH_PLAN_COPY, k as HEALTH_PLAN_COPY_PLACEHOLDERS, l as HEALTH_PLAN_LAYOUT_DEFAULTS, m as HEALTH_PLAN_REASON_LABELS, n as HEALTH_PLAN_TEMPLATES, o as HealthPlanAddButtonSize, p as HealthPlanAddedVariant, H as HealthPlanBlanksFacts, q as HealthPlanBlanksPhase, r as HealthPlanCardShadow, s as HealthPlanCartBarPlacement, t as HealthPlanCartBarVisibility, u as HealthPlanCategoryVariant, c as HealthPlanEmptyCopy, v as HealthPlanFontWeight, w as HealthPlanHeaderContext, b as HealthPlanLayoutProps, x as HealthPlanPageContext, y as HealthPlanShadow, z as formatHealthPlanPrice, A as formatHealthPlanPriceWith, B as healthPlanBlanksFacts, C as healthPlanCart, D as healthPlanNextShotsAt, F as healthPlanRecordsWeightKg, G as isHealthPlanSessionRequired, I as showHealthPlanCartBar, J as useEverfurHealthPlan, K as useEverfurHealthPlanRepository, L as useEverfurPresentation } from '../../usePresentation.d-BsR08Wxt.js';
10
- export { H as HealthPlanCartDock, a as HealthPlanCartScope, b as HealthPlanCartScopeProps, c as HealthPlanController, d as HealthPlanNoVetListener, e as HealthPlanPageOptions, f as HealthPlanPagePhase, g as HealthPlanPageState, h as HealthPlanPhase, i as HealthPlanRecordsLandedListener, j as HealthPlanRecordsLandedSource, k as HealthPlanSnapshot, l as healthPlanNoVet, n as notifyHealthPlanRecordsLanded, o as onHealthPlanNoVet, m as onHealthPlanRecordsLanded, s as setHealthPlanNoVet, u as useHealthPlanCartDock, p as useHealthPlanPage, q as useHealthPlanPageRepository } from '../../planSignals.d-DtxZoWGM.js';
7
+ import { f as HealthPlanItem, p as HealthPlanFocusPart, i as HealthPlanSubscriptionRepository, q as HealthPlanSubscriptionQuote, g as HealthPlanSubscription, h as HealthPlanOneBoxOrder, r as HealthPlanPagePet, b as HealthPlanFocusDesign, H as HealthPlanPage } from '../../focus.d-CjL6Cj0m.js';
8
+ export { s as HEALTH_PLAN_FOCUS_COPY, t as HEALTH_PLAN_REASON_KINDS, m as HealthPlan, u as HealthPlanCartCheckoutRequest, v as HealthPlanCheckoutItem, l as HealthPlanCheckoutProvider, w as HealthPlanCheckoutRefusal, x as HealthPlanCheckoutRequest, y as HealthPlanCheckoutSession, z as HealthPlanCheckoutState, A as HealthPlanCheckoutStatus, d as HealthPlanFocusClassNames, c as HealthPlanFocusCopy, B as HealthPlanFocusExtra, e as HealthPlanFocusIcon, C as HealthPlanFocusPrices, D as HealthPlanFocusReasonRow, E as HealthPlanFocusReview, F as HealthPlanFocusSign, G as HealthPlanFocusStep, I as HealthPlanFocusWait, J as HealthPlanOneBoxOffer, K as HealthPlanOneBoxOrderPage, L as HealthPlanOneBoxOrderPageOptions, M as HealthPlanOrderStatus, N as HealthPlanOrderTracking, O as HealthPlanOrderTrackingStatus, j as HealthPlanPageRepository, a as HealthPlanPetWords, P as HealthPlanPurchase, Q as HealthPlanReason, o as HealthPlanReasonKind, n as HealthPlanRepository, R as HealthPlanRepositoryDeps, S as HealthPlanRuntime, k as HealthPlanShopOrder, T as HealthPlanSubscriptionRenewal, U as HealthPlanSubscriptionStatus, V as HealthPlanSubscriptionStep, W as HealthPlanSubscriptionSupply, X as HealthPlanTrackStep, Y as createHealthPlanPageRepository, Z as createHealthPlanPageRepositoryOver, _ as createHealthPlanRepository, $ as createHealthPlanRepositoryOver, a0 as createHealthPlanSubscriptionRepository, a1 as createHealthPlanSubscriptionRepositoryOver, a2 as formatHealthPlanDay, a3 as healthPlanCheckoutRefusal, a4 as healthPlanCheckoutSessionFromWire, a5 as healthPlanCheckoutStateFromWire, a6 as healthPlanFocusCopyFor, a7 as healthPlanFocusDesignFromWire, a8 as healthPlanFromWire, a9 as healthPlanOneBoxOrderFromWire, aa as healthPlanOneBoxOrderPageFromWire, ab as healthPlanOrderTrackingFromWire, ac as healthPlanPageFromWire, ad as healthPlanPetWords, ae as healthPlanSubscriptionFromWire, af as healthPlanSubscriptionQuoteFromWire, ag as isHealthPlanSubscriptionUnavailable } from '../../focus.d-CjL6Cj0m.js';
9
+ import { e as HealthPlanCardOptions, f as HealthPlanImageVariant, g as HealthPlanReasonVariant, a as HealthPlanPriceFormat, d as HealthPlanCart } from '../../usePresentation.d-Bne14SlX.js';
10
+ export { E as EverfurHealthPlanOptions, h as EverfurHealthPlanState, i as EverfurHealthPlanStatus, j as HEALTH_PLAN_COPY, k as HEALTH_PLAN_COPY_PLACEHOLDERS, l as HEALTH_PLAN_LAYOUT_DEFAULTS, m as HEALTH_PLAN_REASON_LABELS, n as HEALTH_PLAN_TEMPLATES, o as HealthPlanAddButtonSize, p as HealthPlanAddedVariant, H as HealthPlanBlanksFacts, q as HealthPlanBlanksPhase, r as HealthPlanCardShadow, s as HealthPlanCartBarPlacement, t as HealthPlanCartBarVisibility, u as HealthPlanCategoryVariant, c as HealthPlanEmptyCopy, v as HealthPlanFontWeight, w as HealthPlanHeaderContext, b as HealthPlanLayoutProps, x as HealthPlanPageContext, y as HealthPlanShadow, z as formatHealthPlanPrice, A as formatHealthPlanPriceWith, B as healthPlanBlanksFacts, C as healthPlanCart, D as healthPlanNextShotsAt, F as healthPlanRecordsWeightKg, G as isHealthPlanSessionRequired, I as showHealthPlanCartBar, J as useEverfurHealthPlan, K as useEverfurHealthPlanRepository, L as useEverfurPresentation } from '../../usePresentation.d-Bne14SlX.js';
11
+ export { H as HealthPlanCartDock, a as HealthPlanCartScope, b as HealthPlanCartScopeProps, c as HealthPlanController, d as HealthPlanNoVetListener, e as HealthPlanPageOptions, f as HealthPlanPagePhase, g as HealthPlanPageState, h as HealthPlanPhase, i as HealthPlanRecordsLandedListener, j as HealthPlanRecordsLandedSource, k as HealthPlanSnapshot, l as healthPlanNoVet, n as notifyHealthPlanRecordsLanded, o as onHealthPlanNoVet, m as onHealthPlanRecordsLanded, s as setHealthPlanNoVet, u as useHealthPlanCartDock, p as useHealthPlanPage, q as useHealthPlanPageRepository } from '../../planSignals.d-CON9gTvJ.js';
11
12
  import { E as EverfurResult } from '../../EverfurResult.d-D_-254ZY.js';
12
13
  import { P as PetRef } from '../../ids.d-B2GAAifq.js';
13
14
  export { B as Brand, C as ConversationId, R as RecordsRequestId, U as UserRef, _ as __brand } from '../../ids.d-B2GAAifq.js';
14
15
  import { L as LifecyclePort } from '../../LifecyclePort.d-Cr1p33a7.js';
15
- export { A as AuthContext, I as IdentityProvider, M as MintedToken, T as TokenProvider } from '../../identity.d-BksOEa6m.js';
16
- export { A as AcceptedFrame, a as AnalysisCompleteFrame, b as AnalysisStartedFrame, D as DeltaFrame, c as DoneFrame, E as ErrorFrame, d as EverfurRequest, e as EverfurRequestBase, F as Frame, f as FrameBase, g as FrameKind, H as HeartbeatFrame, h as HttpMethod, M as MultipartBody, T as TransportPort, U as UnknownFrame, i as UrgencyLevel } from '../../config.d-zd2eTb2L.js';
16
+ export { A as AuthContext, I as IdentityProvider, M as MintedToken, T as TokenProvider } from '../../identity.d-Be2Es9Td.js';
17
+ export { A as AcceptedFrame, a as AnalysisCompleteFrame, b as AnalysisStartedFrame, D as DeltaFrame, c as DoneFrame, E as ErrorFrame, d as EverfurRequest, e as EverfurRequestBase, F as Frame, f as FrameBase, g as FrameKind, H as HeartbeatFrame, h as HttpMethod, M as MultipartBody, T as TransportPort, U as UnknownFrame, i as UrgencyLevel } from '../../config.d-XSMThgVj.js';
17
18
  export { E as ErrorPolicyPort } from '../../ErrorPolicyPort.d-68yrE3BE.js';
18
19
  export { E as EverfurChatAnswerStyle, a as EverfurChatComposerPlaceholder, b as EverfurChatComposerStyle, c as EverfurChatHistoryBarSetting, d as EverfurChatHistoryStyle, e as EverfurChatSendButtonSetting, f as EverfurChatTopCardSetting, g as EverfurHealthPlanLayout, h as EverfurPresentation, i as EverfurPresentationInput, j as EverfurSafetyDisclaimerPlacement } from '../../presentation.d-vy8kTGfR.js';
19
20
  import '../../resolve.d-CoQWUy1Y.js';
20
- import '../../requestFunnel.d-DFf9C__p.js';
21
+ import '../../requestFunnel.d-YabU6G-Z.js';
21
22
  import '../../models.d-DOwnr8fi.js';
22
23
 
23
24
  interface HealthPlanItemCardProps extends HealthPlanCardOptions {
@@ -1,3 +1,4 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  "use client";
2
3
  import{createContext,lazy,useMemo,useEffect,useRef,useState,createElement,useContext,useSyncExternalStore,useCallback,useLayoutEffect,Fragment as Fragment$1,Suspense,Component}from"react";import{jsxs,jsx,Fragment}from"react/jsx-runtime";import{createPortal}from"react-dom";var HEALTH_PLAN_COPY=/* @__PURE__ */Object.freeze({loading:"Loading",retry:"Try again",signedOut:"Sign in required",addToCart:"Add to cart",added:"Added",remove:"Remove",checkout:"Checkout",subtotal:"Subtotal",sample:"Sample",cartEmpty:"Your cart is empty.",choosePet:"Choose a pet",emptyTitle:"",emptyBody:"",emptyAsk:""}),COPY_ASKS=/* @__PURE__ */Object.freeze({emptyTitle:true,emptyBody:true,emptyAsk:true}),HEALTH_PLAN_REASON_LABELS=/* @__PURE__ */Object.freeze({dna:"",records:"Records",inside:"Inside",profile:""}),HEALTH_PLAN_TEMPLATES=/* @__PURE__ */Object.freeze({planTitle:petName=>`${petName}'s care plan`,cartLabel:brand=>`${brand} cart`}),HEALTH_PLAN_COPY_PLACEHOLDERS=/* @__PURE__ */Object.freeze([...Object.keys(HEALTH_PLAN_COPY).filter(key=>COPY_ASKS[key]===true&&HEALTH_PLAN_COPY[key]==="").map(key=>`HEALTH_PLAN_COPY.${key}`),...["profile"].filter(kind=>HEALTH_PLAN_REASON_LABELS[kind]==="").map(kind=>`HEALTH_PLAN_REASON_LABELS.${kind}`)]);var HEALTH_PLAN_LAYOUT_DEFAULTS=/* @__PURE__ */Object.freeze({imageVariant:"wide",reasonVariant:"pills",cartBarVisibility:"whenItems",cartBarPlacement:"sticky",addButtonSize:"full",addedVariant:"link",categoryVariant:"text",showCategory:false,cardShadow:false,cardBorder:true});function healthPlanWrites(plan,setInPlan){return{setInPlan:setInPlan,addAll:async()=>{let missing=(plan?.items??[]).filter(item=>!item.inPlan);return(await Promise.all(missing.map(item=>setInPlan(item.productId,true)))).every(Boolean)}}}function showHealthPlanCartBar(visibility,count){return(visibility??HEALTH_PLAN_LAYOUT_DEFAULTS.cartBarVisibility)==="always"||count>0}var HEALTH_PLAN_CARD_OPTION_KEYS=/* @__PURE__ */Object.freeze(["showCategory","cardShadow","cardBorder","addButtonSize","addButtonFontSize","addedVariant","categoryVariant","cardPadding","itemTitleSize","itemTitleWeight","priceSize","priceWeight","reasonTextSize","reasonLabelWidth","reasonGap"]);function pickHealthPlanCardOptions(props){let out={};for(let key of HEALTH_PLAN_CARD_OPTION_KEYS)props[key]!==void 0&&(out[key]=props[key]);return out}function healthPlanAddButtonHeight(size){let height=typeof size=="number"&&Number.isFinite(size)&&size>0?size:size==="compact"?32:44;return{height:height,hit:Math.max(44,height)}}function healthPlanLength(value){return typeof value=="number"&&Number.isFinite(value)&&value>=0?value:null}function healthPlanTitleOffset(titleGap,sectionGap){let gap=healthPlanLength(titleGap);return gap===null?0:gap-sectionGap}function isHealthPlanSessionRequired(error){return error!==null&&(error.reasonCode==="session_required"||error.code==="sessionRequired")}var DockContext=createContext(null);function HealthPlanCartScope({children:children}){let[dock,setDock]=useState(null),store=useMemo(()=>({dock:dock,publish:setDock}),[dock]);return createElement(DockContext.Provider,{value:store},children)}function useHealthPlanCartDock(){return useContext(DockContext)?.dock??null}function usePublishHealthPlanCart(enabled,cart,busy,petRef,plan,setInPlan){let publish=useContext(DockContext)?.publish,latest=useRef(setInPlan);useEffect(()=>{latest.current=setInPlan},[setInPlan]);let writes=useMemo(()=>healthPlanWrites(plan,(productId,inPlan)=>latest.current(productId,inPlan)),[plan]);useEffect(()=>{if(!(publish===void 0||!enabled))return publish(/* @__PURE__ */Object.freeze({cart:cart,busy:busy,petRef:petRef,plan:plan,...writes})),()=>publish(null)},[publish,enabled,cart,busy,petRef,plan,writes])}function healthPlanPetWords(name,sex){let n=name?.trim()??"",named=n===""?"your pet":n,Named=n===""?"Your pet":n;return sex==="female"?{name:named,Name:Named,poss:"her",Poss:"Her",obj:"her"}:sex==="male"?{name:named,Name:Named,poss:"his",Poss:"His",obj:"him"}:{name:named,Name:Named,poss:`${named}'s`,Poss:`${Named}'s`,obj:named}}var cartRenewal=p=>p===null?"":`${p.productName} renews every ${p.intervalDays} days at ${p.box??""} until you cancel; skip or cancel anytime in the app.`,HEALTH_PLAN_NO_SHIP_DAY_COPY=/* @__PURE__ */Object.freeze({onceFine:"",cartFine:cartRenewal,startedWhat:()=>""});function healthPlanFocusCopyFor(pet){let w=healthPlanPetWords(pet.name,pet.sex),nameOf=p=>p.petName?.trim()||w.name,NameOf=p=>p.petName?.trim()||w.Name,copy=/* @__PURE__ */Object.freeze({jumpKicker:(p,subscribed)=>subscribed?`In ${w.poss} plan, every ${p.intervalDays} days`:p.offer?`${p.discountPercent}% off ${w.poss} first box`:p.intervalDays>0?`Ships every ${p.intervalDays} days`:copy.onceLine(p),optionsLabel:"How to buy",subscribe:"Subscribe",bestValue:"Best value",subscribeLine:p=>p.offer?`First box, then ${p.box??""}`:`${p.box??""} every ${p.intervalDays} days`,priceLine:p=>p.offer?`${p.discountPercent}% off the first box. Ships every ${p.intervalDays} days.`:p.intervalDays>0?`Ships every ${p.intervalDays} days.`:copy.onceOffer(p),once:"One box",onceLine:p=>p.onceDiscountPercent>0?`${p.onceDiscountPercent}% off, ships once`:"Ships once",buyOnce:p=>`Buy one box, ${p.once??p.box??""}`,subscribed:"Subscribed",subscribedLine:(p,next)=>next===null?`Every ${p.intervalDays} days`:`Every ${p.intervalDays} days · next box ${next}`,manage:"Manage",checkoutKicker:"Checkout",checkoutTitle:p=>`Checkout: ${p.productName}`,checkoutOffer:p=>`${p.discountPercent}% off your first box.`,shipsEvery:"Ships every",days:n=>`${n} days`,buyOnceOption:"Buy once",checkoutGo:(_p,subscribe,today)=>`${subscribe?"Subscribe":"Buy now"} · ${today} today`,renews:p=>`Renews every ${p.intervalDays} days at ${p.box??""} until you cancel; skip or cancel anytime in the app.`,onceFine:"One box, ships tomorrow.",onceOffer:p=>p.onceDiscountPercent>0?`${p.onceDiscountPercent}% off, ships once.`:"Ships once.",checkoutNote:"",close:"Close",startedTitle:p=>`${NameOf(p)}'s plan has started.`,orderedTitle:()=>"Order placed.",startedWhat:p=>`${p.productName} ships tomorrow.`,startedNote:"",startedSteps:"What happens next",tomorrow:"Tomorrow",firstBoxShips:`${w.Poss} first box ships.`,trackingComesByText:"Tracking comes by text.",checkin:q=>q===null?"A 2-week check-in by text.":`A 2-week check-in by text: ${q}`,refill:`A text 3 days before ${w.poss} next box. Reply SKIP to skip it.`,nextBoxShips:p=>`${w.Poss} next box ships, ${p.box??""}.`,startedDone:`Back to ${w.poss} plan`,manageKicker:"Your subscription",manageTitle:p=>`Manage ${p.productName}`,skip:"Skip the next box",cancel:"Cancel subscription",skipped:(_p,next)=>next===null?"Skipped.":`Skipped. ${w.Poss} next box ships ${next}.`,cancelled:p=>`${p.productName} is cancelled. Restart it from ${w.poss} plan anytime.`,orders:"Orders",startedHeader:"Subscribed",placedHeader:"Order placed",cartCheckoutTitle:"Checkout",orderNote:"",cartLabel:n=>n>0?`Cart, ${n} item${n>1?"s":""}`:"Cart, empty",addToCart:price=>`Add to cart · ${price}`,viewCart:"View cart",addedToCart:(p,subscription)=>`${p.productName} is in your cart${subscription?", as a subscription":""}.`,removedFromCart:name=>`${name} is out of your cart.`,cartTitle:"Cart",cartEmptyTitle:"Your cart is empty",cartEmptyBody:p=>`${NameOf(p)}'s plan pick lands here when you add it.`,seeOrders:`See ${w.poss} orders`,quantityLabel:name=>`How many: ${name}`,fewer:"One fewer",more:"One more",remove:"Remove",cartSubLine:p=>p.offer?`First box ${p.discountPercent}% off, then ${p.box??""} every ${p.intervalDays} days`:`Every ${p.intervalDays} days`,cartOnceLine:(p,subscribed)=>subscribed?`An extra box. ${w.Poss} plan keeps shipping.`:p.onceDiscountPercent>0?`One box, ${p.onceDiscountPercent}% off`:"One box",cartModeLabel:name=>`How to buy ${name}`,cartModeSubscribe:p=>p.offer?`Subscribe, ${p.discountPercent}% off the first box`:"Subscribe",cartModeOnce:p=>p.onceDiscountPercent>0?`One box, ${p.onceDiscountPercent}% off`:"One box",subtotal:"Subtotal",shipping:"Shipping",shippingValue:"",shippingTag:"",total:"Total",dueToday:"Due today",thenRenews:p=>`Then ${p.productName}`,renewsEvery:p=>`${p.box??""} every ${p.intervalDays} days`,checkoutCart:total=>`Checkout · ${total}`,cartOneAtATime:"",cartSubscriptionApart:"",cartItemSubscription:p=>`Subscription, every ${p.intervalDays} days`,cartItemQuantity:n=>`Qty ${n}`,placeOrder:(total,subscribe)=>`${subscribe?"Place order and subscribe":"Place order"} · ${total}`,cartFine:p=>`${p===null?"":`${cartRenewal(p)} `}Ships tomorrow.`,placedSteps:"What's coming",placedShips:"It ships.",placedArrives:"It arrives at home.",viewOrder:"View order",herSubscription:`${w.Poss} subscription`,nextBox:day=>`Next box ${day}`,everyDays:n=>`Every ${n} days`,ordersHeading:afterSubscription=>afterSubscription?"Orders":`${w.Poss} orders`,ordersFine:"",ordersEmptyTitle:"No orders yet",ordersEmptyBody:p=>`The boxes from ${nameOf(p)}'s plan show up here.`,moreOrders:"",orderSteps:["Ordered","Shipped","Out for delivery","Delivered"],subscriptionBox:"Subscription box",orderTitle:n=>n===null?"Order":`Order ${n}`,arrivesBy:day=>`Arrives by ${day}`,deliveredOn:day=>`Delivered ${day}`,expected:day=>`Expected ${day}`,tracking:"Tracking",trackingByText:"The tracking number comes by text when it ships.",trackOn:carrier=>`Track on ${carrier}`,trackLink:"",inThisOrder:"In this order",orderItemLine:(n,box)=>`Qty ${n}${box?" · subscription box":""}`,paidWith:"Paid with",buyAgain:"Buy again",orderHelp:"Get help with this order",addWeightTitle:`Add ${w.poss} weight to size ${w.poss} dose`,addWeightBody:`From a home scale or ${w.poss} last vet visit.`,connectRecordsTitle:`Connect ${w.poss} vet records`,connectRecordsBody:`${w.Poss} weight, visits and labs make ${w.poss} plan sharper.`,weightKicker:`${w.Poss} weight`,weightTitle:p=>`Add ${nameOf(p)}'s weight`,weightBody:`From a home scale or ${w.poss} last vet visit. ${w.Poss} plan uses it to size ${w.poss} dose.`,weightField:`${w.Poss} weight`,weightUnit:"lb",weightUnitKg:"kg",weightErrorKg:"Enter your pet’s weight",weightError:`Enter ${w.poss} weight in pounds, like 14.1.`,weightSave:`Save ${w.poss} weight`,weightSaved:lb=>`Saved: ${lb} lb. ${w.Poss} dose is sized for ${w.obj}.`,weightSavedKg:kg=>`Saved: ${kg} kg. ${w.Poss} dose is sized for ${w.obj}.`,checkoutFailed:"That didn't go through. Please try again.",builtWith:vet=>`Built with ${vet}`,fromVet:shortName=>`From ${shortName}`,waitVetTips:vet=>`Free tips from ${vet}, built around that risk`,signalsFit:count=>`${count} of ${count} signals fit ${w.Name}`,signalsValue:count=>`${count}/${count}`,noPick:`No supplement for this one. ${w.Poss} vet comes first.`,callYourVet:"Call your vet today",callAVet:"Call a vet today",saveForCheckup:`Save for ${w.poss} next checkup`,savedForCheckup:`Saved for ${w.poss} next checkup`,blanksLabel:`${w.Poss} three blanks`,blanksAsked:clinic=>`Asked ${clinic}`,blanksAskedNoClinic:"",blanksWaitPill:"2 to 5 days",blanksFilledKicker:`From ${w.poss} vet records`,blanksFilled:(filled,total)=>`${filled} of ${total} filled`,blanksWeight:`Keep ${w.obj} at `,blanksWeightSource:`From ${w.poss} vet visits`,blanksDose:(dose,product)=>`${dose} of ${product}`,blanksDoseSource:`Sized to ${w.poss} weight`,blanksShots:`${w.Poss} next shots are due `,blanksShotsSource:`From ${w.poss} clinic`,blankEmpty:"blank",recordsLanded:`${w.Poss} records are in. ${w.Poss} plan now uses ${w.poss} weight and ${w.poss} visits.`});return copy}var HEALTH_PLAN_FOCUS_COPY=healthPlanFocusCopyFor({sex:"female"});function formatHealthPlanDay(iso,locale){if(iso===null||!/^\d{4}-\d{2}-\d{2}$/.test(iso))return null;let d=/* @__PURE__ */new Date(`${iso}T00:00:00Z`);if(Number.isNaN(d.getTime()))return null;try{return new Intl.DateTimeFormat(locale??"en-US",{month:"short",day:"numeric",timeZone:"UTC"}).format(d)}catch{return iso}}function healthPlanPageDrawsWithoutItems(design){return design!=null&&(design.wait!==void 0||design.pick.hidden===true)}function withoutProductPart(design){return{...design,pick:{...design.pick,none:true,hidden:true}}}var NO_PLAN_ITEM=/* @__PURE__ */Object.freeze({productId:"",partnerSku:null,title:"",description:null,category:null,price:null,currency:null,imageUrl:null,url:null,reasons:[],inPlan:false,sample:false});var noopTelemetry=/* @__PURE__ */Object.freeze({track(){},trackExpectedFailure(){}});function ok(value,warning){/* @__PURE__ */
3
4
  return Object.freeze({ok:true,value:value})}function err(error){/* @__PURE__ */
@@ -406,7 +407,7 @@ return jsxs("article",{className:className,style:{...cardStyle,...style},"aria-b
406
407
  /* @__PURE__ */jsx("h3",{style:titleStyle,children:item.title}),item.sample?/* @__PURE__ */jsx("span",{style:styles2.sample,children:HEALTH_PLAN_COPY.sample}):null,item.description===null?null:/* @__PURE__ */jsx("p",{style:styles2.body,children:item.description})]})]}):/* @__PURE__ */jsxs(Fragment,{children:[item.imageUrl===null?null:/* @__PURE__ */jsx("img",{src:item.imageUrl,alt:"",style:styles2.image,loading:"lazy"}),category,
407
408
  /* @__PURE__ */jsxs("div",{style:styles2.head,children:[
408
409
  /* @__PURE__ */jsx("h3",{style:titleStyle,children:item.title}),priceNode]}),item.sample?/* @__PURE__ */jsx("span",{style:styles2.sample,children:HEALTH_PLAN_COPY.sample}):null,item.description===null?null:/* @__PURE__ */jsx("p",{style:styles2.body,children:item.description})]}),item.reasons.length===0?null:/* @__PURE__ */jsx("ul",{style:rows?reasonRowsStyle:styles2.reasons,children:item.reasons.map((reason,index)=>/* @__PURE__ */jsxs("li",{style:rows?styles2.reasonRow:reasonPillStyle,children:[HEALTH_PLAN_REASON_LABELS[reason.kind]===""?null:/* @__PURE__ */jsx("span",{style:rows?styles2.reasonRowKind:styles2.reasonKind,children:HEALTH_PLAN_REASON_LABELS[reason.kind]}),
409
- /* @__PURE__ */jsx("span",{style:rows?reasonRowTextStyle:reasonTextStyle,children:reason.text})]},`${reason.kind}-${index}`))}),renderFooter===void 0?null:/* @__PURE__ */jsx(HostRender,{resetKey:item,render:()=>renderFooter(item),fallback:null}),thumbnail?/* @__PURE__ */jsxs("div",{style:styles2.actionRow,children:[priceNode,control]}):control,error===null?null:/* @__PURE__ */jsx("p",{style:styles2.error,role:"alert",children:error.displayMessage})]})}function cardShadowCss(shadow,soft){if(shadow===true)return soft;if(typeof shadow=="string")return shadow.length>0&&shadow.length<=200?{boxShadow:shadow}:{};if(shadow===void 0||shadow===false)return{};let rgba=toRgba(shadow.color);if(rgba===null)return{};let alpha=Math.min(1,Math.max(0,rgba.a*(shadow.opacity??1)));return{boxShadow:`${shadow.offsetX??0}px ${shadow.offsetY}px ${Math.max(0,shadow.blur)}px rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${alpha})`}}var THUMB_SIZE=64;function makeStyles3(theme){let{color:color,radius:radius,space:space,type:type,slots:slots}=theme,line=size=>`${Math.round(size*type.lineHeight.snug)}px`,text2=(size,ink,weight)=>({margin:0,...faceCss(theme,weight),fontSize:size,lineHeight:line(size),color:ink}),cardInk=slots.planCard?.textColor??slots.card?.textColor,reasonLabelInk=slots.planReasonLabel?.textColor??slots.chip?.textColor??color.brandInk,addPaint={borderRadius:radius.pill,border:"none",backgroundColor:color.brand,color:color.text.onBrand,cursor:"pointer",...faceCss(theme,"bold")};return{card:{boxSizing:"border-box",display:"flex",flexDirection:"column",gap:space.sm,padding:space.lg,borderRadius:radius.lg,border:`1px solid ${color.brandBorder}`,backgroundColor:color.surface,...slotCss(slots.card,1),...slotCss(slots.planCard,1)},cardShadow:{boxShadow:`0 ${space.xs}px ${space.md}px ${withAlpha(color.shadow,.08)??"transparent"}`},category:text2(type.size.caption,cardInk??color.text.secondary,"regular"),categoryLabel:{...text2(type.size.micro,reasonLabelInk,"regular"),...faceCss(theme,"monoMedium"),textTransform:"uppercase",letterSpacing:type.letterSpacing.monoWide},addPressed:{display:"inline-flex",alignItems:"center",borderRadius:radius.pill,border:"none",backgroundColor:color.brandInk,color:readableOn(color.brandInk),cursor:"pointer",...faceCss(theme,"bold"),...slots.primaryButton?.borderRadius===void 0?null:{borderRadius:slots.primaryButton.borderRadius}},image:{width:"100%",aspectRatio:"4 / 3",objectFit:"cover",borderRadius:radius.md,backgroundColor:color.surfaceSubtle},thumbHead:{display:"flex",alignItems:"flex-start",gap:space.md},thumb:{flex:"0 0 auto",width:THUMB_SIZE,height:THUMB_SIZE,objectFit:"cover",borderRadius:radius.md,backgroundColor:color.surfaceSubtle},thumbCopy:{display:"flex",flexDirection:"column",gap:space.xs,minWidth:0,flex:1},actionRow:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:space.sm},reasonRows:{listStyle:"none",margin:0,padding:0,display:"grid",gridTemplateColumns:"max-content 1fr",columnGap:space.lg,rowGap:space.sm},reasonRow:{display:"contents"},reasonRowKind:{...text2(type.size.micro,reasonLabelInk,"regular"),...faceCss(theme,"monoMedium"),textTransform:"uppercase",letterSpacing:type.letterSpacing.monoWide,paddingTop:2},reasonRowText:text2(type.size.caption,cardInk??color.text.secondary,"regular"),head:{display:"flex",alignItems:"baseline",justifyContent:"space-between",gap:space.sm},title:text2(type.size.body,cardInk??color.text.primary,"bold"),price:{...text2(type.size.body,cardInk??color.text.primary,"bold"),whiteSpace:"nowrap"},sample:{alignSelf:"flex-start",padding:`2px ${space.sm}px`,borderRadius:radius.pill,backgroundColor:color.badgeBgNeutral,...text2(type.size.caption,color.text.secondary,"bold")},body:text2(type.size.caption,cardInk??color.text.secondary,"regular"),reasons:{listStyle:"none",margin:0,padding:0,display:"flex",flexDirection:"column",gap:space.xs},reason:{display:"flex",alignItems:"baseline",gap:space.sm,padding:`${space.xs}px ${space.sm}px`,borderRadius:radius.md,backgroundColor:color.brandSofter,...slotCss(slots.chip,1)},reasonKind:{...text2(type.size.caption,slots.chip?.textColor??color.brandInk,"bold"),textTransform:"uppercase",letterSpacing:.4},reasonText:text2(type.size.caption,slots.chip?.textColor??color.text.secondary,"regular"),row:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:space.sm},added:text2(type.size.caption,color.brandInk,"bold"),add:{minHeight:44,padding:`0 ${space.lg}px`,...addPaint,fontSize:type.size.body,...slotCss(slots.primaryButton)},addCompactHit:{minHeight:44,padding:0,border:"none",background:"none",cursor:"pointer",display:"inline-flex",alignItems:"center",alignSelf:"flex-start"},addCompact:{display:"inline-flex",alignItems:"center",minHeight:32,padding:`0 ${space.md}px`,...addPaint,fontSize:type.size.caption,...slotCss(slots.primaryButton)},remove:{minHeight:44,padding:0,border:"none",background:"none",cursor:"pointer",...faceCss(theme,"bold"),fontSize:type.size.caption,color:color.linkInk,...slotCss(slots.link)},error:text2(type.size.caption,color.errorRed,"regular")}}var WAITING=/* @__PURE__ */new Set(["requested","awaiting_clinic","awaiting_upload","received","parsing","in_review"]),VACCINE=/vaccin|rabies|dhpp|booster|bordetella|lepto|lyme|parvo|distemper/i,LB_PER_KG2=2.20462262;function dayMs(value){if(value==null||value.length===0)return null;let ms=Date.parse(/^\d{4}-\d{2}-\d{2}$/.test(value)?`${value}T00:00:00Z`:value);return Number.isNaN(ms)?null:ms}function kilograms(value,unit){return value===null||!Number.isFinite(value)||value<=0||unit===null?null:/^\s*kg|kilo/i.test(unit)?value:/^\s*(lb|lbs|pound)/i.test(unit)?value/LB_PER_KG2:null}function healthPlanRecordsWeightKg(record){if(record===null||record.isEmpty||record.withheld)return null;let readings=[];for(let series of record.entitySeries)if(series.key.startsWith("body_weight"))for(let point of series.points){if(point.origin==="owner_reported")continue;let at=dayMs(point.at),unit=point.display?.replace(/^[\d.,\s]+/,"")??null,kg=kilograms(point.value,unit);at!==null&&kg!==null&&readings.push({at:at,kg:kg})}for(let entity of record.entities){if(entity.category!=="body_weight"||entity.origin==="owner_reported")continue;let at=dayMs(entity.observedAt),kg=kilograms(entity.value===null?null:Number.parseFloat(entity.value),entity.unit);at!==null&&kg!==null&&readings.push({at:at,kg:kg})}return readings.length===0?null:(readings.sort((a,b)=>b.at-a.at),readings[0]?.kg??null)}function healthPlanNextShotsAt(record,today){if(record===null||record.isEmpty||record.withheld)return null;let next=null;for(let item of record.forwardLooking){if(!VACCINE.test(item.title))continue;let due=dayMs(item.dueAt);due===null||due<today||(next===null||due<next)&&(next=due)}return next}function healthPlanBlanksFacts(input,now){let asked=input.requests.filter(r=>r.source==="clinic_request").slice().sort((a,b)=>(dayMs(b.createdAt)??0)-(dayMs(a.createdAt)??0))[0];if(asked===void 0)return null;let clinicName=asked.clinicName?.trim()?asked.clinicName.trim():null;if(WAITING.has(asked.status))return{phase:"wait",requestId:String(asked.id),clinicName:clinicName,weightKg:null,nextShotsAt:null};if(asked.status!=="published"||input.record===null||input.record.isEmpty||input.record.withheld)return null;let today=Math.floor(now/864e5)*864e5;return{phase:"filled",requestId:String(asked.id),clinicName:clinicName,weightKg:healthPlanRecordsWeightKg(input.record),nextShotsAt:healthPlanNextShotsAt(input.record,today)}}var COARSE_NOW_TICK_MS=3600*1e3;function useCoarseNow(fixed,shown=true){let[now,setNow]=useState(()=>Date.now()),first=useRef(true);return useEffect(()=>{if(first.current){first.current=false;return}shown&&setNow(Date.now())},[fixed,shown]),useEffect(()=>{if(!shown)return;let tick=setInterval(()=>setNow(Date.now()),COARSE_NOW_TICK_MS),onVisible=()=>{document.visibilityState==="visible"&&setNow(Date.now())},doc=typeof document<"u"&&typeof document.addEventListener=="function"?document:null;return doc?.addEventListener("visibilitychange",onVisible),()=>{clearInterval(tick),doc?.removeEventListener("visibilitychange",onVisible)}},[fixed,shown]),now}function probeOver(useRecords){return function(props){let{status:status,requests:requests,record:record,refresh:refresh}=useRecords({petRef:props.petRef}),{onRead:onRead,petRef:petRef}=props,now=useCoarseNow(),blanks=useMemo(()=>healthPlanBlanksFacts({requests:requests,record:record},now),[requests,record,now]);useEffect(()=>{onRead({missing:status==="empty",blanks:blanks})},[status,blanks,onRead]);let reread=useRef(refresh);return reread.current=refresh,useEffect(()=>onHealthPlanRecordsLanded((pet,source)=>{pet===petRef&&source==="host"&&reread.current()}),[petRef]),null}}var Nothing=()=>null,LazyProbe=lazy(()=>import("@everfur/sdk/web/records").then(m=>({default:probeOver(m.useEverfurRecords)}),()=>({default:Nothing})));function RecordsMissingProbe(props){/* @__PURE__ */
410
+ /* @__PURE__ */jsx("span",{style:rows?reasonRowTextStyle:reasonTextStyle,children:reason.text})]},`${reason.kind}-${index}`))}),renderFooter===void 0?null:/* @__PURE__ */jsx(HostRender,{resetKey:item,render:()=>renderFooter(item),fallback:null}),thumbnail?/* @__PURE__ */jsxs("div",{style:styles2.actionRow,children:[priceNode,control]}):control,error===null?null:/* @__PURE__ */jsx("p",{style:styles2.error,role:"alert",children:error.displayMessage})]})}function cardShadowCss(shadow,soft){if(shadow===true)return soft;if(typeof shadow=="string")return shadow.length>0&&shadow.length<=200?{boxShadow:shadow}:{};if(shadow===void 0||shadow===false)return{};let rgba=toRgba(shadow.color);if(rgba===null)return{};let alpha=Math.min(1,Math.max(0,rgba.a*(shadow.opacity??1)));return{boxShadow:`${shadow.offsetX??0}px ${shadow.offsetY}px ${Math.max(0,shadow.blur)}px rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${alpha})`}}var THUMB_SIZE=64;function makeStyles3(theme){let{color:color,radius:radius,space:space,type:type,slots:slots}=theme,line=size=>`${Math.round(size*type.lineHeight.snug)}px`,text2=(size,ink,weight)=>({margin:0,...faceCss(theme,weight),fontSize:size,lineHeight:line(size),color:ink}),cardInk=slots.planCard?.textColor??slots.card?.textColor,reasonLabelInk=slots.planReasonLabel?.textColor??slots.chip?.textColor??color.brandInk,addPaint={borderRadius:radius.pill,border:"none",backgroundColor:color.brand,color:color.text.onBrand,cursor:"pointer",...faceCss(theme,"bold")};return{card:{boxSizing:"border-box",display:"flex",flexDirection:"column",gap:space.sm,padding:space.lg,borderRadius:radius.lg,border:`1px solid ${color.brandBorder}`,backgroundColor:color.surface,...slotCss(slots.card,1),...slotCss(slots.planCard,1)},cardShadow:{boxShadow:`0 ${space.xs}px ${space.md}px ${withAlpha(color.shadow,.08)??"transparent"}`},category:text2(type.size.caption,cardInk??color.text.secondary,"regular"),categoryLabel:{...text2(type.size.micro,reasonLabelInk,"regular"),...faceCss(theme,"monoMedium"),textTransform:"uppercase",letterSpacing:type.letterSpacing.monoWide},addPressed:{display:"inline-flex",alignItems:"center",borderRadius:radius.pill,border:"none",backgroundColor:color.brandInk,color:readableOn(color.brandInk),cursor:"pointer",...faceCss(theme,"bold"),...slots.primaryButton?.borderRadius===void 0?null:{borderRadius:slots.primaryButton.borderRadius}},image:{width:"100%",aspectRatio:"4 / 3",objectFit:"cover",borderRadius:radius.md,backgroundColor:color.surfaceSubtle},thumbHead:{display:"flex",alignItems:"flex-start",gap:space.md},thumb:{flex:"0 0 auto",width:THUMB_SIZE,height:THUMB_SIZE,objectFit:"cover",borderRadius:radius.md,backgroundColor:color.surfaceSubtle},thumbCopy:{display:"flex",flexDirection:"column",gap:space.xs,minWidth:0,flex:1},actionRow:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:space.sm},reasonRows:{listStyle:"none",margin:0,padding:0,display:"grid",gridTemplateColumns:"max-content 1fr",columnGap:space.lg,rowGap:space.sm},reasonRow:{display:"contents"},reasonRowKind:{...text2(type.size.micro,reasonLabelInk,"regular"),...faceCss(theme,"monoMedium"),textTransform:"uppercase",letterSpacing:type.letterSpacing.monoWide,paddingTop:2},reasonRowText:text2(type.size.caption,cardInk??color.text.secondary,"regular"),head:{display:"flex",alignItems:"baseline",justifyContent:"space-between",gap:space.sm},title:text2(type.size.body,cardInk??color.text.primary,"bold"),price:{...text2(type.size.body,cardInk??color.text.primary,"bold"),whiteSpace:"nowrap"},sample:{alignSelf:"flex-start",padding:`2px ${space.sm}px`,borderRadius:radius.pill,backgroundColor:color.badgeBgNeutral,...text2(type.size.caption,color.text.secondary,"bold")},body:text2(type.size.caption,cardInk??color.text.secondary,"regular"),reasons:{listStyle:"none",margin:0,padding:0,display:"flex",flexDirection:"column",gap:space.xs},reason:{display:"flex",alignItems:"baseline",gap:space.sm,padding:`${space.xs}px ${space.sm}px`,borderRadius:radius.md,backgroundColor:color.brandSofter,...slotCss(slots.chip,1)},reasonKind:{...text2(type.size.caption,slots.chip?.textColor??color.brandInk,"bold"),textTransform:"uppercase",letterSpacing:.4},reasonText:text2(type.size.caption,slots.chip?.textColor??color.text.secondary,"regular"),row:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:space.sm},added:text2(type.size.caption,color.brandInk,"bold"),add:{minHeight:44,padding:`0 ${space.lg}px`,...addPaint,fontSize:type.size.body,...slotCss(slots.primaryButton)},addCompactHit:{minHeight:44,padding:0,border:"none",background:"none",cursor:"pointer",display:"inline-flex",alignItems:"center",alignSelf:"flex-start"},addCompact:{display:"inline-flex",alignItems:"center",minHeight:32,padding:`0 ${space.md}px`,...addPaint,fontSize:type.size.caption,...slotCss(slots.primaryButton)},remove:{minHeight:44,padding:0,border:"none",background:"none",cursor:"pointer",...faceCss(theme,"bold"),fontSize:type.size.caption,color:color.linkInk,...slotCss(slots.link)},error:text2(type.size.caption,color.errorRed,"regular")}}var WAITING=/* @__PURE__ */new Set(["requested","awaiting_clinic","awaiting_upload","received","parsing","in_review"]),VACCINE=/vaccin|rabies|dhpp|booster|bordetella|lepto|lyme|parvo|distemper/i,LB_PER_KG2=2.20462262;function dayMs(value){if(value==null||value.length===0)return null;let ms=Date.parse(/^\d{4}-\d{2}-\d{2}$/.test(value)?`${value}T00:00:00Z`:value);return Number.isNaN(ms)?null:ms}function kilograms(value,unit){return value===null||!Number.isFinite(value)||value<=0||unit===null?null:/^\s*kg|kilo/i.test(unit)?value:/^\s*(lb|lbs|pound)/i.test(unit)?value/LB_PER_KG2:null}function healthPlanRecordsWeightKg(record){if(record===null||record.isEmpty||record.withheld)return null;let readings=[];for(let series of record.entitySeries)if(series.key.startsWith("body_weight"))for(let point of series.points){if(point.origin==="owner_reported")continue;let at=dayMs(point.at),unit=point.display?.replace(/^[\d.,\s]+/,"")??null,kg=kilograms(point.value,unit);at!==null&&kg!==null&&readings.push({at:at,kg:kg})}for(let entity of record.entities){if(entity.category!=="body_weight"||entity.origin==="owner_reported")continue;let at=dayMs(entity.observedAt),kg=kilograms(entity.value===null?null:Number.parseFloat(entity.value),entity.unit);at!==null&&kg!==null&&readings.push({at:at,kg:kg})}return readings.length===0?null:(readings.sort((a,b)=>b.at-a.at),readings[0]?.kg??null)}function healthPlanNextShotsAt(record,today){if(record===null||record.isEmpty||record.withheld)return null;let next=null;for(let item of record.forwardLooking){if(!VACCINE.test(item.title))continue;let due=dayMs(item.dueAt);due===null||due<today||(next===null||due<next)&&(next=due)}return next}function latestClinicRequest(requests){return requests.filter(r=>r.source==="clinic_request").slice().sort((a,b)=>(dayMs(b.createdAt)??0)-(dayMs(a.createdAt)??0))[0]}function healthPlanRecordsHoldNoBlanks(input,now){let asked=latestClinicRequest(input.requests);if(asked===void 0||asked.status!=="published"||input.record===null||input.record.withheld)return false;let today=Math.floor(now/864e5)*864e5;return healthPlanRecordsWeightKg(input.record)===null&&healthPlanNextShotsAt(input.record,today)===null}function healthPlanBlanksFacts(input,now){let asked=latestClinicRequest(input.requests);if(asked===void 0)return null;let clinicName=asked.clinicName?.trim()?asked.clinicName.trim():null;if(WAITING.has(asked.status))return{phase:"wait",requestId:String(asked.id),clinicName:clinicName,weightKg:null,nextShotsAt:null};if(asked.status!=="published"||input.record===null||input.record.isEmpty||input.record.withheld)return null;let today=Math.floor(now/864e5)*864e5,weightKg=healthPlanRecordsWeightKg(input.record),nextShotsAt=healthPlanNextShotsAt(input.record,today);return weightKg===null&&nextShotsAt===null?null:{phase:"filled",requestId:String(asked.id),clinicName:clinicName,weightKg:weightKg,nextShotsAt:nextShotsAt}}var COARSE_NOW_TICK_MS=3600*1e3;function useCoarseNow(fixed,shown=true){let[now,setNow]=useState(()=>Date.now()),first=useRef(true);return useEffect(()=>{if(first.current){first.current=false;return}shown&&setNow(Date.now())},[fixed,shown]),useEffect(()=>{if(!shown)return;let tick=setInterval(()=>setNow(Date.now()),COARSE_NOW_TICK_MS),onVisible=()=>{document.visibilityState==="visible"&&setNow(Date.now())},doc=typeof document<"u"&&typeof document.addEventListener=="function"?document:null;return doc?.addEventListener("visibilitychange",onVisible),()=>{clearInterval(tick),doc?.removeEventListener("visibilitychange",onVisible)}},[fixed,shown]),now}function probeOver(useRecords){return function(props){let{status:status,requests:requests,record:record,refresh:refresh}=useRecords({petRef:props.petRef}),{onRead:onRead,petRef:petRef}=props,now=useCoarseNow(),blanks=useMemo(()=>healthPlanBlanksFacts({requests:requests,record:record},now),[requests,record,now]),heldNone=useMemo(()=>healthPlanRecordsHoldNoBlanks({requests:requests,record:record},now),[requests,record,now]);useEffect(()=>{onRead({missing:status==="empty"||heldNone,blanks:blanks})},[status,heldNone,blanks,onRead]);let reread=useRef(refresh);return reread.current=refresh,useEffect(()=>onHealthPlanRecordsLanded((pet,source)=>{pet===petRef&&source==="host"&&reread.current()}),[petRef]),null}}var Nothing=()=>null,LazyProbe=lazy(()=>import("@everfur/sdk/web/records").then(m=>({default:probeOver(m.useEverfurRecords)}),()=>({default:Nothing})));function RecordsMissingProbe(props){/* @__PURE__ */
410
411
  return jsx(Suspense,{fallback:null,children:/* @__PURE__ */jsx(LazyProbe,{petRef:props.petRef,onRead:props.onRead})})}function EverfurHealthPlan(props){let guarded=guardHostProps(props,["onCheckout","onAvailability","onAsk"]),focus=useMemo(()=>{let f=props.focus;if(f===void 0)return;let voids=guardHostProps(f,["onBuy","onMore","onExtra","onAddToVisit","onOverlayChange","onSubscriptionChange","onOneBoxOrder","navigate"]),{renderIcon:renderIcon,overlayContainer:overlayContainer}=f;return{...voids,...renderIcon?{renderIcon:(icon,className)=>callHost(renderIcon,icon,className)??null}:{},...overlayContainer?{overlayContainer:layer=>callHost(overlayContainer,layer)??null}:{}}},[props.focus]),focusOn=useEverfurPresentation(props.presentation?.healthPlanLayout===void 0?void 0:{healthPlanLayout:props.presentation.healthPlanLayout}).healthPlanLayout==="focus_plan"?focus??NO_FOCUS_OPTIONS:void 0,planProps={...guarded};delete planProps.focus,delete planProps.presentation,delete planProps.lifecycle,delete planProps.refreshKey;let{lifecycle:lifecycle,refreshKey:refreshKey}=guarded,lifecyclePort=useMemo(()=>lifecycle===void 0?createBrowserLifecycle():lifecycle,[lifecycle]),theme=useEverfurTheme(),styles2=useMemo(()=>makeStyles4(theme),[theme]),plan=useEverfurHealthPlan({...guarded.petRef===void 0?{}:{petRef:guarded.petRef},lifecycle:lifecyclePort,...refreshKey===void 0?{}:{refreshKey:refreshKey}});return plan.status==="signedOut"?/* @__PURE__ */jsx("section",{className:guarded.className,style:{...styles2.page,...guarded.style},children:/* @__PURE__ */jsx("p",{style:styles2.body,children:HEALTH_PLAN_COPY.signedOut})}):/* @__PURE__ */jsx(CapabilityGate,{capability:"healthPlan",...guarded.renderDisabled?{renderDisabled:guarded.renderDisabled}:{},style:guarded.style,className:guarded.className,children:/* @__PURE__ */jsx(PlanBody,{...planProps,...focusOn?{focus:focusOn}:{},plan:plan,styles:styles2,theme:theme,pageLifecycle:lifecyclePort,...refreshKey===void 0?{}:{pageRefreshKey:refreshKey}})})}function PlanBody({plan:plan,styles:styles2,onCheckout:onCheckout,renderNotice:renderNotice,style:style,className:className,imageVariant:imageVariant,reasonVariant:reasonVariant,cartBarVisibility:cartBarVisibility,priceFormat:priceFormat,renderHeader:renderHeader,renderItemFooter:renderItemFooter,renderFooter:renderFooter,titleSize:titleSize,titleGap:titleGap,sectionGap:sectionGap,cartBarPlacement:cartBarPlacement,titleLineHeight:titleLineHeight,renderBetweenItems:renderBetweenItems,theme:theme,focus:focus,pageLifecycle:pageLifecycle,pageRefreshKey:pageRefreshKey,onAvailability:onAvailability,onAsk:onAsk,emptyCopy:emptyCopy,...cardProps}){let{pets:pets}=useEverfurPets(),petName=pets.find(pet=>pet.petRef===plan.petRef)?.name??null,title=plan.plan?.headline??(petName===null?null:HEALTH_PLAN_TEMPLATES.planTitle(petName)),docked=cartBarPlacement==="none";usePublishHealthPlanCart(docked&&plan.status==="ready",plan.cart,plan.pending.length>0,plan.petRef,plan.plan,plan.setInPlan);let telemetry=useHealthPlanTelemetry(),fromBackend=focus!==void 0&&focus.design===void 0,page=useHealthPlanPage({petRef:plan.petRef,enabled:fromBackend,...focus?.pageRepository?{repository:focus.pageRepository}:{},lifecycle:pageLifecycle,...pageRefreshKey===void 0?{}:{refreshKey:pageRefreshKey}});useHealthPlanOpened(plan.status==="ready"||plan.status==="empty",plan.petRef,plan.plan);let pageFallback=healthPlanPageFallback(fromBackend,page),itemless=plan.status==="empty"&&healthPlanPageDrawsWithoutItems(fromBackend?page.page?.page:focus?.design),itemlessPending=plan.status==="empty"&&fromBackend&&(page.phase==="loading"||page.phase==="idle")&&page.page===null,available=plan.status==="empty"?itemless?true:itemlessPending?void 0:false:plan.status==="ready"&&(!fromBackend||pageFallback==="list"||page.phase==="ready"&&page.page!==null)?true:void 0,availability=useRef(onAvailability);availability.current=onAvailability,useEffect(()=>{available!==void 0&&availability.current?.(available,plan.petRef)},[available,plan.petRef]);let[recordsRead,setRecordsRead]=useState(NO_RECORDS_READ),probeRecords=focus!==void 0&&focus.onConnectRecords!==void 0&&focus.recordsMissing===void 0&&focus.recordsBlanks===void 0&&plan.petRef!==null,probe=probeRecords&&plan.petRef!==null?/* @__PURE__ */jsx(RecordsMissingProbe,{petRef:plan.petRef,onRead:setRecordsRead},plan.petRef):null,gap=healthPlanLength(sectionGap),pageStyle=gap===null?styles2.page:{...styles2.page,gap:gap},size=healthPlanLength(titleSize),ratio=healthPlanLength(titleLineHeight),titlePx=size===null||size===0?theme.type.size.heading:size,titleStyle={...styles2.title,...size===null||size===0?null:{fontSize:size,lineHeight:`${Math.round(size*theme.type.lineHeight.snug)}px`},...ratio===null||ratio===0?null:{lineHeight:`${Math.round(titlePx*ratio)}px`},marginBottom:healthPlanTitleOffset(titleGap,gap??theme.space.lg)},titleNode=title===null?null:/* @__PURE__ */jsx("h2",{style:titleStyle,children:title}),writes=useMemo(()=>healthPlanWrites(plan.plan,plan.setInPlan),[plan.plan,plan.setInPlan]),context={petRef:plan.petRef,plan:plan.plan,cart:plan.cart,...writes},cardOptions=pickHealthPlanCardOptions(cardProps),between=(index,item)=>renderBetweenItems===void 0||index===0?null:/* @__PURE__ */jsx(HostRender,{resetKey:item,render:()=>renderBetweenItems(index,item),fallback:null}),header=renderHeader===void 0?null:/* @__PURE__ */jsx(HostRender,{resetKey:plan.plan,render:()=>renderHeader(context),fallback:null}),frame=(children,busy=false)=>/* @__PURE__ */jsx("section",{className:className,style:{...pageStyle,...style},"aria-busy":busy?"true":void 0,children:children});if(plan.status==="noPet")return frame(/* @__PURE__ */jsx("p",{style:styles2.body,children:HEALTH_PLAN_COPY.choosePet}));let loading=()=>/* @__PURE__ */jsxs("section",{className:className,style:{...styles2.page,...style},role:"status","aria-busy":"true","aria-label":HEALTH_PLAN_COPY.loading,children:[
411
412
  /* @__PURE__ */jsx("div",{style:styles2.skeletonTitle}),
412
413
  /* @__PURE__ */jsx("div",{style:styles2.skeletonCard}),