@alfadocs/ui-kit 0.63.0 → 0.65.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 (265) hide show
  1. package/dist/_chunks/{agenda-tray-DA6qj8BL.js → agenda-tray-Bh1KfEOG.js} +2 -2
  2. package/dist/_chunks/{ai-consent-banner-DBKV27je.js → ai-consent-banner-Btzmk8OH.js} +3 -2
  3. package/dist/_chunks/{ai-prompt-input-C6sCr1Vi.js → ai-prompt-input-BwEACCPm.js} +3 -3
  4. package/dist/_chunks/{ai-tools-rail-7tC3GT4h.js → ai-tools-rail-JnlTqfS4.js} +2 -2
  5. package/dist/_chunks/{alia-sidebar-DlvyXgVC.js → alia-sidebar-CN8pA6c-.js} +7 -7
  6. package/dist/_chunks/{anamnesis-card-CmkBVAln.js → anamnesis-card-qeLYRG79.js} +2 -2
  7. package/dist/_chunks/{antenatal-schedule-timeline-CdiqkF05.js → antenatal-schedule-timeline-BfzFjEyb.js} +3 -3
  8. package/dist/_chunks/{appointment-tray-BwDHhWWC.js → appointment-tray-BQnJEora.js} +2 -2
  9. package/dist/_chunks/{ar-C68WKG5a.js → ar-Cn5Fq48Z.js} +2 -2
  10. package/dist/_chunks/{audio-recorder-D6OVfNiZ.js → audio-recorder-DjXLP4aF.js} +3 -3
  11. package/dist/_chunks/{autocomplete-CDqxB68B.js → autocomplete-CcCFlVf-.js} +4 -4
  12. package/dist/_chunks/{bishop-score-B9tvgoIq.js → bishop-score-x2fNqbuZ.js} +3 -3
  13. package/dist/_chunks/{bmi-calculator-DA2NGmVK.js → bmi-calculator-C3roxbqD.js} +2 -2
  14. package/dist/_chunks/{booking-BUV9fspj.js → booking-L8-YP8BJ.js} +149 -149
  15. package/dist/_chunks/calendar-B6soK1Yb.js +17 -0
  16. package/dist/_chunks/{calendar-CkuJIg3s.js → calendar-oYWOCrnf.js} +1 -1
  17. package/dist/_chunks/{care-plan-card-QmNpGggC.js → care-plan-card-D42WD4-T.js} +2 -2
  18. package/dist/_chunks/{care-plan-entry-card-Cnra7vUc.js → care-plan-entry-card-BukNI7Uy.js} +2 -2
  19. package/dist/_chunks/{carousel.agent-DrX96W-1.js → carousel.agent-vt21A_el.js} +2 -2
  20. package/dist/_chunks/{chat-input-CFwc7JxL.js → chat-input-B5zjNEUN.js} +2 -2
  21. package/dist/_chunks/{chat-message-Dm8U2RY1.js → chat-message-3V54YipB.js} +2 -2
  22. package/dist/_chunks/{code-block-HoddNOKJ.js → code-block-BBWHhIc8.js} +2 -2
  23. package/dist/_chunks/{contact-profile-card-DvvVfAA2.js → contact-profile-card-CCeJmjbd.js} +2 -2
  24. package/dist/_chunks/{cycle-calculator-C_t1Hs8V.js → cycle-calculator-DrVXbIB4.js} +4 -4
  25. package/dist/_chunks/{date-picker-BfHblqwA.js → date-picker-oGg5BnXL.js} +12 -11
  26. package/dist/_chunks/{date-picker-variants-CXEAx3O_.js → date-picker-variants-DAcSLTua.js} +358 -372
  27. package/dist/_chunks/{date-range-picker-hcAMs1wO.js → date-range-picker-C5BWfH_T.js} +34 -25
  28. package/dist/_chunks/{date-time-picker-H-3Pwqlb.js → date-time-picker-Ze1My59T.js} +18 -17
  29. package/dist/_chunks/{de-DK4A9_a8.js → de-CrJs4ZsX.js} +2 -2
  30. package/dist/_chunks/{description-list-BEbK2g93.js → description-list-gkNGWk5G.js} +2 -2
  31. package/dist/_chunks/{due-date-calculator-Q8MIwEVV.js → due-date-calculator-D4K1BnE2.js} +4 -4
  32. package/dist/_chunks/{editable-currency-cell-renderer-D5C5tCfu.js → editable-currency-cell-renderer-CFqQc56y.js} +305 -295
  33. package/dist/_chunks/editor-overlay-wYm22wZK.js +88 -0
  34. package/dist/_chunks/{el-B29HXhG5.js → el-DHdMOIhL.js} +6 -6
  35. package/dist/_chunks/{es-BOwPVwWn.js → es-DCATCfqo.js} +2 -2
  36. package/dist/_chunks/{fetal-weight-D1a6BmM-.js → fetal-weight-B_pBjlO7.js} +2 -2
  37. package/dist/_chunks/{fiscal-code-input-BZ0FxwUl.js → fiscal-code-input-DPtqluVb.js} +2 -2
  38. package/dist/_chunks/{fr-DoDBtn0T.js → fr-BfGEMshF.js} +2 -2
  39. package/dist/_chunks/{freemium-paywall-gHGA44dW.js → freemium-paywall-CkWjv3o6.js} +2 -2
  40. package/dist/_chunks/{gestational-age-calculator-AkNFfZYs.js → gestational-age-calculator-BETQAVkA.js} +7 -7
  41. package/dist/_chunks/{hcg-doubling-Dg0Hr7ey.js → hcg-doubling-8zXCJgAQ.js} +3 -3
  42. package/dist/_chunks/{header-Ce1Br27u.js → header-CNszv2WQ.js} +2 -2
  43. package/dist/_chunks/{header-settings-D5Z2B_Yz.js → header-settings-CNOqIhoW.js} +3 -3
  44. package/dist/_chunks/{hi-DGByrKby.js → hi-CBFRXEIm.js} +2 -2
  45. package/dist/_chunks/icon-button-LqoiKcUN.js +78 -0
  46. package/dist/_chunks/{insert-result-C1SYdueh.js → insert-result-DIAG3ltJ.js} +115 -136
  47. package/dist/_chunks/{isSameWeek-B1odL2vR.js → isSameWeek-I3DfXUp1.js} +2 -2
  48. package/dist/_chunks/{it-B16rEecm.js → it-nz6vAKwG.js} +7 -7
  49. package/dist/_chunks/{ja-B0viOgft.js → ja-DQcqdAEJ.js} +2 -2
  50. package/dist/_chunks/{key-value-pair-CkQIb9EG.js → key-value-pair-BrgbMfbF.js} +2 -2
  51. package/dist/_chunks/{locale-picker-D99UyZVJ.js → locale-picker-C9JmBht3.js} +3 -3
  52. package/dist/_chunks/{marketplace-app-shell-C4OYAC22.js → marketplace-app-shell-BXfRMiRk.js} +4 -4
  53. package/dist/_chunks/{message-card-Dvl1TgaN.js → message-card-Bgcvfj6-.js} +2 -2
  54. package/dist/_chunks/{message-tray-Dl6GQaaV.js → message-tray-saAVMeHP.js} +3 -3
  55. package/dist/_chunks/{multi-select-DOLO3K_z.js → multi-select-BcPylvHR.js} +100 -90
  56. package/dist/_chunks/{nl-cBxEX2QU.js → nl-L5SuDjyl.js} +2 -2
  57. package/dist/_chunks/{notification-card-CObnGdJu.js → notification-card-BiESdm8q.js} +2 -2
  58. package/dist/_chunks/{notification-tray-BWHDIjgd.js → notification-tray-DlgenTEe.js} +3 -3
  59. package/dist/_chunks/{patient-search-CArmRKeg.js → patient-search-Bw9ONucF.js} +2 -2
  60. package/dist/_chunks/{patient-shell-Coarf346.js → patient-shell-CF_qon7C.js} +3 -3
  61. package/dist/_chunks/{patient-summary-card-BnTqxcTr.js → patient-summary-card-Bgso0p_l.js} +2 -2
  62. package/dist/_chunks/{payment-form-DJ9vnzrT.js → payment-form-nXocS_MX.js} +11 -4
  63. package/dist/_chunks/{payment-request-card-B_lyobd0.js → payment-request-card-DBz3hVDz.js} +3 -3
  64. package/dist/_chunks/{pdf-viewer-chMpwpA4.js → pdf-viewer-GsfNqeeT.js} +3 -3
  65. package/dist/_chunks/{periodontal-chart-card-BYs9hax1.js → periodontal-chart-card-AYyHtU9K.js} +2 -2
  66. package/dist/_chunks/phone-input-DVXhNlIl.js +563 -0
  67. package/dist/_chunks/{pl-DtS08ioY.js → pl-YAn5z2wR.js} +3 -3
  68. package/dist/_chunks/{popover-Devce-tT.js → popover-DTbfAuR0.js} +2 -2
  69. package/dist/_chunks/{practice-results-CtfciF2v.js → practice-results-CVAgY2RZ.js} +3 -3
  70. package/dist/_chunks/{pregnancy-dating-Dg6dTe1p.js → pregnancy-dating-BuzLTwjy.js} +7 -7
  71. package/dist/_chunks/{pregnancy-weight-gain-DI7X-0JX.js → pregnancy-weight-gain-aicn7qs7.js} +2 -2
  72. package/dist/_chunks/{privacy-lock-BN3L-alb.js → privacy-lock-C7JyMf0y.js} +2 -2
  73. package/dist/_chunks/{product-hub-panel-CkfZBA3t.js → product-hub-panel-CAXDFeGP.js} +2 -2
  74. package/dist/_chunks/{pt-yFXs1VvH.js → pt-D9xdT5KQ.js} +6 -6
  75. package/dist/_chunks/{public-header.agent-CYQK6T6F.js → public-header.agent-BOhJgZEU.js} +3 -3
  76. package/dist/_chunks/{reviews-panel-CPrXu5TX.js → reviews-panel-DBktKm7i.js} +2 -2
  77. package/dist/_chunks/rich-text-editor-u36FqSWz.js +1190 -0
  78. package/dist/_chunks/{ro-DsCzSrzR.js → ro-Cp--52bT.js} +2 -2
  79. package/dist/_chunks/{ru-DgDxL0pc.js → ru-BM8eX_Zz.js} +3 -3
  80. package/dist/_chunks/{search-bar-CvN_S0jW.js → search-bar-SY2BcV2N.js} +2 -2
  81. package/dist/_chunks/{search-input-D3aMvi4l.js → search-input-DbxrnHkW.js} +3 -3
  82. package/dist/_chunks/{select-hsCaJSX3.js → select-CEtRcon5.js} +46 -45
  83. package/dist/_chunks/{sheet-xbzu4YiY.js → sheet-taJer-Ha.js} +2 -2
  84. package/dist/_chunks/{sign-document--nr5cxsB.js → sign-document-CdAiHiCh.js} +2 -2
  85. package/dist/_chunks/{sign-in-with-alfadocs-button-BpAjVmsI.js → sign-in-with-alfadocs-button-LppxjlFt.js} +2 -2
  86. package/dist/_chunks/{signature-field-DbhbpLha.js → signature-field-Dy1JRjzE.js} +10 -3
  87. package/dist/_chunks/{slot-grid-BlHHP9Qy.js → slot-grid-FsqumOaS.js} +2 -2
  88. package/dist/_chunks/smart-date-CWikAqZx.js +114 -0
  89. package/dist/_chunks/{social-sign-in-button-uJYLM366.js → social-sign-in-button-dlpPI5l7.js} +2 -2
  90. package/dist/_chunks/{spinner-OjQNn8oN.js → spinner-hbwuKwMf.js} +10 -10
  91. package/dist/_chunks/{sq-DHlCYN67.js → sq-XRpr0r49.js} +6 -6
  92. package/dist/_chunks/{streaming-text-CfhDqtIT.js → streaming-text-BB9mvK4m.js} +2 -2
  93. package/dist/_chunks/subDays-BcYv1Lxi.js +8 -0
  94. package/dist/_chunks/{sv-O0QaQs_s.js → sv-Z3APomE8.js} +2 -2
  95. package/dist/_chunks/{tabs-BpPYVme_.js → tabs-BIQ0ew1T.js} +2 -2
  96. package/dist/_chunks/{task-tray-Cb_hK4yb.js → task-tray-CAncV-QQ.js} +2 -2
  97. package/dist/_chunks/{theme-toggle-DAW7uC0B.js → theme-toggle-DETmSu_h.js} +2 -2
  98. package/dist/_chunks/{toast.agent-B0MCsvdZ.js → toast.agent-vuLRRn2a.js} +2 -2
  99. package/dist/_chunks/tooth-scheme-BIx1O2aJ.js +1257 -0
  100. package/dist/_chunks/{tr-BmNDRuio.js → tr-e0-P4FON.js} +2 -2
  101. package/dist/_chunks/{transcript-panel-B4HiC7ed.js → transcript-panel-CLHmv83g.js} +2 -2
  102. package/dist/_chunks/type-DZ5OMRA2.js +28 -0
  103. package/dist/_chunks/{unit-converter-3sINXO3m.js → unit-converter-CHN2cZ4b.js} +3 -3
  104. package/dist/_chunks/{wallet-pay-button-DuDPBlCO.js → wallet-pay-button--dnR6NfJ.js} +2 -2
  105. package/dist/_chunks/{workflow-map-BJDUNYlX.js → workflow-map-BX3JY1Bu.js} +3 -3
  106. package/dist/_chunks/{zh-CN-CgVJZEzz.js → zh-CN-B-igM5gY.js} +3 -3
  107. package/dist/agent-catalog.json +72 -4
  108. package/dist/components/agenda-tray/index.js +1 -1
  109. package/dist/components/ai-consent-banner/index.js +1 -1
  110. package/dist/components/ai-prompt-input/index.js +1 -1
  111. package/dist/components/ai-tools-rail/index.js +1 -1
  112. package/dist/components/anamnesis-card/index.js +1 -1
  113. package/dist/components/appointment-card/index.js +1 -1
  114. package/dist/components/audio-recorder/index.js +1 -1
  115. package/dist/components/autocomplete/index.js +1 -1
  116. package/dist/components/bishop-score/index.js +1 -1
  117. package/dist/components/bmi-calculator/index.js +1 -1
  118. package/dist/components/booking/index.js +1 -1
  119. package/dist/components/button/index.js +1 -1
  120. package/dist/components/calendar/index.js +1 -1
  121. package/dist/components/care-plan-card/index.js +1 -1
  122. package/dist/components/care-plan-entry-card/index.js +1 -1
  123. package/dist/components/carousel/index.js +1 -1
  124. package/dist/components/chat-input/index.js +1 -1
  125. package/dist/components/chat-message/index.js +1 -1
  126. package/dist/components/contact-profile-card/index.js +1 -1
  127. package/dist/components/cycle-calculator/index.js +1 -1
  128. package/dist/components/data-table/index.js +1 -1
  129. package/dist/components/date-picker/index.js +1 -1
  130. package/dist/components/date-range-picker/index.js +1 -1
  131. package/dist/components/date-time-picker/index.js +1 -1
  132. package/dist/components/description-list/index.js +1 -1
  133. package/dist/components/due-date-calculator/index.js +2 -2
  134. package/dist/components/editor-overlay/editor-overlay.d.ts +19 -0
  135. package/dist/components/editor-overlay/index.d.ts +3 -0
  136. package/dist/components/editor-overlay/index.js +5 -0
  137. package/dist/components/fetal-weight/index.js +1 -1
  138. package/dist/components/fiscal-code-input/index.js +1 -1
  139. package/dist/components/freemium-paywall/index.js +1 -1
  140. package/dist/components/gestational-age-calculator/index.js +1 -1
  141. package/dist/components/hcg-doubling/index.js +1 -1
  142. package/dist/components/header/index.js +1 -1
  143. package/dist/components/header-settings/index.js +1 -1
  144. package/dist/components/icon-button/index.js +1 -1
  145. package/dist/components/index.d.ts +2 -0
  146. package/dist/components/key-value-pair/index.js +1 -1
  147. package/dist/components/locale-picker/index.js +1 -1
  148. package/dist/components/message-card/index.js +1 -1
  149. package/dist/components/message-tray/index.js +1 -1
  150. package/dist/components/multi-select/index.js +1 -1
  151. package/dist/components/notification-card/index.js +1 -1
  152. package/dist/components/notification-tray/index.js +1 -1
  153. package/dist/components/patient-search/index.js +1 -1
  154. package/dist/components/patient-summary-card/index.js +1 -1
  155. package/dist/components/payment-card/index.js +1 -1
  156. package/dist/components/payment-form/index.js +1 -1
  157. package/dist/components/pdf-viewer/index.js +1 -1
  158. package/dist/components/periodontal-chart-card/index.js +1 -1
  159. package/dist/components/phone-input/index.js +1 -1
  160. package/dist/components/phone-input/phone-input.d.ts +9 -0
  161. package/dist/components/popover/index.js +1 -1
  162. package/dist/components/practice-results/index.js +1 -1
  163. package/dist/components/pregnancy-dating/index.js +1 -1
  164. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  165. package/dist/components/privacy-lock/index.js +1 -1
  166. package/dist/components/product-hub-tray/index.js +1 -1
  167. package/dist/components/public-header/index.js +1 -1
  168. package/dist/components/reviews-panel/index.js +1 -1
  169. package/dist/components/rich-text-editor/editor-toolbar.d.ts +16 -0
  170. package/dist/components/rich-text-editor/help-me-write-overlay.d.ts +25 -0
  171. package/dist/components/rich-text-editor/index.js +1 -1
  172. package/dist/components/rich-text-editor/rich-text-editor.d.ts +43 -0
  173. package/dist/components/search-bar/index.js +1 -1
  174. package/dist/components/search-input/index.js +1 -1
  175. package/dist/components/select/index.js +1 -1
  176. package/dist/components/select/select.d.ts +8 -0
  177. package/dist/components/sheet/index.js +1 -1
  178. package/dist/components/sign-document/index.js +1 -1
  179. package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
  180. package/dist/components/signature-field/index.js +1 -1
  181. package/dist/components/slot-grid/index.js +1 -1
  182. package/dist/components/smart-date/index.d.ts +3 -0
  183. package/dist/components/smart-date/index.js +5 -0
  184. package/dist/components/smart-date/smart-date.d.ts +32 -0
  185. package/dist/components/social-sign-in-button/index.js +1 -1
  186. package/dist/components/spinner/index.js +1 -1
  187. package/dist/components/streaming-text/index.js +1 -1
  188. package/dist/components/tabs/index.js +1 -1
  189. package/dist/components/task-tray/index.js +1 -1
  190. package/dist/components/theme-toggle/index.js +1 -1
  191. package/dist/components/toast/index.js +1 -1
  192. package/dist/components/tooth-scheme/index.d.ts +2 -2
  193. package/dist/components/tooth-scheme/index.js +22 -15
  194. package/dist/components/tooth-scheme/tooth-data.d.ts +79 -18
  195. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts +2 -0
  196. package/dist/components/tooth-scheme/tooth-scheme.d.ts +48 -1
  197. package/dist/components/transcript-panel/index.js +1 -1
  198. package/dist/components/unit-converter/index.js +1 -1
  199. package/dist/components/wallet-pay-button/index.js +1 -1
  200. package/dist/components/workflow/index.js +1 -1
  201. package/dist/i18n/locales/ar.d.ts +61 -0
  202. package/dist/i18n/locales/ar.js +63 -2
  203. package/dist/i18n/locales/de.d.ts +61 -0
  204. package/dist/i18n/locales/de.js +63 -2
  205. package/dist/i18n/locales/el.d.ts +61 -0
  206. package/dist/i18n/locales/el.js +63 -2
  207. package/dist/i18n/locales/en.d.ts +61 -0
  208. package/dist/i18n/locales/en.js +67 -2
  209. package/dist/i18n/locales/es.d.ts +61 -0
  210. package/dist/i18n/locales/es.js +63 -2
  211. package/dist/i18n/locales/fr.d.ts +61 -0
  212. package/dist/i18n/locales/fr.js +63 -2
  213. package/dist/i18n/locales/hi.d.ts +61 -0
  214. package/dist/i18n/locales/hi.js +63 -2
  215. package/dist/i18n/locales/it.d.ts +61 -0
  216. package/dist/i18n/locales/it.js +63 -2
  217. package/dist/i18n/locales/ja.d.ts +61 -0
  218. package/dist/i18n/locales/ja.js +63 -2
  219. package/dist/i18n/locales/nl.d.ts +61 -0
  220. package/dist/i18n/locales/nl.js +63 -2
  221. package/dist/i18n/locales/pl.d.ts +61 -0
  222. package/dist/i18n/locales/pl.js +63 -2
  223. package/dist/i18n/locales/pt.d.ts +61 -0
  224. package/dist/i18n/locales/pt.js +63 -2
  225. package/dist/i18n/locales/ro.d.ts +61 -0
  226. package/dist/i18n/locales/ro.js +63 -2
  227. package/dist/i18n/locales/ru.d.ts +61 -0
  228. package/dist/i18n/locales/ru.js +63 -2
  229. package/dist/i18n/locales/sq.d.ts +61 -0
  230. package/dist/i18n/locales/sq.js +63 -2
  231. package/dist/i18n/locales/sv.d.ts +61 -0
  232. package/dist/i18n/locales/sv.js +63 -2
  233. package/dist/i18n/locales/tr.d.ts +61 -0
  234. package/dist/i18n/locales/tr.js +63 -2
  235. package/dist/i18n/locales/zh.d.ts +61 -0
  236. package/dist/i18n/locales/zh.js +63 -2
  237. package/dist/index.js +511 -500
  238. package/dist/locales/ar.json +63 -2
  239. package/dist/locales/de.json +63 -2
  240. package/dist/locales/el.json +63 -2
  241. package/dist/locales/en.json +63 -2
  242. package/dist/locales/es.json +63 -2
  243. package/dist/locales/fr.json +63 -2
  244. package/dist/locales/hi.json +63 -2
  245. package/dist/locales/it.json +63 -2
  246. package/dist/locales/ja.json +63 -2
  247. package/dist/locales/nl.json +63 -2
  248. package/dist/locales/pl.json +63 -2
  249. package/dist/locales/pt.json +63 -2
  250. package/dist/locales/ro.json +63 -2
  251. package/dist/locales/ru.json +63 -2
  252. package/dist/locales/sq.json +63 -2
  253. package/dist/locales/sv.json +63 -2
  254. package/dist/locales/tr.json +63 -2
  255. package/dist/locales/zh.json +63 -2
  256. package/dist/patterns/alia-assistant/index.js +1 -1
  257. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  258. package/dist/patterns/patient-shell/index.js +1 -1
  259. package/dist/tokens.css +36 -22
  260. package/package.json +10 -1
  261. package/dist/_chunks/icon-button-CKEOrN37.js +0 -70
  262. package/dist/_chunks/phone-input-DfZbPPvh.js +0 -525
  263. package/dist/_chunks/rich-text-editor-B03qM22-.js +0 -334
  264. package/dist/_chunks/subDays-Bs00akhK.js +0 -8
  265. package/dist/_chunks/tooth-scheme-CxlsLjfN.js +0 -753
