@alfadocs/ui-kit 0.47.0 → 0.49.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 (280) hide show
  1. package/dist/_chunks/{address-autocomplete-CSjMrBvu.js → address-autocomplete-CT-9AOli.js} +2 -2
  2. package/dist/_chunks/{agenda-card-CFyWSX7Z.js → agenda-card-BaSfVfrL.js} +25 -29
  3. package/dist/_chunks/{agenda-tray-Dyj9ChHC.js → agenda-tray-DQayYmQ0.js} +50 -67
  4. package/dist/_chunks/ai-consent-banner-F2md5JD3.js +169 -0
  5. package/dist/_chunks/ai-tools-rail-CYLWrRmm.js +280 -0
  6. package/dist/_chunks/{alert-ywPR59NE.js → alert-CUTxnym2.js} +56 -35
  7. package/dist/_chunks/{alia-sidebar-CVIPrdc9.js → alia-sidebar-DlvyXgVC.js} +3 -2
  8. package/dist/_chunks/anamnesis-card-CmkBVAln.js +156 -0
  9. package/dist/_chunks/antenatal-schedule-timeline-Dg0m0yFl.js +412 -0
  10. package/dist/_chunks/appointment-tray-BwDHhWWC.js +419 -0
  11. package/dist/_chunks/{ar-DEz65ZJW.js → ar-C68WKG5a.js} +2 -2
  12. package/dist/_chunks/{audio-recorder-DC-v9YFW.js → audio-recorder-DVJXV7_k.js} +2 -2
  13. package/dist/_chunks/bishop-score-2MzAz8NE.js +185 -0
  14. package/dist/_chunks/{bmi-calculator-CQqXTVNL.js → bmi-calculator-DdylQzT6.js} +2 -2
  15. package/dist/_chunks/{booking-DlDVuWMd.js → booking-DljH0JkS.js} +294 -306
  16. package/dist/_chunks/{calculator-dialog-D-nfvteH.js → calculator-dialog-CFk4I91b.js} +2 -2
  17. package/dist/_chunks/calendar-days-C4BmpCZg.js +23 -0
  18. package/dist/_chunks/{calendar-YHFknAGv.js → calendar-oYWOCrnf.js} +195 -210
  19. package/dist/_chunks/care-plan-card-QmNpGggC.js +252 -0
  20. package/dist/_chunks/care-plan-entry-card-Cnra7vUc.js +318 -0
  21. package/dist/_chunks/{chat-message-B5JpFj0F.js → chat-message-Dm8U2RY1.js} +36 -35
  22. package/dist/_chunks/circle-arrow-up-CC_85SuH.js +16 -0
  23. package/dist/_chunks/clinical-note-card-BYo437dU.js +333 -0
  24. package/dist/_chunks/{contact-profile-card-DHyuAPXM.js → contact-profile-card-DvvVfAA2.js} +102 -115
  25. package/dist/_chunks/cycle-calculator-oOkj5wlB.js +252 -0
  26. package/dist/_chunks/{date-picker-Bq7xhMA-.js → date-picker-BfHblqwA.js} +2 -2
  27. package/dist/_chunks/{date-picker-variants-DLi1Va_e.js → date-picker-variants-CXEAx3O_.js} +22 -22
  28. package/dist/_chunks/{date-range-picker-DcXuI9y7.js → date-range-picker-hcAMs1wO.js} +3 -3
  29. package/dist/_chunks/{date-time-picker-RimumeLR.js → date-time-picker-H-3Pwqlb.js} +9 -9
  30. package/dist/_chunks/{de-bTBGdjPS.js → de-DK4A9_a8.js} +2 -2
  31. package/dist/_chunks/{dialog-BTpZV6It.js → dialog-DMGnSelc.js} +55 -55
  32. package/dist/_chunks/{document-scanner-BqLsGs4Y.js → document-scanner-Cxqvq7GR.js} +2 -2
  33. package/dist/_chunks/due-date-calculator-tDqZXPWO.js +256 -0
  34. package/dist/_chunks/{editable-currency-cell-renderer-CLil9B29.js → editable-currency-cell-renderer-Bh48OHRv.js} +2 -2
  35. package/dist/_chunks/{el-BWG5RXxa.js → el-B29HXhG5.js} +2 -2
  36. package/dist/_chunks/entity-card-COhmqHly.js +69 -0
  37. package/dist/_chunks/{es-DfO_G435.js → es-BOwPVwWn.js} +2 -2
  38. package/dist/_chunks/fetal-weight-Da-B4P4k.js +122 -0
  39. package/dist/_chunks/{fr-BTn24bs8.js → fr-DoDBtn0T.js} +2 -2
  40. package/dist/_chunks/{freemium-paywall-DzpD63WY.js → freemium-paywall-BWaLWje-.js} +2 -2
  41. package/dist/_chunks/gestational-age-calculator-DbDfTJU2.js +311 -0
  42. package/dist/_chunks/hcg-doubling-DAnpbale.js +170 -0
  43. package/dist/_chunks/{hi-Dj3oYd84.js → hi-DGByrKby.js} +2 -2
  44. package/dist/_chunks/{insert-result-C5ABnzDl.js → insert-result-DNdi_JYW.js} +140 -168
  45. package/dist/_chunks/is-safe-url-DkETxeHz.js +7 -0
  46. package/dist/_chunks/{isSameWeek-HfxKk6Lz.js → isSameWeek-B1odL2vR.js} +2 -2
  47. package/dist/_chunks/{it-Y85ofIQQ.js → it-B16rEecm.js} +3 -3
  48. package/dist/_chunks/{ja-CQ7J6YoA.js → ja-B0viOgft.js} +2 -2
  49. package/dist/_chunks/languages-DsVf_WzT.js +19 -0
  50. package/dist/_chunks/layers-pzGcbLPj.js +34 -0
  51. package/dist/_chunks/{marketplace-app-shell-Gfsf78ge.js → marketplace-app-shell-UKSLx9K_.js} +3 -3
  52. package/dist/_chunks/{message-card-DSPw5ghw.js → message-card-Dvl1TgaN.js} +15 -19
  53. package/dist/_chunks/{message-tray-hSQff9u4.js → message-tray-Dl6GQaaV.js} +2 -2
  54. package/dist/_chunks/{nl-D9kHCmp3.js → nl-cBxEX2QU.js} +2 -2
  55. package/dist/_chunks/operator-hero-CM8949Hd.js +198 -0
  56. package/dist/_chunks/{patient-search-CocVcGJ3.js → patient-search-BJOmTmDA.js} +2 -2
  57. package/dist/_chunks/{patient-shell-CnT4L8gn.js → patient-shell-DUmhXnFq.js} +2 -2
  58. package/dist/_chunks/patient-summary-card-BnTqxcTr.js +443 -0
  59. package/dist/_chunks/{payment-form-BNTx4876.js → payment-form-xmeCkxas.js} +2 -2
  60. package/dist/_chunks/payment-request-card-B_lyobd0.js +478 -0
  61. package/dist/_chunks/{pdf-viewer-CWEXTlwq.js → pdf-viewer-q1D3Uion.js} +4 -4
  62. package/dist/_chunks/periodontal-chart-card-BYs9hax1.js +455 -0
  63. package/dist/_chunks/phone-Bi5yUm4I.js +20 -0
  64. package/dist/_chunks/{pl-B3Smqpkr.js → pl-DtS08ioY.js} +3 -3
  65. package/dist/_chunks/{practice-results-DDi-kvaD.js → practice-results-Cq1y8JFD.js} +4 -3
  66. package/dist/_chunks/pregnancy-weight-gain-CCGrvarh.js +322 -0
  67. package/dist/_chunks/product-hub-panel-CkfZBA3t.js +620 -0
  68. package/dist/_chunks/{pt-D3J-1c_7.js → pt-yFXs1VvH.js} +2 -2
  69. package/dist/_chunks/{ro-BKAbbEA3.js → ro-DsCzSrzR.js} +2 -2
  70. package/dist/_chunks/{ru-BeG8f0Ep.js → ru-DgDxL0pc.js} +3 -3
  71. package/dist/_chunks/scan-line-lGioFwLC.js +18 -0
  72. package/dist/_chunks/shield-check-BjCGH_Sr.js +21 -0
  73. package/dist/_chunks/{sidebar-_vJXI9rB.js → sidebar-h78cTNLh.js} +440 -338
  74. package/dist/_chunks/{sign-document-BCyLpFHJ.js → sign-document-CZkAf28g.js} +2 -2
  75. package/dist/_chunks/{sq-_hRPaeUy.js → sq-DHlCYN67.js} +2 -2
  76. package/dist/_chunks/subDays-Bs00akhK.js +8 -0
  77. package/dist/_chunks/{sv-g009fSpe.js → sv-O0QaQs_s.js} +2 -2
  78. package/dist/_chunks/{tr-OKUOuhMW.js → tr-BmNDRuio.js} +2 -2
  79. package/dist/_chunks/{transaction-chip-B8ujzowA.js → transaction-chip-BZCa6XDn.js} +8 -6
  80. package/dist/_chunks/{unit-converter-u3CwNDpP.js → unit-converter-jWp3Z85y.js} +2 -2
  81. package/dist/_chunks/user-cog-BS_qc8nA.js +24 -0
  82. package/dist/_chunks/video-BAeICxCT.js +21 -0
  83. package/dist/_chunks/warning-stack-CXfoAT-_.js +220 -0
  84. package/dist/_chunks/{workflow-map-Djn1QMJc.js → workflow-map-DzX_LI4y.js} +139 -157
  85. package/dist/_chunks/{zh-CN-De4zwEhx.js → zh-CN-CgVJZEzz.js} +3 -3
  86. package/dist/agent-catalog.json +367 -1
  87. package/dist/components/_shared/antenatal-schedule-timeline.d.ts +18 -0
  88. package/dist/components/_shared/antenatal-schedule.d.ts +68 -0
  89. package/dist/components/_shared/entity-card/entity-card.d.ts +40 -0
  90. package/dist/components/_shared/entity-card/index.d.ts +3 -0
  91. package/dist/components/_shared/index.d.ts +5 -0
  92. package/dist/components/_shared/is-safe-url.d.ts +13 -0
  93. package/dist/components/_shared/obstetrics.d.ts +138 -0
  94. package/dist/components/address-autocomplete/index.js +1 -1
  95. package/dist/components/agenda-card/agenda-card.d.ts +1 -2
  96. package/dist/components/agenda-card/index.d.ts +2 -1
  97. package/dist/components/agenda-card/index.js +6 -5
  98. package/dist/components/agenda-tray/index.js +1 -1
  99. package/dist/components/ai-consent-banner/ai-consent-banner.agent.d.ts +4 -0
  100. package/dist/components/ai-consent-banner/ai-consent-banner.d.ts +45 -0
  101. package/dist/components/ai-consent-banner/index.d.ts +4 -0
  102. package/dist/components/ai-consent-banner/index.js +6 -0
  103. package/dist/components/ai-tools-rail/ai-tools-rail.agent.d.ts +4 -0
  104. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts +60 -0
  105. package/dist/components/ai-tools-rail/index.d.ts +4 -0
  106. package/dist/components/ai-tools-rail/index.js +6 -0
  107. package/dist/components/alert/alert.d.ts +2 -2
  108. package/dist/components/alert/index.js +1 -1
  109. package/dist/components/anamnesis-card/anamnesis-card.d.ts +68 -0
  110. package/dist/components/anamnesis-card/index.d.ts +3 -0
  111. package/dist/components/anamnesis-card/index.js +5 -0
  112. package/dist/components/appointment-card/appointment-card.agent.d.ts +3 -0
  113. package/dist/components/appointment-card/appointment-card.d.ts +93 -0
  114. package/dist/components/appointment-card/appointment-tray.agent.d.ts +4 -0
  115. package/dist/components/appointment-card/appointment-tray.d.ts +48 -0
  116. package/dist/components/appointment-card/index.d.ts +8 -0
  117. package/dist/components/appointment-card/index.js +10 -0
  118. package/dist/components/audio-recorder/index.js +1 -1
  119. package/dist/components/badge/badge.d.ts +1 -1
  120. package/dist/components/bishop-score/bishop-score.d.ts +27 -0
  121. package/dist/components/bishop-score/bishop.d.ts +30 -0
  122. package/dist/components/bishop-score/index.d.ts +4 -0
  123. package/dist/components/bishop-score/index.js +10 -0
  124. package/dist/components/bmi-calculator/index.js +1 -1
  125. package/dist/components/booking/index.js +1 -1
  126. package/dist/components/calculator-dialog/index.js +1 -1
  127. package/dist/components/calendar/index.js +1 -1
  128. package/dist/components/card/card.d.ts +1 -1
  129. package/dist/components/care-plan-card/care-plan-card.agent.d.ts +4 -0
  130. package/dist/components/care-plan-card/care-plan-card.d.ts +102 -0
  131. package/dist/components/care-plan-card/index.d.ts +4 -0
  132. package/dist/components/care-plan-card/index.js +6 -0
  133. package/dist/components/care-plan-entry-card/care-plan-entry-card.agent.d.ts +4 -0
  134. package/dist/components/care-plan-entry-card/care-plan-entry-card.d.ts +110 -0
  135. package/dist/components/care-plan-entry-card/index.d.ts +4 -0
  136. package/dist/components/care-plan-entry-card/index.js +6 -0
  137. package/dist/components/chat-message/chat-message.d.ts +7 -0
  138. package/dist/components/chat-message/index.js +1 -1
  139. package/dist/components/clinical-note-card/clinical-note-card.agent.d.ts +4 -0
  140. package/dist/components/clinical-note-card/clinical-note-card.d.ts +98 -0
  141. package/dist/components/clinical-note-card/index.d.ts +4 -0
  142. package/dist/components/clinical-note-card/index.js +6 -0
  143. package/dist/components/contact-profile-card/index.js +1 -1
  144. package/dist/components/cycle-calculator/cycle.d.ts +5 -0
  145. package/dist/components/cycle-calculator/index.js +1 -1
  146. package/dist/components/data-table/index.js +1 -1
  147. package/dist/components/date-picker/index.js +1 -1
  148. package/dist/components/date-range-picker/index.js +1 -1
  149. package/dist/components/date-time-picker/index.js +1 -1
  150. package/dist/components/dialog/dialog.d.ts +7 -0
  151. package/dist/components/dialog/index.js +1 -1
  152. package/dist/components/document-scanner/index.js +1 -1
  153. package/dist/components/due-date-calculator/due-date-calculator.d.ts +13 -1
  154. package/dist/components/due-date-calculator/gestation.d.ts +1 -59
  155. package/dist/components/due-date-calculator/index.d.ts +1 -1
  156. package/dist/components/due-date-calculator/index.js +16 -10
  157. package/dist/components/fetal-weight/efw.d.ts +25 -0
  158. package/dist/components/fetal-weight/fetal-weight.d.ts +27 -0
  159. package/dist/components/fetal-weight/index.d.ts +4 -0
  160. package/dist/components/fetal-weight/index.js +6 -0
  161. package/dist/components/freemium-paywall/index.js +1 -1
  162. package/dist/components/gestational-age-calculator/gestational-age-calculator.d.ts +25 -1
  163. package/dist/components/gestational-age-calculator/index.js +1 -1
  164. package/dist/components/hcg-doubling/hcg-doubling.d.ts +31 -0
  165. package/dist/components/hcg-doubling/hcg.d.ts +33 -0
  166. package/dist/components/hcg-doubling/index.d.ts +4 -0
  167. package/dist/components/hcg-doubling/index.js +7 -0
  168. package/dist/components/index.d.ts +14 -0
  169. package/dist/components/message-card/index.js +5 -4
  170. package/dist/components/message-card/message-card.d.ts +1 -2
  171. package/dist/components/message-tray/index.js +1 -1
  172. package/dist/components/operator-hero/index.js +1 -1
  173. package/dist/components/operator-hero/operator-hero.d.ts +9 -0
  174. package/dist/components/patient-search/index.js +1 -1
  175. package/dist/components/patient-summary-card/index.d.ts +4 -0
  176. package/dist/components/patient-summary-card/index.js +6 -0
  177. package/dist/components/patient-summary-card/patient-summary-card.agent.d.ts +4 -0
  178. package/dist/components/patient-summary-card/patient-summary-card.d.ts +120 -0
  179. package/dist/components/payment-card/index.d.ts +7 -0
  180. package/dist/components/payment-card/index.js +8 -0
  181. package/dist/components/payment-card/payment-card.agent.d.ts +4 -0
  182. package/dist/components/payment-card/payment-card.d.ts +71 -0
  183. package/dist/components/payment-card/payment-request-card.agent.d.ts +4 -0
  184. package/dist/components/payment-card/payment-request-card.d.ts +43 -0
  185. package/dist/components/payment-form/index.js +1 -1
  186. package/dist/components/pdf-viewer/index.js +1 -1
  187. package/dist/components/periodontal-chart-card/index.d.ts +4 -0
  188. package/dist/components/periodontal-chart-card/index.js +7 -0
  189. package/dist/components/periodontal-chart-card/periodontal-chart-card.agent.d.ts +4 -0
  190. package/dist/components/periodontal-chart-card/periodontal-chart-card.d.ts +74 -0
  191. package/dist/components/practice-results/index.js +1 -1
  192. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  193. package/dist/components/pregnancy-weight-gain/pregnancy-weight-gain.d.ts +7 -0
  194. package/dist/components/pregnancy-weight-gain/weight-gain.d.ts +33 -8
  195. package/dist/components/product-hub-tray/index.d.ts +8 -0
  196. package/dist/components/product-hub-tray/index.js +10 -0
  197. package/dist/components/product-hub-tray/product-hub-panel.agent.d.ts +4 -0
  198. package/dist/components/product-hub-tray/product-hub-panel.d.ts +54 -0
  199. package/dist/components/product-hub-tray/product-hub-tray.agent.d.ts +4 -0
  200. package/dist/components/product-hub-tray/product-hub-tray.d.ts +115 -0
  201. package/dist/components/public-header/public-header.d.ts +1 -1
  202. package/dist/components/sidebar/index.d.ts +2 -2
  203. package/dist/components/sidebar/index.js +12 -11
  204. package/dist/components/sidebar/sidebar.d.ts +14 -1
  205. package/dist/components/sign-document/index.js +1 -1
  206. package/dist/components/stat/stat.d.ts +1 -1
  207. package/dist/components/transaction-chip/index.js +1 -1
  208. package/dist/components/unit-converter/index.js +1 -1
  209. package/dist/components/warning-stack/index.js +1 -1
  210. package/dist/components/workflow/index.js +1 -1
  211. package/dist/i18n/locales/ar.d.ts +561 -1
  212. package/dist/i18n/locales/ar.js +560 -2
  213. package/dist/i18n/locales/de.d.ts +561 -1
  214. package/dist/i18n/locales/de.js +560 -2
  215. package/dist/i18n/locales/el.d.ts +561 -1
  216. package/dist/i18n/locales/el.js +560 -2
  217. package/dist/i18n/locales/en.d.ts +561 -1
  218. package/dist/i18n/locales/en.js +560 -2
  219. package/dist/i18n/locales/es.d.ts +561 -1
  220. package/dist/i18n/locales/es.js +560 -2
  221. package/dist/i18n/locales/fr.d.ts +561 -1
  222. package/dist/i18n/locales/fr.js +560 -2
  223. package/dist/i18n/locales/hi.d.ts +561 -1
  224. package/dist/i18n/locales/hi.js +560 -2
  225. package/dist/i18n/locales/it.d.ts +561 -1
  226. package/dist/i18n/locales/it.js +560 -2
  227. package/dist/i18n/locales/ja.d.ts +561 -1
  228. package/dist/i18n/locales/ja.js +560 -2
  229. package/dist/i18n/locales/nl.d.ts +561 -1
  230. package/dist/i18n/locales/nl.js +560 -2
  231. package/dist/i18n/locales/pl.d.ts +561 -1
  232. package/dist/i18n/locales/pl.js +560 -2
  233. package/dist/i18n/locales/pt.d.ts +561 -1
  234. package/dist/i18n/locales/pt.js +560 -2
  235. package/dist/i18n/locales/ro.d.ts +561 -1
  236. package/dist/i18n/locales/ro.js +560 -2
  237. package/dist/i18n/locales/ru.d.ts +561 -1
  238. package/dist/i18n/locales/ru.js +560 -2
  239. package/dist/i18n/locales/sq.d.ts +561 -1
  240. package/dist/i18n/locales/sq.js +560 -2
  241. package/dist/i18n/locales/sv.d.ts +561 -1
  242. package/dist/i18n/locales/sv.js +560 -2
  243. package/dist/i18n/locales/tr.d.ts +561 -1
  244. package/dist/i18n/locales/tr.js +560 -2
  245. package/dist/i18n/locales/zh.d.ts +561 -1
  246. package/dist/i18n/locales/zh.js +560 -2
  247. package/dist/index.js +663 -600
  248. package/dist/locales/ar.json +562 -2
  249. package/dist/locales/de.json +562 -2
  250. package/dist/locales/el.json +562 -2
  251. package/dist/locales/en.json +562 -2
  252. package/dist/locales/es.json +562 -2
  253. package/dist/locales/fr.json +562 -2
  254. package/dist/locales/hi.json +562 -2
  255. package/dist/locales/it.json +562 -2
  256. package/dist/locales/ja.json +562 -2
  257. package/dist/locales/nl.json +562 -2
  258. package/dist/locales/pl.json +562 -2
  259. package/dist/locales/pt.json +562 -2
  260. package/dist/locales/ro.json +562 -2
  261. package/dist/locales/ru.json +562 -2
  262. package/dist/locales/sq.json +562 -2
  263. package/dist/locales/sv.json +562 -2
  264. package/dist/locales/tr.json +562 -2
  265. package/dist/locales/zh.json +562 -2
  266. package/dist/patterns/alia-assistant/alia-types.d.ts +15 -0
  267. package/dist/patterns/alia-assistant/index.js +1 -1
  268. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  269. package/dist/patterns/patient-shell/index.js +1 -1
  270. package/dist/tokens.css +1 -1
  271. package/package.json +58 -1
  272. package/dist/_chunks/cycle-calculator-KxA8dqDf.js +0 -211
  273. package/dist/_chunks/due-date-calculator-mFxpHLml.js +0 -216
  274. package/dist/_chunks/gestation-mWF4AXea.js +0 -50
  275. package/dist/_chunks/gestational-age-calculator-gWI_uRA1.js +0 -203
  276. package/dist/_chunks/operator-hero-7LiiP7zi.js +0 -171
  277. package/dist/_chunks/pregnancy-weight-gain-BtEHaSqy.js +0 -246
  278. package/dist/_chunks/shield-check-C73ma9Cs.js +0 -36
  279. package/dist/_chunks/subDays-Dv7q9S7u.js +0 -8
  280. package/dist/_chunks/warning-stack-DNR3-IbP.js +0 -180
