@alfadocs/ui-kit-debug 0.68.0 → 0.69.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 (735) hide show
  1. package/dist/_chunks/{accordion-9lJSMMsZ.js → accordion-DnIa7OHX.js} +69 -47
  2. package/dist/_chunks/accordion-DnIa7OHX.js.map +1 -0
  3. package/dist/_chunks/actions-cell-renderer-DrcaxB0w.js +2061 -0
  4. package/dist/_chunks/actions-cell-renderer-DrcaxB0w.js.map +1 -0
  5. package/dist/_chunks/address-autocomplete-BEX9PXty.js +496 -0
  6. package/dist/_chunks/address-autocomplete-BEX9PXty.js.map +1 -0
  7. package/dist/_chunks/{agenda-card.agent-B_R47-c9.js → agenda-card.agent-mTCrkKSZ.js} +6 -1
  8. package/dist/_chunks/{agenda-card.agent-B_R47-c9.js.map → agenda-card.agent-mTCrkKSZ.js.map} +1 -1
  9. package/dist/_chunks/{agenda-tray-T-BumlGZ.js → agenda-tray-g0kg7HwB.js} +36 -24
  10. package/dist/_chunks/agenda-tray-g0kg7HwB.js.map +1 -0
  11. package/dist/_chunks/{ai-consent-banner-Dxtx_WAh.js → ai-consent-banner-CXlsNX1c.js} +3 -3
  12. package/dist/_chunks/{ai-consent-banner-Dxtx_WAh.js.map → ai-consent-banner-CXlsNX1c.js.map} +1 -1
  13. package/dist/_chunks/{ai-prompt-input-BwEACCPm.js → ai-prompt-input-CuhTo9mh.js} +80 -61
  14. package/dist/_chunks/ai-prompt-input-CuhTo9mh.js.map +1 -0
  15. package/dist/_chunks/{ai-tools-rail-CInA_1-E.js → ai-tools-rail-BA_sqy1A.js} +87 -70
  16. package/dist/_chunks/ai-tools-rail-BA_sqy1A.js.map +1 -0
  17. package/dist/_chunks/{alia-sidebar-Ckv0yCKi.js → alia-sidebar-B47qRQb5.js} +5 -5
  18. package/dist/_chunks/{alia-sidebar-Ckv0yCKi.js.map → alia-sidebar-B47qRQb5.js.map} +1 -1
  19. package/dist/_chunks/{anamnesis-card-N8pIKWuS.js → anamnesis-card-DRmE24OQ.js} +2 -2
  20. package/dist/_chunks/{anamnesis-card-N8pIKWuS.js.map → anamnesis-card-DRmE24OQ.js.map} +1 -1
  21. package/dist/_chunks/{appointment-tray-BMl89NPW.js → appointment-tray-CZtvtaH-.js} +32 -20
  22. package/dist/_chunks/appointment-tray-CZtvtaH-.js.map +1 -0
  23. package/dist/_chunks/{audio-recorder-DjXLP4aF.js → audio-recorder-DYXXnGug.js} +59 -56
  24. package/dist/_chunks/audio-recorder-DYXXnGug.js.map +1 -0
  25. package/dist/_chunks/{autocomplete-CcCFlVf-.js → autocomplete-DOeGouCL.js} +157 -132
  26. package/dist/_chunks/autocomplete-DOeGouCL.js.map +1 -0
  27. package/dist/_chunks/bishop-score-PJI3AXzA.js +304 -0
  28. package/dist/_chunks/bishop-score-PJI3AXzA.js.map +1 -0
  29. package/dist/_chunks/bmi-calculator-BZtIJ53x.js +434 -0
  30. package/dist/_chunks/bmi-calculator-BZtIJ53x.js.map +1 -0
  31. package/dist/_chunks/{booking-L8-YP8BJ.js → booking-C3VqFReX.js} +420 -397
  32. package/dist/_chunks/booking-C3VqFReX.js.map +1 -0
  33. package/dist/_chunks/{breadcrumb-OTbaY70e.js → breadcrumb-CchdeG7d.js} +42 -28
  34. package/dist/_chunks/breadcrumb-CchdeG7d.js.map +1 -0
  35. package/dist/_chunks/{calculator-dialog-CFk4I91b.js → calculator-dialog-BR5iU0kf.js} +2 -2
  36. package/dist/_chunks/{calculator-dialog-CFk4I91b.js.map → calculator-dialog-BR5iU0kf.js.map} +1 -1
  37. package/dist/_chunks/{calendar-oYWOCrnf.js → calendar-CZUjL8SZ.js} +258 -201
  38. package/dist/_chunks/calendar-CZUjL8SZ.js.map +1 -0
  39. package/dist/_chunks/{care-plan-card-BwVUyUBb.js → care-plan-card-CvFGXa2z.js} +10 -6
  40. package/dist/_chunks/care-plan-card-CvFGXa2z.js.map +1 -0
  41. package/dist/_chunks/{care-plan-entry-card-VzdQHcOL.js → care-plan-entry-card-C3E_gClk.js} +17 -13
  42. package/dist/_chunks/care-plan-entry-card-C3E_gClk.js.map +1 -0
  43. package/dist/_chunks/{carousel.agent-vt21A_el.js → carousel.agent-4v8Emr9E.js} +219 -198
  44. package/dist/_chunks/{carousel.agent-vt21A_el.js.map → carousel.agent-4v8Emr9E.js.map} +1 -1
  45. package/dist/_chunks/{chart-Cg3e9EH9.js → chart-CMr3eW62.js} +150 -109
  46. package/dist/_chunks/chart-CMr3eW62.js.map +1 -0
  47. package/dist/_chunks/{chat-container-ogB4OskO.js → chat-container-DWho5hPR.js} +47 -34
  48. package/dist/_chunks/chat-container-DWho5hPR.js.map +1 -0
  49. package/dist/_chunks/{chat-input-B5zjNEUN.js → chat-input-BcXTetgM.js} +57 -41
  50. package/dist/_chunks/chat-input-BcXTetgM.js.map +1 -0
  51. package/dist/_chunks/{checkbox-DRcOdmXv.js → checkbox-BuZ1u__2.js} +41 -27
  52. package/dist/_chunks/checkbox-BuZ1u__2.js.map +1 -0
  53. package/dist/_chunks/{checkbox-group-CpUwlHug.js → checkbox-group-PqNmQ-cE.js} +3 -3
  54. package/dist/_chunks/{checkbox-group-CpUwlHug.js.map → checkbox-group-PqNmQ-cE.js.map} +1 -1
  55. package/dist/_chunks/{clinical-note-card-gtrxv6zn.js → clinical-note-card-DqQYf_D4.js} +2 -2
  56. package/dist/_chunks/{clinical-note-card-gtrxv6zn.js.map → clinical-note-card-DqQYf_D4.js.map} +1 -1
  57. package/dist/_chunks/{collapsible-X3oaLPU3.js → collapsible-BrnRiCC6.js} +26 -23
  58. package/dist/_chunks/collapsible-BrnRiCC6.js.map +1 -0
  59. package/dist/_chunks/{color-picker-FXpItIaF.js → color-picker-C_fZl6sA.js} +124 -112
  60. package/dist/_chunks/color-picker-C_fZl6sA.js.map +1 -0
  61. package/dist/_chunks/{combobox-BC-DFx8G.js → combobox-Clum7gJ1.js} +165 -128
  62. package/dist/_chunks/combobox-Clum7gJ1.js.map +1 -0
  63. package/dist/_chunks/{command-palette-BiPAAno-.js → command-palette-CJzmc5pC.js} +87 -64
  64. package/dist/_chunks/command-palette-CJzmc5pC.js.map +1 -0
  65. package/dist/_chunks/{contact-profile-card-7BMB85T6.js → contact-profile-card-Dramqa9C.js} +13 -11
  66. package/dist/_chunks/contact-profile-card-Dramqa9C.js.map +1 -0
  67. package/dist/_chunks/{copy-field-CCq7j6Zc.js → copy-field-Bjw9u2cV.js} +42 -35
  68. package/dist/_chunks/copy-field-Bjw9u2cV.js.map +1 -0
  69. package/dist/_chunks/counter-dRlTNC_y.js +55 -0
  70. package/dist/_chunks/counter-dRlTNC_y.js.map +1 -0
  71. package/dist/_chunks/{cycle-calculator-BF0ointe.js → cycle-calculator-DmRGJNaT.js} +3 -3
  72. package/dist/_chunks/{cycle-calculator-BF0ointe.js.map → cycle-calculator-DmRGJNaT.js.map} +1 -1
  73. package/dist/_chunks/{date-picker-oGg5BnXL.js → date-picker-Dl9RKxaV.js} +76 -57
  74. package/dist/_chunks/{date-picker-oGg5BnXL.js.map → date-picker-Dl9RKxaV.js.map} +1 -1
  75. package/dist/_chunks/{date-range-picker-C5BWfH_T.js → date-range-picker-CTUeR6Bj.js} +73 -46
  76. package/dist/_chunks/date-range-picker-CTUeR6Bj.js.map +1 -0
  77. package/dist/_chunks/{date-time-picker-Ze1My59T.js → date-time-picker-BhoogS5Q.js} +64 -40
  78. package/dist/_chunks/date-time-picker-BhoogS5Q.js.map +1 -0
  79. package/dist/_chunks/{dependent-selector-DpzGtr_J.js → dependent-selector-CG_FOHya.js} +44 -30
  80. package/dist/_chunks/dependent-selector-CG_FOHya.js.map +1 -0
  81. package/dist/_chunks/{dialog-DMGnSelc.js → dialog-ZNuboNmy.js} +35 -28
  82. package/dist/_chunks/dialog-ZNuboNmy.js.map +1 -0
  83. package/dist/_chunks/{document-scanner-D2qehl3-.js → document-scanner-CTubA0-N.js} +12 -4
  84. package/dist/_chunks/document-scanner-CTubA0-N.js.map +1 -0
  85. package/dist/_chunks/{dropdown-menu-DwwPovMZ.js → dropdown-menu-qrxjymfw.js} +94 -93
  86. package/dist/_chunks/dropdown-menu-qrxjymfw.js.map +1 -0
  87. package/dist/_chunks/{due-date-calculator-DU9AEWNy.js → due-date-calculator-BTmsIQqD.js} +4 -4
  88. package/dist/_chunks/{due-date-calculator-DU9AEWNy.js.map → due-date-calculator-BTmsIQqD.js.map} +1 -1
  89. package/dist/_chunks/editable-currency-cell-renderer-kgqp_mIw.js +448 -0
  90. package/dist/_chunks/editable-currency-cell-renderer-kgqp_mIw.js.map +1 -0
  91. package/dist/_chunks/{email-input-lQivsFrw.js → email-input-B_Y55f5G.js} +3 -3
  92. package/dist/_chunks/{email-input-lQivsFrw.js.map → email-input-B_Y55f5G.js.map} +1 -1
  93. package/dist/_chunks/{fetal-weight-BVSzOhuR.js → fetal-weight-CRz7KE2D.js} +2 -2
  94. package/dist/_chunks/{fetal-weight-BVSzOhuR.js.map → fetal-weight-CRz7KE2D.js.map} +1 -1
  95. package/dist/_chunks/{file-upload-BosbPDb1.js → file-upload-5ScQd4fE.js} +118 -100
  96. package/dist/_chunks/file-upload-5ScQd4fE.js.map +1 -0
  97. package/dist/_chunks/{fiscal-code-input-DPtqluVb.js → fiscal-code-input-Cf-8O4Fj.js} +76 -63
  98. package/dist/_chunks/fiscal-code-input-Cf-8O4Fj.js.map +1 -0
  99. package/dist/_chunks/{freemium-paywall-CkWjv3o6.js → freemium-paywall-DZ2mBS3w.js} +78 -71
  100. package/dist/_chunks/freemium-paywall-DZ2mBS3w.js.map +1 -0
  101. package/dist/_chunks/{gestational-age-calculator-DBlFdoiP.js → gestational-age-calculator-BleUdhbI.js} +5 -5
  102. package/dist/_chunks/{gestational-age-calculator-DBlFdoiP.js.map → gestational-age-calculator-BleUdhbI.js.map} +1 -1
  103. package/dist/_chunks/{hcg-doubling-if4Q8aSX.js → hcg-doubling-CnjDXX6U.js} +3 -3
  104. package/dist/_chunks/{hcg-doubling-if4Q8aSX.js.map → hcg-doubling-CnjDXX6U.js.map} +1 -1
  105. package/dist/_chunks/{header-settings-CNOqIhoW.js → header-settings-DJqoAl5m.js} +86 -46
  106. package/dist/_chunks/header-settings-DJqoAl5m.js.map +1 -0
  107. package/dist/_chunks/{index.modern-D2LGACWg.js → index.modern-Zta-A4Jm.js} +3 -3
  108. package/dist/_chunks/{index.modern-D2LGACWg.js.map → index.modern-Zta-A4Jm.js.map} +1 -1
  109. package/dist/_chunks/{list-BOwqwy03.js → list-DgE1xWBM.js} +99 -84
  110. package/dist/_chunks/list-DgE1xWBM.js.map +1 -0
  111. package/dist/_chunks/{locale-picker-C9JmBht3.js → locale-picker-ChYYSX2N.js} +47 -35
  112. package/dist/_chunks/locale-picker-ChYYSX2N.js.map +1 -0
  113. package/dist/_chunks/{map-view-Tb5VfK9Y.js → map-view-BkOoGoX2.js} +160 -115
  114. package/dist/_chunks/map-view-BkOoGoX2.js.map +1 -0
  115. package/dist/_chunks/{marketplace-app-shell-D4-T9Qzz.js → marketplace-app-shell-6T9W4Knl.js} +4 -4
  116. package/dist/_chunks/{marketplace-app-shell-D4-T9Qzz.js.map → marketplace-app-shell-6T9W4Knl.js.map} +1 -1
  117. package/dist/_chunks/{message-card.agent-4IeIgrnJ.js → message-card.agent-ZLhx3Bs5.js} +6 -1
  118. package/dist/_chunks/message-card.agent-ZLhx3Bs5.js.map +1 -0
  119. package/dist/_chunks/{message-tray-CVyJajVJ.js → message-tray-DwrBLJlf.js} +90 -48
  120. package/dist/_chunks/message-tray-DwrBLJlf.js.map +1 -0
  121. package/dist/_chunks/{multi-select-BcPylvHR.js → multi-select-BdHHDrRN.js} +196 -153
  122. package/dist/_chunks/multi-select-BdHHDrRN.js.map +1 -0
  123. package/dist/_chunks/{navigation-menu-C6lBYVv9.js → navigation-menu-DRUi6sSj.js} +75 -42
  124. package/dist/_chunks/navigation-menu-DRUi6sSj.js.map +1 -0
  125. package/dist/_chunks/{notification-card.agent-Rqt3ofk9.js → notification-card.agent-DxGBZb8T.js} +5 -1
  126. package/dist/_chunks/notification-card.agent-DxGBZb8T.js.map +1 -0
  127. package/dist/_chunks/{notification-tray-DlgenTEe.js → notification-tray-Btb9oQeZ.js} +112 -97
  128. package/dist/_chunks/notification-tray-Btb9oQeZ.js.map +1 -0
  129. package/dist/_chunks/{number-input-Dj5L3pXK.js → number-input-DxphVG_A.js} +36 -27
  130. package/dist/_chunks/number-input-DxphVG_A.js.map +1 -0
  131. package/dist/_chunks/{operator-hero-f_KaRhw5.js → operator-hero-CP2Nhupm.js} +12 -8
  132. package/dist/_chunks/operator-hero-CP2Nhupm.js.map +1 -0
  133. package/dist/_chunks/{otp-input-xQ4Ps5VY.js → otp-input-DzBQ-CpE.js} +52 -33
  134. package/dist/_chunks/otp-input-DzBQ-CpE.js.map +1 -0
  135. package/dist/_chunks/{pagination-DQOgnxxw.js → pagination-D58kglCr.js} +181 -162
  136. package/dist/_chunks/pagination-D58kglCr.js.map +1 -0
  137. package/dist/_chunks/{patient-search-DR9XUYRQ.js → patient-search-CBC_ySF6.js} +69 -60
  138. package/dist/_chunks/patient-search-CBC_ySF6.js.map +1 -0
  139. package/dist/_chunks/{patient-shell-BfgufL_q.js → patient-shell-DV3XEtIB.js} +3 -3
  140. package/dist/_chunks/{patient-shell-BfgufL_q.js.map → patient-shell-DV3XEtIB.js.map} +1 -1
  141. package/dist/_chunks/{patient-summary-card-hEmr4eTW.js → patient-summary-card-B836_fDB.js} +95 -103
  142. package/dist/_chunks/patient-summary-card-B836_fDB.js.map +1 -0
  143. package/dist/_chunks/patient-table-CDuosVru.js +889 -0
  144. package/dist/_chunks/patient-table-CDuosVru.js.map +1 -0
  145. package/dist/_chunks/{payment-form-nXocS_MX.js → payment-form-DvjwYVIT.js} +56 -44
  146. package/dist/_chunks/payment-form-DvjwYVIT.js.map +1 -0
  147. package/dist/_chunks/{payment-request-card-CYE5vhZ0.js → payment-request-card-DioWKBUq.js} +2 -2
  148. package/dist/_chunks/{payment-request-card-CYE5vhZ0.js.map → payment-request-card-DioWKBUq.js.map} +1 -1
  149. package/dist/_chunks/{pdf-viewer-GsfNqeeT.js → pdf-viewer-D6BPfW2D.js} +205 -157
  150. package/dist/_chunks/pdf-viewer-D6BPfW2D.js.map +1 -0
  151. package/dist/_chunks/{periodontal-chart-card-Dh3KgvYG.js → periodontal-chart-card-BuDEMbHE.js} +2 -2
  152. package/dist/_chunks/{periodontal-chart-card-Dh3KgvYG.js.map → periodontal-chart-card-BuDEMbHE.js.map} +1 -1
  153. package/dist/_chunks/{phone-input-DVXhNlIl.js → phone-input-DjU-XmO_.js} +64 -47
  154. package/dist/_chunks/phone-input-DjU-XmO_.js.map +1 -0
  155. package/dist/_chunks/{popover-DTbfAuR0.js → popover-B2qCDhJC.js} +37 -32
  156. package/dist/_chunks/popover-B2qCDhJC.js.map +1 -0
  157. package/dist/_chunks/{practice-results-DND2SAt7.js → practice-results-KrTHqZua.js} +278 -242
  158. package/dist/_chunks/practice-results-KrTHqZua.js.map +1 -0
  159. package/dist/_chunks/{pregnancy-dating-QY-sqpvj.js → pregnancy-dating-DORUAOHB.js} +6 -6
  160. package/dist/_chunks/{pregnancy-dating-QY-sqpvj.js.map → pregnancy-dating-DORUAOHB.js.map} +1 -1
  161. package/dist/_chunks/{pregnancy-weight-gain-DOJXXNYP.js → pregnancy-weight-gain-DVz4rr7-.js} +3 -3
  162. package/dist/_chunks/{pregnancy-weight-gain-DOJXXNYP.js.map → pregnancy-weight-gain-DVz4rr7-.js.map} +1 -1
  163. package/dist/_chunks/{privacy-lock-C7JyMf0y.js → privacy-lock-BzMLQu-j.js} +32 -28
  164. package/dist/_chunks/privacy-lock-BzMLQu-j.js.map +1 -0
  165. package/dist/_chunks/{product-hub-panel-CAXDFeGP.js → product-hub-panel-e6pW220e.js} +45 -27
  166. package/dist/_chunks/product-hub-panel-e6pW220e.js.map +1 -0
  167. package/dist/_chunks/{progress-kzIRcdaq.js → progress-DA413-zn.js} +2 -2
  168. package/dist/_chunks/{progress-kzIRcdaq.js.map → progress-DA413-zn.js.map} +1 -1
  169. package/dist/_chunks/{public-footer.agent-CfXuW1x6.js → public-footer.agent-D0cFbjWl.js} +151 -146
  170. package/dist/_chunks/public-footer.agent-D0cFbjWl.js.map +1 -0
  171. package/dist/_chunks/{public-header.agent-BOhJgZEU.js → public-header.agent-DqkqA-ca.js} +107 -102
  172. package/dist/_chunks/{public-header.agent-BOhJgZEU.js.map → public-header.agent-DqkqA-ca.js.map} +1 -1
  173. package/dist/_chunks/{qr-code-DNXhi6se.js → qr-code-CPkEs5mG.js} +52 -46
  174. package/dist/_chunks/qr-code-CPkEs5mG.js.map +1 -0
  175. package/dist/_chunks/{radio-group-CLjK-SlK.js → radio-group-BPt7pKZW.js} +5 -5
  176. package/dist/_chunks/{radio-group-CLjK-SlK.js.map → radio-group-BPt7pKZW.js.map} +1 -1
  177. package/dist/_chunks/{recaptcha-widget-BCNHsgqt.js → recaptcha-widget-BC-4To9b.js} +9 -2
  178. package/dist/_chunks/recaptcha-widget-BC-4To9b.js.map +1 -0
  179. package/dist/_chunks/registry-DvAUVLHh.js +51 -0
  180. package/dist/_chunks/registry-DvAUVLHh.js.map +1 -0
  181. package/dist/_chunks/{resizable-3vzqDlg6.js → resizable-DVGcfOrk.js} +193 -173
  182. package/dist/_chunks/resizable-DVGcfOrk.js.map +1 -0
  183. package/dist/_chunks/{reviews-panel-DBktKm7i.js → reviews-panel-Dq7LMDcH.js} +87 -68
  184. package/dist/_chunks/reviews-panel-Dq7LMDcH.js.map +1 -0
  185. package/dist/_chunks/{rich-text-editor-VawKN1FI.js → rich-text-editor-BsV7zUdg.js} +736 -647
  186. package/dist/_chunks/rich-text-editor-BsV7zUdg.js.map +1 -0
  187. package/dist/_chunks/{search-bar-SY2BcV2N.js → search-bar-C_T3pBJn.js} +105 -78
  188. package/dist/_chunks/search-bar-C_T3pBJn.js.map +1 -0
  189. package/dist/_chunks/{search-input-DbxrnHkW.js → search-input-DQvGxR74.js} +2 -2
  190. package/dist/_chunks/{search-input-DbxrnHkW.js.map → search-input-DQvGxR74.js.map} +1 -1
  191. package/dist/_chunks/{search-input.agent-CfZvViOd.js → search-input.agent-DRH54coT.js} +19 -4
  192. package/dist/_chunks/search-input.agent-DRH54coT.js.map +1 -0
  193. package/dist/_chunks/{select-CEtRcon5.js → select-DMLG44F5.js} +72 -56
  194. package/dist/_chunks/select-DMLG44F5.js.map +1 -0
  195. package/dist/_chunks/{session-countdown-LPnhTHjn.js → session-countdown-X1Ki6i0M.js} +3 -3
  196. package/dist/_chunks/{session-countdown-LPnhTHjn.js.map → session-countdown-X1Ki6i0M.js.map} +1 -1
  197. package/dist/_chunks/{sheet-taJer-Ha.js → sheet-BxsE7eQm.js} +59 -45
  198. package/dist/_chunks/sheet-BxsE7eQm.js.map +1 -0
  199. package/dist/_chunks/{sidebar-DaB4ulxH.js → sidebar-DY9jGjgt.js} +254 -248
  200. package/dist/_chunks/sidebar-DY9jGjgt.js.map +1 -0
  201. package/dist/_chunks/{sign-document-CdAiHiCh.js → sign-document-B4DeRhTe.js} +75 -49
  202. package/dist/_chunks/sign-document-B4DeRhTe.js.map +1 -0
  203. package/dist/_chunks/{signature-capture-COi0Uiqu.js → signature-capture-Ct_4Md4e.js} +138 -104
  204. package/dist/_chunks/signature-capture-Ct_4Md4e.js.map +1 -0
  205. package/dist/_chunks/{slider-BHWzXdjt.js → slider-DN1CWkKB.js} +85 -65
  206. package/dist/_chunks/slider-DN1CWkKB.js.map +1 -0
  207. package/dist/_chunks/{sparkline-DGhCSw8M.js → sparkline-iOXYgvJe.js} +75 -53
  208. package/dist/_chunks/sparkline-iOXYgvJe.js.map +1 -0
  209. package/dist/_chunks/{stepper-accordion.agent-C4quJ-MD.js → stepper-accordion.agent-cmEguIdx.js} +7 -1
  210. package/dist/_chunks/stepper-accordion.agent-cmEguIdx.js.map +1 -0
  211. package/dist/_chunks/{stepper-progress-DDjq5nei.js → stepper-progress-Bv0njx4g.js} +30 -24
  212. package/dist/_chunks/stepper-progress-Bv0njx4g.js.map +1 -0
  213. package/dist/_chunks/{suggestion-chip.agent-6sNWFj7m.js → suggestion-chip.agent-Brn3CiFE.js} +9 -8
  214. package/dist/_chunks/{suggestion-chip.agent-6sNWFj7m.js.map → suggestion-chip.agent-Brn3CiFE.js.map} +1 -1
  215. package/dist/_chunks/{switch-BJ6HD3Mn.js → switch-OILsBLWo.js} +25 -19
  216. package/dist/_chunks/switch-OILsBLWo.js.map +1 -0
  217. package/dist/_chunks/{tabs-BIQ0ew1T.js → tabs-BxcOziCo.js} +67 -58
  218. package/dist/_chunks/tabs-BxcOziCo.js.map +1 -0
  219. package/dist/_chunks/{task-card.agent-CUPKYd7w.js → task-card.agent-Bt14CzUd.js} +4 -1
  220. package/dist/_chunks/task-card.agent-Bt14CzUd.js.map +1 -0
  221. package/dist/_chunks/{task-tray-CAncV-QQ.js → task-tray-qOEQflu4.js} +74 -57
  222. package/dist/_chunks/task-tray-qOEQflu4.js.map +1 -0
  223. package/dist/_chunks/{text-area-BIx0tZ05.js → text-area-Bt3p7Pt0.js} +41 -34
  224. package/dist/_chunks/text-area-Bt3p7Pt0.js.map +1 -0
  225. package/dist/_chunks/{text-input-BaClJL8Y.js → text-input-B-OWQ1Je.js} +15 -8
  226. package/dist/_chunks/text-input-B-OWQ1Je.js.map +1 -0
  227. package/dist/_chunks/{theme-toggle-DETmSu_h.js → theme-toggle-XB6o_lgs.js} +38 -26
  228. package/dist/_chunks/theme-toggle-XB6o_lgs.js.map +1 -0
  229. package/dist/_chunks/{time-picker-B5umYwfv.js → time-picker-BPlJWm8w.js} +41 -31
  230. package/dist/_chunks/time-picker-BPlJWm8w.js.map +1 -0
  231. package/dist/_chunks/{timeline-DQa5Tyz4.js → timeline-CqA4nKTI.js} +33 -25
  232. package/dist/_chunks/timeline-CqA4nKTI.js.map +1 -0
  233. package/dist/_chunks/{toast.agent-vuLRRn2a.js → toast.agent-57UzyR9U.js} +62 -45
  234. package/dist/_chunks/{toast.agent-vuLRRn2a.js.map → toast.agent-57UzyR9U.js.map} +1 -1
  235. package/dist/_chunks/{tooth-scheme-BIx1O2aJ.js → tooth-scheme-yBr53cvv.js} +421 -348
  236. package/dist/_chunks/tooth-scheme-yBr53cvv.js.map +1 -0
  237. package/dist/_chunks/{transcript-panel-CLHmv83g.js → transcript-panel-3THQX6nJ.js} +47 -33
  238. package/dist/_chunks/transcript-panel-3THQX6nJ.js.map +1 -0
  239. package/dist/_chunks/unit-converter-YEpD9evj.js +337 -0
  240. package/dist/_chunks/unit-converter-YEpD9evj.js.map +1 -0
  241. package/dist/_chunks/{use-password-requirements-DsgduV1x.js → use-password-requirements-BXvS2MBS.js} +131 -117
  242. package/dist/_chunks/use-password-requirements-BXvS2MBS.js.map +1 -0
  243. package/dist/_chunks/users-MBVtUzwd.js +17 -0
  244. package/dist/_chunks/users-MBVtUzwd.js.map +1 -0
  245. package/dist/_chunks/warning-stack-BsgaEbL8.js +283 -0
  246. package/dist/_chunks/warning-stack-BsgaEbL8.js.map +1 -0
  247. package/dist/_chunks/{whatsapp-button-DUjlWGKf.js → whatsapp-button-BIy6NaJK.js} +6 -3
  248. package/dist/_chunks/whatsapp-button-BIy6NaJK.js.map +1 -0
  249. package/dist/_chunks/{workflow-map-JAZryZJr.js → workflow-map-Bdam9pGp.js} +99 -88
  250. package/dist/_chunks/workflow-map-Bdam9pGp.js.map +1 -0
  251. package/dist/agent/index.d.ts +4 -4
  252. package/dist/agent/index.d.ts.map +1 -1
  253. package/dist/agent/index.js +36 -0
  254. package/dist/agent/index.js.map +1 -0
  255. package/dist/agent/registry.d.ts +33 -0
  256. package/dist/agent/registry.d.ts.map +1 -1
  257. package/dist/agent/types.d.ts +78 -2
  258. package/dist/agent/types.d.ts.map +1 -1
  259. package/dist/agent-catalog.json +6905 -509
  260. package/dist/agent-i18n/en.json +1175 -0
  261. package/dist/components/accordion/accordion.agent.d.ts.map +1 -1
  262. package/dist/components/accordion/accordion.d.ts.map +1 -1
  263. package/dist/components/accordion/index.js +1 -1
  264. package/dist/components/address-autocomplete/address-autocomplete.agent.d.ts +4 -0
  265. package/dist/components/address-autocomplete/address-autocomplete.agent.d.ts.map +1 -0
  266. package/dist/components/address-autocomplete/address-autocomplete.d.ts +18 -0
  267. package/dist/components/address-autocomplete/address-autocomplete.d.ts.map +1 -1
  268. package/dist/components/address-autocomplete/index.d.ts +2 -1
  269. package/dist/components/address-autocomplete/index.d.ts.map +1 -1
  270. package/dist/components/address-autocomplete/index.js +3 -2
  271. package/dist/components/agenda-card/agenda-card.agent.d.ts.map +1 -1
  272. package/dist/components/agenda-card/index.js +1 -1
  273. package/dist/components/agenda-tray/agenda-tray.agent.d.ts.map +1 -1
  274. package/dist/components/agenda-tray/index.js +1 -1
  275. package/dist/components/ai-consent-banner/index.js +1 -1
  276. package/dist/components/ai-prompt-input/ai-prompt-input.agent.d.ts.map +1 -1
  277. package/dist/components/ai-prompt-input/index.js +1 -1
  278. package/dist/components/ai-tools-rail/ai-tools-rail.agent.d.ts.map +1 -1
  279. package/dist/components/ai-tools-rail/index.js +1 -1
  280. package/dist/components/anamnesis-card/index.js +1 -1
  281. package/dist/components/appointment-card/appointment-card.agent.d.ts.map +1 -1
  282. package/dist/components/appointment-card/appointment-tray.agent.d.ts.map +1 -1
  283. package/dist/components/appointment-card/index.js +1 -1
  284. package/dist/components/audio-recorder/audio-recorder.agent.d.ts.map +1 -1
  285. package/dist/components/audio-recorder/index.js +1 -1
  286. package/dist/components/autocomplete/autocomplete.agent.d.ts.map +1 -1
  287. package/dist/components/autocomplete/autocomplete.d.ts.map +1 -1
  288. package/dist/components/autocomplete/index.js +1 -1
  289. package/dist/components/bishop-score/bishop-score.agent.d.ts +4 -0
  290. package/dist/components/bishop-score/bishop-score.agent.d.ts.map +1 -0
  291. package/dist/components/bishop-score/bishop-score.d.ts +17 -1
  292. package/dist/components/bishop-score/bishop-score.d.ts.map +1 -1
  293. package/dist/components/bishop-score/index.js +1 -1
  294. package/dist/components/bmi-calculator/bmi-calculator.agent.d.ts +4 -0
  295. package/dist/components/bmi-calculator/bmi-calculator.agent.d.ts.map +1 -0
  296. package/dist/components/bmi-calculator/bmi-calculator.d.ts +26 -0
  297. package/dist/components/bmi-calculator/bmi-calculator.d.ts.map +1 -1
  298. package/dist/components/bmi-calculator/index.js +1 -1
  299. package/dist/components/booking/booking.agent.d.ts.map +1 -1
  300. package/dist/components/booking/index.js +1 -1
  301. package/dist/components/breadcrumb/breadcrumb.agent.d.ts.map +1 -1
  302. package/dist/components/breadcrumb/index.js +1 -1
  303. package/dist/components/calculator-dialog/index.js +1 -1
  304. package/dist/components/calendar/calendar.agent.d.ts.map +1 -1
  305. package/dist/components/calendar/index.js +1 -1
  306. package/dist/components/care-plan-card/care-plan-card.agent.d.ts.map +1 -1
  307. package/dist/components/care-plan-card/index.js +1 -1
  308. package/dist/components/care-plan-entry-card/care-plan-entry-card.agent.d.ts.map +1 -1
  309. package/dist/components/care-plan-entry-card/index.js +1 -1
  310. package/dist/components/carousel/carousel.agent.d.ts.map +1 -1
  311. package/dist/components/carousel/index.js +1 -1
  312. package/dist/components/chart/chart.agent.d.ts.map +1 -1
  313. package/dist/components/chart/index.js +1 -1
  314. package/dist/components/chat-container/chat-container.agent.d.ts.map +1 -1
  315. package/dist/components/chat-container/index.js +1 -1
  316. package/dist/components/chat-input/chat-input.agent.d.ts.map +1 -1
  317. package/dist/components/chat-input/index.js +1 -1
  318. package/dist/components/checkbox/checkbox.agent.d.ts.map +1 -1
  319. package/dist/components/checkbox/index.js +1 -1
  320. package/dist/components/checkbox-group/index.js +1 -1
  321. package/dist/components/clinical-note-card/index.js +1 -1
  322. package/dist/components/collapsible/collapsible.agent.d.ts.map +1 -1
  323. package/dist/components/collapsible/index.js +1 -1
  324. package/dist/components/color-picker/color-picker.agent.d.ts.map +1 -1
  325. package/dist/components/color-picker/index.js +1 -1
  326. package/dist/components/combobox/combobox.agent.d.ts.map +1 -1
  327. package/dist/components/combobox/combobox.d.ts.map +1 -1
  328. package/dist/components/combobox/index.js +1 -1
  329. package/dist/components/command-palette/command-palette.agent.d.ts.map +1 -1
  330. package/dist/components/command-palette/command-palette.d.ts.map +1 -1
  331. package/dist/components/command-palette/index.js +1 -1
  332. package/dist/components/contact-profile-card/contact-profile-card.agent.d.ts.map +1 -1
  333. package/dist/components/contact-profile-card/index.js +1 -1
  334. package/dist/components/copy-field/copy-field.agent.d.ts.map +1 -1
  335. package/dist/components/copy-field/index.js +1 -1
  336. package/dist/components/counter/counter.d.ts +22 -0
  337. package/dist/components/counter/counter.d.ts.map +1 -0
  338. package/dist/components/counter/index.d.ts +3 -0
  339. package/dist/components/counter/index.d.ts.map +1 -0
  340. package/dist/components/counter/index.js +5 -0
  341. package/dist/components/counter/index.js.map +1 -0
  342. package/dist/components/cycle-calculator/index.js +1 -1
  343. package/dist/components/data-table/data-table.agent.d.ts.map +1 -1
  344. package/dist/components/data-table/index.js +31 -30
  345. package/dist/components/data-table/index.js.map +1 -1
  346. package/dist/components/data-table/toolbar.d.ts.map +1 -1
  347. package/dist/components/date-picker/date-picker.agent.d.ts.map +1 -1
  348. package/dist/components/date-picker/index.js +1 -1
  349. package/dist/components/date-range-picker/date-range-picker.agent.d.ts.map +1 -1
  350. package/dist/components/date-range-picker/index.js +1 -1
  351. package/dist/components/date-time-picker/date-time-picker.agent.d.ts.map +1 -1
  352. package/dist/components/date-time-picker/index.js +1 -1
  353. package/dist/components/dependent-selector/dependent-selector.agent.d.ts.map +1 -1
  354. package/dist/components/dependent-selector/index.js +1 -1
  355. package/dist/components/dialog/dialog.agent.d.ts.map +1 -1
  356. package/dist/components/dialog/index.js +1 -1
  357. package/dist/components/document-scanner/document-scanner.agent.d.ts.map +1 -1
  358. package/dist/components/document-scanner/index.js +1 -1
  359. package/dist/components/dropdown-menu/dropdown-menu.agent.d.ts.map +1 -1
  360. package/dist/components/dropdown-menu/index.js +1 -1
  361. package/dist/components/due-date-calculator/index.js +1 -1
  362. package/dist/components/email-input/index.js +1 -1
  363. package/dist/components/fetal-weight/index.js +1 -1
  364. package/dist/components/file-upload/file-upload.agent.d.ts.map +1 -1
  365. package/dist/components/file-upload/index.js +1 -1
  366. package/dist/components/fiscal-code-input/fiscal-code-input.agent.d.ts.map +1 -1
  367. package/dist/components/fiscal-code-input/index.js +1 -1
  368. package/dist/components/freemium-paywall/freemium-paywall.agent.d.ts.map +1 -1
  369. package/dist/components/freemium-paywall/freemium-paywall.d.ts +6 -0
  370. package/dist/components/freemium-paywall/freemium-paywall.d.ts.map +1 -1
  371. package/dist/components/freemium-paywall/index.js +1 -1
  372. package/dist/components/gestational-age-calculator/index.js +1 -1
  373. package/dist/components/hcg-doubling/index.js +1 -1
  374. package/dist/components/header-settings/header-settings.agent.d.ts.map +1 -1
  375. package/dist/components/header-settings/index.js +1 -1
  376. package/dist/components/index.d.ts +2 -0
  377. package/dist/components/index.d.ts.map +1 -1
  378. package/dist/components/list/index.js +1 -1
  379. package/dist/components/list/list.agent.d.ts.map +1 -1
  380. package/dist/components/locale-picker/index.js +1 -1
  381. package/dist/components/locale-picker/locale-picker.agent.d.ts.map +1 -1
  382. package/dist/components/map-view/index.js +1 -1
  383. package/dist/components/map-view/map-view.agent.d.ts.map +1 -1
  384. package/dist/components/message-card/index.js +1 -1
  385. package/dist/components/message-card/message-card.agent.d.ts.map +1 -1
  386. package/dist/components/message-tray/index.js +1 -1
  387. package/dist/components/message-tray/message-tray.agent.d.ts.map +1 -1
  388. package/dist/components/multi-select/index.js +1 -1
  389. package/dist/components/multi-select/multi-select.agent.d.ts.map +1 -1
  390. package/dist/components/multi-select/multi-select.d.ts.map +1 -1
  391. package/dist/components/navigation-menu/index.js +1 -1
  392. package/dist/components/navigation-menu/navigation-menu.agent.d.ts.map +1 -1
  393. package/dist/components/notification-card/index.js +1 -1
  394. package/dist/components/notification-card/notification-card.agent.d.ts.map +1 -1
  395. package/dist/components/notification-tray/index.js +1 -1
  396. package/dist/components/notification-tray/notification-tray.agent.d.ts.map +1 -1
  397. package/dist/components/notification-tray/notification-tray.d.ts.map +1 -1
  398. package/dist/components/number-input/index.js +1 -1
  399. package/dist/components/number-input/number-input.agent.d.ts.map +1 -1
  400. package/dist/components/operator-hero/index.js +1 -1
  401. package/dist/components/operator-hero/operator-hero.agent.d.ts.map +1 -1
  402. package/dist/components/otp-input/index.js +1 -1
  403. package/dist/components/otp-input/otp-input.agent.d.ts.map +1 -1
  404. package/dist/components/pagination/index.js +1 -1
  405. package/dist/components/pagination/pagination.agent.d.ts.map +1 -1
  406. package/dist/components/password-input/index.js +1 -1
  407. package/dist/components/password-input/password-input.agent.d.ts.map +1 -1
  408. package/dist/components/patient-search/index.js +1 -1
  409. package/dist/components/patient-search/patient-search.agent.d.ts.map +1 -1
  410. package/dist/components/patient-summary-card/index.js +1 -1
  411. package/dist/components/patient-summary-card/patient-summary-card.agent.d.ts.map +1 -1
  412. package/dist/components/patient-table/cell-renderers/balance-badge-cell.d.ts +13 -0
  413. package/dist/components/patient-table/cell-renderers/balance-badge-cell.d.ts.map +1 -0
  414. package/dist/components/patient-table/cell-renderers/care-plan-status-cell.d.ts +43 -0
  415. package/dist/components/patient-table/cell-renderers/care-plan-status-cell.d.ts.map +1 -0
  416. package/dist/components/patient-table/cell-renderers/contact-cell.d.ts +45 -0
  417. package/dist/components/patient-table/cell-renderers/contact-cell.d.ts.map +1 -0
  418. package/dist/components/patient-table/cell-renderers/next-appointment-cell.d.ts +24 -0
  419. package/dist/components/patient-table/cell-renderers/next-appointment-cell.d.ts.map +1 -0
  420. package/dist/components/patient-table/cell-renderers/patient-identity-cell.d.ts +26 -0
  421. package/dist/components/patient-table/cell-renderers/patient-identity-cell.d.ts.map +1 -0
  422. package/dist/components/patient-table/columns.d.ts +102 -0
  423. package/dist/components/patient-table/columns.d.ts.map +1 -0
  424. package/dist/components/patient-table/index.d.ts +24 -0
  425. package/dist/components/patient-table/index.d.ts.map +1 -0
  426. package/dist/components/patient-table/index.js +13 -0
  427. package/dist/components/patient-table/index.js.map +1 -0
  428. package/dist/components/patient-table/patient-table.d.ts +138 -0
  429. package/dist/components/patient-table/patient-table.d.ts.map +1 -0
  430. package/dist/components/patient-table/types.d.ts +172 -0
  431. package/dist/components/patient-table/types.d.ts.map +1 -0
  432. package/dist/components/patient-table/use-responsive-columns.d.ts +109 -0
  433. package/dist/components/patient-table/use-responsive-columns.d.ts.map +1 -0
  434. package/dist/components/payment-card/index.js +1 -1
  435. package/dist/components/payment-form/index.js +1 -1
  436. package/dist/components/payment-form/payment-form.agent.d.ts.map +1 -1
  437. package/dist/components/pdf-viewer/index.js +1 -1
  438. package/dist/components/pdf-viewer/pdf-viewer.agent.d.ts.map +1 -1
  439. package/dist/components/periodontal-chart-card/index.js +1 -1
  440. package/dist/components/phone-input/index.js +1 -1
  441. package/dist/components/phone-input/phone-input.agent.d.ts.map +1 -1
  442. package/dist/components/popover/index.js +1 -1
  443. package/dist/components/popover/popover.agent.d.ts.map +1 -1
  444. package/dist/components/practice-results/index.js +1 -1
  445. package/dist/components/practice-results/practice-results.agent.d.ts.map +1 -1
  446. package/dist/components/pregnancy-dating/index.js +1 -1
  447. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  448. package/dist/components/privacy-lock/index.js +1 -1
  449. package/dist/components/privacy-lock/privacy-lock.agent.d.ts.map +1 -1
  450. package/dist/components/product-hub-tray/index.js +1 -1
  451. package/dist/components/product-hub-tray/product-hub-panel.agent.d.ts.map +1 -1
  452. package/dist/components/product-hub-tray/product-hub-tray.agent.d.ts.map +1 -1
  453. package/dist/components/progress/index.js +1 -1
  454. package/dist/components/public-footer/index.js +1 -1
  455. package/dist/components/public-footer/public-footer.agent.d.ts.map +1 -1
  456. package/dist/components/public-footer/public-footer.d.ts.map +1 -1
  457. package/dist/components/public-header/index.js +1 -1
  458. package/dist/components/public-header/public-header.agent.d.ts.map +1 -1
  459. package/dist/components/qr-code/index.js +1 -1
  460. package/dist/components/qr-code/qr-code.agent.d.ts.map +1 -1
  461. package/dist/components/radio-group/index.js +1 -1
  462. package/dist/components/recaptcha-widget/index.js +1 -1
  463. package/dist/components/recaptcha-widget/recaptcha-widget.agent.d.ts.map +1 -1
  464. package/dist/components/resizable/index.js +1 -1
  465. package/dist/components/resizable/resizable.agent.d.ts.map +1 -1
  466. package/dist/components/resizable/resizable.d.ts.map +1 -1
  467. package/dist/components/reviews-panel/index.js +1 -1
  468. package/dist/components/reviews-panel/reviews-panel.agent.d.ts.map +1 -1
  469. package/dist/components/rich-text-editor/index.js +1 -1
  470. package/dist/components/rich-text-editor/rich-text-editor.agent.d.ts.map +1 -1
  471. package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +1 -1
  472. package/dist/components/search-bar/index.js +1 -1
  473. package/dist/components/search-bar/search-bar.agent.d.ts.map +1 -1
  474. package/dist/components/search-input/index.js +2 -2
  475. package/dist/components/search-input/search-input.agent.d.ts.map +1 -1
  476. package/dist/components/select/index.js +1 -1
  477. package/dist/components/select/select.agent.d.ts.map +1 -1
  478. package/dist/components/session-countdown/index.js +1 -1
  479. package/dist/components/sheet/index.js +1 -1
  480. package/dist/components/sheet/sheet.agent.d.ts.map +1 -1
  481. package/dist/components/sidebar/index.js +1 -1
  482. package/dist/components/sidebar/sidebar.agent.d.ts.map +1 -1
  483. package/dist/components/sidebar/sidebar.d.ts +7 -0
  484. package/dist/components/sidebar/sidebar.d.ts.map +1 -1
  485. package/dist/components/sign-document/index.js +1 -1
  486. package/dist/components/sign-document/sign-document.agent.d.ts.map +1 -1
  487. package/dist/components/signature-capture/index.js +1 -1
  488. package/dist/components/signature-capture/signature-capture.agent.d.ts.map +1 -1
  489. package/dist/components/slider/index.js +1 -1
  490. package/dist/components/slider/slider.agent.d.ts.map +1 -1
  491. package/dist/components/sparkline/index.js +1 -1
  492. package/dist/components/sparkline/sparkline.agent.d.ts.map +1 -1
  493. package/dist/components/stepper-accordion/index.js +1 -1
  494. package/dist/components/stepper-accordion/stepper-accordion.agent.d.ts.map +1 -1
  495. package/dist/components/stepper-progress/index.js +1 -1
  496. package/dist/components/stepper-progress/stepper-progress.agent.d.ts.map +1 -1
  497. package/dist/components/suggestion-chip/index.js +1 -1
  498. package/dist/components/suggestion-chip/suggestion-chip.agent.d.ts.map +1 -1
  499. package/dist/components/switch/index.js +1 -1
  500. package/dist/components/switch/switch.agent.d.ts.map +1 -1
  501. package/dist/components/tabs/index.js +1 -1
  502. package/dist/components/tabs/tabs.agent.d.ts.map +1 -1
  503. package/dist/components/tabs/tabs.d.ts.map +1 -1
  504. package/dist/components/task-card/index.js +1 -1
  505. package/dist/components/task-card/task-card.agent.d.ts.map +1 -1
  506. package/dist/components/task-tray/index.js +1 -1
  507. package/dist/components/task-tray/task-tray.agent.d.ts.map +1 -1
  508. package/dist/components/text-area/index.js +1 -1
  509. package/dist/components/text-area/text-area.agent.d.ts.map +1 -1
  510. package/dist/components/text-input/index.js +1 -1
  511. package/dist/components/text-input/text-input.agent.d.ts.map +1 -1
  512. package/dist/components/theme-toggle/index.js +1 -1
  513. package/dist/components/theme-toggle/theme-toggle.agent.d.ts.map +1 -1
  514. package/dist/components/time-picker/index.js +1 -1
  515. package/dist/components/time-picker/time-picker.agent.d.ts.map +1 -1
  516. package/dist/components/timeline/index.js +1 -1
  517. package/dist/components/timeline/timeline.agent.d.ts.map +1 -1
  518. package/dist/components/toast/index.js +1 -1
  519. package/dist/components/toast/toast.agent.d.ts.map +1 -1
  520. package/dist/components/toast/toast.d.ts.map +1 -1
  521. package/dist/components/tooth-scheme/index.js +1 -1
  522. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts.map +1 -1
  523. package/dist/components/transcript-panel/index.js +1 -1
  524. package/dist/components/transcript-panel/transcript-panel.agent.d.ts.map +1 -1
  525. package/dist/components/unit-converter/index.js +1 -1
  526. package/dist/components/unit-converter/unit-converter.agent.d.ts +4 -0
  527. package/dist/components/unit-converter/unit-converter.agent.d.ts.map +1 -0
  528. package/dist/components/unit-converter/unit-converter.d.ts +27 -0
  529. package/dist/components/unit-converter/unit-converter.d.ts.map +1 -1
  530. package/dist/components/warning-stack/index.js +1 -1
  531. package/dist/components/warning-stack/warning-stack.d.ts +9 -0
  532. package/dist/components/warning-stack/warning-stack.d.ts.map +1 -1
  533. package/dist/components/whatsapp-button/index.d.ts +1 -1
  534. package/dist/components/whatsapp-button/index.d.ts.map +1 -1
  535. package/dist/components/whatsapp-button/index.js +3 -2
  536. package/dist/components/whatsapp-button/whatsapp-button.d.ts +3 -0
  537. package/dist/components/whatsapp-button/whatsapp-button.d.ts.map +1 -1
  538. package/dist/components/workflow/index.js +1 -1
  539. package/dist/components/workflow/workflow.agent.d.ts.map +1 -1
  540. package/dist/i18n/locales/ar.d.ts +72 -0
  541. package/dist/i18n/locales/ar.d.ts.map +1 -1
  542. package/dist/i18n/locales/ar.js +73 -1
  543. package/dist/i18n/locales/ar.js.map +1 -1
  544. package/dist/i18n/locales/de.d.ts +72 -0
  545. package/dist/i18n/locales/de.d.ts.map +1 -1
  546. package/dist/i18n/locales/de.js +73 -1
  547. package/dist/i18n/locales/de.js.map +1 -1
  548. package/dist/i18n/locales/el.d.ts +72 -0
  549. package/dist/i18n/locales/el.d.ts.map +1 -1
  550. package/dist/i18n/locales/el.js +73 -1
  551. package/dist/i18n/locales/el.js.map +1 -1
  552. package/dist/i18n/locales/en.d.ts +90 -0
  553. package/dist/i18n/locales/en.d.ts.map +1 -1
  554. package/dist/i18n/locales/en.js +91 -1
  555. package/dist/i18n/locales/en.js.map +1 -1
  556. package/dist/i18n/locales/es.d.ts +72 -0
  557. package/dist/i18n/locales/es.d.ts.map +1 -1
  558. package/dist/i18n/locales/es.js +73 -1
  559. package/dist/i18n/locales/es.js.map +1 -1
  560. package/dist/i18n/locales/fr.d.ts +72 -0
  561. package/dist/i18n/locales/fr.d.ts.map +1 -1
  562. package/dist/i18n/locales/fr.js +73 -1
  563. package/dist/i18n/locales/fr.js.map +1 -1
  564. package/dist/i18n/locales/hi.d.ts +72 -0
  565. package/dist/i18n/locales/hi.d.ts.map +1 -1
  566. package/dist/i18n/locales/hi.js +73 -1
  567. package/dist/i18n/locales/hi.js.map +1 -1
  568. package/dist/i18n/locales/it.d.ts +72 -0
  569. package/dist/i18n/locales/it.d.ts.map +1 -1
  570. package/dist/i18n/locales/it.js +73 -1
  571. package/dist/i18n/locales/it.js.map +1 -1
  572. package/dist/i18n/locales/ja.d.ts +72 -0
  573. package/dist/i18n/locales/ja.d.ts.map +1 -1
  574. package/dist/i18n/locales/ja.js +73 -1
  575. package/dist/i18n/locales/ja.js.map +1 -1
  576. package/dist/i18n/locales/nl.d.ts +72 -0
  577. package/dist/i18n/locales/nl.d.ts.map +1 -1
  578. package/dist/i18n/locales/nl.js +73 -1
  579. package/dist/i18n/locales/nl.js.map +1 -1
  580. package/dist/i18n/locales/pl.d.ts +72 -0
  581. package/dist/i18n/locales/pl.d.ts.map +1 -1
  582. package/dist/i18n/locales/pl.js +73 -1
  583. package/dist/i18n/locales/pl.js.map +1 -1
  584. package/dist/i18n/locales/pt.d.ts +72 -0
  585. package/dist/i18n/locales/pt.d.ts.map +1 -1
  586. package/dist/i18n/locales/pt.js +73 -1
  587. package/dist/i18n/locales/pt.js.map +1 -1
  588. package/dist/i18n/locales/ro.d.ts +72 -0
  589. package/dist/i18n/locales/ro.d.ts.map +1 -1
  590. package/dist/i18n/locales/ro.js +73 -1
  591. package/dist/i18n/locales/ro.js.map +1 -1
  592. package/dist/i18n/locales/ru.d.ts +72 -0
  593. package/dist/i18n/locales/ru.d.ts.map +1 -1
  594. package/dist/i18n/locales/ru.js +73 -1
  595. package/dist/i18n/locales/ru.js.map +1 -1
  596. package/dist/i18n/locales/sq.d.ts +72 -0
  597. package/dist/i18n/locales/sq.d.ts.map +1 -1
  598. package/dist/i18n/locales/sq.js +73 -1
  599. package/dist/i18n/locales/sq.js.map +1 -1
  600. package/dist/i18n/locales/sv.d.ts +72 -0
  601. package/dist/i18n/locales/sv.d.ts.map +1 -1
  602. package/dist/i18n/locales/sv.js +73 -1
  603. package/dist/i18n/locales/sv.js.map +1 -1
  604. package/dist/i18n/locales/tr.d.ts +72 -0
  605. package/dist/i18n/locales/tr.d.ts.map +1 -1
  606. package/dist/i18n/locales/tr.js +73 -1
  607. package/dist/i18n/locales/tr.js.map +1 -1
  608. package/dist/i18n/locales/zh.d.ts +72 -0
  609. package/dist/i18n/locales/zh.d.ts.map +1 -1
  610. package/dist/i18n/locales/zh.js +73 -1
  611. package/dist/i18n/locales/zh.js.map +1 -1
  612. package/dist/index.js +688 -673
  613. package/dist/index.js.map +1 -1
  614. package/dist/locales/ar.json +73 -1
  615. package/dist/locales/de.json +73 -1
  616. package/dist/locales/el.json +73 -1
  617. package/dist/locales/en.json +73 -1
  618. package/dist/locales/es.json +73 -1
  619. package/dist/locales/fr.json +73 -1
  620. package/dist/locales/hi.json +73 -1
  621. package/dist/locales/it.json +73 -1
  622. package/dist/locales/ja.json +73 -1
  623. package/dist/locales/nl.json +73 -1
  624. package/dist/locales/pl.json +73 -1
  625. package/dist/locales/pt.json +73 -1
  626. package/dist/locales/ro.json +73 -1
  627. package/dist/locales/ru.json +73 -1
  628. package/dist/locales/sq.json +73 -1
  629. package/dist/locales/sv.json +73 -1
  630. package/dist/locales/tr.json +73 -1
  631. package/dist/locales/zh.json +73 -1
  632. package/dist/patterns/alia-assistant/index.js +1 -1
  633. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  634. package/dist/patterns/patient-shell/index.js +1 -1
  635. package/dist/tokens.css +3 -2
  636. package/package.json +14 -1
  637. package/dist/_chunks/accordion-9lJSMMsZ.js.map +0 -1
  638. package/dist/_chunks/address-autocomplete-CT-9AOli.js +0 -358
  639. package/dist/_chunks/address-autocomplete-CT-9AOli.js.map +0 -1
  640. package/dist/_chunks/agenda-tray-T-BumlGZ.js.map +0 -1
  641. package/dist/_chunks/ai-prompt-input-BwEACCPm.js.map +0 -1
  642. package/dist/_chunks/ai-tools-rail-CInA_1-E.js.map +0 -1
  643. package/dist/_chunks/appointment-tray-BMl89NPW.js.map +0 -1
  644. package/dist/_chunks/audio-recorder-DjXLP4aF.js.map +0 -1
  645. package/dist/_chunks/autocomplete-CcCFlVf-.js.map +0 -1
  646. package/dist/_chunks/bishop-score-CjsB9bM-.js +0 -185
  647. package/dist/_chunks/bishop-score-CjsB9bM-.js.map +0 -1
  648. package/dist/_chunks/bmi-calculator-n-823_1V.js +0 -258
  649. package/dist/_chunks/bmi-calculator-n-823_1V.js.map +0 -1
  650. package/dist/_chunks/booking-L8-YP8BJ.js.map +0 -1
  651. package/dist/_chunks/breadcrumb-OTbaY70e.js.map +0 -1
  652. package/dist/_chunks/calendar-oYWOCrnf.js.map +0 -1
  653. package/dist/_chunks/care-plan-card-BwVUyUBb.js.map +0 -1
  654. package/dist/_chunks/care-plan-entry-card-VzdQHcOL.js.map +0 -1
  655. package/dist/_chunks/chart-Cg3e9EH9.js.map +0 -1
  656. package/dist/_chunks/chat-container-ogB4OskO.js.map +0 -1
  657. package/dist/_chunks/chat-input-B5zjNEUN.js.map +0 -1
  658. package/dist/_chunks/checkbox-DRcOdmXv.js.map +0 -1
  659. package/dist/_chunks/collapsible-X3oaLPU3.js.map +0 -1
  660. package/dist/_chunks/color-picker-FXpItIaF.js.map +0 -1
  661. package/dist/_chunks/combobox-BC-DFx8G.js.map +0 -1
  662. package/dist/_chunks/command-palette-BiPAAno-.js.map +0 -1
  663. package/dist/_chunks/contact-profile-card-7BMB85T6.js.map +0 -1
  664. package/dist/_chunks/copy-field-CCq7j6Zc.js.map +0 -1
  665. package/dist/_chunks/date-range-picker-C5BWfH_T.js.map +0 -1
  666. package/dist/_chunks/date-time-picker-Ze1My59T.js.map +0 -1
  667. package/dist/_chunks/dependent-selector-DpzGtr_J.js.map +0 -1
  668. package/dist/_chunks/dialog-DMGnSelc.js.map +0 -1
  669. package/dist/_chunks/document-scanner-D2qehl3-.js.map +0 -1
  670. package/dist/_chunks/dropdown-menu-DwwPovMZ.js.map +0 -1
  671. package/dist/_chunks/editable-currency-cell-renderer-DHOspPee.js +0 -2409
  672. package/dist/_chunks/editable-currency-cell-renderer-DHOspPee.js.map +0 -1
  673. package/dist/_chunks/file-upload-BosbPDb1.js.map +0 -1
  674. package/dist/_chunks/fiscal-code-input-DPtqluVb.js.map +0 -1
  675. package/dist/_chunks/freemium-paywall-CkWjv3o6.js.map +0 -1
  676. package/dist/_chunks/header-settings-CNOqIhoW.js.map +0 -1
  677. package/dist/_chunks/list-BOwqwy03.js.map +0 -1
  678. package/dist/_chunks/locale-picker-C9JmBht3.js.map +0 -1
  679. package/dist/_chunks/map-view-Tb5VfK9Y.js.map +0 -1
  680. package/dist/_chunks/message-card.agent-4IeIgrnJ.js.map +0 -1
  681. package/dist/_chunks/message-tray-CVyJajVJ.js.map +0 -1
  682. package/dist/_chunks/multi-select-BcPylvHR.js.map +0 -1
  683. package/dist/_chunks/navigation-menu-C6lBYVv9.js.map +0 -1
  684. package/dist/_chunks/notification-card.agent-Rqt3ofk9.js.map +0 -1
  685. package/dist/_chunks/notification-tray-DlgenTEe.js.map +0 -1
  686. package/dist/_chunks/number-input-Dj5L3pXK.js.map +0 -1
  687. package/dist/_chunks/operator-hero-f_KaRhw5.js.map +0 -1
  688. package/dist/_chunks/otp-input-xQ4Ps5VY.js.map +0 -1
  689. package/dist/_chunks/pagination-DQOgnxxw.js.map +0 -1
  690. package/dist/_chunks/patient-search-DR9XUYRQ.js.map +0 -1
  691. package/dist/_chunks/patient-summary-card-hEmr4eTW.js.map +0 -1
  692. package/dist/_chunks/payment-form-nXocS_MX.js.map +0 -1
  693. package/dist/_chunks/pdf-viewer-GsfNqeeT.js.map +0 -1
  694. package/dist/_chunks/phone-input-DVXhNlIl.js.map +0 -1
  695. package/dist/_chunks/popover-DTbfAuR0.js.map +0 -1
  696. package/dist/_chunks/practice-results-DND2SAt7.js.map +0 -1
  697. package/dist/_chunks/privacy-lock-C7JyMf0y.js.map +0 -1
  698. package/dist/_chunks/product-hub-panel-CAXDFeGP.js.map +0 -1
  699. package/dist/_chunks/public-footer.agent-CfXuW1x6.js.map +0 -1
  700. package/dist/_chunks/qr-code-DNXhi6se.js.map +0 -1
  701. package/dist/_chunks/recaptcha-widget-BCNHsgqt.js.map +0 -1
  702. package/dist/_chunks/registry-nPAVE19X.js +0 -21
  703. package/dist/_chunks/registry-nPAVE19X.js.map +0 -1
  704. package/dist/_chunks/resizable-3vzqDlg6.js.map +0 -1
  705. package/dist/_chunks/reviews-panel-DBktKm7i.js.map +0 -1
  706. package/dist/_chunks/rich-text-editor-VawKN1FI.js.map +0 -1
  707. package/dist/_chunks/search-bar-SY2BcV2N.js.map +0 -1
  708. package/dist/_chunks/search-input.agent-CfZvViOd.js.map +0 -1
  709. package/dist/_chunks/select-CEtRcon5.js.map +0 -1
  710. package/dist/_chunks/sheet-taJer-Ha.js.map +0 -1
  711. package/dist/_chunks/sidebar-DaB4ulxH.js.map +0 -1
  712. package/dist/_chunks/sign-document-CdAiHiCh.js.map +0 -1
  713. package/dist/_chunks/signature-capture-COi0Uiqu.js.map +0 -1
  714. package/dist/_chunks/slider-BHWzXdjt.js.map +0 -1
  715. package/dist/_chunks/sparkline-DGhCSw8M.js.map +0 -1
  716. package/dist/_chunks/stepper-accordion.agent-C4quJ-MD.js.map +0 -1
  717. package/dist/_chunks/stepper-progress-DDjq5nei.js.map +0 -1
  718. package/dist/_chunks/switch-BJ6HD3Mn.js.map +0 -1
  719. package/dist/_chunks/tabs-BIQ0ew1T.js.map +0 -1
  720. package/dist/_chunks/task-card.agent-CUPKYd7w.js.map +0 -1
  721. package/dist/_chunks/task-tray-CAncV-QQ.js.map +0 -1
  722. package/dist/_chunks/text-area-BIx0tZ05.js.map +0 -1
  723. package/dist/_chunks/text-input-BaClJL8Y.js.map +0 -1
  724. package/dist/_chunks/theme-toggle-DETmSu_h.js.map +0 -1
  725. package/dist/_chunks/time-picker-B5umYwfv.js.map +0 -1
  726. package/dist/_chunks/timeline-DQa5Tyz4.js.map +0 -1
  727. package/dist/_chunks/tooth-scheme-BIx1O2aJ.js.map +0 -1
  728. package/dist/_chunks/transcript-panel-CLHmv83g.js.map +0 -1
  729. package/dist/_chunks/unit-converter-C1V3ACM9.js +0 -196
  730. package/dist/_chunks/unit-converter-C1V3ACM9.js.map +0 -1
  731. package/dist/_chunks/use-password-requirements-DsgduV1x.js.map +0 -1
  732. package/dist/_chunks/warning-stack-Cv4fr5zo.js +0 -220
  733. package/dist/_chunks/warning-stack-Cv4fr5zo.js.map +0 -1
  734. package/dist/_chunks/whatsapp-button-DUjlWGKf.js.map +0 -1
  735. package/dist/_chunks/workflow-map-JAZryZJr.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviews-panel-Dq7LMDcH.js","sources":["../../src/components/reviews-panel/reviews-panel.agent.ts","../../src/components/reviews-panel/reviews-panel.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — ReviewsPanel. */\n/* */\n/* Replaces the legacy patient-reviews Carousel with a single panel that */\n/* surfaces an aggregate score, a star-bucket filter, and a vertical list */\n/* of compact review cards. The adapter exposes the active filter and the */\n/* visible review count so a host agent can drive the panel and observe */\n/* what the user actually sees after the filter is applied. The reviews */\n/* themselves remain owned by the consumer — they never flow through the */\n/* adapter (PHI: pseudonyms + free-text comments stay on the page). */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { ReviewFilter, ReviewsPanelHandle } from './reviews-panel';\n\nexport const reviewsPanelAgent: AgentAdapter<ReviewsPanelHandle> = {\n id: 'reviews-panel',\n capabilities: ['filter'],\n state: {\n filter: {\n type: 'string',\n descriptionKey: 'ui.agent.reviewsPanel.state.filter',\n description:\n 'Active star-bucket filter — `\"all\"` or an integer 1..5. Reads the controlled `filter` prop.',\n read: (handle) => handle.getFilter(),\n },\n visibleCount: {\n type: 'number',\n descriptionKey: 'ui.agent.reviewsPanel.state.visibleCount',\n description:\n 'Number of reviews currently rendered after the filter is applied.',\n read: (handle) => handle.getVisibleCount(),\n },\n },\n actions: {\n set_filter: {\n // Pure ephemeral narrowing of the visible list — no data loss.\n safety: 'read',\n argsType: '{ filter: \"all\" | 1 | 2 | 3 | 4 | 5 }',\n argsSchema: {\n type: 'object',\n properties: {\n filter: {\n description: 'Star bucket to show, or \"all\" to clear the filter.',\n oneOf: [\n { type: 'string', enum: ['all'] },\n { type: 'integer', enum: [1, 2, 3, 4, 5] },\n ],\n },\n },\n required: ['filter'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.reviewsPanel.actions.setFilter',\n description:\n 'Narrow the visible review list to a star bucket, or `\"all\"` to clear the filter.',\n examples: [\n { args: { filter: 5 }, note: 'Show only 5-star reviews.' },\n { args: { filter: 'all' }, note: 'Clear the star filter.' },\n ],\n invoke: (handle, args: { filter: ReviewFilter }) => {\n handle.setFilter(args.filter);\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'reviews-panel',\n description: 'Marks the ReviewsPanel root region.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n type KeyboardEvent,\n type ReactNode,\n} from 'react';\nimport { cva } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { ChevronDown } from 'lucide-react';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { reviewsPanelAgent } from './reviews-panel.agent';\nimport { Rating } from '../rating/rating';\nimport { Card } from '../card/card';\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from '../collapsible/collapsible';\nimport { DescriptionList } from '../description-list/description-list';\nimport { EmptyState } from '../empty-state/empty-state';\nimport { Skeleton } from '../skeleton/skeleton';\nimport { Button } from '../button/button';\n\n/* -------------------------------------------------------------------- */\n/* ReviewsPanel */\n/* */\n/* Replaces the legacy patient-reviews Carousel with a two-column panel */\n/* — a star-bucket filter sidebar + a vertical list of compact review */\n/* cards — that surfaces the aggregate score, the volume, and (via a */\n/* per-card Collapsible) the rich per-axis breakdown alfaDocs already */\n/* collects but the carousel buried. */\n/* -------------------------------------------------------------------- */\n\n/* -------------------------------------------------------------------- */\n/* Public types */\n/* -------------------------------------------------------------------- */\n\nexport interface ReviewItem {\n id: string;\n /** When the review was authored (ISO 8601). */\n authoredAt: string;\n /** Anonymised author display (\"Marco T.\", \"Anna_M\"). Falls back to a localised \"Anonymous\". */\n pseudonym?: string;\n /** 0..max — drives the visible star summary on the compact card. */\n overallScore: number;\n /** Short free-text comment shown on the compact card. */\n comment?: string;\n /** Practice reply (revealed in the expanded panel only). */\n reply?: string;\n /** Optional per-axis breakdown — when present, the card grows an\n * \"Expand\" affordance that reveals these in a DescriptionList. */\n breakdown?: {\n appointmentScore?: number;\n communicationScore?: number;\n staffScore?: number;\n overallScore?: number;\n };\n /** Optional categorical follow-ups, surfaced inside the breakdown. */\n futureVisit?: 'yes' | 'no' | 'unsure';\n recommendation?: 'yes' | 'no' | 'unsure';\n}\n\nexport interface ReviewsAggregate {\n /** Total review count across all star buckets (may exceed the loaded set when paginated). */\n count: number;\n /** Average score across the full population (drives the header `Rating`). */\n averageScore: number;\n /**\n * Optional histogram — per-bucket count keyed by integer star value 1..5.\n * When omitted, the panel derives buckets from the loaded `reviews` array\n * (best-effort: paginated consumers SHOULD provide this explicitly).\n */\n histogram?: Record<1 | 2 | 3 | 4 | 5, number>;\n}\n\nexport type ReviewFilter = 'all' | 1 | 2 | 3 | 4 | 5;\n\nexport interface ReviewsPanelHandle {\n getFilter: () => ReviewFilter;\n setFilter: (next: ReviewFilter) => void;\n /** Total visible after filter is applied. */\n getVisibleCount: () => number;\n}\n\nexport interface ReviewsPanelProps extends Omit<\n ComponentPropsWithoutRef<'section'>,\n 'aria-label' | 'children'\n> {\n reviews: ReviewItem[];\n aggregate: ReviewsAggregate;\n\n /**\n * Active star filter. Controlled — consumer owns it for shareability via\n * URL query strings. Omit for uncontrolled (panel-managed) filtering.\n */\n filter?: ReviewFilter;\n onFilterChange?: (next: ReviewFilter) => void;\n\n /**\n * Optional intro callout shown above the list (e.g. \"Riepilogo delle\n * opinioni — i pazienti raccontano…\"). Render-prop slot so the consumer\n * can drop in `<Alert>` / `<Callout>` / plain `<p>`.\n */\n introSlot?: ReactNode;\n\n /** Optional header right-end action (e.g. a \"Leave a review\" button). */\n headerActionSlot?: ReactNode;\n\n /** Override the default region aria-label. */\n 'aria-label'?: string;\n\n /** Agent-readiness id. */\n id?: string;\n\n className?: string;\n\n /**\n * Hide the filter sidebar — useful when the panel mounts under ~640px\n * width or inside a narrow column. Defaults to false.\n */\n hideFilter?: boolean;\n\n /**\n * @default 'flat'\n * `'elevated'` wraps the panel in the equivalent of `Card variant=\"elevated\"`\n * — same tokens (`--card`, `--card-border`, `--shadow-card`,\n * `--radius-lg`), same padding. Use to drop the consumer-side\n * `<Card><Card.Body>` wrap.\n */\n surface?: 'flat' | 'elevated';\n\n /** Render skeletons for the header and the list. */\n loading?: boolean;\n}\n\n/* -------------------------------------------------------------------- */\n/* Constants & helpers */\n/* -------------------------------------------------------------------- */\n\nconst FILTER_VALUES: readonly ReviewFilter[] = ['all', 5, 4, 3, 2, 1] as const;\n\nfunction bucketOf(score: number): 1 | 2 | 3 | 4 | 5 {\n const n = Math.min(5, Math.max(1, Math.floor(score)));\n return n as 1 | 2 | 3 | 4 | 5;\n}\n\nfunction deriveHistogram(\n reviews: ReviewItem[],\n): Record<1 | 2 | 3 | 4 | 5, number> {\n const out: Record<1 | 2 | 3 | 4 | 5, number> = {\n 1: 0,\n 2: 0,\n 3: 0,\n 4: 0,\n 5: 0,\n };\n for (const r of reviews) out[bucketOf(r.overallScore)] += 1;\n return out;\n}\n\n/* -------------------------------------------------------------------- */\n/* FilterSidebar — hand-rolled radiogroup with roving tabindex */\n/* */\n/* Mirrors `ServiceGrid` in `booking.tsx`: the WAI-ARIA RadioGroup */\n/* pattern with full-row click target + icon column. NOT Radix */\n/* `RadioGroup` because we need a row layout with a non-text leading */\n/* glyph (the star ramp) and a trailing count. */\n/* */\n/* Activation is automatic — Arrow keys move BOTH focus and selection, */\n/* so a keyboard user feels the same responsiveness as a mouse user. */\n/* That's the right call here because filter activation is cheap (re- */\n/* renders the visible list); contrast with the booking ServiceGrid */\n/* where activation cascades through downstream selection state. */\n/* -------------------------------------------------------------------- */\n\nconst filterRowVariants = cva(\n [\n 'ds:relative ds:flex ds:w-full ds:items-center ds:justify-between',\n 'ds:gap-[var(--spacing-sm)]',\n 'ds:min-h-[var(--min-target-size)]',\n 'ds:rounded-[var(--radius-md)]',\n 'ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]',\n 'ds:pt-[var(--spacing-2xs)] ds:pb-[var(--spacing-2xs)]',\n 'ds:text-start',\n 'ds:transition-[background-color,color]',\n 'ds:duration-[var(--animation-duration)]',\n 'ds:motion-reduce:transition-none',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)]',\n 'ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[var(--ring)]',\n 'ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n 'ds:cursor-pointer',\n ].join(' '),\n {\n variants: {\n state: {\n idle: 'ds:hover:bg-[var(--muted)]/30 ds:text-[var(--foreground)]',\n selected: [\n 'ds:bg-[var(--primary)]',\n 'ds:text-[var(--primary-foreground)]',\n 'ds:font-[var(--font-weight-semibold)]',\n ].join(' '),\n },\n },\n defaultVariants: { state: 'idle' },\n },\n);\n\ninterface FilterSidebarProps {\n filter: ReviewFilter;\n histogram: Record<1 | 2 | 3 | 4 | 5, number>;\n totalCount: number;\n onChange: (next: ReviewFilter) => void;\n}\n\nfunction FilterSidebar({\n filter,\n histogram,\n totalCount,\n onChange,\n}: FilterSidebarProps) {\n const { t } = useTranslation();\n const labelId = useId();\n\n // Roving tabindex tracks where keyboard focus is. We use AUTOMATIC\n // activation: arrow keys move focus AND fire onChange (see the rationale\n // above the component). To keep the visible aria-checked row and the\n // tab-stop aligned when the parent changes `filter` externally (e.g.\n // from a `?filter=4` URL parameter on page load), sync focusIndex to\n // the current filter via the effect below — without it, the tab stop\n // could land on `All` while the highlight shows `4`.\n const [focusIndex, setFocusIndex] = useState<number>(() =>\n Math.max(0, FILTER_VALUES.indexOf(filter)),\n );\n useEffect(() => {\n const i = FILTER_VALUES.indexOf(filter);\n if (i >= 0) setFocusIndex(i);\n }, [filter]);\n\n const rowRefs = useRef<Map<number, HTMLButtonElement>>(new Map());\n const focusAt = useCallback((index: number) => {\n rowRefs.current.get(index)?.focus();\n }, []);\n\n const total = FILTER_VALUES.length;\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLButtonElement>, index: number) => {\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowRight': {\n event.preventDefault();\n const next = (index + 1) % total;\n setFocusIndex(next);\n focusAt(next);\n onChange(FILTER_VALUES[next]);\n break;\n }\n case 'ArrowUp':\n case 'ArrowLeft': {\n event.preventDefault();\n const prev = (index - 1 + total) % total;\n setFocusIndex(prev);\n focusAt(prev);\n onChange(FILTER_VALUES[prev]);\n break;\n }\n case 'Home': {\n event.preventDefault();\n setFocusIndex(0);\n focusAt(0);\n onChange(FILTER_VALUES[0]);\n break;\n }\n case 'End': {\n event.preventDefault();\n const last = total - 1;\n setFocusIndex(last);\n focusAt(last);\n onChange(FILTER_VALUES[last]);\n break;\n }\n case 'Enter':\n case ' ': {\n event.preventDefault();\n onChange(FILTER_VALUES[index]);\n break;\n }\n default:\n break;\n }\n },\n [total, focusAt, onChange],\n );\n\n return (\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]\">\n <h3\n id={labelId}\n className=\"type-label ds:font-[var(--font-weight-semibold)] ds:text-[var(--foreground)] ds:m-0\"\n >\n {t('reviewsPanel.filterTitle')}\n </h3>\n <div\n role=\"radiogroup\"\n aria-labelledby={labelId}\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)]\"\n >\n {FILTER_VALUES.map((val, index) => {\n const isAll = val === 'all';\n const stars = isAll ? 0 : (val as 1 | 2 | 3 | 4 | 5);\n const count = isAll\n ? totalCount\n : histogram[stars as 1 | 2 | 3 | 4 | 5];\n const isSelected = val === filter;\n const isFocused = focusIndex === index;\n const ariaLabel = isAll\n ? t('reviewsPanel.filter.allLabel', { count })\n : t('reviewsPanel.filter.starsLabel', { stars, count });\n\n return (\n <button\n key={String(val)}\n ref={(node) => {\n if (node) rowRefs.current.set(index, node);\n else rowRefs.current.delete(index);\n }}\n type=\"button\"\n role=\"radio\"\n aria-checked={isSelected}\n aria-label={ariaLabel}\n tabIndex={isFocused ? 0 : -1}\n onClick={() => {\n setFocusIndex(index);\n onChange(val);\n }}\n onFocus={() => setFocusIndex(index)}\n onKeyDown={(e) => handleKeyDown(e, index)}\n data-filter-bucket={String(val)}\n className={filterRowVariants({\n state: isSelected ? 'selected' : 'idle',\n })}\n >\n <span\n aria-hidden=\"true\"\n className=\"ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]\"\n >\n {isAll ? (\n <span className=\"type-label\">\n {t('reviewsPanel.filter.allShort')}\n </span>\n ) : (\n <Rating value={stars} size=\"sm\" decorative />\n )}\n </span>\n <span\n aria-hidden=\"true\"\n className={[\n 'type-meta',\n // Idle row: count is dimmed (--muted-foreground over\n // --background ≈ 4.5:1, AA passes). Selected row\n // paints violet bg + white text on the BUTTON, but\n // the count's own explicit color override would\n // otherwise win the cascade and leave dark navy-grey\n // text on the violet pill (~3:1, AA-fail). Match the\n // row's foreground when selected; slight opacity\n // keeps the count secondary to the label.\n isSelected\n ? 'ds:text-[color:var(--primary-foreground)]'\n : 'ds:text-[var(--muted-foreground)]',\n ].join(' ')}\n >\n {count}\n </span>\n </button>\n );\n })}\n </div>\n </div>\n );\n}\n\n/* -------------------------------------------------------------------- */\n/* ReviewCard — compact card with optional Collapsible breakdown */\n/* -------------------------------------------------------------------- */\n\ninterface ReviewCardProps {\n review: ReviewItem;\n locale: string;\n}\n\nfunction ReviewCard({ review, locale }: ReviewCardProps) {\n const { t } = useTranslation();\n const triggerId = useId();\n const contentId = useId();\n const [open, setOpen] = useState(false);\n\n const breakdownHasValues = Boolean(\n review.breakdown && Object.values(review.breakdown).some((v) => v != null),\n );\n const hasDetails =\n Boolean(review.reply) ||\n breakdownHasValues ||\n Boolean(review.futureVisit) ||\n Boolean(review.recommendation);\n\n const formattedDate = useMemo(() => {\n if (!review.authoredAt) return '';\n try {\n const parsed = new Date(review.authoredAt);\n if (Number.isNaN(parsed.getTime())) return review.authoredAt;\n return new Intl.DateTimeFormat(locale, { dateStyle: 'medium' }).format(\n parsed,\n );\n } catch {\n return review.authoredAt;\n }\n }, [review.authoredAt, locale]);\n\n const pseudonym = review.pseudonym ?? t('reviewsPanel.anonymous');\n\n // Compose the full Card body. The Collapsible wraps the footer + the\n // hidden content so both share the same Radix Root and the Trigger's\n // `data-state` reaches the Content automatically (used for the height\n // animation). The Footer + Content are direct Card children so the\n // Card root's flex-col places them in order.\n const footerAndDetails = (\n <Collapsible\n open={hasDetails ? open : false}\n onOpenChange={hasDetails ? setOpen : undefined}\n >\n <Card.Footer>\n <span className=\"type-meta ds:text-[var(--muted-foreground)]\">\n {formattedDate}\n </span>\n {hasDetails ? (\n <CollapsibleTrigger asChild>\n <button\n id={triggerId}\n type=\"button\"\n data-review-trigger\n className=\"ds:ms-auto ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)] ds:rounded-[var(--radius-sm)] ds:ps-[var(--spacing-2xs)] ds:pe-[var(--spacing-2xs)] ds:pt-[var(--spacing-2xs)] ds:pb-[var(--spacing-2xs)] ds:bg-transparent ds:border-0 ds:text-[length:var(--font-size-sm)] ds:text-[var(--primary)] ds:hover:underline ds:cursor-pointer ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)] ds:forced-colors:focus-visible:outline-[CanvasText]\"\n >\n {open\n ? t('reviewsPanel.card.collapse')\n : t('reviewsPanel.card.expand')}\n <ChevronDown\n aria-hidden=\"true\"\n className={[\n 'ds:size-4 ds:transition-transform ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n open ? 'ds:rotate-180' : '',\n ]\n .filter(Boolean)\n .join(' ')}\n />\n </button>\n </CollapsibleTrigger>\n ) : null}\n </Card.Footer>\n {hasDetails ? (\n <CollapsibleContent id={contentId} aria-labelledby={triggerId}>\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)] ds:pb-[var(--spacing-md)]\">\n {breakdownHasValues ||\n review.futureVisit ||\n review.recommendation ? (\n <DescriptionList layout=\"inline\" density=\"compact\">\n {review.breakdown?.appointmentScore != null ? (\n <DescriptionList.Row>\n <DescriptionList.Term>\n {t('reviewsPanel.breakdown.appointment')}\n </DescriptionList.Term>\n <DescriptionList.Detail>\n <Rating\n value={review.breakdown.appointmentScore}\n size=\"sm\"\n />\n </DescriptionList.Detail>\n </DescriptionList.Row>\n ) : null}\n {review.breakdown?.communicationScore != null ? (\n <DescriptionList.Row>\n <DescriptionList.Term>\n {t('reviewsPanel.breakdown.communication')}\n </DescriptionList.Term>\n <DescriptionList.Detail>\n <Rating\n value={review.breakdown.communicationScore}\n size=\"sm\"\n />\n </DescriptionList.Detail>\n </DescriptionList.Row>\n ) : null}\n {review.breakdown?.staffScore != null ? (\n <DescriptionList.Row>\n <DescriptionList.Term>\n {t('reviewsPanel.breakdown.staff')}\n </DescriptionList.Term>\n <DescriptionList.Detail>\n <Rating value={review.breakdown.staffScore} size=\"sm\" />\n </DescriptionList.Detail>\n </DescriptionList.Row>\n ) : null}\n {review.breakdown?.overallScore != null ? (\n <DescriptionList.Row>\n <DescriptionList.Term>\n {t('reviewsPanel.breakdown.overall')}\n </DescriptionList.Term>\n <DescriptionList.Detail>\n <Rating value={review.breakdown.overallScore} size=\"sm\" />\n </DescriptionList.Detail>\n </DescriptionList.Row>\n ) : null}\n {review.futureVisit ? (\n <DescriptionList.Row>\n <DescriptionList.Term>\n {t('reviewsPanel.breakdown.futureVisit')}\n </DescriptionList.Term>\n <DescriptionList.Detail>\n {t(`reviewsPanel.answer.${review.futureVisit}`)}\n </DescriptionList.Detail>\n </DescriptionList.Row>\n ) : null}\n {review.recommendation ? (\n <DescriptionList.Row>\n <DescriptionList.Term>\n {t('reviewsPanel.breakdown.recommendation')}\n </DescriptionList.Term>\n <DescriptionList.Detail>\n {t(`reviewsPanel.answer.${review.recommendation}`)}\n </DescriptionList.Detail>\n </DescriptionList.Row>\n ) : null}\n </DescriptionList>\n ) : null}\n {review.reply ? (\n <div className=\"ds:rounded-[var(--radius-sm)] ds:bg-[var(--muted)]/40 ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:pt-[var(--spacing-sm)] ds:pb-[var(--spacing-sm)]\">\n <p className=\"type-label ds:m-0 ds:mb-[var(--spacing-2xs)] ds:text-[var(--muted-foreground)] ds:font-[var(--font-weight-semibold)]\">\n {t('reviewsPanel.replyTitle')}\n </p>\n <p className=\"type-body-sm ds:m-0 ds:text-[var(--foreground)] ds:[white-space:pre-line]\">\n {review.reply}\n </p>\n </div>\n ) : null}\n </div>\n </CollapsibleContent>\n ) : null}\n </Collapsible>\n );\n\n return (\n <Card variant=\"default\" className=\"ds:shadow-[var(--shadow-sm)]\">\n <Card.Header>\n <div className=\"ds:flex ds:items-start ds:justify-between ds:gap-[var(--spacing-sm)]\">\n <h4 className=\"type-title-item ds:m-0 ds:text-[var(--foreground)]\">\n {pseudonym}\n </h4>\n <Rating value={review.overallScore} size=\"sm\" />\n </div>\n </Card.Header>\n {review.comment ? (\n <Card.Body>\n <p className=\"type-body ds:m-0 ds:text-[var(--foreground)] ds:line-clamp-2\">\n {review.comment}\n </p>\n </Card.Body>\n ) : null}\n {footerAndDetails}\n </Card>\n );\n}\n\n/* -------------------------------------------------------------------- */\n/* PanelSkeleton — loading state */\n/* -------------------------------------------------------------------- */\n\nfunction PanelSkeleton({ hideFilter }: { hideFilter: boolean }) {\n // The parent <section> already carries `aria-busy=\"true\"`, which is the\n // canonical SR signal for \"this region is loading\". Don't add `role=status`\n // + `aria-live=polite` here too — pairing both would double-announce on\n // mount. Skeleton itself is `aria-hidden`.\n return (\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-md)]\">\n <div className=\"ds:flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]\">\n <Skeleton variant=\"text\" width=\"40%\" />\n <Skeleton variant=\"text\" width=\"20%\" />\n </div>\n <div\n className={\n hideFilter\n ? 'ds:flex ds:flex-col ds:gap-[var(--spacing-md)]'\n : 'ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:md:grid-cols-[minmax(0,30%)_minmax(0,1fr)]'\n }\n >\n {!hideFilter ? (\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]\">\n {Array.from({ length: 6 }, (_, i) => (\n <Skeleton key={`rp-fs-${i}`} variant=\"rounded\" height=\"2.5rem\" />\n ))}\n </div>\n ) : null}\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]\">\n {Array.from({ length: 3 }, (_, i) => (\n <Skeleton key={`rp-rs-${i}`} variant=\"rounded\" height=\"6rem\" />\n ))}\n </div>\n </div>\n </div>\n );\n}\n\n/* -------------------------------------------------------------------- */\n/* Root variants */\n/* -------------------------------------------------------------------- */\n\nconst rootVariants = cva(\n 'ds:flex ds:w-full ds:flex-col ds:gap-[var(--spacing-md)] ds:text-[var(--foreground)]',\n {\n variants: {\n // `surface=\"elevated\"` matches `Card variant=\"elevated\"` — same\n // tokens, same padding, same boundary behaviour — so consumers can\n // drop their own Card wraps without producing a double-card look.\n // Default `'flat'` preserves 0.30.x rendering (no wrapping).\n surface: {\n flat: '',\n elevated: [\n 'ds:rounded-[var(--radius-lg)]',\n 'ds:bg-[var(--card)] ds:text-[var(--card-foreground)]',\n 'ds:border ds:border-[color:var(--card-border)]',\n 'ds:shadow-[var(--shadow-card)]',\n 'ds:p-[var(--spacing-md)]',\n ].join(' '),\n },\n },\n defaultVariants: { surface: 'flat' },\n },\n);\n\n/* -------------------------------------------------------------------- */\n/* ReviewsPanel */\n/* -------------------------------------------------------------------- */\n\nexport const ReviewsPanel = forwardRef<HTMLElement, ReviewsPanelProps>(\n (\n {\n reviews,\n aggregate,\n filter: filterProp,\n onFilterChange,\n introSlot,\n headerActionSlot,\n 'aria-label': ariaLabel,\n id,\n className,\n hideFilter = false,\n surface = 'flat',\n loading = false,\n ...rest\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n const locale = i18n.language ?? 'en';\n\n // Controlled / uncontrolled filter handling. When `filterProp` is\n // undefined the panel manages the filter internally — the consumer can\n // mount the panel and never wire `filter` / `onFilterChange` for the\n // common case where the URL doesn't carry the filter state. When the\n // prop IS provided, the consumer owns the truth.\n const [internalFilter, setInternalFilter] = useState<ReviewFilter>('all');\n const filter = filterProp ?? internalFilter;\n\n const handleFilterChange = useCallback(\n (next: ReviewFilter) => {\n if (filterProp === undefined) setInternalFilter(next);\n onFilterChange?.(next);\n },\n [filterProp, onFilterChange],\n );\n\n // Prefer the consumer-provided histogram; fall back to deriving from the\n // loaded reviews. Pagination consumers SHOULD pass an explicit histogram\n // so the per-bucket counts reflect server-side totals rather than only\n // what's loaded on this page.\n const histogram = useMemo(\n () => aggregate.histogram ?? deriveHistogram(reviews),\n [aggregate.histogram, reviews],\n );\n\n const visibleReviews = useMemo(() => {\n if (filter === 'all') return reviews;\n return reviews.filter((r) => bucketOf(r.overallScore) === filter);\n }, [reviews, filter]);\n\n /* Agent registration — exposes filter + visible count via refs so the\n imperative handle returns the latest values without re-creating the\n handle on every render. */\n const latestFilterRef = useRef(filter);\n latestFilterRef.current = filter;\n const latestVisibleCountRef = useRef(visibleReviews.length);\n latestVisibleCountRef.current = visibleReviews.length;\n\n const agentHandle = useMemo<ReviewsPanelHandle>(\n () => ({\n getFilter: () => latestFilterRef.current,\n setFilter: (next) => handleFilterChange(next),\n getVisibleCount: () => latestVisibleCountRef.current,\n }),\n [handleFilterChange],\n );\n\n const rootRef = useRef<HTMLElement>(null);\n useImperativeHandle(ref, () => rootRef.current as HTMLElement, []);\n useAgentRegistration(reviewsPanelAgent, agentHandle, id);\n\n const resolvedAriaLabel = ariaLabel ?? t('reviewsPanel.regionLabel');\n const dataFilter = String(filter);\n\n /* ---------------------------- Loading ---------------------------- */\n if (loading) {\n return (\n <section\n ref={rootRef as React.Ref<HTMLElement>}\n aria-label={resolvedAriaLabel}\n aria-busy=\"true\"\n id={id}\n data-component=\"reviews-panel\"\n data-component-id={id}\n data-filter={dataFilter}\n data-state=\"loading\"\n className={rootVariants({ surface, className })}\n {...rest}\n >\n <PanelSkeleton hideFilter={hideFilter} />\n </section>\n );\n }\n\n /* ----------------------- Zero-total empty ------------------------ */\n // No header, no filter — just the EmptyState. The region landmark is\n // still emitted so an agent can locate the empty panel by its\n // data-component marker.\n if (aggregate.count === 0 && reviews.length === 0) {\n return (\n <section\n ref={rootRef as React.Ref<HTMLElement>}\n aria-label={resolvedAriaLabel}\n id={id}\n data-component=\"reviews-panel\"\n data-component-id={id}\n data-filter={dataFilter}\n data-state=\"empty\"\n className={rootVariants({ surface, className })}\n {...rest}\n >\n <EmptyState\n variant=\"no-results\"\n title={t('reviewsPanel.empty.title')}\n description={t('reviewsPanel.empty.description')}\n />\n </section>\n );\n }\n\n const showFilterSidebar = !hideFilter;\n\n return (\n <section\n ref={rootRef as React.Ref<HTMLElement>}\n aria-label={resolvedAriaLabel}\n id={id}\n data-component=\"reviews-panel\"\n data-component-id={id}\n data-filter={dataFilter}\n className={rootVariants({ surface, className })}\n {...rest}\n >\n {/* Header row — plain <div>, not <header>: the panel root is a\n region landmark with an accessible name, so a nested <header>\n would emit a banner-inside-region pair that axe's\n landmark-banner-is-top-level rule flags. */}\n <div className=\"ds:flex ds:flex-wrap ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]\">\n <h2 className=\"type-title-section ds:m-0 ds:text-[var(--foreground)]\">\n {t('reviewsPanel.title')}\n </h2>\n <div className=\"ds:flex ds:items-center ds:gap-[var(--spacing-md)]\">\n {headerActionSlot}\n <Rating\n value={aggregate.averageScore}\n reviews={{ count: aggregate.count }}\n size=\"md\"\n />\n </div>\n </div>\n\n <div\n className={\n showFilterSidebar\n ? 'ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:md:grid-cols-[minmax(0,30%)_minmax(0,1fr)]'\n : 'ds:flex ds:flex-col ds:gap-[var(--spacing-md)]'\n }\n >\n {showFilterSidebar ? (\n <FilterSidebar\n filter={filter}\n histogram={histogram}\n totalCount={aggregate.count}\n onChange={handleFilterChange}\n />\n ) : null}\n\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:min-w-0\">\n {introSlot\n ? // Render the slot raw — the consumer's introSlot owns\n // its own visual chrome (Alert, Infotip, plain <p>, …).\n // 0.31.x wrapped the slot in a `bg-info/8` tinted box,\n // but when the consumer passed an Alert with its own\n // tinted surface the visual stack rendered TWO concentric\n // tinted boxes (\"double effect\"). The wrapper added no\n // semantic value either (no role, no aria), so dropping\n // it is purely visual.\n introSlot\n : null}\n\n {visibleReviews.length === 0 ? (\n // `role=\"status\"` already implies `aria-live=\"polite\"` —\n // declaring both would queue two announcements when the\n // filter changes (the radio's aria-checked flip + this\n // container's text). Keeping `role` only.\n <div\n role=\"status\"\n data-state=\"no-match\"\n className=\"ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-sm)] ds:rounded-[var(--radius-md)] ds:border ds:border-dashed ds:border-[var(--border)] ds:p-[var(--spacing-lg)] ds:text-center\"\n >\n <p className=\"type-body ds:m-0 ds:text-[var(--muted-foreground)]\">\n {filter === 'all'\n ? t('reviewsPanel.empty.title')\n : t('reviewsPanel.empty.filterDescription', {\n stars: filter,\n })}\n </p>\n {filter !== 'all' ? (\n <Button\n intent=\"secondary\"\n size=\"sm\"\n onClick={() => handleFilterChange('all')}\n >\n {t('reviewsPanel.empty.resetFilter')}\n </Button>\n ) : null}\n </div>\n ) : (\n <ol\n aria-label={t('reviewsPanel.listLabel')}\n className=\"ds:list-none ds:m-0 ds:p-0 ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]\"\n >\n {visibleReviews.map((review) => (\n <li key={review.id} data-review-id={review.id}>\n <ReviewCard review={review} locale={locale} />\n </li>\n ))}\n </ol>\n )}\n </div>\n </div>\n </section>\n );\n },\n);\n\nReviewsPanel.displayName = 'ReviewsPanel';\n"],"names":["reviewsPanelAgent","handle","args","FILTER_VALUES","bucketOf","score","deriveHistogram","reviews","out","r","filterRowVariants","cva","FilterSidebar","filter","histogram","totalCount","onChange","t","useTranslation","labelId","useId","focusIndex","setFocusIndex","useState","useEffect","i","rowRefs","useRef","focusAt","useCallback","index","_a","total","handleKeyDown","event","next","prev","last","jsxs","jsx","val","isAll","stars","count","isSelected","isFocused","ariaLabel","node","e","Rating","ReviewCard","review","locale","triggerId","contentId","open","setOpen","breakdownHasValues","hasDetails","formattedDate","useMemo","parsed","pseudonym","footerAndDetails","Collapsible","Card","CollapsibleTrigger","ChevronDown","CollapsibleContent","DescriptionList","_b","_c","_d","PanelSkeleton","hideFilter","Skeleton","_","rootVariants","ReviewsPanel","forwardRef","aggregate","filterProp","onFilterChange","introSlot","headerActionSlot","id","className","surface","loading","rest","ref","i18n","internalFilter","setInternalFilter","handleFilterChange","visibleReviews","latestFilterRef","latestVisibleCountRef","agentHandle","rootRef","useImperativeHandle","useAgentRegistration","resolvedAriaLabel","dataFilter","EmptyState","showFilterSidebar","Button"],"mappings":"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"}