@alfadocs/ui-kit 1.67.0 → 1.68.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 (291) hide show
  1. package/dist/_chunks/{address-fields-CJtu7LQU.js → address-fields-BUPRs3n-.js} +3 -3
  2. package/dist/_chunks/{agenda-card-DR9gDdKp.js → agenda-card-BDuvreCe.js} +2 -2
  3. package/dist/_chunks/{agenda-tray-DGB1Zup-.js → agenda-tray-CfwylhWf.js} +3 -3
  4. package/dist/_chunks/{ai-credits-exhausted-notice-DfAgfZDF.js → ai-credits-exhausted-notice-Bg8NpW2K.js} +2 -2
  5. package/dist/_chunks/{ai-permission-notice-qsdm4Sx4.js → ai-permission-notice-C00i6VhY.js} +2 -2
  6. package/dist/_chunks/{ai-prompt-input-DSGSe4LH.js → ai-prompt-input-DzgyoKyk.js} +141 -139
  7. package/dist/_chunks/{alert-DjsJMGRE.js → alert-9kEwDza3.js} +122 -112
  8. package/dist/_chunks/{alia-sidebar-qe0quZkB.js → alia-sidebar-B06ZSOaF.js} +3 -3
  9. package/dist/_chunks/{anamnesis-summary-card-CMzBLTiN.js → anamnesis-summary-card-DQ3iE1gD.js} +2 -2
  10. package/dist/_chunks/{anamnesis-summary-rows-BQ_EokKz.js → anamnesis-summary-rows-CNK0fIJk.js} +392 -388
  11. package/dist/_chunks/{appointment-card-CL32sux-.js → appointment-card-5JMWi9_f.js} +2 -2
  12. package/dist/_chunks/{appointment-peek-B5mcDcXt.js → appointment-peek-D5XCfYKu.js} +2 -2
  13. package/dist/_chunks/{appointment-timeline-CCqjORFb.js → appointment-timeline-VFP6HoXT.js} +4 -4
  14. package/dist/_chunks/{appointment-tray-qtpJt8e0.js → appointment-tray-B3PDER3I.js} +3 -3
  15. package/dist/_chunks/{audio-recorder-B11RR-rC.js → audio-recorder-4Ll0pwYK.js} +3 -3
  16. package/dist/_chunks/{auth-form-parts-DwUTH6YN.js → auth-form-parts-B40zvD-a.js} +2 -2
  17. package/dist/_chunks/avatar-BPiPL7ND.js +199 -0
  18. package/dist/_chunks/{balance-badge-cell-DZNthHO1.js → balance-badge-cell-BG3DMly4.js} +4 -4
  19. package/dist/_chunks/{bishop-score-CaNTrikJ.js → bishop-score-Df8nF1qg.js} +2 -2
  20. package/dist/_chunks/{booking-tTVxKPQY.js → booking-B1pDbERi.js} +377 -335
  21. package/dist/_chunks/{calendar-BhN-jisv.js → calendar-BvOM8rG3.js} +2 -2
  22. package/dist/_chunks/{calendar-workspace-MRrzcxAy.js → calendar-workspace-CYK1M83j.js} +18 -18
  23. package/dist/_chunks/{chat-message-fRLZ95O5.js → chat-message-Be-9vIIQ.js} +2 -2
  24. package/dist/_chunks/{clinical-note-card-BnFTIs6x.js → clinical-note-card-Caidqcwa.js} +2 -2
  25. package/dist/_chunks/{color-picker-BsggJovx.js → color-picker-AcaWuKah.js} +99 -95
  26. package/dist/_chunks/{combobox-U5yfO6o0.js → combobox-vF9O-QoG.js} +92 -83
  27. package/dist/_chunks/{contact-profile-card-C4-OCshj.js → contact-profile-card-CAwwOqHl.js} +40 -40
  28. package/dist/_chunks/{control-room-rail-DUerqHeo.js → control-room-rail-BB6rCDWI.js} +3 -3
  29. package/dist/_chunks/{country-select-DF5Bd_mn.js → country-select-CSE2Zm_s.js} +2 -2
  30. package/dist/_chunks/dashboard-grid-7JzaiKnk.js +1487 -0
  31. package/dist/_chunks/{data-table-COoCQ4n_.js → data-table-Cty4-Jht.js} +3 -3
  32. package/dist/_chunks/{dependent-selector-DBr1AhLg.js → dependent-selector-C4kOgO8b.js} +2 -2
  33. package/dist/_chunks/{document-preview-VyQOjFVL.js → document-preview-513f3iPn.js} +4 -4
  34. package/dist/_chunks/{document-scanner-CXH_GYh4.js → document-scanner-Bd3wbzpI.js} +2 -2
  35. package/dist/_chunks/{editable-description-ChGNdYY8.js → editable-description-DnAFi360.js} +2 -2
  36. package/dist/_chunks/{entity-summary-Bj-Wxq7Y.js → entity-summary-C2B8yNmc.js} +4 -4
  37. package/dist/_chunks/{error-summary-PUE5Zxp9.js → error-summary-mGxIyDAY.js} +2 -2
  38. package/dist/_chunks/{face-scheme-DAD-mXzM.js → face-scheme-CSJdRNad.js} +248 -244
  39. package/dist/_chunks/{file-manager-RiV7-OEE.js → file-manager-D4cPnRhL.js} +3 -3
  40. package/dist/_chunks/{forgot-password-form-CPOfRE0C.js → forgot-password-form-Dqi7R-NL.js} +4 -4
  41. package/dist/_chunks/format-number-DdzqwMs1.js +13 -0
  42. package/dist/_chunks/{freemium-paywall-6DO7noHX.js → freemium-paywall-C73C8Rgd.js} +2 -2
  43. package/dist/_chunks/{gestational-age-calculator-CZYa2D6m.js → gestational-age-calculator-Du53p8MH.js} +2 -2
  44. package/dist/_chunks/{header-settings-BSH9Gk0J.js → header-settings-DlUbvAUx.js} +37 -36
  45. package/dist/_chunks/{heatmap-C1TeC7wT.js → heatmap-DbZIQg14.js} +4 -4
  46. package/dist/_chunks/{help-me-write-templates-Bw3Q58x-.js → help-me-write-templates-5WkUfvc_.js} +3 -3
  47. package/dist/_chunks/{kit-extensions-DWs1UEXb.js → kit-extensions-CYvLL4ee.js} +3 -3
  48. package/dist/_chunks/length-token-DwMnGEYT.js +24 -0
  49. package/dist/_chunks/{link-cell-renderer-CtTsvfPY.js → link-cell-renderer-DtIsQWDO.js} +4 -4
  50. package/dist/_chunks/{login-dev-card-A-CL3mjt.js → login-dev-card-vEL-o5wq.js} +3 -3
  51. package/dist/_chunks/{map-view-BuVfJMEa.js → map-view-CtohteZD.js} +300 -191
  52. package/dist/_chunks/{marketplace-app-shell-DtSX8sYb.js → marketplace-app-shell-CcLQ0Dn-.js} +4 -4
  53. package/dist/_chunks/{message-card-A3mJNqfy.js → message-card-C_ksqIYM.js} +2 -2
  54. package/dist/_chunks/{message-tray-Ft6vSr71.js → message-tray-DCoQ4GQb.js} +3 -3
  55. package/dist/_chunks/{multi-select-CMaAQQgb.js → multi-select-BOad3za9.js} +110 -98
  56. package/dist/_chunks/{muscle-scheme-YoN3rYXV.js → muscle-scheme-C66WlCxG.js} +2 -2
  57. package/dist/_chunks/{note-timeline-DDqNU46n.js → note-timeline-KzL52MmB.js} +2 -2
  58. package/dist/_chunks/{notes-panel-IdsmqRFC.js → notes-panel-BXN46XkF.js} +6 -6
  59. package/dist/_chunks/notice-group-DkYzKyAZ.js +291 -0
  60. package/dist/_chunks/{notification-tray-BR3seWA7.js → notification-tray-Cp18MW5b.js} +2 -2
  61. package/dist/_chunks/{operator-hero-3_RG4Dkj.js → operator-hero-6aAIQaFZ.js} +83 -66
  62. package/dist/_chunks/{optical-prescription-CxfMsbxi.js → optical-prescription-ulXnDbBe.js} +525 -509
  63. package/dist/_chunks/panel-header-CbtlTe85.js +190 -0
  64. package/dist/_chunks/{panel-subview-yP4qIbKS.js → panel-subview-BPU7220K.js} +2 -2
  65. package/dist/_chunks/{patient-details-C-EWQTms.js → patient-details-C4Dyo7Ck.js} +4 -4
  66. package/dist/_chunks/{patient-field-row-lY-Tb5Mo.js → patient-field-row-DROvUkFu.js} +4 -4
  67. package/dist/_chunks/{patient-search-DpAKidZ5.js → patient-search-BADdx3M1.js} +2 -2
  68. package/dist/_chunks/{patient-summary-card-Bpto_VCD.js → patient-summary-card-CAimxbuI.js} +4 -4
  69. package/dist/_chunks/{payment-automation-upsell-BQ307qEX.js → payment-automation-upsell-CiwF5UrC.js} +2 -2
  70. package/dist/_chunks/{payment-form-XKtinW8r.js → payment-form-PBuh8PIa.js} +2 -2
  71. package/dist/_chunks/{pdf-viewer-BvoVMjH4.js → pdf-viewer-gAsNUsA8.js} +2 -2
  72. package/dist/_chunks/{periodontal-risk-chart-CPy7CNFe.js → periodontal-risk-chart-B7S9OmPC.js} +97 -89
  73. package/dist/_chunks/practice-profile-hero-qfrsFQI_.js +236 -0
  74. package/dist/_chunks/{practice-results-BrUDDMXC.js → practice-results-BzThnpnm.js} +328 -298
  75. package/dist/_chunks/{pregnancy-dating-B8wo4l_r.js → pregnancy-dating-EFcFUJkQ.js} +2 -2
  76. package/dist/_chunks/{privacy-mask-Ch7743uk.js → privacy-mask-CCz9zuIh.js} +2 -2
  77. package/dist/_chunks/{product-hub-panel-C_ZosrBt.js → product-hub-panel-YuFbNPlT.js} +2 -2
  78. package/dist/_chunks/progress-notice-DiHWZ8Ms.js +279 -0
  79. package/dist/_chunks/{province-select-Bd20Z9Br.js → province-select-CDjs5obD.js} +2 -2
  80. package/dist/_chunks/{radiograph-panel.agent-8Ewv8-d7.js → radiograph-panel.agent-4UllIoTQ.js} +2 -2
  81. package/dist/_chunks/{rating-C1Vrmpsi.js → rating-CGYpg5dj.js} +43 -44
  82. package/dist/_chunks/{registration-form-BxwqUZzk.js → registration-form-1B0PTDal.js} +4 -4
  83. package/dist/_chunks/{reviews-panel-AvsVgtJu.js → reviews-panel-CosDZyow.js} +29 -7
  84. package/dist/_chunks/{rich-text-editor-aCIoptbg.js → rich-text-editor-56dSsyZI.js} +3 -3
  85. package/dist/_chunks/{select-k4gBdS8N.js → select-4S-eYZUf.js} +244 -214
  86. package/dist/_chunks/{sign-document-D1P1nUQA.js → sign-document-BiOTs1P4.js} +2 -2
  87. package/dist/_chunks/{signature-request-3u6TvRt2.js → signature-request-DAmNj_uq.js} +5 -5
  88. package/dist/_chunks/skeleton-tTWJpvAq.js +415 -0
  89. package/dist/_chunks/{slot-grid-dj5f6R2w.js → slot-grid-D_gix9mJ.js} +2 -2
  90. package/dist/_chunks/{tabs-2x3L13jn.js → tabs-BTj-2qMZ.js} +2 -2
  91. package/dist/_chunks/{task-card-BS7Uqevr.js → task-card-Ci2XbLmq.js} +2 -2
  92. package/dist/_chunks/{task-editor-Bb5MMcid.js → task-editor-BomyxGoZ.js} +8 -8
  93. package/dist/_chunks/{task-tray-eQU4KJcA.js → task-tray-Dnc72nl-.js} +3 -3
  94. package/dist/_chunks/{tasks-panel-BOb57Ysw.js → tasks-panel-ATz9JDy8.js} +6 -6
  95. package/dist/_chunks/{theme-toggle-Ctb77x6O.js → theme-toggle-DT_Jn4DC.js} +147 -138
  96. package/dist/_chunks/{timeline-DEIuHrWz.js → timeline-wUuTDFY_.js} +2 -2
  97. package/dist/_chunks/{tool-rail-C-03rH2I.js → tool-rail-C-M3eVdY.js} +2 -2
  98. package/dist/_chunks/{transcript-panel-XudW5l6l.js → transcript-panel-CoHHpcFg.js} +2 -2
  99. package/dist/_chunks/{treatment-receipt-Cpm8tqQN.js → treatment-receipt-pFqWFyD_.js} +2 -2
  100. package/dist/_chunks/{unit-converter-BPZ0Ldkb.js → unit-converter-CIoTmCmP.js} +2 -2
  101. package/dist/_chunks/{use-appointment-details-read-CVSPoP5j.js → use-appointment-details-read-CUGfE0hV.js} +12 -12
  102. package/dist/_chunks/use-dismissed-CTOWqA0e.js +177 -0
  103. package/dist/_chunks/{voice-control-panel-BJIEbDq6.js → voice-control-panel-B8Lrk0C4.js} +4 -4
  104. package/dist/_chunks/{warning-stack-BdY-0bd3.js → warning-stack-BhHUmRiD.js} +2 -2
  105. package/dist/_chunks/{workflow-map-CYbRD9ek.js → workflow-map-ln4_OG8A.js} +2 -2
  106. package/dist/agent-catalog.json +172 -4
  107. package/dist/agent-i18n/en.json +25 -1
  108. package/dist/components/_shared/format-number.d.ts +20 -0
  109. package/dist/components/_shared/length-token.d.ts +12 -0
  110. package/dist/components/_shared/option.d.ts +1 -0
  111. package/dist/components/address-fields/index.js +1 -1
  112. package/dist/components/agenda-card/index.js +1 -1
  113. package/dist/components/agenda-tray/index.js +1 -1
  114. package/dist/components/ai-credits-notice/index.js +1 -1
  115. package/dist/components/ai-permission-notice/index.js +1 -1
  116. package/dist/components/ai-prompt-input/index.js +1 -1
  117. package/dist/components/alert/alert.d.ts +26 -0
  118. package/dist/components/alert/index.js +1 -1
  119. package/dist/components/anamnesis-summary-card/index.js +1 -1
  120. package/dist/components/appointment-card/index.js +2 -2
  121. package/dist/components/appointment-details-panel/index.js +1 -1
  122. package/dist/components/appointment-peek/index.js +1 -1
  123. package/dist/components/appointment-timeline/index.js +1 -1
  124. package/dist/components/audio-recorder/index.js +1 -1
  125. package/dist/components/avatar/avatar.d.ts +2 -0
  126. package/dist/components/avatar/index.js +1 -1
  127. package/dist/components/bishop-score/index.js +1 -1
  128. package/dist/components/booking/index.js +1 -1
  129. package/dist/components/calendar/index.js +1 -1
  130. package/dist/components/chat-message/index.js +1 -1
  131. package/dist/components/clinical-note-card/index.js +1 -1
  132. package/dist/components/color-picker/index.js +1 -1
  133. package/dist/components/combobox/index.js +1 -1
  134. package/dist/components/contact-profile-card/index.js +1 -1
  135. package/dist/components/control-room-rail/index.js +1 -1
  136. package/dist/components/country-select/index.js +1 -1
  137. package/dist/components/dashboard-grid/dashboard-grid.d.ts +20 -1
  138. package/dist/components/dashboard-grid/index.js +1 -1
  139. package/dist/components/data-table/index.js +2 -2
  140. package/dist/components/dependent-selector/index.js +1 -1
  141. package/dist/components/document-preview/index.js +1 -1
  142. package/dist/components/document-scanner/index.js +1 -1
  143. package/dist/components/editable-description/index.js +1 -1
  144. package/dist/components/entity-summary/index.js +1 -1
  145. package/dist/components/error-summary/index.js +1 -1
  146. package/dist/components/face-scheme/index.js +1 -1
  147. package/dist/components/file-manager/index.js +1 -1
  148. package/dist/components/freemium-paywall/index.js +1 -1
  149. package/dist/components/gestational-age-calculator/index.js +1 -1
  150. package/dist/components/header-settings/index.js +1 -1
  151. package/dist/components/heatmap/index.js +1 -1
  152. package/dist/components/index.d.ts +4 -2
  153. package/dist/components/map-view/index.d.ts +1 -1
  154. package/dist/components/map-view/index.js +1 -1
  155. package/dist/components/map-view/map-view.d.ts +51 -0
  156. package/dist/components/message-card/index.js +1 -1
  157. package/dist/components/message-tray/index.js +1 -1
  158. package/dist/components/multi-select/index.js +1 -1
  159. package/dist/components/muscle-scheme/index.js +1 -1
  160. package/dist/components/note-timeline/index.js +1 -1
  161. package/dist/components/notes-panel/index.js +1 -1
  162. package/dist/components/notice-group/index.d.ts +3 -0
  163. package/dist/components/notice-group/index.js +6 -0
  164. package/dist/components/notice-group/notice-group.agent.d.ts +4 -0
  165. package/dist/components/notice-group/notice-group.d.ts +43 -0
  166. package/dist/components/notification-tray/index.js +1 -1
  167. package/dist/components/operator-hero/index.js +1 -1
  168. package/dist/components/optical-prescription/index.js +1 -1
  169. package/dist/components/optical-prescription/optical-prescription-data.d.ts +8 -8
  170. package/dist/components/panel-header/index.js +1 -1
  171. package/dist/components/panel-header/panel-header.d.ts +10 -0
  172. package/dist/components/panel-subview/index.js +1 -1
  173. package/dist/components/patient-details/index.js +1 -1
  174. package/dist/components/patient-search/index.js +1 -1
  175. package/dist/components/patient-summary-card/index.js +1 -1
  176. package/dist/components/patient-table/index.js +1 -1
  177. package/dist/components/payment-form/index.js +1 -1
  178. package/dist/components/pdf-viewer/index.js +1 -1
  179. package/dist/components/periodontal-risk-chart/index.js +1 -1
  180. package/dist/components/practice-profile-hero/index.js +1 -1
  181. package/dist/components/practice-profile-hero/practice-profile-hero.d.ts +4 -1
  182. package/dist/components/practice-results/index.js +1 -1
  183. package/dist/components/practice-results/practice-results.d.ts +10 -2
  184. package/dist/components/pregnancy-dating/index.js +1 -1
  185. package/dist/components/product-hub-tray/index.js +1 -1
  186. package/dist/components/progress-notice/index.d.ts +3 -0
  187. package/dist/components/progress-notice/index.js +6 -0
  188. package/dist/components/progress-notice/progress-notice.agent.d.ts +4 -0
  189. package/dist/components/progress-notice/progress-notice.d.ts +81 -0
  190. package/dist/components/province-select/index.js +1 -1
  191. package/dist/components/radiograph-panel/index.js +1 -1
  192. package/dist/components/rating/index.js +1 -1
  193. package/dist/components/reviews-panel/index.js +1 -1
  194. package/dist/components/rich-text-editor/index.js +2 -2
  195. package/dist/components/select/index.js +1 -1
  196. package/dist/components/select/select.d.ts +6 -0
  197. package/dist/components/sign-document/index.js +1 -1
  198. package/dist/components/skeleton/index.d.ts +1 -1
  199. package/dist/components/skeleton/index.js +1 -1
  200. package/dist/components/skeleton/skeleton.d.ts +41 -1
  201. package/dist/components/skeleton-scheme/index.js +1 -1
  202. package/dist/components/slot-grid/index.js +1 -1
  203. package/dist/components/tabs/index.js +1 -1
  204. package/dist/components/task-card/index.js +1 -1
  205. package/dist/components/task-editor/index.js +1 -1
  206. package/dist/components/task-tray/index.js +1 -1
  207. package/dist/components/tasks-panel/index.js +1 -1
  208. package/dist/components/theme-toggle/index.js +1 -1
  209. package/dist/components/timeline/index.js +1 -1
  210. package/dist/components/tool-rail/index.js +1 -1
  211. package/dist/components/transcript-panel/index.js +1 -1
  212. package/dist/components/treatment-receipt/index.js +1 -1
  213. package/dist/components/unit-converter/index.js +1 -1
  214. package/dist/components/voice-control-panel/index.js +1 -1
  215. package/dist/components/warning-stack/index.js +1 -1
  216. package/dist/components/workflow/index.js +1 -1
  217. package/dist/hooks/index.d.ts +1 -0
  218. package/dist/hooks/index.js +81 -76
  219. package/dist/hooks/use-dismissed.d.ts +58 -0
  220. package/dist/i18n/locales/ar.d.ts +22 -0
  221. package/dist/i18n/locales/ar.js +22 -0
  222. package/dist/i18n/locales/de.d.ts +22 -0
  223. package/dist/i18n/locales/de.js +22 -0
  224. package/dist/i18n/locales/el.d.ts +22 -0
  225. package/dist/i18n/locales/el.js +22 -0
  226. package/dist/i18n/locales/en.d.ts +22 -0
  227. package/dist/i18n/locales/en.js +22 -0
  228. package/dist/i18n/locales/es.d.ts +22 -0
  229. package/dist/i18n/locales/es.js +22 -0
  230. package/dist/i18n/locales/fr.d.ts +22 -0
  231. package/dist/i18n/locales/fr.js +22 -0
  232. package/dist/i18n/locales/hi.d.ts +22 -0
  233. package/dist/i18n/locales/hi.js +22 -0
  234. package/dist/i18n/locales/it.d.ts +22 -0
  235. package/dist/i18n/locales/it.js +22 -0
  236. package/dist/i18n/locales/ja.d.ts +22 -0
  237. package/dist/i18n/locales/ja.js +22 -0
  238. package/dist/i18n/locales/nl.d.ts +22 -0
  239. package/dist/i18n/locales/nl.js +22 -0
  240. package/dist/i18n/locales/pl.d.ts +22 -0
  241. package/dist/i18n/locales/pl.js +22 -0
  242. package/dist/i18n/locales/pt.d.ts +22 -0
  243. package/dist/i18n/locales/pt.js +22 -0
  244. package/dist/i18n/locales/ro.d.ts +22 -0
  245. package/dist/i18n/locales/ro.js +22 -0
  246. package/dist/i18n/locales/ru.d.ts +22 -0
  247. package/dist/i18n/locales/ru.js +22 -0
  248. package/dist/i18n/locales/sq.d.ts +22 -0
  249. package/dist/i18n/locales/sq.js +22 -0
  250. package/dist/i18n/locales/sv.d.ts +22 -0
  251. package/dist/i18n/locales/sv.js +22 -0
  252. package/dist/i18n/locales/tr.d.ts +22 -0
  253. package/dist/i18n/locales/tr.js +22 -0
  254. package/dist/i18n/locales/zh.d.ts +22 -0
  255. package/dist/i18n/locales/zh.js +22 -0
  256. package/dist/index.js +1194 -1183
  257. package/dist/locales/ar.json +22 -0
  258. package/dist/locales/de.json +22 -0
  259. package/dist/locales/el.json +22 -0
  260. package/dist/locales/en.json +22 -0
  261. package/dist/locales/es.json +22 -0
  262. package/dist/locales/fr.json +22 -0
  263. package/dist/locales/hi.json +22 -0
  264. package/dist/locales/it.json +22 -0
  265. package/dist/locales/ja.json +22 -0
  266. package/dist/locales/nl.json +22 -0
  267. package/dist/locales/pl.json +22 -0
  268. package/dist/locales/pt.json +22 -0
  269. package/dist/locales/ro.json +22 -0
  270. package/dist/locales/ru.json +22 -0
  271. package/dist/locales/sq.json +22 -0
  272. package/dist/locales/sv.json +22 -0
  273. package/dist/locales/tr.json +22 -0
  274. package/dist/locales/zh.json +22 -0
  275. package/dist/patterns/alia-assistant/index.js +1 -1
  276. package/dist/patterns/anamnesis/index.js +1 -1
  277. package/dist/patterns/calendar/index.js +1 -1
  278. package/dist/patterns/forgot-password-form/index.js +1 -1
  279. package/dist/patterns/help-me-write-templates/index.js +2 -2
  280. package/dist/patterns/login-form/index.js +1 -1
  281. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  282. package/dist/patterns/payment-automation-upsell/index.js +1 -1
  283. package/dist/patterns/registration-form/index.js +1 -1
  284. package/dist/patterns/signature-request/index.js +1 -1
  285. package/dist/tokens.css +1 -1
  286. package/package.json +9 -1
  287. package/dist/_chunks/avatar-WZY3eGE7.js +0 -123
  288. package/dist/_chunks/dashboard-grid-B2MB7SRS.js +0 -1428
  289. package/dist/_chunks/panel-header-BJkaUwnl.js +0 -128
  290. package/dist/_chunks/practice-profile-hero-Dfc0F60y.js +0 -193
  291. package/dist/_chunks/skeleton-B1KTdJ4N.js +0 -116
