@alfadocs/ui-kit 1.36.1 → 1.38.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 (165) hide show
  1. package/dist/_chunks/{agenda-tray-DYGCTIWB.js → agenda-tray-CG6jUjKc.js} +2 -2
  2. package/dist/_chunks/{anamnesis-summary-card-GYHa7VGp.js → anamnesis-summary-card-CclBbiXg.js} +2 -2
  3. package/dist/_chunks/appointment-peek-5S4O1VQP.js +115 -0
  4. package/dist/_chunks/appointment-peek.agent-C539tNFM.js +17 -0
  5. package/dist/_chunks/{appointment-timeline-ByfovxqR.js → appointment-timeline-D-rNwKpS.js} +2 -2
  6. package/dist/_chunks/{appointment-tray-D6UyJHej.js → appointment-tray-CK2CULg_.js} +2 -2
  7. package/dist/_chunks/{balance-badge-cell-B0Z8Dwn8.js → balance-badge-cell-DHs5p0bA.js} +2 -2
  8. package/dist/_chunks/{booking-Dp-9qR6F.js → booking-x3J7sS2G.js} +3 -3
  9. package/dist/_chunks/building-2-D33bLCWL.js +24 -0
  10. package/dist/_chunks/calendar-workspace-Cc1LRVWY.js +9900 -0
  11. package/dist/_chunks/{control-room-rail-Ds45_g4f.js → control-room-rail-DQoHdE1U.js} +2 -2
  12. package/dist/_chunks/{data-table-BYGK-gUJ.js → data-table-Dy1lyumT.js} +2 -2
  13. package/dist/_chunks/editable-description-7ptNpJEg.js +142 -0
  14. package/dist/_chunks/editable-description.agent-Bm_LBV2j.js +21 -0
  15. package/dist/_chunks/{file-manager-DvkFgj7d.js → file-manager-UlcYQv8n.js} +3 -3
  16. package/dist/_chunks/{message-tray-BcLyaO-G.js → message-tray-CXjVsKqp.js} +2 -2
  17. package/dist/_chunks/{money.agent-Dw55UxUA.js → money-BY-HmKhZ.js} +33 -47
  18. package/dist/_chunks/money.agent-BjJ6gOkx.js +17 -0
  19. package/dist/_chunks/{note-timeline-CXfSV3yX.js → note-timeline-D2oPuQP6.js} +134 -73
  20. package/dist/_chunks/notes-panel-CkbfDDzj.js +614 -0
  21. package/dist/_chunks/{notification-tray-CJ8jOe-U.js → notification-tray-_NoChRKi.js} +2 -2
  22. package/dist/_chunks/panel-subview-BNXN8OEL.js +160 -0
  23. package/dist/_chunks/panel-subview.agent-BIBvE-IW.js +17 -0
  24. package/dist/_chunks/{patient-details-f7SSXkTJ.js → patient-details-2cIaL-Zb.js} +2 -2
  25. package/dist/_chunks/{patient-field-row-BQZoP4m2.js → patient-field-row-IHb2VFc2.js} +193 -172
  26. package/dist/_chunks/{patient-summary-card-Bz7KdUin.js → patient-summary-card-B131Q7Bp.js} +3 -3
  27. package/dist/_chunks/{practice-results-DOcORTkP.js → practice-results-CBNRJNnY.js} +2 -2
  28. package/dist/_chunks/{product-hub-panel-C0TO69P7.js → product-hub-panel-C3bMjscm.js} +2 -2
  29. package/dist/_chunks/{reviews-panel-BaHZb_ai.js → reviews-panel-Cy969x7q.js} +2 -2
  30. package/dist/_chunks/{section-card.agent-W18CHEgX.js → section-card-XR2bW1Ie.js} +20 -34
  31. package/dist/_chunks/section-card.agent-Bz1BhM_j.js +17 -0
  32. package/dist/_chunks/{signature-request-Dej2g86d.js → signature-request-b-86AGlT.js} +2 -2
  33. package/dist/_chunks/{skeleton-CZbwyJAA.js → skeleton-B1KTdJ4N.js} +46 -33
  34. package/dist/_chunks/{slot-grid-8Ko6thzz.js → slot-grid-Bk3GZL1p.js} +2 -2
  35. package/dist/_chunks/smartphone-DaPcFw-X.js +32 -0
  36. package/dist/_chunks/{task-card-BalrLkSz.js → task-card-qTKD1fIT.js} +39 -57
  37. package/dist/_chunks/{task-tray-wl9eti6J.js → task-tray-5co9Jr2L.js} +3 -3
  38. package/dist/_chunks/{tasks-panel-BDNB7hsZ.js → tasks-panel-BpH-x7U3.js} +3 -3
  39. package/dist/_chunks/{tool-rail-Bq5eiFMG.js → tool-rail-BP8sjxCw.js} +310 -231
  40. package/dist/_chunks/treatment-receipt-dUm99mdn.js +160 -0
  41. package/dist/_chunks/treatment-receipt.agent-bpFm2RPH.js +21 -0
  42. package/dist/_chunks/use-presence-transition-cDwWUXV-.js +58 -0
  43. package/dist/_chunks/{workflow-map-D-LEni11.js → workflow-map-CXdsxvUj.js} +140 -156
  44. package/dist/agent-catalog.json +65 -1
  45. package/dist/components/agenda-tray/index.js +1 -1
  46. package/dist/components/anamnesis-summary-card/index.js +1 -1
  47. package/dist/components/appointment-card/index.js +1 -1
  48. package/dist/components/appointment-peek/appointment-peek.agent.d.ts +3 -0
  49. package/dist/components/appointment-peek/appointment-peek.d.ts +45 -0
  50. package/dist/components/appointment-peek/index.d.ts +4 -0
  51. package/dist/components/appointment-peek/index.js +7 -0
  52. package/dist/components/appointment-timeline/index.js +1 -1
  53. package/dist/components/booking/index.js +1 -1
  54. package/dist/components/control-room-rail/index.js +1 -1
  55. package/dist/components/data-table/index.js +1 -1
  56. package/dist/components/editable-description/editable-description.agent.d.ts +3 -0
  57. package/dist/components/editable-description/editable-description.d.ts +26 -0
  58. package/dist/components/editable-description/index.d.ts +4 -0
  59. package/dist/components/editable-description/index.js +7 -0
  60. package/dist/components/file-manager/index.js +1 -1
  61. package/dist/components/index.d.ts +4 -0
  62. package/dist/components/message-tray/index.js +1 -1
  63. package/dist/components/money/index.js +2 -1
  64. package/dist/components/note-timeline/index.js +1 -1
  65. package/dist/components/note-timeline/note-timeline.d.ts +8 -0
  66. package/dist/components/notes-panel/index.js +1 -1
  67. package/dist/components/notes-panel/notes-panel.d.ts +16 -0
  68. package/dist/components/notification-tray/index.js +1 -1
  69. package/dist/components/panel-subview/index.d.ts +4 -0
  70. package/dist/components/panel-subview/index.js +7 -0
  71. package/dist/components/panel-subview/panel-subview.agent.d.ts +3 -0
  72. package/dist/components/panel-subview/panel-subview.d.ts +32 -0
  73. package/dist/components/patient-details/index.js +1 -1
  74. package/dist/components/patient-summary-card/index.js +1 -1
  75. package/dist/components/patient-table/index.js +1 -1
  76. package/dist/components/practice-results/index.js +1 -1
  77. package/dist/components/product-hub-tray/index.js +1 -1
  78. package/dist/components/reviews-panel/index.js +1 -1
  79. package/dist/components/section-card/index.js +4 -3
  80. package/dist/components/skeleton/index.d.ts +1 -1
  81. package/dist/components/skeleton/index.js +3 -2
  82. package/dist/components/skeleton/skeleton.d.ts +12 -0
  83. package/dist/components/slot-grid/index.js +1 -1
  84. package/dist/components/task-card/index.js +1 -1
  85. package/dist/components/task-tray/index.js +1 -1
  86. package/dist/components/tasks-panel/index.js +1 -1
  87. package/dist/components/tool-rail/index.js +1 -1
  88. package/dist/components/treatment-receipt/index.d.ts +4 -0
  89. package/dist/components/treatment-receipt/index.js +7 -0
  90. package/dist/components/treatment-receipt/treatment-receipt.agent.d.ts +3 -0
  91. package/dist/components/treatment-receipt/treatment-receipt.d.ts +38 -0
  92. package/dist/components/workflow/index.js +1 -1
  93. package/dist/hooks/index.d.ts +1 -0
  94. package/dist/hooks/index.js +9 -7
  95. package/dist/hooks/use-presence-transition.d.ts +40 -0
  96. package/dist/host-compat.css +7 -1
  97. package/dist/i18n/locales/ar.d.ts +29 -5
  98. package/dist/i18n/locales/ar.js +29 -5
  99. package/dist/i18n/locales/de.d.ts +29 -5
  100. package/dist/i18n/locales/de.js +29 -5
  101. package/dist/i18n/locales/el.d.ts +29 -5
  102. package/dist/i18n/locales/el.js +29 -5
  103. package/dist/i18n/locales/en.d.ts +29 -5
  104. package/dist/i18n/locales/en.js +29 -5
  105. package/dist/i18n/locales/es.d.ts +29 -5
  106. package/dist/i18n/locales/es.js +29 -5
  107. package/dist/i18n/locales/fr.d.ts +29 -5
  108. package/dist/i18n/locales/fr.js +29 -5
  109. package/dist/i18n/locales/hi.d.ts +29 -5
  110. package/dist/i18n/locales/hi.js +29 -5
  111. package/dist/i18n/locales/it.d.ts +29 -5
  112. package/dist/i18n/locales/it.js +29 -5
  113. package/dist/i18n/locales/ja.d.ts +29 -5
  114. package/dist/i18n/locales/ja.js +29 -5
  115. package/dist/i18n/locales/nl.d.ts +29 -5
  116. package/dist/i18n/locales/nl.js +29 -5
  117. package/dist/i18n/locales/pl.d.ts +29 -5
  118. package/dist/i18n/locales/pl.js +29 -5
  119. package/dist/i18n/locales/pt.d.ts +29 -5
  120. package/dist/i18n/locales/pt.js +29 -5
  121. package/dist/i18n/locales/ro.d.ts +29 -5
  122. package/dist/i18n/locales/ro.js +29 -5
  123. package/dist/i18n/locales/ru.d.ts +29 -5
  124. package/dist/i18n/locales/ru.js +29 -5
  125. package/dist/i18n/locales/sq.d.ts +29 -5
  126. package/dist/i18n/locales/sq.js +29 -5
  127. package/dist/i18n/locales/sv.d.ts +29 -5
  128. package/dist/i18n/locales/sv.js +29 -5
  129. package/dist/i18n/locales/tr.d.ts +29 -5
  130. package/dist/i18n/locales/tr.js +29 -5
  131. package/dist/i18n/locales/zh.d.ts +29 -5
  132. package/dist/i18n/locales/zh.js +29 -5
  133. package/dist/index.js +959 -940
  134. package/dist/locales/ar.json +29 -5
  135. package/dist/locales/de.json +29 -5
  136. package/dist/locales/el.json +29 -5
  137. package/dist/locales/en.json +29 -5
  138. package/dist/locales/es.json +29 -5
  139. package/dist/locales/fr.json +29 -5
  140. package/dist/locales/hi.json +29 -5
  141. package/dist/locales/it.json +29 -5
  142. package/dist/locales/ja.json +29 -5
  143. package/dist/locales/nl.json +29 -5
  144. package/dist/locales/pl.json +29 -5
  145. package/dist/locales/pt.json +29 -5
  146. package/dist/locales/ro.json +29 -5
  147. package/dist/locales/ru.json +29 -5
  148. package/dist/locales/sq.json +29 -5
  149. package/dist/locales/sv.json +29 -5
  150. package/dist/locales/tr.json +29 -5
  151. package/dist/locales/zh.json +29 -5
  152. package/dist/patterns/calendar/calendar-appointment-details.d.ts +16 -7
  153. package/dist/patterns/calendar/calendar-appointment-details.sections.d.ts +23 -23
  154. package/dist/patterns/calendar/calendar-editor-hydration.d.ts +0 -2
  155. package/dist/patterns/calendar/calendar-info-hover.d.ts +18 -0
  156. package/dist/patterns/calendar/calendar.journey.d.ts +10 -0
  157. package/dist/patterns/calendar/calendar.sheets.d.ts +2 -2
  158. package/dist/patterns/calendar/index.js +1 -1
  159. package/dist/patterns/signature-request/index.js +1 -1
  160. package/dist/tokens.css +1 -1
  161. package/package.json +17 -1
  162. package/dist/_chunks/calendar-workspace-BYwQK7fz.js +0 -9478
  163. package/dist/_chunks/hourglass-BEAzW1wE.js +0 -26
  164. package/dist/_chunks/notes-panel-Co8D3uDd.js +0 -469
  165. package/dist/_chunks/smartphone-C0rFF2if.js +0 -15
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "packageVersion": "1.36.1",
3
+ "packageVersion": "1.38.0",
4
4
  "components": [
5
5
  {
6
6
  "kind": "component",
@@ -613,6 +613,20 @@
613
613
  }
614
614
  }
