@alfadocs/ui-kit-debug 1.29.0 → 1.31.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 (232) hide show
  1. package/dist/_chunks/{address-fields-CZ0pEdEI.js → address-fields-jFfjxOQR.js} +3 -3
  2. package/dist/_chunks/{address-fields-CZ0pEdEI.js.map → address-fields-jFfjxOQR.js.map} +1 -1
  3. package/dist/_chunks/{anamnesis-summary-rows-DwjqZgR5.js → anamnesis-summary-rows-DMO3MWSt.js} +2 -2
  4. package/dist/_chunks/{anamnesis-summary-rows-DwjqZgR5.js.map → anamnesis-summary-rows-DMO3MWSt.js.map} +1 -1
  5. package/dist/_chunks/{appointment-card-Dzr3GeVz.js → appointment-card-CvUFFEdS.js} +8 -6
  6. package/dist/_chunks/appointment-card-CvUFFEdS.js.map +1 -0
  7. package/dist/_chunks/{appointment-timeline-DhHwmHo1.js → appointment-timeline-DsMZY7U9.js} +2 -2
  8. package/dist/_chunks/{appointment-timeline-DhHwmHo1.js.map → appointment-timeline-DsMZY7U9.js.map} +1 -1
  9. package/dist/_chunks/{appointment-tray-4FUu_5NX.js → appointment-tray-Z2GaOIYQ.js} +2 -2
  10. package/dist/_chunks/{appointment-tray-4FUu_5NX.js.map → appointment-tray-Z2GaOIYQ.js.map} +1 -1
  11. package/dist/_chunks/{booking-AabCk7CI.js → booking-jGzRUETo.js} +2 -2
  12. package/dist/_chunks/{booking-AabCk7CI.js.map → booking-jGzRUETo.js.map} +1 -1
  13. package/dist/_chunks/{calendar-CI9MINcR.js → calendar-BNQKpxhE.js} +494 -438
  14. package/dist/_chunks/calendar-BNQKpxhE.js.map +1 -0
  15. package/dist/_chunks/{calendar-event-card-66CEEWU6.js → calendar-event-card-DSh-69HT.js} +130 -122
  16. package/dist/_chunks/calendar-event-card-DSh-69HT.js.map +1 -0
  17. package/dist/_chunks/calendar-workspace-Dy1jHBvG.js +9392 -0
  18. package/dist/_chunks/calendar-workspace-Dy1jHBvG.js.map +1 -0
  19. package/dist/_chunks/{clinical-note-card-BBgFd2nB.js → clinical-note-card-yCTR9DB6.js} +185 -188
  20. package/dist/_chunks/clinical-note-card-yCTR9DB6.js.map +1 -0
  21. package/dist/_chunks/{color-picker-CU303VjY.js → color-picker-Bl5f0iK1.js} +28 -25
  22. package/dist/_chunks/color-picker-Bl5f0iK1.js.map +1 -0
  23. package/dist/_chunks/{combobox-D7_NLE2Z.js → combobox-DnSdYssy.js} +216 -215
  24. package/dist/_chunks/combobox-DnSdYssy.js.map +1 -0
  25. package/dist/_chunks/{country-select-DzbPFktV.js → country-select-CfDNFG5c.js} +2 -2
  26. package/dist/_chunks/{country-select-DzbPFktV.js.map → country-select-CfDNFG5c.js.map} +1 -1
  27. package/dist/_chunks/{face-scheme-DA2vjqaM.js → face-scheme-l-CQyLs-.js} +2 -2
  28. package/dist/_chunks/{face-scheme-DA2vjqaM.js.map → face-scheme-l-CQyLs-.js.map} +1 -1
  29. package/dist/_chunks/notes-panel-am6e-Lwh.js +380 -0
  30. package/dist/_chunks/notes-panel-am6e-Lwh.js.map +1 -0
  31. package/dist/_chunks/{patient-details-DYAmq76G.js → patient-details-CdfursHt.js} +3 -3
  32. package/dist/_chunks/{patient-details-DYAmq76G.js.map → patient-details-CdfursHt.js.map} +1 -1
  33. package/dist/_chunks/{province-select-BBc7s7vR.js → province-select-BaUnkg4S.js} +2 -2
  34. package/dist/_chunks/{province-select-BBc7s7vR.js.map → province-select-BaUnkg4S.js.map} +1 -1
  35. package/dist/_chunks/{rich-text-editor-lSCiE0Zz.js → rich-text-editor-VJATL1Tk.js} +2 -2
  36. package/dist/_chunks/{rich-text-editor-lSCiE0Zz.js.map → rich-text-editor-VJATL1Tk.js.map} +1 -1
  37. package/dist/_chunks/{sparkline-BmGcEyZO.js → sparkline-Dx_sxK3J.js} +228 -198
  38. package/dist/_chunks/sparkline-Dx_sxK3J.js.map +1 -0
  39. package/dist/_chunks/{timeline-r-8IUoBS.js → timeline-u-2t9t_M.js} +37 -35
  40. package/dist/_chunks/timeline-u-2t9t_M.js.map +1 -0
  41. package/dist/_chunks/use-zoom-drilldown-qCX34w9I.js +210 -0
  42. package/dist/_chunks/use-zoom-drilldown-qCX34w9I.js.map +1 -0
  43. package/dist/agent-catalog.json +55 -11
  44. package/dist/agent-i18n/en.json +10 -8
  45. package/dist/components/_shared/get-error-message.d.ts +3 -0
  46. package/dist/components/_shared/get-error-message.d.ts.map +1 -0
  47. package/dist/components/address-fields/index.js +1 -1
  48. package/dist/components/appointment-card/appointment-card.d.ts.map +1 -1
  49. package/dist/components/appointment-card/index.js +2 -2
  50. package/dist/components/appointment-timeline/index.js +1 -1
  51. package/dist/components/booking/index.js +1 -1
  52. package/dist/components/calendar/calendar.d.ts +26 -2
  53. package/dist/components/calendar/calendar.d.ts.map +1 -1
  54. package/dist/components/calendar/index.js +1 -1
  55. package/dist/components/calendar-event-card/calendar-event-card.d.ts +9 -0
  56. package/dist/components/calendar-event-card/calendar-event-card.d.ts.map +1 -1
  57. package/dist/components/calendar-event-card/index.js +1 -1
  58. package/dist/components/clinical-note-card/clinical-note-card.d.ts +16 -1
  59. package/dist/components/clinical-note-card/clinical-note-card.d.ts.map +1 -1
  60. package/dist/components/clinical-note-card/index.js +1 -1
  61. package/dist/components/color-picker/color-utils.d.ts.map +1 -1
  62. package/dist/components/color-picker/index.js +1 -1
  63. package/dist/components/combobox/combobox.d.ts +5 -0
  64. package/dist/components/combobox/combobox.d.ts.map +1 -1
  65. package/dist/components/combobox/index.js +1 -1
  66. package/dist/components/country-select/index.js +1 -1
  67. package/dist/components/face-scheme/index.js +1 -1
  68. package/dist/components/index.d.ts +2 -2
  69. package/dist/components/index.d.ts.map +1 -1
  70. package/dist/components/notes-panel/index.d.ts +1 -1
  71. package/dist/components/notes-panel/index.d.ts.map +1 -1
  72. package/dist/components/notes-panel/index.js +1 -1
  73. package/dist/components/notes-panel/notes-panel.agent.d.ts.map +1 -1
  74. package/dist/components/notes-panel/notes-panel.d.ts +24 -5
  75. package/dist/components/notes-panel/notes-panel.d.ts.map +1 -1
  76. package/dist/components/patient-details/index.js +1 -1
  77. package/dist/components/province-select/index.js +1 -1
  78. package/dist/components/rich-text-editor/index.js +1 -1
  79. package/dist/components/sparkline/index.js +1 -1
  80. package/dist/components/sparkline/sparkline.agent.d.ts.map +1 -1
  81. package/dist/components/sparkline/sparkline.d.ts +6 -0
  82. package/dist/components/sparkline/sparkline.d.ts.map +1 -1
  83. package/dist/components/timeline/index.js +1 -1
  84. package/dist/components/timeline/timeline.d.ts +2 -0
  85. package/dist/components/timeline/timeline.d.ts.map +1 -1
  86. package/dist/hooks/index.d.ts +1 -0
  87. package/dist/hooks/index.d.ts.map +1 -1
  88. package/dist/hooks/index.js +56 -54
  89. package/dist/hooks/use-zoom-drilldown.d.ts +23 -0
  90. package/dist/hooks/use-zoom-drilldown.d.ts.map +1 -0
  91. package/dist/host-compat.css +10 -1
  92. package/dist/i18n/locales/ar.d.ts +50 -0
  93. package/dist/i18n/locales/ar.d.ts.map +1 -1
  94. package/dist/i18n/locales/ar.js +54 -4
  95. package/dist/i18n/locales/ar.js.map +1 -1
  96. package/dist/i18n/locales/de.d.ts +60 -10
  97. package/dist/i18n/locales/de.d.ts.map +1 -1
  98. package/dist/i18n/locales/de.js +64 -14
  99. package/dist/i18n/locales/de.js.map +1 -1
  100. package/dist/i18n/locales/el.d.ts +50 -0
  101. package/dist/i18n/locales/el.d.ts.map +1 -1
  102. package/dist/i18n/locales/el.js +54 -4
  103. package/dist/i18n/locales/el.js.map +1 -1
  104. package/dist/i18n/locales/en.d.ts +50 -0
  105. package/dist/i18n/locales/en.d.ts.map +1 -1
  106. package/dist/i18n/locales/en.js +54 -4
  107. package/dist/i18n/locales/en.js.map +1 -1
  108. package/dist/i18n/locales/es.d.ts +50 -0
  109. package/dist/i18n/locales/es.d.ts.map +1 -1
  110. package/dist/i18n/locales/es.js +54 -4
  111. package/dist/i18n/locales/es.js.map +1 -1
  112. package/dist/i18n/locales/fr.d.ts +50 -0
  113. package/dist/i18n/locales/fr.d.ts.map +1 -1
  114. package/dist/i18n/locales/fr.js +53 -3
  115. package/dist/i18n/locales/fr.js.map +1 -1
  116. package/dist/i18n/locales/hi.d.ts +50 -0
  117. package/dist/i18n/locales/hi.d.ts.map +1 -1
  118. package/dist/i18n/locales/hi.js +54 -4
  119. package/dist/i18n/locales/hi.js.map +1 -1
  120. package/dist/i18n/locales/it.d.ts +60 -10
  121. package/dist/i18n/locales/it.d.ts.map +1 -1
  122. package/dist/i18n/locales/it.js +64 -14
  123. package/dist/i18n/locales/it.js.map +1 -1
  124. package/dist/i18n/locales/ja.d.ts +50 -0
  125. package/dist/i18n/locales/ja.d.ts.map +1 -1
  126. package/dist/i18n/locales/ja.js +54 -4
  127. package/dist/i18n/locales/ja.js.map +1 -1
  128. package/dist/i18n/locales/nl.d.ts +50 -0
  129. package/dist/i18n/locales/nl.d.ts.map +1 -1
  130. package/dist/i18n/locales/nl.js +54 -4
  131. package/dist/i18n/locales/nl.js.map +1 -1
  132. package/dist/i18n/locales/pl.d.ts +50 -0
  133. package/dist/i18n/locales/pl.d.ts.map +1 -1
  134. package/dist/i18n/locales/pl.js +54 -4
  135. package/dist/i18n/locales/pl.js.map +1 -1
  136. package/dist/i18n/locales/pt.d.ts +50 -0
  137. package/dist/i18n/locales/pt.d.ts.map +1 -1
  138. package/dist/i18n/locales/pt.js +54 -4
  139. package/dist/i18n/locales/pt.js.map +1 -1
  140. package/dist/i18n/locales/ro.d.ts +50 -0
  141. package/dist/i18n/locales/ro.d.ts.map +1 -1
  142. package/dist/i18n/locales/ro.js +53 -3
  143. package/dist/i18n/locales/ro.js.map +1 -1
  144. package/dist/i18n/locales/ru.d.ts +50 -0
  145. package/dist/i18n/locales/ru.d.ts.map +1 -1
  146. package/dist/i18n/locales/ru.js +54 -4
  147. package/dist/i18n/locales/ru.js.map +1 -1
  148. package/dist/i18n/locales/sq.d.ts +50 -0
  149. package/dist/i18n/locales/sq.d.ts.map +1 -1
  150. package/dist/i18n/locales/sq.js +54 -4
  151. package/dist/i18n/locales/sq.js.map +1 -1
  152. package/dist/i18n/locales/sv.d.ts +50 -0
  153. package/dist/i18n/locales/sv.d.ts.map +1 -1
  154. package/dist/i18n/locales/sv.js +54 -4
  155. package/dist/i18n/locales/sv.js.map +1 -1
  156. package/dist/i18n/locales/tr.d.ts +50 -0
  157. package/dist/i18n/locales/tr.d.ts.map +1 -1
  158. package/dist/i18n/locales/tr.js +54 -4
  159. package/dist/i18n/locales/tr.js.map +1 -1
  160. package/dist/i18n/locales/zh.d.ts +50 -0
  161. package/dist/i18n/locales/zh.d.ts.map +1 -1
  162. package/dist/i18n/locales/zh.js +54 -4
  163. package/dist/i18n/locales/zh.js.map +1 -1
  164. package/dist/index.js +1073 -1070
  165. package/dist/locales/ar.json +54 -4
  166. package/dist/locales/de.json +64 -14
  167. package/dist/locales/el.json +54 -4
  168. package/dist/locales/en.json +54 -4
  169. package/dist/locales/es.json +54 -4
  170. package/dist/locales/fr.json +53 -3
  171. package/dist/locales/hi.json +54 -4
  172. package/dist/locales/it.json +64 -14
  173. package/dist/locales/ja.json +54 -4
  174. package/dist/locales/nl.json +54 -4
  175. package/dist/locales/pl.json +54 -4
  176. package/dist/locales/pt.json +54 -4
  177. package/dist/locales/ro.json +53 -3
  178. package/dist/locales/ru.json +54 -4
  179. package/dist/locales/sq.json +54 -4
  180. package/dist/locales/sv.json +54 -4
  181. package/dist/locales/tr.json +54 -4
  182. package/dist/locales/zh.json +54 -4
  183. package/dist/patterns/anamnesis/index.js +1 -1
  184. package/dist/patterns/calendar/calendar-appointment-details.d.ts +145 -0
  185. package/dist/patterns/calendar/calendar-appointment-details.d.ts.map +1 -0
  186. package/dist/patterns/calendar/calendar-appointment-details.sections.d.ts +32 -0
  187. package/dist/patterns/calendar/calendar-appointment-details.sections.d.ts.map +1 -0
  188. package/dist/patterns/calendar/calendar-editor-hydration.d.ts +59 -0
  189. package/dist/patterns/calendar/calendar-editor-hydration.d.ts.map +1 -0
  190. package/dist/patterns/calendar/calendar-notes-tool.d.ts +14 -0
  191. package/dist/patterns/calendar/calendar-notes-tool.d.ts.map +1 -0
  192. package/dist/patterns/calendar/calendar-patient-picker.d.ts +11 -0
  193. package/dist/patterns/calendar/calendar-patient-picker.d.ts.map +1 -0
  194. package/dist/patterns/calendar/calendar-series-scope-chooser.d.ts +18 -0
  195. package/dist/patterns/calendar/calendar-series-scope-chooser.d.ts.map +1 -0
  196. package/dist/patterns/calendar/calendar-workspace.d.ts +26 -1
  197. package/dist/patterns/calendar/calendar-workspace.d.ts.map +1 -1
  198. package/dist/patterns/calendar/calendar-workspace.model.d.ts +8 -5
  199. package/dist/patterns/calendar/calendar-workspace.model.d.ts.map +1 -1
  200. package/dist/patterns/calendar/calendar.data.d.ts +66 -1
  201. package/dist/patterns/calendar/calendar.data.d.ts.map +1 -1
  202. package/dist/patterns/calendar/calendar.host.d.ts +2 -0
  203. package/dist/patterns/calendar/calendar.host.d.ts.map +1 -1
  204. package/dist/patterns/calendar/calendar.journey.d.ts +42 -7
  205. package/dist/patterns/calendar/calendar.journey.d.ts.map +1 -1
  206. package/dist/patterns/calendar/calendar.model.d.ts +54 -5
  207. package/dist/patterns/calendar/calendar.model.d.ts.map +1 -1
  208. package/dist/patterns/calendar/calendar.sheets.d.ts +68 -15
  209. package/dist/patterns/calendar/calendar.sheets.d.ts.map +1 -1
  210. package/dist/patterns/calendar/calendar.surface.d.ts +12 -2
  211. package/dist/patterns/calendar/calendar.surface.d.ts.map +1 -1
  212. package/dist/patterns/calendar/calendar.types.d.ts +29 -1
  213. package/dist/patterns/calendar/calendar.types.d.ts.map +1 -1
  214. package/dist/patterns/calendar/index.d.ts +9 -6
  215. package/dist/patterns/calendar/index.d.ts.map +1 -1
  216. package/dist/patterns/calendar/index.js +15 -14
  217. package/dist/tokens.css +10 -2
  218. package/package.json +1 -1
  219. package/dist/_chunks/appointment-card-Dzr3GeVz.js.map +0 -1
  220. package/dist/_chunks/calendar-CI9MINcR.js.map +0 -1
  221. package/dist/_chunks/calendar-event-card-66CEEWU6.js.map +0 -1
  222. package/dist/_chunks/calendar-workspace-a84AHQwj.js +0 -7506
  223. package/dist/_chunks/calendar-workspace-a84AHQwj.js.map +0 -1
  224. package/dist/_chunks/clinical-note-card-BBgFd2nB.js.map +0 -1
  225. package/dist/_chunks/color-picker-CU303VjY.js.map +0 -1
  226. package/dist/_chunks/combobox-D7_NLE2Z.js.map +0 -1
  227. package/dist/_chunks/notes-panel-CTNpsByN.js +0 -353
  228. package/dist/_chunks/notes-panel-CTNpsByN.js.map +0 -1
  229. package/dist/_chunks/sparkline-BmGcEyZO.js.map +0 -1
  230. package/dist/_chunks/timeline-r-8IUoBS.js.map +0 -1
  231. package/dist/_chunks/use-signing-session-CyOZWinp.js +0 -147
  232. package/dist/_chunks/use-signing-session-CyOZWinp.js.map +0 -1
