@everfur/sdk 0.15.0 → 0.16.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 (306) hide show
  1. package/CHANGELOG.md +160 -0
  2. package/LICENSE.md +1 -0
  3. package/README.md +12 -5
  4. package/SDK-LICENSE.txt +130 -0
  5. package/THIRD_PARTY_NOTICES +9 -0
  6. package/dist/CameraPort.d-Cv31Pz7g.d.cts +1 -0
  7. package/dist/CameraPort.d-Cv31Pz7g.d.ts +1 -0
  8. package/dist/{DepthViews.d-dXWL6ToG.d.cts → DepthViews.d-A7S-XYiI.d.ts} +2 -1
  9. package/dist/{DepthViews.d-DbJejGm3.d.ts → DepthViews.d-C4TIZDfz.d.cts} +2 -1
  10. package/dist/{DepthViews.d-CuBElgEc.d.ts → DepthViews.d-CNjaHLAS.d.ts} +2 -1
  11. package/dist/{DepthViews.d-BqMnWSMu.d.cts → DepthViews.d-DapfRz1S.d.cts} +2 -1
  12. package/dist/ErrorPolicyPort.d-68yrE3BE.d.ts +1 -0
  13. package/dist/ErrorPolicyPort.d-DirW9hgO.d.cts +1 -0
  14. package/dist/EverfurError.d-8NHtlgzA.d.cts +1 -0
  15. package/dist/EverfurError.d-8NHtlgzA.d.ts +1 -0
  16. package/dist/EverfurResult.d-BFH-3s6E.d.cts +1 -0
  17. package/dist/EverfurResult.d-D_-254ZY.d.ts +1 -0
  18. package/dist/IntakeMedia.d-4a89XrP7.d.ts +1 -0
  19. package/dist/IntakeMedia.d-DGxrhgIW.d.ts +1 -0
  20. package/dist/IntakeMedia.d-DUPR4lVM.d.cts +1 -0
  21. package/dist/IntakeMedia.d-JJCUvQu7.d.cts +1 -0
  22. package/dist/LICENSE.md +1 -0
  23. package/dist/LifecyclePort.d-Cr1p33a7.d.cts +1 -0
  24. package/dist/LifecyclePort.d-Cr1p33a7.d.ts +1 -0
  25. package/dist/PhotoController.d-BzCJOE7e.d.cts +1 -0
  26. package/dist/PhotoController.d-D0XiUUOl.d.ts +1 -0
  27. package/dist/{RecordsPage.d-DKrZ9rHX.d.ts → RecordsPage.d-6WMbieaV.d.ts} +2 -1
  28. package/dist/{RecordsPage.d-DRPdUAo4.d.cts → RecordsPage.d-B2gLf8RH.d.cts} +2 -1
  29. package/dist/SDK-LICENSE.txt +130 -0
  30. package/dist/THIRD_PARTY_NOTICES +9 -0
  31. package/dist/TelemetryPort.d-BDNr00hu.d.cts +1 -0
  32. package/dist/TelemetryPort.d-BDNr00hu.d.ts +1 -0
  33. package/dist/animations/index.cjs +2 -1
  34. package/dist/animations/index.d.cts +24 -23
  35. package/dist/animations/index.d.ts +24 -23
  36. package/dist/animations/index.js +2 -1
  37. package/dist/{Chat.d-a7Ksz7NZ.d.ts → appStateLifecycle.d-B7L427MF.d.ts} +73 -141
  38. package/dist/{Chat.d-CtfANk3A.d.cts → appStateLifecycle.d-CWedOJq4.d.cts} +73 -141
  39. package/dist/{attachments.d-CpaOfi2g.d.cts → attachments.d-BARh-PrJ.d.cts} +26 -7
  40. package/dist/{attachments.d-BGn2_knv.d.ts → attachments.d-CB0R1_vK.d.ts} +26 -7
  41. package/dist/{attachments.d-CoQhXrP9.d.ts → attachments.d-CPgp4_W-.d.ts} +3 -2
  42. package/dist/{attachments.d-CqHMGoER.d.cts → attachments.d-DeoaCEMD.d.cts} +3 -2
  43. package/dist/{bookingCopy.d-BwCOCZUj.d.ts → bookingCopy.d-BakTjvWw.d.ts} +3 -2
  44. package/dist/{bookingCopy.d-Bnq2zk0F.d.cts → bookingCopy.d-CVmpuk9C.d.cts} +3 -2
  45. package/dist/branding.d-Bbc6p1XY.d.cts +1 -0
  46. package/dist/branding.d-y6c0UwhE.d.ts +1 -0
  47. package/dist/cacheEpoch.d-DknKn3S0.d.cts +1 -0
  48. package/dist/cacheEpoch.d-DknKn3S0.d.ts +1 -0
  49. package/dist/callCopy.d-Bw6oZT54.d.cts +1 -0
  50. package/dist/callCopy.d-Bw6oZT54.d.ts +1 -0
  51. package/dist/callRoom.d-B1DoYdJe.d.cts +1 -0
  52. package/dist/callRoom.d-Dqm1rUqT.d.ts +1 -0
  53. package/dist/{casesRepository.d-DG83Ggbq.d.ts → casesRepository.d-CuokarTU.d.ts} +2 -1
  54. package/dist/{casesRepository.d-CsUJ2Oyb.d.cts → casesRepository.d-DKRLtYb8.d.cts} +2 -1
  55. package/dist/chat/index.cjs +229 -214
  56. package/dist/chat/index.d.cts +12 -9
  57. package/dist/chat/index.d.ts +12 -9
  58. package/dist/chat/index.js +230 -215
  59. package/dist/client/index.cjs +2 -1
  60. package/dist/client/index.d.cts +7 -6
  61. package/dist/client/index.d.ts +7 -6
  62. package/dist/client/index.js +2 -1
  63. package/dist/{clinicBatch.d-Byjx4y_W.d.ts → clinicBatch.d-BP_Rpvcy.d.ts} +3 -2
  64. package/dist/{clinicBatch.d-BLpbpS51.d.cts → clinicBatch.d-BTDdhMQ2.d.cts} +3 -2
  65. package/dist/clinicModels.d-BXgKZqDb.d.cts +1 -0
  66. package/dist/clinicModels.d-CaS64-P-.d.ts +1 -0
  67. package/dist/clinicRequestProps.d-1dCtouGA.d.cts +1 -0
  68. package/dist/clinicRequestProps.d-CjsMg_OD.d.ts +1 -0
  69. package/dist/{config.d-C0WgjutL.d.cts → config.d-84fNJFv9.d.cts} +2 -1
  70. package/dist/{config.d-zd2eTb2L.d.ts → config.d-B4-Mrwq2.d.ts} +2 -1
  71. package/dist/consent/index.cjs +1 -0
  72. package/dist/consent/index.d.cts +6 -5
  73. package/dist/consent/index.d.ts +6 -5
  74. package/dist/consent/index.js +1 -0
  75. package/dist/{context.d-Du_UPxa1.d.cts → context.d-87MMrNm6.d.cts} +6 -5
  76. package/dist/{context.d-BBjmV0rz.d.ts → context.d-rNGMZH8T.d.ts} +6 -5
  77. package/dist/{copy.d-Da_PP2K3.d.cts → copy.d-CJOLhJac.d.cts} +3 -2
  78. package/dist/{copy.d-D_VVj01o.d.ts → copy.d-DbwWriBp.d.ts} +3 -2
  79. package/dist/core/index.cjs +2 -1
  80. package/dist/core/index.d.cts +14 -13
  81. package/dist/core/index.d.ts +14 -13
  82. package/dist/core/index.js +2 -1
  83. package/dist/{depth.d-RTV61QNf.d.cts → depth.d-CXpPxNSK.d.cts} +3 -2
  84. package/dist/{depth.d-BEedifOR.d.ts → depth.d-Dca1T_RH.d.ts} +3 -2
  85. package/dist/{entitlementRepository.d-BwThmh3V.d.ts → entitlementRepository.d-BBRYTUlp.d.ts} +3 -2
  86. package/dist/{entitlementRepository.d-C-stdRyA.d.cts → entitlementRepository.d-DBhzBQjZ.d.cts} +3 -2
  87. package/dist/features.d-DrQxTw3-.d.cts +1 -0
  88. package/dist/features.d-DrQxTw3-.d.ts +1 -0
  89. package/dist/{focus.d-Dsm39DjO.d.cts → focus.d-BQnOVAql.d.cts} +4 -3
  90. package/dist/{focus.d-CtotIyEt.d.ts → focus.d-BZ2sEpbU.d.ts} +4 -3
  91. package/dist/health-plan/index.cjs +135 -131
  92. package/dist/health-plan/index.d.cts +78 -24
  93. package/dist/health-plan/index.d.ts +78 -24
  94. package/dist/health-plan/index.js +135 -131
  95. package/dist/{idempotency.d-Cv-B7SfC.d.ts → idempotency.d-9wNNohIA.d.cts} +2 -1
  96. package/dist/{idempotency.d-Bfm7oIxS.d.cts → idempotency.d-BdB17veP.d.ts} +2 -1
  97. package/dist/{identity.d-BksOEa6m.d.ts → identity.d-DxNvhj3a.d.ts} +2 -1
  98. package/dist/{identity.d-CioQhZrq.d.cts → identity.d-nRZBzkG2.d.cts} +2 -1
  99. package/dist/ids.d-B2GAAifq.d.cts +1 -0
  100. package/dist/ids.d-B2GAAifq.d.ts +1 -0
  101. package/dist/index.cjs +234 -219
  102. package/dist/index.d.cts +15 -12
  103. package/dist/index.d.ts +15 -12
  104. package/dist/index.js +235 -220
  105. package/dist/{introEvents.d-fAZitxMA.d.cts → introEvents.d-CQeiUeLn.d.cts} +2 -1
  106. package/dist/{introEvents.d-tOi4o3F4.d.ts → introEvents.d-bkIxpIKr.d.ts} +2 -1
  107. package/dist/introEvents.d-dS3fJCH1.d.cts +1 -0
  108. package/dist/introEvents.d-dS3fJCH1.d.ts +1 -0
  109. package/dist/models.d-BSqvbTE1.d.cts +1 -0
  110. package/dist/models.d-DOwnr8fi.d.ts +1 -0
  111. package/dist/notifications/index.cjs +1 -0
  112. package/dist/notifications/index.d.cts +5 -4
  113. package/dist/notifications/index.d.ts +5 -4
  114. package/dist/notifications/index.js +1 -0
  115. package/dist/{optInView.d-BkNSv4Gk.d.cts → optInView.d-BbVUUeoG.d.cts} +15 -2
  116. package/dist/{optInView.d-B8zTORO2.d.ts → optInView.d-DVJcB4Gp.d.ts} +15 -2
  117. package/dist/optionalModule.d-DbJmsq5f.d.cts +1 -0
  118. package/dist/optionalModule.d-DbJmsq5f.d.ts +1 -0
  119. package/dist/{parse.d-B5JHS6Pr.d.ts → parse.d-CGeJrcAC.d.ts} +2 -1
  120. package/dist/{parse.d-BgjO82mY.d.cts → parse.d-Dk0BasyK.d.cts} +2 -1
  121. package/dist/{pets.d-OWxskXCP.d.ts → pets.d-DBopbeRe.d.ts} +2 -1
  122. package/dist/{pets.d-B_LoizOv.d.cts → pets.d-DVptPgi0.d.cts} +2 -1
  123. package/dist/{petsRepository.d-Ba3xhJcj.d.ts → petsRepository.d-BtuooSOW.d.ts} +2 -1
  124. package/dist/{petsRepository.d-B5DWzU7C.d.cts → petsRepository.d-Daef7u0o.d.cts} +2 -1
  125. package/dist/photo/index.cjs +1 -0
  126. package/dist/photo/index.d.cts +1 -0
  127. package/dist/photo/index.d.ts +1 -0
  128. package/dist/photo/index.js +1 -0
  129. package/dist/ports.d-BX4f4UsB.d.cts +1 -0
  130. package/dist/ports.d-BX4f4UsB.d.ts +1 -0
  131. package/dist/{ports.d-BDtwHxmW.d.ts → ports.d-BxCVSbSi.d.ts} +5 -4
  132. package/dist/{ports.d-gZNTn8Qf.d.cts → ports.d-CAT70bVD.d.cts} +5 -4
  133. package/dist/presentation.d-vy8kTGfR.d.cts +1 -0
  134. package/dist/presentation.d-vy8kTGfR.d.ts +1 -0
  135. package/dist/profile.d-CSs1wlXT.d.cts +1 -0
  136. package/dist/profile.d-CSs1wlXT.d.ts +1 -0
  137. package/dist/projection.d-CeIUsbSk.d.cts +1 -0
  138. package/dist/projection.d-CeIUsbSk.d.ts +1 -0
  139. package/dist/quickPrompts.d-NM_81Jc1.d.cts +1 -0
  140. package/dist/quickPrompts.d-NM_81Jc1.d.ts +1 -0
  141. package/dist/records/depth/index.cjs +2 -1
  142. package/dist/records/depth/index.d.cts +10 -9
  143. package/dist/records/depth/index.d.ts +10 -9
  144. package/dist/records/depth/index.js +2 -1
  145. package/dist/records/index.cjs +243 -200
  146. package/dist/records/index.d.cts +170 -73
  147. package/dist/records/index.d.ts +170 -73
  148. package/dist/records/index.js +244 -201
  149. package/dist/recordsAsk.d-C5CGSi3j.d.cts +1 -0
  150. package/dist/recordsAsk.d-C5CGSi3j.d.ts +1 -0
  151. package/dist/{requestFunnel.d-DFf9C__p.d.ts → requestFunnel.d-Cxt0JqYx.d.ts} +3 -2
  152. package/dist/{requestFunnel.d-CR4akGCY.d.cts → requestFunnel.d-mEu6B-n8.d.cts} +3 -2
  153. package/dist/resolve.d-CoQWUy1Y.d.cts +1 -0
  154. package/dist/resolve.d-CoQWUy1Y.d.ts +1 -0
  155. package/dist/{runtimeTypes.d-BqBOrZxa.d.ts → runtimeTypes.d-Bkcj_XQy.d.ts} +5 -4
  156. package/dist/{runtimeTypes.d-CHdH-y2c.d.cts → runtimeTypes.d-D_qHJROH.d.cts} +5 -4
  157. package/dist/{screenProps.d-B1dIANI0.d.cts → screenProps.d-CR1lrpzR.d.cts} +3 -2
  158. package/dist/{screenProps.d-CVqFJw-J.d.ts → screenProps.d-D9n-ancr.d.ts} +3 -2
  159. package/dist/server/events/index.cjs +2 -1
  160. package/dist/server/events/index.d.cts +3 -2
  161. package/dist/server/events/index.d.ts +3 -2
  162. package/dist/server/events/index.js +2 -1
  163. package/dist/server/index.cjs +2 -1
  164. package/dist/server/index.d.cts +4 -3
  165. package/dist/server/index.d.ts +4 -3
  166. package/dist/server/index.js +2 -1
  167. package/dist/sheetCopy.d-CAhLOxjc.d.cts +1 -0
  168. package/dist/sheetCopy.d-CAhLOxjc.d.ts +1 -0
  169. package/dist/sheetSeam.d-B09jf4YC.d.ts +1 -0
  170. package/dist/sheetSeam.d-BBuEIVsa.d.cts +1 -0
  171. package/dist/shop/index.cjs +17 -16
  172. package/dist/shop/index.d.cts +13 -3
  173. package/dist/shop/index.d.ts +13 -3
  174. package/dist/shop/index.js +17 -16
  175. package/dist/species.d-BXAIMh7I.d.cts +1 -0
  176. package/dist/species.d-BXAIMh7I.d.ts +1 -0
  177. package/dist/tabs/index.cjs +5 -4
  178. package/dist/tabs/index.d.cts +35 -15
  179. package/dist/tabs/index.d.ts +35 -15
  180. package/dist/tabs/index.js +6 -5
  181. package/dist/tabsModel.d-B7QMug1u.d.cts +16 -0
  182. package/dist/tabsModel.d-B7QMug1u.d.ts +16 -0
  183. package/dist/televet/booking/index.cjs +1 -0
  184. package/dist/televet/booking/index.d.cts +7 -6
  185. package/dist/televet/booking/index.d.ts +7 -6
  186. package/dist/televet/booking/index.js +1 -0
  187. package/dist/televet/call/index.cjs +1 -0
  188. package/dist/televet/call/index.d.cts +1 -0
  189. package/dist/televet/call/index.d.ts +1 -0
  190. package/dist/televet/call/index.js +1 -0
  191. package/dist/televet/index.cjs +1 -0
  192. package/dist/televet/index.d.cts +1 -0
  193. package/dist/televet/index.d.ts +1 -0
  194. package/dist/televet/index.js +1 -0
  195. package/dist/televetGlobal.d-CC-DrqkQ.d.ts +1 -0
  196. package/dist/televetGlobal.d-CKwDCbmN.d.cts +1 -0
  197. package/dist/testing/index.cjs +1 -0
  198. package/dist/testing/index.d.cts +2 -1
  199. package/dist/testing/index.d.ts +2 -1
  200. package/dist/testing/index.js +1 -0
  201. package/dist/testing/rn/index.cjs +2 -2
  202. package/dist/testing/rn/index.d.cts +11 -9
  203. package/dist/testing/rn/index.d.ts +11 -9
  204. package/dist/testing/rn/index.js +2 -2
  205. package/dist/testing/web/index.cjs +1 -0
  206. package/dist/testing/web/index.d.cts +8 -7
  207. package/dist/testing/web/index.d.ts +8 -7
  208. package/dist/testing/web/index.js +1 -0
  209. package/dist/texting/index.cjs +23 -17
  210. package/dist/texting/index.d.cts +9 -6
  211. package/dist/texting/index.d.ts +9 -6
  212. package/dist/texting/index.js +24 -18
  213. package/dist/threadOptions.d-6hfQS1x7.d.cts +55 -0
  214. package/dist/threadOptions.d-6hfQS1x7.d.ts +55 -0
  215. package/dist/threadOptions.d-BEG-LZrC.d.cts +147 -0
  216. package/dist/threadOptions.d-BerQM1Ql.d.ts +147 -0
  217. package/dist/{threadOptions.d-DZ0AoQGk.d.ts → threadOptions.d-BgBvSIw8.d.ts} +7 -40
  218. package/dist/{threadOptions.d-CnSfFVMr.d.cts → threadOptions.d-P9v7I7va.d.cts} +7 -40
  219. package/dist/{timelineRows.d-CF1KvLcQ.d.cts → timelineRows.d-C04lp_Vj.d.cts} +2 -1
  220. package/dist/{timelineRows.d-CtL0y7y1.d.ts → timelineRows.d-_7JemrY-.d.ts} +2 -1
  221. package/dist/tokens.d-BUVqme2D.d.cts +1 -0
  222. package/dist/tokens.d-BUVqme2D.d.ts +1 -0
  223. package/dist/typeStyle.d-B3Kdtjie.d.ts +1 -0
  224. package/dist/typeStyle.d-DmlwyJq-.d.cts +1 -0
  225. package/dist/uploadTransport.d-CWL7CdWP.d.cts +1 -0
  226. package/dist/uploadTransport.d-EGoUl7gX.d.ts +1 -0
  227. package/dist/{planSignals.d-DtxZoWGM.d.ts → useHealthPlanSubscription.d-CUbHE6eK.d.ts} +82 -3
  228. package/dist/{planSignals.d-Cl6n5QpS.d.cts → useHealthPlanSubscription.d-OhLZpn-n.d.cts} +82 -3
  229. package/dist/useIntroSeen.d-CTWFUthO.d.cts +1 -0
  230. package/dist/useIntroSeen.d-CTWFUthO.d.ts +1 -0
  231. package/dist/{usePresentation.d-BsR08Wxt.d.ts → usePresentation.d-CBtBx38t.d.ts} +41 -40
  232. package/dist/{usePresentation.d-CZS0qlLI.d.cts → usePresentation.d-YkJeq9mf.d.cts} +41 -40
  233. package/dist/useRecords.d-BYNX01El.d.cts +1 -0
  234. package/dist/useRecords.d-DWk61a4c.d.ts +1 -0
  235. package/dist/{useRecordsDepth.d-k-zYIHTe.d.cts → useRecordsDepth.d-FTImzp6T.d.cts} +2 -1
  236. package/dist/{useRecordsDepth.d-DTAxFf5s.d.ts → useRecordsDepth.d-_rqDIvoq.d.ts} +2 -1
  237. package/dist/useVetVisit.d-BtdwhmgD.d.cts +1 -0
  238. package/dist/useVetVisit.d-DoYQimyt.d.ts +1 -0
  239. package/dist/video/index.cjs +1 -0
  240. package/dist/video/index.d.cts +1 -0
  241. package/dist/video/index.d.ts +1 -0
  242. package/dist/video/index.js +1 -0
  243. package/dist/{view.d-CAWQjcY_.d.cts → view.d-Dd6AfMvG.d.cts} +4 -3
  244. package/dist/{view.d-BE7VOlsB.d.ts → view.d-gmYinlac.d.ts} +4 -3
  245. package/dist/visitIntent.d-D7_yVp1I.d.cts +1 -0
  246. package/dist/visitIntent.d-D7_yVp1I.d.ts +1 -0
  247. package/dist/web/consent/index.cjs +1 -0
  248. package/dist/web/consent/index.d.cts +6 -5
  249. package/dist/web/consent/index.d.ts +6 -5
  250. package/dist/web/consent/index.js +1 -0
  251. package/dist/web/health-plan/index.cjs +3 -2
  252. package/dist/web/health-plan/index.d.cts +16 -69
  253. package/dist/web/health-plan/index.d.ts +16 -69
  254. package/dist/web/health-plan/index.js +3 -2
  255. package/dist/web/index.cjs +20 -17
  256. package/dist/web/index.d.cts +35 -43
  257. package/dist/web/index.d.ts +35 -43
  258. package/dist/web/index.js +20 -17
  259. package/dist/web/intro/index.cjs +1 -0
  260. package/dist/web/intro/index.d.cts +7 -6
  261. package/dist/web/intro/index.d.ts +7 -6
  262. package/dist/web/intro/index.js +1 -0
  263. package/dist/web/notifications/index.cjs +1 -0
  264. package/dist/web/notifications/index.d.cts +4 -3
  265. package/dist/web/notifications/index.d.ts +4 -3
  266. package/dist/web/notifications/index.js +1 -0
  267. package/dist/web/records/depth/index.cjs +1 -0
  268. package/dist/web/records/depth/index.d.cts +10 -9
  269. package/dist/web/records/depth/index.d.ts +10 -9
  270. package/dist/web/records/depth/index.js +1 -0
  271. package/dist/web/records/index.cjs +1 -0
  272. package/dist/web/records/index.d.cts +12 -11
  273. package/dist/web/records/index.d.ts +12 -11
  274. package/dist/web/records/index.js +1 -0
  275. package/dist/web/records/upload/index.cjs +1 -0
  276. package/dist/web/records/upload/index.d.cts +1 -0
  277. package/dist/web/records/upload/index.d.ts +1 -0
  278. package/dist/web/records/upload/index.js +1 -0
  279. package/dist/web/records-sheet/index.cjs +12 -11
  280. package/dist/web/records-sheet/index.d.cts +1 -0
  281. package/dist/web/records-sheet/index.d.ts +1 -0
  282. package/dist/web/records-sheet/index.js +12 -11
  283. package/dist/web/shop/index.cjs +12 -11
  284. package/dist/web/shop/index.d.cts +4 -3
  285. package/dist/web/shop/index.d.ts +4 -3
  286. package/dist/web/shop/index.js +12 -11
  287. package/dist/web/televet/booking/index.cjs +1 -0
  288. package/dist/web/televet/booking/index.d.cts +7 -6
  289. package/dist/web/televet/booking/index.d.ts +7 -6
  290. package/dist/web/televet/booking/index.js +1 -0
  291. package/dist/web/televet/call/index.cjs +1 -0
  292. package/dist/web/televet/call/index.d.cts +1 -0
  293. package/dist/web/televet/call/index.d.ts +1 -0
  294. package/dist/web/televet/call/index.js +1 -0
  295. package/dist/web/televet/index.cjs +1 -0
  296. package/dist/web/televet/index.d.cts +1 -0
  297. package/dist/web/televet/index.d.ts +1 -0
  298. package/dist/web/televet/index.js +1 -0
  299. package/dist/web/texting/index.cjs +2 -1
  300. package/dist/web/texting/index.d.cts +9 -6
  301. package/dist/web/texting/index.d.ts +9 -6
  302. package/dist/web/texting/index.js +2 -1
  303. package/package.json +15 -6
  304. package/LICENSE +0 -21
  305. package/dist/tabsModel.d-BfIQg6yS.d.cts +0 -31
  306. package/dist/tabsModel.d-BfIQg6yS.d.ts +0 -31
