@alfadocs/ui-kit 1.47.1 → 1.48.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 (440) hide show
  1. package/dist/_chunks/{actions-cell-renderer-B5m9lwgC.js → actions-cell-renderer-DMittsR3.js} +4 -4
  2. package/dist/_chunks/{address-autocomplete-Bq-1n1UX.js → address-autocomplete-Dp5uMvKP.js} +61 -60
  3. package/dist/_chunks/{address-fields-jFfjxOQR.js → address-fields-QfC-N3pw.js} +5 -5
  4. package/dist/_chunks/{agenda-card-DyQtHb9z.js → agenda-card-C4h0xMGi.js} +2 -2
  5. package/dist/_chunks/{agenda-tray-CBaJASb5.js → agenda-tray-DNZYW2xt.js} +4 -4
  6. package/dist/_chunks/{ai-credits-notice-xszqOZTC.js → ai-credits-notice-C-kz_RrY.js} +3 -3
  7. package/dist/_chunks/{ai-permission-notice-D7I2U-cz.js → ai-permission-notice-BRZeS3mT.js} +3 -3
  8. package/dist/_chunks/{ai-prompt-input-DXknpQCB.js → ai-prompt-input-CxvnXsAs.js} +82 -82
  9. package/dist/_chunks/{alia-sidebar-CUqaJNPQ.js → alia-sidebar-Crn8OGPF.js} +7 -7
  10. package/dist/_chunks/{anamnesis-card-xtEhyojD.js → anamnesis-card-D8Si-2GV.js} +3 -3
  11. package/dist/_chunks/{anamnesis-summary-card-CclBbiXg.js → anamnesis-summary-card-DPyScUMM.js} +2 -2
  12. package/dist/_chunks/{anamnesis-summary-rows-DI-UX5r6.js → anamnesis-summary-rows-CZirLRuv.js} +12 -12
  13. package/dist/_chunks/{antenatal-schedule-timeline-CXk_tzWG.js → antenatal-schedule-timeline-8fm3vPSV.js} +2 -2
  14. package/dist/_chunks/{appointment-card-DluZy8Iv.js → appointment-card-CvGU0QP6.js} +5 -5
  15. package/dist/_chunks/{appointment-peek-BsfCpiJs.js → appointment-peek--dmWznLZ.js} +5 -5
  16. package/dist/_chunks/{appointment-timeline-Cs5f9viN.js → appointment-timeline-y9uYZMUd.js} +6 -6
  17. package/dist/_chunks/{appointment-tray-CLrGGnKR.js → appointment-tray-BTecNeSb.js} +4 -4
  18. package/dist/_chunks/appointment-workflow-status-CS8ufF1f.js +66 -0
  19. package/dist/_chunks/{audio-recorder-B7dT-Y3v.js → audio-recorder-DZBtAvLH.js} +4 -4
  20. package/dist/_chunks/{autocomplete-MpBhz-fG.js → autocomplete-DSasZUf6.js} +65 -64
  21. package/dist/_chunks/{badge-BudgzTe_.js → badge-BAkd6_Pj.js} +24 -17
  22. package/dist/_chunks/{balance-badge-cell-YGrYdrvR.js → balance-badge-cell-CA0YNJMR.js} +6 -6
  23. package/dist/_chunks/{bishop-score-Cu70iv9C.js → bishop-score-BMLRvXYF.js} +4 -4
  24. package/dist/_chunks/{bmi-calculator-C9N19aLX.js → bmi-calculator-DUhRyyrA.js} +3 -3
  25. package/dist/_chunks/{booking-C4MwImkS.js → booking-BQYFDcrz.js} +10 -10
  26. package/dist/_chunks/{breadcrumb-agut0PwN.js → breadcrumb-D3boYzD4.js} +50 -49
  27. package/dist/_chunks/{button-CaUe1uyd.js → button-18oBsI3n.js} +54 -50
  28. package/dist/_chunks/button-group-BSDqso_C.js +408 -0
  29. package/dist/_chunks/{calendar-OzSeTb4V.js → calendar-DjoJ9ovF.js} +11 -17
  30. package/dist/_chunks/{calendar-event-card-B6N5h1dO.js → calendar-event-card-BUbKBPv_.js} +55 -73
  31. package/dist/_chunks/calendar-workspace-D8zX9JWm.js +10423 -0
  32. package/dist/_chunks/{care-plan-card-BOv0NRle.js → care-plan-card-ciBaaguw.js} +4 -4
  33. package/dist/_chunks/{care-plan-entry-card-d-rZD4li.js → care-plan-entry-card-D7A0whiZ.js} +5 -5
  34. package/dist/_chunks/{care-plan-header-CEmBXn6-.js → care-plan-header-DKV1gLqv.js} +4 -4
  35. package/dist/_chunks/{carousel.agent-z1yLBpyC.js → carousel.agent-DqDGR2yH.js} +2 -2
  36. package/dist/_chunks/{chart-D8ucl8hH.js → chart-VjuXDXOZ.js} +3 -3
  37. package/dist/_chunks/{chat-input-Cj7ZYQr5.js → chat-input-BVho_SqP.js} +2 -2
  38. package/dist/_chunks/{chat-message-BMVxiUIX.js → chat-message-Co_NRGM4.js} +3 -3
  39. package/dist/_chunks/{smartphone-DaPcFw-X.js → circle-dashed-CUj6o2cA.js} +3 -14
  40. package/dist/_chunks/{city-input-DaQc-Hbj.js → city-input-BGYc4lRV.js} +2 -2
  41. package/dist/_chunks/{clinical-note-card-DdsGYMmI.js → clinical-note-card-DYDQ3q2x.js} +89 -74
  42. package/dist/_chunks/{code-block-BB-viuTn.js → code-block-C_eNHWaa.js} +2 -2
  43. package/dist/_chunks/combobox-B_rLwmSv.js +578 -0
  44. package/dist/_chunks/{command-palette-DQl_SNEv.js → command-palette-DhgGo7GJ.js} +82 -80
  45. package/dist/_chunks/{connection-status-BmA9T0UO.js → connection-status-Cfux3TvH.js} +4 -4
  46. package/dist/_chunks/{contact-profile-card-C0WpwpVV.js → contact-profile-card-Dj4NgBL-.js} +3 -3
  47. package/dist/_chunks/control-room-rail-DAO0qfOI.js +379 -0
  48. package/dist/_chunks/{copy-field-B8XRVmQv.js → copy-field-Cm4y5Bff.js} +2 -2
  49. package/dist/_chunks/{country-select-CfDNFG5c.js → country-select-C5jZjO8O.js} +2 -2
  50. package/dist/_chunks/{cycle-calculator-BH2StWoT.js → cycle-calculator-B9lBRNiZ.js} +3 -3
  51. package/dist/_chunks/{dashboard-grid-BcXWL5S9.js → dashboard-grid-uX7x1ePj.js} +2 -2
  52. package/dist/_chunks/{data-table-DnKOmEVw.js → data-table-DWOSxlsy.js} +9 -9
  53. package/dist/_chunks/{data-table-tabs-B9SXA5VP.js → data-table-tabs-CzYYKp2_.js} +3 -3
  54. package/dist/_chunks/{dependent-selector-BHDP0nBB.js → dependent-selector-BR_8D2Qu.js} +2 -2
  55. package/dist/_chunks/{description-list-BsJ_6CQE.js → description-list-1A2DEbE6.js} +2 -2
  56. package/dist/_chunks/{document-preview-COV0BC6n.js → document-preview-Od2Hz4z5.js} +13 -12
  57. package/dist/_chunks/{document-scanner-B1abl-A4.js → document-scanner-p0aGlzCy.js} +3 -3
  58. package/dist/_chunks/{dropdown-menu-DU-Hrf33.js → dropdown-menu-C8PaW3lR.js} +110 -96
  59. package/dist/_chunks/{due-date-calculator-Buh_mVHq.js → due-date-calculator-BVqJaxzd.js} +4 -4
  60. package/dist/_chunks/{editable-currency-cell-renderer-OUkUv7U4.js → editable-currency-cell-renderer-D_G2Ap61.js} +4 -4
  61. package/dist/_chunks/{editable-description-ADMVFPUz.js → editable-description-B4NVdjvd.js} +3 -3
  62. package/dist/_chunks/{editor-overlay-DwNKaI22.js → editor-overlay-BDiBvQmL.js} +2 -2
  63. package/dist/_chunks/{empty-state-BUN_UAWf.js → empty-state-DTBZ1ENT.js} +2 -2
  64. package/dist/_chunks/{entity-card-I-Gio5wo.js → entity-card-D1Yrh9wf.js} +2 -1
  65. package/dist/_chunks/{entity-summary-DXejuQ8i.js → entity-summary-Ckz_U00H.js} +3 -3
  66. package/dist/_chunks/{error-boundary-BNT2iQ1w.js → error-boundary-BxTqEXqj.js} +2 -2
  67. package/dist/_chunks/euro-Dsuz4ixO.js +22 -0
  68. package/dist/_chunks/{face-scheme-mIhwrQXt.js → face-scheme-fku-RShg.js} +71 -71
  69. package/dist/_chunks/{fetal-weight-wx4ycKc6.js → fetal-weight-B69yOS9W.js} +3 -3
  70. package/dist/_chunks/{field-array-BW9KeeXG.js → field-array-lIXrFWS0.js} +3 -3
  71. package/dist/_chunks/file-BuG1VMAy.js +21 -0
  72. package/dist/_chunks/{file-Cwe9VC1A.js → file-image-cDgE-BTy.js} +2 -19
  73. package/dist/_chunks/{file-manager-DOcJGIx2.js → file-manager-CqgxLqoA.js} +15 -14
  74. package/dist/_chunks/{file-upload-BDpb08GM.js → file-upload-B242a_Y1.js} +53 -52
  75. package/dist/_chunks/{finished-terminal-DJd7Z_po.js → finished-terminal-B2oqXO0Y.js} +2 -2
  76. package/dist/_chunks/fiscal-code-input-BEF8eKIG.js +572 -0
  77. package/dist/_chunks/{freemium-paywall-BaW5ODc9.js → freemium-paywall-B6JITu4l.js} +2 -2
  78. package/dist/_chunks/{gestational-age-calculator-CwbecTul.js → gestational-age-calculator-DsGN6_HS.js} +5 -5
  79. package/dist/_chunks/handled-rejection-6gqCf5vt.js +13 -0
  80. package/dist/_chunks/{hcg-doubling-BcXriXJe.js → hcg-doubling-D2SH-e7t.js} +3 -3
  81. package/dist/_chunks/{header-3o9o9v_T.js → header-CCjp5GvE.js} +2 -2
  82. package/dist/_chunks/{header-settings-BEfx_-TF.js → header-settings-ZXa6hXuu.js} +5 -5
  83. package/dist/_chunks/{help-me-write-templates-DHIwa4xR.js → help-me-write-templates-DQtT1qs_.js} +5 -5
  84. package/dist/_chunks/history-CK2JaU2g.js +16 -0
  85. package/dist/_chunks/{hover-card-nUae8NPJ.js → hover-card-BplP5SzQ.js} +2 -2
  86. package/dist/_chunks/{icon-button-CehAeZoP.js → icon-button-CY7GU_Se.js} +2 -2
  87. package/dist/_chunks/icon-button-group-B_426QN_.js +431 -0
  88. package/dist/_chunks/{icon-picker-DMEelg9v.js → icon-picker-ZLebyB0U.js} +3 -3
  89. package/dist/_chunks/{image-cropper-BjPjT7wU.js → image-cropper-_HiNN79d.js} +2 -2
  90. package/dist/_chunks/{info-tip-iP2Pm9dh.js → info-tip-laBxZhKu.js} +2 -2
  91. package/dist/_chunks/{insert-result-DPnOBD85.js → insert-result-CSuPQyKL.js} +2 -2
  92. package/dist/_chunks/{key-value-pair-DaQI_LZB.js → key-value-pair-Dcdl3Gni.js} +2 -2
  93. package/dist/_chunks/{kit-extensions-DuoFF1R3.js → kit-extensions-BTJSnM_H.js} +6 -6
  94. package/dist/_chunks/{link-cell-renderer-s3oHzOwi.js → link-cell-renderer-Tswqf6BT.js} +7 -7
  95. package/dist/_chunks/{locale-picker-CH3kfrIG.js → locale-picker-DGkQmhV9.js} +170 -180
  96. package/dist/_chunks/{map-view-CHw4RL6w.js → map-view-Bb7ClKSF.js} +2 -2
  97. package/dist/_chunks/{marketplace-app-shell-PB89Dkk_.js → marketplace-app-shell-Dehuxbi-.js} +6 -6
  98. package/dist/_chunks/menu-row-BAr8bx1I.js +95 -0
  99. package/dist/_chunks/{message-card-V3sFPiQI.js → message-card-DKOtnBHy.js} +3 -3
  100. package/dist/_chunks/{message-tray-CrRIHfiQ.js → message-tray-COMEtmyr.js} +4 -4
  101. package/dist/_chunks/{multi-select-CtPd7g4x.js → multi-select-N4Smh-gj.js} +114 -113
  102. package/dist/_chunks/{muscle-scheme-UVz_x4iE.js → muscle-scheme-Co0NIgbU.js} +3 -3
  103. package/dist/_chunks/{note-attachment-CwDir3kK.js → note-attachment-CGjNTrAC.js} +2 -2
  104. package/dist/_chunks/{note-timeline-Dn_XTo1s.js → note-timeline-CVnKL0p6.js} +2 -2
  105. package/dist/_chunks/notes-panel-BiOxZL_0.js +1111 -0
  106. package/dist/_chunks/{notification-card-B2gLO6dK.js → notification-card-DDzBCi8l.js} +3 -3
  107. package/dist/_chunks/{notification-tray-BOEKegVV.js → notification-tray-PnH2PBlZ.js} +4 -4
  108. package/dist/_chunks/{operator-hero-XIdwDmN2.js → operator-hero-5061fkY5.js} +3 -3
  109. package/dist/_chunks/{optical-prescription-LGgmtcST.js → optical-prescription-DUufWXfZ.js} +3 -3
  110. package/dist/_chunks/{pagination-EkD5SiCK.js → pagination-B0N2qGy_.js} +83 -82
  111. package/dist/_chunks/panel-subview-CzHutkA8.js +217 -0
  112. package/dist/_chunks/{patient-details-yrgkSeEY.js → patient-details-C23Hdm8v.js} +3 -3
  113. package/dist/_chunks/{patient-field-row-DCMkFGqI.js → patient-field-row-DElFbpKc.js} +12 -12
  114. package/dist/_chunks/{patient-search-5QcmQKJD.js → patient-search-DgXdGkhK.js} +4 -4
  115. package/dist/_chunks/{patient-summary-card-CmEFflGS.js → patient-summary-card-C36L3h7h.js} +7 -7
  116. package/dist/_chunks/{payment-automation-upsell-BKmBXU4i.js → payment-automation-upsell-ugi4np1l.js} +3 -3
  117. package/dist/_chunks/{payment-request-card-Cer6XXCn.js → payment-request-card-DMJB57Tv.js} +5 -5
  118. package/dist/_chunks/{periodontal-chart-DJoZS_o7.js → periodontal-chart-DbGzKDj7.js} +2 -2
  119. package/dist/_chunks/{periodontal-chart-card-Nd1ZoYWb.js → periodontal-chart-card-DvHyP47v.js} +3 -3
  120. package/dist/_chunks/{periodontal-diagnosis-C7pfPOct.js → periodontal-diagnosis-B8WqI0eU.js} +2 -2
  121. package/dist/_chunks/{periodontal-risk-chart-B2tNFa15.js → periodontal-risk-chart-DsFRFFSz.js} +2 -2
  122. package/dist/_chunks/{phone-input-IWrGOCwm.js → phone-input-sQj-zi59.js} +85 -86
  123. package/dist/_chunks/{popover-DO-pssF3.js → popover-Dvb40vPH.js} +2 -2
  124. package/dist/_chunks/{practice-profile-hero-DxoLlQr5.js → practice-profile-hero-CPy5h2yI.js} +2 -2
  125. package/dist/_chunks/{practice-results-D11Zpt27.js → practice-results-t2BHht91.js} +7 -7
  126. package/dist/_chunks/{pregnancy-dating-DcyV9ZRD.js → pregnancy-dating-lfjjZVZH.js} +5 -5
  127. package/dist/_chunks/{pregnancy-weight-gain-Bfq4Kwt5.js → pregnancy-weight-gain-WpNt-S0q.js} +3 -3
  128. package/dist/_chunks/{privacy-lock-CbFCAMM3.js → privacy-lock-D6gq0GDg.js} +3 -3
  129. package/dist/_chunks/privacy-mask-BC5lw2zB.js +81 -0
  130. package/dist/_chunks/{product-hub-panel-w40-_-1s.js → product-hub-panel-CKeSCSeE.js} +3 -3
  131. package/dist/_chunks/{province-select-BaUnkg4S.js → province-select-BiszMRRY.js} +2 -2
  132. package/dist/_chunks/{public-header.agent-D-EBVskf.js → public-header.agent-B9wDmUeB.js} +3 -3
  133. package/dist/_chunks/{radiograph-panel.agent-LrILY2lN.js → radiograph-panel.agent-TmyIvTOa.js} +6 -6
  134. package/dist/_chunks/{reviews-panel-2GVuxGeT.js → reviews-panel-BdwFp_0c.js} +4 -4
  135. package/dist/_chunks/{rich-text-editor-BwDV2XkZ.js → rich-text-editor-y6ML0KeV.js} +12 -11
  136. package/dist/_chunks/{search-bar-CCmViqaa.js → search-bar-6bHatpYJ.js} +69 -67
  137. package/dist/_chunks/{select-CLSUnKjF.js → select-upNAltly.js} +89 -88
  138. package/dist/_chunks/{session-countdown-BqppPrw6.js → session-countdown-ACJyTXH2.js} +2 -2
  139. package/dist/_chunks/{sheet-C8WIDFS8.js → sheet-D0Lh0KR2.js} +2 -2
  140. package/dist/_chunks/{sign-in-with-alfadocs-button-DWwBJtyE.js → sign-in-with-alfadocs-button-CDyJAIzW.js} +2 -2
  141. package/dist/_chunks/{signature-request-D_j2aQu1.js → signature-request-15D363w5.js} +6 -6
  142. package/dist/_chunks/{signature-status-chip-D4NsrdeI.js → signature-status-chip-Dz6sS2oA.js} +2 -2
  143. package/dist/_chunks/{slot-grid-B3eOPkKD.js → slot-grid-4fWH3Euk.js} +4 -4
  144. package/dist/_chunks/smartphone-C0rFF2if.js +15 -0
  145. package/dist/_chunks/{streaming-text-CE1u_oGa.js → streaming-text-eRiizArc.js} +2 -2
  146. package/dist/_chunks/{tab-bar-Cw9UK18Z.js → tab-bar-BHFf6knq.js} +9 -9
  147. package/dist/_chunks/{tabs-BnRaLT0y.js → tabs-CFsuMQ5H.js} +82 -81
  148. package/dist/_chunks/{tag-Ci3xJPcH.js → tag-B65tLWvD.js} +24 -21
  149. package/dist/_chunks/{task-card-qTKD1fIT.js → task-card-CTTQfPS6.js} +72 -55
  150. package/dist/_chunks/task-editor-DlvTwAfv.js +1243 -0
  151. package/dist/_chunks/{task-tray-DIwjAIes.js → task-tray-JA-qp_pB.js} +4 -4
  152. package/dist/_chunks/tasks-panel-C_dVDQKJ.js +1243 -0
  153. package/dist/_chunks/{theme-toggle-BP0XRGMM.js → theme-toggle-LUBxlNDm.js} +4 -4
  154. package/dist/_chunks/{toast-ZZfhA5u0.js → toast-CT8hjr9r.js} +2 -2
  155. package/dist/_chunks/{token-insert-menu-A9B5AJw6.js → token-insert-menu-klwbxVKh.js} +3 -3
  156. package/dist/_chunks/{tool-rail-CCFqDfAn.js → tool-rail-DEeX4PdN.js} +144 -137
  157. package/dist/_chunks/{tooth-scheme-DPAq0vQK.js → tooth-scheme-BkjhkI8g.js} +4 -4
  158. package/dist/_chunks/{treatment-receipt-DU0OewqH.js → treatment-receipt-C-gWZ6uv.js} +3 -3
  159. package/dist/_chunks/{unit-converter-C-LpGzrN.js → unit-converter-Dp_KDxE6.js} +3 -3
  160. package/dist/_chunks/use-appointment-details-read-D2FH-cHF.js +2045 -0
  161. package/dist/_chunks/use-list-reflow-C7O4Uqnl.js +133 -0
  162. package/dist/_chunks/use-priority-overflow-Cdmb5EiR.js +108 -0
  163. package/dist/_chunks/{variables-menu-vXUaSBj4.js → variables-menu-aJLKJ_cu.js} +127 -136
  164. package/dist/_chunks/{warning-stack-C0glSB7p.js → warning-stack-CEgYkI1z.js} +3 -3
  165. package/dist/_chunks/{widget-picker-B1sj6uyf.js → widget-picker-CilQvcNL.js} +2 -2
  166. package/dist/_chunks/{workflow-map-DhR_h5yw.js → workflow-map-qGkQTNvS.js} +30 -29
  167. package/dist/_chunks/{workflow-status-CuJAOuKL.js → workflow-status-ClHfz4Kr.js} +209 -167
  168. package/dist/agent-catalog.json +371 -26
  169. package/dist/agent-i18n/en.json +41 -9
  170. package/dist/components/_shared/appointment-format.d.ts +52 -0
  171. package/dist/{patterns/calendar/calendar-editor-fields.d.ts → components/_shared/compact-editor-fields.d.ts} +6 -5
  172. package/dist/components/_shared/handled-rejection.d.ts +2 -0
  173. package/dist/components/_shared/menu-row.d.ts +17 -0
  174. package/dist/components/_shared/patient-identity.d.ts +7 -0
  175. package/dist/components/_shared/patient-picker.d.ts +24 -0
  176. package/dist/components/_shared/privacy-mask.d.ts +29 -0
  177. package/dist/components/address-autocomplete/index.js +1 -1
  178. package/dist/components/address-fields/index.js +1 -1
  179. package/dist/components/agenda-card/index.js +1 -1
  180. package/dist/components/agenda-tray/index.js +1 -1
  181. package/dist/components/ai-credits-notice/index.js +1 -1
  182. package/dist/components/ai-permission-notice/index.js +1 -1
  183. package/dist/components/ai-prompt-input/index.js +1 -1
  184. package/dist/components/anamnesis-card/index.js +1 -1
  185. package/dist/components/anamnesis-summary-card/index.js +1 -1
  186. package/dist/components/appointment-card/index.js +2 -2
  187. package/dist/components/appointment-details-panel/appointment-details-panel.agent.d.ts +4 -0
  188. package/dist/components/appointment-details-panel/appointment-details-panel.d.ts +134 -0
  189. package/dist/components/appointment-details-panel/appointment-details-panel.focus.d.ts +7 -0
  190. package/dist/components/appointment-details-panel/appointment-details-panel.history.d.ts +12 -0
  191. package/dist/components/appointment-details-panel/appointment-details-panel.identity.d.ts +41 -0
  192. package/dist/{patterns/calendar/calendar-info-hover.d.ts → components/appointment-details-panel/appointment-details-panel.info-hover.d.ts} +1 -1
  193. package/dist/components/appointment-details-panel/appointment-details-panel.sections.d.ts +51 -0
  194. package/dist/components/appointment-details-panel/appointment-details-panel.types.d.ts +326 -0
  195. package/dist/components/appointment-details-panel/index.d.ts +8 -0
  196. package/dist/components/appointment-details-panel/index.js +8 -0
  197. package/dist/components/appointment-details-panel/use-appointment-details-read.d.ts +32 -0
  198. package/dist/components/appointment-peek/index.js +1 -1
  199. package/dist/components/appointment-timeline/index.js +1 -1
  200. package/dist/components/audio-recorder/index.js +1 -1
  201. package/dist/components/autocomplete/index.js +1 -1
  202. package/dist/components/badge/index.js +1 -1
  203. package/dist/components/bishop-score/index.js +1 -1
  204. package/dist/components/bmi-calculator/index.js +1 -1
  205. package/dist/components/booking/index.js +1 -1
  206. package/dist/components/breadcrumb/index.js +1 -1
  207. package/dist/components/button/button.d.ts +2 -1
  208. package/dist/components/button/index.js +2 -2
  209. package/dist/components/button-group/button-group.d.ts +19 -2
  210. package/dist/components/button-group/index.js +1 -1
  211. package/dist/components/calendar/calendar.d.ts +5 -1
  212. package/dist/components/calendar/index.js +1 -1
  213. package/dist/components/calendar-event-card/index.js +1 -1
  214. package/dist/components/care-plan-card/index.js +1 -1
  215. package/dist/components/care-plan-entry-card/index.js +1 -1
  216. package/dist/components/care-plan-header/index.js +1 -1
  217. package/dist/components/carousel/index.js +1 -1
  218. package/dist/components/chart/index.js +1 -1
  219. package/dist/components/chat-input/index.js +1 -1
  220. package/dist/components/chat-message/index.js +1 -1
  221. package/dist/components/city-input/index.js +1 -1
  222. package/dist/components/clinical-note-card/clinical-note-card.d.ts +13 -5
  223. package/dist/components/clinical-note-card/index.js +1 -1
  224. package/dist/components/combobox/combobox.d.ts +9 -4
  225. package/dist/components/combobox/index.js +1 -1
  226. package/dist/components/command-palette/index.js +1 -1
  227. package/dist/components/connection-status/index.js +1 -1
  228. package/dist/components/contact-profile-card/index.js +1 -1
  229. package/dist/components/control-room-rail/control-room-rail.d.ts +14 -3
  230. package/dist/components/control-room-rail/index.js +1 -1
  231. package/dist/components/copy-field/index.js +1 -1
  232. package/dist/components/country-select/index.js +1 -1
  233. package/dist/components/cycle-calculator/index.js +1 -1
  234. package/dist/components/dashboard-grid/index.js +1 -1
  235. package/dist/components/data-table/index.js +4 -4
  236. package/dist/components/data-table-tabs/index.js +1 -1
  237. package/dist/components/dependent-selector/index.js +1 -1
  238. package/dist/components/description-list/index.js +1 -1
  239. package/dist/components/document-preview/index.js +1 -1
  240. package/dist/components/document-scanner/index.js +1 -1
  241. package/dist/components/dropdown-menu/index.js +1 -1
  242. package/dist/components/due-date-calculator/index.js +2 -2
  243. package/dist/components/editable-description/index.js +1 -1
  244. package/dist/components/editor-overlay/index.js +1 -1
  245. package/dist/components/empty-state/index.js +1 -1
  246. package/dist/components/entity-summary/index.js +1 -1
  247. package/dist/components/error-boundary/index.js +1 -1
  248. package/dist/components/face-scheme/index.js +1 -1
  249. package/dist/components/fetal-weight/index.js +1 -1
  250. package/dist/components/field-array/index.js +1 -1
  251. package/dist/components/file-manager/index.js +1 -1
  252. package/dist/components/file-upload/index.js +1 -1
  253. package/dist/components/finished-terminal/index.js +1 -1
  254. package/dist/components/fiscal-code-input/fiscal-code-input.d.ts +7 -0
  255. package/dist/components/fiscal-code-input/index.d.ts +1 -1
  256. package/dist/components/fiscal-code-input/index.js +8 -7
  257. package/dist/components/fiscal-code-input/is-valid-codice-fiscale.d.ts +19 -4
  258. package/dist/components/freemium-paywall/index.js +1 -1
  259. package/dist/components/gestational-age-calculator/index.js +1 -1
  260. package/dist/components/hcg-doubling/index.js +1 -1
  261. package/dist/components/header/index.js +1 -1
  262. package/dist/components/header-settings/index.js +1 -1
  263. package/dist/components/hover-card/index.js +1 -1
  264. package/dist/components/icon-button/index.js +1 -1
  265. package/dist/components/icon-button-group/index.js +1 -1
  266. package/dist/components/icon-picker/index.js +1 -1
  267. package/dist/components/image-cropper/index.js +1 -1
  268. package/dist/components/index.d.ts +2 -0
  269. package/dist/components/info-tip/index.js +1 -1
  270. package/dist/components/key-value-pair/index.js +1 -1
  271. package/dist/components/locale-picker/index.js +1 -1
  272. package/dist/components/map-view/index.js +1 -1
  273. package/dist/components/message-card/index.js +1 -1
  274. package/dist/components/message-tray/index.js +1 -1
  275. package/dist/components/multi-select/index.js +1 -1
  276. package/dist/components/muscle-scheme/index.js +1 -1
  277. package/dist/components/note-timeline/index.js +1 -1
  278. package/dist/components/notes-panel/index.d.ts +1 -1
  279. package/dist/components/notes-panel/index.js +1 -1
  280. package/dist/components/notes-panel/notes-panel.d.ts +102 -26
  281. package/dist/components/notification-card/index.js +1 -1
  282. package/dist/components/notification-tray/index.js +1 -1
  283. package/dist/components/operator-hero/index.js +1 -1
  284. package/dist/components/optical-prescription/index.js +1 -1
  285. package/dist/components/pagination/index.js +1 -1
  286. package/dist/components/panel-subview/index.js +1 -1
  287. package/dist/components/patient-details/index.js +1 -1
  288. package/dist/components/patient-search/index.js +1 -1
  289. package/dist/components/patient-summary-card/index.js +1 -1
  290. package/dist/components/patient-table/index.js +1 -1
  291. package/dist/components/payment-card/index.js +1 -1
  292. package/dist/components/periodontal-chart/index.js +1 -1
  293. package/dist/components/periodontal-chart-card/index.js +1 -1
  294. package/dist/components/periodontal-diagnosis/index.js +1 -1
  295. package/dist/components/periodontal-risk-chart/index.js +1 -1
  296. package/dist/components/phone-input/index.js +1 -1
  297. package/dist/components/popover/index.js +1 -1
  298. package/dist/components/practice-profile-hero/index.js +1 -1
  299. package/dist/components/practice-results/index.js +1 -1
  300. package/dist/components/pregnancy-dating/index.js +1 -1
  301. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  302. package/dist/components/privacy-lock/index.js +1 -1
  303. package/dist/components/product-hub-tray/index.js +1 -1
  304. package/dist/components/province-select/index.js +1 -1
  305. package/dist/components/public-header/index.js +1 -1
  306. package/dist/components/radiograph-panel/index.js +1 -1
  307. package/dist/components/reviews-panel/index.js +1 -1
  308. package/dist/components/rich-text-editor/index.js +2 -2
  309. package/dist/components/search-bar/index.js +1 -1
  310. package/dist/components/select/index.js +1 -1
  311. package/dist/components/session-countdown/index.js +1 -1
  312. package/dist/components/sheet/index.js +1 -1
  313. package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
  314. package/dist/components/signature-field/signature-field.d.ts +1 -1
  315. package/dist/components/signature-status-chip/index.js +1 -1
  316. package/dist/components/skeleton-scheme/index.js +17 -17
  317. package/dist/components/slot-grid/index.js +1 -1
  318. package/dist/components/streaming-text/index.js +1 -1
  319. package/dist/components/tab-bar/index.js +1 -1
  320. package/dist/components/tabs/index.js +1 -1
  321. package/dist/components/tag/index.js +1 -1
  322. package/dist/components/task-card/index.js +1 -1
  323. package/dist/components/task-card/task-card.d.ts +6 -0
  324. package/dist/components/task-editor/index.d.ts +4 -0
  325. package/dist/components/task-editor/index.js +6 -0
  326. package/dist/components/task-editor/task-editor.agent.d.ts +4 -0
  327. package/dist/components/task-editor/task-editor.d.ts +240 -0
  328. package/dist/components/task-editor/use-task-editor-form.d.ts +101 -0
  329. package/dist/components/task-tray/index.js +1 -1
  330. package/dist/components/tasks-panel/index.d.ts +1 -1
  331. package/dist/components/tasks-panel/index.js +1 -1
  332. package/dist/components/tasks-panel/tasks-panel.d.ts +84 -12
  333. package/dist/components/theme-toggle/index.js +1 -1
  334. package/dist/components/toast/index.js +1 -1
  335. package/dist/components/token-insert-menu/index.js +1 -1
  336. package/dist/components/tool-rail/index.js +1 -1
  337. package/dist/components/tooth-scheme/index.js +1 -1
  338. package/dist/components/treatment-receipt/index.js +1 -1
  339. package/dist/components/unit-converter/index.js +1 -1
  340. package/dist/components/variables-menu/index.js +1 -1
  341. package/dist/components/warning-stack/index.js +1 -1
  342. package/dist/components/widget-picker/index.js +1 -1
  343. package/dist/components/workflow/index.js +1 -1
  344. package/dist/components/workflow-status/appointment-workflow-status.d.ts +55 -0
  345. package/dist/components/workflow-status/index.d.ts +2 -0
  346. package/dist/components/workflow-status/index.js +7 -2
  347. package/dist/components/workflow-status/workflow-status.d.ts +35 -0
  348. package/dist/hooks/index.js +2 -2
  349. package/dist/hooks/use-exit-transition.d.ts +5 -0
  350. package/dist/hooks/use-priority-overflow.d.ts +11 -2
  351. package/dist/host-compat.css +7 -1
  352. package/dist/i18n/locales/ar.d.ts +29 -10
  353. package/dist/i18n/locales/ar.js +33 -14
  354. package/dist/i18n/locales/de.d.ts +29 -10
  355. package/dist/i18n/locales/de.js +33 -14
  356. package/dist/i18n/locales/el.d.ts +29 -10
  357. package/dist/i18n/locales/el.js +33 -14
  358. package/dist/i18n/locales/en.d.ts +29 -10
  359. package/dist/i18n/locales/en.js +33 -14
  360. package/dist/i18n/locales/es.d.ts +29 -10
  361. package/dist/i18n/locales/es.js +33 -14
  362. package/dist/i18n/locales/fr.d.ts +29 -10
  363. package/dist/i18n/locales/fr.js +33 -14
  364. package/dist/i18n/locales/hi.d.ts +29 -10
  365. package/dist/i18n/locales/hi.js +33 -14
  366. package/dist/i18n/locales/it.d.ts +29 -10
  367. package/dist/i18n/locales/it.js +33 -14
  368. package/dist/i18n/locales/ja.d.ts +29 -10
  369. package/dist/i18n/locales/ja.js +33 -14
  370. package/dist/i18n/locales/nl.d.ts +29 -10
  371. package/dist/i18n/locales/nl.js +33 -14
  372. package/dist/i18n/locales/pl.d.ts +29 -10
  373. package/dist/i18n/locales/pl.js +33 -14
  374. package/dist/i18n/locales/pt.d.ts +29 -10
  375. package/dist/i18n/locales/pt.js +33 -14
  376. package/dist/i18n/locales/ro.d.ts +29 -10
  377. package/dist/i18n/locales/ro.js +33 -14
  378. package/dist/i18n/locales/ru.d.ts +29 -10
  379. package/dist/i18n/locales/ru.js +33 -14
  380. package/dist/i18n/locales/sq.d.ts +29 -10
  381. package/dist/i18n/locales/sq.js +33 -14
  382. package/dist/i18n/locales/sv.d.ts +29 -10
  383. package/dist/i18n/locales/sv.js +33 -14
  384. package/dist/i18n/locales/tr.d.ts +29 -10
  385. package/dist/i18n/locales/tr.js +33 -14
  386. package/dist/i18n/locales/zh.d.ts +29 -10
  387. package/dist/i18n/locales/zh.js +33 -14
  388. package/dist/i18n/registerUiBundle.d.ts +5 -9
  389. package/dist/index.js +742 -728
  390. package/dist/locales/ar.json +33 -14
  391. package/dist/locales/de.json +33 -14
  392. package/dist/locales/el.json +33 -14
  393. package/dist/locales/en.json +33 -14
  394. package/dist/locales/es.json +33 -14
  395. package/dist/locales/fr.json +33 -14
  396. package/dist/locales/hi.json +33 -14
  397. package/dist/locales/it.json +33 -14
  398. package/dist/locales/ja.json +33 -14
  399. package/dist/locales/nl.json +33 -14
  400. package/dist/locales/pl.json +33 -14
  401. package/dist/locales/pt.json +33 -14
  402. package/dist/locales/ro.json +33 -14
  403. package/dist/locales/ru.json +33 -14
  404. package/dist/locales/sq.json +33 -14
  405. package/dist/locales/sv.json +33 -14
  406. package/dist/locales/tr.json +33 -14
  407. package/dist/locales/zh.json +33 -14
  408. package/dist/patterns/alia-assistant/index.js +1 -1
  409. package/dist/patterns/anamnesis/index.js +1 -1
  410. package/dist/patterns/calendar/calendar-appointment-details.d.ts +25 -95
  411. package/dist/patterns/calendar/calendar-patient-picker.d.ts +4 -3
  412. package/dist/patterns/calendar/calendar-privacy.d.ts +1 -22
  413. package/dist/patterns/calendar/calendar-sticky-offset.d.ts +20 -13
  414. package/dist/patterns/calendar/calendar-task-editor.d.ts +9 -13
  415. package/dist/patterns/calendar/calendar-workspace.d.ts +79 -8
  416. package/dist/patterns/calendar/calendar-workspace.model.d.ts +17 -12
  417. package/dist/patterns/calendar/calendar.journey.d.ts +40 -6
  418. package/dist/patterns/calendar/calendar.model.d.ts +10 -17
  419. package/dist/patterns/calendar/calendar.sheets.d.ts +18 -16
  420. package/dist/patterns/calendar/calendar.types.d.ts +24 -100
  421. package/dist/patterns/calendar/index.d.ts +4 -3
  422. package/dist/patterns/calendar/index.js +1 -1
  423. package/dist/patterns/help-me-write-templates/index.js +1 -1
  424. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  425. package/dist/patterns/payment-automation-upsell/index.js +1 -1
  426. package/dist/patterns/signature-request/index.js +1 -1
  427. package/dist/tokens.css +1 -1
  428. package/package.json +22 -5
  429. package/dist/_chunks/button-group-CA1tmu39.js +0 -325
  430. package/dist/_chunks/calendar-workspace-BmscntRR.js +0 -12528
  431. package/dist/_chunks/combobox-DnSdYssy.js +0 -522
  432. package/dist/_chunks/control-room-rail-CdBOXIqX.js +0 -366
  433. package/dist/_chunks/fiscal-code-input-ODQRd_Sw.js +0 -553
  434. package/dist/_chunks/icon-button-group-DZKC6KGf.js +0 -428
  435. package/dist/_chunks/notes-panel-CHbDDMx8.js +0 -683
  436. package/dist/_chunks/panel-subview-CYnuX-KR.js +0 -171
  437. package/dist/_chunks/tasks-panel-DncuBPIZ.js +0 -844
  438. package/dist/_chunks/use-list-reflow-Cw43nxw5.js +0 -100
  439. package/dist/_chunks/use-priority-overflow-c9SjxZkZ.js +0 -101
  440. package/dist/patterns/calendar/calendar-appointment-details.sections.d.ts +0 -37
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "packageVersion": "1.47.1",
3
+ "packageVersion": "1.48.0",
4
4
  "components": [
5
5
  {
6
6
  "kind": "component",
@@ -627,6 +627,142 @@
627
627
  }
628
628
  }
