@alfadocs/ui-kit-debug 0.69.0 → 0.71.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 (788) hide show
  1. package/dist/_chunks/address-fields-CPbFJ8e8.js +246 -0
  2. package/dist/_chunks/address-fields-CPbFJ8e8.js.map +1 -0
  3. package/dist/_chunks/{agenda-card-BxSFkqgY.js → agenda-card-BQ-IKAru.js} +2 -2
  4. package/dist/_chunks/{agenda-card-BxSFkqgY.js.map → agenda-card-BQ-IKAru.js.map} +1 -1
  5. package/dist/_chunks/{agenda-tray-g0kg7HwB.js → agenda-tray-CGXRk58j.js} +2 -2
  6. package/dist/_chunks/{agenda-tray-g0kg7HwB.js.map → agenda-tray-CGXRk58j.js.map} +1 -1
  7. package/dist/_chunks/{ai-consent-banner-CXlsNX1c.js → ai-consent-banner-Be-h9mRI.js} +3 -3
  8. package/dist/_chunks/{ai-consent-banner-CXlsNX1c.js.map → ai-consent-banner-Be-h9mRI.js.map} +1 -1
  9. package/dist/_chunks/{ai-prompt-input-CuhTo9mh.js → ai-prompt-input-V4DdOeqv.js} +2 -2
  10. package/dist/_chunks/{ai-prompt-input-CuhTo9mh.js.map → ai-prompt-input-V4DdOeqv.js.map} +1 -1
  11. package/dist/_chunks/{alert-_mUKLmwA.js → alert-CHYZ96tR.js} +150 -96
  12. package/dist/_chunks/alert-CHYZ96tR.js.map +1 -0
  13. package/dist/_chunks/{alia-sidebar-B47qRQb5.js → alia-sidebar-DvIUzIX9.js} +107 -106
  14. package/dist/_chunks/alia-sidebar-DvIUzIX9.js.map +1 -0
  15. package/dist/_chunks/{anamnesis-card-DRmE24OQ.js → anamnesis-card-DvYCa16e.js} +2 -2
  16. package/dist/_chunks/{anamnesis-card-DRmE24OQ.js.map → anamnesis-card-DvYCa16e.js.map} +1 -1
  17. package/dist/_chunks/anatomy-scheme-CXSk11UJ.js +2445 -0
  18. package/dist/_chunks/anatomy-scheme-CXSk11UJ.js.map +1 -0
  19. package/dist/_chunks/annotation-marker-qt5R9WZX.js +120 -0
  20. package/dist/_chunks/annotation-marker-qt5R9WZX.js.map +1 -0
  21. package/dist/_chunks/{antenatal-schedule-timeline-35ebkcZT.js → antenatal-schedule-timeline-CwXrQRm1.js} +2 -2
  22. package/dist/_chunks/{antenatal-schedule-timeline-35ebkcZT.js.map → antenatal-schedule-timeline-CwXrQRm1.js.map} +1 -1
  23. package/dist/_chunks/{app-frame-BYx1gcV7.js → app-frame-DIEMIC5V.js} +67 -56
  24. package/dist/_chunks/app-frame-DIEMIC5V.js.map +1 -0
  25. package/dist/_chunks/appointment-card-DVaeJNVB.js +294 -0
  26. package/dist/_chunks/appointment-card-DVaeJNVB.js.map +1 -0
  27. package/dist/_chunks/appointment-timeline-PJgnrjFb.js +388 -0
  28. package/dist/_chunks/appointment-timeline-PJgnrjFb.js.map +1 -0
  29. package/dist/_chunks/appointment-tray-B16QPGbm.js +193 -0
  30. package/dist/_chunks/appointment-tray-B16QPGbm.js.map +1 -0
  31. package/dist/_chunks/{audio-recorder-DYXXnGug.js → audio-recorder-DNDsOLqO.js} +3 -3
  32. package/dist/_chunks/{audio-recorder-DYXXnGug.js.map → audio-recorder-DNDsOLqO.js.map} +1 -1
  33. package/dist/_chunks/{autocomplete-DOeGouCL.js → autocomplete-BrONKN8l.js} +168 -146
  34. package/dist/_chunks/autocomplete-BrONKN8l.js.map +1 -0
  35. package/dist/_chunks/{badge-CqGsX32l.js → badge-DCOqV9mI.js} +32 -27
  36. package/dist/_chunks/badge-DCOqV9mI.js.map +1 -0
  37. package/dist/_chunks/{bishop-score-PJI3AXzA.js → bishop-score-Cym_TeQY.js} +3 -3
  38. package/dist/_chunks/{bishop-score-PJI3AXzA.js.map → bishop-score-Cym_TeQY.js.map} +1 -1
  39. package/dist/_chunks/{bmi-calculator-BZtIJ53x.js → bmi-calculator-zjeY4E7J.js} +2 -2
  40. package/dist/_chunks/{bmi-calculator-BZtIJ53x.js.map → bmi-calculator-zjeY4E7J.js.map} +1 -1
  41. package/dist/_chunks/{booking-C3VqFReX.js → booking-C7do4vaR.js} +7 -7
  42. package/dist/_chunks/{booking-C3VqFReX.js.map → booking-C7do4vaR.js.map} +1 -1
  43. package/dist/_chunks/{button-group-Ciq6J4IW.js → button-group-CvEnVzY7.js} +32 -35
  44. package/dist/_chunks/{button-group-Ciq6J4IW.js.map → button-group-CvEnVzY7.js.map} +1 -1
  45. package/dist/_chunks/{care-plan-card-CvFGXa2z.js → care-plan-card-DzPDYgtK.js} +5 -5
  46. package/dist/_chunks/{care-plan-card-CvFGXa2z.js.map → care-plan-card-DzPDYgtK.js.map} +1 -1
  47. package/dist/_chunks/{care-plan-entry-card-C3E_gClk.js → care-plan-entry-card-CEnQy7YP.js} +5 -5
  48. package/dist/_chunks/{care-plan-entry-card-C3E_gClk.js.map → care-plan-entry-card-CEnQy7YP.js.map} +1 -1
  49. package/dist/_chunks/care-plan-header-DcXFXWit.js +198 -0
  50. package/dist/_chunks/care-plan-header-DcXFXWit.js.map +1 -0
  51. package/dist/_chunks/{chat-message-3V54YipB.js → chat-message-DzpcJR-q.js} +25 -23
  52. package/dist/_chunks/chat-message-DzpcJR-q.js.map +1 -0
  53. package/dist/_chunks/city-input-Dkgaak7I.js +169 -0
  54. package/dist/_chunks/city-input-Dkgaak7I.js.map +1 -0
  55. package/dist/_chunks/clinical-note-card-BUvNMNGL.js +436 -0
  56. package/dist/_chunks/clinical-note-card-BUvNMNGL.js.map +1 -0
  57. package/dist/_chunks/clipboard-list-S7s-MXQq.js +25 -0
  58. package/dist/_chunks/clipboard-list-S7s-MXQq.js.map +1 -0
  59. package/dist/_chunks/{combobox-Clum7gJ1.js → combobox-DnqSF0IH.js} +131 -114
  60. package/dist/_chunks/combobox-DnqSF0IH.js.map +1 -0
  61. package/dist/_chunks/connection-status-CY1HV8Wg.js +108 -0
  62. package/dist/_chunks/connection-status-CY1HV8Wg.js.map +1 -0
  63. package/dist/_chunks/{contact-profile-card-Dramqa9C.js → contact-profile-card-DDPwRFiP.js} +2 -2
  64. package/dist/_chunks/{contact-profile-card-Dramqa9C.js.map → contact-profile-card-DDPwRFiP.js.map} +1 -1
  65. package/dist/_chunks/control-room-rail-FAQZrGVL.js +333 -0
  66. package/dist/_chunks/control-room-rail-FAQZrGVL.js.map +1 -0
  67. package/dist/_chunks/country-select-BwUZQvTa.js +709 -0
  68. package/dist/_chunks/country-select-BwUZQvTa.js.map +1 -0
  69. package/dist/_chunks/{cycle-calculator-DmRGJNaT.js → cycle-calculator-CCmPwcBl.js} +2 -2
  70. package/dist/_chunks/{cycle-calculator-DmRGJNaT.js.map → cycle-calculator-CCmPwcBl.js.map} +1 -1
  71. package/dist/_chunks/{dependent-selector-CG_FOHya.js → dependent-selector-DUV4thxX.js} +2 -2
  72. package/dist/_chunks/{dependent-selector-CG_FOHya.js.map → dependent-selector-DUV4thxX.js.map} +1 -1
  73. package/dist/_chunks/{document-scanner-CTubA0-N.js → document-scanner-C_AxLooF.js} +3 -3
  74. package/dist/_chunks/{document-scanner-CTubA0-N.js.map → document-scanner-C_AxLooF.js.map} +1 -1
  75. package/dist/_chunks/{due-date-calculator-BTmsIQqD.js → due-date-calculator-Brdj-euS.js} +3 -3
  76. package/dist/_chunks/{due-date-calculator-BTmsIQqD.js.map → due-date-calculator-Brdj-euS.js.map} +1 -1
  77. package/dist/_chunks/editable-currency-cell-renderer-CGELrkIj.js +410 -0
  78. package/dist/_chunks/editable-currency-cell-renderer-CGELrkIj.js.map +1 -0
  79. package/dist/_chunks/email-input-DJ7EXklP.js +397 -0
  80. package/dist/_chunks/{email-input-B_Y55f5G.js.map → email-input-DJ7EXklP.js.map} +1 -1
  81. package/dist/_chunks/{entity-card-COhmqHly.js → entity-card-DmrgYSEX.js} +38 -20
  82. package/dist/_chunks/{entity-card-COhmqHly.js.map → entity-card-DmrgYSEX.js.map} +1 -1
  83. package/dist/_chunks/entity-summary-CaM1Y-xE.js +291 -0
  84. package/dist/_chunks/entity-summary-CaM1Y-xE.js.map +1 -0
  85. package/dist/_chunks/{fetal-weight-CRz7KE2D.js → fetal-weight-DNCkyeVo.js} +2 -2
  86. package/dist/_chunks/{fetal-weight-CRz7KE2D.js.map → fetal-weight-DNCkyeVo.js.map} +1 -1
  87. package/dist/_chunks/field-array-siUZzfYe.js +146 -0
  88. package/dist/_chunks/field-array-siUZzfYe.js.map +1 -0
  89. package/dist/_chunks/field-value-3jMM0uDx.js +415 -0
  90. package/dist/_chunks/field-value-3jMM0uDx.js.map +1 -0
  91. package/dist/_chunks/{file-upload-5ScQd4fE.js → file-upload-DwZcAK8D.js} +2 -1
  92. package/dist/_chunks/{file-upload-5ScQd4fE.js.map → file-upload-DwZcAK8D.js.map} +1 -1
  93. package/dist/_chunks/{freemium-paywall-DZ2mBS3w.js → freemium-paywall-WYlNO7yT.js} +2 -2
  94. package/dist/_chunks/{freemium-paywall-DZ2mBS3w.js.map → freemium-paywall-WYlNO7yT.js.map} +1 -1
  95. package/dist/_chunks/{gestational-age-calculator-BleUdhbI.js → gestational-age-calculator-DKzEV5Qi.js} +4 -4
  96. package/dist/_chunks/{gestational-age-calculator-BleUdhbI.js.map → gestational-age-calculator-DKzEV5Qi.js.map} +1 -1
  97. package/dist/_chunks/hash-CysBBS_N.js +17 -0
  98. package/dist/_chunks/hash-CysBBS_N.js.map +1 -0
  99. package/dist/_chunks/{hcg-doubling-CnjDXX6U.js → hcg-doubling-C7bmuaU3.js} +2 -2
  100. package/dist/_chunks/{hcg-doubling-CnjDXX6U.js.map → hcg-doubling-C7bmuaU3.js.map} +1 -1
  101. package/dist/_chunks/iban-input-B0TWzR1R.js +436 -0
  102. package/dist/_chunks/iban-input-B0TWzR1R.js.map +1 -0
  103. package/dist/_chunks/icon-picker-0B7KhrF1.js +272 -0
  104. package/dist/_chunks/icon-picker-0B7KhrF1.js.map +1 -0
  105. package/dist/_chunks/image-cropper-D9jqJy19.js +367 -0
  106. package/dist/_chunks/image-cropper-D9jqJy19.js.map +1 -0
  107. package/dist/_chunks/{actions-cell-renderer-DrcaxB0w.js → link-cell-renderer-De_SLjSq.js} +792 -668
  108. package/dist/_chunks/link-cell-renderer-De_SLjSq.js.map +1 -0
  109. package/dist/_chunks/list-checks-BUs75d_o.js +18 -0
  110. package/dist/_chunks/list-checks-BUs75d_o.js.map +1 -0
  111. package/dist/_chunks/lock-CKOIn0IK.js +15 -0
  112. package/dist/_chunks/lock-CKOIn0IK.js.map +1 -0
  113. package/dist/_chunks/{marketplace-app-shell-6T9W4Knl.js → marketplace-app-shell-BGqkywsi.js} +5 -5
  114. package/dist/_chunks/{marketplace-app-shell-6T9W4Knl.js.map → marketplace-app-shell-BGqkywsi.js.map} +1 -1
  115. package/dist/_chunks/message-card-DsHFFiL1.js +319 -0
  116. package/dist/_chunks/message-card-DsHFFiL1.js.map +1 -0
  117. package/dist/_chunks/{message-tray-DwrBLJlf.js → message-tray-C0a6CL1_.js} +172 -135
  118. package/dist/_chunks/message-tray-C0a6CL1_.js.map +1 -0
  119. package/dist/_chunks/{multi-select-BdHHDrRN.js → multi-select-WE4S9FIF.js} +75 -63
  120. package/dist/_chunks/{multi-select-BdHHDrRN.js.map → multi-select-WE4S9FIF.js.map} +1 -1
  121. package/dist/_chunks/nav-grid-9xphY3FM.js +169 -0
  122. package/dist/_chunks/nav-grid-9xphY3FM.js.map +1 -0
  123. package/dist/_chunks/notes-panel-DXiMfuvp.js +320 -0
  124. package/dist/_chunks/notes-panel-DXiMfuvp.js.map +1 -0
  125. package/dist/_chunks/notification-card-BMqNzCIt.js +290 -0
  126. package/dist/_chunks/notification-card-BMqNzCIt.js.map +1 -0
  127. package/dist/_chunks/{notification-tray-Btb9oQeZ.js → notification-tray-BmUlCx3g.js} +201 -166
  128. package/dist/_chunks/notification-tray-BmUlCx3g.js.map +1 -0
  129. package/dist/_chunks/{operator-hero-CP2Nhupm.js → operator-hero-BO8TqzX2.js} +3 -3
  130. package/dist/_chunks/{operator-hero-CP2Nhupm.js.map → operator-hero-BO8TqzX2.js.map} +1 -1
  131. package/dist/_chunks/panel-header-D313n_9-.js +105 -0
  132. package/dist/_chunks/panel-header-D313n_9-.js.map +1 -0
  133. package/dist/_chunks/patient-details-DgfTJimE.js +759 -0
  134. package/dist/_chunks/patient-details-DgfTJimE.js.map +1 -0
  135. package/dist/_chunks/{patient-search-CBC_ySF6.js → patient-search-CSWQKOSP.js} +3 -3
  136. package/dist/_chunks/{patient-search-CBC_ySF6.js.map → patient-search-CSWQKOSP.js.map} +1 -1
  137. package/dist/_chunks/{patient-shell-DV3XEtIB.js → patient-shell-BMwsIKlW.js} +3 -3
  138. package/dist/_chunks/{patient-shell-DV3XEtIB.js.map → patient-shell-BMwsIKlW.js.map} +1 -1
  139. package/dist/_chunks/patient-summary-card-D4NdgYJB.js +452 -0
  140. package/dist/_chunks/patient-summary-card-D4NdgYJB.js.map +1 -0
  141. package/dist/_chunks/patient-table-CERknpd8.js +1110 -0
  142. package/dist/_chunks/patient-table-CERknpd8.js.map +1 -0
  143. package/dist/_chunks/{payment-form-DvjwYVIT.js → payment-form-CxqIXqw7.js} +2 -2
  144. package/dist/_chunks/{payment-form-DvjwYVIT.js.map → payment-form-CxqIXqw7.js.map} +1 -1
  145. package/dist/_chunks/{payment-request-card-DioWKBUq.js → payment-request-card-Blf-MFNY.js} +125 -136
  146. package/dist/_chunks/payment-request-card-Blf-MFNY.js.map +1 -0
  147. package/dist/_chunks/{pdf-viewer-D6BPfW2D.js → pdf-viewer-QfebdLOd.js} +192 -214
  148. package/dist/_chunks/pdf-viewer-QfebdLOd.js.map +1 -0
  149. package/dist/_chunks/{periodontal-chart-card-BuDEMbHE.js → periodontal-chart-card-hRRJY1NN.js} +2 -2
  150. package/dist/_chunks/{periodontal-chart-card-BuDEMbHE.js.map → periodontal-chart-card-hRRJY1NN.js.map} +1 -1
  151. package/dist/_chunks/permission-matrix-Bw5oexUt.js +174 -0
  152. package/dist/_chunks/permission-matrix-Bw5oexUt.js.map +1 -0
  153. package/dist/_chunks/position-grid-CcvqHaKN.js +169 -0
  154. package/dist/_chunks/position-grid-CcvqHaKN.js.map +1 -0
  155. package/dist/_chunks/postal-code-input-UCOYuRY2.js +192 -0
  156. package/dist/_chunks/postal-code-input-UCOYuRY2.js.map +1 -0
  157. package/dist/_chunks/{practice-results-KrTHqZua.js → practice-results-El5Z-oVp.js} +4 -4
  158. package/dist/_chunks/{practice-results-KrTHqZua.js.map → practice-results-El5Z-oVp.js.map} +1 -1
  159. package/dist/_chunks/{pregnancy-dating-DORUAOHB.js → pregnancy-dating-CunHrOpO.js} +4 -4
  160. package/dist/_chunks/{pregnancy-dating-DORUAOHB.js.map → pregnancy-dating-CunHrOpO.js.map} +1 -1
  161. package/dist/_chunks/{pregnancy-weight-gain-DVz4rr7-.js → pregnancy-weight-gain-BUNpTsH-.js} +2 -2
  162. package/dist/_chunks/{pregnancy-weight-gain-DVz4rr7-.js.map → pregnancy-weight-gain-BUNpTsH-.js.map} +1 -1
  163. package/dist/_chunks/{product-hub-panel-e6pW220e.js → product-hub-panel-DtU7KXxm.js} +257 -217
  164. package/dist/_chunks/product-hub-panel-DtU7KXxm.js.map +1 -0
  165. package/dist/_chunks/province-select-D_TZvix3.js +261 -0
  166. package/dist/_chunks/province-select-D_TZvix3.js.map +1 -0
  167. package/dist/_chunks/{public-header.agent-DqkqA-ca.js → public-header.agent-TxmC_x1I.js} +2 -2
  168. package/dist/_chunks/{public-header.agent-DqkqA-ca.js.map → public-header.agent-TxmC_x1I.js.map} +1 -1
  169. package/dist/_chunks/radiograph-panel.agent-tWjN2nHX.js +553 -0
  170. package/dist/_chunks/radiograph-panel.agent-tWjN2nHX.js.map +1 -0
  171. package/dist/_chunks/reviews-panel-DxkSrgMl.js +559 -0
  172. package/dist/_chunks/reviews-panel-DxkSrgMl.js.map +1 -0
  173. package/dist/_chunks/rich-text-editor-C8tyGjfb.js +2621 -0
  174. package/dist/_chunks/rich-text-editor-C8tyGjfb.js.map +1 -0
  175. package/dist/_chunks/{scroll-area-5wNK0Cyz.js → scroll-area-BZOvUhwQ.js} +2 -2
  176. package/dist/_chunks/scroll-area-BZOvUhwQ.js.map +1 -0
  177. package/dist/_chunks/{select-DMLG44F5.js → select-KsyRr8WH.js} +114 -102
  178. package/dist/_chunks/select-KsyRr8WH.js.map +1 -0
  179. package/dist/_chunks/{sheet-BxsE7eQm.js → sheet-umkfZjF6.js} +53 -42
  180. package/dist/_chunks/sheet-umkfZjF6.js.map +1 -0
  181. package/dist/_chunks/{sidebar-DY9jGjgt.js → sidebar-QCp9wHNP.js} +125 -113
  182. package/dist/_chunks/sidebar-QCp9wHNP.js.map +1 -0
  183. package/dist/_chunks/{sign-document-B4DeRhTe.js → sign-document-By6hMOra.js} +2 -2
  184. package/dist/_chunks/{sign-document-B4DeRhTe.js.map → sign-document-By6hMOra.js.map} +1 -1
  185. package/dist/_chunks/{stepper-accordion-Dki6r9ZE.js → stepper-accordion-DC-H-8v4.js} +38 -48
  186. package/dist/_chunks/stepper-accordion-DC-H-8v4.js.map +1 -0
  187. package/dist/_chunks/tab-bar-Bv9nGNdO.js +262 -0
  188. package/dist/_chunks/tab-bar-Bv9nGNdO.js.map +1 -0
  189. package/dist/_chunks/{tabs-BxcOziCo.js → tabs-CYZVKKDl.js} +2 -2
  190. package/dist/_chunks/{tabs-BxcOziCo.js.map → tabs-CYZVKKDl.js.map} +1 -1
  191. package/dist/_chunks/task-card-DCdsI0ZT.js +189 -0
  192. package/dist/_chunks/task-card-DCdsI0ZT.js.map +1 -0
  193. package/dist/_chunks/{task-tray-qOEQflu4.js → task-tray-DNVejijD.js} +2 -2
  194. package/dist/_chunks/{task-tray-qOEQflu4.js.map → task-tray-DNVejijD.js.map} +1 -1
  195. package/dist/_chunks/tasks-panel-C9odmawT.js +757 -0
  196. package/dist/_chunks/tasks-panel-C9odmawT.js.map +1 -0
  197. package/dist/_chunks/token-insert-menu-CFQqTe_n.js +147 -0
  198. package/dist/_chunks/token-insert-menu-CFQqTe_n.js.map +1 -0
  199. package/dist/_chunks/tool-rail-BZx0-yIr.js +524 -0
  200. package/dist/_chunks/tool-rail-BZx0-yIr.js.map +1 -0
  201. package/dist/_chunks/tooth-scheme-DJZtzfeY.js +2133 -0
  202. package/dist/_chunks/tooth-scheme-DJZtzfeY.js.map +1 -0
  203. package/dist/_chunks/{transaction-chip-DK84XCBU.js → transaction-chip-CscoQbxF.js} +88 -61
  204. package/dist/_chunks/transaction-chip-CscoQbxF.js.map +1 -0
  205. package/dist/_chunks/{transcript-panel-3THQX6nJ.js → transcript-panel-CHGHHHdT.js} +95 -83
  206. package/dist/_chunks/transcript-panel-CHGHHHdT.js.map +1 -0
  207. package/dist/_chunks/{unit-converter-YEpD9evj.js → unit-converter-CwlZbfdn.js} +2 -2
  208. package/dist/_chunks/{unit-converter-YEpD9evj.js.map → unit-converter-CwlZbfdn.js.map} +1 -1
  209. package/dist/_chunks/use-clamp-overflow-DQE2kwZ9.js +20 -0
  210. package/dist/_chunks/use-clamp-overflow-DQE2kwZ9.js.map +1 -0
  211. package/dist/_chunks/use-edge-resize-ZnGG7gyO.js.map +1 -1
  212. package/dist/_chunks/use-overflow-collapse-BIOzKbni.js +32 -0
  213. package/dist/_chunks/use-overflow-collapse-BIOzKbni.js.map +1 -0
  214. package/dist/_chunks/use-persistent-state-nZwZAnE9.js +24 -0
  215. package/dist/_chunks/use-persistent-state-nZwZAnE9.js.map +1 -0
  216. package/dist/_chunks/{warning-stack-BsgaEbL8.js → warning-stack--sTrrBDA.js} +86 -101
  217. package/dist/_chunks/warning-stack--sTrrBDA.js.map +1 -0
  218. package/dist/_chunks/{workflow-map-Bdam9pGp.js → workflow-map-M8MBBHQm.js} +107 -119
  219. package/dist/_chunks/workflow-map-M8MBBHQm.js.map +1 -0
  220. package/dist/_chunks/zoom-out-CgVtf2Wx.js +29 -0
  221. package/dist/_chunks/zoom-out-CgVtf2Wx.js.map +1 -0
  222. package/dist/agent/index.js +5 -4
  223. package/dist/agent/index.js.map +1 -1
  224. package/dist/agent/types.d.ts +19 -2
  225. package/dist/agent/types.d.ts.map +1 -1
  226. package/dist/agent-catalog.json +3325 -322
  227. package/dist/agent-i18n/en.json +314 -14
  228. package/dist/components/_shared/entity-card/entity-card.d.ts +6 -0
  229. package/dist/components/_shared/entity-card/entity-card.d.ts.map +1 -1
  230. package/dist/components/_shared/entity-card/index.d.ts +1 -1
  231. package/dist/components/_shared/entity-card/index.d.ts.map +1 -1
  232. package/dist/components/_shared/field-value.d.ts +21 -0
  233. package/dist/components/_shared/field-value.d.ts.map +1 -0
  234. package/dist/components/_shared/field-visibility-cog.d.ts +20 -0
  235. package/dist/components/_shared/field-visibility-cog.d.ts.map +1 -0
  236. package/dist/components/_shared/field-visibility.d.ts +36 -0
  237. package/dist/components/_shared/field-visibility.d.ts.map +1 -0
  238. package/dist/components/_shared/option.d.ts +2 -0
  239. package/dist/components/_shared/option.d.ts.map +1 -1
  240. package/dist/components/_shared/patient-fields.d.ts +119 -0
  241. package/dist/components/_shared/patient-fields.d.ts.map +1 -0
  242. package/dist/components/address-fields/address-fields.agent.d.ts +9 -0
  243. package/dist/components/address-fields/address-fields.agent.d.ts.map +1 -0
  244. package/dist/components/address-fields/address-fields.d.ts +29 -0
  245. package/dist/components/address-fields/address-fields.d.ts.map +1 -0
  246. package/dist/components/address-fields/index.d.ts +5 -0
  247. package/dist/components/address-fields/index.d.ts.map +1 -0
  248. package/dist/components/address-fields/index.js +6 -0
  249. package/dist/components/agenda-card/index.js +1 -1
  250. package/dist/components/agenda-tray/index.js +1 -1
  251. package/dist/components/ai-consent-banner/index.js +1 -1
  252. package/dist/components/ai-prompt-input/index.js +1 -1
  253. package/dist/components/alert/alert.d.ts +5 -0
  254. package/dist/components/alert/alert.d.ts.map +1 -1
  255. package/dist/components/alert/index.js +1 -1
  256. package/dist/components/anamnesis-card/index.js +1 -1
  257. package/dist/components/anatomy-scheme/anatomy-face-paths.d.ts +15 -0
  258. package/dist/components/anatomy-scheme/anatomy-face-paths.d.ts.map +1 -0
  259. package/dist/components/anatomy-scheme/anatomy-muscle-paths.d.ts +20 -0
  260. package/dist/components/anatomy-scheme/anatomy-muscle-paths.d.ts.map +1 -0
  261. package/dist/components/anatomy-scheme/anatomy-scheme-data.d.ts +121 -0
  262. package/dist/components/anatomy-scheme/anatomy-scheme-data.d.ts.map +1 -0
  263. package/dist/components/anatomy-scheme/anatomy-scheme.agent.d.ts +6 -0
  264. package/dist/components/anatomy-scheme/anatomy-scheme.agent.d.ts.map +1 -0
  265. package/dist/components/anatomy-scheme/anatomy-scheme.d.ts +69 -0
  266. package/dist/components/anatomy-scheme/anatomy-scheme.d.ts.map +1 -0
  267. package/dist/components/anatomy-scheme/index.d.ts +6 -0
  268. package/dist/components/anatomy-scheme/index.d.ts.map +1 -0
  269. package/dist/components/anatomy-scheme/index.js +17 -0
  270. package/dist/components/anatomy-scheme/index.js.map +1 -0
  271. package/dist/components/annotation-marker/annotation-marker.d.ts +33 -0
  272. package/dist/components/annotation-marker/annotation-marker.d.ts.map +1 -0
  273. package/dist/components/annotation-marker/index.d.ts +3 -0
  274. package/dist/components/annotation-marker/index.d.ts.map +1 -0
  275. package/dist/components/annotation-marker/index.js +7 -0
  276. package/dist/components/annotation-marker/index.js.map +1 -0
  277. package/dist/components/app-frame/app-frame.d.ts +2 -2
  278. package/dist/components/app-frame/app-frame.d.ts.map +1 -1
  279. package/dist/components/app-frame/index.js +1 -1
  280. package/dist/components/appointment-card/appointment-card.d.ts +25 -1
  281. package/dist/components/appointment-card/appointment-card.d.ts.map +1 -1
  282. package/dist/components/appointment-card/index.js +6 -5
  283. package/dist/components/appointment-card/index.js.map +1 -1
  284. package/dist/components/appointment-timeline/appointment-timeline.agent.d.ts +4 -0
  285. package/dist/components/appointment-timeline/appointment-timeline.agent.d.ts.map +1 -0
  286. package/dist/components/appointment-timeline/appointment-timeline.d.ts +66 -0
  287. package/dist/components/appointment-timeline/appointment-timeline.d.ts.map +1 -0
  288. package/dist/components/appointment-timeline/index.d.ts +4 -0
  289. package/dist/components/appointment-timeline/index.d.ts.map +1 -0
  290. package/dist/components/appointment-timeline/index.js +6 -0
  291. package/dist/components/appointment-timeline/index.js.map +1 -0
  292. package/dist/components/audio-recorder/index.js +1 -1
  293. package/dist/components/autocomplete/autocomplete.d.ts +10 -0
  294. package/dist/components/autocomplete/autocomplete.d.ts.map +1 -1
  295. package/dist/components/autocomplete/index.js +1 -1
  296. package/dist/components/badge/badge.d.ts +6 -2
  297. package/dist/components/badge/badge.d.ts.map +1 -1
  298. package/dist/components/badge/index.js +1 -1
  299. package/dist/components/bishop-score/index.js +1 -1
  300. package/dist/components/bmi-calculator/index.js +1 -1
  301. package/dist/components/booking/index.js +1 -1
  302. package/dist/components/button-group/button-group.d.ts.map +1 -1
  303. package/dist/components/button-group/index.js +1 -1
  304. package/dist/components/care-plan-card/index.js +1 -1
  305. package/dist/components/care-plan-entry-card/index.js +1 -1
  306. package/dist/components/care-plan-header/care-plan-header.agent.d.ts +4 -0
  307. package/dist/components/care-plan-header/care-plan-header.agent.d.ts.map +1 -0
  308. package/dist/components/care-plan-header/care-plan-header.d.ts +111 -0
  309. package/dist/components/care-plan-header/care-plan-header.d.ts.map +1 -0
  310. package/dist/components/care-plan-header/index.d.ts +4 -0
  311. package/dist/components/care-plan-header/index.d.ts.map +1 -0
  312. package/dist/components/care-plan-header/index.js +6 -0
  313. package/dist/components/care-plan-header/index.js.map +1 -0
  314. package/dist/components/chat-message/chat-message.d.ts.map +1 -1
  315. package/dist/components/chat-message/index.js +1 -1
  316. package/dist/components/city-input/city-input.agent.d.ts +8 -0
  317. package/dist/components/city-input/city-input.agent.d.ts.map +1 -0
  318. package/dist/components/city-input/city-input.d.ts +57 -0
  319. package/dist/components/city-input/city-input.d.ts.map +1 -0
  320. package/dist/components/city-input/index.d.ts +5 -0
  321. package/dist/components/city-input/index.d.ts.map +1 -0
  322. package/dist/components/city-input/index.js +6 -0
  323. package/dist/components/city-input/index.js.map +1 -0
  324. package/dist/components/clinical-note-card/clinical-note-card.d.ts +21 -1
  325. package/dist/components/clinical-note-card/clinical-note-card.d.ts.map +1 -1
  326. package/dist/components/clinical-note-card/index.js +1 -1
  327. package/dist/components/combobox/combobox.d.ts +17 -0
  328. package/dist/components/combobox/combobox.d.ts.map +1 -1
  329. package/dist/components/combobox/index.js +1 -1
  330. package/dist/components/connection-status/connection-status.agent.d.ts +4 -0
  331. package/dist/components/connection-status/connection-status.agent.d.ts.map +1 -0
  332. package/dist/components/connection-status/connection-status.d.ts +36 -0
  333. package/dist/components/connection-status/connection-status.d.ts.map +1 -0
  334. package/dist/components/connection-status/index.d.ts +4 -0
  335. package/dist/components/connection-status/index.d.ts.map +1 -0
  336. package/dist/components/connection-status/index.js +6 -0
  337. package/dist/components/connection-status/index.js.map +1 -0
  338. package/dist/components/contact-profile-card/index.js +1 -1
  339. package/dist/components/control-room-rail/control-room-context.d.ts +53 -0
  340. package/dist/components/control-room-rail/control-room-context.d.ts.map +1 -0
  341. package/dist/components/control-room-rail/control-room-rail.agent.d.ts +4 -0
  342. package/dist/components/control-room-rail/control-room-rail.agent.d.ts.map +1 -0
  343. package/dist/components/control-room-rail/control-room-rail.d.ts +35 -0
  344. package/dist/components/control-room-rail/control-room-rail.d.ts.map +1 -0
  345. package/dist/components/control-room-rail/index.d.ts +6 -0
  346. package/dist/components/control-room-rail/index.d.ts.map +1 -0
  347. package/dist/components/control-room-rail/index.js +10 -0
  348. package/dist/components/control-room-rail/index.js.map +1 -0
  349. package/dist/components/counter/counter.d.ts +1 -1
  350. package/dist/components/country-select/country-select.agent.d.ts +8 -0
  351. package/dist/components/country-select/country-select.agent.d.ts.map +1 -0
  352. package/dist/components/country-select/country-select.d.ts +51 -0
  353. package/dist/components/country-select/country-select.d.ts.map +1 -0
  354. package/dist/components/country-select/index.d.ts +6 -0
  355. package/dist/components/country-select/index.d.ts.map +1 -0
  356. package/dist/components/country-select/index.js +9 -0
  357. package/dist/components/country-select/index.js.map +1 -0
  358. package/dist/components/country-select/iso-3166.d.ts +15 -0
  359. package/dist/components/country-select/iso-3166.d.ts.map +1 -0
  360. package/dist/components/cycle-calculator/index.js +1 -1
  361. package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts +18 -0
  362. package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts.map +1 -1
  363. package/dist/components/data-table/cell-renderers/reorder-cell-renderer.d.ts +34 -0
  364. package/dist/components/data-table/cell-renderers/reorder-cell-renderer.d.ts.map +1 -0
  365. package/dist/components/data-table/filters/select-filter.d.ts.map +1 -1
  366. package/dist/components/data-table/index.d.ts +3 -1
  367. package/dist/components/data-table/index.d.ts.map +1 -1
  368. package/dist/components/data-table/index.js +35 -32
  369. package/dist/components/dependent-selector/index.js +1 -1
  370. package/dist/components/document-scanner/index.js +1 -1
  371. package/dist/components/due-date-calculator/index.js +2 -2
  372. package/dist/components/email-input/email-input.d.ts.map +1 -1
  373. package/dist/components/email-input/index.js +1 -1
  374. package/dist/components/entity-summary/entity-summary.agent.d.ts +4 -0
  375. package/dist/components/entity-summary/entity-summary.agent.d.ts.map +1 -0
  376. package/dist/components/entity-summary/entity-summary.d.ts +92 -0
  377. package/dist/components/entity-summary/entity-summary.d.ts.map +1 -0
  378. package/dist/components/entity-summary/index.d.ts +3 -0
  379. package/dist/components/entity-summary/index.d.ts.map +1 -0
  380. package/dist/components/entity-summary/index.js +5 -0
  381. package/dist/components/entity-summary/index.js.map +1 -0
  382. package/dist/components/fetal-weight/index.js +1 -1
  383. package/dist/components/field-array/field-array.agent.d.ts +4 -0
  384. package/dist/components/field-array/field-array.agent.d.ts.map +1 -0
  385. package/dist/components/field-array/field-array.d.ts +45 -0
  386. package/dist/components/field-array/field-array.d.ts.map +1 -0
  387. package/dist/components/field-array/index.d.ts +4 -0
  388. package/dist/components/field-array/index.d.ts.map +1 -0
  389. package/dist/components/field-array/index.js +6 -0
  390. package/dist/components/field-array/index.js.map +1 -0
  391. package/dist/components/file-upload/index.js +1 -1
  392. package/dist/components/freemium-paywall/freemium-paywall.d.ts +1 -1
  393. package/dist/components/freemium-paywall/index.js +1 -1
  394. package/dist/components/gestational-age-calculator/index.js +1 -1
  395. package/dist/components/hcg-doubling/index.js +1 -1
  396. package/dist/components/iban-input/iban-input.agent.d.ts +4 -0
  397. package/dist/components/iban-input/iban-input.agent.d.ts.map +1 -0
  398. package/dist/components/iban-input/iban-input.d.ts +51 -0
  399. package/dist/components/iban-input/iban-input.d.ts.map +1 -0
  400. package/dist/components/iban-input/index.d.ts +5 -0
  401. package/dist/components/iban-input/index.d.ts.map +1 -0
  402. package/dist/components/iban-input/index.js +13 -0
  403. package/dist/components/iban-input/index.js.map +1 -0
  404. package/dist/components/iban-input/is-valid-iban.d.ts +31 -0
  405. package/dist/components/iban-input/is-valid-iban.d.ts.map +1 -0
  406. package/dist/components/icon-picker/icon-picker.agent.d.ts +4 -0
  407. package/dist/components/icon-picker/icon-picker.agent.d.ts.map +1 -0
  408. package/dist/components/icon-picker/icon-picker.d.ts +41 -0
  409. package/dist/components/icon-picker/icon-picker.d.ts.map +1 -0
  410. package/dist/components/icon-picker/index.d.ts +4 -0
  411. package/dist/components/icon-picker/index.d.ts.map +1 -0
  412. package/dist/components/icon-picker/index.js +6 -0
  413. package/dist/components/icon-picker/index.js.map +1 -0
  414. package/dist/components/image-cropper/crop-geometry.d.ts +30 -0
  415. package/dist/components/image-cropper/crop-geometry.d.ts.map +1 -0
  416. package/dist/components/image-cropper/image-cropper.agent.d.ts +4 -0
  417. package/dist/components/image-cropper/image-cropper.agent.d.ts.map +1 -0
  418. package/dist/components/image-cropper/image-cropper.d.ts +32 -0
  419. package/dist/components/image-cropper/image-cropper.d.ts.map +1 -0
  420. package/dist/components/image-cropper/index.d.ts +5 -0
  421. package/dist/components/image-cropper/index.d.ts.map +1 -0
  422. package/dist/components/image-cropper/index.js +11 -0
  423. package/dist/components/image-cropper/index.js.map +1 -0
  424. package/dist/components/index.d.ts +25 -1
  425. package/dist/components/index.d.ts.map +1 -1
  426. package/dist/components/message-card/index.js +1 -1
  427. package/dist/components/message-card/message-card.d.ts +14 -0
  428. package/dist/components/message-card/message-card.d.ts.map +1 -1
  429. package/dist/components/message-tray/index.js +1 -1
  430. package/dist/components/message-tray/message-tray.agent.d.ts.map +1 -1
  431. package/dist/components/message-tray/message-tray.d.ts +4 -0
  432. package/dist/components/message-tray/message-tray.d.ts.map +1 -1
  433. package/dist/components/multi-select/index.js +1 -1
  434. package/dist/components/multi-select/multi-select.d.ts.map +1 -1
  435. package/dist/components/nav-grid/index.d.ts +4 -0
  436. package/dist/components/nav-grid/index.d.ts.map +1 -0
  437. package/dist/components/nav-grid/index.js +7 -0
  438. package/dist/components/nav-grid/index.js.map +1 -0
  439. package/dist/components/nav-grid/nav-grid.agent.d.ts +4 -0
  440. package/dist/components/nav-grid/nav-grid.agent.d.ts.map +1 -0
  441. package/dist/components/nav-grid/nav-grid.d.ts +41 -0
  442. package/dist/components/nav-grid/nav-grid.d.ts.map +1 -0
  443. package/dist/components/notes-panel/index.d.ts +3 -0
  444. package/dist/components/notes-panel/index.d.ts.map +1 -0
  445. package/dist/components/notes-panel/index.js +5 -0
  446. package/dist/components/notes-panel/index.js.map +1 -0
  447. package/dist/components/notes-panel/notes-panel.agent.d.ts +4 -0
  448. package/dist/components/notes-panel/notes-panel.agent.d.ts.map +1 -0
  449. package/dist/components/notes-panel/notes-panel.d.ts +94 -0
  450. package/dist/components/notes-panel/notes-panel.d.ts.map +1 -0
  451. package/dist/components/notification-card/index.js +1 -1
  452. package/dist/components/notification-card/notification-card.d.ts +15 -0
  453. package/dist/components/notification-card/notification-card.d.ts.map +1 -1
  454. package/dist/components/notification-tray/index.js +1 -1
  455. package/dist/components/notification-tray/notification-tray.agent.d.ts.map +1 -1
  456. package/dist/components/notification-tray/notification-tray.d.ts +4 -0
  457. package/dist/components/notification-tray/notification-tray.d.ts.map +1 -1
  458. package/dist/components/operator-hero/index.js +1 -1
  459. package/dist/components/panel-header/index.d.ts +3 -0
  460. package/dist/components/panel-header/index.d.ts.map +1 -0
  461. package/dist/components/panel-header/index.js +7 -0
  462. package/dist/components/panel-header/index.js.map +1 -0
  463. package/dist/components/panel-header/panel-header.d.ts +41 -0
  464. package/dist/components/panel-header/panel-header.d.ts.map +1 -0
  465. package/dist/components/patient-details/index.d.ts +5 -0
  466. package/dist/components/patient-details/index.d.ts.map +1 -0
  467. package/dist/components/patient-details/index.js +6 -0
  468. package/dist/components/patient-details/index.js.map +1 -0
  469. package/dist/components/patient-details/patient-details.agent.d.ts +4 -0
  470. package/dist/components/patient-details/patient-details.agent.d.ts.map +1 -0
  471. package/dist/components/patient-details/patient-details.d.ts +96 -0
  472. package/dist/components/patient-details/patient-details.d.ts.map +1 -0
  473. package/dist/components/patient-search/index.js +1 -1
  474. package/dist/components/patient-summary-card/index.js +1 -1
  475. package/dist/components/patient-summary-card/patient-summary-card.agent.d.ts.map +1 -1
  476. package/dist/components/patient-summary-card/patient-summary-card.d.ts +40 -1
  477. package/dist/components/patient-summary-card/patient-summary-card.d.ts.map +1 -1
  478. package/dist/components/patient-table/columns.d.ts +69 -40
  479. package/dist/components/patient-table/columns.d.ts.map +1 -1
  480. package/dist/components/patient-table/index.d.ts +2 -6
  481. package/dist/components/patient-table/index.d.ts.map +1 -1
  482. package/dist/components/patient-table/index.js +8 -9
  483. package/dist/components/patient-table/patient-table.d.ts +38 -4
  484. package/dist/components/patient-table/patient-table.d.ts.map +1 -1
  485. package/dist/components/patient-table/types.d.ts +52 -2
  486. package/dist/components/patient-table/types.d.ts.map +1 -1
  487. package/dist/components/patient-table/use-responsive-columns.d.ts +8 -6
  488. package/dist/components/patient-table/use-responsive-columns.d.ts.map +1 -1
  489. package/dist/components/payment-card/index.js +1 -1
  490. package/dist/components/payment-form/index.js +1 -1
  491. package/dist/components/pdf-viewer/index.js +1 -1
  492. package/dist/components/periodontal-chart-card/index.js +1 -1
  493. package/dist/components/permission-matrix/index.d.ts +4 -0
  494. package/dist/components/permission-matrix/index.d.ts.map +1 -0
  495. package/dist/components/permission-matrix/index.js +7 -0
  496. package/dist/components/permission-matrix/index.js.map +1 -0
  497. package/dist/components/permission-matrix/permission-matrix.agent.d.ts +4 -0
  498. package/dist/components/permission-matrix/permission-matrix.agent.d.ts.map +1 -0
  499. package/dist/components/permission-matrix/permission-matrix.d.ts +47 -0
  500. package/dist/components/permission-matrix/permission-matrix.d.ts.map +1 -0
  501. package/dist/components/position-grid/index.d.ts +4 -0
  502. package/dist/components/position-grid/index.d.ts.map +1 -0
  503. package/dist/components/position-grid/index.js +7 -0
  504. package/dist/components/position-grid/index.js.map +1 -0
  505. package/dist/components/position-grid/position-grid.agent.d.ts +4 -0
  506. package/dist/components/position-grid/position-grid.agent.d.ts.map +1 -0
  507. package/dist/components/position-grid/position-grid.d.ts +39 -0
  508. package/dist/components/position-grid/position-grid.d.ts.map +1 -0
  509. package/dist/components/postal-code-input/index.d.ts +5 -0
  510. package/dist/components/postal-code-input/index.d.ts.map +1 -0
  511. package/dist/components/postal-code-input/index.js +6 -0
  512. package/dist/components/postal-code-input/index.js.map +1 -0
  513. package/dist/components/postal-code-input/postal-code-input.agent.d.ts +8 -0
  514. package/dist/components/postal-code-input/postal-code-input.agent.d.ts.map +1 -0
  515. package/dist/components/postal-code-input/postal-code-input.d.ts +27 -0
  516. package/dist/components/postal-code-input/postal-code-input.d.ts.map +1 -0
  517. package/dist/components/practice-results/index.js +1 -1
  518. package/dist/components/pregnancy-dating/index.js +1 -1
  519. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  520. package/dist/components/product-hub-tray/index.js +1 -1
  521. package/dist/components/product-hub-tray/product-hub-tray.d.ts +13 -1
  522. package/dist/components/product-hub-tray/product-hub-tray.d.ts.map +1 -1
  523. package/dist/components/province-select/index.d.ts +6 -0
  524. package/dist/components/province-select/index.d.ts.map +1 -0
  525. package/dist/components/province-select/index.js +7 -0
  526. package/dist/components/province-select/index.js.map +1 -0
  527. package/dist/components/province-select/it-provinces.d.ts +8 -0
  528. package/dist/components/province-select/it-provinces.d.ts.map +1 -0
  529. package/dist/components/province-select/province-select.agent.d.ts +8 -0
  530. package/dist/components/province-select/province-select.agent.d.ts.map +1 -0
  531. package/dist/components/province-select/province-select.d.ts +38 -0
  532. package/dist/components/province-select/province-select.d.ts.map +1 -0
  533. package/dist/components/public-footer/public-footer.d.ts +1 -1
  534. package/dist/components/public-header/index.js +1 -1
  535. package/dist/components/radiograph-panel/index.d.ts +4 -0
  536. package/dist/components/radiograph-panel/index.d.ts.map +1 -0
  537. package/dist/components/radiograph-panel/index.js +7 -0
  538. package/dist/components/radiograph-panel/index.js.map +1 -0
  539. package/dist/components/radiograph-panel/radiograph-panel.agent.d.ts +13 -0
  540. package/dist/components/radiograph-panel/radiograph-panel.agent.d.ts.map +1 -0
  541. package/dist/components/radiograph-panel/radiograph-panel.d.ts +36 -0
  542. package/dist/components/radiograph-panel/radiograph-panel.d.ts.map +1 -0
  543. package/dist/components/reviews-panel/index.js +1 -1
  544. package/dist/components/reviews-panel/reviews-panel.d.ts.map +1 -1
  545. package/dist/components/rich-text-editor/editor-toolbar.d.ts +17 -0
  546. package/dist/components/rich-text-editor/editor-toolbar.d.ts.map +1 -1
  547. package/dist/components/rich-text-editor/index.js +1 -1
  548. package/dist/components/rich-text-editor/rich-text-editor.agent.d.ts.map +1 -1
  549. package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +1 -1
  550. package/dist/components/scroll-area/index.js +1 -1
  551. package/dist/components/select/index.js +1 -1
  552. package/dist/components/select/select.d.ts +8 -2
  553. package/dist/components/select/select.d.ts.map +1 -1
  554. package/dist/components/sheet/index.js +1 -1
  555. package/dist/components/sheet/sheet.d.ts.map +1 -1
  556. package/dist/components/sidebar/index.js +2 -2
  557. package/dist/components/sidebar/sidebar.d.ts.map +1 -1
  558. package/dist/components/sign-document/index.js +1 -1
  559. package/dist/components/skeleton/skeleton.d.ts +1 -1
  560. package/dist/components/stepper-accordion/index.js +1 -1
  561. package/dist/components/tab-bar/index.js +1 -1
  562. package/dist/components/tab-bar/tab-bar.d.ts +18 -1
  563. package/dist/components/tab-bar/tab-bar.d.ts.map +1 -1
  564. package/dist/components/tabs/index.js +1 -1
  565. package/dist/components/task-card/index.js +1 -1
  566. package/dist/components/task-card/task-card.d.ts +14 -6
  567. package/dist/components/task-card/task-card.d.ts.map +1 -1
  568. package/dist/components/task-tray/index.js +1 -1
  569. package/dist/components/tasks-panel/index.d.ts +4 -0
  570. package/dist/components/tasks-panel/index.d.ts.map +1 -0
  571. package/dist/components/tasks-panel/index.js +6 -0
  572. package/dist/components/tasks-panel/index.js.map +1 -0
  573. package/dist/components/tasks-panel/tasks-panel.agent.d.ts +4 -0
  574. package/dist/components/tasks-panel/tasks-panel.agent.d.ts.map +1 -0
  575. package/dist/components/tasks-panel/tasks-panel.d.ts +152 -0
  576. package/dist/components/tasks-panel/tasks-panel.d.ts.map +1 -0
  577. package/dist/components/token-insert-menu/index.d.ts +4 -0
  578. package/dist/components/token-insert-menu/index.d.ts.map +1 -0
  579. package/dist/components/token-insert-menu/index.js +6 -0
  580. package/dist/components/token-insert-menu/index.js.map +1 -0
  581. package/dist/components/token-insert-menu/token-insert-menu.agent.d.ts +4 -0
  582. package/dist/components/token-insert-menu/token-insert-menu.agent.d.ts.map +1 -0
  583. package/dist/components/token-insert-menu/token-insert-menu.d.ts +33 -0
  584. package/dist/components/token-insert-menu/token-insert-menu.d.ts.map +1 -0
  585. package/dist/components/tool-rail/index.d.ts +4 -0
  586. package/dist/components/tool-rail/index.d.ts.map +1 -0
  587. package/dist/components/tool-rail/index.js +6 -0
  588. package/dist/components/tool-rail/index.js.map +1 -0
  589. package/dist/components/tool-rail/tool-rail.agent.d.ts +4 -0
  590. package/dist/components/tool-rail/tool-rail.agent.d.ts.map +1 -0
  591. package/dist/components/tool-rail/tool-rail.d.ts +160 -0
  592. package/dist/components/tool-rail/tool-rail.d.ts.map +1 -0
  593. package/dist/components/tooth-scheme/index.d.ts +2 -2
  594. package/dist/components/tooth-scheme/index.d.ts.map +1 -1
  595. package/dist/components/tooth-scheme/index.js +30 -23
  596. package/dist/components/tooth-scheme/tooth-data.d.ts +112 -1
  597. package/dist/components/tooth-scheme/tooth-data.d.ts.map +1 -1
  598. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts +2 -2
  599. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts.map +1 -1
  600. package/dist/components/tooth-scheme/tooth-scheme.d.ts +84 -11
  601. package/dist/components/tooth-scheme/tooth-scheme.d.ts.map +1 -1
  602. package/dist/components/transaction-chip/index.js +1 -1
  603. package/dist/components/transaction-chip/transaction-chip.d.ts +2 -2
  604. package/dist/components/transaction-chip/transaction-chip.d.ts.map +1 -1
  605. package/dist/components/transcript-panel/index.js +1 -1
  606. package/dist/components/transcript-panel/transcript-panel.d.ts +2 -2
  607. package/dist/components/transcript-panel/transcript-panel.d.ts.map +1 -1
  608. package/dist/components/unit-converter/index.js +1 -1
  609. package/dist/components/warning-stack/index.js +1 -1
  610. package/dist/components/warning-stack/warning-stack.d.ts +10 -7
  611. package/dist/components/warning-stack/warning-stack.d.ts.map +1 -1
  612. package/dist/components/workflow/index.js +1 -1
  613. package/dist/hooks/index.d.ts +1 -0
  614. package/dist/hooks/index.d.ts.map +1 -1
  615. package/dist/hooks/index.js +24 -22
  616. package/dist/hooks/index.js.map +1 -1
  617. package/dist/hooks/use-clamp-overflow.d.ts +19 -0
  618. package/dist/hooks/use-clamp-overflow.d.ts.map +1 -0
  619. package/dist/hooks/use-edge-resize.d.ts +2 -2
  620. package/dist/hooks/use-overflow-collapse.d.ts +46 -0
  621. package/dist/hooks/use-overflow-collapse.d.ts.map +1 -0
  622. package/dist/hooks/use-persistent-state.d.ts +7 -1
  623. package/dist/hooks/use-persistent-state.d.ts.map +1 -1
  624. package/dist/hooks/use-scroll-overflow.d.ts +36 -0
  625. package/dist/hooks/use-scroll-overflow.d.ts.map +1 -0
  626. package/dist/i18n/locales/ar.d.ts +475 -26
  627. package/dist/i18n/locales/ar.d.ts.map +1 -1
  628. package/dist/i18n/locales/ar.js +478 -31
  629. package/dist/i18n/locales/ar.js.map +1 -1
  630. package/dist/i18n/locales/de.d.ts +475 -26
  631. package/dist/i18n/locales/de.d.ts.map +1 -1
  632. package/dist/i18n/locales/de.js +480 -31
  633. package/dist/i18n/locales/de.js.map +1 -1
  634. package/dist/i18n/locales/el.d.ts +475 -26
  635. package/dist/i18n/locales/el.d.ts.map +1 -1
  636. package/dist/i18n/locales/el.js +485 -31
  637. package/dist/i18n/locales/el.js.map +1 -1
  638. package/dist/i18n/locales/en.d.ts +476 -34
  639. package/dist/i18n/locales/en.d.ts.map +1 -1
  640. package/dist/i18n/locales/en.js +492 -39
  641. package/dist/i18n/locales/en.js.map +1 -1
  642. package/dist/i18n/locales/es.d.ts +475 -26
  643. package/dist/i18n/locales/es.d.ts.map +1 -1
  644. package/dist/i18n/locales/es.js +477 -31
  645. package/dist/i18n/locales/es.js.map +1 -1
  646. package/dist/i18n/locales/fr.d.ts +475 -26
  647. package/dist/i18n/locales/fr.d.ts.map +1 -1
  648. package/dist/i18n/locales/fr.js +480 -31
  649. package/dist/i18n/locales/fr.js.map +1 -1
  650. package/dist/i18n/locales/hi.d.ts +475 -26
  651. package/dist/i18n/locales/hi.d.ts.map +1 -1
  652. package/dist/i18n/locales/hi.js +476 -31
  653. package/dist/i18n/locales/hi.js.map +1 -1
  654. package/dist/i18n/locales/it.d.ts +475 -26
  655. package/dist/i18n/locales/it.d.ts.map +1 -1
  656. package/dist/i18n/locales/it.js +480 -31
  657. package/dist/i18n/locales/it.js.map +1 -1
  658. package/dist/i18n/locales/ja.d.ts +475 -26
  659. package/dist/i18n/locales/ja.d.ts.map +1 -1
  660. package/dist/i18n/locales/ja.js +481 -31
  661. package/dist/i18n/locales/ja.js.map +1 -1
  662. package/dist/i18n/locales/nl.d.ts +475 -26
  663. package/dist/i18n/locales/nl.d.ts.map +1 -1
  664. package/dist/i18n/locales/nl.js +473 -31
  665. package/dist/i18n/locales/nl.js.map +1 -1
  666. package/dist/i18n/locales/pl.d.ts +475 -26
  667. package/dist/i18n/locales/pl.d.ts.map +1 -1
  668. package/dist/i18n/locales/pl.js +481 -31
  669. package/dist/i18n/locales/pl.js.map +1 -1
  670. package/dist/i18n/locales/pt.d.ts +475 -26
  671. package/dist/i18n/locales/pt.d.ts.map +1 -1
  672. package/dist/i18n/locales/pt.js +485 -31
  673. package/dist/i18n/locales/pt.js.map +1 -1
  674. package/dist/i18n/locales/ro.d.ts +475 -26
  675. package/dist/i18n/locales/ro.d.ts.map +1 -1
  676. package/dist/i18n/locales/ro.js +485 -31
  677. package/dist/i18n/locales/ro.js.map +1 -1
  678. package/dist/i18n/locales/ru.d.ts +475 -26
  679. package/dist/i18n/locales/ru.d.ts.map +1 -1
  680. package/dist/i18n/locales/ru.js +478 -31
  681. package/dist/i18n/locales/ru.js.map +1 -1
  682. package/dist/i18n/locales/sq.d.ts +475 -26
  683. package/dist/i18n/locales/sq.d.ts.map +1 -1
  684. package/dist/i18n/locales/sq.js +482 -31
  685. package/dist/i18n/locales/sq.js.map +1 -1
  686. package/dist/i18n/locales/sv.d.ts +475 -26
  687. package/dist/i18n/locales/sv.d.ts.map +1 -1
  688. package/dist/i18n/locales/sv.js +480 -31
  689. package/dist/i18n/locales/sv.js.map +1 -1
  690. package/dist/i18n/locales/tr.d.ts +475 -26
  691. package/dist/i18n/locales/tr.d.ts.map +1 -1
  692. package/dist/i18n/locales/tr.js +478 -31
  693. package/dist/i18n/locales/tr.js.map +1 -1
  694. package/dist/i18n/locales/zh.d.ts +475 -26
  695. package/dist/i18n/locales/zh.d.ts.map +1 -1
  696. package/dist/i18n/locales/zh.js +473 -31
  697. package/dist/i18n/locales/zh.js.map +1 -1
  698. package/dist/index.js +826 -709
  699. package/dist/index.js.map +1 -1
  700. package/dist/locales/ar.json +480 -31
  701. package/dist/locales/de.json +480 -31
  702. package/dist/locales/el.json +480 -31
  703. package/dist/locales/en.json +480 -31
  704. package/dist/locales/es.json +480 -31
  705. package/dist/locales/fr.json +480 -31
  706. package/dist/locales/hi.json +480 -31
  707. package/dist/locales/it.json +480 -31
  708. package/dist/locales/ja.json +480 -31
  709. package/dist/locales/nl.json +480 -31
  710. package/dist/locales/pl.json +480 -31
  711. package/dist/locales/pt.json +480 -31
  712. package/dist/locales/ro.json +480 -31
  713. package/dist/locales/ru.json +480 -31
  714. package/dist/locales/sq.json +480 -31
  715. package/dist/locales/sv.json +480 -31
  716. package/dist/locales/tr.json +480 -31
  717. package/dist/locales/zh.json +480 -31
  718. package/dist/patterns/alia-assistant/alia-chat-surface.d.ts.map +1 -1
  719. package/dist/patterns/alia-assistant/alia-types.d.ts +9 -0
  720. package/dist/patterns/alia-assistant/alia-types.d.ts.map +1 -1
  721. package/dist/patterns/alia-assistant/index.js +1 -1
  722. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  723. package/dist/patterns/patient-shell/index.js +1 -1
  724. package/dist/tokens.css +9 -1
  725. package/package.json +101 -5
  726. package/dist/_chunks/actions-cell-renderer-DrcaxB0w.js.map +0 -1
  727. package/dist/_chunks/ai-tools-rail-BA_sqy1A.js +0 -373
  728. package/dist/_chunks/ai-tools-rail-BA_sqy1A.js.map +0 -1
  729. package/dist/_chunks/alert-_mUKLmwA.js.map +0 -1
  730. package/dist/_chunks/alia-sidebar-B47qRQb5.js.map +0 -1
  731. package/dist/_chunks/app-frame-BYx1gcV7.js.map +0 -1
  732. package/dist/_chunks/appointment-tray-CZtvtaH-.js +0 -431
  733. package/dist/_chunks/appointment-tray-CZtvtaH-.js.map +0 -1
  734. package/dist/_chunks/autocomplete-DOeGouCL.js.map +0 -1
  735. package/dist/_chunks/badge-CqGsX32l.js.map +0 -1
  736. package/dist/_chunks/chat-message-3V54YipB.js.map +0 -1
  737. package/dist/_chunks/clinical-note-card-DqQYf_D4.js +0 -333
  738. package/dist/_chunks/clinical-note-card-DqQYf_D4.js.map +0 -1
  739. package/dist/_chunks/combobox-Clum7gJ1.js.map +0 -1
  740. package/dist/_chunks/editable-currency-cell-renderer-kgqp_mIw.js +0 -448
  741. package/dist/_chunks/editable-currency-cell-renderer-kgqp_mIw.js.map +0 -1
  742. package/dist/_chunks/email-input-B_Y55f5G.js +0 -396
  743. package/dist/_chunks/message-card-Bx4GmLvf.js +0 -277
  744. package/dist/_chunks/message-card-Bx4GmLvf.js.map +0 -1
  745. package/dist/_chunks/message-tray-DwrBLJlf.js.map +0 -1
  746. package/dist/_chunks/notification-card-BiESdm8q.js +0 -255
  747. package/dist/_chunks/notification-card-BiESdm8q.js.map +0 -1
  748. package/dist/_chunks/notification-tray-Btb9oQeZ.js.map +0 -1
  749. package/dist/_chunks/patient-summary-card-B836_fDB.js +0 -435
  750. package/dist/_chunks/patient-summary-card-B836_fDB.js.map +0 -1
  751. package/dist/_chunks/patient-table-CDuosVru.js +0 -889
  752. package/dist/_chunks/patient-table-CDuosVru.js.map +0 -1
  753. package/dist/_chunks/payment-request-card-DioWKBUq.js.map +0 -1
  754. package/dist/_chunks/pdf-viewer-D6BPfW2D.js.map +0 -1
  755. package/dist/_chunks/product-hub-panel-e6pW220e.js.map +0 -1
  756. package/dist/_chunks/reviews-panel-Dq7LMDcH.js +0 -555
  757. package/dist/_chunks/reviews-panel-Dq7LMDcH.js.map +0 -1
  758. package/dist/_chunks/rich-text-editor-BsV7zUdg.js +0 -2142
  759. package/dist/_chunks/rich-text-editor-BsV7zUdg.js.map +0 -1
  760. package/dist/_chunks/scroll-area-5wNK0Cyz.js.map +0 -1
  761. package/dist/_chunks/select-DMLG44F5.js.map +0 -1
  762. package/dist/_chunks/sheet-BxsE7eQm.js.map +0 -1
  763. package/dist/_chunks/sidebar-DY9jGjgt.js.map +0 -1
  764. package/dist/_chunks/stepper-accordion-Dki6r9ZE.js.map +0 -1
  765. package/dist/_chunks/tab-bar-B1ovILzh.js +0 -105
  766. package/dist/_chunks/tab-bar-B1ovILzh.js.map +0 -1
  767. package/dist/_chunks/task-card-BwY9jaV1.js +0 -124
  768. package/dist/_chunks/task-card-BwY9jaV1.js.map +0 -1
  769. package/dist/_chunks/tooth-scheme-yBr53cvv.js +0 -1330
  770. package/dist/_chunks/tooth-scheme-yBr53cvv.js.map +0 -1
  771. package/dist/_chunks/transaction-chip-DK84XCBU.js.map +0 -1
  772. package/dist/_chunks/transcript-panel-3THQX6nJ.js.map +0 -1
  773. package/dist/_chunks/use-persistent-state-i23OWy6G.js +0 -24
  774. package/dist/_chunks/use-persistent-state-i23OWy6G.js.map +0 -1
  775. package/dist/_chunks/warning-stack-BsgaEbL8.js.map +0 -1
  776. package/dist/_chunks/workflow-map-Bdam9pGp.js.map +0 -1
  777. package/dist/components/ai-tools-rail/ai-tools-rail.agent.d.ts +0 -4
  778. package/dist/components/ai-tools-rail/ai-tools-rail.agent.d.ts.map +0 -1
  779. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts +0 -68
  780. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts.map +0 -1
  781. package/dist/components/ai-tools-rail/index.d.ts +0 -4
  782. package/dist/components/ai-tools-rail/index.d.ts.map +0 -1
  783. package/dist/components/ai-tools-rail/index.js +0 -6
  784. package/dist/components/patient-table/cell-renderers/contact-cell.d.ts +0 -45
  785. package/dist/components/patient-table/cell-renderers/contact-cell.d.ts.map +0 -1
  786. package/dist/components/patient-table/cell-renderers/patient-identity-cell.d.ts +0 -26
  787. package/dist/components/patient-table/cell-renderers/patient-identity-cell.d.ts.map +0 -1
  788. /package/dist/components/{ai-tools-rail → address-fields}/index.js.map +0 -0
