@mediquo/elements 0.11.0 → 0.12.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 (140) hide show
  1. package/README.md +7 -18
  2. package/dist/chunks/api-chat-client-Dx-sFrf2.js +1 -0
  3. package/dist/chunks/{apple-pay-outcomes-SIvDJWN_.js → apple-pay-outcomes--uAwZeLE.js} +1 -1
  4. package/dist/chunks/appointment-details-BM8peAHH.js +1 -0
  5. package/dist/chunks/{appointment-details-CVEDe_k0.d.ts → appointment-details-KL9fK6vG.d.ts} +1 -2
  6. package/dist/chunks/ca_ES-DYhnenv6.js +1 -0
  7. package/dist/chunks/checkout-bridge-BFpVxNww.js +1 -0
  8. package/dist/chunks/{chunk-Y4EKUX25-Bix9r5ry.js → chunk-Y4EKUX25-Bdei04iw.js} +1 -1
  9. package/dist/chunks/{chunk-YTQUGGS3-DH0H7ld7.js → chunk-YTQUGGS3-sBILRfPo.js} +1 -1
  10. package/dist/chunks/de_DE-Dw0iVZNb.js +1 -0
  11. package/dist/chunks/{documentation-view-BSt0gtCR.js → documentation-view-BcA4Vbhp.js} +1 -1
  12. package/dist/chunks/en_US-DONnbI9l.js +1 -0
  13. package/dist/chunks/{external-JLtsAfi6.js → external-cM_kgYO_.js} +1 -1
  14. package/dist/chunks/{index-CUirgiWh.d.ts → index-BEPyJrJL.d.ts} +1 -1
  15. package/dist/chunks/{index-B3rs7SlM.d.ts → index-BKjqWyIs.d.ts} +1 -1
  16. package/dist/chunks/{index-B6OMnYjW.js → index-CGWd3FWG.js} +1 -1
  17. package/dist/chunks/index-Djkwyh_M.js +1 -0
  18. package/dist/chunks/{index-CCWMMqiq.js → index-Dw4Aeoyg.js} +1 -1
  19. package/dist/chunks/{appointment.model.d-BWwBLaEL.d.ts → index-DwlJg2um.d.ts} +13 -0
  20. package/dist/chunks/{index-D2yqKnpP.js → index-VQqG1eyA.js} +1 -1
  21. package/dist/chunks/{index-DFaKhE7Q.d.ts → index-fut7tm1R.d.ts} +1 -1
  22. package/dist/chunks/{index.d-ByhRBSb1.d.ts → index.d-DHMNq1lu.d.ts} +2 -7
  23. package/dist/chunks/{login-token-task-Yib__6a9.js → login-token-task-NQJ77O_q.js} +1 -1
  24. package/dist/chunks/mq-chat-room-BkXGHzrd.js +1 -0
  25. package/dist/chunks/{mq-chat-room-C8wCADp2.d.ts → mq-chat-room-C0dJCvpV.d.ts} +2 -2
  26. package/dist/chunks/{mq-next-appointments-CbjNpG1H.js → mq-next-appointments-BngkXupq.js} +1 -1
  27. package/dist/chunks/{mq-recent-documents-DNqh_8J0.js → mq-recent-documents-Ee-JRTdl.js} +1 -1
  28. package/dist/chunks/mq-schedule-DAKftQ3D.js +1 -0
  29. package/dist/chunks/{mq-support-chat-tdev5LC-.js → mq-support-chat-Bzj5LYHb.js} +1 -1
  30. package/dist/chunks/{mq-videocall-CwYtlPu6.js → mq-videocall-Cp7LSoDs.js} +1 -1
  31. package/dist/chunks/{next-appointment-card-DLU7-wIv.js → next-appointment-card-BE0KW2vv.js} +1 -1
  32. package/dist/chunks/{next-appointment-card-CPg9FuOI.d.ts → next-appointment-card-Z5G1jqtz.d.ts} +4 -4
  33. package/dist/chunks/professional-overview-Ck_SPivX.js +1 -0
  34. package/dist/chunks/{professional-overview-mO3tuMuH.d.ts → professional-overview-QVHl_ITk.d.ts} +1 -0
  35. package/dist/chunks/pt_PT-dELUeDqB.js +1 -0
  36. package/dist/chunks/task-CqjSKFwZ.js +1 -0
  37. package/dist/chunks/{telemetry-client-K37KMdy_.js → telemetry-client-DA2_SZBC.js} +1 -1
  38. package/dist/env.js +1 -1
  39. package/dist/events.d.ts +1 -22
  40. package/dist/events.js +1 -1
  41. package/dist/i18n.js +1 -1
  42. package/dist/index.d.ts +1 -1
  43. package/dist/index.js +1 -1
  44. package/dist/mq-api-client-provider.d.ts +1 -1
  45. package/dist/mq-api-client-provider.js +1 -1
  46. package/dist/mq-apple-pay-checkout.d.ts +1 -1
  47. package/dist/mq-apple-pay-checkout.js +1 -1
  48. package/dist/mq-appointment-checkout.d.ts +20 -14
  49. package/dist/mq-appointment-checkout.js +1 -1
  50. package/dist/mq-appointment-documentation.d.ts +4 -4
  51. package/dist/mq-appointment-documentation.js +1 -1
  52. package/dist/mq-chat-room.d.ts +3 -3
  53. package/dist/mq-chat-room.js +1 -1
  54. package/dist/mq-checkout.d.ts +44 -61
  55. package/dist/mq-checkout.js +1 -1
  56. package/dist/mq-dashboard.d.ts +6 -6
  57. package/dist/mq-dashboard.js +1 -1
  58. package/dist/mq-documents.d.ts +2 -2
  59. package/dist/mq-documents.js +1 -1
  60. package/dist/mq-google-pay-checkout.d.ts +1 -1
  61. package/dist/mq-google-pay-checkout.js +1 -1
  62. package/dist/mq-immediate-videocall-checkout.d.ts +10 -9
  63. package/dist/mq-immediate-videocall-checkout.js +1 -1
  64. package/dist/mq-my-appointments.d.ts +6 -6
  65. package/dist/mq-my-appointments.js +1 -1
  66. package/dist/mq-next-appointments.d.ts +5 -5
  67. package/dist/mq-next-appointments.js +1 -1
  68. package/dist/mq-payment-poller.d.ts +2 -2
  69. package/dist/mq-payment-poller.js +1 -1
  70. package/dist/mq-professional-presence-sync.js +1 -1
  71. package/dist/mq-recent-documents.d.ts +2 -2
  72. package/dist/mq-recent-documents.js +1 -1
  73. package/dist/mq-schedule-success.d.ts +5 -5
  74. package/dist/mq-schedule-success.js +2 -2
  75. package/dist/mq-schedule.d.ts +52 -98
  76. package/dist/mq-schedule.js +1 -1
  77. package/dist/mq-socket-provider.js +1 -1
  78. package/dist/mq-support-chat.d.ts +3 -3
  79. package/dist/mq-support-chat.js +1 -1
  80. package/dist/mq-terms-and-conditions.d.ts +2 -2
  81. package/dist/mq-terms-and-conditions.js +1 -1
  82. package/dist/mq-unread-count-sync.js +1 -1
  83. package/dist/mq-videocall.d.ts +5 -5
  84. package/dist/mq-videocall.js +1 -1
  85. package/dist/react/mq-api-client-provider.d.ts +1 -1
  86. package/dist/react/mq-api-client-provider.js +1 -1
  87. package/dist/react/mq-apple-pay-checkout.d.ts +1 -1
  88. package/dist/react/mq-apple-pay-checkout.js +1 -1
  89. package/dist/react/mq-appointment-checkout.d.ts +12 -8
  90. package/dist/react/mq-appointment-checkout.js +1 -1
  91. package/dist/react/mq-appointment-documentation.d.ts +4 -4
  92. package/dist/react/mq-appointment-documentation.js +1 -1
  93. package/dist/react/mq-chat-room.d.ts +3 -3
  94. package/dist/react/mq-chat-room.js +1 -1
  95. package/dist/react/mq-checkout.d.ts +11 -8
  96. package/dist/react/mq-checkout.js +1 -1
  97. package/dist/react/mq-dashboard.d.ts +6 -6
  98. package/dist/react/mq-dashboard.js +1 -1
  99. package/dist/react/mq-documents-page.d.ts +2 -2
  100. package/dist/react/mq-documents-page.js +1 -1
  101. package/dist/react/mq-documents.d.ts +2 -2
  102. package/dist/react/mq-documents.js +1 -1
  103. package/dist/react/mq-google-pay-checkout.d.ts +1 -1
  104. package/dist/react/mq-google-pay-checkout.js +1 -1
  105. package/dist/react/mq-immediate-videocall-checkout.d.ts +4 -2
  106. package/dist/react/mq-immediate-videocall-checkout.js +1 -1
  107. package/dist/react/mq-my-appointments.d.ts +6 -6
  108. package/dist/react/mq-my-appointments.js +1 -1
  109. package/dist/react/mq-next-appointments.d.ts +5 -5
  110. package/dist/react/mq-next-appointments.js +1 -1
  111. package/dist/react/mq-payment-poller.d.ts +1 -1
  112. package/dist/react/mq-payment-poller.js +1 -1
  113. package/dist/react/mq-professional-presence-sync.js +1 -1
  114. package/dist/react/mq-recent-documents.d.ts +2 -2
  115. package/dist/react/mq-recent-documents.js +1 -1
  116. package/dist/react/mq-schedule-success.d.ts +5 -5
  117. package/dist/react/mq-schedule-success.js +1 -1
  118. package/dist/react/mq-schedule.d.ts +4 -14
  119. package/dist/react/mq-schedule.js +1 -1
  120. package/dist/react/mq-socket-provider.js +1 -1
  121. package/dist/react/mq-support-chat.d.ts +3 -3
  122. package/dist/react/mq-support-chat.js +1 -1
  123. package/dist/react/mq-terms-and-conditions.d.ts +2 -2
  124. package/dist/react/mq-terms-and-conditions.js +1 -1
  125. package/dist/react/mq-unread-count-sync.js +1 -1
  126. package/dist/react/mq-videocall.d.ts +5 -5
  127. package/dist/react/mq-videocall.js +1 -1
  128. package/dist/ui/mq-calendar.js +1 -1
  129. package/dist/ui/mq-tabs.js +49 -22
  130. package/package.json +1 -1
  131. package/dist/chunks/api-chat-client-s45J7LKB.js +0 -1
  132. package/dist/chunks/appointment-details-BYGwLfww.js +0 -1
  133. package/dist/chunks/ca_ES-BOvS9ayb.js +0 -1
  134. package/dist/chunks/de_DE-B-4V4SgD.js +0 -1
  135. package/dist/chunks/en_US-CgxjeeCm.js +0 -1
  136. package/dist/chunks/mq-chat-room-B_WgeuXn.js +0 -1
  137. package/dist/chunks/mq-schedule-BfW7y8uG.js +0 -1
  138. package/dist/chunks/professional-overview-B4E05rLd.js +0 -1
  139. package/dist/chunks/pt_PT-Vb6hoo2l.js +0 -1
  140. package/dist/chunks/task-Bj8p7kJX.js +0 -1
