@alfadocs/ui-kit 0.69.0 → 0.70.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 (261) hide show
  1. package/dist/_chunks/{agenda-card-BxSFkqgY.js → agenda-card-BQ-IKAru.js} +2 -2
  2. package/dist/_chunks/{agenda-tray-g0kg7HwB.js → agenda-tray-CGXRk58j.js} +2 -2
  3. package/dist/_chunks/{ai-consent-banner-CXlsNX1c.js → ai-consent-banner-Be-h9mRI.js} +3 -3
  4. package/dist/_chunks/ai-tools-rail-B5NEghsp.js +511 -0
  5. package/dist/_chunks/{alert-_mUKLmwA.js → alert-CHYZ96tR.js} +150 -96
  6. package/dist/_chunks/{anamnesis-card-DRmE24OQ.js → anamnesis-card-DvYCa16e.js} +2 -2
  7. package/dist/_chunks/anatomy-scheme-CJB6dI6p.js +2445 -0
  8. package/dist/_chunks/annotation-marker-qt5R9WZX.js +120 -0
  9. package/dist/_chunks/{antenatal-schedule-timeline-35ebkcZT.js → antenatal-schedule-timeline-CwXrQRm1.js} +2 -2
  10. package/dist/_chunks/appointment-card-C06aZqA7.js +310 -0
  11. package/dist/_chunks/appointment-timeline-BJM0S_Fg.js +386 -0
  12. package/dist/_chunks/appointment-tray-DRRw5ROi.js +193 -0
  13. package/dist/_chunks/{audio-recorder-DYXXnGug.js → audio-recorder-Cpdk5qpQ.js} +2 -2
  14. package/dist/_chunks/{badge-CqGsX32l.js → badge-DCOqV9mI.js} +32 -27
  15. package/dist/_chunks/{bishop-score-PJI3AXzA.js → bishop-score-DnYWtZa_.js} +2 -2
  16. package/dist/_chunks/{bmi-calculator-BZtIJ53x.js → bmi-calculator-zjeY4E7J.js} +2 -2
  17. package/dist/_chunks/{booking-C3VqFReX.js → booking-DUBI0oqt.js} +4 -4
  18. package/dist/_chunks/{care-plan-card-CvFGXa2z.js → care-plan-card-C5sTfY9G.js} +5 -5
  19. package/dist/_chunks/{care-plan-entry-card-C3E_gClk.js → care-plan-entry-card-CXnxGCWA.js} +5 -5
  20. package/dist/_chunks/care-plan-header-BUwqDTtz.js +206 -0
  21. package/dist/_chunks/clinical-note-card-BUvNMNGL.js +436 -0
  22. package/dist/_chunks/{contact-profile-card-Dramqa9C.js → contact-profile-card-DDPwRFiP.js} +2 -2
  23. package/dist/_chunks/control-room-rail-Y8ryLYsP.js +229 -0
  24. package/dist/_chunks/{cycle-calculator-DmRGJNaT.js → cycle-calculator-CCmPwcBl.js} +2 -2
  25. package/dist/_chunks/{dependent-selector-CG_FOHya.js → dependent-selector-DUV4thxX.js} +2 -2
  26. package/dist/_chunks/{document-scanner-CTubA0-N.js → document-scanner-C_AxLooF.js} +3 -3
  27. package/dist/_chunks/{due-date-calculator-BTmsIQqD.js → due-date-calculator-Brdj-euS.js} +3 -3
  28. package/dist/_chunks/editable-currency-cell-renderer-C9twtALM.js +328 -0
  29. package/dist/_chunks/email-input-DJ7EXklP.js +397 -0
  30. package/dist/_chunks/{entity-card-COhmqHly.js → entity-card-9_62gY7l.js} +38 -20
  31. package/dist/_chunks/entity-summary-BxRjFh_4.js +138 -0
  32. package/dist/_chunks/{fetal-weight-CRz7KE2D.js → fetal-weight-DNCkyeVo.js} +2 -2
  33. package/dist/_chunks/field-value-NXYczdpO.js +415 -0
  34. package/dist/_chunks/{file-upload-5ScQd4fE.js → file-upload-DwZcAK8D.js} +2 -1
  35. package/dist/_chunks/{freemium-paywall-DZ2mBS3w.js → freemium-paywall-WYlNO7yT.js} +2 -2
  36. package/dist/_chunks/{gestational-age-calculator-BleUdhbI.js → gestational-age-calculator-CF2ISaYQ.js} +3 -3
  37. package/dist/_chunks/hash-CysBBS_N.js +17 -0
  38. package/dist/_chunks/{hcg-doubling-CnjDXX6U.js → hcg-doubling-C7bmuaU3.js} +2 -2
  39. package/dist/_chunks/{actions-cell-renderer-DrcaxB0w.js → link-cell-renderer-CTXqtXV-.js} +715 -592
  40. package/dist/_chunks/lock-CKOIn0IK.js +15 -0
  41. package/dist/_chunks/{marketplace-app-shell-6T9W4Knl.js → marketplace-app-shell-Skhfp6vK.js} +3 -3
  42. package/dist/_chunks/notes-panel-ay8_lPrA.js +158 -0
  43. package/dist/_chunks/{notification-card-BiESdm8q.js → notification-card-D2jiKSJJ.js} +27 -23
  44. package/dist/_chunks/{notification-tray-Btb9oQeZ.js → notification-tray-AEun6DN2.js} +2 -2
  45. package/dist/_chunks/{operator-hero-CP2Nhupm.js → operator-hero-CR0Rqh4-.js} +3 -3
  46. package/dist/_chunks/patient-details-Dlhqb5ig.js +675 -0
  47. package/dist/_chunks/{patient-search-CBC_ySF6.js → patient-search-Be6cLrHR.js} +2 -2
  48. package/dist/_chunks/patient-summary-card-WySCMwwA.js +437 -0
  49. package/dist/_chunks/patient-table-CHxf3Oqk.js +1110 -0
  50. package/dist/_chunks/{payment-form-DvjwYVIT.js → payment-form-CxqIXqw7.js} +2 -2
  51. package/dist/_chunks/{payment-request-card-DioWKBUq.js → payment-request-card-BcZJwu9z.js} +125 -136
  52. package/dist/_chunks/{pdf-viewer-D6BPfW2D.js → pdf-viewer-QfebdLOd.js} +192 -214
  53. package/dist/_chunks/{periodontal-chart-card-BuDEMbHE.js → periodontal-chart-card-hRRJY1NN.js} +2 -2
  54. package/dist/_chunks/{practice-results-KrTHqZua.js → practice-results-C6qDfxos.js} +3 -3
  55. package/dist/_chunks/{pregnancy-dating-DORUAOHB.js → pregnancy-dating-CRVWswD-.js} +3 -3
  56. package/dist/_chunks/{pregnancy-weight-gain-DVz4rr7-.js → pregnancy-weight-gain-BUNpTsH-.js} +2 -2
  57. package/dist/_chunks/radiograph-panel.agent-CAX-C3g3.js +558 -0
  58. package/dist/_chunks/{rich-text-editor-BsV7zUdg.js → rich-text-editor-DlCqPixb.js} +410 -394
  59. package/dist/_chunks/{sign-document-B4DeRhTe.js → sign-document-By6hMOra.js} +2 -2
  60. package/dist/_chunks/{stepper-accordion-Dki6r9ZE.js → stepper-accordion-DC-H-8v4.js} +38 -48
  61. package/dist/_chunks/tab-bar-Bv9nGNdO.js +262 -0
  62. package/dist/_chunks/tooth-scheme-BhQoPNBD.js +2131 -0
  63. package/dist/_chunks/{transaction-chip-DK84XCBU.js → transaction-chip-CscoQbxF.js} +88 -61
  64. package/dist/_chunks/use-clamp-overflow-DQE2kwZ9.js +20 -0
  65. package/dist/_chunks/use-overflow-collapse-BIOzKbni.js +32 -0
  66. package/dist/_chunks/use-persistent-state-nZwZAnE9.js +24 -0
  67. package/dist/_chunks/{warning-stack-BsgaEbL8.js → warning-stack--sTrrBDA.js} +86 -101
  68. package/dist/_chunks/{workflow-map-Bdam9pGp.js → workflow-map-Dy8mLCqF.js} +3 -3
  69. package/dist/_chunks/zoom-out-CgVtf2Wx.js +29 -0
  70. package/dist/agent/index.js +5 -4
  71. package/dist/agent/types.d.ts +19 -2
  72. package/dist/agent-catalog.json +1253 -86
  73. package/dist/agent-i18n/en.json +108 -6
  74. package/dist/components/_shared/entity-card/entity-card.d.ts +6 -0
  75. package/dist/components/_shared/entity-card/index.d.ts +1 -1
  76. package/dist/components/_shared/field-value.d.ts +21 -0
  77. package/dist/components/_shared/field-visibility-cog.d.ts +20 -0
  78. package/dist/components/_shared/field-visibility.d.ts +36 -0
  79. package/dist/components/_shared/patient-fields.d.ts +119 -0
  80. package/dist/components/agenda-card/index.js +1 -1
  81. package/dist/components/agenda-tray/index.js +1 -1
  82. package/dist/components/ai-consent-banner/index.js +1 -1
  83. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts +75 -0
  84. package/dist/components/ai-tools-rail/index.js +1 -1
  85. package/dist/components/alert/alert.d.ts +5 -0
  86. package/dist/components/alert/index.js +1 -1
  87. package/dist/components/anamnesis-card/index.js +1 -1
  88. package/dist/components/anatomy-scheme/anatomy-face-paths.d.ts +15 -0
  89. package/dist/components/anatomy-scheme/anatomy-muscle-paths.d.ts +20 -0
  90. package/dist/components/anatomy-scheme/anatomy-scheme-data.d.ts +121 -0
  91. package/dist/components/anatomy-scheme/anatomy-scheme.agent.d.ts +6 -0
  92. package/dist/components/anatomy-scheme/anatomy-scheme.d.ts +69 -0
  93. package/dist/components/anatomy-scheme/index.d.ts +6 -0
  94. package/dist/components/anatomy-scheme/index.js +17 -0
  95. package/dist/components/annotation-marker/annotation-marker.d.ts +33 -0
  96. package/dist/components/annotation-marker/index.d.ts +3 -0
  97. package/dist/components/annotation-marker/index.js +7 -0
  98. package/dist/components/appointment-card/appointment-card.d.ts +25 -1
  99. package/dist/components/appointment-card/index.js +6 -5
  100. package/dist/components/appointment-timeline/appointment-timeline.agent.d.ts +4 -0
  101. package/dist/components/appointment-timeline/appointment-timeline.d.ts +66 -0
  102. package/dist/components/appointment-timeline/index.d.ts +4 -0
  103. package/dist/components/appointment-timeline/index.js +6 -0
  104. package/dist/components/audio-recorder/index.js +1 -1
  105. package/dist/components/badge/badge.d.ts +6 -2
  106. package/dist/components/badge/index.js +1 -1
  107. package/dist/components/bishop-score/index.js +1 -1
  108. package/dist/components/bmi-calculator/index.js +1 -1
  109. package/dist/components/booking/index.js +1 -1
  110. package/dist/components/care-plan-card/index.js +1 -1
  111. package/dist/components/care-plan-entry-card/index.js +1 -1
  112. package/dist/components/care-plan-header/care-plan-header.agent.d.ts +4 -0
  113. package/dist/components/care-plan-header/care-plan-header.d.ts +100 -0
  114. package/dist/components/care-plan-header/index.d.ts +4 -0
  115. package/dist/components/care-plan-header/index.js +6 -0
  116. package/dist/components/clinical-note-card/clinical-note-card.d.ts +21 -1
  117. package/dist/components/clinical-note-card/index.js +1 -1
  118. package/dist/components/contact-profile-card/index.js +1 -1
  119. package/dist/components/control-room-rail/control-room-context.d.ts +53 -0
  120. package/dist/components/control-room-rail/control-room-rail.d.ts +35 -0
  121. package/dist/components/control-room-rail/index.d.ts +5 -0
  122. package/dist/components/control-room-rail/index.js +9 -0
  123. package/dist/components/cycle-calculator/index.js +1 -1
  124. package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts +18 -0
  125. package/dist/components/data-table/index.d.ts +1 -1
  126. package/dist/components/data-table/index.js +32 -31
  127. package/dist/components/dependent-selector/index.js +1 -1
  128. package/dist/components/document-scanner/index.js +1 -1
  129. package/dist/components/due-date-calculator/index.js +2 -2
  130. package/dist/components/email-input/index.js +1 -1
  131. package/dist/components/entity-summary/entity-summary.d.ts +43 -0
  132. package/dist/components/entity-summary/index.d.ts +3 -0
  133. package/dist/components/entity-summary/index.js +5 -0
  134. package/dist/components/fetal-weight/index.js +1 -1
  135. package/dist/components/file-upload/index.js +1 -1
  136. package/dist/components/freemium-paywall/index.js +1 -1
  137. package/dist/components/gestational-age-calculator/index.js +1 -1
  138. package/dist/components/hcg-doubling/index.js +1 -1
  139. package/dist/components/index.d.ts +9 -0
  140. package/dist/components/notes-panel/index.d.ts +3 -0
  141. package/dist/components/notes-panel/index.js +5 -0
  142. package/dist/components/notes-panel/notes-panel.d.ts +64 -0
  143. package/dist/components/notification-card/index.js +1 -1
  144. package/dist/components/notification-tray/index.js +1 -1
  145. package/dist/components/operator-hero/index.js +1 -1
  146. package/dist/components/patient-details/index.d.ts +5 -0
  147. package/dist/components/patient-details/index.js +6 -0
  148. package/dist/components/patient-details/patient-details.agent.d.ts +4 -0
  149. package/dist/components/patient-details/patient-details.d.ts +96 -0
  150. package/dist/components/patient-search/index.js +1 -1
  151. package/dist/components/patient-summary-card/index.js +1 -1
  152. package/dist/components/patient-summary-card/patient-summary-card.d.ts +40 -1
  153. package/dist/components/patient-table/columns.d.ts +69 -40
  154. package/dist/components/patient-table/index.d.ts +2 -6
  155. package/dist/components/patient-table/index.js +8 -9
  156. package/dist/components/patient-table/patient-table.d.ts +38 -4
  157. package/dist/components/patient-table/types.d.ts +52 -2
  158. package/dist/components/patient-table/use-responsive-columns.d.ts +8 -6
  159. package/dist/components/payment-card/index.js +1 -1
  160. package/dist/components/payment-form/index.js +1 -1
  161. package/dist/components/pdf-viewer/index.js +1 -1
  162. package/dist/components/periodontal-chart-card/index.js +1 -1
  163. package/dist/components/practice-results/index.js +1 -1
  164. package/dist/components/pregnancy-dating/index.js +1 -1
  165. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  166. package/dist/components/radiograph-panel/index.d.ts +4 -0
  167. package/dist/components/radiograph-panel/index.js +7 -0
  168. package/dist/components/radiograph-panel/radiograph-panel.agent.d.ts +13 -0
  169. package/dist/components/radiograph-panel/radiograph-panel.d.ts +36 -0
  170. package/dist/components/rich-text-editor/index.js +1 -1
  171. package/dist/components/sidebar/index.js +1 -1
  172. package/dist/components/sign-document/index.js +1 -1
  173. package/dist/components/stepper-accordion/index.js +1 -1
  174. package/dist/components/tab-bar/index.js +1 -1
  175. package/dist/components/tab-bar/tab-bar.d.ts +18 -1
  176. package/dist/components/tooth-scheme/index.d.ts +2 -2
  177. package/dist/components/tooth-scheme/index.js +30 -23
  178. package/dist/components/tooth-scheme/tooth-data.d.ts +112 -1
  179. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts +2 -2
  180. package/dist/components/tooth-scheme/tooth-scheme.d.ts +75 -11
  181. package/dist/components/transaction-chip/index.js +1 -1
  182. package/dist/components/transaction-chip/transaction-chip.d.ts +2 -2
  183. package/dist/components/warning-stack/index.js +1 -1
  184. package/dist/components/warning-stack/warning-stack.d.ts +10 -7
  185. package/dist/components/workflow/index.js +1 -1
  186. package/dist/hooks/index.d.ts +1 -0
  187. package/dist/hooks/index.js +24 -22
  188. package/dist/hooks/use-clamp-overflow.d.ts +19 -0
  189. package/dist/hooks/use-overflow-collapse.d.ts +46 -0
  190. package/dist/hooks/use-persistent-state.d.ts +7 -1
  191. package/dist/hooks/use-scroll-overflow.d.ts +36 -0
  192. package/dist/i18n/locales/ar.d.ts +308 -24
  193. package/dist/i18n/locales/ar.js +322 -27
  194. package/dist/i18n/locales/de.d.ts +308 -24
  195. package/dist/i18n/locales/de.js +322 -27
  196. package/dist/i18n/locales/el.d.ts +308 -24
  197. package/dist/i18n/locales/el.js +322 -27
  198. package/dist/i18n/locales/en.d.ts +309 -32
  199. package/dist/i18n/locales/en.js +323 -35
  200. package/dist/i18n/locales/es.d.ts +308 -24
  201. package/dist/i18n/locales/es.js +322 -27
  202. package/dist/i18n/locales/fr.d.ts +308 -24
  203. package/dist/i18n/locales/fr.js +322 -27
  204. package/dist/i18n/locales/hi.d.ts +308 -24
  205. package/dist/i18n/locales/hi.js +322 -27
  206. package/dist/i18n/locales/it.d.ts +308 -24
  207. package/dist/i18n/locales/it.js +322 -27
  208. package/dist/i18n/locales/ja.d.ts +308 -24
  209. package/dist/i18n/locales/ja.js +322 -27
  210. package/dist/i18n/locales/nl.d.ts +308 -24
  211. package/dist/i18n/locales/nl.js +322 -27
  212. package/dist/i18n/locales/pl.d.ts +308 -24
  213. package/dist/i18n/locales/pl.js +322 -27
  214. package/dist/i18n/locales/pt.d.ts +308 -24
  215. package/dist/i18n/locales/pt.js +322 -27
  216. package/dist/i18n/locales/ro.d.ts +308 -24
  217. package/dist/i18n/locales/ro.js +322 -27
  218. package/dist/i18n/locales/ru.d.ts +308 -24
  219. package/dist/i18n/locales/ru.js +322 -27
  220. package/dist/i18n/locales/sq.d.ts +308 -24
  221. package/dist/i18n/locales/sq.js +322 -27
  222. package/dist/i18n/locales/sv.d.ts +308 -24
  223. package/dist/i18n/locales/sv.js +322 -27
  224. package/dist/i18n/locales/tr.d.ts +308 -24
  225. package/dist/i18n/locales/tr.js +322 -27
  226. package/dist/i18n/locales/zh.d.ts +308 -24
  227. package/dist/i18n/locales/zh.js +322 -27
  228. package/dist/index.js +672 -623
  229. package/dist/locales/ar.json +311 -27
  230. package/dist/locales/de.json +311 -27
  231. package/dist/locales/el.json +311 -27
  232. package/dist/locales/en.json +311 -27
  233. package/dist/locales/es.json +311 -27
  234. package/dist/locales/fr.json +311 -27
  235. package/dist/locales/hi.json +311 -27
  236. package/dist/locales/it.json +311 -27
  237. package/dist/locales/ja.json +311 -27
  238. package/dist/locales/nl.json +311 -27
  239. package/dist/locales/pl.json +311 -27
  240. package/dist/locales/pt.json +311 -27
  241. package/dist/locales/ro.json +311 -27
  242. package/dist/locales/ru.json +311 -27
  243. package/dist/locales/sq.json +311 -27
  244. package/dist/locales/sv.json +311 -27
  245. package/dist/locales/tr.json +311 -27
  246. package/dist/locales/zh.json +311 -27
  247. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  248. package/dist/tokens.css +1 -1
  249. package/package.json +37 -1
  250. package/dist/_chunks/ai-tools-rail-BA_sqy1A.js +0 -373
  251. package/dist/_chunks/appointment-tray-CZtvtaH-.js +0 -431
  252. package/dist/_chunks/clinical-note-card-DqQYf_D4.js +0 -333
  253. package/dist/_chunks/editable-currency-cell-renderer-kgqp_mIw.js +0 -448
  254. package/dist/_chunks/email-input-B_Y55f5G.js +0 -396
  255. package/dist/_chunks/patient-summary-card-B836_fDB.js +0 -435
  256. package/dist/_chunks/patient-table-CDuosVru.js +0 -889
  257. package/dist/_chunks/tab-bar-B1ovILzh.js +0 -105
  258. package/dist/_chunks/tooth-scheme-yBr53cvv.js +0 -1330
  259. package/dist/_chunks/use-persistent-state-i23OWy6G.js +0 -24
  260. package/dist/components/patient-table/cell-renderers/contact-cell.d.ts +0 -45
  261. package/dist/components/patient-table/cell-renderers/patient-identity-cell.d.ts +0 -26