@@ -0,0 +1,174 @@
1
+ import { jsx as a, jsxs as K } from "react/jsx-runtime";
2
+ import { forwardRef as U, useMemo as h, useRef as d } from "react";
3
+ import { c as V } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as A } from "react-i18next";
5
+ import { C as H } from "./checkbox-group-PqNmQ-cE.js";
6
+ import { C as T } from "./checkbox-BuZ1u__2.js";
7
+ import { u as _ } from "./registry-DvAUVLHh.js";
8
+ import { L as q } from "./lock-CKOIn0IK.js";
9
+ const z = {
10
+ id: "permission-matrix",
11
+ capabilities: ["select_multiple"],
12
+ state: {
13
+ selection: {
14
+ type: "string[]",
15
+ descriptionKey: "ui.agent.permissionMatrix.state.selection",
16
+ description: "Ids of currently-granted editable permissions. Locked owner permissions are excluded.",
17
+ read: (r) => r.getSelection()
18
+ }
19
+ },
20
+ actions: {
21
+ set_selection: {
22
+ safety: "write",
23
+ argsType: "{ values: string[] }",
24
+ argsSchema: {
25
+ type: "object",
26
+ properties: { values: { type: "array", items: { type: "string" } } },
27
+ required: ["values"]
28
+ },
29
+ idempotent: !0,
30
+ descriptionKey: "ui.agent.permissionMatrix.actions.setSelection",
31
+ description: "Replace the granted permissions with the given ids. Locked and unknown ids are ignored.",
32
+ examples: [
33
+ {
34
+ args: { values: ["patients.view", "billing.view"] },
35
+ note: "Grant exactly the view permissions for patients and billing."
36
+ }
37
+ ],
38
+ invoke: (r, o) => {
39
+ r.setSelection(o.values);
40
+ }
41
+ },
42
+ clear: {
43
+ safety: "destructive",
44
+ idempotent: !0,
45
+ descriptionKey: "ui.agent.permissionMatrix.actions.clear",
46
+ description: "Revoke every editable permission. Locked owner permissions are unaffected.",
47
+ invoke: (r) => {
48
+ r.clear();
49
+ }
50
+ }
51
+ },
52
+ domHooks: {
53
+ root: {
54
+ attr: "data-component",
55
+ value: "permission-matrix",
56
+ description: "Marks the PermissionMatrix root group."
57
+ },
58
+ instanceId: {
59
+ attr: "data-component-id",
60
+ sourceProp: "id",
61
+ description: "Sourced from the id prop."
62
+ }
63
+ }
64
+ }, I = V(
65
+ "ds:flex ds:flex-col ds:gap-[var(--spacing-lg)] ds:min-w-0",
66
+ {
67
+ variants: {
68
+ disabled: {
69
+ true: "ds:cursor-not-allowed",
70
+ false: ""
71
+ }
72
+ },
73
+ defaultVariants: { disabled: !1 }
74
+ }
75
+ ), B = "ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]", D = U(function({
76
+ groups: o,
77
+ value: l,
78
+ onChange: p,
79
+ lockedItems: x,
80
+ disabled: m = !1,
81
+ lockedLabel: y,
82
+ id: k,
83
+ className: S,
84
+ "aria-label": M
85
+ }, L) {
86
+ const { t: R } = A(), n = h(() => new Set(x ?? []), [x]), v = h(
87
+ () => o.flatMap((s) => s.permissions.map((i) => i.id)),
88
+ [o]
89
+ ), P = y ?? R("inputs.permissionMatrix.locked", "Locked"), b = d(l);
90
+ b.current = l;
91
+ const u = d(n);
92
+ u.current = n;
93
+ const w = d(v);
94
+ w.current = v;
95
+ const f = d(p);
96
+ f.current = p;
97
+ const C = h(
98
+ () => ({
99
+ getSelection: () => b.current.filter((s) => !u.current.has(s)),
100
+ setSelection: (s) => {
101
+ const i = new Set(w.current);
102
+ f.current(
103
+ s.filter(
104
+ (e) => i.has(e) && !u.current.has(e)
105
+ )
106
+ );
107
+ },
108
+ clear: () => f.current([])
109
+ }),
110
+ []
111
+ );
112
+ _(z, C, k);
113
+ const N = (s) => (i) => {
114
+ const e = new Set(i), c = s.permissions.map((t) => t.id).filter((t) => !n.has(t)), g = new Set(c), j = c.filter(
115
+ (t) => e.has(t)
116
+ ), G = l.filter(
117
+ (t) => !g.has(t) && !n.has(t)
118
+ );
119
+ p([...G, ...j]);
120
+ };
121
+ return /* @__PURE__ */ a(
122
+ "div",
123
+ {
124
+ ref: L,
125
+ role: "group",
126
+ "aria-label": M,
127
+ "data-component": "permission-matrix",
128
+ "data-component-id": k,
129
+ className: I({ disabled: m, className: S }),
130
+ children: o.map((s) => {
131
+ const i = s.permissions.map((e) => e.id).filter((e) => n.has(e) || l.includes(e));
132
+ return /* @__PURE__ */ a(
133
+ H,
134
+ {
135
+ label: s.label,
136
+ value: i,
137
+ onChange: N(s),
138
+ disabled: m,
139
+ children: s.permissions.map((e) => {
140
+ const c = n.has(e.id), g = c ? /* @__PURE__ */ K("span", { className: B, children: [
141
+ /* @__PURE__ */ a("span", { children: e.label }),
142
+ /* @__PURE__ */ a(
143
+ q,
144
+ {
145
+ "aria-hidden": "true",
146
+ className: "ds:size-3.5 ds:shrink-0 ds:text-muted-foreground"
147
+ }
148
+ ),
149
+ /* @__PURE__ */ a("span", { className: "ds:sr-only", children: P })
150
+ ] }) : e.label;
151
+ return /* @__PURE__ */ a(
152
+ T,
153
+ {
154
+ value: e.id,
155
+ label: g,
156
+ disabled: m || c
157
+ },
158
+ e.id
159
+ );
160
+ })
161
+ },
162
+ s.id
163
+ );
164
+ })
165
+ }
166
+ );
167
+ });
168
+ D.displayName = "PermissionMatrix";
169
+ export {
170
+ D as P,
171
+ I as a,
172
+ z as p
173
+ };
174
+ //# sourceMappingURL=permission-matrix-Bw5oexUt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-matrix-Bw5oexUt.js","sources":["../../src/components/permission-matrix/permission-matrix.agent.ts","../../src/components/permission-matrix/permission-matrix.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — PermissionMatrix. */\n/* */\n/* See `src/docs/26-agent-readiness.mdx` for the contract. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { PermissionMatrixHandle } from './permission-matrix';\n\nexport const permissionMatrixAgent: AgentAdapter<PermissionMatrixHandle> = {\n id: 'permission-matrix',\n capabilities: ['select_multiple'],\n state: {\n selection: {\n type: 'string[]',\n descriptionKey: 'ui.agent.permissionMatrix.state.selection',\n description:\n 'Ids of currently-granted editable permissions. Locked owner permissions are excluded.',\n read: (handle) => handle.getSelection(),\n },\n },\n actions: {\n set_selection: {\n safety: 'write',\n argsType: '{ values: string[] }',\n argsSchema: {\n type: 'object',\n properties: { values: { type: 'array', items: { type: 'string' } } },\n required: ['values'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.permissionMatrix.actions.setSelection',\n description:\n 'Replace the granted permissions with the given ids. Locked and unknown ids are ignored.',\n examples: [\n {\n args: { values: ['patients.view', 'billing.view'] },\n note: 'Grant exactly the view permissions for patients and billing.',\n },\n ],\n invoke: (handle, args: { values: string[] }) => {\n handle.setSelection(args.values);\n },\n },\n clear: {\n safety: 'destructive',\n idempotent: true,\n descriptionKey: 'ui.agent.permissionMatrix.actions.clear',\n description:\n 'Revoke every editable permission. Locked owner permissions are unaffected.',\n invoke: (handle) => {\n handle.clear();\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'permission-matrix',\n description: 'Marks the PermissionMatrix root group.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n","import { forwardRef, useMemo, useRef, type ReactNode } from 'react';\nimport { cva } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Lock } from 'lucide-react';\nimport { CheckboxGroup } from '../checkbox-group/checkbox-group';\nimport { Checkbox } from '../checkbox/checkbox';\nimport { useAgentRegistration } from '../../agent';\nimport { permissionMatrixAgent } from './permission-matrix.agent';\n\n/** A single togglable permission within a group. Labels are pre-localised. */\nexport interface PermissionMatrixPermission {\n id: string;\n label: string;\n}\n\n/** One category of permissions, rendered as a labelled group. */\nexport interface PermissionMatrixGroup {\n id: string;\n label: string;\n permissions: PermissionMatrixPermission[];\n}\n\n/** Agent-readiness curated handle for PermissionMatrix. */\nexport interface PermissionMatrixHandle {\n /** Ids of currently-granted editable permissions (locked items excluded). */\n getSelection: () => string[];\n /** Replace the granted set. Locked and unknown ids are ignored. */\n setSelection: (values: string[]) => void;\n /** Revoke every editable permission. Locked items are untouched. */\n clear: () => void;\n}\n\nexport interface PermissionMatrixProps {\n /** Categories of permissions. All labels are already localised by the consumer. */\n groups: PermissionMatrixGroup[];\n /** Ids of granted permissions (controlled). Locked ids belong in `lockedItems`, not here. */\n value: string[];\n /** Fires with the next full granted-id array whenever an editable toggle changes. */\n onChange: (next: string[]) => void;\n /**\n * Permission ids that render checked + disabled with a lock affordance — the\n * owner always holds them. They never appear in `onChange` payloads.\n */\n lockedItems?: string[];\n /** Disable every toggle in the matrix. */\n disabled?: boolean;\n /** Accessible suffix announced on locked rows. Defaults to the kit's \"Locked\" string. */\n lockedLabel?: string;\n /** Stable id — addresses this instance from the agent runtime. */\n id?: string;\n className?: string;\n 'aria-label'?: string;\n}\n\nconst permissionMatrixVariants = cva(\n 'ds:flex ds:flex-col ds:gap-[var(--spacing-lg)] ds:min-w-0',\n {\n variants: {\n disabled: {\n true: 'ds:cursor-not-allowed',\n false: '',\n },\n },\n defaultVariants: { disabled: false },\n },\n);\n\nconst lockedLabelClasses =\n 'ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]';\n\nexport const PermissionMatrix = forwardRef<\n HTMLDivElement,\n PermissionMatrixProps\n>(function PermissionMatrix(\n {\n groups,\n value,\n onChange,\n lockedItems,\n disabled = false,\n lockedLabel,\n id,\n className,\n 'aria-label': ariaLabel,\n },\n ref,\n) {\n const { t } = useTranslation();\n\n const lockedSet = useMemo(() => new Set(lockedItems ?? []), [lockedItems]);\n const allPermIds = useMemo(\n () => groups.flatMap((group) => group.permissions.map((p) => p.id)),\n [groups],\n );\n\n const resolvedLockedLabel =\n lockedLabel ?? t('inputs.permissionMatrix.locked', 'Locked');\n\n // Stable agent handle — reads/writes the latest controlled value via refs\n // so the handle identity never changes (mirrors CheckboxGroup).\n const valueRef = useRef<string[]>(value);\n valueRef.current = value;\n const lockedRef = useRef<Set<string>>(lockedSet);\n lockedRef.current = lockedSet;\n const allPermIdsRef = useRef<string[]>(allPermIds);\n allPermIdsRef.current = allPermIds;\n const onChangeRef = useRef<(next: string[]) => void>(onChange);\n onChangeRef.current = onChange;\n\n const agentHandle = useMemo<PermissionMatrixHandle>(\n () => ({\n getSelection: () =>\n valueRef.current.filter((permId) => !lockedRef.current.has(permId)),\n setSelection: (values) => {\n const allowed = new Set(allPermIdsRef.current);\n onChangeRef.current(\n values.filter(\n (permId) => allowed.has(permId) && !lockedRef.current.has(permId),\n ),\n );\n },\n clear: () => onChangeRef.current([]),\n }),\n [],\n );\n useAgentRegistration(permissionMatrixAgent, agentHandle, id);\n\n const handleGroupChange =\n (group: PermissionMatrixGroup) =>\n (nextGroupValue: string[]): void => {\n const nextSet = new Set(nextGroupValue);\n const groupUnlockedIds = group.permissions\n .map((p) => p.id)\n .filter((permId) => !lockedSet.has(permId));\n const groupUnlockedSet = new Set(groupUnlockedIds);\n // The next selection for THIS group's editable permissions.\n const selectedUnlocked = groupUnlockedIds.filter((permId) =>\n nextSet.has(permId),\n );\n // Everything outside this group, with any locked id stripped so the\n // emitted array only ever carries editable grants.\n const remaining = value.filter(\n (permId) => !groupUnlockedSet.has(permId) && !lockedSet.has(permId),\n );\n onChange([...remaining, ...selectedUnlocked]);\n };\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-label={ariaLabel}\n data-component=\"permission-matrix\"\n data-component-id={id}\n className={permissionMatrixVariants({ disabled, className })}\n >\n {groups.map((group) => {\n // Locked ids are forced into the group's checked set so they render\n // checked; being disabled, they can never be toggled back off.\n const groupCheckedValue = group.permissions\n .map((p) => p.id)\n .filter((permId) => lockedSet.has(permId) || value.includes(permId));\n\n return (\n <CheckboxGroup\n key={group.id}\n label={group.label}\n value={groupCheckedValue}\n onChange={handleGroupChange(group)}\n disabled={disabled}\n >\n {group.permissions.map((permission) => {\n const isLocked = lockedSet.has(permission.id);\n const label: ReactNode = isLocked ? (\n <span className={lockedLabelClasses}>\n <span>{permission.label}</span>\n <Lock\n aria-hidden=\"true\"\n className=\"ds:size-3.5 ds:shrink-0 ds:text-muted-foreground\"\n />\n <span className=\"ds:sr-only\">{resolvedLockedLabel}</span>\n </span>\n ) : (\n permission.label\n );\n\n return (\n <Checkbox\n key={permission.id}\n value={permission.id}\n label={label}\n disabled={disabled || isLocked}\n />\n );\n })}\n </CheckboxGroup>\n );\n })}\n </div>\n );\n});\n\nPermissionMatrix.displayName = 'PermissionMatrix';\n\nexport { permissionMatrixVariants };\n"],"names":["permissionMatrixAgent","handle","args","permissionMatrixVariants","cva","lockedLabelClasses","PermissionMatrix","forwardRef","groups","value","onChange","lockedItems","disabled","lockedLabel","id","className","ariaLabel","ref","t","useTranslation","lockedSet","useMemo","allPermIds","group","p","resolvedLockedLabel","valueRef","useRef","lockedRef","allPermIdsRef","onChangeRef","agentHandle","permId","values","allowed","useAgentRegistration","handleGroupChange","nextGroupValue","nextSet","groupUnlockedIds","groupUnlockedSet","selectedUnlocked","remaining","jsx","groupCheckedValue","CheckboxGroup","permission","isLocked","label","jsxs","Lock","Checkbox"],"mappings":"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"}
@@ -0,0 +1,169 @@
1
+ import { jsx as l } from "react/jsx-runtime";
2
+ import { forwardRef as N, useRef as g, useState as _, useMemo as f } from "react";
3
+ import * as y from "@radix-ui/react-radio-group";
4
+ import { c } from "./index-D2ZczOXr.js";
5
+ import { useTranslation as q } from "react-i18next";
6
+ import { c as T } from "./compose-refs-C0k0tdqF.js";
7
+ import { u as z } from "./registry-DvAUVLHh.js";
8
+ import { u as A } from "./use-direction-Dp8h70PP.js";
9
+ const E = {
10
+ id: "position-grid",
11
+ capabilities: ["select_single"],
12
+ state: {
13
+ value: {
14
+ type: "string",
15
+ descriptionKey: "ui.agent.positionGrid.state.value",
16
+ description: 'Currently selected position value (e.g. "top-start"), or empty string when none.',
17
+ read: (r) => r.getValue()
18
+ }
19
+ },
20
+ actions: {
21
+ set_value: {
22
+ safety: "write",
23
+ argsType: "{ value: string }",
24
+ argsSchema: {
25
+ type: "object",
26
+ properties: { value: { type: "string" } },
27
+ required: ["value"]
28
+ },
29
+ idempotent: !0,
30
+ descriptionKey: "ui.agent.positionGrid.actions.setValue",
31
+ description: "Select the cell with the given position value.",
32
+ examples: [
33
+ {
34
+ args: { value: "center" },
35
+ note: "Selects the centre cell of the default 3×3 grid."
36
+ }
37
+ ],
38
+ invoke: (r, t) => {
39
+ r.setValue(t.value);
40
+ }
41
+ }
42
+ },
43
+ domHooks: {
44
+ root: {
45
+ attr: "data-component",
46
+ value: "position-grid",
47
+ description: "Marks the PositionGrid root."
48
+ },
49
+ instanceId: {
50
+ attr: "data-component-id",
51
+ sourceProp: "id",
52
+ description: "Sourced from the id prop."
53
+ },
54
+ item: {
55
+ attr: "data-option-id",
56
+ description: "Position value emitted on each rendered cell."
57
+ }
58
+ }
59
+ }, L = [
60
+ { value: "top-start", labelKey: "topStart" },
61
+ { value: "top", labelKey: "top" },
62
+ { value: "top-end", labelKey: "topEnd" },
63
+ { value: "start", labelKey: "start" },
64
+ { value: "center", labelKey: "center" },
65
+ { value: "end", labelKey: "end" },
66
+ { value: "bottom-start", labelKey: "bottomStart" },
67
+ { value: "bottom", labelKey: "bottom" },
68
+ { value: "bottom-end", labelKey: "bottomEnd" }
69
+ ], D = c(
70
+ "ds:grid ds:grid-cols-3 ds:gap-[var(--spacing-2xs)] ds:w-fit"
71
+ ), H = c(
72
+ [
73
+ "ds:group ds:relative ds:inline-flex ds:items-center ds:justify-center ds:shrink-0",
74
+ "ds:aspect-square ds:min-h-[var(--min-target-size)] ds:min-w-[var(--min-target-size)]",
75
+ "ds:rounded-[var(--radius-md)] ds:border ds:border-border ds:bg-background",
76
+ "ds:cursor-pointer",
77
+ "ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
78
+ "ds:hover:border-ring",
79
+ "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
80
+ "ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
81
+ "ds:disabled:cursor-not-allowed ds:disabled:opacity-50",
82
+ "ds:data-[state=checked]:border-primary",
83
+ "ds:data-[state=checked]:bg-[color-mix(in_srgb,var(--accent)_8%,transparent)]",
84
+ "ds:data-[disabled]:border-muted"
85
+ ].join(" ")
86
+ ), M = c(
87
+ [
88
+ "ds:size-2.5 ds:rounded-full ds:bg-muted-foreground",
89
+ "ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
90
+ "ds:group-data-[state=checked]:bg-primary",
91
+ "ds:group-data-[disabled]:bg-muted"
92
+ ].join(" ")
93
+ ), O = N(
94
+ function({
95
+ value: t,
96
+ defaultValue: u,
97
+ onChange: a,
98
+ positions: p,
99
+ name: h,
100
+ disabled: V,
101
+ id: i,
102
+ className: k,
103
+ "aria-label": K
104
+ }, S) {
105
+ const { t: s } = q(), n = g(null), G = T(S, n), R = A(n), o = t !== void 0, [w, P] = _(
106
+ u ?? ""
107
+ ), m = o ? t ?? "" : w, v = g(m);
108
+ v.current = m;
109
+ const x = f(
110
+ () => p ?? L.map((e) => ({
111
+ value: e.value,
112
+ label: s(`positionGrid.${e.labelKey}`)
113
+ })),
114
+ [p, s]
115
+ ), j = K ?? s("positionGrid.groupLabel"), b = (e) => {
116
+ o || P(e), a == null || a(e);
117
+ }, I = f(
118
+ () => ({
119
+ getValue: () => v.current,
120
+ setValue: (e) => b(e),
121
+ focus: () => {
122
+ const e = n.current;
123
+ if (!e) return;
124
+ const d = e.querySelector(
125
+ '[role="radio"][aria-checked="true"]'
126
+ ) ?? e.querySelector('[role="radio"]');
127
+ d == null || d.focus();
128
+ }
129
+ }),
130
+ // eslint-disable-next-line react-hooks/exhaustive-deps
131
+ [o, a]
132
+ );
133
+ return z(E, I, i), /* @__PURE__ */ l(
134
+ y.Root,
135
+ {
136
+ ref: G,
137
+ id: i,
138
+ name: h,
139
+ dir: R,
140
+ disabled: V,
141
+ value: o ? t : void 0,
142
+ defaultValue: o ? void 0 : u,
143
+ onValueChange: b,
144
+ "aria-label": j,
145
+ className: D({ className: k }),
146
+ "data-component": "position-grid",
147
+ "data-component-id": i,
148
+ children: x.map((e) => /* @__PURE__ */ l(
149
+ y.Item,
150
+ {
151
+ value: e.value,
152
+ "aria-label": e.label,
153
+ "data-option-id": e.value,
154
+ className: H(),
155
+ children: /* @__PURE__ */ l("span", { "aria-hidden": "true", className: M() })
156
+ },
157
+ e.value
158
+ ))
159
+ }
160
+ );
161
+ }
162
+ );
163
+ O.displayName = "PositionGrid";
164
+ export {
165
+ O as P,
166
+ D as g,
167
+ E as p
168
+ };
169
+ //# sourceMappingURL=position-grid-CcvqHaKN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"position-grid-CcvqHaKN.js","sources":["../../src/components/position-grid/position-grid.agent.ts","../../src/components/position-grid/position-grid.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — PositionGrid. */\n/* */\n/* See `src/docs/26-agent-readiness.mdx` for the contract. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { PositionGridHandle } from './position-grid';\n\nexport const positionGridAgent: AgentAdapter<PositionGridHandle> = {\n id: 'position-grid',\n capabilities: ['select_single'],\n state: {\n value: {\n type: 'string',\n descriptionKey: 'ui.agent.positionGrid.state.value',\n description:\n 'Currently selected position value (e.g. \"top-start\"), or empty string when none.',\n read: (handle) => handle.getValue(),\n },\n },\n actions: {\n set_value: {\n safety: 'write',\n argsType: '{ value: string }',\n argsSchema: {\n type: 'object',\n properties: { value: { type: 'string' } },\n required: ['value'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.positionGrid.actions.setValue',\n description: 'Select the cell with the given position value.',\n examples: [\n {\n args: { value: 'center' },\n note: 'Selects the centre cell of the default 3×3 grid.',\n },\n ],\n invoke: (handle, args: { value: string }) => {\n handle.setValue(args.value);\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'position-grid',\n description: 'Marks the PositionGrid root.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n item: {\n attr: 'data-option-id',\n description: 'Position value emitted on each rendered cell.',\n },\n },\n};\n","import { forwardRef, useMemo, useRef, useState } from 'react';\nimport * as RadixRadioGroup from '@radix-ui/react-radio-group';\nimport { cva } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { useDirection } from '../_shared/use-direction';\nimport { composeRefs } from '../_shared/compose-refs';\nimport { useAgentRegistration } from '../../agent';\nimport { positionGridAgent } from './position-grid.agent';\n\n/** Agent-readiness curated handle for PositionGrid. */\nexport interface PositionGridHandle {\n getValue: () => string;\n setValue: (value: string) => void;\n focus: () => void;\n}\n\n/** One selectable cell in the grid. */\nexport interface PositionGridOption {\n /** Stable value emitted on selection (logical, e.g. `top-start`). */\n value: string;\n /** Accessible name for the cell — sighted users read the dot's position. */\n label: string;\n}\n\nexport interface PositionGridProps {\n /** Controlled selected value. Pair with onChange. */\n value?: string;\n /** Uncontrolled initial value. */\n defaultValue?: string;\n /** Fires with the newly-selected value. */\n onChange?: (value: string) => void;\n /**\n * Override the default 9-cell set. When omitted, the default 3×3 anchor grid\n * renders with bundled `positionGrid.*` labels. Cells flow in array order\n * across the three columns.\n */\n positions?: PositionGridOption[];\n /** Native form name for the underlying radio group. */\n name?: string;\n /** Disables every cell. */\n disabled?: boolean;\n id?: string;\n className?: string;\n /** Group accessible name. Defaults to the bundled `positionGrid.groupLabel`. */\n 'aria-label'?: string;\n}\n\n/** Default 3×3 anchor set. `labelKey` resolves against the bundled\n * `positionGrid` i18n root; values use logical start/end naming (never\n * left/right), so the layout mirrors correctly under `dir=\"rtl\"`. */\nconst DEFAULT_POSITIONS: ReadonlyArray<{ value: string; labelKey: string }> = [\n { value: 'top-start', labelKey: 'topStart' },\n { value: 'top', labelKey: 'top' },\n { value: 'top-end', labelKey: 'topEnd' },\n { value: 'start', labelKey: 'start' },\n { value: 'center', labelKey: 'center' },\n { value: 'end', labelKey: 'end' },\n { value: 'bottom-start', labelKey: 'bottomStart' },\n { value: 'bottom', labelKey: 'bottom' },\n { value: 'bottom-end', labelKey: 'bottomEnd' },\n];\n\n// grid-cols-3 is intentional: the picker is a fixed-column anchor grid; custom\n// `positions` flow across the same three columns in array order.\nconst gridVariants = cva(\n 'ds:grid ds:grid-cols-3 ds:gap-[var(--spacing-2xs)] ds:w-fit',\n);\n\nconst cellVariants = cva(\n [\n 'ds:group ds:relative ds:inline-flex ds:items-center ds:justify-center ds:shrink-0',\n 'ds:aspect-square ds:min-h-[var(--min-target-size)] ds:min-w-[var(--min-target-size)]',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-border ds:bg-background',\n 'ds:cursor-pointer',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:hover:border-ring',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:disabled:cursor-not-allowed ds:disabled:opacity-50',\n 'ds:data-[state=checked]:border-primary',\n 'ds:data-[state=checked]:bg-[color-mix(in_srgb,var(--accent)_8%,transparent)]',\n 'ds:data-[disabled]:border-muted',\n ].join(' '),\n);\n\nconst markerVariants = cva(\n [\n 'ds:size-2.5 ds:rounded-full ds:bg-muted-foreground',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:group-data-[state=checked]:bg-primary',\n 'ds:group-data-[disabled]:bg-muted',\n ].join(' '),\n);\n\nexport const PositionGrid = forwardRef<HTMLDivElement, PositionGridProps>(\n function PositionGrid(\n {\n value,\n defaultValue,\n onChange,\n positions,\n name,\n disabled,\n id,\n className,\n 'aria-label': ariaLabel,\n },\n ref,\n ) {\n const { t } = useTranslation();\n\n const rootRef = useRef<HTMLDivElement>(null);\n const composedRef = composeRefs(ref, rootRef);\n // Pass the resolved direction to Radix so arrow-key navigation (and the\n // CSS grid's inline flow) mirror correctly under dir=\"rtl\".\n const dir = useDirection(rootRef);\n\n const isControlled = value !== undefined;\n const [internalValue, setInternalValue] = useState<string>(\n defaultValue ?? '',\n );\n const currentValue = isControlled ? (value ?? '') : internalValue;\n const currentValueRef = useRef<string>(currentValue);\n currentValueRef.current = currentValue;\n\n const items = useMemo<PositionGridOption[]>(\n () =>\n positions ??\n DEFAULT_POSITIONS.map((p) => ({\n value: p.value,\n label: t(`positionGrid.${p.labelKey}`),\n })),\n [positions, t],\n );\n\n const groupLabel = ariaLabel ?? t('positionGrid.groupLabel');\n\n const handleValueChange = (next: string) => {\n if (!isControlled) setInternalValue(next);\n onChange?.(next);\n };\n\n const agentHandle = useMemo<PositionGridHandle>(\n () => ({\n getValue: () => currentValueRef.current,\n setValue: (next) => handleValueChange(next),\n focus: () => {\n const root = rootRef.current;\n if (!root) return;\n const checked = root.querySelector<HTMLElement>(\n '[role=\"radio\"][aria-checked=\"true\"]',\n );\n const target =\n checked ?? root.querySelector<HTMLElement>('[role=\"radio\"]');\n target?.focus();\n },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isControlled, onChange],\n );\n useAgentRegistration(positionGridAgent, agentHandle, id);\n\n return (\n <RadixRadioGroup.Root\n ref={composedRef}\n id={id}\n name={name}\n dir={dir}\n disabled={disabled}\n value={isControlled ? value : undefined}\n defaultValue={!isControlled ? defaultValue : undefined}\n onValueChange={handleValueChange}\n aria-label={groupLabel}\n className={gridVariants({ className })}\n data-component=\"position-grid\"\n data-component-id={id}\n >\n {items.map((pos) => (\n <RadixRadioGroup.Item\n key={pos.value}\n value={pos.value}\n aria-label={pos.label}\n data-option-id={pos.value}\n className={cellVariants()}\n >\n <span aria-hidden=\"true\" className={markerVariants()} />\n </RadixRadioGroup.Item>\n ))}\n </RadixRadioGroup.Root>\n );\n },\n);\n\nPositionGrid.displayName = 'PositionGrid';\n\nexport { gridVariants as positionGridVariants };\n"],"names":["positionGridAgent","handle","args","DEFAULT_POSITIONS","gridVariants","cva","cellVariants","markerVariants","PositionGrid","forwardRef","value","defaultValue","onChange","positions","name","disabled","id","className","ariaLabel","ref","t","useTranslation","rootRef","useRef","composedRef","composeRefs","dir","useDirection","isControlled","internalValue","setInternalValue","useState","currentValue","currentValueRef","items","useMemo","p","groupLabel","handleValueChange","next","agentHandle","root","target","useAgentRegistration","jsx","RadixRadioGroup","pos"],"mappings":"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"}
@@ -0,0 +1,192 @@
1
+ import { jsxs as P, jsx as E } from "react/jsx-runtime";
2
+ import { forwardRef as X, useRef as j, useId as Y, useState as N, useMemo as u, useEffect as Z, useCallback as S } from "react";
3
+ import { useTranslation as ee } from "react-i18next";
4
+ import { T as te } from "./text-input-B-OWQ1Je.js";
5
+ import { u as oe } from "./form-field-context-B3APVHKx.js";
6
+ import { c as se } from "./compose-refs-C0k0tdqF.js";
7
+ import { u as re } from "./registry-DvAUVLHh.js";
8
+ import { C as ne } from "./circle-alert-ChA9opNA.js";
9
+ const ie = {
10
+ id: "postal-code-input",
11
+ capabilities: ["set_value"],
12
+ state: {
13
+ value: {
14
+ type: "string",
15
+ descriptionKey: "ui.agent.postalCodeInput.state.value",
16
+ description: "Current postal code value.",
17
+ read: (e) => e.getValue()
18
+ },
19
+ isEmpty: {
20
+ type: "boolean",
21
+ descriptionKey: "ui.agent.postalCodeInput.state.isEmpty",
22
+ description: "Whether the field has no value.",
23
+ read: (e) => e.getValue() === ""
24
+ }
25
+ },
26
+ actions: {
27
+ set_value: {
28
+ safety: "write",
29
+ argsType: "{ value: string }",
30
+ argsSchema: {
31
+ type: "object",
32
+ properties: { value: { type: "string" } },
33
+ required: ["value"]
34
+ },
35
+ idempotent: !0,
36
+ descriptionKey: "ui.agent.postalCodeInput.actions.setValue",
37
+ description: "Replace the postal code value.",
38
+ examples: [{ args: { value: "20121" }, note: "An Italian CAP." }],
39
+ invoke: (e, o) => {
40
+ e.setValue(o.value);
41
+ }
42
+ },
43
+ clear: {
44
+ safety: "destructive",
45
+ idempotent: !0,
46
+ descriptionKey: "ui.agent.postalCodeInput.actions.clear",
47
+ description: "Empty the field. Loses any typed value.",
48
+ invoke: (e) => {
49
+ e.clear();
50
+ }
51
+ }
52
+ },
53
+ domHooks: {
54
+ root: { attr: "data-component", value: "postal-code-input" },
55
+ instanceId: {
56
+ attr: "data-component-id",
57
+ sourceProp: "id",
58
+ description: "Sourced from the id prop."
59
+ }
60
+ }
61
+ }, A = {
62
+ it: { pattern: /^\d{5}$/, inputMode: "numeric", maxLength: 5 }
63
+ };
64
+ function ae(e, o, s, r) {
65
+ if (s) return s(e, o);
66
+ if (e.length === 0) return !0;
67
+ const n = o ? A[o.toLowerCase()] : void 0;
68
+ return n ? n.pattern.test(e) : r ? r.test(e) : !0;
69
+ }
70
+ function k(e, o) {
71
+ var r;
72
+ if (!e) return;
73
+ const s = (r = Object.getOwnPropertyDescriptor(
74
+ HTMLInputElement.prototype,
75
+ "value"
76
+ )) == null ? void 0 : r.set;
77
+ s == null || s.call(e, o), e.dispatchEvent(new Event("input", { bubbles: !0 }));
78
+ }
79
+ const de = X(function({
80
+ country: o,
81
+ value: s,
82
+ defaultValue: r,
83
+ onValueChange: n,
84
+ validate: C,
85
+ pattern: f,
86
+ errorMessage: m,
87
+ onValidityChange: c,
88
+ onBlur: l,
89
+ id: v,
90
+ maxLength: K,
91
+ className: M,
92
+ "aria-describedby": R,
93
+ "aria-invalid": w,
94
+ ..._
95
+ }, F) {
96
+ const { t: H } = ee(), g = oe(), p = j(null), V = se(F, p), h = Y(), d = s !== void 0, [$, B] = N(() => typeof s == "string" ? s : typeof r == "string" ? r : ""), i = d ? String(s) : $, [x, O] = N(
97
+ () => i.length > 0
98
+ ), a = o ? A[o.toLowerCase()] : void 0, L = u(() => {
99
+ if (f)
100
+ try {
101
+ return new RegExp(`^(?:${f})$`);
102
+ } catch {
103
+ return;
104
+ }
105
+ }, [f]), y = u(
106
+ () => ae(i, o, C, L),
107
+ [i, o, C, L]
108
+ ), I = x && i.length > 0 && !y, T = j(null);
109
+ Z(() => {
110
+ if (!x) return;
111
+ const t = i.length === 0 || y;
112
+ T.current !== t && (T.current = t, c == null || c(t));
113
+ }, [x, i, y, c]);
114
+ const U = S(
115
+ (t) => {
116
+ d || B(t.target.value), n == null || n(t.target.value);
117
+ },
118
+ [d, n]
119
+ ), q = S(
120
+ (t) => {
121
+ O(!0), l == null || l(t);
122
+ },
123
+ [l]
124
+ ), z = u(
125
+ () => ({
126
+ getValue: () => {
127
+ var t;
128
+ return ((t = p.current) == null ? void 0 : t.value) ?? "";
129
+ },
130
+ setValue: (t) => k(p.current, t),
131
+ clear: () => k(p.current, "")
132
+ }),
133
+ []
134
+ );
135
+ re(ie, z, v);
136
+ const b = I && m !== null, W = u(() => {
137
+ const t = [
138
+ R,
139
+ g.describedBy || void 0,
140
+ b ? h : null
141
+ ].filter(Boolean);
142
+ return t.length > 0 ? t.join(" ") : void 0;
143
+ }, [R, g.describedBy, b, h]), D = I ? "error" : "default", G = w === !0 || w === "true", J = I || g.invalid || G || void 0, Q = m !== void 0 ? m : H("inputs.postalCode.invalid", "Enter a valid postal code");
144
+ return /* @__PURE__ */ P(
145
+ "div",
146
+ {
147
+ "data-component": "postal-code-input",
148
+ "data-component-id": v,
149
+ className: ["ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]", M].filter(Boolean).join(" "),
150
+ children: [
151
+ /* @__PURE__ */ E(
152
+ te,
153
+ {
154
+ ..._,
155
+ ref: V,
156
+ id: v,
157
+ type: "text",
158
+ inputMode: (a == null ? void 0 : a.inputMode) ?? "text",
159
+ autoComplete: "postal-code",
160
+ maxLength: K ?? (a == null ? void 0 : a.maxLength),
161
+ tone: D,
162
+ value: d ? i : void 0,
163
+ defaultValue: d ? void 0 : r,
164
+ onChange: U,
165
+ onBlur: q,
166
+ "aria-invalid": J,
167
+ "aria-describedby": W
168
+ }
169
+ ),
170
+ b ? /* @__PURE__ */ P(
171
+ "p",
172
+ {
173
+ id: h,
174
+ role: "alert",
175
+ "data-slot": "postal-code-input-error",
176
+ className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)] type-body-sm ds:text-destructive",
177
+ children: [
178
+ /* @__PURE__ */ E(ne, { "aria-hidden": "true", className: "ds:size-4 ds:shrink-0" }),
179
+ /* @__PURE__ */ E("span", { children: Q })
180
+ ]
181
+ }
182
+ ) : null
183
+ ]
184
+ }
185
+ );
186
+ });
187
+ de.displayName = "PostalCodeInput";
188
+ export {
189
+ de as P,
190
+ ie as p
191
+ };
192
+ //# sourceMappingURL=postal-code-input-UCOYuRY2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postal-code-input-UCOYuRY2.js","sources":["../../src/components/postal-code-input/postal-code-input.agent.ts","../../src/components/postal-code-input/postal-code-input.tsx"],"sourcesContent":["import type { AgentAdapter } from '../../agent/types';\n\nexport interface PostalCodeInputHandle {\n getValue: () => string;\n setValue: (value: string) => void;\n clear: () => void;\n}\n\nexport const postalCodeInputAgent: AgentAdapter<PostalCodeInputHandle> = {\n id: 'postal-code-input',\n capabilities: ['set_value'],\n state: {\n value: {\n type: 'string',\n descriptionKey: 'ui.agent.postalCodeInput.state.value',\n description: 'Current postal code value.',\n read: (handle) => handle.getValue(),\n },\n isEmpty: {\n type: 'boolean',\n descriptionKey: 'ui.agent.postalCodeInput.state.isEmpty',\n description: 'Whether the field has no value.',\n read: (handle) => handle.getValue() === '',\n },\n },\n actions: {\n set_value: {\n safety: 'write',\n argsType: '{ value: string }',\n argsSchema: {\n type: 'object',\n properties: { value: { type: 'string' } },\n required: ['value'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.postalCodeInput.actions.setValue',\n description: 'Replace the postal code value.',\n examples: [{ args: { value: '20121' }, note: 'An Italian CAP.' }],\n invoke: (handle, args: { value: string }) => {\n handle.setValue(args.value);\n },\n },\n clear: {\n safety: 'destructive',\n idempotent: true,\n descriptionKey: 'ui.agent.postalCodeInput.actions.clear',\n description: 'Empty the field. Loses any typed value.',\n invoke: (handle) => {\n handle.clear();\n },\n },\n },\n domHooks: {\n root: { attr: 'data-component', value: 'postal-code-input' },\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 useMemo,\n useRef,\n useState,\n type ChangeEvent,\n type FocusEvent,\n type ReactNode,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { AlertCircle } from 'lucide-react';\nimport { TextInput, type TextInputProps } from '../text-input';\nimport { useFormField } from '../form-field/form-field-context';\nimport { composeRefs } from '../_shared/compose-refs';\nimport { useAgentRegistration } from '../../agent';\nimport {\n postalCodeInputAgent,\n type PostalCodeInputHandle,\n} from './postal-code-input.agent';\n\n/* ------------------------------------------------------------------ */\n/* Built-in rules */\n/* */\n/* Intentionally tiny — Italy (CAP, 5 digits) only. Every other country */\n/* validates as \"non-empty\" unless the consumer supplies `validate` or */\n/* `pattern`. Postal formats are a long tail; the seam is the contract, */\n/* the table is convenience. (Plan: IT only + seam.) */\n/* ------------------------------------------------------------------ */\n\ninterface PostalRule {\n pattern: RegExp;\n inputMode: 'numeric' | 'text';\n maxLength: number;\n}\n\nconst BUILT_IN_RULES: Record<string, PostalRule> = {\n it: { pattern: /^\\d{5}$/, inputMode: 'numeric', maxLength: 5 },\n};\n\nexport interface PostalCodeInputProps extends Omit<\n TextInputProps,\n | 'type'\n | 'inputMode'\n | 'autoComplete'\n | 'value'\n | 'defaultValue'\n | 'onChange'\n | 'tone'\n | 'pattern'\n> {\n /** ISO 3166-1 alpha-2 (lowercase). Drives format, length, and keyboard. */\n country?: string;\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n /** Override the built-in per-country validity rule entirely. */\n validate?: (value: string, country?: string) => boolean;\n /** Regex source applied when there's no `validate` and no built-in rule. */\n pattern?: string;\n /**\n * Inline error message. Pass `null` to suppress the built-in message (e.g.\n * when surfacing the error through a wrapping FormField).\n */\n errorMessage?: ReactNode | null;\n /**\n * Fires on blur (and on change after first blur) with the field's validity.\n * NOTE: an empty value reports `true` — emptiness is `required`'s concern,\n * not this field's. (EmailInput reports `false` for empty; gate \"required\"\n * separately at the form level.)\n */\n onValidityChange?: (valid: boolean) => void;\n}\n\nfunction isValidFor(\n value: string,\n country: string | undefined,\n validate: PostalCodeInputProps['validate'],\n patternRegex: RegExp | undefined,\n): boolean {\n if (validate) return validate(value, country);\n if (value.length === 0) return true; // empty is `required`'s concern\n const rule = country ? BUILT_IN_RULES[country.toLowerCase()] : undefined;\n if (rule) return rule.pattern.test(value);\n if (patternRegex) return patternRegex.test(value);\n return true;\n}\n\n// Drive the DOM input through React's native value setter so an agent-set\n// value flows through the normal onChange path (mirrors TextInput's handle).\nfunction setNativeValue(input: HTMLInputElement | null, next: string): void {\n if (!input) return;\n const setter = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n 'value',\n )?.set;\n setter?.call(input, next);\n input.dispatchEvent(new Event('input', { bubbles: true }));\n}\n\nexport const PostalCodeInput = forwardRef<\n HTMLInputElement,\n PostalCodeInputProps\n>(function PostalCodeInput(\n {\n country,\n value,\n defaultValue,\n onValueChange,\n validate,\n pattern,\n errorMessage,\n onValidityChange,\n onBlur,\n id,\n maxLength,\n className,\n 'aria-describedby': consumerDescribedBy,\n 'aria-invalid': consumerAriaInvalid,\n ...rest\n },\n ref,\n) {\n const { t } = useTranslation();\n const ctx = useFormField();\n const innerRef = useRef<HTMLInputElement | null>(null);\n const composedRef = composeRefs(ref, innerRef);\n\n // Private id for this component's own inline error. When a wrapping\n // FormField also renders an error element, its id is already folded into\n // `aria-describedby` via `ctx.describedBy` — so we must NOT reuse\n // `ctx.errorId` here, or two `role=\"alert\"` elements would share one id.\n const errorElementId = useId();\n\n const isControlled = value !== undefined;\n const [internalValue, setInternalValue] = useState<string>(() => {\n if (typeof value === 'string') return value;\n if (typeof defaultValue === 'string') return defaultValue;\n return '';\n });\n const currentValue = isControlled ? String(value) : internalValue;\n\n const [touched, setTouched] = useState<boolean>(\n () => currentValue.length > 0,\n );\n\n const rule = country ? BUILT_IN_RULES[country.toLowerCase()] : undefined;\n\n // Compile the consumer `pattern` once per pattern, not once per keystroke.\n const patternRegex = useMemo(() => {\n if (!pattern) return undefined;\n try {\n return new RegExp(`^(?:${pattern})$`);\n } catch {\n return undefined;\n }\n }, [pattern]);\n\n const computedValid = useMemo(\n () => isValidFor(currentValue, country, validate, patternRegex),\n [currentValue, country, validate, patternRegex],\n );\n\n const shouldShowError = touched && currentValue.length > 0 && !computedValid;\n\n const lastValidRef = useRef<boolean | null>(null);\n useEffect(() => {\n if (!touched) return;\n const nextValid = currentValue.length === 0 || computedValid;\n if (lastValidRef.current !== nextValid) {\n lastValidRef.current = nextValid;\n onValidityChange?.(nextValid);\n }\n }, [touched, currentValue, computedValid, onValidityChange]);\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) setInternalValue(event.target.value);\n onValueChange?.(event.target.value);\n },\n [isControlled, onValueChange],\n );\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTouched(true);\n onBlur?.(event);\n },\n [onBlur],\n );\n\n const agentHandle = useMemo<PostalCodeInputHandle>(\n () => ({\n getValue: () => innerRef.current?.value ?? '',\n setValue: (next) => setNativeValue(innerRef.current, next),\n clear: () => setNativeValue(innerRef.current, ''),\n }),\n [],\n );\n useAgentRegistration(postalCodeInputAgent, agentHandle, id);\n\n const showInlineError = shouldShowError && errorMessage !== null;\n const describedBy = useMemo(() => {\n const parts = [\n consumerDescribedBy,\n ctx.describedBy || undefined,\n showInlineError ? errorElementId : null,\n ].filter(Boolean) as string[];\n return parts.length > 0 ? parts.join(' ') : undefined;\n }, [consumerDescribedBy, ctx.describedBy, showInlineError, errorElementId]);\n\n const effectiveTone = shouldShowError ? 'error' : 'default';\n const consumerInvalid =\n consumerAriaInvalid === true || consumerAriaInvalid === 'true';\n const effectiveAriaInvalid =\n shouldShowError || ctx.invalid || consumerInvalid || undefined;\n\n const resolvedErrorMessage =\n errorMessage !== undefined\n ? errorMessage\n : t('inputs.postalCode.invalid', 'Enter a valid postal code');\n\n return (\n <div\n data-component=\"postal-code-input\"\n data-component-id={id}\n className={['ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]', className]\n .filter(Boolean)\n .join(' ')}\n >\n <TextInput\n {...rest}\n ref={composedRef}\n id={id}\n type=\"text\"\n inputMode={rule?.inputMode ?? 'text'}\n autoComplete=\"postal-code\"\n maxLength={maxLength ?? rule?.maxLength}\n tone={effectiveTone}\n value={isControlled ? currentValue : undefined}\n defaultValue={!isControlled ? defaultValue : undefined}\n onChange={handleChange}\n onBlur={handleBlur}\n aria-invalid={effectiveAriaInvalid}\n aria-describedby={describedBy}\n />\n {showInlineError ? (\n <p\n id={errorElementId}\n role=\"alert\"\n data-slot=\"postal-code-input-error\"\n className=\"ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)] type-body-sm ds:text-destructive\"\n >\n <AlertCircle aria-hidden=\"true\" className=\"ds:size-4 ds:shrink-0\" />\n <span>{resolvedErrorMessage}</span>\n </p>\n ) : null}\n </div>\n );\n});\n\nPostalCodeInput.displayName = 'PostalCodeInput';\n"],"names":["postalCodeInputAgent","handle","args","BUILT_IN_RULES","isValidFor","value","country","validate","patternRegex","rule","setNativeValue","input","next","setter","_a","PostalCodeInput","forwardRef","defaultValue","onValueChange","pattern","errorMessage","onValidityChange","onBlur","id","maxLength","className","consumerDescribedBy","consumerAriaInvalid","rest","ref","t","useTranslation","ctx","useFormField","innerRef","useRef","composedRef","composeRefs","errorElementId","useId","isControlled","internalValue","setInternalValue","useState","currentValue","touched","setTouched","useMemo","computedValid","shouldShowError","lastValidRef","useEffect","nextValid","handleChange","useCallback","event","handleBlur","agentHandle","useAgentRegistration","showInlineError","describedBy","parts","effectiveTone","consumerInvalid","effectiveAriaInvalid","resolvedErrorMessage","jsxs","jsx","TextInput","AlertCircle"],"mappings":"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"}
@@ -2,17 +2,17 @@ import { jsx as t, jsxs as m, Fragment as Ge } from "react/jsx-runtime";
2
2
  import { forwardRef as Ze, useState as pe, useRef as _, useMemo as D, useImperativeHandle as Qe, useCallback as K, useEffect as J } from "react";