@@ -1 +1 @@
1
- import{initLocalization as s}from"./i18n.js";export{M as MqRecentDocuments}from"./chunks/mq-recent-documents-DNqh_8J0.js";export{DownloadFileEvent,MqViewDocumentsEvent}from"./events.js";import"./chunks/runtime-Bg1WXVCx.js";import"./chunks/chunk-FUCSYDW7-Duj5hy8S.js";import"./chunks/external-JLtsAfi6.js";import"./chunks/custom-element-D2ziPxYE.js";import"./chunks/provide-BwI4DDGF.js";import"./chunks/context-request-event-Dfydf1ub.js";import"./chunks/consume-CovVqBjI.js";import"./chunks/context-consumer-ESdICVAb.js";import"./chunks/localized-decorator-BlOuLhym.js";import"./chunks/query-controller-B1byDHlF.js";import"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import"./chunks/create-context-DqP79qjF.js";import"@tanstack/query-core";import"./chunks/api-client-context-BXGqBAlO.js";import"./chunks/chunk-S5RWG6G2-CQJ38pW6.js";import"./chunks/telemetry-client-K37KMdy_.js";import"./chunks/chunk-6CCJWPGL-TiaqZaPV.js";import"./chunks/chunk-5EJXDIGT-Bb4_pfDr.js";import"./chunks/index-CCWMMqiq.js";import"./chunks/lit-element-DiWJYFwC.js";import"./chunks/property-scuRaFcM.js";import"./chunks/api-chat-client-s45J7LKB.js";import"./chunks/chunk-NIAGR3ZC-BDlNUZa1.js";import"./chunks/parseISO-CEksKisk.js";import"./chunks/isBefore-DBi1CiNR.js";import"./env.js";import"./chunks/blob-to-base64-CUL1trde.js";import"./chunks/state-LQivXIgA.js";import"./ui/icons/download-02-icon.js";import"./chunks/if-defined-BYeVdwgd.js";import"./ui/icons/types.js";import"./ui/mq-button.js";import"./chunks/class-map-Co76I6aw.js";import"./chunks/directive-2EDmOukv.js";import"./ui/mq-toast.js";import"./ui/mq-skeleton.js";import"./chunks/style-map-CIdqdn7C.js";import"./chunks/get-patient-profile-query-D9btgcxl.js";import"./chunks/index-MfyXh-qX.js";import"./ui/icons/arrow-right-icon.js";import"./chunks/index-D3_2tkC3.js";import"./ui/icons/calendar-icon.js";import"./ui/icons/file-icon.js";s();
1
+ import{initLocalization as s}from"./i18n.js";export{M as MqRecentDocuments}from"./chunks/mq-recent-documents-Ee-JRTdl.js";export{DownloadFileEvent,MqViewDocumentsEvent}from"./events.js";import"./chunks/runtime-Bg1WXVCx.js";import"./chunks/chunk-FUCSYDW7-Duj5hy8S.js";import"./chunks/external-cM_kgYO_.js";import"./chunks/custom-element-D2ziPxYE.js";import"./chunks/provide-BwI4DDGF.js";import"./chunks/context-request-event-Dfydf1ub.js";import"./chunks/consume-CovVqBjI.js";import"./chunks/context-consumer-ESdICVAb.js";import"./chunks/localized-decorator-BlOuLhym.js";import"./chunks/query-controller-B1byDHlF.js";import"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import"./chunks/create-context-DqP79qjF.js";import"@tanstack/query-core";import"./chunks/api-client-context-BXGqBAlO.js";import"./chunks/chunk-S5RWG6G2-CQJ38pW6.js";import"./chunks/telemetry-client-DA2_SZBC.js";import"./chunks/chunk-6CCJWPGL-TiaqZaPV.js";import"./chunks/chunk-5EJXDIGT-Bb4_pfDr.js";import"./chunks/index-Dw4Aeoyg.js";import"./chunks/lit-element-DiWJYFwC.js";import"./chunks/property-scuRaFcM.js";import"./chunks/api-chat-client-Dx-sFrf2.js";import"./chunks/chunk-NIAGR3ZC-BDlNUZa1.js";import"./chunks/parseISO-CEksKisk.js";import"./chunks/isBefore-DBi1CiNR.js";import"./env.js";import"./chunks/blob-to-base64-CUL1trde.js";import"./chunks/state-LQivXIgA.js";import"./ui/icons/download-02-icon.js";import"./chunks/if-defined-BYeVdwgd.js";import"./ui/icons/types.js";import"./ui/mq-button.js";import"./chunks/class-map-Co76I6aw.js";import"./chunks/directive-2EDmOukv.js";import"./ui/mq-toast.js";import"./ui/mq-skeleton.js";import"./chunks/style-map-CIdqdn7C.js";import"./chunks/get-patient-profile-query-D9btgcxl.js";import"./chunks/index-MfyXh-qX.js";import"./ui/icons/arrow-right-icon.js";import"./chunks/index-D3_2tkC3.js";import"./ui/icons/calendar-icon.js";import"./ui/icons/file-icon.js";s();
@@ -1,13 +1,13 @@
1
1
  import * as lit_html from 'lit-html';