@@ -1,3 +1,4 @@
1
+ /*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
1
2
  "use client";
2
3
  import{createContext,useMemo,useRef,useEffect,useSyncExternalStore,useCallback,useId,useState,useContext,createElement,Component}from"react";import{jsxs,jsx,Fragment}from"react/jsx-runtime";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 HostRenderBoundary=class extends Component{constructor(){super(...arguments);this.state={failed:false,key:this.props.resetKey}}static getDerivedStateFromError(){return{failed:true}}static getDerivedStateFromProps(props,state2){return Object.is(props.resetKey,state2.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 createElement(HostRenderBoundary,{fallback:fallback,resetKey:resetKey,children:createElement(RenderHost,{render:render})})}var CONTRACT_RETRYABILITY=/* @__PURE__ */Object.freeze([
3
4
  /* @__PURE__ */Object.freeze({wireCode:"AccessDeniedException",envelope:"http_envelope",httpStatus:403,retryable:false}),
@@ -154,7 +155,7 @@ return jsxs("div",{style:styles.petRow,children:[
154
155
  /* @__PURE__ */jsx("label",{htmlFor:`${ids}-pet`,style:styles.label,children:copy.defaultPetLabel}),
155
156
  /* @__PURE__ */jsxs("select",{id:`${ids}-pet`,value:value,disabled:saving,onChange:event=>onChoose(event.currentTarget.value),style:styles.input,children:[value===""?/* @__PURE__ */jsx("option",{value:"",children:copy.noPetSelected}):null,pets.map(pet=>/* @__PURE__ */jsx("option",{value:pet.petRef,children:pet.name??pet.petRef},pet.petRef))]}),
156
157
  /* @__PURE__ */jsxs("div",{style:styles.links,children:[
157
- /* @__PURE__ */jsx("button",{type:"button",disabled:!changed||saving,"aria-busy":saving?"true":void 0,onClick:()=>onSave(value),style:styles.secondary,children:saving?copy.savingPet:copy.savePet}),saved&&!changed?/* @__PURE__ */jsx("p",{style:styles.footnote,role:"status",children:copy.petSaved}):null]})]})}function makeStyles2(theme){let{color:color,radius:radius,space:space,type:type,slots:slots}=theme,line=size=>`${Math.round(size*type.lineHeight.snug)}px`,text3=(size,ink,weight)=>({margin:0,...faceCss(theme,weight),fontSize:size,lineHeight:line(size),color:ink}),cardInk=slots.card?.textColor;return{card:{boxSizing:"border-box",display:"flex",flexDirection:"column",gap:space.md,padding:space.lg,borderRadius:radius.lg,border:`1px solid ${color.brandBorder}`,backgroundColor:color.surface,...slotCss(slots.card,1)},title:text3(type.size.subtitle,cardInk??color.text.primary,"bold"),subtitle:text3(type.size.body,cardInk??color.text.primary,"bold"),body:text3(type.size.body,cardInk??color.text.secondary,"regular"),footnote:text3(type.size.caption,color.text.muted,"regular"),phone:text3(type.size.body,cardInk??color.text.primary,"bold"),label:text3(type.size.caption,cardInk??color.text.primary,"bold"),input:{boxSizing:"border-box",width:"100%",minHeight:44,padding:`0 ${space.md}px`,borderRadius:radius.md,border:`1px solid ${color.controlEdge}`,backgroundColor:color.surface,...faceCss(theme,"regular"),fontSize:type.size.body,color:color.text.primary,...slotCss(slots.input,1)},consentRow:{display:"flex",alignItems:"flex-start",gap:space.sm,cursor:"pointer"},box:{width:24,height:24,minWidth:24,margin:0,accentColor:color.brand,cursor:"pointer"},consentText:{...text3(type.size.caption,cardInk??color.text.secondary,"regular"),whiteSpace:"pre-wrap"},primary:{minHeight:44,padding:`0 ${space.lg}px`,borderRadius:radius.pill,border:"none",backgroundColor:color.brand,color:color.text.onBrand,cursor:"pointer",...faceCss(theme,"bold"),fontSize:type.size.body,...slotCss(slots.primaryButton)},secondary:{minHeight:44,padding:`0 ${space.lg}px`,borderRadius:radius.pill,border:`1px solid ${color.brandBorder}`,backgroundColor:color.surface,color:color.brandInk,cursor:"pointer",...faceCss(theme,"bold"),fontSize:type.size.caption},link:{alignSelf:"flex-start",minHeight:44,padding:0,border:"none",background:"none",cursor:"pointer",...faceCss(theme,"bold"),fontSize:type.size.caption,color:color.linkInk,...slotCss(slots.link)},links:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:space.md},notice:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:space.xs},noticeText:text3(type.size.caption,color.errorRed,"regular"),confirm:{display:"flex",flexDirection:"column",gap:space.sm,padding:space.md,borderRadius:radius.md,backgroundColor:color.surfaceSubtle},petRow:{display:"flex",flexDirection:"column",gap:space.xs},skeleton:{height:96,borderRadius:radius.md,backgroundColor:color.skeleton}}}var INTRO_OPEN_SYMBOL=/* @__PURE__ */Symbol.for("@everfur/sdk#IntroOpen@v1"),host=globalThis;function isIntroOpenState(value){if(typeof value!="object"||value===null)return false;let v=value;return v.holds instanceof Set&&v.listeners instanceof Set}var stored=host[INTRO_OPEN_SYMBOL],fresh=()=>({holds:/* @__PURE__ */new Set,listeners:/* @__PURE__ */new Set}),state=isIntroOpenState(stored)?stored:host[INTRO_OPEN_SYMBOL]=fresh();function isIntroOpen(){return state.holds.size>0}function subscribe(listener){return state.listeners.add(listener),()=>{state.listeners.delete(listener)}}function useIntroOpen(){return useSyncExternalStore(subscribe,isIntroOpen,isIntroOpen)}function resolveTextingAskDue(input){let readEnabled=input.enabled&&input.capabilityGranted&&input.hasProfile&&input.signedIn&&input.scheduleEligible&&!input.offeredThisSession,due=readEnabled&&input.identity==="none"&&input.surfaceReady;return{readEnabled:readEnabled,due:due}}var URGENT_LEVELS=/* @__PURE__ */new Set(["emergency","schedule_soon"]);function textingAskThreadReady(chat){if(chat.isBootstrapping===true||chat.isLoadingHistory===true||chat.isStreaming===true||chat.status==="error"||chat.stopped===true)return false;let last=chat.messages[chat.messages.length-1];return last===void 0||last.role!=="assistant"||last.pending===true||last.checkin!==void 0||last.text.trim().length===0?false:!(typeof last.urgencyLevel=="string"&&URGENT_LEVELS.has(last.urgencyLevel))}var IN_MEMORY_KVS=/* @__PURE__ */new WeakSet;function isInMemoryKv(kv){return IN_MEMORY_KVS.has(kv)}var TEXTING_ASK_SCHEDULE_KEY="everfur.texting.askSchedule.v1",TEXTING_ASK_SNOOZE_MS=2880*60*1e3,TEXTING_ASK_MAX_ASKS=3,EMPTY_TEXTING_ASK_ENTRY=/* @__PURE__ */Object.freeze({askCount:0,nextAskAt:null,completed:false});function isTextingAskEligible(read,now){if(read.status!=="ok")return false;let{entry:entry}=read;return entry.completed||entry.askCount>=TEXTING_ASK_MAX_ASKS?false:entry.nextAskAt===null||now>=entry.nextAskAt}function applyTextingAsk(entry,now){return{askCount:Math.min(entry.askCount+1,TEXTING_ASK_MAX_ASKS),nextAskAt:now+TEXTING_ASK_SNOOZE_MS,completed:entry.completed}}function applyTextingAskSnooze(entry,now){return{...entry,nextAskAt:now+TEXTING_ASK_SNOOZE_MS}}function applyTextingAskCompleted(entry){return{...entry,completed:true}}function nextTextingAskNumber(entry){return entry.askCount<=0?1:entry.askCount===1?2:3}function entryOf(raw){if(raw===null||typeof raw!="object"||Array.isArray(raw))return null;let o=raw,{askCount:askCount,nextAskAt:nextAskAt,completed:completed}=o;return typeof askCount!="number"||!Number.isInteger(askCount)||askCount<0||nextAskAt!==null&&(typeof nextAskAt!="number"||!Number.isFinite(nextAskAt))||typeof completed!="boolean"?null:{askCount:Math.min(askCount,TEXTING_ASK_MAX_ASKS),nextAskAt:nextAskAt,completed:completed}}function parseTextingAskMap(raw){let value;try{value=JSON.parse(raw)}catch{return null}if(value===null||typeof value!="object"||Array.isArray(value))return null;let out={};for(let[key,item]of Object.entries(value)){let entry=entryOf(item);if(entry===null)return null;out[key]=entry}return out}var SLOT=/* @__PURE__ */Symbol.for("@everfur/sdk/texting/ask-schedule@v1");function shared(){let host2=globalThis,state2=host2[SLOT];return state2===void 0&&(state2={sessions:/* @__PURE__ */new Map,sessionListeners:/* @__PURE__ */new Set,listeners:/* @__PURE__ */new Set,writeChain:Promise.resolve()},host2[SLOT]=state2),state2.sessionListeners===void 0&&(state2.sessionListeners=/* @__PURE__ */new Set),state2}async function load(kv){if(isInMemoryKv(kv))return{status:"unreadable"};let raw;try{raw=await kv.getItem(TEXTING_ASK_SCHEDULE_KEY)}catch{return{status:"unreadable"}}if(raw===null)try{return await kv.setItem(TEXTING_ASK_SCHEDULE_KEY,"{}"),await kv.getItem(TEXTING_ASK_SCHEDULE_KEY)===null?{status:"unreadable"}:{status:"ok",map:{}}}catch{return{status:"unreadable"}}let map=parseTextingAskMap(raw);if(map!==null)return{status:"ok",map:map};try{await kv.removeItem(TEXTING_ASK_SCHEDULE_KEY)}catch{}return{status:"unreadable"}}function subscribeTextingAskSchedule(listener){let{listeners:listeners2}=shared();return listeners2.add(listener),()=>{listeners2.delete(listener)}}function update(kv,userRef,change){let state2=shared(),run=async()=>{let loaded=await load(kv);if(loaded.status!=="ok")return;let current=loaded.map[userRef]??EMPTY_TEXTING_ASK_ENTRY;try{await kv.setItem(TEXTING_ASK_SCHEDULE_KEY,JSON.stringify({...loaded.map,[userRef]:change(current)}))}catch{return}for(let listener of[...state2.listeners])listener()},next=state2.writeChain.then(run,run);return state2.writeChain=next.catch(()=>{}),next}async function readTextingAskSchedule(kv,userRef){let loaded=await load(kv);return loaded.status!=="ok"?{status:"unreadable"}:{status:"ok",entry:loaded.map[userRef]??EMPTY_TEXTING_ASK_ENTRY}}function recordTextingAsk(kv,userRef,now=Date.now()){return update(kv,userRef,entry=>applyTextingAsk(entry,now))}function snoozeTextingAsk(kv,userRef,now=Date.now()){return update(kv,userRef,entry=>applyTextingAskSnooze(entry,now))}function markTextingAskCompleted(kv,userRef){return update(kv,userRef,applyTextingAskCompleted)}function textingAskSession(userRef){return shared().sessions.get(userRef)??null}function setTextingAskSession(userRef,entry){let state2=shared();state2.sessions.set(userRef,entry);for(let listener of[...state2.sessionListeners])listener()}function subscribeTextingAskSessions(listener){let{sessionListeners:sessionListeners}=shared();return sessionListeners.add(listener),()=>{sessionListeners.delete(listener)}}var NO_SNAPSHOT=()=>null;function useTextingGranted(){let{runtime:runtime}=useEverfurContext(),source=runtime.entitlements??null,subscribe2=useCallback(listener=>source===null?()=>{}:source.subscribe(listener),[source]),read=source===null?NO_SNAPSHOT:source.getSnapshot,snapshot=useSyncExternalStore(subscribe2,read,read);return useMemo(()=>snapshot!==null&&decideCapability("texting",snapshot.decisions,{isPending:snapshot.isPending}).enabled,[snapshot])}var IDLE=/* @__PURE__ */Object.freeze({status:"idle"});function useAskSchedule(userRef){let{runtime:runtime}=useEverfurContext(),kv=runtime.registry.services.kv,[state2,setState]=useState({user:null,value:IDLE});return useEffect(()=>{if(userRef===null)return;let live=true,read=()=>{readTextingAskSchedule(kv,userRef).then(value=>{live&&setState({user:userRef,value:{status:"ready",read:value}})})};read();let unsubscribe=subscribeTextingAskSchedule(read);return()=>{live=false,unsubscribe()}},[kv,userRef]),state2.user===userRef?state2.value:IDLE}function identityOf(texting){switch(texting.status){case"enroll":case"requesting":case"code":case"confirming":return"none";case"verified":case"optingOut":case"optedOut":return"exists";default:return"unknown"}}function useTextingAsk(options={}){let enabled=options.enabled!==false,ready=options.ready!==false,surface=options.surface??"prompt",{runtime:runtime,userRef:userRef}=useEverfurContext(),kv=runtime.registry.services.kv,granted=useTextingGranted(),schedule=useAskSchedule(enabled&&userRef!==null?userRef:null),readSession=useCallback(()=>userRef===null?null:textingAskSession(userRef),[userRef]),current=useSyncExternalStore(subscribeTextingAskSessions,readSession,readSession),update2=useCallback(entry=>{userRef!==null&&setTextingAskSession(userRef,entry)},[userRef]),mine=current!==null&&current.surface===surface,handedOff=current!==null&&current.fromPrompt===true,stage=mine?current.stage==="handoff"?"hidden":current.stage:surface==="prompt"&&handedOff?"dismissed":"hidden",now=Date.now(),scheduleEligible=schedule.status==="ready"&&isTextingAskEligible(schedule.read,now),[readFor,setReadFor]=useState(null),texting=useTextingState(userRef!==null&&readFor===userRef||stage!=="hidden"||mine),identity=identityOf(texting),{readEnabled:readEnabled,due:due}=resolveTextingAskDue({enabled:enabled,capabilityGranted:granted,hasProfile:texting.profile!==null,signedIn:userRef!==null,scheduleEligible:scheduleEligible,offeredThisSession:current!==null,identity:identity,surfaceReady:ready});useEffect(()=>{readEnabled&&userRef!==null&&setReadFor(userRef)},[readEnabled,userRef]);let askNumber=current?.askNumber??(schedule.status==="ready"&&schedule.read.status==="ok"?nextTextingAskNumber(schedule.read.entry):1);useEffect(()=>{!due||userRef===null||textingAskSession(userRef)!==null||update2({surface:surface,stage:"offered",answered:false,askNumber:askNumber})},[due,userRef,update2,askNumber,surface]),useEffect(()=>{!mine||current.stage!=="handoff"||enabled&&ready&&granted&&texting.profile!==null&&identity==="none"&&update2({...current,stage:"offered"})},[mine,current,enabled,ready,granted,texting.profile,identity,update2]);let completed=schedule.status==="ready"&&schedule.read.status==="ok"&&schedule.read.entry.completed;useEffect(()=>{userRef===null||identity!=="exists"||completed||schedule.status!=="ready"||markTextingAskCompleted(kv,userRef)},[identity,completed,schedule.status,kv,userRef]),useEffect(()=>{mine&&current.stage==="enrolling"&&texting.status==="verified"&&update2({...current,stage:"verified"})},[mine,current,texting.status,update2]);let answer=useCallback(entry=>userRef===null||entry.answered?entry:(recordTextingAsk(kv,userRef),{...entry,answered:true}),[kv,userRef]),accept=useCallback(()=>{mine&&current.stage==="offered"&&update2({...current,stage:"enrolling"})},[mine,current,update2]),close=useCallback(()=>{mine&&current.stage==="enrolling"&&update2({...current,stage:"offered"})},[mine,current,update2]),dismiss=useCallback(()=>{if(!(!mine||current.stage!=="offered"&&current.stage!=="enrolling")){if(surface==="prompt"){update2({...answer(current),surface:"chat",stage:"handoff",fromPrompt:true});return}current.fromPrompt===true&&current.answered&&userRef!==null&&snoozeTextingAsk(kv,userRef),update2({...answer(current),stage:"dismissed"})}},[mine,current,surface,update2,answer,kv,userRef]),{start:startCode}=texting,start=useCallback(async phone=>!mine||current.stage!=="enrolling"?false:(current.answered||update2(answer(current)),startCode(phone)),[mine,current,update2,answer,startCode]),brand=texting.profile?.brandName??"";return useMemo(()=>({stage:userRef===null?"hidden":stage,brand:brand,askNumber:askNumber,texting:texting,accept:accept,dismiss:dismiss,close:close,start:start}),[userRef,stage,brand,askNumber,texting,accept,dismiss,close,start])}var FOCUSABLE='button:not([disabled]), input:not([disabled]), textarea:not([disabled]), select:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])';function isDialogElement(node){return node.tagName==="DIALOG"}function useModalDialog(open,onClose,returnFocusTo,options){let escapeAtKeyDown=options?.escapeAtKeyDown===true,dialogRef=useRef(null),wasOpen=useRef(false),opener=useRef(null),trigger=useRef(returnFocusTo);trigger.current=returnFocusTo;let restoreFocus=useCallback(()=>{if(!wasOpen.current)return;wasOpen.current=false;let target=trigger.current===void 0?opener.current:trigger.current.current;target&&target.isConnected&&target.focus(),(!target||!target.isConnected||document.activeElement===target)&&(opener.current=null)},[]);useEffect(()=>{if(!open){restoreFocus();return}let node=dialogRef.current;if(!wasOpen.current){let active=typeof document>"u"?null:document.activeElement;active!==null&&node!==null&&node.contains(active)||(opener.current=active instanceof HTMLElement?active:null)}if(wasOpen.current=true,node===null)return;if(!isDialogElement(node)){node.contains(document.activeElement)||(node.querySelector(FOCUSABLE)??node).focus();return}let dialog=node;typeof dialog.showModal=="function"?dialog.open||dialog.showModal():dialog.setAttribute("open","")},[open,restoreFocus]),useEffect(()=>restoreFocus,[restoreFocus]),useEffect(()=>{let node=dialogRef.current;if(!open||node===null||!isDialogElement(node))return;let dialog=node;if(typeof dialog.showModal!="function")return;let lastFocused=null,onFocusIn=event=>{event.target instanceof HTMLElement&&(lastFocused=event.target)},onNativeClose=()=>{if(!dialog.isConnected||dialog.open)return;let back=lastFocused;dialog.showModal(),back!==null&&back.isConnected&&dialog.contains(back)&&document.activeElement!==back&&back.focus()};return dialog.addEventListener("focusin",onFocusIn),dialog.addEventListener("close",onNativeClose),()=>{dialog.removeEventListener("focusin",onFocusIn),dialog.removeEventListener("close",onNativeClose)}},[open]);let onKeyDown=useCallback(event=>{let node=dialogRef.current;if(node===null)return;if(event.key==="Escape"&&!isDialogElement(node)){event.preventDefault(),event.stopPropagation(),onClose();return}if(event.key==="Escape"&&escapeAtKeyDown);if(event.key!=="Tab")return;let focusable=Array.from(node.querySelectorAll(FOCUSABLE)),first=focusable[0],last=focusable[focusable.length-1];if(!first||!last){event.preventDefault();return}let active=document.activeElement;event.shiftKey&&(active===first||!node.contains(active))?(event.preventDefault(),last.focus()):!event.shiftKey&&(active===last||!node.contains(active))&&(event.preventDefault(),first.focus())},[onClose,escapeAtKeyDown]),onCancel=useCallback(event=>{event.target===event.currentTarget&&(event.preventDefault(),onClose())},[onClose]);return{dialogRef:dialogRef,onKeyDown:onKeyDown,onCancel:onCancel}}var FOCUS_RING_WIDTH=2,SELF_FOCUS_RING_ATTRIBUTE="data-ef-focus-ring";function ChatTextingAskController({enabled:enabled,ready:ready,onAsk:onAsk}){let ask=useTextingAsk({enabled:enabled,ready:ready,surface:"chat"});return useEffect(()=>{callHost(onAsk,ask)},[ask,onAsk]),null}function textingAskLines(ask){return{line:TEXTING_BRAND_COPY.chatAskLine(ask.brand),accept:TEXTING_COPY.promptAccept,dismiss:TEXTING_COPY.promptDismiss,verified:TEXTING_BRAND_COPY.chatAskVerified(ask.brand)}}function ChatTextingAskComposer({ask:ask}){let theme=useEverfurTheme(),styles=useMemo(()=>makeAskStyles(theme),[theme]);/* @__PURE__ */
158
+ /* @__PURE__ */jsx("button",{type:"button",disabled:!changed||saving,"aria-busy":saving?"true":void 0,onClick:()=>onSave(value),style:styles.secondary,children:saving?copy.savingPet:copy.savePet}),saved&&!changed?/* @__PURE__ */jsx("p",{style:styles.footnote,role:"status",children:copy.petSaved}):null]})]})}function makeStyles2(theme){let{color:color,radius:radius,space:space,type:type,slots:slots}=theme,line=size=>`${Math.round(size*type.lineHeight.snug)}px`,text3=(size,ink,weight)=>({margin:0,...faceCss(theme,weight),fontSize:size,lineHeight:line(size),color:ink}),cardInk=slots.card?.textColor;return{card:{boxSizing:"border-box",display:"flex",flexDirection:"column",gap:space.md,padding:space.lg,borderRadius:radius.lg,border:`1px solid ${color.brandBorder}`,backgroundColor:color.surface,...slotCss(slots.card,1)},title:text3(type.size.subtitle,cardInk??color.text.primary,"bold"),subtitle:text3(type.size.body,cardInk??color.text.primary,"bold"),body:text3(type.size.body,cardInk??color.text.secondary,"regular"),footnote:text3(type.size.caption,color.text.muted,"regular"),phone:text3(type.size.body,cardInk??color.text.primary,"bold"),label:text3(type.size.caption,cardInk??color.text.primary,"bold"),input:{boxSizing:"border-box",width:"100%",minHeight:44,padding:`0 ${space.md}px`,borderRadius:radius.md,border:`1px solid ${color.controlEdge}`,backgroundColor:color.surface,...faceCss(theme,"regular"),fontSize:type.size.body,color:color.text.primary,...slotCss(slots.input,1)},consentRow:{display:"flex",alignItems:"flex-start",gap:space.sm,cursor:"pointer"},box:{width:24,height:24,minWidth:24,margin:0,accentColor:color.brand,cursor:"pointer"},consentText:{...text3(type.size.caption,cardInk??color.text.secondary,"regular"),whiteSpace:"pre-wrap"},primary:{minHeight:44,padding:`0 ${space.lg}px`,borderRadius:radius.pill,border:"none",backgroundColor:color.brand,color:color.text.onBrand,cursor:"pointer",...faceCss(theme,"bold"),fontSize:type.size.body,...slotCss(slots.primaryButton)},secondary:{minHeight:44,padding:`0 ${space.lg}px`,borderRadius:radius.pill,border:`1px solid ${color.brandBorder}`,backgroundColor:color.surface,color:color.brandInk,cursor:"pointer",...faceCss(theme,"bold"),fontSize:type.size.caption},link:{alignSelf:"flex-start",minHeight:44,padding:0,border:"none",background:"none",cursor:"pointer",...faceCss(theme,"bold"),fontSize:type.size.caption,color:color.linkInk,...slotCss(slots.link)},links:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:space.md},notice:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:space.xs},noticeText:text3(type.size.caption,color.errorRed,"regular"),confirm:{display:"flex",flexDirection:"column",gap:space.sm,padding:space.md,borderRadius:radius.md,backgroundColor:color.surfaceSubtle},petRow:{display:"flex",flexDirection:"column",gap:space.xs},skeleton:{height:96,borderRadius:radius.md,backgroundColor:color.skeleton}}}var INTRO_OPEN_SYMBOL=/* @__PURE__ */Symbol.for("@everfur/sdk#IntroOpen@v1"),host=globalThis;function isIntroOpenState(value){if(typeof value!="object"||value===null)return false;let v=value;return v.holds instanceof Set&&v.listeners instanceof Set}var stored=host[INTRO_OPEN_SYMBOL],fresh=()=>({holds:/* @__PURE__ */new Set,listeners:/* @__PURE__ */new Set}),state=isIntroOpenState(stored)?stored:host[INTRO_OPEN_SYMBOL]=fresh();function isIntroOpen(){return state.holds.size>0}function subscribe(listener){return state.listeners.add(listener),()=>{state.listeners.delete(listener)}}function useIntroOpen(){return useSyncExternalStore(subscribe,isIntroOpen,isIntroOpen)}function resolveTextingAskDue(input){let readEnabled=input.enabled&&input.capabilityGranted&&input.hasProfile&&input.signedIn&&input.scheduleEligible&&!input.offeredThisSession,due=readEnabled&&input.identity==="none"&&input.surfaceReady;return{readEnabled:readEnabled,due:due}}var URGENT_LEVELS=/* @__PURE__ */new Set(["emergency","schedule_soon"]);function textingAskThreadReady(chat){if(chat.isBootstrapping===true||chat.isLoadingHistory===true||chat.isStreaming===true||chat.status==="error"||chat.stopped===true)return false;let last=chat.messages[chat.messages.length-1];return last===void 0||last.role!=="assistant"||last.pending===true||last.checkin!==void 0||last.text.trim().length===0?false:!(typeof last.urgencyLevel=="string"&&URGENT_LEVELS.has(last.urgencyLevel))}var IN_MEMORY_KVS=/* @__PURE__ */new WeakSet;function isInMemoryKv(kv){return IN_MEMORY_KVS.has(kv)}var TEXTING_ASK_SCHEDULE_KEY="everfur.texting.askSchedule.v1",TEXTING_ASK_SNOOZE_MS=2880*60*1e3,TEXTING_ASK_MAX_ASKS=3,EMPTY_TEXTING_ASK_ENTRY=/* @__PURE__ */Object.freeze({askCount:0,nextAskAt:null,completed:false});function isTextingAskEligible(read,now){if(read.status!=="ok")return false;let{entry:entry}=read;return entry.completed||entry.askCount>=TEXTING_ASK_MAX_ASKS?false:entry.nextAskAt===null||now>=entry.nextAskAt}function applyTextingAsk(entry,now){return{askCount:Math.min(entry.askCount+1,TEXTING_ASK_MAX_ASKS),nextAskAt:now+TEXTING_ASK_SNOOZE_MS,completed:entry.completed}}function applyTextingAskSnooze(entry,now){return{...entry,nextAskAt:now+TEXTING_ASK_SNOOZE_MS}}function applyTextingAskCompleted(entry){return{...entry,completed:true}}function nextTextingAskNumber(entry){return entry.askCount<=0?1:entry.askCount===1?2:3}function entryOf(raw){if(raw===null||typeof raw!="object"||Array.isArray(raw))return null;let o=raw,{askCount:askCount,nextAskAt:nextAskAt,completed:completed}=o;return typeof askCount!="number"||!Number.isInteger(askCount)||askCount<0||nextAskAt!==null&&(typeof nextAskAt!="number"||!Number.isFinite(nextAskAt))||typeof completed!="boolean"?null:{askCount:Math.min(askCount,TEXTING_ASK_MAX_ASKS),nextAskAt:nextAskAt,completed:completed}}function parseTextingAskMap(raw){let value;try{value=JSON.parse(raw)}catch{return null}if(value===null||typeof value!="object"||Array.isArray(value))return null;let out={};for(let[key,item]of Object.entries(value)){let entry=entryOf(item);if(entry===null)return null;out[key]=entry}return out}var SLOT=/* @__PURE__ */Symbol.for("@everfur/sdk/texting/ask-schedule@v1");function shared(){let host2=globalThis,state2=host2[SLOT];return state2===void 0&&(state2={sessions:/* @__PURE__ */new Map,sessionListeners:/* @__PURE__ */new Set,listeners:/* @__PURE__ */new Set,writeChain:Promise.resolve()},host2[SLOT]=state2),state2.sessionListeners===void 0&&(state2.sessionListeners=/* @__PURE__ */new Set),state2}async function load(kv){if(isInMemoryKv(kv))return{status:"unreadable"};let raw;try{raw=await kv.getItem(TEXTING_ASK_SCHEDULE_KEY)}catch{return{status:"unreadable"}}if(raw===null)try{return await kv.setItem(TEXTING_ASK_SCHEDULE_KEY,"{}"),await kv.getItem(TEXTING_ASK_SCHEDULE_KEY)===null?{status:"unreadable"}:{status:"ok",map:{}}}catch{return{status:"unreadable"}}let map=parseTextingAskMap(raw);if(map!==null)return{status:"ok",map:map};try{await kv.removeItem(TEXTING_ASK_SCHEDULE_KEY)}catch{}return{status:"unreadable"}}function subscribeTextingAskSchedule(listener){let{listeners:listeners2}=shared();return listeners2.add(listener),()=>{listeners2.delete(listener)}}function update(kv,userRef,change){let state2=shared(),run=async()=>{let loaded=await load(kv);if(loaded.status!=="ok")return;let current=loaded.map[userRef]??EMPTY_TEXTING_ASK_ENTRY;try{await kv.setItem(TEXTING_ASK_SCHEDULE_KEY,JSON.stringify({...loaded.map,[userRef]:change(current)}))}catch{return}for(let listener of[...state2.listeners])listener()},next=state2.writeChain.then(run,run);return state2.writeChain=next.catch(()=>{}),next}async function readTextingAskSchedule(kv,userRef){let loaded=await load(kv);return loaded.status!=="ok"?{status:"unreadable"}:{status:"ok",entry:loaded.map[userRef]??EMPTY_TEXTING_ASK_ENTRY}}function recordTextingAsk(kv,userRef,now=Date.now()){return update(kv,userRef,entry=>applyTextingAsk(entry,now))}function snoozeTextingAsk(kv,userRef,now=Date.now()){return update(kv,userRef,entry=>applyTextingAskSnooze(entry,now))}function markTextingAskCompleted(kv,userRef){return update(kv,userRef,applyTextingAskCompleted)}function textingAskSession(userRef){return shared().sessions.get(userRef)??null}function setTextingAskSession(userRef,entry){let state2=shared();state2.sessions.set(userRef,entry);for(let listener of[...state2.sessionListeners])listener()}function subscribeTextingAskSessions(listener){let{sessionListeners:sessionListeners}=shared();return sessionListeners.add(listener),()=>{sessionListeners.delete(listener)}}var NO_SNAPSHOT=()=>null;function useTextingGranted(){let{runtime:runtime}=useEverfurContext(),source=runtime.entitlements??null,subscribe2=useCallback(listener=>source===null?()=>{}:source.subscribe(listener),[source]),read=source===null?NO_SNAPSHOT:source.getSnapshot,snapshot=useSyncExternalStore(subscribe2,read,read);return useMemo(()=>snapshot!==null&&decideCapability("texting",snapshot.decisions,{isPending:snapshot.isPending}).enabled,[snapshot])}var IDLE=/* @__PURE__ */Object.freeze({status:"idle"});function useAskSchedule(userRef){let{runtime:runtime}=useEverfurContext(),kv=runtime.registry.services.kv,[state2,setState]=useState({user:null,value:IDLE});return useEffect(()=>{if(userRef===null)return;let live=true,read=()=>{readTextingAskSchedule(kv,userRef).then(value=>{live&&setState({user:userRef,value:{status:"ready",read:value}})})};read();let unsubscribe=subscribeTextingAskSchedule(read);return()=>{live=false,unsubscribe()}},[kv,userRef]),state2.user===userRef?state2.value:IDLE}function identityOf(texting){switch(texting.status){case"enroll":case"requesting":case"code":case"confirming":return"none";case"verified":case"optingOut":case"optedOut":return"exists";default:return"unknown"}}function useTextingAsk(options={}){let enabled=options.enabled!==false,ready=options.ready!==false,surface=options.surface??"prompt",entryWanted=options.entry===true,{runtime:runtime,userRef:userRef}=useEverfurContext(),kv=runtime.registry.services.kv,granted=useTextingGranted(),schedule=useAskSchedule(enabled&&userRef!==null?userRef:null),readSession=useCallback(()=>userRef===null?null:textingAskSession(userRef),[userRef]),current=useSyncExternalStore(subscribeTextingAskSessions,readSession,readSession),update2=useCallback(entry=>{userRef!==null&&setTextingAskSession(userRef,entry)},[userRef]),mine=current!==null&&current.surface===surface,handedOff=current!==null&&current.fromPrompt===true,stage=mine?current.stage==="handoff"?"hidden":current.stage:surface==="prompt"&&handedOff?"dismissed":"hidden",now=Date.now(),scheduleEligible=schedule.status==="ready"&&isTextingAskEligible(schedule.read,now),[readFor,setReadFor]=useState(null),entryRead=entryWanted&&userRef!==null&&granted,texting=useTextingState(userRef!==null&&readFor===userRef||stage!=="hidden"||mine||entryRead),identity=identityOf(texting),{readEnabled:readEnabled,due:due}=resolveTextingAskDue({enabled:enabled,capabilityGranted:granted,hasProfile:texting.profile!==null,signedIn:userRef!==null,scheduleEligible:scheduleEligible,offeredThisSession:current!==null,identity:identity,surfaceReady:ready});useEffect(()=>{readEnabled&&userRef!==null&&setReadFor(userRef)},[readEnabled,userRef]);let askNumber=current?.askNumber??(schedule.status==="ready"&&schedule.read.status==="ok"?nextTextingAskNumber(schedule.read.entry):1);useEffect(()=>{!due||userRef===null||textingAskSession(userRef)!==null||update2({surface:surface,stage:"offered",answered:false,askNumber:askNumber})},[due,userRef,update2,askNumber,surface]),useEffect(()=>{!mine||current.stage!=="handoff"||enabled&&ready&&granted&&texting.profile!==null&&identity==="none"&&update2({...current,stage:"offered"})},[mine,current,enabled,ready,granted,texting.profile,identity,update2]);let completed=schedule.status==="ready"&&schedule.read.status==="ok"&&schedule.read.entry.completed;useEffect(()=>{userRef===null||identity!=="exists"||completed||schedule.status!=="ready"||markTextingAskCompleted(kv,userRef)},[identity,completed,schedule.status,kv,userRef]),useEffect(()=>{mine&&current.stage==="enrolling"&&texting.status==="verified"&&update2({...current,stage:"verified"})},[mine,current,texting.status,update2]);let answer=useCallback(entry=>userRef===null||entry.answered?entry:(recordTextingAsk(kv,userRef),{...entry,answered:true}),[kv,userRef]),accept=useCallback(()=>{mine&&current.stage==="offered"&&update2({...current,stage:"enrolling"})},[mine,current,update2]),close=useCallback(()=>{if(!mine||current.stage!=="enrolling")return;let{back:back,...rest}=current;update2({...rest,stage:back??"offered"})},[mine,current,update2]),dismiss=useCallback(()=>{if(!(!mine||current.stage!=="offered"&&current.stage!=="enrolling")){if(surface==="prompt"){update2({...answer(current),surface:"chat",stage:"handoff",fromPrompt:true});return}current.fromPrompt===true&&current.answered&&userRef!==null&&snoozeTextingAsk(kv,userRef),update2({...answer(current),stage:"dismissed"})}},[mine,current,surface,update2,answer,kv,userRef]),{start:startCode}=texting,start=useCallback(async phone=>!mine||current.stage!=="enrolling"?false:(current.answered||update2(answer(current)),startCode(phone)),[mine,current,update2,answer,startCode]),canOpen=entryRead&&texting.profile!==null&&identity==="none"&&stage!=="enrolling"&&stage!=="verified",open=useCallback(()=>{if(!canOpen||userRef===null)return;let was=mine?current:null;update2({surface:surface,stage:"enrolling",answered:was?.answered??false,askNumber:current?.askNumber??askNumber,...was?.fromPrompt===true?{fromPrompt:true}:{},back:was?.stage==="offered"?"offered":"dismissed"})},[canOpen,userRef,mine,current,update2,surface,askNumber]),brand=texting.profile?.brandName??"";return useMemo(()=>({stage:userRef===null?"hidden":stage,brand:brand,askNumber:askNumber,texting:texting,accept:accept,dismiss:dismiss,close:close,start:start,canOpen:canOpen,open:open}),[userRef,stage,brand,askNumber,texting,accept,dismiss,close,start,canOpen,open])}var FOCUSABLE='button:not([disabled]), input:not([disabled]), textarea:not([disabled]), select:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])';function isDialogElement(node){return node.tagName==="DIALOG"}function useModalDialog(open,onClose,returnFocusTo,options){let escapeAtKeyDown=options?.escapeAtKeyDown===true,dialogRef=useRef(null),wasOpen=useRef(false),opener=useRef(null),trigger=useRef(returnFocusTo);trigger.current=returnFocusTo;let restoreFocus=useCallback(()=>{if(!wasOpen.current)return;wasOpen.current=false;let target=trigger.current===void 0?opener.current:trigger.current.current;target&&target.isConnected&&target.focus(),(!target||!target.isConnected||document.activeElement===target)&&(opener.current=null)},[]);useEffect(()=>{if(!open){restoreFocus();return}let node=dialogRef.current;if(!wasOpen.current){let active=typeof document>"u"?null:document.activeElement;active!==null&&node!==null&&node.contains(active)||(opener.current=active instanceof HTMLElement?active:null)}if(wasOpen.current=true,node===null)return;if(!isDialogElement(node)){node.contains(document.activeElement)||(node.querySelector(FOCUSABLE)??node).focus();return}let dialog=node;typeof dialog.showModal=="function"?dialog.open||dialog.showModal():dialog.setAttribute("open","")},[open,restoreFocus]),useEffect(()=>restoreFocus,[restoreFocus]),useEffect(()=>{let node=dialogRef.current;if(!open||node===null||!isDialogElement(node))return;let dialog=node;if(typeof dialog.showModal!="function")return;let lastFocused=null,onFocusIn=event=>{event.target instanceof HTMLElement&&(lastFocused=event.target)},onNativeClose=()=>{if(!dialog.isConnected||dialog.open)return;let back=lastFocused;dialog.showModal(),back!==null&&back.isConnected&&dialog.contains(back)&&document.activeElement!==back&&back.focus()};return dialog.addEventListener("focusin",onFocusIn),dialog.addEventListener("close",onNativeClose),()=>{dialog.removeEventListener("focusin",onFocusIn),dialog.removeEventListener("close",onNativeClose)}},[open]);let onKeyDown=useCallback(event=>{let node=dialogRef.current;if(node===null)return;if(event.key==="Escape"&&!isDialogElement(node)){event.preventDefault(),event.stopPropagation(),onClose();return}if(event.key==="Escape"&&escapeAtKeyDown);if(event.key!=="Tab")return;let focusable=Array.from(node.querySelectorAll(FOCUSABLE)),first=focusable[0],last=focusable[focusable.length-1];if(!first||!last){event.preventDefault();return}let active=document.activeElement;event.shiftKey&&(active===first||!node.contains(active))?(event.preventDefault(),last.focus()):!event.shiftKey&&(active===last||!node.contains(active))&&(event.preventDefault(),first.focus())},[onClose,escapeAtKeyDown]),onCancel=useCallback(event=>{event.target===event.currentTarget&&(event.preventDefault(),onClose())},[onClose]);return{dialogRef:dialogRef,onKeyDown:onKeyDown,onCancel:onCancel}}var FOCUS_RING_WIDTH=2,SELF_FOCUS_RING_ATTRIBUTE="data-ef-focus-ring";function ChatTextingAskController({enabled:enabled,ready:ready,onAsk:onAsk,entry:entry=false}){let ask=useTextingAsk({enabled:enabled,ready:ready,surface:"chat",entry:entry});return useEffect(()=>{callHost(onAsk,ask)},[ask,onAsk]),null}function textingAskLines(ask){return{line:TEXTING_BRAND_COPY.chatAskLine(ask.brand),accept:TEXTING_COPY.promptAccept,dismiss:TEXTING_COPY.promptDismiss,verified:TEXTING_BRAND_COPY.chatAskVerified(ask.brand)}}function ChatTextingAskComposer({ask:ask}){let theme=useEverfurTheme(),styles=useMemo(()=>makeAskStyles(theme),[theme]);/* @__PURE__ */
158
159
  return jsx(AskEntry,{ask:ask,styles:styles})}function AskEntry({ask:ask,styles:styles}){let ids=useId(),{texting:texting}=ask,{status:status,profile:profile,snapshot:snapshot}=texting,[phone,setPhone]=useState(""),[consented,setConsented]=useState(false),[code,setCode]=useState(""),[problem,setProblem]=useState(null),phoneRef=useRef(null),codeRef=useRef(null),[fieldFocused,setFieldFocused]=useState(false),fieldFocus={[SELF_FOCUS_RING_ATTRIBUTE]:"self",onFocus:()=>setFieldFocused(true),onBlur:()=>setFieldFocused(false)},pill=fieldFocused?{...styles.pill,...styles.pillFocused}:styles.pill,onNumber=status==="enroll"||status==="requesting"&&!snapshot.resending,onCode=status==="code"||status==="confirming"||status==="requesting";useEffect(()=>{setProblem(null)},[status]),useEffect(()=>{onNumber?phoneRef.current?.focus():onCode&&codeRef.current?.focus()},[onNumber,onCode]);let close=/* @__PURE__ */jsx("button",{type:"button","aria-label":TEXTING_COPY.close,onClick:ask.close,style:styles.close,children:/* @__PURE__ */jsx("svg",{width:18,height:18,viewBox:"0 0 24 24","aria-hidden":"true",focusable:"false",children:/* @__PURE__ */jsx("path",{d:"M6 6l12 12M18 6L6 18",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",fill:"none"})})}),refusal=snapshot.error===null?null:/* @__PURE__ */jsxs("div",{role:"alert",style:styles.notice,children:[
159
160
  /* @__PURE__ */jsx("p",{style:styles.noticeText,children:textingErrorText(snapshot.error,snapshot.failedAction,snapshot.codeRefusal)}),textingSupportText(snapshot.error)===null?null:/* @__PURE__ */jsx("p",{style:styles.footnote,children:textingSupportText(snapshot.error)})]}),inputProblem=problem===null?null:/* @__PURE__ */jsx("p",{role:"alert",style:styles.noticeText,children:textingInputProblemText(problem)});if(profile===null)return null;if(status==="loading"||status==="failed"||status==="signedOut"||status==="unavailable")/* @__PURE__ */
160
161
  return jsx("div",{style:styles.root,"data-everfur-texting-ask":"entry","aria-busy":status==="loading"?"true":void 0,children:/* @__PURE__ */jsxs("div",{style:styles.head,children:[
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@everfur/sdk",
3
- "version": "0.15.0",
3
+ "version": "0.16.0",
4
4
  "description": "Embed Everfur veterinary chat, health records, and pet-state surfaces in your React Native app.",
5
- "license": "MIT",
5
+ "license": "SEE LICENSE IN LICENSE.md",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "git+https://github.com/Everfur-Health/everfur-sdk-rn.git"
9
9
  },
10
- "homepage": "https://docs.everfur.com/",
10
+ "homepage": "https://docs.everfur.com",
11
11
  "bugs": {
12
12
  "email": "support@everfur.com"
13
13
  },
@@ -16,6 +16,9 @@
16
16
  "sideEffects": false,
17
17
  "files": [
18
18
  "CHANGELOG.md",
19
+ "LICENSE.md",
20
+ "SDK-LICENSE.txt",
21
+ "THIRD_PARTY_NOTICES",
19
22
  "dist",
20
23
  "!dist/**/*.map",
21
24
  "animations",
@@ -586,9 +589,9 @@
586
589
  "./package.json": "./package.json"
587
590
  },
588
591
  "scripts": {
589
- "build": "tsup && npm run build:dts && node scripts/strip-sourcemap-pragma.mjs && node scripts/add-use-client.mjs && node scripts/generate-subpath-shims.mjs",
592
+ "build": "tsup && npm run build:dts && node scripts/strip-sourcemap-pragma.mjs && node scripts/add-use-client.mjs && node scripts/generate-subpath-shims.mjs && node scripts/package-license.mjs --dir dist",
590
593
  "build:dts": "rm -rf temp/dts && tsc -p tsconfig.dts.json && tsup --config tsup.dts.config.ts",
591
- "build:cdn": "rm -rf dist-cdn && tsup --config tsup.cdn.config.ts && node scripts/strip-sourcemap-pragma.mjs --dir dist-cdn && node scripts/build-public-docs.mjs",
594
+ "build:cdn": "rm -rf dist-cdn && tsup --config tsup.cdn.config.ts && node scripts/strip-sourcemap-pragma.mjs --dir dist-cdn && node scripts/build-public-docs.mjs && node scripts/package-license.mjs --dir dist-cdn",
592
595
  "build:bob": "react-native-builder-bob build",
593
596
  "clean": "rm -rf dist dist-cdn lib temp && node scripts/generate-subpath-shims.mjs --clean",
594
597
  "typecheck": "tsc --noEmit",
@@ -605,6 +608,8 @@
605
608
  "api:update": "api-extractor run --local --config api-extractor.json && api-extractor run --local --config api-extractor.server.json && api-extractor run --local --config api-extractor.server-events.json && api-extractor run --local --config api-extractor.records.json && api-extractor run --local --config api-extractor.video.json && api-extractor run --local --config api-extractor.photo.json && api-extractor run --local --config api-extractor.animations.json && api-extractor run --local --config api-extractor.testing-rn.json && api-extractor run --local --config api-extractor.client.json && api-extractor run --local --config api-extractor.core.json && api-extractor run --local --config api-extractor.chat.json && api-extractor run --local --config api-extractor.web.json && api-extractor run --local --config api-extractor.web-records.json && api-extractor run --local --config api-extractor.web-records-depth.json && api-extractor run --local --config api-extractor.web-records-upload.json && api-extractor run --local --config api-extractor.web-records-sheet.json && api-extractor run --local --config api-extractor.web-intro.json && api-extractor run --local --config api-extractor.records-depth.json && api-extractor run --local --config api-extractor.web-televet.json && api-extractor run --local --config api-extractor.web-televet-call.json && api-extractor run --local --config api-extractor.web-televet-booking.json && api-extractor run --local --config api-extractor.televet.json && api-extractor run --local --config api-extractor.televet-call.json && api-extractor run --local --config api-extractor.televet-booking.json && api-extractor run --local --config api-extractor.testing-web.json && api-extractor run --local --config api-extractor.testing.json && api-extractor run --local --config api-extractor.notifications.json && api-extractor run --local --config api-extractor.web-notifications.json && api-extractor run --local --config api-extractor.consent.json && api-extractor run --local --config api-extractor.web-consent.json && api-extractor run --local --config api-extractor.texting.json && api-extractor run --local --config api-extractor.web-texting.json && api-extractor run --local --config api-extractor.health-plan.json && api-extractor run --local --config api-extractor.tabs.json && api-extractor run --local --config api-extractor.web-health-plan.json && api-extractor run --local --config api-extractor.web-shop.json && api-extractor run --local --config api-extractor.shop.json",
606
609
  "attw": "attw --pack",
607
610
  "verify:pack": "node scripts/verify-packed-install.mjs",
611
+ "license:check": "node scripts/package-license.mjs --dir dist --check",
612
+ "license:check:cdn": "node scripts/package-license.mjs --dir dist-cdn --check",
608
613
  "docs:check": "node scripts/check-docs-compile.mjs && node scripts/build-docs-html.mjs --check",
609
614
  "docs:html": "node scripts/build-docs-html.mjs",
610
615
  "docs:html:check": "node scripts/build-docs-html.mjs --check",
@@ -624,7 +629,8 @@
624
629
  "react-native-safe-area-context": ">=5",
625
630
  "react-native-vision-camera": ">=4",
626
631
  "@daily-co/react-native-daily-js": ">=0.87",
627
- "@daily-co/react-native-webrtc": ">=124.0.6-daily.1"
632
+ "@daily-co/react-native-webrtc": ">=124.0.6-daily.1",
633
+ "expo-speech-recognition": ">=1"
628
634
  },
629
635
  "peerDependenciesMeta": {
630
636
  "@daily-co/daily-js": {
@@ -647,6 +653,9 @@
647
653
  },
648
654
  "@daily-co/react-native-webrtc": {
649
655
  "optional": true
656
+ },
657
+ "expo-speech-recognition": {
658
+ "optional": true
650
659
  }
651
660
  },
652
661
  "devDependencies": {
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Everfur Health, Inc.
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -1,31 +0,0 @@
1
- /** The three tabs, in Raph's order. */
2
- type EverfurTabId = 'ask' | 'plan' | 'records';
3
- /**
4
- * How the member got here, as the rules below read it: a plain open from the app's own tab bar, or a deep link that
5
- * names a tab and maybe a question. Each host's `EverfurTabsOpened` is one of these (the web one also carries the card
6
- * a chat opens under, which these rules never read).
7
- */
8
- type TabsOpenedLike = {
9
- readonly via: 'plain';
10
- readonly key?: string | number;
11
- } | {
12
- readonly via: 'link';
13
- readonly tab: EverfurTabId;
14
- readonly ask?: {
15
- readonly prompt: string;
16
- };
17
- readonly key?: string | number;
18
- };
19
- /** The labels the tab bar draws. */
20
- interface EverfurTabsCopy {
21
- readonly ask: string;
22
- readonly plan: string;
23
- readonly records: string;
24
- /** The tab list's accessible name with all three tabs. */
25
- readonly listAll: string;
26
- /** The tab list's accessible name when the Health Plan tab is hidden. */
27
- readonly listNoPlan: string;
28
- }
29
- declare const EVERFUR_TABS_COPY: EverfurTabsCopy;
30
-
31
- export { type EverfurTabsCopy as E, type TabsOpenedLike as T, type EverfurTabId as a, EVERFUR_TABS_COPY as b };
@@ -1,31 +0,0 @@
1
- /** The three tabs, in Raph's order. */
2
- type EverfurTabId = 'ask' | 'plan' | 'records';
3
- /**
4
- * How the member got here, as the rules below read it: a plain open from the app's own tab bar, or a deep link that
5
- * names a tab and maybe a question. Each host's `EverfurTabsOpened` is one of these (the web one also carries the card
6
- * a chat opens under, which these rules never read).
7
- */
8
- type TabsOpenedLike = {
9
- readonly via: 'plain';
10
- readonly key?: string | number;
11
- } | {
12
- readonly via: 'link';
13
- readonly tab: EverfurTabId;
14
- readonly ask?: {
15
- readonly prompt: string;
16
- };
17
- readonly key?: string | number;
18
- };
19
- /** The labels the tab bar draws. */
20
- interface EverfurTabsCopy {
21
- readonly ask: string;
22
- readonly plan: string;
23
- readonly records: string;
24
- /** The tab list's accessible name with all three tabs. */
25
- readonly listAll: string;
26
- /** The tab list's accessible name when the Health Plan tab is hidden. */
27
- readonly listNoPlan: string;
28
- }
29
- declare const EVERFUR_TABS_COPY: EverfurTabsCopy;
30
-
31
- export { type EverfurTabsCopy as E, type TabsOpenedLike as T, type EverfurTabId as a, EVERFUR_TABS_COPY as b };