629
629
  },
630
+ {
631
+ "kind": "component",
632
+ "id": "appointment-details-panel",
633
+ "capabilities": [
634
+ "open",
635
+ "close",
636
+ "set_value"
637
+ ],
638
+ "state": [
639
+ {
640
+ "name": "eventId",
641
+ "type": "string | null",
642
+ "description": "The occurrence on screen or being read, as the host identifies it. After a failed or refused read, the occurrence it was for when the host says so. Null when there is none, or the host did not say.",
643
+ "descriptionKey": "ui.agent.appointmentDetailsPanel.state.eventId"
644
+ },
645
+ {
646
+ "name": "loadStatus",
647
+ "type": "'loading' | 'ready' | 'error' | 'refused'",
648
+ "description": "Where the read is: loading, ready, failed (with Retry) or refused. Actions need ready.",
649
+ "descriptionKey": "ui.agent.appointmentDetailsPanel.state.loadStatus"
650
+ },
651
+ {
652
+ "name": "appointmentStatus",
653
+ "type": "'confirmed' | 'waiting' | 'in_care' | 'done' | 'cancelled' | 'absent' | null",
654
+ "description": "The appointment status as last saved here or read. Null when none is recorded or nothing is on screen.",
655
+ "descriptionKey": "ui.agent.appointmentDetailsPanel.state.appointmentStatus"
656
+ },
657
+ {
658
+ "name": "allowedStatuses",
659
+ "type": "string[]",
660
+ "description": "The statuses set_status accepts now, in menu order. Empty when the status is read-only.",
661
+ "descriptionKey": "ui.agent.appointmentDetailsPanel.state.allowedStatuses"
662
+ },
663
+ {
664
+ "name": "offeredActions",
665
+ "type": "string[]",
666
+ "description": "The footer actions on offer, as their data-action values (for example edit-appointment, delete-appointment), in footer order, including any folded into More.",
667
+ "descriptionKey": "ui.agent.appointmentDetailsPanel.state.offeredActions"
668
+ },
669
+ {
670
+ "name": "historyOpen",
671
+ "type": "boolean",
672
+ "description": "Whether the History sub-view covers the details.",
673
+ "descriptionKey": "ui.agent.appointmentDetailsPanel.state.historyOpen"
674
+ },
675
+ {
676
+ "name": "privacy",
677
+ "type": "boolean",
678
+ "description": "Whether privacy mode is on. The patient identity and personal fields are then masked on screen.",
679
+ "descriptionKey": "ui.agent.appointmentDetailsPanel.state.privacy"
680
+ }
681
+ ],
682
+ "actions": [
683
+ {
684
+ "name": "open_history",
685
+ "safety": "read",
686
+ "idempotent": true,
687
+ "openWorld": true,
688
+ "errors": [
689
+ "No appointment is on screen, or History is not offered."
690
+ ],
691
+ "description": "Slide the appointment's history over the details, as its header button does; the host reads it then if it did not send it with the details. It lists who changed what, and when.",
692
+ "descriptionKey": "ui.agent.appointmentDetailsPanel.actions.openHistory"
693
+ },
694
+ {
695
+ "name": "close_history",
696
+ "safety": "read",
697
+ "idempotent": true,
698
+ "description": "Return from History to the details.",
699
+ "descriptionKey": "ui.agent.appointmentDetailsPanel.actions.closeHistory"
700
+ },
701
+ {
702
+ "name": "set_status",
703
+ "safety": "phi",
704
+ "argsType": "{ status: string }",
705
+ "argsSchema": {
706
+ "type": "object",
707
+ "properties": {
708
+ "status": {
709
+ "type": "string",
710
+ "enum": [
711
+ "confirmed",
712
+ "waiting",
713
+ "in_care",
714
+ "done",
715
+ "cancelled",
716
+ "absent"
717
+ ]
718
+ }
719
+ },
720
+ "required": [
721
+ "status"
722
+ ]
723
+ },
724
+ "idempotent": true,
725
+ "openWorld": true,
726
+ "errors": [
727
+ "The status is read-only: no appointment on screen, no host save, readOnly, or no allowed statuses.",
728
+ "The status is not in allowedStatuses.",
729
+ "A status save is already in flight.",
730
+ "The host refused the change. The previous status stays and the panel shows the message."
731
+ ],
732
+ "examples": [
733
+ {
734
+ "args": {
735
+ "status": "waiting"
736
+ }
737
+ }
738
+ ],
739
+ "description": "Save a new appointment status through the host, as the footer control does. Resolves once the host has saved it.",
740
+ "descriptionKey": "ui.agent.appointmentDetailsPanel.actions.setStatus"
741
+ },
742
+ {
743
+ "name": "retry",
744
+ "safety": "read",
745
+ "openWorld": true,
746
+ "errors": [
747
+ "Retry is not offered: the read has not failed or been refused as retryable, or the host offers no Retry."
748
+ ],
749
+ "description": "Ask the host to read the appointment again, after a failed read or a refusal it marked retryable.",
750
+ "descriptionKey": "ui.agent.appointmentDetailsPanel.actions.retry"
751
+ }
752
+ ],
753
+ "domHooks": {
754
+ "root": {
755
+ "attr": "data-component",
756
+ "value": "appointment-details-panel",
757
+ "description": "Marks the panel. It also carries data-event-id and data-status. Inside, cards carry data-card (patient, appointment, notes, treatments), footer actions data-action, and the History and description sub-views data-details-subview. An action in offeredActions with no data-action in the footer strip is folded into More: click the panel's [data-component=\"button-group\"] [data-component=\"icon-button\"][aria-haspopup=\"menu\"], and its menu item carries the same data-action."
758
+ },
759
+ "instanceId": {
760
+ "attr": "data-component-id",
761
+ "sourceProp": "id",
762
+ "description": "Sourced from the id prop, or generated."
763
+ }
764
+ }
765
+ },
630
766
  {
631
767
  "kind": "component",
632
768
  "id": "appointment-peek",
@@ -1441,7 +1577,11 @@
1441
1577
  "root": {
1442
1578
  "attr": "data-component",
1443
1579
  "value": "button-group",
1444
- "description": "Marks the ButtonGroup wrapper. Agents target individual Buttons inside the group via their native `id`."
1580
+ "description": "Marks the ButtonGroup wrapper."
1581
+ },
1582
+ "item": {
1583
+ "attr": "data-action",
1584
+ "description": "Each child's own hook, set by the host. It is on the live control in the strip, or on its More menu item while that menu is open; the hidden measuring copies drop it. Target a control by `data-action`, not by `id`: a child folded into More keeps no `id`."
1445
1585
  }
1446
1586
  }