2
2
  import * as lit from 'lit';
3
3
  import { LitElement, PropertyValues } from 'lit';
4
- import { M as MediquoApiChatClient } from './chunks/index.d-ByhRBSb1.js';
4
+ import { M as MediquoApiChatClient } from './chunks/index.d-DHMNq1lu.js';
5
5
  import { Env } from './env.js';
6
6
  import './ui/mq-callout.js';
7
7
  import './ui/mq-button.js';
8
- import './chunks/professional-overview-mO3tuMuH.js';
9
- import './chunks/appointment-details-CVEDe_k0.js';
10
- import './chunks/mq-chat-room-C8wCADp2.js';
8
+ import './chunks/professional-overview-QVHl_ITk.js';
9
+ import './chunks/appointment-details-KL9fK6vG.js';
10
+ import './chunks/mq-chat-room-C0dJCvpV.js';
11
11
  import './ui/mq-floating-bubble.js';
12
12
  import './ui/mq-unread-badge.js';
13
13
  import './ui/mq-skeleton.js';
@@ -18,7 +18,7 @@ import 'zod';
18
18
  import './chunks/schemas.d-b6_AekBb.js';
19
19
  import './ui/mq-text-button.js';
20
20
  import './ui/mq-avatar.js';
21
- import './chunks/appointment.model.d-BWwBLaEL.js';
21
+ import './chunks/index-DwlJg2um.js';
22
22
 