@@ -1,16 +1,16 @@
1
- import { jsxs as u, jsx as e, Fragment as dn } from "react/jsx-runtime";
1
+ import { jsxs as u, jsx as e, Fragment as an } from "react/jsx-runtime";
2
2
  import { forwardRef as cn, useId as P, useState as y, useEffect as f, useMemo as U, useRef as N, useCallback as b } from "react";
3
- import { c as X } from "./index-D2ZczOXr.js";
3
+ import { c as dn } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as ln } from "react-i18next";
5
5
  import { u as un } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
6
- import { A as C } from "./alert-_mUKLmwA.js";
6
+ import { A as C } from "./alert-CHYZ96tR.js";
7
7
  import { B as fn } from "./button-DD_0Xdmr.js";
8
8
  import { I as mn } from "./icon-button-LqoiKcUN.js";
9
9
  import { X as gn } from "./x-CCcI3eJp.js";
10
10
  import { C as hn } from "./chevron-down-BX_NP2Yh.js";
11
- const pn = X(
11
+ const pn = dn(
12
12
  [
13
- "ds:flex ds:flex-col",
13
+ "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]",
14
14
  "ds:rounded-[var(--radius-lg)]",
15
15
  "ds:bg-[color:var(--card)] ds:text-[color:var(--card-foreground)]",
16
16
  "ds:shadow-[var(--shadow-card)]",
@@ -19,10 +19,6 @@ const pn = X(
19
19
  ].join(" "),
20
20
  {
21
21
  variants: {
22
- size: {
23
- sm: "ds:gap-[var(--spacing-sm)]",
24
- md: "ds:gap-[var(--spacing-md)]"
25
- },
26
22
  // `stretch: true` fills the parent layout cell — mirrors the `stretch`
27
23
  // prop on `Card` so a WarningStack rendered next to a Card in a grid
28
24
  // row ends up at matching height.
@@ -32,26 +28,14 @@ const pn = X(
32
28
  }
33
29
  },
34
30
  defaultVariants: {
35
- size: "md",
36
31
  stretch: !1
37
32
  }
38
33
  }
39
- ), wn = X(
40
- [
41
- "ds:grid ds:grid-cols-1",
42
- "ds:@3xl/warning-stack:grid-cols-2",
43
- "ds:@3xl/warning-stack:[&>li:nth-child(odd):last-child]:col-span-full"
44
- ].join(" "),
45
- {
46
- variants: {
47
- size: {
48
- sm: "ds:gap-[var(--spacing-sm)]",
49
- md: "ds:gap-[var(--spacing-md)]"
50
- }
51
- },
52
- defaultVariants: { size: "md" }
53
- }
54
- ), vn = [
34
+ ), wn = [
35
+ "ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)]",
36
+ "ds:@3xl/warning-stack:grid-cols-2",
37
+ "ds:@3xl/warning-stack:[&>li:nth-child(odd):last-child]:col-span-full"
38
+ ].join(" "), vn = [
55
39
  "ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)] ds:self-start"
56
40
  ].join(" "), Sn = 250;
57
41
  function xn() {
@@ -59,64 +43,64 @@ function xn() {
59
43
  const i = window.getComputedStyle(document.documentElement).getPropertyValue("--animation-duration").trim(), l = parseFloat(i);
60
44
  return Number.isFinite(l) ? i.endsWith("ms") ? l : l * 1e3 : 200;
61
45
  }
62
- function kn(o, i) {
46
+ function kn(a, i) {
63
47
  return [
64
48
  "ds:grid ds:transition-[grid-template-rows]",
65
49
  "ds:duration-[var(--animation-duration)]",
66
50
  "ds:motion-reduce:transition-none",
67
- o ? "ds:grid-rows-[0fr]" : "ds:grid-rows-[1fr]",
51
+ a ? "ds:grid-rows-[0fr]" : "ds:grid-rows-[1fr]",
68
52
  i ? "ds:h-full ds:self-stretch" : ""
69
53
  ].filter(Boolean).join(" ");
70
54
  }
71
- function yn(o, i) {
55
+ function yn(a, i) {
72
56
  return [
73
57
  "ds:min-h-0",
74
58
  "ds:transition-opacity ds:duration-[var(--animation-duration)]",
75
59
  "ds:motion-reduce:transition-none",
76
- o ? "ds:opacity-0 ds:overflow-hidden" : "ds:opacity-100",
60
+ a ? "ds:opacity-0 ds:overflow-hidden" : "ds:opacity-100",
77
61
  i ? "ds:pointer-events-none" : ""
78
62
  ].filter(Boolean).join(" ");
79
63
  }
80
64
  const Nn = cn(
81
65
  ({
82
- items: o,
66
+ items: a,
83
67
  title: i,
84
68
  description: l,
85
- maxVisible: m,
86
- defaultCollapsed: H = !0,
87
- onDismiss: w,
88
- onDismissAll: g,
89
- dismissAllLabel: J,
90
- size: A = "md",
91
- stretch: B = !1,
92
- ariaLabel: K,
93
- emptyState: E,
94
- className: Q,
95
- ...Y
96
- }, h) => {
97
- const { t: c } = ln(), I = P(), R = P(), [T, j] = y(
69
+ maxVisible: m = 2,
70
+ defaultCollapsed: V = !0,
71
+ onDismiss: p,
72
+ closable: X = !0,
73
+ onDismissAll: w,
74
+ dismissAllLabel: H,
75
+ stretch: M = !1,
76
+ ariaLabel: J,
77
+ emptyState: T,
78
+ className: K,
79
+ ...Q
80
+ }, g) => {
81
+ const { t: d } = ln(), I = P(), B = P(), [R, j] = y(
98
82
  () => /* @__PURE__ */ new Set()
99
83
  );
100
84
  f(() => {
101
85
  j((n) => {
102
86
  if (n.size === 0) return n;
103
- const t = new Set(o.map((d) => d.id)), a = new Set([...n].filter((d) => t.has(d)));
104
- return a.size === n.size ? n : a;
87
+ const t = new Set(a.map((c) => c.id)), o = new Set([...n].filter((c) => t.has(c)));
88
+ return o.size === n.size ? n : o;
105
89
  });
106
- }, [o]);
90
+ }, [a]);
107
91
  const r = U(
108
- () => o.filter((n) => !T.has(n.id)),
109
- [o, T]
110
- ), v = m !== void 0 && r.length > m, [p, Z] = y(H), z = N(null), W = N(r.length);
92
+ () => a.filter((n) => !R.has(n.id)),
93
+ [a, R]
94
+ ), v = m !== void 0 && r.length > m, [h, Y] = y(V), L = N(null), z = N(r.length);
111
95
  f(() => {
112
- if (!z.current) return;
113
- const n = W.current, t = r.length;
114
- n !== t && (z.current.textContent = c("warningStack.countChanged", {
96
+ if (!L.current) return;
97
+ const n = z.current, t = r.length;
98
+ n !== t && (L.current.textContent = d("warningStack.countChanged", {
115
99
  count: t,
116
100
  defaultValue: "{{count}} warnings to review"
117
- })), W.current = t;
118
- }, [r.length, c]);
119
- const $ = U(() => !v || !p ? r : r.slice(0, m), [r, v, p, m]), D = v ? r.length - (m ?? 0) : 0, F = r.length > 0, L = E != null, S = F || L, [s, x] = y(S ? "open" : "closed"), [M, _] = y(!1);
101
+ })), z.current = t;
102
+ }, [r.length, d]);
103
+ const Z = U(() => !v || !h ? r : r.slice(0, m), [r, v, h, m]), $ = v ? r.length - (m ?? 0) : 0, A = r.length > 0, F = T != null, S = A || F, [s, x] = y(S ? "open" : "closed"), [E, _] = y(!1);
120
104
  un(() => {
121
105
  S ? s !== "open" && ((s === "closing" || s === "closed") && _(!0), x("open")) : s === "open" && x("settling");
122
106
  }, [S, s]), f(() => {
@@ -128,39 +112,39 @@ const Nn = cn(
128
112
  const n = Math.max(xn(), Sn), t = window.setTimeout(() => x("closed"), n);
129
113
  return () => window.clearTimeout(t);
130
114
  }, [s]), f(() => {
131
- if (!M) return;
115
+ if (!E) return;
132
116
  const n = window.requestAnimationFrame(() => _(!1));
133
117
  return () => window.cancelAnimationFrame(n);
134
- }, [M]);
135
- const O = s === "closing", q = O || M, nn = S || s === "settling" || s === "closing", V = N(null), tn = b(
118
+ }, [E]);
119
+ const W = s === "closing", O = W || E, D = S || s === "settling" || s === "closing", q = N(null), nn = b(
136
120
  (n) => {
137
- V.current = n, typeof h == "function" ? h(n) : h && (h.current = n);
121
+ q.current = n, typeof g == "function" ? g(n) : g && (g.current = n);
138
122
  },
139
- [h]
123
+ [g]
140
124
  ), k = N(null);
141
125
  f(() => {
142
126
  if (k.current === null) return;
143
127
  const n = k.current;
144
128
  k.current = null;
145
- const t = V.current;
129
+ const t = q.current;
146
130
  if (!t) return;
147
- const a = Array.from(
131
+ const o = Array.from(
148
132
  t.querySelectorAll("[data-alert-dismiss]")
149
- ), d = a[Math.min(n, a.length - 1)];
150
- d ? d.focus() : L && t.focus();
133
+ ), c = o[Math.min(n, o.length - 1)];
134
+ c ? c.focus() : F && t.focus();
151
135
  });
152
- const en = b(
153
- (n, t) => (a) => {
154
- a || (k.current = t, j((d) => new Set(d).add(n.id)), w == null || w(n));
136
+ const tn = b(
137
+ (n, t) => (o) => {
138
+ o || (k.current = t, j((c) => new Set(c).add(n.id)), p == null || p(n));
155
139
  },
156
- [w]
157
- ), sn = b(() => {
140
+ [p]
141
+ ), en = b(() => {
158
142
  j((n) => {
159
143
  const t = new Set(n);
160
- for (const a of r) t.add(a.id);
144
+ for (const o of r) t.add(o.id);
161
145
  return t;
162
- }), g == null || g();
163
- }, [r, g]), rn = b(() => Z((n) => !n), []), an = K ?? c("warningStack.regionLabel", "Warnings"), G = i ? /* @__PURE__ */ u("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)]", children: [
146
+ }), w == null || w();
147
+ }, [r, w]), sn = b(() => Y((n) => !n), []), rn = J ?? d("warningStack.regionLabel", "Warnings"), G = i ? /* @__PURE__ */ u("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)]", children: [
164
148
  /* @__PURE__ */ e(
165
149
  "h2",
166
150
  {
@@ -170,7 +154,7 @@ const Nn = cn(
170
154
  }
171
155
  ),
172
156
  l ? /* @__PURE__ */ e("p", { className: "ds:text-start type-body-sm ds:text-[var(--muted-foreground)]", children: l }) : null
173
- ] }) : /* @__PURE__ */ e("h2", { id: I, className: "ds:sr-only", children: an }), on = g != null && F ? /* @__PURE__ */ u("div", { className: "ds:flex ds:items-start ds:justify-between ds:gap-[var(--spacing-sm)]", children: [
157
+ ] }) : /* @__PURE__ */ e("h2", { id: I, className: "ds:sr-only", children: rn }), on = X && A ? /* @__PURE__ */ u("div", { className: "ds:flex ds:items-start ds:justify-between ds:gap-[var(--spacing-sm)]", children: [
174
158
  G,
175
159
  /* @__PURE__ */ e(
176
160
  mn,
@@ -179,55 +163,56 @@ const Nn = cn(
179
163
  icon: /* @__PURE__ */ e(gn, { "aria-hidden": "true" }),
180
164
  intent: "ghost",
181
165
  size: "sm",
182
- "aria-label": J ?? c("warningStack.dismissAll", "Dismiss all notices"),
183
- onClick: sn,
166
+ "aria-label": H ?? d("warningStack.dismissAll", "Dismiss all notices"),
167
+ onClick: en,
184
168
  className: "ds:-me-[var(--spacing-2xs)] ds:shrink-0"
185
169
  }
186
170
  )
187
171
  ] }) : G;
188
- return nn ? (
172
+ return D ? (
189
173
  // Outer: height-collapse track. Carries the bounding marker so it is
190
174
  // the cascade-reset boundary even mid-fold.
191
175
  /* @__PURE__ */ e(
192
176
  "div",
193
177
  {
194
178
  "data-component": "warning-stack",
195
- className: kn(q, B),
196
- children: /* @__PURE__ */ e("div", { className: yn(q, O), children: /* @__PURE__ */ u(
179
+ className: kn(O, M),
180
+ children: /* @__PURE__ */ e("div", { className: yn(O, W), children: /* @__PURE__ */ u(
197
181
  "section",
198
182
  {
199
- ref: tn,
183
+ ref: nn,
200
184
  "aria-labelledby": I,
201
185
  tabIndex: -1,
202
- className: [pn({ size: A, stretch: B }), Q].filter(Boolean).join(" "),
203
- ...Y,
186
+ className: [pn({ stretch: M }), K].filter(Boolean).join(" "),
187
+ ...Q,
204
188
  children: [
205
189
  on,
206
- L ? null : /* @__PURE__ */ e(
190
+ F ? null : /* @__PURE__ */ e(
207
191
  "div",
208
192
  {
209
- ref: z,
193
+ ref: L,
210
194
  "aria-live": "polite",
211
195
  "aria-atomic": "true",
212
196
  className: "ds:sr-only"
213
197
  }
214
198
  ),
215
- F ? /* @__PURE__ */ u(dn, { children: [
199
+ A ? /* @__PURE__ */ u(an, { children: [
216
200
  /* @__PURE__ */ e("div", { className: "ds:@container/warning-stack", children: /* @__PURE__ */ e(
217
201
  "ul",
218
202
  {
219
- id: R,
220
- className: wn({ size: A }),
221
- "aria-label": c("warningStack.listLabel", "Notices"),
222
- children: $.map((n, t) => {
223
- const a = n.variant ?? "warning";
203
+ id: B,
204
+ className: wn,
205
+ "aria-label": d("warningStack.listLabel", "Notices"),
206
+ children: Z.map((n, t) => {
207
+ const o = n.variant ?? "warning";
224
208
  return /* @__PURE__ */ e("li", { children: /* @__PURE__ */ u(
225
209
  C,
226
210
  {
227
- variant: a,
211
+ variant: o,
228
212
  dismissible: n.dismissible,
229
213
  icon: n.icon,
230
- onOpenChange: en(n, t),
214
+ onOpenChange: tn(n, t),
215
+ clamp: !0,
231
216
  className: "ds:h-full",
232
217
  children: [
233
218
  /* @__PURE__ */ e(C.Title, { as: "h3", children: n.title }),
@@ -245,9 +230,9 @@ const Nn = cn(
245
230
  type: "button",
246
231
  intent: "link",
247
232
  size: "sm",
248
- "aria-expanded": !p,
249
- "aria-controls": R,
250
- onClick: rn,
233
+ "aria-expanded": !h,
234
+ "aria-controls": B,
235
+ onClick: sn,
251
236
  className: vn,
252
237
  children: [
253
238
  /* @__PURE__ */ e(
@@ -256,18 +241,18 @@ const Nn = cn(
256
241
  "aria-hidden": "true",
257
242
  className: [
258
243
  "ds:size-4 ds:transition-transform ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
259
- p ? "" : "ds:rotate-180"
244
+ h ? "" : "ds:rotate-180"
260
245
  ].join(" ")
261
246
  }
262
247
  ),
263
- p ? c("warningStack.showMore", {
264
- count: D,
248
+ h ? d("warningStack.showMore", {
249
+ count: $,
265
250
  defaultValue: "Show {{count}} more warnings"
266
- }) : c("warningStack.showLess", "Show less")
251
+ }) : d("warningStack.showLess", "Show less")
267
252
  ]
268
253
  }
269
254
  ) : null
270
- ] }) : E
255
+ ] }) : T
271
256
  ]
272
257
  }
273
258
  ) })
@@ -280,4 +265,4 @@ Nn.displayName = "WarningStack";
280
265
  export {
281
266
  Nn as W
282
267
  };
283
- //# sourceMappingURL=warning-stack-BsgaEbL8.js.map
268
+ //# sourceMappingURL=warning-stack--sTrrBDA.js.map
@@ -3,7 +3,7 @@ import { forwardRef as H, useMemo as q, useRef as z, useCallback as F, useState
3
3
  import { c as D } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as M } from "react-i18next";
5
5
  import { C } from "./card-DPmk26CL.js";
6
- import { B as ye } from "./badge-CqGsX32l.js";
6
+ import { B as ye } from "./badge-DCOqV9mI.js";
7
7
  import { a as Z } from "./key-value-pair-BrgbMfbF.js";
8
8
  import { T as xe } from "./timestamp-BV2lC-wV.js";
9
9
  import { I as S } from "./icon-button-LqoiKcUN.js";
@@ -12,7 +12,7 @@ import { c as A } from "./createLucideIcon-CrFbzy84.js";
12
12
  import { T as ae } from "./trash-2-rPAKaRgB.js";
13
13
  import { C as Ne } from "./circle-BkqTgYmt.js";
14
14
  import { u as Ce } from "./registry-DvAUVLHh.js";
15
- import { A as O } from "./alert-_mUKLmwA.js";
15
+ import { A as O } from "./alert-CHYZ96tR.js";
16
16
  import { B as _e } from "./button-DD_0Xdmr.js";
17
17
  import { D as N } from "./dropdown-menu-qrxjymfw.js";
18
18
  import { E } from "./empty-state-BLy7tigq.js";
@@ -1365,4 +1365,4 @@ export {
1365
1365
  ee as r,
1366
1366
  L as w
1367
1367
  };
1368
- //# sourceMappingURL=workflow-map-Bdam9pGp.js.map
1368
+ //# sourceMappingURL=workflow-map-Dy8mLCqF.js.map
@@ -0,0 +1,29 @@
1
+ import { c as e } from "./createLucideIcon-CrFbzy84.js";
2
+ /**
3
+ * @license lucide-react v1.8.0 - ISC
4
+ *
5
+ * This source code is licensed under the ISC license.
6
+ * See the LICENSE file in the root directory of this source tree.
7
+ */
8
+ const o = [
9
+ ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
10
+ ["line", { x1: "21", x2: "16.65", y1: "21", y2: "16.65", key: "13gj7c" }],
11
+ ["line", { x1: "11", x2: "11", y1: "8", y2: "14", key: "1vmskp" }],
12
+ ["line", { x1: "8", x2: "14", y1: "11", y2: "11", key: "durymu" }]
13
+ ], n = e("zoom-in", o);
14
+ /**
15
+ * @license lucide-react v1.8.0 - ISC
16
+ *
17
+ * This source code is licensed under the ISC license.
18
+ * See the LICENSE file in the root directory of this source tree.
19
+ */
20
+ const y = [
21
+ ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
22
+ ["line", { x1: "21", x2: "16.65", y1: "21", y2: "16.65", key: "13gj7c" }],
23
+ ["line", { x1: "8", x2: "14", y1: "11", y2: "11", key: "durymu" }]
24
+ ], x = e("zoom-out", y);
25
+ export {
26
+ x as Z,
27
+ n as a
28
+ };
29
+ //# sourceMappingURL=zoom-out-CgVtf2Wx.js.map
@@ -1,5 +1,5 @@
1
- import { c as r, u as a } from "../_chunks/registry-DvAUVLHh.js";
2
- const e = ["read", "write", "destructive"], t = [
1
+ import { c as s, u as a } from "../_chunks/registry-DvAUVLHh.js";
2
+ const e = ["read", "write", "destructive", "phi"], t = [
3
3
  "select_single",
4
4
  "select_multiple",
5
5
  "range_pick",
@@ -24,13 +24,14 @@ const e = ["read", "write", "destructive"], t = [
24
24
  ], i = {
25
25
  read: { readOnlyHint: !0, destructiveHint: !1 },
26
26
  write: { readOnlyHint: !1, destructiveHint: !1 },
27
- destructive: { readOnlyHint: !1, destructiveHint: !0 }
27
+ destructive: { readOnlyHint: !1, destructiveHint: !0 },
28
+ phi: { readOnlyHint: !1, destructiveHint: !0 }
28
29
  };
29
30
  export {
30
31
  t as CAPABILITIES,
31
32
  i as SAFETY_ANNOTATIONS,
32
33
  e as SAFETY_CLASSES,
33
- r as createAgentRegistry,
34
+ s as createAgentRegistry,
34
35
  a as useAgentRegistration
35
36
  };
36
37
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,14 @@
1
- /** Closed safety vocabulary — drives confirmation UX in the future runtime. */
2
- export declare const SAFETY_CLASSES: readonly ["read", "write", "destructive"];
1
+ /**
2
+ * Closed safety vocabulary drives confirmation UX in the future runtime.
3
+ *
4
+ * `phi` marks an action that reads-back-into or WRITES Protected Health
5
+ * Information (patient-identifiable clinical/contact/financial data). It is
6
+ * distinct from `write` so the host can gate PHI mutations behind stricter
7
+ * confirmation + audit than ordinary view-config writes — see
8
+ * `src/docs/26-agent-readiness.mdx` §PHI. Added 2026-06-24 (DS-owner approved)
9
+ * for `PatientDetails.update_field`.
10
+ */
11
+ export declare const SAFETY_CLASSES: readonly ["read", "write", "destructive", "phi"];
3
12
  export type Safety = (typeof SAFETY_CLASSES)[number];
4
13
  /**
5
14
  * Closed capability vocabulary. Adding a capability requires a DS-maintainer
@@ -11,6 +20,10 @@ export type Capability = (typeof CAPABILITIES)[number];
11
20
  * Canonical mapping from the closed safety vocabulary to MCP tool annotations.
12
21
  * A future MCP-server build lifts these verbatim onto each generated tool —
13
22
  * `read` → read-only, `destructive` → destructive, `write` → neither hint.
23
+ * `phi` is NOT read-only and carries `destructiveHint: true` so the runtime
24
+ * applies the same confirm-before-act gate as `destructive` — a PHI mutation
25
+ * is irreversible from the agent's perspective (it changes a patient's record)
26
+ * and must never be auto-confirmed.
14
27
  * `idempotentHint` / `openWorldHint` are NOT derivable from safety alone and
15
28
  * come from the per-action `idempotent` / `openWorld` fields below.
16
29
  */
@@ -27,6 +40,10 @@ export declare const SAFETY_ANNOTATIONS: {
27
40
  readonly readOnlyHint: false;
28
41
  readonly destructiveHint: true;
29
42
  };
43
+ readonly phi: {
44
+ readonly readOnlyHint: false;
45
+ readonly destructiveHint: true;
46
+ };
30
47
  };
31
48
  /**
32
49
  * Externally-observable state slot. `read` is pure and synchronous; async