@alfadocs/ui-kit-debug 1.55.0 → 1.57.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 (448) hide show
  1. package/dist/_chunks/{ai-credits-notice-BoNJtOuE.js → ai-credits-notice-ktklr8fy.js} +2 -2
  2. package/dist/_chunks/{ai-credits-notice-BoNJtOuE.js.map → ai-credits-notice-ktklr8fy.js.map} +1 -1
  3. package/dist/_chunks/ai-permission-notice-DyuEGwAt.js +206 -0
  4. package/dist/_chunks/ai-permission-notice-DyuEGwAt.js.map +1 -0
  5. package/dist/_chunks/alia-sidebar-BBKBJCv6.js +1284 -0
  6. package/dist/_chunks/alia-sidebar-BBKBJCv6.js.map +1 -0
  7. package/dist/_chunks/{anamnesis-summary-rows-Dtw5Hpg4.js → anamnesis-summary-rows-CCQ62mMN.js} +5 -5
  8. package/dist/_chunks/{anamnesis-summary-rows-Dtw5Hpg4.js.map → anamnesis-summary-rows-CCQ62mMN.js.map} +1 -1
  9. package/dist/_chunks/{appointment-peek-BIZaDeCi.js → appointment-peek-WvNbE4JG.js} +2 -2
  10. package/dist/_chunks/{appointment-peek-BIZaDeCi.js.map → appointment-peek-WvNbE4JG.js.map} +1 -1
  11. package/dist/_chunks/{appointment-timeline-DmqYEIT9.js → appointment-timeline-Z0494xO-.js} +2 -2
  12. package/dist/_chunks/{appointment-timeline-DmqYEIT9.js.map → appointment-timeline-Z0494xO-.js.map} +1 -1
  13. package/dist/_chunks/{balance-badge-cell-zP-iN-Pd.js → balance-badge-cell-CII3SDmR.js} +3 -3
  14. package/dist/_chunks/{balance-badge-cell-zP-iN-Pd.js.map → balance-badge-cell-CII3SDmR.js.map} +1 -1
  15. package/dist/_chunks/{bmi-calculator-DTZhRhXe.js → bmi-calculator-C0UTxB7R.js} +2 -2
  16. package/dist/_chunks/{bmi-calculator-DTZhRhXe.js.map → bmi-calculator-C0UTxB7R.js.map} +1 -1
  17. package/dist/_chunks/{booking-uZO10TLK.js → booking-81WnKDsH.js} +4 -4
  18. package/dist/_chunks/{booking-uZO10TLK.js.map → booking-81WnKDsH.js.map} +1 -1
  19. package/dist/_chunks/{breadcrumb-xgVpPH2H.js → breadcrumb-Boan-5n8.js} +39 -39
  20. package/dist/_chunks/breadcrumb-Boan-5n8.js.map +1 -0
  21. package/dist/_chunks/{calculator-dialog-BRjZMWuE.js → calculator-dialog-CzQv03p0.js} +2 -2
  22. package/dist/_chunks/{calculator-dialog-BRjZMWuE.js.map → calculator-dialog-CzQv03p0.js.map} +1 -1
  23. package/dist/_chunks/{calendar-workspace-DVajSkKA.js → calendar-workspace-D5-k_9zE.js} +15 -15
  24. package/dist/_chunks/{calendar-workspace-DVajSkKA.js.map → calendar-workspace-D5-k_9zE.js.map} +1 -1
  25. package/dist/_chunks/{care-plan-card-Ddjh5Doc.js → care-plan-card-DxrRLRdW.js} +2 -2
  26. package/dist/_chunks/{care-plan-card-Ddjh5Doc.js.map → care-plan-card-DxrRLRdW.js.map} +1 -1
  27. package/dist/_chunks/{care-plan-header-BeMYMiI7.js → care-plan-header-BMwZIgHJ.js} +3 -3
  28. package/dist/_chunks/{care-plan-header-BeMYMiI7.js.map → care-plan-header-BMwZIgHJ.js.map} +1 -1
  29. package/dist/_chunks/chart-DQ5GxqgT.js +906 -0
  30. package/dist/_chunks/chart-DQ5GxqgT.js.map +1 -0
  31. package/dist/_chunks/{clinical-note-card-14JIoUR0.js → clinical-note-card-hx939bvw.js} +2 -2
  32. package/dist/_chunks/{clinical-note-card-14JIoUR0.js.map → clinical-note-card-hx939bvw.js.map} +1 -1
  33. package/dist/_chunks/{color-picker-BRQ4Y9SO.js → color-picker-BsggJovx.js} +128 -123
  34. package/dist/_chunks/color-picker-BsggJovx.js.map +1 -0
  35. package/dist/_chunks/{contact-card-CmK05vNb.js → contact-card-fHBMwEsx.js} +2 -2
  36. package/dist/_chunks/{contact-card-CmK05vNb.js.map → contact-card-fHBMwEsx.js.map} +1 -1
  37. package/dist/_chunks/{contact-profile-card-C5DbP_X3.js → contact-profile-card-CMyBYgRR.js} +3 -3
  38. package/dist/_chunks/{contact-profile-card-C5DbP_X3.js.map → contact-profile-card-CMyBYgRR.js.map} +1 -1
  39. package/dist/_chunks/{cycle-calculator-Dgfqr4Q4.js → cycle-calculator-Cww9DzIa.js} +2 -2
  40. package/dist/_chunks/{cycle-calculator-Dgfqr4Q4.js.map → cycle-calculator-Cww9DzIa.js.map} +1 -1
  41. package/dist/_chunks/dashboard-grid-DfEY2qci.js +844 -0
  42. package/dist/_chunks/dashboard-grid-DfEY2qci.js.map +1 -0
  43. package/dist/_chunks/{data-table-C6T31E33.js → data-table-fAMTeAjM.js} +2 -2
  44. package/dist/_chunks/{data-table-C6T31E33.js.map → data-table-fAMTeAjM.js.map} +1 -1
  45. package/dist/_chunks/{data-table-tabs-Xhg5G0gU.js → data-table-tabs-CHYAAeHy.js} +2 -2
  46. package/dist/_chunks/{data-table-tabs-Xhg5G0gU.js.map → data-table-tabs-CHYAAeHy.js.map} +1 -1
  47. package/dist/_chunks/{date-picker-wRAcq2lt.js → date-picker-BSZuKo13.js} +69 -62
  48. package/dist/_chunks/date-picker-BSZuKo13.js.map +1 -0
  49. package/dist/_chunks/{date-range-picker-BOvHwWO5.js → date-range-picker-CFk-5O3R.js} +188 -177
  50. package/dist/_chunks/date-range-picker-CFk-5O3R.js.map +1 -0
  51. package/dist/_chunks/{date-time-picker-CLeLKuv9.js → date-time-picker-CjxTkblD.js} +92 -85
  52. package/dist/_chunks/date-time-picker-CjxTkblD.js.map +1 -0
  53. package/dist/_chunks/{dependent-selector-Bet3XAFj.js → dependent-selector-DgaAQc-c.js} +91 -86
  54. package/dist/_chunks/dependent-selector-DgaAQc-c.js.map +1 -0
  55. package/dist/_chunks/{dialog-D52AI4nF.js → dialog-Dn-iQ0Jp.js} +86 -69
  56. package/dist/_chunks/dialog-Dn-iQ0Jp.js.map +1 -0
  57. package/dist/_chunks/{document-preview-uoTekVR7.js → document-preview-CHGGG0l_.js} +2 -2
  58. package/dist/_chunks/{document-preview-uoTekVR7.js.map → document-preview-CHGGG0l_.js.map} +1 -1
  59. package/dist/_chunks/{due-date-calculator-DXDJbUzo.js → due-date-calculator-D_qFUiHp.js} +3 -3
  60. package/dist/_chunks/{due-date-calculator-DXDJbUzo.js.map → due-date-calculator-D_qFUiHp.js.map} +1 -1
  61. package/dist/_chunks/{entity-summary-DcB0fIiv.js → entity-summary-CWcCSThK.js} +2 -2
  62. package/dist/_chunks/{entity-summary-DcB0fIiv.js.map → entity-summary-CWcCSThK.js.map} +1 -1
  63. package/dist/_chunks/{file-manager-dIJQUZvq.js → file-manager-CFsL1KVt.js} +4 -4
  64. package/dist/_chunks/{file-manager-dIJQUZvq.js.map → file-manager-CFsL1KVt.js.map} +1 -1
  65. package/dist/_chunks/{freemium-paywall-B6ojVXq7.js → freemium-paywall-DIKuhX8b.js} +90 -86
  66. package/dist/_chunks/freemium-paywall-DIKuhX8b.js.map +1 -0
  67. package/dist/_chunks/{gestational-age-calculator-BfGpt3du.js → gestational-age-calculator-CZi43xKG.js} +3 -3
  68. package/dist/_chunks/{gestational-age-calculator-BfGpt3du.js.map → gestational-age-calculator-CZi43xKG.js.map} +1 -1
  69. package/dist/_chunks/{hcg-doubling-BIYyI2Yo.js → hcg-doubling-Ccvh7OaU.js} +2 -2
  70. package/dist/_chunks/{hcg-doubling-BIYyI2Yo.js.map → hcg-doubling-Ccvh7OaU.js.map} +1 -1
  71. package/dist/_chunks/{header-settings-ge_3gYEq.js → header-settings-BMcCx2LC.js} +2 -2
  72. package/dist/_chunks/{header-settings-ge_3gYEq.js.map → header-settings-BMcCx2LC.js.map} +1 -1
  73. package/dist/_chunks/{heatmap-BARGZZt2.js → heatmap-BEeOThkW.js} +2 -2
  74. package/dist/_chunks/{heatmap-BARGZZt2.js.map → heatmap-BEeOThkW.js.map} +1 -1
  75. package/dist/_chunks/{help-me-write-templates-B7L3zGsE.js → help-me-write-templates-BUoYGo6f.js} +2 -2
  76. package/dist/_chunks/help-me-write-templates-BUoYGo6f.js.map +1 -0
  77. package/dist/_chunks/{hover-card-BnTueNS2.js → hover-card-U_ZYoh1n.js} +201 -187
  78. package/dist/_chunks/hover-card-U_ZYoh1n.js.map +1 -0
  79. package/dist/_chunks/{icon-picker-DWrqmI1c.js → icon-picker-C86lQTIA.js} +2 -2
  80. package/dist/_chunks/{icon-picker-DWrqmI1c.js.map → icon-picker-C86lQTIA.js.map} +1 -1
  81. package/dist/_chunks/{info-tip-B0jmIt6M.js → info-tip-CJpNpzZe.js} +2 -2
  82. package/dist/_chunks/{info-tip-B0jmIt6M.js.map → info-tip-CJpNpzZe.js.map} +1 -1
  83. package/dist/_chunks/{key-value-pair-Ax8IJr1M.js → key-value-pair-BNNITp6S.js} +25 -19
  84. package/dist/_chunks/key-value-pair-BNNITp6S.js.map +1 -0
  85. package/dist/_chunks/{kit-extensions-C9-v8Dih.js → kit-extensions-DYVxWcqv.js} +5 -5
  86. package/dist/_chunks/{kit-extensions-C9-v8Dih.js.map → kit-extensions-DYVxWcqv.js.map} +1 -1
  87. package/dist/_chunks/{link-cell-renderer-DlBVPMTi.js → link-cell-renderer-CxW_oLa5.js} +2 -2
  88. package/dist/_chunks/{link-cell-renderer-DlBVPMTi.js.map → link-cell-renderer-CxW_oLa5.js.map} +1 -1
  89. package/dist/_chunks/link-gRw3NtOt.js +137 -0
  90. package/dist/_chunks/link-gRw3NtOt.js.map +1 -0
  91. package/dist/_chunks/{locale-picker-DfNSdOpy.js → locale-picker-BGfrZyTw.js} +2 -2
  92. package/dist/_chunks/{locale-picker-DfNSdOpy.js.map → locale-picker-BGfrZyTw.js.map} +1 -1
  93. package/dist/_chunks/{marketplace-app-shell-Dcx-JEjg.js → marketplace-app-shell-BZcA9Z06.js} +143 -129
  94. package/dist/_chunks/marketplace-app-shell-BZcA9Z06.js.map +1 -0
  95. package/dist/_chunks/{message-tray-BB95DA82.js → message-tray-QKQutwxj.js} +76 -69
  96. package/dist/_chunks/message-tray-QKQutwxj.js.map +1 -0
  97. package/dist/_chunks/{nav-grid-BqCPH8sm.js → nav-grid-Byx8PxuB.js} +2 -2
  98. package/dist/_chunks/{nav-grid-BqCPH8sm.js.map → nav-grid-Byx8PxuB.js.map} +1 -1
  99. package/dist/_chunks/non-modal-tab-exit-j3CPOuE3.js +89 -0
  100. package/dist/_chunks/non-modal-tab-exit-j3CPOuE3.js.map +1 -0
  101. package/dist/_chunks/{note-attachment-I1NLoeRZ.js → note-attachment-Bt2cddsZ.js} +2 -2
  102. package/dist/_chunks/{note-attachment-I1NLoeRZ.js.map → note-attachment-Bt2cddsZ.js.map} +1 -1
  103. package/dist/_chunks/{note-timeline-CsY8YOE7.js → note-timeline-CX9nAgAR.js} +2 -2
  104. package/dist/_chunks/{note-timeline-CsY8YOE7.js.map → note-timeline-CX9nAgAR.js.map} +1 -1
  105. package/dist/_chunks/{notes-panel-I8ntrrUW.js → notes-panel-Cm4pttpl.js} +4 -4
  106. package/dist/_chunks/{notes-panel-I8ntrrUW.js.map → notes-panel-Cm4pttpl.js.map} +1 -1
  107. package/dist/_chunks/{notification-tray-__sJXnsz.js → notification-tray-C5VtbGjd.js} +83 -76
  108. package/dist/_chunks/notification-tray-C5VtbGjd.js.map +1 -0
  109. package/dist/_chunks/{patient-details-DsTtjpuX.js → patient-details-99kEdtc5.js} +2 -2
  110. package/dist/_chunks/{patient-details-DsTtjpuX.js.map → patient-details-99kEdtc5.js.map} +1 -1
  111. package/dist/_chunks/{patient-field-row-BvZ9luz-.js → patient-field-row-DkxY13T6.js} +5 -5
  112. package/dist/_chunks/{patient-field-row-BvZ9luz-.js.map → patient-field-row-DkxY13T6.js.map} +1 -1
  113. package/dist/_chunks/{patient-summary-card-3dspc2tR.js → patient-summary-card-opdyfeW2.js} +10 -6
  114. package/dist/_chunks/{patient-summary-card-3dspc2tR.js.map → patient-summary-card-opdyfeW2.js.map} +1 -1
  115. package/dist/_chunks/{payment-automation-upsell-DEUfM7EU.js → payment-automation-upsell-DiHovmUL.js} +2 -2
  116. package/dist/_chunks/{payment-automation-upsell-DEUfM7EU.js.map → payment-automation-upsell-DiHovmUL.js.map} +1 -1
  117. package/dist/_chunks/{payment-request-card-DAGqh9Yx.js → payment-request-card-DAniJNLX.js} +3 -3
  118. package/dist/_chunks/{payment-request-card-DAGqh9Yx.js.map → payment-request-card-DAniJNLX.js.map} +1 -1
  119. package/dist/_chunks/{pdf-viewer-C3minW5b.js → pdf-viewer-CNQxa4tv.js} +396 -391
  120. package/dist/_chunks/pdf-viewer-CNQxa4tv.js.map +1 -0
  121. package/dist/_chunks/{periodontal-chart-BqwLxy2m.js → periodontal-chart-DD5C0M3l.js} +2 -2
  122. package/dist/_chunks/{periodontal-chart-BqwLxy2m.js.map → periodontal-chart-DD5C0M3l.js.map} +1 -1
  123. package/dist/_chunks/{periodontal-chart-card-CWZ1YM1h.js → periodontal-chart-card-CxdXvsPU.js} +2 -2
  124. package/dist/_chunks/{periodontal-chart-card-CWZ1YM1h.js.map → periodontal-chart-card-CxdXvsPU.js.map} +1 -1
  125. package/dist/_chunks/{periodontal-diagnosis-C9IuvLId.js → periodontal-diagnosis-D-PJv7KS.js} +2 -2
  126. package/dist/_chunks/{periodontal-diagnosis-C9IuvLId.js.map → periodontal-diagnosis-D-PJv7KS.js.map} +1 -1
  127. package/dist/_chunks/{phone-input-DxkHMYmu.js → phone-input-O9camxkq.js} +156 -151
  128. package/dist/_chunks/phone-input-O9camxkq.js.map +1 -0
  129. package/dist/_chunks/popover-BG75rYjN.js +367 -0
  130. package/dist/_chunks/popover-BG75rYjN.js.map +1 -0
  131. package/dist/_chunks/{position-grid-D2D5_Tze.js → position-grid-CBB88EaH.js} +38 -36
  132. package/dist/_chunks/position-grid-CBB88EaH.js.map +1 -0
  133. package/dist/_chunks/{practice-results-DxOgbPDy.js → practice-results-CfRkjzsI.js} +2 -2
  134. package/dist/_chunks/{practice-results-DxOgbPDy.js.map → practice-results-CfRkjzsI.js.map} +1 -1
  135. package/dist/_chunks/{pregnancy-dating-R3q5n1Wh.js → pregnancy-dating-BFzv9g1N.js} +3 -3
  136. package/dist/_chunks/{pregnancy-dating-R3q5n1Wh.js.map → pregnancy-dating-BFzv9g1N.js.map} +1 -1
  137. package/dist/_chunks/{pregnancy-weight-gain-DwmNklDU.js → pregnancy-weight-gain-CUUrBTBo.js} +2 -2
  138. package/dist/_chunks/{pregnancy-weight-gain-DwmNklDU.js.map → pregnancy-weight-gain-CUUrBTBo.js.map} +1 -1
  139. package/dist/_chunks/{product-hub-panel-BSSiGGG4.js → product-hub-panel-DlVRK7Ue.js} +103 -96
  140. package/dist/_chunks/product-hub-panel-DlVRK7Ue.js.map +1 -0
  141. package/dist/_chunks/{public-footer-CxpG6J1M.js → public-footer-ZWTEG1Rq.js} +2 -2
  142. package/dist/_chunks/{public-footer-CxpG6J1M.js.map → public-footer-ZWTEG1Rq.js.map} +1 -1
  143. package/dist/_chunks/{public-header.agent-BWusjxY8.js → public-header.agent-BctevbuY.js} +2 -2
  144. package/dist/_chunks/{public-header.agent-BWusjxY8.js.map → public-header.agent-BctevbuY.js.map} +1 -1
  145. package/dist/_chunks/{radio-group-BT97ty7o.js → radio-group-DicxWJXP.js} +111 -106
  146. package/dist/_chunks/radio-group-DicxWJXP.js.map +1 -0
  147. package/dist/_chunks/{radiograph-panel.agent-BA90I3Mu.js → radiograph-panel.agent-DyqbTECc.js} +4 -4
  148. package/dist/_chunks/{radiograph-panel.agent-BA90I3Mu.js.map → radiograph-panel.agent-DyqbTECc.js.map} +1 -1
  149. package/dist/_chunks/{registration-form-D7iNqMBF.js → registration-form-BlTzYywa.js} +2 -2
  150. package/dist/_chunks/{registration-form-D7iNqMBF.js.map → registration-form-BlTzYywa.js.map} +1 -1
  151. package/dist/_chunks/{rich-text-editor-Blp4smUr.js → rich-text-editor-DTnNZ4Ff.js} +489 -484
  152. package/dist/_chunks/rich-text-editor-DTnNZ4Ff.js.map +1 -0
  153. package/dist/_chunks/{sheet-CNFW8mYZ.js → sheet-8qsiMoUI.js} +95 -79
  154. package/dist/_chunks/sheet-8qsiMoUI.js.map +1 -0
  155. package/dist/_chunks/{sign-document-B6HlyCGV.js → sign-document-D4iHS_Ug.js} +2 -2
  156. package/dist/_chunks/{sign-document-B6HlyCGV.js.map → sign-document-D4iHS_Ug.js.map} +1 -1
  157. package/dist/_chunks/{signature-request-rgMsgo-C.js → signature-request-DRuYAG5I.js} +2 -2
  158. package/dist/_chunks/{signature-request-rgMsgo-C.js.map → signature-request-DRuYAG5I.js.map} +1 -1
  159. package/dist/_chunks/{signed-out-frame-B2GTIeqA.js → signed-out-frame-AhMsNW1r.js} +2 -2
  160. package/dist/_chunks/{signed-out-frame-B2GTIeqA.js.map → signed-out-frame-AhMsNW1r.js.map} +1 -1
  161. package/dist/_chunks/{stat-51CDL4au.js → stat-DmjGfXND.js} +117 -108
  162. package/dist/_chunks/stat-DmjGfXND.js.map +1 -0
  163. package/dist/_chunks/{stepper-accordion-D7lnBGh2.js → stepper-accordion-DDTSOUHc.js} +17 -6
  164. package/dist/_chunks/stepper-accordion-DDTSOUHc.js.map +1 -0
  165. package/dist/_chunks/{task-editor-Ctxsa1BY.js → task-editor-NkcopDna.js} +4 -4
  166. package/dist/_chunks/{task-editor-Ctxsa1BY.js.map → task-editor-NkcopDna.js.map} +1 -1
  167. package/dist/_chunks/{use-appointment-details-read-DinTrRIW.js → use-appointment-details-read-CfFQNOF_.js} +5 -5
  168. package/dist/_chunks/{use-appointment-details-read-DinTrRIW.js.map → use-appointment-details-read-CfFQNOF_.js.map} +1 -1
  169. package/dist/_chunks/use-select-on-arrow-Cr4iBuW5.js +26 -0
  170. package/dist/_chunks/use-select-on-arrow-Cr4iBuW5.js.map +1 -0
  171. package/dist/_chunks/{voice-control-panel-Bg1eklL0.js → voice-control-panel-BKbgb7FM.js} +2 -2
  172. package/dist/_chunks/{voice-control-panel-Bg1eklL0.js.map → voice-control-panel-BKbgb7FM.js.map} +1 -1
  173. package/dist/_chunks/{widget-picker-D8RiWrJd.js → widget-picker-rBA7MR5P.js} +2 -2
  174. package/dist/_chunks/{widget-picker-D8RiWrJd.js.map → widget-picker-rBA7MR5P.js.map} +1 -1
  175. package/dist/_chunks/{workflow-map-D3mezmGB.js → workflow-map-Demlpy39.js} +2 -2
  176. package/dist/_chunks/{workflow-map-D3mezmGB.js.map → workflow-map-Demlpy39.js.map} +1 -1
  177. package/dist/agent-catalog.json +28 -11
  178. package/dist/agent-i18n/en.json +8 -7
  179. package/dist/components/_shared/non-modal-tab-exit.d.ts +19 -0
  180. package/dist/components/_shared/non-modal-tab-exit.d.ts.map +1 -0
  181. package/dist/components/_shared/use-apex-chart-semantics.d.ts +6 -0
  182. package/dist/components/_shared/use-apex-chart-semantics.d.ts.map +1 -0
  183. package/dist/components/_shared/use-select-on-arrow.d.ts +20 -0
  184. package/dist/components/_shared/use-select-on-arrow.d.ts.map +1 -0
  185. package/dist/components/ai-credits-notice/index.js +1 -1
  186. package/dist/components/ai-permission-notice/ai-permission-notice.d.ts +32 -0
  187. package/dist/components/ai-permission-notice/ai-permission-notice.d.ts.map +1 -1
  188. package/dist/components/ai-permission-notice/index.d.ts +1 -1
  189. package/dist/components/ai-permission-notice/index.d.ts.map +1 -1
  190. package/dist/components/ai-permission-notice/index.js +1 -1
  191. package/dist/components/appointment-details-panel/index.js +1 -1
  192. package/dist/components/appointment-peek/index.js +1 -1
  193. package/dist/components/appointment-timeline/index.js +1 -1
  194. package/dist/components/bmi-calculator/index.js +1 -1
  195. package/dist/components/booking/index.js +1 -1
  196. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -1
  197. package/dist/components/breadcrumb/index.js +1 -1
  198. package/dist/components/calculator-dialog/index.js +1 -1
  199. package/dist/components/care-plan-card/index.js +1 -1
  200. package/dist/components/care-plan-header/index.js +1 -1
  201. package/dist/components/chart/chart.d.ts +15 -10
  202. package/dist/components/chart/chart.d.ts.map +1 -1
  203. package/dist/components/chart/index.js +1 -1
  204. package/dist/components/clinical-note-card/index.js +1 -1
  205. package/dist/components/color-picker/color-picker.d.ts.map +1 -1
  206. package/dist/components/color-picker/index.js +1 -1
  207. package/dist/components/contact-card/index.js +1 -1
  208. package/dist/components/contact-profile-card/index.js +1 -1
  209. package/dist/components/cycle-calculator/index.js +1 -1
  210. package/dist/components/dashboard-grid/dashboard-grid-engine.d.ts +22 -0
  211. package/dist/components/dashboard-grid/dashboard-grid-engine.d.ts.map +1 -1
  212. package/dist/components/dashboard-grid/dashboard-grid.agent.d.ts.map +1 -1
  213. package/dist/components/dashboard-grid/dashboard-grid.d.ts +48 -4
  214. package/dist/components/dashboard-grid/dashboard-grid.d.ts.map +1 -1
  215. package/dist/components/dashboard-grid/index.js +1 -1
  216. package/dist/components/data-table/index.js +2 -2
  217. package/dist/components/data-table-tabs/index.js +1 -1
  218. package/dist/components/date-picker/date-picker.d.ts.map +1 -1
  219. package/dist/components/date-picker/index.js +1 -1
  220. package/dist/components/date-range-picker/date-range-picker.d.ts.map +1 -1
  221. package/dist/components/date-range-picker/index.js +1 -1
  222. package/dist/components/date-time-picker/date-time-picker.d.ts.map +1 -1
  223. package/dist/components/date-time-picker/index.js +1 -1
  224. package/dist/components/dependent-selector/dependent-selector.d.ts.map +1 -1
  225. package/dist/components/dependent-selector/index.js +1 -1
  226. package/dist/components/dialog/dialog.d.ts +2 -2
  227. package/dist/components/dialog/dialog.d.ts.map +1 -1
  228. package/dist/components/dialog/index.js +1 -1
  229. package/dist/components/document-preview/index.js +1 -1
  230. package/dist/components/due-date-calculator/index.js +1 -1
  231. package/dist/components/entity-summary/index.js +1 -1
  232. package/dist/components/file-manager/index.js +1 -1
  233. package/dist/components/freemium-paywall/freemium-paywall.d.ts.map +1 -1
  234. package/dist/components/freemium-paywall/index.js +1 -1
  235. package/dist/components/gestational-age-calculator/index.js +1 -1
  236. package/dist/components/hcg-doubling/index.js +1 -1
  237. package/dist/components/header-settings/index.js +1 -1
  238. package/dist/components/heatmap/index.js +1 -1
  239. package/dist/components/hover-card/hover-card.d.ts.map +1 -1
  240. package/dist/components/hover-card/index.js +1 -1
  241. package/dist/components/icon-picker/index.js +1 -1
  242. package/dist/components/info-tip/index.js +1 -1
  243. package/dist/components/key-value-pair/index.js +1 -1
  244. package/dist/components/key-value-pair/key-value-pair.d.ts.map +1 -1
  245. package/dist/components/link/index.js +1 -1
  246. package/dist/components/link/link.d.ts +5 -3
  247. package/dist/components/link/link.d.ts.map +1 -1
  248. package/dist/components/locale-picker/index.js +1 -1
  249. package/dist/components/message-tray/index.js +1 -1
  250. package/dist/components/message-tray/message-tray.d.ts.map +1 -1
  251. package/dist/components/nav-grid/index.js +1 -1
  252. package/dist/components/note-timeline/index.js +1 -1
  253. package/dist/components/notes-panel/index.js +1 -1
  254. package/dist/components/notification-tray/index.js +1 -1
  255. package/dist/components/notification-tray/notification-tray.d.ts.map +1 -1
  256. package/dist/components/patient-details/index.js +1 -1
  257. package/dist/components/patient-summary-card/index.js +1 -1
  258. package/dist/components/patient-summary-card/patient-summary-card.d.ts.map +1 -1
  259. package/dist/components/patient-table/index.js +1 -1
  260. package/dist/components/payment-card/index.js +1 -1
  261. package/dist/components/pdf-viewer/index.js +1 -1
  262. package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +1 -1
  263. package/dist/components/periodontal-chart/index.js +1 -1
  264. package/dist/components/periodontal-chart-card/index.js +1 -1
  265. package/dist/components/periodontal-diagnosis/index.js +1 -1
  266. package/dist/components/phone-input/index.js +1 -1
  267. package/dist/components/phone-input/phone-input.d.ts.map +1 -1
  268. package/dist/components/popover/index.js +1 -1
  269. package/dist/components/popover/popover.d.ts +1 -1
  270. package/dist/components/popover/popover.d.ts.map +1 -1
  271. package/dist/components/position-grid/index.js +1 -1
  272. package/dist/components/position-grid/position-grid.d.ts.map +1 -1
  273. package/dist/components/practice-results/index.js +1 -1
  274. package/dist/components/pregnancy-dating/index.js +1 -1
  275. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  276. package/dist/components/product-hub-tray/index.js +1 -1
  277. package/dist/components/product-hub-tray/product-hub-tray.d.ts.map +1 -1
  278. package/dist/components/public-footer/index.js +1 -1
  279. package/dist/components/public-header/index.js +1 -1
  280. package/dist/components/radio-group/index.js +1 -1
  281. package/dist/components/radio-group/radio-group.d.ts.map +1 -1
  282. package/dist/components/radiograph-panel/index.js +1 -1
  283. package/dist/components/rich-text-editor/editor-toolbar.d.ts.map +1 -1
  284. package/dist/components/rich-text-editor/index.js +2 -2
  285. package/dist/components/sheet/index.js +1 -1
  286. package/dist/components/sheet/sheet.d.ts +2 -2
  287. package/dist/components/sheet/sheet.d.ts.map +1 -1
  288. package/dist/components/sign-document/index.js +1 -1
  289. package/dist/components/stat/index.d.ts +1 -1
  290. package/dist/components/stat/index.d.ts.map +1 -1
  291. package/dist/components/stat/index.js +1 -1
  292. package/dist/components/stat/stat.d.ts +9 -0
  293. package/dist/components/stat/stat.d.ts.map +1 -1
  294. package/dist/components/stepper-accordion/index.js +1 -1
  295. package/dist/components/stepper-accordion/stepper-accordion.d.ts.map +1 -1
  296. package/dist/components/task-editor/index.js +1 -1
  297. package/dist/components/voice-control-panel/index.js +1 -1
  298. package/dist/components/widget-picker/index.js +1 -1
  299. package/dist/components/workflow/index.js +1 -1
  300. package/dist/host-legacy.css +13 -2
  301. package/dist/i18n/locales/ar.d.ts +17 -2
  302. package/dist/i18n/locales/ar.d.ts.map +1 -1
  303. package/dist/i18n/locales/ar.js +20 -5
  304. package/dist/i18n/locales/ar.js.map +1 -1
  305. package/dist/i18n/locales/de.d.ts +17 -2
  306. package/dist/i18n/locales/de.d.ts.map +1 -1
  307. package/dist/i18n/locales/de.js +20 -5
  308. package/dist/i18n/locales/de.js.map +1 -1
  309. package/dist/i18n/locales/el.d.ts +17 -2
  310. package/dist/i18n/locales/el.d.ts.map +1 -1
  311. package/dist/i18n/locales/el.js +20 -5
  312. package/dist/i18n/locales/el.js.map +1 -1
  313. package/dist/i18n/locales/en.d.ts +17 -2
  314. package/dist/i18n/locales/en.d.ts.map +1 -1
  315. package/dist/i18n/locales/en.js +20 -5
  316. package/dist/i18n/locales/en.js.map +1 -1
  317. package/dist/i18n/locales/es.d.ts +17 -2
  318. package/dist/i18n/locales/es.d.ts.map +1 -1
  319. package/dist/i18n/locales/es.js +20 -5
  320. package/dist/i18n/locales/es.js.map +1 -1
  321. package/dist/i18n/locales/fr.d.ts +17 -2
  322. package/dist/i18n/locales/fr.d.ts.map +1 -1
  323. package/dist/i18n/locales/fr.js +20 -5
  324. package/dist/i18n/locales/fr.js.map +1 -1
  325. package/dist/i18n/locales/hi.d.ts +17 -2
  326. package/dist/i18n/locales/hi.d.ts.map +1 -1
  327. package/dist/i18n/locales/hi.js +20 -5
  328. package/dist/i18n/locales/hi.js.map +1 -1
  329. package/dist/i18n/locales/it.d.ts +17 -2
  330. package/dist/i18n/locales/it.d.ts.map +1 -1
  331. package/dist/i18n/locales/it.js +20 -5
  332. package/dist/i18n/locales/it.js.map +1 -1
  333. package/dist/i18n/locales/ja.d.ts +17 -2
  334. package/dist/i18n/locales/ja.d.ts.map +1 -1
  335. package/dist/i18n/locales/ja.js +20 -5
  336. package/dist/i18n/locales/ja.js.map +1 -1
  337. package/dist/i18n/locales/nl.d.ts +17 -2
  338. package/dist/i18n/locales/nl.d.ts.map +1 -1
  339. package/dist/i18n/locales/nl.js +20 -5
  340. package/dist/i18n/locales/nl.js.map +1 -1
  341. package/dist/i18n/locales/pl.d.ts +17 -2
  342. package/dist/i18n/locales/pl.d.ts.map +1 -1
  343. package/dist/i18n/locales/pl.js +20 -5
  344. package/dist/i18n/locales/pl.js.map +1 -1
  345. package/dist/i18n/locales/pt.d.ts +17 -2
  346. package/dist/i18n/locales/pt.d.ts.map +1 -1
  347. package/dist/i18n/locales/pt.js +20 -5
  348. package/dist/i18n/locales/pt.js.map +1 -1
  349. package/dist/i18n/locales/ro.d.ts +17 -2
  350. package/dist/i18n/locales/ro.d.ts.map +1 -1
  351. package/dist/i18n/locales/ro.js +20 -5
  352. package/dist/i18n/locales/ro.js.map +1 -1
  353. package/dist/i18n/locales/ru.d.ts +17 -2
  354. package/dist/i18n/locales/ru.d.ts.map +1 -1
  355. package/dist/i18n/locales/ru.js +20 -5
  356. package/dist/i18n/locales/ru.js.map +1 -1
  357. package/dist/i18n/locales/sq.d.ts +17 -2
  358. package/dist/i18n/locales/sq.d.ts.map +1 -1
  359. package/dist/i18n/locales/sq.js +20 -5
  360. package/dist/i18n/locales/sq.js.map +1 -1
  361. package/dist/i18n/locales/sv.d.ts +17 -2
  362. package/dist/i18n/locales/sv.d.ts.map +1 -1
  363. package/dist/i18n/locales/sv.js +20 -5
  364. package/dist/i18n/locales/sv.js.map +1 -1
  365. package/dist/i18n/locales/tr.d.ts +17 -2
  366. package/dist/i18n/locales/tr.d.ts.map +1 -1
  367. package/dist/i18n/locales/tr.js +20 -5
  368. package/dist/i18n/locales/tr.js.map +1 -1
  369. package/dist/i18n/locales/zh.d.ts +17 -2
  370. package/dist/i18n/locales/zh.d.ts.map +1 -1
  371. package/dist/i18n/locales/zh.js +20 -5
  372. package/dist/i18n/locales/zh.js.map +1 -1
  373. package/dist/index.js +207 -206
  374. package/dist/locales/ar.json +20 -5
  375. package/dist/locales/de.json +20 -5
  376. package/dist/locales/el.json +20 -5
  377. package/dist/locales/en.json +20 -5
  378. package/dist/locales/es.json +20 -5
  379. package/dist/locales/fr.json +20 -5
  380. package/dist/locales/hi.json +20 -5
  381. package/dist/locales/it.json +20 -5
  382. package/dist/locales/ja.json +20 -5
  383. package/dist/locales/nl.json +20 -5
  384. package/dist/locales/pl.json +20 -5
  385. package/dist/locales/pt.json +20 -5
  386. package/dist/locales/ro.json +20 -5
  387. package/dist/locales/ru.json +20 -5
  388. package/dist/locales/sq.json +20 -5
  389. package/dist/locales/sv.json +20 -5
  390. package/dist/locales/tr.json +20 -5
  391. package/dist/locales/zh.json +20 -5
  392. package/dist/patterns/alia-assistant/alia-asteroid-icon.d.ts +10 -13
  393. package/dist/patterns/alia-assistant/alia-asteroid-icon.d.ts.map +1 -1
  394. package/dist/patterns/alia-assistant/alia-chat-surface.d.ts.map +1 -1
  395. package/dist/patterns/alia-assistant/alia-popout.d.ts +5 -3
  396. package/dist/patterns/alia-assistant/alia-popout.d.ts.map +1 -1
  397. package/dist/patterns/alia-assistant/index.d.ts +2 -0
  398. package/dist/patterns/alia-assistant/index.d.ts.map +1 -1
  399. package/dist/patterns/alia-assistant/index.js +6 -5
  400. package/dist/patterns/anamnesis/index.js +1 -1
  401. package/dist/patterns/calendar/index.js +1 -1
  402. package/dist/patterns/help-me-write-templates/help-me-write-templates.d.ts +2 -2
  403. package/dist/patterns/help-me-write-templates/help-me-write-templates.d.ts.map +1 -1
  404. package/dist/patterns/help-me-write-templates/index.js +1 -1
  405. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  406. package/dist/patterns/marketplace-app-shell/marketplace-app-shell.d.ts +7 -2
  407. package/dist/patterns/marketplace-app-shell/marketplace-app-shell.d.ts.map +1 -1
  408. package/dist/patterns/payment-automation-upsell/index.js +1 -1
  409. package/dist/patterns/registration-form/index.js +1 -1
  410. package/dist/patterns/signature-request/index.js +1 -1
  411. package/dist/patterns/signed-out-frame/index.js +1 -1
  412. package/dist/tokens.css +13 -2
  413. package/package.json +1 -1
  414. package/dist/_chunks/ai-permission-notice-5vpblPCx.js +0 -171
  415. package/dist/_chunks/ai-permission-notice-5vpblPCx.js.map +0 -1
  416. package/dist/_chunks/alia-sidebar-DS0b54Mv.js +0 -1183
  417. package/dist/_chunks/alia-sidebar-DS0b54Mv.js.map +0 -1
  418. package/dist/_chunks/breadcrumb-xgVpPH2H.js.map +0 -1
  419. package/dist/_chunks/chart-C2RBJERE.js +0 -705
  420. package/dist/_chunks/chart-C2RBJERE.js.map +0 -1
  421. package/dist/_chunks/color-picker-BRQ4Y9SO.js.map +0 -1
  422. package/dist/_chunks/dashboard-grid-SAGoyCtL.js +0 -691
  423. package/dist/_chunks/dashboard-grid-SAGoyCtL.js.map +0 -1
  424. package/dist/_chunks/date-picker-wRAcq2lt.js.map +0 -1
  425. package/dist/_chunks/date-range-picker-BOvHwWO5.js.map +0 -1
  426. package/dist/_chunks/date-time-picker-CLeLKuv9.js.map +0 -1
  427. package/dist/_chunks/dependent-selector-Bet3XAFj.js.map +0 -1
  428. package/dist/_chunks/dialog-D52AI4nF.js.map +0 -1
  429. package/dist/_chunks/freemium-paywall-B6ojVXq7.js.map +0 -1
  430. package/dist/_chunks/help-me-write-templates-B7L3zGsE.js.map +0 -1
  431. package/dist/_chunks/hover-card-BnTueNS2.js.map +0 -1
  432. package/dist/_chunks/key-value-pair-Ax8IJr1M.js.map +0 -1
  433. package/dist/_chunks/link-2HokYuIi.js +0 -130
  434. package/dist/_chunks/link-2HokYuIi.js.map +0 -1
  435. package/dist/_chunks/marketplace-app-shell-Dcx-JEjg.js.map +0 -1
  436. package/dist/_chunks/message-tray-BB95DA82.js.map +0 -1
  437. package/dist/_chunks/notification-tray-__sJXnsz.js.map +0 -1
  438. package/dist/_chunks/pdf-viewer-C3minW5b.js.map +0 -1
  439. package/dist/_chunks/phone-input-DxkHMYmu.js.map +0 -1
  440. package/dist/_chunks/popover-BI3oV3eY.js +0 -305
  441. package/dist/_chunks/popover-BI3oV3eY.js.map +0 -1
  442. package/dist/_chunks/position-grid-D2D5_Tze.js.map +0 -1
  443. package/dist/_chunks/product-hub-panel-BSSiGGG4.js.map +0 -1
  444. package/dist/_chunks/radio-group-BT97ty7o.js.map +0 -1
  445. package/dist/_chunks/rich-text-editor-Blp4smUr.js.map +0 -1
  446. package/dist/_chunks/sheet-CNFW8mYZ.js.map +0 -1
  447. package/dist/_chunks/stat-51CDL4au.js.map +0 -1
  448. package/dist/_chunks/stepper-accordion-D7lnBGh2.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-time-picker-CjxTkblD.js","sources":["../../node_modules/date-fns/setHours.js","../../node_modules/date-fns/setMinutes.js","../../src/components/date-time-picker/date-time-picker.agent.ts","../../src/components/date-time-picker/date-time-picker.tsx"],"sourcesContent":["import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setHours} function options.\n */\n\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param hours - The hours of the new date\n * @param options - An object with options\n *\n * @returns The new date with the hours set\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * const result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\nexport function setHours(date, hours, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(hours);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setHours;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setMinutes} function options.\n */\n\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows using extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, returned from the context function, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param minutes - The minutes of the new date\n * @param options - An object with options\n *\n * @returns The new date with the minutes set\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\nexport function setMinutes(date, minutes, options) {\n const date_ = toDate(date, options?.in);\n date_.setMinutes(minutes);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default setMinutes;\n","/* -------------------------------------------------------------------- */\n/* Agent adapter — DateTimePicker. */\n/* */\n/* DateTimePicker composes a react-day-picker calendar grid with the */\n/* TimePicker segments inside a single Radix Popover. The agent surface */\n/* exposes a combined datetime — set / clear / open / close. The handle */\n/* is the curated surface; consumers don't address the inner sub-widgets.*/\n/* */\n/* See `src/docs/26-agent-readiness.mdx` §15. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { DateTimePickerHandle } from './date-time-picker';\n\nexport const dateTimePickerAgent: AgentAdapter<DateTimePickerHandle> = {\n id: 'date-time-picker',\n // Persisted single datetime (value state + set_datetime) → select_single +\n // set_value, plus open/close of the combined popover.\n capabilities: ['select_single', 'set_value', 'open', 'close'],\n state: {\n value: {\n type: 'iso-datetime',\n descriptionKey: 'ui.agent.dateTimePicker.state.value',\n description: 'Currently-selected ISO datetime, or null.',\n read: (handle) => handle.getValue()?.toISOString() ?? null,\n },\n isOpen: {\n type: 'boolean',\n descriptionKey: 'ui.agent.dateTimePicker.state.isOpen',\n description: 'Whether the datetime popover is open.',\n read: (handle) => handle.isOpen(),\n },\n },\n actions: {\n set_datetime: {\n safety: 'write',\n argsType: '{ datetime: string }',\n argsSchema: {\n type: 'object',\n properties: {\n datetime: {\n type: 'string',\n format: 'date-time',\n description: 'ISO datetime, e.g. \"2026-06-23T14:30:00Z\".',\n },\n },\n required: ['datetime'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.dateTimePicker.actions.setDatetime',\n description: 'Select a specific datetime (ISO string).',\n examples: [\n {\n args: { datetime: '2026-06-23T14:30:00Z' },\n note: 'Select 23 Jun 2026, 14:30 UTC.',\n },\n ],\n invoke: (handle, args: { datetime: string }) => {\n handle.setValue(new Date(args.datetime));\n },\n },\n clear: {\n // Discards the selected datetime — loses the user's input.\n safety: 'destructive',\n idempotent: true,\n descriptionKey: 'ui.agent.dateTimePicker.actions.clear',\n description: 'Clear the selected datetime.',\n invoke: (handle) => {\n handle.clear();\n },\n },\n open: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.dateTimePicker.actions.open',\n description: 'Open the datetime popover.',\n invoke: (handle) => {\n handle.open();\n },\n },\n close: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.dateTimePicker.actions.close',\n description: 'Close the datetime popover.',\n invoke: (handle) => {\n handle.close();\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'date-time-picker',\n description: 'Marks the DateTimePicker wrapper.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport * as Popover from '@radix-ui/react-popover';\nimport {\n findPopoverTrigger,\n useNonModalTabExit,\n} from '../_shared/non-modal-tab-exit';\nimport { Spinner } from '../spinner';\nimport { useDayPickerLabels } from '../_shared/day-picker-labels';\nimport { DayPicker } from 'react-day-picker';\nimport { isBefore, isAfter, setHours, setMinutes } from 'date-fns';\nimport { CalendarDays } from 'lucide-react';\nimport { useControllableState } from '../../hooks/use-controllable-state';\nimport {\n useFormField,\n useFormFieldControlId,\n} from '../form-field/form-field-context';\nimport {\n useDateFnsLocale,\n buildDisabledMatcher,\n CalendarChevron,\n calendarClassNames,\n triggerVariants,\n calendarIconVariants,\n popoverContentVariants,\n} from '../_shared';\nimport { TimePicker } from '../time-picker/time-picker';\nimport type { TimeValue } from '../_shared/time';\nimport { formatLocale } from '../_shared/intl-locale';\nimport { useAgentRegistration } from '../../agent';\nimport { dateTimePickerAgent } from './date-time-picker.agent';\n\n/* -------------------------------------------------------------------------- */\n/* Imperative handle */\n/* -------------------------------------------------------------------------- */\n\n/** Curated imperative handle exposed via `ref` — also consumed by the agent adapter. */\nexport interface DateTimePickerHandle {\n /** Get the current selected datetime, or undefined. */\n getValue: () => Date | undefined;\n /** Set the selected datetime. */\n setValue: (date: Date | undefined) => void;\n /** Clear the selected datetime. */\n clear: () => void;\n /** Whether the popover is open. */\n isOpen: () => boolean;\n /** Open the popover. */\n open: () => void;\n /** Close the popover. */\n close: () => void;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Helpers */\n/* -------------------------------------------------------------------------- */\n\n/** Get timezone short name. */\nfunction getTimezoneLabel(locale: string, timezone?: string): string {\n try {\n const opts: Intl.DateTimeFormatOptions = { timeZoneName: 'short' };\n if (timezone && timezone !== 'local') {\n opts.timeZone = timezone === 'utc' ? 'UTC' : timezone;\n }\n const parts = new Intl.DateTimeFormat(locale, opts).formatToParts(\n new Date(),\n );\n return parts.find((p) => p.type === 'timeZoneName')?.value ?? '';\n } catch {\n return '';\n }\n}\n\n/** Check if a timezone differs from the browser's. */\nfunction tzDiffersFromBrowser(timezone?: string): boolean {\n if (!timezone || timezone === 'local') return false;\n try {\n const browserTz = Intl.DateTimeFormat().resolvedOptions().timeZone;\n if (timezone === 'utc') return browserTz !== 'UTC';\n return browserTz !== timezone;\n } catch {\n return false;\n }\n}\n\n/* -------------------------------------------------------------------------- */\n/* CVA variants */\n/* -------------------------------------------------------------------------- */\n\nconst applyButtonVariants = cva(\n [\n 'ds:w-full ds:rounded-[var(--radius-sm)]',\n 'ds:bg-primary ds:text-primary-foreground',\n 'ds:hover:bg-primary-hover ds:cursor-pointer',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\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 ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:h-8 ds:text-[length:var(--font-size-sm)]',\n md: 'ds:h-[var(--min-target-size)] ds:text-[length:var(--font-size-base)]',\n lg: 'ds:h-12 ds:text-[length:var(--font-size-lg)]',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\n/* -------------------------------------------------------------------------- */\n/* Props */\n/* -------------------------------------------------------------------------- */\n\nexport interface DateTimePickerProps extends Pick<\n VariantProps<typeof triggerVariants>,\n 'size'\n> {\n /** Current datetime — controlled. */\n value?: Date;\n /** Default datetime — uncontrolled. */\n defaultValue?: Date;\n /** Called when the datetime changes. */\n onChange?: (date: Date | undefined) => void;\n /** Timezone — IANA string, 'local', or 'utc'. */\n timezone?: string;\n /** Show timezone annotation. Defaults to true when tz differs from browser. */\n showTimezone?: boolean;\n /** Minimum datetime. */\n minDate?: Date;\n /** Maximum datetime. */\n maxDate?: Date;\n /** Force 12h/24h mode. */\n hour12?: boolean;\n /** Minute step for TimePicker. */\n minuteStep?: 1 | 5 | 10 | 15 | 30;\n /** Component size. */\n size?: 'sm' | 'md' | 'lg';\n /** Disabled state. */\n disabled?: boolean;\n /** Placeholder text. */\n placeholder?: string;\n /** Additional class names. */\n className?: string;\n /** id override. */\n id?: string;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Component */\n/* -------------------------------------------------------------------------- */\n\nexport const DateTimePicker = forwardRef<\n DateTimePickerHandle,\n DateTimePickerProps\n>(\n (\n {\n value,\n defaultValue,\n onChange,\n timezone,\n showTimezone: showTimezoneProp,\n minDate,\n maxDate,\n hour12,\n minuteStep = 1,\n size = 'md',\n disabled,\n placeholder,\n className,\n id,\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation('ui');\n const ctx = useFormField();\n const effectiveId = useFormFieldControlId(ctx, id);\n const effectiveDisabled = ctx.disabled || disabled;\n const effectiveTone = ctx.invalid ? 'error' : 'default';\n\n const locale = useDateFnsLocale(i18n.language);\n const calendarLabels = useDayPickerLabels();\n const placeholderText =\n placeholder ??\n t('inputs.dateTimePicker.placeholder', 'Select date and time');\n const applyLabel = t('inputs.dateTimePicker.apply', 'Apply');\n const outOfRangeLabel = t(\n 'inputs.dateTimePicker.outOfRange',\n 'Date/time is out of allowed range',\n );\n\n const showTimezone =\n showTimezoneProp !== undefined\n ? showTimezoneProp\n : tzDiffersFromBrowser(timezone);\n const timezoneLabel = showTimezone\n ? getTimezoneLabel(i18n.language, timezone)\n : '';\n\n const [currentValueRaw, setDateTimeValue] = useControllableState<\n Date | undefined\n >({\n value,\n defaultValue,\n onChange,\n });\n const currentValue = currentValueRaw;\n\n // Draft state while popover is open\n const [draftDate, setDraftDate] = useState<Date | undefined>(currentValue);\n const [open, setOpen] = useState(false);\n const [month, setMonth] = useState<Date>(currentValue ?? new Date());\n const [rangeError, setRangeError] = useState(false);\n\n const triggerRef = useRef<HTMLButtonElement>(null);\n\n const emit = useCallback(\n (date: Date | undefined) => {\n setDateTimeValue(date);\n },\n [setDateTimeValue],\n );\n\n const disabledMatcher = buildDisabledMatcher(minDate, maxDate);\n\n /** Check if a full datetime is within range. */\n const isInRange = useCallback(\n (date: Date): boolean => {\n if (minDate && isBefore(date, minDate)) return false;\n if (maxDate && isAfter(date, maxDate)) return false;\n return true;\n },\n [minDate, maxDate],\n );\n\n // Sync draft when popover opens\n const handleOpenChange = (nextOpen: boolean) => {\n if (nextOpen) {\n setDraftDate(currentValue ?? new Date());\n setMonth(currentValue ?? new Date());\n setRangeError(false);\n }\n setOpen(nextOpen);\n };\n\n const handleDaySelect = (date: Date | undefined) => {\n if (!date) return;\n const prev = draftDate ?? new Date();\n const merged = setMinutes(\n setHours(date, prev.getHours()),\n prev.getMinutes(),\n );\n setDraftDate(merged);\n setRangeError(!isInRange(merged));\n };\n\n const handleTimeChange = (time: TimeValue) => {\n const prev = draftDate ?? new Date();\n const merged = setMinutes(setHours(prev, time.hours), time.minutes);\n setDraftDate(merged);\n setRangeError(!isInRange(merged));\n };\n\n const handleApply = () => {\n if (!draftDate) return;\n if (!isInRange(draftDate)) {\n setRangeError(true);\n return;\n }\n emit(draftDate);\n setOpen(false);\n triggerRef.current?.focus();\n };\n\n // Format display text\n const displayText = currentValue\n ? new Intl.DateTimeFormat(formatLocale(i18n.language), {\n calendar: 'gregory',\n dateStyle: 'medium',\n timeStyle: 'short',\n hourCycle: 'h23',\n }).format(currentValue)\n : '';\n\n const calendarLabel = t('inputs.datePicker.gridLabel', 'Calendar');\n const timeLabel = t('inputs.timePicker.groupLabel', 'Time');\n\n const handle = useMemo<DateTimePickerHandle>(\n () => ({\n getValue: () => currentValue,\n setValue: (date) => emit(date),\n clear: () => emit(undefined),\n isOpen: () => open,\n // Mirror the trigger's open behaviour so draft state seeds correctly.\n open: () => {\n setDraftDate(currentValue ?? new Date());\n setMonth(currentValue ?? new Date());\n setRangeError(false);\n setOpen(true);\n },\n close: () => setOpen(false),\n }),\n [currentValue, emit, open],\n );\n\n useImperativeHandle(ref, () => handle, [handle]);\n useAgentRegistration(dateTimePickerAgent, handle, effectiveId);\n const exitOnTab = useNonModalTabExit(true, {\n getAnchor: findPopoverTrigger,\n onReturnToTrigger: () => handleOpenChange(false),\n });\n\n return (\n <Popover.Root open={open} onOpenChange={handleOpenChange}>\n <div\n className={className}\n data-component=\"date-time-picker\"\n data-component-id={effectiveId}\n >\n <Popover.Trigger asChild disabled={effectiveDisabled}>\n {/* eslint-disable-next-line jsx-a11y/role-supports-aria-props -- FormField propagates invalid state to its trigger; users rely on this for validation announcements */}\n <button\n ref={triggerRef}\n id={effectiveId}\n type=\"button\"\n disabled={effectiveDisabled}\n aria-describedby={ctx.describedBy || undefined}\n aria-invalid={ctx.invalid || undefined}\n // `aria-required` is not valid on `<button>` per ARIA 1.2 — the\n // FormField label's visible asterisk + `aria-describedby` link\n // communicate the required state instead.\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n className={triggerVariants({ size, tone: effectiveTone })}\n >\n <span\n className={\n displayText\n ? 'ds:text-foreground'\n : 'ds:text-muted-foreground'\n }\n >\n {displayText || placeholderText}\n </span>\n <span\n aria-hidden=\"true\"\n className={calendarIconVariants({ size })}\n >\n <CalendarDays />\n </span>\n </button>\n </Popover.Trigger>\n\n <Popover.Portal>\n <Popover.Content\n sideOffset={4}\n align=\"start\"\n onKeyDown={exitOnTab}\n className={popoverContentVariants()}\n >\n <div className=\"ds:flex ds:flex-col ds:sm:flex-row ds:gap-[var(--spacing-md)]\">\n {/* Calendar region */}\n <div role=\"region\" aria-label={calendarLabel}>\n {locale ? (\n <DayPicker\n mode=\"single\"\n selected={draftDate}\n onSelect={handleDaySelect}\n month={month}\n onMonthChange={setMonth}\n disabled={disabledMatcher}\n locale={locale}\n labels={calendarLabels}\n dir={i18n.dir()}\n showOutsideDays\n fixedWeeks\n classNames={calendarClassNames}\n components={{ Chevron: CalendarChevron }}\n />\n ) : (\n <Spinner />\n )}\n </div>\n\n {/* Time + Apply region */}\n <div\n role=\"region\"\n aria-label={timeLabel}\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:sm:border-s ds:sm:border-border ds:sm:ps-[var(--spacing-md)] ds:min-w-[10rem]\"\n >\n <TimePicker\n /* Its own id: inside a FormField it would otherwise\n take the field's, the same one as the trigger. */\n id={`${effectiveId}-time`}\n value={\n draftDate\n ? {\n hours: draftDate.getHours(),\n minutes: draftDate.getMinutes(),\n }\n : { hours: 0, minutes: 0 }\n }\n onChange={handleTimeChange}\n hour12={hour12}\n minuteStep={minuteStep}\n size={size}\n />\n\n {/* Timezone annotation */}\n {timezoneLabel ? (\n <span className=\"type-meta ds:text-muted-foreground\">\n {timezoneLabel}\n </span>\n ) : null}\n\n {/* Range error */}\n {rangeError ? (\n <span\n role=\"alert\"\n className=\"type-meta ds:text-destructive\"\n >\n {outOfRangeLabel}\n </span>\n ) : null}\n\n {/* Apply button */}\n <button\n type=\"button\"\n onClick={handleApply}\n disabled={!draftDate || rangeError}\n className={applyButtonVariants({ size })}\n >\n {applyLabel}\n </button>\n </div>\n </div>\n </Popover.Content>\n </Popover.Portal>\n </div>\n </Popover.Root>\n );\n },\n);\n\nDateTimePicker.displayName = 'DateTimePicker';\n"],"names":["setHours","date","hours","options","_date","toDate","setMinutes","minutes","date_","dateTimePickerAgent","handle","_a","args","getTimezoneLabel","locale","timezone","opts","p","tzDiffersFromBrowser","browserTz","applyButtonVariants","cva","DateTimePicker","forwardRef","value","defaultValue","onChange","showTimezoneProp","minDate","maxDate","hour12","minuteStep","size","disabled","placeholder","className","id","ref","t","i18n","useTranslation","ctx","useFormField","effectiveId","useFormFieldControlId","effectiveDisabled","effectiveTone","useDateFnsLocale","calendarLabels","useDayPickerLabels","placeholderText","applyLabel","outOfRangeLabel","timezoneLabel","currentValueRaw","setDateTimeValue","useControllableState","currentValue","draftDate","setDraftDate","useState","open","setOpen","month","setMonth","rangeError","setRangeError","triggerRef","useRef","emit","useCallback","disabledMatcher","buildDisabledMatcher","isInRange","isBefore","isAfter","handleOpenChange","nextOpen","handleDaySelect","prev","merged","handleTimeChange","time","handleApply","displayText","formatLocale","calendarLabel","timeLabel","useMemo","useImperativeHandle","useAgentRegistration","exitOnTab","useNonModalTabExit","findPopoverTrigger","Popover","jsxs","jsx","triggerVariants","calendarIconVariants","CalendarDays","popoverContentVariants","DayPicker","calendarClassNames","CalendarChevron","Spinner","TimePicker"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1,16 +1,17 @@
1
1
  import { jsx as s, jsxs as d } from "react/jsx-runtime";
2
- import { forwardRef as le, useId as ce, useRef as f, useEffect as P, useMemo as q, useState as me } from "react";
3
- import * as E from "@radix-ui/react-radio-group";
4
- import { c as G } from "./index-D2ZczOXr.js";
5
- import { useTranslation as pe } from "react-i18next";
6
- import { A as ue } from "./avatar-WZY3eGE7.js";
7
- import { B as fe } from "./badge-hnBt8o7n.js";
8
- import { T as ge } from "./tooltip-Cp-PLePW.js";
9
- import { c as ve } from "./compose-refs-C0k0tdqF.js";
10
- import { u as be } from "./registry-DvAUVLHh.js";
11
- import { u as he } from "./use-direction-Dp8h70PP.js";
12
- import { C as ye } from "./circle-alert-rGDZ73Wh.js";
13
- const xe = {
2
+ import { forwardRef as me, useId as pe, useRef as f, useEffect as E, useMemo as L, useState as ue } from "react";
3
+ import * as O from "@radix-ui/react-radio-group";
4
+ import { c as F } from "./index-D2ZczOXr.js";
5
+ import { useTranslation as fe } from "react-i18next";
6
+ import { A as ge } from "./avatar-WZY3eGE7.js";
7
+ import { B as ve } from "./badge-hnBt8o7n.js";
8
+ import { T as be } from "./tooltip-Cp-PLePW.js";
9
+ import { c as he } from "./compose-refs-C0k0tdqF.js";
10
+ import { u as ye } from "./use-select-on-arrow-Cr4iBuW5.js";
11
+ import { u as xe } from "./registry-DvAUVLHh.js";
12
+ import { u as Se } from "./use-direction-Dp8h70PP.js";
13
+ import { C as we } from "./circle-alert-rGDZ73Wh.js";
14
+ const Ne = {
14
15
  id: "dependent-selector",
15
16
  capabilities: ["select_single"],
16
17
  state: {
@@ -62,7 +63,7 @@ const xe = {
62
63
  description: "Stable person id emitted on each rendered person row."
63
64
  }
64
65
  }
65
- }, Se = G(
66
+ }, ze = F(
66
67
  "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:min-w-0",
67
68
  {
68
69
  variants: {
@@ -71,7 +72,7 @@ const xe = {
71
72
  },
72
73
  defaultVariants: { size: "md", tone: "checkin" }
73
74
  }
74
- ), L = G(
75
+ ), G = F(
75
76
  [
76
77
  // The row IS the Radix Item (`<button role="radio">`). Reset the
77
78
  // button chrome, lay out avatar + text on the inline axis. Logical
@@ -116,15 +117,15 @@ const xe = {
116
117
  },
117
118
  defaultVariants: { size: "md", tone: "checkin", disabled: !1 }
118
119
  }
119
- ), we = { sm: "sm", md: "md", lg: "lg" }, Ne = {
120
+ ), ke = { sm: "sm", md: "md", lg: "lg" }, Be = {
120
121
  sm: "ds:size-8",
121
122
  md: "ds:size-10",
122
123
  lg: "ds:size-12"
123
- }, ze = {
124
+ }, Re = {
124
125
  sm: "type-body-sm",
125
126
  md: "type-label",
126
127
  lg: "type-body"
127
- }, ke = le(
128
+ }, Ie = me(
128
129
  ({
129
130
  people: t,
130
131
  value: c,
@@ -132,65 +133,66 @@ const xe = {
132
133
  onValueChange: n,
133
134
  label: v,
134
135
  description: S,
135
- size: F = "md",
136
- tone: J = "checkin",
136
+ size: J = "md",
137
+ tone: Q = "checkin",
137
138
  loading: r = !1,
138
139
  error: m,
139
- emptyState: O,
140
+ emptyState: U,
140
141
  id: p,
141
- className: Q,
142
+ className: W,
142
143
  "aria-label": w,
143
- "aria-labelledby": z,
144
- ...U
145
- }, W) => {
146
- const o = F ?? "md", N = J ?? "checkin", { t: a } = pe("ui"), b = ce(), k = `${b}-legend`, B = `${b}-description`, R = `${b}-error`;
147
- f(!1), P(() => {
148
- }, [v, w, z]);
149
- const I = q(
144
+ "aria-labelledby": k,
145
+ onKeyDown: N,
146
+ ...X
147
+ }, Y) => {
148
+ const o = J ?? "md", z = Q ?? "checkin", { t: a } = fe("ui"), b = pe(), B = `${b}-legend`, R = `${b}-description`, I = `${b}-error`;
149
+ f(!1), E(() => {
150
+ }, [v, w, k]);
151
+ const A = L(
150
152
  () => t.filter((e) => !e.disabled),
151
153
  [t]
152
- ), X = t.some(
154
+ ), Z = t.some(
153
155
  (e) => e.relationshipKey !== "self"
154
- ), u = I.length === 1 ? I[0].id : void 0, i = c !== void 0, [Y, Z] = me(
156
+ ), u = A.length === 1 ? A[0].id : void 0, i = c !== void 0, [C, ee] = ue(
155
157
  g ?? u ?? ""
156
- ), A = i ? c ?? "" : Y, _ = f(A);
157
- _.current = A;
158
- const $ = (e) => {
159
- r || (i || Z(e), n == null || n(e));
158
+ ), _ = i ? c ?? "" : C, $ = f(_);
159
+ $.current = _;
160
+ const j = ye(), T = (e) => {
161
+ j.noteSelection(), !r && (i || ee(e), n == null || n(e));
160
162
  }, h = f(n);
161
163
  h.current = n;
162
- const j = f(!1);
163
- P(() => {
164
+ const V = f(!1);
165
+ E(() => {
164
166
  var e;
165
- !j.current && !i && !r && g === void 0 && u !== void 0 && (j.current = !0, (e = h.current) == null || e.call(h, u));
167
+ !V.current && !i && !r && g === void 0 && u !== void 0 && (V.current = !0, (e = h.current) == null || e.call(h, u));
166
168
  }, [i, r, g, u]);
167
- const C = q(
169
+ const se = L(
168
170
  () => ({
169
- getValue: () => _.current,
170
- setValue: (e) => $(e)
171
+ getValue: () => $.current,
172
+ setValue: (e) => T(e)
171
173
  }),
172
174
  // eslint-disable-next-line react-hooks/exhaustive-deps
173
175
  [i, r, n]
174
176
  );
175
- be(xe, C, p);
176
- const D = f(null), T = ve(W, D), ee = he(D), y = z ?? (v ? k : void 0), K = [S ? B : null, m ? R : null].filter(Boolean).join(" ") || void 0, V = (e) => a(`dependentSelector.relationship.${e}`), M = (e) => a("dependentSelector.age", { count: e }), se = (e) => {
177
+ xe(Ne, se, p);
178
+ const D = f(null), M = he(Y, D), de = Se(D), y = k ?? (v ? B : void 0), H = [S ? R : null, m ? I : null].filter(Boolean).join(" ") || void 0, K = (e) => a(`dependentSelector.relationship.${e}`), P = (e) => a("dependentSelector.age", { count: e }), te = (e) => {
177
179
  const l = [a("dependentSelector.optionLabel", {
178
180
  name: e.name,
179
- relationship: V(e.relationshipKey)
181
+ relationship: K(e.relationshipKey)
180
182
  })];
181
- return typeof e.age == "number" && l.push(M(e.age)), e.isMinor && l.push(a("dependentSelector.minorBadge")), l.join(", ");
182
- }, de = S ? /* @__PURE__ */ s("p", { id: B, className: "type-body-sm ds:text-muted-foreground", children: S }) : null, te = m ? /* @__PURE__ */ d(
183
+ return typeof e.age == "number" && l.push(P(e.age)), e.isMinor && l.push(a("dependentSelector.minorBadge")), l.join(", ");
184
+ }, ae = S ? /* @__PURE__ */ s("p", { id: R, className: "type-body-sm ds:text-muted-foreground", children: S }) : null, ie = m ? /* @__PURE__ */ d(
183
185
  "p",
184
186
  {
185
- id: R,
187
+ id: I,
186
188
  role: "alert",
187
189
  className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)] type-body-sm ds:text-destructive",
188
190
  children: [
189
- /* @__PURE__ */ s(ye, { "aria-hidden": "true", className: "ds:size-4 ds:shrink-0" }),
191
+ /* @__PURE__ */ s(we, { "aria-hidden": "true", className: "ds:size-4 ds:shrink-0" }),
190
192
  /* @__PURE__ */ s("span", { children: m })
191
193
  ]
192
194
  }
193
- ) : null, ae = /* @__PURE__ */ s(
195
+ ) : null, ne = /* @__PURE__ */ s(
194
196
  "div",
195
197
  {
196
198
  "aria-hidden": "true",
@@ -198,12 +200,12 @@ const xe = {
198
200
  children: Array.from({ length: 3 }).map((e, x) => /* @__PURE__ */ d(
199
201
  "div",
200
202
  {
201
- className: L({ size: o, tone: N, disabled: !1 }),
203
+ className: G({ size: o, tone: z, disabled: !1 }),
202
204
  children: [
203
205
  /* @__PURE__ */ s(
204
206
  "span",
205
207
  {
206
- className: `ds:inline-flex ds:shrink-0 ds:rounded-[var(--radius-full)] ds:bg-muted ds:animate-pulse ${Ne[o]}`
208
+ className: `ds:inline-flex ds:shrink-0 ds:rounded-[var(--radius-full)] ds:bg-muted ds:animate-pulse ${Be[o]}`
207
209
  }
208
210
  ),
209
211
  /* @__PURE__ */ d("span", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)] ds:min-w-0 ds:flex-1", children: [
@@ -215,9 +217,9 @@ const xe = {
215
217
  x
216
218
  ))
217
219
  }
218
- ), ie = (e) => {
219
- const x = `${b}-row-${e.id}`, l = se(e), H = /* @__PURE__ */ d(
220
- E.Item,
220
+ ), re = (e) => {
221
+ const x = `${b}-row-${e.id}`, l = te(e), q = /* @__PURE__ */ d(
222
+ O.Item,
221
223
  {
222
224
  id: x,
223
225
  value: e.id,
@@ -225,18 +227,18 @@ const xe = {
225
227
  "aria-label": l,
226
228
  title: e.dob ?? void 0,
227
229
  "data-option-id": e.id,
228
- className: L({
230
+ className: G({
229
231
  size: o,
230
- tone: N,
232
+ tone: z,
231
233
  disabled: !!e.disabled
232
234
  }),
233
235
  children: [
234
236
  /* @__PURE__ */ s(
235
- ue,
237
+ ge,
236
238
  {
237
239
  src: e.avatarSrc,
238
240
  name: e.name,
239
- size: we[o],
241
+ size: ke[o],
240
242
  "aria-hidden": "true"
241
243
  }
242
244
  ),
@@ -250,7 +252,7 @@ const xe = {
250
252
  /* @__PURE__ */ s(
251
253
  "span",
252
254
  {
253
- className: `${ze[o]} ds:text-foreground ds:truncate ds:min-w-0`,
255
+ className: `${Re[o]} ds:text-foreground ds:truncate ds:min-w-0`,
254
256
  children: e.name
255
257
  }
256
258
  ),
@@ -258,12 +260,12 @@ const xe = {
258
260
  // Neutral chip (validated AA ~6:1) — the "Minor" flag is
259
261
  // informational, not a warning STATE. The tonal `warning`
260
262
  // variant fails AA at the small chip font size.
261
- /* @__PURE__ */ s(fe, { variant: "neutral", size: "sm", children: a("dependentSelector.minorBadge") })
263
+ /* @__PURE__ */ s(ve, { variant: "neutral", size: "sm", children: a("dependentSelector.minorBadge") })
262
264
  ) : null
263
265
  ] }),
264
266
  /* @__PURE__ */ d("span", { className: "type-body-sm ds:text-muted-foreground ds:truncate ds:min-w-0", children: [
265
- V(e.relationshipKey),
266
- typeof e.age == "number" ? ` · ${M(e.age)}` : null
267
+ K(e.relationshipKey),
268
+ typeof e.age == "number" ? ` · ${P(e.age)}` : null
267
269
  ] })
268
270
  ]
269
271
  }
@@ -272,25 +274,25 @@ const xe = {
272
274
  },
273
275
  e.id
274
276
  );
275
- return e.disabled && e.disabledReason ? /* @__PURE__ */ s(ge, { label: e.disabledReason, children: /* @__PURE__ */ s(
277
+ return e.disabled && e.disabledReason ? /* @__PURE__ */ s(be, { label: e.disabledReason, children: /* @__PURE__ */ s(
276
278
  "span",
277
279
  {
278
280
  tabIndex: 0,
279
281
  "data-disabled-row": e.id,
280
282
  "aria-label": l,
281
283
  className: "ds:flex ds:min-w-0 ds:rounded-[var(--radius-md)] ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
282
- children: H
284
+ children: q
283
285
  }
284
- ) }, e.id) : H;
285
- }, ne = O ?? /* @__PURE__ */ s("p", { className: "type-body-sm ds:text-muted-foreground", children: a("dependentSelector.empty") }), re = r ? /* @__PURE__ */ d(
286
+ ) }, e.id) : q;
287
+ }, oe = U ?? /* @__PURE__ */ s("p", { className: "type-body-sm ds:text-muted-foreground", children: a("dependentSelector.empty") }), le = r ? /* @__PURE__ */ d(
286
288
  "div",
287
289
  {
288
- ref: T,
290
+ ref: M,
289
291
  id: p,
290
292
  role: "radiogroup",
291
293
  "aria-label": y ? void 0 : w,
292
294
  "aria-labelledby": y,
293
- "aria-describedby": K,
295
+ "aria-describedby": H,
294
296
  "aria-invalid": !!m || void 0,
295
297
  "aria-busy": "true",
296
298
  className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:min-w-0",
@@ -298,41 +300,44 @@ const xe = {
298
300
  "data-component-id": p,
299
301
  children: [
300
302
  /* @__PURE__ */ s("span", { className: "ds:sr-only", children: a("dependentSelector.loadingLabel") }),
301
- ae
303
+ ne
302
304
  ]
303
305
  }
304
306
  ) : /* @__PURE__ */ s(
305
- E.Root,
307
+ O.Root,
306
308
  {
307
- ref: T,
309
+ ref: M,
308
310
  id: p,
309
- dir: ee,
311
+ dir: de,
310
312
  value: i ? c ?? "" : void 0,
311
313
  defaultValue: i ? void 0 : g ?? u,
312
- onValueChange: $,
314
+ onValueChange: T,
315
+ onKeyDown: (e) => {
316
+ N == null || N(e), j.onKeyDown(e);
317
+ },
313
318
  "aria-label": y ? void 0 : w,
314
319
  "aria-labelledby": y,
315
- "aria-describedby": K,
320
+ "aria-describedby": H,
316
321
  "aria-invalid": !!m || void 0,
317
322
  className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:min-w-0",
318
323
  "data-component": "dependent-selector",
319
324
  "data-component-id": p,
320
- ...U,
321
- children: t.map(ie)
325
+ ...X,
326
+ children: t.map(re)
322
327
  }
323
- ), oe = Se({ size: o, tone: N, className: Q });
324
- return /* @__PURE__ */ d("div", { className: oe, children: [
325
- v ? /* @__PURE__ */ s("div", { id: k, className: "type-label ds:text-foreground", children: v }) : null,
326
- de,
327
- re,
328
- !r && !X ? ne : null,
329
- te
328
+ ), ce = ze({ size: o, tone: z, className: W });
329
+ return /* @__PURE__ */ d("div", { className: ce, children: [
330
+ v ? /* @__PURE__ */ s("div", { id: B, className: "type-label ds:text-foreground", children: v }) : null,
331
+ ae,
332
+ le,
333
+ !r && !Z ? oe : null,
334
+ ie
330
335
  ] });
331
336
  }
332
337
  );
333
- ke.displayName = "DependentSelector";
338
+ Ie.displayName = "DependentSelector";
334
339
  export {
335
- ke as D,
336
- xe as d
340
+ Ie as D,
341
+ Ne as d
337
342
  };
338
- //# sourceMappingURL=dependent-selector-Bet3XAFj.js.map
343
+ //# sourceMappingURL=dependent-selector-DgaAQc-c.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependent-selector-DgaAQc-c.js","sources":["../../src/components/dependent-selector/dependent-selector.agent.ts","../../src/components/dependent-selector/dependent-selector.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — DependentSelector. */\n/* */\n/* Mirrors radio-group.agent.ts: a single-select domain control. The */\n/* selected person id is the externally-observable state; `select_single` */\n/* is the capability. Per-row `data-option-id` lets an agent address each */\n/* person by their stable opaque id. */\n/* */\n/* See `src/docs/26-agent-readiness.mdx` for the contract. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { DependentSelectorHandle } from './dependent-selector';\n\nexport const dependentSelectorAgent: AgentAdapter<DependentSelectorHandle> = {\n id: 'dependent-selector',\n capabilities: ['select_single'],\n state: {\n value: {\n type: 'string',\n descriptionKey: 'ui.agent.dependentSelector.state.value',\n description:\n 'Id of the currently selected person, 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: {\n value: {\n type: 'string',\n description: 'Stable opaque id of the person row to select.',\n },\n },\n required: ['value'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.dependentSelector.actions.setValue',\n description: 'Select the person row with the given id.',\n examples: [\n { args: { value: 'person-2' }, note: 'Select the second dependent.' },\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: 'dependent-selector',\n description: 'Marks the DependentSelector root (role=radiogroup).',\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: 'Stable person id emitted on each rendered person row.',\n },\n },\n};\n","import {\n forwardRef,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n type ReactNode,\n} from 'react';\nimport * as RadixRadioGroup from '@radix-ui/react-radio-group';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { CircleAlert } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { Avatar } from '../avatar';\nimport { Badge } from '../badge';\nimport { Tooltip } from '../tooltip';\nimport { useDirection } from '../_shared/use-direction';\nimport { composeRefs } from '../_shared/compose-refs';\nimport { useSelectOnArrow } from '../_shared/use-select-on-arrow';\nimport { useAgentRegistration } from '../../agent';\nimport { dependentSelectorAgent } from './dependent-selector.agent';\n\n/* -------------------------------------------------------------------- */\n/* DependentSelector */\n/* */\n/* Single-select roster of people — the verified guardian (\"You\") plus */\n/* their registered dependents/minors — that a check-in kiosk uses to */\n/* answer \"Who are you checking in?\". Built on Radix RadioGroup semantics */\n/* (role=radiogroup, single tab stop, roving arrow-key focus, one */\n/* selected value), mirroring the proven src/components/radio-group/ */\n/* pattern. Each option is a person row (Avatar + name + relationship + */\n/* optional age/Minor badge) wrapped in a <label> so the whole card is */\n/* the click target. */\n/* */\n/* The kit owns the localised relationship + age strings via the closed */\n/* `relationshipKey` enum — consumers pass data, never free-text labels, */\n/* or i18n/RTL breaks. `age` is display-only (pre-computed whole years); */\n/* `isMinor` is an explicit per-person flag, NOT age<18 inference. */\n/* -------------------------------------------------------------------- */\n\n/* -------------------------------------------------------------------- */\n/* Public types */\n/* -------------------------------------------------------------------- */\n\n/**\n * Closed relationship vocabulary. The kit owns the localised label for\n * each key (`dependentSelector.relationship.<key>`). `'other'` is the\n * escape hatch for relationships the enum doesn't model.\n */\nexport type DependentRelationship =\n | 'self'\n | 'son'\n | 'daughter'\n | 'child'\n | 'spouse'\n | 'parent'\n | 'sibling'\n | 'ward'\n | 'other';\n\nexport interface DependentSelectorPerson {\n /** Stable id — becomes the radio value + `data-option-id`. */\n id: string;\n /** Display-formatted name (already formatted by the consumer). */\n name: string;\n /** Closed relationship key — the kit owns the localised label. */\n relationshipKey: DependentRelationship;\n /**\n * Explicit \"minor\" flag — drives the localised \"Minor\" badge.\n * Consumer-supplied, NOT derived from `age < 18` (legal age of\n * majority varies by market).\n */\n isMinor?: boolean;\n /** Avatar image source — falls back to initials, then icon. */\n avatarSrc?: string;\n /** Whole years, pre-computed by the consumer. Display-only. */\n age?: number;\n /**\n * ISO 8601 date of birth. Used ONLY for the row title/tooltip — never\n * parsed for display math (timezone/locale birthday math is the\n * consumer's job).\n */\n dob?: string;\n /** Disables this row; skipped by arrow navigation. */\n disabled?: boolean;\n /** Shown in a Tooltip on the disabled row (like Radio.disabledReason). */\n disabledReason?: string;\n}\n\n/** Agent-readiness curated handle for DependentSelector. */\nexport interface DependentSelectorHandle {\n getValue: () => string;\n setValue: (value: string) => void;\n}\n\n/* -------------------------------------------------------------------- */\n/* CVA */\n/* -------------------------------------------------------------------- */\n\nconst rootVariants = cva(\n 'ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:min-w-0',\n {\n variants: {\n size: { sm: '', md: '', lg: '' },\n tone: { default: '', checkin: '' },\n },\n defaultVariants: { size: 'md', tone: 'checkin' },\n },\n);\n\nconst rowVariants = cva(\n [\n // The row IS the Radix Item (`<button role=\"radio\">`). Reset the\n // button chrome, lay out avatar + text on the inline axis. Logical\n // properties only.\n 'ds:group ds:flex ds:items-center ds:gap-[var(--spacing-md)] ds:w-full ds:text-start ds:appearance-none',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-border ds:bg-card',\n // Touch-target floor: even sm clears AA/AAA (44 → 48px in accessible).\n 'ds:min-h-[var(--min-target-size)]',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n // Selected state: low-alpha accent tint BEHIND tokenised text +\n // a ring-coloured border (never accent as a foreground meeting text).\n 'ds:data-[state=checked]:border-ring',\n // Roving focus ring on the item itself — single tab stop, arrow keys\n // move focus+selection.\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 // Forced-colours: repaint a ButtonBorder edge + a Highlight checked\n // edge + a CanvasText focus ring so the row + its checked state\n // survive Windows High Contrast Mode.\n 'ds:forced-colors:border-[ButtonBorder]',\n 'ds:forced-colors:data-[state=checked]:border-[Highlight]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-md)] ds:py-[var(--spacing-xs)]',\n md: 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)] ds:py-[var(--spacing-sm)]',\n lg: 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-lg)] ds:py-[var(--spacing-md)]',\n },\n tone: {\n // Neutral RadioGroup-card tint for plain forms.\n default:\n 'ds:data-[state=checked]:bg-[color-mix(in_srgb,var(--accent)_5%,transparent)]',\n // Accent-tinted selected surface tuned for the check-in kiosk —\n // slightly stronger low-alpha mix BEHIND the tokenised foreground.\n checkin:\n 'ds:data-[state=checked]:bg-[color-mix(in_srgb,var(--accent)_8%,transparent)]',\n },\n disabled: {\n true: 'ds:cursor-not-allowed ds:opacity-50',\n false:\n 'ds:cursor-pointer ds:hover:bg-[color-mix(in_srgb,var(--accent)_4%,transparent)]',\n },\n },\n defaultVariants: { size: 'md', tone: 'checkin', disabled: false },\n },\n);\n\nconst avatarSizeBySize = { sm: 'sm', md: 'md', lg: 'lg' } as const;\n\n// Keep the loading skeleton's avatar footprint in lock-step with the real\n// Avatar scale (sm=size-8 / md=size-10 / lg=size-12) so the roster\n// resolving in doesn't shift the row height.\nconst skeletonAvatarSizeBySize = {\n sm: 'ds:size-8',\n md: 'ds:size-10',\n lg: 'ds:size-12',\n} as const;\n\nconst nameTypeBySize = {\n sm: 'type-body-sm',\n md: 'type-label',\n lg: 'type-body',\n} as const;\n\n/* -------------------------------------------------------------------- */\n/* Props */\n/* -------------------------------------------------------------------- */\n\ntype RadixRootProps = ComponentPropsWithoutRef<typeof RadixRadioGroup.Root>;\n\nexport interface DependentSelectorProps\n extends\n Omit<\n RadixRootProps,\n 'children' | 'orientation' | 'value' | 'defaultValue' | 'onValueChange'\n >,\n VariantProps<typeof rootVariants> {\n /** Ordered roster to render as options. */\n people: DependentSelectorPerson[];\n /** Controlled selected person id. */\n value?: string;\n /** Uncontrolled initial selection. Ignored when `value` is set. */\n defaultValue?: string;\n /** Fires with the newly selected person id on user selection. */\n onValueChange?: (personId: string) => void;\n /** Accessible group name, rendered as the `<legend>`. */\n label?: string;\n /** Optional helper paragraph under the legend (wired via aria-describedby). */\n description?: string;\n /** Shows N skeleton rows while the roster resolves; sets aria-busy. */\n loading?: boolean;\n /** Validation/empty-confirmation message — role=alert + aria-invalid. */\n error?: string;\n /** Slot shown when no selectable dependents exist (only self / empty). */\n emptyState?: ReactNode;\n /** Forwarded to the radiogroup root as id + data-component-id. */\n id?: string;\n}\n\n/* -------------------------------------------------------------------- */\n/* Component */\n/* -------------------------------------------------------------------- */\n\nexport const DependentSelector = forwardRef<\n HTMLDivElement,\n DependentSelectorProps\n>(\n (\n {\n people,\n value,\n defaultValue,\n onValueChange,\n label,\n description,\n size: sizeProp = 'md',\n tone: toneProp = 'checkin',\n loading = false,\n error,\n emptyState,\n id,\n className,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n onKeyDown,\n ...props\n },\n ref,\n ) => {\n // CVA's VariantProps types each axis as `T | null | undefined`; the\n // destructure default only covers `undefined`, so coalesce `null`\n // too before the values index the size→class lookup maps.\n const size = sizeProp ?? 'md';\n const tone = toneProp ?? 'checkin';\n const { t } = useTranslation('ui');\n const baseId = useId();\n const legendId = `${baseId}-legend`;\n const descriptionId = `${baseId}-description`;\n const errorId = `${baseId}-error`;\n\n /* ---- Dev-mode accessible-name enforcement ---- */\n const warnedRef = useRef(false);\n useEffect(() => {\n if (\n import.meta.env.DEV &&\n !warnedRef.current &&\n !label &&\n !ariaLabel &&\n !ariaLabelledBy\n ) {\n warnedRef.current = true;\n console.warn(\n '<DependentSelector> rendered without an accessible name. Pass `label`, or `aria-label` / `aria-labelledby`, so the radiogroup is never unnamed.',\n );\n }\n }, [label, ariaLabel, ariaLabelledBy]);\n\n /* ---- Selectable roster + single-selectable auto-select ---- */\n const selectablePeople = useMemo(\n () => people.filter((person) => !person.disabled),\n [people],\n );\n // The dependents region (everything that isn't the verified self row)\n // drives the empty-state slot.\n const hasDependents = people.some(\n (person) => person.relationshipKey !== 'self',\n );\n const autoSelectId =\n selectablePeople.length === 1 ? selectablePeople[0].id : undefined;\n\n /* ---- Controlled / uncontrolled value handling (mirrors RadioGroup) ---- */\n const isControlled = value !== undefined;\n const [internalValue, setInternalValue] = useState<string>(\n defaultValue ?? autoSelectId ?? '',\n );\n const currentValue = isControlled ? (value ?? '') : internalValue;\n const currentValueRef = useRef<string>(currentValue);\n currentValueRef.current = currentValue;\n\n const selectOnArrow = useSelectOnArrow();\n\n const handleValueChange = (next: string) => {\n selectOnArrow.noteSelection();\n if (loading) return;\n if (!isControlled) setInternalValue(next);\n onValueChange?.(next);\n };\n\n /* ---- Auto-select change notification ---- */\n /* When exactly one selectable person exists we seed the uncontrolled */\n /* selection (Radix `defaultValue` + internal state) so the row */\n /* paints checked — but Radix never fires onValueChange for a */\n /* defaultValue. In the kiosk consent flow the consumer wires the */\n /* consent audit trail off onValueChange, so we fire it once on mount */\n /* for that auto-selection. Only when uncontrolled, not loading, and */\n /* the consumer didn't pass an explicit defaultValue. */\n const onValueChangeRef = useRef(onValueChange);\n onValueChangeRef.current = onValueChange;\n const autoSelectNotifiedRef = useRef(false);\n useEffect(() => {\n if (\n !autoSelectNotifiedRef.current &&\n !isControlled &&\n !loading &&\n defaultValue === undefined &&\n autoSelectId !== undefined\n ) {\n autoSelectNotifiedRef.current = true;\n onValueChangeRef.current?.(autoSelectId);\n }\n }, [isControlled, loading, defaultValue, autoSelectId]);\n\n /* ---- Agent registration ---- */\n const agentHandle = useMemo<DependentSelectorHandle>(\n () => ({\n getValue: () => currentValueRef.current,\n setValue: (next) => handleValueChange(next),\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isControlled, loading, onValueChange],\n );\n useAgentRegistration(dependentSelectorAgent, agentHandle, id);\n\n /* ---- Direction (Radix auto-flips Left/Right for rtl) ---- */\n const rootRef = useRef<HTMLDivElement>(null);\n const composedRef = composeRefs(ref, rootRef);\n const dir = useDirection(rootRef);\n\n /* ---- Resolved a11y wiring ---- */\n /* ONE grouping mechanism: when `label` is set we render a plain */\n /* heading <div id={legendId}> (NOT a native <fieldset>/<legend>) and */\n /* name the single role=radiogroup via aria-labelledby. A fieldset */\n /* would add a second, redundant named group nested around the */\n /* radiogroup — so we deliberately avoid it. */\n const resolvedAriaLabelledBy =\n ariaLabelledBy ?? (label ? legendId : undefined);\n const describedBy =\n [description ? descriptionId : null, error ? errorId : null]\n .filter(Boolean)\n .join(' ') || undefined;\n\n /* ---- Helpers ---- */\n const relationshipLabel = (key: DependentRelationship): string =>\n t(`dependentSelector.relationship.${key}`);\n\n const ageLabel = (age: number): string =>\n t('dependentSelector.age', { count: age });\n\n /** Compose the full accessible name a screen reader announces. */\n const personAccessibleName = (person: DependentSelectorPerson): string => {\n const base = t('dependentSelector.optionLabel', {\n name: person.name,\n relationship: relationshipLabel(person.relationshipKey),\n });\n const parts = [base];\n if (typeof person.age === 'number') parts.push(ageLabel(person.age));\n if (person.isMinor) parts.push(t('dependentSelector.minorBadge'));\n return parts.join(', ');\n };\n\n /* ---- Description + error nodes ---- */\n const descriptionNode = description ? (\n <p id={descriptionId} className=\"type-body-sm ds:text-muted-foreground\">\n {description}\n </p>\n ) : null;\n\n const errorNode = error ? (\n <p\n id={errorId}\n role=\"alert\"\n className=\"ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)] type-body-sm ds:text-destructive\"\n >\n <CircleAlert aria-hidden=\"true\" className=\"ds:size-4 ds:shrink-0\" />\n <span>{error}</span>\n </p>\n ) : null;\n\n /* ---- Skeleton rows (loading) ---- */\n const skeletonRows = (\n <div\n aria-hidden=\"true\"\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]\"\n >\n {Array.from({ length: 3 }).map((_, index) => (\n <div\n key={index}\n className={rowVariants({ size, tone, disabled: false })}\n >\n <span\n className={`ds:inline-flex ds:shrink-0 ds:rounded-[var(--radius-full)] ds:bg-muted ds:animate-pulse ${skeletonAvatarSizeBySize[size]}`}\n />\n <span className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)] ds:min-w-0 ds:flex-1\">\n <span className=\"ds:h-4 ds:w-1/2 ds:rounded-[var(--radius-sm)] ds:bg-muted ds:animate-pulse\" />\n <span className=\"ds:h-3 ds:w-1/3 ds:rounded-[var(--radius-sm)] ds:bg-muted ds:animate-pulse\" />\n </span>\n </div>\n ))}\n </div>\n );\n\n /* ---- Person row ---- */\n /* The Radix Item IS the card: it renders the `<button role=\"radio\">` */\n /* that owns the roving tabindex + arrow navigation, so the whole row */\n /* is the focus + click target. The composed name lives on */\n /* `aria-label`; the visible content is aria-hidden so a screen reader */\n /* hears the clean composed name once (no duplication). */\n const renderPerson = (person: DependentSelectorPerson) => {\n const rowId = `${baseId}-row-${person.id}`;\n const accessibleName = personAccessibleName(person);\n\n const row = (\n <RadixRadioGroup.Item\n key={person.id}\n id={rowId}\n value={person.id}\n // Native `disabled` is the single disabled model: Radix renders\n // a <button disabled> that is skipped by roving arrow nav and is\n // non-selectable. `aria-disabled` is intentionally NOT also set —\n // on a natively-disabled button it is redundant (it is meant for\n // elements that REMAIN focusable). The disabledReason tooltip is\n // reached via a focusable wrapper span below, not this button.\n disabled={person.disabled}\n aria-label={accessibleName}\n title={person.dob ?? undefined}\n data-option-id={person.id}\n className={rowVariants({\n size,\n tone,\n disabled: Boolean(person.disabled),\n })}\n >\n {/* The Avatar is intentionally aria-hidden: its name only feeds\n initials/colour, and the radio's own aria-label is the sole\n accessible name. Keep aria-hidden so a future refactor doesn't\n reintroduce a duplicate \"image, <name>\" announcement (the kit\n Avatar always renders role=\"img\" + aria-label={name}). */}\n <Avatar\n src={person.avatarSrc}\n name={person.name}\n size={avatarSizeBySize[size]}\n aria-hidden=\"true\"\n />\n <span\n aria-hidden=\"true\"\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)] ds:min-w-0 ds:flex-1\"\n >\n <span className=\"ds:flex ds:items-center ds:gap-[var(--spacing-xs)] ds:min-w-0\">\n <span\n className={`${nameTypeBySize[size]} ds:text-foreground ds:truncate ds:min-w-0`}\n >\n {person.name}\n </span>\n {person.isMinor ? (\n // Neutral chip (validated AA ~6:1) — the \"Minor\" flag is\n // informational, not a warning STATE. The tonal `warning`\n // variant fails AA at the small chip font size.\n <Badge variant=\"neutral\" size=\"sm\">\n {t('dependentSelector.minorBadge')}\n </Badge>\n ) : null}\n </span>\n <span className=\"type-body-sm ds:text-muted-foreground ds:truncate ds:min-w-0\">\n {relationshipLabel(person.relationshipKey)}\n {typeof person.age === 'number'\n ? ` · ${ageLabel(person.age)}`\n : null}\n </span>\n </span>\n </RadixRadioGroup.Item>\n );\n\n if (person.disabled && person.disabledReason) {\n // The Radix Item renders a <button disabled>, which is removed\n // from the tab order and does not fire hover/pointer events — so a\n // Tooltip wrapped directly around it would never open. Wrap the row\n // in a focusable, hoverable <span tabIndex={0}> and make THAT the\n // tooltip trigger, so the disabledReason is reachable by both mouse\n // hover and keyboard focus (mirrors radio.tsx putting the Tooltip\n // on the non-disabled wrapper, not the disabled control).\n return (\n <Tooltip key={person.id} label={person.disabledReason}>\n <span\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex -- intentional focusable tooltip trigger so keyboard users can reach the disabled reason\n tabIndex={0}\n data-disabled-row={person.id}\n aria-label={accessibleName}\n className=\"ds:flex ds:min-w-0 ds:rounded-[var(--radius-md)] ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]\"\n >\n {row}\n </span>\n </Tooltip>\n );\n }\n return row;\n };\n\n /* ---- Empty-state slot ---- */\n const resolvedEmptyState = emptyState ?? (\n <p className=\"type-body-sm ds:text-muted-foreground\">\n {t('dependentSelector.empty')}\n </p>\n );\n\n /* ---- Radiogroup body ---- */\n /* While loading we still render a role=radiogroup container (carrying */\n /* the data-component marker + aria-busy) holding aria-hidden skeleton */\n /* rows — selection is inert. Otherwise the Radix root renders the */\n /* real person rows. */\n const body = loading ? (\n <div\n ref={composedRef}\n id={id}\n role=\"radiogroup\"\n aria-label={!resolvedAriaLabelledBy ? ariaLabel : undefined}\n aria-labelledby={resolvedAriaLabelledBy}\n aria-describedby={describedBy}\n aria-invalid={Boolean(error) || undefined}\n aria-busy=\"true\"\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:min-w-0\"\n data-component=\"dependent-selector\"\n data-component-id={id}\n >\n <span className=\"ds:sr-only\">\n {t('dependentSelector.loadingLabel')}\n </span>\n {skeletonRows}\n </div>\n ) : (\n <RadixRadioGroup.Root\n ref={composedRef}\n id={id}\n dir={dir}\n value={isControlled ? (value ?? '') : undefined}\n defaultValue={\n !isControlled ? (defaultValue ?? autoSelectId) : undefined\n }\n onValueChange={handleValueChange}\n onKeyDown={(event) => {\n onKeyDown?.(event);\n selectOnArrow.onKeyDown(event);\n }}\n aria-label={!resolvedAriaLabelledBy ? ariaLabel : undefined}\n aria-labelledby={resolvedAriaLabelledBy}\n aria-describedby={describedBy}\n aria-invalid={Boolean(error) || undefined}\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:min-w-0\"\n data-component=\"dependent-selector\"\n data-component-id={id}\n {...props}\n >\n {people.map(renderPerson)}\n </RadixRadioGroup.Root>\n );\n\n /* ---- Outer wrapper ---- */\n /* When `label` is set we render a plain heading <div id={legendId}> */\n /* styled like a legend, and the single role=radiogroup is named via */\n /* aria-labelledby={legendId}. We do NOT wrap in <fieldset>/<legend>: */\n /* that would create a second named grouping container nested around */\n /* the radiogroup (the legend announced twice). One grouping */\n /* mechanism only. */\n const outerClasses = rootVariants({ size, tone, className });\n\n return (\n <div className={outerClasses}>\n {label ? (\n <div id={legendId} className=\"type-label ds:text-foreground\">\n {label}\n </div>\n ) : null}\n {descriptionNode}\n {body}\n {!loading && !hasDependents ? resolvedEmptyState : null}\n {errorNode}\n </div>\n );\n },\n);\n\nDependentSelector.displayName = 'DependentSelector';\n"],"names":["dependentSelectorAgent","handle","args","rootVariants","cva","rowVariants","avatarSizeBySize","skeletonAvatarSizeBySize","nameTypeBySize","DependentSelector","forwardRef","people","value","defaultValue","onValueChange","label","description","sizeProp","toneProp","loading","error","emptyState","id","className","ariaLabel","ariaLabelledBy","onKeyDown","props","ref","size","tone","t","useTranslation","baseId","useId","legendId","descriptionId","errorId","useRef","useEffect","selectablePeople","useMemo","person","hasDependents","autoSelectId","isControlled","internalValue","setInternalValue","useState","currentValue","currentValueRef","selectOnArrow","useSelectOnArrow","handleValueChange","next","onValueChangeRef","autoSelectNotifiedRef","_a","agentHandle","useAgentRegistration","rootRef","composedRef","composeRefs","dir","useDirection","resolvedAriaLabelledBy","describedBy","relationshipLabel","key","ageLabel","age","personAccessibleName","parts","descriptionNode","jsx","errorNode","jsxs","CircleAlert","skeletonRows","_","index","renderPerson","rowId","accessibleName","row","RadixRadioGroup","Avatar","Badge","Tooltip","resolvedEmptyState","body","event","outerClasses"],"mappings":";;;;;;;;;;;;;AAcO,MAAMA,KAAgE;AAAA,EAC3E,IAAI;AAAA,EACJ,cAAc,CAAC,eAAe;AAAA,EAC9B,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,aACE;AAAA,MACF,MAAM,CAACC,MAAWA,EAAO,SAAA;AAAA,IAAS;AAAA,EACpC;AAAA,EAEF,SAAS;AAAA,IACP,WAAW;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,YAAY;AAAA,QACV,MAAM;AAAA,QACN,YAAY;AAAA,UACV,OAAO;AAAA,YACL,MAAM;AAAA,YACN,aAAa;AAAA,UAAA;AAAA,QACf;AAAA,QAEF,UAAU,CAAC,OAAO;AAAA,MAAA;AAAA,MAEpB,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,UAAU;AAAA,QACR,EAAE,MAAM,EAAE,OAAO,WAAA,GAAc,MAAM,+BAAA;AAAA,MAA+B;AAAA,MAEtE,QAAQ,CAACA,GAAQC,MAA4B;AAC3C,QAAAD,EAAO,SAASC,EAAK,KAAK;AAAA,MAC5B;AAAA,IAAA;AAAA,EACF;AAAA,EAEF,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aAAa;AAAA,IAAA;AAAA,IAEf,YAAY;AAAA,MACV,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,aAAa;AAAA,IAAA;AAAA,IAEf,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,IAAA;AAAA,EACf;AAEJ,GCiCMC,KAAeC;AAAA,EACnB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAA;AAAA,MAC5B,MAAM,EAAE,SAAS,IAAI,SAAS,GAAA;AAAA,IAAG;AAAA,IAEnC,iBAAiB,EAAE,MAAM,MAAM,MAAM,UAAA;AAAA,EAAU;AAEnD,GAEMC,IAAcD;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,IAIE;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA;AAAA;AAAA,IAGA;AAAA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,EACA,KAAK,GAAG;AAAA,EACV;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,MAEN,MAAM;AAAA;AAAA,QAEJ,SACE;AAAA;AAAA;AAAA,QAGF,SACE;AAAA,MAAA;AAAA,MAEJ,UAAU;AAAA,QACR,MAAM;AAAA,QACN,OACE;AAAA,MAAA;AAAA,IACJ;AAAA,IAEF,iBAAiB,EAAE,MAAM,MAAM,MAAM,WAAW,UAAU,GAAA;AAAA,EAAM;AAEpE,GAEME,KAAmB,EAAE,IAAI,MAAM,IAAI,MAAM,IAAI,KAAA,GAK7CC,KAA2B;AAAA,EAC/B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN,GAEMC,KAAiB;AAAA,EACrB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN,GAyCaC,KAAoBC;AAAA,EAI/B,CACE;AAAA,IACE,QAAAC;AAAA,IACA,OAAAC;AAAA,IACA,cAAAC;AAAA,IACA,eAAAC;AAAA,IACA,OAAAC;AAAA,IACA,aAAAC;AAAA,IACA,MAAMC,IAAW;AAAA,IACjB,MAAMC,IAAW;AAAA,IACjB,SAAAC,IAAU;AAAA,IACV,OAAAC;AAAA,IACA,YAAAC;AAAA,IACA,IAAAC;AAAA,IACA,WAAAC;AAAA,IACA,cAAcC;AAAA,IACd,mBAAmBC;AAAA,IACnB,WAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AAIH,UAAMC,IAAOZ,KAAY,MACnBa,IAAOZ,KAAY,WACnB,EAAE,GAAAa,EAAA,IAAMC,GAAe,IAAI,GAC3BC,IAASC,GAAA,GACTC,IAAW,GAAGF,CAAM,WACpBG,IAAgB,GAAGH,CAAM,gBACzBI,IAAU,GAAGJ,CAAM;AAGP,IAAAK,EAAO,EAAK,GAC9BC,EAAU,MAAM;AAAA,IAahB,GAAG,CAACxB,GAAOS,GAAWC,CAAc,CAAC;AAGrC,UAAMe,IAAmBC;AAAA,MACvB,MAAM9B,EAAO,OAAO,CAAC+B,MAAW,CAACA,EAAO,QAAQ;AAAA,MAChD,CAAC/B,CAAM;AAAA,IAAA,GAIHgC,IAAgBhC,EAAO;AAAA,MAC3B,CAAC+B,MAAWA,EAAO,oBAAoB;AAAA,IAAA,GAEnCE,IACJJ,EAAiB,WAAW,IAAIA,EAAiB,CAAC,EAAE,KAAK,QAGrDK,IAAejC,MAAU,QACzB,CAACkC,GAAeC,EAAgB,IAAIC;AAAA,MACxCnC,KAAgB+B,KAAgB;AAAA,IAAA,GAE5BK,IAAeJ,IAAgBjC,KAAS,KAAMkC,GAC9CI,IAAkBZ,EAAeW,CAAY;AACnD,IAAAC,EAAgB,UAAUD;AAE1B,UAAME,IAAgBC,GAAA,GAEhBC,IAAoB,CAACC,MAAiB;AAE1C,MADAH,EAAc,cAAA,GACV,CAAAhC,MACC0B,KAAcE,GAAiBO,CAAI,GACxCxC,KAAA,QAAAA,EAAgBwC;AAAA,IAClB,GAUMC,IAAmBjB,EAAOxB,CAAa;AAC7C,IAAAyC,EAAiB,UAAUzC;AAC3B,UAAM0C,IAAwBlB,EAAO,EAAK;AAC1C,IAAAC,EAAU,MAAM;;AACd,MACE,CAACiB,EAAsB,WACvB,CAACX,KACD,CAAC1B,KACDN,MAAiB,UACjB+B,MAAiB,WAEjBY,EAAsB,UAAU,KAChCC,IAAAF,EAAiB,YAAjB,QAAAE,EAAA,KAAAF,GAA2BX;AAAA,IAE/B,GAAG,CAACC,GAAc1B,GAASN,GAAc+B,CAAY,CAAC;AAGtD,UAAMc,KAAcjB;AAAA,MAClB,OAAO;AAAA,QACL,UAAU,MAAMS,EAAgB;AAAA,QAChC,UAAU,CAACI,MAASD,EAAkBC,CAAI;AAAA,MAAA;AAAA;AAAA,MAG5C,CAACT,GAAc1B,GAASL,CAAa;AAAA,IAAA;AAEvC,IAAA6C,GAAqB3D,IAAwB0D,IAAapC,CAAE;AAG5D,UAAMsC,IAAUtB,EAAuB,IAAI,GACrCuB,IAAcC,GAAYlC,GAAKgC,CAAO,GACtCG,KAAMC,GAAaJ,CAAO,GAQ1BK,IACJxC,MAAmBV,IAAQoB,IAAW,SAClC+B,IACJ,CAAClD,IAAcoB,IAAgB,MAAMhB,IAAQiB,IAAU,IAAI,EACxD,OAAO,OAAO,EACd,KAAK,GAAG,KAAK,QAGZ8B,IAAoB,CAACC,MACzBrC,EAAE,kCAAkCqC,CAAG,EAAE,GAErCC,IAAW,CAACC,MAChBvC,EAAE,yBAAyB,EAAE,OAAOuC,GAAK,GAGrCC,KAAuB,CAAC7B,MAA4C;AAKxE,YAAM8B,IAAQ,CAJDzC,EAAE,iCAAiC;AAAA,QAC9C,MAAMW,EAAO;AAAA,QACb,cAAcyB,EAAkBzB,EAAO,eAAe;AAAA,MAAA,CACvD,CACkB;AACnB,aAAI,OAAOA,EAAO,OAAQ,cAAgB,KAAK2B,EAAS3B,EAAO,GAAG,CAAC,GAC/DA,EAAO,WAAS8B,EAAM,KAAKzC,EAAE,8BAA8B,CAAC,GACzDyC,EAAM,KAAK,IAAI;AAAA,IACxB,GAGMC,KAAkBzD,IACtB,gBAAA0D,EAAC,KAAA,EAAE,IAAItC,GAAe,WAAU,yCAC7B,UAAApB,EAAA,CACH,IACE,MAEE2D,KAAYvD,IAChB,gBAAAwD;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAIvC;AAAA,QACJ,MAAK;AAAA,QACL,WAAU;AAAA,QAEV,UAAA;AAAA,4BAACwC,IAAA,EAAY,eAAY,QAAO,WAAU,yBAAwB;AAAA,UAClE,gBAAAH,EAAC,UAAM,UAAAtD,GAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,IAEb,MAGE0D,KACJ,gBAAAJ;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,WAAU;AAAA,QAET,UAAA,MAAM,KAAK,EAAE,QAAQ,GAAG,EAAE,IAAI,CAACK,GAAGC,MACjC,gBAAAJ;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,WAAWvE,EAAY,EAAE,MAAAwB,GAAM,MAAAC,GAAM,UAAU,IAAO;AAAA,YAEtD,UAAA;AAAA,cAAA,gBAAA4C;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAW,2FAA2FnE,GAAyBsB,CAAI,CAAC;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEtI,gBAAA+C,EAAC,QAAA,EAAK,WAAU,wEACd,UAAA;AAAA,gBAAA,gBAAAF,EAAC,QAAA,EAAK,WAAU,8EAA6E;AAAA,gBAC7F,gBAAAA,EAAC,QAAA,EAAK,WAAU,8EAA6E;AAAA,cAAA,GAC/F;AAAA,YAAA;AAAA,UAAA;AAAA,UATKM;AAAA,QAAA,CAWR;AAAA,MAAA;AAAA,IAAA,GAUCC,KAAe,CAACvC,MAAoC;AACxD,YAAMwC,IAAQ,GAAGjD,CAAM,QAAQS,EAAO,EAAE,IAClCyC,IAAiBZ,GAAqB7B,CAAM,GAE5C0C,IACJ,gBAAAR;AAAA,QAACS,EAAgB;AAAA,QAAhB;AAAA,UAEC,IAAIH;AAAA,UACJ,OAAOxC,EAAO;AAAA,UAOd,UAAUA,EAAO;AAAA,UACjB,cAAYyC;AAAA,UACZ,OAAOzC,EAAO,OAAO;AAAA,UACrB,kBAAgBA,EAAO;AAAA,UACvB,WAAWrC,EAAY;AAAA,YACrB,MAAAwB;AAAA,YACA,MAAAC;AAAA,YACA,UAAU,EAAQY,EAAO;AAAA,UAAQ,CAClC;AAAA,UAOD,UAAA;AAAA,YAAA,gBAAAgC;AAAA,cAACY;AAAA,cAAA;AAAA,gBACC,KAAK5C,EAAO;AAAA,gBACZ,MAAMA,EAAO;AAAA,gBACb,MAAMpC,GAAiBuB,CAAI;AAAA,gBAC3B,eAAY;AAAA,cAAA;AAAA,YAAA;AAAA,YAEd,gBAAA+C;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,eAAY;AAAA,gBACZ,WAAU;AAAA,gBAEV,UAAA;AAAA,kBAAA,gBAAAA,EAAC,QAAA,EAAK,WAAU,iEACd,UAAA;AAAA,oBAAA,gBAAAF;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,WAAW,GAAGlE,GAAeqB,CAAI,CAAC;AAAA,wBAEjC,UAAAa,EAAO;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBAETA,EAAO;AAAA;AAAA;AAAA;AAAA,sBAIN,gBAAAgC,EAACa,MAAM,SAAQ,WAAU,MAAK,MAC3B,UAAAxD,EAAE,8BAA8B,EAAA,CACnC;AAAA,wBACE;AAAA,kBAAA,GACN;AAAA,kBACA,gBAAA6C,EAAC,QAAA,EAAK,WAAU,gEACb,UAAA;AAAA,oBAAAT,EAAkBzB,EAAO,eAAe;AAAA,oBACxC,OAAOA,EAAO,OAAQ,WACnB,MAAM2B,EAAS3B,EAAO,GAAG,CAAC,KAC1B;AAAA,kBAAA,GACN;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,QAvDKA,EAAO;AAAA,MAAA;AA2DhB,aAAIA,EAAO,YAAYA,EAAO,mCASzB8C,IAAA,EAAwB,OAAO9C,EAAO,gBACrC,UAAA,gBAAAgC;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,UAAU;AAAA,UACV,qBAAmBhC,EAAO;AAAA,UAC1B,cAAYyC;AAAA,UACZ,WAAU;AAAA,UAET,UAAAC;AAAA,QAAA;AAAA,MAAA,EACH,GATY1C,EAAO,EAUrB,IAGG0C;AAAA,IACT,GAGMK,KAAqBpE,KACzB,gBAAAqD,EAAC,KAAA,EAAE,WAAU,yCACV,UAAA3C,EAAE,yBAAyB,EAAA,CAC9B,GAQI2D,KAAOvE,IACX,gBAAAyD;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAKf;AAAA,QACL,IAAAvC;AAAA,QACA,MAAK;AAAA,QACL,cAAa2C,IAAqC,SAAZzC;AAAA,QACtC,mBAAiByC;AAAA,QACjB,oBAAkBC;AAAA,QAClB,gBAAc,EAAQ9C,KAAU;AAAA,QAChC,aAAU;AAAA,QACV,WAAU;AAAA,QACV,kBAAe;AAAA,QACf,qBAAmBE;AAAA,QAEnB,UAAA;AAAA,UAAA,gBAAAoD,EAAC,QAAA,EAAK,WAAU,cACb,UAAA3C,EAAE,gCAAgC,GACrC;AAAA,UACC+C;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,IAGH,gBAAAJ;AAAA,MAACW,EAAgB;AAAA,MAAhB;AAAA,QACC,KAAKxB;AAAA,QACL,IAAAvC;AAAA,QACA,KAAAyC;AAAA,QACA,OAAOlB,IAAgBjC,KAAS,KAAM;AAAA,QACtC,cACGiC,IAAgD,SAAhChC,KAAgB+B;AAAA,QAEnC,eAAeS;AAAA,QACf,WAAW,CAACsC,MAAU;AACpB,UAAAjE,KAAA,QAAAA,EAAYiE,IACZxC,EAAc,UAAUwC,CAAK;AAAA,QAC/B;AAAA,QACA,cAAa1B,IAAqC,SAAZzC;AAAA,QACtC,mBAAiByC;AAAA,QACjB,oBAAkBC;AAAA,QAClB,gBAAc,EAAQ9C,KAAU;AAAA,QAChC,WAAU;AAAA,QACV,kBAAe;AAAA,QACf,qBAAmBE;AAAA,QAClB,GAAGK;AAAA,QAEH,UAAAhB,EAAO,IAAIsE,EAAY;AAAA,MAAA;AAAA,IAAA,GAWtBW,KAAezF,GAAa,EAAE,MAAA0B,GAAM,MAAAC,GAAM,WAAAP,GAAW;AAE3D,WACE,gBAAAqD,EAAC,OAAA,EAAI,WAAWgB,IACb,UAAA;AAAA,MAAA7E,sBACE,OAAA,EAAI,IAAIoB,GAAU,WAAU,iCAC1B,aACH,IACE;AAAA,MACHsC;AAAA,MACAiB;AAAA,MACA,CAACvE,KAAW,CAACwB,IAAgB8C,KAAqB;AAAA,MAClDd;AAAA,IAAA,GACH;AAAA,EAEJ;AACF;AAEAlE,GAAkB,cAAc;"}