@@ -0,0 +1,455 @@
1
+ import { jsxs as o, jsx as e, Fragment as Z } from "react/jsx-runtime";
2
+ import { forwardRef as ee, useId as te, useMemo as O } from "react";
3
+ import { c as R } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as ae } from "react-i18next";
5
+ import { B as re } from "./badge-zsf5i5bH.js";
6
+ import { C as S } from "./card-DPmk26CL.js";
7
+ import { K as ne, a as se } from "./key-value-pair-CkQIb9EG.js";
8
+ import { u as oe } from "./registry-nPAVE19X.js";
9
+ const de = {
10
+ id: "periodontal-chart-card",
11
+ capabilities: [],
12
+ state: {
13
+ toothIds: {
14
+ type: "string[]",
15
+ descriptionKey: "ui.agent.periodontalChartCard.state.toothIds",
16
+ description: "FDI ids of the teeth currently charted. Tooth identifiers only — no patient identity.",
17
+ read: (d) => d.getToothIds()
18
+ },
19
+ siteCount: {
20
+ type: "number",
21
+ descriptionKey: "ui.agent.periodontalChartCard.state.siteCount",
22
+ description: "Total number of probing sites rendered.",
23
+ read: (d) => d.getSiteCount()
24
+ },
25
+ deepPocketCount: {
26
+ type: "number",
27
+ descriptionKey: "ui.agent.periodontalChartCard.state.deepPocketCount",
28
+ description: "Number of sites with a probing depth at or above the 6mm severe threshold.",
29
+ read: (d) => d.getDeepPocketCount()
30
+ }
31
+ },
32
+ actions: {},
33
+ domHooks: {
34
+ root: {
35
+ attr: "data-component",
36
+ value: "periodontal-chart-card",
37
+ description: "Marks the PeriodontalChartCard root region."
38
+ },
39
+ instanceId: {
40
+ attr: "data-component-id",
41
+ sourceProp: "id",
42
+ description: "Sourced from the id prop."
43
+ }
44
+ }
45
+ }, le = R("ds:w-full ds:text-[color:var(--foreground)]", {
46
+ variants: {
47
+ // Matches the kit's other `surface` props. `elevated` wraps in
48
+ // `<Card variant="elevated">`; `flat` drops the chrome for use
49
+ // inside an existing Card / Sheet.
50
+ surface: {
51
+ flat: "",
52
+ elevated: ""
53
+ }
54
+ },
55
+ defaultVariants: { surface: "elevated" }
56
+ }), ie = R(
57
+ "ds:[font-variant-numeric:var(--font-feature-tabular)] ds:tabular-nums",
58
+ {
59
+ variants: {
60
+ severity: {
61
+ normal: "ds:text-[color:var(--foreground)]",
62
+ moderate: "ds:font-semibold ds:text-[color:var(--warning-foreground)]",
63
+ severe: "ds:font-bold ds:text-[color:var(--destructive)]"
64
+ }
65
+ },
66
+ defaultVariants: { severity: "normal" }
67
+ }
68
+ ), I = 4, N = 6, f = [
69
+ "db",
70
+ "b",
71
+ "mb",
72
+ "dl",
73
+ "l",
74
+ "ml"
75
+ ], ce = {
76
+ db: "Disto-buccal",
77
+ b: "Buccal",
78
+ mb: "Mesio-buccal",
79
+ dl: "Disto-lingual",
80
+ l: "Lingual",
81
+ ml: "Mesio-lingual"
82
+ }, L = ["1", "2", "3", "4"];
83
+ function pe(d) {
84
+ return d == null || !Number.isFinite(d) ? "normal" : d >= N ? "severe" : d >= I ? "moderate" : "normal";
85
+ }
86
+ function ue(d) {
87
+ return d === "severe" ? "∗∗" : d === "moderate" ? "∗" : "";
88
+ }
89
+ function A(d) {
90
+ const m = d.trim().charAt(0);
91
+ return L.includes(m) ? m : null;
92
+ }
93
+ const he = ee(
94
+ ({
95
+ sites: d,
96
+ dateIso: m,
97
+ dentition: y = "permanent",
98
+ mobility: v,
99
+ summary: u,
100
+ locale: q,
101
+ surface: P = "elevated",
102
+ "aria-label": F,
103
+ id: b,
104
+ className: _,
105
+ ...B
106
+ }, K) => {
107
+ const { t: a, i18n: Q } = ae(), k = te(), C = q ?? Q.language ?? "en", { quadrants: D, toothIds: U, siteCount: j, deepPocketCount: z } = O(() => {
108
+ const t = /* @__PURE__ */ new Map();
109
+ let h = 0, p = 0;
110
+ for (const n of d) {
111
+ h += 1, (n.pocketDepthMm ?? 0) >= N && (p += 1);
112
+ let c = t.get(n.tooth);
113
+ c || (c = { tooth: n.tooth, sites: {} }, t.set(n.tooth, c)), c.sites[n.site] = n;
114
+ }
115
+ const l = Array.from(t.values()), i = L.map((n) => ({
116
+ quadrant: n,
117
+ teeth: l.filter((c) => A(c.tooth) === n).sort((c, Y) => c.tooth.localeCompare(Y.tooth, "en"))
118
+ })).filter((n) => n.teeth.length > 0), r = l.filter((n) => A(n.tooth) === null);
119
+ r.length > 0 && i.push({ quadrant: null, teeth: r });
120
+ const s = i.flatMap((n) => n.teeth.map((c) => c.tooth));
121
+ return {
122
+ quadrants: i,
123
+ toothIds: s,
124
+ siteCount: h,
125
+ deepPocketCount: p
126
+ };
127
+ }, [d]);
128
+ oe(
129
+ de,
130
+ {
131
+ getToothIds: () => U,
132
+ getSiteCount: () => j,
133
+ getDeepPocketCount: () => z
134
+ },
135
+ b
136
+ );
137
+ const w = O(() => {
138
+ if (!m) return;
139
+ const t = new Date(m);
140
+ if (!Number.isNaN(t.getTime()))
141
+ try {
142
+ return new Intl.DateTimeFormat(C, {
143
+ dateStyle: "medium"
144
+ }).format(t);
145
+ } catch {
146
+ return t.toISOString().slice(0, 10);
147
+ }
148
+ }, [m, C]), M = a(
149
+ "periodontalChartCard.heading",
150
+ "Periodontal chart"
151
+ ), $ = F ?? M, H = {
152
+ permanent: "Permanent dentition",
153
+ primary: "Primary dentition",
154
+ mixed: "Mixed dentition"
155
+ }, T = a(`periodontalChartCard.dentition.${y}`, {
156
+ defaultValue: H[y]
157
+ }), x = (t) => {
158
+ try {
159
+ return new Intl.NumberFormat(C, {
160
+ maximumFractionDigits: 1
161
+ }).format(t);
162
+ } catch {
163
+ return String(t);
164
+ }
165
+ }, g = [];
166
+ (u == null ? void 0 : u.meanPocketDepthMm) != null && g.push({
167
+ key: "meanPocketDepth",
168
+ label: a(
169
+ "periodontalChartCard.summary.meanPocketDepth",
170
+ "Mean probing depth"
171
+ ),
172
+ value: a("periodontalChartCard.unit.mm", {
173
+ value: x(u.meanPocketDepthMm),
174
+ defaultValue: "{{value}} mm"
175
+ })
176
+ }), (u == null ? void 0 : u.bleedingOnProbingPercent) != null && g.push({
177
+ key: "bleedingOnProbing",
178
+ label: a(
179
+ "periodontalChartCard.summary.bleedingOnProbing",
180
+ "Bleeding on probing"
181
+ ),
182
+ value: a("periodontalChartCard.unit.percent", {
183
+ value: x(u.bleedingOnProbingPercent),
184
+ defaultValue: "{{value}}%"
185
+ })
186
+ });
187
+ const E = (t, h) => {
188
+ if (t == null || !Number.isFinite(t))
189
+ return /* @__PURE__ */ e(
190
+ "span",
191
+ {
192
+ "aria-hidden": "true",
193
+ className: "ds:text-[color:var(--muted-foreground)]",
194
+ children: a("periodontalChartCard.cell.empty", "–")
195
+ }
196
+ );
197
+ const p = h === "pocket" ? pe(t) : "normal", l = h === "pocket" ? ue(p) : "", i = x(t), r = p === "severe" ? ` ${a("periodontalChartCard.flag.severe", "severe pocket")}` : p === "moderate" ? ` ${a("periodontalChartCard.flag.moderate", "moderate pocket")}` : "";
198
+ return /* @__PURE__ */ o("span", { className: ie({ severity: p }), children: [
199
+ /* @__PURE__ */ e("span", { children: i }),
200
+ l ? /* @__PURE__ */ e("span", { "aria-hidden": "true", children: l }) : null,
201
+ r ? /* @__PURE__ */ e("span", { className: "ds:sr-only", children: r }) : null
202
+ ] });
203
+ }, G = (t) => !t || !t.bleeding && !t.suppuration ? /* @__PURE__ */ e(
204
+ "span",
205
+ {
206
+ "aria-hidden": "true",
207
+ className: "ds:text-[color:var(--muted-foreground)]",
208
+ children: a("periodontalChartCard.cell.empty", "–")
209
+ }
210
+ ) : /* @__PURE__ */ o("span", { className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
211
+ t.bleeding ? /* @__PURE__ */ e(
212
+ "span",
213
+ {
214
+ role: "img",
215
+ "aria-label": a(
216
+ "periodontalChartCard.sign.bleeding",
217
+ "Bleeding on probing"
218
+ ),
219
+ className: "ds:inline-block ds:size-2 ds:rounded-[var(--radius-full)] ds:bg-[var(--destructive)]"
220
+ }
221
+ ) : null,
222
+ t.suppuration ? /* @__PURE__ */ e(
223
+ "span",
224
+ {
225
+ role: "img",
226
+ "aria-label": a(
227
+ "periodontalChartCard.sign.suppuration",
228
+ "Suppuration"
229
+ ),
230
+ className: "ds:inline-block ds:size-2 ds:rounded-[var(--radius-full)] ds:bg-[var(--warning)]"
231
+ }
232
+ ) : null
233
+ ] }), J = (t) => {
234
+ const h = {
235
+ 1: "Upper right (Q1)",
236
+ 2: "Upper left (Q2)",
237
+ 3: "Lower left (Q3)",
238
+ 4: "Lower right (Q4)"
239
+ }, p = t.quadrant != null ? a(`periodontalChartCard.quadrant.${t.quadrant}`, {
240
+ defaultValue: h[t.quadrant]
241
+ }) : a("periodontalChartCard.quadrant.other", "Other teeth"), l = "ds:px-[var(--spacing-xs)] ds:py-[var(--spacing-2xs)] ds:text-center ds:border-b ds:border-[color:var(--border)]", i = "ds:px-[var(--spacing-xs)] ds:py-[var(--spacing-2xs)] ds:text-start ds:font-medium ds:border-b ds:border-[color:var(--border)] ds:whitespace-nowrap";
242
+ return /* @__PURE__ */ e(
243
+ "div",
244
+ {
245
+ className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:overflow-x-auto",
246
+ children: /* @__PURE__ */ o("table", { className: "type-body-sm ds:w-full ds:border-collapse", children: [
247
+ /* @__PURE__ */ e("caption", { className: "type-label ds:text-start ds:mb-[var(--spacing-2xs)] ds:text-[color:var(--muted-foreground)]", children: p }),
248
+ /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ o("tr", { children: [
249
+ /* @__PURE__ */ e(
250
+ "th",
251
+ {
252
+ scope: "col",
253
+ className: "ds:px-[var(--spacing-xs)] ds:py-[var(--spacing-2xs)] ds:text-start ds:border-b ds:border-[color:var(--border)]",
254
+ children: a("periodontalChartCard.column.measure", "Measurement")
255
+ }
256
+ ),
257
+ t.teeth.map((r) => /* @__PURE__ */ o(
258
+ "th",
259
+ {
260
+ scope: "col",
261
+ "data-tooth-id": r.tooth,
262
+ className: "ds:px-[var(--spacing-xs)] ds:py-[var(--spacing-2xs)] ds:text-center ds:border-b ds:border-[color:var(--border)] ds:[font-variant-numeric:var(--font-feature-tabular)] ds:tabular-nums",
263
+ children: [
264
+ /* @__PURE__ */ e("span", { className: "ds:sr-only", children: a("periodontalChartCard.toothHeader", {
265
+ tooth: r.tooth,
266
+ defaultValue: "Tooth {{tooth}}"
267
+ }) }),
268
+ /* @__PURE__ */ e("span", { "aria-hidden": "true", children: r.tooth })
269
+ ]
270
+ },
271
+ r.tooth
272
+ ))
273
+ ] }) }),
274
+ /* @__PURE__ */ o("tbody", { children: [
275
+ /* @__PURE__ */ o("tr", { children: [
276
+ /* @__PURE__ */ e("th", { scope: "row", className: i, children: a(
277
+ "periodontalChartCard.row.pocketDepth",
278
+ "Pocket depth (PD)"
279
+ ) }),
280
+ t.teeth.map((r) => /* @__PURE__ */ e("td", { className: l, children: /* @__PURE__ */ o("span", { className: "ds:flex ds:items-center ds:justify-center ds:gap-[var(--spacing-2xs)]", children: [
281
+ f.map((s) => /* @__PURE__ */ e("span", { className: "ds:sr-only", children: a(`periodontalChartCard.site.${s}`, {
282
+ defaultValue: ce[s]
283
+ }) }, s)),
284
+ /* @__PURE__ */ e("span", { className: "ds:flex ds:gap-[var(--spacing-2xs)]", children: f.map((s) => {
285
+ var n;
286
+ return /* @__PURE__ */ e("span", { children: E(
287
+ (n = r.sites[s]) == null ? void 0 : n.pocketDepthMm,
288
+ "pocket"
289
+ ) }, s);
290
+ }) })
291
+ ] }) }, r.tooth))
292
+ ] }),
293
+ /* @__PURE__ */ o("tr", { children: [
294
+ /* @__PURE__ */ e("th", { scope: "row", className: i, children: a("periodontalChartCard.row.recession", "Recession (REC)") }),
295
+ t.teeth.map((r) => /* @__PURE__ */ e("td", { className: l, children: /* @__PURE__ */ e("span", { className: "ds:flex ds:gap-[var(--spacing-2xs)] ds:justify-center", children: f.map((s) => {
296
+ var n;
297
+ return /* @__PURE__ */ e("span", { children: E(
298
+ (n = r.sites[s]) == null ? void 0 : n.recessionMm,
299
+ "recession"
300
+ ) }, s);
301
+ }) }) }, r.tooth))
302
+ ] }),
303
+ /* @__PURE__ */ o("tr", { children: [
304
+ /* @__PURE__ */ e("th", { scope: "row", className: i, children: a(
305
+ "periodontalChartCard.row.signs",
306
+ "Bleeding / suppuration"
307
+ ) }),
308
+ t.teeth.map((r) => /* @__PURE__ */ e("td", { className: l, children: /* @__PURE__ */ e("span", { className: "ds:flex ds:gap-[var(--spacing-2xs)] ds:justify-center", children: f.map((s) => /* @__PURE__ */ e("span", { children: G(r.sites[s]) }, s)) }) }, r.tooth))
309
+ ] }),
310
+ v && t.teeth.some((r) => v[r.tooth] != null) ? /* @__PURE__ */ o("tr", { children: [
311
+ /* @__PURE__ */ e("th", { scope: "row", className: i, children: a("periodontalChartCard.row.mobility", "Mobility") }),
312
+ t.teeth.map((r) => {
313
+ const s = v[r.tooth];
314
+ return /* @__PURE__ */ e("td", { className: l, children: s != null ? /* @__PURE__ */ e(
315
+ re,
316
+ {
317
+ variant: s >= 2 ? "warning" : "neutral",
318
+ size: "sm",
319
+ "aria-label": a(
320
+ "periodontalChartCard.mobility.label",
321
+ {
322
+ grade: s,
323
+ defaultValue: "Mobility grade {{grade}}"
324
+ }
325
+ ),
326
+ children: s
327
+ }
328
+ ) : /* @__PURE__ */ e(
329
+ "span",
330
+ {
331
+ "aria-hidden": "true",
332
+ className: "ds:text-[color:var(--muted-foreground)]",
333
+ children: a("periodontalChartCard.cell.empty", "–")
334
+ }
335
+ ) }, r.tooth);
336
+ })
337
+ ] }) : null
338
+ ] })
339
+ ] })
340
+ },
341
+ t.quadrant ?? "other"
342
+ );
343
+ }, W = /* @__PURE__ */ o(
344
+ "div",
345
+ {
346
+ role: "group",
347
+ className: "type-meta ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-sm)] ds:text-[color:var(--muted-foreground)]",
348
+ "aria-label": a("periodontalChartCard.legend.label", "Chart legend"),
349
+ children: [
350
+ /* @__PURE__ */ o("span", { className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
351
+ /* @__PURE__ */ e(
352
+ "span",
353
+ {
354
+ "aria-hidden": "true",
355
+ className: "ds:font-semibold ds:text-[color:var(--warning-foreground)]",
356
+ children: "∗"
357
+ }
358
+ ),
359
+ a("periodontalChartCard.legend.moderate", {
360
+ threshold: I,
361
+ defaultValue: "PD ≥ {{threshold}} mm"
362
+ })
363
+ ] }),
364
+ /* @__PURE__ */ o("span", { className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
365
+ /* @__PURE__ */ e(
366
+ "span",
367
+ {
368
+ "aria-hidden": "true",
369
+ className: "ds:font-bold ds:text-[color:var(--destructive)]",
370
+ children: "∗∗"
371
+ }
372
+ ),
373
+ a("periodontalChartCard.legend.severe", {
374
+ threshold: N,
375
+ defaultValue: "PD ≥ {{threshold}} mm"
376
+ })
377
+ ] }),
378
+ /* @__PURE__ */ o("span", { className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
379
+ /* @__PURE__ */ e(
380
+ "span",
381
+ {
382
+ "aria-hidden": "true",
383
+ className: "ds:inline-block ds:size-2 ds:rounded-[var(--radius-full)] ds:bg-[var(--destructive)]"
384
+ }
385
+ ),
386
+ a("periodontalChartCard.sign.bleeding", "Bleeding on probing")
387
+ ] }),
388
+ /* @__PURE__ */ o("span", { className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
389
+ /* @__PURE__ */ e(
390
+ "span",
391
+ {
392
+ "aria-hidden": "true",
393
+ className: "ds:inline-block ds:size-2 ds:rounded-[var(--radius-full)] ds:bg-[var(--warning)]"
394
+ }
395
+ ),
396
+ a("periodontalChartCard.sign.suppuration", "Suppuration")
397
+ ] })
398
+ ]
399
+ }
400
+ ), X = D.length === 0, V = /* @__PURE__ */ o("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
401
+ /* @__PURE__ */ o("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)]", children: [
402
+ /* @__PURE__ */ e(
403
+ "h2",
404
+ {
405
+ id: k,
406
+ className: "type-title-card ds:m-0 ds:text-[color:var(--foreground)]",
407
+ children: M
408
+ }
409
+ ),
410
+ /* @__PURE__ */ e("p", { className: "type-body-sm ds:m-0 ds:text-[color:var(--muted-foreground)]", children: w ? a("periodontalChartCard.subtitle.dated", {
411
+ dentition: T,
412
+ date: w,
413
+ defaultValue: "{{dentition}} · {{date}}"
414
+ }) : T })
415
+ ] }),
416
+ g.length > 0 ? /* @__PURE__ */ e(ne, { rowGap: "sm", children: g.map((t) => /* @__PURE__ */ e(se, { label: t.label, value: t.value }, t.key)) }) : null,
417
+ X ? /* @__PURE__ */ e(
418
+ "p",
419
+ {
420
+ role: "status",
421
+ className: "type-body-sm ds:m-0 ds:text-[color:var(--muted-foreground)]",
422
+ children: a(
423
+ "periodontalChartCard.empty",
424
+ "No periodontal readings recorded."
425
+ )
426
+ }
427
+ ) : /* @__PURE__ */ o(Z, { children: [
428
+ /* @__PURE__ */ e("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: D.map((t) => J(t)) }),
429
+ W
430
+ ] })
431
+ ] });
432
+ return /* @__PURE__ */ e(
433
+ "div",
434
+ {
435
+ ref: K,
436
+ role: "region",
437
+ "aria-label": $,
438
+ "aria-labelledby": k,
439
+ "data-component": "periodontal-chart-card",
440
+ "data-component-id": b,
441
+ id: b,
442
+ className: le({ surface: P, className: _ }),
443
+ ...B,
444
+ children: P === "elevated" ? /* @__PURE__ */ e(S, { variant: "elevated", children: /* @__PURE__ */ e(S.Body, { children: V }) }) : V
445
+ }
446
+ );
447
+ }
448
+ );
449
+ he.displayName = "PeriodontalChartCard";
450
+ export {
451
+ f as P,
452
+ he as a,
453
+ de as p
454
+ };
455
+ //# sourceMappingURL=periodontal-chart-card-BYs9hax1.js.map
@@ -0,0 +1,20 @@
1
+ import { c as a } 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
+ [
10
+ "path",
11
+ {
12
+ d: "M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",
13
+ key: "9njp5v"
14
+ }
15
+ ]
16
+ ], c = a("phone", o);
17
+ export {
18
+ c as P
19
+ };
20
+ //# sourceMappingURL=phone-Bi5yUm4I.js.map
@@ -1,5 +1,5 @@
1
- import { q as s, r as a, v as r, w as l } from "./date-picker-variants-DLi1Va_e.js";
2
- import { i as p } from "./isSameWeek-HfxKk6Lz.js";
1
+ import { q as s, r as a, v as r, w as l } from "./date-picker-variants-CXEAx3O_.js";
2
+ import { i as p } from "./isSameWeek-B1odL2vR.js";
3
3
  const w = {
4
4
  lessThanXSeconds: {
5
5
  one: {
@@ -511,4 +511,4 @@ const I = {
511
511
  export {
512
512
  Z as pl
513
513
  };
514
- //# sourceMappingURL=pl-B3Smqpkr.js.map
514
+ //# sourceMappingURL=pl-DtS08ioY.js.map
@@ -2,7 +2,7 @@ import { jsx as t, jsxs as p, Fragment as Ge } from "react/jsx-runtime";
2
2
  import { forwardRef as Ze, useState as me, useRef as I, useMemo as D, useImperativeHandle as Qe, useCallback as B, useEffect as J } from "react";
3
3
  import { c as Z } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as C } from "react-i18next";
5
- import { A as Y } from "./alert-ywPR59NE.js";
5
+ import { A as Y } from "./alert-CUTxnym2.js";
6
6
  import { A as ke } from "./avatar-BNQNhoyL.js";
7
7
  import { B as G } from "./button-DD_0Xdmr.js";
8
8
  import { D as H } from "./dropdown-menu-CUEXqKis.js";
@@ -19,7 +19,8 @@ import { c as nt } from "./createLucideIcon-CrFbzy84.js";
19
19
  import { R as at } from "./refresh-cw-CC8jSKMr.js";
20
20
  import { C as Ne } from "./chevron-down-BX_NP2Yh.js";
21
21
  import { M as te } from "./map-pin-B8STOPMJ.js";
22
- import { L as Se, S as Pe } from "./shield-check-C73ma9Cs.js";
22
+ import { L as Se } from "./languages-DsVf_WzT.js";
23
+ import { S as Pe } from "./shield-check-BjCGH_Sr.js";
23
24
  import { H as Me } from "./heart-C0faivFf.js";
24
25
  import { C as Ae } from "./calendar-clock-CYkcqdwl.js";
25
26
  /**
@@ -1569,4 +1570,4 @@ export {
1569
1570
  Ct as P,
1570
1571
  rt as p
1571
1572
  };
1572
- //# sourceMappingURL=practice-results-DDi-kvaD.js.map
1573
+ //# sourceMappingURL=practice-results-Cq1y8JFD.js.map