23
23
  declare class MqScheduleSuccessSkeleton extends LitElement {
24
24
  static styles: lit.CSSResult;
@@ -1,4 +1,4 @@
1
- import{isValidLocale as t,setLocale as e,getLocale as i,initLocalization as o}from"./i18n.js";import{_ as n,c as a}from"./chunks/custom-element-D2ziPxYE.js";import{m as s,s as r}from"./chunks/runtime-Bg1WXVCx.js";import{l as c}from"./chunks/localized-decorator-BlOuLhym.js";import{A as p}from"./chunks/api-client-context-BXGqBAlO.js";import{i as l,a as d,x as m,E as u}from"./chunks/lit-element-DiWJYFwC.js";import{n as h}from"./chunks/property-scuRaFcM.js";import{r as v}from"./chunks/state-LQivXIgA.js";import{setEnv as g}from"./env.js";import{MqViewAppointmentsEvent as f,MqHomeEvent as k}from"./events.js";import{c as b,e as y,n as x,C as j}from"./chunks/api-chat-client-s45J7LKB.js";import{checkIcon as w}from"./ui/icons/check-icon.js";import"./ui/mq-callout.js";import"./ui/mq-button.js";import{e as $}from"./chunks/provide-BwI4DDGF.js";import{c as q}from"./chunks/consume-CovVqBjI.js";import{l as C}from"./chunks/chunk-S5RWG6G2-CQJ38pW6.js";import"./chunks/professional-overview-B4E05rLd.js";import"./chunks/appointment-details-BYGwLfww.js";import{Q as _}from"./chunks/query-controller-B1byDHlF.js";import{s as S}from"./chunks/chunk-6CCJWPGL-TiaqZaPV.js";import{D as I}from"./chunks/chunk-5EJXDIGT-Bb4_pfDr.js";import{g as z}from"./chunks/get-appointment-query-DuHrjd8L.js";import{g as A}from"./chunks/get-patient-profile-query-D9btgcxl.js";import{g as E}from"./chunks/chunk-Y4EKUX25-Bix9r5ry.js";import{r as O,b as P}from"./chunks/chunk-NIAGR3ZC-BDlNUZa1.js";import{calendarIcon as Q}from"./ui/icons/calendar-icon.js";import{chatbubbleIcon as T}from"./ui/icons/chat-bubble-icon.js";import{videoIcon as N}from"./ui/icons/video-icon.js";import"./chunks/mq-chat-room-B_WgeuXn.js";import"./ui/mq-floating-bubble.js";import"./ui/mq-unread-badge.js";import{g as V,t as G,f as U,a as B,i as H,j as K,k as M}from"./chunks/telemetry-client-K37KMdy_.js";import{f as R}from"./chunks/price-DU3YLTpk.js";import"./ui/mq-skeleton.js";import"./ui/mq-card.js";import{Q as D}from"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import{a as L}from"./chunks/addSeconds-fO5orJrt.js";import"./chunks/chunk-FUCSYDW7-Duj5hy8S.js";import"./chunks/external-JLtsAfi6.js";import"./chunks/create-context-DqP79qjF.js";import"./chunks/isBefore-DBi1CiNR.js";import"./chunks/parseISO-CEksKisk.js";import"./chunks/if-defined-BYeVdwgd.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-consumer-ESdICVAb.js";import"./ui/icons/chevron-down-icon.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"@tanstack/query-core";import"./theme.js";import"./ui/icons/x-icon.js";import"./chunks/chunk-BUV4MGML-CkhBbfUu.js";import"./ui/icons/chevron-left-icon.js";import"./chunks/query-CeeutdfT.js";import"./ui/icons/check-double-icon.js";import"./chunks/addDays-CdyO-PRI.js";import"./chunks/chunk-YTQUGGS3-DH0H7ld7.js";import"./chunks/mutation-controller-CR2qcqhH.js";import"./chunks/style-map-CIdqdn7C.js";const W=l`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 J=class MqScheduleSuccessSkeleton extends d{static{this.styles=W}render(){return m`<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>`}};J=n([a("mq-schedule-success-skeleton")],J);const F=l`.success-title{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4)}.success-title .check{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;border-radius:50%;background:var(--color-primary-background-extraWeak);color:var(--color-primary-icon-link)}header h1{font-family:var(--font-titles);font-size:var(--text-3xl);line-height:var(--text-3xl--line-height);font-weight:var(--font-weight-semibold);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 X=class MqScheduleSuccess extends d{constructor(){super(...arguments),this.kind="schedule",this.showNavCtas=!1,this._trackedPageView=!1,this.apiClient=b(),this.getPatientProfileQuery=new _(this,()=>A(this.apiClient)),this.getAppointmentQuery=new _(this,()=>z(this.apiClient,{id:this.appointmentId})),this.getCouponQuery=new _(this,()=>{return t=this.apiClient,e={appointmentId:this.appointmentId},i={enabled:!!this.appointmentId},{queryKey:S(t,"appointment-consultation-coupon",e.appointmentId),queryFn:()=>t.payments.getAppointmentConsultationCoupon(e.appointmentId),retry:!1,staleTime:I,...i};var t,e,i}),this.getOrganizationSpecialtiesQuery=new _(this,()=>V(this.apiClient)),this.isChatOpen=!1,this.unreadQuery=new _(this,()=>E(this.apiClient,{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
1
+ import{isValidLocale as t,setLocale as e,getLocale as i,initLocalization as o}from"./i18n.js";import{_ as n,c as a}from"./chunks/custom-element-D2ziPxYE.js";import{m as s,s as r}from"./chunks/runtime-Bg1WXVCx.js";import{l as c}from"./chunks/localized-decorator-BlOuLhym.js";import{A as p}from"./chunks/api-client-context-BXGqBAlO.js";import{i as l,a as d,x as m,E as u}from"./chunks/lit-element-DiWJYFwC.js";import{n as h}from"./chunks/property-scuRaFcM.js";import{r as v}from"./chunks/state-LQivXIgA.js";import{setEnv as g}from"./env.js";import{MqViewAppointmentsEvent as f,MqHomeEvent as k}from"./events.js";import{c as b,e as y,n as x,C as j}from"./chunks/api-chat-client-Dx-sFrf2.js";import{checkIcon as w}from"./ui/icons/check-icon.js";import"./ui/mq-callout.js";import"./ui/mq-button.js";import{e as $}from"./chunks/provide-BwI4DDGF.js";import{c as q}from"./chunks/consume-CovVqBjI.js";import{l as C}from"./chunks/chunk-S5RWG6G2-CQJ38pW6.js";import"./chunks/professional-overview-Ck_SPivX.js";import"./chunks/appointment-details-BM8peAHH.js";import{Q as _}from"./chunks/query-controller-B1byDHlF.js";import{s as S}from"./chunks/chunk-6CCJWPGL-TiaqZaPV.js";import{D as z}from"./chunks/chunk-5EJXDIGT-Bb4_pfDr.js";import{g as I}from"./chunks/get-appointment-query-DuHrjd8L.js";import{g as A}from"./chunks/get-patient-profile-query-D9btgcxl.js";import{g as E}from"./chunks/chunk-Y4EKUX25-Bdei04iw.js";import{r as O,b as P}from"./chunks/chunk-NIAGR3ZC-BDlNUZa1.js";import{calendarIcon as Q}from"./ui/icons/calendar-icon.js";import{chatbubbleIcon as T}from"./ui/icons/chat-bubble-icon.js";import{videoIcon as N}from"./ui/icons/video-icon.js";import"./chunks/mq-chat-room-BkXGHzrd.js";import"./ui/mq-floating-bubble.js";import"./ui/mq-unread-badge.js";import{g as V,t as G,f as U,a as B,i as H,j as K,k as M}from"./chunks/telemetry-client-DA2_SZBC.js";import{f as R}from"./chunks/price-DU3YLTpk.js";import"./ui/mq-skeleton.js";import"./ui/mq-card.js";import{Q as L}from"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import{a as W}from"./chunks/addSeconds-fO5orJrt.js";import"./chunks/chunk-FUCSYDW7-Duj5hy8S.js";import"./chunks/external-cM_kgYO_.js";import"./chunks/create-context-DqP79qjF.js";import"./chunks/isBefore-DBi1CiNR.js";import"./chunks/parseISO-CEksKisk.js";import"./chunks/if-defined-BYeVdwgd.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-consumer-ESdICVAb.js";import"./ui/icons/chevron-down-icon.js";import"./ui/mq-text-button.js";import"./ui/mq-avatar.js";import"./chunks/index-Djkwyh_M.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"@tanstack/query-core";import"./theme.js";import"./ui/icons/x-icon.js";import"./chunks/chunk-BUV4MGML-CkhBbfUu.js";import"./ui/icons/chevron-left-icon.js";import"./chunks/query-CeeutdfT.js";import"./ui/icons/check-double-icon.js";import"./chunks/addDays-CdyO-PRI.js";import"./chunks/chunk-YTQUGGS3-sBILRfPo.js";import"./chunks/mutation-controller-CR2qcqhH.js";import"./chunks/style-map-CIdqdn7C.js";const D=l`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 F=class MqScheduleSuccessSkeleton extends d{static{this.styles=D}render(){return m`<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>`}};F=n([a("mq-schedule-success-skeleton")],F);const J=l`.success-title{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4)}.success-title .check{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;border-radius:50%;background:var(--color-primary-background-extraWeak);color:var(--color-primary-icon-link)}header h1{font-family:var(--font-titles);font-size:var(--text-3xl);line-height:var(--text-3xl--line-height);font-weight:var(--font-weight-semibold);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 X=class MqScheduleSuccess extends d{constructor(){super(...arguments),this.kind="schedule",this.showNavCtas=!1,this._trackedPageView=!1,this.apiClient=b(),this.getPatientProfileQuery=new _(this,()=>A(this.apiClient)),this.getAppointmentQuery=new _(this,()=>I(this.apiClient,{id:this.appointmentId})),this.getCouponQuery=new _(this,()=>{return t=this.apiClient,e={appointmentId:this.appointmentId},i={enabled:!!this.appointmentId},{queryKey:S(t,"appointment-consultation-coupon",e.appointmentId),queryFn:()=>t.payments.getAppointmentConsultationCoupon(e.appointmentId),retry:!1,staleTime:z,...i};var t,e,i}),this.getOrganizationSpecialtiesQuery=new _(this,()=>V(this.apiClient)),this.isChatOpen=!1,this.unreadQuery=new _(this,()=>E(this.apiClient,{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 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 u}}}static{this.styles=F}get _accessToken(){return this.token??this.loginToken?.access_token}get _timezone(){return O(this.timezone,this.loginToken?.patient?.timezone)}willUpdate(i){i.has("env")&&this.env&&g(this.env),i.has("locale")&&this.locale&&t(this.locale)&&e(this.locale);const o=x(i,{env:this.env,apiKey:this.apiKey,token:this.token,locale:this.locale},this.inheritedApiClient);o&&(this.apiClient=o)}get _patientHash(){return this.getPatientProfileQuery.result?.data?.hash??""}firstUpdated(){this.queryClientContext?.invalidateQueries({queryKey:S(this.apiClient)})}updated(){!this._trackedPageView&&this._patientHash&&(this._trackedPageView=!0,G.track(U(this._patientHash,this.appointmentId)))}renderPriceBreakdown(t,e,i){const o=t.price;if(null==o||o<=0)return u;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,d=r?p?.percent_off??Math.round(a/o*100):0,h=l?`${s("Promoción")} ${l}`:s("Promoción");return m`<div class="price-breakdown"><div class="price-row"><span>${i}</span> <span>${R({amount:o,currency:n},e)}</span></div>${r?m`<div class="price-row"><span>${h} (-${d}%)</span> <span>${R({amount:-a,currency:n},e)}</span></div><hr><div class="price-row price-row--total"><span>${s("Total")}</span> <span>${R({amount:c,currency:n},e)}</span></div>`:u}</div>`}render(){return this.getAppointmentQuery.render({pending:()=>m`<mq-schedule-success-skeleton></mq-schedule-success-skeleton>`,complete:t=>{const e=i(),o=P(t.start_date),n=L(o,t.duration),a=this.getOrganizationSpecialtiesQuery.result?.data?.find(e=>e.id===Number(t.speciality_id)),c=B(a?.code??"",e,a?.name),p=t.channel===y.videocall,l=t.channel===y.phonecall,d=!0===t.has_chat_in_appointment,h=(p||l)&&d,v=this._accessToken;return m`<div><header><div class="success-title"><span class="check">${w()}</span><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="${()=>{G.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?m`<div class="actions">${h?m`<mq-button variant="primary" fullwidth size="md" @click="${()=>{G.track(K(this._patientHash,this.appointmentId)),this.isChatOpen=!this.isChatOpen}}">${T({size:24})} ${s("Chatear con el profesional")} ${(this.unreadQuery.result?.data?.unread_count??0)>0?m`<mq-unread-badge></mq-unread-badge>`:u}</mq-button>`:u} ${p?m`<mq-button variant="outline" fullwidth size="md" @click="${()=>{G.track(M(this._patientHash,this.appointmentId)),this.dispatchEvent(new OpenVideocallEvent({appointmentId:this.appointmentId}))}}">${N({size:24})} ${s("Ir a videollamada")}</mq-button>`:u}</div>`:u}</div><mq-callout background="default" variant="info" ?noPadding="${!(h||p)}">${this._getCalloutText(t)}</mq-callout></mq-card>${this.showNavCtas?m`<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 f({tab:"next"}))}}">${s("Ver mis citas")}</mq-button><mq-button variant="outline" size="md" fullwidth @click="${()=>{this.dispatchEvent(new k)}}">${s("Volver al inicio")}</mq-button></div></mq-card>`:u}</div><mq-floating-bubble ?dismissable="${!1}" .open="${this.isChatOpen}" @mq-close="${()=>{this.isChatOpen=!1}}" hideCloseButton>${this.isChatOpen&&v?m`<div slot="content" class="floating-content"><mq-chat-room .consultationId="${t.id}" .consultationType="${j.appointment}" .token="${v}" .roomId="${Number(t.room_id)}" .professionalHash="${t.from.hash}" @mq-chat-room-close="${()=>{this.isChatOpen=!1}}"></mq-chat-room></div>`:u}</mq-floating-bubble>`}})}};n([h({type:String})],X.prototype,"kind",void 0),n([h({type:String})],X.prototype,"appointmentId",void 0),n([h({type:String,attribute:"api-key"})],X.prototype,"apiKey",void 0),n([h({type:String,attribute:"token"})],X.prototype,"token",void 0),n([h({type:String,attribute:"timezone"})],X.prototype,"timezone",void 0),n([h({type:String,attribute:"locale"})],X.prototype,"locale",void 0),n([h({type:String,attribute:"env"})],X.prototype,"env",void 0),n([h({type:Boolean,attribute:"show-nav-ctas"})],X.prototype,"showNavCtas",void 0),n([q({context:D,subscribe:!0})],X.prototype,"queryClientContext",void 0),n([q({context:C,subscribe:!0})],X.prototype,"loginToken",void 0),n([q({context:p,subscribe:!0}),v()],X.prototype,"inheritedApiClient",void 0),n([$({context:p}),v()],X.prototype,"apiClient",void 0),n([v()],X.prototype,"isChatOpen",void 0),X=n([c(),a("mq-schedule-success")],X),o();export{X 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 u}}}static{this.styles=J}get _accessToken(){return this.token??this.loginToken?.access_token}get _timezone(){return O(this.timezone,this.loginToken?.patient?.timezone)}willUpdate(i){i.has("env")&&this.env&&g(this.env),i.has("locale")&&this.locale&&t(this.locale)&&e(this.locale);const o=x(i,{env:this.env,apiKey:this.apiKey,token:this.token,locale:this.locale},this.inheritedApiClient);o&&(this.apiClient=o)}get _patientHash(){return this.getPatientProfileQuery.result?.data?.hash??""}firstUpdated(){this.queryClientContext?.invalidateQueries({queryKey:S(this.apiClient)})}updated(){!this._trackedPageView&&this._patientHash&&(this._trackedPageView=!0,G.track(U(this._patientHash,this.appointmentId)))}renderPriceBreakdown(t,e,i){const o=t.price;if(null==o||o<=0)return u;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,d=r?p?.percent_off??Math.round(a/o*100):0,h=l?`${s("Promoción")} ${l}`:s("Promoción");return m`<div class="price-breakdown"><div class="price-row"><span>${i}</span> <span>${R({amount:o,currency:n},e)}</span></div>${r?m`<div class="price-row"><span>${h} (-${d}%)</span> <span>${R({amount:-a,currency:n},e)}</span></div><hr><div class="price-row price-row--total"><span>${s("Total")}</span> <span>${R({amount:c,currency:n},e)}</span></div>`:u}</div>`}render(){return this.getAppointmentQuery.render({pending:()=>m`<mq-schedule-success-skeleton></mq-schedule-success-skeleton>`,complete:t=>{const e=i(),o=P(t.start_date),n=W(o,t.duration),a=this.getOrganizationSpecialtiesQuery.result?.data?.find(e=>e.id===Number(t.speciality_id)),c=B(a?.code??"",e,a?.name),p=t.channel===y.videocall,l=t.channel===y.phonecall,d=!0===t.has_chat_in_appointment,h=(p||l)&&d,v=this._accessToken;return m`<div><header><div class="success-title"><span class="check">${w()}</span><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="${()=>{G.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?m`<div class="actions">${h?m`<mq-button variant="primary" fullwidth size="md" @click="${()=>{G.track(K(this._patientHash,this.appointmentId)),this.isChatOpen=!this.isChatOpen}}">${T({size:24})} ${s("Chatear con el profesional")} ${(this.unreadQuery.result?.data?.unread_count??0)>0?m`<mq-unread-badge></mq-unread-badge>`:u}</mq-button>`:u} ${p?m`<mq-button variant="outline" fullwidth size="md" @click="${()=>{G.track(M(this._patientHash,this.appointmentId)),this.dispatchEvent(new OpenVideocallEvent({appointmentId:this.appointmentId}))}}">${N({size:24})} ${s("Ir a videollamada")}</mq-button>`:u}</div>`:u}</div><mq-callout background="default" variant="info" ?noPadding="${!(h||p)}">${this._getCalloutText(t)}</mq-callout></mq-card>${this.showNavCtas?m`<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 f({tab:"next"}))}}">${s("Ver mis citas")}</mq-button><mq-button variant="outline" size="md" fullwidth @click="${()=>{this.dispatchEvent(new k)}}">${s("Volver al inicio")}</mq-button></div></mq-card>`:u}</div><mq-floating-bubble ?dismissable="${!1}" .open="${this.isChatOpen}" @mq-close="${()=>{this.isChatOpen=!1}}" hideCloseButton>${this.isChatOpen&&v?m`<div slot="content" class="floating-content"><mq-chat-room .consultationId="${t.id}" .consultationType="${j.appointment}" .token="${v}" .roomId="${Number(t.room_id)}" .professionalHash="${t.from.hash}" @mq-chat-room-close="${()=>{this.isChatOpen=!1}}"></mq-chat-room></div>`:u}</mq-floating-bubble>`}})}};n([h({type:String})],X.prototype,"kind",void 0),n([h({type:String})],X.prototype,"appointmentId",void 0),n([h({type:String,attribute:"api-key"})],X.prototype,"apiKey",void 0),n([h({type:String,attribute:"token"})],X.prototype,"token",void 0),n([h({type:String,attribute:"timezone"})],X.prototype,"timezone",void 0),n([h({type:String,attribute:"locale"})],X.prototype,"locale",void 0),n([h({type:String,attribute:"env"})],X.prototype,"env",void 0),n([h({type:Boolean,attribute:"show-nav-ctas"})],X.prototype,"showNavCtas",void 0),n([q({context:L,subscribe:!0})],X.prototype,"queryClientContext",void 0),n([q({context:C,subscribe:!0})],X.prototype,"loginToken",void 0),n([q({context:p,subscribe:!0}),v()],X.prototype,"inheritedApiClient",void 0),n([$({context:p}),v()],X.prototype,"apiClient",void 0),n([v()],X.prototype,"isChatOpen",void 0),X=n([c(),a("mq-schedule-success")],X),o();export{X as MqScheduleSuccess,OpenVideocallEvent};
@@ -1,29 +1,29 @@
1
1
  import * as lit_html_directive_js from 'lit-html/directive.js';
2
2
  import * as lit_html_directives_keyed_js from 'lit-html/directives/keyed.js';
3
3
  import * as lit from 'lit';
4
- import { LitElement, PropertyValues, TemplateResult, nothing } from 'lit';
5
- import { M as MediquoApiChatClient, c as GetScheduleServicesResponse, C as CreatePaymentLinkRequest, P as PaymentProvider, S as ScheduleProfessional } from './chunks/index.d-ByhRBSb1.js';
4
+ import { LitElement, PropertyValues, nothing } from 'lit';
5
+ import { M as MediquoApiChatClient, c as GetScheduleServicesResponse, S as ScheduleProfessional } from './chunks/index.d-DHMNq1lu.js';
6
6
  import './ui/mq-button.js';
7
7
  import { Env } from './env.js';
8
8
  import * as lit_html from 'lit-html';
9
- import { A as AppointmentChannel, a as Appointment } from './chunks/appointment.model.d-BWwBLaEL.js';
9
+ import { A as AppointmentChannel, a as Appointment } from './chunks/index-DwlJg2um.js';
10
10
  import z, { z as z$1 } from 'zod';
11
11
  import './ui/mq-callout.js';
12
12
  import './ui/mq-page-title.js';
13
- import './chunks/professional-overview-mO3tuMuH.js';
14
- import './chunks/appointment-details-CVEDe_k0.js';
13
+ import './chunks/professional-overview-QVHl_ITk.js';
14
+ import './chunks/appointment-details-KL9fK6vG.js';
15
15
  import './ui/mq-clamped-text.js';
16
16
  import './ui/mq-card.js';
17
17
  import { P as PriceInCents } from './chunks/price.d-CwLosdAN.js';
18
18
  import { QueryClient } from '@tanstack/query-core';
19
19
  import './ui/mq-skeleton.js';
20
- import './ui/mq-text-button.js';
21
20
  import './ui/mq-select.js';
22
21
  import './ui/mq-badge.js';
23
22
  import './ui/mq-time-slot-picker.js';
24
23
  import './ui/mq-calendar.js';
25
24
  import 'axios';
26
25
  import './chunks/schemas.d-b6_AekBb.js';
26
+ import './ui/mq-text-button.js';
27
27
  import './ui/mq-avatar.js';
28
28
 
29
29
  declare const ProfessionalSchema: z.ZodObject<{
@@ -303,10 +303,16 @@ declare global {
303
303
  }
304
304
  }
305
305
 
306
+ /** What the questionnaire collected, carried on to the payment step. */
307
+ interface PaymentBooking {
308
+ consultationReason: string;
309
+ preconsultationDocuments: FileAttachment[];
310
+ }
311
+
306
312
  /**
307
313
  * @fires back - Fired when the back button is clicked
308
314
  * @fires success - Fired when the appointment is created or rescheduled without payment
309
- * @fires payment-started - Fired when a payment link is ready (paid flow)
315
+ * @fires payment-started - Fired when the questionnaire is done and the slot has to be paid (paid flow)
310
316
  * @fires error - Fired when an error occurs
311
317
  */
312
318
  declare class ConfirmStep extends LitElement {
@@ -328,7 +334,6 @@ declare class ConfirmStep extends LitElement {
328
334
  /** Discount applied in the summary; threaded through so the code reaches the
329
335
  * booking payload and persists into the payment step. */
330
336
  appliedDiscount: AppliedDiscount | null;
331
- returnUrl?: string;
332
337
  private reason;
333
338
  private attachedFiles;
334
339
  get isPaymentFlow(): boolean;
@@ -337,7 +342,6 @@ declare class ConfirmStep extends LitElement {
337
342
  queryClientContext: QueryClient | undefined;
338
343
  private createScheduleAppointment;
339
344
  private rescheduleAppointmentMutation;
340
- private createPaymentLinkMutation;
341
345
  private handleSubmit;
342
346
  private handleFilesChange;
343
347
  protected firstUpdated(): void;
@@ -371,55 +375,23 @@ declare global {
371
375
  }
372
376
 
373
377
  /**
374
- * Payment method picker for the schedule flow.
378
+ * Payment step. Frames the hosted checkout, which creates the payment session
379
+ * and relays the outcome; in `redirect` mode it opens the checkout as the
380
+ * top-level page as soon as the patient gets here ("Continuar al pago"). The coupon applied while scheduling
381
+ * travels in the checkout URL, so the price it charges is the one shown here; a
382
+ * coupon that changes in this step reloads the checkout.
375
383
  *
376
- * @element payment-method-selector
377
- * @attr {boolean} show-google-pay - Offer Google Pay, when the device supports it
378
- * @attr {boolean} show-apple-pay - Offer Apple Pay, when the device supports it
379
- * @fires payment-method-selected - Fired when the user confirms a method (bubbles, composed; `method` on the event)
380
- */
381
- declare class PaymentMethodSelector extends LitElement {
382
- static styles: lit.CSSResult;
383
- showWallets: boolean;
384
- showGooglePay: boolean;
385
- showApplePay: boolean;
386
- private _selected;
387
- private get _googlePayVisible();
388
- private get _applePayVisible();
389
- protected willUpdate(changed: PropertyValues<this>): void;
390
- private _select;
391
- private _confirm;
392
- private _renderRow;
393
- private _renderAction;
394
- render(): TemplateResult<1>;
395
- }
396
- declare global {
397
- interface HTMLElementTagNameMap {
398
- "payment-method-selector": PaymentMethodSelector;
399
- }
400
- }
401
-
402
- /**
403
384
  * @fires back - Fired when the back button in the header is clicked
404
- * @fires payment-success - Fired when payment is confirmed (status === "paid")
405
- * @fires payment-retry - Fired when the iframe requests a payment retry (new session/url)
406
- * @fires apple-pay-opened - Cancelable. Fired before the Apple Pay popup opens.
407
- * Call preventDefault() to open the URL yourself (e.g. Safari top-level).
408
- * detail.url includes #token= (secret — do not log).
409
- * @fires google-pay-opened - Cancelable. Fired before the Google Pay popup opens.
410
- * Call preventDefault() to open the checkout URL yourself.
411
- * detail.url includes #token= (secret — do not log).
412
- * @fires mq-payment-redirect - Cancelable. Fired when `stripeRedirect` is on and
413
- * paying hands the user over to Stripe hosted checkout. Its default action is
414
- * the navigation, so hosts need no listener unless they open the URL themselves.
415
- * @fires error - Fired when the polling timeout is reached
385
+ * @fires success - Fired when a fully discounted appointment is confirmed without payment
386
+ * @fires payment-success - Fired when the checkout reports the payment as confirmed
387
+ * @fires error - Fired when the checkout reports the payment cannot go on.
388
+ * Detail: `{ expired }`, true when the slot offer lapsed and the patient has to
389
+ * pick a slot again.
416
390
  */
417
391
  declare class PaymentStep extends LitElement {
418
392
  apiClient: MediquoApiChatClient;
419
393
  static styles: lit.CSSResult;
420
- sessionId: string;
421
394
  showBack: boolean;
422
- paymentUrl: string;
423
395
  professional: Professional;
424
396
  startsAt: string;
425
397
  duration: number;
@@ -427,61 +399,42 @@ declare class PaymentStep extends LitElement {
427
399
  service: GetScheduleServicesResponse[number] | undefined;
428
400
  scheduleSlot: ScheduleSlot | undefined;
429
401
  appliedDiscount: AppliedDiscount | null;
430
- bookingRequest: CreatePaymentLinkRequest | null;
402
+ /** Questionnaire answers collected at the confirm step. */
403
+ booking: PaymentBooking | null;
431
404
  apiKey?: string;
432
- /** Session token, also sent as the wallet checkout shell URL fragment. */
405
+ /** Session token, sent as the checkout URL fragment. */
433
406
  token?: string;
434
407
  env: string;
435
408
  locale: string;
436
409
  countryCode: string;
437
- successUrl?: string;
438
- provider?: PaymentProvider;
439
- googlePayEnabled: boolean;
440
- applePayEnabled: boolean;
441
- stripeRedirect: boolean;
410
+ checkoutMode: "embed" | "redirect";
442
411
  queryClientContext: QueryClient | undefined;
443
- private _view;
444
- private _walletWaiting;
445
- private _walletUrl;
446
- private _walletPopupBlocked;
447
- private _walletConfigError;
448
- private _timedOut;
412
+ private _iframe?;
449
413
  private _iframeLoaded;
450
414
  private _iframeHeight;
451
- private _walletPopup;
452
- private _pollIntervalId?;
453
- private _pollStartTimeoutId?;
454
- private _pollDeadline;
415
+ /** The frame moved to the Stripe host, whose page brings its own padding. */
416
+ private _fullBleed;
417
+ private _renderedUrl;
418
+ private _redirected;
455
419
  get isFullyDiscounted(): boolean;
456
- /** Stripe card checkout uses the Mediquo `/pay` shell in the payment iframe. */
457
- private get embedsHostedCheckout();
458
420
  private createScheduleAppointment;
459
421
  private confirmFree;
460
422
  private _paymentAmountCents;
461
423
  private _paymentCurrency;
462
424
  private _paymentAmountLabel;
463
- private _buildApplePayUrl;
464
- private _buildGooglePayUrl;
465
425
  private _buildPayUrl;
466
- private _buildWalletCheckoutUrl;
467
- private _stopPaymentPolling;
468
- private _startPaymentPolling;
469
- private _pollOnce;
470
- private _dispatchWalletOpenedEvent;
471
- private _onPaymentMethodSelected;
472
- private _openWalletPopup;
473
- private _reopenWalletPopup;
474
- private _walletWaitingTitle;
475
- private _walletReopenLabel;
476
- private _walletReopenLinkLabel;
477
- private _walletReopenAgainLabel;
478
- private _onHeaderBack;
479
426
  willUpdate(changed: PropertyValues): void;
480
- updated(changed: PropertyValues): void;
481
427
  connectedCallback(): void;
482
428
  disconnectedCallback(): void;
429
+ updated(): void;
430
+ private _onPageShow;
483
431
  private _onIframeLoad;
484
432
  private _onMessage;
433
+ /**
434
+ * The checkout takes no documents, so the ones attached in the questionnaire
435
+ * are added to the appointment it created before announcing it.
436
+ */
437
+ private _onPaid;
485
438
  private _renderSummaryColumn;
486
439
  private _renderPaymentColumn;
487
440
  render(): lit_html.TemplateResult<1>;
@@ -609,6 +562,8 @@ declare class SelectProfessionalStep extends LitElement {
609
562
  showBack: boolean;
610
563
  defaultSpecialty: string | undefined;
611
564
  defaultService: string | undefined;
565
+ /** Why the wizard restarted here, e.g. a payment that failed after a redirect. */
566
+ errorMessage: string | undefined;
612
567
  formData: {
613
568
  service_id: string;
614
569
  specialty_id: string;
@@ -722,6 +677,7 @@ declare class SelectSlotStep extends LitElement {
722
677
  view: "days-window" | "calendar";
723
678
  windowStartDate: string | undefined;
724
679
  connectedCallback(): void;
680
+ protected willUpdate(changed: PropertyValues<this>): void;
725
681
  private renderView;
726
682
  render(): lit_html.TemplateResult<1>;
727
683
  }
@@ -775,6 +731,9 @@ declare class MqSchedule extends LitElement {
775
731
  appointmentId?: string;
776
732
  /** When `false`, hides the back button on the wizard's first step. */
777
733
  showBackButton: boolean;
734
+ /** `redirect` sends the patient to the hosted checkout page, which returns
735
+ * here with `status`, `session_id`, `reference` and `reason` in the query. */
736
+ checkoutMode: "embed" | "redirect";
778
737
  /** Mediquo API key. Required when used standalone (outside mq-router). */
779
738
  apiKey?: string;
780
739
  /** Already-exchanged access token. Required when used standalone. */
@@ -783,18 +742,6 @@ declare class MqSchedule extends LitElement {
783
742
  locale?: string;
784
743
  /** Environment override ("development" | "production"). Optional. */
785
744
  env?: Env;
786
- /**
787
- * Optional return URL passed to the Apple Pay shell as `success_url`.
788
- * Omit when the parent tab polls the payment session (default schedule web flow).
789
- */
790
- applePaySuccessUrl?: string;
791
- returnUrl?: string;
792
- /** Offer Google Pay in the payment step, when the device supports it. */
793
- googlePayEnabled: boolean;
794
- /** Offer Apple Pay in the payment step, when the device supports it. */
795
- applePayEnabled: boolean;
796
- /** Send Stripe payments to Stripe hosted checkout instead of embedding it. */
797
- stripeRedirect: boolean;
798
745
  timezone?: string;
799
746
  private loginToken?;
800
747
  private _patient;
@@ -805,9 +752,15 @@ declare class MqSchedule extends LitElement {
805
752
  * descendant. Never shared with another element.
806
753
  */
807
754
  apiClient: MediquoApiChatClient;
755
+ connectedCallback(): void;
756
+ protected firstUpdated(): void;
808
757
  protected willUpdate(changed: PropertyValues<this>): void;
809
758
  private _wizard;
810
759
  private _emittedCreated;
760
+ /** What the hosted checkout reported when it redirected back; read once. */
761
+ private _returned;
762
+ /** Starts the wizard showing the error, as when a slot cannot be booked. */
763
+ private _returnError;
811
764
  private _organizationChanged;
812
765
  private _current;
813
766
  private getAppointmentQuery;
@@ -819,6 +772,7 @@ declare class MqSchedule extends LitElement {
819
772
  private getOrganizationSetupQuery;
820
773
  private _initWizard;
821
774
  private _stepHandlers;
775
+ private _emitCreated;
822
776
  private _hostConfig;
823
777
  private _renderStep;
824
778
  private renderReschedulePolicyBlocked;
@@ -1 +1 @@
1
- export{A as AppointmentCreatedEvent,a as AuthRequiredEvent,M as MqSchedule}from"./chunks/mq-schedule-BfW7y8uG.js";import"./chunks/custom-element-D2ziPxYE.js";import"./chunks/query-controller-B1byDHlF.js";import"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import"./chunks/create-context-DqP79qjF.js";import"./chunks/context-consumer-ESdICVAb.js";import"./chunks/context-request-event-Dfydf1ub.js";import"@tanstack/query-core";import"./chunks/api-client-context-BXGqBAlO.js";import"./chunks/chunk-S5RWG6G2-CQJ38pW6.js";import"./chunks/get-appointment-query-DuHrjd8L.js";import"./chunks/chunk-6CCJWPGL-TiaqZaPV.js";import"./chunks/chunk-5EJXDIGT-Bb4_pfDr.js";import"./chunks/get-organization-setup-query-De7eM6V3.js";import"./chunks/telemetry-client-K37KMdy_.js";import"./chunks/get-patient-profile-query-D9btgcxl.js";import"./chunks/get-schedule-services-query-Io2aQ_7G.js";import"./chunks/chunk-NIAGR3ZC-BDlNUZa1.js";import"./chunks/parseISO-CEksKisk.js";import"./chunks/refund-cancel-policy-DoMzcLlL.js";import"./events.js";import"./chunks/api-chat-client-s45J7LKB.js";import"./chunks/external-JLtsAfi6.js";import"./chunks/isBefore-DBi1CiNR.js";import"./env.js";import"./ui/mq-button.js";import"./chunks/lit-element-DiWJYFwC.js";import"./chunks/property-scuRaFcM.js";import"./chunks/class-map-Co76I6aw.js";import"./chunks/directive-2EDmOukv.js";import"./chunks/if-defined-BYeVdwgd.js";import"./chunks/provide-BwI4DDGF.js";import"./chunks/consume-CovVqBjI.js";import"./chunks/runtime-Bg1WXVCx.js";import"./chunks/localized-decorator-BlOuLhym.js";import"./chunks/state-LQivXIgA.js";import"./chunks/index-C76yAope.js";import"./chunks/style-map-CIdqdn7C.js";import"./ui/mq-text-button.js";import"./i18n.js";import"./chunks/chunk-FUCSYDW7-Duj5hy8S.js";import"./chunks/mutation-controller-CR2qcqhH.js";import"./ui/mq-input.js";import"./chunks/query-CeeutdfT.js";import"./ui/icons/calendar-icon.js";import"./ui/icons/types.js";import"./ui/mq-callout.js";import"./ui/icons/info-circle-outine-icon.js";import"./ui/mq-page-title.js";import"./ui/icons/arrow-narrow-left-icon.js";import"./chunks/professional-overview-B4E05rLd.js";import"./ui/icons/chevron-down-icon.js";import"./ui/mq-avatar.js";import"./chunks/appointment-details-BYGwLfww.js";import"./chunks/addSeconds-fO5orJrt.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"./ui/mq-card.js";import"./ui/icons/spinner-icon.js";import"./ui/icons/tag-icon.js";import"./chunks/price-DU3YLTpk.js";import"./ui/mq-toast.js";import"./ui/icons/file-icon.js";import"./ui/icons/upload-icon.js";import"./ui/icons/x-icon.js";import"./ui/mq-textarea.js";import"./ui/mq-skeleton.js";import"./ui/mq-select.js";import"./ui/mq-badge.js";import"./chunks/index-D2yqKnpP.js";import"./ui/icons/chevron-left-icon.js";import"./ui/icons/chevron-right-icon.js";import"./chunks/format-tMwfQwDf.js";import"./ui/mq-time-slot-picker.js";import"./chunks/addDays-CdyO-PRI.js";import"./theme.js";
1
+ export{A as AppointmentCreatedEvent,a as AuthRequiredEvent,M as MqSchedule}from"./chunks/mq-schedule-DAKftQ3D.js";import"./chunks/custom-element-D2ziPxYE.js";import"./chunks/query-controller-B1byDHlF.js";import"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import"./chunks/create-context-DqP79qjF.js";import"./chunks/context-consumer-ESdICVAb.js";import"./chunks/context-request-event-Dfydf1ub.js";import"@tanstack/query-core";import"./chunks/api-client-context-BXGqBAlO.js";import"./chunks/chunk-S5RWG6G2-CQJ38pW6.js";import"./chunks/get-appointment-query-DuHrjd8L.js";import"./chunks/chunk-6CCJWPGL-TiaqZaPV.js";import"./chunks/chunk-5EJXDIGT-Bb4_pfDr.js";import"./chunks/get-organization-setup-query-De7eM6V3.js";import"./chunks/telemetry-client-DA2_SZBC.js";import"./chunks/get-patient-profile-query-D9btgcxl.js";import"./chunks/get-schedule-services-query-Io2aQ_7G.js";import"./chunks/chunk-NIAGR3ZC-BDlNUZa1.js";import"./chunks/parseISO-CEksKisk.js";import"./chunks/refund-cancel-policy-DoMzcLlL.js";import"./events.js";import"./chunks/api-chat-client-Dx-sFrf2.js";import"./chunks/external-cM_kgYO_.js";import"./chunks/isBefore-DBi1CiNR.js";import"./env.js";import"./ui/mq-button.js";import"./chunks/lit-element-DiWJYFwC.js";import"./chunks/property-scuRaFcM.js";import"./chunks/class-map-Co76I6aw.js";import"./chunks/directive-2EDmOukv.js";import"./chunks/if-defined-BYeVdwgd.js";import"./chunks/provide-BwI4DDGF.js";import"./chunks/consume-CovVqBjI.js";import"./chunks/runtime-Bg1WXVCx.js";import"./chunks/localized-decorator-BlOuLhym.js";import"./chunks/state-LQivXIgA.js";import"./chunks/index-C76yAope.js";import"./chunks/style-map-CIdqdn7C.js";import"./ui/mq-text-button.js";import"./i18n.js";import"./chunks/chunk-FUCSYDW7-Duj5hy8S.js";import"./chunks/mutation-controller-CR2qcqhH.js";import"./ui/mq-input.js";import"./chunks/query-CeeutdfT.js";import"./ui/icons/calendar-icon.js";import"./ui/icons/types.js";import"./ui/mq-callout.js";import"./ui/icons/info-circle-outine-icon.js";import"./ui/mq-page-title.js";import"./ui/icons/arrow-narrow-left-icon.js";import"./chunks/professional-overview-Ck_SPivX.js";import"./ui/icons/chevron-down-icon.js";import"./ui/mq-avatar.js";import"./chunks/index-Djkwyh_M.js";import"./chunks/appointment-details-BM8peAHH.js";import"./chunks/addSeconds-fO5orJrt.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"./ui/mq-card.js";import"./ui/icons/spinner-icon.js";import"./ui/icons/tag-icon.js";import"./chunks/price-DU3YLTpk.js";import"./ui/mq-toast.js";import"./ui/icons/file-icon.js";import"./ui/icons/upload-icon.js";import"./ui/icons/x-icon.js";import"./ui/mq-textarea.js";import"./chunks/checkout-bridge-BFpVxNww.js";import"./ui/mq-skeleton.js";import"./ui/mq-select.js";import"./ui/mq-badge.js";import"./chunks/index-VQqG1eyA.js";import"./ui/icons/chevron-left-icon.js";import"./ui/icons/chevron-right-icon.js";import"./chunks/format-tMwfQwDf.js";import"./ui/mq-time-slot-picker.js";import"./chunks/addDays-CdyO-PRI.js";import"./theme.js";