3
3
  import { c as Z } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as C } from "react-i18next";
5
- import { A as Y } from "./alert-_mUKLmwA.js";
5
+ import { A as Y } from "./alert-CHYZ96tR.js";
6
6
  import { A as ke } from "./avatar-BNQNhoyL.js";
7
7
  import { B as G } from "./button-DD_0Xdmr.js";
8
8
  import { D as $ } from "./dropdown-menu-qrxjymfw.js";
9
9
  import { E as Je } from "./empty-state-BLy7tigq.js";
10
10
  import { M as We } from "./map-view-BkOoGoX2.js";
11
11
  import { R as Ce } from "./rating-BRD7O74e.js";
12
- import { S as I } from "./sheet-BxsE7eQm.js";
12
+ import { S as I } from "./sheet-umkfZjF6.js";
13
13
  import { S as Xe } from "./skeleton-CZbwyJAA.js";
14
14
  import { S as Ye } from "./spinner-hbwuKwMf.js";
15
- import { B as L } from "./badge-CqGsX32l.js";
15
+ import { B as L } from "./badge-DCOqV9mI.js";
16
16
  import { u as et } from "./use-media-query-CcAx5SMM.js";
17
17
  import { u as tt } from "./registry-DvAUVLHh.js";
18
18
  import { c as nt } from "./createLucideIcon-CrFbzy84.js";
@@ -1606,4 +1606,4 @@ export {
1606
1606
  Ct as P,
1607
1607
  rt as p
1608
1608
  };
1609
- //# sourceMappingURL=practice-results-KrTHqZua.js.map
1609
+ //# sourceMappingURL=practice-results-El5Z-oVp.js.map