@everfur/sdk 0.12.1 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/CHANGELOG.md +166 -0
  2. package/README.md +2 -1
  3. package/dist/{Chat-CbyZ1vAX.d.cts → Chat.d-DUNTfzqC.d.ts} +170 -8
  4. package/dist/{Chat-CgYQdfqi.d.ts → Chat.d-Dts8u_1a.d.cts} +170 -8
  5. package/dist/{DepthViews-CaQUyCHK.d.ts → DepthViews.d-BIp599lz.d.cts} +1 -1
  6. package/dist/{DepthViews-CCz4ig0u.d.ts → DepthViews.d-BMU2jFPw.d.cts} +1 -1
  7. package/dist/{DepthViews-D3OiIK_x.d.cts → DepthViews.d-Ce2Zhnrb.d.ts} +1 -1
  8. package/dist/{DepthViews-iGZi4_WK.d.cts → DepthViews.d-CubkMPbU.d.ts} +1 -1
  9. package/dist/{ErrorPolicyPort-10s3HJCt.d.cts → ErrorPolicyPort.d-68yrE3BE.d.ts} +1 -1
  10. package/dist/{ErrorPolicyPort-C3nNSS_j.d.ts → ErrorPolicyPort.d-DirW9hgO.d.cts} +1 -1
  11. package/dist/{EverfurError-DeBqRpQV.d.cts → EverfurError.d-8NHtlgzA.d.cts} +11 -1
  12. package/dist/{EverfurError-DeBqRpQV.d.ts → EverfurError.d-8NHtlgzA.d.ts} +11 -1
  13. package/dist/{EverfurResult-ClPTS0P2.d.ts → EverfurResult.d-BFH-3s6E.d.cts} +1 -1
  14. package/dist/{EverfurResult-COlXj1wq.d.cts → EverfurResult.d-D_-254ZY.d.ts} +1 -1
  15. package/dist/{IntakeMedia-BH0fYDT2.d.cts → IntakeMedia.d-4a89XrP7.d.ts} +1 -1
  16. package/dist/{IntakeMedia-B-_vA9ZB.d.cts → IntakeMedia.d-DGxrhgIW.d.ts} +1 -1
  17. package/dist/{IntakeMedia-CIoTXAWs.d.ts → IntakeMedia.d-DUPR4lVM.d.cts} +1 -1
  18. package/dist/{IntakeMedia-Bavl7E4Z.d.ts → IntakeMedia.d-JJCUvQu7.d.cts} +1 -1
  19. package/dist/LifecyclePort.d-Cr1p33a7.d.cts +23 -0
  20. package/dist/LifecyclePort.d-Cr1p33a7.d.ts +23 -0
  21. package/dist/{PhotoController-vzY5bfY_.d.ts → PhotoController.d-BzCJOE7e.d.cts} +2 -2
  22. package/dist/{PhotoController-3l7MT9jA.d.cts → PhotoController.d-D0XiUUOl.d.ts} +2 -2
  23. package/dist/animations/index.cjs +4 -1
  24. package/dist/animations/index.d.cts +24 -24
  25. package/dist/animations/index.d.ts +24 -24
  26. package/dist/animations/index.js +4 -1
  27. package/dist/{attachments-DkMrKCIU.d.ts → attachments.d-Bp2qbHxn.d.cts} +22 -26
  28. package/dist/{attachments-CTJK0jQ4.d.ts → attachments.d-D1yhJjcZ.d.ts} +4 -4
  29. package/dist/{attachments-DXBETOrV.d.cts → attachments.d-DisnvB9R.d.cts} +4 -4
  30. package/dist/{attachments-BOk3hEAM.d.cts → attachments.d-Djy9z_0Z.d.ts} +22 -26
  31. package/dist/{bookingCopy-C_a45T4-.d.ts → bookingCopy.d-BJF6gd1A.d.ts} +24 -9
  32. package/dist/{bookingCopy-CHYGYHe0.d.cts → bookingCopy.d-BlBmhAJc.d.cts} +24 -9
  33. package/dist/{branding-DJf4h12Q.d.ts → branding.d-DI8S400y.d.cts} +9 -2
  34. package/dist/{branding-BCfwLj0h.d.cts → branding.d-OIGLbQeM.d.ts} +9 -2
  35. package/dist/{callRoom-BhIdadyV.d.cts → callRoom.d-B1DoYdJe.d.cts} +1 -1
  36. package/dist/{callRoom-B92eH_ij.d.ts → callRoom.d-Dqm1rUqT.d.ts} +1 -1
  37. package/dist/{casesRepository-C8KJmlxE.d.cts → casesRepository.d-CT2LTicS.d.cts} +3 -3
  38. package/dist/{casesRepository-iAi5qWnx.d.ts → casesRepository.d-UsWOz9bv.d.ts} +3 -3
  39. package/dist/chat/index.cjs +131 -57
  40. package/dist/chat/index.d.cts +18 -16
  41. package/dist/chat/index.d.ts +18 -16
  42. package/dist/chat/index.js +132 -58
  43. package/dist/client/index.cjs +14 -10
  44. package/dist/client/index.d.cts +19 -18
  45. package/dist/client/index.d.ts +19 -18
  46. package/dist/client/index.js +14 -10
  47. package/dist/{config-C9zhanL-.d.cts → config.d-BR3DT9ho.d.cts} +3 -3
  48. package/dist/{config-C5iPNKDj.d.ts → config.d-Dy6igYlH.d.ts} +3 -3
  49. package/dist/consent/index.cjs +4 -1
  50. package/dist/consent/index.d.cts +10 -10
  51. package/dist/consent/index.d.ts +10 -10
  52. package/dist/consent/index.js +4 -1
  53. package/dist/{context-BUIrC20Z.d.ts → context.d-Cwks0p3C.d.cts} +15 -15
  54. package/dist/{context-D_bcpHDA.d.cts → context.d-QcCgguzA.d.ts} +15 -15
  55. package/dist/{copy-KbCU9fen.d.ts → copy.d-CiMn2IIt.d.ts} +6 -6
  56. package/dist/{copy-BE31T2jR.d.cts → copy.d-DLJTyRfT.d.cts} +6 -6
  57. package/dist/core/index.cjs +16 -13
  58. package/dist/core/index.d.cts +33 -29
  59. package/dist/core/index.d.ts +33 -29
  60. package/dist/core/index.js +16 -13
  61. package/dist/{depth-DNxDieoO.d.cts → depth.d-CjPGVPDL.d.cts} +9 -115
  62. package/dist/{depth-DDKGfFaB.d.ts → depth.d-OSALbYM7.d.ts} +9 -115
  63. package/dist/{entitlementRepository-C1_wXIE3.d.cts → entitlementRepository.d-CVQa1DA1.d.cts} +10 -5
  64. package/dist/{entitlementRepository-CYtdIGfH.d.ts → entitlementRepository.d-Cf3LbTwD.d.ts} +10 -5
  65. package/dist/features.d-fNsGcg0R.d.cts +108 -0
  66. package/dist/features.d-fNsGcg0R.d.ts +108 -0
  67. package/dist/focus.d-DMg2ngHI.d.ts +1178 -0
  68. package/dist/focus.d-az9cqUz3.d.cts +1178 -0
  69. package/dist/health-plan/index.cjs +370 -0
  70. package/dist/health-plan/index.d.cts +251 -0
  71. package/dist/health-plan/index.d.ts +251 -0
  72. package/dist/health-plan/index.js +370 -0
  73. package/dist/idempotency.d-D461_DPD.d.cts +910 -0
  74. package/dist/idempotency.d-WpXx9zQo.d.ts +910 -0
  75. package/dist/{identity-BqeaN8An.d.ts → identity.d-60LeJt_s.d.cts} +3 -3
  76. package/dist/{identity-gjurBi7m.d.cts → identity.d-DzTijonw.d.ts} +3 -3
  77. package/dist/index.cjs +140 -66
  78. package/dist/index.d.cts +31 -29
  79. package/dist/index.d.ts +31 -29
  80. package/dist/index.js +141 -67
  81. package/dist/{models-A4A5S7AG.d.cts → models.d-BagXhafD.d.ts} +8 -3
  82. package/dist/{models-CnXY5LuO.d.ts → models.d-BnLm3VAA.d.cts} +8 -3
  83. package/dist/notifications/index.cjs +4 -1
  84. package/dist/notifications/index.d.cts +9 -9
  85. package/dist/notifications/index.d.ts +9 -9
  86. package/dist/notifications/index.js +4 -1
  87. package/dist/optInView.d-CEyHR6PK.d.cts +325 -0
  88. package/dist/optInView.d-acKpV8V2.d.ts +325 -0
  89. package/dist/parse.d-C8CXyS58.d.ts +210 -0
  90. package/dist/parse.d-tEzufgJX.d.cts +210 -0
  91. package/dist/{pets-CfutxNs9.d.cts → pets.d-C_53_fzo.d.ts} +3 -3
  92. package/dist/{pets-LIGadUtr.d.ts → pets.d-NbJvP_kh.d.cts} +3 -3
  93. package/dist/{petsRepository-Cqpd3hLU.d.cts → petsRepository.d-BuGHymNx.d.ts} +4 -4
  94. package/dist/{petsRepository-CoRa3C_U.d.ts → petsRepository.d-lp1BHRqM.d.cts} +4 -4
  95. package/dist/photo/index.cjs +5 -2
  96. package/dist/photo/index.d.cts +9 -9
  97. package/dist/photo/index.d.ts +9 -9
  98. package/dist/photo/index.js +5 -2
  99. package/dist/{ports-BN6RHF9W.d.cts → ports.d-BX4f4UsB.d.cts} +14 -1
  100. package/dist/{ports-BN6RHF9W.d.ts → ports.d-BX4f4UsB.d.ts} +14 -1
  101. package/dist/{ports-gJ3faaWz.d.cts → ports.d-CEROoqnA.d.cts} +16 -10
  102. package/dist/{ports-CVi3n0re.d.ts → ports.d-COIyN624.d.ts} +16 -10
  103. package/dist/presentation.d-DMbdad7G.d.cts +90 -0
  104. package/dist/presentation.d-DMbdad7G.d.ts +90 -0
  105. package/dist/records/depth/index.cjs +10 -7
  106. package/dist/records/depth/index.d.cts +14 -12
  107. package/dist/records/depth/index.d.ts +14 -12
  108. package/dist/records/depth/index.js +10 -7
  109. package/dist/records/index.cjs +224 -62
  110. package/dist/records/index.d.cts +159 -20
  111. package/dist/records/index.d.ts +159 -20
  112. package/dist/records/index.js +224 -62
  113. package/dist/recordsAsk.d-C5CGSi3j.d.cts +14 -0
  114. package/dist/recordsAsk.d-C5CGSi3j.d.ts +14 -0
  115. package/dist/{requestFunnel-BYzlyaC0.d.ts → requestFunnel.d-CXUMPw1K.d.ts} +5 -5
  116. package/dist/{requestFunnel-DLZpiFD3.d.cts → requestFunnel.d-DWQQpjFR.d.cts} +5 -5
  117. package/dist/{resolve-D4Ywz5OS.d.ts → resolve.d-jI8FmBj3.d.cts} +3 -3
  118. package/dist/{resolve-D4Ywz5OS.d.cts → resolve.d-jI8FmBj3.d.ts} +3 -3
  119. package/dist/{runtimeTypes-BxxCKMn8.d.cts → runtimeTypes.d-4yFNNuYR.d.ts} +20 -13
  120. package/dist/{runtimeTypes-Doa_xxSa.d.ts → runtimeTypes.d-D6N_fhxx.d.cts} +20 -13
  121. package/dist/server/events/index.cjs +6 -3
  122. package/dist/server/events/index.d.cts +51 -9
  123. package/dist/server/events/index.d.ts +51 -9
  124. package/dist/server/events/index.js +6 -3
  125. package/dist/server/index.cjs +11 -6
  126. package/dist/server/index.d.cts +152 -8
  127. package/dist/server/index.d.ts +152 -8
  128. package/dist/server/index.js +11 -6
  129. package/dist/sheetCopy.d-CAhLOxjc.d.cts +4 -0
  130. package/dist/sheetCopy.d-CAhLOxjc.d.ts +4 -0
  131. package/dist/sheetSeam.d-Cviqk89n.d.ts +45 -0
  132. package/dist/sheetSeam.d-DCS3LW8g.d.cts +45 -0
  133. package/dist/shop/index.cjs +262 -0
  134. package/dist/shop/index.d.cts +193 -0
  135. package/dist/shop/index.d.ts +193 -0
  136. package/dist/shop/index.js +262 -0
  137. package/dist/televet/booking/index.cjs +15 -12
  138. package/dist/televet/booking/index.d.cts +36 -22
  139. package/dist/televet/booking/index.d.ts +36 -22
  140. package/dist/televet/booking/index.js +15 -12
  141. package/dist/televet/call/index.d.cts +5 -5
  142. package/dist/televet/call/index.d.ts +5 -5
  143. package/dist/televet/index.cjs +6 -3
  144. package/dist/televet/index.d.cts +12 -12
  145. package/dist/televet/index.d.ts +12 -12
  146. package/dist/televet/index.js +6 -3
  147. package/dist/{televetGlobal-C5dTUACe.d.cts → televetGlobal.d-CC-DrqkQ.d.ts} +7 -2
  148. package/dist/{televetGlobal-CnjrfhT4.d.ts → televetGlobal.d-CKwDCbmN.d.cts} +7 -2
  149. package/dist/testing/index.cjs +6 -3
  150. package/dist/testing/index.d.cts +3 -3
  151. package/dist/testing/index.d.ts +3 -3
  152. package/dist/testing/index.js +6 -3
  153. package/dist/testing/rn/index.cjs +4 -1
  154. package/dist/testing/rn/index.d.cts +23 -22
  155. package/dist/testing/rn/index.d.ts +23 -22
  156. package/dist/testing/rn/index.js +4 -1
  157. package/dist/testing/web/index.cjs +4 -1
  158. package/dist/testing/web/index.d.cts +23 -22
  159. package/dist/testing/web/index.d.ts +23 -22
  160. package/dist/testing/web/index.js +4 -1
  161. package/dist/texting/index.cjs +158 -0
  162. package/dist/texting/index.d.cts +36 -0
  163. package/dist/texting/index.d.ts +36 -0
  164. package/dist/texting/index.js +158 -0
  165. package/dist/threadOptions.d-B1pTMmDF.d.cts +260 -0
  166. package/dist/threadOptions.d-B1pTMmDF.d.ts +260 -0
  167. package/dist/{timelineRows-CGOlC_Q9.d.ts → timelineRows.d-BNxgzYRW.d.cts} +1 -1
  168. package/dist/{timelineRows-Beun96e2.d.cts → timelineRows.d-CU5GvvLk.d.ts} +1 -1
  169. package/dist/{tokens-DLj8OnLH.d.cts → tokens.d-DarDaV39.d.cts} +10 -2
  170. package/dist/{tokens-DLj8OnLH.d.ts → tokens.d-DarDaV39.d.ts} +10 -2
  171. package/dist/{typeStyle-BxVyF71R.d.ts → typeStyle.d-Bl8pzbBy.d.cts} +2 -2
  172. package/dist/{typeStyle-DJedEu14.d.cts → typeStyle.d-C1HBRAI3.d.ts} +2 -2
  173. package/dist/{uploadTransport-C6kGP1Kd.d.ts → uploadTransport.d-CWL7CdWP.d.cts} +1 -1
  174. package/dist/{uploadTransport-BM_pnEWj.d.cts → uploadTransport.d-EGoUl7gX.d.ts} +1 -1
  175. package/dist/usePresentation.d-D6qsFzBz.d.cts +9 -0
  176. package/dist/usePresentation.d-DuGQe_Do.d.ts +9 -0
  177. package/dist/useRecords.d-Cb-36SF5.d.cts +121 -0
  178. package/dist/useRecords.d-aQTzQZoV.d.ts +121 -0
  179. package/dist/{useRecordsDepth-hR94debv.d.ts → useRecordsDepth.d-DFcCfiXm.d.ts} +8 -20
  180. package/dist/{useRecordsDepth-DRrJntjt.d.cts → useRecordsDepth.d-sAq2Qkhr.d.cts} +8 -20
  181. package/dist/{useVetVisit-DmWa7lt1.d.ts → useVetVisit.d-BtdwhmgD.d.cts} +15 -4
  182. package/dist/{useVetVisit-PtBjNwZr.d.cts → useVetVisit.d-DoYQimyt.d.ts} +15 -4
  183. package/dist/video/index.cjs +5 -2
  184. package/dist/video/index.d.cts +7 -7
  185. package/dist/video/index.d.ts +7 -7
  186. package/dist/video/index.js +5 -2
  187. package/dist/{view-C_B5U04g.d.ts → view.d-C-SNpDJX.d.ts} +10 -122
  188. package/dist/{view-VvLEdXP4.d.cts → view.d-Dps5C8-s.d.cts} +10 -122
  189. package/dist/web/consent/index.cjs +4 -1
  190. package/dist/web/consent/index.d.cts +10 -10
  191. package/dist/web/consent/index.d.ts +10 -10
  192. package/dist/web/consent/index.js +4 -1
  193. package/dist/web/health-plan/index.cjs +414 -0
  194. package/dist/web/health-plan/index.d.cts +335 -0
  195. package/dist/web/health-plan/index.d.ts +335 -0
  196. package/dist/web/health-plan/index.js +414 -0
  197. package/dist/web/index.cjs +149 -82
  198. package/dist/web/index.d.cts +152 -38
  199. package/dist/web/index.d.ts +152 -38
  200. package/dist/web/index.js +149 -82
  201. package/dist/web/notifications/index.cjs +15 -3
  202. package/dist/web/notifications/index.d.cts +39 -209
  203. package/dist/web/notifications/index.d.ts +39 -209
  204. package/dist/web/notifications/index.js +15 -3
  205. package/dist/web/records/depth/index.cjs +10 -7
  206. package/dist/web/records/depth/index.d.cts +14 -12
  207. package/dist/web/records/depth/index.d.ts +14 -12
  208. package/dist/web/records/depth/index.js +10 -7
  209. package/dist/web/records/index.cjs +94 -68
  210. package/dist/web/records/index.d.cts +66 -21
  211. package/dist/web/records/index.d.ts +66 -21
  212. package/dist/web/records/index.js +94 -68
  213. package/dist/web/records/upload/index.d.cts +2 -2
  214. package/dist/web/records/upload/index.d.ts +2 -2
  215. package/dist/web/records-sheet/index.cjs +278 -0
  216. package/dist/web/records-sheet/index.d.cts +102 -0
  217. package/dist/web/records-sheet/index.d.ts +102 -0
  218. package/dist/web/records-sheet/index.js +278 -0
  219. package/dist/web/shop/index.cjs +301 -0
  220. package/dist/web/shop/index.d.cts +42 -0
  221. package/dist/web/shop/index.d.ts +42 -0
  222. package/dist/web/shop/index.js +301 -0
  223. package/dist/web/televet/booking/index.cjs +15 -12
  224. package/dist/web/televet/booking/index.d.cts +37 -23
  225. package/dist/web/televet/booking/index.d.ts +37 -23
  226. package/dist/web/televet/booking/index.js +15 -12
  227. package/dist/web/televet/call/index.d.cts +4 -4
  228. package/dist/web/televet/call/index.d.ts +4 -4
  229. package/dist/web/televet/index.cjs +6 -3
  230. package/dist/web/televet/index.d.cts +12 -12
  231. package/dist/web/televet/index.d.ts +12 -12
  232. package/dist/web/televet/index.js +6 -3
  233. package/dist/web/texting/index.cjs +157 -0
  234. package/dist/web/texting/index.d.cts +36 -0
  235. package/dist/web/texting/index.d.ts +36 -0
  236. package/dist/web/texting/index.js +157 -0
  237. package/health-plan/package.json +8 -0
  238. package/package.json +106 -4
  239. package/shop/package.json +8 -0
  240. package/texting/package.json +8 -0
  241. package/web/health-plan/native-blocked.cjs +12 -0
  242. package/web/health-plan/package.json +8 -0
  243. package/web/records-sheet/native-blocked.cjs +12 -0
  244. package/web/records-sheet/package.json +8 -0
  245. package/web/shop/native-blocked.cjs +12 -0
  246. package/web/shop/package.json +8 -0
  247. package/web/texting/native-blocked.cjs +12 -0
  248. package/web/texting/package.json +8 -0
  249. /package/dist/{CameraPort-Cv31Pz7g.d.cts → CameraPort.d-Cv31Pz7g.d.cts} +0 -0
  250. /package/dist/{CameraPort-Cv31Pz7g.d.ts → CameraPort.d-Cv31Pz7g.d.ts} +0 -0
  251. /package/dist/{TelemetryPort-BDNr00hu.d.cts → TelemetryPort.d-BDNr00hu.d.cts} +0 -0
  252. /package/dist/{TelemetryPort-BDNr00hu.d.ts → TelemetryPort.d-BDNr00hu.d.ts} +0 -0
  253. /package/dist/{cacheEpoch-DknKn3S0.d.cts → cacheEpoch.d-DknKn3S0.d.cts} +0 -0
  254. /package/dist/{cacheEpoch-DknKn3S0.d.ts → cacheEpoch.d-DknKn3S0.d.ts} +0 -0
  255. /package/dist/{callCopy-Bw6oZT54.d.cts → callCopy.d-Bw6oZT54.d.cts} +0 -0
  256. /package/dist/{callCopy-Bw6oZT54.d.ts → callCopy.d-Bw6oZT54.d.ts} +0 -0
  257. /package/dist/{ids-B2GAAifq.d.cts → ids.d-B2GAAifq.d.cts} +0 -0
  258. /package/dist/{ids-B2GAAifq.d.ts → ids.d-B2GAAifq.d.ts} +0 -0
  259. /package/dist/{optionalModule-DbJmsq5f.d.cts → optionalModule.d-DbJmsq5f.d.cts} +0 -0
  260. /package/dist/{optionalModule-DbJmsq5f.d.ts → optionalModule.d-DbJmsq5f.d.ts} +0 -0
  261. /package/dist/{profile-CSs1wlXT.d.cts → profile.d-CSs1wlXT.d.cts} +0 -0
  262. /package/dist/{profile-CSs1wlXT.d.ts → profile.d-CSs1wlXT.d.ts} +0 -0
  263. /package/dist/{projection-CeIUsbSk.d.cts → projection.d-CeIUsbSk.d.cts} +0 -0
  264. /package/dist/{projection-CeIUsbSk.d.ts → projection.d-CeIUsbSk.d.ts} +0 -0
  265. /package/dist/{species-BXAIMh7I.d.cts → species.d-BXAIMh7I.d.cts} +0 -0
  266. /package/dist/{species-BXAIMh7I.d.ts → species.d-BXAIMh7I.d.ts} +0 -0
  267. /package/dist/{visitIntent-D7_yVp1I.d.cts → visitIntent.d-D7_yVp1I.d.cts} +0 -0
  268. /package/dist/{visitIntent-D7_yVp1I.d.ts → visitIntent.d-D7_yVp1I.d.ts} +0 -0
@@ -0,0 +1,414 @@
1
+ "use client";
2
+ "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."});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}}var noopTelemetry=/* @__PURE__ */Object.freeze({track(){},trackExpectedFailure(){}});function ok(value,warning){/* @__PURE__ */
3
+ return Object.freeze({ok:true,value:value})}function err(error){/* @__PURE__ */
4
+ return Object.freeze({ok:false,error:error})}var EverfurConfigError=class _EverfurConfigError extends Error{constructor(kind,message){super(message),this.name="EverfurConfigError",this.kind=kind,Object.setPrototypeOf(this,_EverfurConfigError.prototype)}};var EVERFUR_CONTEXT_SYMBOL=/* @__PURE__ */Symbol.for("@everfur/sdk#EverfurContext@v1"),globalContextHost=globalThis,EverfurContext=globalContextHost[EVERFUR_CONTEXT_SYMBOL]??(globalContextHost[EVERFUR_CONTEXT_SYMBOL]=react.createContext(null));EverfurContext.displayName??="EverfurContext";function useEverfurContext(){let ctx=react.useContext(EverfurContext);if(ctx===null)throw new EverfurConfigError("not-initialized","Everfur hooks must be called inside <EverfurProvider>. Wrap your tree once, high.");return ctx}var HEALTH_PLAN_EVENTS=/* @__PURE__ */Object.freeze({opened:"health_plan.opened",productClicked:"health_plan.product_clicked",checkoutStarted:"health_plan.checkout_started"});function useHealthPlanTelemetry(){return react.useContext(EverfurContext)?.runtime.registry.services.telemetry??noopTelemetry}var PlanPetContext=react.createContext(null);function HealthPlanPetScope({petRef:petRef,children:children}){return react.createElement(PlanPetContext.Provider,{value:petRef},children)}function useHealthPlanBarPet(dockPet){let page=react.useContext(PlanPetContext),ctx=react.useContext(EverfurContext);return page??dockPet??ctx?.activePet??null}function useHealthPlanOpened(drawn,petRef,plan){let telemetry=useHealthPlanTelemetry(),sent=react.useRef(null);react.useEffect(()=>{if(!drawn||petRef===null||sent.current===petRef)return;sent.current=petRef;let items=plan?.items??[];telemetry.track(HEALTH_PLAN_EVENTS.opened,{petRef:petRef,itemsCount:items.length,inPlanCount:items.filter(item=>item.inPlan).length})},[drawn,petRef,plan,telemetry])}function trackProductClicked(telemetry,petRef,productId,inPlan){telemetry.track(HEALTH_PLAN_EVENTS.productClicked,{petRef:petRef,productId:productId,inPlan:inPlan})}function trackCheckoutStarted(telemetry,petRef,cart){telemetry.track(HEALTH_PLAN_EVENTS.checkoutStarted,{petRef:petRef,itemsCount:cart.count,subtotal:cart.subtotal,currency:cart.currency})}var CONTRACT_RETRYABILITY=/* @__PURE__ */Object.freeze([
5
+ /* @__PURE__ */Object.freeze({wireCode:"AccessDeniedException",envelope:"http_envelope",httpStatus:403,retryable:false}),
6
+ /* @__PURE__ */Object.freeze({wireCode:"AuthorizationException",envelope:"http_envelope",httpStatus:401,retryable:false}),
7
+ /* @__PURE__ */Object.freeze({wireCode:"ConflictException",envelope:"http_envelope",httpStatus:409,retryable:true}),
8
+ /* @__PURE__ */Object.freeze({wireCode:"DAILY_QUOTA_EXCEEDED",envelope:"http_envelope",httpStatus:429,retryable:true}),
9
+ /* @__PURE__ */Object.freeze({wireCode:"FILE_TOO_LARGE",envelope:"http_envelope",httpStatus:400,retryable:false}),
10
+ /* @__PURE__ */Object.freeze({wireCode:"IDEMPOTENCY_KEY_IN_FLIGHT",envelope:"http_envelope",httpStatus:409,retryable:true}),
11
+ /* @__PURE__ */Object.freeze({wireCode:"IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST",envelope:"http_envelope",httpStatus:409,retryable:false}),
12
+ /* @__PURE__ */Object.freeze({wireCode:"INVALID_CONTENT_TYPE",envelope:"http_envelope",httpStatus:400,retryable:false}),
13
+ /* @__PURE__ */Object.freeze({wireCode:"InternalFailureException",envelope:"http_envelope",httpStatus:500,retryable:true}),
14
+ /* @__PURE__ */Object.freeze({wireCode:"MethodNotAllowedException",envelope:"http_envelope",httpStatus:405,retryable:false}),
15
+ /* @__PURE__ */Object.freeze({wireCode:"NotImplementedException",envelope:"http_envelope",httpStatus:501,retryable:false}),
16
+ /* @__PURE__ */Object.freeze({wireCode:"PaymentRequiredException",envelope:"http_envelope",httpStatus:402,retryable:false}),
17
+ /* @__PURE__ */Object.freeze({wireCode:"ResourceNotFoundException",envelope:"http_envelope",httpStatus:404,retryable:false}),
18
+ /* @__PURE__ */Object.freeze({wireCode:"ServiceUnavailableException",envelope:"http_envelope",httpStatus:503,retryable:true}),
19
+ /* @__PURE__ */Object.freeze({wireCode:"TIER_UPGRADE_REQUIRED",envelope:"http_envelope",httpStatus:402,retryable:false}),
20
+ /* @__PURE__ */Object.freeze({wireCode:"ThrottlingException",envelope:"http_envelope",httpStatus:429,retryable:true}),
21
+ /* @__PURE__ */Object.freeze({wireCode:"ValidationException",envelope:"http_envelope",httpStatus:400,retryable:false}),
22
+ /* @__PURE__ */Object.freeze({wireCode:"accessDenied",envelope:"http_envelope",httpStatus:403,retryable:false}),
23
+ /* @__PURE__ */Object.freeze({wireCode:"access_denied",envelope:"oauth_error",httpStatus:302,retryable:false}),
24
+ /* @__PURE__ */Object.freeze({wireCode:"attachment_unreadable",envelope:"http_envelope",httpStatus:400,retryable:false}),
25
+ /* @__PURE__ */Object.freeze({wireCode:"authExpired",envelope:"http_envelope",httpStatus:401,retryable:true}),
26
+ /* @__PURE__ */Object.freeze({wireCode:"authRejected",envelope:"http_envelope",httpStatus:401,retryable:false}),
27
+ /* @__PURE__ */Object.freeze({wireCode:"catalog_empty_refused",envelope:"http_envelope",httpStatus:409,retryable:false}),
28
+ /* @__PURE__ */Object.freeze({wireCode:"catalog_shrink_refused",envelope:"http_envelope",httpStatus:409,retryable:false}),
29
+ /* @__PURE__ */Object.freeze({wireCode:"consent_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),
30
+ /* @__PURE__ */Object.freeze({wireCode:"consent_required",envelope:"http_envelope",httpStatus:422,retryable:false}),
31
+ /* @__PURE__ */Object.freeze({wireCode:"consent_scope_wrong_route",envelope:"http_envelope",httpStatus:400,retryable:false}),
32
+ /* @__PURE__ */Object.freeze({wireCode:"device_cipher_unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),
33
+ /* @__PURE__ */Object.freeze({wireCode:"email_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),
34
+ /* @__PURE__ */Object.freeze({wireCode:"event_cursor_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
35
+ /* @__PURE__ */Object.freeze({wireCode:"event_filter_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
36
+ /* @__PURE__ */Object.freeze({wireCode:"event_payload_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
37
+ /* @__PURE__ */Object.freeze({wireCode:"event_type_not_available",envelope:"http_envelope",httpStatus:400,retryable:false}),
38
+ /* @__PURE__ */Object.freeze({wireCode:"event_type_unknown",envelope:"http_envelope",httpStatus:400,retryable:false}),
39
+ /* @__PURE__ */Object.freeze({wireCode:"idempotency_key_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
40
+ /* @__PURE__ */Object.freeze({wireCode:"idempotency_key_required",envelope:"http_envelope",httpStatus:400,retryable:false}),
41
+ /* @__PURE__ */Object.freeze({wireCode:"idempotency_key_reused",envelope:"http_envelope",httpStatus:409,retryable:false}),
42
+ /* @__PURE__ */Object.freeze({wireCode:"insufficientCapability",envelope:"http_envelope",httpStatus:403,retryable:false}),
43
+ /* @__PURE__ */Object.freeze({wireCode:"insufficient_scope",envelope:"http_envelope",httpStatus:403,retryable:false}),
44
+ /* @__PURE__ */Object.freeze({wireCode:"internal_error",envelope:"sse_frame",httpStatus:200,retryable:false}),
45
+ /* @__PURE__ */Object.freeze({wireCode:"invalidRequest",envelope:"http_envelope",httpStatus:400,retryable:false}),
46
+ /* @__PURE__ */Object.freeze({wireCode:"invalid_client",envelope:"oauth_error",httpStatus:401,retryable:false}),
47
+ /* @__PURE__ */Object.freeze({wireCode:"invalid_client_metadata",envelope:"oauth_error",httpStatus:400,retryable:false}),
48
+ /* @__PURE__ */Object.freeze({wireCode:"invalid_grant",envelope:"oauth_error",httpStatus:400,retryable:false}),
49
+ /* @__PURE__ */Object.freeze({wireCode:"invalid_redirect_uri",envelope:"oauth_error",httpStatus:400,retryable:false}),
50
+ /* @__PURE__ */Object.freeze({wireCode:"invalid_request",envelope:"oauth_error",httpStatus:400,retryable:false}),
51
+ /* @__PURE__ */Object.freeze({wireCode:"invalid_scope",envelope:"oauth_error",httpStatus:400,retryable:false}),
52
+ /* @__PURE__ */Object.freeze({wireCode:"invalid_target",envelope:"oauth_error",httpStatus:400,retryable:false}),
53
+ /* @__PURE__ */Object.freeze({wireCode:"linked_account_read_only",envelope:"http_envelope",httpStatus:409,retryable:false}),
54
+ /* @__PURE__ */Object.freeze({wireCode:"mcp_connection_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),
55
+ /* @__PURE__ */Object.freeze({wireCode:"mcp_request_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),
56
+ /* @__PURE__ */Object.freeze({wireCode:"mcp_request_gone",envelope:"http_envelope",httpStatus:410,retryable:false}),
57
+ /* @__PURE__ */Object.freeze({wireCode:"mcp_request_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),
58
+ /* @__PURE__ */Object.freeze({wireCode:"not_found",envelope:"sse_frame",httpStatus:200,retryable:false}),
59
+ /* @__PURE__ */Object.freeze({wireCode:"partner_visit_link_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),
60
+ /* @__PURE__ */Object.freeze({wireCode:"partner_visit_owner_only",envelope:"http_envelope",httpStatus:403,retryable:false}),
61
+ /* @__PURE__ */Object.freeze({wireCode:"partner_visit_pet_already_mapped",envelope:"http_envelope",httpStatus:409,retryable:false}),
62
+ /* @__PURE__ */Object.freeze({wireCode:"payload_too_large",envelope:"http_envelope",httpStatus:413,retryable:false}),
63
+ /* @__PURE__ */Object.freeze({wireCode:"petRefInUse",envelope:"http_envelope",httpStatus:409,retryable:false}),
64
+ /* @__PURE__ */Object.freeze({wireCode:"pet_health_list_removals_unconfirmed",envelope:"http_envelope",httpStatus:422,retryable:false}),
65
+ /* @__PURE__ */Object.freeze({wireCode:"pet_health_species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),
66
+ /* @__PURE__ */Object.freeze({wireCode:"pet_not_registered",envelope:"http_envelope",httpStatus:404,retryable:false}),
67
+ /* @__PURE__ */Object.freeze({wireCode:"provider_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),
68
+ /* @__PURE__ */Object.freeze({wireCode:"rateLimited",envelope:"http_envelope",httpStatus:429,retryable:true}),
69
+ /* @__PURE__ */Object.freeze({wireCode:"record_species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),
70
+ /* @__PURE__ */Object.freeze({wireCode:"record_subject_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),
71
+ /* @__PURE__ */Object.freeze({wireCode:"record_upload_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
72
+ /* @__PURE__ */Object.freeze({wireCode:"records_consent_required",envelope:"http_envelope",httpStatus:409,retryable:false}),
73
+ /* @__PURE__ */Object.freeze({wireCode:"sandbox_only",envelope:"http_envelope",httpStatus:403,retryable:false}),
74
+ /* @__PURE__ */Object.freeze({wireCode:"session_required",envelope:"http_envelope",httpStatus:403,retryable:false}),
75
+ /* @__PURE__ */Object.freeze({wireCode:"session_revoked",envelope:"http_envelope",httpStatus:401,retryable:false}),
76
+ /* @__PURE__ */Object.freeze({wireCode:"share_limit_reached",envelope:"http_envelope",httpStatus:429,retryable:false}),
77
+ /* @__PURE__ */Object.freeze({wireCode:"slow_down",envelope:"oauth_error",httpStatus:429,retryable:true}),
78
+ /* @__PURE__ */Object.freeze({wireCode:"species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),
79
+ /* @__PURE__ */Object.freeze({wireCode:"tenant_filter_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
80
+ /* @__PURE__ */Object.freeze({wireCode:"tenant_has_no_capabilities",envelope:"http_envelope",httpStatus:409,retryable:false}),
81
+ /* @__PURE__ */Object.freeze({wireCode:"tenant_resource_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),
82
+ /* @__PURE__ */Object.freeze({wireCode:"tenant_surface_not_enabled",envelope:"http_envelope",httpStatus:409,retryable:false}),
83
+ /* @__PURE__ */Object.freeze({wireCode:"timeout",envelope:"sse_frame",httpStatus:200,retryable:true}),
84
+ /* @__PURE__ */Object.freeze({wireCode:"token_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),
85
+ /* @__PURE__ */Object.freeze({wireCode:"unavailable",envelope:"sse_frame",httpStatus:200,retryable:true}),
86
+ /* @__PURE__ */Object.freeze({wireCode:"unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),
87
+ /* @__PURE__ */Object.freeze({wireCode:"unrestrictedKeyRequired",envelope:"http_envelope",httpStatus:403,retryable:false}),
88
+ /* @__PURE__ */Object.freeze({wireCode:"unsupported_grant_type",envelope:"oauth_error",httpStatus:400,retryable:false}),
89
+ /* @__PURE__ */Object.freeze({wireCode:"unsupported_response_type",envelope:"oauth_error",httpStatus:302,retryable:false}),
90
+ /* @__PURE__ */Object.freeze({wireCode:"user_ref_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
91
+ /* @__PURE__ */Object.freeze({wireCode:"verify_mint_rate_limited",envelope:"http_envelope",httpStatus:429,retryable:true}),
92
+ /* @__PURE__ */Object.freeze({wireCode:"verify_mint_refused",envelope:"http_envelope",httpStatus:403,retryable:false}),
93
+ /* @__PURE__ */Object.freeze({wireCode:"verify_mint_unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),
94
+ /* @__PURE__ */Object.freeze({wireCode:"verify_user_ref_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),
95
+ /* @__PURE__ */Object.freeze({wireCode:"webhook_endpoint_update_empty",envelope:"http_envelope",httpStatus:400,retryable:false}),
96
+ /* @__PURE__ */Object.freeze({wireCode:"webhook_endpoint_update_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
97
+ /* @__PURE__ */Object.freeze({wireCode:"webhook_url_rejected",envelope:"http_envelope",httpStatus:400,retryable:false})]);/* @__PURE__ */Object.freeze(CONTRACT_RETRYABILITY.map(row=>row.wireCode));var NORMALIZED_FOLD=/* @__PURE__ */Object.freeze({ValidationException:"validationFailed",AuthorizationException:"authRejected",PaymentRequiredException:"paymentRequired",AccessDeniedException:"accessDenied",ResourceNotFoundException:"resourceNotFound",ConflictException:"conflict",ThrottlingException:"rateLimited",InternalFailureException:"internalError",NotImplementedException:"notImplemented",ServiceUnavailableException:"serviceUnavailable",MethodNotAllowedException:"validationFailed",authExpired:"authExpired",unavailable:"serviceUnavailable",session_required:"sessionRequired",session_revoked:"authExpired",accessDenied:"accessDenied",invalidRequest:"sdkUpdateRequired",authRejected:"authRejected",rateLimited:"rateLimited",insufficientCapability:"accessDenied",unrestrictedKeyRequired:"accessDenied",user_ref_invalid:"validationFailed",event_cursor_invalid:"validationFailed",event_filter_invalid:"validationFailed",event_payload_invalid:"validationFailed",event_type_unknown:"validationFailed",idempotency_key_invalid:"validationFailed",idempotency_key_required:"validationFailed",idempotency_key_reused:"idempotencyConflict",payload_too_large:"validationFailed",webhook_url_rejected:"validationFailed",webhook_endpoint_update_empty:"validationFailed",webhook_endpoint_update_invalid:"validationFailed",event_type_not_available:"conflict",record_subject_not_found:"resourceNotFound",records_consent_required:"conflict",record_species_unsupported:"validationFailed",record_upload_invalid:"validationFailed",FILE_TOO_LARGE:"validationFailed",INVALID_CONTENT_TYPE:"validationFailed",attachment_unreadable:"validationFailed",provider_unsupported:"validationFailed",token_invalid:"validationFailed",device_cipher_unavailable:"serviceUnavailable",email_invalid:"validationFailed",consent_required:"validationFailed",consent_invalid:"validationFailed",consent_scope_wrong_route:"validationFailed",IDEMPOTENCY_KEY_IN_FLIGHT:"idempotencyInFlight",IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST:"idempotencyConflict",DAILY_QUOTA_EXCEEDED:"quotaExceeded",TIER_UPGRADE_REQUIRED:"paymentRequired",not_found:"conversationNotFound",timeout:"streamTimeout",internal_error:"internalError",invalid_request:"validationFailed",invalid_client:"authRejected",invalid_grant:"authRejected",unsupported_grant_type:"validationFailed",invalid_scope:"validationFailed",invalid_target:"validationFailed",invalid_redirect_uri:"validationFailed",invalid_client_metadata:"validationFailed",unsupported_response_type:"validationFailed",access_denied:"accessDenied",slow_down:"rateLimited",mcp_request_not_found:"resourceNotFound",mcp_request_gone:"resourceNotFound",mcp_connection_not_found:"resourceNotFound",mcp_request_conflict:"conflict",sandbox_only:"accessDenied",tenant_has_no_capabilities:"conflict",verify_mint_refused:"accessDenied",verify_mint_rate_limited:"rateLimited",verify_mint_unavailable:"serviceUnavailable",verify_user_ref_invalid:"validationFailed",insufficient_scope:"accessDenied",tenant_filter_invalid:"validationFailed",tenant_resource_not_found:"resourceNotFound",tenant_surface_not_enabled:"conflict",pet_health_species_unsupported:"validationFailed",pet_health_list_removals_unconfirmed:"validationFailed",petRefInUse:"conflict",share_limit_reached:"conflict",pet_not_registered:"resourceNotFound",species_unsupported:"validationFailed",partner_visit_owner_only:"accessDenied",partner_visit_link_conflict:"conflict",partner_visit_pet_already_mapped:"conflict",linked_account_read_only:"conflict",catalog_empty_refused:"conflict",catalog_shrink_refused:"conflict"}),CONTRACT_ERROR_ROWS=/* @__PURE__ */Object.freeze(CONTRACT_RETRYABILITY.map(generated=>/* @__PURE__ */Object.freeze({wireCode:generated.wireCode,envelope:generated.envelope,retryable:generated.retryable,normalized:NORMALIZED_FOLD[generated.wireCode]}))),BY_KEY=new Map(CONTRACT_ERROR_ROWS.map(r=>[r.envelope+r.wireCode.toUpperCase(),r])),ENVELOPE_LOOKUP_ORDER=/* @__PURE__ */Object.freeze(["http_envelope",...[...new Set(CONTRACT_ERROR_ROWS.map(r=>r.envelope))].filter(e=>e!=="http_envelope").sort()]);function contractErrorFor(wireCode,envelope){if(typeof wireCode!="string")return;let key=wireCode.trim().toUpperCase();if(key.length!==0)for(let candidate of[envelope??"http_envelope",...ENVELOPE_LOOKUP_ORDER]){let row=BY_KEY.get(candidate+key);if(row)return row}}var CATEGORY_OF=/* @__PURE__ */Object.freeze({authExpired:"authentication",authRejected:"authentication",sessionRequired:"authentication",identitySignatureRequired:"authentication",accessDenied:"authorization",paymentRequired:"entitlement",quotaExceeded:"rateLimit",rateLimited:"rateLimit",validationFailed:"invalidRequest",sdkUpdateRequired:"invalidRequest",runtimeDisposed:"invalidRequest",conversationNotFound:"notFound",petNotFound:"notFound",resourceNotFound:"notFound",conflict:"conflict",idempotencyConflict:"conflict",idempotencyInFlight:"conflict",streamTimeout:"connection",streamIncomplete:"connection",upstreamLlmTimeout:"connection",serviceUnavailable:"connection",internalError:"server",notImplemented:"server",mediaUploadFailed:"media",moderationBlocked:"policy",unknown:"unknown"});function categoryFor(code){return CATEGORY_OF[code]}function fromWire(wire){let contractRow=contractErrorFor(wire);if(contractRow)return contractRow.normalized;let upper=(wire??"").trim().toUpperCase(),canonical=upper.replace(/[^A-Z0-9]/g,"");if(canonical==="AUTHREJECTED")return"authRejected";if(upper.startsWith("AUTH"))return"authExpired";switch(canonical){case"DAILYQUOTAEXCEEDED":case"QUOTAEXCEEDED":return"quotaExceeded";case"RATELIMITED":case"TOOMANYREQUESTS":case"TELEVETRATELIMITED":return"rateLimited";case"IDEMPOTENCYKEYCONFLICT":case"IDEMPOTENCYCONFLICT":return"idempotencyConflict";case"ACCESSDENIED":case"FORBIDDEN":return"accessDenied";case"IDENTITYSIGNATUREREQUIRED":return"identitySignatureRequired";case"RUNTIMEDISPOSED":return"runtimeDisposed";case"NOTFOUND":case"CONVERSATIONNOTFOUND":return"conversationNotFound";case"PETNOTFOUND":return"petNotFound";case"TIMEOUT":case"STREAMTIMEOUT":return"streamTimeout";case"MEDIAUPLOADFAILED":case"UNRECOGNIZEDVIDEOFORMAT":case"FILETOOSMALL":return"mediaUploadFailed";case"MODERATIONBLOCKED":return"moderationBlocked";case"UPSTREAMLLMTIMEOUT":return"upstreamLlmTimeout";case"INTERNALERROR":case"INTERNALSERVERERROR":return"internalError";case"STREAMINCOMPLETE":case"CHATSTREAMINCOMPLETE":return"streamIncomplete";case"INVALIDANALYSISTYPE":case"INVALIDUPLOADPURPOSE":return"unknown";default:return"unknown"}}var AUTO_RETRYABLE_CODES=/* @__PURE__ */new Set(["streamTimeout","rateLimited","internalError","upstreamLlmTimeout","streamIncomplete"]);function isAutoRetryable(code){return AUTO_RETRYABLE_CODES.has(code)}var RETRYABLE_CONTRACT_CODES=/* @__PURE__ */new Set(["serviceUnavailable","conflict","idempotencyInFlight"]);function isRetryableCode(code){return isAutoRetryable(code)||RETRYABLE_CONTRACT_CODES.has(code)}var BACKOFF_BASE_MS=500,BACKOFF_CAP_MS=8e3,MAX_RETRY_ATTEMPTS=4;function backoffDelayMs(attempt,rng=Math.random){let bounded=Math.max(0,attempt),ceiling=Math.min(BACKOFF_BASE_MS*2**bounded,BACKOFF_CAP_MS);return Math.floor(rng()*ceiling)}var ACCESS_DENIED_COPY="This feature isn't available on your account right now.",VALIDATION_FAILED_COPY="Something in that request was not right. Check the details and try again.",USER_FACING_COPY=/* @__PURE__ */Object.freeze({authExpired:"Please sign in again to continue.",authRejected:"Please sign in again to continue.",sessionRequired:"This app needs to be updated to keep using Everfur.",accessDenied:ACCESS_DENIED_COPY,paymentRequired:"This is part of a paid plan.",quotaExceeded:"You have used today's messages. This resets tomorrow.",rateLimited:"You are sending messages quickly. Try again in a few seconds.",validationFailed:VALIDATION_FAILED_COPY,sdkUpdateRequired:"This app needs to be updated to keep using Everfur.",conflict:"That is already running. Wait for it to finish, then try again.",idempotencyConflict:"That message was already delivered.",idempotencyInFlight:"That is still processing. Give it a moment.",conversationNotFound:"This conversation is no longer available.",petNotFound:"We could not find that pet. Please pick a pet and try again.",resourceNotFound:"We could not find that.",streamTimeout:"The response timed out. Tap retry to try again.",mediaUploadFailed:"We could not upload that photo. Please attach it again.",moderationBlocked:"This request cannot be answered here.",upstreamLlmTimeout:"The response timed out. Tap retry to try again.",internalError:"We hit a snag on our end. Please try again.",notImplemented:"That is not available yet.",serviceUnavailable:"That service is briefly unavailable. Try again shortly.",streamIncomplete:"The connection dropped mid-answer. Tap retry to continue.",identitySignatureRequired:ACCESS_DENIED_COPY,runtimeDisposed:VALIDATION_FAILED_COPY,unknown:"Something went wrong. Please try again."}),SESSION_REVOKED_COPY="This session has ended. Please sign in again.",LINKED_ACCOUNT_READ_ONLY="linked_account_read_only";function displayFor(code,wireCode,reasonCode){return code==="conflict"&&reasonCode===LINKED_ACCOUNT_READ_ONLY?ACCESS_DENIED_COPY:(code==="authRejected"||code==="authExpired")&&typeof wireCode=="string"&&wireCode.trim().toLowerCase()==="session_revoked"?SESSION_REVOKED_COPY:userFacingError(code)}function userFacingError(code){return USER_FACING_COPY[code]}function defineHidden(target,key,value){Object.defineProperty(target,key,{value:value,enumerable:false,writable:false,configurable:false})}var REASON_CODE_SHAPE=/^[a-z][a-z0-9_]{0,63}$/;function makeEverfurError(code,opts){let row=contractErrorFor(opts?.wireCode,opts?.wireEnvelope),linkedReadOnly=code==="conflict"&&opts?.reasonCode===LINKED_ACCOUNT_READ_ONLY,error={code:code,category:categoryFor(code),retryable:opts?.retryable??(linkedReadOnly?false:isRetryableCode(code)),displayMessage:displayFor(code,opts?.wireCode,linkedReadOnly?LINKED_ACCOUNT_READ_ONLY:null)};opts?.httpStatus!==void 0&&(error.httpStatus=opts.httpStatus),opts?.requestId&&(error.requestId=opts.requestId),typeof opts?.reasonCode=="string"&&REASON_CODE_SHAPE.test(opts.reasonCode)&&(error.reasonCode=opts.reasonCode);let wait=opts?.retryAfterSeconds;if(typeof wait=="number"&&Number.isFinite(wait)&&wait>=0&&(error.retryAfterSeconds=Math.round(wait)),row);return opts?.wireMessage&&defineHidden(error,"wireMessage",opts.wireMessage),opts?.raw!==void 0&&opts.raw!==null&&defineHidden(error,"raw",opts.raw),/* @__PURE__ */Object.freeze(error)}function assertNever(x){throw new Error(`assertNever: unhandled discriminated-union member ${JSON.stringify(x)}`)}function errorFrame(fields){/* @__PURE__ */
98
+ return Object.freeze({kind:"error",terminal:true,code:fields.code,retryable:fields.retryable,wireMessage:fields.wireMessage,synthesized:fields.synthesized,lastEventId:fields.lastEventId,serverRequestId:null})}function mintFailedError(cause,refusal){let message=cause instanceof Error?cause.message:typeof cause=="string"?cause:null;return makeEverfurError("authRejected",{retryable:false,...refusal?.wireCode?{wireCode:refusal.wireCode}:{},...refusal?.requestId?{requestId:refusal.requestId}:{},...message?{wireMessage:message}:{},...cause!=null?{raw:cause}:{}})}function authHeaders(auth){let headers={};return auth.mode==="personalized"?headers.authorization=`Bearer ${auth.token}`:headers["x-everfur-partner-key"]=auth.publishableKey,auth.userRef&&(headers["x-everfur-user-ref"]=auth.userRef),auth.sessionId&&(headers["x-everfur-session-id"]=auth.sessionId),headers}function withAuthHeaders(req,auth){return{...req,headers:{...stripAuthHeaders(req.headers),...authHeaders(auth)}}}function stripAuthHeaders(headers){if(!headers)return{};let out={};for(let[key,value]of Object.entries(headers)){let lower=key.toLowerCase();lower==="authorization"||lower==="x-everfur-partner-key"||(out[key]=value)}return out}async function authedSend(req,ctx){if(ctx.mode==="anonymous")return ctx.transport.request(withAuthHeaders(req,{mode:"anonymous",publishableKey:ctx.publishableKey,userRef:ctx.userRef,...ctx.sessionId?{sessionId:ctx.sessionId}:{}}));let token;try{token=await ctx.identity.currentToken()}catch(cause){return ctx.identity.reportRejected?.(),err(mintFailedError(cause))}let first=await ctx.transport.request(withAuthHeaders(req,{mode:"personalized",token:token,userRef:ctx.userRef,...ctx.sessionId?{sessionId:ctx.sessionId}:{}}));if(first.ok||first.error.httpStatus!==401)return first;let refreshed;try{refreshed=await ctx.identity.currentToken({forceRefresh:!0})}catch(cause){return ctx.identity.reportRejected?.(),err(mintFailedError(cause,{wireCode:wireCodeOf(first.error.raw),requestId:first.error.requestId}))}let retry=await ctx.transport.request(withAuthHeaders(req,{mode:"personalized",token:refreshed,userRef:ctx.userRef,...ctx.sessionId?{sessionId:ctx.sessionId}:{}}));return!retry.ok&&retry.error.httpStatus===401?(ctx.identity.reportRejected?.(),err(refusedAfterRemintError(retry.error))):retry}function refusedAfterRemintError(refusal){let raw=refusal.raw,wireCode=wireCodeOf(raw);return makeEverfurError("authRejected",{retryable:false,...refusal.httpStatus!==void 0?{httpStatus:refusal.httpStatus}:{},...refusal.requestId?{requestId:refusal.requestId}:{},...wireCode?{wireCode:wireCode}:{},...refusal.reasonCode?{reasonCode:refusal.reasonCode}:{},...refusal.wireMessage?{wireMessage:refusal.wireMessage}:{},...raw!=null?{raw:raw}:{}})}function wireCodeOf(body){if(typeof body!="object"||body===null)return null;let b=body,code=(typeof b.error=="object"&&b.error!==null?b.error.code:void 0)??b.code;return typeof code=="string"&&code.length>0?code:null}function networkError(cause){return makeEverfurError("internalError",{retryable:true,wireMessage:describeCause(cause)})}function describeCause(cause){return cause instanceof Error?cause.message:typeof cause=="string"?cause:"network request failed"}var FUNNEL_UNARY_TIMEOUT_MS=3e4,RETRY_OVERRIDE_MAX_MS=BACKOFF_CAP_MS*2,IDEMPOTENCY_HEADER="idempotency-key",MUTATING_METHODS=/* @__PURE__ */new Set(["POST","PUT","PATCH","DELETE"]),NOOP_OBSERVER=/* @__PURE__ */Object.freeze({onEvent(){}}),defaultFunnelTimers=/* @__PURE__ */Object.freeze({setTimeout:(handler,ms)=>setTimeout(handler,ms),clearTimeout:handle=>clearTimeout(handle),now:()=>Date.now()});function seededIdempotencyKey(seed){let safe=seed.trim().replace(/[^A-Za-z0-9_.:-]/g,"-");return safe.length===0?null:`efs_${safe}`.slice(0,128)}function createRequestFunnel(deps){let observer=deps.observer??NOOP_OBSERVER,timers=deps.timers??defaultFunnelTimers,rng=deps.rng??Math.random,sleep=deps.sleep??((ms,signal)=>delayAbortable(ms,timers,signal)),ceiling=deps.maxAttempts??MAX_RETRY_ATTEMPTS,timeoutMs=deps.unaryTimeoutMs??FUNNEL_UNARY_TIMEOUT_MS,mintKey=deps.newIdempotencyKey??defaultIdempotencyKeyFactory(),emit=event=>{try{observer.onEvent(event)}catch{}};async function send(call,req,opts){let perCallMaxAttempts=opts?.maxAttempts,maxAttempts=Math.max(1,perCallMaxAttempts??ceiling),idempotent=opts?.idempotent??MUTATING_METHODS.has(req.method),seeded=opts?.idempotencyKey===void 0?null:seededIdempotencyKey(opts.idempotencyKey),idempotencyKey=idempotent?seeded??mintKey():null,base3=assembleHeaders(req,idempotencyKey),attempt=0;for(;;){let stamp=extra=>/* @__PURE__ */Object.freeze({call:call,method:req.method,path:req.path,attempt:attempt,...idempotencyKey?{idempotencyKey:idempotencyKey}:{},...extra});emit(stamp({phase:"attempt"}));let deadline=boundedSignal(timeoutMs,timers),merged=mergeSignals(deadline.signal,req.signal),settled;try{settled=await authedSend({...base3,signal:merged.signal},deps.auth)}catch(cause){settled=err(networkError(cause))}finally{merged.dispose(),deadline.cancel()}if(settled.ok)return emit(stamp({phase:"settled",ok:true,reason:"ok"})),settled;let error=settled.error,decision=decideRetry(error,attempt,{maxAttempts:maxAttempts,rng:rng,now:timers.now(),aborted:req.signal?.aborted===true,...perCallMaxAttempts!==void 0?{perCallMaxAttempts:perCallMaxAttempts}:{},...deps.errorPolicy!==void 0?{policy:deps.errorPolicy}:{}}),settledEvent={ok:false,code:error.code,reason:decision.reason,...error.httpStatus!==void 0?{httpStatus:error.httpStatus}:{},...error.requestId!==void 0?{requestId:error.requestId}:{}};if(!decision.retry)return emit(stamp({phase:"settled",...settledEvent})),err(error);if(emit(stamp({phase:"retry",...settledEvent,delayMs:decision.delayMs})),await sleep(decision.delayMs,req.signal),req.signal?.aborted===true)return emit(stamp({phase:"settled",...settledEvent,reason:"aborted"})),err(error);attempt+=1}}async function authorize(req){return withAuthHeaders(req,await resolveDeviceAuth(deps.auth))}async function*stream(call,req,signal){emit(
99
+ /* @__PURE__ */Object.freeze({call:call,phase:"stream.open",method:req.method,path:req.path,attempt:0}));try{yield*deps.auth.transport.stream(req,signal)}catch{yield errorFrame({code:"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null})}}/* @__PURE__ */
100
+ return Object.freeze({send:send,authorize:authorize,stream:stream})}function assembleHeaders(req,idempotencyKey){let headers={};for(let[key,value]of Object.entries(req.headers??{}))key.toLowerCase()!==IDEMPOTENCY_HEADER&&(headers[key]=value);return idempotencyKey!==null&&(headers["Idempotency-Key"]=idempotencyKey),{...req,headers:headers}}function defaultIdempotencyKeyFactory(){let counter=0;return()=>`efk_${Date.now().toString(36)}_${(counter++).toString(36)}_${Math.random().toString(36).slice(2,12)}`}var POLICY_MAX_ATTEMPTS_CAP=10;function decideRetry(error,attempt,ctx){if(ctx.aborted)return{retry:false,reason:"aborted"};let throttle=throttleKind(error);if(throttle==="quota")return{retry:false,reason:"daily-quota-exhausted"};if(throttle!=="burst"&&!isAutoRetryable(error.code))return{retry:false,reason:"terminal-code"};let reason=throttle==="burst"?"burst-throttle":"retryable-code";if((()=>{if(ctx.policy===void 0)return false;try{return!ctx.policy.shouldRetry(error.code,attempt)}catch{return false}})())return{retry:false,reason:"terminal-code"};let policyCeiling=()=>{if(ctx.policy===void 0)return null;let raw;try{raw=ctx.policy.maxAttempts(error.code)}catch{return null}return typeof raw!="number"||!Number.isFinite(raw)?null:Math.max(1,Math.min(POLICY_MAX_ATTEMPTS_CAP,Math.floor(raw)))},ceiling=ctx.perCallMaxAttempts??policyCeiling()??ctx.maxAttempts;if(attempt+1>=ceiling)return{retry:false,reason:"attempts-exhausted"};let override=retryOverrideMs(error,ctx.now);return override!==null?override>RETRY_OVERRIDE_MAX_MS?{retry:false,reason:"server-reset-beyond-budget"}:{retry:true,reason:reason,delayMs:override}:{retry:true,reason:reason,delayMs:backoffDelayMs(attempt,ctx.rng)}}function throttleKind(error){let code=error.code==="unknown"?fromWire(rawWireCode(error.raw)):error.code;return code==="quotaExceeded"?"quota":code==="rateLimited"||error.httpStatus===429?"burst":null}function retryOverrideMs(error,now){let at=findResetsAt(error.raw);if(at!==null){let delta=at-now;return delta>0?delta:0}let wait=findRetryAfterSeconds(error.raw);return wait===null?null:Math.round(wait*1e3)}function findRetryAfterSeconds(raw){for(let scope of candidateScopes(raw)){let value=scope.retry_after_seconds;if(typeof value=="number"&&Number.isFinite(value)&&value>=0)return value}return null}function findResetsAt(raw){for(let scope of candidateScopes(raw)){let value=scope.resets_at,parsed=parseInstantMs(value);if(parsed!==null)return parsed}return null}function candidateScopes(raw){if(!isRecord(raw))return[];let out=[raw];for(let nested of["error","detail"]){let value=raw[nested];isRecord(value)&&out.push(value)}return out}function parseInstantMs(value){if(typeof value=="number"&&Number.isFinite(value))return value<1e11?Math.round(value*1e3):Math.round(value);if(typeof value=="string"&&value.trim().length>0){let parsed=Date.parse(value);return Number.isFinite(parsed)?parsed:null}return null}function rawWireCode(raw){for(let scope of candidateScopes(raw)){let code=scope.code;if(typeof code=="string"&&code.length>0)return code}return null}function isRecord(value){return typeof value=="object"&&value!==null}async function resolveDeviceAuth(auth){return auth.mode==="anonymous"?{mode:"anonymous",publishableKey:auth.publishableKey,userRef:auth.userRef,...auth.sessionId?{sessionId:auth.sessionId}:{}}:{mode:"personalized",token:await auth.identity.currentToken(),userRef:auth.userRef,...auth.sessionId?{sessionId:auth.sessionId}:{}}}function boundedSignal(ms,timers){let ctrl=new AbortController,handle=timers.setTimeout(()=>ctrl.abort(),ms);return{signal:ctrl.signal,cancel:()=>timers.clearTimeout(handle)}}function mergeSignals(deadline,caller){let noop2=()=>{};if(!caller)return{signal:deadline,dispose:noop2};let ctrl=new AbortController;if(deadline.aborted||caller.aborted)return ctrl.abort(),{signal:ctrl.signal,dispose:noop2};let onAbort=()=>ctrl.abort();return deadline.addEventListener("abort",onAbort,{once:true}),caller.addEventListener("abort",onAbort,{once:true}),{signal:ctrl.signal,dispose:()=>{deadline.removeEventListener("abort",onAbort),caller.removeEventListener("abort",onAbort)}}}function delayAbortable(ms,timers,signal){return ms<=0||signal?.aborted===true?Promise.resolve():new Promise(resolve=>{let handle=timers.setTimeout(()=>{signal?.removeEventListener("abort",onAbort),resolve()},ms),onAbort=()=>{timers.clearTimeout(handle),resolve()};signal?.addEventListener("abort",onAbort,{once:true})})}function isNotFoundError(error){return error!=null&&(error.httpStatus===404||error.category==="notFound")}function plainNotFound(error){return error.code!=="conversationNotFound"?error:makeEverfurError("resourceNotFound",{retryable:false,...error.httpStatus===void 0?{}:{httpStatus:error.httpStatus},...error.requestId===void 0?{}:{requestId:error.requestId},...error.reasonCode===void 0?{}:{reasonCode:error.reasonCode},...error.wireMessage===void 0?{}:{wireMessage:error.wireMessage},...error.raw===void 0?{}:{raw:error.raw}})}function plainResult(res){return res.ok?res:err(plainNotFound(res.error))}function withPlainNotFound(funnel){return{send:async(...args)=>plainResult(await funnel.send(...args)),authorize:req=>funnel.authorize(req),stream:(call,req,signal)=>funnel.stream(call,req,signal)}}var HEALTH_PLAN_REASON_KINDS=/* @__PURE__ */Object.freeze(["dna","records","inside","profile"]),REF_MAX=128;function invalid(wireMessage){return makeEverfurError("validationFailed",{retryable:false,wireMessage:wireMessage})}function disposed(verb){return makeEverfurError("runtimeDisposed",{retryable:false,wireMessage:`the Everfur runtime is disposed; ${verb} was called after unmount`})}function malformed(call){return makeEverfurError("internalError",{retryable:false,httpStatus:502,wireMessage:`${call}: the response carried no plan`})}var str=(value,max=4e3)=>typeof value=="string"&&value.trim().length>0&&value.length<=max?value.trim():null;function httpsUrl(value){let s=str(value,2048);return s===null?null:/^https:\/\/[^\s]+$/i.test(s)?s:null}function priceOf(value){let n=typeof value=="number"?value:typeof value=="string"&&/^\d+(\.\d+)?$/.test(value.trim())?Number(value):Number.NaN;return Number.isFinite(n)&&n>=0?n:null}function currencyOf(value){return typeof value=="string"&&/^[A-Za-z]{3}$/.test(value)?value.toUpperCase():null}function reasonsOf(value){if(!Array.isArray(value))/* @__PURE__ */return Object.freeze([]);let out=[];for(let raw of value){if(raw===null||typeof raw!="object")continue;let o=raw,text2=str(o.text,1e3);if(text2===null)continue;let kind=typeof o.kind=="string"&&HEALTH_PLAN_REASON_KINDS.includes(o.kind)?o.kind:"profile";out.push(/* @__PURE__ */Object.freeze({kind:kind,text:text2}))}/* @__PURE__ */
101
+ return Object.freeze(out)}function itemOf(raw){if(raw===null||typeof raw!="object")return null;let o=raw,rawId=o.product_id,productId=typeof rawId=="number"&&Number.isInteger(rawId)?String(rawId):str(rawId,REF_MAX),title=str(o.title,300);return productId===null||title===null?null:/* @__PURE__ */Object.freeze({productId:productId,partnerSku:str(o.partner_sku,200),title:title,description:str(o.description),category:str(o.category,60),price:priceOf(o.price),currency:currencyOf(o.currency),imageUrl:httpsUrl(o.image_url),url:httpsUrl(o.url),reasons:reasonsOf(o.reasons),inPlan:o.in_plan===true,sample:o.sample===true})}function healthPlanFromWire(raw,petRef){if(raw===null||typeof raw!="object")return null;let o=raw;if(!Array.isArray(o.items))return null;let items=[],seen=/* @__PURE__ */new Set;for(let row of o.items){let item=itemOf(row);item===null||seen.has(item.productId)||(seen.add(item.productId),items.push(item))}/* @__PURE__ */
102
+ return Object.freeze({petRef:str(o.pet_ref,REF_MAX)??petRef,headline:str(o.headline,300),items:/* @__PURE__ */Object.freeze(items),updatedAt:str(o.updated_at,64),...o.tracking_texts_enabled===true?{trackingTextsEnabled:true}:{}})}function validRef(value){return typeof value=="string"&&value.length>0&&value.length<=REF_MAX}function planPath(petRef){return`/widget/v1/pets/${encodeURIComponent(petRef)}/plan`}function createHealthPlanRepository(runtime){let over=()=>{let{services:services}=runtime.registry;return createHealthPlanRepositoryOver({auth:services.authFor(null),...services.errorPolicy?{errorPolicy:services.errorPolicy}:{}})};return{read:(petRef,opts)=>runtime.isDisposed?Promise.resolve(err(disposed("read"))):over().read(petRef,opts),addItem:(petRef,id)=>runtime.isDisposed?Promise.resolve(err(disposed("addItem"))):over().addItem(petRef,id),removeItem:(petRef,id)=>runtime.isDisposed?Promise.resolve(err(disposed("removeItem"))):over().removeItem(petRef,id)}}function createHealthPlanRepositoryOver(deps){let funnel=withPlainNotFound(deps.funnel??createRequestFunnel({auth:deps.auth,...deps.errorPolicy?{errorPolicy:deps.errorPolicy}:{}})),write=async(method,petRef,productId)=>{if(!validRef(petRef))return err(invalid("petRef must be 1..128 characters"));if(!validRef(productId))return err(invalid("productId must be 1..128 characters"));let call=method==="PUT"?"healthPlan.item.add":"healthPlan.item.remove",res=await funnel.send(call,{method:method,path:`${planPath(petRef)}/items/${encodeURIComponent(productId)}`});return res.ok?res.value===null||res.value===void 0||res.value===""?ok(null):ok(healthPlanFromWire(res.value,petRef)):err(res.error)};return{async read(petRef,opts){if(!validRef(petRef))return err(invalid("petRef must be 1..128 characters"));let req={method:"GET",path:planPath(petRef),...opts?.signal?{signal:opts.signal}:{}},res=await funnel.send("healthPlan.read",req);if(!res.ok)return err(res.error);let plan=healthPlanFromWire(res.value,petRef);return plan===null?err(malformed("healthPlan.read")):ok(plan)},addItem:(petRef,productId)=>write("PUT",petRef,productId),removeItem:(petRef,productId)=>write("DELETE",petRef,productId)}}var IDLE=/* @__PURE__ */Object.freeze({phase:"idle",petRef:null,plan:null,pending:/* @__PURE__ */Object.freeze([]),itemErrors:/* @__PURE__ */Object.freeze({}),error:null});function withItem(plan,productId,inPlan){let items=plan.items.map(item=>item.productId===productId?/* @__PURE__ */Object.freeze({...item,inPlan:inPlan}):item);/* @__PURE__ */
103
+ return Object.freeze({...plan,items:/* @__PURE__ */Object.freeze(items)})}var HealthPlanController=class{constructor(repository){this.repository=repository;this.snapshot=IDLE;this.listeners=/* @__PURE__ */new Set;this.generation=0;this.writes=0;this.revalidations=0;this.refreshAfterWrites=false;this.disposed=false;this.subscribe=listener=>(this.listeners.add(listener),()=>{this.listeners.delete(listener)});this.getSnapshot=()=>this.snapshot}set(next){if(!this.disposed){this.snapshot=/* @__PURE__ */Object.freeze({...this.snapshot,...next});for(let listener of this.listeners)listener()}}async load(petRef){let gen=++this.generation;if(this.refreshAfterWrites=false,petRef===null){this.set({...IDLE});return}let samePet=this.snapshot.petRef===petRef;this.set({phase:"loading",petRef:petRef,plan:samePet?this.snapshot.plan:null,pending:/* @__PURE__ */Object.freeze([]),itemErrors:samePet?this.snapshot.itemErrors:/* @__PURE__ */Object.freeze({}),error:null});let result=await this.repository.read(petRef);if(gen===this.generation){if(!result.ok){this.set({phase:"failed",error:result.error});return}this.set({phase:"ready",plan:result.value,error:null,itemErrors:/* @__PURE__ */Object.freeze({})})}}async revalidate(){let{phase:phase,petRef:petRef,pending:pending}=this.snapshot;if(phase!=="ready"||petRef===null||pending.length>0)return;let gen=this.generation,writes=this.writes,seq=++this.revalidations,result=await this.repository.read(petRef);gen!==this.generation||writes!==this.writes||seq!==this.revalidations||this.snapshot.pending.length>0||this.snapshot.petRef!==petRef||result.ok&&this.set({plan:result.value,itemErrors:/* @__PURE__ */Object.freeze({})})}async refresh(){let{phase:phase,petRef:petRef,pending:pending}=this.snapshot;if(!(petRef===null||phase==="idle")){if(phase!=="ready")return this.load(petRef);if(pending.length>0){this.refreshAfterWrites=true;return}return this.revalidate()}}settleWrite(){!this.refreshAfterWrites||this.snapshot.pending.length>0||(this.refreshAfterWrites=false,this.revalidate())}async setInPlan(productId,inPlan){let{plan:plan,petRef:petRef,pending:pending}=this.snapshot;if(this.snapshot.phase!=="ready"||plan===null||petRef===null||pending.includes(productId))return false;let before=plan.items.find(item=>item.productId===productId);if(before===void 0||before.inPlan===inPlan)return false;this.writes+=1;let gen=this.generation,otherErrors=Object.fromEntries(Object.entries(this.snapshot.itemErrors).filter(([id])=>id!==productId));this.set({plan:withItem(plan,productId,inPlan),pending:/* @__PURE__ */Object.freeze([...pending,productId]),itemErrors:/* @__PURE__ */Object.freeze(otherErrors)});let result=inPlan?await this.repository.addItem(petRef,productId):await this.repository.removeItem(petRef,productId);if(gen!==this.generation)return result.ok;let current=this.snapshot.plan??plan,stillPending=/* @__PURE__ */Object.freeze(this.snapshot.pending.filter(id=>id!==productId));if(!result.ok)return this.set({plan:withItem(current,productId,before.inPlan),pending:stillPending,itemErrors:/* @__PURE__ */Object.freeze({...this.snapshot.itemErrors,[productId]:result.error})}),this.settleWrite(),false;let next=result.value??current;for(let id of stillPending){let mine=current.items.find(item=>item.productId===id);mine!==void 0&&(next=withItem(next,id,mine.inPlan))}return this.set({plan:next,pending:stillPending}),this.settleWrite(),true}dispose(){this.generation+=1,this.disposed=true,this.listeners.clear()}};function useScopedController(create,deps){let[controller,setController]=react.useState(create),adopted=react.useRef(false);return react.useEffect(()=>{let current=controller;return adopted.current&&(current=create(),setController(current)),adopted.current=true,()=>current.dispose()},deps),controller}function reportHostFailure(error){let globalConsole=globalThis.console;try{globalConsole?.error?.("[everfur] A host callback threw; the SDK ignored it.",error)}catch{}}function isThenable(value){return(typeof value=="object"||typeof value=="function")&&value!==null&&typeof value.then=="function"}function callHost(fn,...args){if(typeof fn=="function")try{let result=fn(...args);return isThenable(result)&&Promise.resolve(result).then(void 0,reportHostFailure),result}catch(error){reportHostFailure(error);return}}var GUARDED=/* @__PURE__ */new WeakMap;function guardHost(fn){if(typeof fn!="function")return;let cached=GUARDED.get(fn);if(cached!==void 0)return cached;let guarded=(...args)=>{callHost(fn,...args)};return GUARDED.set(fn,guarded),guarded}function guardHostProps(props,names){let guarded=null;for(let name of names){let fn=props[name];typeof fn=="function"&&(guarded??={...props},guarded[name]=guardHost(fn))}return guarded??props}var HEALTH_PLAN_STALE_MS=6e4;function useHealthPlanRevalidation({lifecycle:lifecycle,refreshKey:refreshKey,readyAt:readyAt,revalidate:revalidate,refresh:refresh,now:now=Date.now}){let latest=react.useRef({readyAt:readyAt,revalidate:revalidate,refresh:refresh??revalidate,now:now});latest.current={readyAt:readyAt,revalidate:revalidate,refresh:refresh??revalidate,now:now},react.useEffect(()=>{if(lifecycle==null)return;let stop=callHost(()=>lifecycle.onForeground(()=>{let{readyAt:at,revalidate:run,now:clock}=latest.current;at!==null&&clock()-at>=HEALTH_PLAN_STALE_MS&&run()}));return()=>{typeof stop=="function"&&callHost(stop)}},[lifecycle]);let seenKey=react.useRef(refreshKey);react.useEffect(()=>{Object.is(seenKey.current,refreshKey)||(seenKey.current=refreshKey,latest.current.refresh())},[refreshKey])}function healthPlanCart(plan){let items=/* @__PURE__ */Object.freeze((plan?.items??[]).filter(item=>item.inPlan));if(items.length===0)/* @__PURE__ */return Object.freeze({items:items,count:0,subtotal:null,currency:null});let currencies=new Set(items.map(item=>item.currency));if(!items.every(item=>item.price!==null)||currencies.size!==1)/* @__PURE__ */return Object.freeze({items:items,count:items.length,subtotal:null,currency:null});let cents=items.reduce((sum,item)=>sum+Math.round(item.price*100),0);/* @__PURE__ */
104
+ return Object.freeze({items:items,count:items.length,subtotal:cents/100,currency:items[0]?.currency??null})}function formatHealthPlanPrice(amount,currency,locale,format){if(amount===null||currency===null||!Number.isFinite(amount))return null;let whole=format?.dropZeroCents===true&&Number.isInteger(amount);try{return new Intl.NumberFormat(locale,{style:"currency",currency:currency,...whole?{minimumFractionDigits:0,maximumFractionDigits:0}:{}}).format(amount)}catch{return`${currency} ${whole?String(amount):amount.toFixed(2)}`}}function formatHealthPlanPriceWith(amount,currency,format){return formatHealthPlanPrice(amount,currency,format?.locale,format)}function useEverfurHealthPlanRepository(){let{runtime:runtime}=useEverfurContext();return react.useMemo(()=>createHealthPlanRepository(runtime),[runtime])}function useEverfurHealthPlan(options){let{userRef:userRef,activePet:activePet,scopeEpoch:scopeEpoch}=useEverfurContext(),repository=useEverfurHealthPlanRepository(),petRef=options?.petRef??activePet??null,controller=useScopedController(()=>new HealthPlanController(repository),[repository,userRef,scopeEpoch]);react.useEffect(()=>{controller.load(userRef===null?null:petRef)},[controller,userRef,petRef]);let snapshot=react.useSyncExternalStore(controller.subscribe,controller.getSnapshot,controller.getSnapshot),cart=react.useMemo(()=>healthPlanCart(snapshot.plan),[snapshot.plan]),[readyAt,setReadyAt]=react.useState(null);react.useEffect(()=>{setReadyAt(snapshot.phase==="ready"&&snapshot.plan!==null?Date.now():null)},[snapshot.phase,snapshot.plan]),useHealthPlanRevalidation({lifecycle:options?.lifecycle,refreshKey:options?.refreshKey,readyAt:readyAt,revalidate:()=>{controller.revalidate()},refresh:()=>{controller.refresh()}});let status;return userRef===null?status="signedOut":petRef===null?status="noPet":snapshot.petRef!==petRef||snapshot.phase==="idle"||snapshot.phase==="loading"?status="loading":snapshot.phase==="failed"?status=isNotFoundError(snapshot.error)?"empty":"failed":status=(snapshot.plan?.items.length??0)===0?"empty":"ready",react.useMemo(()=>({status:status,petRef:petRef,plan:snapshot.petRef===petRef?snapshot.plan:null,cart:cart,pending:snapshot.pending,itemErrors:snapshot.itemErrors,error:status==="empty"?null:snapshot.error,setInPlan:(productId,inPlan)=>controller.setInPlan(productId,inPlan),refresh:()=>controller.load(userRef===null?null:petRef)}),[status,petRef,snapshot,cart,controller,userRef])}var REF_MAX2=128,DATE=/^\d{4}-\d{2}-\d{2}$/,STEPS=/* @__PURE__ */new Set(["first_box_ships","checkin","refill_reminder","next_box_ships"]);function isHealthPlanSubscriptionUnavailable(error){return error!=null&&(error.httpStatus===404||error.category==="notFound")}var str2=(value,max=300)=>typeof value=="string"&&value.trim().length>0&&value.length<=max?value.trim():null;function money(value){let n=typeof value=="number"?value:typeof value=="string"&&/^\d+(\.\d+)?$/.test(value.trim())?Number(value):Number.NaN;return Number.isFinite(n)&&n>=0?n:null}function int(value){return typeof value=="number"&&Number.isInteger(value)&&value>0?value:null}function idOf(value){return typeof value=="number"&&Number.isInteger(value)?String(value):str2(value,REF_MAX2)}function currencyOf2(value){return typeof value=="string"&&/^[A-Za-z]{3}$/.test(value)?value.toUpperCase():null}function dateOf(value){return typeof value=="string"&&DATE.test(value)?value:null}function intervalsOf(value){return Array.isArray(value)?/* @__PURE__ */Object.freeze(value.map(int).filter(n=>n!==null)):/* @__PURE__ */Object.freeze([])}function renewalOf(value){if(value===null||typeof value!="object")return null;let o=value,amount=money(o.amount),currency=currencyOf2(o.currency),intervalDays=int(o.interval_days);return amount===null||currency===null||intervalDays===null?null:/* @__PURE__ */Object.freeze({amount:amount,currency:currency,intervalDays:intervalDays})}function timelineOf(value){if(!Array.isArray(value))/* @__PURE__ */return Object.freeze([]);let out=[];for(let raw of value){if(raw===null||typeof raw!="object")continue;let o=raw,on=dateOf(o.on);typeof o.step!="string"||!STEPS.has(o.step)||on===null||out.push(/* @__PURE__ */Object.freeze({step:o.step,on:on}))}/* @__PURE__ */
105
+ return Object.freeze(out)}function healthPlanSubscriptionFromWire(raw){if(raw===null||typeof raw!="object")return null;let o=raw,subscriptionId=idOf(o.subscription_id),productId=idOf(o.product_id),status=o.status==="active"||o.status==="cancelled"?o.status:null,intervalDays=int(o.interval_days),currency=currencyOf2(o.currency),boxPrice=money(o.box_price);if(subscriptionId===null||productId===null||status===null||intervalDays===null||currency===null||boxPrice===null)return null;let options=intervalsOf(o.interval_options);/* @__PURE__ */
106
+ return Object.freeze({subscriptionId:subscriptionId,productId:productId,title:str2(o.title),status:status,intervalDays:intervalDays,intervalOptions:options.length>0?options:/* @__PURE__ */Object.freeze([intervalDays]),currency:currency,boxPrice:boxPrice,firstBoxPrice:money(o.first_box_price)??boxPrice,offerApplied:o.offer_applied===true,nextBoxDate:status==="active"?dateOf(o.next_box_date):null,renewal:renewalOf(o.renewal),timeline:status==="active"?timelineOf(o.timeline):/* @__PURE__ */Object.freeze([])})}function healthPlanOneBoxOrderFromWire(raw){if(raw===null||typeof raw!="object")return null;let o=raw,orderId=idOf(o.order_id),productId=idOf(o.product_id),currency=currencyOf2(o.currency),price=money(o.price);if(orderId===null||productId===null||currency===null||price===null)return null;let quantity=int(o.quantity),qty=quantity!==null&&quantity<=QUANTITY_MAX?quantity:1;/* @__PURE__ */
107
+ return Object.freeze({orderId:orderId,productId:productId,title:str2(o.title),currency:currency,boxPrice:money(o.box_price)??price,price:price,discountPercent:int(o.discount_percent)??0,shipsOn:dateOf(o.ships_on),createdAt:instantOf(o.created_at),quantity:qty,total:money(o.total)??Math.round(price*qty*100)/100,...trackingOf(o.tracking)})}var QUANTITY_MAX=10,TRACKING_STATUSES=/* @__PURE__ */new Set(["ordered","shipped","delivered"]),UNSAFE_TEXT=/[\u0000-\u001f\u007f\u202a-\u202e\u2066-\u2069]/;function trackingText(value,max){if(typeof value!="string"||UNSAFE_TEXT.test(value))return null;let v=value.trim();return v.length>0&&v.length<=max?v:null}function trackingUrlOf(value){if(typeof value!="string"||value.length>2048||UNSAFE_TEXT.test(value)||/[\s@]/.test(value)||!/^https:\/\/[^/]/i.test(value))return null;try{return new URL(value).protocol==="https:"?value:null}catch{return null}}function healthPlanOrderTrackingFromWire(raw){if(raw===null||typeof raw!="object"||Array.isArray(raw))return null;let o=raw,status=typeof o.status=="string"&&TRACKING_STATUSES.has(o.status)?o.status:"ordered";/* @__PURE__ */
108
+ return Object.freeze({status:status,orderNumber:trackingText(o.order_number,64),carrier:trackingText(o.carrier,64),trackingNumber:trackingText(o.tracking_number,128),trackingUrl:trackingUrlOf(o.tracking_url),shippedAt:instantOf(o.shipped_at),estimatedDelivery:dateOf(o.estimated_delivery),updatedAt:instantOf(o.updated_at)})}function trackingOf(raw){let t=healthPlanOrderTrackingFromWire(raw);return t===null?{}:{tracking:t}}function healthPlanOneBoxOrderPageFromWire(raw){let rows=raw!==null&&typeof raw=="object"?raw.orders:null;if(!Array.isArray(rows))return null;let cursor=raw.next_cursor;/* @__PURE__ */
109
+ return Object.freeze({orders:/* @__PURE__ */Object.freeze(rows.map(healthPlanOneBoxOrderFromWire).filter(x=>x!==null)),nextCursor:typeof cursor=="string"&&cursor.length>0&&cursor.length<=REF_MAX2?cursor:null})}function instantOf(value){return typeof value!="string"||value.length>40||!/^\d{4}-\d{2}-\d{2}T/.test(value)||Number.isNaN(Date.parse(value))?null:value}function oneBoxOf(value,boxPrice){if(value===null||typeof value!="object")return null;let o=value,price=money(o.price);return price===null||price>boxPrice?null:/* @__PURE__ */Object.freeze({price:price,discountPercent:int(o.discount_percent)??0})}function healthPlanSubscriptionQuoteFromWire(raw){if(raw===null||typeof raw!="object")return null;let o=raw,productId=idOf(o.product_id),currency=currencyOf2(o.currency),boxPrice=money(o.box_price),options=intervalsOf(o.interval_options);if(productId===null||currency===null||boxPrice===null||options.length===0)return null;let offerApplies=o.offer_applies===true,def=int(o.default_interval_days),s=o.supply,supply=null;if(s!==null&&typeof s=="object"){let so=s,unitsPerBox=int(so.units_per_box),unitsPerDay=money(so.units_per_day),supplyDays=int(so.supply_days);unitsPerBox!==null&&unitsPerDay!==null&&supplyDays!==null&&(supply=/* @__PURE__ */Object.freeze({unitsPerBox:unitsPerBox,unitLabel:str2(so.unit_label,30),unitsPerDay:unitsPerDay,supplyDays:supplyDays,doseBasis:so.dose_basis==="weight"?"weight":"assumed"}))}let pct=int(o.first_box_discount_percent)??0;/* @__PURE__ */
110
+ return Object.freeze({productId:productId,currency:currency,boxPrice:boxPrice,firstBoxPrice:offerApplies?money(o.first_box_price)??boxPrice:boxPrice,firstBoxDiscountPercent:offerApplies?pct:0,offerApplies:offerApplies,oneBox:oneBoxOf(o.one_box,boxPrice),intervalOptions:options,defaultIntervalDays:def!==null&&options.includes(def)?def:options[0],supply:supply,firstBoxShipsOn:dateOf(o.first_box_ships_on),subscription:healthPlanSubscriptionFromWire(o.subscription)})}function invalid2(wireMessage){return makeEverfurError("validationFailed",{retryable:false,wireMessage:wireMessage})}function malformed2(call){return makeEverfurError("internalError",{retryable:false,httpStatus:502,wireMessage:`${call}: the response carried no subscription`})}function disposed2(verb){return makeEverfurError("runtimeDisposed",{retryable:false,wireMessage:`the Everfur runtime is disposed; ${verb} was called after unmount`})}var validRef2=value=>typeof value=="string"&&value.length>0&&value.length<=REF_MAX2;function base(petRef){return`/widget/v1/pets/${encodeURIComponent(petRef)}/plan/subscriptions`}function createHealthPlanSubscriptionRepositoryOver(deps){let funnel=withPlainNotFound(deps.funnel??createRequestFunnel({auth:deps.auth,...deps.errorPolicy?{errorPolicy:deps.errorPolicy}:{}})),one=async(call,petRef,method,suffix,body)=>{if(!validRef2(petRef))return err(invalid2("petRef must be 1..128 characters"));let res=await funnel.send(call,{method:method,path:`${base(petRef)}${suffix}`,...body===void 0?{}:{body:body}});if(!res.ok)return err(res.error);let sub=healthPlanSubscriptionFromWire(res.value);return sub===null?err(malformed2(call)):ok(sub)},idSuffix=(id,tail="")=>validRef2(id)?`/${encodeURIComponent(id)}${tail}`:null;return{async quote(petRef,productId){if(!validRef2(petRef))return err(invalid2("petRef must be 1..128 characters"));if(!validRef2(productId))return err(invalid2("productId must be 1..128 characters"));let res=await funnel.send("healthPlan.subscription.quote",{method:"GET",path:`${base(petRef)}/quote`,query:{product_id:productId}});if(!res.ok)return err(res.error);let quote2=healthPlanSubscriptionQuoteFromWire(res.value);return quote2===null?err(malformed2("healthPlan.subscription.quote")):ok(quote2)},async list(petRef){if(!validRef2(petRef))return err(invalid2("petRef must be 1..128 characters"));let res=await funnel.send("healthPlan.subscription.list",{method:"GET",path:base(petRef)});if(!res.ok)return err(res.error);let rows=res.value!==null&&typeof res.value=="object"?res.value.subscriptions:null;return Array.isArray(rows)?ok(/* @__PURE__ */Object.freeze(rows.map(healthPlanSubscriptionFromWire).filter(s=>s!==null))):err(malformed2("healthPlan.subscription.list"))},create(petRef,productId,intervalDays){return validRef2(productId)?one("healthPlan.subscription.create",petRef,"POST","",{product_id:productId,...intervalDays===void 0?{}:{interval_days:intervalDays}}):Promise.resolve(err(invalid2("productId must be 1..128 characters")))},changeInterval(petRef,id,intervalDays){let s=idSuffix(id);return s===null?Promise.resolve(err(invalid2("subscriptionId must be 1..128 characters"))):one("healthPlan.subscription.interval",petRef,"PATCH",s,{interval_days:intervalDays})},skip(petRef,id){let s=idSuffix(id,"/skip");return s===null?Promise.resolve(err(invalid2("subscriptionId must be 1..128 characters"))):one("healthPlan.subscription.skip",petRef,"POST",s,{})},cancel(petRef,id){let s=idSuffix(id,"/cancel");return s===null?Promise.resolve(err(invalid2("subscriptionId must be 1..128 characters"))):one("healthPlan.subscription.cancel",petRef,"POST",s,{})},restart(petRef,id,intervalDays){let s=idSuffix(id,"/restart");return s===null?Promise.resolve(err(invalid2("subscriptionId must be 1..128 characters"))):one("healthPlan.subscription.restart",petRef,"POST",s,intervalDays===void 0?{}:{interval_days:intervalDays})},async buyOneBox(petRef,productId,tapKey){if(!validRef2(petRef))return err(invalid2("petRef must be 1..128 characters"));if(!validRef2(productId))return err(invalid2("productId must be 1..128 characters"));let res=await funnel.send("healthPlan.subscription.oneBox",{method:"POST",path:`${base(petRef)}/one-box`,body:{product_id:productId}},{idempotent:true,...tapKey===void 0?{}:{idempotencyKey:`hp-one-box:${tapKey}`}});if(!res.ok)return err(res.error);let order=healthPlanOneBoxOrderFromWire(res.value);return order===null?err(malformed2("healthPlan.subscription.oneBox")):ok(order)},async listOneBoxOrders(petRef){if(!validRef2(petRef))return err(invalid2("petRef must be 1..128 characters"));let res=await funnel.send("healthPlan.subscription.oneBoxList",{method:"GET",path:`${base(petRef)}/one-box`});if(!res.ok)return err(res.error);let page=healthPlanOneBoxOrderPageFromWire(res.value);return page===null?err(malformed2("healthPlan.subscription.oneBoxList")):ok(page.orders)},async listOneBoxOrderPage(petRef,opts){if(!validRef2(petRef))return err(invalid2("petRef must be 1..128 characters"));let limit=opts?.limit;if(limit!==void 0&&!(Number.isInteger(limit)&&limit>=1&&limit<=50))return err(invalid2("limit must be a whole number 1..50"));if(opts?.cursor!==void 0&&!validRef2(opts.cursor))return err(invalid2("cursor must be 1..128 characters"));let query={...limit!==void 0?{limit:String(limit)}:{},...opts?.cursor!==void 0?{cursor:opts.cursor}:{}},res=await funnel.send("healthPlan.subscription.oneBoxList",{method:"GET",path:`${base(petRef)}/one-box`,query:query});if(!res.ok)return err(res.error);let page=healthPlanOneBoxOrderPageFromWire(res.value);return page===null?err(malformed2("healthPlan.subscription.oneBoxList")):ok(page)}}}function createHealthPlanSubscriptionRepository(runtime){let over=()=>{let{services:services}=runtime.registry;return createHealthPlanSubscriptionRepositoryOver({auth:services.authFor(null),...services.errorPolicy?{errorPolicy:services.errorPolicy}:{}})},guard=(verb,f)=>(...a)=>runtime.isDisposed?Promise.resolve(err(disposed2(verb))):f(over(),...a);return{quote:guard("quote",(r,p,id)=>r.quote(p,id)),list:guard("list",(r,p)=>r.list(p)),create:guard("create",(r,p,id,n)=>r.create(p,id,n)),changeInterval:guard("changeInterval",(r,p,id,n)=>r.changeInterval(p,id,n)),skip:guard("skip",(r,p,id)=>r.skip(p,id)),cancel:guard("cancel",(r,p,id)=>r.cancel(p,id)),restart:guard("restart",(r,p,id,n)=>r.restart(p,id,n)),buyOneBox:guard("buyOneBox",(r,p,id,k)=>r.buyOneBox(p,id,k)),listOneBoxOrders:guard("listOneBoxOrders",(r,p)=>r.listOneBoxOrders(p)),listOneBoxOrderPage:guard("listOneBoxOrderPage",(r,p,o)=>r.listOneBoxOrderPage(p,o))}}var REFUSALS=/* @__PURE__ */new Set(["cart_disabled","cart_has_subscription","cart_currency_mixed","sample_product","partner_endpoint_missing","checkout_pending","already_subscribed"]);function healthPlanCheckoutRefusal(error){if(error==null||error.httpStatus!==409)return null;let raw=obj(error.raw);for(let candidate of[error.reasonCode,error.wireMessage,raw?.detail,raw?.message,raw?.reason_code])if(typeof candidate=="string"&&REFUSALS.has(candidate.trim()))return candidate.trim();return null}var REF_MAX3=128,CART_MAX=10,ICONS=/* @__PURE__ */new Set(["shield","arrow","check","star","truck","refresh","card","alert","x","chat","repeat","calendar","flame"]),obj=value=>value!==null&&typeof value=="object"&&!Array.isArray(value)?value:null,str3=(value,max=1e3)=>typeof value=="string"&&value.trim().length>0&&value.length<=max?value.trim():null,kindOf=value=>typeof value=="string"&&/^[A-Za-z0-9_-]{1,40}$/.test(value)?value:null,iconOf=value=>typeof value=="string"&&ICONS.has(value)?value:null;function imageOf(value){let s=str3(value,2048);return s===null||/\s/.test(s)?null:/^https:\/\/[^/]/i.test(s)||/^\/(?![/\\])/.test(s)?s:null}var idOf2=value=>typeof value=="number"&&Number.isInteger(value)?String(value):str3(value,REF_MAX3);function weightOf(value){return typeof value=="number"&&Number.isFinite(value)&&value>0?value:null}function clean(fields){/* @__PURE__ */
111
+ return Object.freeze(Object.fromEntries(Object.entries(fields).filter(([,v])=>v!=null)))}function listOf(value,each,max=20){if(!Array.isArray(value))return null;let out=[];for(let row of value){if(out.length>=max)break;let mapped=each(row);mapped!==null&&out.push(mapped)}return out.length===0?null:/* @__PURE__ */Object.freeze(out)}var words=(value,max=12,len=300)=>listOf(value,v=>str3(v,len),max);function focusOf(value){let o=obj(value),kicker=str3(o?.kicker,120),title=str3(o?.title,300);if(o===null||kicker===null||title===null)return null;let risk=obj(o.risk),odds=obj(o.odds),quote2=obj(o.quote),jump=obj(o.jump);return clean({kicker:kicker,title:title,sources:listOf(o.sources,r=>{let label=str3(obj(r)?.label,60);return label===null?null:clean({label:label,kind:kindOf(obj(r)?.kind)})},6),risk:str3(risk?.lead,300)===null?null:clean({lead:str3(risk?.lead,300),body:str3(risk?.body),kind:kindOf(risk?.kind)}),odds:str3(odds?.label,120)===null||str3(odds?.from,20)===null||str3(odds?.to,20)===null?null:clean({label:str3(odds?.label,120),tag:str3(odds?.tag,40),from:str3(odds?.from,20),to:str3(odds?.to,20),toLabel:str3(odds?.toLabel,120)}),quote:str3(quote2?.kicker,120)===null||str3(quote2?.text)===null?null:clean({kicker:str3(quote2?.kicker,120),tag:str3(quote2?.tag,40),text:str3(quote2?.text)}),jump:str3(jump?.title,300)===null||str3(jump?.go,60)===null?null:clean({title:str3(jump?.title,300),go:str3(jump?.go,60)})})}function routineOf(value){let o=obj(value),title=str3(o?.title,300),steps=listOf(o?.steps,r=>{let s=obj(r),t=str3(s?.title,300);return t===null?null:clean({title:t,body:str3(s?.body),source:str3(s?.source,200)})});return title===null||steps===null?null:clean({title:title,label:str3(o?.label,60),steps:steps})}function pickOf(value){let o=obj(value),title=str3(o?.title,300);if(o===null||title===null)return null;let rating=obj(o.rating),reviews=obj(o.reviews),why=obj(o.why),score=obj(why?.score),dose=obj(o.dose),ingredients=obj(o.ingredients),reviewItems=listOf(reviews?.items,r=>{let v=obj(r),stars=v?.stars,text2=str3(v?.text),by=str3(v?.by,80);return typeof stars!="number"||!Number.isFinite(stars)||stars<1||stars>5||text2===null||by===null?null:clean({stars:Math.round(stars),text:text2,by:by})},5),whyRows=listOf(why?.rows,r=>{let v=obj(r),chip=str3(v?.chip,40),t=str3(v?.title,300);return chip===null||t===null?null:clean({chip:chip,kind:kindOf(v?.kind),title:t,body:str3(v?.body)})}),stats=listOf(dose?.stats,r=>{let v=obj(r),val=str3(v?.value,40),label=str3(v?.label,120);return val===null||label===null?null:clean({value:val,label:label})},6),ingredientItems=words(ingredients?.items,12,80);return clean({title:title,productId:idOf2(o.productId),partnerSku:str3(o.partnerSku,200),rating:str3(rating?.value,20)===null?null:clean({value:str3(rating?.value,20),label:str3(rating?.label,120)}),line:str3(o.line),reviews:str3(reviews?.label,200)===null||reviewItems===null?null:clean({label:str3(reviews?.label,200),items:reviewItems}),checkoutLine:str3(o.checkoutLine,300),why:str3(why?.title,200)===null||whyRows===null?null:clean({title:str3(why?.title,200),rows:whyRows,score:str3(score?.text,200)===null||str3(score?.value,20)===null?null:clean({text:str3(score?.text,200),value:str3(score?.value,20)})}),dose:str3(dose?.title,200)===null||stats===null?null:clean({title:str3(dose?.title,200),stats:stats,note:str3(dose?.note)}),ingredients:ingredientItems===null?null:clean({label:str3(ingredients?.label,200),items:ingredientItems}),proof:str3(o.proof,300),trust:listOf(o.trust,r=>{let v=obj(r),icon=iconOf(v?.icon),label=str3(v?.label,120);return icon===null||label===null?null:clean({icon:icon,label:label})},6),more:str3(o.more,120),fine:str3(o.fine),checkin:str3(o.checkin,200)})}function signsOf(value){let o=obj(value),title=str3(o?.title,200),items=listOf(o?.items,r=>{let v=obj(r),t=str3(v?.title,300),body=str3(v?.body);return t===null||body===null?null:clean({title:t,body:body,urgent:v?.urgent===true?true:null})});return title===null||items===null?null:clean({title:title,items:items})}function checkupOf(value){let o=obj(value),title=str3(o?.title,200),questions=words(o?.questions,12,300),add=str3(o?.add,80),added=str3(o?.added,80);return title===null||questions===null||add===null||added===null?null:clean({title:title,questions:questions,add:add,added:added})}function extrasOf(value){let o=obj(value),title=str3(o?.title,200),items=listOf(o?.items,r=>{let v=obj(r),key=str3(v?.key,REF_MAX3),t=str3(v?.title,300),action=str3(v?.action,80),added=str3(v?.added,80);return key===null||t===null||action===null||added===null?null:clean({key:key,title:t,body:str3(v?.body),price:str3(v?.price,40),was:str3(v?.was,40),tag:str3(v?.tag,40),imageUrl:imageOf(v?.imageUrl),icon:iconOf(v?.icon),kind:kindOf(v?.kind),action:action,added:added})},6);return title===null||items===null?null:clean({title:title,items:items})}function healthPlanFocusDesignFromWire(raw){let o=obj(raw),title=str3(o?.title,300),pick2=pickOf(o?.pick);if(o===null||title===null||pick2===null)return null;let byline=obj(o.byline);return clean({eyebrow:str3(o.eyebrow,120),title:title,subtitle:str3(o.subtitle,300),headImageUrl:imageOf(o.headImageUrl),byline:str3(byline?.name,120)===null?null:clean({name:str3(byline?.name,120),role:str3(byline?.role,120),imageUrl:imageOf(byline?.imageUrl)}),focus:focusOf(o.focus),routine:routineOf(o.routine),pick:pick2,signs:signsOf(o.signs),checkup:checkupOf(o.checkup),extras:extrasOf(o.extras),fine:str3(o.fine),checkoutRows:listOf(o.checkoutRows,r=>{let v=obj(r),icon=iconOf(v?.icon),label=str3(v?.label,60),val=str3(v?.value,200);return icon===null||label===null||val===null?null:clean({icon:icon,label:label,value:val})},6)})}function healthPlanPageFromWire(raw,petRef){let o=obj(raw);if(o===null||!("page"in o))return null;let pet=obj(o.pet),sex=pet?.sex;/* @__PURE__ */
112
+ return Object.freeze({petRef:str3(o.pet_ref,REF_MAX3)??petRef,pet:/* @__PURE__ */Object.freeze({name:str3(pet?.name,120),species:str3(pet?.species,60),sex:sex==="female"||sex==="male"?sex:null,breed:str3(pet?.breed,120),weightKg:weightOf(pet?.weight_kg),weightLb:weightOf(pet?.weight_lb)}),checkout:o.checkout==="everfur_stripe"?"everfur_stripe":"partner",page:healthPlanFocusDesignFromWire(o.page),vetReviewed:o.vet_reviewed===true,trackingTextsEnabled:o.tracking_texts_enabled===true})}function healthPlanCheckoutSessionFromWire(raw){let o=obj(raw),checkoutId=idOf2(o?.checkout_id),url=str3(o?.url,4096);return checkoutId===null||url===null||!/^https:\/\/[^\s/][^\s]*$/i.test(url)?null:/* @__PURE__ */Object.freeze({checkoutId:checkoutId,url:url})}var STATUSES=/* @__PURE__ */new Set(["pending","paid","expired","failed"]);function healthPlanCheckoutStateFromWire(raw){let o=obj(raw),status=o?.status,purchase=o?.purchase;if(typeof status!="string"||!STATUSES.has(status)||purchase!=="one_box"&&purchase!=="subscription")return null;let order=healthPlanOneBoxOrderFromWire(o?.order),list=Array.isArray(o?.orders)?(o?.orders).map(healthPlanOneBoxOrderFromWire).filter(x=>x!==null):[];/* @__PURE__ */
113
+ return Object.freeze({status:status,purchase:purchase,order:order??list[0]??null,orders:/* @__PURE__ */Object.freeze(list.length>0?list:order===null?[]:[order]),subscription:healthPlanSubscriptionFromWire(o?.subscription)})}function invalid3(wireMessage){return makeEverfurError("validationFailed",{retryable:false,wireMessage:wireMessage})}function malformed3(call){return makeEverfurError("internalError",{retryable:false,httpStatus:502,wireMessage:`${call}: the response was not the expected shape`})}function disposed3(verb){return makeEverfurError("runtimeDisposed",{retryable:false,wireMessage:`the Everfur runtime is disposed; ${verb} was called after unmount`})}var validRef3=value=>typeof value=="string"&&value.length>0&&value.length<=REF_MAX3,absoluteUrl=value=>typeof value=="string"&&value.length<=2048&&/^https?:\/\/[^\s/][^\s]*$/i.test(value);function base2(petRef){return`/widget/v1/pets/${encodeURIComponent(petRef)}/plan`}async function readPage(funnel,petRef,opts){if(!validRef3(petRef))return err(invalid3("petRef must be 1..128 characters"));let res=await funnel.send("healthPlan.page.read",{method:"GET",path:`${base2(petRef)}/page`,...opts?.signal?{signal:opts.signal}:{}});if(!res.ok)return err(res.error);let page=healthPlanPageFromWire(res.value,petRef);return page===null?err(malformed3("healthPlan.page.read")):ok(page)}var readers=/* @__PURE__ */new WeakMap;function createHealthPlanPageReader(runtime){let known=readers.get(runtime);if(known!==void 0)return known;let reader=makeHealthPlanPageReader(runtime);return readers.set(runtime,reader),reader}function makeHealthPlanPageReader(runtime){return{getPage:(petRef,opts)=>{if(runtime.isDisposed)return Promise.resolve(err(disposed3("getPage")));let{services:services}=runtime.registry,funnel=withPlainNotFound(createRequestFunnel({auth:services.authFor(null),...services.errorPolicy?{errorPolicy:services.errorPolicy}:{}}));return readPage(funnel,petRef,opts)}}}function createHealthPlanPageRepositoryOver(deps){let funnel=withPlainNotFound(deps.funnel??createRequestFunnel({auth:deps.auth,...deps.errorPolicy?{errorPolicy:deps.errorPolicy}:{}}));return{getPage:(petRef,opts)=>readPage(funnel,petRef,opts),async startCheckout(petRef,body,idempotencyKey){if(!validRef3(petRef))return err(invalid3("petRef must be 1..128 characters"));if(!validRef3(body.productId))return err(invalid3("productId must be 1..128 characters"));if(body.purchase!=="one_box"&&body.purchase!=="subscription")return err(invalid3("purchase must be one_box or subscription"));if(body.intervalDays!==void 0&&(!Number.isInteger(body.intervalDays)||body.intervalDays<=0))return err(invalid3("intervalDays must be a positive whole number"));if(!absoluteUrl(body.successUrl)||!absoluteUrl(body.cancelUrl))return err(invalid3("successUrl and cancelUrl must be absolute http(s) URLs"));let res=await funnel.send("healthPlan.checkout.start",{method:"POST",path:`${base2(petRef)}/checkout`,body:{product_id:body.productId,purchase:body.purchase,...body.purchase==="subscription"&&body.intervalDays!==void 0?{interval_days:body.intervalDays}:{},success_url:body.successUrl,cancel_url:body.cancelUrl}},{idempotent:true,idempotencyKey:`hp-checkout:${idempotencyKey}`});if(!res.ok)return err(res.error);let session=healthPlanCheckoutSessionFromWire(res.value);return session===null?err(malformed3("healthPlan.checkout.start")):ok(session)},async startCartCheckout(petRef,body,idempotencyKey){if(!validRef3(petRef))return err(invalid3("petRef must be 1..128 characters"));let items=body.items;if(!Array.isArray(items)||items.length<1||items.length>CART_MAX)return err(invalid3("items must hold 1..10 lines"));let seen=/* @__PURE__ */new Set;for(let it of items){if(!validRef3(it.productId)||seen.has(it.productId))return err(invalid3("each item needs a productId, once per cart"));if(seen.add(it.productId),it.purchase!=="one_box"&&it.purchase!=="subscription")return err(invalid3("purchase must be one_box or subscription"));let q=it.quantity??1;if(!Number.isInteger(q)||q<1||q>CART_MAX)return err(invalid3("quantity must be a whole number 1..10"));if(it.purchase==="subscription"&&q!==1)return err(invalid3("a subscription line is quantity 1"));if(it.intervalDays!==void 0&&(!Number.isInteger(it.intervalDays)||it.intervalDays<=0))return err(invalid3("intervalDays must be a positive whole number"))}if(!absoluteUrl(body.successUrl)||!absoluteUrl(body.cancelUrl))return err(invalid3("successUrl and cancelUrl must be absolute http(s) URLs"));let res=await funnel.send("healthPlan.checkout.start",{method:"POST",path:`${base2(petRef)}/checkout`,body:{items:items.map(it=>({product_id:it.productId,purchase:it.purchase,...it.purchase==="subscription"&&it.intervalDays!==void 0?{interval_days:it.intervalDays}:{},quantity:it.quantity??1})),success_url:body.successUrl,cancel_url:body.cancelUrl}},{idempotent:true,idempotencyKey:`hp-checkout:${idempotencyKey}`});if(!res.ok)return err(res.error);let session=healthPlanCheckoutSessionFromWire(res.value);return session===null?err(malformed3("healthPlan.checkout.start")):ok(session)},async getCheckout(petRef,checkoutId){if(!validRef3(petRef))return err(invalid3("petRef must be 1..128 characters"));if(!validRef3(checkoutId))return err(invalid3("checkoutId must be 1..128 characters"));let res=await funnel.send("healthPlan.checkout.read",{method:"GET",path:`${base2(petRef)}/checkout/${encodeURIComponent(checkoutId)}`});if(!res.ok)return err(res.error);let state=healthPlanCheckoutStateFromWire(res.value);return state===null?err(malformed3("healthPlan.checkout.read")):ok(state)}}}function createHealthPlanPageRepository(runtime){let over=()=>{let{services:services}=runtime.registry;return createHealthPlanPageRepositoryOver({auth:services.authFor(null),...services.errorPolicy?{errorPolicy:services.errorPolicy}:{}})};return{getPage:(petRef,opts)=>runtime.isDisposed?Promise.resolve(err(disposed3("getPage"))):over().getPage(petRef,opts),startCheckout:(petRef,body,key)=>runtime.isDisposed?Promise.resolve(err(disposed3("startCheckout"))):over().startCheckout(petRef,body,key),startCartCheckout:(petRef,body,key)=>runtime.isDisposed?Promise.resolve(err(disposed3("startCartCheckout"))):over().startCartCheckout?.(petRef,body,key)??Promise.resolve(err(disposed3("startCartCheckout"))),getCheckout:(petRef,id)=>runtime.isDisposed?Promise.resolve(err(disposed3("getCheckout"))):over().getCheckout(petRef,id)}}var HEALTH_PLAN_PAGE_SHARE_MS=5e3,sharedReads=/* @__PURE__ */new WeakMap;function readShared(reader,userRef,petRef,fresh){let reads=sharedReads.get(reader);reads===void 0&&(reads=/* @__PURE__ */new Map,sharedReads.set(reader,reads));let map=reads,key=`${userRef}\0${petRef}`,hit=map.get(key);if(!fresh&&hit!==void 0&&(hit.at===null||Date.now()-hit.at<HEALTH_PLAN_PAGE_SHARE_MS))return hit.promise;let entry={at:null,promise:reader.getPage(petRef).then(res=>(map.get(key)===entry&&(res.ok||isNotFoundError(res.error)?entry.at=Date.now():map.delete(key)),res))};return map.set(key,entry),entry.promise}function useHealthPlanPageRepository(){let{runtime:runtime}=useEverfurContext();return react.useMemo(()=>createHealthPlanPageRepository(runtime),[runtime])}function useHealthPlanPage(options){let{userRef:userRef,runtime:runtime}=useEverfurContext(),own=react.useMemo(()=>createHealthPlanPageReader(runtime),[runtime]),hostRepository=options.repository,repository=hostRepository??own,getPage=react.useCallback((pet,fresh)=>hostRepository!==void 0||userRef==null?repository.getPage(pet):readShared(own,userRef,pet,fresh),[hostRepository,repository,own,userRef]),{petRef:petRef}=options,enabled=options.enabled!==false&&userRef!=null&&petRef!==null,[state,setState]=react.useState({phase:"idle",petRef:null,page:null,error:null}),epoch=react.useRef(0),quiet=react.useRef(0),read=react.useCallback(async fresh=>{let mine=++epoch.current;if(!enabled||petRef===null){setState(prev=>prev.phase==="idle"&&prev.petRef===null?prev:{phase:"idle",petRef:null,page:null,error:null});return}setState(prev=>({phase:"loading",petRef:petRef,page:prev.petRef===petRef?prev.page:null,error:null}));let res=await getPage(petRef,fresh);mine===epoch.current&&(res.ok?setState({phase:"ready",petRef:petRef,page:res.value,error:null,readyAt:Date.now()}):isNotFoundError(res.error)?setState({phase:"ready",petRef:petRef,page:null,error:null,missing:true,readyAt:Date.now()}):setState({phase:"failed",petRef:petRef,page:null,error:res.error}))},[enabled,petRef,getPage]),load=react.useCallback(()=>read(true),[read]),ready=state.phase==="ready"&&state.petRef===petRef,revalidate=react.useCallback(async()=>{if(!enabled||petRef===null||!ready)return;let mine=epoch.current,seq=++quiet.current,res=await getPage(petRef,true);mine!==epoch.current||seq!==quiet.current||!res.ok||setState(prev=>prev.phase==="ready"&&prev.petRef===petRef?{phase:"ready",petRef:petRef,page:res.value,error:null,readyAt:Date.now()}:prev)},[enabled,petRef,ready,getPage]);useHealthPlanRevalidation({lifecycle:options.lifecycle,refreshKey:options.refreshKey,readyAt:ready?state.readyAt??null:null,revalidate:()=>{revalidate()},refresh:()=>{ready?revalidate():load()}}),react.useEffect(()=>(read(false),()=>{epoch.current+=1}),[read]);let stale=enabled&&state.petRef!==petRef;return react.useMemo(()=>({phase:stale?"loading":state.phase,page:stale?null:state.page,error:stale?null:state.error,missing:!stale&&state.missing===true,refresh:load}),[stale,state,load])}var noop=()=>{};function createBrowserLifecycle(){return{onForeground(listener){if(typeof document>"u"||typeof document.addEventListener!="function")return noop;let wasHidden=document.visibilityState==="hidden",onChange=()=>{let hidden=document.visibilityState==="hidden";wasHidden&&!hidden&&listener(),wasHidden=hidden};return document.addEventListener("visibilitychange",onChange),()=>document.removeEventListener("visibilitychange",onChange)},onOnline(listener){if(typeof window>"u"||typeof window.addEventListener!="function")return noop;let onOnline=()=>listener();return window.addEventListener("online",onOnline),()=>window.removeEventListener("online",onOnline)},isOffline(){return typeof navigator<"u"&&navigator.onLine===false}}}var HostRenderBoundary=class extends react.Component{constructor(){super(...arguments);this.state={failed:false,key:this.props.resetKey}}static getDerivedStateFromError(){return{failed:true}}static getDerivedStateFromProps(props,state){return Object.is(props.resetKey,state.key)?null:{failed:false,key:props.resetKey}}render(){return this.state.failed?this.props.fallback:this.props.children}};function RenderHost({render:render}){return render()}function HostRender({render:render,fallback:fallback,resetKey:resetKey}){return react.createElement(HostRenderBoundary,{fallback:fallback,resetKey:resetKey,children:react.createElement(RenderHost,{render:render})})}function hasLoneSurrogate(value){for(let i=0;i<value.length;i+=1){let code=value.charCodeAt(i);if(code>=55296&&code<=56319){let low=value.charCodeAt(i+1);if(!(low>=56320&&low<=57343))return true;i+=1}else if(code>=56320&&code<=57343)return true}return false}function serverLength(value){return[...value].length}var SPECIES_ALIASES=/* @__PURE__ */Object.freeze({dog:"dog",canine:"dog",k9:"dog",puppy:"dog",cat:"cat",feline:"cat",kitten:"cat"});function canonicalPetSpecies(raw){if(typeof raw!="string")return null;let key=raw.trim().toLowerCase();return Object.prototype.hasOwnProperty.call(SPECIES_ALIASES,key)?SPECIES_ALIASES[key]:null}var LIST_MAX=50,REF_MAX4=128,NAME_MAX=120,SHORT_MAX=120,NOTES_MAX=2e3,FOOD_MAX=120,MICROCHIP_MAX=80,SEXES=/* @__PURE__ */new Set(["male","female","unknown"]),PRECISIONS=/* @__PURE__ */new Set(["day","month","year"]),ACTIVITY=/* @__PURE__ */new Set(["low","medium","high","athletic"]),INDOOR_OUTDOOR=/* @__PURE__ */new Set(["indoor","outdoor","both"]),SEVERITIES=/* @__PURE__ */new Set(["mild","moderate","severe"]),ISO_DATE=/^(\d{4})-(\d{2})-(\d{2})$/,SCALAR_WIRE=[["sex","sex"],["spayedNeutered","spayed_neutered"],["birthDate","birth_date"],["birthDatePrecision","birth_date_precision"],["activityLevel","activity_level"],["indoorOutdoor","indoor_outdoor"],["foodBrand","food_brand"],["foodType","food_type"],["microchipId","microchip_id"]],LIST_WIRE=[["allergies","allergies"],["medications","medications"],["supplements","supplements"],["conditions","conditions"]];/* @__PURE__ */Object.freeze([...SCALAR_WIRE,...LIST_WIRE].map(([key])=>key));function isRealDate(value){let match=ISO_DATE.exec(value);if(match===null)return false;let[year,month,day]=[Number(match[1]),Number(match[2]),Number(match[3])],date2=new Date(Date.UTC(year,month-1,day));return date2.getUTCFullYear()===year&&date2.getUTCMonth()===month-1&&date2.getUTCDate()===day}var oneOf=allowed=>(field,value)=>typeof value=="string"&&allowed.has(value)?null:`${field} must be one of ${[...allowed].join(", ")}`,boolean=(field,value)=>typeof value=="boolean"?null:`${field} must be true or false`,date=(field,value)=>typeof value=="string"&&isRealDate(value)?null:`${field} must be a real date written YYYY-MM-DD`,text=(max,opts={})=>(field,value)=>{if(typeof value!="string")return`${field} must be a string`;if(hasLoneSurrogate(value))return`${field} contains an unpaired surrogate and cannot be encoded`;let measured=opts.trimmed?value.trim():value;if(opts.required&&measured.length===0)return`${field} is required and must not be blank`;let length=serverLength(measured);return length<=max?null:`${field} is ${length} characters; the server accepts at most ${max}`},SCALAR_CHECKS={sex:oneOf(SEXES),spayedNeutered:boolean,birthDate:date,birthDatePrecision:oneOf(PRECISIONS),activityLevel:oneOf(ACTIVITY),indoorOutdoor:oneOf(INDOOR_OUTDOOR),foodBrand:text(FOOD_MAX),foodType:text(FOOD_MAX),microchipId:text(MICROCHIP_MAX)},REF_FIELD=["ref","ref",false,text(REF_MAX4,{required:true,trimmed:true})],NOTES_FIELD=["notes","notes",false,text(NOTES_MAX,{trimmed:true})],MEDICATION_FIELDS=[REF_FIELD,["name","name",true,text(NAME_MAX,{required:true,trimmed:true})],["dose","dose",false,text(SHORT_MAX,{trimmed:true})],["frequency","frequency",false,text(SHORT_MAX,{trimmed:true})],["startDate","start_date",false,date],["endDate","end_date",false,date],NOTES_FIELD],ITEM_FIELDS={allergies:[REF_FIELD,["allergen","allergen",true,text(NAME_MAX,{required:true,trimmed:true})],["severity","severity",false,oneOf(SEVERITIES)],NOTES_FIELD],medications:MEDICATION_FIELDS,supplements:MEDICATION_FIELDS,conditions:[REF_FIELD,["conditionName","condition_name",true,text(NAME_MAX,{required:true,trimmed:true})],["diagnosedDate","diagnosed_date",false,date],NOTES_FIELD]};function itemToWire(list,index,raw){let at=`${list}[${index}]`;if(typeof raw!="object"||raw===null||Array.isArray(raw))return{error:`${at} must be an object`};let source=raw,item={};for(let[key,wire,isRequired,check]of ITEM_FIELDS[list]){let value=source[key];if(value==null){if(isRequired)return{error:`${at}.${key} is required`};value===null&&(item[wire]=null);continue}let bad=check(`${at}.${key}`,value);if(bad!==null)return{error:bad};item[wire]=value}let start=item.start_date,end=item.end_date;return typeof start=="string"&&typeof end=="string"&&end<start?{error:`${at}.endDate must not be before startDate`}:{item:item}}function listToWire(list,raw){if(!Array.isArray(raw))return{error:`${list} must be an array (send [] to clear it)`};if(raw.length>LIST_MAX)return{error:`${list} has ${raw.length} items; the server accepts at most ${LIST_MAX}`};let items=[],refs=/* @__PURE__ */new Set;for(let index=0;index<raw.length;index+=1){let mapped=itemToWire(list,index,raw[index]);if("error"in mapped)return mapped;let ref=mapped.item.ref;if(typeof ref=="string"){let key=ref.trim();if(refs.has(key))return{error:`${list}: ref ${JSON.stringify(key)} is used twice; a ref names one item`};refs.add(key)}items.push(mapped.item)}return{items:items}}function petHealthToWire(input,species){let source=input,body={};for(let[key,wire]of SCALAR_WIRE){let value=source[key];if(value!==void 0){if(value!==null){let bad=SCALAR_CHECKS[key](key,value);if(bad!==null)return{error:bad}}body[wire]=value}}let dateSent=source.birthDate!==void 0,precisionSent=source.birthDatePrecision!==void 0;if(dateSent!==precisionSent||dateSent&&source.birthDate===null!=(source.birthDatePrecision===null))return{error:"birthDate and birthDatePrecision must be sent together, both set or both null"};for(let[key,wire]of LIST_WIRE){let value=source[key];if(value===void 0)continue;let mapped=listToWire(key,value);if("error"in mapped)return mapped;body[wire]=mapped.items}return Object.keys(body).length>0&&species!==void 0&&canonicalPetSpecies(species)===null?{error:"health fields need a pet Everfur reads as a dog or a cat (dog, canine, k9, puppy, cat, feline, kitten)"}:{body:body}}var str4=value=>typeof value=="string"?value:null,pick=(allowed,value)=>typeof value=="string"&&allowed.has(value)?value:null,bool=value=>typeof value=="boolean"?value:null;function itemsFromWire(raw,map){return Array.isArray(raw)?/* @__PURE__ */Object.freeze(raw.flatMap(row=>{if(typeof row!="object"||row===null||Array.isArray(row))return[];let item=map(row);return item===null?[]:[item]})):/* @__PURE__ */Object.freeze([])}function medicationFromWire(o){let name=str4(o.name);return name===null||name.length===0?null:/* @__PURE__ */Object.freeze({ref:str4(o.ref),name:name,dose:str4(o.dose),frequency:str4(o.frequency),startDate:str4(o.start_date),endDate:str4(o.end_date),notes:str4(o.notes)})}function petHealthFromWire(o){let version=o.profile_version;/* @__PURE__ */
114
+ return Object.freeze({profileVersion:typeof version=="number"&&Number.isInteger(version)&&version>=0?version:0,sex:pick(SEXES,o.sex),spayedNeutered:bool(o.spayed_neutered),birthDate:str4(o.birth_date),birthDatePrecision:pick(PRECISIONS,o.birth_date_precision),activityLevel:pick(ACTIVITY,o.activity_level),indoorOutdoor:pick(INDOOR_OUTDOOR,o.indoor_outdoor),foodBrand:str4(o.food_brand),foodType:str4(o.food_type),microchipId:str4(o.microchip_id),allergies:itemsFromWire(o.allergies,row=>{let allergen=str4(row.allergen);return allergen===null||allergen.length===0?null:/* @__PURE__ */Object.freeze({ref:str4(row.ref),allergen:allergen,severity:pick(SEVERITIES,row.severity),notes:str4(row.notes)})}),medications:itemsFromWire(o.medications,medicationFromWire),supplements:itemsFromWire(o.supplements,medicationFromWire),conditions:itemsFromWire(o.conditions,row=>{let conditionName=str4(row.condition_name);return conditionName===null||conditionName.length===0?null:/* @__PURE__ */Object.freeze({ref:str4(row.ref),conditionName:conditionName,diagnosedDate:str4(row.diagnosed_date),notes:str4(row.notes)})})})}var PET_NAME_MAX=100,PET_SPECIES_MAX=50,PET_BREED_MAX=100,PET_AGE_YEARS_MAX=50,PET_WEIGHT_KG_MAX=500,PET_REF_MAX=128,ERASE_USER_DATA_TIMEOUT_MS=6e4;function invalid4(wireMessage){return makeEverfurError("validationFailed",{retryable:false,wireMessage:wireMessage})}function checkString(field,value,max){if(typeof value!="string")return invalid4(`${field} must be a string`);let length=serverLength(value);return length<=max?null:invalid4(`${field} is ${length} characters; the server accepts at most ${max}`)}function outOfRange(field,value,max){return typeof value=="number"&&Number.isFinite(value)&&value>=0&&value<=max?null:invalid4(`${field} must be a finite number between 0 and ${max}`)}function validate(petRef,profile){if(typeof petRef!="string")return invalid4("pet_ref must be a string");if(petRef.trim().length===0)return invalid4("pet_ref must not be blank");if(hasLoneSurrogate(petRef))return invalid4("pet_ref contains an unpaired surrogate and cannot be encoded");if(profile!=null&&typeof profile!="object")return invalid4("profile must be an object");let checks=[checkString("pet_ref",petRef,PET_REF_MAX)];return profile?.name!==void 0&&checks.push(checkString("name",profile.name,PET_NAME_MAX)),profile?.species!==void 0&&checks.push(checkString("species",profile.species,PET_SPECIES_MAX)),profile?.breed!==void 0&&checks.push(checkString("breed",profile.breed,PET_BREED_MAX)),profile?.ageYears!==void 0&&checks.push(outOfRange("age_years",profile.ageYears,PET_AGE_YEARS_MAX)),profile?.weightKg!==void 0&&checks.push(outOfRange("weight_kg",profile.weightKg,PET_WEIGHT_KG_MAX)),checks.find(c=>c!==null)??null}function healthToWire(source,species){let health=petHealthToWire(source,species);return"error"in health?{error:invalid4(health.error)}:health}function patchToWire(patch){if(typeof patch!="object"||patch===null)return{error:invalid4("patch must be an object")};let p=patch,fields=[["name","name",v=>checkString("name",v,PET_NAME_MAX)],["species","species",v=>checkString("species",v,PET_SPECIES_MAX)],["breed","breed",v=>checkString("breed",v,PET_BREED_MAX)],["ageYears","age_years",v=>outOfRange("age_years",v,PET_AGE_YEARS_MAX)],["weightKg","weight_kg",v=>outOfRange("weight_kg",v,PET_WEIGHT_KG_MAX)]],body={};for(let[key,wire,check]of fields){let value=p[key];if(value!==void 0){if(value!==null){let bad=check(value);if(bad!==null)return{error:bad}}body[wire]=value}}let health=healthToWire(p,p.species);return"error"in health?health:(Object.assign(body,health.body),Object.keys(body).length===0?{error:invalid4("patch must change at least one field")}:{body:body})}function toWire(profile){if(profile==null)return{body:{}};let health=healthToWire(profile,profile.species);return"error"in health?health:{body:{...profile.name!==void 0?{name:profile.name}:{},...profile.species!==void 0?{species:profile.species}:{},...profile.breed!==void 0?{breed:profile.breed}:{},...profile.ageYears!==void 0?{age_years:profile.ageYears}:{},...profile.weightKg!==void 0?{weight_kg:profile.weightKg}:{},...health.body}}}var str5=v=>typeof v=="string"?v:null,num=v=>typeof v=="number"&&Number.isFinite(v)?v:null;function fromWire2(raw,petRef){let o=typeof raw=="object"&&raw!==null?raw:{};/* @__PURE__ */
115
+ return Object.freeze({petRef:str5(o.pet_ref)??petRef,name:str5(o.name),species:str5(o.species),breed:str5(o.breed),ageYears:num(o.age_years),weightKg:num(o.weight_kg)})}function widgetPetFromWire(raw){if(typeof raw!="object"||raw===null)return null;let o=raw,petRef=str5(o.pet_ref);return petRef===null||petRef.length===0?null:/* @__PURE__ */Object.freeze({petId:str5(o.pet_id),petRef:petRef,name:str5(o.name),species:str5(o.species),breed:str5(o.breed),ageYears:num(o.age_years),weightKg:num(o.weight_kg),updatedAt:str5(o.updated_at)})}function widgetPetProfileFromWire(raw){let pet=widgetPetFromWire(raw);return pet===null?null:/* @__PURE__ */Object.freeze({...pet,...petHealthFromWire(raw)})}function petListFromWire(raw){let rows=Array.isArray(raw)?raw:typeof raw=="object"&&raw!==null&&Array.isArray(raw.pets)?raw.pets:[];/* @__PURE__ */
116
+ return Object.freeze(rows.flatMap(row=>{let pet=widgetPetFromWire(row);return pet===null?[]:[pet]}))}function createPetsRepository(auth){return createPetsRepositoryOver(createRequestFunnel({auth:auth}),createRequestFunnel({auth:auth,unaryTimeoutMs:ERASE_USER_DATA_TIMEOUT_MS}))}function createPetsRepositoryOver(funnel,eraseFunnel=funnel){let withSignal=(req,signal)=>signal?{...req,signal:signal}:req,petPath=petRef=>validate(petRef,void 0)??`/widget/v1/pets/${encodeURIComponent(petRef)}`;return{async list(opts){let res=await funnel.send("pets.list",withSignal({method:"GET",path:"/widget/v1/pets"},opts?.signal));return res.ok?ok(petListFromWire(res.value)):err(res.error)},async registerPet(petRef,profile,opts){let invalid5=validate(petRef,profile);if(invalid5!==null)return err(invalid5);let wire=toWire(profile);if("error"in wire)return err(wire.error);let base3={method:"POST",path:`/widget/v1/pets/${encodeURIComponent(petRef)}`,body:wire.body},res=await funnel.send("pets.registerPet",opts?.signal?{...base3,signal:opts.signal}:base3);return res.ok?ok(fromWire2(res.value,petRef)):err(res.error)},async updatePet(petRef,patch,opts){let path=petPath(petRef);if(typeof path!="string")return err(path);let wire=patchToWire(patch);if("error"in wire)return err(wire.error);let res=await funnel.send("pets.updatePet",withSignal({method:"PATCH",path:path,body:wire.body},opts?.signal));return res.ok?ok(fromWire2(res.value,petRef)):err(res.error)},async getPetProfile(petRef,opts){let path=petPath(petRef);if(typeof path!="string")return err(path);let res=await funnel.send("pets.getPetProfile",withSignal({method:"GET",path:`${path}/profile`},opts?.signal));if(!res.ok)return err(res.error);let profile=widgetPetProfileFromWire(res.value);return profile===null?err(makeEverfurError("internalError",{retryable:false,httpStatus:502,wireMessage:"the pet profile response carried no pet_ref"})):ok(profile)},async deletePet(petRef,opts){let path=petPath(petRef);if(typeof path!="string")return err(path);let res=await funnel.send("pets.deletePet",withSignal({method:"DELETE",path:path},opts?.signal));return res.ok?ok(void 0):err(res.error)},async eraseUserData(opts){let res=await eraseFunnel.send("pets.eraseUserData",withSignal({method:"DELETE",path:"/widget/v1/me"},opts?.signal),{maxAttempts:1});return res.ok?ok(void 0):err(res.error)}}}var listeners=/* @__PURE__ */new WeakMap;function subscribePetsChanged(runtime,listener){let set=listeners.get(runtime);return set===void 0&&(set=/* @__PURE__ */new Set,listeners.set(runtime,set)),set.add(listener),()=>{set?.delete(listener)}}function useEverfurPets(){let{runtime:runtime,userRef:userRef,activePet:activePetRef,scopeEpoch:scopeEpoch}=useEverfurContext(),repository=react.useMemo(()=>createPetsRepository(runtime.registry.services.authFor(userRef)),[runtime,userRef,scopeEpoch]),[state,setState]=react.useState({repository:repository,pets:[],loading:true,error:null}),current=state.repository===repository?state:{pets:[],loading:true,error:null},generation=react.useRef(0),load=react.useCallback(async()=>{let request=++generation.current;setState(previous=>({...previous,repository:repository,loading:true,error:null,pets:previous.repository===repository?previous.pets:[]}));let result=await repository.list();request===generation.current&&setState(result.ok?{repository:repository,pets:result.value,loading:false,error:null}:previous=>({repository:repository,pets:previous.repository===repository?previous.pets:[],loading:false,error:result.error}))},[repository]);react.useEffect(()=>(load(),()=>{generation.current+=1}),[load]),react.useEffect(()=>subscribePetsChanged(runtime,()=>{load()}),[runtime,load]);let activePet=react.useMemo(()=>activePetRef===null?null:current.pets.find(pet=>pet.petRef===activePetRef)??null,[activePetRef,current.pets]);return react.useMemo(()=>({pets:current.pets,activePet:activePet,loading:current.loading,error:current.error,refresh:load}),[current.pets,current.loading,current.error,activePet,load])}var freezeInPlace=Object.freeze;function deepFreeze(value){if(value!==null&&typeof value=="object"&&!Object.isFrozen(value)){freezeInPlace(value);for(let key of Object.keys(value))deepFreeze(value[key])}return value}var TEXT_SCALE_TIER_CAPS=/* @__PURE__ */Object.freeze({content:0,heading:2,control:1.8,compact:1.5,badge:1.3}),SPACE={xs:4,sm:8,md:12,lg:16,xl:24,xxl:32},RADIUS={tile:5,xs:6,sm:10,md:14,lg:20,xl:28,pill:500},TYPE_SIZE={nano:8,small:9,micro:10,tiny:11,caption:13,bodyTight:15,body:17,subtitle:20,heading:22,verdict:24},LINE_HEIGHT={tight:1.15,snug:1.3,normal:1.4,relaxed:1.55},WEIGHT={regular:"400",medium:"500",bold:"700"},LETTER_SPACING={eyebrow:1,monoWide:.9,headerBrand:-.42,tight:-.35},DEFAULT_MAX_FONT_SCALE=0,SYSTEM_FONT_FAMILY="System",SYSTEM_MONO_FAMILY="monospace",TIERS=["content","heading","control","compact","badge"];function authoredTierSizes(size){let out={};for(let tier of TIERS)out[tier]=size;return out}var NO_FONT_SOURCES=[];function baseType(){return{family:SYSTEM_FONT_FAMILY,mono:SYSTEM_MONO_FAMILY,fontUrl:null,families:{regular:SYSTEM_FONT_FAMILY,medium:SYSTEM_FONT_FAMILY,bold:SYSTEM_FONT_FAMILY,mono:SYSTEM_MONO_FAMILY,monoMedium:SYSTEM_MONO_FAMILY,monoBold:SYSTEM_MONO_FAMILY},namedFaces:{regular:false,medium:false,bold:false,mono:false,monoMedium:false,monoBold:false},fontUrls:{},size:TYPE_SIZE,tierSizes:authoredTierSizes(TYPE_SIZE),lineHeight:LINE_HEIGHT,weight:WEIGHT,letterSpacing:LETTER_SPACING,scale:1,maxScale:DEFAULT_MAX_FONT_SCALE,scaleCaps:TEXT_SCALE_TIER_CAPS,headingFamily:null,headingWeight:null,fontSources:NO_FONT_SOURCES}}var NO_SLOTS={},EASING_CURVES=/* @__PURE__ */Object.freeze({standard:/* @__PURE__ */Object.freeze([.2,0,0,1]),emphasized:/* @__PURE__ */Object.freeze([.2,.8,.2,1]),exit:/* @__PURE__ */Object.freeze([.4,0,1,1])});function cssCubicBezier(curve){return`cubic-bezier(${curve.join(", ")})`}var MOTION={duration:{instant:80,fast:140,normal:220,slow:320},spring:{gentle:{damping:18,stiffness:200}},easing:{standard:cssCubicBezier(EASING_CURVES.standard),emphasized:cssCubicBezier(EASING_CURVES.emphasized),exit:cssCubicBezier(EASING_CURVES.exit)},reducedMotion:false},LIGHT_COLOR={brand:"#10462E",brandSoft:"rgba(16,70,46,0.10)",brandSofter:"rgba(16,70,46,0.15)",brandBorder:"rgba(16,70,46,0.18)",borderHairlineGreen:"rgba(16,70,46,0.25)",brandBorderStrong:"rgba(16,70,46,0.55)",brandInk:"#10462E",linkInk:"#10462E",surface:"#FFFFFF",surfaceCream:"#FFFFFF",surfaceSubtle:"#F1F5F2",background:"#FFFFFF",borderRingCream:"#E4E4E4",chatGround:"#FFFFFF",composerFill:"#FFFFFF",composerBorder:"rgba(16,70,46,0.75)",shadow:"#0B3421",text:{primary:"#000000",secondary:"#0E462E",muted:"#6B6B6B",placeholder:"rgba(61,61,61,0.75)",onBrand:"#FFFFFF",metaCool:"#3D3D3D",timestamp:"rgba(61,61,61,0.75)"},primary:"#10462E",onPrimary:"#FFFFFF",accent:"#10462E",onAccent:"#FFFFFF",accentEdge:"#07C168",success:"#07C168",danger:"#C03410",onDanger:"#FFFFFF",errorRed:"#C03410",warningStrong:"#A45610",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.12)",badgeBgCaution:"rgba(217,130,29,0.14)",badgeBgCritical:"rgba(192,52,16,0.06)",badgeBgNeutral:"rgba(107,107,107,0.12)",bubbleUser:"#10462E",bubbleAssistant:"#FFFFFF",bubbleVet:"#FFC3BC",onBubbleVet:"#000000",skeleton:"#E9F1E9",scanButtonPink:"#FFC3BC",highlight:"#FFC3BC",onHighlight:"#000000",mark:"#07C168",controlEdge:"rgba(16,70,46,0.18)",structureEdge:"rgba(16,70,46,0.25)",primaryEdge:"#10462E",checkupCardLowRiskBg:"rgba(7,193,104,0.10)",checkupCardConcernBg:"rgba(239,167,0,0.10)",info:"#10462E",badgeBgInfo:"rgba(16,70,46,0.10)",infoEdge:"rgba(16,70,46,0.25)"},EVERFUR_LIGHT=deepFreeze({brightness:"light",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false,assistantAvatarUrl:null},color:LIGHT_COLOR,space:SPACE,radius:RADIUS,type:baseType(),motion:MOTION,slots:NO_SLOTS}),DARK_COLOR={brand:"#6BD39A",brandSoft:"rgba(107,211,154,0.12)",brandSofter:"rgba(107,211,154,0.18)",brandBorder:"rgba(107,211,154,0.22)",borderHairlineGreen:"rgba(107,211,154,0.28)",brandBorderStrong:"rgba(107,211,154,0.55)",brandInk:"#6BD39A",linkInk:"#6BD39A",surface:"#1C1F23",surfaceCream:"#23272C",surfaceSubtle:"#23272C",background:"#15171A",borderRingCream:"#3A3F45",chatGround:"#1C1F23",composerFill:"#23272C",composerBorder:"rgba(107,211,154,0.75)",shadow:"#000000",text:{primary:"#F5F3F0",secondary:"#A9E4C4",muted:"#9A9A9A",placeholder:"rgba(255,255,255,0.55)",onBrand:"#0E1F17",metaCool:"#C9C9C9",timestamp:"rgba(245,243,240,0.7)"},primary:"#6BD39A",onPrimary:"#0E1F17",accent:"#6BD39A",onAccent:"#0E1F17",accentEdge:"#34D888",success:"#07C168",danger:"#F87171",onDanger:"#0E1F17",errorRed:"#FF6B5B",warningStrong:"#F0A35E",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.18)",badgeBgCaution:"rgba(217,130,29,0.20)",badgeBgCritical:"rgba(185,28,28,0.22)",badgeBgNeutral:"rgba(255,255,255,0.10)",bubbleUser:"#6BD39A",bubbleAssistant:"#1C1F23",bubbleVet:"#FFC3BC",onBubbleVet:"#000000",skeleton:"#23272C",scanButtonPink:"#FFC3BC",highlight:"#605051",onHighlight:"#F5F3F0",mark:"#07C168",controlEdge:"rgba(107,211,154,0.22)",structureEdge:"rgba(107,211,154,0.28)",primaryEdge:"#6BD39A",checkupCardLowRiskBg:"rgba(7,193,104,0.16)",checkupCardConcernBg:"rgba(239,167,0,0.16)",info:"#6BD39A",badgeBgInfo:"rgba(107,211,154,0.12)",infoEdge:"rgba(107,211,154,0.28)"};deepFreeze({brightness:"dark",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false,assistantAvatarUrl:null},color:DARK_COLOR,space:SPACE,radius:RADIUS,type:baseType(),motion:MOTION,slots:NO_SLOTS});var EVERFUR_THEME_CONTEXT_SYMBOL=/* @__PURE__ */Symbol.for("@everfur/sdk#EverfurThemeContext@v1"),globalThemeHost=globalThis,EverfurThemeContext=globalThemeHost[EVERFUR_THEME_CONTEXT_SYMBOL]??(globalThemeHost[EVERFUR_THEME_CONTEXT_SYMBOL]=react.createContext(EVERFUR_LIGHT));EverfurThemeContext.displayName??="EverfurThemeContext";function useEverfurTheme(){return react.useContext(EverfurThemeContext)}var FACE_WEIGHT=/* @__PURE__ */Object.freeze({regular:"regular",medium:"medium",bold:"bold",mono:"regular",monoMedium:"medium",monoBold:"bold"});var SYSTEM_UI_STACK='system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',RN_SYSTEM_FAMILY="System";function cssFontFamily(family){let named=family.trim();return named.length===0||named===RN_SYSTEM_FAMILY?SYSTEM_UI_STACK:`${quote(named)}, ${SYSTEM_UI_STACK}`}function cssMonoFamily(mono){let named=mono.trim();return named.length===0||named==="monospace"?"ui-monospace, Menlo, Consolas, monospace":`${quote(named)}, ui-monospace, Menlo, Consolas, monospace`}function quote(family){return`"${family.replace(/[\\"]/g,"\\$&")}"`}function faceCss(theme,weight){let type=theme.type,family=type.families[weight];return{fontFamily:weight==="mono"||weight==="monoMedium"||weight==="monoBold"?cssMonoFamily(family):cssFontFamily(family),fontWeight:type.namedFaces[weight]?type.weight.regular:type.weight[FACE_WEIGHT[weight]]}}function headingFaceCss(theme,fallback="bold"){let{headingFamily:headingFamily,headingWeight:headingWeight}=theme.type,base3=faceCss(theme,fallback);return headingFamily===null&&headingWeight===null?base3:headingFamily!==null?{fontFamily:cssFontFamily(headingFamily),fontWeight:headingWeight??theme.type.weight[FACE_WEIGHT[fallback]]}:theme.type.namedFaces[fallback]||headingWeight===null?base3:{fontFamily:base3.fontFamily,fontWeight:headingWeight}}var SURFACE_ROOT_RESET=/* @__PURE__ */Object.freeze({textAlign:"start"});var REQUIRES=/* @__PURE__ */Object.freeze({chat:/* @__PURE__ */Object.freeze(["chat.message.create"]),records:/* @__PURE__ */Object.freeze(["records.upload.create","records.record.read"]),recordsClinic:/* @__PURE__ */Object.freeze(["records.clinic.create"]),video:/* @__PURE__ */Object.freeze(["video.gait.execute"]),photo:/* @__PURE__ */Object.freeze(["photo.checkup.execute"]),animations:/* @__PURE__ */Object.freeze(["animations.state.read"]),televet:/* @__PURE__ */Object.freeze(["televet.visit.create"]),texting:/* @__PURE__ */Object.freeze(["sms.identity.read","sms.identity.update"]),healthPlan:/* @__PURE__ */Object.freeze(["shop.plan.read","shop.plan.update"])});function requires(name){return REQUIRES[name]}function decideCapability(name,decisions,opts){let keys=requires(name),byResource=/* @__PURE__ */new Map;for(let decision of decisions)byResource.set(decision.resource,decision);if(opts?.isPending===true&&keys.some(key=>!byResource.has(key)))return freezeDecision({name:name,enabled:false,isPending:true,limits:{}});let limits=mergeLimits(keys,byResource);return keys.filter(key=>byResource.get(key)?.granted!==true).length===0?freezeDecision({name:name,enabled:true,isPending:false,limits:limits}):freezeDecision({name:name,enabled:false,isPending:false,limits:limits,disabled:disabledFor(keys,byResource)})}function mergeLimits(keys,byResource){let out={};for(let key of keys){let decisionLimits=byResource.get(key)?.limits;if(decisionLimits)for(let[limitKey,limitValue]of Object.entries(decisionLimits)){let existing=out[limitKey];out[limitKey]=existing===void 0?limitValue:Math.min(existing,limitValue)}}return out}function disabledFor(keys,byResource){for(let key of keys){let explicit=byResource.get(key)?.disabled;if(explicit)/* @__PURE__ */
117
+ return Object.freeze({reason:explicit.reason,level:explicit.level,recoverable:explicit.recoverable})}/* @__PURE__ */
118
+ return Object.freeze({reason:userFacingError("accessDenied"),level:"user_entitlement",recoverable:false})}function freezeDecision(d){let base3={name:d.name,enabled:d.enabled,isPending:d.isPending,limits:/* @__PURE__ */Object.freeze({...d.limits})};return d.disabled!==void 0&&(base3.disabled=d.disabled),/* @__PURE__ */Object.freeze(base3)}function useCapability(name){let{runtime:runtime}=useEverfurContext(),store=runtime.entitlements,snapshot=react.useSyncExternalStore(store.subscribe,store.getSnapshot,store.getSnapshot);return react.useMemo(()=>decideCapability(name,snapshot.decisions,{isPending:snapshot.isPending}),[name,snapshot])}var MIN_OFFSTATE_HEIGHT=48;function selectView(decision){return decision.isPending?"pending":decision.enabled?"enabled":"disabled"}function CapabilityGate(props){let{capability:capability,children:children,renderDisabled:renderDisabled,renderPending:renderPending,style:style,className:className}=props,decision=useCapability(capability),view=react.useMemo(()=>selectView(decision),[decision]);switch(view){case"enabled":return children;case"pending":return renderPending?/* @__PURE__ */jsxRuntime.jsx(HostRender,{render:renderPending,fallback:/* @__PURE__ */jsxRuntime.jsx(PendingSkeleton,{capability:capability,style:style,className:className})}):/* @__PURE__ */jsxRuntime.jsx(PendingSkeleton,{capability:capability,style:style,className:className});case"disabled":return renderDisabled?/* @__PURE__ */jsxRuntime.jsx(HostRender,{render:()=>renderDisabled(decision),fallback:/* @__PURE__ */jsxRuntime.jsx(OffState,{decision:decision,style:style,className:className}),resetKey:decision}):/* @__PURE__ */jsxRuntime.jsx(OffState,{decision:decision,style:style,className:className});default:return assertNever(view)}}function PendingSkeleton({capability:capability,style:style,className:className}){let theme=useEverfurTheme(),styles2=react.useMemo(()=>makeStyles(theme),[theme]);/* @__PURE__ */
119
+ return jsxRuntime.jsx("div",{role:"status","aria-busy":"true","aria-label":`Loading ${capability}`,className:className,style:{...styles2.offstate,...style},children:/* @__PURE__ */jsxRuntime.jsx("div",{style:styles2.skeletonBar})})}function OffState({decision:decision,style:style,className:className}){let theme=useEverfurTheme(),styles2=react.useMemo(()=>makeStyles(theme),[theme]),message=decision.disabled?.reason??"";/* @__PURE__ */
120
+ return jsxRuntime.jsx("div",{className:className,style:{...styles2.offstate,...style},children:message.length>0?/* @__PURE__ */jsxRuntime.jsx("p",{style:styles2.offstateText,children:message}):null})}function makeStyles(theme){let{color:color,space:space,radius:radius,type:type}=theme;return{offstate:{...SURFACE_ROOT_RESET,boxSizing:"border-box",minHeight:MIN_OFFSTATE_HEIGHT,display:"flex",flexDirection:"column",justifyContent:"center",padding:`${space.md}px ${space.lg}px`,backgroundColor:color.surfaceCream,borderRadius:radius.md,border:`1px solid ${color.brandBorder}`},offstateText:{margin:0,...faceCss(theme,"regular"),fontSize:type.size.body,lineHeight:`${Math.round(type.size.body*type.lineHeight.normal)}px`,color:color.text.muted},skeletonBar:{height:space.md,borderRadius:radius.xs,backgroundColor:color.brandSofter}}}function slotBox(slot,borderWidth){if(slot===void 0)return{};let out={};return slot.backgroundColor!==void 0&&(out.backgroundColor=slot.backgroundColor),slot.borderColor!==void 0&&(out.borderColor=slot.borderColor,out.borderWidth=borderWidth??1),slot.borderRadius!==void 0&&(out.borderRadius=slot.borderRadius),out}function slotText(slot){return slot?.textColor===void 0?{}:{color:slot.textColor}}function slotBoxCss(slot,borderWidth){let box=slotBox(slot,borderWidth),out={};return box.backgroundColor!==void 0&&(out.backgroundColor=box.backgroundColor),box.borderColor!==void 0&&(out.border=`${box.borderWidth??1}px solid ${box.borderColor}`),box.borderRadius!==void 0&&(out.borderRadius=box.borderRadius),out}function slotCss(slot,borderWidth){return{...slotBoxCss(slot,borderWidth),...slotText(slot)}}function HealthPlanCartBar(props){let{cart:cart,onCheckout:onCheckout,busy:busy=false,priceFormat:priceFormat,style:style,className:className}=guardHostProps(props,["onCheckout"]),theme=useEverfurTheme(),styles2=react.useMemo(()=>makeStyles2(theme),[theme]),subtotal=formatHealthPlanPriceWith(cart.subtotal,cart.currency,priceFormat),telemetry=useHealthPlanTelemetry(),petRef=useHealthPlanBarPet(useHealthPlanCartDock()?.petRef);/* @__PURE__ */
121
+ return jsxRuntime.jsxs("div",{className:className,style:{...styles2.bar,...style},role:"region","aria-label":HEALTH_PLAN_TEMPLATES.cartLabel(theme.meta.displayName),children:[
122
+ /* @__PURE__ */jsxRuntime.jsxs("div",{style:styles2.copy,children:[
123
+ /* @__PURE__ */jsxRuntime.jsxs("p",{style:styles2.label,children:[HEALTH_PLAN_TEMPLATES.cartLabel(theme.meta.displayName),cart.count>0?/* @__PURE__ */jsxRuntime.jsx("span",{style:styles2.count,"aria-hidden":"true",children:cart.count}):null]}),cart.count===0?/* @__PURE__ */jsxRuntime.jsx("p",{style:styles2.line,children:HEALTH_PLAN_COPY.cartEmpty}):subtotal===null?null:/* @__PURE__ */jsxRuntime.jsxs("p",{style:styles2.line,children:[HEALTH_PLAN_COPY.subtotal," ",subtotal]})]}),onCheckout===void 0?null:/* @__PURE__ */jsxRuntime.jsx("button",{type:"button",disabled:cart.count===0||busy,"aria-busy":busy?"true":void 0,onClick:()=>{trackCheckoutStarted(telemetry,petRef,cart),onCheckout(cart.items)},style:styles2.checkout,children:HEALTH_PLAN_COPY.checkout})]})}function makeStyles2(theme){let{color:color,radius:radius,space:space,type:type,slots:slots}=theme,ink=slots.cartBar?.textColor??color.text.onBrand,fill2=slots.cartBar?.backgroundColor??color.brandInk,line=size=>`${Math.round(size*type.lineHeight.snug)}px`;return{bar:{boxSizing:"border-box",display:"flex",alignItems:"center",justifyContent:"space-between",gap:space.md,padding:`${space.md}px ${space.lg}px`,borderRadius:radius.lg,backgroundColor:color.brand,color:color.text.onBrand,...slotCss(slots.cartBar)},copy:{display:"flex",flexDirection:"column",gap:2,minWidth:0},label:{margin:0,display:"flex",alignItems:"center",gap:space.sm,...faceCss(theme,"bold"),fontSize:type.size.body,lineHeight:line(type.size.body),color:ink},count:{minWidth:22,height:22,padding:`0 ${space.xs}px`,boxSizing:"border-box",display:"inline-flex",alignItems:"center",justifyContent:"center",borderRadius:radius.pill,backgroundColor:ink,color:fill2,...faceCss(theme,"bold"),fontSize:type.size.caption},line:{margin:0,...faceCss(theme,"regular"),fontSize:type.size.caption,lineHeight:line(type.size.caption),color:ink},checkout:{minHeight:44,padding:`0 ${space.lg}px`,borderRadius:radius.pill,border:"none",backgroundColor:ink,color:fill2,cursor:"pointer",...faceCss(theme,"bold"),fontSize:type.size.body}}}function useHealthPlanSubscriptionRepository(){let{runtime:runtime}=useEverfurContext();return react.useMemo(()=>createHealthPlanSubscriptionRepository(runtime),[runtime])}function useHealthPlanSubscription(options){let{userRef:userRef}=useEverfurContext(),own=useHealthPlanSubscriptionRepository(),repository=options.repository??own,enabled=options.enabled!==false&&userRef!==null&&options.petRef!==null&&options.productId!==null,{petRef:petRef,productId:productId}=options,[phase,setPhase]=react.useState("idle"),[quote2,setQuote]=react.useState(null),[subscription,setSubscription]=react.useState(null),[busy,setBusy]=react.useState(false),[error,setError]=react.useState(null),[readyAt,setReadyAt]=react.useState(null),epoch=react.useRef(0),writes=react.useRef(0),quiet=react.useRef(0),busyRef=react.useRef(false),refreshAfterWrite=react.useRef(false),revalidateRef=react.useRef(()=>Promise.resolve()),load=react.useCallback(async()=>{let mine=++epoch.current;if(refreshAfterWrite.current=false,setReadyAt(null),!enabled||petRef===null||productId===null){setPhase("idle"),setQuote(null),setSubscription(null);return}setPhase("loading");let res=await repository.quote(petRef,productId);if(mine===epoch.current){if(!res.ok){setQuote(null),setSubscription(null),setError(res.error),setPhase(isHealthPlanSubscriptionUnavailable(res.error)?"unavailable":"failed");return}setError(null),setQuote(res.value),setSubscription(res.value.subscription),setPhase("ready"),setReadyAt(Date.now())}},[enabled,petRef,productId,repository]),ready=enabled&&phase==="ready",revalidate=react.useCallback(async()=>{if(!ready||busyRef.current||petRef===null||productId===null)return;let mine=epoch.current,wrote=writes.current,seq=++quiet.current,res=await repository.quote(petRef,productId);mine!==epoch.current||wrote!==writes.current||seq!==quiet.current||busyRef.current||!res.ok||(setQuote(res.value),setSubscription(res.value.subscription),setReadyAt(Date.now()))},[ready,petRef,productId,repository]);revalidateRef.current=revalidate;let refreshOnKey=()=>{if(!ready){load();return}if(busyRef.current){refreshAfterWrite.current=true;return}revalidate()};useHealthPlanRevalidation({lifecycle:options.lifecycle,refreshKey:options.refreshKey,readyAt:ready?readyAt:null,revalidate:()=>{revalidate()},refresh:refreshOnKey});let settleWrite=react.useCallback(()=>{refreshAfterWrite.current&&(refreshAfterWrite.current=false,revalidateRef.current())},[]);react.useEffect(()=>(load(),()=>{epoch.current+=1}),[load]);let write=react.useCallback(async run=>{let mine=epoch.current;writes.current+=1,busyRef.current=true,setBusy(true);let res=await run();return busyRef.current=false,mine!==epoch.current?res:(setBusy(false),res.ok?(setError(null),setSubscription(res.value),settleWrite(),res):(setError(res.error),isHealthPlanSubscriptionUnavailable(res.error)?setPhase("unavailable"):settleWrite(),res))},[settleWrite]),buy=react.useCallback(async tapKey=>{let mine=epoch.current;writes.current+=1,busyRef.current=true,setBusy(true);let res=await repository.buyOneBox(petRef,productId,tapKey);return busyRef.current=false,mine!==epoch.current?res:(setBusy(false),res.ok?(setError(null),load(),res):(setError(res.error),isHealthPlanSubscriptionUnavailable(res.error)?setPhase("unavailable"):settleWrite(),res))},[repository,petRef,productId,load,settleWrite]);return react.useMemo(()=>{let p=petRef,sid=subscription?.subscriptionId??"",none=()=>Promise.resolve(err(makeEverfurError("validationFailed",{retryable:false,wireMessage:"the subscription quote is not ready"})));return{phase:phase,quote:quote2,subscription:subscription,busy:busy,error:error,subscribe:n=>ready&&productId!==null?write(()=>repository.create(p,productId,n)):none(),changeInterval:n=>ready&&sid!==""?write(()=>repository.changeInterval(p,sid,n)):none(),skip:()=>ready&&sid!==""?write(()=>repository.skip(p,sid)):none(),cancel:()=>ready&&sid!==""?write(()=>repository.cancel(p,sid)):none(),restart:n=>ready&&sid!==""?write(()=>repository.restart(p,sid,n)):none(),buyOneBox:k=>ready&&productId!==null?buy(k):none(),refresh:load}},[phase,quote2,subscription,busy,error,ready,petRef,productId,repository,write,buy,load])}function toRgba(value){if(typeof value=="number")return argbIntToRgba(value);if(typeof value!="string")return null;let s=value.trim();if(s.length===0)return null;if(s.startsWith("#"))return fromHex(s.slice(1));if(s.toLowerCase().startsWith("0x"))return fromHex(s.slice(2));if(s.toLowerCase().startsWith("rgb"))return fromRgbFunc(s);if(/^[0-9a-fA-F]+$/.test(s)){let hex=fromHex(s);if(hex!==null)return hex}return/^\d+$/.test(s)?argbIntToRgba(Number.parseInt(s,10)):null}function fromHex(hex){let h=hex.trim();if(!/^[0-9a-fA-F]+$/.test(h))return null;if(h.length===3)return{r:dup(h[0]),g:dup(h[1]),b:dup(h[2]),a:1};if(h.length===6)return{r:byte(h,0),g:byte(h,2),b:byte(h,4),a:1};if(h.length===8){let a=byte(h,0);return{r:byte(h,2),g:byte(h,4),b:byte(h,6),a:a/255}}return null}function fromRgbFunc(input){let open=input.indexOf("("),close=input.indexOf(")");if(open<0||close<0||close<open)return null;let parts=input.slice(open+1,close).split(",").map(p=>p.trim());if(parts.length<3)return null;let r=clampByte(Number(parts[0])),g=clampByte(Number(parts[1])),b=clampByte(Number(parts[2]));if(r===null||g===null||b===null)return null;let a=1;if(parts.length>=4){let alpha=Number(parts[3]);if(!Number.isFinite(alpha))return null;a=Math.min(1,Math.max(0,alpha))}return{r:r,g:g,b:b,a:a}}function argbIntToRgba(n){if(!Number.isFinite(n))return null;let int2=Math.trunc(n)>>>0,a=int2>>>24&255;return{r:int2>>>16&255,g:int2>>>8&255,b:int2&255,a:a===0?1:a/255}}function byte(hex,at){return Number.parseInt(hex.slice(at,at+2),16)}function dup(nibble){return Number.parseInt(`${nibble??"0"}${nibble??"0"}`,16)}function clampByte(n){return Number.isFinite(n)?Math.min(255,Math.max(0,Math.round(n))):null}function rgbToHex(r,g,b){return`#${hex2(r)}${hex2(g)}${hex2(b)}`.toUpperCase()}function hex2(n){return n.toString(16).padStart(2,"0")}var NEAR_BLACK="#111111",WHITE="#FFFFFF",BLACK="#000000";function readableOn(background){let rgba=toRgba(background);if(rgba===null)return WHITE;let bg=relativeLuminance(rgba),black=relativeLuminance({r:17,g:17,b:17}),white=relativeLuminance({r:255,g:255,b:255});return luminanceContrast(bg,white)>=luminanceContrast(bg,black)?WHITE:NEAR_BLACK}function legibleOn(background,target){let first=readableOn(background);return contrastRatio(first,background)>=target?first:contrastRatio(WHITE,background)>=contrastRatio(BLACK,background)?WHITE:BLACK}function poleForGrounds(grounds){let worst=ink=>grounds.reduce((low,ground)=>Math.min(low,contrastRatio(ink,ground)),Number.POSITIVE_INFINITY);return worst(WHITE)>=worst(BLACK)?WHITE:BLACK}function relativeLuminance(rgba){let r=linearize(rgba.r/255),g=linearize(rgba.g/255),b=linearize(rgba.b/255);return.2126*r+.7152*g+.0722*b}function linearize(channel){return channel<=.03928?channel/12.92:Math.pow((channel+.055)/1.055,2.4)}function luminanceContrast(l1,l2){let lighter=Math.max(l1,l2),darker=Math.min(l1,l2);return(lighter+.05)/(darker+.05)}function contrastRatio(a,b){let fg=toRgba(a),bg=toRgba(b);if(fg===null||bg===null)return 1;let ground=bg.a>=1?bg:{...bg},fore=fg.a>=1?fg:composite(fg,ground);return luminanceContrast(relativeLuminance(fore),relativeLuminance(ground))}function composite(fg,bg){let a=fg.a,mix=(f,g)=>Math.round(f*a+g*(1-a));return{r:mix(fg.r,bg.r),g:mix(fg.g,bg.g),b:mix(fg.b,bg.b),a:1}}function flattenOnto(color,background){let fg=toRgba(color),bg=toRgba(background);if(fg===null||bg===null)return null;let out=fg.a>=1?fg:composite(fg,{...bg});return rgbToHex(out.r,out.g,out.b)}function withAlpha(color,alpha){let rgba=toRgba(color);if(rgba===null)return null;let a=Math.min(1,Math.max(0,alpha));return`rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${a})`}var PUSH_STEP=.05;function pushToContrast(color,grounds,pole,target){let first=grounds[0];if(first===void 0)return pole;let reads=candidate=>grounds.every(ground=>contrastRatio(candidate,ground)>=target);if(toRgba(color)===null)return pole;if(reads(color))return color;let flat=flattenOnto(color,first),from=flat===null?null:toRgba(flat),to=toRgba(pole);if(from===null||to===null)return pole;for(let step=1;step<1/PUSH_STEP;step+=1){let t=step*PUSH_STEP,mix=(a,b)=>Math.round(a+(b-a)*t),candidate=rgbToHex(mix(from.r,to.r),mix(from.g,to.g),mix(from.b,to.b));if(reads(candidate))return candidate}return pole}var RAPH_V3_LIGHT=/* @__PURE__ */Object.freeze({ink:"#262523",ink2:"#4A4845",ink3:"#6B6863",paper:"#F8F7F4",card:"#FFFFFF",line:"#E7E6E2",tile:"#F2F1EE",shadow:"rgba(38, 37, 35, .07)",riskBg:"#FFE3E1",riskInk:"#B0231B",riskDot:"#E5372B",clearBg:"#E6F4D3",clearInk:"#2F6A12",clearDot:"#5FA82B",watchDot:"#E5A000"}),cache=/* @__PURE__ */new WeakMap;function v3Palette(theme){let hit=cache.get(theme);if(hit!==void 0)return hit;let c=theme.color,dark=theme.brightness==="dark",neutrals=dark?{dark:dark,ink:c.text.primary,ink2:c.text.secondary,ink3:c.text.muted,paper:c.background,card:c.surface,line:c.borderRingCream,tile:c.surfaceSubtle,shadow:c.shadow,riskBg:c.badgeBgCritical,riskInk:c.danger,riskDot:c.danger,clearBg:c.badgeBgPositive,clearInk:c.success,clearDot:c.success,watchDot:c.warningStrong}:{dark:dark,...RAPH_V3_LIGHT},textOn=(ink,grounds)=>pushToContrast(ink,grounds,poleForGrounds(grounds),V3_TEXT_CONTRAST),labelOn=(ink,fill2)=>contrastRatio(ink,fill2)>=V3_TEXT_CONTRAST?ink:legibleOn(fill2,V3_TEXT_CONTRAST),badgeGrounds=[neutrals.card,neutrals.paper].map(under=>flattenOnto(c.brandSoft,under)??under),brand={primary:c.primary,onPrimary:labelOn(c.onPrimary,c.primary),accent:c.accent,onAccent:labelOn(c.onAccent,c.accent),link:textOn(c.linkInk,[neutrals.card,neutrals.paper,neutrals.tile]),badge:c.brandSoft,onBadge:textOn(c.brandInk,badgeGrounds)},palette=/* @__PURE__ */Object.freeze({...neutrals,...brand});return cache.set(theme,palette),palette}var V3_TEXT_CONTRAST=4.5;var PLAN_CLASS_PREFIX="efp-",PLAN_CONTEXT=[["font-family","$sans"],["color","$ink"],["font-size","17px"],["line-height","1.5"]],PLAN_RULES=[["h1",[0,0,1],[["color","$n_10462E"],["line-height","1.15"],["font-weight","700"]]],["h2",[0,0,1],[["color","$n_10462E"],["line-height","1.15"],["font-weight","700"]]],["h3",[0,0,1],[["color","$n_10462E"],["line-height","1.15"],["font-weight","700"]]],["h4",[0,0,1],[["color","$n_10462E"],["line-height","1.15"],["font-weight","700"]]],[".efp-ph-sheet > h3.efp-serif",[0,2,1],[["font-size","24px"]]],["*",[0,0,0],[["box-sizing","border-box"]]],["* > .efp-before",[0,1,0],[["box-sizing","border-box"]]],["[hidden]",[0,1,0],[["display","none",1]]],["h1",[0,0,1],[["color","inherit"],["margin","0"],["font-weight","700"],["line-height","1.15"]]],["h2",[0,0,1],[["color","inherit"],["margin","0"],["font-weight","700"],["line-height","1.15"]]],["h3",[0,0,1],[["color","inherit"],["margin","0"],["font-weight","700"],["line-height","1.15"]]],["h4",[0,0,1],[["color","inherit"],["margin","0"],["font-weight","700"],["line-height","1.15"]]],["p",[0,0,1],[["margin","0"]]],["ul",[0,0,1],[["margin","0"]]],["ol",[0,0,1],[["margin","0"]]],["button",[0,0,1],[["font","inherit"],["color","inherit"]]],["input",[0,0,1],[["font","inherit"],["color","inherit"]]],["textarea",[0,0,1],[["font","inherit"],["color","inherit"]]],["button",[0,0,1],[["background","none"],["border","0"],["padding","0"],["cursor","pointer"],["text-align","inherit"],["-webkit-tap-highlight-color","transparent"],["touch-action","manipulation"]]],["img",[0,0,1],[["display","block"]]],["svg",[0,0,1],[["display","block"]]],["a",[0,0,1],[["color","inherit"]]],[".efp-sr-only",[0,1,0],[["position","absolute"],["width","1px"],["height","1px"],["overflow","hidden"],["clip","rect(0 0 0 0)"],["white-space","nowrap"]]],[".efp-serif",[0,1,0],[["font-family","$serif"],["font-weight","800"],["font-variation-settings",'"SOFT" 0, "WONK" 0'],["letter-spacing","-0.01em"],["text-wrap","balance"]]],[".efp-emb-btn",[0,1,0],[["display","inline-flex"],["align-items","center"],["justify-content","center"],["gap","8px"],["min-height","48px"],["padding","0 22px"],["border-radius","999px"],["background","$primary"],["color","$onPrimary"],["font-weight","700"],["font-size","16px"],["text-decoration","none"],["transition","transform 160ms cubic-bezier(0.23, 1, 0.32, 1), opacity 160ms ease"]]],[".efp-emb-btn svg",[0,1,1],[["width","20px"],["height","20px"]]],[".efp-emb-btn--block",[0,1,0],[["width","100%"]]],[".efp-emb-btn--ghost",[0,1,0],[["background","transparent"],["color","$ink"],["box-shadow","inset 0 0 0 1.5px $ink"]]],[".efp-emb-btn--sm",[0,1,0],[["min-height","40px"],["padding","0 16px"],["font-size","15px"]]],[".efp-emb-btn--lg",[0,1,0],[["min-height","56px"],["padding","0 28px"],["font-size","17px"]]],[".efp-emb-btn[disabled]",[0,2,0],[["opacity",".32"],["pointer-events","none"]]],[".efp-dot",[0,1,0],[["display","inline-block"],["width","9px"],["height","9px"],["border-radius","50%"],["flex","none"]]],[".efp-dot--risk",[0,1,0],[["background","$riskDot"]]],[".efp-ph-scroll",[0,1,0],[["flex","1"],["min-height","0"],["overflow-y","auto"],["overscroll-behavior","contain"],["scrollbar-width","none"]]],[".efp-emb-tile",[0,1,0],[["width","46px"],["height","46px"],["border-radius","13px"],["background","$tile"],["display","grid"],["place-items","center"],["flex","none"],["font-size","22px"]]],[".efp-emb-tile svg",[0,1,1],[["width","23px"],["height","23px"]]],[".efp-emb-tile--cyan",[0,1,0],[["background","$linkWash"],["color","$link"]]],[".efp-ph-push",[0,1,0],[["position","absolute"],["inset","0"],["display","flex"],["flex-direction","column"],["background","$paper"],["pointer-events","auto"],["transform","translateX(100%)"],["visibility","hidden"],["transition","transform 220ms cubic-bezier(0.23, 1, 0.32, 1), visibility 0s linear 220ms"]]],[".efp-ph-push.efp-is-on",[0,2,0],[["transform","none"],["visibility","visible"],["transition","transform 300ms cubic-bezier(0.32, 0.72, 0, 1), visibility 0s"]]],[".efp-bk__radio",[0,1,0],[["width","22px"],["height","22px"],["border-radius","50%"],["box-shadow","inset 0 0 0 2px $n_BDB9B2"],["display","grid"],["place-items","center"]]],[".efp-bk__foot",[0,1,0],[["flex","none"],["padding","12px 18px 34px"],["background","$paper"],["box-shadow","0 -1px 0 $line"]]],[".efp-bk__done",[0,1,0],[["padding","40px 22px 20px"],["text-align","center"]]],[".efp-bk__check",[0,1,0],[["width","76px"],["height","76px"],["border-radius","50%"],["background","$accent"],["display","grid"],["place-items","center"],["margin","0 auto"]]],[".efp-bk__check svg",[0,1,1],[["width","38px"],["height","38px"]]],[".efp-bk__done .efp-bk__title",[0,2,0],[["margin-top","20px"],["font-size","34px"]]],[".efp-bk__when",[0,1,0],[["font-size","16px"],["margin-top","10px"],["font-weight","700"]]],[".efp-bk__who",[0,1,0],[["font-size","15px"],["color","$ink2"],["margin-top","2px"]]],[".efp-ph-scrim",[0,1,0],[["position","absolute"],["inset","0"],["z-index","40"],["background","$scrim"],["opacity","0"],["visibility","hidden"],["transition","opacity 200ms ease, visibility 0s linear 200ms"]]],[".efp-ph-scrim.efp-is-on",[0,2,0],[["opacity","1"],["visibility","visible"],["transition","opacity 240ms ease, visibility 0s"]]],[".efp-ph-sheet",[0,1,0],[["overscroll-behavior","contain"],["position","absolute"],["left","0"],["right","0"],["bottom","0"],["z-index","41"],["max-height","80%"],["overflow-y","auto"],["scrollbar-width","none"],["background","$card"],["border-radius","28px 28px 0 0"],["padding","10px 20px 40px"],["transform","translateY(100%)"],["visibility","hidden"],["transition","transform 220ms cubic-bezier(0.23, 1, 0.32, 1), visibility 0s linear 220ms"]]],[".efp-ph-sheet.efp-is-on",[0,2,0],[["transform","none"],["visibility","visible"],["transition","transform 320ms cubic-bezier(0.32, 0.72, 0, 1), visibility 0s"]]],[".efp-sheet__grab",[0,1,0],[["width","40px"],["height","5px"],["border-radius","3px"],["background","$n_DAD7D1"],["margin","0 auto 10px"]]],[".efp-sheet__top",[0,1,0],[["display","flex"],["align-items","center"],["justify-content","space-between"]]],[".efp-sheet__kicker",[0,1,0],[["font-family","$mono"],["font-size","11px"],["letter-spacing",".08em"],["text-transform","uppercase"],["color","$ink3"]]],[".efp-sheet__x",[0,1,0],[["width","40px"],["height","40px"],["margin-right","-8px"],["display","grid"],["place-items","center"],["border-radius","50%"]]],[".efp-sheet__x svg",[0,1,1],[["width","22px"],["height","22px"]]],[".efp-ph-sheet .efp-sheet__body",[0,2,0],[["display","grid"],["gap","10px"],["margin-top","12px"],["font-size","16px"],["line-height","1.5"],["color","$black"]]],[".efp-ph-toast",[0,1,0],[["position","absolute"],["left","16px"],["right","16px"],["top","112px"],["z-index","50"],["background","$ink"],["color","$onInk"],["border-radius","16px"],["padding","12px 15px"],["font-size","14.5px"],["line-height","1.4"],["opacity","0"],["transform","translateY(-8px)"],["pointer-events","none"],["transition","opacity 160ms ease, transform 160ms cubic-bezier(0.23, 1, 0.32, 1)"]]],[".efp-ph-toast.efp-is-on",[0,2,0],[["opacity","1"],["transform","none"],["transition-duration","220ms"]]],[".efp-plan__fine",[0,1,0],[["font-size","12.5px"],["color","$ink3"],["text-align","center"],["margin-top","16px"],["line-height","1.45"]]],[".efp-cp-tag",[0,1,0],[["font-family","$mono"],["font-size","10px"],["letter-spacing",".06em"],["text-transform","uppercase"],["background","$ink"],["color","$onInk"],["padding","2px 6px"],["border-radius","5px"]]],[".efp-cp-tag--s",[0,1,0],[["background","$card"],["color","$ink"]]],[".efp-hp",[0,1,0],[["padding","16px 16px 28px"]]],[".efp-hp-head",[0,1,0],[["display","grid"],["grid-template-columns","minmax(0, 1fr) 56px"],["gap","12px"],["align-items","center"],["padding","2px 2px 0"]]],[".efp-hp-head h2",[0,1,1],[["font-size","29px"],["line-height","1.06"]]],[".efp-hp-head p",[0,1,1],[["font-size","15px"],["color","$ink2"],["margin-top","6px"]]],[".efp-hp-head img",[0,1,1],[["width","56px"],["height","56px"],["border-radius","50%"],["object-fit","cover"],["background","$tile"],["box-shadow","0 0 0 3px $paper, 0 0 0 5.5px $accent"]]],[".efp-hp-need",[0,1,0],[["margin-top","14px"],["padding","16px"],["border-radius","22px"],["background","$card"],["box-shadow","0 1px 3px $wash"],["scroll-margin-top","12px"]]],[".efp-hp-need__k",[0,1,0],[["display","flex"],["align-items","center"],["gap","8px"],["font-size","15px"],["font-weight","800"]]],[".efp-hp-n",[0,1,0],[["flex","none"],["width","24px"],["height","24px"],["border-radius","50%"],["background","$primary"],["color","$onPrimary"],["display","grid"],["place-items","center"],["font-size","12.5px"],["font-weight","800"]]],[".efp-hp-srcs",[0,1,0],[["margin-left","auto"],["display","flex"],["gap","4px"]]],[".efp-hp-src",[0,1,0],[["height","24px"],["padding","0 9px"],["border-radius","999px"],["background","$tile"],["color","$ink2"],["font-size","12px"],["font-weight","700"],["display","inline-flex"],["align-items","center"],["white-space","nowrap"]]],[".efp-hp-src--dna",[0,1,0],[["background","$linkWash"],["color","$link"]]],[".efp-hp-need h3",[0,1,1],[["font-size","19px"],["font-weight","800"],["line-height","1.22"],["margin-top","12px"]]],[".efp-hp-need__s",[0,1,0],[["display","grid"],["grid-template-columns","9px minmax(0, 1fr)"],["gap","9px"],["align-items","baseline"],["margin-top","6px"],["font-size","15px"],["line-height","1.45"],["color","$ink2"]]],[".efp-hp-need__s b",[0,1,1],[["color","$ink"],["font-weight","800"]]],[".efp-hp-need__s .efp-dot",[0,2,0],[["transform","translateY(-1px)"]]],[".efp-hp-odds",[0,1,0],[["display","flex"],["justify-content","space-between"],["align-items","center"],["gap","12px"],["margin-top","12px"],["padding","10px 14px"],["border-radius","14px"],["background","$accent4"]]],[".efp-hp-odds__k",[0,1,0],[["font-size","13.5px"],["font-weight","600"],["line-height","1.35"],["color","$ink2"],["max-width","10em"]]],[".efp-hp-odds__k .efp-cp-tag",[0,2,0],[["display","inline-block"],["margin-top","3px"]]],[".efp-hp-odds__n",[0,1,0],[["display","grid"],["grid-template-columns","auto auto auto"],["align-items","center"],["justify-items","end"],["gap","0 6px"]]],[".efp-hp-odds__n s",[0,1,1],[["font-size","17px"],["font-weight","700"],["color","$ink3"]]],[".efp-hp-odds__n svg",[0,1,1],[["width","16px"],["height","16px"],["color","$ink3"]]],[".efp-hp-odds__n b",[0,1,1],[["font-family","$serif"],["font-size","28px"],["font-weight","800"],["line-height","1"]]],[".efp-hp-odds__n span",[0,1,1],[["grid-column","1 / -1"],["font-size","12.5px"],["font-weight","700"],["color","$link"],["margin-top","3px"]]],[".efp-hp-pick",[0,1,0],[["margin-top","12px"],["padding","12px"],["border-radius","16px"],["background","$paper"]]],[".efp-hp-pick__top",[0,1,0],[["display","grid"],["grid-template-columns","64px minmax(0, 1fr)"],["gap","12px"],["align-items","center"]]],[".efp-hp-pick__img",[0,1,0],[["width","64px"],["height","64px"],["border-radius","14px"],["background","$card"],["overflow","hidden"]]],[".efp-hp-pick__img img",[0,1,1],[["width","100%"],["height","100%"],["object-fit","cover"]]],[".efp-hp-pick h4",[0,1,1],[["font-size","17px"],["font-weight","800"],["line-height","1.2"]]],[".efp-hp-stars",[0,1,0],[["display","flex"],["align-items","center"],["gap","4px"],["margin-top","2px"],["font-size","13.5px"],["font-weight","800"]]],[".efp-hp-stars svg",[0,1,1],[["width","14px"],["height","14px"],["color","$watchDot"]]],[".efp-hp-stars span",[0,1,1],[["font-weight","500"],["color","$ink3"]]],[".efp-hp-pick__line",[0,1,0],[["margin-top","3px"],["font-size","14px"],["line-height","1.4"],["color","$ink2"]]],[".efp-hp-buy",[0,1,0],[["display","flex"],["justify-content","space-between"],["align-items","center"],["gap","12px"],["margin-top","12px"]]],[".efp-hp-price",[0,1,0],[["display","flex"],["flex-wrap","wrap"],["align-items","baseline"],["gap","0 8px"],["min-width","0"]]],[".efp-hp-price b",[0,1,1],[["font-size","24px"],["font-weight","800"],["line-height","1.1"],["font-variant-numeric","tabular-nums"]]],[".efp-hp-price s",[0,1,1],[["font-size","15px"],["font-weight","700"],["color","$riskInk"],["text-decoration-thickness","2px"]]],[".efp-hp-price small",[0,1,1],[["flex-basis","100%"],["margin-top","3px"],["font-size","12.5px"],["line-height","1.35"],["color","$ink3"]]],[".efp-hp-buy .efp-emb-btn",[0,2,0],[["flex","none"],["min-height","46px"],["padding","0 20px"]]],[".efp-hp-more",[0,1,0],[["display","flex"],["flex-wrap","wrap"],["gap","0 18px"],["margin-top","8px"]]],[".efp-hp-more button",[0,1,1],[["min-height","34px"],["font-size","14px"],["font-weight","700"],["color","$link"],["text-decoration","underline"],["text-decoration-thickness","1.5px"],["text-underline-offset","3px"]]],[".efp-hp-need > .efp-hp-more",[0,2,0],[["margin-top","10px"]]],[".efp-hp-on",[0,1,0],[["display","grid"],["grid-template-columns","34px minmax(0, 1fr) auto"],["gap","10px"],["align-items","center"],["margin-top","12px"],["padding","10px 10px 10px 12px"],["border-radius","14px"],["background","$clearBg"]]],[".efp-hp-on__ic",[0,1,0],[["width","34px"],["height","34px"],["border-radius","50%"],["background","$clearDot"],["color","$card"],["display","grid"],["place-items","center"]]],[".efp-hp-on__ic svg",[0,1,1],[["width","18px"],["height","18px"]]],[".efp-hp-on strong",[0,1,1],[["display","block"],["font-size","15px"],["color","$clearInk"],["line-height","1.25"]]],[".efp-hp-on small",[0,1,1],[["display","block"],["margin-top","1px"],["font-size","13px"],["line-height","1.35"],["color","$ink2"]]],[".efp-hp-on button",[0,1,1],[["min-height","38px"],["padding","0 14px"],["border-radius","999px"],["background","$card"],["font-size","14px"],["font-weight","800"],["box-shadow","inset 0 0 0 1.5px $ink"],["transition","transform 160ms cubic-bezier(0.23, 1, 0.32, 1)"]]],[".efp-is-on > .efp-hp-buy",[0,2,0],[["display","none"]]],[".efp-is-on [data-once]",[0,2,0],[["display","none"]]],[".efp-hp-by",[0,1,0],[["display","grid"],["grid-template-columns","40px minmax(0, 1fr)"],["gap","10px"],["align-items","center"],["margin-top","14px"],["padding","0 2px"]]],[".efp-hp-by img",[0,1,1],[["width","40px"],["height","40px"],["border-radius","50%"],["object-fit","cover"],["background","$tile"]]],[".efp-hp-by strong",[0,1,1],[["display","block"],["font-size","15px"],["font-weight","800"],["line-height","1.25"]]],[".efp-hp-by small",[0,1,1],[["display","block"],["margin-top","2px"],["font-family","$mono"],["font-size","10.5px"],["letter-spacing",".05em"],["text-transform","uppercase"],["color","$ink3"]]],[".efp-hp-steps",[0,1,0],[["margin-top","14px"],["padding","16px 12px 12px"],["border-radius","22px"],["background","$card"],["box-shadow","0 1px 3px $wash"]]],[".efp-hp-steps__head",[0,1,0],[["display","flex"],["justify-content","space-between"],["align-items","baseline"],["gap","12px"],["padding","0 4px"]]],[".efp-hp-steps__head h3",[0,1,1],[["font-size","19px"],["font-weight","800"],["line-height","1.2"]]],[".efp-hp-steps__head p",[0,1,1],[["font-family","$mono"],["font-size","11px"],["letter-spacing",".05em"],["text-transform","uppercase"],["color","$ink3"],["white-space","nowrap"]]],[".efp-hp-list",[0,1,0],[["list-style","none"],["margin","6px 0 0"],["padding","0"],["display","grid"],["gap","2px"]]],[".efp-hp-swipe",[0,1,0],[["display","flex"],["gap","10px"],["overflow-x","auto"],["scroll-snap-type","x mandatory"],["overscroll-behavior-x","contain"],["scrollbar-width","none"],["-webkit-overflow-scrolling","touch"]]],[".efp-hp-swipe > *",[0,1,0],[["flex","0 0 78%"],["max-width","280px"],["scroll-snap-align","start"]]],[".efp-hp-steps .efp-hp-swipe",[0,2,0],[["margin","10px -12px 0"],["padding","0 12px 2px"],["scroll-padding-inline","12px"]]],[".efp-hp-tip",[0,1,0],[["display","flex"],["flex-direction","column"],["padding","14px 14px 12px"],["border-radius","18px"]]],[".efp-hp-tip--y",[0,1,0],[["background","$accentChip"]]],[".efp-hp-tip--c",[0,1,0],[["background","$linkChip"]]],[".efp-hp-tip--g",[0,1,0],[["background","$clearChip"]]],[".efp-hp-tip--r",[0,1,0],[["background","$riskChip"]]],[".efp-hp-tip__top",[0,1,0],[["display","flex"],["justify-content","space-between"],["align-items","center"]]],[".efp-hp-tip__top svg",[0,1,1],[["width","26px"],["height","26px"],["color","$ink"]]],[".efp-hp-tip__n",[0,1,0],[["font-family","$serif"],["font-size","30px"],["font-weight","900"],["line-height","1"]]],[".efp-hp-tip strong",[0,1,1],[["display","block"],["margin-top","14px"],["font-size","17px"],["font-weight","800"],["line-height","1.25"]]],[".efp-hp-tip small",[0,1,1],[["display","block"],["margin-top","4px"],["font-size","14.5px"],["line-height","1.4"],["color","$ink2"]]],[".efp-hp-tip em",[0,1,1],[["display","block"],["margin-top","auto"],["padding-top","10px"],["font-style","normal"],["font-family","$mono"],["font-size","10.5px"],["letter-spacing",".04em"],["text-transform","uppercase"],["color","$link"]]],[".efp-hp-eyebrow",[0,1,0],[["font-family","$mono"],["font-size","11px"],["letter-spacing",".07em"],["text-transform","uppercase"],["color","$ink3"],["margin-bottom","6px"]]],[".efp-hp-head .efp-hp-eyebrow + h2",[0,2,1],[["margin-top","0"]]],[".efp-hp-by",[0,1,0],[["grid-template-columns","40px minmax(0, 1fr) 22px"],["margin-top","14px"],["padding","10px 12px"],["border-radius","16px"],["background","$card"],["box-shadow","0 1px 3px $wash"]]],[".efp-hp-by__ok",[0,1,0],[["width","22px"],["height","22px"],["color","$link"]]],[".efp-hp-says",[0,1,0],[["display","grid"],["grid-template-columns","32px minmax(0, 1fr)"],["gap","10px"],["align-items","start"],["margin","12px 0 0"],["padding","10px 12px"],["border-radius","14px"],["background","$paper"]]],[".efp-hp-says img",[0,1,1],[["width","32px"],["height","32px"],["border-radius","50%"],["object-fit","cover"]]],[".efp-hp-says p",[0,1,1],[["font-size","14.5px"],["line-height","1.4"],["color","$ink2"]]],[".efp-hp-says b",[0,1,1],[["color","$ink"],["font-weight","800"],["margin-right","2px"]]],[".efp-hp-jump",[0,1,0],[["width","100%"],["display","grid"],["grid-template-columns","44px minmax(0, 1fr) auto"],["gap","12px"],["align-items","center"],["margin-top","12px"],["padding","8px 14px 8px 8px"],["border-radius","14px"],["background","$primary"],["color","$onPrimary"],["text-align","left"],["transition","transform 160ms cubic-bezier(0.23, 1, 0.32, 1)"]]],[".efp-hp-jump img",[0,1,1],[["width","44px"],["height","44px"],["border-radius","10px"],["object-fit","cover"],["background","$card"]]],[".efp-hp-jump small",[0,1,1],[["display","block"],["font-size","13px"],["font-weight","800"],["color","$accent"]]],[".efp-hp-jump strong",[0,1,1],[["display","block"],["font-size","15px"],["font-weight","800"],["line-height","1.25"]]],[".efp-hp-jump__go",[0,1,0],[["font-size","14px"],["font-weight","800"]]],[".efp-hp-n",[0,1,0],[["flex","none"]]],[".efp-hp-steps__head h3",[0,1,1],[["display","flex"],["align-items","center"],["gap","10px"],["font-size","19px"],["font-weight","800"],["line-height","1.2"]]],[".efp-hp-sec__h",[0,1,0],[["display","flex"],["align-items","center"],["gap","10px"],["font-size","19px"],["font-weight","800"],["line-height","1.2"]]],[".efp-hp-sec",[0,1,0],[["margin-top","14px"],["padding","16px"],["border-radius","22px"],["background","$card"],["box-shadow","0 1px 3px $wash"],["scroll-margin-top","12px"]]],[".efp-hp-sec .efp-hp-pick",[0,2,0],[["margin-top","14px"],["padding","0"],["background","none"]]],[".efp-hp-sec .efp-hp-pick__top",[0,2,0],[["grid-template-columns","76px minmax(0, 1fr)"]]],[".efp-hp-sec .efp-hp-pick__img",[0,2,0],[["width","76px"],["height","76px"],["background","$paper"]]],[".efp-hp-mini",[0,1,0],[["font-family","$mono"],["font-size","10.5px"],["letter-spacing",".06em"],["text-transform","uppercase"],["color","$ink3"]]],[".efp-hp-why",[0,1,0],[["margin-top","14px"],["padding","12px 14px"],["border-radius","16px"],["box-shadow","inset 0 0 0 1.5px $ink"]]],[".efp-hp-why ul",[0,1,1],[["list-style","none"],["margin","0"],["padding","0"]]],[".efp-hp-dose ul",[0,1,1],[["list-style","none"],["margin","0"],["padding","0"]]],[".efp-hp-why li",[0,1,1],[["display","grid"],["grid-template-columns","58px minmax(0, 1fr)"],["gap","10px"],["align-items","start"],["margin-top","10px"]]],[".efp-hp-why strong",[0,1,1],[["display","block"],["font-size","15px"],["font-weight","800"],["line-height","1.3"]]],[".efp-hp-why small",[0,1,1],[["display","block"],["margin-top","1px"],["font-size","14px"],["line-height","1.4"],["color","$ink2"]]],[".efp-hp-chip",[0,1,0],[["height","22px"],["border-radius","6px"],["display","grid"],["place-items","center"],["font-family","$mono"],["font-size","10.5px"],["font-weight","700"],["letter-spacing",".04em"],["text-transform","uppercase"]]],[".efp-hp-chip--dna",[0,1,0],[["background","$linkWash"],["color","$link"]]],[".efp-hp-chip--ask",[0,1,0],[["background","$accent4"],["color","$ink"]]],[".efp-hp-chip--rec",[0,1,0],[["background","$tile"],["color","$ink2"]]],[".efp-hp-dose",[0,1,0],[["margin-top","10px"],["padding","12px 14px 14px"],["border-radius","16px"],["background","$linkWash"]]],[".efp-hp-dose .efp-hp-mini",[0,2,0],[["color","$link"]]],[".efp-hp-dose ul",[0,1,1],[["display","grid"],["grid-template-columns","repeat(3, minmax(0, 1fr))"],["gap","8px"],["margin-top","10px"]]],[".efp-hp-dose li",[0,1,1],[["display","grid"],["justify-items","center"],["gap","2px"],["padding","10px 4px"],["border-radius","12px"],["background","$card"],["text-align","center"]]],[".efp-hp-dose b",[0,1,1],[["font-family","$mono"],["font-size","21px"],["font-weight","700"],["line-height","1.1"],["font-variant-numeric","tabular-nums"]]],[".efp-hp-dose small",[0,1,1],[["font-size","12.5px"],["line-height","1.3"],["color","$ink2"]]],[".efp-hp-dose > p:last-child",[0,2,1],[["margin-top","10px"],["font-size","14px"],["line-height","1.45"],["color","$link"]]],[".efp-hp-in",[0,1,0],[["display","flex"],["flex-wrap","wrap"],["gap","6px"],["margin-top","12px"]]],[".efp-hp-in span",[0,1,1],[["padding","6px 10px"],["border-radius","999px"],["background","$tile"],["font-size","13.5px"],["font-weight","600"]]],[".efp-hp-opts",[0,1,0],[["display","grid"],["gap","8px"],["margin-top","14px"]]],[".efp-hp-opt",[0,1,0],[["width","100%"],["display","flex"],["justify-content","space-between"],["align-items","center"],["gap","12px"],["padding","14px"],["border-radius","16px"],["background","$card"],["text-align","left"],["box-shadow","inset 0 0 0 1.5px $n_DEDCD7"],["transition","box-shadow 160ms ease, transform 160ms cubic-bezier(0.23, 1, 0.32, 1)"]]],['.efp-hp-opt[aria-checked="true"]',[0,2,0],[["box-shadow","inset 0 0 0 2.5px $ink"]]],[".efp-hp-opt__t",[0,1,0],[["display","grid"],["justify-items","start"],["gap","2px"]]],[".efp-hp-opt__t strong",[0,1,1],[["font-size","16px"],["font-weight","800"]]],[".efp-hp-opt__t small",[0,1,1],[["font-size","13.5px"],["color","$ink2"]]],[".efp-hp-opt__tag",[0,1,0],[["margin-bottom","4px"],["padding","2px 8px"],["border-radius","6px"],["background","$riskInk"],["color","$card"],["font-size","12px"],["font-weight","800"]]],[".efp-hp-opt__p",[0,1,0],[["font-size","18px"],["font-weight","800"]]],[".efp-hp-opt .efp-hp-price",[0,2,0],[["display","flex"],["flex-direction","column"],["align-items","flex-end"],["flex-wrap","nowrap"]]],[".efp-hp-opt .efp-hp-price s",[0,2,1],[["order","-1"]]],[".efp-hp-opt .efp-hp-price small",[0,2,1],[["display","none"]]],[".efp-hp-sec .efp-hp-buy",[0,2,0],[["display","block"],["margin-top","12px"]]],[".efp-hp-sec .efp-hp-buy .efp-emb-btn",[0,3,0],[["width","100%"],["min-height","52px"],["font-size","17px"]]],[".efp-hp-trust",[0,1,0],[["list-style","none"],["margin","12px 0 0"],["padding","0"],["display","grid"],["grid-template-columns","repeat(3, minmax(0, 1fr))"],["gap","6px"]]],[".efp-hp-trust li",[0,1,1],[["display","grid"],["justify-items","center"],["gap","4px"],["font-size","12.5px"],["font-weight","600"],["line-height","1.3"],["text-align","center"],["color","$ink2"]]],[".efp-hp-trust svg",[0,1,1],[["width","20px"],["height","20px"],["color","$link"]]],[".efp-is-on > .efp-hp-opts",[0,2,0],[["display","none"]]],[".efp-is-on > .efp-hp-trust",[0,2,0],[["display","none"]]],[".efp-hp-fine",[0,1,0],[["margin-top","8px"],["font-size","13px"],["line-height","1.45"],["color","$ink3"]]],[".efp-hp-sign",[0,1,0],[["margin-top","12px"],["padding","14px"],["border-radius","16px"],["box-shadow","inset 0 0 0 1.5px $n_DEDCD7"]]],[".efp-hp-sign h4",[0,1,1],[["display","flex"],["align-items","center"],["gap","8px"],["font-size","16px"],["font-weight","800"],["line-height","1.25"]]],[".efp-hp-sign p",[0,1,1],[["margin-top","4px"],["font-size","15px"],["line-height","1.45"],["color","$ink2"]]],[".efp-hp-sign--er",[0,1,0],[["background","$riskBg"],["box-shadow","none"]]],[".efp-hp-sign--er h4",[0,1,1],[["color","$riskInk"]]],[".efp-hp-sign--er h4 svg",[0,1,2],[["width","20px"],["height","20px"]]],[".efp-hp-sign--er p",[0,1,1],[["color","$ink"]]],[".efp-hp-qs",[0,1,0],[["margin","10px 0 0"],["padding-left","22px"],["display","grid"],["gap","6px"],["font-size","15px"],["line-height","1.45"]]],[".efp-hp-sec .efp-hp-add",[0,2,0],[["display","flex"],["align-items","center"],["justify-content","center"],["width","100%"],["padding","0 16px"],["min-height","48px"],["margin-top","14px"],["border-radius","999px"],["font-size","16px"],["font-weight","800"],["box-shadow","inset 0 0 0 2px $ink"],["transition","transform 160ms cubic-bezier(0.23, 1, 0.32, 1), background-color 180ms ease"]]],['.efp-hp-sec .efp-hp-add[aria-pressed="true"]',[0,3,0],[["background","$clearBg"],["color","$clearInk"],["box-shadow","none"]]],[".efp-hp-revs",[0,1,0],[["margin","12px -16px 0"],["padding","0 16px"],["scroll-padding-inline","16px"]]],[".efp-hp-rev",[0,1,0],[["margin","0"],["padding","12px 14px"],["border-radius","14px"],["background","$paper"]]],[".efp-hp-rev__s",[0,1,0],[["display","flex"],["gap","1px"],["color","$watchDot"]]],[".efp-hp-rev__s svg",[0,1,1],[["width","13px"],["height","13px"]]],[".efp-hp-rev blockquote",[0,1,1],[["margin","5px 0 0"],["font-size","15px"],["line-height","1.4"]]],[".efp-hp-rev figcaption",[0,1,1],[["margin-top","4px"],["font-size","13px"],["color","$ink3"]]],[".efp-hp-score",[0,1,0],[["display","flex"],["justify-content","space-between"],["align-items","center"],["gap","8px"],["margin-top","12px"],["padding","11px 12px 11px 14px"],["border-radius","12px"],["background","$primary"],["color","$onPrimary"],["font-size","14.5px"],["font-weight","800"],["line-height","1.3"]]],[".efp-hp-score b",[0,1,1],[["flex","none"],["font-family","$mono"],["font-size","16px"],["font-weight","700"],["color","$accent"]]],[".efp-hp-opt--once",[0,1,0],[["padding","10px 14px"],["background","$paper"],["box-shadow","none"]]],[".efp-hp-opt--once .efp-hp-opt__t strong",[0,2,1],[["font-size","15px"],["font-weight","700"]]],[".efp-hp-opt--once .efp-hp-opt__t small",[0,2,1],[["font-size","13px"]]],[".efp-hp-opt--once .efp-hp-opt__p",[0,2,0],[["font-size","15px"],["font-weight","700"],["color","$ink2"]]],['.efp-hp-opt--once[aria-checked="true"]',[0,2,0],[["background","$card"],["box-shadow","inset 0 0 0 2px $ink"]]],[".efp-hp-proof",[0,1,0],[["display","flex"],["justify-content","center"],["align-items","center"],["gap","6px"],["margin-top","10px"],["font-size","14.5px"],["font-weight","800"],["color","$riskInk"]]],[".efp-hp-proof svg",[0,1,1],[["width","21px"],["height","21px"],["flex","none"],["margin-top","-2px"]]],[".efp-is-on > .efp-hp-proof",[0,2,0],[["display","none"]]],[".efp-hp-qs__k",[0,1,0],[["margin-top","18px"],["font-size","16px"],["font-weight","800"],["line-height","1.25"]]],[".efp-hp-qs__k + .efp-hp-qs",[0,2,0],[["margin-top","6px"]]],[".efp-hp-xs",[0,1,0],[["margin-top","22px"],["display","grid"],["gap","10px"]]],[".efp-hp-xs .efp-hp-eyebrow",[0,2,0],[["margin","0 4px"],["font-weight","400"]]],[".efp-hp-x",[0,1,0],[["display","grid"],["grid-template-columns","56px minmax(0, 1fr)"],["gap","4px 12px"],["align-items","start"],["padding","14px"],["border-radius","22px"],["background","$card"],["box-shadow","0 1px 3px $wash"]]],[".efp-hp-x > img",[0,1,1],[["width","56px"],["height","56px"],["border-radius","14px"],["object-fit","cover"],["background","$card"]]],[".efp-hp-x__ic",[0,1,0],[["width","56px"],["height","56px"],["border-radius","14px"],["object-fit","cover"],["background","$card"]]],[".efp-hp-x__ic",[0,1,0],[["display","grid"],["place-items","center"],["background","$linkWash"],["color","$link"]]],[".efp-hp-x__ic svg",[0,1,1],[["width","26px"],["height","26px"]]],[".efp-hp-x h4",[0,1,1],[["font-size","17px"],["font-weight","800"],["line-height","1.2"]]],[".efp-hp-x h4.efp-serif",[0,2,1],[["font-size","21px"]]],[".efp-hp-x p",[0,1,1],[["margin-top","3px"],["font-size","14.5px"],["line-height","1.4"],["color","$ink2"]]],[".efp-hp-x .efp-hp-x__p",[0,2,0],[["display","flex"],["flex-wrap","wrap"],["align-items","center"],["gap","0 8px"],["margin-top","6px"],["color","$ink"]]],[".efp-hp-x__p b",[0,1,1],[["font-size","19px"],["font-weight","800"],["font-variant-numeric","tabular-nums"]]],[".efp-hp-x__p s",[0,1,1],[["font-size","14px"],["font-weight","700"],["color","$ink3"]]],[".efp-hp-x__go",[0,1,0],[["grid-column","2"],["justify-self","start"],["margin-top","8px"],["min-height","40px"],["padding","0 18px"],["border-radius","999px"],["background","$primary"],["color","$onPrimary"],["font-size","14.5px"],["font-weight","800"],["transition","transform 160ms cubic-bezier(0.23, 1, 0.32, 1), background-color 180ms ease"]]],['.efp-hp-x__go[aria-pressed="true"]',[0,2,0],[["background","$clearBg"],["color","$clearInk"]]],[".efp-hp-x--kit",[0,1,0],[["background","$linkWash"],["box-shadow","none"]]],[".efp-hp-x--kit > img",[0,1,1],[["background","$card"]]],[".efp-hp-next",[0,1,0],[["list-style","none"],["margin","22px 0 0"],["padding","4px 16px"],["border-radius","18px"],["background","$card"],["text-align","left"],["box-shadow","0 1px 3px $wash"]]],[".efp-hp-next li",[0,1,1],[["display","grid"],["grid-template-columns","36px minmax(0, 1fr)"],["gap","12px"],["align-items","center"],["padding","10px 0"]]],[".efp-hp-next__ic",[0,1,0],[["width","36px"],["height","36px"],["border-radius","11px"],["background","$linkWash"],["color","$link"],["display","grid"],["place-items","center"]]],[".efp-hp-next__ic svg",[0,1,1],[["width","19px"],["height","19px"]]],[".efp-hp-next small",[0,1,1],[["display","block"],["font-family","$mono"],["font-size","10.5px"],["letter-spacing",".05em"],["text-transform","uppercase"],["color","$ink3"]]],[".efp-hp-next span",[0,1,1],[["display","block"],["margin-top","1px"],["font-size","15px"],["font-weight","600"],["line-height","1.35"]]],[".efp-co",[0,1,0],[["display","grid"],["gap","10px"],["margin-top","2px"]]],[".efp-co-prod",[0,1,0],[["display","grid"],["grid-template-columns","56px minmax(0, 1fr)"],["gap","12px"],["align-items","center"]]],[".efp-co-prod__img",[0,1,0],[["width","56px"],["height","56px"],["border-radius","14px"],["background","$accent3"],["color","$ink"],["overflow","hidden"],["display","grid"],["place-items","center"]]],[".efp-co-prod__img img",[0,1,1],[["width","100%"],["height","100%"],["object-fit","cover"]]],[".efp-co-prod__img svg",[0,1,1],[["width","30px"],["height","30px"]]],[".efp-co-prod p",[0,1,1],[["margin-top","2px"],["font-size","14px"],["line-height","1.35"],["color","$ink2"]]],[".efp-co-prod__t",[0,1,0],[["font-size","20px"],["font-weight","800"],["line-height","1.2"],["color","$ink"]]],[".efp-co-prod .efp-co-prod__t",[0,2,0],[["margin-top","0"]]],[".efp-co-opts",[0,1,0],[["display","grid"],["gap","8px"]]],[".efp-co-opt",[0,1,0],[["border-radius","16px"],["box-shadow","inset 0 0 0 1.5px $n_DAD7D1"],["transition","box-shadow 160ms ease, background-color 160ms ease"]]],[".efp-co-opt.efp-is-on",[0,2,0],[["background","$accent4"],["box-shadow","inset 0 0 0 2px $ink"]]],[".efp-co-opt.efp-is-on .efp-bk__radio",[0,3,0],[["box-shadow","inset 0 0 0 7px $ink"]]],[".efp-co-opt__hit",[0,1,0],[["width","100%"],["display","grid"],["grid-template-columns","22px minmax(0, 1fr) auto"],["gap","2px 12px"],["align-items","start"],["padding","12px 14px"],["border-radius","16px"],["text-align","left"]]],[".efp-co-opt__hit strong",[0,1,1],[["font-size","16px"],["line-height","1.35"]]],[".efp-co-opt__p",[0,1,0],[["text-align","right"],["font-size","16px"],["font-weight","800"],["line-height","1.35"],["font-variant-numeric","tabular-nums"]]],[".efp-co-opt__p s",[0,1,1],[["display","block"],["font-size","13px"],["font-weight","600"],["color","$riskInk"]]],[".efp-co-opt__hit small",[0,1,1],[["grid-column","2 / -1"],["font-size","13px"],["line-height","1.4"],["color","$ink2"]]],[".efp-co-k",[0,1,0],[["font-family","$mono"],["font-size","10.5px"],["letter-spacing",".06em"],["text-transform","uppercase"],["color","$ink3"],["margin-bottom","6px"]]],[".efp-co-every",[0,1,0],[["display","grid"],["grid-template-columns","repeat(3, minmax(0, 1fr))"],["gap","4px"],["padding","4px"],["border-radius","999px"],["background","$card"],["box-shadow","inset 0 0 0 1.5px $n_DAD7D1"]]],[".efp-co-when",[0,1,0],[["padding","0 14px 12px 48px"]]],[".efp-co-every button",[0,1,1],[["min-height","36px"],["padding","0 6px"],["border-radius","999px"],["font-size","14px"],["font-weight","700"],["text-align","center"],["white-space","nowrap"],["transition","background-color 160ms ease, transform 160ms cubic-bezier(0.23, 1, 0.32, 1)"]]],['.efp-co-every button[aria-checked="true"]',[0,2,1],[["background","$primary"],["color","$onPrimary"]]],[".efp-co-rows",[0,1,0],[["list-style","none"],["margin","0"],["padding","2px 14px"],["border-radius","16px"],["background","$paper"]]],[".efp-co-rows li",[0,1,1],[["display","grid"],["grid-template-columns","20px 4.6rem minmax(0, 1fr)"],["gap","10px"],["align-items","center"],["min-height","40px"],["font-size","14.5px"]]],[".efp-co-rows svg",[0,1,1],[["width","20px"],["height","20px"],["color","$ink2"]]],[".efp-co-rows span",[0,1,1],[["color","$ink3"]]],[".efp-co-rows b",[0,1,1],[["font-weight","700"]]],[".efp-co-fine",[0,1,0],[["font-size","12.5px"],["line-height","1.45"],["color","$ink3"],["text-align","center"]]],[".efp-mg-cancel",[0,1,0],[["justify-self","center"],["min-height","40px"],["font-size","14.5px"],["font-weight","700"],["color","$riskInk"]]],[".efp-hp-tools",[0,1,0],[["display","flex"],["align-items","center"],["justify-content","space-between"],["gap","8px"],["margin","-8px -6px 2px 2px"]]],[".efp-hp-tools .efp-hp-eyebrow",[0,2,0],[["margin","0"]]],[".efp-hp-tools__end",[0,1,0],[["display","flex"],["align-items","center"],["gap","2px"]]],[".efp-hp-orders",[0,1,0],[["display","inline-flex"],["align-items","center"],["gap","6px"],["min-height","44px"],["padding","0 8px"],["border-radius","999px"],["font-size","15px"],["font-weight","700"]]],[".efp-hp-orders svg",[0,1,1],[["width","21px"],["height","21px"]]],[".efp-hp-cart",[0,1,0],[["position","relative"],["width","44px"],["height","44px"],["display","grid"],["place-items","center"],["border-radius","50%"]]],[".efp-hp-cart svg",[0,1,1],[["width","26px"],["height","26px"]]],[".efp-hp-cart__n",[0,1,0],[["position","absolute"],["top","3px"],["right","1px"],["min-width","20px"],["height","20px"],["padding","0 5px"],["border-radius","999px"],["background","$riskDot"],["color","$card"],["font-size","12px"],["font-weight","800"],["line-height","20px"],["text-align","center"],["font-variant-numeric","tabular-nums"],["box-shadow","0 0 0 2px $paper"]]],[".efp-hp-ask-row",[0,1,0],[["width","100%"],["display","grid"],["grid-template-columns","40px minmax(0, 1fr) 18px"],["gap","12px"],["align-items","center"],["margin-top","10px"],["padding","12px 14px 12px 12px"],["border-radius","16px"],["background","$linkWash"],["text-align","left"],["transition","transform 160ms cubic-bezier(0.23, 1, 0.32, 1)"]]],[".efp-hp-ask-row__ic",[0,1,0],[["width","40px"],["height","40px"],["border-radius","11px"],["background","$card"],["color","$link"],["display","grid"],["place-items","center"]]],[".efp-hp-ask-row__ic svg",[0,1,1],[["width","21px"],["height","21px"]]],[".efp-hp-ask-row strong",[0,1,1],[["display","block"],["font-size","15.5px"],["font-weight","800"],["line-height","1.3"]]],[".efp-hp-ask-row small",[0,1,1],[["display","block"],["margin-top","1px"],["font-size","14px"],["line-height","1.4"],["color","$ink2"]]],[".efp-hp-ask-row > svg",[0,1,1],[["width","18px"],["height","18px"],["color","$ink2"]]],[".efp-hp-sec .efp-hp-ask-row",[0,2,0],[["margin-top","12px"]]],[".efp-hp-wait",[0,1,0],[["margin-top","14px"],["padding","16px"],["border-radius","22px"],["background","$card"],["box-shadow","0 1px 3px $wash"]]],[".efp-hp-wait__top",[0,1,0],[["display","grid"],["grid-template-columns","46px minmax(0, 1fr)"],["gap","12px"],["align-items","center"]]],[".efp-hp-wait__top h3",[0,1,1],[["font-size","26px"],["line-height","1.05"],["margin-top","2px"]]],[".efp-hp-wait .efp-sh-track",[0,2,0],[["margin-top","14px"]]],[".efp-hp-wait__k",[0,1,0],[["margin-top","18px"],["font-size","16px"],["font-weight","800"]]],[".efp-hp-next--in",[0,1,0],[["margin-top","8px"],["background","$paper"],["box-shadow","none"]]],[".efp-hp-wait__text",[0,1,0],[["display","flex"],["align-items","center"],["gap","8px"],["margin","16px 0 12px"],["font-size","15.5px"],["font-weight","700"]]],[".efp-hp-wait__text svg",[0,1,1],[["width","20px"],["height","20px"],["color","$link"],["flex","none"]]],[".efp-sh-track",[0,1,0],[["list-style","none"],["margin","0"],["padding","0"]]],[".efp-sh-track li",[0,1,1],[["position","relative"],["display","grid"],["grid-template-columns","22px minmax(0, 1fr)"],["gap","12px"],["padding-bottom","16px"]]],[".efp-sh-track li:last-child",[0,2,1],[["padding-bottom","0"]]],[".efp-sh-track li > .efp-before",[0,2,1],[["position","absolute"],["left","10px"],["top","20px"],["bottom","-2px"],["width","2px"],["border-radius","1px"],["background","$n_E2DFD9"]]],[".efp-sh-track li:last-child > .efp-before",[0,3,1],[["display","none"]]],[".efp-sh-track li.efp-is-done:has(+ li.efp-is-done) > .efp-before",[0,4,2],[["background","$primary"]]],[".efp-sh-track__dot",[0,1,0],[["width","22px"],["height","22px"],["border-radius","50%"],["display","grid"],["place-items","center"],["background","$card"],["box-shadow","inset 0 0 0 2px $n_CFCBC4"],["position","relative"],["z-index","1"]]],[".efp-sh-track__dot svg",[0,1,1],[["width","13px"],["height","13px"],["color","$card"]]],[".efp-sh-track .efp-is-done .efp-sh-track__dot",[0,3,0],[["background","$primary"],["box-shadow","none"]]],[".efp-sh-track .efp-is-now .efp-sh-track__dot",[0,3,0],[["background","$accent"],["box-shadow","inset 0 0 0 2px $ink"]]],[".efp-sh-track strong",[0,1,1],[["display","block"],["font-size","15.5px"],["font-weight","800"],["line-height","1.3"]]],[".efp-sh-track small",[0,1,1],[["display","block"],["margin-top","1px"],["font-size","14px"],["line-height","1.35"],["color","$ink3"]]],[".efp-sh-track li:not(.efp-is-done):not(.efp-is-now) strong",[0,3,2],[["color","$ink3"],["font-weight","700"]]],[".efp-sh",[0,1,0],[["display","grid"],["gap","12px"],["padding","8px 18px 28px"]]],[".efp-sh-title",[0,1,0],[["font-size","29px"],["line-height","1.08"]]],[".efp-sh-sub2",[0,1,0],[["margin-top","-6px"],["font-size","15px"],["line-height","1.45"],["color","$ink2"]]],[".efp-sh-k",[0,1,0],[["margin","6px 2px -4px"],["font-size","16px"],["font-weight","800"]]],[".efp-sh-card",[0,1,0],[["padding","14px 16px"],["border-radius","22px"],["background","$card"],["box-shadow","0 1px 3px $wash"]]],[".efp-sh-items",[0,1,0],[["list-style","none"],["margin","0"],["padding","0"],["display","grid"],["gap","18px"]]],[".efp-sh-item",[0,1,0],[["display","grid"],["grid-template-columns","64px minmax(0, 1fr)"],["gap","12px"],["align-items","start"]]],[".efp-sh-item__img",[0,1,0],[["width","64px"],["height","64px"],["border-radius","14px"],["overflow","hidden"],["display","grid"],["place-items","center"],["background","$linkWash"],["color","$link"]]],[".efp-sh-item__img img",[0,1,1],[["width","100%"],["height","100%"],["object-fit","cover"]]],[".efp-sh-item__img svg",[0,1,1],[["width","28px"],["height","28px"]]],[".efp-sh-item h3",[0,1,1],[["font-size","16.5px"],["font-weight","800"],["line-height","1.25"]]],[".efp-sh-item__p",[0,1,0],[["display","flex"],["flex-wrap","wrap"],["align-items","center"],["gap","2px 8px"],["margin-top","3px"]]],[".efp-sh-item__p b",[0,1,1],[["font-size","16px"],["font-weight","800"],["font-variant-numeric","tabular-nums"]]],[".efp-sh-item__p s",[0,1,1],[["font-size","14px"],["font-weight","600"],["color","$ink3"]]],[".efp-sh-item__p small",[0,1,1],[["font-size","14px"],["color","$ink3"]]],[".efp-sh-item__acts",[0,1,0],[["display","flex"],["align-items","center"],["gap","16px"],["margin-top","8px"]]],[".efp-sh-step",[0,1,0],[["display","inline-grid"],["grid-template-columns","40px 30px 40px"],["align-items","center"],["height","40px"],["border-radius","999px"],["background","$card"],["box-shadow","inset 0 0 0 1.5px $n_DAD7D1"]]],[".efp-sh-step button",[0,1,1],[["height","40px"],["display","grid"],["place-items","center"],["border-radius","999px"],["transition","transform 160ms cubic-bezier(0.23, 1, 0.32, 1)"]]],[".efp-sh-step button svg",[0,1,2],[["width","16px"],["height","16px"]]],[".efp-sh-step button[disabled]",[0,2,1],[["opacity",".3"],["cursor","default"]]],[".efp-sh-step output",[0,1,1],[["text-align","center"],["font-size","15.5px"],["font-weight","800"],["font-variant-numeric","tabular-nums"]]],[".efp-sh-rm",[0,1,0],[["min-height","40px"],["font-size","14.5px"],["font-weight","700"],["color","$ink2"],["text-decoration","underline"],["text-decoration-thickness","1.5px"],["text-underline-offset","3px"]]],[".efp-sh-mode",[0,1,0],[["display","grid"],["gap","6px"],["margin-top","8px"]]],[".efp-sh-mode button",[0,1,1],[["display","flex"],["justify-content","space-between"],["align-items","center"],["gap","10px"],["min-height","44px"],["padding","8px 12px"],["border-radius","12px"],["background","$paper"],["font-size","14.5px"],["font-weight","700"],["line-height","1.3"],["text-align","left"],["transition","box-shadow 160ms ease, transform 160ms cubic-bezier(0.23, 1, 0.32, 1)"]]],['.efp-sh-mode button[aria-checked="true"]',[0,2,1],[["background","$card"],["box-shadow","inset 0 0 0 2px $ink"]]],[".efp-sh-mode b",[0,1,1],[["font-weight","800"],["font-variant-numeric","tabular-nums"]]],[".efp-sh-item .efp-co-every",[0,2,0],[["margin-top","8px"]]],[".efp-sh-sum li.efp-is-renew",[0,2,1],[["min-height","28px"],["margin-top","-6px"],["font-size","14px"]]],[".efp-sh-sum",[0,1,0],[["list-style","none"],["margin","0"],["padding","6px 16px"],["border-radius","16px"],["background","$card"],["box-shadow","0 1px 3px $wash"]]],[".efp-sh-sum li",[0,1,1],[["display","flex"],["justify-content","space-between"],["align-items","center"],["gap","12px"],["min-height","34px"],["font-size","15px"],["font-variant-numeric","tabular-nums"]]],[".efp-sh-sum li > span:first-child",[0,2,2],[["color","$ink2"],["display","inline-flex"],["align-items","center"],["gap","8px"]]],[".efp-sh-sum li.efp-is-total",[0,2,1],[["min-height","42px"],["font-size","17px"],["font-weight","800"]]],[".efp-sh-sum li.efp-is-total span:first-child",[0,3,2],[["color","$ink"]]],[".efp-sh-foot",[0,1,0],[["display","grid"],["gap","8px"]]],[".efp-sh-foot .efp-sh-fine",[0,2,0],[["text-align","center"]]],[".efp-sh-fine",[0,1,0],[["font-size","13px"],["line-height","1.45"],["color","$ink3"]]],[".efp-sh-fine--c",[0,1,0],[["margin-top","14px"],["text-align","center"]]],[".efp-sh-empty",[0,1,0],[["display","grid"],["justify-items","center"],["gap","8px"],["padding","48px 12px 8px"],["text-align","center"]]],[".efp-sh-empty .efp-emb-tile",[0,2,0],[["width","72px"],["height","72px"],["border-radius","20px"],["margin-bottom","8px"]]],[".efp-sh-empty .efp-emb-tile svg",[0,2,1],[["width","34px"],["height","34px"]]],[".efp-sh-empty h2",[0,1,1],[["font-size","28px"],["line-height","1.1"]]],[".efp-sh-empty p",[0,1,1],[["max-width","30ch"],["font-size","15.5px"],["line-height","1.45"],["color","$ink2"],["text-wrap","pretty"]]],[".efp-sh-empty .efp-emb-btn",[0,2,0],[["margin-top","12px"]]],[".efp-sh-link",[0,1,0],[["min-height","40px"],["font-size","15px"],["font-weight","700"],["color","$link"],["text-decoration","underline"],["text-decoration-thickness","1.5px"],["text-underline-offset","3px"]]],[".efp-sh-subc",[0,1,0],[["display","grid"],["grid-template-columns","56px minmax(0, 1fr) auto"],["gap","12px"],["align-items","center"],["padding","12px 14px 12px 12px"],["border-radius","22px"],["background","$clearBg"]]],[".efp-sh-subc img",[0,1,1],[["width","56px"],["height","56px"],["border-radius","14px"],["object-fit","cover"],["background","$card"]]],[".efp-sh-subc strong",[0,1,1],[["display","block"],["font-size","16px"],["font-weight","800"],["line-height","1.25"]]],[".efp-sh-subc small",[0,1,1],[["display","block"],["margin-top","2px"],["font-size","14px"],["line-height","1.35"],["color","$ink2"]]],[".efp-sh-subc button",[0,1,1],[["min-height","40px"],["padding","0 14px"],["border-radius","999px"],["background","$card"],["font-size","14px"],["font-weight","800"],["box-shadow","inset 0 0 0 1.5px $ink"],["transition","transform 160ms cubic-bezier(0.23, 1, 0.32, 1)"]]],[".efp-sh-orders",[0,1,0],[["list-style","none"],["margin","0"],["padding","0"],["display","grid"],["gap","10px"]]],[".efp-sh-order",[0,1,0],[["width","100%"],["display","grid"],["grid-template-columns","minmax(0, 1fr) 18px"],["gap","10px"],["align-items","center"],["padding","14px 14px 14px 16px"],["border-radius","22px"],["background","$card"],["box-shadow","0 1px 3px $wash"],["text-align","left"],["transition","transform 160ms cubic-bezier(0.23, 1, 0.32, 1)"]]],[".efp-sh-order > svg",[0,1,1],[["width","18px"],["height","18px"],["color","$ink3"]]],[".efp-sh-order__top",[0,1,0],[["display","flex"],["flex-wrap","wrap"],["align-items","center"],["gap","4px 10px"]]],[".efp-sh-order__no",[0,1,0],[["font-family","$mono"],["font-size","12px"],["letter-spacing",".04em"],["color","$ink3"]]],[".efp-sh-order__what",[0,1,0],[["display","block"],["margin-top","8px"],["font-size","16px"],["font-weight","800"],["line-height","1.3"]]],[".efp-sh-order__meta",[0,1,0],[["display","block"],["margin-top","2px"],["font-size","14px"],["line-height","1.4"],["color","$ink3"]]],[".efp-sh-order__pics",[0,1,0],[["display","flex"],["gap","6px"],["margin-top","10px"]]],[".efp-sh-order__pics span",[0,1,1],[["width","40px"],["height","40px"],["border-radius","10px"],["overflow","hidden"],["display","grid"],["place-items","center"],["background","$linkWash"],["color","$link"]]],[".efp-sh-order__pics img",[0,1,1],[["width","100%"],["height","100%"],["object-fit","cover"]]],[".efp-sh-order__pics svg",[0,1,1],[["width","20px"],["height","20px"]]],[".efp-sh-pill",[0,1,0],[["display","inline-flex"],["align-items","center"],["gap","6px"],["min-height","26px"],["padding","0 10px"],["border-radius","999px"],["font-size","13px"],["font-weight","800"],["background","$accent3"],["color","$ink"]]],[".efp-sh-pill--done",[0,1,0],[["background","$clearBg"],["color","$clearInk"]]],[".efp-sh-pill--sub",[0,1,0],[["background","$linkWash"],["color","$link"]]],[".efp-sh-carrier",[0,1,0],[["display","grid"],["grid-template-columns","40px minmax(0, 1fr)"],["gap","4px 12px"],["align-items","center"]]],[".efp-sh-carrier__ic",[0,1,0],[["width","40px"],["height","40px"],["border-radius","11px"],["background","$linkWash"],["color","$link"],["display","grid"],["place-items","center"]]],[".efp-sh-carrier__ic svg",[0,1,1],[["width","21px"],["height","21px"]]],[".efp-sh-carrier strong",[0,1,1],[["display","block"],["font-size","16px"],["font-weight","800"]]],[".efp-sh-carrier small",[0,1,1],[["display","flex"],["flex-wrap","wrap"],["align-items","center"],["gap","2px 8px"],["margin-top","1px"],["font-family","$mono"],["font-size","13px"],["letter-spacing",".02em"],["color","$ink2"]]],[".efp-sh-carrier .efp-emb-btn",[0,2,0],[["grid-column","1 / -1"],["margin-top","10px"]]],[".efp-sh-carrier__wait",[0,1,0],[["grid-column","2"],["font-size","14.5px"],["line-height","1.4"],["color","$ink2"]]],[".efp-sh-acts",[0,1,0],[["display","grid"],["gap","4px"],["justify-items","center"],["margin-top","4px"]]],[".efp-hp-next__ic img",[0,1,1],[["width","100%"],["height","100%"],["object-fit","cover"],["border-radius","11px"]]],[".efp-co-items",[0,1,0],[["list-style","none"],["margin","0"],["padding","0"],["display","grid"],["gap","10px"]]],[".efp-co-items li",[0,1,1],[["display","grid"],["grid-template-columns","44px minmax(0, 1fr) auto"],["gap","12px"],["align-items","center"],["font-size","15px"]]],[".efp-co-items .efp-sh-order__pics",[0,2,0],[["margin","0"]]],[".efp-co-items strong",[0,1,1],[["display","block"],["font-size","15.5px"],["font-weight","800"],["line-height","1.25"]]],[".efp-co-items small",[0,1,1],[["display","block"],["font-size","13.5px"],["color","$ink3"]]],[".efp-co-items b",[0,1,1],[["font-weight","800"],["font-variant-numeric","tabular-nums"]]],[".efp-co .efp-sh-sum",[0,2,0],[["background","$paper"],["box-shadow","none"]]],[".efp-co-items .efp-sh-order__pics span",[0,2,1],[["width","44px"],["height","44px"]]],[".efp-sh .efp-co-rows",[0,2,0],[["background","$card"],["box-shadow","0 1px 3px $wash"]]],[".efp-wt-f",[0,1,0],[["display","grid"],["gap","8px"],["margin-top","14px"],["font-size","15px"],["font-weight","700"]]],[".efp-wt-f__in",[0,1,0],[["position","relative"]]],[".efp-wt-f input",[0,1,1],[["width","100%"],["height","58px"],["border","0"],["border-radius","16px"],["padding","0 56px 0 18px"],["background","$card"],["box-shadow","inset 0 0 0 1.5px $n_DAD7D1"],["font-size","24px"],["font-weight","800"],["font-variant-numeric","tabular-nums"],["outline","none"]]],[".efp-wt-f__u",[0,1,0],[["position","absolute"],["right","18px"],["top","50%"],["translate","0 -50%"],["font-size","17px"],["font-weight","700"],["color","$ink3"],["pointer-events","none"]]],[".efp-wt-err",[0,1,0],[["min-height","20px"],["margin-top","6px"],["font-size","14px"],["font-weight","700"],["color","$riskInk"]]],[".efp-wt-acts",[0,1,0],[["display","grid"],["gap","8px"],["margin-top","10px"]]],[".efp-hp-ask-row strong",[0,1,1],[["text-wrap","balance"]]],[".efp-sh-order__what",[0,1,0],[["text-wrap","balance"]]],[".efp-sh-item h3",[0,1,1],[["text-wrap","balance"]]],[".efp-co-items strong",[0,1,1],[["text-wrap","balance"]]],[".efp-sh-subc strong",[0,1,1],[["text-wrap","balance"]]],[".efp-hp-ask-row small",[0,1,1],[["text-wrap","pretty"]]],[".efp-hp-tip small",[0,1,1],[["text-wrap","pretty"]]],[".efp-sh-carrier__wait",[0,1,0],[["text-wrap","pretty"]]],[".efp-sh-fine",[0,1,0],[["text-wrap","pretty"]]],[".efp-sh-sub2",[0,1,0],[["text-wrap","pretty"]]],[".efp-hp-next span",[0,1,1],[["text-wrap","pretty"]]],[".efp-hp-wait__text",[0,1,0],[["text-wrap","pretty"]]],[".efp-wt-err",[0,1,0],[["text-wrap","pretty"]]],[".efp-hp-foot-stack",[0,1,0],[["display","grid"],["gap","10px"]]],[".efp-hp",[0,1,0],[["background","$paper"]]],[".efp-ph-toast",[0,1,0],[["top","calc(112px - 50px)"]]],[".efp-hp-jump:not(:has(> img))",[0,1,1],[["grid-template-columns","minmax(0, 1fr) auto"]]],[".efp-hp-others",[0,1,0],[["list-style","none"],["margin-bottom","0"]]],[".efp-sheet__x",[0,1,0],[["position","relative"]]],[".efp-ph-sheet",[0,2,0],[["max-height","calc(100% - 8px)"],["padding","8px 20px 14px"]],1],[".efp-sheet__grab",[0,2,0],[["display","none"]],1],[".efp-co",[0,2,0],[["gap","8px"]],1],[".efp-co-rows li",[0,2,1],[["min-height","36px"]],1]];var RAPH_PLAN_CLASSES={root:"hp",head:"hp-head",eyebrow:"hp-eyebrow",serif:"serif",by:"hp-by",byOk:"hp-by__ok",need:"hp-need",needKicker:"hp-need__k",sources:"hp-srcs",source:"hp-src","source:dna":"hp-src--dna",needRisk:"hp-need__s",dot:"dot","dot:risk":"dot--risk",odds:"hp-odds",oddsKicker:"hp-odds__k",oddsNumbers:"hp-odds__n",tag:"cp-tag cp-tag--s",says:"hp-says",saysKicker:"hp-says__k",jump:"hp-jump",jumpGo:"hp-jump__go",steps:"hp-steps",stepsHead:"hp-steps__head",n:"hp-n",list:"hp-list hp-swipe",tip:"hp-tip",tipN:"hp-tip__n",section:"hp-sec",sectionTitle:"hp-sec__h",pick:"hp-pick",others:"hp-sec hp-others",other:"hp-pick",pickTop:"hp-pick__top",pickImage:"hp-pick__img",stars:"hp-stars",pickLine:"hp-pick__line",reviews:"hp-revs",review:"hp-rev",reviewStars:"hp-rev__s",score:"hp-score",why:"hp-why",mini:"hp-mini",chip:"hp-chip","chip:dna":"hp-chip--dna","chip:rec":"hp-chip--rec","chip:ask":"hp-chip--ask",dose:"hp-dose",ingredients:"hp-in",opts:"hp-opts",opt:"hp-opt","opt:once":"hp-opt--once",optText:"hp-opt__t",optTag:"hp-opt__tag",price:"hp-price",optPrice:"hp-opt__p",buy:"hp-buy",button:"emb-btn emb-btn--block",proof:"hp-proof",trust:"hp-trust",on:"hp-on",onIcon:"hp-on__ic",more:"hp-more",fine:"hp-fine",sign:"hp-sign","sign:urgent":"hp-sign--er",questionsKicker:"hp-qs__k",questions:"hp-qs",add:"hp-add",extras:"hp-xs",extrasTitle:"hp-eyebrow",extra:"hp-x","extra:kit":"hp-x--kit",extraIcon:"hp-x__ic",extraTitle:"","extraTitle:kit":"serif",extraPrice:"hp-x__p",extraGo:"hp-x__go",pageFine:"plan__fine",stateOn:"is-on",scrim:"ph-scrim",sheet:"ph-sheet",sheetGrab:"sheet__grab",sheetTop:"sheet__top",sheetKicker:"sheet__kicker",sheetClose:"sheet__x",srOnly:"sr-only",co:"co",coProd:"co-prod",coProdImage:"co-prod__img",coProdTitle:"co-prod__t",coOpts:"co-opts",coOpt:"co-opt",coHit:"co-opt__hit",radio:"bk__radio",coPrice:"co-opt__p",coWhen:"co-when",coKey:"co-k",coEvery:"co-every",coRows:"co-rows",buttonLarge:"emb-btn emb-btn--block emb-btn--lg",buttonGhost:"emb-btn emb-btn--ghost emb-btn--block",coFine:"co-fine",mgCancel:"mg-cancel",started:"ph-push",startedScroll:"ph-scroll",done:"bk__done",doneCheck:"bk__check",doneTitle:"serif bk__title",doneWhen:"bk__when",doneWho:"bk__who",next:"hp-next",nextIcon:"hp-next__ic",foot:"bk__foot",toast:"ph-toast",tipTop:"hp-tip__top","tip:y":"hp-tip--y","tip:c":"hp-tip--c","tip:g":"hp-tip--g","tip:r":"hp-tip--r",tools:"hp-tools",toolsEnd:"hp-tools__end",ordersButton:"hp-orders",cartButton:"hp-cart",cartCount:"hp-cart__n",askRow:"hp-ask-row",askRowIcon:"hp-ask-row__ic",wait:"hp-wait",waitTop:"hp-wait__top",waitTile:"emb-tile emb-tile--cyan",waitKey:"hp-wait__k",waitText:"hp-wait__text","next:in":"hp-next--in",track:"sh-track","track:kit":"sh-track--kit",trackDot:"sh-track__dot",shopTag:"cp-tag",trackStep:"","trackStep:done":"is-done","trackStep:now":"is-now",push:"ph-push",sheetBody:"sheet__body",shop:"sh",shopTitle:"serif sh-title",shopSub:"sh-sub2",shopKey:"sh-k",shopCard:"sh-card","shopCard:carrier":"sh-carrier",shopItems:"sh-items",shopItem:"sh-item",shopItemImage:"sh-item__img",shopItemPrice:"sh-item__p",shopItemActions:"sh-item__acts",stepper:"sh-step",shopRemove:"sh-rm",shopMode:"sh-mode",summary:"sh-sum",summaryRow:"","summaryRow:total":"is-total","summaryRow:renew":"is-renew",shopFine:"sh-fine","shopFine:center":"sh-fine--c",shopEmpty:"sh-empty",shopTile:"emb-tile emb-tile--cyan",shopLink:"sh-link",shopActions:"sh-acts",subCard:"sh-subc",orderList:"sh-orders",order:"sh-order",orderTop:"sh-order__top",orderPill:"sh-pill","orderPill:done":"sh-pill--done","orderPill:sub":"sh-pill--sub",orderNo:"sh-order__no",orderWhat:"sh-order__what",orderMeta:"sh-order__meta",orderPics:"sh-order__pics",carrierIcon:"sh-carrier__ic",carrierWait:"sh-carrier__wait",buttonSmall:"emb-btn emb-btn--ghost emb-btn--sm",coItems:"co-items","foot:shop":"sh-foot","foot:stack":"hp-foot-stack",weightField:"wt-f",weightInput:"wt-f__in",weightUnit:"wt-f__u",weightError:"wt-err",weightActions:"wt-acts"},prefix=classes=>classes.split(/\s+/).filter(c=>c!=="").map(c=>`${PLAN_CLASS_PREFIX}${c}`).join(" "),PLAN_DEFAULT_CLASS_NAMES=/* @__PURE__ */Object.freeze(Object.fromEntries(Object.entries(RAPH_PLAN_CLASSES).map(([part,classes])=>[part,prefix(classes)]))),PLAN_BEFORE_CLASS=`${PLAN_CLASS_PREFIX}before`,RAPH_PLAN_LIGHT=/* @__PURE__ */Object.freeze({black:"#000000",onInk:"#FFFFFF",wash:"rgba(38, 37, 35, 0.06)",scrim:"rgba(38, 37, 35, 0.38)",riskChip:"#FFD8D6",clearChip:"#DDEFC4"});function rgb(color){let c=color.trim(),h=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(c);if(h!==null){let x=h[1].length===3?h[1].split("").map(d=>d+d).join(""):h[1];return[0,2,4].map(k=>parseInt(x.slice(k,k+2),16))}let r=/^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/i.exec(c);return r===null?null:[Number(r[1]),Number(r[2]),Number(r[3])]}function mixPlanColor(color,share,ground){let a=rgb(color),b=rgb(ground);if(a===null||b===null)return ground;let to=k=>Math.round(a[k]*share+b[k]*(1-share)).toString(16).padStart(2,"0");return`#${to(0)}${to(1)}${to(2)}`.toUpperCase()}function planTokens(theme){let c=theme.color,v=v3Palette(theme),neutral={ink:v.ink,ink2:v.ink2,ink3:v.ink3,paper:v.paper,tile:v.tile,line:v.line,card:v.card,riskBg:v.riskBg,riskInk:v.riskInk,riskDot:v.riskDot,clearBg:v.clearBg,clearInk:v.clearInk,clearDot:v.clearDot,watchDot:v.watchDot,...v.dark?{black:c.text.primary,onInk:c.background,wash:mixPlanColor(c.text.primary,.08,c.surface),scrim:"rgba(0, 0, 0, 0.6)",riskChip:c.badgeBgCritical,clearChip:c.badgeBgPositive}:RAPH_PLAN_LIGHT},link=v.link,card=neutral.card;return{...neutral,primary:v.primary,onPrimary:v.onPrimary,accent:v.accent,accent4:mixPlanColor(c.accent,.17,card),accent3:mixPlanColor(c.accent,.25,card),accentChip:mixPlanColor(c.accent,.47,card),link:link,linkWash:mixPlanColor(link,.12,card),linkChip:mixPlanColor(link,.2,card),sans:faceCss(theme,"regular").fontFamily,serif:headingFaceCss(theme,"bold").fontFamily,mono:cssMonoFamily(theme.type.mono)}}var WIDE_QUERY="(min-width: 900px)",wideNow=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia(WIDE_QUERY).matches;function fill(value,tokens,dark,line){return value.replace(/\$(n_[0-9A-F]{6}|[a-zA-Z0-9]+)/g,(whole,key)=>key.startsWith("n_")?dark?line:`#${key.slice(2)}`:tokens[key]??whole)}function keyOf(selector){let depth=0,start=0;for(let i=0;i<selector.length;i+=1){let ch=selector[i];ch==="("?depth+=1:ch===")"?depth-=1:depth===0&&(ch===" "||ch===">"||ch==="+"||ch==="~")&&(start=i+1)}let last=selector.slice(start).replace(/\([^)]*\)/g,""),cls=/\.([\w-]+)/.exec(last);if(cls!==null)return`.${cls[1]}`;let tag=/^([a-z][a-z0-9]*)/i.exec(last);return tag===null?"*":tag[1].toLowerCase()}function compile(decls,tokens,dark){return decls.map(d=>[d[0],fill(d[1],tokens,dark,tokens.line??""),d[2]===1])}function buildIndex(theme){let tokens=planTokens(theme),dark=theme.brightness==="dark",index=/* @__PURE__ */new Map;PLAN_RULES.forEach(([selector,[a,b,c],decls,wide],order)=>{let key=keyOf(selector),list=index.get(key)??[];list.push({selector:selector,specificity:a*1e4+b*100+c,order:order,decls:compile(decls,tokens,dark),...wide===1?{wide:true}:{}}),index.set(key,list)});let motion=theme.motion.reducedMotion?[["transition-duration","0.01ms",true]]:[];return{index:index,context:{selector:"",specificity:-1,order:-1,decls:[...compile(PLAN_CONTEXT,tokens,dark),...motion]}}}var matches=(el,selector)=>{try{return el.matches(selector)}catch{return false}};function cascade(el,index,extra,wide){let hits=[...extra],keys=["*",el.tagName.toLowerCase(),...Array.from(el.classList,c=>`.${c}`)];for(let key of keys)for(let rule of index.get(key)??[])(wide||rule.wide!==true)&&matches(el,rule.selector)&&hits.push(rule);let entries=[];for(let rule of hits)for(let[prop,value,important]of rule.decls)entries.push({prop:prop,value:value,important:important,spec:rule.specificity,order:rule.order});entries.sort((x,y)=>Number(x.important)-Number(y.important)||x.spec-y.spec||x.order-y.order);let out=/* @__PURE__ */new Map;for(let e of entries)out.delete(e.prop),out.set(e.prop,[e.prop,e.value,e.important]);return[...out.values()]}var FIXED={selector:"",specificity:1e6,order:0,decls:[["position","fixed",true]]},NOOP=/* @__PURE__ */Object.freeze({root:()=>{},layer:()=>{}}),OBSERVED=["class","hidden","disabled","aria-checked","aria-pressed","aria-selected","aria-expanded","open","data-once"];function usePlanStyles(theme,rootStyle){let built=react.useMemo(()=>theme===null?null:buildIndex(theme),[theme]),state=react.useRef({roots:/* @__PURE__ */new Set,applied:/* @__PURE__ */new WeakMap,observer:null,rootEl:null,built:built,keep:/* @__PURE__ */new Set});state.current.built=built,state.current.keep=new Set(Object.keys(rootStyle??{}).map(k=>k.replace(/[A-Z]/g,m=>`-${m.toLowerCase()}`)));let paint=react.useCallback(root=>{let s=state.current;if(s.built===null||!root.isConnected)return;let{index:index,context:context}=s.built,fixed=root.parentElement!==null&&root.parentElement===root.ownerDocument.body&&root!==s.rootEl,tree=[root,...Array.from(root.querySelectorAll("*"))],wide=wideNow();for(let el of tree){let all=cascade(el,index,el===root?fixed?[context,FIXED]:[context]:[],wide),list=el===s.rootEl?all.filter(([p])=>!s.keep.has(p)):all,key=list.map(([p,v,i])=>`${p}:${v}${i?"!":""}`).join(";"),before=s.applied.get(el);if(before!==void 0&&before.key===key)continue;let style=el.style;if(style!==void 0){if(before!==void 0)for(let prop of before.props)style.removeProperty(prop);for(let[prop,value,important]of list)style.setProperty(prop,value,important?"important":"");s.applied.set(el,{key:key,props:list.map(([p])=>p)})}}},[]),paintAll=react.useCallback(()=>{let{roots:roots}=state.current;for(let root of[...roots])root.isConnected?paint(root):roots.delete(root)},[paint]),watch=react.useCallback(el=>{let s=state.current;s.built===null||typeof MutationObserver>"u"||(s.observer??=new MutationObserver(()=>paintAll()),s.observer.observe(el,{subtree:true,childList:true,attributes:true,attributeFilter:OBSERVED}))},[paintAll]),register=react.useCallback((el,isRoot)=>{let s=state.current;el===null||s.built===null||(isRoot&&(s.rootEl=el),s.roots.add(el),watch(el),paint(el))},[paint,watch]);react.useLayoutEffect(()=>{paintAll()},[built,paintAll]),react.useEffect(()=>()=>state.current.observer?.disconnect(),[]),react.useEffect(()=>{if(built===null||typeof window>"u"||typeof window.matchMedia!="function")return;let list=window.matchMedia(WIDE_QUERY),onChange=()=>paintAll();return list.addEventListener?.("change",onChange),()=>list.removeEventListener?.("change",onChange)},[built,paintAll]);let handles=react.useMemo(()=>({root:el=>register(el,true),layer:el=>register(el,false)}),[register]);return built===null?NOOP:handles}var ORDER_STEPS=["ordered","shipped","out_for_delivery","delivered"];function hostOrderView(o){let step=Math.max(0,ORDER_STEPS.indexOf(o.status));return{key:o.key,number:o.number??null,step:step,dates:o.dates??[],everfur:false,productId:null,items:o.items.map(x=>({title:x.title,quantity:x.quantity,price:x.price,imageUrl:x.imageUrl??null,icon:x.icon??null})),total:Math.round(o.items.reduce((n,x)=>n+x.price,0)*100)/100,currency:o.currency,subscriptionBox:o.subscriptionBox===true,carrier:o.carrier??null,trackingNumber:o.trackingNumber??null,trackingTag:o.trackingTag??null,trackingUrl:o.trackingUrl??null}}function formatShopDay(iso,locale,now=/* @__PURE__ */new Date){if(iso==null)return null;let dateOnly=/^\d{4}-\d{2}-\d{2}$/.test(iso),d=new Date(dateOnly?`${iso}T00:00:00Z`:iso);if(Number.isNaN(d.getTime()))return null;let tz=dateOnly?"UTC":void 0,year=Number(new Intl.DateTimeFormat("en-US",{year:"numeric",...tz?{timeZone:tz}:{}}).format(d));try{return new Intl.DateTimeFormat(locale??"en-US",year!==now.getFullYear()?{month:"short",day:"numeric",year:"numeric",...tz?{timeZone:tz}:{}}:{weekday:"short",month:"short",day:"numeric",...tz?{timeZone:tz}:{}}).format(d)}catch{return iso}}var img=(k,src,fallback="box")=>src?/* @__PURE__ */jsxRuntime.jsx("img",{alt:"",src:src}):k.icon(fallback);function shopSummary(k,total,opts={}){let{p:p,copy:copy}=k,renew=opts.renew??null;/* @__PURE__ */
124
+ return jsxRuntime.jsxs("ul",{...p("summary"),children:[
125
+ /* @__PURE__ */jsxRuntime.jsxs("li",{...p("summaryRow"),children:[
126
+ /* @__PURE__ */jsxRuntime.jsx("span",{children:copy.subtotal}),
127
+ /* @__PURE__ */jsxRuntime.jsx("span",{children:total})]}),copy.shippingValue===""?null:/* @__PURE__ */jsxRuntime.jsxs("li",{...p("summaryRow"),children:[
128
+ /* @__PURE__ */jsxRuntime.jsxs("span",{children:[copy.shipping,opts.tag&&copy.shippingTag!==""?/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[" ",
129
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("shopTag"),children:copy.shippingTag})]}):null]}),
130
+ /* @__PURE__ */jsxRuntime.jsx("span",{children:copy.shippingValue})]}),
131
+ /* @__PURE__ */jsxRuntime.jsxs("li",{...p("summaryRow","total"),children:[
132
+ /* @__PURE__ */jsxRuntime.jsx("span",{children:renew===null?copy.total:copy.dueToday}),
133
+ /* @__PURE__ */jsxRuntime.jsx("span",{children:total})]}),renew===null?null:/* @__PURE__ */jsxRuntime.jsxs("li",{...p("summaryRow","renew"),children:[
134
+ /* @__PURE__ */jsxRuntime.jsx("span",{children:copy.thenRenews(renew)}),
135
+ /* @__PURE__ */jsxRuntime.jsx("span",{children:copy.renewsEvery(renew)})]})]})}function shopTrack(k,steps,label,kind){let{p:p}=k;/* @__PURE__ */
136
+ return jsxRuntime.jsx("ol",{...p("track",kind),"aria-label":label,children:steps.map(s=>/* @__PURE__ */jsxRuntime.jsxs("li",{...p("trackStep",s.state==="done"?"done":s.state==="now"?"now":void 0),children:[k.trackLine===true?/* @__PURE__ */jsxRuntime.jsx("span",{className:PLAN_BEFORE_CLASS,"aria-hidden":"true"}):null,
137
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("trackDot"),"aria-hidden":"true",children:s.state==="done"?k.icon("check"):null}),
138
+ /* @__PURE__ */jsxRuntime.jsxs("span",{children:[
139
+ /* @__PURE__ */jsxRuntime.jsx("strong",{children:s.title}),s.detail?/* @__PURE__ */jsxRuntime.jsxs("small",{children:[s.detail,s.tag?/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[" ",
140
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("shopTag"),children:s.tag})]}):null]}):null]})]},s.title))})}function shopAskRow(k,iconName,title,body,onClick){let{p:p}=k;/* @__PURE__ */
141
+ return jsxRuntime.jsxs("button",{type:"button",...p("askRow"),onClick:onClick,children:[
142
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("askRowIcon"),children:k.icon(iconName)}),
143
+ /* @__PURE__ */jsxRuntime.jsxs("span",{children:[
144
+ /* @__PURE__ */jsxRuntime.jsx("strong",{children:title}),
145
+ /* @__PURE__ */jsxRuntime.jsx("small",{children:body})]}),k.icon("chev")]})}function shopWait(k,w,onAction){let{p:p}=k;/* @__PURE__ */
146
+ return jsxRuntime.jsxs("section",{...p("wait"),"aria-labelledby":"everfur-hp-wait",children:[
147
+ /* @__PURE__ */jsxRuntime.jsxs("div",{...p("waitTop"),children:[
148
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("waitTile"),children:k.icon(w.icon??"kit")}),
149
+ /* @__PURE__ */jsxRuntime.jsxs("div",{children:[
150
+ /* @__PURE__ */jsxRuntime.jsx("p",{...p("mini"),children:w.kicker}),
151
+ /* @__PURE__ */jsxRuntime.jsx("h3",{id:"everfur-hp-wait",...p("serif"),children:w.title})]})]}),w.track&&w.track.length>0?shopTrack(k,w.track,w.kicker,"kit"):null,w.heading?/* @__PURE__ */jsxRuntime.jsx("p",{...p("waitKey"),children:w.heading}):null,w.rows&&w.rows.length>0?/* @__PURE__ */jsxRuntime.jsx("ol",{...p("next","in"),children:w.rows.map(r=>/* @__PURE__ */jsxRuntime.jsxs("li",{children:[
152
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("nextIcon"),children:k.icon(r.icon)}),
153
+ /* @__PURE__ */jsxRuntime.jsxs("span",{children:[
154
+ /* @__PURE__ */jsxRuntime.jsx("small",{children:r.label}),
155
+ /* @__PURE__ */jsxRuntime.jsx("span",{children:r.text})]})]},r.label))}):null,w.note?/* @__PURE__ */jsxRuntime.jsxs("p",{...p("waitText"),children:[k.icon("chat"),w.note]}):null,w.action&&onAction?/* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...p("button"),onClick:onAction,children:w.action}):null]})}function shopCartBody(k,lines,subtotal,renew,petPrices,h){let{p:p,copy:copy}=k;return lines.length===0?/* @__PURE__ */jsxRuntime.jsx("div",{...p("shop"),children:/* @__PURE__ */jsxRuntime.jsxs("div",{...p("shopEmpty"),children:[
156
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("shopTile"),children:k.icon("cart")}),
157
+ /* @__PURE__ */jsxRuntime.jsx("h2",{...p("serif"),children:copy.cartEmptyTitle}),
158
+ /* @__PURE__ */jsxRuntime.jsx("p",{children:copy.cartEmptyBody(petPrices)}),
159
+ /* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...p("shopLink"),onClick:h.onOrders,children:copy.seeOrders})]})}):/* @__PURE__ */jsxRuntime.jsxs("div",{...p("shop"),children:[
160
+ /* @__PURE__ */jsxRuntime.jsx("div",{...p("shopCard"),children:/* @__PURE__ */jsxRuntime.jsx("ul",{...p("shopItems"),children:lines.map(x=>/* @__PURE__ */jsxRuntime.jsxs("li",{...p("shopItem"),children:[
161
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("shopItemImage"),children:img(k,x.imageUrl)}),
162
+ /* @__PURE__ */jsxRuntime.jsxs("div",{children:[
163
+ /* @__PURE__ */jsxRuntime.jsx("h3",{children:x.name}),
164
+ /* @__PURE__ */jsxRuntime.jsxs("p",{...p("shopItemPrice"),children:[x.price===null?null:/* @__PURE__ */jsxRuntime.jsx("b",{children:x.price}),x.was===null?null:/* @__PURE__ */jsxRuntime.jsx("s",{children:x.was}),x.note===null?null:/* @__PURE__ */jsxRuntime.jsx("small",{children:x.note})]}),x.modes===null?null:/* @__PURE__ */jsxRuntime.jsxs("div",{...p("shopMode"),role:"radiogroup","aria-label":x.modes.label,children:[
165
+ /* @__PURE__ */jsxRuntime.jsxs("button",{type:"button",role:"radio","aria-checked":x.subscription,onClick:()=>h.onMode(x.key,"sub"),children:[
166
+ /* @__PURE__ */jsxRuntime.jsx("span",{children:x.modes.sub.label}),
167
+ /* @__PURE__ */jsxRuntime.jsx("b",{children:x.modes.sub.price})]}),
168
+ /* @__PURE__ */jsxRuntime.jsxs("button",{type:"button",role:"radio","aria-checked":!x.subscription,onClick:()=>h.onMode(x.key,"once"),children:[
169
+ /* @__PURE__ */jsxRuntime.jsx("span",{children:x.modes.once.label}),
170
+ /* @__PURE__ */jsxRuntime.jsx("b",{children:x.modes.once.price})]})]}),x.every===null?null:/* @__PURE__ */jsxRuntime.jsx("div",{...p("coEvery"),role:"radiogroup","aria-label":copy.shipsEvery,children:x.every.options.map(d=>/* @__PURE__ */jsxRuntime.jsx("button",{type:"button",role:"radio","aria-checked":x.every?.selected===d,onClick:()=>h.onEvery(x.key,d),children:copy.days(d)},d))}),
171
+ /* @__PURE__ */jsxRuntime.jsxs("div",{...p("shopItemActions"),children:[x.subscription?null:/* @__PURE__ */jsxRuntime.jsxs("span",{...p("stepper"),role:"group","aria-label":copy.quantityLabel(x.name),children:[
172
+ /* @__PURE__ */jsxRuntime.jsx("button",{type:"button","aria-label":copy.fewer,disabled:x.quantity<=1||void 0,onClick:()=>h.onQuantity(x.key,-1),children:k.icon("minus")}),
173
+ /* @__PURE__ */jsxRuntime.jsx("output",{"aria-live":"polite",children:x.quantity}),
174
+ /* @__PURE__ */jsxRuntime.jsx("button",{type:"button","aria-label":copy.more,disabled:x.quantity>=x.maxQuantity||void 0,onClick:()=>h.onQuantity(x.key,1),children:k.icon("plus")})]}),
175
+ /* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...p("shopRemove"),onClick:()=>h.onRemove(x.key),children:copy.remove})]})]})]},x.key))})}),shopSummary(k,subtotal,{tag:true,renew:renew}),
176
+ /* @__PURE__ */jsxRuntime.jsx("div",{...p("shopActions"),children:/* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...p("shopLink"),onClick:h.onOrders,children:copy.seeOrders})})]})}function shopCartCheckout(k,lines,lineTotal,rows,subtotal,renew,go,fine,titleId){let{p:p,copy:copy}=k;/* @__PURE__ */
177
+ return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[
178
+ /* @__PURE__ */jsxRuntime.jsx("h3",{id:titleId,...p("srOnly"),children:copy.cartCheckoutTitle}),
179
+ /* @__PURE__ */jsxRuntime.jsxs("div",{...p("co"),children:[
180
+ /* @__PURE__ */jsxRuntime.jsx("ul",{...p("coItems"),children:lines.map(x=>/* @__PURE__ */jsxRuntime.jsxs("li",{children:[
181
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("orderPics"),children:/* @__PURE__ */jsxRuntime.jsx("span",{children:img(k,x.imageUrl)})}),
182
+ /* @__PURE__ */jsxRuntime.jsxs("span",{children:[
183
+ /* @__PURE__ */jsxRuntime.jsx("strong",{children:x.name}),
184
+ /* @__PURE__ */jsxRuntime.jsx("small",{children:x.subscription?copy.cartItemSubscription(x.lp):copy.cartItemQuantity(x.quantity)})]}),
185
+ /* @__PURE__ */jsxRuntime.jsx("b",{children:lineTotal(x)})]},x.key))}),rows.length>0?/* @__PURE__ */jsxRuntime.jsx("ul",{...p("coRows"),children:rows.map(r=>/* @__PURE__ */jsxRuntime.jsxs("li",{children:[k.icon(r.icon),
186
+ /* @__PURE__ */jsxRuntime.jsx("span",{children:r.label}),
187
+ /* @__PURE__ */jsxRuntime.jsx("b",{children:r.value})]},r.label))}):null,shopSummary(k,subtotal,{renew:renew}),
188
+ /* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...p("buttonLarge"),disabled:go.disabled||void 0,onClick:go.onClick,children:go.label}),fine===""?null:/* @__PURE__ */jsxRuntime.jsx("p",{...p("coFine"),children:fine})]})]})}function orderRow(k,o,fmt,day,onOpen){let{p:p,copy:copy}=k,done=o.step===3,last=o.dates[3]??null,when=done?day(last)===null?null:copy.deliveredOn(day(last)??""):last===null?null:copy.arrivesBy(day(last)??""),total=fmt(o.total,o.currency);/* @__PURE__ */
189
+ return jsxRuntime.jsx("li",{children:/* @__PURE__ */jsxRuntime.jsxs("button",{type:"button",...p("order"),onClick:()=>onOpen(o.key),children:[
190
+ /* @__PURE__ */jsxRuntime.jsxs("span",{children:[
191
+ /* @__PURE__ */jsxRuntime.jsxs("span",{...p("orderTop"),children:[
192
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("orderPill",done?"done":void 0),children:copy.orderSteps[o.step]}),o.subscriptionBox?/* @__PURE__ */jsxRuntime.jsx("span",{...p("orderPill","sub"),children:copy.subscriptionBox}):null,o.number===null?null:/* @__PURE__ */jsxRuntime.jsx("span",{...p("orderNo"),children:o.number})]}),
193
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("orderWhat"),children:andList(o.items.map(x=>x.title))}),
194
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("orderMeta"),children:[when,total].filter(x=>x!==null).join(" · ")}),
195
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("orderPics"),children:o.items.map(x=>/* @__PURE__ */jsxRuntime.jsx("span",{children:x.imageUrl?img(k,x.imageUrl):k.icon(x.icon??"box")},x.title))})]}),k.icon("chev")]})},o.key)}function shopOrdersBody(k,a){let{p:p,copy:copy}=k,s=a.subscription;return!a.loaded&&s===null?/* @__PURE__ */jsxRuntime.jsx("div",{...p("shop")}):a.loaded&&a.orders.length===0&&s===null?/* @__PURE__ */jsxRuntime.jsx("div",{...p("shop"),children:/* @__PURE__ */jsxRuntime.jsxs("div",{...p("shopEmpty"),children:[
196
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("shopTile"),children:k.icon("box")}),
197
+ /* @__PURE__ */jsxRuntime.jsx("h2",{...p("serif"),children:copy.ordersEmptyTitle}),
198
+ /* @__PURE__ */jsxRuntime.jsx("p",{children:copy.ordersEmptyBody(a.petPrices)}),
199
+ /* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...p("button","auto"),onClick:a.onBack,children:copy.startedDone})]})}):/* @__PURE__ */jsxRuntime.jsxs("div",{...p("shop"),children:[s===null?null:/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[
200
+ /* @__PURE__ */jsxRuntime.jsx("p",{...p("shopKey"),children:copy.herSubscription}),
201
+ /* @__PURE__ */jsxRuntime.jsxs("div",{...p("subCard"),children:[img(k,s.imageUrl),
202
+ /* @__PURE__ */jsxRuntime.jsxs("span",{children:[
203
+ /* @__PURE__ */jsxRuntime.jsx("strong",{children:s.name}),s.next===null?null:/* @__PURE__ */jsxRuntime.jsx("small",{children:copy.nextBox(s.next)}),
204
+ /* @__PURE__ */jsxRuntime.jsx("small",{children:copy.everyDays(s.every)})]}),
205
+ /* @__PURE__ */jsxRuntime.jsx("button",{type:"button",onClick:s.onManage,children:copy.manage})]})]}),a.orders.length>0?/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[
206
+ /* @__PURE__ */jsxRuntime.jsx("p",{...p("shopKey"),children:copy.ordersHeading(s!==null)}),
207
+ /* @__PURE__ */jsxRuntime.jsx("ul",{...p("orderList"),children:a.orders.map(o=>orderRow(k,o,a.fmt,a.day,a.onOpen))}),a.more?/* @__PURE__ */jsxRuntime.jsx(MoreOrders,{onMore:a.more.onMore,loading:a.more.loading,label:copy.moreOrders,k:k}):null,copy.ordersFine===""?null:/* @__PURE__ */jsxRuntime.jsx("p",{...p("shopFine"),children:copy.ordersFine})]}):null]})}function MoreOrders(props){let ref=react.useRef(null),onMore=react.useRef(props.onMore);return onMore.current=props.onMore,react.useEffect(()=>{let el=ref.current;if(el===null||typeof IntersectionObserver>"u")return;let io=new IntersectionObserver(entries=>{entries.some(e=>e.isIntersecting)&&onMore.current()});return io.observe(el),()=>io.disconnect()},[]),/* @__PURE__ */jsxRuntime.jsx("div",{ref:ref,"data-everfur-orders-more":"","aria-busy":props.loading||void 0,children:props.label===""?null:/* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...props.k.p("shopLink"),disabled:props.loading||void 0,onClick:()=>props.onMore(),children:props.label})})}function shopOrderBody(k,a){let{p:p,copy:copy}=k,o=a.order,done=o.step===3,last=o.dates[3]??null,sub2=done?a.day(last)===null?null:copy.deliveredOn(a.day(last)??""):last===null?null:copy.arrivesBy(a.day(last)??""),steps=(o.steps??(o.everfur?[0,1,2,3].slice(0,o.step+1):[0,1,2,3])).flatMap(i=>{let title=copy.orderSteps[i];if(title===void 0)return[];let d=a.day(o.dates[i]??null);return[i<=o.step?{title:title,state:"done",...d===null?{}:{detail:d}}:{title:title,state:"next",...d===null?{}:{detail:copy.expected(d)}}]}),linkLabel=o.trackingUrl===null?"":o.carrier!==null?copy.trackOn(o.carrier):copy.trackLink,total=a.fmt(o.total,o.currency)??"",fine=[copy.ordersFine,o.everfur?copy.orderNote:""].filter(x=>x!=="").join(" ");/* @__PURE__ */
208
+ return jsxRuntime.jsxs("div",{...p("shop"),children:[
209
+ /* @__PURE__ */jsxRuntime.jsx("h2",{...p("shopTitle"),children:done?copy.orderSteps[3]:copy.orderSteps[0]}),sub2===null?null:/* @__PURE__ */jsxRuntime.jsx("p",{...p("shopSub"),children:sub2}),
210
+ /* @__PURE__ */jsxRuntime.jsx("div",{...p("shopCard"),children:shopTrack(k,steps,copy.tracking)}),o.carrier===null&&o.trackingNumber===null?null:/* @__PURE__ */jsxRuntime.jsxs("div",{...p("shopCard","carrier"),children:[
211
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("carrierIcon"),children:k.icon("truck")}),
212
+ /* @__PURE__ */jsxRuntime.jsxs("span",{children:[o.carrier===null?null:/* @__PURE__ */jsxRuntime.jsx("strong",{children:o.carrier}),o.trackingNumber===null?null:/* @__PURE__ */jsxRuntime.jsxs("small",{children:[o.trackingNumber,o.trackingTag===null?null:/* @__PURE__ */jsxRuntime.jsx("span",{...p("shopTag"),children:o.trackingTag})]})]}),o.trackingNumber===null?copy.trackingByText===""?null:/* @__PURE__ */jsxRuntime.jsx("p",{...p("carrierWait"),children:copy.trackingByText}):o.trackingUrl===null||linkLabel===""?null:/* @__PURE__ */jsxRuntime.jsx("a",{...p("buttonSmall"),href:o.trackingUrl,target:"_blank",rel:"noopener noreferrer",children:linkLabel})]}),
213
+ /* @__PURE__ */jsxRuntime.jsx("p",{...p("shopKey"),children:copy.inThisOrder}),
214
+ /* @__PURE__ */jsxRuntime.jsx("div",{...p("shopCard"),children:/* @__PURE__ */jsxRuntime.jsx("ul",{...p("shopItems"),children:o.items.map(x=>/* @__PURE__ */jsxRuntime.jsxs("li",{...p("shopItem"),children:[
215
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("shopItemImage"),children:x.imageUrl?img(k,x.imageUrl):k.icon(x.icon??"box")}),
216
+ /* @__PURE__ */jsxRuntime.jsxs("div",{children:[
217
+ /* @__PURE__ */jsxRuntime.jsx("h3",{children:x.title}),
218
+ /* @__PURE__ */jsxRuntime.jsxs("p",{...p("shopItemPrice"),children:[
219
+ /* @__PURE__ */jsxRuntime.jsx("b",{children:a.fmt(x.price,o.currency)}),
220
+ /* @__PURE__ */jsxRuntime.jsx("small",{children:copy.orderItemLine(x.quantity,o.subscriptionBox)})]})]})]},x.title))})}),shopSummary(k,total),a.rows.length>0?/* @__PURE__ */jsxRuntime.jsx("ul",{...p("coRows"),children:a.rows.map(r=>/* @__PURE__ */jsxRuntime.jsxs("li",{children:[k.icon(r.icon),
221
+ /* @__PURE__ */jsxRuntime.jsx("span",{children:r.label}),
222
+ /* @__PURE__ */jsxRuntime.jsx("b",{children:r.value})]},r.label))}):null,a.onBuyAgain===null&&a.onHelp===null?null:/* @__PURE__ */jsxRuntime.jsxs("div",{...p("shopActions"),children:[a.onBuyAgain===null?null:/* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...p("buttonGhost"),onClick:a.onBuyAgain,children:copy.buyAgain}),a.onHelp===null?null:/* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...p("shopLink"),onClick:a.onHelp,children:copy.orderHelp})]}),fine===""?null:/* @__PURE__ */jsxRuntime.jsx("p",{...p("shopFine"),children:fine})]})}function andList(names){return names.length<=1?names[0]??"":`${names.slice(0,-1).join(", ")} and ${names[names.length-1]??""}`}var MAX_QUANTITY=5,MAX_CART_LINES=10,ORDERS_PAGE=20,LB_PER_KG=2.20462262;function HealthPlanFocus(props){let{design:design,item:item,petRef:petRef,petName:petName,locale:locale}=props,hostClasses=props.classNames!==void 0,classNames=props.classNames??PLAN_DEFAULT_CLASS_NAMES,theme=useEverfurTheme(),telemetry=useHealthPlanTelemetry(),petSex=props.petSex??null,trackingTexts=props.trackingTexts===true,copy=react.useMemo(()=>{let merged={...healthPlanFocusCopyFor({name:petName,sex:petSex}),...design.copy,...props.copy};return trackingTexts?merged:{...merged,trackingComesByText:"",trackingByText:""}},[design.copy,props.copy,petName,petSex,trackingTexts]),withTracking=line=>[line,copy.trackingComesByText].filter(x=>x!=="").join(" "),sub=useHealthPlanSubscription({petRef:petRef,productId:item.productId,enabled:props.subscriptions!==false,...props.subscriptionRepository?{repository:props.subscriptionRepository}:{},...props.lifecycle!==void 0?{lifecycle:props.lifecycle}:{},...props.refreshKey!==void 0?{refreshKey:props.refreshKey}:{}}),p=react.useCallback((part,kind)=>{let base3=classNames[part],mod=kind===void 0?void 0:classNames[`${part}:${kind}`],cls=[base3,mod].filter(c=>c!==void 0&&c!=="").join(" ");return cls===""?{}:{className:cls}},[classNames]),on=classNames.stateOn??"is-on",styles2=usePlanStyles(hostClasses?null:theme,props.style),icon=(name,cls)=>props.renderIcon?props.renderIcon(name,cls):/* @__PURE__ */jsxRuntime.jsx(DefaultIcon,{name:name,className:cls}),[mode,setMode]=react.useState("sub"),[added,setAdded]=react.useState(false),[extras,setExtras]=react.useState(()=>/* @__PURE__ */new Set),[sheet,setSheet]=react.useState(null),[started,setStarted]=react.useState(null),tapKey=react.useRef(null),[toast,setToast]=react.useState(null),everfur=props.checkout==="everfur_stripe",ownPages=useHealthPlanPageRepository(),pages=props.pageRepository??ownPages,checkoutTap=react.useRef(null),[redirecting,setRedirecting]=react.useState(false),pickRef=react.useRef(null),toastTimer=react.useRef(null);react.useEffect(()=>()=>{toastTimer.current!==null&&clearTimeout(toastTimer.current)},[]);let say=line=>{setToast(line),toastTimer.current!==null&&clearTimeout(toastTimer.current),toastTimer.current=setTimeout(()=>setToast(null),2600)},shop=props.shop??props.checkout==="everfur_stripe",[cart,setCart]=useCartLines(petRef,shop),[screens,setScreens]=react.useState([]),ownSubs=useHealthPlanSubscriptionRepository(),subsRepo=props.subscriptionRepository??ownSubs,[everfurOrders,setEverfurOrders]=react.useState({loaded:false,orders:[],next:null,loading:false}),[cartOff,setCartOff]=react.useState(false),[weightSaved,setWeightSaved]=react.useState(false),{runtime:runtime}=useEverfurContext(),[recent,setRecent]=react.useState([]),planItems=[item,...props.others??[]],seen=/* @__PURE__ */new Set,allOrders=[...[...recent,...everfurOrders.orders].filter(o=>seen.has(o.orderId)?false:(seen.add(o.orderId),true)).map(o=>everfurOrderView(o,planItems)),...(props.shopOrders??[]).map(hostOrderView)],orderNumber=key=>key===null?null:allOrders.find(o=>o.key===key)?.number??null,push=react.useCallback(screen=>{setSheet(null),setScreens(prev=>[...prev.filter(x=>x.kind!==screen.kind),screen])},[]),top=screens.length>0?screens[screens.length-1]:void 0,overlay=sheet!==null&&(sheet.kind==="checkout"||sheet.kind==="manage"||sheet.kind==="cartCheckout"||sheet.kind==="weight")?sheet.kind:started!==null?"started":top!==void 0?top.kind:null,under=started!==null?"started":top!==void 0?top.kind:null,orderTitle=top?.kind==="order"?top.key:null,onOverlayChange=props.onOverlayChange,closeOverlays=react.useCallback(()=>{setSheet(null),setStarted(null),setScreens([])},[]),back=react.useCallback(()=>{sheet!==null?setSheet(null):started!==null?setStarted(null):setScreens(prev=>prev.slice(0,-1))},[sheet,started]),title=(o=>{switch(o){case"started":return started?.kind==="once"?copy.placedHeader:copy.startedHeader;case"cart":return copy.cartTitle;case"placed":return copy.placedHeader;case"orders":return copy.orders;case"order":return copy.orderTitle(orderNumber(orderTitle));default:return}})(under),full=under==="started"||under==="cart"||under==="placed";react.useEffect(()=>{onOverlayChange?.(overlay,{close:closeOverlays,back:back,...title===void 0?{}:{title:title},...full?{full:full}:{}})},[overlay,onOverlayChange,closeOverlays,back,title,full]);let quote2=sub.phase==="ready"?sub.quote:null,subscription=sub.subscription,active=subscription?.status==="active",priced=(quote2?.boxPrice??item.price)!==null,canSubscribe=quote2!==null&&priced,offer=canSubscribe&&quote2.offerApplies&&subscription===null,every=active?subscription.intervalDays:canSubscribe?quote2.defaultIntervalDays:0,fmt=(n2,currency2)=>formatHealthPlanPriceWith(n2,currency2,{dropZeroCents:false,...props.priceFormat,...locale?{locale:locale}:{}}),currency=quote2?.currency??item.currency,boxPrice=quote2?.boxPrice??item.price,oneBox=quote2?.oneBox??null,prices=(days,productName=item.title)=>({petName:petName,productName:productName,first:fmt(offer&&quote2?quote2.firstBoxPrice:boxPrice,currency),box:fmt(boxPrice,currency),once:fmt(oneBox?.price??boxPrice,currency),onceDiscountPercent:oneBox?.discountPercent??0,intervalDays:days,discountPercent:offer&&quote2?quote2.firstBoxDiscountPercent:0,offer:offer}),pr=prices(every),buyMode=canSubscribe?mode:"once",day=iso=>formatHealthPlanDay(iso,locale),nextBoxDay=sub2=>day(sub2.timeline.find(step=>step.step==="next_box_ships")?.on??sub2.nextBoxDate),buyOnce=(target=item)=>{props.onBuy?props.onBuy(target):props.onCheckout?.([target])},others=props.others??[],pressOther=target=>{trackCheckoutStarted(telemetry,petRef,{count:1,subtotal:target.price,currency:target.price===null?null:target.currency}),everfur?redirect("one_box",null,target):buyOnce(target)},press=()=>{if(trackCheckoutStarted(telemetry,petRef,{count:1,subtotal:item.price,currency:item.price===null?null:item.currency}),!canSubscribe){everfur?redirect("one_box",null):buyOnce();return}tapKey.current=null,setSheet({kind:"checkout",mode:buyMode,every:quote2.defaultIntervalDays})},settle=res=>res.ok?(props.onSubscriptionChange?.(res.value),res.value):(say(res.error.displayMessage),null),redirect=async(purchase,intervalDays,target=item)=>{if(typeof window>"u"||redirecting)return;let sig=`${target.productId}:${purchase}:${intervalDays??""}`;checkoutTap.current?.sig!==sig&&(checkoutTap.current={sig:sig,key:mintTapKey()});let here=window.location.href;setRedirecting(true);let res=await pages.startCheckout(petRef,{productId:target.productId,purchase:purchase,...intervalDays===null?{}:{intervalDays:intervalDays},successUrl:checkoutReturnUrl(here,CHECKOUT_PARAM,STRIPE_SESSION_ID),cancelUrl:checkoutReturnUrl(here,CHECKOUT_CANCEL_PARAM,"1")},checkoutTap.current.key);if(setRedirecting(false),!res.ok){say(res.error.displayMessage);return}rememberCheckout(petRef,res.value.checkoutId),props.navigate?props.navigate(res.value.url):window.location.assign(res.value.url)},itemOf2=productId=>planItems.find(x=>x.productId===productId),inCart=productId=>cart.find(x=>x.productId===productId),isPick=productId=>productId===item.productId,lineSub=x=>isPick(x.productId)&&canSubscribe&&!active&&x.mode==="sub",unitOf=x=>isPick(x.productId)?lineSub(x)?offer&&quote2?quote2.firstBoxPrice:boxPrice:oneBox?.price??boxPrice:itemOf2(x.productId)?.price??null,lines=cart.filter(x=>itemOf2(x.productId)!==void 0),lineCount=lines.reduce((n2,x)=>n2+x.qty,0),cartTotal=Math.round(lines.reduce((n2,x)=>n2+(unitOf(x)??0)*x.qty,0)*100)/100,subLine=lines.find(lineSub)??null,cartOn=everfur&&!cartOff&&pages.startCartCheckout!==void 0,lineView=x=>{let it=itemOf2(x.productId)??item,subbed=lineSub(x),lp=isPick(x.productId)?prices(x.every,it.title):{...prices(0,it.title),offer:false},pick2=isPick(x.productId),unit=fmt(unitOf(x),pick2?currency:it.currency);return{key:x.productId,name:it.title,imageUrl:it.imageUrl??null,quantity:x.qty,subscription:subbed,price:unit,was:pick2?subbed?offer?lp.box:null:oneBox!==null&&boxPrice!==null&&oneBox.price<boxPrice?lp.box:null:null,note:pick2?subbed?copy.cartSubLine(lp):copy.cartOnceLine(lp,active):null,modes:pick2&&canSubscribe&&!active?{label:copy.cartModeLabel(it.title),sub:{label:copy.cartModeSubscribe(lp),price:lp.first},once:{label:copy.cartModeOnce(lp),price:lp.once}}:null,every:subbed&&quote2!==null?{options:quote2.intervalOptions,selected:x.every}:null,maxQuantity:cartOn&&!subbed?MAX_QUANTITY:1,lp:lp}},views=lines.map(lineView),renewPrices=subLine===null?null:prices(subLine.every),addToCart=(target,mode2)=>{if(inCart(target.productId)){push({kind:"cart"});return}let sub2=isPick(target.productId)&&canSubscribe&&!active&&mode2==="sub";setCart(prev=>[...prev,{productId:target.productId,mode:sub2?"sub":"once",every:quote2?.defaultIntervalDays??0,qty:1}]),say(copy.addedToCart(isPick(target.productId)?pr:{...prices(0,target.title),offer:false},sub2))},editLine=(productId,f2)=>setCart(prev=>prev.flatMap(x=>x.productId!==productId?[x]:f2(x)??[])),apart=cartOn&&subLine!==null&&lines.length>1,batch=apart?lines.filter(x=>!lineSub(x)):lines,batchTotal=Math.round(batch.reduce((n2,x)=>n2+(unitOf(x)??0)*x.qty,0)*100)/100,batchSub=batch.find(lineSub)??null,batchRenew=batchSub===null?null:prices(batchSub.every),cartReady=lines.length>0&&lines.every(x=>unitOf(x)!==null)&&(lines.length===1&&(lines[0]?.qty??0)===1?true:cartOn?batch.length>0&&batch.length<=MAX_CART_LINES:!everfur&&props.onCheckout!==void 0&&lines.every(x=>!lineSub(x))),redirectCart=async batchLines=>{if(typeof window>"u"||redirecting||pages.startCartCheckout===void 0)return;let sig=`cart:${batchLines.map(x=>`${x.productId}:${x.qty}:${lineSub(x)?x.every:""}`).join("|")}`;checkoutTap.current?.sig!==sig&&(checkoutTap.current={sig:sig,key:mintTapKey()});let here=window.location.href;setRedirecting(true);let res=await pages.startCartCheckout(petRef,{items:batchLines.map(x=>{let subbing=lineSub(x);return{productId:x.productId,purchase:subbing?"subscription":"one_box",...subbing?{intervalDays:x.every}:{},quantity:subbing?1:x.qty}}),successUrl:checkoutReturnUrl(here,CHECKOUT_PARAM,STRIPE_SESSION_ID),cancelUrl:checkoutReturnUrl(here,CHECKOUT_CANCEL_PARAM,"1")},checkoutTap.current.key);if(setRedirecting(false),!res.ok){let why=healthPlanCheckoutRefusal(res.error);if(why==="cart_disabled"){setCartOff(true),setSheet(null),say(copy.cartOneAtATime===""?res.error.displayMessage:copy.cartOneAtATime);return}if(why==="cart_has_subscription"){setSheet(null),say(copy.cartSubscriptionApart===""?res.error.displayMessage:copy.cartSubscriptionApart);return}say(res.error.displayMessage);return}rememberCheckout(petRef,res.value.checkoutId),props.navigate?props.navigate(res.value.url):window.location.assign(res.value.url)},placeCart=async()=>{if(!cartReady)return;if(everfur&&cartOn&&!(batch.length===1&&(batch[0]?.qty??0)===1)){batch.map(x=>itemOf2(x.productId)).filter(x=>x!==void 0);trackCheckoutStarted(telemetry,petRef,{count:batch.reduce((n2,x)=>n2+x.qty,0),subtotal:batchTotal,currency:currency}),await redirectCart(batch);return}let only=batch.length===1?batch[0]:lines.length===1?lines[0]:void 0;if(only===void 0){props.onCheckout?.(lines.map(x=>itemOf2(x.productId)).filter(x=>x!==void 0));return}let target=itemOf2(only.productId)??item,subbing=lineSub(only);if(trackCheckoutStarted(telemetry,petRef,{count:1,subtotal:unitOf(only),currency:isPick(only.productId)?currency:target.currency}),everfur){await redirect(subbing?"subscription":"one_box",subbing?only.every:null,target);return}if(subbing){let s=settle(await sub.subscribe(only.every));if(s===null)return;bought([s.productId]),setSheet(null),setScreens([]),setStarted({kind:"sub",sub:s});return}if(!isPick(only.productId)||oneBox===null){setSheet(null),buyOnce(target);return}tapKey.current===null&&(tapKey.current=mintTapKey());let res=await sub.buyOneBox(tapKey.current);if(!res.ok){say(res.error.displayMessage);return}tapKey.current=null,props.onOneBoxOrder?.(res.value),bought([res.value.productId]),placed([res.value])},ordersOpen=screens.some(x=>x.kind==="orders"||x.kind==="order");react.useEffect(()=>{if(!shop||!ordersOpen)return;let live=true;return ordersLive.current=true,readOrders(subsRepo,petRef,null).then(res=>{live&&(res.ok?setEverfurOrders({loaded:true,orders:res.value.orders,next:res.value.nextCursor,loading:false}):(setEverfurOrders(prev=>({...prev,loaded:true,loading:false})),say(res.error.displayMessage)))}),()=>{live=false,ordersLive.current=false}},[shop,ordersOpen,petRef,subsRepo]);let ordersLive=react.useRef(false),loadingMore=react.useRef(false),moreOrders=()=>{let cursor=everfurOrders.next;cursor===null||loadingMore.current||(loadingMore.current=true,setEverfurOrders(prev=>({...prev,loading:true})),readOrders(subsRepo,petRef,cursor).then(async res=>{let again=!res.ok&&invalidCursor(res.error)?await readOrders(subsRepo,petRef,null):null;if(loadingMore.current=false,!!ordersLive.current){if(again!==null){again.ok?setEverfurOrders({loaded:true,orders:again.value.orders,next:again.value.nextCursor,loading:false}):(setEverfurOrders(prev=>({...prev,next:null,loading:false})),say(again.error.displayMessage));return}if(res.ok){let page2=res.value;setEverfurOrders(prev=>({loaded:true,orders:[...prev.orders,...page2.orders.filter(o=>!prev.orders.some(x=>x.orderId===o.orderId))],next:page2.nextCursor,loading:false}))}else setEverfurOrders(prev=>({...prev,loading:false})),say(res.error.displayMessage)}}))},weightKnown=props.weightKnown!==false||weightSaved,[weightInput,setWeightInput]=react.useState(""),[weightError,setWeightError]=react.useState(""),[savingWeight,setSavingWeight]=react.useState(false),inKg=props.weightUnit==="kg",saveWeight=async()=>{let typed=Math.round(Number.parseFloat(weightInput.replace(",","."))*10)/10;if(inKg?!(typed>=.5&&typed<=90):!(typed>=1&&typed<=200)){setWeightError(inKg?copy.weightErrorKg:copy.weightError);return}let lb=inKg?Math.round(typed*LB_PER_KG*10)/10:typed,kg=inKg?typed:Math.round(lb/LB_PER_KG*100)/100;setSavingWeight(true);let res=props.onSaveWeight?await props.onSaveWeight(kg,lb):await runtime.updatePet(petRef,{weightKg:kg});if(setSavingWeight(false),!res.ok){setWeightError(res.error.displayMessage);return}setWeightError(""),setWeightSaved(true),setSheet(null),say(inKg?copy.weightSavedKg(String(typed)):copy.weightSaved(String(lb))),props.onWeightSaved?.(kg)},onSubChange=props.onSubscriptionChange,onOrder=props.onOneBoxOrder,refreshQuote=sub.refresh,placed=orders=>{let first=orders[0];if(first!==void 0){if(!shop){setStarted({kind:"once",order:first});return}setRecent(prev=>[...orders,...prev.filter(o=>!orders.some(x=>x.orderId===o.orderId))]),setSheet(null),setScreens([{kind:"placed",orders:orders}])}},bought=productIds=>{let gone=new Set(productIds.filter(x=>x!==null));gone.size>0&&setCart(prev=>prev.filter(x=>!gone.has(x.productId)))},unpaid=()=>{setSheet(null),shop&&setScreens([{kind:"cart"}]),copy.checkoutFailed!==""&&say(copy.checkoutFailed)},slow=()=>{shop&&(setSheet(null),setScreens([{kind:"orders"}]))},returned=react.useRef({onSubChange:onSubChange,onOrder:onOrder,refreshQuote:refreshQuote,placed:placed,bought:bought,unpaid:unpaid,slow:slow});returned.current={onSubChange:onSubChange,onOrder:onOrder,refreshQuote:refreshQuote,placed:placed,bought:bought,unpaid:unpaid,slow:slow},react.useEffect(()=>{if(!everfur||typeof window>"u")return;let params=new URL(window.location.href).searchParams;if(params.has(CHECKOUT_CANCEL_PARAM)){forgetCheckout(),stripCheckoutParams();return}let fromUrl=params.get(CHECKOUT_PARAM);if(fromUrl===null)return;let stored=recallCheckout(),checkoutId=stored?.checkoutId??(fromUrl===STRIPE_SESSION_ID||fromUrl===""?null:fromUrl);if(stored!==null&&stored.petRef!==petRef)return;let done=()=>{forgetCheckout(),stripCheckoutParams()};if(checkoutId===null){done();return}let live=true,timer=null,poll=async tries=>{let res=await pages.getCheckout(petRef,checkoutId);if(!live)return;if(res.ok&&res.value.status==="paid"){done();let{order:order,subscription:run}=res.value,orders=res.value.orders??(order===null?[]:[order]);if(run!==null)returned.current.onSubChange?.(run),setStarted({kind:"sub",sub:run});else if(orders.length>0){for(let o of orders)returned.current.onOrder?.(o);returned.current.placed(orders)}returned.current.bought([run?.productId??null,...orders.map(o=>o.productId)]),returned.current.refreshQuote();return}if((res.ok?res.value.status!=="pending":!res.error.retryable)||tries<=1){done(),res.ok?res.value.status==="failed"||res.value.status==="expired"?returned.current.unpaid():res.value.status==="pending"&&returned.current.slow():say(res.error.displayMessage);return}timer=setTimeout(()=>{poll(tries-1)},CHECKOUT_POLL_MS)};return poll(CHECKOUT_POLL_TRIES),()=>{live=false,timer!==null&&clearTimeout(timer)}},[everfur,petRef,pages]);let img2=(src,size)=>src?/* @__PURE__ */jsxRuntime.jsx("img",{src:src,alt:"",width:size,height:size}):null,tag=label=>label===void 0?null:/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[" ",
223
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("tag"),children:label})]}),n=k=>/* @__PURE__ */jsxRuntime.jsx("span",{...p("n"),children:k}),sec=1,f=design.focus,pk=design.pick,checkupBody=as=>{let c=design.checkup;return c===void 0?null:/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[as==="kicker"?/* @__PURE__ */jsxRuntime.jsx("h4",{id:"everfur-hp-qs",...p("questionsKicker"),children:c.title}):/* @__PURE__ */jsxRuntime.jsxs("h3",{id:"everfur-hp-qs",...p("sectionTitle"),children:[n(sec++),c.title]}),
224
+ /* @__PURE__ */jsxRuntime.jsx("ol",{...p("questions"),"aria-labelledby":"everfur-hp-qs",children:c.questions.map(q=>/* @__PURE__ */jsxRuntime.jsx("li",{children:q},q))}),
225
+ /* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...p("add"),"aria-pressed":added,onClick:()=>{let next=!added;setAdded(next),props.onAddToVisit?.(next,c.questions)},children:added?c.added:c.add})]})},kit={p:p,icon:icon,copy:copy,trackLine:!hostClasses},waiting=design.wait!==void 0,tools=shop?/* @__PURE__ */jsxRuntime.jsxs("div",{...p("tools"),children:[design.eyebrow?/* @__PURE__ */jsxRuntime.jsx("p",{...p("eyebrow"),children:design.eyebrow}):/* @__PURE__ */jsxRuntime.jsx("span",{}),
226
+ /* @__PURE__ */jsxRuntime.jsxs("span",{...p("toolsEnd"),children:[
227
+ /* @__PURE__ */jsxRuntime.jsxs("button",{type:"button",...p("ordersButton"),onClick:()=>push({kind:"orders"}),children:[icon("box"),copy.orders]}),
228
+ /* @__PURE__ */jsxRuntime.jsxs("button",{type:"button",...p("cartButton"),"aria-label":copy.cartLabel(lineCount),onClick:()=>push({kind:"cart"}),children:[icon("cart"),
229
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("cartCount"),hidden:lineCount===0,children:lineCount===0?null:lineCount})]})]})]}):null,pickInCart=shop&&inCart(item.productId)!==void 0,connectRow=props.recordsMissing===true&&props.onConnectRecords?shopAskRow(kit,"file",copy.connectRecordsTitle,copy.connectRecordsBody,props.onConnectRecords):null,page=/* @__PURE__ */jsxRuntime.jsxs("div",{ref:styles2.root,...mergeRoot(p("root"),props.className,props.style),children:[tools,
230
+ /* @__PURE__ */jsxRuntime.jsxs("header",{...p("head"),children:[
231
+ /* @__PURE__ */jsxRuntime.jsxs("div",{children:[design.eyebrow&&!shop?/* @__PURE__ */jsxRuntime.jsx("p",{...p("eyebrow"),children:design.eyebrow}):null,
232
+ /* @__PURE__ */jsxRuntime.jsx("h2",{...p("serif"),children:design.title}),design.subtitle?/* @__PURE__ */jsxRuntime.jsx("p",{children:design.subtitle}):null]}),img2(design.headImageUrl,56)]}),design.wait?shopWait(kit,design.wait,props.onWaitAction):null,design.byline&&!waiting?/* @__PURE__ */jsxRuntime.jsxs("p",{...p("by"),children:[img2(design.byline.imageUrl,40),
233
+ /* @__PURE__ */jsxRuntime.jsxs("span",{children:[
234
+ /* @__PURE__ */jsxRuntime.jsx("strong",{children:design.byline.name}),design.byline.role?/* @__PURE__ */jsxRuntime.jsx("small",{children:design.byline.role}):null]}),icon("shield",classNames.byOk)]}):null,f&&!waiting?/* @__PURE__ */jsxRuntime.jsxs("section",{...p("need"),"aria-label":f.title,children:[
235
+ /* @__PURE__ */jsxRuntime.jsxs("p",{...p("needKicker"),children:[f.kicker,f.sources&&f.sources.length>0?/* @__PURE__ */jsxRuntime.jsx("span",{...p("sources"),children:f.sources.map(s=>/* @__PURE__ */jsxRuntime.jsx("span",{...p("source",s.kind),children:s.label},s.label))}):null]}),
236
+ /* @__PURE__ */jsxRuntime.jsx("h3",{children:f.title}),f.risk?/* @__PURE__ */jsxRuntime.jsxs("p",{...p("needRisk"),children:[
237
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("dot",f.risk.kind)}),
238
+ /* @__PURE__ */jsxRuntime.jsxs("span",{children:[
239
+ /* @__PURE__ */jsxRuntime.jsx("b",{children:f.risk.lead}),f.risk.body?` ${f.risk.body}`:null]})]}):null,f.odds?/* @__PURE__ */jsxRuntime.jsxs("div",{...p("odds"),children:[
240
+ /* @__PURE__ */jsxRuntime.jsxs("p",{...p("oddsKicker"),children:[f.odds.label,tag(f.odds.tag)]}),
241
+ /* @__PURE__ */jsxRuntime.jsxs("p",{...p("oddsNumbers"),children:[
242
+ /* @__PURE__ */jsxRuntime.jsx("s",{children:f.odds.from}),icon("arrow"),
243
+ /* @__PURE__ */jsxRuntime.jsx("b",{children:f.odds.to}),f.odds.toLabel?/* @__PURE__ */jsxRuntime.jsx("span",{children:f.odds.toLabel}):null]})]}):null,f.quote&&f.quote.imageUrl?/* @__PURE__ */jsxRuntime.jsxs("blockquote",{...p("says"),children:[
244
+ /* @__PURE__ */jsxRuntime.jsx("img",{src:f.quote.imageUrl,alt:"",width:32,height:32}),
245
+ /* @__PURE__ */jsxRuntime.jsxs("p",{children:[
246
+ /* @__PURE__ */jsxRuntime.jsx("b",{children:f.quote.kicker})," ",f.quote.text,f.quote.tag?" ":null,tag(f.quote.tag)]})]}):f.quote?/* @__PURE__ */jsxRuntime.jsxs("blockquote",{...p("says"),children:[
247
+ /* @__PURE__ */jsxRuntime.jsxs("p",{...p("saysKicker"),children:[f.quote.kicker,tag(f.quote.tag)]}),
248
+ /* @__PURE__ */jsxRuntime.jsx("p",{...p("serif"),children:f.quote.text})]}):null,f.jump?/* @__PURE__ */jsxRuntime.jsxs("button",{type:"button",...p("jump"),onClick:()=>pickRef.current?.scrollIntoView({behavior:"smooth",block:"start"}),children:[img2(item.imageUrl,44),
249
+ /* @__PURE__ */jsxRuntime.jsxs("span",{children:[
250
+ /* @__PURE__ */jsxRuntime.jsx("small",{children:copy.jumpKicker(pr,active)}),
251
+ /* @__PURE__ */jsxRuntime.jsx("strong",{children:f.jump.title})]}),
252
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("jumpGo"),children:f.jump.go})]}):null]}):null,design.routine&&!waiting?/* @__PURE__ */jsxRuntime.jsxs("section",{...p("steps"),"aria-label":design.routine.title,children:[
253
+ /* @__PURE__ */jsxRuntime.jsxs("div",{...p("stepsHead"),children:[
254
+ /* @__PURE__ */jsxRuntime.jsxs("h3",{children:[n(sec++),design.routine.title]}),design.routine.label?/* @__PURE__ */jsxRuntime.jsx("p",{children:design.routine.label}):null]}),
255
+ /* @__PURE__ */jsxRuntime.jsx("ol",{...p("list"),children:design.routine.steps.map((s,i)=>/* @__PURE__ */jsxRuntime.jsxs("li",{...p("tip",s.tone),children:[
256
+ /* @__PURE__ */jsxRuntime.jsxs("span",{...p("tipTop"),children:[
257
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("tipN"),"aria-hidden":"true",children:i+1}),s.icon?icon(s.icon):null]}),
258
+ /* @__PURE__ */jsxRuntime.jsx("strong",{children:s.title}),s.body?/* @__PURE__ */jsxRuntime.jsx("small",{children:s.body}):null,s.source?/* @__PURE__ */jsxRuntime.jsx("em",{children:s.source}):null]},s.title))})]}):null,waiting?null:/* @__PURE__ */jsxRuntime.jsxs("section",{...p("section"),ref:pickRef,"aria-label":pk.title,children:[
259
+ /* @__PURE__ */jsxRuntime.jsxs("h3",{...p("sectionTitle"),children:[n(sec++),pk.title]}),
260
+ /* @__PURE__ */jsxRuntime.jsxs("article",{className:cx(classNames.pick,active?on:void 0),children:[
261
+ /* @__PURE__ */jsxRuntime.jsxs("div",{...p("pickTop"),children:[
262
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("pickImage"),children:item.imageUrl?/* @__PURE__ */jsxRuntime.jsx("img",{src:item.imageUrl,alt:"",width:64,height:64}):null}),
263
+ /* @__PURE__ */jsxRuntime.jsxs("div",{children:[
264
+ /* @__PURE__ */jsxRuntime.jsx("h4",{children:item.title}),pk.rating?/* @__PURE__ */jsxRuntime.jsxs("p",{...p("stars"),children:[icon("star"),pk.rating.value,pk.rating.label?/* @__PURE__ */jsxRuntime.jsx("span",{children:pk.rating.label}):null]}):null,pk.line??item.description?/* @__PURE__ */jsxRuntime.jsx("p",{...p("pickLine"),children:pk.line??item.description}):null]})]}),pk.reviews&&pk.reviews.items.length>0?/* @__PURE__ */jsxRuntime.jsx("div",{...p("reviews"),role:"group","aria-label":pk.reviews.label,children:pk.reviews.items.map(r=>{let stars=Math.max(1,Math.min(5,Math.round(r.stars)));/* @__PURE__ */
265
+ return jsxRuntime.jsxs("figure",{...p("review"),children:[
266
+ /* @__PURE__ */jsxRuntime.jsx("p",{...p("reviewStars"),role:"img","aria-label":`${stars} out of 5 stars`,children:Array.from({length:stars},(_,k)=>/* @__PURE__ */jsxRuntime.jsx(react.Fragment,{children:icon("star")},k))}),
267
+ /* @__PURE__ */jsxRuntime.jsx("blockquote",{children:`“${r.text}”`}),
268
+ /* @__PURE__ */jsxRuntime.jsx("figcaption",{children:r.by})]},`${r.by}${r.text}`)})}):null,pk.why?/* @__PURE__ */jsxRuntime.jsxs("div",{...p("why"),children:[
269
+ /* @__PURE__ */jsxRuntime.jsx("p",{...p("mini"),children:pk.why.title}),
270
+ /* @__PURE__ */jsxRuntime.jsx("ul",{children:pk.why.rows.map(r=>/* @__PURE__ */jsxRuntime.jsxs("li",{children:[
271
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("chip",r.kind),children:r.chip}),
272
+ /* @__PURE__ */jsxRuntime.jsxs("span",{children:[
273
+ /* @__PURE__ */jsxRuntime.jsx("strong",{children:r.title}),r.body?/* @__PURE__ */jsxRuntime.jsx("small",{children:r.body}):null]})]},r.title))}),pk.why.score?/* @__PURE__ */jsxRuntime.jsxs("p",{...p("score"),children:[
274
+ /* @__PURE__ */jsxRuntime.jsx("span",{children:pk.why.score.text}),
275
+ /* @__PURE__ */jsxRuntime.jsx("b",{"aria-hidden":"true",children:pk.why.score.value})]}):null]}):null,weightKnown?pk.dose?/* @__PURE__ */jsxRuntime.jsxs("div",{...p("dose"),children:[
276
+ /* @__PURE__ */jsxRuntime.jsx("p",{...p("mini"),children:pk.dose.title}),
277
+ /* @__PURE__ */jsxRuntime.jsx("ul",{children:pk.dose.stats.map(s=>/* @__PURE__ */jsxRuntime.jsxs("li",{children:[
278
+ /* @__PURE__ */jsxRuntime.jsx("b",{children:s.value}),
279
+ /* @__PURE__ */jsxRuntime.jsx("small",{children:s.label})]},`${s.value}${s.label}`))}),pk.dose.note?/* @__PURE__ */jsxRuntime.jsx("p",{children:pk.dose.note}):null]}):null:shopAskRow(kit,"pulse",copy.addWeightTitle,copy.addWeightBody,()=>{setWeightError(""),setSheet({kind:"weight"})}),pk.ingredients&&pk.ingredients.items.length>0?/* @__PURE__ */jsxRuntime.jsx("p",{...p("ingredients"),"aria-label":pk.ingredients.label??pk.ingredients.items.join(", "),children:pk.ingredients.items.map(x=>/* @__PURE__ */jsxRuntime.jsx("span",{children:x},x))}):null,canSubscribe?/* @__PURE__ */jsxRuntime.jsxs("div",{...p("opts"),role:"radiogroup","aria-label":copy.optionsLabel,children:[
280
+ /* @__PURE__ */jsxRuntime.jsxs("button",{type:"button",...p("opt"),role:"radio","aria-checked":buyMode==="sub",onClick:()=>setMode("sub"),children:[
281
+ /* @__PURE__ */jsxRuntime.jsxs("span",{...p("optText"),children:[offer?/* @__PURE__ */jsxRuntime.jsx("span",{...p("optTag"),children:copy.bestValue}):null,
282
+ /* @__PURE__ */jsxRuntime.jsx("strong",{children:copy.subscribe}),
283
+ /* @__PURE__ */jsxRuntime.jsx("small",{children:copy.subscribeLine(pr)})]}),
284
+ /* @__PURE__ */jsxRuntime.jsxs("span",{...p("price"),children:[offer?/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[
285
+ /* @__PURE__ */jsxRuntime.jsx("b",{children:pr.first}),
286
+ /* @__PURE__ */jsxRuntime.jsx("s",{children:pr.box})]}):/* @__PURE__ */jsxRuntime.jsx("b",{children:pr.box}),
287
+ /* @__PURE__ */jsxRuntime.jsx("small",{children:copy.priceLine(pr)})]})]}),
288
+ /* @__PURE__ */jsxRuntime.jsxs("button",{type:"button",...p("opt","once"),role:"radio","aria-checked":buyMode==="once",onClick:()=>setMode("once"),children:[
289
+ /* @__PURE__ */jsxRuntime.jsxs("span",{...p("optText"),children:[
290
+ /* @__PURE__ */jsxRuntime.jsx("strong",{children:copy.once}),
291
+ /* @__PURE__ */jsxRuntime.jsx("small",{children:copy.onceLine(pr)})]}),
292
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("optPrice"),children:pr.once})]})]}):null,
293
+ /* @__PURE__ */jsxRuntime.jsx("div",{...p("buy"),children:shop?/* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...p("button"),onClick:()=>addToCart(item,buyMode),disabled:sub.phase==="loading"&&props.subscriptions!==false||!priced&&!pickInCart?true:void 0,children:pickInCart?copy.viewCart:priced?copy.addToCart((buyMode==="sub"?pr.first:pr.once)??""):HEALTH_PLAN_COPY.addToCart}):/* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...p("button"),onClick:press,disabled:sub.phase==="loading"&&props.subscriptions!==false||redirecting||everfur&&!priced?true:void 0,children:buyMode==="sub"?copy.subscribe:priced?copy.buyOnce(pr):copy.buyOnceOption})}),pk.proof?/* @__PURE__ */jsxRuntime.jsxs("p",{...p("proof"),children:[icon("flame"),pk.proof]}):null,pk.trust&&pk.trust.length>0?/* @__PURE__ */jsxRuntime.jsx("ul",{...p("trust"),children:pk.trust.map(t=>/* @__PURE__ */jsxRuntime.jsxs("li",{children:[icon(t.icon),t.label]},t.label))}):null,
294
+ /* @__PURE__ */jsxRuntime.jsx("div",{...p("on"),hidden:!active,children:active?/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[
295
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("onIcon"),children:icon("check")}),
296
+ /* @__PURE__ */jsxRuntime.jsxs("span",{children:[
297
+ /* @__PURE__ */jsxRuntime.jsx("strong",{children:copy.subscribed}),
298
+ /* @__PURE__ */jsxRuntime.jsx("small",{children:copy.subscribedLine(pr,nextBoxDay(subscription))})]}),
299
+ /* @__PURE__ */jsxRuntime.jsx("button",{type:"button",onClick:()=>setSheet({kind:"manage"}),children:copy.manage})]}):null}),pk.more&&props.onMore?/* @__PURE__ */jsxRuntime.jsx("p",{...p("more"),children:/* @__PURE__ */jsxRuntime.jsx("button",{type:"button",onClick:()=>props.onMore?.(item),children:pk.more})}):null,pk.fine?/* @__PURE__ */jsxRuntime.jsx("p",{...p("fine"),children:pk.fine}):null]})]}),others.length>0&&!waiting?/* @__PURE__ */jsxRuntime.jsx("ul",{...p("others"),children:others.map((o,i)=>{let once=fmt(o.price,o.currency),op={petName:petName,productName:o.title,first:once,box:once,once:once,onceDiscountPercent:0,intervalDays:0,discountPercent:0,offer:false},otherId=`everfur-hp-other-${i}`;/* @__PURE__ */
300
+ return jsxRuntime.jsx("li",{children:/* @__PURE__ */jsxRuntime.jsxs("article",{...p("other"),"aria-labelledby":otherId,children:[
301
+ /* @__PURE__ */jsxRuntime.jsxs("div",{...p("pickTop"),children:[
302
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("pickImage"),children:o.imageUrl?/* @__PURE__ */jsxRuntime.jsx("img",{src:o.imageUrl,alt:"",width:64,height:64}):null}),
303
+ /* @__PURE__ */jsxRuntime.jsxs("div",{children:[props.showCategory===true&&o.category!==null?/* @__PURE__ */jsxRuntime.jsx("p",{...p("otherCategory"),children:o.category}):null,
304
+ /* @__PURE__ */jsxRuntime.jsx("h4",{id:otherId,children:o.title}),o.sample?/* @__PURE__ */jsxRuntime.jsx("span",{...p("tag"),children:HEALTH_PLAN_COPY.sample}):null,o.description?/* @__PURE__ */jsxRuntime.jsx("p",{...p("pickLine"),children:o.description}):null]})]}),
305
+ /* @__PURE__ */jsxRuntime.jsx("div",{...p("buy"),children:shop?/* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...p("button"),"aria-describedby":otherId,onClick:()=>addToCart(o,"once"),disabled:once===null||void 0,children:inCart(o.productId)?copy.viewCart:once===null?HEALTH_PLAN_COPY.addToCart:copy.addToCart(once)}):/* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...p("button"),"aria-describedby":otherId,onClick:()=>pressOther(o),disabled:redirecting||everfur&&once===null||void 0,children:once===null?copy.buyOnceOption:copy.buyOnce(op)})})]})},o.productId)})}):null,waiting?null:design.signs?/* @__PURE__ */jsxRuntime.jsxs("section",{...p("section"),"aria-label":design.signs.title,children:[
306
+ /* @__PURE__ */jsxRuntime.jsxs("h3",{...p("sectionTitle"),children:[n(sec++),design.signs.title]}),design.signs.items.map(s=>/* @__PURE__ */jsxRuntime.jsxs("div",{...p("sign",s.urgent?"urgent":void 0),children:[
307
+ /* @__PURE__ */jsxRuntime.jsxs("h4",{children:[s.urgent?icon("alert"):null,s.title]}),
308
+ /* @__PURE__ */jsxRuntime.jsx("p",{children:s.body})]},s.title)),checkupBody("kicker"),connectRow]}):design.checkup?/* @__PURE__ */jsxRuntime.jsxs("section",{...p("section"),"aria-label":design.checkup.title,children:[checkupBody("section"),connectRow]}):null,design.extras&&design.extras.items.length>0&&props.onExtra?/* @__PURE__ */jsxRuntime.jsxs("section",{...p("extras"),"aria-labelledby":"everfur-hp-extras",children:[
309
+ /* @__PURE__ */jsxRuntime.jsx("h3",{id:"everfur-hp-extras",...p("extrasTitle"),children:design.extras.title}),design.extras.items.map(x=>{let product=shop&&x.productId!==void 0?itemOf2(x.productId):void 0,on2=product!==void 0?inCart(product.productId)!==void 0:extras.has(x.key);/* @__PURE__ */
310
+ return jsxRuntime.jsxs("article",{...p("extra",x.kind),children:[x.imageUrl?/* @__PURE__ */jsxRuntime.jsx("img",{src:x.imageUrl,alt:"",width:64,height:64}):x.icon?/* @__PURE__ */jsxRuntime.jsx("span",{...p("extraIcon"),children:icon(x.icon)}):null,
311
+ /* @__PURE__ */jsxRuntime.jsxs("div",{children:[
312
+ /* @__PURE__ */jsxRuntime.jsx("h4",{...p("extraTitle",x.kind),children:x.title}),x.body?/* @__PURE__ */jsxRuntime.jsx("p",{children:x.body}):null,x.price?/* @__PURE__ */jsxRuntime.jsxs("p",{...p("extraPrice"),children:[
313
+ /* @__PURE__ */jsxRuntime.jsx("b",{children:x.price}),x.was?/* @__PURE__ */jsxRuntime.jsx("s",{children:x.was}):null,tag(x.tag)]}):null]}),
314
+ /* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...p("extraGo"),"aria-pressed":on2,onClick:()=>{if(product!==void 0){addToCart(product,"once");return}let next=!on2;setExtras(prev=>{let out=new Set(prev);return next?out.add(x.key):out.delete(x.key),out}),props.onExtra?.(x.key,next)},children:product!==void 0&&on2?copy.viewCart:on2?x.added:x.action})]},x.key)})]}):null,design.fine?/* @__PURE__ */jsxRuntime.jsx("p",{...p("pageFine"),children:design.fine}):null]}),layer=kind=>typeof document>"u"?null:props.overlayContainer?.(kind)??document.body,close=()=>setSheet(null),productBlock=line=>/* @__PURE__ */jsxRuntime.jsxs("div",{...p("coProd"),children:[
315
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("coProdImage"),children:item.imageUrl?/* @__PURE__ */jsxRuntime.jsx("img",{src:item.imageUrl,alt:""}):null}),
316
+ /* @__PURE__ */jsxRuntime.jsxs("div",{children:[
317
+ /* @__PURE__ */jsxRuntime.jsx("p",{...p("coProdTitle"),"aria-hidden":"true",children:item.title}),
318
+ /* @__PURE__ */jsxRuntime.jsx("p",{children:line})]})]}),intervals=(selected,pick2,labelId)=>/* @__PURE__ */jsxRuntime.jsx("div",{...p("coEvery"),role:"radiogroup","aria-labelledby":labelId,children:(quote2?.intervalOptions??subscription?.intervalOptions??[]).map(d=>/* @__PURE__ */jsxRuntime.jsx("button",{type:"button",role:"radio","aria-checked":selected===d,disabled:sub.busy||void 0,onClick:()=>pick2(d),children:copy.days(d)},d))}),titleId="everfur-hp-sheet-title",sheetBody=null,kicker="";if(sheet?.kind==="checkout"&&quote2!==null){kicker=copy.checkoutKicker;let isSub=sheet.mode==="sub",cp=prices(sheet.every),today=isSub?cp.first:cp.once,coFine=[isSub?copy.renews(cp):copy.onceFine,copy.checkoutNote].filter(x=>x!=="").join(" ");sheetBody=/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[
319
+ /* @__PURE__ */jsxRuntime.jsx("h3",{id:titleId,...p("srOnly"),children:copy.checkoutTitle(cp)}),
320
+ /* @__PURE__ */jsxRuntime.jsxs("div",{...p("co"),children:[productBlock(pk.checkoutLine??pk.line??item.description??""),
321
+ /* @__PURE__ */jsxRuntime.jsxs("div",{...p("coOpts"),role:"radiogroup","aria-label":copy.optionsLabel,children:[
322
+ /* @__PURE__ */jsxRuntime.jsxs("div",{className:cx(classNames.coOpt,isSub?on:void 0),children:[
323
+ /* @__PURE__ */jsxRuntime.jsxs("button",{type:"button",...p("coHit"),role:"radio","aria-checked":isSub,onClick:()=>setSheet({...sheet,mode:"sub"}),children:[
324
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("radio")}),
325
+ /* @__PURE__ */jsxRuntime.jsx("strong",{children:copy.subscribe}),
326
+ /* @__PURE__ */jsxRuntime.jsxs("span",{...p("coPrice"),children:[cp.first,offer?/* @__PURE__ */jsxRuntime.jsx("s",{children:cp.box}):null]}),offer?/* @__PURE__ */jsxRuntime.jsx("small",{children:copy.checkoutOffer(cp)}):null]}),isSub?/* @__PURE__ */jsxRuntime.jsxs("div",{...p("coWhen"),children:[
327
+ /* @__PURE__ */jsxRuntime.jsx("p",{...p("coKey"),id:"everfur-hp-co-every",children:copy.shipsEvery}),intervals(sheet.every,d=>setSheet({...sheet,every:d}),"everfur-hp-co-every")]}):null]}),
328
+ /* @__PURE__ */jsxRuntime.jsx("div",{className:cx(classNames.coOpt,isSub?void 0:on),children:/* @__PURE__ */jsxRuntime.jsxs("button",{type:"button",...p("coHit"),role:"radio","aria-checked":!isSub,onClick:()=>setSheet({...sheet,mode:"once"}),children:[
329
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("radio")}),
330
+ /* @__PURE__ */jsxRuntime.jsx("strong",{children:copy.buyOnceOption}),
331
+ /* @__PURE__ */jsxRuntime.jsxs("span",{...p("coPrice"),children:[cp.once,cp.onceDiscountPercent>0?/* @__PURE__ */jsxRuntime.jsx("s",{children:cp.box}):null]}),oneBox!==null?/* @__PURE__ */jsxRuntime.jsx("small",{children:copy.onceOffer(cp)}):null]})})]}),design.checkoutRows&&design.checkoutRows.length>0?/* @__PURE__ */jsxRuntime.jsx("ul",{...p("coRows"),children:design.checkoutRows.map(r=>/* @__PURE__ */jsxRuntime.jsxs("li",{children:[icon(r.icon),
332
+ /* @__PURE__ */jsxRuntime.jsx("span",{children:r.label}),
333
+ /* @__PURE__ */jsxRuntime.jsx("b",{children:r.value})]},r.label))}):null,
334
+ /* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...p("buttonLarge"),disabled:sub.busy||redirecting||void 0,onClick:async()=>{if(everfur){await redirect(isSub?"subscription":"one_box",isSub?sheet.every:null);return}if(!isSub){if(oneBox===null){close(),buyOnce();return}tapKey.current===null&&(tapKey.current=mintTapKey());let res=await sub.buyOneBox(tapKey.current);if(!res.ok){say(res.error.displayMessage);return}tapKey.current=null,props.onOneBoxOrder?.(res.value),setSheet(null),placed([res.value]);return}let s=settle(await sub.subscribe(sheet.every));s!==null&&(setSheet(null),setStarted({kind:"sub",sub:s}))},children:copy.checkoutGo(cp,isSub,today??"")}),coFine===""?null:/* @__PURE__ */jsxRuntime.jsx("p",{...p("coFine"),children:coFine})]})]})}else if(sheet?.kind==="manage"&&subscription!==null&&active){kicker=copy.manageKicker;let mp=prices(subscription.intervalDays);sheetBody=/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[
335
+ /* @__PURE__ */jsxRuntime.jsx("h3",{id:titleId,...p("srOnly"),children:copy.manageTitle(mp)}),
336
+ /* @__PURE__ */jsxRuntime.jsxs("div",{...p("co"),children:[productBlock(copy.subscribedLine(mp,nextBoxDay(subscription))),
337
+ /* @__PURE__ */jsxRuntime.jsxs("div",{children:[
338
+ /* @__PURE__ */jsxRuntime.jsx("p",{...p("coKey"),id:"everfur-hp-mg-every",children:copy.shipsEvery}),intervals(subscription.intervalDays,d=>{d!==subscription.intervalDays&&sub.changeInterval(d).then(settle)},"everfur-hp-mg-every")]}),
339
+ /* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...p("buttonGhost"),disabled:sub.busy||void 0,onClick:async()=>{let s=settle(await sub.skip());s!==null&&say(copy.skipped(prices(s.intervalDays),nextBoxDay(s)))},children:copy.skip}),
340
+ /* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...p("mgCancel"),disabled:sub.busy||void 0,onClick:async()=>{settle(await sub.cancel())!==null&&(setSheet(null),setMode("sub"),say(copy.cancelled(mp)))},children:copy.cancel})]})]})}if(sheet?.kind==="cartCheckout"&&batch.length>0){kicker=copy.checkoutKicker;let total=fmt(batchTotal,currency)??"";sheetBody=shopCartCheckout(kit,batch.map(lineView),x=>{let line=lines.find(l=>l.productId===x.key),unit=line===void 0?null:unitOf(line);return unit===null||line===void 0?null:fmt(Math.round(unit*line.qty*100)/100,isPick(line.productId)?currency:itemOf2(line.productId)?.currency??currency)},design.checkoutRows??[],total,batchRenew,{label:copy.placeOrder(total,batchSub!==null),disabled:!cartReady||sub.busy||redirecting,onClick:()=>{placeCart()}},[copy.cartFine(batchRenew),apart?copy.cartSubscriptionApart:"",copy.checkoutNote].filter(x=>x!=="").join(" "),titleId)}else sheet?.kind==="weight"&&(kicker=copy.weightKicker,sheetBody=/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[
341
+ /* @__PURE__ */jsxRuntime.jsx("h3",{id:titleId,...p("serif"),children:copy.weightTitle(pr)}),
342
+ /* @__PURE__ */jsxRuntime.jsx("div",{...p("sheetBody"),children:/* @__PURE__ */jsxRuntime.jsx("p",{children:copy.weightBody})}),
343
+ /* @__PURE__ */jsxRuntime.jsxs("label",{...p("weightField"),htmlFor:"everfur-hp-weight",children:[copy.weightField,
344
+ /* @__PURE__ */jsxRuntime.jsxs("span",{...p("weightInput"),children:[
345
+ /* @__PURE__ */jsxRuntime.jsx("input",{id:"everfur-hp-weight",type:"number",inputMode:"decimal",min:inKg?.5:1,max:inKg?90:200,step:.1,placeholder:"0.0",autoFocus:true,value:weightInput,onChange:e=>setWeightInput(e.target.value),onKeyDown:e=>{e.key==="Enter"&&saveWeight()}}),
346
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("weightUnit"),children:inKg?copy.weightUnitKg:copy.weightUnit})]})]}),
347
+ /* @__PURE__ */jsxRuntime.jsx("p",{...p("weightError"),"aria-live":"polite",children:weightError}),
348
+ /* @__PURE__ */jsxRuntime.jsx("div",{...p("weightActions"),children:/* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...p("button"),disabled:savingWeight||void 0,onClick:()=>{saveWeight()},children:copy.weightSave})})]}));let sheetNode=sheetBody===null?null:/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[
349
+ /* @__PURE__ */jsxRuntime.jsx("div",{ref:styles2.layer,className:cx(classNames.scrim,on),onClick:close}),
350
+ /* @__PURE__ */jsxRuntime.jsxs("section",{ref:styles2.layer,className:cx(classNames.sheet,on),role:"dialog","aria-modal":"true","aria-labelledby":titleId,children:[
351
+ /* @__PURE__ */jsxRuntime.jsx("div",{...p("sheetGrab"),"aria-hidden":"true"}),
352
+ /* @__PURE__ */jsxRuntime.jsxs("div",{...p("sheetTop"),children:[
353
+ /* @__PURE__ */jsxRuntime.jsx("p",{...p("sheetKicker"),children:kicker}),
354
+ /* @__PURE__ */jsxRuntime.jsx(AutoFocusButton,{...p("sheetClose"),"aria-label":copy.close,onClick:close,children:icon("x")})]}),
355
+ /* @__PURE__ */jsxRuntime.jsx("div",{children:sheetBody})]})]}),startedNode=null;if(started!==null){let run=started.kind==="sub"?started.sub:null,boughtId=started.kind==="sub"?started.sub.productId:started.order.productId,bought2=[item,...others].find(x=>x.productId===boughtId)??item,sp=prices(run?.intervalDays??every,bought2.title),label=(step,first)=>step.step==="first_box_ships"&&first?copy.tomorrow:day(step.on)??step.on,rows=run===null?[{icon:"truck",when:copy.tomorrow,what:withTracking(copy.firstBoxShips)}]:run.timeline.map((step,i)=>{switch(step.step){case"first_box_ships":return{icon:"truck",when:label(step,i===0),what:withTracking(copy.firstBoxShips)};case"checkin":return{icon:"chat",when:label(step,false),what:copy.checkin(pk.checkin??null)};case"refill_reminder":return{icon:"repeat",when:label(step,false),what:copy.refill};default:return{icon:"calendar",when:label(step,false),what:copy.nextBoxShips(sp)}}}),title2=run===null?copy.orderedTitle(sp):copy.startedTitle(sp),startedWhat=copy.startedWhat(sp).trim();startedNode=/* @__PURE__ */jsxRuntime.jsxs("section",{ref:styles2.layer,className:cx(classNames.started,on),"aria-label":title2,children:[
356
+ /* @__PURE__ */jsxRuntime.jsx("div",{...p("startedScroll"),children:/* @__PURE__ */jsxRuntime.jsxs("div",{...p("done"),children:[
357
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("doneCheck"),children:icon("check")}),
358
+ /* @__PURE__ */jsxRuntime.jsx("h2",{...p("doneTitle"),children:title2}),startedWhat===""?null:/* @__PURE__ */jsxRuntime.jsx("p",{...p("doneWhen"),children:startedWhat}),copy.startedNote?/* @__PURE__ */jsxRuntime.jsx("p",{...p("doneWho"),children:copy.startedNote}):null,
359
+ /* @__PURE__ */jsxRuntime.jsx("ol",{...p("next"),"aria-label":copy.startedSteps,children:rows.map(r=>/* @__PURE__ */jsxRuntime.jsxs("li",{children:[
360
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("nextIcon"),children:icon(r.icon)}),
361
+ /* @__PURE__ */jsxRuntime.jsxs("span",{children:[
362
+ /* @__PURE__ */jsxRuntime.jsx("small",{children:r.when}),
363
+ /* @__PURE__ */jsxRuntime.jsx("span",{children:r.what})]})]},`${r.icon}${r.when}`))})]})}),
364
+ /* @__PURE__ */jsxRuntime.jsx("div",{...p("foot"),children:/* @__PURE__ */jsxRuntime.jsx(AutoFocusButton,{...p("button"),onClick:()=>setStarted(null),children:copy.startedDone})})]})}let screenNode=null;if(top!==void 0&&started===null){let day2=iso=>formatShopDay(iso,locale),money2=(n2,cur)=>fmt(n2,cur),toPlan=()=>closeOverlays(),toOrders=()=>push({kind:"orders"}),label="",body=null,foot=null;if(top.kind==="cart")label=copy.cartTitle,body=shopCartBody(kit,views,fmt(cartTotal,currency)??"",renewPrices,pr,{onQuantity:(key,by)=>editLine(key,x=>({...x,qty:Math.max(1,Math.min(cartOn&&!lineSub(x)?MAX_QUANTITY:1,x.qty+by))})),onRemove:key=>{editLine(key,()=>null),say(copy.removedFromCart(itemOf2(key)?.title??""))},onMode:(key,m)=>editLine(key,x=>({...x,mode:m,qty:1})),onEvery:(key,d)=>editLine(key,x=>({...x,every:d})),onOrders:toOrders}),foot=views.length===0?/* @__PURE__ */jsxRuntime.jsx("div",{...p("foot"),children:/* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...p("button"),onClick:toPlan,children:copy.startedDone})}):/* @__PURE__ */jsxRuntime.jsxs("div",{...p("foot","shop"),children:[
365
+ /* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...p("buttonLarge"),disabled:!cartReady||void 0,onClick:()=>setSheet({kind:"cartCheckout"}),children:copy.checkoutCart(fmt(cartTotal,currency)??"")}),!cartReady&&copy.cartOneAtATime!==""?/* @__PURE__ */jsxRuntime.jsx("p",{...p("shopFine","center"),children:copy.cartOneAtATime}):null]});else if(top.kind==="orders"||top.kind==="order"){let subCard=subscription!==null&&active?{name:subscription.title??item.title,imageUrl:item.imageUrl??null,next:nextBoxDay(subscription),every:subscription.intervalDays,onManage:()=>setSheet({kind:"manage"})}:null;if(top.kind==="orders")label=copy.orders,body=shopOrdersBody(kit,{subscription:subCard,orders:allOrders,loaded:everfurOrders.loaded,fmt:money2,day:day2,onOpen:key=>push({kind:"order",key:key}),onBack:toPlan,petPrices:pr,more:everfurOrders.next===null?null:{onMore:moreOrders,loading:everfurOrders.loading}});else{let order=allOrders.find(o=>o.key===top.key);label=copy.orderTitle(order?.number??null);let again=order?.everfur===true&&order.productId!==null?itemOf2(order.productId):void 0;body=order===void 0?null:shopOrderBody(kit,{order:order,fmt:money2,day:day2,rows:(design.checkoutRows??[]).map(r=>r.label===PAY_WITH?{...r,label:copy.paidWith}:r),onBuyAgain:again===void 0?null:()=>addToCart(again,"once"),onHelp:props.onOrderHelp?()=>props.onOrderHelp?.(order.key):null})}}else{let placedOrders=top.orders,first=placedOrders[0],op=prices(every,first?.title??(first?itemOf2(first.productId)?.title:void 0)??item.title),one=xs=>{let known=[...new Set(xs.filter(x=>x!=null))];return known.length===1?known[0]??null:null},placedNo=one(placedOrders.map(o=>o.tracking?.orderNumber)),arrives=placedOrders.length>0&&placedOrders.every(o=>o.tracking?.estimatedDelivery)?one(placedOrders.map(o=>o.tracking?.estimatedDelivery)):null,arrivesDay=day2(arrives),placedCurrency=one(placedOrders.map(o=>o.currency)),placedTotal=placedCurrency===null?null:fmt(Math.round(placedOrders.reduce((n2,o)=>n2+(o.total??o.price),0)*100)/100,placedCurrency);label=copy.placedHeader,body=/* @__PURE__ */jsxRuntime.jsxs("div",{...p("done"),children:[
366
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("doneCheck"),children:icon("check")}),
367
+ /* @__PURE__ */jsxRuntime.jsx("h2",{...p("doneTitle"),children:copy.orderedTitle(op)}),arrivesDay===null?null:/* @__PURE__ */jsxRuntime.jsx("p",{...p("doneWhen"),children:copy.arrivesBy(arrivesDay)}),placedNo===null?null:/* @__PURE__ */jsxRuntime.jsx("p",{...p("doneWho"),children:copy.orderTitle(placedNo)}),
368
+ /* @__PURE__ */jsxRuntime.jsxs("ol",{...p("next"),"aria-label":copy.placedSteps,children:[placedOrders.map(o=>{let it=itemOf2(o.productId);/* @__PURE__ */
369
+ return jsxRuntime.jsxs("li",{children:[
370
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("nextIcon"),children:it?.imageUrl?/* @__PURE__ */jsxRuntime.jsx("img",{alt:"",src:it.imageUrl}):icon("box")}),
371
+ /* @__PURE__ */jsxRuntime.jsxs("span",{children:[
372
+ /* @__PURE__ */jsxRuntime.jsx("small",{children:copy.cartItemQuantity(o.quantity??1)}),
373
+ /* @__PURE__ */jsxRuntime.jsx("span",{children:o.title??it?.title??""})]})]},o.orderId)}),
374
+ /* @__PURE__ */jsxRuntime.jsxs("li",{children:[
375
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("nextIcon"),children:icon("truck")}),
376
+ /* @__PURE__ */jsxRuntime.jsxs("span",{children:[
377
+ /* @__PURE__ */jsxRuntime.jsx("small",{children:copy.tomorrow}),
378
+ /* @__PURE__ */jsxRuntime.jsx("span",{children:withTracking(copy.placedShips)})]})]}),arrivesDay===null?null:/* @__PURE__ */jsxRuntime.jsxs("li",{children:[
379
+ /* @__PURE__ */jsxRuntime.jsx("span",{...p("nextIcon"),children:icon("calendar")}),
380
+ /* @__PURE__ */jsxRuntime.jsxs("span",{children:[
381
+ /* @__PURE__ */jsxRuntime.jsx("small",{children:arrivesDay}),
382
+ /* @__PURE__ */jsxRuntime.jsx("span",{children:copy.placedArrives})]})]})]}),placedOrders.length>1&&placedTotal!==null?shopSummary(kit,placedTotal):null,copy.startedNote?/* @__PURE__ */jsxRuntime.jsx("p",{...p("shopFine","center"),children:copy.startedNote}):null]}),foot=/* @__PURE__ */jsxRuntime.jsxs("div",{...p("foot","stack"),children:[
383
+ /* @__PURE__ */jsxRuntime.jsx(AutoFocusButton,{...p("button"),onClick:()=>setScreens(placedOrders.length===1&&first!==void 0?[{kind:"order",key:first.orderId}]:[{kind:"orders"}]),children:placedOrders.length===1?copy.viewOrder:copy.seeOrders}),
384
+ /* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...p("buttonGhost"),onClick:toPlan,children:copy.startedDone})]})}screenNode=/* @__PURE__ */jsxRuntime.jsxs("section",{ref:styles2.layer,className:cx(classNames.push??classNames.started,on),"aria-label":label,children:[
385
+ /* @__PURE__ */jsxRuntime.jsx("div",{...p("startedScroll"),children:body}),foot]})}let toastNode=toast===null?null:/* @__PURE__ */jsxRuntime.jsx("div",{ref:styles2.layer,className:cx(classNames.toast,on),role:"status","aria-live":"polite",children:toast}),portal=(node,kind)=>{if(node===null)return null;let into=layer(kind);return into===null?null:reactDom.createPortal(node,into)};/* @__PURE__ */
386
+ return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[page,portal(sheetNode,"sheet"),portal(startedNode,"started"),portal(screenNode,"started"),portal(toastNode,"toast")]})}function AutoFocusButton(props){let ref=react.useRef(null);return react.useEffect(()=>{ref.current?.focus({preventScroll:true})},[]),/* @__PURE__ */jsxRuntime.jsx("button",{ref:ref,type:"button",...props})}var PAY_WITH="Pay with",TRACK_STEP={ordered:0,shipped:1,delivered:3};function everfurOrderView(o,items){let it=items.find(x=>x.productId===o.productId),t=o.tracking,quantity=o.quantity??1,total=o.total??Math.round(o.price*quantity*100)/100,step=t===void 0?0:TRACK_STEP[t.status];return{key:o.orderId,number:t?.orderNumber??null,step:step,dates:t===void 0?[o.createdAt??null]:[o.createdAt??null,t.shippedAt,null,step===3?null:t.estimatedDelivery],...t===void 0?{}:{steps:[0,1,3]},everfur:true,productId:o.productId,items:[{title:o.title??it?.title??"",quantity:quantity,price:total,imageUrl:it?.imageUrl??null,icon:null}],total:total,currency:o.currency,subscriptionBox:false,carrier:t?.carrier??null,trackingNumber:t?.trackingNumber??null,trackingTag:null,trackingUrl:t?.trackingUrl??null}}async function readOrders(repo,petRef,cursor){if(repo.listOneBoxOrderPage!==void 0)return repo.listOneBoxOrderPage(petRef,{limit:ORDERS_PAGE,...cursor===null?{}:{cursor:cursor}});if(cursor!==null||repo.listOneBoxOrders===void 0)return{ok:true,value:{orders:[],nextCursor:null}};let res=await repo.listOneBoxOrders(petRef);return res.ok?{ok:true,value:{orders:res.value,nextCursor:null}}:res}function invalidCursor(error){if(error.httpStatus!==422)return false;let raw=error.raw!==null&&typeof error.raw=="object"?error.raw:null;return[error.reasonCode,error.wireMessage,raw?.detail,raw?.message].some(x=>x==="invalid_cursor")}var CART_STORE="everfur.healthPlan.cart";function useCartLines(petRef,enabled){let[lines,setLines]=react.useState(()=>enabled?readCart(petRef):[]),update=react.useCallback(f=>{setLines(prev=>{let next=f(prev);return writeCart(petRef,next),next})},[petRef]);return[lines,update]}function readCart(petRef){try{let raw=JSON.parse(window.sessionStorage.getItem(`${CART_STORE}:${petRef}`)??"[]");return Array.isArray(raw)?raw.flatMap(x=>{if(x===null||typeof x!="object")return[];let o=x,productId=o.productId,mode=o.mode,every=o.every,qty=o.qty;return typeof productId!="string"||mode!=="sub"&&mode!=="once"||typeof every!="number"||typeof qty!="number"?[]:[{productId:productId,mode:mode,every:every,qty:Math.max(1,Math.min(mode==="sub"?1:MAX_QUANTITY,Math.round(qty)))}]}):[]}catch{return[]}}function writeCart(petRef,lines){try{lines.length===0?window.sessionStorage.removeItem(`${CART_STORE}:${petRef}`):window.sessionStorage.setItem(`${CART_STORE}:${petRef}`,JSON.stringify(lines))}catch{}}var CHECKOUT_PARAM="everfur_checkout",CHECKOUT_CANCEL_PARAM="everfur_checkout_cancel",STRIPE_SESSION_ID="{CHECKOUT_SESSION_ID}",CHECKOUT_POLL_MS=2e3,CHECKOUT_POLL_TRIES=30,CHECKOUT_STORE="everfur.healthPlan.checkout";function checkoutReturnUrl(href,name,value){let url=new URL(href);url.searchParams.delete(CHECKOUT_PARAM),url.searchParams.delete(CHECKOUT_CANCEL_PARAM);let search=url.search===""?"?":`${url.search}&`;return`${url.origin}${url.pathname}${search}${name}=${value}${url.hash}`}function stripCheckoutParams(){try{let url=new URL(window.location.href);url.searchParams.delete(CHECKOUT_PARAM),url.searchParams.delete(CHECKOUT_CANCEL_PARAM),window.history.replaceState(window.history.state,"",`${url.pathname}${url.search}${url.hash}`)}catch{}}function rememberCheckout(petRef,checkoutId){try{window.sessionStorage.setItem(CHECKOUT_STORE,JSON.stringify({petRef:petRef,checkoutId:checkoutId}))}catch{}}function recallCheckout(){try{let raw=JSON.parse(window.sessionStorage.getItem(CHECKOUT_STORE)??"null");if(raw===null||typeof raw!="object")return null;let o=raw;return typeof o.petRef=="string"&&typeof o.checkoutId=="string"&&o.checkoutId!==""?{petRef:o.petRef,checkoutId:o.checkoutId}:null}catch{return null}}function forgetCheckout(){try{window.sessionStorage.removeItem(CHECKOUT_STORE)}catch{}}function mintTapKey(){let c=typeof globalThis.crypto=="object"?globalThis.crypto:void 0;return c!==void 0&&typeof c.randomUUID=="function"?c.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}function cx(...names){let out=names.filter(n=>n!==void 0&&n!=="").join(" ");return out===""?void 0:out}function mergeRoot(part,className,style){let cls=cx(part.className,className),st=part.style===void 0&&style===void 0?void 0:{...part.style,...style};return{...cls===void 0?{}:{className:cls},...st===void 0?{}:{style:st}}}var ICON_PATHS={shield:"M12 3l7 3v5c0 4.5-3 8.5-7 10-4-1.5-7-5.5-7-10V6l7-3z M9 12l2 2 4-4",arrow:"M5 12h14 M13 6l6 6-6 6",check:"M5 12.5l4.5 4.5L19 7.5",star:"M12 3.5l2.6 5.3 5.9.9-4.3 4.1 1 5.8-5.2-2.8-5.2 2.8 1-5.8-4.3-4.1 5.9-.9z",truck:"M3 6h11v10H3z M14 10h4l3 3v3h-7 M7 19a2 2 0 100-4 2 2 0 000 4z M17 19a2 2 0 100-4 2 2 0 000 4z",refresh:"M20 11a8 8 0 10-2.3 5.7 M20 4v7h-7",card:"M3 6h18v12H3z M3 10h18",alert:"M12 4l9 16H3z M12 10v4 M12 17h.01",x:"M6 6l12 12 M18 6L6 18",chat:"M4 5h16v11H8l-4 4z",repeat:"M4 9h13l-3-3 M20 15H7l3 3",calendar:"M4 6h16v14H4z M4 10h16 M8 3v4 M16 3v4",flame:"M12 3c1 3 4 5 4 9a4 4 0 01-8 0c0-2 1-3 2-4 0 2 1 3 2 3 0-3-1-5 0-8z",box:"M3 7l9-4 9 4v10l-9 4-9-4z M3 7l9 4 9-4 M12 11v10",cart:"M3 4h2l2.4 11h10.2L20 8H6.2 M9 20a1 1 0 100-2 1 1 0 000 2z M17 20a1 1 0 100-2 1 1 0 000 2z",minus:"M5 12h14",plus:"M12 5v14 M5 12h14",chev:"M9 6l6 6-6 6",pulse:"M3 12h4l2-5 4 10 2-5h6",file:"M14 3H6v18h12V7z M14 3v4h4 M9 13h6 M9 17h6",kit:"M7 3h10v4H7z M6 7h12v14H6z M10 12h4",dna:"M7 3c0 6 10 6 10 12s-10 6-10 6 M17 3c0 6-10 6-10 12 M8 7h8 M8 17h8",heart:"M12 20s-7-4.5-7-10a4 4 0 017-2.6A4 4 0 0119 10c0 5.5-7 10-7 10z",bottle:"M9 3h6v3H9z M8 6h8v15H8z M8 11h8",harness:"M8 4c0 5 8 5 8 0 M6 9h12v6H6z M12 9v6 M9 15v5 M15 15v5",ramp:"M3 19h18L7 9H3z M7 9v10"};function DefaultIcon({name:name,className:className}){/* @__PURE__ */
387
+ return jsxRuntime.jsx("svg",{className:className,"aria-hidden":"true",viewBox:"0 0 24 24",width:className?void 0:18,height:className?void 0:18,fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:/* @__PURE__ */jsxRuntime.jsx("path",{d:ICON_PATHS[name]})})}var DEFAULT_PRESENTATION=/* @__PURE__ */Object.freeze({chatAnswerStyle:"cards",chatHistoryStyle:"sheet",chatTopCard:"focus",chatFollowUpCount:3,chatFollowUpsExcludeTelevet:false,chatComposerMic:true,chatComposerUpload:true,safetyDisclaimerPlacement:"composer",healthPlanLayout:"focus_plan",recordsTopRiskLine:true,recordsClearResultsFilter:true,chatComposerStyle:"compact",chatComposerPlaceholder:"pet_name",chatHistoryBar:"scroll",chatGeneralBanner:true,chatSendButton:"always_dark"}),PRESENTATION_WIRE_NAMES=/* @__PURE__ */Object.freeze({chatAnswerStyle:"chat_answer_style",chatHistoryStyle:"chat_history_style",chatTopCard:"chat_top_card",chatFollowUpCount:"chat_follow_up_count",chatFollowUpsExcludeTelevet:"chat_follow_ups_exclude_televet",chatComposerMic:"chat_composer_mic",chatComposerUpload:"chat_composer_upload",safetyDisclaimerPlacement:"safety_disclaimer_placement",healthPlanLayout:"health_plan_layout",recordsTopRiskLine:"records_top_risk_line",recordsClearResultsFilter:"records_clear_results_filter",chatComposerStyle:"chat_composer_style",chatComposerPlaceholder:"chat_composer_placeholder",chatHistoryBar:"chat_history_bar",chatGeneralBanner:"chat_general_banner",chatSendButton:"chat_send_button"}),FIELDS=Object.keys(PRESENTATION_WIRE_NAMES),PRESENTATION_LOCK="presentation",PRESENTATION_LOCK_PREFIX="presentation.";var ENUMS={chatAnswerStyle:["bubbles","cards"],chatHistoryStyle:["drawer","sheet"],chatTopCard:["none","focus"],safetyDisclaimerPlacement:["composer","answer_footer"],healthPlanLayout:["standard","focus_plan"],chatComposerStyle:["standard","compact"],chatComposerPlaceholder:["generic","pet_name"],chatHistoryBar:["pinned","scroll"],chatSendButton:["always_dark","dim_when_empty"]},BOOLS=/* @__PURE__ */new Set(["chatFollowUpsExcludeTelevet","chatComposerMic","chatComposerUpload","recordsTopRiskLine","recordsClearResultsFilter","chatGeneralBanner"]);function parseField(field,value){if(value==null)return;let allowed=ENUMS[field];return allowed!==void 0?typeof value=="string"&&allowed.includes(value)?value:void 0:BOOLS.has(field)?typeof value=="boolean"?value:void 0:typeof value=="number"&&Number.isInteger(value)&&value>=0&&value<=3?value:void 0}function parsePresentation(raw){if(raw===null||typeof raw!="object"||Array.isArray(raw))return null;let source=raw,out={};for(let field of FIELDS){let wire=PRESENTATION_WIRE_NAMES[field],value=Object.prototype.hasOwnProperty.call(source,wire)?source[wire]:source[field],parsed=parseField(field,value);parsed!==void 0&&(out[field]=parsed)}return Object.keys(out).length===0?null:/* @__PURE__ */Object.freeze(out)}function isPresentationFieldLocked(field,locked){if(locked==null)return false;let one=`${PRESENTATION_LOCK_PREFIX}${PRESENTATION_WIRE_NAMES[field]}`;for(let name of locked)if(name===PRESENTATION_LOCK||name===one)return true;return false}function resolvePresentation(input){let server=parsePresentation(input?.server??null)??{},client=parsePresentation(input?.client??null)??{},locked=input?.locked?[...input.locked]:null,out={};for(let field of FIELDS){let fromServer=server[field],fromClient=isPresentationFieldLocked(field,locked)?void 0:client[field];out[field]=fromClient??fromServer??DEFAULT_PRESENTATION[field]}/* @__PURE__ */
388
+ return Object.freeze(out)}var NO_SNAPSHOT=/* @__PURE__ */Object.freeze({branding:null}),NO_STORE=/* @__PURE__ */Object.freeze({subscribe:()=>()=>{},getSnapshot:()=>NO_SNAPSHOT});function keyOf2(input){return input?Object.keys(input).sort().map(k=>`${k}=${String(input[k])}`).join("&"):""}function useEverfurPresentation(client){return useEverfurPresentationState(client).presentation}function useEverfurPresentationState(client){let{runtime:runtime}=useEverfurContext(),store=runtime?.entitlements??NO_STORE,readBranding=react.useCallback(()=>store.getSnapshot()?.branding??null,[store]),branding=react.useSyncExternalStore(store.subscribe,readBranding,readBranding),clientKey=keyOf2(client);return react.useMemo(()=>{let locked=branding?.lockedFields??null;return{presentation:resolvePresentation({server:branding?.presentation??null,locked:locked,client:client??null}),isLocked:field=>isPresentationFieldLocked(field,locked)}},[branding,clientKey])}function HealthPlanItemCard(props){let{item:item,onToggle:onToggle,pending:pending=false,error:error=null,imageVariant:imageVariant=HEALTH_PLAN_LAYOUT_DEFAULTS.imageVariant,reasonVariant:reasonVariant=HEALTH_PLAN_LAYOUT_DEFAULTS.reasonVariant,priceFormat:priceFormat,renderFooter:renderFooter,showCategory:showCategory=HEALTH_PLAN_LAYOUT_DEFAULTS.showCategory,cardShadow:cardShadow=HEALTH_PLAN_LAYOUT_DEFAULTS.cardShadow,cardBorder:cardBorder=HEALTH_PLAN_LAYOUT_DEFAULTS.cardBorder,addButtonSize:addButtonSize=HEALTH_PLAN_LAYOUT_DEFAULTS.addButtonSize,addButtonFontSize:addButtonFontSize,addedVariant:addedVariant=HEALTH_PLAN_LAYOUT_DEFAULTS.addedVariant,categoryVariant:categoryVariant=HEALTH_PLAN_LAYOUT_DEFAULTS.categoryVariant,cardPadding:cardPadding,itemTitleSize:itemTitleSize,itemTitleWeight:itemTitleWeight,priceSize:priceSize,priceWeight:priceWeight,reasonTextSize:reasonTextSize,reasonLabelWidth:reasonLabelWidth,reasonGap:reasonGap,style:style,className:className}=guardHostProps(props,["onToggle"]),theme=useEverfurTheme(),styles2=react.useMemo(()=>makeStyles3(theme),[theme]),snugLine=size=>`${Math.round(size*theme.type.lineHeight.snug)}px`,sized=(base3,size,weight)=>{let px=healthPlanLength(size);return{...base3,...px===null||px===0?null:{fontSize:px,lineHeight:snugLine(px)},...weight===void 0?null:{fontWeight:weight}}},titleStyle=sized(styles2.title,itemTitleSize,itemTitleWeight),priceStyle=sized(styles2.price,priceSize,priceWeight),reasonRowTextStyle=sized(styles2.reasonRowText,reasonTextSize),reasonTextStyle=sized(styles2.reasonText,reasonTextSize),labelWidth=healthPlanLength(reasonLabelWidth),labelGap=healthPlanLength(reasonGap),reasonRowsStyle={...styles2.reasonRows,...labelWidth===null?null:{gridTemplateColumns:`${labelWidth}px 1fr`},...labelGap===null?null:{columnGap:labelGap}},reasonPillStyle=labelGap===null?styles2.reason:{...styles2.reason,gap:labelGap},price=formatHealthPlanPriceWith(item.price,item.currency,priceFormat),thumbnail=imageVariant==="thumbnail",rows=reasonVariant==="rows",priceNode=price===null?null:/* @__PURE__ */jsxRuntime.jsx("p",{style:priceStyle,children:price}),category=showCategory&&item.category!==null?/* @__PURE__ */jsxRuntime.jsx("p",{style:categoryVariant==="label"?styles2.categoryLabel:styles2.category,"data-category-variant":categoryVariant,children:item.category}):null,padding=healthPlanLength(cardPadding),cardStyle={...styles2.card,...cardShadowCss(cardShadow,styles2.cardShadow),...cardBorder?null:{border:"none"},...padding===null?null:{padding:padding}},full=addButtonSize==="full",{height:height,hit:hit}=healthPlanAddButtonHeight(addButtonSize),fontPx=healthPlanLength(addButtonFontSize)??(height>=40?theme.type.size.body:theme.type.size.caption),pillSize={minHeight:height,padding:`0 ${height>=40?theme.space.lg:theme.space.md}px`,fontSize:fontPx},pill=(label,pressed)=>full?label:/* @__PURE__ */jsxRuntime.jsx("span",{style:{...pressed?styles2.addPressed:styles2.addCompact,...pillSize},children:label}),hitStyle={...styles2.addCompactHit,minHeight:hit},control=item.inPlan&&addedVariant==="pressed"?
389
+ /* @__PURE__ */jsxRuntime.jsx("button",{type:"button",disabled:pending,"aria-pressed":"true","aria-busy":pending?"true":void 0,onClick:()=>onToggle?.(false),style:full?{...styles2.add,...styles2.addPressed}:hitStyle,"data-size":addButtonSize,"data-added-variant":"pressed",children:pill(HEALTH_PLAN_COPY.added,true)}):item.inPlan?/* @__PURE__ */jsxRuntime.jsxs("div",{style:styles2.row,children:[
390
+ /* @__PURE__ */jsxRuntime.jsx("span",{style:styles2.added,role:"status",children:HEALTH_PLAN_COPY.added}),
391
+ /* @__PURE__ */jsxRuntime.jsx("button",{type:"button",disabled:pending,onClick:()=>onToggle?.(false),style:styles2.remove,children:HEALTH_PLAN_COPY.remove})]}):/* @__PURE__ */jsxRuntime.jsx("button",{type:"button",disabled:pending,"aria-busy":pending?"true":void 0,onClick:()=>onToggle?.(true),"aria-pressed":addedVariant==="pressed"?"false":void 0,style:full?styles2.add:hitStyle,"data-size":addButtonSize,children:pill(HEALTH_PLAN_COPY.addToCart,false)});/* @__PURE__ */
392
+ return jsxRuntime.jsxs("article",{className:className,style:{...cardStyle,...style},"aria-busy":pending?"true":void 0,"data-image-variant":imageVariant,"data-reason-variant":reasonVariant,children:[thumbnail?/* @__PURE__ */jsxRuntime.jsxs("div",{style:styles2.thumbHead,children:[item.imageUrl===null?null:/* @__PURE__ */jsxRuntime.jsx("img",{src:item.imageUrl,alt:"",style:styles2.thumb,loading:"lazy"}),
393
+ /* @__PURE__ */jsxRuntime.jsxs("div",{style:styles2.thumbCopy,children:[category,
394
+ /* @__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,
395
+ /* @__PURE__ */jsxRuntime.jsxs("div",{style:styles2.head,children:[
396
+ /* @__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]}),
397
+ /* @__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")}}function probeOver(useRecords){return function(props){let{status:status}=useRecords({petRef:props.petRef}),{onMissing:onMissing}=props;return react.useEffect(()=>{onMissing(status==="empty")},[status,onMissing]),null}}var Nothing=()=>null,LazyProbe=react.lazy(()=>import("@everfur/sdk/web/records").then(m=>({default:probeOver(m.useEverfurRecords)}),()=>({default:Nothing})));function RecordsMissingProbe(props){/* @__PURE__ */
398
+ return jsxRuntime.jsx(react.Suspense,{fallback:null,children:/* @__PURE__ */jsxRuntime.jsx(LazyProbe,{petRef:props.petRef,onMissing:props.onMissing})})}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),available=plan.status==="empty"?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[recordsEmpty,setRecordsEmpty]=react.useState(false),probeRecords=focus!==void 0&&focus.recordsMissing===void 0&&focus.onConnectRecords!==void 0&&plan.petRef!==null,probe=probeRecords&&plan.petRef!==null?/* @__PURE__ */jsxRuntime.jsx(RecordsMissingProbe,{petRef:plan.petRef,onMissing:setRecordsEmpty},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:[
399
+ /* @__PURE__ */jsxRuntime.jsx("div",{style:styles2.skeletonTitle}),
400
+ /* @__PURE__ */jsxRuntime.jsx("div",{style:styles2.skeletonCard}),
401
+ /* @__PURE__ */jsxRuntime.jsx("div",{style:styles2.skeletonCard})]}),refused=(error,retry)=>{let signIn=isHealthPlanSessionRequired(error),line=signIn?HEALTH_PLAN_COPY.signedOut:error?.displayMessage??"";return frame(
402
+ /* @__PURE__ */jsxRuntime.jsxs("div",{style:styles2.notice,role:"alert",children:[error===null?null:/* @__PURE__ */jsxRuntime.jsx(HostRender,{resetKey:error,render:()=>renderNotice?renderNotice(error):/* @__PURE__ */jsxRuntime.jsx("p",{style:styles2.noticeText,children:line}),fallback:/* @__PURE__ */jsxRuntime.jsx("p",{style:styles2.noticeText,children:line})}),signIn?null:/* @__PURE__ */jsxRuntime.jsx("button",{type:"button",onClick:()=>{retry()},style:styles2.retry,children:HEALTH_PLAN_COPY.retry})]}))},words2={emptyTitle:emptyCopy?.emptyTitle??HEALTH_PLAN_COPY.emptyTitle,emptyBody:emptyCopy?.emptyBody??HEALTH_PLAN_COPY.emptyBody,emptyAsk:emptyCopy?.emptyAsk??HEALTH_PLAN_COPY.emptyAsk},empty=()=>words2.emptyTitle.trim()===""&&words2.emptyBody.trim()===""?null:frame(
403
+ /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[titleNode,header,
404
+ /* @__PURE__ */jsxRuntime.jsxs("div",{style:styles2.empty,children:[words2.emptyTitle.trim()===""?null:/* @__PURE__ */jsxRuntime.jsx("p",{style:styles2.subtitle,children:words2.emptyTitle}),words2.emptyBody.trim()===""?null:/* @__PURE__ */jsxRuntime.jsx("p",{style:styles2.body,children:words2.emptyBody}),words2.emptyAsk.trim()===""||onAsk===void 0?null:/* @__PURE__ */jsxRuntime.jsx("button",{type:"button",onClick:()=>onAsk(),style:styles2.retry,children:words2.emptyAsk})]})]}));if(plan.status==="loading")return loading();if(plan.status==="failed")return refused(plan.error,plan.refresh);if(plan.status==="empty")return empty();let design=focus?.design,checkout,weightKnown=focus?.weightKnown;if(fromBackend&&pageFallback==="session")return refused(page.error,page.refresh);if(fromBackend&&pageFallback===null&&(page.phase!=="ready"||page.page===null||page.page.page===null))return loading();fromBackend&&pageFallback===null&&page.page!==null&&page.page.page!==null&&(design=page.page.page,checkout=page.page.checkout,weightKnown??=page.page.pet.weightKg!==null,design=without(design,"checkoutRows"),design={...design,pick:without(design.pick,"trust")},design={...design,copy:{...design.copy,...HEALTH_PLAN_NO_SHIP_DAY_COPY}},page.page.vetReviewed===true?design.byline===void 0&&(design={...design,byline:VET_REVIEWED_BYLINE}):design.byline!==void 0&&(design=without(design,"byline")));let backendPage=fromBackend?page.page:null,trackingTexts=backendPage?backendPage.trackingTextsEnabled===true:focus?.trackingTexts,petSex=backendPage?backendPage.pet.sex:focus?.petSex,recordsMissing=focus?.recordsMissing??(probeRecords?recordsEmpty:void 0),onWeightSaved=focus?.onWeightSaved,pageRefresh=page.refresh,items=plan.plan?.items??[],pick2=design?.pick,picked=pick2===void 0?void 0:items.find(item=>pick2.productId!==void 0&&item.productId===pick2.productId)??items.find(item=>pick2.partnerSku!==void 0&&item.partnerSku===pick2.partnerSku)??items[0];return focus!==void 0&&design!==void 0&&picked!==void 0&&plan.petRef!==null?/* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[probe,
405
+ /* @__PURE__ */jsxRuntime.jsx(HealthPlanFocus,{...focus,design:design,...trackingTexts===void 0?{}:{trackingTexts:trackingTexts},...petSex===void 0?{}:{petSex:petSex},...recordsMissing===void 0?{}:{recordsMissing:recordsMissing},...checkout?{checkout:checkout}:{},...weightKnown===void 0?{}:{weightKnown:weightKnown},...fromBackend?{onWeightSaved:kg=>{onWeightSaved?.(kg),pageRefresh()}}:{},item:picked,others:items.filter(item=>item!==picked),...cardOptions.showCategory!==void 0?{showCategory:cardOptions.showCategory}:{},lifecycle:pageLifecycle,...pageRefreshKey===void 0?{}:{refreshKey:pageRefreshKey},petRef:plan.petRef,petName:petName,...onCheckout?{onCheckout:onCheckout}:{},...priceFormat?{priceFormat:priceFormat}:{},...className?{className:className}:{},...style?{style:style}:{}})]}):frame(
406
+ /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[titleNode,header,
407
+ /* @__PURE__ */jsxRuntime.jsx("ul",{style:imageVariant==="thumbnail"?styles2.column:styles2.list,children:items.map((item,index)=>/* @__PURE__ */jsxRuntime.jsxs(react.Fragment,{children:[renderBetweenItems===void 0||index===0?null:
408
+ /* @__PURE__ */jsxRuntime.jsx("li",{style:styles2.between,children:between(index,item)}),
409
+ /* @__PURE__ */jsxRuntime.jsx("li",{style:styles2.listItem,children:/* @__PURE__ */jsxRuntime.jsx(HealthPlanItemCard,{item:item,pending:plan.pending.includes(item.productId),error:plan.itemErrors[item.productId]??null,onToggle:inPlan=>{trackProductClicked(telemetry,plan.petRef,item.productId,inPlan),plan.setInPlan(item.productId,inPlan)},...imageVariant?{imageVariant:imageVariant}:{},...reasonVariant?{reasonVariant:reasonVariant}:{},...priceFormat?{priceFormat:priceFormat}:{},...renderItemFooter?{renderFooter:renderItemFooter}:{},...cardOptions})})]},item.productId))}),renderFooter===void 0?null:/* @__PURE__ */jsxRuntime.jsx(HostRender,{resetKey:plan.plan,render:()=>renderFooter(context),fallback:null}),!docked&&showHealthPlanCartBar(cartBarVisibility,plan.cart.count)?/* @__PURE__ */jsxRuntime.jsx(HealthPlanPetScope,{petRef:plan.petRef,children:/* @__PURE__ */jsxRuntime.jsx(HealthPlanCartBar,{cart:plan.cart,busy:plan.pending.length>0,...onCheckout?{onCheckout:onCheckout}:{},...priceFormat?{priceFormat:priceFormat}:{},style:styles2.bar})}):null]}),plan.pending.length>0)}function healthPlanPageFallback(fromBackend,page){return fromBackend?page.phase==="failed"?isHealthPlanSessionRequired(page.error)?"session":"list":page.phase!=="ready"?null:page.missing||page.page!==null&&page.page.page===null?"list":null:null}function without(o,key){let copy={...o};return delete copy[key],copy}var VET_REVIEWED_BYLINE=/* @__PURE__ */Object.freeze({name:"Built with Dr. Ellen Russell",role:"DVM, Medical Director"}),NO_FOCUS_OPTIONS=/* @__PURE__ */Object.freeze({});function makeStyles4(theme){let{color:color,radius:radius,space:space,type:type}=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});return{page:{boxSizing:"border-box",display:"flex",flexDirection:"column",gap:space.lg,padding:space.lg},title:{...text2(type.size.heading,color.text.primary,"bold"),...headingFaceCss(theme,"bold")},subtitle:text2(type.size.body,color.text.primary,"bold"),body:text2(type.size.body,color.text.secondary,"regular"),list:{listStyle:"none",margin:0,padding:0,display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(240px, 1fr))",gap:space.md},column:{listStyle:"none",margin:0,padding:0,display:"flex",flexDirection:"column",gap:space.md},listItem:{display:"flex",flexDirection:"column"},between:{gridColumn:"1 / -1",display:"flex",flexDirection:"column"},empty:{display:"flex",flexDirection:"column",gap:space.xs,padding:space.lg,borderRadius:radius.lg,backgroundColor:color.surfaceSubtle},notice:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:space.xs},noticeText:text2(type.size.caption,color.errorRed,"regular"),retry:{minHeight:44,padding:0,border:"none",background:"none",cursor:"pointer",...faceCss(theme,"bold"),fontSize:type.size.caption,color:color.linkInk},bar:{position:"sticky",bottom:space.md},skeletonTitle:{height:28,width:"50%",borderRadius:radius.sm,backgroundColor:color.skeleton},skeletonCard:{height:160,borderRadius:radius.lg,backgroundColor:color.skeleton}}}function HealthPlanTopRisk(props){let guarded=guardHostProps(props,["onOpenPlan"]),theme=useEverfurTheme(),S=react.useMemo(()=>styles(theme),[theme]),cls=guarded.classNames,kind=guarded.kind??"risk",part=(name,mod)=>{let c=[cls?.[name],mod===void 0?void 0:cls?.[`${name}:${mod}`]].filter(x=>typeof x=="string"&&x!=="").join(" ");return c===""?{style:S[name]}:{className:c}},card=part("card");/* @__PURE__ */
410
+ return jsxRuntime.jsxs("article",{...card,style:card.style===void 0?guarded.style:{...card.style,...guarded.style},children:[
411
+ /* @__PURE__ */jsxRuntime.jsxs("p",{...part("kicker"),children:[
412
+ /* @__PURE__ */jsxRuntime.jsx("span",{...part("dot",kind)}),guarded.kicker]}),
413
+ /* @__PURE__ */jsxRuntime.jsx("p",{...part("sentence"),children:guarded.sentence}),
414
+ /* @__PURE__ */jsxRuntime.jsx("button",{type:"button",...part("button"),onClick:()=>guarded.onOpenPlan(),children:guarded.action})]})}function styles(theme){let{color:color,radius:radius,space:space,type:type}=theme;return{card:{display:"grid",gap:space.xs,justifyItems:"start",padding:space.md,borderRadius:radius.lg,backgroundColor:color.brandSofter},kicker:{margin:0,display:"flex",alignItems:"center",gap:space.xs,...faceCss(theme,"bold"),fontSize:type.size.caption,color:color.text.secondary,textTransform:"uppercase",letterSpacing:"0.06em"},dot:{width:8,height:8,borderRadius:4,backgroundColor:color.errorRed},sentence:{margin:0,...faceCss(theme,"bold"),fontSize:type.size.subtitle,color:color.text.primary},button:{minHeight:40,padding:`0 ${space.md}px`,border:"none",borderRadius:999,cursor:"pointer",backgroundColor:color.primary,color:color.onPrimary,...faceCss(theme,"bold"),fontSize:type.size.caption}}}var CLOSE_FALLBACK="Close",HEALTH_PLAN_TOP_CARD_COPY=/* @__PURE__ */Object.freeze({action:who=>who.possessive===null?null:`See ${who.possessive} Health Plan`,ask:"What does it mean?",askPrompt:(focus,ask)=>focus.risk?.lead?`${focus.risk.lead} ${ask}`:`${focus.title}: ${ask}`,close:who=>who.possessive===null?null:`Close ${who.possessive} focus`});function healthPlanPossessive(pet){let sex=typeof pet.sex=="string"?pet.sex.trim().toLowerCase():null;if(sex==="female")return"her";if(sex==="male")return"his";let name=typeof pet.name=="string"?pet.name.trim():"";return name!==""?`${name}'s`:null}function healthPlanTopCard(page,options){let focus=page?.page?.focus;if(page===null||focus===void 0||focus.title.trim()===""||focus.kicker.trim()==="")return;let copy={...HEALTH_PLAN_TOP_CARD_COPY,...options.copy},who={pet:page.pet,possessive:healthPlanPossessive(page.pet)},badge=focus.sources?.find(source=>source.label.trim()!=="")?.label,onOpenPlan=options.onOpenPlan,action=onOpenPlan===void 0?null:copy.action(who),close=copy.close(who),ask=copy.ask.trim();return{kicker:focus.kicker,...badge===void 0?{}:{badge:badge},title:focus.title,...focus.risk?.lead?{lead:focus.risk.lead}:{},...focus.risk?.body?{body:focus.risk.body}:{},...action===null||action.trim()===""||onOpenPlan===void 0?{}:{action:{label:action,onPress:onOpenPlan}},...ask===""?{}:{ask:{label:ask,prompt:copy.askPrompt(focus,ask)}},closeLabel:close===null||close.trim()===""?CLOSE_FALLBACK:close,pill:focus.kicker,...options.renderIcon===void 0?{}:{renderIcon:options.renderIcon},...options.classNames===void 0?{}:{classNames:options.classNames}}}function useHealthPlanTopCard(options){let{petRef:petRef,enabled:enabled,onOpenPlan:onOpenPlan,copy:copy,classNames:classNames,renderIcon:renderIcon}=options,{page:page}=useHealthPlanPage({petRef:petRef,...enabled===void 0?{}:{enabled:enabled}});return react.useMemo(()=>healthPlanTopCard(page,{onOpenPlan:onOpenPlan,...copy===void 0?{}:{copy:copy},...classNames===void 0?{}:{classNames:classNames},...renderIcon===void 0?{}:{renderIcon:renderIcon}}),[page,onOpenPlan,copy,classNames,renderIcon])}exports.EverfurHealthPlan=EverfurHealthPlan;exports.HEALTH_PLAN_COPY=HEALTH_PLAN_COPY;exports.HEALTH_PLAN_COPY_PLACEHOLDERS=HEALTH_PLAN_COPY_PLACEHOLDERS;exports.HEALTH_PLAN_FOCUS_COPY=HEALTH_PLAN_FOCUS_COPY;exports.HEALTH_PLAN_LAYOUT_DEFAULTS=HEALTH_PLAN_LAYOUT_DEFAULTS;exports.HEALTH_PLAN_REASON_KINDS=HEALTH_PLAN_REASON_KINDS;exports.HEALTH_PLAN_REASON_LABELS=HEALTH_PLAN_REASON_LABELS;exports.HEALTH_PLAN_TEMPLATES=HEALTH_PLAN_TEMPLATES;exports.HEALTH_PLAN_TOP_CARD_COPY=HEALTH_PLAN_TOP_CARD_COPY;exports.HealthPlanCartBar=HealthPlanCartBar;exports.HealthPlanCartScope=HealthPlanCartScope;exports.HealthPlanController=HealthPlanController;exports.HealthPlanFocus=HealthPlanFocus;exports.HealthPlanItemCard=HealthPlanItemCard;exports.HealthPlanTopRisk=HealthPlanTopRisk;exports.createHealthPlanPageRepository=createHealthPlanPageRepository;exports.createHealthPlanPageRepositoryOver=createHealthPlanPageRepositoryOver;exports.createHealthPlanRepository=createHealthPlanRepository;exports.createHealthPlanRepositoryOver=createHealthPlanRepositoryOver;exports.createHealthPlanSubscriptionRepository=createHealthPlanSubscriptionRepository;exports.createHealthPlanSubscriptionRepositoryOver=createHealthPlanSubscriptionRepositoryOver;exports.formatHealthPlanDay=formatHealthPlanDay;exports.formatHealthPlanPrice=formatHealthPlanPrice;exports.formatHealthPlanPriceWith=formatHealthPlanPriceWith;exports.healthPlanCart=healthPlanCart;exports.healthPlanCheckoutRefusal=healthPlanCheckoutRefusal;exports.healthPlanCheckoutSessionFromWire=healthPlanCheckoutSessionFromWire;exports.healthPlanCheckoutStateFromWire=healthPlanCheckoutStateFromWire;exports.healthPlanFocusCopyFor=healthPlanFocusCopyFor;exports.healthPlanFocusDesignFromWire=healthPlanFocusDesignFromWire;exports.healthPlanFromWire=healthPlanFromWire;exports.healthPlanOneBoxOrderFromWire=healthPlanOneBoxOrderFromWire;exports.healthPlanOneBoxOrderPageFromWire=healthPlanOneBoxOrderPageFromWire;exports.healthPlanOrderTrackingFromWire=healthPlanOrderTrackingFromWire;exports.healthPlanPageFromWire=healthPlanPageFromWire;exports.healthPlanPetWords=healthPlanPetWords;exports.healthPlanPossessive=healthPlanPossessive;exports.healthPlanSubscriptionFromWire=healthPlanSubscriptionFromWire;exports.healthPlanSubscriptionQuoteFromWire=healthPlanSubscriptionQuoteFromWire;exports.healthPlanTopCard=healthPlanTopCard;exports.isHealthPlanSessionRequired=isHealthPlanSessionRequired;exports.isHealthPlanSubscriptionUnavailable=isHealthPlanSubscriptionUnavailable;exports.showHealthPlanCartBar=showHealthPlanCartBar;exports.useEverfurHealthPlan=useEverfurHealthPlan;exports.useEverfurHealthPlanRepository=useEverfurHealthPlanRepository;exports.useEverfurPresentation=useEverfurPresentation;exports.useHealthPlanCartDock=useHealthPlanCartDock;exports.useHealthPlanPage=useHealthPlanPage;exports.useHealthPlanPageRepository=useHealthPlanPageRepository;exports.useHealthPlanSubscription=useHealthPlanSubscription;exports.useHealthPlanSubscriptionRepository=useHealthPlanSubscriptionRepository;exports.useHealthPlanTopCard=useHealthPlanTopCard;