1447
1587
  },
@@ -2319,7 +2459,7 @@
2319
2459
  "root": {
2320
2460
  "attr": "data-component",
2321
2461
  "value": "clinical-note-card",
2322
- "description": "Marks the ClinicalNoteCard root. Also emits data-pinned / data-flagged / data-attached-to structural hooks."
2462
+ "description": "Marks the ClinicalNoteCard root. Also emits data-pinned / data-flagged / data-attached-to structural hooks; the pin / flag toggles carry data-note-action=\"pin\" | \"flag\"."
2323
2463
  },
2324
2464
  "instanceId": {
2325
2465
  "attr": "data-component-id",
@@ -7741,8 +7881,8 @@
7741
7881
  "state": [
7742
7882
  {
7743
7883
  "name": "notes",
7744
- "type": "Array<{ id?: string; pinned: boolean; flagged: boolean; clinical: boolean }>",
7745
- "description": "Timeline note ids + pinned / flagged / clinical flags. Never the note body or author (both PHI).",
7884
+ "type": "Array<{ id?: string; pinned: boolean; flagged: boolean; clinical: boolean; deleted: boolean }>",
7885
+ "description": "Timeline note ids + pinned / flagged / clinical / deleted flags. Never the note body or author (both PHI). A note whose delete is in flight is left out; a pin or flag in flight is reported with its new value. A deleted note takes no pin or flag.",
7746
7886
  "descriptionKey": "ui.agent.notesPanel.state.notes"
7747
7887
  },
7748
7888
  {
@@ -7809,7 +7949,13 @@
7809
7949
  ]
7810
7950
  },
7811
7951
  "idempotent": false,
7812
- "description": "Toggle the pinned state of the note with the given id. Refused for a deleted note or one whose actions.pin is false.",
7952
+ "openWorld": true,
7953
+ "errors": [
7954
+ "The panel offers no pin here: no onTogglePin, no note with this id, a deleted note, or actions.pin is false.",
7955
+ "A pin or delete for this note is still pending. Read notes again once it has settled.",
7956
+ "The host refused the change. The pin is restored and the panel shows the host's message."
7957
+ ],
7958
+ "description": "Toggle the pinned state of the note with the given id. Returns the host's promise; a refusal restores the pin and the panel shows the host's message. Rejects without reaching the host when the panel refuses: a deleted note, actions.pin false, or a write for the note still pending.",
7813
7959
  "descriptionKey": "ui.agent.notesPanel.actions.togglePin"
7814
7960
  },