615
615
  },
616
+ {
617
+ "kind": "component",
618
+ "id": "appointment-peek",
619
+ "capabilities": [],
620
+ "state": [],
621
+ "actions": [],
622
+ "domHooks": {
623
+ "root": {
624
+ "attr": "data-component",
625
+ "value": "appointment-peek",
626
+ "description": "Marks the element as a kit AppointmentPeek summary."
627
+ }
628
+ }
629
+ },
616
630
  {
617
631
  "kind": "component",
618
632
  "id": "appointment-timeline",
@@ -4495,6 +4509,24 @@
4495
4509
  }
4496
4510
  }
4497
4511
  },
4512
+ {
4513
+ "kind": "component",
4514
+ "id": "editable-description",
4515
+ "capabilities": [],
4516
+ "state": [],
4517
+ "actions": [],
4518
+ "domHooks": {
4519
+ "root": {
4520
+ "attr": "data-component",
4521
+ "value": "editable-description",
4522
+ "description": "Marks the element as a kit EditableDescription."
4523
+ },
4524
+ "item": {
4525
+ "attr": "data-editable-description-line",
4526
+ "description": "One visible description line."
4527
+ }
4528
+ }
4529
+ },
4498
4530
  {
4499
4531
  "kind": "component",
4500
4532
  "id": "editor-overlay",
@@ -8540,6 +8572,20 @@
8540
8572
  }