@@ -1648,6 +1648,7 @@
1648
1648
  "allDay": "Tüm gün",
1649
1649
  "noEvents": "Gösterilecek etkinlik yok",
1650
1650
  "scrollableRegion": "Takvim ızgarası — gezinmek için ok tuşlarını kullanın veya kaydırın",
1651
+ "loadingDay": "Bu gün hâlâ yükleniyor",
1651
1652
  "eventMoved": "{{title}} taşındı",
1652
1653
  "eventResized": "{{title}} {{duration}} dakikaya yeniden boyutlandırıldı",
1653
1654
  "privacyModeOn": "Gizlilik modu etkin — hasta adları gizlendi",
@@ -1671,7 +1672,8 @@
1671
1672
  },
1672
1673
  "eventKind": {
1673
1674
  "task": "Görev",
1674
- "draft": "Taslak"
1675
+ "draft": "Taslak",
1676
+ "pendingDetails": "Ayrıntılar yükleniyor…"
1675
1677
  },
1676
1678
  "resourceLabel": {
1677
1679
  "chairs": "Koltuklar",
@@ -2310,6 +2312,10 @@
2310
2312
  "readMore": "Daha fazla oku",
2311
2313
  "readLess": "Daha az oku",
2312
2314
  "added": "added",
2315
+ "deleted": "Silindi",
2316
+ "showDeleted": "Silinen notu göster",
2317
+ "hideDeleted": "Silinen notu gizle",
2318
+ "operator": "Operatör: {{name}}",
2313
2319
  "attachment": {
2314
2320
  "patient": "Patient record",
2315
2321
  "carePlan": "Care plan {{number}}",
@@ -3871,7 +3877,11 @@
3871
3877
  "empty": "Henüz not yok.",
3872
3878
  "current": "Geçerli not",
3873
3879
  "clinicalToggle": "Klinik not",
3874
- "clinicalGated": "Klinik not yazma izniniz yok."
3880
+ "clinicalGated": "Klinik not yazma izniniz yok.",
3881
+ "loading": "Notlar yükleniyor…",
3882
+ "loadError": "Notlar yüklenemedi.",
3883
+ "retry": "Tekrar dene",
3884
+ "addFailed": "Not kaydedilemedi."
3875
3885
  },
3876
3886
  "toolRail": {
3877
3887
  "reorderInstructions": "{{tool}} öğesini yeniden sırala. Taşımak için Alt + Yukarı veya Alt + Aşağı tuşuna basın.",
@@ -3991,7 +4001,8 @@
3991
4001
  "month": "Ay"
3992
4002
  },
3993
4003
  "rail": {
3994
- "editorDocked": "Yeni randevu formu yan panelde açıldı"
4004
+ "editorDocked": "Yeni randevu formu yan panelde açıldı",
4005
+ "notes": "Hasta notları"
3995
4006
  },
3996
4007
  "details": {
3997
4008
  "region": "Randevu ayrıntıları",
@@ -4012,6 +4023,17 @@
4012
4023
  "docked": "{{name}} için randevu ayrıntıları yan panelde açıldı",
4013
4024
  "remind": "Hatırlatma gönder",
4014
4025
  "remindWhatsApp": "WhatsApp",
4026
+ "joinTelehealth": "Görüntülü muayeneye katıl",
4027
+ "documents": {
4028
+ "label": "Ekle",
4029
+ "folder": "Klasör",
4030
+ "template": "Şablondan belge",
4031
+ "empty": "Boş belge",
4032
+ "identification": "Kimlik belgesi",
4033
+ "webcam": "Web kamerası / Dahili kamera",
4034
+ "bill": "Fatura oluştur"
4035
+ },
4036
+ "createTask": "Görev oluştur",
4015
4037
  "remindSms": "SMS",
4016
4038
  "remindEmail": "E-posta",
4017
4039
  "remindSent": "Hatırlatma {{channel}} ile gönderildi",
@@ -4059,6 +4081,10 @@
4059
4081
  "notesAction": "Hasta notları",
4060
4082
  "notesTitle": "Notlar · {{name}}",
4061
4083
  "notesBack": "Ayrıntılara dön",
4084
+ "notesPreviewTitle": "Notlar ({{count}})",
4085
+ "notesPreviewOpen": "Daha fazla göster",
4086
+ "notesPreviewEmpty": "Bu hasta için henüz not yok.",
4087
+ "notesPreviewOpenNote": "{{number}} numaralı notu aç",
4062
4088
  "noteEdit": "Notu düzenle",
4063
4089
  "noteEditNamed": "Notu düzenle · {{date}}",
4064
4090
  "noteDelete": "Notu sil",
@@ -4071,6 +4097,7 @@
4071
4097
  "noteDeleteBody": "Not hasta kaydından kaldırılır. Bu işlem burada geri alınamaz.",
4072
4098
  "noteDeleteConfirm": "Sil",
4073
4099
  "noteDeleteCancel": "Vazgeç",
4100
+ "noteSaveFailed": "Bu nottaki değişiklik kaydedilemedi.",
4074
4101
  "placementLabel": "Ajandaya yerleştir",
4075
4102
  "move": "Taşı…",
4076
4103
  "copy": "Kopyala…",
@@ -4080,6 +4107,12 @@
4080
4107
  "address": "Adres",
4081
4108
  "mapsLink": "Google Maps'te aç",
4082
4109
  "bookingPhone": "Rezervasyon telefonu",
4110
+ "sectionAppointment": "Randevu",
4111
+ "bookingName": "Rezervasyondaki ad",
4112
+ "bookingEmail": "Rezervasyon e-postası",
4113
+ "noAddress": "Kayıtlı adres yok",
4114
+ "aesMissing": "Gelişmiş elektronik imza ayarlanmamış",
4115
+ "seriesRule": "{{frequency}} · {{count}} kez",
4083
4116
  "readOnlyTitle": "Salt okunur",
4084
4117
  "readOnlyBody": "Randevuları düzenleme izniniz yok — takvim düzenleme yetkisi için klinik sahibine başvurun.",
4085
4118
  "history": {
@@ -4089,6 +4122,7 @@
4089
4122
  "status": "Durum değiştirildi",
4090
4123
  "edited": "Düzenlendi",
4091
4124
  "deleted": "Silindi",
4125
+ "confirmedByPatient": "Hasta tarafından onaylandı",
4092
4126
  "movedDetail": "{{from}} → {{to}}",
4093
4127
  "resizedDetail": "{{from}} dk → {{to}} dk",
4094
4128
  "statusDetail": "{{from}} → {{to}}",
@@ -4285,6 +4319,13 @@
4285
4319
  "scopeThis": "Bu randevu",
4286
4320
  "scopeFollowing": "Bu ve sonraki randevular",
4287
4321
  "scopeAll": "Serideki tüm randevular",
4322
+ "seriesChooserTitle": "Yinelenen randevuyu düzenle",
4323
+ "seriesChooserBody": "{{date}} tarihli randevu bir serinin parçası. Değişiklik hangi randevulara uygulansın?",
4324
+ "seriesChooserContinue": "Devam",
4325
+ "seriesAllDiscardsOverrides": "Tüm seriyi başka bir tarih veya saate taşımak, tek tek değiştirilmiş randevuları kaldırır.",
4326
+ "seriesScopeReadout": "Kapsam: {{scope}}",
4327
+ "seriesScopeChange": "Değiştir",
4328
+ "seriesClashNote": "Çakışmalar yalnızca bu randevu için denetlenir, serinin geri kalanı için denetlenmez.",
4288
4329
  "deleteScope": "Hangi randevular",
4289
4330
  "carePlanCleanup": "Tedavi planındaki tedaviler",
4290
4331
  "carePlanRemove": "Tedaviyi tedavi planından kaldır",
@@ -4303,6 +4344,7 @@
4303
4344
  "signMode_few": "{{count}} zorunlu belgenin imzası"
4304
4345
  },
4305
4346
  "findSlots": {
4347
+ "bandOptions": "Mevcut seçenekler",
4306
4348
  "tool": "Boş zaman dilimi bul",
4307
4349
  "care": "Tedavi",
4308
4350
  "careSearch": "Tedavi ara…",
@@ -4328,13 +4370,21 @@
4328
4370
  "noResultsClosed": "Klinik bu aralıktaki her gün kapalı.",
4329
4371
  "capNote": "İlk 20 zaman dilimi gösteriliyor",
4330
4372
  "showInCalendar": "Takvimde göster",
4373
+ "freeOptions_zero": "{{count}} seçenek",
4374
+ "freeOptions_one": "{{count}} seçenek",
4375
+ "freeOptions_two": "{{count}} seçenek",
4376
+ "freeOptions_few": "{{count}} seçenek",
4377
+ "freeOptions_many": "{{count}} seçenek",
4378
+ "freeOptions_other": "{{count}} seçenek",
4331
4379
  "device": "Tıbbi cihaz",
4332
4380
  "rangeTooLong": "{{days}} günden uzun bir aralığa izin verilmiyor.",
4333
4381
  "showMore": "Daha fazla zaman dilimi göster",
4334
4382
  "noPracticeBusinessHours": "Kliniğin çalışma saatleri tanımlı değil. Planlayıcıdan ekleyin.",
4335
4383
  "noOperatorBusinessHours": "Operatörlerin çalışma saatleri tanımlı değil. Planlayıcıdan ekleyin.",
4336
4384
  "openScheduler": "Planlayıcıyı aç",
4337
- "free": "Boş"
4385
+ "free": "Boş",
4386
+ "searching": "Boş zaman dilimleri aranıyor…",
4387
+ "searchFailed": "Boş zaman dilimleri aranamadı."
4338
4388
  },
4339
4389
  "moveConfirm": {
4340
4390
  "title": "Taşımayı onayla",
@@ -1648,6 +1648,7 @@
1648
1648
  "allDay": "全天",
1649
1649
  "noEvents": "暂无事件",
1650
1650
  "scrollableRegion": "日历网格——使用方向键或滚动进行导航",
1651
+ "loadingDay": "该日仍在加载",
1651
1652
  "eventMoved": "{{title}} 已移动",
1652
1653
  "eventResized": "{{title}} 已调整至 {{duration}} 分钟",
1653
1654
  "privacyModeOn": "隐私模式已开启——患者姓名已隐藏",
@@ -1671,7 +1672,8 @@
1671
1672
  },
1672
1673
  "eventKind": {
1673
1674
  "task": "任务",
1674
- "draft": "草稿"
1675
+ "draft": "草稿",
1676
+ "pendingDetails": "正在加载详情…"
1675
1677
  },
1676
1678
  "resourceLabel": {
1677
1679
  "chairs": "诊椅",
@@ -2310,6 +2312,10 @@
2310
2312
  "readMore": "展开",
2311
2313
  "readLess": "收起",
2312
2314
  "added": "added",
2315
+ "deleted": "已删除",
2316
+ "showDeleted": "显示已删除的备注",
2317
+ "hideDeleted": "隐藏已删除的备注",
2318
+ "operator": "操作员:{{name}}",
2313
2319
  "attachment": {
2314
2320
  "patient": "Patient record",
2315
2321
  "carePlan": "Care plan {{number}}",
@@ -3871,7 +3877,11 @@
3871
3877
  "empty": "暂无备注。",
3872
3878
  "current": "当前备注",
3873
3879
  "clinicalToggle": "临床记录",
3874
- "clinicalGated": "您没有撰写临床记录的权限。"
3880
+ "clinicalGated": "您没有撰写临床记录的权限。",
3881
+ "loading": "正在加载备注……",
3882
+ "loadError": "无法加载备注。",
3883
+ "retry": "重试",
3884
+ "addFailed": "无法保存备注。"
3875
3885
  },
3876
3886
  "toolRail": {
3877
3887
  "reorderInstructions": "重新排序 {{tool}}。按 Alt + 上 或 Alt + 下 移动。",
@@ -3991,7 +4001,8 @@
3991
4001
  "month": "月"
3992
4002
  },
3993
4003
  "rail": {
3994
- "editorDocked": "新建预约表单已在侧边面板中打开"
4004
+ "editorDocked": "新建预约表单已在侧边面板中打开",
4005
+ "notes": "患者备注"
3995
4006
  },
3996
4007
  "details": {
3997
4008
  "region": "预约详情",
@@ -4012,6 +4023,17 @@
4012
4023
  "docked": "{{name}} 的预约详情已在侧边面板中打开",
4013
4024
  "remind": "发送提醒",
4014
4025
  "remindWhatsApp": "WhatsApp",
4026
+ "joinTelehealth": "加入视频问诊",
4027
+ "documents": {
4028
+ "label": "添加",
4029
+ "folder": "文件夹",
4030
+ "template": "从模板创建文档",
4031
+ "empty": "空白文档",
4032
+ "identification": "身份证明文件",
4033
+ "webcam": "网络摄像头 / 内置摄像头",
4034
+ "bill": "创建账单"
4035
+ },
4036
+ "createTask": "创建任务",
4015
4037
  "remindSms": "短信",
4016
4038
  "remindEmail": "邮件",
4017
4039
  "remindSent": "已通过{{channel}}发送提醒",
@@ -4059,6 +4081,10 @@
4059
4081
  "notesAction": "患者备注",
4060
4082
  "notesTitle": "备注 · {{name}}",
4061
4083
  "notesBack": "返回详情",
4084
+ "notesPreviewTitle": "备注({{count}})",
4085
+ "notesPreviewOpen": "查看更多",
4086
+ "notesPreviewEmpty": "该患者暂无备注。",
4087
+ "notesPreviewOpenNote": "打开备注{{number}}",
4062
4088
  "noteEdit": "编辑备注",
4063
4089
  "noteEditNamed": "编辑备注 · {{date}}",
4064
4090
  "noteDelete": "删除备注",
@@ -4071,6 +4097,7 @@
4071
4097
  "noteDeleteBody": "该备注将从患者档案中移除。此操作在此处无法撤销。",
4072
4098
  "noteDeleteConfirm": "删除",
4073
4099
  "noteDeleteCancel": "保留",
4100
+ "noteSaveFailed": "无法保存对此备注的更改。",
4074
4101
  "placementLabel": "放置到日程",
4075
4102
  "move": "移动…",
4076
4103
  "copy": "复制…",
@@ -4080,6 +4107,12 @@
4080
4107
  "address": "地址",
4081
4108
  "mapsLink": "在 Google 地图中打开",
4082
4109
  "bookingPhone": "预约电话",
4110
+ "sectionAppointment": "预约",
4111
+ "bookingName": "预约姓名",
4112
+ "bookingEmail": "预约邮箱",
4113
+ "noAddress": "未登记地址",
4114
+ "aesMissing": "高级电子签名未设置",
4115
+ "seriesRule": "{{frequency}} · {{count}} 次",
4083
4116
  "readOnlyTitle": "只读",
4084
4117
  "readOnlyBody": "您没有编辑预约的权限——请向诊所负责人申请日历编辑权限。",
4085
4118
  "history": {
@@ -4089,6 +4122,7 @@
4089
4122
  "status": "状态已更改",
4090
4123
  "edited": "已编辑",
4091
4124
  "deleted": "已删除",
4125
+ "confirmedByPatient": "已由患者确认",
4092
4126
  "movedDetail": "{{from}} → {{to}}",
4093
4127
  "resizedDetail": "{{from}} 分钟 → {{to}} 分钟",
4094
4128
  "statusDetail": "{{from}} → {{to}}",
@@ -4285,6 +4319,13 @@
4285
4319
  "scopeThis": "此预约",
4286
4320
  "scopeFollowing": "此预约及后续预约",
4287
4321
  "scopeAll": "系列中的所有预约",
4322
+ "seriesChooserTitle": "编辑重复预约",
4323
+ "seriesChooserBody": "{{date}}的预约属于一个系列。此更改应用于哪些预约?",
4324
+ "seriesChooserContinue": "继续",
4325
+ "seriesAllDiscardsOverrides": "将整个系列移到新的日期或时间,会删除单独修改过的预约。",
4326
+ "seriesScopeReadout": "适用于:{{scope}}",
4327
+ "seriesScopeChange": "更改",
4328
+ "seriesClashNote": "仅检查此预约的冲突,不检查系列中的其他预约。",
4288
4329
  "deleteScope": "哪些预约",
4289
4330
  "carePlanCleanup": "诊疗计划中的治疗项目",
4290
4331
  "carePlanRemove": "从诊疗计划中移除该治疗项目",
@@ -4303,6 +4344,7 @@
4303
4344
  "signMode_few": "需签署 {{count}} 份必要文件"
4304
4345
  },
4305
4346
  "findSlots": {
4347
+ "bandOptions": "可用选项",
4306
4348
  "tool": "查找空闲时段",
4307
4349
  "care": "治疗",
4308
4350
  "careSearch": "搜索治疗…",
@@ -4328,13 +4370,21 @@
4328
4370
  "noResultsClosed": "诊所在此范围内的每一天都休息。",
4329
4371
  "capNote": "仅显示前 20 个时段",
4330
4372
  "showInCalendar": "在日历中显示",
4373
+ "freeOptions_zero": "{{count}} 个选项",
4374
+ "freeOptions_one": "{{count}} 个选项",
4375
+ "freeOptions_two": "{{count}} 个选项",
4376
+ "freeOptions_few": "{{count}} 个选项",
4377
+ "freeOptions_many": "{{count}} 个选项",
4378
+ "freeOptions_other": "{{count}} 个选项",
4331
4379
  "device": "医疗设备",
4332
4380
  "rangeTooLong": "不允许超过 {{days}} 天的范围。",
4333
4381
  "showMore": "显示更多时段",
4334
4382
  "noPracticeBusinessHours": "诊所尚未设置营业时间。请在排班中添加。",
4335
4383
  "noOperatorBusinessHours": "操作员尚未设置工作时间。请在排班中添加。",
4336
4384
  "openScheduler": "打开排班",
4337
- "free": "空闲"
4385
+ "free": "空闲",
4386
+ "searching": "正在查找空闲时段……",
4387
+ "searchFailed": "无法查找空闲时段。"
4338
4388
  },
4339
4389
  "moveConfirm": {
4340
4390
  "title": "确认移动",
@@ -1,4 +1,4 @@
1
- import { A as e, a as i, L as r, P as n, S as o, T as t, b as l, c as d, d as g, e as A, f as m, g as c, h as E, i as P, j as f, k as S, l as h, m as u, n as T, o as I, p as N, r as R, q as _, s as C, t as L, u as b } from "../../_chunks/anamnesis-summary-rows-DwjqZgR5.js";
1
+ import { A as e, a as i, L as r, P as n, S as o, T as t, b as l, c as d, d as g, e as A, f as m, g as c, h as E, i as P, j as f, k as S, l as h, m as u, n as T, o as I, p as N, r as R, q as _, s as C, t as L, u as b } from "../../_chunks/anamnesis-summary-rows-DMO3MWSt.js";
2
2
  export {
3
3
  e as Anamnesis,
4
4
  i as AnamnesisConfigEditor,
@@ -0,0 +1,145 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { CalendarEventStatus } from '../../components/calendar';
3
+ import { type RecurrenceFrequency } from './calendar.model';
4
+ import { type PatientNotesSeam } from './calendar.sheets';
5
+ import { type CalendarHistoryEntry, type CalendarPatient, type CalendarSignChannel } from './calendar.types';
6
+ export type CalendarDocumentKind = 'folder' | 'template' | 'empty' | 'identification' | 'webcam' | 'bill';
7
+ /** One appointment occurrence as the host reads it for the read-only details
8
+ * panel (P-C2). An absent member renders nothing: never a zero, never an
9
+ * empty-state claim. */
10
+ export interface CalendarAppointmentDetails {
11
+ /** The occurrence id the panel asked for, echoed back. */
12
+ eventId: string;
13
+ appointment: {
14
+ /** Local wall clock of THIS occurrence, 'YYYY-MM-DDTHH:mm:ss', no zone. */
15
+ startIso: string;
16
+ durationMin: number;
17
+ allDay: boolean;
18
+ isTelehealth: boolean;
19
+ /** Absent = no status recorded. */
20
+ status?: CalendarEventStatus;
21
+ name?: string;
22
+ /** Host-composed heading (the platform popover title). */
23
+ title: string;
24
+ colorHex?: string;
25
+ operatorId?: string;
26
+ chairId?: string;
27
+ branchLabel?: string;
28
+ bookedOnline: boolean;
29
+ /** Read side only. `requiresScope` is informational (the series rule
30
+ * line); the scope question lives in the editor. */
31
+ recurrence?: {
32
+ frequency: RecurrenceFrequency;
33
+ count?: number;
34
+ requiresScope: boolean;
35
+ };
36
+ };
37
+ /** Absent = no patient; `phones` carries every labelled number. */
38
+ patient?: CalendarPatient;
39
+ /** Absent = not permitted; an absent figure is gated on its own. */
40
+ money?: {
41
+ billableAmount?: number;
42
+ unpaidAmount?: number;
43
+ };
44
+ care?: {
45
+ /** Without `number` the section shows the plan name alone. */
46
+ plan?: {
47
+ id: string;
48
+ number?: string;
49
+ name: string;
50
+ };
51
+ lines: Array<{
52
+ entryId: string;
53
+ careId: string;
54
+ name: string;
55
+ code?: string;
56
+ elementsLabel?: string;
57
+ done: boolean;
58
+ billed: boolean;
59
+ phases: string[];
60
+ /** Absent = prices withheld for this viewer. */
61
+ priceCents?: number;
62
+ }>;
63
+ };
64
+ booking?: {
65
+ typedName?: string;
66
+ phone?: string;
67
+ email?: string;
68
+ note?: string;
69
+ bookedAtIso?: string;
70
+ paidOnlineAmount?: number;
71
+ };
72
+ signing?: {
73
+ required: number;
74
+ toComplete: number;
75
+ requestedVia?: CalendarSignChannel;
76
+ aesSetUp: boolean;
77
+ };
78
+ history: CalendarHistoryEntry[];
79
+ /** Host-owned; the kit never sees the session code. */
80
+ onJoinTelehealth?: () => void;
81
+ /** Host-composed; absent = not available. */
82
+ whatsappUrl?: string;
83
+ /** Host-owned bridge to the practice's WhatsApp snippets; absent = not
84
+ * offered. With `whatsappUrl` too, the one button calls this. */
85
+ onWhatsApp?: () => void;
86
+ /** Server-built link to the task page, same tab; absent = not offered. */
87
+ createTaskUrl?: string;
88
+ /** Host owns permissions and creation/navigation. Independent of appointment readOnly. */
89
+ documents?: {
90
+ kinds: readonly CalendarDocumentKind[];
91
+ onCreate: (kind: CalendarDocumentKind) => void;
92
+ };
93
+ }
94
+ export type CalendarAppointmentDetailsSnapshot = {
95
+ status: 'ready';
96
+ details: CalendarAppointmentDetails;
97
+ } | {
98
+ status: 'refused';
99
+ reason: string;
100
+ retryable?: boolean;
101
+ };
102
+ /** A rejected promise is a transient failure (error with Retry); 'refused'
103
+ * means not visible (the reason, with Retry only when retryable). */
104
+ export type CalendarAppointmentDetailsLoader = (eventId: string, options: {
105
+ signal: AbortSignal;
106
+ }) => Promise<CalendarAppointmentDetailsSnapshot>;
107
+ /** The host's zone-less wall clock as a local Date, or undefined when it is
108
+ * not a real 'YYYY-MM-DDTHH:mm:ss' reading. Ranges are checked rather than
109
+ * round-tripped, so a time inside a daylight-saving gap still parses. */
110
+ export declare function parseDetailsStartIso(startIso: string | undefined): Date | undefined;
111
+ export interface CalendarDetailsHydrationProps {
112
+ /** The occurrence to read; a new id aborts the previous read. */
113
+ eventId: string;
114
+ load: CalendarAppointmentDetailsLoader;
115
+ /** Mounted only with details whose eventId and startIso passed the checks. */
116
+ children: (details: CalendarAppointmentDetails) => ReactNode;
117
+ }
118
+ /** The details panel is not mounted until the host's read answers for this
119
+ * occurrence. A late answer for a replaced id or loader is ignored. */
120
+ export declare function CalendarDetailsHydration({ eventId, load, children, }: CalendarDetailsHydrationProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
121
+ export interface AppointmentDetailsPanelProps {
122
+ /** The occurrence as the host read it (P-C2). */
123
+ details: CalendarAppointmentDetails;
124
+ /** The row's patient id (N-C5); defaults to the read's patient. */
125
+ patientId?: string;
126
+ /** The host's notes seam; without it, no preview. */
127
+ notesSeam?: PatientNotesSeam;
128
+ /** Route to the host's Notes tool, optionally addressed to one note. */
129
+ onOpenNotes?: (patientId: string, noteId?: string) => void;
130
+ /** Withholds Edit, Move and Copy; Join, WhatsApp and Create task are the
131
+ * host's. */
132
+ readOnly?: boolean;
133
+ onEdit?: () => void;
134
+ /** Arm a Move placement: the next slot click places the appointment. */
135
+ onMove?: () => void;
136
+ onCopy?: (withTreatments: boolean) => void;
137
+ /** The user's map-link setting (platform `showPatientAddressMapLink`). */
138
+ mapsLink?: boolean;
139
+ locale?: string;
140
+ }
141
+ /** The read-only appointment details panel (P-C2, P-C3): identity, the
142
+ * sections, the notes preview, and a History sub-view in place of
143
+ * the body. It docks in the rail, is no dialog and asks no series scope. */
144
+ export declare function AppointmentDetailsPanel(props: AppointmentDetailsPanelProps): import("react/jsx-runtime").JSX.Element;
145
+ //# sourceMappingURL=calendar-appointment-details.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-appointment-details.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-appointment-details.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { CalendarAppointmentDetails } from './calendar-appointment-details';
2
+ interface SectionProps {
3
+ details: CalendarAppointmentDetails;
4
+ locale: string;
5
+ }
6
+ /** When, how long, who and where. Operator and chair names come from the
7
+ * calendar data, so an id the data does not know prints no row. */
8
+ export declare function DetailsAppointmentSection({ details, locale }: SectionProps): import("react/jsx-runtime").JSX.Element;
9
+ /** What the booking site recorded, shown whenever the host sends it, so
10
+ * the provenance survives triage onto a patient. */
11
+ export declare function DetailsBookingSection({ details, locale }: SectionProps): import("react/jsx-runtime").JSX.Element | null;
12
+ /** The stored patient totals; each figure is gated on its own. */
13
+ export declare function DetailsMoneySection({ details, locale }: SectionProps): import("react/jsx-runtime").JSX.Element | null;
14
+ /** Date of birth, every labelled phone, email and, with the display cog's
15
+ * map link on, the address or the plain fact that none is on file. */
16
+ export declare function DetailsContactSection({ details, locale, mapsLink, }: SectionProps & {
17
+ /** The user's map-link setting (platform `showPatientAddressMapLink`). */
18
+ mapsLink?: boolean;
19
+ }): import("react/jsx-runtime").JSX.Element | null;
20
+ /** The linked plan, by number when the host has one, and one line per
21
+ * treatment: code, elements, done and billed, the booked phases, and a
22
+ * price only when the host sends one (the editor's price gate). */
23
+ export declare function DetailsTreatmentsSection({ details, locale }: SectionProps): import("react/jsx-runtime").JSX.Element | null;
24
+ /** Required documents and forms: how many still need a signature, how
25
+ * the signature was requested and whether the patient has no advanced
26
+ * e-signature. Nothing when nothing is required. */
27
+ export declare function DetailsSigningSection({ details }: SectionProps): import("react/jsx-runtime").JSX.Element | null;
28
+ /** The series rule: its frequency and, for a series that ends by count,
29
+ * how many times it runs. The scope question lives in the editor. */
30
+ export declare function DetailsSeriesSection({ details }: SectionProps): import("react/jsx-runtime").JSX.Element | null;
31
+ export {};
32
+ //# sourceMappingURL=calendar-appointment-details.sections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-appointment-details.sections.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-appointment-details.sections.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAqBjF,UAAU,YAAY;IACpB,OAAO,EAAE,0BAA0B,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;CAChB;AAkED;oEACoE;AACpE,wBAAgB,yBAAyB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,2CAyC1E;AAED;qDACqD;AACrD,wBAAgB,qBAAqB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,kDAoCtE;AAED,kEAAkE;AAClE,wBAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,kDAsBpE;AAED;uEACuE;AACvE,wBAAgB,qBAAqB,CAAC,EACpC,OAAO,EACP,MAAM,EACN,QAAgB,GACjB,EAAE,YAAY,GAAG;IAChB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,kDAsDA;AAED;;oEAEoE;AACpE,wBAAgB,wBAAwB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,kDA6DzE;AAED;;qDAEqD;AACrD,wBAAgB,qBAAqB,CAAC,EAAE,OAAO,EAAE,EAAE,YAAY,kDAuC9D;AAED;sEACsE;AACtE,wBAAgB,oBAAoB,CAAC,EAAE,OAAO,EAAE,EAAE,YAAY,kDAmB7D"}
@@ -0,0 +1,59 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { CalendarEditorCapabilities, CalendarRow, EditorPrefill, RecurrenceFrequency } from './calendar.model';
3
+ import { type RecurringScope } from './calendar-workspace.model';
4
+ /** The host's recurring occurrence. Rows never carry `CalendarRow.series`
5
+ * for such a host: the scope question is asked from this snapshot. */
6
+ export interface CalendarEditorSeries {
7
+ /** The occurrence being edited, as a local Date on the host's wall clock. */
8
+ occurrence: Date;
9
+ /** Scopes the host can honour, in display order. Non-empty; the kit
10
+ * renders exactly this list and never adds a scope. */
11
+ scopes: readonly RecurringScope[];
12
+ /** Merged over snapshot.capabilities once a scope is chosen. */
13
+ capabilitiesByScope?: Partial<Record<RecurringScope, CalendarEditorCapabilities>>;
14
+ /** Offer the care-plan clean-up question in the delete dialog. */
15
+ offersCarePlanCleanup?: boolean;
16
+ /** Reserved for summary lines; the editor does not require it. */
17
+ summary?: {
18
+ frequency?: RecurrenceFrequency;
19
+ index?: number;
20
+ total?: number;
21
+ };
22
+ }
23
+ export type CalendarAppointmentEditorSnapshot = {
24
+ status: 'ready';
25
+ prefill: EditorPrefill & {
26
+ editEventId: string;
27
+ date: Date;
28
+ time: {
29
+ hours: number;
30
+ minutes: number;
31
+ };
32
+ durationMin: number;
33
+ };
34
+ capabilities?: CalendarEditorCapabilities;
35
+ series?: CalendarEditorSeries;
36
+ } | {
37
+ status: 'refused';
38
+ reason: string;
39
+ retryable?: boolean;
40
+ };
41
+ export type CalendarAppointmentEditorLoader = (eventId: string, options: {
42
+ signal: AbortSignal;
43
+ }) => Promise<CalendarAppointmentEditorSnapshot>;
44
+ type ReadySnapshot = Extract<CalendarAppointmentEditorSnapshot, {
45
+ status: 'ready';
46
+ }>;
47
+ /** The editor is not mounted until the host returns its canonical data.
48
+ * Mounting this boundary per open also reloads a previously closed editor. */
49
+ export declare function CalendarEditorHydration({ eventId, load, onCancel, children, }: {
50
+ eventId?: string;
51
+ load?: CalendarAppointmentEditorLoader;
52
+ /** Return to the host while loading or when the editor read fails. */
53
+ onCancel?: () => void;
54
+ children: (snapshot?: ReadySnapshot) => ReactNode;
55
+ }): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
56
+ /** Display-only projection. It never reaches journey.setRows. */
57
+ export declare function rowWithCanonicalEditor(row: CalendarRow, snapshot: ReadySnapshot, patientName: string): CalendarRow;
58
+ export {};
59
+ //# sourceMappingURL=calendar-editor-hydration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-editor-hydration.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-editor-hydration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIpE,OAAO,KAAK,EACV,0BAA0B,EAC1B,WAAW,EACX,aAAa,EACb,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AAEpC;sEACsE;AACtE,MAAM,WAAW,oBAAoB;IACnC,6EAA6E;IAC7E,UAAU,EAAE,IAAI,CAAC;IACjB;2DACuD;IACvD,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAClC,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,OAAO,CAC3B,MAAM,CAAC,cAAc,EAAE,0BAA0B,CAAC,CACnD,CAAC;IACF,kEAAkE;IAClE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,kEAAkE;IAClE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,mBAAmB,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/E;AAED,MAAM,MAAM,iCAAiC,GACzC;IACE,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,aAAa,GAAG;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,IAAI,CAAC;QACX,IAAI,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QACzC,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,YAAY,CAAC,EAAE,0BAA0B,CAAC;IAC1C,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B,GACD;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE/D,MAAM,MAAM,+BAA+B,GAAG,CAC5C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,KAC7B,OAAO,CAAC,iCAAiC,CAAC,CAAC;AAEhD,KAAK,aAAa,GAAG,OAAO,CAC1B,iCAAiC,EACjC;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,CACpB,CAAC;AA8BF;8EAC8E;AAC9E,wBAAgB,uBAAuB,CAAC,EACtC,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,+BAA+B,CAAC;IACvC,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,aAAa,KAAK,SAAS,CAAC;CACnD,2UAuFA;AAED,iEAAiE;AACjE,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,MAAM,GAClB,WAAW,CAwBb"}
@@ -0,0 +1,14 @@
1
+ import { type ReactNode } from 'react';
2
+ /** Keep the editor draft mounted while visiting Notes, and vice versa. */
3
+ export declare function CalendarNotesDock({ editor, notes, active, request, }: {
4
+ editor: ReactNode;
5
+ notes: ReactNode;
6
+ active: boolean;
7
+ request: number;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ /** A canonical details read may resolve a patient before the grid's names do. */
10
+ export declare function CalendarPatientContext({ patientId, onChange, }: {
11
+ patientId?: string;
12
+ onChange: (patientId?: string) => void;
13
+ }): null;
14
+ //# sourceMappingURL=calendar-notes-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-notes-tool.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-notes-tool.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,KAAK,EACL,MAAM,EACN,OAAO,GACR,EAAE;IACD,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,2CA2BA;AAED,iFAAiF;AACjF,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,QAAQ,GACT,EAAE;IACD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,QAKA"}
@@ -0,0 +1,11 @@
1
+ interface PatientPickerProps {
2
+ value: string;
3
+ onValueChange: (value: string) => void;
4
+ selectedLabel?: string;
5
+ size?: 'sm' | 'md';
6
+ disabled?: boolean;
7
+ }
8
+ /** One id-valued patient control for the editor and waiting surfaces. */
9
+ export declare function CalendarPatientPicker(props: PatientPickerProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=calendar-patient-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-patient-picker.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-patient-picker.tsx"],"names":[],"mappings":"AAOA,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,yEAAyE;AACzE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,2CA6B9D"}
@@ -0,0 +1,18 @@
1
+ import { type RecurringScope } from './calendar-workspace.model';
2
+ export interface CalendarSeriesScopeChooserProps {
3
+ /** The host's scopes in display order, rendered exactly as given. */
4
+ scopes: readonly RecurringScope[];
5
+ /** The occurrence being edited, named in the body for `locale`. */
6
+ occurrence: Date;
7
+ locale: string;
8
+ /** Starts checked; defaults to, and falls back on, `scopes[0]`. */
9
+ defaultScope?: RecurringScope;
10
+ /** Warn for a moved start; editors suppress this until date or time changes. */
11
+ warnOnWholeSeries?: boolean;
12
+ onContinue: (scope: RecurringScope) => void;
13
+ onCancel: () => void;
14
+ }
15
+ /** Asks which appointments of a series an edit applies to. The host's
16
+ * list is the only source of scopes: the kit never adds one. */
17
+ export declare function CalendarSeriesScopeChooser(props: CalendarSeriesScopeChooserProps): import("react/jsx-runtime").JSX.Element;
18
+ //# sourceMappingURL=calendar-series-scope-chooser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-series-scope-chooser.d.ts","sourceRoot":"","sources":["../../../src/patterns/calendar/calendar-series-scope-chooser.tsx"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,+BAA+B;IAC9C,qEAAqE;IACrE,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAClC,mEAAmE;IACnE,UAAU,EAAE,IAAI,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5C,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;gEACgE;AAChE,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,+BAA+B,2CAoEvC"}