7815
7961
  {
@@ -7828,7 +7974,13 @@
7828
7974
  ]
7829
7975
  },
7830
7976
  "idempotent": false,
7831
- "description": "Toggle the flagged state of the note with the given id.",
7977
+ "openWorld": true,
7978
+ "errors": [
7979
+ "The panel offers no flag here: no onToggleFlag, no note with this id, or a deleted note.",
7980
+ "A flag or delete for this note is still pending. Read notes again once it has settled.",
7981
+ "The host refused the change. The flag is restored and the panel shows the host's message."
7982
+ ],
7983
+ "description": "Toggle the flagged state of the note with the given id. Returns the host's promise; a refusal restores the flag and the panel shows the host's message. Rejects without reaching the host when the panel refuses: a deleted note, or a write for the note still pending.",
7832
7984
  "descriptionKey": "ui.agent.notesPanel.actions.toggleFlag"
7833
7985
  }
7834
7986
  ],
@@ -7842,6 +7994,10 @@
7842
7994
  "attr": "data-component-id",
7843
7995
  "sourceProp": "id",
7844
7996
  "description": "Sourced from the id prop. Required to address a specific notes panel from the agent."
7997
+ },
7998
+ "item": {
7999
+ "attr": "data-note-id",
8000
+ "description": "Stable note id on each rendered note row. Row controls carry data-note-action: edit, delete, pin or flag."
7845
8001
  }
