@alfadocs/ui-kit-debug 1.33.0 → 1.35.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 (217) hide show
  1. package/dist/_chunks/appointment-card-Bh_CIlc6.js +431 -0
  2. package/dist/_chunks/appointment-card-Bh_CIlc6.js.map +1 -0
  3. package/dist/_chunks/appointment-timeline-De-Wqdkw.js +449 -0
  4. package/dist/_chunks/appointment-timeline-De-Wqdkw.js.map +1 -0
  5. package/dist/_chunks/{appointment-tray-DCk8gHod.js → appointment-tray-4I9wTAi4.js} +2 -2
  6. package/dist/_chunks/{appointment-tray-DCk8gHod.js.map → appointment-tray-4I9wTAi4.js.map} +1 -1
  7. package/dist/_chunks/{calendar-workspace-BX-zDyVR.js → calendar-workspace-UywR5gUl.js} +7 -7
  8. package/dist/_chunks/{calendar-workspace-BX-zDyVR.js.map → calendar-workspace-UywR5gUl.js.map} +1 -1
  9. package/dist/_chunks/{care-plan-card-CZW476Kg.js → care-plan-card-DHVhBcvs.js} +3 -3
  10. package/dist/_chunks/{care-plan-card-CZW476Kg.js.map → care-plan-card-DHVhBcvs.js.map} +1 -1
  11. package/dist/_chunks/{care-plan-entry-card-BMUYagEw.js → care-plan-entry-card-Dx6IdTcR.js} +2 -2
  12. package/dist/_chunks/{care-plan-entry-card-BMUYagEw.js.map → care-plan-entry-card-Dx6IdTcR.js.map} +1 -1
  13. package/dist/_chunks/{care-plan-header-B5CBE0zu.js → care-plan-header-UTX5ZD74.js} +2 -2
  14. package/dist/_chunks/{care-plan-header-B5CBE0zu.js.map → care-plan-header-UTX5ZD74.js.map} +1 -1
  15. package/dist/_chunks/{clinical-note-card-D2WTV2CO.js → clinical-note-card-CTRzmqvv.js} +83 -81
  16. package/dist/_chunks/clinical-note-card-CTRzmqvv.js.map +1 -0
  17. package/dist/_chunks/{contact-profile-card-BZqi8Hck.js → contact-profile-card-DSI9uumA.js} +17 -16
  18. package/dist/_chunks/{contact-profile-card-BZqi8Hck.js.map → contact-profile-card-DSI9uumA.js.map} +1 -1
  19. package/dist/_chunks/{control-room-rail-iO_BCaq1.js → control-room-rail-5MbhjsxN.js} +2 -2
  20. package/dist/_chunks/{control-room-rail-iO_BCaq1.js.map → control-room-rail-5MbhjsxN.js.map} +1 -1
  21. package/dist/_chunks/{entity-card-DmrgYSEX.js → entity-card-9_62gY7l.js} +4 -4
  22. package/dist/_chunks/{entity-card-DmrgYSEX.js.map → entity-card-9_62gY7l.js.map} +1 -1
  23. package/dist/_chunks/format-price-BkMEbeW3.js +47 -0
  24. package/dist/_chunks/format-price-BkMEbeW3.js.map +1 -0
  25. package/dist/_chunks/{format-price-DNqXPa_q.js → languages-CZqBaPwI.js} +8 -38
  26. package/dist/_chunks/languages-CZqBaPwI.js.map +1 -0
  27. package/dist/_chunks/money.agent-Dw55UxUA.js +116 -0
  28. package/dist/_chunks/money.agent-Dw55UxUA.js.map +1 -0
  29. package/dist/_chunks/notes-panel-BjLt-kiP.js +469 -0
  30. package/dist/_chunks/notes-panel-BjLt-kiP.js.map +1 -0
  31. package/dist/_chunks/{operator-hero-D7-iiFQ9.js → operator-hero-aG_qyn6g.js} +2 -2
  32. package/dist/_chunks/{operator-hero-D7-iiFQ9.js.map → operator-hero-aG_qyn6g.js.map} +1 -1
  33. package/dist/_chunks/{payment-request-card-lmKLwsDs.js → payment-request-card-DvEsWEkC.js} +2 -2
  34. package/dist/_chunks/{payment-request-card-lmKLwsDs.js.map → payment-request-card-DvEsWEkC.js.map} +1 -1
  35. package/dist/_chunks/{practice-results-DjEzPgAK.js → practice-results-kayDEorM.js} +15 -14
  36. package/dist/_chunks/{practice-results-DjEzPgAK.js.map → practice-results-kayDEorM.js.map} +1 -1
  37. package/dist/_chunks/{rich-text-editor-CQ7yZdG3.js → rich-text-editor-CCI-Y3DN.js} +3 -5
  38. package/dist/_chunks/rich-text-editor-CCI-Y3DN.js.map +1 -0
  39. package/dist/_chunks/{task-card-BUgK6yZT.js → task-card-BalrLkSz.js} +41 -40
  40. package/dist/_chunks/task-card-BalrLkSz.js.map +1 -0
  41. package/dist/_chunks/{task-tray-CYG6rj2s.js → task-tray-COo-RlDv.js} +2 -2
  42. package/dist/_chunks/{task-tray-CYG6rj2s.js.map → task-tray-COo-RlDv.js.map} +1 -1
  43. package/dist/_chunks/tasks-panel-DLKpSNoE.js +844 -0
  44. package/dist/_chunks/tasks-panel-DLKpSNoE.js.map +1 -0
  45. package/dist/_chunks/tool-rail-ONaV-Nzz.js +588 -0
  46. package/dist/_chunks/tool-rail-ONaV-Nzz.js.map +1 -0
  47. package/dist/_chunks/use-check-animation--I3cS00X.js +28 -0
  48. package/dist/_chunks/use-check-animation--I3cS00X.js.map +1 -0
  49. package/dist/_chunks/use-list-reflow-Cw43nxw5.js +100 -0
  50. package/dist/_chunks/use-list-reflow-Cw43nxw5.js.map +1 -0
  51. package/dist/agent-catalog.json +15 -1
  52. package/dist/components/_shared/format-price.d.ts +15 -0
  53. package/dist/components/_shared/format-price.d.ts.map +1 -1
  54. package/dist/components/appointment-card/appointment-card.d.ts +36 -1
  55. package/dist/components/appointment-card/appointment-card.d.ts.map +1 -1
  56. package/dist/components/appointment-card/index.js +2 -2
  57. package/dist/components/appointment-timeline/appointment-timeline.d.ts +6 -0
  58. package/dist/components/appointment-timeline/appointment-timeline.d.ts.map +1 -1
  59. package/dist/components/appointment-timeline/index.js +1 -1
  60. package/dist/components/care-plan-card/index.js +1 -1
  61. package/dist/components/care-plan-entry-card/index.js +1 -1
  62. package/dist/components/care-plan-header/index.js +1 -1
  63. package/dist/components/clinical-note-card/clinical-note-card.d.ts +8 -1
  64. package/dist/components/clinical-note-card/clinical-note-card.d.ts.map +1 -1
  65. package/dist/components/clinical-note-card/index.js +1 -1
  66. package/dist/components/command-palette/command-palette.d.ts +7 -7
  67. package/dist/components/contact-profile-card/index.js +1 -1
  68. package/dist/components/control-room-rail/index.js +1 -1
  69. package/dist/components/index.d.ts +1 -0
  70. package/dist/components/index.d.ts.map +1 -1
  71. package/dist/components/money/index.d.ts +4 -0
  72. package/dist/components/money/index.d.ts.map +1 -0
  73. package/dist/components/money/index.js +6 -0
  74. package/dist/components/money/index.js.map +1 -0
  75. package/dist/components/money/money.agent.d.ts +3 -0
  76. package/dist/components/money/money.agent.d.ts.map +1 -0
  77. package/dist/components/money/money.d.ts +38 -0
  78. package/dist/components/money/money.d.ts.map +1 -0
  79. package/dist/components/notes-panel/index.js +1 -1
  80. package/dist/components/notes-panel/notes-panel.d.ts +16 -1
  81. package/dist/components/notes-panel/notes-panel.d.ts.map +1 -1
  82. package/dist/components/operator-hero/index.js +1 -1
  83. package/dist/components/payment-card/index.js +1 -1
  84. package/dist/components/practice-results/index.js +1 -1
  85. package/dist/components/rich-text-editor/help-me-write-overlay.d.ts.map +1 -1
  86. package/dist/components/rich-text-editor/index.js +1 -1
  87. package/dist/components/rich-text-editor/rich-text-editor.d.ts +1 -1
  88. package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +1 -1
  89. package/dist/components/task-card/index.js +1 -1
  90. package/dist/components/task-card/task-card.d.ts +11 -3
  91. package/dist/components/task-card/task-card.d.ts.map +1 -1
  92. package/dist/components/task-tray/index.js +1 -1
  93. package/dist/components/tasks-panel/index.js +1 -1
  94. package/dist/components/tasks-panel/tasks-panel.d.ts +1 -1
  95. package/dist/components/tasks-panel/tasks-panel.d.ts.map +1 -1
  96. package/dist/components/tool-rail/index.js +1 -1
  97. package/dist/components/tool-rail/tool-rail.d.ts.map +1 -1
  98. package/dist/hooks/index.d.ts +3 -0
  99. package/dist/hooks/index.d.ts.map +1 -1
  100. package/dist/hooks/index.js +43 -37
  101. package/dist/hooks/index.js.map +1 -1
  102. package/dist/hooks/use-check-animation.d.ts +53 -0
  103. package/dist/hooks/use-check-animation.d.ts.map +1 -0
  104. package/dist/hooks/use-exit-transition.d.ts +48 -0
  105. package/dist/hooks/use-exit-transition.d.ts.map +1 -0
  106. package/dist/hooks/use-list-reflow.d.ts +47 -0
  107. package/dist/hooks/use-list-reflow.d.ts.map +1 -0
  108. package/dist/host-compat.css +8 -2
  109. package/dist/i18n/locales/ar.d.ts +10 -0
  110. package/dist/i18n/locales/ar.d.ts.map +1 -1
  111. package/dist/i18n/locales/ar.js +12 -2
  112. package/dist/i18n/locales/ar.js.map +1 -1
  113. package/dist/i18n/locales/de.d.ts +10 -0
  114. package/dist/i18n/locales/de.d.ts.map +1 -1
  115. package/dist/i18n/locales/de.js +12 -2
  116. package/dist/i18n/locales/de.js.map +1 -1
  117. package/dist/i18n/locales/el.d.ts +10 -0
  118. package/dist/i18n/locales/el.d.ts.map +1 -1
  119. package/dist/i18n/locales/el.js +12 -2
  120. package/dist/i18n/locales/el.js.map +1 -1
  121. package/dist/i18n/locales/en.d.ts +10 -0
  122. package/dist/i18n/locales/en.d.ts.map +1 -1
  123. package/dist/i18n/locales/en.js +12 -2
  124. package/dist/i18n/locales/en.js.map +1 -1
  125. package/dist/i18n/locales/es.d.ts +10 -0
  126. package/dist/i18n/locales/es.d.ts.map +1 -1
  127. package/dist/i18n/locales/es.js +12 -2
  128. package/dist/i18n/locales/es.js.map +1 -1
  129. package/dist/i18n/locales/fr.d.ts +10 -0
  130. package/dist/i18n/locales/fr.d.ts.map +1 -1
  131. package/dist/i18n/locales/fr.js +12 -2
  132. package/dist/i18n/locales/fr.js.map +1 -1
  133. package/dist/i18n/locales/hi.d.ts +10 -0
  134. package/dist/i18n/locales/hi.d.ts.map +1 -1
  135. package/dist/i18n/locales/hi.js +12 -2
  136. package/dist/i18n/locales/hi.js.map +1 -1
  137. package/dist/i18n/locales/it.d.ts +13 -3
  138. package/dist/i18n/locales/it.d.ts.map +1 -1
  139. package/dist/i18n/locales/it.js +14 -4
  140. package/dist/i18n/locales/it.js.map +1 -1
  141. package/dist/i18n/locales/ja.d.ts +10 -0
  142. package/dist/i18n/locales/ja.d.ts.map +1 -1
  143. package/dist/i18n/locales/ja.js +12 -2
  144. package/dist/i18n/locales/ja.js.map +1 -1
  145. package/dist/i18n/locales/nl.d.ts +10 -0
  146. package/dist/i18n/locales/nl.d.ts.map +1 -1
  147. package/dist/i18n/locales/nl.js +12 -2
  148. package/dist/i18n/locales/nl.js.map +1 -1
  149. package/dist/i18n/locales/pl.d.ts +10 -0
  150. package/dist/i18n/locales/pl.d.ts.map +1 -1
  151. package/dist/i18n/locales/pl.js +12 -2
  152. package/dist/i18n/locales/pl.js.map +1 -1
  153. package/dist/i18n/locales/pt.d.ts +10 -0
  154. package/dist/i18n/locales/pt.d.ts.map +1 -1
  155. package/dist/i18n/locales/pt.js +12 -2
  156. package/dist/i18n/locales/pt.js.map +1 -1
  157. package/dist/i18n/locales/ro.d.ts +10 -0
  158. package/dist/i18n/locales/ro.d.ts.map +1 -1
  159. package/dist/i18n/locales/ro.js +12 -2
  160. package/dist/i18n/locales/ro.js.map +1 -1
  161. package/dist/i18n/locales/ru.d.ts +10 -0
  162. package/dist/i18n/locales/ru.d.ts.map +1 -1
  163. package/dist/i18n/locales/ru.js +12 -2
  164. package/dist/i18n/locales/ru.js.map +1 -1
  165. package/dist/i18n/locales/sq.d.ts +10 -0
  166. package/dist/i18n/locales/sq.d.ts.map +1 -1
  167. package/dist/i18n/locales/sq.js +12 -2
  168. package/dist/i18n/locales/sq.js.map +1 -1
  169. package/dist/i18n/locales/sv.d.ts +10 -0
  170. package/dist/i18n/locales/sv.d.ts.map +1 -1
  171. package/dist/i18n/locales/sv.js +12 -2
  172. package/dist/i18n/locales/sv.js.map +1 -1
  173. package/dist/i18n/locales/tr.d.ts +10 -0
  174. package/dist/i18n/locales/tr.d.ts.map +1 -1
  175. package/dist/i18n/locales/tr.js +12 -2
  176. package/dist/i18n/locales/tr.js.map +1 -1
  177. package/dist/i18n/locales/zh.d.ts +10 -0
  178. package/dist/i18n/locales/zh.d.ts.map +1 -1
  179. package/dist/i18n/locales/zh.js +12 -2
  180. package/dist/i18n/locales/zh.js.map +1 -1
  181. package/dist/index.js +919 -916
  182. package/dist/index.js.map +1 -1
  183. package/dist/locales/ar.json +12 -2
  184. package/dist/locales/de.json +12 -2
  185. package/dist/locales/el.json +12 -2
  186. package/dist/locales/en.json +12 -2
  187. package/dist/locales/es.json +12 -2
  188. package/dist/locales/fr.json +12 -2
  189. package/dist/locales/hi.json +12 -2
  190. package/dist/locales/it.json +14 -4
  191. package/dist/locales/ja.json +12 -2
  192. package/dist/locales/nl.json +12 -2
  193. package/dist/locales/pl.json +12 -2
  194. package/dist/locales/pt.json +12 -2
  195. package/dist/locales/ro.json +12 -2
  196. package/dist/locales/ru.json +12 -2
  197. package/dist/locales/sq.json +12 -2
  198. package/dist/locales/sv.json +12 -2
  199. package/dist/locales/tr.json +12 -2
  200. package/dist/locales/zh.json +12 -2
  201. package/dist/patterns/calendar/index.js +1 -1
  202. package/dist/tokens.css +2 -1
  203. package/package.json +5 -1
  204. package/dist/_chunks/appointment-card-D-oj_ugh.js +0 -296
  205. package/dist/_chunks/appointment-card-D-oj_ugh.js.map +0 -1
  206. package/dist/_chunks/appointment-timeline-CymGHyIP.js +0 -403
  207. package/dist/_chunks/appointment-timeline-CymGHyIP.js.map +0 -1
  208. package/dist/_chunks/clinical-note-card-D2WTV2CO.js.map +0 -1
  209. package/dist/_chunks/format-price-DNqXPa_q.js.map +0 -1
  210. package/dist/_chunks/notes-panel-C4G-mhZ9.js +0 -380
  211. package/dist/_chunks/notes-panel-C4G-mhZ9.js.map +0 -1
  212. package/dist/_chunks/rich-text-editor-CQ7yZdG3.js.map +0 -1
  213. package/dist/_chunks/task-card-BUgK6yZT.js.map +0 -1
  214. package/dist/_chunks/tasks-panel-DQuaVvl5.js +0 -757
  215. package/dist/_chunks/tasks-panel-DQuaVvl5.js.map +0 -1
  216. package/dist/_chunks/tool-rail-8Scslq3X.js +0 -524
  217. package/dist/_chunks/tool-rail-8Scslq3X.js.map +0 -1