8541
8573
  }
8542
8574
  },
8575
+ {
8576
+ "kind": "component",
8577
+ "id": "panel-subview",
8578
+ "capabilities": [],
8579
+ "state": [],
8580
+ "actions": [],
8581
+ "domHooks": {
8582
+ "root": {
8583
+ "attr": "data-component",
8584
+ "value": "panel-subview",
8585
+ "description": "Marks the element as a kit PanelSubview."
8586
+ }
8587
+ }
8588
+ },
8543
8589
  {
8544
8590
  "kind": "component",
8545
8591
  "id": "password-input",
@@ -15157,6 +15203,24 @@
15157
15203
  }
15158
15204
  }
15159
15205
  },
15206
+ {
15207
+ "kind": "component",
15208
+ "id": "treatment-receipt",
15209
+ "capabilities": [],
15210
+ "state": [],
15211
+ "actions": [],
15212
+ "domHooks": {
15213
+ "root": {
15214
+ "attr": "data-component",
15215
+ "value": "treatment-receipt",
15216
+ "description": "Marks the element as a kit TreatmentReceipt."
15217
+ },
15218
+ "item": {
15219
+ "attr": "data-treatment-receipt-line",
15220
+ "description": "One treatment line."
15221
+ }
15222
+ }
15223
+ },
15160
15224
  {
15161
15225
  "kind": "component",
15162
15226
  "id": "typing-indicator",
@@ -1,4 +1,4 @@
1
- import { A as r, a as g } from "../../_chunks/agenda-tray-DYGCTIWB.js";
1
+ import { A as r, a as g } from "../../_chunks/agenda-tray-CG6jUjKc.js";
2
2
  export {
3
3
  r as AgendaTray,
4
4
  g as agendaTrayAgent
@@ -1,4 +1,4 @@
1
- import { A as r, a as s } from "../../_chunks/anamnesis-summary-card-GYHa7VGp.js";
1
+ import { A as r, a as s } from "../../_chunks/anamnesis-summary-card-CclBbiXg.js";
2
2
  export {
3
3
  r as AnamnesisSummaryCard,
4
4
  s as anamnesisSummaryCardAgent
@@ -1,5 +1,5 @@
1
1
  import { A as p } from "../../_chunks/appointment-card-WsDGBBut.js";
2
- import { A as e, a as o, b as r } from "../../_chunks/appointment-tray-D6UyJHej.js";
2
+ import { A as e, a as o, b as r } from "../../_chunks/appointment-tray-CK2CULg_.js";
3
3
  import { i } from "../../_chunks/is-safe-url-DkETxeHz.js";
4
4
  export {
5
5
  p as AppointmentCard,
@@ -0,0 +1,3 @@
1
+ import type { AgentAdapter } from '../../agent/types';
2
+ export declare const appointmentPeekAgent: AgentAdapter;
3
+ //# sourceMappingURL=appointment-peek.agent.d.ts.map
@@ -0,0 +1,45 @@
1
+ import { type HTMLAttributes, type ReactNode } from 'react';
2
+ import { type AppointmentState } from '../_shared/entity-card';
3
+ export interface AppointmentPeekDetail {
4
+ /** Leading glyph, decorative. */
5
+ icon?: ReactNode;
6
+ /** The term, already translated: "Care", "Operator". */
7
+ label: string;
8
+ value: ReactNode;
9
+ }
10
+ export interface AppointmentPeekProps extends HTMLAttributes<HTMLDivElement> {
11
+ /** Patient name, or the event title for an appointment with no patient. */
12
+ name: string;
13
+ /** Photo for the avatar; initials are drawn from `name` without one. */
14
+ avatarSrc?: string;
15
+ /** Host-formatted time range, e.g. "09:30–11:00". */
16
+ time: string;
17
+ /** Chair or room, already translated. With `telehealth`, the visit type. */
18
+ location?: string;
19
+ /** Swaps the chair glyph for a video camera. */
20
+ telehealth?: boolean;
21
+ /**
22
+ * Appointment status, shown through `WorkflowStatusDisplay`. Leave it out
23
+ * when the host has none recorded: no status is not the same as
24
+ * confirmed, so the card shows no status face at all.
25
+ */
26
+ status?: AppointmentState;
27
+ /**
28
+ * Override the status caption, e.g. "Arrived · waiting 12 min". Still shown
29
+ * under `privacy`, so keep it free of patient data. Ignored without
30
+ * `status`.
31
+ */
32
+ statusLabel?: string;
33
+ /** Extra rows after time and location: care, operator. */
34
+ details?: AppointmentPeekDetail[];
35
+ /** Indicator chips (Badges): booked online, anamnesis. Never status. */
36
+ flags?: ReactNode;
37
+ /**
38
+ * Masks the name and drops everything personal: avatar, details and
39
+ * flags. Time, place and status stay; they
40
+ * are not patient data.
41
+ */
42
+ privacy?: boolean;
43
+ }
44
+ export declare const AppointmentPeek: import("react").ForwardRefExoticComponent<AppointmentPeekProps & import("react").RefAttributes<HTMLDivElement>>;
45
+ //# sourceMappingURL=appointment-peek.d.ts.map
@@ -0,0 +1,4 @@
1
+ export { AppointmentPeek } from './appointment-peek';
2
+ export type { AppointmentPeekProps, AppointmentPeekDetail, } from './appointment-peek';
3
+ export { appointmentPeekAgent } from './appointment-peek.agent';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { A as o } from "../../_chunks/appointment-peek-5S4O1VQP.js";
2
+ import { a as n } from "../../_chunks/appointment-peek.agent-C539tNFM.js";
3
+ export {
4
+ o as AppointmentPeek,
5
+ n as appointmentPeekAgent
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { A as i, a as t } from "../../_chunks/appointment-timeline-ByfovxqR.js";
1
+ import { A as i, a as t } from "../../_chunks/appointment-timeline-D-rNwKpS.js";
2
2
  export {
3
3
  i as AppointmentTimeline,
4
4
  t as appointmentTimelineAgent
@@ -1,4 +1,4 @@
1
- import { B as A, C as R, O as a, b as s } from "../../_chunks/booking-Dp-9qR6F.js";
1
+ import { B as A, C as R, O as a, b as s } from "../../_chunks/booking-x3J7sS2G.js";
2
2
  export {
3
3
  A as Booking,
4
4
  R as CONFIRMATION_CHANNEL_ORDER,
@@ -1,4 +1,4 @@
1
- import { C as r, a as l, c as a, u as t, b as e, d as n } from "../../_chunks/control-room-rail-Ds45_g4f.js";
1
+ import { C as r, a as l, c as a, u as t, b as e, d as n } from "../../_chunks/control-room-rail-DQoHdE1U.js";
2
2
  export {
3
3
  r as ControlRoomProvider,
4
4
  l as ControlRoomRail,
@@ -1,4 +1,4 @@
1
- import { D as r, E as l, T as t, a as s, b as d, c as o, d as n, e as i, f as R, i as C, g as T } from "../../_chunks/data-table-BYGK-gUJ.js";
1
+ import { D as r, E as l, T as t, a as s, b as d, c as o, d as n, e as i, f as R, i as C, g as T } from "../../_chunks/data-table-Dy1lyumT.js";
2
2
  import { B as g, C as D, a as b, E as x, b as c, R as p, T as u, c as m, r as E, u as f } from "../../_chunks/editable-currency-cell-renderer-D7blbDFY.js";
3
3
  import { D as h, a as A, b as w, I as y, L as I, N as L, c as N, S as P, d as W, e as B, T as U, f as _, g as k, U as v } from "../../_chunks/link-cell-renderer-BNa8x6oJ.js";
4
4
  import { A as X, a as j } from "../../_chunks/actions-cell-renderer-CUn1pqEq.js";
@@ -0,0 +1,3 @@
1
+ import type { AgentAdapter } from '../../agent/types';
2
+ export declare const editableDescriptionAgent: AgentAdapter;
3
+ //# sourceMappingURL=editable-description.agent.d.ts.map
@@ -0,0 +1,26 @@
1
+ import { type HTMLAttributes, type Ref } from 'react';
2
+ export interface EditableDescriptionProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
3
+ /** The description. One bullet per non-empty line. */
4
+ value?: string | null;
5
+ /** Lines shown before the rest go behind "See more". Default `3`. */
6
+ maxLines?: number;
7
+ /**
8
+ * The description is being read. With nothing to show yet, it renders
9
+ * bulleted placeholder lines and no pencil. With a `value` already on screen
10
+ * (a refresh) it keeps the text and only sets `aria-busy`.
11
+ */
12
+ loading?: boolean;
13
+ /** Fires from the pencil. Omit for a read-only description. */
14
+ onEdit?: () => void;
15
+ /** Receives the pencil button, so a host can return focus to it. */
16
+ editButtonRef?: Ref<HTMLButtonElement>;
17
+ /** Shown when there are no lines. Defaults to the kit's translated text. */
18
+ emptyLabel?: string;
19
+ /** Accessible name and tooltip of the pencil. Defaults to the kit's text. */
20
+ editLabel?: string;
21
+ /** Disclosure labels. Default to the kit's translated text. */
22
+ seeMoreLabel?: string;
23
+ showLessLabel?: string;
24
+ }
25
+ export declare const EditableDescription: import("react").ForwardRefExoticComponent<EditableDescriptionProps & import("react").RefAttributes<HTMLDivElement>>;
26
+ //# sourceMappingURL=editable-description.d.ts.map
@@ -0,0 +1,4 @@
1
+ export { EditableDescription } from './editable-description';
2
+ export type { EditableDescriptionProps } from './editable-description';
3
+ export { editableDescriptionAgent } from './editable-description.agent';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { E as i } from "../../_chunks/editable-description-7ptNpJEg.js";
2
+ import { e as r } from "../../_chunks/editable-description.agent-Bm_LBV2j.js";
3
+ export {
4
+ i as EditableDescription,
5
+ r as editableDescriptionAgent
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { F as r, f } from "../../_chunks/file-manager-DvkFgj7d.js";
1
+ import { F as r, f } from "../../_chunks/file-manager-UlcYQv8n.js";
2
2
  export {
3
3
  r as FileManager,
4
4
  f as fileManagerAgent
@@ -51,6 +51,9 @@ export * from './radio';
51
51
  export * from './radio-group';
52
52
  export * from './search-input';
53
53
  export * from './section-card';
54
+ export * from './panel-subview';
55
+ export * from './editable-description';
56
+ export * from './treatment-receipt';
54
57
  export * from './select';
55
58
  export * from './slider';
56
59
  export * from './switch';
@@ -116,6 +119,7 @@ export * from './agenda-tray';
116
119
  export * from './ai-consent-banner';
117
120
  export * from './alert';
118
121
  export * from './appointment-card';
122
+ export * from './appointment-peek';
119
123
  export * from './appointment-timeline';
120
124
  export * from './dialog';
121
125
  export * from './dropdown-menu';
@@ -1,4 +1,4 @@
1
- import { M as s, m as r } from "../../_chunks/message-tray-BcLyaO-G.js";
1
+ import { M as s, m as r } from "../../_chunks/message-tray-CXjVsKqp.js";
2
2
  export {
3
3
  s as MessageTray,
4
4
  r as messageTrayAgent
@@ -1,4 +1,5 @@
1
- import { M as m, m as n } from "../../_chunks/money.agent-Dw55UxUA.js";
1
+ import { M as m } from "../../_chunks/money-BY-HmKhZ.js";
2
+ import { m as n } from "../../_chunks/money.agent-BjJ6gOkx.js";
2
3
  export {
3
4
  m as Money,
4
5
  n as moneyAgent
@@ -1,4 +1,4 @@
1
- import { N as i, n as o } from "../../_chunks/note-timeline-CXfSV3yX.js";
1
+ import { N as i, n as o } from "../../_chunks/note-timeline-D2oPuQP6.js";
2
2
  export {
3
3
  i as NoteTimeline,
4
4
  o as noteTimelineAgent
@@ -67,6 +67,14 @@ export interface NoteTimelineProps extends Omit<HTMLAttributes<HTMLDivElement>,
67
67
  lines?: 1 | 2 | 3 | 4 | 5;
68
68
  /** Locale for the date gutter. Defaults to the active i18n language. */
69
69
  locale?: string;
70
+ /**
71
+ * The notes are being read. With no notes yet it shows placeholder rows in
72
+ * the timeline's own shape, never the empty state. With notes already on
73
+ * screen (a refresh) it keeps them and only sets `aria-busy`.
74
+ */
75
+ loading?: boolean;
76
+ /** Placeholder rows shown while `loading`. Default `2`. */
77
+ loadingRows?: number;
70
78
  /** Rendered in place of the list when `notes` is empty. */
71
79
  emptyState?: ReactNode;
72
80
  /** Accessible name for the list region. Defaults to `ui.noteTimeline.regionLabel`. */
@@ -1,4 +1,4 @@
1
- import { N as a } from "../../_chunks/notes-panel-Co8D3uDd.js";
1
+ import { N as a } from "../../_chunks/notes-panel-CkbfDDzj.js";
2
2
  export {
3
3
  a as NotesPanel
4
4
  };
@@ -148,6 +148,22 @@ export interface NotesPanelProps extends Omit<HTMLAttributes<HTMLElement>, 'titl
148
148
  * what they do — the panel stays a timeline and never edits a note itself.
149
149
  */
150
150
  noteActions?: (note: NotesPanelNote) => ReactNode;
151
+ /**
152
+ * Save an edit to an existing note. When provided, each note the reader may
153
+ * edit gets a pencil; it loads the note into the SAME composer that writes
154
+ * new notes, in place, so a rich note is edited as rich text and keeps its
155
+ * formatting. Return a promise to hold the pending state; a rejection keeps
156
+ * the draft. Hidden on `actions.edit: false` and on a deleted note.
157
+ */
158
+ onEditNote?: (id: string, submission: NotesPanelSubmission) => void | Promise<void>;
159
+ /**
160
+ * Let an edit change a note's clinical flag. Default `false`: the "Clinical
161
+ * note" toggle is hidden while editing and the submission carries the
162
+ * note's existing flag. Most hosts save a note's content only, and a live
163
+ * toggle that changes nothing is a lie. Set `true` only when the host
164
+ * persists `submission.clinical` on edit.
165
+ */
166
+ editClinical?: boolean;
151
167
  /**
152
168
  * Request the host to delete a note. When provided, the panel holds the
153
169
  * row on screen long enough to fade it out before calling this, so the
@@ -1,4 +1,4 @@
1
- import { N as o, n as t } from "../../_chunks/notification-tray-CJ8jOe-U.js";
1
+ import { N as o, n as t } from "../../_chunks/notification-tray-_NoChRKi.js";
2
2
  export {
3
3
  o as NotificationTray,
4
4
  t as notificationTrayAgent
@@ -0,0 +1,4 @@
1
+ export { PanelSubview } from './panel-subview';
2
+ export type { PanelSubviewProps, PanelSubviewHostProps } from './panel-subview';
3
+ export { panelSubviewAgent } from './panel-subview.agent';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { P as o } from "../../_chunks/panel-subview-BNXN8OEL.js";
2
+ import { p as r } from "../../_chunks/panel-subview.agent-BIBvE-IW.js";
3
+ export {
4
+ o as PanelSubview,
5
+ r as panelSubviewAgent
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,3 @@
1
+ import type { AgentAdapter } from '../../agent/types';
2
+ export declare const panelSubviewAgent: AgentAdapter;
3
+ //# sourceMappingURL=panel-subview.agent.d.ts.map
@@ -0,0 +1,32 @@
1
+ import { type HTMLAttributes, type ReactNode, type RefObject } from 'react';
2
+ export type PanelSubviewHostProps = HTMLAttributes<HTMLDivElement>;
3
+ export interface PanelSubviewProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
4
+ /** Whether the subview is showing. It animates in and out around this. */
5
+ open: boolean;
6
+ /** Fires from the back button and from Escape. Set `open` false in reply. */
7
+ onBack: () => void;
8
+ /** The subview's heading. Already translated upstream. */
9
+ title: ReactNode;
10
+ /** Accessible name and tooltip of the back button. Already translated. */
11
+ backLabel: string;
12
+ /** Optional leading glyph for the heading. */
13
+ icon?: ReactNode;
14
+ /** Heading level. Default `2`; pass `3` to read as subordinate to the host. */
15
+ headingLevel?: 2 | 3;
16
+ /** Extra header actions, rendered after the back button. */
17
+ headerActions?: ReactNode;
18
+ /** Pinned below the scroll body: the form's cancel and save, typically. */
19
+ footer?: ReactNode;
20
+ /** Fires once the exit has played and the subview has unmounted. */
21
+ onExited?: () => void;
22
+ /**
23
+ * Focus this on open instead of the subview itself: a form's first field,
24
+ * say. The subview is still announced through its heading.
25
+ */
26
+ initialFocusRef?: RefObject<HTMLElement | null>;
27
+ children: ReactNode;
28
+ }
29
+ export declare const PanelSubview: import("react").ForwardRefExoticComponent<PanelSubviewProps & import("react").RefAttributes<HTMLElement>> & {
30
+ Host: import("react").ForwardRefExoticComponent<PanelSubviewHostProps & import("react").RefAttributes<HTMLDivElement>>;
31
+ };
32
+ //# sourceMappingURL=panel-subview.d.ts.map
@@ -1,4 +1,4 @@
1
- import { P as e, p as i } from "../../_chunks/patient-details-f7SSXkTJ.js";
1
+ import { P as e, p as i } from "../../_chunks/patient-details-2cIaL-Zb.js";
2
2
  export {
3
3
  e as PatientDetails,
4
4
  i as patientDetailsAgent
@@ -1,4 +1,4 @@
1
- import { P as t, p as m } from "../../_chunks/patient-summary-card-Bz7KdUin.js";
1
+ import { P as t, p as m } from "../../_chunks/patient-summary-card-B131Q7Bp.js";
2
2
  export {
3
3
  t as PatientSummaryCard,
4
4
  m as patientSummaryCardAgent
@@ -1,4 +1,4 @@
1
- import { B as s, C as l, N as n, P as t, a as C, T as i, b as o, g as T, u as p } from "../../_chunks/balance-badge-cell-B0Z8Dwn8.js";
1
+ import { B as s, C as l, N as n, P as t, a as C, T as i, b as o, g as T, u as p } from "../../_chunks/balance-badge-cell-DHs5p0bA.js";
2
2
  export {
3
3
  s as BalanceBadgeCell,
4
4
  l as CarePlanStatusCell,
@@ -1,4 +1,4 @@
1
- import { P as t, p as a } from "../../_chunks/practice-results-DOcORTkP.js";
1
+ import { P as t, p as a } from "../../_chunks/practice-results-CBNRJNnY.js";
2
2
  export {
3
3
  t as PracticeResults,
4
4
  a as practiceResultsAgent
@@ -1,4 +1,4 @@
1
- import { P as u, a as o, p as t, b as e } from "../../_chunks/product-hub-panel-C0TO69P7.js";
1
+ import { P as u, a as o, p as t, b as e } from "../../_chunks/product-hub-panel-C3bMjscm.js";
2
2
  import { i as s } from "../../_chunks/is-safe-url-DkETxeHz.js";
3
3
  export {
4
4
  u as ProductHubPanel,
@@ -1,4 +1,4 @@
1
- import { R as r, r as s } from "../../_chunks/reviews-panel-BaHZb_ai.js";
1
+ import { R as r, r as s } from "../../_chunks/reviews-panel-Cy969x7q.js";
2
2
  export {
3
3
  r as ReviewsPanel,
4
4
  s as reviewsPanelAgent
@@ -1,6 +1,7 @@
1
- import { S as o, s as r } from "../../_chunks/section-card.agent-W18CHEgX.js";
1
+ import { S as e } from "../../_chunks/section-card-XR2bW1Ie.js";
2
+ import { s as a } from "../../_chunks/section-card.agent-Bz1BhM_j.js";
2
3
  export {
3
- o as SectionCard,
4
- r as sectionCardAgent
4
+ e as SectionCard,
5
+ a as sectionCardAgent
5
6
  };
6
7
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,3 @@
1
- export { Skeleton } from './skeleton';
1
+ export { Skeleton, CONTENT_ENTER_CLASS } from './skeleton';
2
2
  export type { SkeletonProps } from './skeleton';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,6 @@
1
- import { S as r } from "../../_chunks/skeleton-CZbwyJAA.js";
1
+ import { C as o, S as C } from "../../_chunks/skeleton-B1KTdJ4N.js";
2
2
  export {
3
- r as Skeleton
3
+ o as CONTENT_ENTER_CLASS,
4
+ C as Skeleton
4
5
  };
5
6
  //# sourceMappingURL=index.js.map
@@ -4,6 +4,12 @@ declare const skeletonVariants: (props?: ({
4
4
  variant?: "text" | "rounded" | "rectangular" | "circular" | null | undefined;
5
5
  size?: "sm" | "md" | "lg" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ /**
8
+ * Put this on the REAL content that replaces a skeleton, so it settles in
9
+ * instead of snapping. Opacity only; none under reduced motion, and none in
10
+ * the accessible theme, whose `--animation-duration` is 0ms.
11
+ */
12
+ export declare const CONTENT_ENTER_CLASS = "ds:animate-[content-enter_var(--animation-duration)_var(--ease-out)] ds:motion-reduce:animate-none";
7
13
  export interface SkeletonProps extends Omit<HTMLAttributes<HTMLDivElement>, 'aria-hidden' | 'style'>, VariantProps<typeof skeletonVariants> {
8
14
  variant?: 'text' | 'circular' | 'rectangular' | 'rounded';
9
15
  size?: 'sm' | 'md' | 'lg';
@@ -23,6 +29,12 @@ export interface SkeletonProps extends Omit<HTMLAttributes<HTMLDivElement>, 'ari
23
29
  height?: string;
24
30
  /** Whether to animate the pulse */
25
31
  animate?: boolean;
32
+ /**
33
+ * Position in a wave. Atoms with rising steps (0, 1, 2…) pulse one after
34
+ * another instead of all at once. With `lines`, each line takes the next
35
+ * step by itself. Omit and nothing is staggered, as before.
36
+ */
37
+ stagger?: number;
26
38
  }
27
39
  export declare const Skeleton: import("react").ForwardRefExoticComponent<SkeletonProps & import("react").RefAttributes<HTMLDivElement>>;
28
40
  export {};
@@ -1,4 +1,4 @@
1
- import { S as i, f as t, i as e, s as r } from "../../_chunks/slot-grid-8Ko6thzz.js";
1
+ import { S as i, f as t, i as e, s as r } from "../../_chunks/slot-grid-Bk3GZL1p.js";
2
2
  export {
3
3
  i as SlotGrid,
4
4
  t as findFirstAvailable,
@@ -1,4 +1,4 @@
1
- import { T as s, i as t } from "../../_chunks/task-card-BalrLkSz.js";
1
+ import { T as s, i as t } from "../../_chunks/task-card-qTKD1fIT.js";
2
2
  import { t as o } from "../../_chunks/task-card.agent-CF2N_uu4.js";
3
3
  export {
4
4
  s as TaskCard,
@@ -1,4 +1,4 @@
1
- import { T as s, t } from "../../_chunks/task-tray-wl9eti6J.js";
1
+ import { T as s, t } from "../../_chunks/task-tray-5co9Jr2L.js";
2
2
  export {
3
3
  s as TaskTray,
4
4
  t as taskTrayAgent
@@ -1,4 +1,4 @@
1
- import { T as e, t } from "../../_chunks/tasks-panel-BDNB7hsZ.js";
1
+ import { T as e, t } from "../../_chunks/tasks-panel-BpH-x7U3.js";
2
2
  export {
3
3
  e as TasksPanel,
4
4
  t as tasksPanelAgent
@@ -1,4 +1,4 @@
1
- import { T as l, t } from "../../_chunks/tool-rail-Bq5eiFMG.js";
1
+ import { T as l, t } from "../../_chunks/tool-rail-BP8sjxCw.js";
2
2
  export {
3
3
  l as ToolRail,
4
4
  t as toolRailAgent
@@ -0,0 +1,4 @@
1
+ export { TreatmentReceipt } from './treatment-receipt';
2
+ export type { TreatmentReceiptLine, TreatmentReceiptProps, } from './treatment-receipt';
3
+ export { treatmentReceiptAgent } from './treatment-receipt.agent';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { T as r } from "../../_chunks/treatment-receipt-dUm99mdn.js";
2
+ import { t as m } from "../../_chunks/treatment-receipt.agent-bpFm2RPH.js";
3
+ export {
4
+ r as TreatmentReceipt,
5
+ m as treatmentReceiptAgent
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,3 @@
1
+ import type { AgentAdapter } from '../../agent/types';
2
+ export declare const treatmentReceiptAgent: AgentAdapter;
3
+ //# sourceMappingURL=treatment-receipt.agent.d.ts.map
@@ -0,0 +1,38 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ export interface TreatmentReceiptLine {
3
+ /** Stable key for the line. */
4
+ id: string;
5
+ /** Treatment name, as the price list prints it. */
6
+ name: string;
7
+ /** Price-list code, shown muted after the name. */
8
+ code?: string;
9
+ /** Dental elements as the platform prints them ("36, 37"). */
10
+ elementsLabel?: string;
11
+ /** Plan phases this line belongs to. */
12
+ phases?: string[];
13
+ /** The treatment has been carried out. */
14
+ done?: boolean;
15
+ /** The treatment has been invoiced. */
16
+ billed?: boolean;
17
+ /** Minor units. Absent means prices are withheld from this viewer. */
18
+ priceCents?: number;
19
+ }
20
+ export interface TreatmentReceiptProps extends HTMLAttributes<HTMLDivElement> {
21
+ lines: TreatmentReceiptLine[];
22
+ /** BCP 47 locale for the amounts. Defaults to Money's own default. */
23
+ locale?: string;
24
+ /** ISO 4217 code. Defaults to Money's own default. */
25
+ currency?: string;
26
+ /**
27
+ * The treatments are being read. With no `lines` yet it shows placeholder
28
+ * receipt lines and no total. With lines already on screen (a refresh) it
29
+ * keeps them and only sets `aria-busy`.
30
+ */
31
+ loading?: boolean;
32
+ /** Placeholder lines shown while `loading`. Default `2`. */
33
+ loadingLines?: number;
34
+ /** Label of the total row. Defaults to the kit's "Total for this appointment". */
35
+ totalLabel?: string;
36
+ }
37
+ export declare const TreatmentReceipt: import("react").ForwardRefExoticComponent<TreatmentReceiptProps & import("react").RefAttributes<HTMLDivElement>>;
38
+ //# sourceMappingURL=treatment-receipt.d.ts.map
@@ -1,4 +1,4 @@
1
- import { C as r, W as e, a as s, b as d, c as w, i as t, l as f, m as l, r as i, w as k, d as n, e as A, f as C } from "../../_chunks/workflow-map-D-LEni11.js";
1
+ import { C as r, W as e, a as s, b as d, c as w, i as t, l as f, m as l, r as i, w as k, d as n, e as A, f as C } from "../../_chunks/workflow-map-CXdsxvUj.js";
2
2
  export {
3
3
  r as CORE_PATIENT_FIELDS,
4
4
  e as WorkflowCard,
@@ -26,5 +26,6 @@ export { useZoomDrilldown, ZOOM_DRILLDOWN_TRANSITION_CLASS, type UseZoomDrilldow
26
26
  export { useCountdown, type UseCountdownOptions, type UseCountdownReturn, } from './use-countdown';
27
27
  export { useCheckAnimation, type UseCheckAnimationOptions, type UseCheckAnimationReturn, } from './use-check-animation';
28
28
  export { useExitTransition, type UseExitTransitionOptions, type UseExitTransitionReturn, } from './use-exit-transition';
29
+ export { usePresenceTransition, type PresencePhase, type UsePresenceTransitionOptions, type UsePresenceTransitionReturn, } from './use-presence-transition';
29
30
  export { useListReflow, REFLOW_ROW_CLASS, type UseListReflowOptions, type UseListReflowReturn, } from './use-list-reflow';
30
31
  //# sourceMappingURL=index.d.ts.map