7846
8002
  }
7847
8003
  },
@@ -13493,6 +13649,149 @@
13493
13649
  }
13494
13650
  }
13495
13651
  },
13652
+ {
13653
+ "kind": "component",
13654
+ "id": "task-editor",
13655
+ "capabilities": [
13656
+ "set_value",
13657
+ "submit",
13658
+ "dismiss"
13659
+ ],
13660
+ "state": [
13661
+ {
13662
+ "name": "status",
13663
+ "type": "'loading' | 'ready' | 'error' | 'locked' | 'withheld'",
13664
+ "description": "Where the form is: loading the task, ready, failed to load, locked (edit mode with nothing to load) or withheld behind the privacy notice. Writes need 'ready'.",
13665
+ "descriptionKey": "ui.agent.taskEditor.state.status"
13666
+ },
13667
+ {
13668
+ "name": "draft",
13669
+ "type": "{ mode: string; dateIso: string | null; about: string; patientId: string | null; companyId: string | null; operatorId: string | null; typeId: string | null; assigneeId: string | null; done: boolean; hasNote: boolean; noteLength: number }",
13670
+ "description": "The draft as Save would send it: ids and structure only, never the note body. done is the last value the host confirmed.",
13671
+ "descriptionKey": "ui.agent.taskEditor.state.draft"
13672
+ },
13673
+ {
13674
+ "name": "canSave",
13675
+ "type": "boolean",
13676
+ "description": "Whether save would reach the host now: the form is ready, the note is filled, a chosen counterpart has an id and no write is pending.",
13677
+ "descriptionKey": "ui.agent.taskEditor.state.canSave"
13678
+ }
13679
+ ],
13680
+ "actions": [
13681
+ {
13682
+ "name": "set_fields",
13683
+ "safety": "phi",
13684
+ "argsType": "{ dateIso?: string; note?: string; typeId?: string; assigneeId?: string | null; about?: 'nobody' | 'patient' | 'company' | 'operator'; patientId?: string; companyId?: string; operatorId?: string }",
13685
+ "argsSchema": {
13686
+ "type": "object",
13687
+ "properties": {
13688
+ "dateIso": {
13689
+ "type": "string",
13690
+ "format": "date-time"
13691
+ },
13692
+ "note": {
13693
+ "type": "string"
13694
+ },
13695
+ "typeId": {
13696
+ "type": "string"
13697
+ },
13698
+ "assigneeId": {
13699
+ "type": [
13700
+ "string",
13701
+ "null"
13702
+ ]
13703
+ },
13704
+ "about": {
13705
+ "type": "string",
13706
+ "enum": [
13707
+ "nobody",
13708
+ "patient",
13709
+ "company",
13710
+ "operator"
13711
+ ]
13712
+ },
13713
+ "patientId": {
13714
+ "type": "string"
13715
+ },
13716
+ "companyId": {
13717
+ "type": "string"
13718
+ },
13719
+ "operatorId": {
13720
+ "type": "string"
13721
+ }
13722
+ }
13723
+ },
13724
+ "idempotent": true,
13725
+ "errors": [
13726
+ "An id the host lists, its patient search or the stored task do not resolve.",
13727
+ "More than one of patientId, companyId and operatorId.",
13728
+ "The form is not ready, is read-only or is withheld."
13729
+ ],
13730
+ "description": "Set draft fields. Ids must come from the host lists, a patient the host search returned, or equal the stored one. At most one counterpart per call, and it selects its branch; assigneeId null is nobody. Nothing is saved.",
13731
+ "descriptionKey": "ui.agent.taskEditor.actions.setFields"
13732
+ },
13733
+ {
13734
+ "name": "save",
13735
+ "safety": "phi",
13736
+ "openWorld": true,
13737
+ "description": "Save the task through the host. Resolves once the write lands and rejects with the host error, which the form also shows.",
13738
+ "descriptionKey": "ui.agent.taskEditor.actions.save"
13739
+ },
13740
+ {
13741
+ "name": "set_done",
13742
+ "safety": "write",
13743
+ "argsType": "{ done: boolean }",
13744
+ "argsSchema": {
13745
+ "type": "object",
13746
+ "properties": {
13747
+ "done": {
13748
+ "type": "boolean"
13749
+ }
13750
+ },
13751
+ "required": [
13752
+ "done"
13753
+ ]
13754
+ },
13755
+ "openWorld": true,
13756
+ "errors": [
13757
+ "The form is not ready, is read-only or has no Done seam.",
13758
+ "A save, a delete or another Done change is in flight.",
13759
+ "The task was already saved or deleted in this session."
13760
+ ],
13761
+ "description": "Mark an existing task done or not done through the host. A rejection rolls the switch back.",
13762
+ "descriptionKey": "ui.agent.taskEditor.actions.setDone"
13763
+ },
13764
+ {
13765
+ "name": "delete",
13766
+ "safety": "destructive",
13767
+ "idempotent": true,
13768
+ "openWorld": true,
13769
+ "description": "Delete the task through the host, without the confirmation dialog. Resolves once the delete lands.",
13770
+ "descriptionKey": "ui.agent.taskEditor.actions.delete"
13771
+ },
13772
+ {
13773
+ "name": "cancel",
13774
+ "safety": "destructive",
13775
+ "errors": [
13776
+ "A save or delete is in flight: wait for it to settle."
13777
+ ],
13778
+ "description": "Close the editor without saving. Anything typed since the last save is lost. Refused while a save or delete is in flight.",
13779
+ "descriptionKey": "ui.agent.taskEditor.actions.cancel"
13780
+ }
13781
+ ],
13782
+ "domHooks": {
13783
+ "root": {
13784
+ "attr": "data-component",
13785
+ "value": "task-editor",
13786
+ "description": "Marks the TaskEditor body. It also carries data-variant and data-status. In the subview variant it sits inside the panel-subview section, which repeats data-component-id, data-variant and data-status and holds the heading and footer."
13787
+ },
13788
+ "instanceId": {
13789
+ "attr": "data-component-id",
13790
+ "sourceProp": "id",
13791
+ "description": "Sourced from the id prop, or generated. Addresses one editor from the agent. [data-component-id] reaches the footer actions in both variants."
13792
+ }
13793
+ }
13794
+ },
13496
13795
  {
13497
13796
  "kind": "component",
13498
13797
  "id": "task-tray",
@@ -13637,6 +13936,7 @@
13637
13936
  "id"
13638
13937
  ]