@@ -1,757 +0,0 @@
1
- import { jsx as a, jsxs as k, Fragment as ke } from "react/jsx-runtime";
2
- import { forwardRef as pt, useId as ge, useMemo as V, useState as h, useCallback as f, useRef as O, useImperativeHandle as ut } from "react";
3
- import { c as ft } from "./index-D2ZczOXr.js";
4
- import { useTranslation as mt } from "react-i18next";
5
- import { B as kt } from "./badge-sTusUqZD.js";
6
- import { B as ae } from "./button-nJaPh_HC.js";
7
- import { I as $ } from "./icon-button-DA2CAGHZ.js";
8
- import { B as he } from "./button-group-CaxRJsNG.js";
9
- import { P as gt } from "./panel-header-D313n_9-.js";
10
- import { S as ve } from "./select-CLSUnKjF.js";
11
- import { S as ht } from "./switch-OILsBLWo.js";
12
- import { S as vt } from "./skeleton-CZbwyJAA.js";
13
- import { E as ne } from "./empty-state-X0sVPfVo.js";
14
- import { T as yt } from "./task-card-BUgK6yZT.js";
15
- import { u as ye } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
16
- import { u as bt } from "./registry-DvAUVLHh.js";
17
- import { P as Pt } from "./plus-DzMQ_c6b.js";
18
- import { C as wt } from "./clipboard-check-BeAGxDVT.js";
19
- import { S as xt } from "./square-check-big-dj0o8yA3.js";
20
- import { S as St } from "./square-DASBRZ0U.js";
21
- import { P as _t } from "./pencil-B1sKKyuT.js";
22
- import { X as Nt } from "./x-B5YnXwCz.js";
23
- import { c as C } from "./createLucideIcon-DhHxpK9K.js";
24
- /**
25
- * @license lucide-react v1.22.0 - ISC
26
- *
27
- * This source code is licensed under the ISC license.
28
- * See the LICENSE file in the root directory of this source tree.
29
- */
30
- const zt = [
31
- ["path", { d: "M13.744 17.736a6 6 0 1 1-7.48-7.48", key: "bq4yh3" }],
32
- ["path", { d: "M15 6h1v4", key: "11y1tn" }],
33
- ["path", { d: "m6.134 14.768.866-.5 2 3.464", key: "17snzx" }],
34
- ["circle", { cx: "16", cy: "8", r: "6", key: "14bfc9" }]
35
- ], Rt = C("coins", zt);
36
- /**
37
- * @license lucide-react v1.22.0 - ISC
38
- *
39
- * This source code is licensed under the ISC license.
40
- * See the LICENSE file in the root directory of this source tree.
41
- */
42
- const It = [
43
- ["path", { d: "M10.5 3 8 9l4 13 4-13-2.5-6", key: "b3dvk1" }],
44
- [
45
- "path",
46
- {
47
- d: "M17 3a2 2 0 0 1 1.6.8l3 4a2 2 0 0 1 .013 2.382l-7.99 10.986a2 2 0 0 1-3.247 0l-7.99-10.986A2 2 0 0 1 2.4 7.8l2.998-3.997A2 2 0 0 1 7 3z",
48
- key: "7w4byz"
49
- }
50
- ],
51
- ["path", { d: "M2 9h20", key: "16fsjt" }]
52
- ], Bt = C("gem", It);
53
- /**
54
- * @license lucide-react v1.22.0 - ISC
55
- *
56
- * This source code is licensed under the ISC license.
57
- * See the LICENSE file in the root directory of this source tree.
58
- */
59
- const Dt = [
60
- [
61
- "path",
62
- {
63
- d: "M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z",
64
- key: "q8bfy3"
65
- }
66
- ],
67
- ["path", { d: "M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14", key: "1853fq" }],
68
- ["path", { d: "M8 6v8", key: "15ugcq" }]
69
- ], Et = C("megaphone", Dt);
70
- /**
71
- * @license lucide-react v1.22.0 - ISC
72
- *
73
- * This source code is licensed under the ISC license.
74
- * See the LICENSE file in the root directory of this source tree.
75
- */
76
- const jt = [
77
- [
78
- "path",
79
- {
80
- d: "M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",
81
- key: "vktsd0"
82
- }
83
- ],
84
- ["circle", { cx: "7.5", cy: "7.5", r: ".5", fill: "currentColor", key: "kqv944" }]
85
- ], be = C("tag", jt), qt = {
86
- id: "tasks-panel",
87
- // 'pick' backs select_item (non-persisting activation, matching
88
- // AppointmentTimeline); 'dismiss' backs dismiss; 'scroll' backs
89
- // jump_to_overdue (re-anchors the viewport); 'filter' backs set_filter (the
90
- // status / type / assignee / overdue filter bar is genuinely stateful);
91
- // 'view_change' backs change_scope (the patient ↔ mine segment); 'paginate'
92
- // backs load_more (append the next page of tasks).
93
- capabilities: [
94
- "pick",
95
- "dismiss",
96
- "scroll",
97
- "filter",
98
- "view_change",
99
- "paginate"
100
- ],
101
- state: {
102
- items: {
103
- type: "Array<{ id: string; status: string }>",
104
- descriptionKey: "ui.agent.tasksPanel.state.items",
105
- description: "Currently-rendered tasks. Ids + status only — never task note / patient.",
106
- read: (s) => s.getItems()
107
- }
108
- },
109
- actions: {
110
- select_item: {
111
- safety: "read",
112
- argsType: "{ id: string }",
113
- argsSchema: {
114
- type: "object",
115
- properties: { id: { type: "string" } },
116
- required: ["id"]
117
- },
118
- idempotent: !0,
119
- descriptionKey: "ui.agent.tasksPanel.actions.selectItem",
120
- description: "Activate the task with the given id.",
121
- invoke: (s, o) => {
122
- s.selectItem(o.id);
123
- }
124
- },
125
- toggle_done: {
126
- safety: "write",
127
- argsType: "{ id: string }",
128
- argsSchema: {
129
- type: "object",
130
- properties: { id: { type: "string" } },
131
- required: ["id"]
132
- },
133
- descriptionKey: "ui.agent.tasksPanel.actions.toggleDone",
134
- description: "Request the host to toggle the done state of a task.",
135
- invoke: (s, o) => {
136
- s.toggleDone(o.id);
137
- }
138
- },
139
- dismiss: {
140
- safety: "destructive",
141
- argsType: "{ id: string }",
142
- argsSchema: {
143
- type: "object",
144
- properties: { id: { type: "string" } },
145
- required: ["id"]
146
- },
147
- idempotent: !0,
148
- descriptionKey: "ui.agent.tasksPanel.actions.dismiss",
149
- description: "Request the host to dismiss / remove the task with the given id.",
150
- invoke: (s, o) => {
151
- s.dismiss(o.id);
152
- }
153
- },
154
- jump_to_overdue: {
155
- safety: "read",
156
- idempotent: !0,
157
- descriptionKey: "ui.agent.tasksPanel.actions.jumpToOverdue",
158
- description: "Re-anchor the panel scroll on the overdue tasks.",
159
- invoke: (s) => {
160
- s.jumpToOverdue();
161
- }
162
- },
163
- set_filter: {
164
- safety: "read",
165
- argsType: "{ status?: 'todo' | 'done' | 'all'; type?: string | null; assignee?: string | null; overdueOnly?: boolean }",
166
- argsSchema: {
167
- type: "object",
168
- properties: {
169
- status: { type: "string", enum: ["todo", "done", "all"] },
170
- type: { type: ["string", "null"] },
171
- assignee: { type: ["string", "null"] },
172
- overdueOnly: { type: "boolean" }
173
- }
174
- },
175
- idempotent: !0,
176
- descriptionKey: "ui.agent.tasksPanel.actions.setFilter",
177
- description: "Set the task filters (status segment, type, assignee, overdue-only). Omitted keys are left unchanged.",
178
- invoke: (s, o) => {
179
- s.setFilter(o);
180
- }
181
- },
182
- change_scope: {
183
- safety: "read",
184
- argsType: "{ scope: 'patient' | 'mine' }",
185
- argsSchema: {
186
- type: "object",
187
- properties: { scope: { type: "string", enum: ["patient", "mine"] } },
188
- required: ["scope"]
189
- },
190
- idempotent: !0,
191
- descriptionKey: "ui.agent.tasksPanel.actions.changeScope",
192
- description: "Switch the task scope segment between this patient ('patient') and the operator's own tasks ('mine'). The host re-feeds the items.",
193
- invoke: (s, o) => {
194
- s.changeScope(o.scope);
195
- }
196
- },
197
- load_more: {
198
- safety: "read",
199
- // Requests the host to append the next page — not idempotent (each call
200
- // advances the page) and reaches the host data source.
201
- openWorld: !0,
202
- descriptionKey: "ui.agent.tasksPanel.actions.loadMore",
203
- description: "Request the host to append the next page of tasks.",
204
- invoke: (s) => {
205
- s.loadMore();
206
- }
207
- }
208
- },
209
- domHooks: {
210
- root: {
211
- attr: "data-component",
212
- value: "tasks-panel",
213
- description: "Marks the TasksPanel wrapper."
214
- },
215
- instanceId: {
216
- attr: "data-component-id",
217
- sourceProp: "id",
218
- description: "Sourced from the id prop. Required to address a specific panel from the agent."
219
- },
220
- item: {
221
- attr: "data-task-id",
222
- description: "Stable task id emitted on each rendered TaskCard inside the panel."
223
- }
224
- }
225
- }, At = 96, Ht = ft(
226
- [
227
- "ds:flex ds:flex-col ds:h-full ds:min-h-0",
228
- "ds:bg-[color:var(--card)] ds:text-[color:var(--card-foreground)]"
229
- ].join(" "),
230
- {
231
- variants: { size: { xs: "", sm: "", md: "" } },
232
- defaultVariants: { size: "xs" }
233
- }
234
- ), Tt = [
235
- "ds:flex-1 ds:min-h-0 ds:overflow-y-auto",
236
- "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]",
237
- "ds:px-[var(--spacing-sm)] ds:py-[var(--spacing-xs)]",
238
- "ds:[--tpl-mask-top:black] ds:[--tpl-mask-bottom:black]",
239
- "ds:data-[fade-top=true]:[--tpl-mask-top:transparent]",
240
- "ds:data-[fade-bottom=true]:[--tpl-mask-bottom:transparent]",
241
- "ds:[mask-image:linear-gradient(to_bottom,var(--tpl-mask-top)_0,black_var(--tpl-fade-distance,var(--spacing-lg)),black_calc(100%-var(--tpl-fade-distance,var(--spacing-lg))),var(--tpl-mask-bottom)_100%)]",
242
- "ds:motion-reduce:[mask-image:none]",
243
- "ds:[.theme-accessible_&]:[mask-image:none]",
244
- "ds:forced-colors:[mask-image:none]",
245
- "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
246
- "ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:[outline-offset:-2px]",
247
- "ds:forced-colors:focus-visible:outline-[CanvasText]"
248
- ].join(" "), Wt = "ds:shadow-[var(--shadow-sm)] ds:bg-[color:var(--card)]", Kt = {
249
- recall: { variant: "info", Icon: Et },
250
- payment: { variant: "warning", Icon: Bt },
251
- collection: { variant: "error", Icon: Rt },
252
- other: { variant: "neutral", Icon: be }
253
- }, Mt = [
254
- "overdue",
255
- "today",
256
- "tomorrow",
257
- "thisWeek",
258
- "later",
259
- "done"
260
- ];
261
- function Vt(s) {
262
- return new Date(s.getFullYear(), s.getMonth(), s.getDate());
263
- }
264
- function Pe(s) {
265
- const o = Vt(s), c = new Date(o);
266
- c.setDate(o.getDate() + 1);
267
- const p = new Date(o);
268
- p.setDate(o.getDate() + 2);
269
- const d = (o.getDay() + 6) % 7, r = new Date(o);
270
- return r.setDate(o.getDate() + (7 - d)), {
271
- startOfToday: +o,
272
- startOfTomorrow: +c,
273
- startOfDayAfter: +p,
274
- startOfNextWeek: +r
275
- };
276
- }
277
- function Ot(s, o) {
278
- if (s.status === "done") return "done";
279
- const { startOfToday: c, startOfTomorrow: p, startOfDayAfter: d, startOfNextWeek: r } = Pe(o), l = +new Date(s.dueIso);
280
- return l < c ? "overdue" : l < p ? "today" : l < d ? "tomorrow" : l < r ? "thisWeek" : "later";
281
- }
282
- function $t(s, o) {
283
- return s.status === "done" ? !1 : +new Date(s.dueIso) < Pe(o).startOfTomorrow;
284
- }
285
- function Ct(s, o) {
286
- const c = /* @__PURE__ */ new Map();
287
- for (const d of s) {
288
- const r = Ot(d, o), l = c.get(r);
289
- l ? l.push(d) : c.set(r, [d]);
290
- }
291
- const p = [];
292
- for (const d of Mt) {
293
- const r = c.get(d);
294
- !r || r.length === 0 || (r.sort((l, R) => +new Date(l.dueIso) - +new Date(R.dueIso)), p.push({ key: d, items: r }));
295
- }
296
- return p;
297
- }
298
- const Gt = pt(
299
- ({
300
- id: s,
301
- items: o,
302
- nowIso: c,
303
- title: p,
304
- size: d = "xs",
305
- onOpenTask: r,
306
- onToggleDone: l,
307
- onEditTask: R,
308
- onDismissTask: v,
309
- onAddTask: oe,
310
- readOnly: G = !1,
311
- renderItemActions: Y,
312
- scope: U,
313
- defaultScope: we,
314
- onScopeChange: I,
315
- availableScopes: g,
316
- onLoadMore: u,
317
- hasMore: xe,
318
- loadingMore: B = !1,
319
- loading: X = !1,
320
- error: P = !1,
321
- showFilters: re = !0,
322
- statusFilter: J,
323
- defaultStatusFilter: Se,
324
- onStatusFilterChange: D,
325
- typeOptions: Q,
326
- typeFilter: E,
327
- onTypeFilterChange: j,
328
- assigneeOptions: Z,
329
- assigneeFilter: q,
330
- onAssigneeFilterChange: A,
331
- overdueOnly: L,
332
- defaultOverdueOnly: _e,
333
- onOverdueOnlyChange: H,
334
- emptyTitle: Ne,
335
- emptyDescription: ze,
336
- emptyAction: Re,
337
- className: Ie,
338
- "aria-label": ie,
339
- ...Be
340
- }, De) => {
341
- const { t: n } = mt(), le = ge(), Ee = ge(), je = p ?? n("tasksPanel.title"), qe = {
342
- todo: n("tasksPanel.status.todo"),
343
- done: n("tasksPanel.status.done"),
344
- all: n("tasksPanel.status.all")
345
- }, Ae = {
346
- patient: n("tasksPanel.scope.patient"),
347
- mine: n("tasksPanel.scope.mine")
348
- }, He = {
349
- overdue: n("tasksPanel.buckets.overdue"),
350
- today: n("tasksPanel.buckets.today"),
351
- tomorrow: n("tasksPanel.buckets.tomorrow"),
352
- thisWeek: n("tasksPanel.buckets.thisWeek"),
353
- later: n("tasksPanel.buckets.later"),
354
- done: n("tasksPanel.buckets.done")
355
- }, Te = {
356
- recall: n("tasksPanel.types.recall"),
357
- payment: n("tasksPanel.types.payment"),
358
- collection: n("tasksPanel.types.collection"),
359
- other: n("tasksPanel.types.other")
360
- }, T = V(
361
- () => c ? new Date(c) : /* @__PURE__ */ new Date(),
362
- [c]
363
- ), [We, Ke] = h(
364
- we ?? (g == null ? void 0 : g[0]) ?? "patient"
365
- ), Me = U ?? We, F = f(
366
- (e) => {
367
- U === void 0 && Ke(e), I == null || I(e);
368
- },
369
- [U, I]
370
- ), [Ve, Oe] = h(
371
- Se ?? "todo"
372
- ), W = J ?? Ve, w = f(
373
- (e) => {
374
- J === void 0 && Oe(e), D == null || D(e);
375
- },
376
- [J, D]
377
- ), [$e, Ce] = h(null), K = E !== void 0 ? E : $e, x = f(
378
- (e) => {
379
- E === void 0 && Ce(e), j == null || j(e);
380
- },
381
- [E, j]
382
- ), [Ge, Ye] = h(null), M = q !== void 0 ? q : Ge, S = f(
383
- (e) => {
384
- q === void 0 && Ye(e), A == null || A(e);
385
- },
386
- [q, A]
387
- ), [Ue, Xe] = h(
388
- _e ?? !1
389
- ), ee = L ?? Ue, _ = f(
390
- (e) => {
391
- L === void 0 && Xe(e), H == null || H(e);
392
- },
393
- [L, H]
394
- ), Je = f(() => {
395
- w("todo"), x(null), S(null), _(!1);
396
- }, [w, x, S, _]), te = V(() => o.filter((e) => {
397
- const t = e.status === "done";
398
- return !(W === "todo" && t || W === "done" && !t || K && e.type !== K || M && (e.assignee ?? "") !== M || ee && !$t(e, T));
399
- }), [
400
- o,
401
- W,
402
- K,
403
- M,
404
- ee,
405
- T
406
- ]), ce = V(
407
- () => Ct(te, T),
408
- [te, T]
409
- ), N = O(null), de = O(null), [Qe, Ze] = h(!1), [Le, Fe] = h(!1), y = f(() => {
410
- const e = N.current;
411
- if (!e) return;
412
- const { scrollTop: t, scrollHeight: i, clientHeight: m } = e;
413
- Ze(t > 1), Fe(t + m < i - 1);
414
- }, []);
415
- ye(() => {
416
- y();
417
- }, [ce, y]), ye(() => {
418
- const e = N.current;
419
- if (!e || typeof ResizeObserver > "u") return;
420
- const t = new ResizeObserver(y);
421
- return t.observe(e), () => t.disconnect();
422
- }, [y]);
423
- const se = xe ?? !!u, et = f(() => {
424
- y();
425
- const e = N.current;
426
- if (!e) return;
427
- const { scrollTop: t, scrollHeight: i, clientHeight: m } = e;
428
- u && se && !B && i - t - m <= At && u();
429
- }, [y, u, se, B]), pe = f(() => {
430
- const e = N.current, t = de.current;
431
- if (!e || !t) {
432
- e == null || e.scrollTo({ top: 0 });
433
- return;
434
- }
435
- const i = t.getBoundingClientRect().top - e.getBoundingClientRect().top;
436
- e.scrollTo({ top: e.scrollTop + i });
437
- }, []), z = O(o);
438
- z.current = o;
439
- const ue = O(null);
440
- ut(De, () => ue.current, []);
441
- const tt = V(
442
- () => ({
443
- getItems: () => z.current.map((e) => ({
444
- id: e.id,
445
- status: e.status ?? "open"
446
- })),
447
- selectItem: (e) => {
448
- const t = z.current.find((i) => i.id === e);
449
- t && (r == null || r(t));
450
- },
451
- toggleDone: (e) => {
452
- const t = z.current.find((i) => i.id === e);
453
- t && (l == null || l(t));
454
- },
455
- dismiss: (e) => {
456
- const t = z.current.find((i) => i.id === e);
457
- t && (v == null || v(t));
458
- },
459
- jumpToOverdue: pe,
460
- setFilter: (e) => {
461
- e.status !== void 0 && w(e.status), e.type !== void 0 && x(e.type), e.assignee !== void 0 && S(e.assignee), e.overdueOnly !== void 0 && _(e.overdueOnly);
462
- },
463
- changeScope: F,
464
- loadMore: () => u == null ? void 0 : u()
465
- }),
466
- [
467
- r,
468
- l,
469
- v,
470
- pe,
471
- w,
472
- x,
473
- S,
474
- _,
475
- F,
476
- u
477
- ]
478
- );
479
- bt(qt, tt, s);
480
- const st = (e) => {
481
- if (!e.type) return null;
482
- const t = Kt[e.type], i = (t == null ? void 0 : t.variant) ?? "neutral", m = (t == null ? void 0 : t.Icon) ?? be, dt = e.typeLabel ?? Te[e.type] ?? e.type;
483
- return /* @__PURE__ */ a(
484
- kt,
485
- {
486
- variant: i,
487
- size: "sm",
488
- leading: /* @__PURE__ */ a(m, { "aria-hidden": "true" }),
489
- children: dt
490
- }
491
- );
492
- }, at = (e) => {
493
- if (G) return null;
494
- const t = e.status === "done";
495
- return /* @__PURE__ */ k(ke, { children: [
496
- l ? /* @__PURE__ */ a(
497
- $,
498
- {
499
- icon: t ? /* @__PURE__ */ a(xt, {}) : /* @__PURE__ */ a(St, {}),
500
- intent: "ghost",
501
- size: "sm",
502
- "aria-label": n(
503
- t ? "tasksPanel.markNotDone" : "tasksPanel.markDone"
504
- ),
505
- onClick: () => l(e)
506
- }
507
- ) : null,
508
- R ? /* @__PURE__ */ a(
509
- $,
510
- {
511
- icon: /* @__PURE__ */ a(_t, {}),
512
- intent: "ghost",
513
- size: "sm",
514
- "aria-label": n("tasksPanel.edit"),
515
- onClick: () => R(e)
516
- }
517
- ) : null,
518
- v ? /* @__PURE__ */ a(
519
- $,
520
- {
521
- icon: /* @__PURE__ */ a(Nt, {}),
522
- intent: "ghost",
523
- size: "sm",
524
- "aria-label": n("tasksPanel.dismiss"),
525
- onClick: () => v(e)
526
- }
527
- ) : null
528
- ] });
529
- }, nt = (e) => {
530
- const i = (G ? null : Y == null ? void 0 : Y(e)) ?? at(e), m = st(e);
531
- if (!(!m && !i))
532
- return /* @__PURE__ */ k(ke, { children: [
533
- m,
534
- i
535
- ] });
536
- }, ot = !X && !P && o.length === 0, rt = !X && !P && o.length > 0 && te.length === 0, fe = (e) => /* @__PURE__ */ a(
537
- "div",
538
- {
539
- "aria-hidden": "true",
540
- className: "ds:px-[var(--spacing-sm)] ds:py-[var(--spacing-xs)]",
541
- children: /* @__PURE__ */ a(vt, { variant: "rectangular", height: "3.5rem" })
542
- },
543
- e
544
- );
545
- let b;
546
- P ? b = /* @__PURE__ */ a("div", { className: "ds:flex-1 ds:min-h-0 ds:p-[var(--spacing-md)]", children: typeof P == "boolean" ? /* @__PURE__ */ a(
547
- ne,
548
- {
549
- variant: "error",
550
- size: "sm",
551
- title: n("tasksPanel.error.title"),
552
- description: n("tasksPanel.error.description")
553
- }
554
- ) : P }) : X ? b = /* @__PURE__ */ a("div", { className: "ds:flex-1 ds:min-h-0 ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]", children: [0, 1, 2, 3].map((e) => fe(`skeleton-${e}`)) }) : ot ? b = /* @__PURE__ */ a("div", { className: "ds:flex-1 ds:min-h-0 ds:p-[var(--spacing-md)]", children: /* @__PURE__ */ a(
555
- ne,
556
- {
557
- variant: "first-use",
558
- size: "sm",
559
- title: Ne ?? n("tasksPanel.empty.title"),
560
- description: ze ?? n("tasksPanel.empty.description"),
561
- primaryAction: Re
562
- }
563
- ) }) : rt ? b = /* @__PURE__ */ a("div", { className: "ds:flex-1 ds:min-h-0 ds:p-[var(--spacing-md)]", children: /* @__PURE__ */ a(
564
- ne,
565
- {
566
- variant: "no-results",
567
- size: "sm",
568
- title: n("tasksPanel.filteredEmpty.title"),
569
- description: n("tasksPanel.filteredEmpty.description"),
570
- primaryAction: {
571
- label: n("tasksPanel.filteredEmpty.clear"),
572
- onClick: Je
573
- }
574
- }
575
- ) }) : b = /* @__PURE__ */ k(
576
- "div",
577
- {
578
- ref: N,
579
- tabIndex: 0,
580
- onScroll: et,
581
- "data-fade-top": Qe ? "true" : void 0,
582
- "data-fade-bottom": Le ? "true" : void 0,
583
- className: Tt,
584
- children: [
585
- /* @__PURE__ */ a("ol", { className: "ds:m-0 ds:flex ds:list-none ds:flex-col ds:gap-[var(--spacing-md)] ds:p-0", children: ce.map((e) => /* @__PURE__ */ k(
586
- "li",
587
- {
588
- className: "ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)]",
589
- children: [
590
- /* @__PURE__ */ a(
591
- Yt,
592
- {
593
- bucketKey: e.key,
594
- count: e.items.length,
595
- label: He[e.key],
596
- headerRef: e.key === "overdue" ? de : void 0
597
- }
598
- ),
599
- /* @__PURE__ */ a("ul", { className: "ds:m-0 ds:flex ds:list-none ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-0", children: e.items.map((t) => /* @__PURE__ */ a(
600
- yt,
601
- {
602
- item: t,
603
- size: d,
604
- onActivate: r ? () => r(t) : void 0,
605
- actions: nt(t),
606
- className: Wt,
607
- "data-task-id": t.id
608
- },
609
- t.id
610
- )) })
611
- ]
612
- },
613
- e.key
614
- )) }),
615
- B ? fe("loading-more") : null,
616
- !B && se && u ? /* @__PURE__ */ a("div", { className: "ds:flex ds:justify-center ds:py-[var(--spacing-sm)]", children: /* @__PURE__ */ a(ae, { intent: "ghost", size: "sm", onClick: u, children: n("tasksPanel.loadMore") }) }) : null
617
- ]
618
- }
619
- );
620
- const me = ((g == null ? void 0 : g.length) ?? 0) > 1, it = ["todo", "done", "all"], lt = oe && !G ? /* @__PURE__ */ a(
621
- $,
622
- {
623
- icon: /* @__PURE__ */ a(Pt, {}),
624
- intent: "outline",
625
- size: "sm",
626
- "aria-label": n("tasksPanel.add"),
627
- onClick: oe
628
- }
629
- ) : void 0, ct = me || re ? /* @__PURE__ */ k("div", { className: "ds:flex ds:w-full ds:flex-col ds:gap-[var(--spacing-sm)]", children: [
630
- me ? /* @__PURE__ */ a(he, { label: n("tasksPanel.scope.label"), children: g.map((e) => {
631
- const t = Me === e;
632
- return /* @__PURE__ */ a(
633
- ae,
634
- {
635
- intent: t ? "primary" : "outline",
636
- size: "sm",
637
- "aria-pressed": t,
638
- onClick: () => F(e),
639
- children: Ae[e]
640
- },
641
- e
642
- );
643
- }) }) : null,
644
- re ? /* @__PURE__ */ k("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-sm)]", children: [
645
- /* @__PURE__ */ a(he, { label: n("tasksPanel.status.label"), children: it.map((e) => {
646
- const t = W === e;
647
- return /* @__PURE__ */ a(
648
- ae,
649
- {
650
- intent: t ? "primary" : "outline",
651
- size: "sm",
652
- "aria-pressed": t,
653
- onClick: () => w(e),
654
- children: qe[e]
655
- },
656
- e
657
- );
658
- }) }),
659
- Q && Q.length > 0 ? /* @__PURE__ */ a(
660
- ve,
661
- {
662
- size: "sm",
663
- clearable: !0,
664
- "aria-label": n("tasksPanel.type.label"),
665
- placeholder: n("tasksPanel.type.placeholder"),
666
- options: Q,
667
- value: K ?? "",
668
- onValueChange: (e) => x(e || null)
669
- }
670
- ) : null,
671
- Z && Z.length > 0 ? /* @__PURE__ */ a(
672
- ve,
673
- {
674
- size: "sm",
675
- clearable: !0,
676
- "aria-label": n("tasksPanel.assignee.label"),
677
- placeholder: n("tasksPanel.assignee.placeholder"),
678
- options: Z,
679
- value: M ?? "",
680
- onValueChange: (e) => S(e || null)
681
- }
682
- ) : null,
683
- /* @__PURE__ */ a(
684
- ht,
685
- {
686
- id: Ee,
687
- size: "sm",
688
- label: n("tasksPanel.overdueOnly"),
689
- checked: ee,
690
- onCheckedChange: _
691
- }
692
- )
693
- ] }) : null
694
- ] }) : void 0;
695
- return /* @__PURE__ */ k(
696
- "section",
697
- {
698
- ref: ue,
699
- "data-component": "tasks-panel",
700
- "data-component-id": s,
701
- "aria-labelledby": ie ? void 0 : le,
702
- "aria-label": ie,
703
- className: Ht({ size: d, className: Ie }),
704
- ...Be,
705
- children: [
706
- /* @__PURE__ */ a(
707
- gt,
708
- {
709
- title: je,
710
- icon: /* @__PURE__ */ a(wt, {}),
711
- headingId: le,
712
- actions: lt,
713
- filters: ct
714
- }
715
- ),
716
- b
717
- ]
718
- }
719
- );
720
- }
721
- );
722
- Gt.displayName = "TasksPanel";
723
- function Yt({
724
- bucketKey: s,
725
- count: o,
726
- label: c,
727
- headerRef: p
728
- }) {
729
- return /* @__PURE__ */ k(
730
- "div",
731
- {
732
- ref: p,
733
- "data-bucket": s,
734
- className: [
735
- "ds:sticky ds:top-0 ds:z-[2] ds:bg-[color:var(--card)] ds:py-[var(--spacing-2xs)]",
736
- "ds:flex ds:items-center ds:gap-[var(--spacing-2xs)] type-eyebrow",
737
- s === "overdue" ? "ds:text-[color:var(--destructive)] ds:font-semibold" : s === "today" ? "ds:text-[color:var(--primary)] ds:font-semibold" : "ds:text-[color:var(--muted-foreground)]"
738
- ].join(" "),
739
- children: [
740
- s === "today" ? /* @__PURE__ */ a(
741
- "span",
742
- {
743
- "aria-hidden": "true",
744
- className: "ds:size-1.5 ds:shrink-0 ds:rounded-[var(--radius-full)] ds:bg-[color:var(--primary)]"
745
- }
746
- ) : null,
747
- c,
748
- /* @__PURE__ */ a("span", { className: "ds:text-[color:var(--muted-foreground)]", children: `(${o})` })
749
- ]
750
- }
751
- );
752
- }
753
- export {
754
- Gt as T,
755
- qt as t
756
- };
757
- //# sourceMappingURL=tasks-panel-DQuaVvl5.js.map