@mediquo/elements 0.4.0 → 0.5.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 (126) hide show
  1. package/README.md +84 -1
  2. package/dist/chunks/api-chat-client-CqMn2JEn.js +1 -0
  3. package/dist/chunks/{apple-pay-outcomes-BNkcTbbM.js → apple-pay-outcomes-CjCnBYOD.js} +1 -1
  4. package/dist/chunks/chunk-4FFT6DC2-CVWibomC.js +1 -0
  5. package/dist/chunks/chunk-GZF3YFSX-DM-GTqxg.js +1 -0
  6. package/dist/chunks/chunk-RCFIJTXZ-C6Ir0-sM.js +1 -0
  7. package/dist/chunks/chunk-S5RWG6G2-DPesx3Od.js +1 -0
  8. package/dist/chunks/chunk-YMQSBQHL-De_r7BNk.js +1 -0
  9. package/dist/chunks/chunk-YTQUGGS3-DmCGIoFy.js +1 -0
  10. package/dist/chunks/consume-CovVqBjI.js +1 -0
  11. package/dist/chunks/context-consumer-ESdICVAb.js +1 -0
  12. package/dist/chunks/context-provider--AKuwfs9.js +1 -0
  13. package/dist/chunks/create-context-DqP79qjF.js +1 -0
  14. package/dist/chunks/documentation-view-fFbvjJqx.js +1 -0
  15. package/dist/chunks/external-CJj32K_p.js +1 -0
  16. package/dist/chunks/{format-Cm3B1GMy.js → format-CRFiCNHw.js} +1 -1
  17. package/dist/chunks/get-appointment-query-Ck68BEMg.js +1 -0
  18. package/dist/chunks/get-patient-profile-query-B0tUDJmT.js +1 -0
  19. package/dist/chunks/i18n-formats-DYS91YEa.js +1 -0
  20. package/dist/chunks/index-CGnPsMVQ.js +1 -0
  21. package/dist/chunks/index-CLdWVaEs.js +1 -0
  22. package/dist/chunks/index-CvDnN2NR.js +1 -0
  23. package/dist/chunks/index-DNUbmrQl.d.ts +31 -0
  24. package/dist/chunks/index-Xcn-xs13.js +1 -0
  25. package/dist/chunks/index-czcKClL3.d.ts +47 -0
  26. package/dist/chunks/isBefore-CPpTogxo.js +1 -0
  27. package/dist/chunks/{isSameDay-DPfclwIL.js → isSameDay-CuhZMy1T.js} +1 -1
  28. package/dist/chunks/localized-decorator-BlOuLhym.js +1 -0
  29. package/dist/chunks/mq-layout-CGcdxGMQ.js +1 -0
  30. package/dist/chunks/mq-professional-presence-sync-cmg6CXhz.d.ts +22 -0
  31. package/dist/chunks/mq-unread-count-sync-DTn9dfR4.d.ts +22 -0
  32. package/dist/chunks/mutation-controller-CR2qcqhH.js +1 -0
  33. package/dist/chunks/parseISO-Dj3qSTG8.js +1 -0
  34. package/dist/chunks/price-BmA2Dl9f.js +1 -0
  35. package/dist/chunks/professional-overview-CfjgnTw4.js +1 -0
  36. package/dist/chunks/{provide-CfT7g_Zi.js → provide-D2fnEhT2.js} +1 -1
  37. package/dist/chunks/query-Cjvi4_dT.js +1 -0
  38. package/dist/chunks/query-controller-BlO1Ax65.js +1 -0
  39. package/dist/chunks/{refund-cancel-policy-CnbrIqH0.js → refund-cancel-policy-D_tUYPyv.js} +1 -1
  40. package/dist/chunks/schemas.d-5LR6aN9I.d.ts +134 -0
  41. package/dist/chunks/telemetry-client-Ca71sobH.js +1 -0
  42. package/dist/env.js +1 -1
  43. package/dist/i18n.js +1 -1
  44. package/dist/mq-apple-pay-checkout.js +1 -1
  45. package/dist/mq-appointment-checkout.js +1 -1
  46. package/dist/mq-appointment-documentation.d.ts +48 -0
  47. package/dist/mq-appointment-documentation.js +1 -0
  48. package/dist/mq-chat-room.js +1 -1
  49. package/dist/mq-checkout.js +1 -1
  50. package/dist/mq-documents.d.ts +46 -0
  51. package/dist/mq-documents.js +1 -0
  52. package/dist/mq-google-pay-checkout.js +1 -1
  53. package/dist/mq-immediate-videocall-checkout.js +1 -1
  54. package/dist/mq-my-appointments.d.ts +48 -178
  55. package/dist/mq-my-appointments.js +1 -1
  56. package/dist/mq-professional-presence-sync.d.ts +30 -0
  57. package/dist/mq-professional-presence-sync.js +1 -0
  58. package/dist/mq-query-client-provider.js +1 -1
  59. package/dist/mq-schedule-success.d.ts +9 -0
  60. package/dist/mq-schedule-success.js +2 -2
  61. package/dist/mq-schedule.d.ts +22 -10
  62. package/dist/mq-schedule.js +1 -1
  63. package/dist/mq-session-provider.d.ts +28 -0
  64. package/dist/mq-session-provider.js +1 -0
  65. package/dist/mq-socket-provider.js +1 -1
  66. package/dist/mq-support-chat.js +1 -1
  67. package/dist/mq-terms-and-conditions.d.ts +23 -0
  68. package/dist/mq-terms-and-conditions.js +1 -0
  69. package/dist/mq-unread-count-sync.d.ts +21 -0
  70. package/dist/mq-unread-count-sync.js +1 -0
  71. package/dist/mq-videocall.d.ts +35 -26
  72. package/dist/mq-videocall.js +1 -1
  73. package/dist/react/mq-apple-pay-checkout.js +1 -1
  74. package/dist/react/mq-appointment-checkout.js +1 -1
  75. package/dist/react/mq-appointment-documentation.d.ts +28 -0
  76. package/dist/react/mq-appointment-documentation.js +2 -0
  77. package/dist/react/mq-chat-room.d.ts +2 -0
  78. package/dist/react/mq-chat-room.js +1 -1
  79. package/dist/react/mq-checkout.js +1 -1
  80. package/dist/react/mq-documents.d.ts +13 -0
  81. package/dist/react/mq-documents.js +2 -0
  82. package/dist/react/mq-google-pay-checkout.js +1 -1
  83. package/dist/react/mq-immediate-videocall-checkout.js +1 -1
  84. package/dist/react/mq-my-appointments.d.ts +1 -0
  85. package/dist/react/mq-my-appointments.js +1 -1
  86. package/dist/react/mq-professional-presence-sync.d.ts +7 -0
  87. package/dist/react/mq-professional-presence-sync.js +2 -0
  88. package/dist/react/mq-query-client-provider.js +1 -1
  89. package/dist/react/mq-schedule-success.d.ts +3 -0
  90. package/dist/react/mq-schedule-success.js +1 -1
  91. package/dist/react/mq-schedule.d.ts +2 -0
  92. package/dist/react/mq-schedule.js +1 -1
  93. package/dist/react/mq-session-provider.d.ts +10 -0
  94. package/dist/react/mq-session-provider.js +2 -0
  95. package/dist/react/mq-socket-provider.js +1 -1
  96. package/dist/react/mq-support-chat.js +1 -1
  97. package/dist/react/mq-terms-and-conditions.d.ts +14 -0
  98. package/dist/react/mq-terms-and-conditions.js +2 -0
  99. package/dist/react/mq-toast-container.d.ts +8 -0
  100. package/dist/react/mq-toast-container.js +2 -0
  101. package/dist/react/mq-unread-count-sync.d.ts +7 -0
  102. package/dist/react/mq-unread-count-sync.js +2 -0
  103. package/dist/react/mq-videocall.d.ts +14 -2
  104. package/dist/react/mq-videocall.js +1 -1
  105. package/dist/toast.d.ts +3 -0
  106. package/dist/toast.js +1 -0
  107. package/dist/ui/mq-calendar.js +1 -1
  108. package/dist/ui/mq-time-slot-picker.js +1 -1
  109. package/dist/ui/mq-toast.js +1 -1
  110. package/package.json +29 -1
  111. package/dist/chunks/api-chat-client-C8SqZtCa.js +0 -1
  112. package/dist/chunks/chunk-S5RWG6G2-oTcdgk2H.js +0 -1
  113. package/dist/chunks/chunk-YTQUGGS3-DN-JZpgG.js +0 -1
  114. package/dist/chunks/context-provider-CiMFpvDA.js +0 -1
  115. package/dist/chunks/exports-G_7Ih_GH.js +0 -1
  116. package/dist/chunks/external-zAbuzxDj.js +0 -1
  117. package/dist/chunks/get-patient-profile-query-C8T8DJ7z.js +0 -1
  118. package/dist/chunks/index-Bxh8Qfwr.js +0 -1
  119. package/dist/chunks/index-DiqYAEHW.js +0 -1
  120. package/dist/chunks/isBefore-Cof0D841.js +0 -1
  121. package/dist/chunks/mq-layout-CpIZTsV2.js +0 -1
  122. package/dist/chunks/mutation-controller-OVT8NEt6.js +0 -1
  123. package/dist/chunks/parseISO-jT42c8Ob.js +0 -1
  124. package/dist/chunks/price-tImUmtpX.js +0 -1
  125. package/dist/chunks/query-QJ1INUTG.js +0 -1
  126. package/dist/chunks/telemetry-client-BRVJU-fZ.js +0 -1