13639
13938
  },
13939
+ "openWorld": true,
13640
13940
  "description": "Request the host to toggle the done state of a task.",
13641
13941
  "descriptionKey": "ui.agent.tasksPanel.actions.toggleDone"
13642
13942
  },
@@ -13656,6 +13956,7 @@
13656
13956
  ]
13657
13957
  },
13658
13958
  "idempotent": true,
13959
+ "openWorld": true,
13659
13960
  "description": "Request the host to dismiss / remove the task with the given id.",
13660
13961
  "descriptionKey": "ui.agent.tasksPanel.actions.dismiss"
13661
13962
  },
@@ -13699,7 +14000,7 @@
13699
14000
  }
13700
14001
  },
13701
14002
  "idempotent": true,
13702
- "description": "Set the task filters (status segment, type, assignee, overdue-only). Omitted keys are left unchanged.",
14003
+ "description": "Set the task filters (status segment, type, assignee, overdue-only). Omitted keys are left unchanged. Unchanged values are not re-sent. In server-filtered panels, choosing status 'done' clears overdueOnly.",
13703
14004
  "descriptionKey": "ui.agent.tasksPanel.actions.setFilter"
13704
14005
  },
13705
14006
  {
@@ -15747,11 +16048,12 @@
15747
16048
  ]
