@mediquo/elements 0.6.3 → 0.6.4

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 (44) hide show
  1. package/dist/chunks/documentation-view-DJCr5_MN.js +1 -0
  2. package/dist/env.js +1 -1
  3. package/dist/mq-appointment-documentation.d.ts +1 -2
  4. package/dist/mq-appointment-documentation.js +1 -1
  5. package/dist/mq-dashboard.js +1 -1
  6. package/dist/mq-documents.d.ts +3 -5
  7. package/dist/mq-documents.js +1 -1
  8. package/dist/mq-my-appointments.d.ts +2 -3
  9. package/dist/mq-my-appointments.js +1 -1
  10. package/dist/mq-payment-poller.js +1 -1
  11. package/dist/mq-schedule-success.js +1 -1
  12. package/dist/mq-schedule.d.ts +2 -17
  13. package/dist/mq-schedule.js +1 -1
  14. package/dist/mq-support-chat.js +1 -1
  15. package/dist/mq-terms-and-conditions.js +1 -1
  16. package/dist/mq-videocall.d.ts +1 -1
  17. package/dist/mq-videocall.js +1 -1
  18. package/dist/react/mq-appointment-documentation.d.ts +1 -2
  19. package/dist/react/mq-appointment-documentation.js +1 -1
  20. package/dist/react/mq-chat-room.js +1 -1
  21. package/dist/react/mq-dashboard.js +1 -1
  22. package/dist/react/mq-documents-page.d.ts +1 -2
  23. package/dist/react/mq-documents-page.js +1 -1
  24. package/dist/react/mq-documents.d.ts +1 -2
  25. package/dist/react/mq-documents.js +1 -1
  26. package/dist/react/mq-my-appointments.d.ts +2 -2
  27. package/dist/react/mq-my-appointments.js +1 -1
  28. package/dist/react/mq-payment-poller.js +1 -1
  29. package/dist/react/mq-schedule-success.js +1 -1
  30. package/dist/react/mq-schedule.d.ts +2 -1
  31. package/dist/react/mq-schedule.js +1 -1
  32. package/dist/react/mq-support-chat.js +1 -1
  33. package/dist/react/mq-terms-and-conditions.js +1 -1
  34. package/dist/react/mq-videocall.d.ts +3 -3
  35. package/dist/react/mq-videocall.js +1 -1
  36. package/dist/ui/back-link.d.ts +3 -0
  37. package/dist/ui/icons/arrow-narrow-left-icon.d.ts +6 -0
  38. package/dist/ui/icons/arrow-narrow-left-icon.js +1 -0
  39. package/dist/ui/mq-button.d.ts +5 -2
  40. package/dist/ui/mq-button.js +1 -1
  41. package/dist/ui/mq-page-title.d.ts +31 -0
  42. package/dist/ui/mq-page-title.js +1 -0
  43. package/package.json +1 -1
  44. package/dist/chunks/documentation-view-DXSjqDwQ.js +0 -1
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- import{o as t}from"../chunks/create-component-BB-6Gu6l.js";import*as s from"react";import{M as o}from"../chunks/index-DhfVmF4C.js";import"../chunks/custom-element-D2ziPxYE.js";import"../chunks/lit-element-DiWJYFwC.js";import"../chunks/property-scuRaFcM.js";import"../chunks/state-LQivXIgA.js";import"../ui/mq-checkbox.js";import"../chunks/class-map-Co76I6aw.js";import"../chunks/directive-2EDmOukv.js";import"../ui/mq-button.js";import"../chunks/mutation-controller-CR2qcqhH.js";import"../env.js";import"../chunks/api-chat-client-BBL1U9EQ.js";import"../chunks/external-CJj32K_p.js";import"../chunks/parseISO-Dj3qSTG8.js";import"../chunks/format-CRFiCNHw.js";import"../chunks/isBefore-CPpTogxo.js";const n=t({react:s,tagName:"mq-terms-and-conditions",elementClass:o,events:{onContinue:"continue"}});export{n as MqTermsAndConditions};
2
+ import{o as t}from"../chunks/create-component-BB-6Gu6l.js";import*as s from"react";import{M as o}from"../chunks/index-DhfVmF4C.js";import"../chunks/custom-element-D2ziPxYE.js";import"../chunks/lit-element-DiWJYFwC.js";import"../chunks/property-scuRaFcM.js";import"../chunks/state-LQivXIgA.js";import"../ui/mq-checkbox.js";import"../chunks/class-map-Co76I6aw.js";import"../chunks/directive-2EDmOukv.js";import"../ui/mq-button.js";import"../chunks/if-defined-BYeVdwgd.js";import"../chunks/mutation-controller-CR2qcqhH.js";import"../env.js";import"../chunks/api-chat-client-BBL1U9EQ.js";import"../chunks/external-CJj32K_p.js";import"../chunks/parseISO-Dj3qSTG8.js";import"../chunks/format-CRFiCNHw.js";import"../chunks/isBefore-CPpTogxo.js";const n=t({react:s,tagName:"mq-terms-and-conditions",elementClass:o,events:{onContinue:"continue"}});export{n as MqTermsAndConditions};
@@ -7,11 +7,11 @@ import '@lit/task';
7
7
  import '../chunks/appointment.model.d-Dy50gMPg.js';
8
8
  import 'zod';
9
9
  import '@opentok/client';
10
- import '../ui/back-link.js';
11
- import '../ui/mq-text-button.js';
10
+ import '../ui/mq-page-title.js';
11
+ import '../ui/mq-button.js';
12
12
  import '../chunks/professional-overview-mO3tuMuH.js';
13
+ import '../ui/mq-text-button.js';
13
14
  import '../ui/mq-avatar.js';
14
- import '../ui/mq-button.js';
15
15
  import '../chunks/mq-chat-room-DuG4RuIp.js';
16
16
  import '../ui/mq-skeleton.js';