@@ -1,4 +1,4 @@
1
- import{isValidLocale as t,setLocale as e,getLocale as i,initLocalization as n}from"./i18n.js";import{_ as o,t as a}from"./chunks/custom-element-DA9Fxvxd.js";import{m as s,s as r}from"./chunks/runtime-Bg1WXVCx.js";import{l as c}from"./chunks/parseISO-jT42c8Ob.js";import{i as p,a as l,x as d,E as m}from"./chunks/lit-element-DiWJYFwC.js";import{n as u}from"./chunks/property-scuRaFcM.js";import{r as h}from"./chunks/state-LQivXIgA.js";import{setEnv as g}from"./env.js";import{b as v,A as f,a as b,C as y}from"./chunks/api-chat-client-C8SqZtCa.js";import{checkIcon as k}from"./ui/icons/check-icon.js";import"./ui/mq-callout.js";import"./ui/mq-button.js";import{Q as x,c as w}from"./chunks/mutation-controller-OVT8NEt6.js";import{l as $}from"./chunks/chunk-S5RWG6G2-oTcdgk2H.js";import{g as j,t as q,b as _,a as C,c as S,d as z,e as I,f as O}from"./chunks/telemetry-client-BRVJU-fZ.js";import{f as Q}from"./chunks/price-tImUmtpX.js";import{g as A,a as P}from"./chunks/get-patient-profile-query-C8T8DJ7z.js";import{g as T}from"./chunks/get-organization-setup-query-BMbuRi6v.js";import{g as E}from"./chunks/exports-G_7Ih_GH.js";import{calendarIcon as H}from"./ui/icons/calendar-icon.js";import{chatbubbleIcon as N}from"./ui/icons/chat-bubble-icon.js";import{videoIcon as V}from"./ui/icons/video-icon.js";import"./ui/mq-floating-bubble.js";import"./ui/mq-unread-badge.js";import"./ui/mq-skeleton.js";import"./ui/mq-card.js";import{Q as K}from"./chunks/query-QJ1INUTG.js";import"./chunks/external-zAbuzxDj.js";import"./chunks/format-Cm3B1GMy.js";import"./chunks/isBefore-Cof0D841.js";import"./ui/icons/types.js";import"./ui/icons/info-circle-outine-icon.js";import"./chunks/class-map-Co76I6aw.js";import"./chunks/directive-2EDmOukv.js";import"./chunks/context-request-event-Dfydf1ub.js";import"./chunks/context-provider-CiMFpvDA.js";import"./ui/icons/chevron-down-icon.js";import"./chunks/if-defined-BYeVdwgd.js";import"./ui/mq-text-button.js";import"./ui/mq-avatar.js";import"./ui/icons/briefcase-icon.js";import"./ui/icons/clock-icon.js";import"./ui/icons/message-bubble-icon.js";import"./ui/icons/phone-icon.js";import"./chunks/provide-CfT7g_Zi.js";import"./theme.js";import"./ui/icons/x-icon.js";import"./ui/icons/chevron-left-icon.js";import"./chunks/query-CeeutdfT.js";import"./events.js";import"./ui/icons/check-double-icon.js";import"./chunks/chunk-YTQUGGS3-DN-JZpgG.js";import"./chunks/style-map-CIdqdn7C.js";const U=p`header{padding:var(--sp-6) var(--sp-4);display:flex;align-items:center;gap:var(--sp-2);max-width:var(--content-max-width);margin:0 auto}.summary{padding:var(--sp-6) var(--sp-4);background-color:var(--color-neutrals-background-weak);max-width:var(--content-max-width);margin:0 auto}.summary-content{display:flex;flex-direction:column;gap:var(--sp-4)}.manage-appointment{box-sizing:border-box;max-width:var(--content-max-width);margin:0 auto}`;let B=class MqScheduleSuccessSkeleton extends l{static{this.styles=U}render(){return d`<div><header><mq-skeleton width="220px" height="40px" border-radius="md"></mq-skeleton></header><div class="summary"><div class="summary-content"><mq-skeleton width="280px" height="32px" border-radius="md"></mq-skeleton><mq-skeleton width="100%" height="400px" border-radius="lg"></mq-skeleton><mq-skeleton width="100%" height="80px" border-radius="lg"></mq-skeleton></div></div><div class="manage-appointment"><mq-skeleton width="100%" height="313px" border-radius="lg"></mq-skeleton></div></div>`}};B=o([a("mq-schedule-success-skeleton")],B);const G=p`.success-title{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4)}header h1{font-family:var(--font-titles);font-size:var(--text-3xl);line-height:var(--text-3xl--line-height);font-weight:var(--font-weight-bold);margin:0}h2{font-family:var(--font-titles);font-size:var(--text-2xl);line-height:var(--text-2xl--line-height);font-weight:var(--font-weight-bold);margin:0;margin-bottom:var(--sp-6)}.summary{padding:var(--sp-6) var(--sp-4)}.professional-card{padding:var(--sp-4)}.appointment-summary{margin-bottom:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-4)}.add-to-calendar-container{padding-top:var(--sp-4);border-top:1px solid var(--color-neutrals-border-disabled)}.price-breakdown{display:flex;flex-direction:column;gap:var(--sp-2)}.price-row{display:flex;justify-content:space-between;gap:var(--sp-4);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--text-base--line-height);color:var(--color-neutrals-text-default)}.price-row--total{font-weight:var(--font-weight-semibold)}.price-breakdown hr{width:100%;border:none;border-top:1px solid var(--color-neutrals-border-disabled);margin:var(--sp-1) 0}.floating-content{height:100%}.actions{display:flex;flex-direction:column;gap:var(--sp-4)}@media (min-width:768px){.actions{flex-direction:row}}`;class OpenVideocallEvent extends Event{static{this.eventName="open-videocall"}constructor(t){super(OpenVideocallEvent.eventName,{bubbles:!0,composed:!0}),this.detail=t}}let M=class MqScheduleSuccess extends l{constructor(){super(...arguments),this.kind="schedule",this._trackedPageView=!1,this.getPatientProfileQuery=new x(this,()=>A(v)),this.getAppointmentQuery=new x(this,()=>P(v,{id:this.appointmentId})),this.getCouponQuery=new x(this,()=>{return t=v,e={appointmentId:this.appointmentId},i={enabled:!!this.appointmentId},{queryKey:["appointment-consultation-coupon",e.appointmentId],queryFn:()=>t.payments.getAppointmentConsultationCoupon(e.appointmentId),retry:!1,...i};var t,e,i}),this.getOrganizationSpecialtiesQuery=new x(this,()=>j(v)),this.getOrganizationSetupQuery=new x(this,()=>T(v)),this.isChatOpen=!1,this.unreadQuery=new x(this,()=>E(v,{roomId:Number(this.getAppointmentQuery.result?.data?.room_id)},{enabled:!!this.getAppointmentQuery.result?.data?.room_id})),this._getCalloutText=t=>{switch(t.channel){case f.videocall:return s("Te enviaremos un enlace al email indicado cuando sea el momento de conectarte a la vídeoconsulta. Asegúrate de tener buena conexión a internet y un dispositivo con cámara y micrófono.");case f.phonecall:return s(r`El profesional te llamará al
1
+ import{isValidLocale as t,setLocale as e,getLocale as i,initLocalization as o}from"./i18n.js";import{_ as n,t as a}from"./chunks/custom-element-DA9Fxvxd.js";import{m as s,s as r}from"./chunks/runtime-Bg1WXVCx.js";import{l as c}from"./chunks/localized-decorator-BlOuLhym.js";import{i as p,a as l,x as d,E as m}from"./chunks/lit-element-DiWJYFwC.js";import{n as u}from"./chunks/property-scuRaFcM.js";import{r as h}from"./chunks/state-LQivXIgA.js";import{setEnv as v}from"./env.js";import{MqViewAppointmentsEvent as g,MqHomeEvent as f}from"./events.js";import{a as k,A as y,g as b,C as x}from"./chunks/api-chat-client-CqMn2JEn.js";import{checkIcon as j}from"./ui/icons/check-icon.js";import"./ui/mq-callout.js";import"./ui/mq-button.js";import{c as w}from"./chunks/consume-CovVqBjI.js";import{l as $}from"./chunks/chunk-S5RWG6G2-DPesx3Od.js";import"./chunks/professional-overview-CfjgnTw4.js";import{f as q}from"./chunks/price-BmA2Dl9f.js";import{Q as C}from"./chunks/query-controller-BlO1Ax65.js";import{g as _}from"./chunks/get-appointment-query-Ck68BEMg.js";import{g as S}from"./chunks/get-organization-setup-query-BMbuRi6v.js";import{g as z}from"./chunks/get-patient-profile-query-B0tUDJmT.js";import{g as I}from"./chunks/chunk-GZF3YFSX-DM-GTqxg.js";import{calendarIcon as Q}from"./ui/icons/calendar-icon.js";import{chatbubbleIcon as A}from"./ui/icons/chat-bubble-icon.js";import{videoIcon as O}from"./ui/icons/video-icon.js";import"./mq-chat-room.js";import"./ui/mq-floating-bubble.js";import"./ui/mq-unread-badge.js";import{g as T,a as P}from"./chunks/i18n-formats-DYS91YEa.js";import"./ui/mq-skeleton.js";import"./ui/mq-card.js";import{Q as E}from"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import{t as N,e as V,a as F,f as H,g as B,h as K}from"./chunks/telemetry-client-Ca71sobH.js";import"./chunks/chunk-4FFT6DC2-CVWibomC.js";import"./chunks/external-CJj32K_p.js";import"./chunks/parseISO-Dj3qSTG8.js";import"./chunks/format-CRFiCNHw.js";import"./chunks/isBefore-CPpTogxo.js";import"./ui/icons/types.js";import"./ui/icons/info-circle-outine-icon.js";import"./chunks/class-map-Co76I6aw.js";import"./chunks/directive-2EDmOukv.js";import"./chunks/context-consumer-ESdICVAb.js";import"./chunks/context-request-event-Dfydf1ub.js";import"./chunks/create-context-DqP79qjF.js";import"./ui/icons/chevron-down-icon.js";import"./chunks/if-defined-BYeVdwgd.js";import"./ui/mq-text-button.js";import"./ui/mq-avatar.js";import"./ui/icons/briefcase-icon.js";import"./ui/icons/clock-icon.js";import"./ui/icons/message-bubble-icon.js";import"./ui/icons/phone-icon.js";import"./chunks/query-Cjvi4_dT.js";import"./chunks/provide-D2fnEhT2.js";import"./chunks/context-provider--AKuwfs9.js";import"./theme.js";import"./ui/icons/x-icon.js";import"./chunks/chunk-YMQSBQHL-De_r7BNk.js";import"./ui/icons/chevron-left-icon.js";import"./chunks/query-CeeutdfT.js";import"./ui/icons/check-double-icon.js";import"./chunks/chunk-YTQUGGS3-DmCGIoFy.js";import"./chunks/mutation-controller-CR2qcqhH.js";import"./chunks/style-map-CIdqdn7C.js";const G=p`header{padding:var(--sp-6) var(--sp-4);display:flex;align-items:center;gap:var(--sp-2);max-width:var(--content-max-width);margin:0 auto}.summary{padding:var(--sp-6) var(--sp-4);background-color:var(--color-neutrals-background-weak);max-width:var(--content-max-width);margin:0 auto}.summary-content{display:flex;flex-direction:column;gap:var(--sp-4)}.manage-appointment{box-sizing:border-box;max-width:var(--content-max-width);margin:0 auto}`;let M=class MqScheduleSuccessSkeleton extends l{static{this.styles=G}render(){return d`<div><header><mq-skeleton width="220px" height="40px" border-radius="md"></mq-skeleton></header><div class="summary"><div class="summary-content"><mq-skeleton width="280px" height="32px" border-radius="md"></mq-skeleton><mq-skeleton width="100%" height="400px" border-radius="lg"></mq-skeleton><mq-skeleton width="100%" height="80px" border-radius="lg"></mq-skeleton></div></div><div class="manage-appointment"><mq-skeleton width="100%" height="313px" border-radius="lg"></mq-skeleton></div></div>`}};M=n([a("mq-schedule-success-skeleton")],M);const R=p`.success-title{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4)}header h1{font-family:var(--font-titles);font-size:var(--text-3xl);line-height:var(--text-3xl--line-height);font-weight:var(--font-weight-bold);margin:0}h2{font-family:var(--font-titles);font-size:var(--text-2xl);line-height:var(--text-2xl--line-height);font-weight:var(--font-weight-bold);margin:0;margin-bottom:var(--sp-6)}.summary{padding:var(--sp-6) var(--sp-4)}.professional-card{padding:var(--sp-4)}.appointment-summary{margin-bottom:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-4)}.add-to-calendar-container{padding-top:var(--sp-4);border-top:1px solid var(--color-neutrals-border-disabled)}.price-breakdown{display:flex;flex-direction:column;gap:var(--sp-2)}.price-row{display:flex;justify-content:space-between;gap:var(--sp-4);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--text-base--line-height);color:var(--color-neutrals-text-default)}.price-row--total{font-weight:var(--font-weight-semibold)}.price-breakdown hr{width:100%;border:none;border-top:1px solid var(--color-neutrals-border-disabled);margin:var(--sp-1) 0}.floating-content{height:100%}.actions{display:flex;flex-direction:column;gap:var(--sp-4)}@media (min-width:768px){.actions{flex-direction:row}}.footer-cta{margin-top:var(--sp-4);padding:var(--sp-6) var(--sp-4)}.footer-cta h2{margin-bottom:var(--sp-2)}.footer-cta .description{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--text-base--line-height);color:var(--color-neutrals-text-default);margin:0 0 var(--sp-6)}.footer-cta .actions{display:flex;flex-direction:column;gap:var(--sp-3)}`;class OpenVideocallEvent extends Event{static{this.eventName="open-videocall"}constructor(t){super(OpenVideocallEvent.eventName,{bubbles:!0,composed:!0}),this.detail=t}}let U=class MqScheduleSuccess extends l{constructor(){super(...arguments),this.kind="schedule",this.showNavCtas=!1,this._trackedPageView=!1,this.getPatientProfileQuery=new C(this,()=>z(k)),this.getAppointmentQuery=new C(this,()=>_(k,{id:this.appointmentId})),this.getCouponQuery=new C(this,()=>{return t=k,e={appointmentId:this.appointmentId},i={enabled:!!this.appointmentId},{queryKey:["appointment-consultation-coupon",e.appointmentId],queryFn:()=>t.payments.getAppointmentConsultationCoupon(e.appointmentId),retry:!1,...i};var t,e,i}),this.getOrganizationSpecialtiesQuery=new C(this,()=>T(k)),this.getOrganizationSetupQuery=new C(this,()=>S(k)),this.isChatOpen=!1,this.unreadQuery=new C(this,()=>I(k,{roomId:Number(this.getAppointmentQuery.result?.data?.room_id)},{enabled:!!this.getAppointmentQuery.result?.data?.room_id})),this._getCalloutText=t=>{switch(t.channel){case y.videocall:return s("Te enviaremos un enlace al email indicado cuando sea el momento de conectarte a la vídeoconsulta. Asegúrate de tener buena conexión a internet y un dispositivo con cámara y micrófono.");case y.phonecall:return s(r`El profesional te llamará al
2
2
  ${this.getPatientProfileQuery.result?.data?.profile.phone??""} en el horario
3
3
  seleccionado. Asegúrate de tener buena cobertura y poder atender en
4
- el horario elegido.`);case f.chat:return s("El profesional te enviará un mensaje para que podamos coordinar la cita. Asegúrate de tener buena cobertura y poder atender en el horario elegido.");default:return m}}}static{this.styles=G}get _accessToken(){return this.token??this.loginToken?.access_token}get _timezone(){return this.timezone||Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC"}willUpdate(i){i.has("env")&&this.env&&g(this.env),i.has("apiKey")&&this.apiKey&&v.setApiKey(this.apiKey),i.has("token")&&this.token&&v.setAuthToken(this.token),i.has("locale")&&this.locale&&t(this.locale)&&(e(this.locale),v.setLanguage(this.locale))}get _patientHash(){return this.getPatientProfileQuery.result?.data?.hash??""}connectedCallback(){super.connectedCallback(),this.queryClientContext?.invalidateQueries()}updated(){!this._trackedPageView&&this._patientHash&&(this._trackedPageView=!0,q.track(_(this._patientHash,this.appointmentId)))}renderPriceBreakdown(t,e,i){const n=t.price;if(null==n||n<=0)return m;const o=t.currency??"EUR",a=t.discount_amount??0,r=a>0,c=n-a,p=this.getCouponQuery.result?.data,l=p?.name??p?.code,u=r?p?.percent_off??Math.round(a/n*100):0,h=l?`${s("Promoción")} ${l}`:s("Promoción");return d`<div class="price-breakdown"><div class="price-row"><span>${i}</span> <span>${Q({amount:n,currency:o},e)}</span></div>${r?d`<div class="price-row"><span>${h} (-${u}%)</span> <span>${Q({amount:-a,currency:o},e)}</span></div><hr><div class="price-row price-row--total"><span>${s("Total")}</span> <span>${Q({amount:c,currency:o},e)}</span></div>`:m}</div>`}render(){return this.getAppointmentQuery.render({pending:()=>d`<mq-schedule-success-skeleton></mq-schedule-success-skeleton>`,complete:t=>{const e=i(),n=b(t.start_date),o=C(n,t.duration),a=this.getOrganizationSpecialtiesQuery.result?.data?.find(e=>e.id===Number(t.speciality_id)),c=S(a?.code??"",e,a?.name),p=t.channel===f.videocall,l=t.channel===f.phonecall,u=!0===this.getOrganizationSetupQuery.result?.data?.appointments?.has_chat_in_appointment,h=(p||l)&&u,g=this._accessToken;return d`<div><header><div class="success-title">${k()}<h1>${"schedule"===this.kind?s("Cita confirmada"):s("Cita modificada")}</h1></div><h2>${s(r`Resumen de la cita para ${t?.to?.name??""}`)}</h2></header><mq-card class="summary" roundness="md"><div class="appointment-summary"><professional-overview .name="${t.from.name??""}" .specialtyName="${c}" .collegiateNumber="${t.from.collegiate_number??void 0}" .description="${t.from.description??""}" .languages="${t.from.languages??[]}" .avatar="${t.from.avatar??""}" always-expanded-on-desktop></professional-overview><appointment-details .startsAt="${n.toISOString()}" .duration="${t.duration}" .channel="${t.channel}" .timezone="${this._timezone}"></appointment-details>${this.renderPriceBreakdown(t,e,c||s("Consulta"))}<div class="add-to-calendar-container"><mq-text-button fontWeight="bold" size="sm" @click="${()=>{q.track(z(this._patientHash,this.appointmentId));const e=function({title:t,description:e,startsAt:i,endsAt:n}){const o=t=>t.toISOString().replace(/[-:]/g,"").replace(/\.\d{3}/,""),a=o(i),s=o(n);return`https://www.google.com/calendar/render?${new URLSearchParams({action:"TEMPLATE",text:t,dates:`${a}/${s}`,...e&&{details:e}}).toString()}`}({title:s(r`Cita agendada de ${t.from.speciality??""}`),startsAt:n,endsAt:o,description:p&&t.consultation_short_url?s(r`Enlace a la cita: ${t.consultation_short_url}`):void 0});window.open(e,"_blank")}}">${H({size:24})} ${s("Añadir al calendario")}</mq-text-button></div>${h||p?d`<div class="actions">${h?d`<mq-button variant="primary" fullwidth size="md" @click="${()=>{q.track(I(this._patientHash,this.appointmentId)),this.isChatOpen=!this.isChatOpen}}">${N({size:24})} ${s("Chatear con el profesional")} ${(this.unreadQuery.result?.data?.unread_count??0)>0?d`<mq-unread-badge></mq-unread-badge>`:m}</mq-button>`:m} ${p?d`<mq-button variant="outline" fullwidth size="md" @click="${()=>{q.track(O(this._patientHash,this.appointmentId)),this.dispatchEvent(new OpenVideocallEvent({appointmentId:this.appointmentId}))}}">${V({size:24})} ${s("Ir a videollamada")}</mq-button>`:m}</div>`:m}</div><mq-callout background="default" variant="info" ?noPadding="${!(h||p)}">${this._getCalloutText(t)}</mq-callout></mq-card></div><mq-floating-bubble ?dismissable="${!1}" .open="${this.isChatOpen}" @mq-close="${()=>{this.isChatOpen=!1}}" hideCloseButton>${this.isChatOpen&&g?d`<div slot="content" class="floating-content"><mq-chat-room .consultationId="${t.id}" .consultationType="${y.appointment}" .token="${g}" .roomId="${Number(t.room_id)}" .professionalHash="${t.from.hash}" @mq-chat-room-close="${()=>{this.isChatOpen=!1}}"></mq-chat-room></div>`:m}</mq-floating-bubble>`}})}};o([u({type:String})],M.prototype,"kind",void 0),o([u({type:String})],M.prototype,"appointmentId",void 0),o([u({type:String,attribute:"api-key"})],M.prototype,"apiKey",void 0),o([u({type:String,attribute:"token"})],M.prototype,"token",void 0),o([u({type:String,attribute:"timezone"})],M.prototype,"timezone",void 0),o([u({type:String,attribute:"locale"})],M.prototype,"locale",void 0),o([u({type:String,attribute:"env"})],M.prototype,"env",void 0),o([w({context:K,subscribe:!0})],M.prototype,"queryClientContext",void 0),o([w({context:$})],M.prototype,"loginToken",void 0),o([h()],M.prototype,"isChatOpen",void 0),M=o([c(),a("mq-schedule-success")],M),n();export{M as MqScheduleSuccess,OpenVideocallEvent};
4
+ el horario elegido.`);case y.chat:return s("El profesional te enviará un mensaje para que podamos coordinar la cita. Asegúrate de tener buena cobertura y poder atender en el horario elegido.");default:return m}}}static{this.styles=R}get _accessToken(){return this.token??this.loginToken?.access_token}get _timezone(){return this.timezone||Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC"}willUpdate(i){i.has("env")&&this.env&&v(this.env),i.has("apiKey")&&this.apiKey&&k.setApiKey(this.apiKey),i.has("token")&&this.token&&k.setAuthToken(this.token),i.has("locale")&&this.locale&&t(this.locale)&&(e(this.locale),k.setLanguage(this.locale))}get _patientHash(){return this.getPatientProfileQuery.result?.data?.hash??""}connectedCallback(){super.connectedCallback(),this.queryClientContext?.invalidateQueries()}updated(){!this._trackedPageView&&this._patientHash&&(this._trackedPageView=!0,N.track(V(this._patientHash,this.appointmentId)))}renderPriceBreakdown(t,e,i){const o=t.price;if(null==o||o<=0)return m;const n=t.currency??"EUR",a=t.discount_amount??0,r=a>0,c=o-a,p=this.getCouponQuery.result?.data,l=p?.name??p?.code,u=r?p?.percent_off??Math.round(a/o*100):0,h=l?`${s("Promoción")} ${l}`:s("Promoción");return d`<div class="price-breakdown"><div class="price-row"><span>${i}</span> <span>${q({amount:o,currency:n},e)}</span></div>${r?d`<div class="price-row"><span>${h} (-${u}%)</span> <span>${q({amount:-a,currency:n},e)}</span></div><hr><div class="price-row price-row--total"><span>${s("Total")}</span> <span>${q({amount:c,currency:n},e)}</span></div>`:m}</div>`}render(){return this.getAppointmentQuery.render({pending:()=>d`<mq-schedule-success-skeleton></mq-schedule-success-skeleton>`,complete:t=>{const e=i(),o=b(t.start_date),n=F(o,t.duration),a=this.getOrganizationSpecialtiesQuery.result?.data?.find(e=>e.id===Number(t.speciality_id)),c=P(a?.code??"",e,a?.name),p=t.channel===y.videocall,l=t.channel===y.phonecall,u=!0===this.getOrganizationSetupQuery.result?.data?.appointments?.has_chat_in_appointment,h=(p||l)&&u,v=this._accessToken;return d`<div><header><div class="success-title">${j()}<h1>${"schedule"===this.kind?s("Cita confirmada"):s("Cita modificada")}</h1></div><h2>${s(r`Resumen de la cita para ${t?.to?.name??""}`)}</h2></header><mq-card class="summary" roundness="md"><div class="appointment-summary"><professional-overview .name="${t.from.name??""}" .specialtyName="${c}" .collegiateNumber="${t.from.collegiate_number??void 0}" .description="${t.from.description??""}" .languages="${t.from.languages??[]}" .avatar="${t.from.avatar??""}" always-expanded-on-desktop></professional-overview><appointment-details .startsAt="${o.toISOString()}" .duration="${t.duration}" .channel="${t.channel}" .timezone="${this._timezone}"></appointment-details>${this.renderPriceBreakdown(t,e,c||s("Consulta"))}<div class="add-to-calendar-container"><mq-text-button fontWeight="bold" size="sm" @click="${()=>{N.track(H(this._patientHash,this.appointmentId));const e=function({title:t,description:e,startsAt:i,endsAt:o}){const n=t=>t.toISOString().replace(/[-:]/g,"").replace(/\.\d{3}/,""),a=n(i),s=n(o);return`https://www.google.com/calendar/render?${new URLSearchParams({action:"TEMPLATE",text:t,dates:`${a}/${s}`,...e&&{details:e}}).toString()}`}({title:s(r`Cita agendada de ${t.from.speciality??""}`),startsAt:o,endsAt:n,description:p&&t.consultation_short_url?s(r`Enlace a la cita: ${t.consultation_short_url}`):void 0});window.open(e,"_blank")}}">${Q({size:24})} ${s("Añadir al calendario")}</mq-text-button></div>${h||p?d`<div class="actions">${h?d`<mq-button variant="primary" fullwidth size="md" @click="${()=>{N.track(B(this._patientHash,this.appointmentId)),this.isChatOpen=!this.isChatOpen}}">${A({size:24})} ${s("Chatear con el profesional")} ${(this.unreadQuery.result?.data?.unread_count??0)>0?d`<mq-unread-badge></mq-unread-badge>`:m}</mq-button>`:m} ${p?d`<mq-button variant="outline" fullwidth size="md" @click="${()=>{N.track(K(this._patientHash,this.appointmentId)),this.dispatchEvent(new OpenVideocallEvent({appointmentId:this.appointmentId}))}}">${O({size:24})} ${s("Ir a videollamada")}</mq-button>`:m}</div>`:m}</div><mq-callout background="default" variant="info" ?noPadding="${!(h||p)}">${this._getCalloutText(t)}</mq-callout></mq-card>${this.showNavCtas?d`<mq-card class="footer-cta" roundness="md"><h2>${s("Tus citas")}</h2><p class="description">${s("Accede, modifica o anula tus citas.")}</p><div class="actions"><mq-button variant="primary" size="md" fullwidth @click="${()=>{this.dispatchEvent(new g({tab:"next"}))}}">${s("Ver mis citas")}</mq-button><mq-button variant="outline" size="md" fullwidth @click="${()=>{this.dispatchEvent(new f)}}">${s("Volver al inicio")}</mq-button></div></mq-card>`:m}</div><mq-floating-bubble ?dismissable="${!1}" .open="${this.isChatOpen}" @mq-close="${()=>{this.isChatOpen=!1}}" hideCloseButton>${this.isChatOpen&&v?d`<div slot="content" class="floating-content"><mq-chat-room .consultationId="${t.id}" .consultationType="${x.appointment}" .token="${v}" .roomId="${Number(t.room_id)}" .professionalHash="${t.from.hash}" @mq-chat-room-close="${()=>{this.isChatOpen=!1}}"></mq-chat-room></div>`:m}</mq-floating-bubble>`}})}};n([u({type:String})],U.prototype,"kind",void 0),n([u({type:String})],U.prototype,"appointmentId",void 0),n([u({type:String,attribute:"api-key"})],U.prototype,"apiKey",void 0),n([u({type:String,attribute:"token"})],U.prototype,"token",void 0),n([u({type:String,attribute:"timezone"})],U.prototype,"timezone",void 0),n([u({type:String,attribute:"locale"})],U.prototype,"locale",void 0),n([u({type:String,attribute:"env"})],U.prototype,"env",void 0),n([u({type:Boolean,attribute:"show-nav-ctas"})],U.prototype,"showNavCtas",void 0),n([w({context:E,subscribe:!0})],U.prototype,"queryClientContext",void 0),n([w({context:$})],U.prototype,"loginToken",void 0),n([h()],U.prototype,"isChatOpen",void 0),U=n([c(),a("mq-schedule-success")],U),o();export{U as MqScheduleSuccess,OpenVideocallEvent};
@@ -1,6 +1,6 @@
1
1
  import * as lit_html from 'lit-html';
2
2
  import * as lit from 'lit';
3
- import { LitElement, PropertyValues, nothing } from 'lit';
3
+ import { LitElement, PropertyValues, TemplateResult, nothing } from 'lit';
4
4
  import './chunks/mq-layout-D8Mak16a.js';
5
5
  import './ui/mq-button.js';
6
6
  import { Env } from './env.js';
@@ -601,7 +601,9 @@ declare class PaymentMethodSelector extends LitElement {
601
601
  private _selected;
602
602
  private _select;
603
603
  private _confirm;
604
- render(): lit_html.TemplateResult<1>;
604
+ private _renderRow;
605
+ private _renderAction;
606
+ render(): TemplateResult<1>;
605
607
  }
606
608
  declare global {
607
609
  interface HTMLElementTagNameMap {
@@ -616,6 +618,9 @@ declare global {
616
618
  * @fires apple-pay-opened - Cancelable. Fired before the Apple Pay popup opens.
617
619
  * Call preventDefault() to open the URL yourself (e.g. Safari top-level).
618
620
  * detail.url includes #token= (secret — do not log).
621
+ * @fires google-pay-opened - Cancelable. Fired before the Google Pay popup opens.
622
+ * Call preventDefault() to open the checkout URL yourself.
623
+ * detail.url includes #token= (secret — do not log).
619
624
  * @fires error - Fired when the polling timeout is reached
620
625
  */
621
626
  declare class PaymentStep extends LitElement {
@@ -632,7 +637,7 @@ declare class PaymentStep extends LitElement {
632
637
  appliedDiscount: AppliedDiscount | null;
633
638
  bookingRequest: CreatePaymentLinkRequest | null;
634
639
  apiKey?: string;
635
- /** Raw integrator token for the Apple Pay checkout shell (URL fragment). */
640
+ /** Raw integrator token for wallet checkout shells (URL fragment). */
636
641
  userToken?: string;
637
642
  env: string;
638
643
  locale: string;
@@ -640,14 +645,14 @@ declare class PaymentStep extends LitElement {
640
645
  successUrl?: string;
641
646
  queryClientContext: QueryClient | undefined;
642
647
  private _view;
643
- private _applePayWaiting;
644
- private _applePayUrl;
645
- private _applePayPopupBlocked;
646
- private _applePayConfigError;
648
+ private _walletWaiting;
649
+ private _walletUrl;
650
+ private _walletPopupBlocked;
651
+ private _walletConfigError;
647
652
  private _timedOut;
648
653
  private _iframeLoaded;
649
654
  private _iframeHeight;
650
- private _applePayPopup;
655
+ private _walletPopup;
651
656
  private _pollIntervalId?;
652
657
  private _pollStartTimeoutId?;
653
658
  private _pollDeadline;
@@ -658,12 +663,19 @@ declare class PaymentStep extends LitElement {
658
663
  private _paymentCurrency;
659
664
  private _paymentAmountLabel;
660
665
  private _buildApplePayUrl;
666
+ private _buildGooglePayUrl;
667
+ private _buildWalletCheckoutUrl;
661
668
  private _stopPaymentPolling;
662
669
  private _startPaymentPolling;
663
670
  private _pollOnce;
671
+ private _dispatchWalletOpenedEvent;
664
672
  private _onPaymentMethodSelected;
665
- private _openApplePayPopup;
666
- private _reopenApplePayPopup;
673
+ private _openWalletPopup;
674
+ private _reopenWalletPopup;
675
+ private _walletWaitingTitle;
676
+ private _walletReopenLabel;
677
+ private _walletReopenLinkLabel;
678
+ private _walletReopenAgainLabel;
667
679
  private _onHeaderBack;
668
680
  updated(changed: PropertyValues): void;
669
681
  connectedCallback(): void;