15748
16049
  },
15749
16050
  "idempotent": true,
15750
- "openWorld": false,
16051
+ "openWorld": true,
15751
16052
  "errors": [
15752
16053
  "The status is not in the host-provided transition list.",
15753
16054
  "The status is disabled.",
15754
- "A status change is already being saved."
16055
+ "A status change is already being saved.",
16056
+ "The host rejected the change. The previous status stays and the error is shown."
15755
16057
  ],
15756
16058
  "examples": [
15757
16059
  {
@@ -16811,15 +17113,21 @@
16811
17113
  "component": "timeline",
16812
17114
  "as": "modificationHistory"
16813
17115
  },
17116
+ {
17117
+ "component": "appointment-details-panel",
17118
+ "as": "appointmentDetails",
17119
+ "entity": "appointment"
17120
+ },
17121
+ {
17122
+ "component": "task-editor",
17123
+ "as": "taskEditor",
17124
+ "entity": "task"
17125
+ },
16814
17126
  {
16815
17127
  "component": "notes-panel",
16816
17128
  "as": "patientNotes",
16817
17129
  "entity": "note"
16818
17130
  },
16819
- {
16820
- "component": "dialog",
16821
- "as": "noteEditor"
16822
- },
16823
17131
  {
16824
17132
  "component": "dialog",
16825
17133
  "as": "noteDeleteConfirm"
@@ -16967,7 +17275,7 @@
16967
17275
  {
16968
17276
  "name": "mask_patient_names",
16969
17277
  "safety": "read",
16970
- "description": "Turn privacy mode on or off from the toolbar. While on, patient identity is masked across the grid and the whole rail: the cards, the hover peek, the Appointments panel, the appointment details panel (patient card, description, booking contact, notes preview and the WhatsApp link are hidden), the online bookings, the waiting list and the printed call sheet; the Notes tool and the edit form show a notice instead of their content. The page can stay open beside a waiting patient. It is a display mask, not a permission: it is not persisted and it changes no record.",
17278
+ "description": "Turn privacy mode on or off from the toolbar. While on, patient identity is masked across the grid and the whole rail: the cards, the hover peek, the Appointments panel, the appointment details panel (patient card, description, booking contact, notes preview and the WhatsApp link are hidden), the online bookings, the waiting list and the printed call sheet; the Notes tool and the edit form show a notice instead of their content, and so does a tool the host adds, unless the host masks it itself. The page can stay open beside a waiting patient. It is a display mask, not a permission: it is not persisted and it changes no record.",
16971
17279
  "descriptionKey": "ui.agent.calendar.workflows.maskPatientNames",
16972
17280
  "uiActions": [],
16973
17281
  "apiActions": []
@@ -16998,7 +17306,7 @@
16998
17306
  {
16999
17307
  "name": "dock_tool",
17000
17308
  "safety": "read",
17001
- "description": "Open a workspace rail tool: Appointments, appointment editor / details, waiting list, patient notes, online bookings or free-slot finder. Read the actual strip: hosts may withhold tools, and patient-notes is registered only with patient context. Notes uses the host's note permissions, independently of appointment-edit rights. Clearing its patient context returns to the previous available tool and focuses its rail button. Opening notes from a panel may address a note id and moves focus into Notes. Closing other tools returns to Appointments.",
17309
+ "description": "Open a workspace rail tool: Appointments, appointment editor / details, waiting list, patient notes, online bookings or free-slot finder. Read the actual strip: hosts may withhold tools, and patient-notes is registered only with patient context. Notes uses the host's note permissions, independently of appointment-edit rights. Clearing its patient context returns to the previous available tool and focuses its rail button. Opening notes from a panel may address a note id and moves focus into Notes. Closing other tools returns to Appointments. A host may add its own tools after these; they carry the host's ids, so read the strip's data-tool-id before opening one. open ignores an id no tool carries; select_tool with one, or a host tool the host withdraws while open, docks Appointments. patient-notes is the exception: withheld or without a patient, it returns to the previous tool, unannounced.",
17002
17310
  "descriptionKey": "ui.agent.calendar.workflows.dockTool",
17003
17311
  "uiActions": [
17004
17312
  "control-room-rail.open",
@@ -17032,13 +17340,17 @@
17032
17340
  {
17033
17341
  "name": "read_appointment_details",
17034
17342
  "safety": "phi",
17035
- "description": "Read one appointment in the docked details panel. With the host's details read, any card click, including a patient-less block and a chip whose names are still loading, focuses the appointment and docks a read-only panel: appointment, booking, money, contact, treatments, signing and series sections, the patient's latest three notes and a History sub-view. See more or a note opens the separate Notes rail tool when the host offers it. While the read is loading, failed or refused the panel shows that status instead. Edit, withheld from a read-only viewer, opens the editor. Without the host's read a pending chip stays inert and the editor form is the details. Reads patient-identifiable data.",
17343
+ "description": "Read one appointment in the docked details panel (appointment-details-panel). With the host's details read, any card click, including a patient-less block and a chip whose names are still loading, focuses the appointment and docks a read-only panel: appointment, booking, money, contact, treatments, signing and series sections, the patient's latest three notes and a History sub-view. See more or a note opens the separate Notes rail tool when the host offers it. While the read is loading, failed or refused the panel shows that status instead. Edit, withheld from a read-only viewer, opens the editor. Without the host's read a pending chip stays inert and the editor form is the details. Reads patient-identifiable data.",
17036
17344
  "descriptionKey": "ui.agent.calendar.workflows.readAppointmentDetails",
17037
17345
  "uiActions": [
17038
- "calendar.focus_event"
17346
+ "calendar.focus_event",
17347
+ "appointment-details-panel.open_history",
17348
+ "appointment-details-panel.close_history"
17039
17349
  ],
17040
17350
  "stateReads": [
17041
- "control-room-rail.activeToolId"
17351
+ "control-room-rail.activeToolId",
17352
+ "appointment-details-panel.eventId",
17353
+ "appointment-details-panel.loadStatus"
17042
17354
  ],
17043
17355
  "apiActions": [
17044
17356
  "appointment.read"
@@ -17111,14 +17423,15 @@
17111
17423
  {
17112
17424
  "name": "change_appointment_status",
17113
17425
  "safety": "phi",
17114
- "description": "Set an appointment's attendance status from the Status select in the details panel. The status is patient-identifiable attendance data.",
17426
+ "description": "Set an appointment's attendance status from the status control in the details panel (appointment-details-panel). The workspace offers all six statuses; allowedStatuses lists what set_status accepts. A refusal keeps the previous status and shows the host's message. The status is patient-identifiable attendance data.",
17115
17427
  "descriptionKey": "ui.agent.calendar.workflows.changeAppointmentStatus",
17116
17428
  "uiActions": [
17117
17429
  "calendar.focus_event",
17118
- "select.set_value"
17430
+ "appointment-details-panel.set_status"
17119
17431
  ],
17120
17432
  "stateReads": [
17121
- "select.value"
17433
+ "appointment-details-panel.appointmentStatus",
17434
+ "appointment-details-panel.allowedStatuses"
17122
17435
  ],
17123
17436
  "apiActions": [
17124
17437
  "appointment.setStatus"
@@ -17209,11 +17522,12 @@
17209
17522
  {
17210
17523
  "name": "manage_patient_notes",
17211
17524
  "safety": "phi",
17212
- "description": "Read and write the patient's notes from the conditional Notes rail tool: add a note through the composer, pin one, edit one in a dialog or delete one behind an alert dialog. Every write goes to the host, which stamps the note's id, time and author. The kit attributes nothing to a clinical note. An HTML note edits in a rich text editor and saves as HTML; a clinical or deleted note offers no edit. With no host seam, or when the host's seam is not writable, the tool is a read-only timeline. Explicit note permissions take precedence over appointment-edit permission. Details and the editor have no Notes sub-view. The rows carry ids and pin / flag / clinical markers only; the body and author are never exposed as state. Writes patient-identifiable clinical data.",
17525
+ "description": "Read and write the patient's notes from the conditional Notes rail tool: add a note through the composer, edit one in place, pin or flag one, or delete one behind the panel's alert dialog. Every write goes to the host on the click, and the host stamps the note's id, time and author. The kit attributes nothing to a clinical note. A refused delete, pin or flag is rolled back and explained in the panel. An HTML note edits in a rich text editor and saves as HTML; a clinical or deleted note offers no edit. With no host seam, or when the host's seam is not writable, the tool is a read-only timeline. Explicit note permissions take precedence over appointment-edit permission. Details and the editor have no Notes sub-view. The rows carry ids and pin / flag / clinical markers only; the body and author are never exposed as state. Writes patient-identifiable clinical data.",
17213
17526
  "descriptionKey": "ui.agent.calendar.workflows.managePatientNotes",
17214
17527
  "uiActions": [
17215
17528
  "notes-panel.add_note",
17216
17529
  "notes-panel.toggle_pin",
17530
+ "notes-panel.toggle_flag",
17217
17531
  "dialog.open",
17218
17532
  "dialog.close",
17219
17533
  "dialog.dismiss",
@@ -17230,7 +17544,34 @@
17230
17544
  "patientNote.create",
17231
17545
  "patientNote.update",
17232
17546
  "patientNote.delete",
17233
- "patientNote.pin"
17547
+ "patientNote.pin",
17548
+ "patientNote.flag"
17549
+ ]
17550
+ },
17551
+ {
17552
+ "name": "manage_task",
17553
+ "safety": "phi",
17554
+ "description": "Create, edit, complete or delete a practice task in the editor tool's slot, in the published task editor. The toolbar's New task member opens an empty task, dated from the grid's selection or now; a click on a task row on the grid opens that task, read through the host. Set the date, the note, the type, the assignee and at most one counterpart (a patient, a company or an operator), then save through the host. Done and Delete act on a saved task at once. Each action is withheld when the host passes no seam for it. A task can link a patient, so writes are patient-identifiable.",
17555
+ "descriptionKey": "ui.agent.calendar.workflows.manageTask",
17556
+ "uiActions": [
17557
+ "task-editor.set_fields",
17558
+ "task-editor.save",
17559
+ "task-editor.set_done",
17560
+ "task-editor.delete",
17561
+ "task-editor.cancel"
17562
+ ],
17563
+ "stateReads": [
17564
+ "control-room-rail.activeToolId",
17565
+ "task-editor.status",
17566
+ "task-editor.draft",
17567
+ "task-editor.canSave"
17568
+ ],
17569
+ "apiActions": [
17570
+ "task.read",
17571
+ "task.create",
17572
+ "task.update",
17573
+ "task.setDone",
17574
+ "task.delete"
17234
17575
  ]
17235
17576
  },
17236
17577
  {
@@ -17239,10 +17580,14 @@
17239
17580
  "description": "Open the History sub-view of the details panel and read the appointment's modification ledger, newest first — what changed, from what to what, and when. No mutation.",
17240
17581
  "descriptionKey": "ui.agent.calendar.workflows.readModificationHistory",
17241
17582
  "uiActions": [
17242
- "timeline.select_event"
17583
+ "calendar.focus_event",
17584
+ "appointment-details-panel.open_history",
17585
+ "appointment-details-panel.close_history"
17243
17586
  ],
17244
17587
  "stateReads": [
17245
- "timeline.selectedEvent"
17588
+ "appointment-details-panel.eventId",
17589
+ "appointment-details-panel.loadStatus",
17590
+ "appointment-details-panel.historyOpen"
17246
17591
  ],
17247
17592
  "apiActions": [
17248
17593
  "appointment.listHistory"