@@ -1,10 +1,11 @@
1
- import { jsxs as m, jsx as r } from "react/jsx-runtime";
2
- import { forwardRef as T, useId as $, useMemo as S } from "react";
3
- import { c as _ } from "./index-D2ZczOXr.js";
1
+ import { jsxs as m, jsx as s } from "react/jsx-runtime";
2
+ import { forwardRef as I, useId as S, useMemo as _ } from "react";
3
+ import { c as D } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as j } from "react-i18next";
5
5
  import { B as w } from "./badge-BUk4RjTS.js";
6
- import { C as N } from "./card-BA4Ig_kn.js";
6
+ import { C } from "./card-BA4Ig_kn.js";
7
7
  import { u as M } from "./registry-DvAUVLHh.js";
8
+ import { a as A } from "./format-number-DdzqwMs1.js";
8
9
  const B = {
9
10
  id: "periodontal-risk-chart",
10
11
  capabilities: [],
@@ -35,36 +36,36 @@ const B = {
35
36
  description: "Sourced from the id prop."
36
37
  }
37
38
  }
38
- }, A = [
39
+ }, O = [
39
40
  "bleeding",
40
41
  "pockets",
41
42
  "toothLoss",
42
43
  "boneLossAge",
43
44
  "smoking",
44
45
  "systemic"
45
- ], D = {
46
+ ], U = {
46
47
  low: 0.4,
47
48
  moderate: 0.7,
48
49
  high: 1
49
50
  };