@@ -1,4 +1,4 @@
1
- import { P as r, f as s, p as m, a as e, s as n, b as o, c as i } from "../../_chunks/payment-form-DJ9vnzrT.js";
1
+ import { P as r, f as s, p as m, a as e, s as n, b as o, c as i } from "../../_chunks/payment-form-nXocS_MX.js";
2
2
  export {
3
3
  r as PaymentForm,
4
4
  s as formatPaymentAmount,
@@ -1,4 +1,4 @@
1
- import { P as p, p as a } from "../../_chunks/pdf-viewer-chMpwpA4.js";
1
+ import { P as p, p as a } from "../../_chunks/pdf-viewer-GsfNqeeT.js";
2
2
  export {
3
3
  p as PDFViewer,
4
4
  a as pdfViewerAgent
@@ -1,4 +1,4 @@
1
- import { P as o, a as t, p as d } from "../../_chunks/periodontal-chart-card-BYs9hax1.js";
1
+ import { P as o, a as t, p as d } from "../../_chunks/periodontal-chart-card-AYyHtU9K.js";
2
2
  export {
3
3
  o as PERIODONTAL_SITE_ORDER,
4
4
  t as PeriodontalChartCard,
@@ -1,4 +1,4 @@
1
- import { P as n, c as p, p as t, a as e } from "../../_chunks/phone-input-DfZbPPvh.js";
1
+ import { P as n, c as p, p as t, a as e } from "../../_chunks/phone-input-DVXhNlIl.js";
2
2
  export {
3
3
  n as PhoneInput,
4
4
  p as countryTriggerVariants,
@@ -36,6 +36,15 @@ export interface PhoneInputProps {
36
36
  readOnly?: boolean;
37
37
  placeholder?: string;
38
38
  popularCountries?: CountryCode[];
39
+ /**
40
+ * Restrict the country picker to this set (ISO 3166-1 alpha-2 codes), in
41
+ * the order given. Unsupported or duplicate codes are dropped; an empty /
42
+ * all-invalid list is ignored (every country stays selectable).
43
+ * `popularCountries` is intersected with this set. When the list resolves
44
+ * to a single country the picker collapses to a fixed, non-interactive
45
+ * dial code — only the national-number field stays editable.
46
+ */
47
+ allowedCountries?: CountryCode[];
39
48
  className?: string;
40
49
  id?: string;
41
50
  name?: string;
@@ -1,4 +1,4 @@
1
- import { P as e, p as r } from "../../_chunks/popover-Devce-tT.js";
1
+ import { P as e, p as r } from "../../_chunks/popover-DTbfAuR0.js";
2
2
  export {
3
3
  e as Popover,
4
4
  r as popoverAgent
@@ -1,4 +1,4 @@
1
- import { P as t, p as a } from "../../_chunks/practice-results-CtfciF2v.js";
1
+ import { P as t, p as a } from "../../_chunks/practice-results-CVAgY2RZ.js";
2
2
  export {
3
3
  t as PracticeResults,
4
4
  a as practiceResultsAgent
@@ -1,4 +1,4 @@
1
- import { P as r } from "../../_chunks/pregnancy-dating-Dg6dTe1p.js";
1
+ import { P as r } from "../../_chunks/pregnancy-dating-BuzLTwjy.js";
2
2
  export {
3
3
  r as PregnancyDating
4
4
  };
@@ -1,4 +1,4 @@
1
- import { P as s, R as n, T as i, a as r, r as A } from "../../_chunks/pregnancy-weight-gain-DI7X-0JX.js";
1
+ import { P as s, R as n, T as i, a as r, r as A } from "../../_chunks/pregnancy-weight-gain-aicn7qs7.js";
2
2
  export {
3
3
  s as PregnancyWeightGain,
4
4
  n as RATE_BANDS,
@@ -1,4 +1,4 @@
1
- import { P as o, p as r } from "../../_chunks/privacy-lock-BN3L-alb.js";
1
+ import { P as o, p as r } from "../../_chunks/privacy-lock-C7JyMf0y.js";
2
2
  export {
3
3
  o as PrivacyLock,
4
4
  r as privacyLockAgent
@@ -1,4 +1,4 @@
1
- import { P as u, a as o, p as t, b as e } from "../../_chunks/product-hub-panel-CkfZBA3t.js";
1
+ import { P as u, a as o, p as t, b as e } from "../../_chunks/product-hub-panel-CAXDFeGP.js";
2
2
  import { i as s } from "../../_chunks/is-safe-url-DkETxeHz.js";
3
3
  export {
4
4
  u as ProductHubPanel,
@@ -1,4 +1,4 @@
1
- import { P as r, p } from "../../_chunks/public-header.agent-CYQK6T6F.js";
1
+ import { P as r, p } from "../../_chunks/public-header.agent-BOhJgZEU.js";
2
2
  export {
3
3
  r as PublicHeader,
4
4
  p as publicHeaderAgent
@@ -1,4 +1,4 @@
1
- import { R as r, r as s } from "../../_chunks/reviews-panel-CPrXu5TX.js";
1
+ import { R as r, r as s } from "../../_chunks/reviews-panel-DBktKm7i.js";
2
2
  export {
3
3
  r as ReviewsPanel,
4
4
  s as reviewsPanelAgent
@@ -0,0 +1,16 @@
1
+ export type EditorToolbarPreset = 'minimal' | 'standard' | 'full';
2
+ export interface EditorToolbarProps {
3
+ /** Dispatch a Redactor command (and refresh active state). */
4
+ run: (command: string, ...args: unknown[]) => void;
5
+ /** Active formats at the caret — toggle buttons render pressed. */
6
+ active: ReadonlySet<string>;
7
+ preset: EditorToolbarPreset;
8
+ /** Show the text-colour control (consumer loaded the fontcolor plugin). */
9
+ enableColor?: boolean;
10
+ /** Show the image control (consumer set an image-upload URL). */
11
+ enableImage?: boolean;
12
+ /** Show the table control (consumer loaded the table plugin). */
13
+ enableTable?: boolean;
14
+ }
15
+ export declare function EditorToolbar({ run, active, preset, enableColor, enableImage, enableTable, }: EditorToolbarProps): React.JSX.Element;
16
+ //# sourceMappingURL=editor-toolbar.d.ts.map
@@ -0,0 +1,25 @@
1
+ import { type ReactNode } from 'react';
2
+ export interface HelpMeWriteOverlayProps {
3
+ open: boolean;
4
+ onClose: () => void;
5
+ onRequestAiDraft: (ctx: {
6
+ prompt: string;
7
+ signal: AbortSignal;
8
+ }) => Promise<string>;
9
+ onInsert: (draft: string) => void;
10
+ /** Preview + insert the draft as HTML (default) or plain text. */
11
+ previewAsHtml?: boolean;
12
+ privacyNotice?: ReactNode;
13
+ /**
14
+ * Voice dictation into the prompt. Same seam as the editor's `onDictate`:
15
+ * the consumer runs mic + transcription and pushes text back; the kit appends
16
+ * finals to the prompt. When omitted, the composer shows no mic.
17
+ */
18
+ onDictate?: (ctx: {
19
+ signal: AbortSignal;
20
+ onPartialTranscript: (text: string) => void;
21
+ onFinalTranscript: (text: string) => void;
22
+ }) => Promise<void>;
23
+ }
24
+ export declare function HelpMeWriteOverlay({ open, onClose, onRequestAiDraft, onInsert, previewAsHtml, privacyNotice, onDictate, }: HelpMeWriteOverlayProps): React.JSX.Element;
25
+ //# sourceMappingURL=help-me-write-overlay.d.ts.map
@@ -1,4 +1,4 @@
1
- import { R as a, r as e, w as i } from "../../_chunks/rich-text-editor-B03qM22-.js";
1
+ import { R as a, r as e, w as i } from "../../_chunks/rich-text-editor-u36FqSWz.js";
2
2
  export {
3
3
  a as RichTextEditor,
4
4
  e as richTextEditorAgent,
@@ -1,3 +1,4 @@
1
+ import { type ReactNode } from 'react';
1
2
  import '../../tokens/themes/bridges/redactor-theme.css';
2
3
  export type RedactorFactory = (selector: string | HTMLElement, command?: unknown, ...args: unknown[]) => unknown;
3
4
  export type RichTextEditorToolbar = 'minimal' | 'standard' | 'full';
@@ -37,13 +38,55 @@ export interface RichTextEditorProps {
37
38
  imageUploadUrl?: string;
38
39
  /** App keyboard-shortcut seam (e.g. Ctrl/Cmd+Enter to save). */
39
40
  onKeyDown?: (event: KeyboardEvent) => void;
41
+ /**
42
+ * Help-me-write. When provided, a DS "Help me write" action appears; the kit
43
+ * opens a dialog, calls this with the prompt + an AbortSignal, sanitises the
44
+ * returned draft and inserts it at the caret. The backend call / auth /
45
+ * practiceId all live in the consumer's implementation — never in the kit.
46
+ */
47
+ onRequestAiDraft?: (ctx: {
48
+ prompt: string;
49
+ signal: AbortSignal;
50
+ }) => Promise<string>;
51
+ /** Whether `onRequestAiDraft` returns HTML (default) or plain text. */
52
+ aiDraftFormat?: 'html' | 'text';
53
+ /** Override the compliance notice shown in the Help-me-write dialog. */
54
+ aiPrivacyNotice?: ReactNode;
55
+ /**
56
+ * Voice dictation. When provided, a DS mic toggle + live-transcript region
57
+ * appear. The kit owns the UI; the consumer runs mic capture + transcription
58
+ * inside the callback and pushes text back via `onPartialTranscript` (drives
59
+ * the live region) and `onFinalTranscript` (sanitised + inserted at the
60
+ * caret). Resolve when the session ends; honour `signal` to stop. All
61
+ * mic / transcription / backend logic stays consumer-side.
62
+ */
63
+ onDictate?: (ctx: {
64
+ signal: AbortSignal;
65
+ onPartialTranscript: (text: string) => void;
66
+ onFinalTranscript: (text: string) => void;
67
+ }) => Promise<void>;
40
68
  }
69
+ /** Block/inline formats the editor can toggle via `applyFormat`. */
70
+ export type EditorFormat = 'bold' | 'italic' | 'strikethrough' | 'bulletedList' | 'numberedList' | 'heading' | 'quote' | 'paragraph';
41
71
  export interface RichTextEditorHandle {
42
72
  getHTML: () => string;
73
+ /** Plain-text content of the editor (tags stripped). */
74
+ getText: () => string;
43
75
  /** Always '' — Redactor has no native Markdown serializer (see MDX). */
44
76
  getMarkdown: () => string;
45
77
  /** HTML goes through DOMPurify before reaching Redactor. */
46
78
  setContent: (html: string) => void;
79
+ /**
80
+ * Insert content at the caret (replacing any selection). HTML is
81
+ * DOMPurify-sanitised; pass `{ asHtml: false }` for a plain-text insert.
82
+ * Works with the degraded <textarea> too. This is the seam for inserting
83
+ * merge/template variables and AI-generated drafts.
84
+ */
85
+ insertAtCursor: (content: string, opts?: {
86
+ asHtml?: boolean;
87
+ }) => void;
88
+ /** Toggle/apply a block or inline format on the current selection. */
89
+ applyFormat: (format: EditorFormat) => void;
47
90
  focus: () => void;
48
91
  clear: () => void;
49
92
  }
@@ -1,4 +1,4 @@
1
- import { S as e, f as s, s as t } from "../../_chunks/search-bar-CvN_S0jW.js";
1
+ import { S as e, f as s, s as t } from "../../_chunks/search-bar-SY2BcV2N.js";
2
2
  export {
3
3
  e as SearchBar,
4
4
  s as filterSearchResults,
@@ -1,4 +1,4 @@
1
- import { S as t } from "../../_chunks/search-input-D3aMvi4l.js";
1
+ import { S as t } from "../../_chunks/search-input-DbxrnHkW.js";
2
2
  import { s as o } from "../../_chunks/search-input.agent-CfZvViOd.js";
3
3
  export {
4
4
  t as SearchInput,
@@ -1,4 +1,4 @@
1
- import { S as a, a as l, b as S, c, d as s, e as o, f as r, g as p, h as g, i, j as m } from "../../_chunks/select-hsCaJSX3.js";
1
+ import { S as a, a as l, b as S, c, d as s, e as o, f as r, g as p, h as g, i, j as m } from "../../_chunks/select-CEtRcon5.js";
2
2
  export {
3
3
  a as Select,
4
4
  l as SelectContent,
@@ -62,6 +62,14 @@ export interface SelectProps<T extends string = string> {
62
62
  tone?: 'default' | 'error';
63
63
  'aria-label'?: string;
64
64
  className?: string;
65
+ /**
66
+ * Portal target for the listbox. Defaults to `document.body`. Set this to a
67
+ * parent overlay's content element (e.g. a Popover) when the Select is nested
68
+ * inside one, so the listbox shares that stacking context and renders above
69
+ * it instead of behind it (the global z-scale puts `--z-dropdown` below
70
+ * `--z-popover`).
71
+ */
72
+ container?: HTMLElement | null;
65
73
  }
66
74
  interface SelectComponent {
67
75
  <T extends string = string>(props: SelectProps<T> & {
@@ -1,4 +1,4 @@
1
- import { S as t, s as a } from "../../_chunks/sheet-xbzu4YiY.js";
1
+ import { S as t, s as a } from "../../_chunks/sheet-taJer-Ha.js";
2
2
  export {
3
3
  t as Sheet,
4
4
  a as sheetAgent
@@ -1,4 +1,4 @@
1
- import { S as o, s } from "../../_chunks/sign-document--nr5cxsB.js";
1
+ import { S as o, s } from "../../_chunks/sign-document-CdAiHiCh.js";
2
2
  export {
3
3
  o as SignDocument,
4
4
  s as signDocumentAgent
@@ -1,4 +1,4 @@
1
- import { S as n } from "../../_chunks/sign-in-with-alfadocs-button-BpAjVmsI.js";
1
+ import { S as n } from "../../_chunks/sign-in-with-alfadocs-button-LppxjlFt.js";
2
2
  export {
3
3
  n as SignInWithAlfadocsButton
4
4
  };
@@ -1,4 +1,4 @@
1
- import { S as i, s as r } from "../../_chunks/signature-field-DbhbpLha.js";
1
+ import { S as i, s as r } from "../../_chunks/signature-field-Dy1JRjzE.js";
2
2
  export {
3
3
  i as SignatureField,
4
4
  r as signatureFieldVariants
@@ -1,4 +1,4 @@
1
- import { S as s, f as e, i as r } from "../../_chunks/slot-grid-BlHHP9Qy.js";
1
+ import { S as s, f as e, i as r } from "../../_chunks/slot-grid-FsqumOaS.js";
2
2
  export {
3
3
  s as SlotGrid,
4
4
  e as findFirstAvailable,
@@ -0,0 +1,3 @@
1
+ export { SmartDate } from './smart-date';
2
+ export type { SmartDateProps, SmartDateState } from './smart-date';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,5 @@
1
+ import { S as t } from "../../_chunks/smart-date-CWikAqZx.js";
2
+ export {
3
+ t as SmartDate
4
+ };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,32 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ export type SmartDateState = 'overdue' | 'past' | 'today' | 'tomorrow' | 'soon' | 'upcoming';
4
+ declare const smartDateVariants: (props?: ({
5
+ state?: "past" | "upcoming" | "today" | "overdue" | "tomorrow" | "soon" | null | undefined;
6
+ size?: "sm" | "md" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ export interface SmartDateProps extends Omit<HTMLAttributes<HTMLTimeElement>, 'children'>, Pick<VariantProps<typeof smartDateVariants>, 'size'> {
9
+ /** The date to display — ISO-8601 string, ms-since-epoch, or a `Date`. */
10
+ date: string | number | Date;
11
+ /**
12
+ * Reference "now" — defaults to the current date. Pin it in stories / tests
13
+ * (and anywhere deterministic output is required) so the bucketing is stable.
14
+ */
15
+ now?: string | number | Date;
16
+ /**
17
+ * Treat the date as a deadline: past dates read "Overdue" (destructive)
18
+ * instead of a neutral elapsed phrase ("Yesterday" / "5 days ago").
19
+ */
20
+ deadline?: boolean;
21
+ /**
22
+ * Near-future window, in whole days, within which an upcoming date shows a
23
+ * relative phrase ("In 3 days") alongside the date. Beyond it, just the date.
24
+ * Default `7`.
25
+ */
26
+ soonWithinDays?: number;
27
+ /** Locale override. Falls back to the active i18next language. */
28
+ locale?: string;
29
+ }
30
+ export declare const SmartDate: import("react").ForwardRefExoticComponent<SmartDateProps & import("react").RefAttributes<HTMLTimeElement>>;
31
+ export {};
32
+ //# sourceMappingURL=smart-date.d.ts.map
@@ -1,4 +1,4 @@
1
- import { S as t } from "../../_chunks/social-sign-in-button-uJYLM366.js";
1
+ import { S as t } from "../../_chunks/social-sign-in-button-dlpPI5l7.js";
2
2
  export {
3
3
  t as SocialSignInButton
4
4
  };
@@ -1,4 +1,4 @@
1
- import { S as n } from "../../_chunks/spinner-OjQNn8oN.js";
1
+ import { S as n } from "../../_chunks/spinner-hbwuKwMf.js";
2
2
  export {
3
3
  n as Spinner
4
4
  };
@@ -1,4 +1,4 @@
1
- import { S as t } from "../../_chunks/streaming-text-CfhDqtIT.js";
1
+ import { S as t } from "../../_chunks/streaming-text-BB9mvK4m.js";
2
2
  export {
3
3
  t as StreamingText
4
4
  };
@@ -1,4 +1,4 @@
1
- import { T as t, a as b, b as T, c as e, t as r } from "../../_chunks/tabs-BpPYVme_.js";
1
+ import { T as t, a as b, b as T, c as e, t as r } from "../../_chunks/tabs-BIQ0ew1T.js";
2
2
  export {
3
3
  t as Tabs,
4
4
  b as TabsContent,
@@ -1,4 +1,4 @@
1
- import { T as s, t } from "../../_chunks/task-tray-Cb_hK4yb.js";
1
+ import { T as s, t } from "../../_chunks/task-tray-CAncV-QQ.js";
2
2
  export {
3
3
  s as TaskTray,
4
4
  t as taskTrayAgent
@@ -1,4 +1,4 @@
1
- import { T as o, t } from "../../_chunks/theme-toggle-DAW7uC0B.js";
1
+ import { T as o, t } from "../../_chunks/theme-toggle-DETmSu_h.js";
2
2
  export {
3
3
  o as ThemeToggle,
4
4
  t as themeToggleAgent
@@ -1,4 +1,4 @@
1
- import { T as s, t as o, a as e, b as r, c as n, d as c, e as g } from "../../_chunks/toast.agent-B0MCsvdZ.js";
1
+ import { T as s, t as o, a as e, b as r, c as n, d as c, e as g } from "../../_chunks/toast.agent-vuLRRn2a.js";
2
2
  export {
3
3
  s as Toaster,
4
4
  o as toastAgent,
@@ -1,5 +1,5 @@
1
1
  export * from './tooth-scheme';
2
- export { FDI_TO_META, FDI_TO_UNIVERSAL, FDI_TO_PALMER, CONDITION_COLORS, CONDITION_TOKENS, CONDITION_PATTERNS, TOOTH_SHAPES, chartFromConditions, emptyChart, labelFor, layoutTeeth, } from './tooth-data';
3
- export type { Anatomy, Arch, Quadrant, Side, Surface, ToothMeta, ToothShape, PositionedTooth, } from './tooth-data';
2
+ export { FDI_TO_META, FDI_TO_UNIVERSAL, FDI_TO_PALMER, CONDITION_COLORS, CONDITION_TOKENS, CONDITION_SIDE_SYMBOL, CONDITION_PLAN_FOLDER, SURFACE_ASSET_NAME, toothImageUrl, conditionSymbolUrl, surfaceSymbolUrl, zonesForTooth, zoneSurface, zonePath, chartFromConditions, emptyChart, labelFor, layoutTeeth, } from './tooth-data';
3
+ export type { Anatomy, Arch, Quadrant, Side, Surface, SurfaceZone, Projection, SideSymbolSpec, ToothMeta, PositionedTooth, } from './tooth-data';
4
4
  export { toothSchemeAgent } from './tooth-scheme.agent';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1,20 +1,27 @@
1
- import { C as s, a as t, b as O, F as e, c as o, d as E, P as _, e as I, T as N, f as h, g as S, h as r, l as A, i as C, t as R, r as m } from "../../_chunks/tooth-scheme-CxlsLjfN.js";
1
+ import { C as o, a as t, b as e, c as T, F as O, d as _, e as E, P as I, f as S, S as r, T as N, g as h, h as m, i as n, l as A, j as l, s as C, t as D, k as F, r as c, z as R, m as i, n as L } from "../../_chunks/tooth-scheme-BIx1O2aJ.js";
2
2
  export {
3
- s as CONDITION_COLORS,
4
- t as CONDITION_PATTERNS,
5
- O as CONDITION_TOKENS,
6
- e as FDI_TO_META,
7
- o as FDI_TO_PALMER,
3
+ o as CONDITION_COLORS,
4
+ t as CONDITION_PLAN_FOLDER,
5
+ e as CONDITION_SIDE_SYMBOL,
6
+ T as CONDITION_TOKENS,
7
+ O as FDI_TO_META,
8
+ _ as FDI_TO_PALMER,
8
9
  E as FDI_TO_UNIVERSAL,
9
- _ as PERMANENT_TEETH,
10
- I as PRIMARY_TEETH,
11
- N as TOOTH_SHAPES,
12
- h as ToothScheme,
13
- S as chartFromConditions,
14
- r as emptyChart,
10
+ I as PERMANENT_TEETH,
11
+ S as PRIMARY_TEETH,
12
+ r as SURFACE_ASSET_NAME,
13
+ N as ToothScheme,
14
+ h as chartFromConditions,
15
+ m as conditionSymbolUrl,
16
+ n as emptyChart,
15
17
  A as labelFor,
16
- C as layoutTeeth,
17
- R as toothSchemeAgent,
18
- m as toothSchemeVariants
18
+ l as layoutTeeth,
19
+ C as surfaceSymbolUrl,
20
+ D as toothImageUrl,
21
+ F as toothSchemeAgent,
22
+ c as toothSchemeVariants,
23
+ R as zonePath,
24
+ i as zoneSurface,
25
+ L as zonesForTooth
19
26
  };
20
27
  //# sourceMappingURL=index.js.map
@@ -3,7 +3,7 @@ export type Dentition = 'permanent' | 'primary' | 'mixed';
3
3
  export type Numbering = 'fdi' | 'universal' | 'palmer';
4
4
  export type ToothMode = 'interactive' | 'display';
5
5
  export type Surface = 'mesial' | 'distal' | 'occlusal' | 'buccal' | 'lingual';
6
- export type ToothCondition = 'caries' | 'filled' | 'crowned' | 'missing' | 'implant' | 'rootCanal';
6
+ export type ToothCondition = 'caries' | 'filled' | 'crowned' | 'temporaryCrown' | 'bridge' | 'missing' | 'implant' | 'implantExtraction' | 'stub' | 'destroyed' | 'rootCanal';
7
7
  export interface ToothState {
8
8
  conditions: ToothCondition[];
9
9
  surfaces: Surface[];
@@ -43,33 +43,94 @@ export declare const PRIMARY_TEETH: FdiId[];
43
43
  export declare const FDI_TO_META: Record<FdiId, ToothMeta>;
44
44
  export declare const FDI_TO_UNIVERSAL: Record<FdiId, string>;
45
45
  export declare const FDI_TO_PALMER: Record<FdiId, string>;
46
+ /**
47
+ * FDI used to resolve a tooth's RENDER. There are no separate deciduous
48
+ * renders — primary teeth reuse the permanent image of the same position
49
+ * (quadrant 5→1, 6→2, 7→3, 8→4; position digit unchanged), scaled down by
50
+ * the renderer. Permanent teeth resolve to themselves.
51
+ */
52
+ export declare function assetFdi(meta: ToothMeta): FdiId;
53
+ /** Render scale applied to a tooth image (primary teeth are smaller). */
54
+ export declare const PRIMARY_TOOTH_SCALE = 0.72;
46
55
  /** CSS variable name (without the leading `var(...)`) that drives a condition's colour. */
47
56
  export declare const CONDITION_TOKENS: Record<ToothCondition, string>;
48
57
  /**
49
58
  * Convenience: the `fill="var(--destructive)"` string ready to paste onto
50
- * an SVG attribute. Kept in sync with `CONDITION_TOKENS`.
59
+ * an SVG attribute. Kept in sync with `CONDITION_TOKENS`. Used for the legend
60
+ * swatch + the surface-condition ring; whole-tooth conditions render a
61
+ * distinct symbol image (the glyph is the colour-independent channel).
51
62
  */
52
63
  export declare const CONDITION_COLORS: Record<ToothCondition, string>;
53
- /** SVG `<pattern>` ids declared in `<defs>`. `missing` renders an X glyph instead of a pattern. */
54
- export declare const CONDITION_PATTERNS: Record<ToothCondition, string>;
55
- export interface ToothShape {
56
- /** Visual width inside the enclosing `<g>`. */
57
- width: number;
58
- /** Visual height inside the enclosing `<g>`. */
59
- height: number;
60
- /** SVG `d` attribute for the crown outline. */
61
- path: string;
62
- /** Optional inner decorative path (occlusal surface on molars, etc.). */
63
- innerPath?: string;
64
+ export interface SideSymbolSpec {
65
+ /** Asset folder under `side/`. */
66
+ folder: string;
67
+ /** How the file resolves inside `{folder}/{view}/`. */
68
+ resolve: 'per-fdi' | 'general' | 'rct';
64
69
  }
65
- export declare const TOOTH_SHAPES: Record<Anatomy, ToothShape>;
66
- export declare const TOOTH_GAP = 4;
67
- export declare const TOOTH_ROW_GAP = 24;
70
+ export declare const CONDITION_SIDE_SYMBOL: Partial<Record<ToothCondition, SideSymbolSpec>>;
71
+ /** Resolve the side-view symbol overlay URL for a condition on a tooth. */
72
+ export declare function conditionSymbolUrl(meta: ToothMeta, assetBaseUrl: string, spec: SideSymbolSpec): string;
73
+ export type Projection = 'side' | 'plan';
74
+ /** The user-selectable view: a single projection, or both stacked together. */
75
+ export type ViewMode = Projection | 'both';
76
+ /** Map the clinical `Surface` enum to the asset surface filename token. */
77
+ export declare const SURFACE_ASSET_NAME: Record<Surface, string>;
78
+ /** Conditions that render as per-surface fills in the plan view. */
79
+ export declare const CONDITION_PLAN_FOLDER: Partial<Record<ToothCondition, string>>;
80
+ /** Resolve a per-surface plan-view overlay URL (e.g. caries on the distal). */
81
+ export declare function surfaceSymbolUrl(meta: ToothMeta, assetBaseUrl: string, folder: string, surface: Surface): string;
82
+ /**
83
+ * Clickable surface regions of a plan-view tooth, named by SCREEN position.
84
+ * `zoneSurface()` resolves each to the anatomical `Surface` per quadrant.
85
+ */
86
+ export type SurfaceZone = 'top' | 'bottom' | 'left' | 'right' | 'center';
87
+ /**
88
+ * Which zones a tooth exposes. Molars & premolars have a central occlusal
89
+ * table (5 zones); incisors & canines have no occlusal surface to mark, so
90
+ * their crown splits into 4 directional zones.
91
+ */
92
+ export declare function zonesForTooth(meta: ToothMeta): SurfaceZone[];
93
+ /**
94
+ * Map a screen zone to the anatomical surface, QUADRANT-AWARE. Two flips make
95
+ * this non-trivial (ported from the platform odontogram's `_getAreaBySide`, so
96
+ * a finding always lands on the correct surface wherever the tooth sits):
97
+ *
98
+ * - mesial / distal (left & right zones) flip between the patient's right
99
+ * quadrants {1,4} and left quadrants {2,3} — "toward the midline" reverses.
100
+ * - buccal(vestibular) / lingual(oral) (top & bottom zones) flip between the
101
+ * upper and lower arch.
102
+ * - centre is always occlusal.
103
+ *
104
+ * Primary quadrants (5-8) normalise to their permanent counterpart (1-4).
105
+ */
106
+ export declare function zoneSurface(meta: ToothMeta, zone: SurfaceZone): Surface;
107
+ /**
108
+ * SVG `d` path for a clickable surface zone within a tooth's local box.
109
+ * 5-zone teeth frame a central occlusal rect with four edge trapezoids;
110
+ * 4-zone teeth split the box along both diagonals into four triangles meeting
111
+ * at the centre.
112
+ */
113
+ export declare function zonePath(zone: SurfaceZone, rect: {
114
+ x: number;
115
+ y: number;
116
+ w: number;
117
+ h: number;
118
+ }, hasCenter: boolean): string;
119
+ export declare const TOOTH_GAP = 5;
120
+ export declare const TOOTH_ROW_GAP = 40;
68
121
  export declare const TOOTH_HIT_PAD = 4;
122
+ export declare const TOOTH_SLOT_WIDTH = 36;
123
+ /** Facial-view slot block-size; the plan/occlusal view uses a shorter slot. */
124
+ export declare const TOOTH_SLOT_HEIGHT = 62;
125
+ /**
126
+ * Resolve a tooth render URL. `view` follows the arch (`top` = upper,
127
+ * `bottom` = lower); `symbol` selects the artwork layer (`default` is the
128
+ * healthy tooth; condition/finding overlays use their symbol folder).
129
+ */
130
+ export declare function toothImageUrl(meta: ToothMeta, assetBaseUrl: string, symbol?: string, projection?: 'side' | 'plan'): string;
69
131
  export interface PositionedTooth {
70
132
  fdi: FdiId;
71
133
  meta: ToothMeta;
72
- shape: ToothShape;
73
134
  x: number;
74
135
  y: number;
75
136
  }
@@ -80,7 +141,7 @@ export interface PositionedTooth {
80
141
  * is preserved: the patient's right sits on the viewer's left in both
81
142
  * arches, regardless of document direction.
82
143
  */
83
- export declare function layoutTeeth(dentition: Dentition): {
144
+ export declare function layoutTeeth(dentition: Dentition, slotHeight?: number): {
84
145
  teeth: PositionedTooth[];
85
146
  width: number;
86
147
  height: number;
@@ -1,4 +1,6 @@
1
1
  import type { AgentAdapter } from '../../agent/types';
2
2
  import type { ToothSchemeHandle } from './tooth-scheme';
3
+ import type { Surface, ToothCondition } from './tooth-data';
3
4
  export declare const toothSchemeAgent: AgentAdapter<ToothSchemeHandle>;
5
+ export type { Surface, ToothCondition };
4
6
  //# sourceMappingURL=tooth-scheme.agent.d.ts.map