17
17
  import '@tanstack/query-core';
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- import{o as i}from"../chunks/create-component-BB-6Gu6l.js";import*as o from"react";import{MqVideocall as s}from"../mq-videocall.js";import"../chunks/custom-element-D2ziPxYE.js";import"../chunks/lit-element-DiWJYFwC.js";import"../chunks/property-scuRaFcM.js";import"../ui/icons/spinner-icon.js";import"../ui/icons/types.js";import"../chunks/provide-D2fnEhT2.js";import"../chunks/context-provider--AKuwfs9.js";import"../chunks/context-request-event-Dfydf1ub.js";import"../chunks/task-Bj8p7kJX.js";import"../chunks/api-chat-client-BBL1U9EQ.js";import"../chunks/external-CJj32K_p.js";import"../chunks/parseISO-Dj3qSTG8.js";import"../chunks/format-CRFiCNHw.js";import"../chunks/isBefore-CPpTogxo.js";import"../env.js";import"../chunks/state-LQivXIgA.js";import"../chunks/create-context-DqP79qjF.js";import"../chunks/runtime-Bg1WXVCx.js";import"../chunks/localized-decorator-BlOuLhym.js";import"../chunks/telemetry-client-BLJVs9me.js";import"../i18n.js";import"../chunks/chunk-4FFT6DC2-CVWibomC.js";import"../ui/icons/calendar-icon.js";import"../ui/back-link.js";import"../events.js";import"../ui/icons/chevron-left-icon.js";import"../chunks/if-defined-BYeVdwgd.js";import"../ui/mq-text-button.js";import"../chunks/class-map-Co76I6aw.js";import"../chunks/directive-2EDmOukv.js";import"../chunks/professional-overview-C4H_znIJ.js";import"../ui/icons/chevron-down-icon.js";import"../ui/mq-avatar.js";import"../chunks/consume-CovVqBjI.js";import"../chunks/context-consumer-ESdICVAb.js";import"../ui/icons/clock-icon.js";import"../chunks/documentation-view-DXSjqDwQ.js";import"../ui/icons/info-circle-outine-icon.js";import"../ui/mq-button.js";import"../chunks/chunk-S5RWG6G2-DPesx3Od.js";import"../ui/icons/message-bubble-icon.js";import"../mq-chat-room.js";import"../theme.js";import"../ui/icons/x-icon.js";import"../ui/mq-skeleton.js";import"../chunks/style-map-CIdqdn7C.js";import"../chunks/query-controller-BlO1Ax65.js";import"../chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import"../chunks/query-Cjvi4_dT.js";import"../chunks/chunk-YMQSBQHL-De_r7BNk.js";import"../chunks/query-CeeutdfT.js";import"../chunks/chunk-GZF3YFSX-DM-GTqxg.js";import"../ui/icons/check-double-icon.js";import"../ui/icons/check-icon.js";import"../chunks/chunk-YTQUGGS3-DmCGIoFy.js";import"../chunks/mutation-controller-CR2qcqhH.js";import"../ui/mq-floating-bubble.js";import"../ui/mq-card.js";import"../ui/mq-unread-badge.js";import"../chunks/index-KvIw19qY.js";import"../ui/icons/download-icon.js";import"../chunks/get-organization-setup-query-BMbuRi6v.js";import"../chunks/i18n-formats-DYS91YEa.js";import"../ui/icons/chat-bubble-icon.js";import"../ui/icons/mic-icon.js";import"../ui/icons/mic-off-icon.js";import"../ui/icons/video-icon.js";import"../ui/icons/video-off-icon.js";import"../ui/icons/alert-circle-icon.js";import"../ui/mq-rating.js";import"../ui/mq-toast.js";import"../ui/icons/heartbeat-icon.js";import"../ui/icons/time-left-icon.js";import"../chunks/mq-layout-BndHxkbb.js";const t=i({react:o,tagName:"mq-videocall",elementClass:s,events:{onToggleAudio:"toggle-audio",onToggleVideo:"toggle-video",onToggleChat:"toggle-chat",onViewDocumentation:"view-documentation",onDownloadFile:"download-file",onReviewSubmitted:"review-submitted",onReviewSkipped:"review-skipped",onViewAppointments:"mq-view-appointments"}});export{t as MqVideocall};
2
+ import{o as i}from"../chunks/create-component-BB-6Gu6l.js";import*as o from"react";import{MqVideocall as t}from"../mq-videocall.js";import"../chunks/custom-element-D2ziPxYE.js";import"../chunks/lit-element-DiWJYFwC.js";import"../chunks/property-scuRaFcM.js";import"../ui/icons/spinner-icon.js";import"../ui/icons/types.js";import"../chunks/provide-D2fnEhT2.js";import"../chunks/context-provider--AKuwfs9.js";import"../chunks/context-request-event-Dfydf1ub.js";import"../chunks/task-Bj8p7kJX.js";import"../chunks/api-chat-client-BBL1U9EQ.js";import"../chunks/external-CJj32K_p.js";import"../chunks/parseISO-Dj3qSTG8.js";import"../chunks/format-CRFiCNHw.js";import"../chunks/isBefore-CPpTogxo.js";import"../env.js";import"../chunks/state-LQivXIgA.js";import"../chunks/create-context-DqP79qjF.js";import"../chunks/runtime-Bg1WXVCx.js";import"../chunks/localized-decorator-BlOuLhym.js";import"../chunks/telemetry-client-BLJVs9me.js";import"../i18n.js";import"../chunks/chunk-4FFT6DC2-CVWibomC.js";import"../ui/icons/calendar-icon.js";import"../ui/mq-page-title.js";import"../events.js";import"../ui/mq-button.js";import"../chunks/class-map-Co76I6aw.js";import"../chunks/directive-2EDmOukv.js";import"../chunks/if-defined-BYeVdwgd.js";import"../ui/icons/arrow-narrow-left-icon.js";import"../chunks/professional-overview-C4H_znIJ.js";import"../ui/icons/chevron-down-icon.js";import"../ui/mq-text-button.js";import"../ui/mq-avatar.js";import"../chunks/consume-CovVqBjI.js";import"../chunks/context-consumer-ESdICVAb.js";import"../ui/icons/clock-icon.js";import"../chunks/documentation-view-DJCr5_MN.js";import"../ui/icons/info-circle-outine-icon.js";import"../chunks/chunk-S5RWG6G2-DPesx3Od.js";import"../ui/icons/message-bubble-icon.js";import"../mq-chat-room.js";import"../theme.js";import"../ui/icons/x-icon.js";import"../ui/mq-skeleton.js";import"../chunks/style-map-CIdqdn7C.js";import"../chunks/query-controller-BlO1Ax65.js";import"../chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import"../chunks/query-Cjvi4_dT.js";import"../chunks/chunk-YMQSBQHL-De_r7BNk.js";import"../ui/icons/chevron-left-icon.js";import"../chunks/query-CeeutdfT.js";import"../chunks/chunk-GZF3YFSX-DM-GTqxg.js";import"../ui/icons/check-double-icon.js";import"../ui/icons/check-icon.js";import"../chunks/chunk-YTQUGGS3-DmCGIoFy.js";import"../chunks/mutation-controller-CR2qcqhH.js";import"../ui/mq-floating-bubble.js";import"../ui/mq-card.js";import"../ui/mq-unread-badge.js";import"../chunks/index-KvIw19qY.js";import"../ui/icons/download-icon.js";import"../chunks/get-organization-setup-query-BMbuRi6v.js";import"../chunks/i18n-formats-DYS91YEa.js";import"../ui/icons/chat-bubble-icon.js";import"../ui/icons/mic-icon.js";import"../ui/icons/mic-off-icon.js";import"../ui/icons/video-icon.js";import"../ui/icons/video-off-icon.js";import"../ui/icons/alert-circle-icon.js";import"../ui/mq-rating.js";import"../ui/mq-toast.js";import"../ui/icons/heartbeat-icon.js";import"../ui/icons/time-left-icon.js";import"../chunks/mq-layout-BndHxkbb.js";const s=i({react:o,tagName:"mq-videocall",elementClass:t,events:{onToggleAudio:"toggle-audio",onToggleVideo:"toggle-video",onToggleChat:"toggle-chat",onViewDocumentation:"view-documentation",onDownloadFile:"download-file",onReviewSubmitted:"review-submitted",onReviewSkipped:"review-skipped",onViewAppointments:"mq-view-appointments"}});export{s as MqVideocall};
@@ -7,6 +7,9 @@ import './mq-text-button.js';
7
7
  * on click it emits a decoupled `MqBackEvent`. The host decides what "back"