50
- function te(o) {
51
+ function re(o) {
51
52
  return o === "high" ? 2 : o === "moderate" ? 1 : 0;
52
53
  }
53
- function x(o, l, s) {
54
- return o >= s ? "high" : o >= l ? "moderate" : "low";
54
+ function x(o, l, a) {
55
+ return o >= a ? "high" : o >= l ? "moderate" : "low";
55
56
  }
56
- const U = {
57
+ const K = {
57
58
  none: "low",
58
59
  former: "low",
59
60
  light: "moderate",
60
61
  moderate: "high",
61
62
  heavy: "high"
62
63
  };
63
- function K(o) {
64
- const l = [], s = (e, d, a) => l.push({ factor: e, level: d, radius: D[d], valueText: a });
64
+ function W(o) {
65
+ const l = [], a = (e, d, i) => l.push({ factor: e, level: d, radius: U[d], valueText: i });
65
66
  {
66
67
  const e = o.bleedingPercent;
67
- s(
68
+ a(
68
69
  "bleeding",
69
70
  e == null ? "low" : x(e, 10, 26),
70
71
  e == null ? null : `${Math.round(e)}%`
@@ -72,7 +73,7 @@ function K(o) {
72
73
  }
73
74
  {
74
75
  const e = o.pocketsOver5mm;
75
- s(
76
+ a(
76
77
  "pockets",
77
78
  e == null ? "low" : x(e, 5, 9),
78
79
  e == null ? null : String(e)
@@ -80,7 +81,7 @@ function K(o) {
80
81
  }
81
82
  {
82
83
  const e = o.toothLoss;
83
- s(
84
+ a(
84
85
  "toothLoss",
85
86
  e == null ? "low" : x(e, 5, 9),
86
87
  e == null ? null : String(e)
@@ -89,69 +90,69 @@ function K(o) {
89
90
  {
90
91
  const e = o.boneLossPercent, d = o.ageYears;
91
92
  if (e == null || d == null || d <= 0)
92
- s("boneLossAge", "low", null);
93
+ a("boneLossAge", "low", null);
93
94
  else {
94
- const a = e / d;
95
- s(
95
+ const i = e / d;
96
+ a(
96
97
  "boneLossAge",
97
- a > 1 ? "high" : a >= 0.5 ? "moderate" : "low",
98
- a.toFixed(2)
98
+ i > 1 ? "high" : i >= 0.5 ? "moderate" : "low",
99
+ i.toFixed(2)
99
100
  );
100
101
  }
101
102
  }
102
103
  {
103
104
  const e = o.smoking;
104
- s("smoking", e == null ? "low" : U[e], e ?? null);
105
+ a("smoking", e == null ? "low" : K[e], e ?? null);
105
106
  }
106
107
  {
107
108
  const e = o.systemic;
108
- s("systemic", e ? "high" : "low", e == null ? null : e ? "yes" : "no");
109
+ a("systemic", e ? "high" : "low", e == null ? null : e ? "yes" : "no");
109
110
  }
110
111
  const g = l.filter((e) => e.level === "high").length, p = l.filter((e) => e.level === "moderate").length, y = g > 0 || p >= 2 ? "high" : p === 1 ? "moderate" : "low";
111
112
  return { factors: l, overall: y };
112
113
  }
113
- const f = 240, W = _("ds:w-full ds:text-[color:var(--foreground)]", {
114
+ const f = 240, z = D("ds:w-full ds:text-[color:var(--foreground)]", {
114
115
  variants: {
115
116
  surface: { flat: "", elevated: "" }
116
117
  },
117
118
  defaultVariants: { surface: "elevated" }
118
119
  }), k = f / 2, h = f / 2 - 16;
119
120
  function v(o, l) {
120
- const s = (-90 + o * 60) * Math.PI / 180;
121
- return { x: k + l * Math.cos(s), y: k + l * Math.sin(s) };
121
+ const a = (-90 + o * 60) * Math.PI / 180;
122
+ return { x: k + l * Math.cos(a), y: k + l * Math.sin(a) };
122
123
  }
123
124
  function u(o) {
124
- return A.map((l, s) => {
125
- const g = v(s, h * o);
125
+ return O.map((l, a) => {
126
+ const g = v(a, h * o);
126
127
  return `${g.x.toFixed(1)},${g.y.toFixed(1)}`;
127
128
  }).join(" ");
128
129
  }
129
- const C = {
130
+ const F = {
130
131
  low: "success",
131
132
  moderate: "warning",
132
133
  high: "error"
133
- }, z = {
134
+ }, G = {
134
135
  low: "Low",
135
136
  moderate: "Moderate",
136
137
  high: "High"
137
- }, G = {
138
+ }, H = {
138
139
  bleeding: "Bleeding on probing",
139
140
  pockets: "Residual pockets ≥5 mm",
140
141
  toothLoss: "Tooth loss",
141
142
  boneLossAge: "Bone loss / age",
142
143
  smoking: "Smoking",
143
144
  systemic: "Systemic / genetic"
144
- }, H = T(
145
+ }, q = I(
145
146
  ({
146
147
  inputs: o,
147
148
  surface: l = "elevated",
148
- locale: s,
149
+ locale: a,
149
150
  "aria-label": g,
150
151
  id: p,
151
152
  className: y,
152
153
  ...e
153
154
  }, d) => {
154
- const { t: a, i18n: O } = j("ui"), E = $(), F = s ?? O.language ?? "en", c = S(() => K(o), [o]);
155
+ const { t: i, i18n: E } = j("ui"), P = S(), b = a ?? E.language ?? "en", c = _(() => W(o), [o]);
155
156
  M(
156
157
  B,
157
158
  {
@@ -162,46 +163,53 @@ const C = {
162
163
  },
163
164
  p
164
165
  );
165
- const P = c.factors.map((t, n) => {
166
- const i = v(n, h * t.radius);
167
- return `${i.x.toFixed(1)},${i.y.toFixed(1)}`;
168
- }).join(" "), b = (t) => a(`periodontalRiskChart.level.${t}`, {
169
- defaultValue: z[t]
170
- }), V = (t, n) => {
171
- if (n == null)
172
- return a("periodontalRiskChart.valueUnset", "not recorded");
166
+ const V = c.factors.map((t, r) => {
167
+ const n = v(r, h * t.radius);
168
+ return `${n.x.toFixed(1)},${n.y.toFixed(1)}`;
169
+ }).join(" "), L = (t) => i(`periodontalRiskChart.level.${t}`, {
170
+ defaultValue: G[t]
171
+ }), T = (t, r) => {
172
+ if (r == null)
173
+ return i("periodontalRiskChart.valueUnset", "not recorded");
173
174
  if (t === "smoking")
174
- return a(`periodontalRiskChart.smoking.${n}`, { defaultValue: n });
175
+ return i(`periodontalRiskChart.smoking.${r}`, { defaultValue: r });
175
176
  if (t === "systemic")
176
- return a(`periodontalRiskChart.systemic.${n}`, { defaultValue: n });
177
+ return i(`periodontalRiskChart.systemic.${r}`, { defaultValue: r });
178
+ if (t === "boneLossAge") {
179
+ const n = Number.parseFloat(r);
180
+ return Number.isFinite(n) ? A(n, b, {
181
+ minimumFractionDigits: 2,
182
+ maximumFractionDigits: 2
183
+ }) : r;
184
+ }
177
185
  if (t === "bleeding") {
178
- const i = Number.parseFloat(n);
179
- if (Number.isFinite(i))
186
+ const n = Number.parseFloat(r);
187
+ if (Number.isFinite(n))
180
188
  try {
181
- return a("periodontalRiskChart.percent", {
182
- value: new Intl.NumberFormat(F, {
189
+ return i("periodontalRiskChart.percent", {
190
+ value: A(n, b, {
183
191
  maximumFractionDigits: 0
184
- }).format(i),
192
+ }),
185
193
  defaultValue: "{{value}}%"
186
194
  });
187
195
  } catch {
188
- return n;
196
+ return r;
189
197
  }
190
198
  }
191
- return n;
192
- }, L = a("periodontalRiskChart.heading", "Periodontal risk"), I = g ?? L, R = /* @__PURE__ */ m("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
199
+ return r;
200
+ }, R = i("periodontalRiskChart.heading", "Periodontal risk"), $ = g ?? R, N = /* @__PURE__ */ m("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
193
201
  /* @__PURE__ */ m("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]", children: [
194
- /* @__PURE__ */ r(
202
+ /* @__PURE__ */ s(
195
203
  "h2",
196
204
  {
197
- id: E,
205
+ id: P,
198
206
  className: "type-title-card ds:m-0 ds:text-[color:var(--foreground)]",
199
- children: L
207
+ children: R
200
208
  }
201
209
  ),
202
210
  /* @__PURE__ */ m("span", { className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
203
- /* @__PURE__ */ r("span", { className: "type-meta ds:text-[color:var(--muted-foreground)]", children: a("periodontalRiskChart.overall.label", "Overall") }),
204
- /* @__PURE__ */ r(w, { variant: C[c.overall], size: "sm", children: b(c.overall) })
211
+ /* @__PURE__ */ s("span", { className: "type-meta ds:text-[color:var(--muted-foreground)]", children: i("periodontalRiskChart.overall.label", "Overall") }),
212
+ /* @__PURE__ */ s(w, { variant: F[c.overall], size: "sm", children: L(c.overall) })
205
213
  ] })
206
214
  ] }),
207
215
  /* @__PURE__ */ m("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-lg)]", children: [
@@ -213,7 +221,7 @@ const C = {
213
221
  "aria-hidden": "true",
214
222
  focusable: "false",
215
223
  children: [
216
- /* @__PURE__ */ r(
224
+ /* @__PURE__ */ s(
217
225
  "polygon",
218
226
  {
219
227
  points: u(1),
@@ -221,7 +229,7 @@ const C = {
221
229
  fillOpacity: 0.1
222
230
  }
223
231
  ),
224
- /* @__PURE__ */ r(
232
+ /* @__PURE__ */ s(
225
233
  "polygon",
226
234
  {
227
235
  points: u(0.7),
@@ -229,7 +237,7 @@ const C = {
229
237
  fillOpacity: 0.12
230
238
  }
231
239
  ),
232
- /* @__PURE__ */ r(
240
+ /* @__PURE__ */ s(
233
241
  "polygon",
234
242
  {
235
243
  points: u(0.4),
@@ -237,7 +245,7 @@ const C = {
237
245
  fillOpacity: 0.14
238
246
  }
239
247
  ),
240
- [1, 0.7, 0.4].map((t) => /* @__PURE__ */ r(
248
+ [1, 0.7, 0.4].map((t) => /* @__PURE__ */ s(
241
249
  "polygon",
242
250
  {
243
251
  points: u(t),
@@ -247,25 +255,25 @@ const C = {
247
255
  },
248
256
  t
249
257
  )),
250
- A.map((t, n) => {
251
- const i = v(n, h);
252
- return /* @__PURE__ */ r(
258
+ O.map((t, r) => {
259
+ const n = v(r, h);
260
+ return /* @__PURE__ */ s(
253
261
  "line",
254
262
  {
255
263
  x1: k,
256
264
  y1: k,
257
- x2: i.x,
258
- y2: i.y,
265
+ x2: n.x,
266
+ y2: n.y,
259
267
  stroke: "var(--border)",
260
268
  strokeWidth: 1
261
269
  },
262
- n
270
+ r
263
271
  );
264
272
  }),
265
- /* @__PURE__ */ r(
273
+ /* @__PURE__ */ s(
266
274
  "polygon",
267
275
  {
268
- points: P,
276
+ points: V,
269
277
  fill: "var(--primary)",
270
278
  fillOpacity: 0.18,
271
279
  stroke: "var(--primary)",
@@ -273,13 +281,13 @@ const C = {
273
281
  strokeLinejoin: "round"
274
282
  }
275
283
  ),
276
- c.factors.map((t, n) => {
277
- const i = v(n, h * t.radius);
278
- return /* @__PURE__ */ r(
284
+ c.factors.map((t, r) => {
285
+ const n = v(r, h * t.radius);
286
+ return /* @__PURE__ */ s(
279
287
  "circle",
280
288
  {
281
- cx: i.x,
282
- cy: i.y,
289
+ cx: n.x,
290
+ cy: n.y,
283
291
  r: 3,
284
292
  fill: "var(--primary)"
285
293
  },
@@ -289,46 +297,46 @@ const C = {
289
297
  ]
290
298
  }
291
299
  ),
292
- /* @__PURE__ */ r(
300
+ /* @__PURE__ */ s(
293
301
  "dl",
294
302
  {
295
303
  className: "type-body-sm ds:grid ds:min-w-[12rem] ds:flex-1 ds:grid-cols-[auto_1fr] ds:gap-x-[var(--spacing-md)] ds:gap-y-[var(--spacing-2xs)] ds:m-0",
296
- "aria-label": a("periodontalRiskChart.factors.label", "Risk factors"),
304
+ "aria-label": i("periodontalRiskChart.factors.label", "Risk factors"),
297
305
  children: c.factors.map((t) => /* @__PURE__ */ m("div", { className: "ds:contents", children: [
298
- /* @__PURE__ */ r("dt", { className: "ds:text-[color:var(--muted-foreground)]", children: a(`periodontalRiskChart.factor.${t.factor}`, {
299
- defaultValue: G[t.factor]
306
+ /* @__PURE__ */ s("dt", { className: "ds:text-[color:var(--muted-foreground)]", children: i(`periodontalRiskChart.factor.${t.factor}`, {
307
+ defaultValue: H[t.factor]
300
308
  }) }),
301
309
  /* @__PURE__ */ m("dd", { className: "ds:m-0 ds:flex ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
302
- /* @__PURE__ */ r(w, { variant: C[t.level], size: "sm", children: b(t.level) }),
303
- /* @__PURE__ */ r("span", { className: "type-meta ds:text-[color:var(--muted-foreground)]", children: V(t.factor, t.valueText) })
310
+ /* @__PURE__ */ s(w, { variant: F[t.level], size: "sm", children: L(t.level) }),
311
+ /* @__PURE__ */ s("span", { className: "type-meta ds:text-[color:var(--muted-foreground)]", children: T(t.factor, t.valueText) })
304
312
  ] })
305
313
  ] }, t.factor))
306
314
  }
307
315
  )
308
316
  ] })
309
317
  ] });
310
- return /* @__PURE__ */ r(
318
+ return /* @__PURE__ */ s(
311
319
  "div",
312
320
  {
313
321
  ref: d,
314
322
  role: "group",
315
- "aria-label": I,
323
+ "aria-label": $,
316
324
  "data-component": "periodontal-risk-chart",
317
325
  "data-component-id": p,
318
326
  id: p,
319
- className: W({ surface: l, className: y }),
327
+ className: z({ surface: l, className: y }),
320
328
  ...e,
321
- children: l === "elevated" ? /* @__PURE__ */ r(N, { variant: "elevated", children: /* @__PURE__ */ r(N.Body, { children: R }) }) : R
329
+ children: l === "elevated" ? /* @__PURE__ */ s(C, { variant: "elevated", children: /* @__PURE__ */ s(C.Body, { children: N }) }) : N
322
330
  }
323
331
  );
324
332
  }
325
333
  );
326
- H.displayName = "PeriodontalRiskChart";
334
+ q.displayName = "PeriodontalRiskChart";
327
335
  export {
328
- A as P,
329
- H as a,
330
- K as c,
336
+ O as P,
337
+ q as a,
338
+ W as c,
331
339
  B as p,
332
- te as r
340
+ re as r
333
341
  };
334
- //# sourceMappingURL=periodontal-risk-chart-CPy7CNFe.js.map
342
+ //# sourceMappingURL=periodontal-risk-chart-B7S9OmPC.js.map
@@ -0,0 +1,236 @@
1
+ import { jsxs as i, jsx as e, Fragment as j } from "react/jsx-runtime";
2
+ import { forwardRef as A, useId as B, useState as z, useEffect as S, useMemo as E, useRef as K } from "react";
3
+ import { c as M } from "./index-D2ZczOXr.js";
4
+ import { A as b } from "./avatar-BPiPL7ND.js";
5
+ import { B as V } from "./badge-BUk4RjTS.js";
6
+ import { C as w } from "./card-BA4Ig_kn.js";
7
+ import { R as F } from "./rating-CGYpg5dj.js";
8
+ import { u as L } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
9
+ import { u as W } from "./registry-DvAUVLHh.js";
10
+ const $ = {
11
+ id: "practice-profile-hero",
12
+ // Purely observable hero region — no interactive affordances and no
13
+ // imperative actions on the handle (getName / getHasCover are read-only
14
+ // projections).
15
+ capabilities: [],
16
+ state: {
17
+ name: {
18
+ type: "string",
19
+ descriptionKey: "ui.agent.practiceProfileHero.state.name",
20
+ description: "Practice display name currently rendered.",
21
+ read: (a) => a.getName()
22
+ },
23
+ hasCover: {
24
+ type: "boolean",
25
+ descriptionKey: "ui.agent.practiceProfileHero.state.hasCover",
26
+ description: "Whether a cover-image strip is rendered. Structural flag only — never the image URL or any PHI.",
27
+ read: (a) => a.getHasCover()
28
+ }
29
+ },
30
+ actions: {},
31
+ domHooks: {
32
+ root: {
33
+ attr: "data-component",
34
+ value: "practice-profile-hero",
35
+ description: "Marks the PracticeProfileHero root region."
36
+ },
37
+ instanceId: {
38
+ attr: "data-component-id",
39
+ sourceProp: "id",
40
+ description: "Sourced from the id prop."
41
+ }
42
+ }
43
+ }, q = M("ds:w-full ds:text-[color:var(--foreground)]", {
44
+ variants: {
45
+ // Matches the kit's other `surface` props (Booking, ReviewsPanel,
46
+ // OperatorHero). `'elevated'` wraps in `<Card>`.
47
+ surface: {
48
+ flat: "",
49
+ elevated: ""
50
+ }
51
+ },
52
+ defaultVariants: {
53
+ surface: "elevated"
54
+ }
55
+ }), D = A(
56
+ ({
57
+ name: a,
58
+ tagline: p,
59
+ imageUrl: u,
60
+ coverImageUrl: r,
61
+ rating: n,
62
+ badges: l,
63
+ actionSlot: f,
64
+ surface: m = "elevated",
65
+ "aria-label": v,
66
+ id: c,
67
+ className: H,
68
+ ...C
69
+ }, k) => {
70
+ const h = B(), [d, g] = z(null), x = r && (d == null ? void 0 : d.url) === r ? d.status : "loading";
71
+ S(() => {
72
+ if (!r || typeof Image > "u") return;
73
+ let s = !0;
74
+ const o = new Image();
75
+ return o.onload = () => {
76
+ s && g({ url: r, status: "loaded" });
77
+ }, o.onerror = () => {
78
+ s && g({ url: r, status: "error" });
79
+ }, o.src = r, () => {
80
+ s = !1, o.onload = null, o.onerror = null;
81
+ };
82
+ }, [r]);
83
+ const t = !!r && x !== "error", R = E(
84
+ () => ({ getName: () => a, getHasCover: () => t }),
85
+ [a, t]
86
+ );
87
+ W($, R, c);
88
+ const y = K(null);
89
+ L(() => {
90
+ const s = y.current;
91
+ s && (r ? s.style.setProperty(
92
+ "--practice-profile-hero-cover",
93
+ `url("${r.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}")`
94
+ ) : s.style.removeProperty("--practice-profile-hero-cover"));
95
+ }, [r, t]);
96
+ const N = t ? /* @__PURE__ */ e(
97
+ "div",
98
+ {
99
+ ref: y,
100
+ "aria-hidden": "true",
101
+ "data-slot": "cover",
102
+ "data-state": x,
103
+ className: [
104
+ "ds:h-32 ds:sm:h-40 ds:w-full",
105
+ // Cover image layered over the brand gradient — the gradient is
106
+ // the visible underlay while the image streams in. A failed image
107
+ // removes the strip (see above). The `none` fallback keeps the
108
+ // declaration valid before the layout effect sets the custom
109
+ // property (SSR / first paint).
110
+ "ds:bg-[image:var(--practice-profile-hero-cover,none),var(--gradient-hero-brand)]",
111
+ "ds:bg-cover ds:bg-center"
112
+ ].join(" ")
113
+ }
114
+ ) : null, P = /* @__PURE__ */ i(
115
+ "div",
116
+ {
117
+ className: [
118
+ // Phones: stacked column, smaller avatar — the practice name,
119
+ // tagline and rating keep the full line width instead of being
120
+ // squeezed beside a 3xl avatar. sm+: classic row layout.
121
+ "ds:flex ds:flex-col ds:items-start ds:gap-[var(--spacing-md)]",
122
+ "ds:sm:flex-row ds:sm:gap-[var(--spacing-lg)]"
123
+ ].join(" "),
124
+ children: [
125
+ /* @__PURE__ */ e("div", { className: "ds:shrink-0 ds:sm:hidden", children: /* @__PURE__ */ e(
126
+ b,
127
+ {
128
+ size: "xl",
129
+ shape: "rounded",
130
+ ratio: "4:3",
131
+ name: a,
132
+ src: u,
133
+ "aria-hidden": "true"
134
+ }
135
+ ) }),
136
+ /* @__PURE__ */ e("div", { className: "ds:hidden ds:shrink-0 ds:sm:block", children: /* @__PURE__ */ e(
137
+ b,
138
+ {
139
+ size: "3xl",
140
+ shape: "rounded",
141
+ ratio: "4:3",
142
+ name: a,
143
+ src: u,
144
+ "aria-hidden": "true"
145
+ }
146
+ ) }),
147
+ /* @__PURE__ */ i("div", { className: "ds:flex ds:w-full ds:min-w-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
148
+ /* @__PURE__ */ i("div", { className: "ds:flex ds:flex-wrap ds:items-start ds:gap-[var(--spacing-md)]", children: [
149
+ /* @__PURE__ */ e(
150
+ "h1",
151
+ {
152
+ id: h,
153
+ dir: "auto",
154
+ className: "type-title-page ds:m-0 ds:text-[color:var(--foreground)]",
155
+ children: a
156
+ }
157
+ ),
158
+ f ? (
159
+ // `ms-auto` + `shrink-0` are the desktop contract, and both are
160
+ // wrong once the row wraps on a phone: they stranded the action
161
+ // at the inline-end of a start-aligned stack and stopped a wide
162
+ // control fitting the column. Hence `sm:` and up only.
163
+ /* @__PURE__ */ e("div", { className: "ds:flex ds:min-w-0 ds:items-center ds:gap-[var(--spacing-xs)] ds:sm:ms-auto ds:sm:shrink-0", children: f })
164
+ ) : null
165
+ ] }),
166
+ p ? /* @__PURE__ */ e(
167
+ "p",
168
+ {
169
+ dir: "auto",
170
+ className: "type-body ds:m-0 ds:text-[color:var(--foreground)]",
171
+ children: p
172
+ }
173
+ ) : null,
174
+ n ? (
175
+ // Rating owns the whole line: locale-formatted value, plural-
176
+ // aware review count, and a single role="img" announcement.
177
+ /* @__PURE__ */ e(
178
+ F,
179
+ {
180
+ value: n.value,
181
+ max: 5,
182
+ size: "md",
183
+ reviews: { count: n.count }
184
+ }
185
+ )
186
+ ) : null,
187
+ l && l.length > 0 ? /* @__PURE__ */ e(
188
+ "div",
189
+ {
190
+ role: "list",
191
+ className: "ds:mt-[var(--spacing-2xs)] ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-2xs)]",
192
+ children: l.map((s) => /* @__PURE__ */ e(
193
+ V,
194
+ {
195
+ variant: s.variant ?? "neutral",
196
+ role: "listitem",
197
+ children: s.label
198
+ },
199
+ s.key
200
+ ))
201
+ }
202
+ ) : null
203
+ ] })
204
+ ]
205
+ }
206
+ );
207
+ return /* @__PURE__ */ e(
208
+ "div",
209
+ {
210
+ ref: k,
211
+ role: "region",
212
+ "aria-label": v,
213
+ "aria-labelledby": v ? void 0 : h,
214
+ "data-component": "practice-profile-hero",
215
+ "data-component-id": c,
216
+ "data-has-cover": t ? "true" : "false",
217
+ id: c,
218
+ className: q({ surface: m, className: H }),
219
+ ...C,
220
+ children: m === "elevated" ? /* @__PURE__ */ i(w, { variant: "elevated", children: [
221
+ N,
222
+ /* @__PURE__ */ e(w.Body, { children: P })
223
+ ] }) : /* @__PURE__ */ i(j, { children: [
224
+ N,
225
+ /* @__PURE__ */ e("div", { className: "ds:pt-[var(--spacing-md)] ds:pb-[var(--spacing-md)]", children: P })
226
+ ] })
227
+ }
228
+ );
229
+ }
230
+ );
231
+ D.displayName = "PracticeProfileHero";
232
+ export {
233
+ D as P,
234
+ $ as p
235
+ };
236
+ //# sourceMappingURL=practice-profile-hero-qfrsFQI_.js.map