8
8
  * means. Use the optional `source` to disambiguate when composed inside a
9
9
  * feature that renders more than one back affordance.
10
+ *
11
+ * For screen chrome with a page title, prefer `mq-page-title` instead of
12
+ * composing this with a separate heading.
10
13
  */
11
14
  declare class BackLink extends LitElement {
12
15
  source?: string;
@@ -0,0 +1,6 @@
1
+ import * as lit_html from 'lit-html';
2
+ import { IconProps } from './types.js';
3
+
4
+ declare function arrowNarrowLeftIcon({ size, color, className, }?: IconProps): lit_html.TemplateResult<1>;
5
+
6
+ export { arrowNarrowLeftIcon };
@@ -0,0 +1 @@
1
+ import{x as o}from"../../chunks/lit-element-DiWJYFwC.js";import{o as s}from"../../chunks/if-defined-BYeVdwgd.js";import{defaultIconProps as e}from"./types.js";function t({size:t=e.size,color:r=e.color,className:i=e.className}={}){return o`<svg xmlns="http://www.w3.org/2000/svg" width="${t}" height="${t}" viewBox="0 0 24 24" fill="none" stroke="${r}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="${s(i)}"><path d="M19 12H5M5 12L12 19M5 12L12 5"/></svg>`}export{t as arrowNarrowLeftIcon};
@@ -2,8 +2,9 @@ import * as lit_html from 'lit-html';
2
2
  import * as lit from 'lit';
3
3
  import { LitElement } from 'lit';
4
4
 
5
- type ButtonVariant = "primary" | "secondary" | "light" | "negative" | "outline-negative" | "ghost" | "ghost-inverted" | "ghost-negative" | "link" | "outline" | "outline-inverted";
5
+ type ButtonVariant = "primary" | "secondary" | "light" | "light-filled" | "negative" | "outline-negative" | "ghost" | "ghost-inverted" | "ghost-negative" | "link" | "outline" | "outline-inverted";
6
6
  type ButtonSize = "xs" | "sm" | "md" | "lg" | "xl" | "icon-xs" | "icon-sm" | "icon-md" | "icon-lg";
7
+ type ButtonKind = "default" | "circular";
7
8
  declare class MqButton extends LitElement {
8
9
  static styles: lit.CSSResult[];
9
10
  static formAssociated: boolean;
@@ -16,11 +17,13 @@ declare class MqButton extends LitElement {
16
17
  private internals;
17
18
  variant: ButtonVariant;
18
19
  size: ButtonSize;
20
+ kind: ButtonKind;
19
21
  fullwidth: boolean;
20
22
  disabled: boolean;
21
23
  type: "button" | "submit" | "reset";
22
24
  uppercase: boolean;
23
25
  noPadding: boolean;
26
+ ariaLabel: string | null;
24
27
  private handleClick;
25
28
  render(): lit_html.TemplateResult<1>;
26
29
  }
@@ -31,4 +34,4 @@ declare global {
31
34
  }
32
35
 
33
36
  export { MqButton };
34
- export type { ButtonSize, ButtonVariant };
37
+ export type { ButtonKind, ButtonSize, ButtonVariant };
@@ -1 +1 @@
1
- import{_ as t,c as o}from"../chunks/custom-element-D2ziPxYE.js";import{i as r,a as e,x as i}from"../chunks/lit-element-DiWJYFwC.js";import{n}from"../chunks/property-scuRaFcM.js";import{e as a}from"../chunks/class-map-Co76I6aw.js";import"../chunks/directive-2EDmOukv.js";const l=r`:host{display:inline-block}button{display:inline-flex;align-items:center;justify-content:center;gap:var(--size-2);border-radius:var(--border-radius-md);letter-spacing:.01em;font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--font-weight-bold);transition:all .2s;outline:0;border:none;cursor:pointer;position:relative;line-height:var(--text-base--line-height);padding:0;box-sizing:border-box;width:100%;--mq-btn-ring-color:var(--color-primary)}button:focus-visible{box-shadow:0 0 0 1.5px var(--color-background,#fff),0 0 0 3.5px var(--mq-btn-ring-color,var(--color-primary));z-index:1}button.ghost-inverted:disabled,button.ghost-negative:disabled,button.ghost:disabled,button.light:disabled,button.link:disabled,button.negative:disabled,button.outline-inverted:disabled,button.outline-negative:disabled,button.outline:disabled,button.primary:disabled,button.secondary:disabled,button:disabled{background:var(--color-neutrals-background-disabled);color:var(--color-neutrals-link-disabled);border:var(--action-border-width) solid var(--color-neutrals-border-disabled);cursor:not-allowed}:host([fullwidth]){width:100%}:host([fullwidth]) button{width:100%}button.primary{background:var(--color-primary);color:var(--color-white);--mq-btn-ring-color:var(--color-primary)}button.primary:hover:not(:disabled){background:var(--color-primary-dark)}button.secondary{background:var(--color-gray-lighter);color:var(--color-black);--mq-btn-ring-color:var(--color-gray)}button.secondary:hover:not(:disabled){background:var(--color-gray-light)}button.light{background:var(--color-primary-background-extraWeak);color:var(--color-neutrals-text-default);--mq-btn-ring-color:var(--color-primary)}button.light:hover:not(:disabled){background:var(--color-primary-light)}button.negative{background:var(--color-negative);color:var(--color-white);--mq-btn-ring-color:var(--color-negative)}button.negative:hover:not(:disabled){background:var(--color-negative-dark)}button.outline-negative{background:0 0;color:var(--color-negative);border:var(--action-border-width) solid var(--color-negative);--mq-btn-ring-color:var(--color-negative)}button.outline-negative:hover:not(:disabled){background:var(--color-negative-light)}button.ghost{background:0 0;color:var(--color-primary);--mq-btn-ring-color:var(--color-primary)}button.ghost:hover:not(:disabled){background:var(--color-primary-light)}button.ghost-inverted{background:0 0;color:var(--color-background);--mq-btn-ring-color:var(--color-background)}button.ghost-inverted:hover:not(:disabled){background:color-mix(in lab,var(--color-background) 50%,transparent);color:var(--color-foreground)}button.ghost-negative{background:0 0;color:var(--color-negative);--mq-btn-ring-color:var(--color-negative)}button.ghost-negative:hover:not(:disabled){background:var(--color-negative-light)}button.link{background:0 0;color:var(--color-primary);text-decoration:underline;text-underline-offset:4px;border:none;padding:0;--mq-btn-ring-color:var(--color-primary)}button.link:hover:not(:disabled){text-decoration:underline}button.outline{background:0 0;color:var(--color-primary-link-default);border:var(--action-border-width) solid var(--color-primary-background-default);--mq-btn-ring-color:var(--color-primary)}button.outline:disabled{color:var(--color-neutrals-link-disabled);border-color:var(--color-neutrals-border-disabled)}button.outline:hover:not(:disabled){background:var(--color-primary-light)}button.outline-inverted{background:0 0;color:var(--color-white);border:var(--action-border-width) solid var(--color-white);--mq-btn-ring-color:var(--color-white)}button.outline-inverted:hover:not(:disabled){background:color-mix(in srgb,var(--color-white) 15%,transparent)}button.xs{height:var(--button-height-xs);padding:var(--size-2) var(--size-3);font-size:var(--text-xs)}button.sm{height:var(--button-height-sm);padding:var(--size-3);font-size:var(--text-sm);line-height:var(--text-sm--line-height)}button.md{height:var(--button-height-md);padding:var(--size-3) var(--size-4);font-size:var(--text-sm);line-height:var(--text-sm--line-height)}button.lg{height:var(--button-height-lg);padding:var(--sp-4) var(--sp-8);font-size:var(--text-sm);line-height:var(--text-sm--line-height)}button.xl{height:var(--button-height-xl);padding:var(--size-4) var(--size-8);font-size:var(--text-base);line-height:var(--text-base--line-height)}button.icon-xs{height:var(--size-6);width:var(--size-6);padding:0;font-size:var(--text-xs);line-height:var(--text-xs--line-height)}button.icon-sm{height:var(--size-9);width:var(--size-9);padding:0;font-size:var(--text-sm);line-height:var(--text-sm--line-height)}button.icon-md{height:var(--size-10);width:var(--size-10);padding:0;font-size:var(--text-sm);line-height:var(--text-sm--line-height)}button.icon-lg{height:var(--size-11);width:var(--size-11);padding:0;font-size:var(--text-base);line-height:var(--text-base--line-height)}button.uppercase{text-transform:uppercase}button.no-padding{padding:0!important}`;let s=class MqButton extends e{constructor(){super(...arguments),this.internals=this.attachInternals(),this.variant="primary",this.size="md",this.fullwidth=!1,this.disabled=!1,this.type="button",this.uppercase=!1,this.noPadding=!1,this.handleClick=t=>{this.disabled?t.preventDefault():"submit"===this.type&&this.internals.form?(t.preventDefault(),this.internals.form.requestSubmit()):"reset"===this.type&&this.internals.form&&(t.preventDefault(),this.internals.form.reset())}}static{this.styles=[l]}static{this.formAssociated=!0}static{this.shadowRootOptions={...e.shadowRootOptions,delegatesFocus:!0}}render(){const t={[this.variant]:!0,[this.size]:!0,fullwidth:this.fullwidth,disabled:this.disabled,uppercase:this.uppercase,"no-padding":this.noPadding};return i`<button class="${a(t)}" type="${this.type}" ?disabled="${this.disabled}" @click="${this.handleClick}"><slot></slot></button>`}};t([n({type:String,reflect:!0})],s.prototype,"variant",void 0),t([n({type:String,reflect:!0})],s.prototype,"size",void 0),t([n({type:Boolean,reflect:!0})],s.prototype,"fullwidth",void 0),t([n({type:Boolean,reflect:!0})],s.prototype,"disabled",void 0),t([n({type:String,reflect:!0})],s.prototype,"type",void 0),t([n({type:Boolean,reflect:!0})],s.prototype,"uppercase",void 0),t([n({type:Boolean,reflect:!0})],s.prototype,"noPadding",void 0),s=t([o("mq-button")],s);export{s as MqButton};
1
+ import{_ as t,c as r}from"../chunks/custom-element-D2ziPxYE.js";import{i as o,a as e,x as i}from"../chunks/lit-element-DiWJYFwC.js";import{n as a}from"../chunks/property-scuRaFcM.js";import{e as n}from"../chunks/class-map-Co76I6aw.js";import{o as l}from"../chunks/if-defined-BYeVdwgd.js";import"../chunks/directive-2EDmOukv.js";const d=o`:host{display:inline-block}button{display:inline-flex;align-items:center;justify-content:center;gap:var(--size-2);border-radius:var(--border-radius-md);letter-spacing:.01em;font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--font-weight-bold);transition:all .2s;outline:0;border:none;cursor:pointer;position:relative;line-height:var(--text-base--line-height);padding:0;box-sizing:border-box;width:100%;--mq-btn-ring-color:var(--color-primary)}button:focus-visible{box-shadow:0 0 0 1.5px var(--color-background,#fff),0 0 0 3.5px var(--mq-btn-ring-color,var(--color-primary));z-index:1}button.ghost-inverted:disabled,button.ghost-negative:disabled,button.ghost:disabled,button.light-filled:disabled,button.light:disabled,button.link:disabled,button.negative:disabled,button.outline-inverted:disabled,button.outline-negative:disabled,button.outline:disabled,button.primary:disabled,button.secondary:disabled,button:disabled{background:var(--color-neutrals-background-disabled);color:var(--color-neutrals-link-disabled);border:var(--action-border-width) solid var(--color-neutrals-border-disabled);cursor:not-allowed}:host([fullwidth]){width:100%}:host([fullwidth]) button{width:100%}button.primary{background:var(--color-primary);color:var(--color-white);--mq-btn-ring-color:var(--color-primary)}button.primary:hover:not(:disabled){background:var(--color-primary-dark)}button.secondary{background:var(--color-gray-lighter);color:var(--color-black);--mq-btn-ring-color:var(--color-gray)}button.secondary:hover:not(:disabled){background:var(--color-gray-light)}button.light{background:var(--color-primary-background-extraWeak);color:var(--color-neutrals-text-default);--mq-btn-ring-color:var(--color-primary)}button.light:hover:not(:disabled){background:var(--color-primary-light)}button.light-filled{background:var(--color-primary-light);color:var(--color-primary);--mq-btn-ring-color:var(--color-primary)}button.light-filled:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary) 12%,var(--color-primary-light))}button.negative{background:var(--color-negative);color:var(--color-white);--mq-btn-ring-color:var(--color-negative)}button.negative:hover:not(:disabled){background:var(--color-negative-dark)}button.outline-negative{background:0 0;color:var(--color-negative);border:var(--action-border-width) solid var(--color-negative);--mq-btn-ring-color:var(--color-negative)}button.outline-negative:hover:not(:disabled){background:var(--color-negative-light)}button.ghost{background:0 0;color:var(--color-primary);--mq-btn-ring-color:var(--color-primary)}button.ghost:hover:not(:disabled){background:var(--color-primary-light)}button.ghost-inverted{background:0 0;color:var(--color-background);--mq-btn-ring-color:var(--color-background)}button.ghost-inverted:hover:not(:disabled){background:color-mix(in lab,var(--color-background) 50%,transparent);color:var(--color-foreground)}button.ghost-negative{background:0 0;color:var(--color-negative);--mq-btn-ring-color:var(--color-negative)}button.ghost-negative:hover:not(:disabled){background:var(--color-negative-light)}button.link{background:0 0;color:var(--color-primary);text-decoration:underline;text-underline-offset:4px;border:none;padding:0;--mq-btn-ring-color:var(--color-primary)}button.link:hover:not(:disabled){text-decoration:underline}button.outline{background:0 0;color:var(--color-primary-link-default);border:var(--action-border-width) solid var(--color-primary-background-default);--mq-btn-ring-color:var(--color-primary)}button.outline:disabled{color:var(--color-neutrals-link-disabled);border-color:var(--color-neutrals-border-disabled)}button.outline:hover:not(:disabled){background:var(--color-primary-light)}button.outline-inverted{background:0 0;color:var(--color-white);border:var(--action-border-width) solid var(--color-white);--mq-btn-ring-color:var(--color-white)}button.outline-inverted:hover:not(:disabled){background:color-mix(in srgb,var(--color-white) 15%,transparent)}button.xs{height:var(--button-height-xs);padding:var(--size-2) var(--size-3);font-size:var(--text-xs)}button.sm{height:var(--button-height-sm);padding:var(--size-3);font-size:var(--text-sm);line-height:var(--text-sm--line-height)}button.md{height:var(--button-height-md);padding:var(--size-3) var(--size-4);font-size:var(--text-sm);line-height:var(--text-sm--line-height)}button.lg{height:var(--button-height-lg);padding:var(--sp-4) var(--sp-8);font-size:var(--text-sm);line-height:var(--text-sm--line-height)}button.xl{height:var(--button-height-xl);padding:var(--size-4) var(--size-8);font-size:var(--text-base);line-height:var(--text-base--line-height)}button.circular{border-radius:var(--border-radius-full);flex-shrink:0}button.icon-xs{height:var(--size-6);width:var(--size-6);padding:0;font-size:var(--text-xs);line-height:var(--text-xs--line-height)}button.icon-sm{height:var(--size-9);width:var(--size-9);padding:0;font-size:var(--text-sm);line-height:var(--text-sm--line-height)}button.icon-md{height:var(--size-10);width:var(--size-10);padding:0;font-size:var(--text-sm);line-height:var(--text-sm--line-height)}button.icon-lg{height:var(--size-11);width:var(--size-11);padding:0;font-size:var(--text-base);line-height:var(--text-base--line-height)}button.uppercase{text-transform:uppercase}button.no-padding{padding:0!important}`;let s=class MqButton extends e{constructor(){super(...arguments),this.internals=this.attachInternals(),this.variant="primary",this.size="md",this.kind="default",this.fullwidth=!1,this.disabled=!1,this.type="button",this.uppercase=!1,this.noPadding=!1,this.ariaLabel=null,this.handleClick=t=>{this.disabled?t.preventDefault():"submit"===this.type&&this.internals.form?(t.preventDefault(),this.internals.form.requestSubmit()):"reset"===this.type&&this.internals.form&&(t.preventDefault(),this.internals.form.reset())}}static{this.styles=[d]}static{this.formAssociated=!0}static{this.shadowRootOptions={...e.shadowRootOptions,delegatesFocus:!0}}render(){const t={[this.variant]:!0,[this.size]:!0,circular:"circular"===this.kind,fullwidth:this.fullwidth,disabled:this.disabled,uppercase:this.uppercase,"no-padding":this.noPadding};return i`<button class="${n(t)}" type="${this.type}" ?disabled="${this.disabled}" aria-label="${l(this.ariaLabel??void 0)}" @click="${this.handleClick}"><slot></slot></button>`}};t([a({type:String,reflect:!0})],s.prototype,"variant",void 0),t([a({type:String,reflect:!0})],s.prototype,"size",void 0),t([a({type:String,reflect:!0})],s.prototype,"kind",void 0),t([a({type:Boolean,reflect:!0})],s.prototype,"fullwidth",void 0),t([a({type:Boolean,reflect:!0})],s.prototype,"disabled",void 0),t([a({type:String,reflect:!0})],s.prototype,"type",void 0),t([a({type:Boolean,reflect:!0})],s.prototype,"uppercase",void 0),t([a({type:Boolean,reflect:!0})],s.prototype,"noPadding",void 0),t([a({type:String,attribute:"aria-label"})],s.prototype,"ariaLabel",void 0),s=t([r("mq-button")],s);export{s as MqButton};
@@ -0,0 +1,31 @@
1
+ import * as lit_html from 'lit-html';
2
+ import * as lit from 'lit';
3
+ import { LitElement } from 'lit';
4
+ import './mq-button.js';
5
+
6
+ /**
7
+ * Inline page title with an icon-only back button.
8
+ *
9
+ * The back button is the only interactive element; the title is static text.
10
+ * On click it emits a decoupled `MqBackEvent`. Use the optional `source` to
11
+ * disambiguate when composed inside a feature that renders more than one back
12
+ * affordance.
13
+ *
14
+ * Prefer this over composing `back-link` + a separate heading for screen chrome.
15
+ */
16
+ declare class MqPageTitle extends LitElement {
17
+ static styles: lit.CSSResult;
18
+ title: string;
19
+ showBack: boolean;
20
+ backLabel: string;
21
+ source?: string;
22
+ private handleBackClick;
23
+ render(): lit_html.TemplateResult<1>;
24
+ }
25
+ declare global {
26
+ interface HTMLElementTagNameMap {
27
+ "mq-page-title": MqPageTitle;
28
+ }
29
+ }
30
+
31
+ export { MqPageTitle };
@@ -0,0 +1 @@
1
+ import{_ as t,c as i}from"../chunks/custom-element-D2ziPxYE.js";import{m as e}from"../chunks/runtime-Bg1WXVCx.js";import{l as o}from"../chunks/localized-decorator-BlOuLhym.js";import{i as s,a as r,x as a}from"../chunks/lit-element-DiWJYFwC.js";import{n}from"../chunks/property-scuRaFcM.js";import{MqBackEvent as l}from"../events.js";import"./mq-button.js";import{arrowNarrowLeftIcon as c}from"./icons/arrow-narrow-left-icon.js";import"../chunks/class-map-Co76I6aw.js";import"../chunks/directive-2EDmOukv.js";import"../chunks/if-defined-BYeVdwgd.js";import"./icons/types.js";const p=s`:host{display:block}.container{display:flex;align-items:center;gap:var(--sp-3)}.title{font-family:var(--font-titles);font-size:var(--text-xl);line-height:1.35;font-weight:var(--font-weight-medium);letter-spacing:0;color:var(--color-neutrals-text-default);margin:0;min-width:0;white-space:nowrap}@media (min-width:768px){.container{gap:var(--sp-6)}.title{font-size:1.875rem;line-height:1.2;font-weight:var(--font-weight-semibold)}}`;let h=class MqPageTitle extends r{constructor(){super(...arguments),this.title="",this.showBack=!0,this.backLabel=e("Volver"),this.handleBackClick=()=>{this.dispatchEvent(new l(this.source?{source:this.source}:{}))}}static{this.styles=p}render(){return a`<div class="container">${this.showBack?a`<mq-button kind="circular" variant="light-filled" size="icon-md" type="button" aria-label="${this.backLabel}" @click="${this.handleBackClick}">${c({color:"var(--color-primary)",size:24})}</mq-button>`:null}<h1 class="title">${this.title}</h1></div>`}};t([n({type:String})],h.prototype,"title",void 0),t([n({type:Boolean})],h.prototype,"showBack",void 0),t([n({type:String,attribute:"back-label"})],h.prototype,"backLabel",void 0),t([n({type:String})],h.prototype,"source",void 0),h=t([o(),i("mq-page-title")],h);export{h as MqPageTitle};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mediquo/elements",
3
3
  "private": false,
4
- "version": "0.6.3",
4
+ "version": "0.6.4",
5
5
  "type": "module",
6
6
  "description": "Mediquo elements web components",
7
7
  "license": "ISC",
@@ -1 +0,0 @@
1
- import{_ as t,c as e}from"./custom-element-D2ziPxYE.js";import{m as i}from"./runtime-Bg1WXVCx.js";import{l as o}from"./localized-decorator-BlOuLhym.js";import{h as a,s as n}from"./task-Bj8p7kJX.js";import{a as s,C as r,b as l,i as d}from"./api-chat-client-BBL1U9EQ.js";import{t as c,d as m,a as p,b as h,c as u}from"./telemetry-client-BLJVs9me.js";import{a as f,i as g,E as v,x as y}from"./lit-element-DiWJYFwC.js";import{n as b}from"./property-scuRaFcM.js";import{getLocale as x}from"../i18n.js";import{calendarIcon as $}from"../ui/icons/calendar-icon.js";import{clockIcon as k}from"../ui/icons/clock-icon.js";import{r as w}from"./state-LQivXIgA.js";import{infoCircleOutineIcon as z}from"../ui/icons/info-circle-outine-icon.js";import"../ui/mq-button.js";import{l as q}from"./chunk-S5RWG6G2-DPesx3Od.js";import{messageBubbleIcon as j}from"../ui/icons/message-bubble-icon.js";import"../mq-chat-room.js";import"../ui/mq-floating-bubble.js";import"../ui/mq-card.js";import"../ui/mq-unread-badge.js";import{c as _}from"./consume-CovVqBjI.js";import{Q as C}from"./query-controller-BlO1Ax65.js";import{g as O}from"./chunk-GZF3YFSX-DM-GTqxg.js";import"../ui/back-link.js";import"./index-KvIw19qY.js";import{M as S}from"./mutation-controller-CR2qcqhH.js";import{g as T}from"./get-organization-setup-query-BMbuRi6v.js";import{g as I,a as D}from"./i18n-formats-DYS91YEa.js";import{MqViewAppointmentsEvent as Q}from"../events.js";let E=class ChatCta extends f{constructor(){super(...arguments),this.text=i("Utiliza el chat para enviar el motivo de consulta, documentos o imágenes"),this.readonly=!1,this.isChatOpen=!1,this.unreadQuery=new C(this,()=>O(s,{roomId:this.roomId}))}static{this.styles=[g`.chat-cta{padding:var(--sp-6) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-4)}.cta-message{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-4);font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--text-sm--line-height);color:var(--color-neutrals-text-default)}.cta-message svg{flex-shrink:0}mq-button svg{flex-shrink:0}mq-chat-room{height:100%}@media (min-width:768px){.chat-cta{padding:var(--sp-6)}mq-button{max-width:323px;margin:0 auto}}`]}render(){return y`<mq-card class="chat-cta" roundness="md"><div class="cta-message">${z({size:24})} <span>${this.text}</span></div><mq-button variant="primary" size="md" fullwidth @click="${()=>{this.isChatOpen=!this.isChatOpen,this.isChatOpen&&this.onOpenChat?.()}}">${j({size:24})} ${i("Chatea con el profesional")} ${(this.unreadQuery.result?.data?.unread_count??0)>0?y`<mq-unread-badge></mq-unread-badge>`:v}</mq-button></mq-card><mq-floating-bubble ?dismissable="${!1}" .open="${this.isChatOpen}" @mq-close="${()=>{this.isChatOpen=!1}}" hideCloseButton>${this.isChatOpen?y`<mq-chat-room slot="content" .consultationId="${this.consultationId}" .consultationType="${r.appointment}" token="${this.loginToken.access_token}" .roomId="${this.roomId}" .professionalHash="${this.professionalHash}" ?readonly="${this.readonly}" @mq-chat-room-close="${()=>{this.isChatOpen=!1}}"></mq-chat-room>`:v}</mq-floating-bubble>`}};t([b({type:Number})],E.prototype,"roomId",void 0),t([b({type:String})],E.prototype,"professionalHash",void 0),t([b({type:String})],E.prototype,"text",void 0),t([b({type:String})],E.prototype,"consultationId",void 0),t([b({type:Boolean,reflect:!0})],E.prototype,"readonly",void 0),t([b({attribute:!1})],E.prototype,"onOpenChat",void 0),t([_({context:q})],E.prototype,"loginToken",void 0),t([w()],E.prototype,"isChatOpen",void 0),E=t([o(),e("chat-cta")],E);let F=class PageLayout extends f{constructor(){super(...arguments),this.yCentered=!1,this.background="solid"}static{this.styles=g`:host([background=transparent]){background-color:transparent}:host([background=solid]){background-color:var(--color-background)}:host([y-centered]) div{display:grid;place-items:center}div{width:100%;max-width:1000px;padding:var(--mq-layout-padding,0);margin:0 auto;box-sizing:border-box}:host([y-centered]) div{height:100%}main{width:100%}`}render(){return y`<div><main><slot></slot></main></div>`}};t([b({type:Boolean,attribute:"y-centered"})],F.prototype,"yCentered",void 0),t([b({type:String})],F.prototype,"background",void 0),F=t([e("page-layout")],F);const B=g`.title{margin:var(--size-3) 0;font-family:var(--font-titles);font-size:var(--text-2xl);line-height:var(--text-2xl--line-height);color:var(--color-neutrals-text-default);font-weight:var(--font-weight-bold)}.description{font-size:var(--text-sm);line-height:var(--text-sm--line-height);color:var(--color-neutrals-text-default);font-weight:var(--font-weight-normal);margin:0;margin-bottom:var(--size-5)}.professional-card{padding:var(--size-4);margin-bottom:var(--size-4)}.professional-card>:not(:first-child){margin-top:var(--size-4)}.professional-name{font-family:var(--font-titles);font-size:var(--text-lg);line-height:var(--text-lg--line-height);color:var(--color-neutrals-text-default);font-weight:var(--font-weight-bold);margin:0;margin-bottom:var(--size-1)}.professional-speciality{font-size:var(--text-base);line-height:var(--text-base--line-height);color:var(--color-neutrals-text-default);font-weight:var(--font-weight-normal);margin:0}.description-list{display:flex;flex-direction:column;gap:var(--size-4)}.description-list-item{display:flex;flex-direction:row;align-items:center;gap:var(--size-2);color:var(--color-neutrals-text-default)}.description-list-item dt{display:inline-flex}.description-list-item dd{margin:0;font-family:var(--font-body);font-size:var(--text-base);line-height:var(--text-base--line-height);font-weight:var(--font-weight-semibold)}.description-list-item dd::first-letter{text-transform:uppercase}.documents-card{padding:var(--size-4);margin-bottom:var(--size-6)}.documents-card-empty{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--text-sm--line-height);color:var(--color-neutrals-text-default);font-weight:var(--font-weight-normal)}.documents-card-title{font-family:var(--font-titles);font-size:var(--text-lg);line-height:var(--text-lg--line-height);color:var(--color-neutrals-text-default);font-weight:var(--font-weight-bold);margin:0;margin-bottom:var(--size-4)}.documents-list{margin-bottom:var(--size-4)}.documents-list>:not(:first-child){margin-top:var(--size-2)}.finished-consultation-footer{display:flex;flex-direction:column;gap:var(--size-5)}.document-item-skeleton{height:57px;width:100%;background-color:var(--color-muted);animation:skeleton-pulse 1.5s infinite}@keyframes skeleton-pulse{0%{opacity:1}50%{opacity:.6}100%{opacity:1}}@media (min-width:768px){.description-list{flex-direction:row}mq-button{display:block;max-width:323px;margin:0 auto}}`;let G=class DocumentationView extends f{constructor(){super(...arguments),this.canReconnect=!1,this._sharedocumentsTask=new a(this,{task:async([t])=>await s.flash.getSharedDocuments({appointment_id:t}),args:()=>[this.appointment.id]}),this.getOrganizationSpecialtiesQuery=new C(this,()=>I(s)),this.getOrganizationSetupQuery=new C(this,()=>T(s)),this._reconnectMutation=new S(this,{mutationFn:t=>s.appointments.reconnectAppointment(t),onSuccess:()=>{this.dispatchEvent(new CustomEvent("reconnect",{bubbles:!0,composed:!0}))}})}static{this.styles=B}firstUpdated(){c.track(m(this.loginToken.patient.hash,this.appointment.id??""))}render(){const t=!0===this.getOrganizationSetupQuery.result?.data?.appointments?.has_chat_in_appointment,e=x(),o=e.replace("_","-"),a=this.loginToken.patient.timezone,s=a?{timeZone:a}:{},r=new Intl.DateTimeFormat(o,{dateStyle:"full",...s}),m=new Intl.DateTimeFormat(o,{hour:"2-digit",minute:"2-digit",...s}),f=new Date(this.appointment.start_date),g=p(f,this.appointment.duration),b=a?l(a,f):"";return y`<back-link @mq-back="${t=>{t.stopPropagation(),this.dispatchEvent(new Q({tab:"history"}))}}">${i("Salir")}</back-link><h1 class="title">${i("Consulta finalizada")}</h1><p class="description">${i("Si tu médico ha generado alguna documentación podrás verla y descargarla aquí, desde la sección de documentación, tu correo o el chat.")}</p><mq-card class="professional-card" roundness="md"><div><h2 class="professional-name">${this.appointment.from.name}</h2><p class="professional-speciality">${this.appointment.from.speciality}</p></div><dl class="description-list"><div class="description-list-item"><dt>${$()}</dt><dd>${r.format(f)}</dd></div><div class="description-list-item"><dt>${k()}</dt><dd>${m.format(f)} - ${m.format(g)}${b?` (${b})`:""}</dd></div></dl></mq-card><mq-card class="documents-card" roundness="md"><h2 class="documents-card-title">${i("Documentación")}</h2><div class="documents-list">${this._sharedocumentsTask?.render({pending:()=>y`<div class="document-item-skeleton"></div>`,complete:()=>0===this._sharedocumentsTask?.value?.length?y`<p class="documents-card-empty">${i("El médico está terminando de gestionar tu consulta. Actualiza en unos minutos para ver si tienes documentación.")}</p>`:this._sharedocumentsTask?.value?.map(t=>y`<patient-document .kind="${t.document_type}" .filename="${t.name}" .specialty="${(()=>{const i=this.getOrganizationSpecialtiesQuery.result?.data?.find(e=>e.id===t.professional.speciality_id);return D(i?.code??"",e,i?.name)})()}" .description="${t.name}" .date="${t.created_at}" .downloadUrl="${t.url}"></patient-document>`)})}</div><mq-button variant="outline" size="md" fullwidth @click="${()=>{c.track(h(this.loginToken.patient.hash,this.appointment.id??"")),this._sharedocumentsTask?.run()}}" .disabled="${this._sharedocumentsTask?.status===n.PENDING}">${i("Actualizar")}</mq-button></mq-card><div class="finished-consultation-footer">${this.canReconnect?y`<mq-button variant="primary" size="md" fullwidth ?disabled="${this._reconnectMutation.isPending}" @click="${()=>this._reconnectMutation.run({appointmentId:this.appointment.id})}">${i("Volver a la sala de espera")}</mq-button>`:v} ${t?y`<chat-cta .consultationId="${this.appointment.id}" .roomId="${Number(this.appointment.room_id)}" .professionalHash="${this.appointment.from.hash}" .text="${i("Puedes chatear con tu profesional hasta 48 horas finalizada tu cita")}" ?readonly="${d(this.appointment.expires_at)}" .onOpenChat="${()=>{c.track(u(this.loginToken.patient.hash,this.appointment.id??""))}}"></chat-cta>`:v}</div>`}};t([b({type:Object})],G.prototype,"appointment",void 0),t([b({type:String})],G.prototype,"token",void 0),t([b({type:Boolean,attribute:"can-reconnect"})],G.prototype,"canReconnect",void 0),t([_({context:q})],G.prototype,"loginToken",void 0),G=t([o(),e("documentation-view")],G);