@alfadocs/ui-kit-debug 1.96.0 → 1.97.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 (303) hide show
  1. package/dist/_chunks/{address-autocomplete-DR4Xn23Z.js → address-autocomplete-DC-H-MZw.js} +2 -2
  2. package/dist/_chunks/{address-autocomplete-DR4Xn23Z.js.map → address-autocomplete-DC-H-MZw.js.map} +1 -1
  3. package/dist/_chunks/{address-fields-qxQkGwPf.js → address-fields-D5Ije0S2.js} +7 -7
  4. package/dist/_chunks/{address-fields-qxQkGwPf.js.map → address-fields-D5Ije0S2.js.map} +1 -1
  5. package/dist/_chunks/{agenda-card-BhY342MA.js → agenda-card-bRQ4j6U6.js} +2 -2
  6. package/dist/_chunks/{agenda-card-BhY342MA.js.map → agenda-card-bRQ4j6U6.js.map} +1 -1
  7. package/dist/_chunks/{agenda-tray-BmxBGEci.js → agenda-tray-CzE3E8GU.js} +2 -2
  8. package/dist/_chunks/{agenda-tray-BmxBGEci.js.map → agenda-tray-CzE3E8GU.js.map} +1 -1
  9. package/dist/_chunks/{alia-sidebar-ovRX_oti.js → alia-sidebar-B5mu44g2.js} +3 -3
  10. package/dist/_chunks/{alia-sidebar-ovRX_oti.js.map → alia-sidebar-B5mu44g2.js.map} +1 -1
  11. package/dist/_chunks/{anamnesis-summary-rows-CdRUXoaA.js → anamnesis-summary-rows-B9HqOGd7.js} +4 -4
  12. package/dist/_chunks/{anamnesis-summary-rows-CdRUXoaA.js.map → anamnesis-summary-rows-B9HqOGd7.js.map} +1 -1
  13. package/dist/_chunks/{appointment-card-Csx4544A.js → appointment-card-zPr0brha.js} +3 -3
  14. package/dist/_chunks/{appointment-card-Csx4544A.js.map → appointment-card-zPr0brha.js.map} +1 -1
  15. package/dist/_chunks/{appointment-peek-CcDCWb-F.js → appointment-peek-xFTBany4.js} +3 -3
  16. package/dist/_chunks/{appointment-peek-CcDCWb-F.js.map → appointment-peek-xFTBany4.js.map} +1 -1
  17. package/dist/_chunks/{appointment-timeline-DW6FN6u8.js → appointment-timeline-AKkVx9AN.js} +2 -2
  18. package/dist/_chunks/{appointment-timeline-DW6FN6u8.js.map → appointment-timeline-AKkVx9AN.js.map} +1 -1
  19. package/dist/_chunks/{appointment-tray-CZfXwHWz.js → appointment-tray-B8qQBW65.js} +2 -2
  20. package/dist/_chunks/{appointment-tray-CZfXwHWz.js.map → appointment-tray-B8qQBW65.js.map} +1 -1
  21. package/dist/_chunks/{aspect-ratio-DeSNzASA.js → aspect-ratio-B-6cyOpm.js} +13 -13
  22. package/dist/_chunks/aspect-ratio-B-6cyOpm.js.map +1 -0
  23. package/dist/_chunks/{autocomplete-BXMcNoa3.js → autocomplete-D10ydpgi.js} +2 -2
  24. package/dist/_chunks/{autocomplete-BXMcNoa3.js.map → autocomplete-D10ydpgi.js.map} +1 -1
  25. package/dist/_chunks/{avatar-a6042Ox2.js → avatar-BoqdWsNe.js} +2 -2
  26. package/dist/_chunks/avatar-BoqdWsNe.js.map +1 -0
  27. package/dist/_chunks/{balance-badge-cell-DcBmtijD.js → balance-badge-cell-DaZokVZY.js} +3 -3
  28. package/dist/_chunks/{balance-badge-cell-DcBmtijD.js.map → balance-badge-cell-DaZokVZY.js.map} +1 -1
  29. package/dist/_chunks/{breadcrumb-Bn29NCnf.js → breadcrumb-zxa_PNhF.js} +2 -2
  30. package/dist/_chunks/breadcrumb-zxa_PNhF.js.map +1 -0
  31. package/dist/_chunks/{calendar-CmiMS4FJ.js → calendar-DVe5eArk.js} +2 -2
  32. package/dist/_chunks/{calendar-CmiMS4FJ.js.map → calendar-DVe5eArk.js.map} +1 -1
  33. package/dist/_chunks/{calendar-appointment-editor-dialog-BOZ5wk96.js → calendar-appointment-editor-dialog-26LEMx0q.js} +12 -12
  34. package/dist/_chunks/{calendar-appointment-editor-dialog-BOZ5wk96.js.map → calendar-appointment-editor-dialog-26LEMx0q.js.map} +1 -1
  35. package/dist/_chunks/{chat-message-LRO_6Ee3.js → chat-message-CkBCAcwn.js} +2 -2
  36. package/dist/_chunks/{chat-message-LRO_6Ee3.js.map → chat-message-CkBCAcwn.js.map} +1 -1
  37. package/dist/_chunks/{city-input-CA59CjnV.js → city-input-DXipzTfZ.js} +3 -3
  38. package/dist/_chunks/{city-input-CA59CjnV.js.map → city-input-DXipzTfZ.js.map} +1 -1
  39. package/dist/_chunks/{clinical-note-card-CWHFnCmY.js → clinical-note-card--juv_ELr.js} +2 -2
  40. package/dist/_chunks/{clinical-note-card-CWHFnCmY.js.map → clinical-note-card--juv_ELr.js.map} +1 -1
  41. package/dist/_chunks/{combobox-D-gpgEDy.js → combobox-duuDRI1t.js} +2 -2
  42. package/dist/_chunks/{combobox-D-gpgEDy.js.map → combobox-duuDRI1t.js.map} +1 -1
  43. package/dist/_chunks/{command-palette-B3dVqm9D.js → command-palette-DxQBU4wH.js} +3 -3
  44. package/dist/_chunks/command-palette-DxQBU4wH.js.map +1 -0
  45. package/dist/_chunks/{contact-profile-card-jBf9U4At.js → contact-profile-card-QPUgGu-t.js} +57 -57
  46. package/dist/_chunks/contact-profile-card-QPUgGu-t.js.map +1 -0
  47. package/dist/_chunks/{copy-field-hgVSc51W.js → copy-field-BaYEDJ9f.js} +24 -24
  48. package/dist/_chunks/copy-field-BaYEDJ9f.js.map +1 -0
  49. package/dist/_chunks/{country-select-BfmX9y5i.js → country-select-CUuGOAoZ.js} +2 -2
  50. package/dist/_chunks/{country-select-BfmX9y5i.js.map → country-select-CUuGOAoZ.js.map} +1 -1
  51. package/dist/_chunks/{data-table-xUDjZS_O.js → data-table-C4UT4L9B.js} +3 -3
  52. package/dist/_chunks/{data-table-xUDjZS_O.js.map → data-table-C4UT4L9B.js.map} +1 -1
  53. package/dist/_chunks/{data-table-tabs-CcgU2lr5.js → data-table-tabs-Db7zToFD.js} +2 -2
  54. package/dist/_chunks/{data-table-tabs-CcgU2lr5.js.map → data-table-tabs-Db7zToFD.js.map} +1 -1
  55. package/dist/_chunks/{dependent-selector-CyNi7M_f.js → dependent-selector-DRN0P0Kr.js} +2 -2
  56. package/dist/_chunks/{dependent-selector-CyNi7M_f.js.map → dependent-selector-DRN0P0Kr.js.map} +1 -1
  57. package/dist/_chunks/{document-preview-DWIQryMW.js → document-preview-U8H6tnDJ.js} +2 -2
  58. package/dist/_chunks/{document-preview-DWIQryMW.js.map → document-preview-U8H6tnDJ.js.map} +1 -1
  59. package/dist/_chunks/{document-scanner-BQP0Rqrt.js → document-scanner-Bf3VUp00.js} +24 -24
  60. package/dist/_chunks/document-scanner-Bf3VUp00.js.map +1 -0
  61. package/dist/_chunks/{editable-currency-cell-renderer-BEaj2NT_.js → editable-currency-cell-renderer-BUdFMh67.js} +2 -2
  62. package/dist/_chunks/{editable-currency-cell-renderer-BEaj2NT_.js.map → editable-currency-cell-renderer-BUdFMh67.js.map} +1 -1
  63. package/dist/_chunks/{email-input-C7THAwh2.js → email-input-BEO3vonE.js} +2 -2
  64. package/dist/_chunks/{email-input-C7THAwh2.js.map → email-input-BEO3vonE.js.map} +1 -1
  65. package/dist/_chunks/{entity-summary-BJdfIsk_.js → entity-summary-B4p8zP1J.js} +2 -2
  66. package/dist/_chunks/{entity-summary-BJdfIsk_.js.map → entity-summary-B4p8zP1J.js.map} +1 -1
  67. package/dist/_chunks/{face-scheme-BmygzbZr.js → face-scheme-DdVLQ5dP.js} +3 -3
  68. package/dist/_chunks/{face-scheme-BmygzbZr.js.map → face-scheme-DdVLQ5dP.js.map} +1 -1
  69. package/dist/_chunks/{file-manager-Ba_TcfCj.js → file-manager-B4K2j7jB.js} +4 -4
  70. package/dist/_chunks/{file-manager-Ba_TcfCj.js.map → file-manager-B4K2j7jB.js.map} +1 -1
  71. package/dist/_chunks/{fiscal-code-input-BzWmNDnl.js → fiscal-code-input-BBvU7sAo.js} +2 -2
  72. package/dist/_chunks/{fiscal-code-input-BzWmNDnl.js.map → fiscal-code-input-BBvU7sAo.js.map} +1 -1
  73. package/dist/_chunks/{forgot-password-form-BCk4rGIh.js → forgot-password-form-CeTb5p-x.js} +2 -2
  74. package/dist/_chunks/{forgot-password-form-BCk4rGIh.js.map → forgot-password-form-CeTb5p-x.js.map} +1 -1
  75. package/dist/_chunks/{header-settings-C2D74i4g.js → header-settings-Df9q1uHt.js} +2 -2
  76. package/dist/_chunks/{header-settings-C2D74i4g.js.map → header-settings-Df9q1uHt.js.map} +1 -1
  77. package/dist/_chunks/{heatmap-C9tEvqEm.js → heatmap-B2Z1_kDn.js} +2 -2
  78. package/dist/_chunks/{heatmap-C9tEvqEm.js.map → heatmap-B2Z1_kDn.js.map} +1 -1
  79. package/dist/_chunks/{help-me-write-templates-BJSf24xS.js → help-me-write-templates-ra5a__Yy.js} +2 -2
  80. package/dist/_chunks/{help-me-write-templates-BJSf24xS.js.map → help-me-write-templates-ra5a__Yy.js.map} +1 -1
  81. package/dist/_chunks/{iban-input-B9L2QDHh.js → iban-input-DuTwKok5.js} +2 -2
  82. package/dist/_chunks/{iban-input-B9L2QDHh.js.map → iban-input-DuTwKok5.js.map} +1 -1
  83. package/dist/_chunks/{icon-picker-DQMG9L6M.js → icon-picker-BmU6gpZT.js} +2 -2
  84. package/dist/_chunks/{icon-picker-DQMG9L6M.js.map → icon-picker-BmU6gpZT.js.map} +1 -1
  85. package/dist/_chunks/{input-surface-iBmxVBfr.js → input-surface-BMffm2Vd.js} +4 -4
  86. package/dist/_chunks/{input-surface-iBmxVBfr.js.map → input-surface-BMffm2Vd.js.map} +1 -1
  87. package/dist/_chunks/{link-cell-renderer-OmvrkUeN.js → link-cell-renderer-DKMgD-2v.js} +4 -4
  88. package/dist/_chunks/{link-cell-renderer-OmvrkUeN.js.map → link-cell-renderer-DKMgD-2v.js.map} +1 -1
  89. package/dist/_chunks/{locale-picker-B1NAHW4U.js → locale-picker-C86h8Yt1.js} +2 -2
  90. package/dist/_chunks/{locale-picker-B1NAHW4U.js.map → locale-picker-C86h8Yt1.js.map} +1 -1
  91. package/dist/_chunks/{login-dev-card-DcfcFJrm.js → login-dev-card-D5BV5j1i.js} +4 -4
  92. package/dist/_chunks/{login-dev-card-DcfcFJrm.js.map → login-dev-card-D5BV5j1i.js.map} +1 -1
  93. package/dist/_chunks/{map-view--c9bJDRw.js → map-view-V7etHnyF.js} +2 -2
  94. package/dist/_chunks/map-view-V7etHnyF.js.map +1 -0
  95. package/dist/_chunks/{marketplace-app-shell-DDZI-uBl.js → marketplace-app-shell-D2qgIuXX.js} +4 -4
  96. package/dist/_chunks/{marketplace-app-shell-DDZI-uBl.js.map → marketplace-app-shell-D2qgIuXX.js.map} +1 -1
  97. package/dist/_chunks/{message-card-B6SduXJv.js → message-card-BzJEITml.js} +2 -2
  98. package/dist/_chunks/{message-card-B6SduXJv.js.map → message-card-BzJEITml.js.map} +1 -1
  99. package/dist/_chunks/{message-tray-18_TrLCy.js → message-tray-DiPgJbOb.js} +2 -2
  100. package/dist/_chunks/{message-tray-18_TrLCy.js.map → message-tray-DiPgJbOb.js.map} +1 -1
  101. package/dist/_chunks/{multi-select-i5MFRpXg.js → multi-select-Df3R8lv_.js} +30 -30
  102. package/dist/_chunks/multi-select-Df3R8lv_.js.map +1 -0
  103. package/dist/_chunks/{navigation-menu-DbaSlvdO.js → navigation-menu-1MrpIVkY.js} +3 -3
  104. package/dist/_chunks/navigation-menu-1MrpIVkY.js.map +1 -0
  105. package/dist/_chunks/{notes-panel-DfjF83IK.js → notes-panel-BbNLYcdv.js} +3 -3
  106. package/dist/_chunks/{notes-panel-DfjF83IK.js.map → notes-panel-BbNLYcdv.js.map} +1 -1
  107. package/dist/_chunks/{operator-hero-N_ziNGFF.js → operator-hero-BcuPTzS_.js} +2 -2
  108. package/dist/_chunks/{operator-hero-N_ziNGFF.js.map → operator-hero-BcuPTzS_.js.map} +1 -1
  109. package/dist/_chunks/{pagination-DvKGrsXu.js → pagination-C7N_NiRN.js} +2 -2
  110. package/dist/_chunks/{pagination-DvKGrsXu.js.map → pagination-C7N_NiRN.js.map} +1 -1
  111. package/dist/_chunks/{password-input-BokZ_rnT.js → password-input-SJGHFdOO.js} +2 -2
  112. package/dist/_chunks/{password-input-BokZ_rnT.js.map → password-input-SJGHFdOO.js.map} +1 -1
  113. package/dist/_chunks/{patient-details-DGHkAErB.js → patient-details-DoIOWP6j.js} +3 -3
  114. package/dist/_chunks/{patient-details-DGHkAErB.js.map → patient-details-DoIOWP6j.js.map} +1 -1
  115. package/dist/_chunks/{patient-field-row-BVK4y98C.js → patient-field-row--dCDO5oB.js} +9 -9
  116. package/dist/_chunks/{patient-field-row-BVK4y98C.js.map → patient-field-row--dCDO5oB.js.map} +1 -1
  117. package/dist/_chunks/{patient-search-CL6dtBIq.js → patient-search-DJy0IZSx.js} +2 -2
  118. package/dist/_chunks/{patient-search-CL6dtBIq.js.map → patient-search-DJy0IZSx.js.map} +1 -1
  119. package/dist/_chunks/{patient-summary-card-DXz07c2X.js → patient-summary-card-CL04aq8h.js} +3 -3
  120. package/dist/_chunks/{patient-summary-card-DXz07c2X.js.map → patient-summary-card-CL04aq8h.js.map} +1 -1
  121. package/dist/_chunks/{payment-automation-upsell-CZk6f8aK.js → payment-automation-upsell-BPF0c-5D.js} +2 -2
  122. package/dist/_chunks/{payment-automation-upsell-CZk6f8aK.js.map → payment-automation-upsell-BPF0c-5D.js.map} +1 -1
  123. package/dist/_chunks/{pdf-viewer-gAsNUsA8.js → pdf-viewer-DlceXkfW.js} +267 -286
  124. package/dist/_chunks/pdf-viewer-DlceXkfW.js.map +1 -0
  125. package/dist/_chunks/{phone-input-DJ4BN8tG.js → phone-input-BL8Sj6OG.js} +3 -3
  126. package/dist/_chunks/phone-input-BL8Sj6OG.js.map +1 -0
  127. package/dist/_chunks/{postal-code-input-CfZOnIkW.js → postal-code-input-dJdSAVkP.js} +2 -2
  128. package/dist/_chunks/{postal-code-input-CfZOnIkW.js.map → postal-code-input-dJdSAVkP.js.map} +1 -1
  129. package/dist/_chunks/{practice-profile-hero-DKmnB-M0.js → practice-profile-hero-B8vykoci.js} +2 -2
  130. package/dist/_chunks/{practice-profile-hero-DKmnB-M0.js.map → practice-profile-hero-B8vykoci.js.map} +1 -1
  131. package/dist/_chunks/{practice-results-ZOVlrb43.js → practice-results-U-5kpnJa.js} +3 -3
  132. package/dist/_chunks/{practice-results-ZOVlrb43.js.map → practice-results-U-5kpnJa.js.map} +1 -1
  133. package/dist/_chunks/{province-select-D64whw0m.js → province-select-cVOlwEc5.js} +2 -2
  134. package/dist/_chunks/{province-select-D64whw0m.js.map → province-select-cVOlwEc5.js.map} +1 -1
  135. package/dist/_chunks/{public-footer-BiPiU_lk.js → public-footer-t6gx6sjn.js} +163 -152
  136. package/dist/_chunks/public-footer-t6gx6sjn.js.map +1 -0
  137. package/dist/_chunks/{registration-form-K4j2tdLt.js → registration-form-JzzTomhd.js} +5 -5
  138. package/dist/_chunks/{registration-form-K4j2tdLt.js.map → registration-form-JzzTomhd.js.map} +1 -1
  139. package/dist/_chunks/{reserved.agent-TRbKB39d.js → reserved.agent-CB-92Vi9.js} +8 -8
  140. package/dist/_chunks/{reserved.agent-TRbKB39d.js.map → reserved.agent-CB-92Vi9.js.map} +1 -1
  141. package/dist/_chunks/{reset-password-form-C6XLV7SI.js → reset-password-form-DDdGEoIL.js} +3 -3
  142. package/dist/_chunks/{reset-password-form-C6XLV7SI.js.map → reset-password-form-DDdGEoIL.js.map} +1 -1
  143. package/dist/_chunks/{rich-text-editor-CJfT08It.js → rich-text-editor-F04przIt.js} +2 -2
  144. package/dist/_chunks/{rich-text-editor-CJfT08It.js.map → rich-text-editor-F04przIt.js.map} +1 -1
  145. package/dist/_chunks/{search-bar-mA4bPe3t.js → search-bar-CQ9_V3EJ.js} +2 -2
  146. package/dist/_chunks/{search-bar-mA4bPe3t.js.map → search-bar-CQ9_V3EJ.js.map} +1 -1
  147. package/dist/_chunks/{search-input-BAlDd05M.js → search-input-CRAMo1CA.js} +2 -2
  148. package/dist/_chunks/{search-input-BAlDd05M.js.map → search-input-CRAMo1CA.js.map} +1 -1
  149. package/dist/_chunks/{send-registration-link-form-yLSfcaPk.js → send-registration-link-form-DHCQpA4C.js} +3 -3
  150. package/dist/_chunks/{send-registration-link-form-yLSfcaPk.js.map → send-registration-link-form-DHCQpA4C.js.map} +1 -1
  151. package/dist/_chunks/{sidebar-BS24EnYd.js → sidebar-2VsPlNkZ.js} +3 -3
  152. package/dist/_chunks/sidebar-2VsPlNkZ.js.map +1 -0
  153. package/dist/_chunks/{sign-document-BiOTs1P4.js → sign-document-B5qZhthO.js} +10 -10
  154. package/dist/_chunks/sign-document-B5qZhthO.js.map +1 -0
  155. package/dist/_chunks/{signature-capture-Chqh62Pc.js → signature-capture-BJc7kfqi.js} +2 -2
  156. package/dist/_chunks/signature-capture-BJc7kfqi.js.map +1 -0
  157. package/dist/_chunks/{signature-field-Y01UB5DA.js → signature-field-DjabvRZm.js} +28 -34
  158. package/dist/_chunks/{signature-field-Y01UB5DA.js.map → signature-field-DjabvRZm.js.map} +1 -1
  159. package/dist/_chunks/{signature-request-CLtMgQKi.js → signature-request-CQ0torGq.js} +2 -2
  160. package/dist/_chunks/{signature-request-CLtMgQKi.js.map → signature-request-CQ0torGq.js.map} +1 -1
  161. package/dist/_chunks/{signed-out-frame-CRwVTCjY.js → signed-out-frame-BcQE00H1.js} +2 -2
  162. package/dist/_chunks/{signed-out-frame-CRwVTCjY.js.map → signed-out-frame-BcQE00H1.js.map} +1 -1
  163. package/dist/_chunks/{stat-Dno2ZihS.js → stat-BFKZV50y.js} +137 -117
  164. package/dist/_chunks/stat-BFKZV50y.js.map +1 -0
  165. package/dist/_chunks/{state-backed-text-input-Cgh4ms3p.js → state-backed-text-input-DVETOhSS.js} +2 -2
  166. package/dist/_chunks/{state-backed-text-input-Cgh4ms3p.js.map → state-backed-text-input-DVETOhSS.js.map} +1 -1
  167. package/dist/_chunks/{stepper-accordion-DDTSOUHc.js → stepper-accordion-CYjrmRte.js} +44 -44
  168. package/dist/_chunks/stepper-accordion-CYjrmRte.js.map +1 -0
  169. package/dist/_chunks/{task-editor-qXfMbHsy.js → task-editor-BiPGFXtB.js} +3 -3
  170. package/dist/_chunks/{task-editor-qXfMbHsy.js.map → task-editor-BiPGFXtB.js.map} +1 -1
  171. package/dist/_chunks/{text-input-CaG9ApoE.js → text-input-B6iAgCr3.js} +2 -2
  172. package/dist/_chunks/{text-input-CaG9ApoE.js.map → text-input-B6iAgCr3.js.map} +1 -1
  173. package/dist/_chunks/{timeline-B32dylRJ.js → timeline-tn5QQJdS.js} +2 -2
  174. package/dist/_chunks/{timeline-B32dylRJ.js.map → timeline-tn5QQJdS.js.map} +1 -1
  175. package/dist/_chunks/{transcript-panel-CoHHpcFg.js → transcript-panel-A781Pkzr.js} +2 -2
  176. package/dist/_chunks/{transcript-panel-CoHHpcFg.js.map → transcript-panel-A781Pkzr.js.map} +1 -1
  177. package/dist/_chunks/{use-appointment-details-read-UXXvBeGZ.js → use-appointment-details-read-BbIoPWO6.js} +5 -5
  178. package/dist/_chunks/{use-appointment-details-read-UXXvBeGZ.js.map → use-appointment-details-read-BbIoPWO6.js.map} +1 -1
  179. package/dist/_chunks/{widget-picker-B9HpT2Tb.js → widget-picker-DNYIqRT1.js} +2 -2
  180. package/dist/_chunks/{widget-picker-B9HpT2Tb.js.map → widget-picker-DNYIqRT1.js.map} +1 -1
  181. package/dist/_chunks/{workflow-map-flsvqQ3L.js → workflow-map-k-dQkpe7.js} +20 -20
  182. package/dist/_chunks/{workflow-map-flsvqQ3L.js.map → workflow-map-k-dQkpe7.js.map} +1 -1
  183. package/dist/_chunks/{workflow-status-HQ6ziE46.js → workflow-status-9wb7iWUd.js} +2 -2
  184. package/dist/_chunks/{workflow-status-HQ6ziE46.js.map → workflow-status-9wb7iWUd.js.map} +1 -1
  185. package/dist/_chunks/{workflow-webhook-action-BD-6UyOs.js → workflow-webhook-action-B_52rH7O.js} +3 -3
  186. package/dist/_chunks/{workflow-webhook-action-BD-6UyOs.js.map → workflow-webhook-action-B_52rH7O.js.map} +1 -1
  187. package/dist/agent-catalog.json +1 -1
  188. package/dist/components/_shared/input-surface.d.ts +3 -3
  189. package/dist/components/address-autocomplete/index.js +1 -1
  190. package/dist/components/address-fields/index.js +1 -1
  191. package/dist/components/agenda-card/index.js +1 -1
  192. package/dist/components/agenda-tray/index.js +1 -1
  193. package/dist/components/appointment-card/index.js +2 -2
  194. package/dist/components/appointment-details-panel/index.js +1 -1
  195. package/dist/components/appointment-peek/index.js +1 -1
  196. package/dist/components/appointment-timeline/index.js +1 -1
  197. package/dist/components/aspect-ratio/index.js +1 -1
  198. package/dist/components/autocomplete/index.js +1 -1
  199. package/dist/components/avatar/index.js +1 -1
  200. package/dist/components/booking/index.js +1 -1
  201. package/dist/components/breadcrumb/index.js +1 -1
  202. package/dist/components/calendar/index.js +1 -1
  203. package/dist/components/chat-message/index.js +1 -1
  204. package/dist/components/city-input/index.js +1 -1
  205. package/dist/components/clinical-note-card/index.js +1 -1
  206. package/dist/components/combobox/index.js +1 -1
  207. package/dist/components/command-palette/index.js +1 -1
  208. package/dist/components/contact-profile-card/index.js +1 -1
  209. package/dist/components/copy-field/index.js +1 -1
  210. package/dist/components/country-select/index.js +1 -1
  211. package/dist/components/data-table/index.js +3 -3
  212. package/dist/components/data-table-tabs/index.js +1 -1
  213. package/dist/components/dependent-selector/index.js +1 -1
  214. package/dist/components/document-preview/index.js +1 -1
  215. package/dist/components/document-scanner/index.js +1 -1
  216. package/dist/components/email-input/index.js +1 -1
  217. package/dist/components/entity-summary/index.js +1 -1
  218. package/dist/components/face-scheme/index.js +1 -1
  219. package/dist/components/file-manager/index.js +1 -1
  220. package/dist/components/fiscal-code-input/index.js +1 -1
  221. package/dist/components/header-settings/index.js +1 -1
  222. package/dist/components/heatmap/index.js +1 -1
  223. package/dist/components/iban-input/index.js +1 -1
  224. package/dist/components/icon-picker/index.js +1 -1
  225. package/dist/components/locale-picker/index.js +1 -1
  226. package/dist/components/map-view/index.js +1 -1
  227. package/dist/components/message-card/index.js +1 -1
  228. package/dist/components/message-tray/index.js +1 -1
  229. package/dist/components/multi-select/index.js +1 -1
  230. package/dist/components/navigation-menu/index.js +1 -1
  231. package/dist/components/notes-panel/index.js +1 -1
  232. package/dist/components/operator-hero/index.js +1 -1
  233. package/dist/components/pagination/index.js +1 -1
  234. package/dist/components/password-input/index.js +1 -1
  235. package/dist/components/patient-details/index.js +1 -1
  236. package/dist/components/patient-search/index.js +1 -1
  237. package/dist/components/patient-summary-card/index.js +1 -1
  238. package/dist/components/patient-table/index.js +1 -1
  239. package/dist/components/pdf-viewer/index.js +1 -1
  240. package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +1 -1
  241. package/dist/components/phone-input/index.js +1 -1
  242. package/dist/components/postal-code-input/index.js +1 -1
  243. package/dist/components/practice-profile-hero/index.js +1 -1
  244. package/dist/components/practice-results/index.js +1 -1
  245. package/dist/components/province-select/index.js +1 -1
  246. package/dist/components/public-footer/index.js +1 -1
  247. package/dist/components/public-footer/public-footer.d.ts.map +1 -1
  248. package/dist/components/rich-text-editor/index.js +1 -1
  249. package/dist/components/search-bar/index.js +1 -1
  250. package/dist/components/search-input/index.js +1 -1
  251. package/dist/components/sidebar/index.js +1 -1
  252. package/dist/components/sign-document/index.js +1 -1
  253. package/dist/components/signature-capture/index.js +1 -1
  254. package/dist/components/signature-field/index.js +1 -1
  255. package/dist/components/signature-field/signature-field.d.ts.map +1 -1
  256. package/dist/components/stat/index.js +1 -1
  257. package/dist/components/stat/stat.d.ts +8 -0
  258. package/dist/components/stat/stat.d.ts.map +1 -1
  259. package/dist/components/stepper-accordion/index.js +1 -1
  260. package/dist/components/task-editor/index.js +1 -1
  261. package/dist/components/text-input/index.js +1 -1
  262. package/dist/components/timeline/index.js +1 -1
  263. package/dist/components/transcript-panel/index.js +1 -1
  264. package/dist/components/widget-picker/index.js +1 -1
  265. package/dist/components/workflow/index.js +1 -1
  266. package/dist/components/workflow-status/index.js +1 -1
  267. package/dist/core.css +1 -1
  268. package/dist/host-compat.css +13 -1
  269. package/dist/index.js +88 -88
  270. package/dist/patterns/alia-assistant/index.js +1 -1
  271. package/dist/patterns/anamnesis/index.js +1 -1
  272. package/dist/patterns/calendar/index.js +1 -1
  273. package/dist/patterns/forgot-password-form/index.js +1 -1
  274. package/dist/patterns/help-me-write-templates/index.js +1 -1
  275. package/dist/patterns/login-form/index.js +1 -1
  276. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  277. package/dist/patterns/payment-automation-upsell/index.js +1 -1
  278. package/dist/patterns/registration-form/index.js +1 -1
  279. package/dist/patterns/reset-password-form/index.js +1 -1
  280. package/dist/patterns/send-registration-link-form/index.js +1 -1
  281. package/dist/patterns/signature-request/index.js +1 -1
  282. package/dist/patterns/signed-out-frame/index.js +1 -1
  283. package/dist/patterns/workflow-webhook-action/index.js +1 -1
  284. package/dist/tokens.css +1 -1
  285. package/package.json +1 -1
  286. package/dist/_chunks/aspect-ratio-DeSNzASA.js.map +0 -1
  287. package/dist/_chunks/avatar-a6042Ox2.js.map +0 -1
  288. package/dist/_chunks/breadcrumb-Bn29NCnf.js.map +0 -1
  289. package/dist/_chunks/command-palette-B3dVqm9D.js.map +0 -1
  290. package/dist/_chunks/contact-profile-card-jBf9U4At.js.map +0 -1
  291. package/dist/_chunks/copy-field-hgVSc51W.js.map +0 -1
  292. package/dist/_chunks/document-scanner-BQP0Rqrt.js.map +0 -1
  293. package/dist/_chunks/map-view--c9bJDRw.js.map +0 -1
  294. package/dist/_chunks/multi-select-i5MFRpXg.js.map +0 -1
  295. package/dist/_chunks/navigation-menu-DbaSlvdO.js.map +0 -1
  296. package/dist/_chunks/pdf-viewer-gAsNUsA8.js.map +0 -1
  297. package/dist/_chunks/phone-input-DJ4BN8tG.js.map +0 -1
  298. package/dist/_chunks/public-footer-BiPiU_lk.js.map +0 -1
  299. package/dist/_chunks/sidebar-BS24EnYd.js.map +0 -1
  300. package/dist/_chunks/sign-document-BiOTs1P4.js.map +0 -1
  301. package/dist/_chunks/signature-capture-Chqh62Pc.js.map +0 -1
  302. package/dist/_chunks/stat-Dno2ZihS.js.map +0 -1
  303. package/dist/_chunks/stepper-accordion-DDTSOUHc.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-status-HQ6ziE46.js","sources":["../../src/components/workflow-status/workflow-status.agent.ts","../../src/components/workflow-status/workflow-status.tsx"],"sourcesContent":["import type { AgentAdapter } from '../../agent/types';\nimport type { WorkflowStatusControlHandle } from './workflow-status';\n\nexport const workflowStatusAgent: AgentAdapter<WorkflowStatusControlHandle> = {\n id: 'workflow-status',\n capabilities: ['select_single', 'set_value', 'open', 'close'],\n state: {\n value: {\n type: 'string',\n descriptionKey: 'ui.agent.workflowStatus.state.value',\n description: 'The current non-sensitive workflow status key.',\n read: (handle) => handle.getValue(),\n },\n isOpen: {\n type: 'boolean',\n descriptionKey: 'ui.agent.workflowStatus.state.isOpen',\n description: 'Whether the permitted workflow status list is open.',\n read: (handle) => handle.getIsOpen(),\n },\n isSaving: {\n type: 'boolean',\n descriptionKey: 'ui.agent.workflowStatus.state.isSaving',\n description: 'Whether the host is saving a workflow status change.',\n read: (handle) => handle.getIsSaving(),\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: 'Permitted workflow status key to select.',\n },\n },\n required: ['value'],\n },\n idempotent: true,\n openWorld: true,\n errors: [\n 'The status is not in the host-provided transition list.',\n 'The status is disabled.',\n 'A status change is already being saved.',\n 'The host rejected the change. The previous status stays and the error is shown.',\n ],\n examples: [{ args: { value: 'review' } }],\n descriptionKey: 'ui.agent.workflowStatus.actions.setValue',\n description:\n 'Request a permitted workflow status through the host-owned change callback.',\n invoke: (handle, args: { value: string }) => handle.setValue(args.value),\n },\n open: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.workflowStatus.actions.open',\n description: 'Open the permitted workflow status list.',\n invoke: (handle) => handle.open(),\n },\n close: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.workflowStatus.actions.close',\n description: 'Close the workflow status list.',\n invoke: (handle) => handle.close(),\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'workflow-status',\n description: 'Marks the WorkflowStatus boundary.',\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: 'Non-sensitive workflow status key for a permitted option.',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { AlertCircle, ChevronDown, LoaderCircle } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { useAgentRegistration } from '../../agent';\nimport { useControllableState } from '../../hooks/use-controllable-state';\nimport { useIsomorphicLayoutEffect } from '../../hooks/use-isomorphic-layout-effect';\nimport { getErrorMessage } from '../_shared/get-error-message';\nimport { handledRejection } from '../_shared/handled-rejection';\nimport { INPUT_SURFACE_HEIGHT } from '../_shared/input-surface';\nimport { DropdownMenu } from '../dropdown-menu';\nimport { workflowStatusAgent } from './workflow-status.agent';\n\nexport type WorkflowStatusTone =\n | 'neutral'\n | 'info'\n | 'success'\n | 'warning'\n | 'error'\n | 'accent';\n\nexport type WorkflowStatusSize = 'sm' | 'md' | 'lg';\n\nexport interface WorkflowStatusOption {\n value: string;\n label: string;\n icon: ReactNode;\n tone: WorkflowStatusTone;\n disabled?: boolean;\n}\n\nconst rootVariants = cva(\n 'ds:inline-flex ds:max-w-full ds:flex-col ds:items-start ds:gap-[var(--spacing-2xs)]',\n {\n variants: {\n size: {\n sm: '',\n md: '',\n lg: '',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst surfaceVariants = cva(\n [\n 'ds:group/workflow-status ds:inline-grid ds:max-w-full ds:w-fit ds:items-center',\n 'ds:overflow-hidden ds:text-start',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-border',\n 'ds:bg-transparent ds:text-foreground',\n 'ds:transition-colors ds:duration-[var(--animation-duration)]',\n 'ds:motion-reduce:transition-none',\n 'ds:forced-colors:border-[ButtonBorder]',\n ].join(' '),\n {\n variants: {\n size: {\n sm: `${INPUT_SURFACE_HEIGHT.sm} ds:gap-[var(--spacing-xs)] ds:ps-[var(--spacing-2xs)] ds:pe-[var(--spacing-sm)]`,\n md: `${INPUT_SURFACE_HEIGHT.md} ds:gap-[var(--spacing-sm)] ds:ps-[var(--spacing-2xs)] ds:pe-[var(--spacing-sm)]`,\n lg: `${INPUT_SURFACE_HEIGHT.lg} ds:gap-[var(--spacing-sm)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-md)]`,\n },\n interactive: {\n true: [\n 'ds:grid-cols-[auto_minmax(0,1fr)_auto] ds:appearance-none ds:cursor-pointer',\n 'ds:hover:enabled:bg-muted/10 ds:active:enabled:bg-muted/20',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n 'ds:data-[open]:bg-muted/20 ds:data-[open]:border-[color:var(--primary)]',\n 'ds:forced-colors:data-[open]:border-[Highlight]',\n ].join(' '),\n false: 'ds:grid-cols-[auto_minmax(0,1fr)] ds:cursor-default',\n },\n operation: {\n idle: '',\n disabled: 'ds:cursor-not-allowed ds:opacity-50',\n saving: 'ds:cursor-wait ds:border-[color:var(--info-foreground)]',\n error: 'ds:border-[color:var(--error-foreground)]',\n },\n },\n defaultVariants: {\n size: 'md',\n interactive: false,\n operation: 'idle',\n },\n },\n);\n\nconst iconVariants = cva(\n [\n 'ds:inline-flex ds:shrink-0 ds:items-center ds:justify-center',\n 'ds:rounded-[var(--radius-full)] ds:border ds:[&>svg]:block',\n 'ds:forced-colors:bg-transparent ds:forced-colors:border-[CanvasText]',\n // On a lit menu row every tone shows as an outline in the row's ink.\n 'ds:not-forced-colors:group-data-[highlighted]/menu-row:bg-transparent',\n 'ds:not-forced-colors:group-data-[highlighted]/menu-row:text-[color:var(--accent-foreground)]',\n 'ds:not-forced-colors:group-data-[highlighted]/menu-row:border-[color:var(--accent-foreground)]',\n ].join(' '),\n {\n variants: {\n tone: {\n neutral:\n 'ds:bg-muted ds:text-muted-foreground ds:border-[color:var(--border)]',\n info: 'ds:bg-info/15 ds:text-[color:var(--info-foreground)] ds:border-[color:var(--info-foreground)]',\n success:\n 'ds:bg-success/15 ds:text-[color:var(--success-foreground)] ds:border-[color:var(--success-foreground)]',\n warning:\n 'ds:bg-warning/15 ds:text-[color:var(--warning-foreground)] ds:border-[color:var(--warning-foreground)]',\n error:\n 'ds:bg-destructive/15 ds:text-[color:var(--error-foreground)] ds:border-[color:var(--error-foreground)]',\n accent:\n 'ds:bg-[color:color-mix(in_srgb,var(--accent)_15%,transparent)] ds:text-[color:color-mix(in_srgb,var(--accent)_40%,var(--foreground))] ds:border-[color:color-mix(in_srgb,var(--accent)_40%,var(--foreground))]',\n },\n /* The ball is a SETTING for the glyph, not a container it fills: at\n the old 24px/16px the icon took two thirds of the circle and the two\n read as one crowded blob. Each step is smaller overall and gives the\n glyph roughly half its diameter, so the ring stays legible as a ring\n and the status colour has room to register. */\n size: {\n sm: 'ds:size-5 ds:[&>svg]:size-3',\n md: 'ds:size-[var(--spacing-lg)] ds:[&>svg]:size-3.5',\n lg: 'ds:size-7 ds:[&>svg]:size-[var(--icon-size-sm)]',\n menu: 'ds:size-5 ds:[&>svg]:size-3',\n },\n },\n defaultVariants: { tone: 'neutral', size: 'md' },\n },\n);\n\nconst labelGroupVariants = cva(\n 'ds:flex ds:min-w-0 ds:flex-col ds:justify-center ds:text-start',\n {\n variants: {\n size: {\n sm: 'ds:gap-0',\n md: 'ds:gap-0',\n lg: 'ds:gap-0',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst valueVariants = cva(\n 'ds:block ds:min-w-0 ds:truncate ds:font-[var(--font-weight-semibold)] ds:text-[color:var(--foreground)]',\n {\n variants: {\n size: {\n sm: 'type-body-sm',\n md: 'type-label',\n lg: 'type-body',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst trailingVariants = cva(\n [\n 'ds:inline-flex ds:self-stretch ds:items-center ds:justify-center',\n 'ds:gap-[var(--spacing-2xs)] ds:border-s ds:border-border',\n 'ds:text-[color:var(--muted-foreground)]',\n 'ds:forced-colors:border-[ButtonBorder]',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:ps-[var(--spacing-xs)]',\n md: 'ds:ps-[var(--spacing-sm)]',\n lg: 'ds:ps-[var(--spacing-md)]',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst errorVariants = cva(\n [\n 'ds:flex ds:max-w-full ds:items-start ds:gap-[var(--spacing-xs)]',\n 'type-meta ds:text-[color:var(--error-foreground)]',\n 'ds:[&>svg]:mt-[var(--spacing-2xs)] ds:[&>svg]:size-[var(--spacing-md)] ds:[&>svg]:shrink-0',\n 'ds:forced-colors:text-[CanvasText]',\n ].join(' '),\n);\n\ninterface WorkflowStatusSurfaceProps extends Pick<\n VariantProps<typeof surfaceVariants>,\n 'size'\n> {\n option: WorkflowStatusOption;\n workflowLabel: string;\n interactive: boolean;\n operation?: 'idle' | 'disabled' | 'saving' | 'error';\n error: boolean;\n}\n\nfunction WorkflowStatusSurface({\n option,\n workflowLabel,\n size = 'md',\n interactive,\n operation = 'idle',\n error,\n}: WorkflowStatusSurfaceProps) {\n return (\n <>\n <span\n aria-hidden=\"true\"\n data-workflow-status-icon=\"\"\n data-tone={option.tone}\n className={iconVariants({ tone: option.tone, size })}\n >\n {option.icon}\n </span>\n <span className={labelGroupVariants({ size })}>\n {size !== 'sm' ? (\n <span className=\"type-meta ds:font-[var(--font-weight-medium)] ds:text-[color:var(--muted-foreground)]\">\n {workflowLabel}\n </span>\n ) : null}\n <span\n data-workflow-status-value=\"\"\n title={option.label}\n className={valueVariants({ size })}\n >\n {option.label}\n </span>\n </span>\n {interactive ? (\n <span className={trailingVariants({ size })} aria-hidden=\"true\">\n {error ? (\n <AlertCircle\n data-testid=\"workflow-status-error-icon\"\n className=\"ds:size-[var(--spacing-md)] ds:shrink-0\"\n />\n ) : null}\n {operation === 'saving' ? (\n <LoaderCircle className=\"ds:size-[var(--spacing-md)] ds:shrink-0 ds:animate-spin ds:motion-reduce:animate-none\" />\n ) : (\n <ChevronDown\n data-testid=\"workflow-status-chevron\"\n className=\"ds:size-[var(--spacing-md)] ds:shrink-0 ds:transition-transform ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none ds:group-data-[open]/workflow-status:rotate-180\"\n />\n )}\n </span>\n ) : null}\n </>\n );\n}\n\nexport interface WorkflowStatusDisplayProps {\n value: string;\n option: WorkflowStatusOption;\n size?: WorkflowStatusSize;\n workflowLabel?: string;\n id?: string;\n className?: string;\n dir?: 'ltr' | 'rtl';\n}\n\nexport const WorkflowStatusDisplay = forwardRef<\n HTMLDivElement,\n WorkflowStatusDisplayProps\n>(function WorkflowStatusDisplay(\n { value, option, size = 'md', workflowLabel, id, className, dir },\n ref,\n) {\n const { t } = useTranslation('ui');\n const resolvedWorkflowLabel =\n workflowLabel ?? t('workflowStatus.label', 'Workflow');\n\n return (\n <div\n ref={ref}\n id={id}\n dir={dir}\n data-component=\"workflow-status\"\n data-component-id={id}\n data-state={value}\n data-variant=\"display\"\n className={rootVariants({ size, className })}\n >\n <div className={surfaceVariants({ size, interactive: false })}>\n <WorkflowStatusSurface\n option={option}\n workflowLabel={resolvedWorkflowLabel}\n size={size}\n interactive={false}\n error={false}\n />\n </div>\n </div>\n );\n});\n\nWorkflowStatusDisplay.displayName = 'WorkflowStatusDisplay';\n\nexport interface WorkflowStatusControlHandle {\n getValue: () => string;\n getIsOpen: () => boolean;\n /** True while the host's `saving` is set or a returned promise is pending. */\n getIsSaving: () => boolean;\n /** Returns the host's promise, already marked handled, so a caller may\n * await a rejection without raising an unhandled-rejection warning. */\n setValue: (value: string) => void | Promise<void>;\n open: () => void;\n close: () => void;\n focus: () => void;\n}\n\nexport interface WorkflowStatusControlProps {\n value: string;\n options: readonly WorkflowStatusOption[];\n /**\n * Called with the status the person picked. Update `value` only once the\n * change is saved.\n *\n * Return a promise to let the control track the save, and resolve it only\n * once `value` shows the saved status. While it is pending the control\n * shows its saving state (spinner, aria-busy, locked). If it rejects, or\n * the callback throws, the control keeps showing `value` and shows the\n * error.\n *\n * The contract: reject, or throw, only with an `Error` whose message is\n * already translated and written for the person. The control shows that\n * message word for word and never translates or filters it, so a raw\n * network or server message, or a bug's own text, reaches the person as\n * it is. Catch every failure and reject with your own translated message.\n * A failure with no message shows the control's own translated default.\n *\n * The error clears on the next change, or when `value` moves to another\n * status. A host that changed `value` before the save finished must set\n * it back itself before rejecting.\n *\n * The pending save and its error belong to this instance. A host that\n * reuses one control for another record must remount it with\n * `key={recordId}`.\n */\n onValueChange: (value: string) => void | Promise<void>;\n size?: WorkflowStatusSize;\n disabled?: boolean;\n /** Host-driven saving flag. Not needed when `onValueChange` returns a\n * promise; the two combine. */\n saving?: boolean;\n /** Host-driven failed state. Shows the default message unless\n * `errorMessage` is set. */\n error?: boolean;\n /** Translated failure text. Setting it shows the alert at once, so set it\n * only while a save has failed. It wins over a rejection's own message;\n * to word a rejection, reject with a translated Error instead. */\n errorMessage?: string;\n workflowLabel?: string;\n menuLabel?: string;\n savingLabel?: string;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n id?: string;\n className?: string;\n dir?: 'ltr' | 'rtl';\n 'aria-label'?: string;\n 'aria-describedby'?: string;\n}\n\nexport const WorkflowStatusControl = forwardRef<\n WorkflowStatusControlHandle,\n WorkflowStatusControlProps\n>(function WorkflowStatusControl(\n {\n value,\n options,\n onValueChange,\n size = 'md',\n disabled = false,\n saving = false,\n error = false,\n errorMessage,\n workflowLabel,\n menuLabel,\n savingLabel,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n id,\n className,\n dir,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n },\n ref,\n) {\n const { t } = useTranslation('ui');\n const generatedErrorId = useId();\n const triggerRef = useRef<HTMLButtonElement>(null);\n /* A save the control tracks itself, from a promise `onValueChange`\n returned. The ref blocks a second change in the same tick; the state\n paints it. */\n const pendingRef = useRef(false);\n const [pending, setPending] = useState(false);\n /* `from` is the status shown when the failed attempt started. */\n const [failure, setFailure] = useState<Failure | null>(null);\n /* A new `value` from the host makes a failure stale, unless it is the\n host putting back the status the attempt started from. */\n const [seenValue, setSeenValue] = useState(value);\n if (seenValue !== value) {\n setSeenValue(value);\n if (failure && failure.from !== value) setFailure(null);\n }\n const mountedRef = useRef(false);\n useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n };\n }, []);\n const currentOption = options.find((option) => option.value === value);\n\n if (!currentOption) {\n throw new Error(\n `WorkflowStatusControl requires an option matching value \"${value}\".`,\n );\n }\n\n const resolvedWorkflowLabel =\n workflowLabel ?? t('workflowStatus.label', 'Workflow');\n const resolvedMenuLabel =\n menuLabel ?? t('workflowStatus.menuLabel', 'Workflow statuses');\n const resolvedSavingLabel =\n savingLabel ?? t('workflowStatus.saving', 'Saving workflow status');\n const defaultErrorMessage = t(\n 'workflowStatus.saveFailed',\n 'Could not change workflow status. The previous status is still shown.',\n );\n const resolvedErrorMessage =\n errorMessage ??\n (failure\n ? getErrorMessage(failure.reason, defaultErrorMessage)\n : defaultErrorMessage);\n const resolvedAriaLabel =\n ariaLabel ??\n t('workflowStatus.changeLabel', 'Change workflow status: {{status}}', {\n status: currentOption.label,\n });\n const hasError = error || Boolean(errorMessage) || failure !== null;\n const isSaving = saving || pending;\n const inactive = disabled || isSaving;\n const errorId = id ? `${id}-error` : generatedErrorId;\n const describedBy =\n [ariaDescribedBy, hasError ? errorId : undefined]\n .filter(Boolean)\n .join(' ') || undefined;\n const operation = isSaving\n ? 'saving'\n : disabled\n ? 'disabled'\n : hasError\n ? 'error'\n : 'idle';\n const [openValue, setOpen] = useControllableState<boolean>({\n value: openProp,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n });\n const isOpen = Boolean(openValue) && !inactive;\n\n /* A browser drops focus to the body when the focused trigger is disabled\n for a save. After a menu pick, put it back once the save settles, but\n only if nothing else has taken focus meanwhile. */\n const refocusAfterSaveRef = useRef(false);\n useIsomorphicLayoutEffect(() => {\n if (isSaving || !refocusAfterSaveRef.current) return;\n refocusAfterSaveRef.current = false;\n const trigger = triggerRef.current;\n const active = trigger?.ownerDocument.activeElement;\n if (trigger && (!active || active === trigger.ownerDocument.body)) {\n trigger.focus();\n }\n });\n\n const changeValue = useCallback(\n (next: string): void | Promise<void> => {\n /* The ref, not the rendered `pending`: a caller that awaited the last\n save may act before React re-renders this handle. */\n if (disabled || saving || pendingRef.current || next === value) return;\n const nextOption = options.find((option) => option.value === next);\n if (!nextOption || nextOption.disabled) return;\n setFailure(null);\n const from = value;\n let result: void | Promise<void>;\n try {\n result = onValueChange(next);\n } catch (reason) {\n setFailure({ reason, from });\n return handledRejection(reason);\n }\n if (!isThenable(result)) return result;\n pendingRef.current = true;\n setPending(true);\n const settle = (failed: Failure | null) => {\n pendingRef.current = false;\n if (!mountedRef.current) return;\n setPending(false);\n if (failed) setFailure(failed);\n };\n const saved = Promise.resolve(result).then(\n () => settle(null),\n (reason: unknown) => {\n settle({ reason, from });\n throw reason;\n },\n );\n /* A menu pick ignores the result; an agent may await it. */\n saved.catch(() => undefined);\n return saved;\n },\n [disabled, onValueChange, options, saving, value],\n );\n\n const handle = useMemo<WorkflowStatusControlHandle>(\n () => ({\n getValue: () => value,\n getIsOpen: () => isOpen,\n getIsSaving: () => isSaving,\n setValue: changeValue,\n open: () => {\n if (!inactive) setOpen(true);\n },\n close: () => setOpen(false),\n focus: () => triggerRef.current?.focus(),\n }),\n [changeValue, inactive, isOpen, isSaving, setOpen, value],\n );\n\n useImperativeHandle(ref, () => handle, [handle]);\n useAgentRegistration(workflowStatusAgent, handle, id);\n\n return (\n <div\n id={id}\n dir={dir}\n data-component=\"workflow-status\"\n data-component-id={id}\n data-state={value}\n data-variant=\"control\"\n data-saving={isSaving ? '' : undefined}\n data-error={hasError ? '' : undefined}\n className={rootVariants({ size, className })}\n >\n <DropdownMenu.Root\n dir={dir}\n open={isOpen}\n onOpenChange={(next) => {\n if (next && inactive) return;\n if (next) refocusAfterSaveRef.current = false;\n setOpen(next);\n }}\n >\n <DropdownMenu.Trigger asChild>\n <button\n ref={triggerRef}\n id={id ? `${id}-trigger` : undefined}\n type=\"button\"\n disabled={inactive}\n aria-label={resolvedAriaLabel}\n aria-describedby={describedBy}\n aria-busy={isSaving}\n data-open={isOpen ? '' : undefined}\n className={surfaceVariants({\n size,\n interactive: true,\n operation,\n })}\n >\n <WorkflowStatusSurface\n option={currentOption}\n workflowLabel={resolvedWorkflowLabel}\n size={size}\n interactive\n operation={operation}\n error={hasError}\n />\n </button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>{resolvedMenuLabel}</DropdownMenu.Label>\n <DropdownMenu.RadioGroup\n value={value}\n onValueChange={(next) => {\n // Close explicitly. `isOpen` is derived (`openValue &&\n // !inactive`), so a caller flipping `saving` in this same\n // event already controls the Root to `open={false}`, and\n // Radix swallows its own `onOpenChange` when the value\n // matches. `openValue` would stay true and the menu would\n // spring back once `saving` cleared.\n setOpen(false);\n triggerRef.current?.focus();\n refocusAfterSaveRef.current = true;\n void changeValue(next);\n }}\n >\n {options.map((option) => (\n <DropdownMenu.RadioItem\n key={option.value}\n value={option.value}\n disabled={inactive || option.disabled}\n data-option-id={option.value}\n >\n <span className=\"ds:flex ds:min-w-0 ds:items-center ds:gap-[var(--spacing-sm)]\">\n <span\n aria-hidden=\"true\"\n data-workflow-status-icon=\"\"\n data-tone={option.tone}\n className={iconVariants({\n tone: option.tone,\n size: 'menu',\n })}\n >\n {option.icon}\n </span>\n <span className=\"ds:min-w-0 ds:truncate\" title={option.label}>\n {option.label}\n </span>\n </span>\n </DropdownMenu.RadioItem>\n ))}\n </DropdownMenu.RadioGroup>\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n <span\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className=\"ds:sr-only\"\n >\n {isSaving ? resolvedSavingLabel : ''}\n </span>\n {hasError ? (\n <div id={errorId} role=\"alert\" className={errorVariants()}>\n <AlertCircle aria-hidden=\"true\" />\n <span>{resolvedErrorMessage}</span>\n </div>\n ) : null}\n </div>\n );\n});\n\nWorkflowStatusControl.displayName = 'WorkflowStatusControl';\n\ninterface Failure {\n reason: unknown;\n from: string;\n}\n\nfunction isThenable(value: unknown): value is PromiseLike<void> {\n return (\n typeof value === 'object' &&\n value !== null &&\n typeof (value as { then?: unknown }).then === 'function'\n );\n}\n"],"names":["workflowStatusAgent","handle","args","rootVariants","cva","surfaceVariants","INPUT_SURFACE_HEIGHT","iconVariants","labelGroupVariants","valueVariants","trailingVariants","errorVariants","WorkflowStatusSurface","option","workflowLabel","size","interactive","operation","error","jsxs","Fragment","jsx","AlertCircle","LoaderCircle","ChevronDown","WorkflowStatusDisplay","forwardRef","value","id","className","dir","ref","t","useTranslation","resolvedWorkflowLabel","WorkflowStatusControl","options","onValueChange","disabled","saving","errorMessage","menuLabel","savingLabel","openProp","defaultOpen","onOpenChange","ariaLabel","ariaDescribedBy","generatedErrorId","useId","triggerRef","useRef","pendingRef","pending","setPending","useState","failure","setFailure","seenValue","setSeenValue","mountedRef","useEffect","currentOption","resolvedMenuLabel","resolvedSavingLabel","defaultErrorMessage","resolvedErrorMessage","getErrorMessage","resolvedAriaLabel","hasError","isSaving","inactive","errorId","describedBy","openValue","setOpen","useControllableState","isOpen","refocusAfterSaveRef","useIsomorphicLayoutEffect","trigger","active","changeValue","useCallback","next","nextOption","from","result","reason","handledRejection","isThenable","settle","failed","saved","useMemo","_a","useImperativeHandle","useAgentRegistration","DropdownMenu"],"mappings":";;;;;;;;;;;;;AAGO,MAAMA,KAAiE;AAAA,EAC5E,IAAI;AAAA,EACJ,cAAc,CAAC,iBAAiB,aAAa,QAAQ,OAAO;AAAA,EAC5D,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,MAAM,CAACC,MAAWA,EAAO,SAAA;AAAA,IAAS;AAAA,IAEpC,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,MAAM,CAACA,MAAWA,EAAO,UAAA;AAAA,IAAU;AAAA,IAErC,UAAU;AAAA,MACR,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,MAAM,CAACA,MAAWA,EAAO,YAAA;AAAA,IAAY;AAAA,EACvC;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,WAAW;AAAA,MACX,QAAQ;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAEF,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,SAAA,GAAY;AAAA,MACxC,gBAAgB;AAAA,MAChB,aACE;AAAA,MACF,QAAQ,CAACA,GAAQC,MAA4BD,EAAO,SAASC,EAAK,KAAK;AAAA,IAAA;AAAA,IAEzE,MAAM;AAAA,MACJ,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,QAAQ,CAACD,MAAWA,EAAO,KAAA;AAAA,IAAK;AAAA,IAElC,OAAO;AAAA,MACL,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,QAAQ,CAACA,MAAWA,EAAO,MAAA;AAAA,IAAM;AAAA,EACnC;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,GC5CME,IAAeC;AAAA,EACnB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,IACN;AAAA,IAEF,iBAAiB,EAAE,MAAM,KAAA;AAAA,EAAK;AAElC,GAEMC,IAAkBD;AAAA,EACtB;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,EACA,KAAK,GAAG;AAAA,EACV;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,IAAI,GAAGE,EAAqB,EAAE;AAAA,QAC9B,IAAI,GAAGA,EAAqB,EAAE;AAAA,QAC9B,IAAI,GAAGA,EAAqB,EAAE;AAAA,MAAA;AAAA,MAEhC,aAAa;AAAA,QACX,MAAM;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA,EACA,KAAK,GAAG;AAAA,QACV,OAAO;AAAA,MAAA;AAAA,MAET,WAAW;AAAA,QACT,MAAM;AAAA,QACN,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,IAEF,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,aAAa;AAAA,MACb,WAAW;AAAA,IAAA;AAAA,EACb;AAEJ,GAEMC,IAAeH;AAAA,EACnB;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,EACA,KAAK,GAAG;AAAA,EACV;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,SACE;AAAA,QACF,MAAM;AAAA,QACN,SACE;AAAA,QACF,SACE;AAAA,QACF,OACE;AAAA,QACF,QACE;AAAA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOJ,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,IAEF,iBAAiB,EAAE,MAAM,WAAW,MAAM,KAAA;AAAA,EAAK;AAEnD,GAEMI,KAAqBJ;AAAA,EACzB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,IACN;AAAA,IAEF,iBAAiB,EAAE,MAAM,KAAA;AAAA,EAAK;AAElC,GAEMK,KAAgBL;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,IACN;AAAA,IAEF,iBAAiB,EAAE,MAAM,KAAA;AAAA,EAAK;AAElC,GAEMM,KAAmBN;AAAA,EACvB;AAAA,IACE;AAAA,IACA;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,IACN;AAAA,IAEF,iBAAiB,EAAE,MAAM,KAAA;AAAA,EAAK;AAElC,GAEMO,KAAgBP;AAAA,EACpB;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,EACA,KAAK,GAAG;AACZ;AAaA,SAASQ,EAAsB;AAAA,EAC7B,QAAAC;AAAA,EACA,eAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,aAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,OAAAC;AACF,GAA+B;AAC7B,SACE,gBAAAC,EAAAC,IAAA,EACE,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,6BAA0B;AAAA,QAC1B,aAAWR,EAAO;AAAA,QAClB,WAAWN,EAAa,EAAE,MAAMM,EAAO,MAAM,MAAAE,GAAM;AAAA,QAElD,UAAAF,EAAO;AAAA,MAAA;AAAA,IAAA;AAAA,sBAET,QAAA,EAAK,WAAWL,GAAmB,EAAE,MAAAO,EAAA,CAAM,GACzC,UAAA;AAAA,MAAAA,MAAS,OACR,gBAAAM,EAAC,QAAA,EAAK,WAAU,yFACb,aACH,IACE;AAAA,MACJ,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,8BAA2B;AAAA,UAC3B,OAAOR,EAAO;AAAA,UACd,WAAWJ,GAAc,EAAE,MAAAM,GAAM;AAAA,UAEhC,UAAAF,EAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IACV,GACF;AAAA,IACCG,IACC,gBAAAG,EAAC,QAAA,EAAK,WAAWT,GAAiB,EAAE,MAAAK,GAAM,GAAG,eAAY,QACtD,UAAA;AAAA,MAAAG,IACC,gBAAAG;AAAA,QAACC;AAAAA,QAAA;AAAA,UACC,eAAY;AAAA,UACZ,WAAU;AAAA,QAAA;AAAA,MAAA,IAEV;AAAA,MACHL,MAAc,WACb,gBAAAI,EAACE,IAAA,EAAa,WAAU,yFAAwF,IAEhH,gBAAAF;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,eAAY;AAAA,UACZ,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IACZ,EAAA,CAEJ,IACE;AAAA,EAAA,GACN;AAEJ;AAYO,MAAMC,KAAwBC,EAGnC,SACA,EAAE,OAAAC,GAAO,QAAAd,GAAQ,MAAAE,IAAO,MAAM,eAAAD,GAAe,IAAAc,GAAI,WAAAC,GAAW,KAAAC,EAAA,GAC5DC,GACA;AACA,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,IAAI,GAC3BC,IACJpB,KAAiBkB,EAAE,wBAAwB,UAAU;AAEvD,SACE,gBAAAX;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAU;AAAA,MACA,IAAAH;AAAA,MACA,KAAAE;AAAA,MACA,kBAAe;AAAA,MACf,qBAAmBF;AAAA,MACnB,cAAYD;AAAA,MACZ,gBAAa;AAAA,MACb,WAAWxB,EAAa,EAAE,MAAAY,GAAM,WAAAc,GAAW;AAAA,MAE3C,UAAA,gBAAAR,EAAC,SAAI,WAAWhB,EAAgB,EAAE,MAAAU,GAAM,aAAa,IAAO,GAC1D,UAAA,gBAAAM;AAAA,QAACT;AAAA,QAAA;AAAA,UACC,QAAAC;AAAA,UACA,eAAeqB;AAAA,UACf,MAAAnB;AAAA,UACA,aAAa;AAAA,UACb,OAAO;AAAA,QAAA;AAAA,MAAA,EACT,CACF;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;AAEDU,GAAsB,cAAc;AAqE7B,MAAMU,KAAwBT,EAGnC,SACA;AAAA,EACE,OAAAC;AAAA,EACA,SAAAS;AAAA,EACA,eAAAC;AAAA,EACA,MAAAtB,IAAO;AAAA,EACP,UAAAuB,IAAW;AAAA,EACX,QAAAC,IAAS;AAAA,EACT,OAAArB,IAAQ;AAAA,EACR,cAAAsB;AAAA,EACA,eAAA1B;AAAA,EACA,WAAA2B;AAAA,EACA,aAAAC;AAAA,EACA,MAAMC;AAAA,EACN,aAAAC,KAAc;AAAA,EACd,cAAAC;AAAA,EACA,IAAAjB;AAAA,EACA,WAAAC;AAAA,EACA,KAAAC;AAAA,EACA,cAAcgB;AAAA,EACd,oBAAoBC;AACtB,GACAhB,IACA;AACA,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,IAAI,GAC3Be,KAAmBC,GAAA,GACnBC,IAAaC,EAA0B,IAAI,GAI3CC,IAAaD,EAAO,EAAK,GACzB,CAACE,IAASC,CAAU,IAAIC,EAAS,EAAK,GAEtC,CAACC,GAASC,CAAU,IAAIF,EAAyB,IAAI,GAGrD,CAACG,IAAWC,EAAY,IAAIJ,EAAS5B,CAAK;AAChD,EAAI+B,OAAc/B,MAChBgC,GAAahC,CAAK,GACd6B,KAAWA,EAAQ,SAAS7B,OAAkB,IAAI;AAExD,QAAMiC,IAAaT,EAAO,EAAK;AAC/B,EAAAU,GAAU,OACRD,EAAW,UAAU,IACd,MAAM;AACX,IAAAA,EAAW,UAAU;AAAA,EACvB,IACC,CAAA,CAAE;AACL,QAAME,IAAgB1B,EAAQ,KAAK,CAACvB,MAAWA,EAAO,UAAUc,CAAK;AAErE,MAAI,CAACmC;AACH,UAAM,IAAI;AAAA,MACR,4DAA4DnC,CAAK;AAAA,IAAA;AAIrE,QAAMO,KACJpB,KAAiBkB,EAAE,wBAAwB,UAAU,GACjD+B,KACJtB,KAAaT,EAAE,4BAA4B,mBAAmB,GAC1DgC,KACJtB,KAAeV,EAAE,yBAAyB,wBAAwB,GAC9DiC,IAAsBjC;AAAA,IAC1B;AAAA,IACA;AAAA,EAAA,GAEIkC,KACJ1B,MACCgB,IACGW,GAAgBX,EAAQ,QAAQS,CAAmB,IACnDA,IACAG,KACJtB,MACAd,EAAE,8BAA8B,sCAAsC;AAAA,IACpE,QAAQ8B,EAAc;AAAA,EAAA,CACvB,GACGO,IAAWnD,KAAS,EAAQsB,KAAiBgB,MAAY,MACzDc,IAAW/B,KAAUc,IACrBkB,IAAWjC,KAAYgC,GACvBE,IAAU5C,IAAK,GAAGA,CAAE,WAAWoB,IAC/ByB,KACJ,CAAC1B,IAAiBsB,IAAWG,IAAU,MAAS,EAC7C,OAAO,OAAO,EACd,KAAK,GAAG,KAAK,QACZvD,IAAYqD,IACd,WACAhC,IACE,aACA+B,IACE,UACA,QACF,CAACK,IAAWC,CAAO,IAAIC,GAA8B;AAAA,IACzD,OAAOjC;AAAA,IACP,cAAcC;AAAA,IACd,UAAUC;AAAA,EAAA,CACX,GACKgC,IAAS,EAAQH,MAAc,CAACH,GAKhCO,IAAsB3B,EAAO,EAAK;AACxC,EAAA4B,GAA0B,MAAM;AAC9B,QAAIT,KAAY,CAACQ,EAAoB,QAAS;AAC9C,IAAAA,EAAoB,UAAU;AAC9B,UAAME,IAAU9B,EAAW,SACrB+B,IAASD,KAAA,gBAAAA,EAAS,cAAc;AACtC,IAAIA,MAAY,CAACC,KAAUA,MAAWD,EAAQ,cAAc,SAC1DA,EAAQ,MAAA;AAAA,EAEZ,CAAC;AAED,QAAME,IAAcC;AAAA,IAClB,CAACC,MAAuC;AAGtC,UAAI9C,KAAYC,KAAUa,EAAW,WAAWgC,MAASzD,EAAO;AAChE,YAAM0D,IAAajD,EAAQ,KAAK,CAACvB,MAAWA,EAAO,UAAUuE,CAAI;AACjE,UAAI,CAACC,KAAcA,EAAW,SAAU;AACxC,MAAA5B,EAAW,IAAI;AACf,YAAM6B,IAAO3D;AACb,UAAI4D;AACJ,UAAI;AACF,QAAAA,IAASlD,EAAc+C,CAAI;AAAA,MAC7B,SAASI,GAAQ;AACf,eAAA/B,EAAW,EAAE,QAAA+B,GAAQ,MAAAF,GAAM,GACpBG,GAAiBD,CAAM;AAAA,MAChC;AACA,UAAI,CAACE,GAAWH,CAAM,EAAG,QAAOA;AAChC,MAAAnC,EAAW,UAAU,IACrBE,EAAW,EAAI;AACf,YAAMqC,IAAS,CAACC,MAA2B;AAEzC,QADAxC,EAAW,UAAU,IAChBQ,EAAW,YAChBN,EAAW,EAAK,GACZsC,OAAmBA,CAAM;AAAA,MAC/B,GACMC,IAAQ,QAAQ,QAAQN,CAAM,EAAE;AAAA,QACpC,MAAMI,EAAO,IAAI;AAAA,QACjB,CAACH,MAAoB;AACnB,gBAAAG,EAAO,EAAE,QAAAH,GAAQ,MAAAF,GAAM,GACjBE;AAAA,QACR;AAAA,MAAA;AAGF,aAAAK,EAAM,MAAM,MAAA;AAAA,OAAe,GACpBA;AAAA,IACT;AAAA,IACA,CAACvD,GAAUD,GAAeD,GAASG,GAAQZ,CAAK;AAAA,EAAA,GAG5C1B,IAAS6F;AAAA,IACb,OAAO;AAAA,MACL,UAAU,MAAMnE;AAAA,MAChB,WAAW,MAAMkD;AAAA,MACjB,aAAa,MAAMP;AAAA,MACnB,UAAUY;AAAA,MACV,MAAM,MAAM;AACV,QAAKX,KAAUI,EAAQ,EAAI;AAAA,MAC7B;AAAA,MACA,OAAO,MAAMA,EAAQ,EAAK;AAAA,MAC1B,OAAO,MAAA;;AAAM,gBAAAoB,IAAA7C,EAAW,YAAX,gBAAA6C,EAAoB;AAAA;AAAA,IAAM;AAAA,IAEzC,CAACb,GAAaX,GAAUM,GAAQP,GAAUK,GAAShD,CAAK;AAAA,EAAA;AAG1D,SAAAqE,GAAoBjE,IAAK,MAAM9B,GAAQ,CAACA,CAAM,CAAC,GAC/CgG,GAAqBjG,IAAqBC,GAAQ2B,CAAE,GAGlD,gBAAAT;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAAS;AAAA,MACA,KAAAE;AAAA,MACA,kBAAe;AAAA,MACf,qBAAmBF;AAAA,MACnB,cAAYD;AAAA,MACZ,gBAAa;AAAA,MACb,eAAa2C,IAAW,KAAK;AAAA,MAC7B,cAAYD,IAAW,KAAK;AAAA,MAC5B,WAAWlE,EAAa,EAAE,MAAAY,GAAM,WAAAc,IAAW;AAAA,MAE3C,UAAA;AAAA,QAAA,gBAAAV;AAAA,UAAC+E,EAAa;AAAA,UAAb;AAAA,YACC,KAAApE;AAAA,YACA,MAAM+C;AAAA,YACN,cAAc,CAACO,MAAS;AACtB,cAAIA,KAAQb,MACRa,QAA0B,UAAU,KACxCT,EAAQS,CAAI;AAAA,YACd;AAAA,YAEA,UAAA;AAAA,cAAA,gBAAA/D,EAAC6E,EAAa,SAAb,EAAqB,SAAO,IAC3B,UAAA,gBAAA7E;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,KAAK6B;AAAA,kBACL,IAAItB,IAAK,GAAGA,CAAE,aAAa;AAAA,kBAC3B,MAAK;AAAA,kBACL,UAAU2C;AAAA,kBACV,cAAYH;AAAA,kBACZ,oBAAkBK;AAAA,kBAClB,aAAWH;AAAA,kBACX,aAAWO,IAAS,KAAK;AAAA,kBACzB,WAAWxE,EAAgB;AAAA,oBACzB,MAAAU;AAAA,oBACA,aAAa;AAAA,oBACb,WAAAE;AAAA,kBAAA,CACD;AAAA,kBAED,UAAA,gBAAAI;AAAA,oBAACT;AAAA,oBAAA;AAAA,sBACC,QAAQkD;AAAA,sBACR,eAAe5B;AAAA,sBACf,MAAAnB;AAAA,sBACA,aAAW;AAAA,sBACX,WAAAE;AAAA,sBACA,OAAOoD;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACT;AAAA,cAAA,GAEJ;AAAA,cACA,gBAAAlD,EAAC+E,EAAa,SAAb,EAAqB,OAAM,SAC1B,UAAA;AAAA,gBAAA,gBAAA7E,EAAC6E,EAAa,OAAb,EAAoB,UAAAnC,GAAA,CAAkB;AAAA,gBACvC,gBAAA1C;AAAA,kBAAC6E,EAAa;AAAA,kBAAb;AAAA,oBACC,OAAAvE;AAAA,oBACA,eAAe,CAACyD,MAAS;;AAOvB,sBAAAT,EAAQ,EAAK,IACboB,IAAA7C,EAAW,YAAX,QAAA6C,EAAoB,SACpBjB,EAAoB,UAAU,IACzBI,EAAYE,CAAI;AAAA,oBACvB;AAAA,oBAEC,UAAAhD,EAAQ,IAAI,CAACvB,MACZ,gBAAAQ;AAAA,sBAAC6E,EAAa;AAAA,sBAAb;AAAA,wBAEC,OAAOrF,EAAO;AAAA,wBACd,UAAU0D,KAAY1D,EAAO;AAAA,wBAC7B,kBAAgBA,EAAO;AAAA,wBAEvB,UAAA,gBAAAM,EAAC,QAAA,EAAK,WAAU,iEACd,UAAA;AAAA,0BAAA,gBAAAE;AAAA,4BAAC;AAAA,4BAAA;AAAA,8BACC,eAAY;AAAA,8BACZ,6BAA0B;AAAA,8BAC1B,aAAWR,EAAO;AAAA,8BAClB,WAAWN,EAAa;AAAA,gCACtB,MAAMM,EAAO;AAAA,gCACb,MAAM;AAAA,8BAAA,CACP;AAAA,8BAEA,UAAAA,EAAO;AAAA,4BAAA;AAAA,0BAAA;AAAA,0BAEV,gBAAAQ,EAAC,UAAK,WAAU,0BAAyB,OAAOR,EAAO,OACpD,YAAO,MAAA,CACV;AAAA,wBAAA,EAAA,CACF;AAAA,sBAAA;AAAA,sBApBKA,EAAO;AAAA,oBAAA,CAsBf;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACH,EAAA,CACF;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAEF,gBAAAQ;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,aAAU;AAAA,YACV,eAAY;AAAA,YACZ,WAAU;AAAA,YAET,cAAW2C,KAAsB;AAAA,UAAA;AAAA,QAAA;AAAA,QAEnCK,sBACE,OAAA,EAAI,IAAIG,GAAS,MAAK,SAAQ,WAAW7D,GAAA,GACxC,UAAA;AAAA,UAAA,gBAAAU,EAACC,GAAA,EAAY,eAAY,OAAA,CAAO;AAAA,UAChC,gBAAAD,EAAC,UAAM,UAAA6C,GAAA,CAAqB;AAAA,QAAA,EAAA,CAC9B,IACE;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGV,CAAC;AAED/B,GAAsB,cAAc;AAOpC,SAASuD,GAAW/D,GAA4C;AAC9D,SACE,OAAOA,KAAU,YACjBA,MAAU,QACV,OAAQA,EAA6B,QAAS;AAElD;"}
1
+ {"version":3,"file":"workflow-status-9wb7iWUd.js","sources":["../../src/components/workflow-status/workflow-status.agent.ts","../../src/components/workflow-status/workflow-status.tsx"],"sourcesContent":["import type { AgentAdapter } from '../../agent/types';\nimport type { WorkflowStatusControlHandle } from './workflow-status';\n\nexport const workflowStatusAgent: AgentAdapter<WorkflowStatusControlHandle> = {\n id: 'workflow-status',\n capabilities: ['select_single', 'set_value', 'open', 'close'],\n state: {\n value: {\n type: 'string',\n descriptionKey: 'ui.agent.workflowStatus.state.value',\n description: 'The current non-sensitive workflow status key.',\n read: (handle) => handle.getValue(),\n },\n isOpen: {\n type: 'boolean',\n descriptionKey: 'ui.agent.workflowStatus.state.isOpen',\n description: 'Whether the permitted workflow status list is open.',\n read: (handle) => handle.getIsOpen(),\n },\n isSaving: {\n type: 'boolean',\n descriptionKey: 'ui.agent.workflowStatus.state.isSaving',\n description: 'Whether the host is saving a workflow status change.',\n read: (handle) => handle.getIsSaving(),\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: 'Permitted workflow status key to select.',\n },\n },\n required: ['value'],\n },\n idempotent: true,\n openWorld: true,\n errors: [\n 'The status is not in the host-provided transition list.',\n 'The status is disabled.',\n 'A status change is already being saved.',\n 'The host rejected the change. The previous status stays and the error is shown.',\n ],\n examples: [{ args: { value: 'review' } }],\n descriptionKey: 'ui.agent.workflowStatus.actions.setValue',\n description:\n 'Request a permitted workflow status through the host-owned change callback.',\n invoke: (handle, args: { value: string }) => handle.setValue(args.value),\n },\n open: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.workflowStatus.actions.open',\n description: 'Open the permitted workflow status list.',\n invoke: (handle) => handle.open(),\n },\n close: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.workflowStatus.actions.close',\n description: 'Close the workflow status list.',\n invoke: (handle) => handle.close(),\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'workflow-status',\n description: 'Marks the WorkflowStatus boundary.',\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: 'Non-sensitive workflow status key for a permitted option.',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { AlertCircle, ChevronDown, LoaderCircle } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { useAgentRegistration } from '../../agent';\nimport { useControllableState } from '../../hooks/use-controllable-state';\nimport { useIsomorphicLayoutEffect } from '../../hooks/use-isomorphic-layout-effect';\nimport { getErrorMessage } from '../_shared/get-error-message';\nimport { handledRejection } from '../_shared/handled-rejection';\nimport { INPUT_SURFACE_HEIGHT } from '../_shared/input-surface';\nimport { DropdownMenu } from '../dropdown-menu';\nimport { workflowStatusAgent } from './workflow-status.agent';\n\nexport type WorkflowStatusTone =\n | 'neutral'\n | 'info'\n | 'success'\n | 'warning'\n | 'error'\n | 'accent';\n\nexport type WorkflowStatusSize = 'sm' | 'md' | 'lg';\n\nexport interface WorkflowStatusOption {\n value: string;\n label: string;\n icon: ReactNode;\n tone: WorkflowStatusTone;\n disabled?: boolean;\n}\n\nconst rootVariants = cva(\n 'ds:inline-flex ds:max-w-full ds:flex-col ds:items-start ds:gap-[var(--spacing-2xs)]',\n {\n variants: {\n size: {\n sm: '',\n md: '',\n lg: '',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst surfaceVariants = cva(\n [\n 'ds:group/workflow-status ds:inline-grid ds:max-w-full ds:w-fit ds:items-center',\n 'ds:overflow-hidden ds:text-start',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-border',\n 'ds:bg-transparent ds:text-foreground',\n 'ds:transition-colors ds:duration-[var(--animation-duration)]',\n 'ds:motion-reduce:transition-none',\n 'ds:forced-colors:border-[ButtonBorder]',\n ].join(' '),\n {\n variants: {\n size: {\n sm: `${INPUT_SURFACE_HEIGHT.sm} ds:gap-[var(--spacing-xs)] ds:ps-[var(--spacing-2xs)] ds:pe-[var(--spacing-sm)]`,\n md: `${INPUT_SURFACE_HEIGHT.md} ds:gap-[var(--spacing-sm)] ds:ps-[var(--spacing-2xs)] ds:pe-[var(--spacing-sm)]`,\n lg: `${INPUT_SURFACE_HEIGHT.lg} ds:gap-[var(--spacing-sm)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-md)]`,\n },\n interactive: {\n true: [\n 'ds:grid-cols-[auto_minmax(0,1fr)_auto] ds:appearance-none ds:cursor-pointer',\n 'ds:hover:enabled:bg-muted/10 ds:active:enabled:bg-muted/20',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n 'ds:data-[open]:bg-muted/20 ds:data-[open]:border-[color:var(--primary)]',\n 'ds:forced-colors:data-[open]:border-[Highlight]',\n ].join(' '),\n false: 'ds:grid-cols-[auto_minmax(0,1fr)] ds:cursor-default',\n },\n operation: {\n idle: '',\n disabled: 'ds:cursor-not-allowed ds:opacity-50',\n saving: 'ds:cursor-wait ds:border-[color:var(--info-foreground)]',\n error: 'ds:border-[color:var(--error-foreground)]',\n },\n },\n defaultVariants: {\n size: 'md',\n interactive: false,\n operation: 'idle',\n },\n },\n);\n\nconst iconVariants = cva(\n [\n 'ds:inline-flex ds:shrink-0 ds:items-center ds:justify-center',\n 'ds:rounded-[var(--radius-full)] ds:border ds:[&>svg]:block',\n 'ds:forced-colors:bg-transparent ds:forced-colors:border-[CanvasText]',\n // On a lit menu row every tone shows as an outline in the row's ink.\n 'ds:not-forced-colors:group-data-[highlighted]/menu-row:bg-transparent',\n 'ds:not-forced-colors:group-data-[highlighted]/menu-row:text-[color:var(--accent-foreground)]',\n 'ds:not-forced-colors:group-data-[highlighted]/menu-row:border-[color:var(--accent-foreground)]',\n ].join(' '),\n {\n variants: {\n tone: {\n neutral:\n 'ds:bg-muted ds:text-muted-foreground ds:border-[color:var(--border)]',\n info: 'ds:bg-info/15 ds:text-[color:var(--info-foreground)] ds:border-[color:var(--info-foreground)]',\n success:\n 'ds:bg-success/15 ds:text-[color:var(--success-foreground)] ds:border-[color:var(--success-foreground)]',\n warning:\n 'ds:bg-warning/15 ds:text-[color:var(--warning-foreground)] ds:border-[color:var(--warning-foreground)]',\n error:\n 'ds:bg-destructive/15 ds:text-[color:var(--error-foreground)] ds:border-[color:var(--error-foreground)]',\n accent:\n 'ds:bg-[color:color-mix(in_srgb,var(--accent)_15%,transparent)] ds:text-[color:color-mix(in_srgb,var(--accent)_40%,var(--foreground))] ds:border-[color:color-mix(in_srgb,var(--accent)_40%,var(--foreground))]',\n },\n /* The ball is a SETTING for the glyph, not a container it fills: at\n the old 24px/16px the icon took two thirds of the circle and the two\n read as one crowded blob. Each step is smaller overall and gives the\n glyph roughly half its diameter, so the ring stays legible as a ring\n and the status colour has room to register. */\n size: {\n sm: 'ds:size-5 ds:[&>svg]:size-3',\n md: 'ds:size-[var(--spacing-lg)] ds:[&>svg]:size-3.5',\n lg: 'ds:size-7 ds:[&>svg]:size-[var(--icon-size-sm)]',\n menu: 'ds:size-5 ds:[&>svg]:size-3',\n },\n },\n defaultVariants: { tone: 'neutral', size: 'md' },\n },\n);\n\nconst labelGroupVariants = cva(\n 'ds:flex ds:min-w-0 ds:flex-col ds:justify-center ds:text-start',\n {\n variants: {\n size: {\n sm: 'ds:gap-0',\n md: 'ds:gap-0',\n lg: 'ds:gap-0',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst valueVariants = cva(\n 'ds:block ds:min-w-0 ds:truncate ds:font-[var(--font-weight-semibold)] ds:text-[color:var(--foreground)]',\n {\n variants: {\n size: {\n sm: 'type-body-sm',\n md: 'type-label',\n lg: 'type-body',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst trailingVariants = cva(\n [\n 'ds:inline-flex ds:self-stretch ds:items-center ds:justify-center',\n 'ds:gap-[var(--spacing-2xs)] ds:border-s ds:border-border',\n 'ds:text-[color:var(--muted-foreground)]',\n 'ds:forced-colors:border-[ButtonBorder]',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:ps-[var(--spacing-xs)]',\n md: 'ds:ps-[var(--spacing-sm)]',\n lg: 'ds:ps-[var(--spacing-md)]',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst errorVariants = cva(\n [\n 'ds:flex ds:max-w-full ds:items-start ds:gap-[var(--spacing-xs)]',\n 'type-meta ds:text-[color:var(--error-foreground)]',\n 'ds:[&>svg]:mt-[var(--spacing-2xs)] ds:[&>svg]:size-[var(--spacing-md)] ds:[&>svg]:shrink-0',\n 'ds:forced-colors:text-[CanvasText]',\n ].join(' '),\n);\n\ninterface WorkflowStatusSurfaceProps extends Pick<\n VariantProps<typeof surfaceVariants>,\n 'size'\n> {\n option: WorkflowStatusOption;\n workflowLabel: string;\n interactive: boolean;\n operation?: 'idle' | 'disabled' | 'saving' | 'error';\n error: boolean;\n}\n\nfunction WorkflowStatusSurface({\n option,\n workflowLabel,\n size = 'md',\n interactive,\n operation = 'idle',\n error,\n}: WorkflowStatusSurfaceProps) {\n return (\n <>\n <span\n aria-hidden=\"true\"\n data-workflow-status-icon=\"\"\n data-tone={option.tone}\n className={iconVariants({ tone: option.tone, size })}\n >\n {option.icon}\n </span>\n <span className={labelGroupVariants({ size })}>\n {size !== 'sm' ? (\n <span className=\"type-meta ds:font-[var(--font-weight-medium)] ds:text-[color:var(--muted-foreground)]\">\n {workflowLabel}\n </span>\n ) : null}\n <span\n data-workflow-status-value=\"\"\n title={option.label}\n className={valueVariants({ size })}\n >\n {option.label}\n </span>\n </span>\n {interactive ? (\n <span className={trailingVariants({ size })} aria-hidden=\"true\">\n {error ? (\n <AlertCircle\n data-testid=\"workflow-status-error-icon\"\n className=\"ds:size-[var(--spacing-md)] ds:shrink-0\"\n />\n ) : null}\n {operation === 'saving' ? (\n <LoaderCircle className=\"ds:size-[var(--spacing-md)] ds:shrink-0 ds:animate-spin ds:motion-reduce:animate-none\" />\n ) : (\n <ChevronDown\n data-testid=\"workflow-status-chevron\"\n className=\"ds:size-[var(--spacing-md)] ds:shrink-0 ds:transition-transform ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none ds:group-data-[open]/workflow-status:rotate-180\"\n />\n )}\n </span>\n ) : null}\n </>\n );\n}\n\nexport interface WorkflowStatusDisplayProps {\n value: string;\n option: WorkflowStatusOption;\n size?: WorkflowStatusSize;\n workflowLabel?: string;\n id?: string;\n className?: string;\n dir?: 'ltr' | 'rtl';\n}\n\nexport const WorkflowStatusDisplay = forwardRef<\n HTMLDivElement,\n WorkflowStatusDisplayProps\n>(function WorkflowStatusDisplay(\n { value, option, size = 'md', workflowLabel, id, className, dir },\n ref,\n) {\n const { t } = useTranslation('ui');\n const resolvedWorkflowLabel =\n workflowLabel ?? t('workflowStatus.label', 'Workflow');\n\n return (\n <div\n ref={ref}\n id={id}\n dir={dir}\n data-component=\"workflow-status\"\n data-component-id={id}\n data-state={value}\n data-variant=\"display\"\n className={rootVariants({ size, className })}\n >\n <div className={surfaceVariants({ size, interactive: false })}>\n <WorkflowStatusSurface\n option={option}\n workflowLabel={resolvedWorkflowLabel}\n size={size}\n interactive={false}\n error={false}\n />\n </div>\n </div>\n );\n});\n\nWorkflowStatusDisplay.displayName = 'WorkflowStatusDisplay';\n\nexport interface WorkflowStatusControlHandle {\n getValue: () => string;\n getIsOpen: () => boolean;\n /** True while the host's `saving` is set or a returned promise is pending. */\n getIsSaving: () => boolean;\n /** Returns the host's promise, already marked handled, so a caller may\n * await a rejection without raising an unhandled-rejection warning. */\n setValue: (value: string) => void | Promise<void>;\n open: () => void;\n close: () => void;\n focus: () => void;\n}\n\nexport interface WorkflowStatusControlProps {\n value: string;\n options: readonly WorkflowStatusOption[];\n /**\n * Called with the status the person picked. Update `value` only once the\n * change is saved.\n *\n * Return a promise to let the control track the save, and resolve it only\n * once `value` shows the saved status. While it is pending the control\n * shows its saving state (spinner, aria-busy, locked). If it rejects, or\n * the callback throws, the control keeps showing `value` and shows the\n * error.\n *\n * The contract: reject, or throw, only with an `Error` whose message is\n * already translated and written for the person. The control shows that\n * message word for word and never translates or filters it, so a raw\n * network or server message, or a bug's own text, reaches the person as\n * it is. Catch every failure and reject with your own translated message.\n * A failure with no message shows the control's own translated default.\n *\n * The error clears on the next change, or when `value` moves to another\n * status. A host that changed `value` before the save finished must set\n * it back itself before rejecting.\n *\n * The pending save and its error belong to this instance. A host that\n * reuses one control for another record must remount it with\n * `key={recordId}`.\n */\n onValueChange: (value: string) => void | Promise<void>;\n size?: WorkflowStatusSize;\n disabled?: boolean;\n /** Host-driven saving flag. Not needed when `onValueChange` returns a\n * promise; the two combine. */\n saving?: boolean;\n /** Host-driven failed state. Shows the default message unless\n * `errorMessage` is set. */\n error?: boolean;\n /** Translated failure text. Setting it shows the alert at once, so set it\n * only while a save has failed. It wins over a rejection's own message;\n * to word a rejection, reject with a translated Error instead. */\n errorMessage?: string;\n workflowLabel?: string;\n menuLabel?: string;\n savingLabel?: string;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n id?: string;\n className?: string;\n dir?: 'ltr' | 'rtl';\n 'aria-label'?: string;\n 'aria-describedby'?: string;\n}\n\nexport const WorkflowStatusControl = forwardRef<\n WorkflowStatusControlHandle,\n WorkflowStatusControlProps\n>(function WorkflowStatusControl(\n {\n value,\n options,\n onValueChange,\n size = 'md',\n disabled = false,\n saving = false,\n error = false,\n errorMessage,\n workflowLabel,\n menuLabel,\n savingLabel,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n id,\n className,\n dir,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n },\n ref,\n) {\n const { t } = useTranslation('ui');\n const generatedErrorId = useId();\n const triggerRef = useRef<HTMLButtonElement>(null);\n /* A save the control tracks itself, from a promise `onValueChange`\n returned. The ref blocks a second change in the same tick; the state\n paints it. */\n const pendingRef = useRef(false);\n const [pending, setPending] = useState(false);\n /* `from` is the status shown when the failed attempt started. */\n const [failure, setFailure] = useState<Failure | null>(null);\n /* A new `value` from the host makes a failure stale, unless it is the\n host putting back the status the attempt started from. */\n const [seenValue, setSeenValue] = useState(value);\n if (seenValue !== value) {\n setSeenValue(value);\n if (failure && failure.from !== value) setFailure(null);\n }\n const mountedRef = useRef(false);\n useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n };\n }, []);\n const currentOption = options.find((option) => option.value === value);\n\n if (!currentOption) {\n throw new Error(\n `WorkflowStatusControl requires an option matching value \"${value}\".`,\n );\n }\n\n const resolvedWorkflowLabel =\n workflowLabel ?? t('workflowStatus.label', 'Workflow');\n const resolvedMenuLabel =\n menuLabel ?? t('workflowStatus.menuLabel', 'Workflow statuses');\n const resolvedSavingLabel =\n savingLabel ?? t('workflowStatus.saving', 'Saving workflow status');\n const defaultErrorMessage = t(\n 'workflowStatus.saveFailed',\n 'Could not change workflow status. The previous status is still shown.',\n );\n const resolvedErrorMessage =\n errorMessage ??\n (failure\n ? getErrorMessage(failure.reason, defaultErrorMessage)\n : defaultErrorMessage);\n const resolvedAriaLabel =\n ariaLabel ??\n t('workflowStatus.changeLabel', 'Change workflow status: {{status}}', {\n status: currentOption.label,\n });\n const hasError = error || Boolean(errorMessage) || failure !== null;\n const isSaving = saving || pending;\n const inactive = disabled || isSaving;\n const errorId = id ? `${id}-error` : generatedErrorId;\n const describedBy =\n [ariaDescribedBy, hasError ? errorId : undefined]\n .filter(Boolean)\n .join(' ') || undefined;\n const operation = isSaving\n ? 'saving'\n : disabled\n ? 'disabled'\n : hasError\n ? 'error'\n : 'idle';\n const [openValue, setOpen] = useControllableState<boolean>({\n value: openProp,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n });\n const isOpen = Boolean(openValue) && !inactive;\n\n /* A browser drops focus to the body when the focused trigger is disabled\n for a save. After a menu pick, put it back once the save settles, but\n only if nothing else has taken focus meanwhile. */\n const refocusAfterSaveRef = useRef(false);\n useIsomorphicLayoutEffect(() => {\n if (isSaving || !refocusAfterSaveRef.current) return;\n refocusAfterSaveRef.current = false;\n const trigger = triggerRef.current;\n const active = trigger?.ownerDocument.activeElement;\n if (trigger && (!active || active === trigger.ownerDocument.body)) {\n trigger.focus();\n }\n });\n\n const changeValue = useCallback(\n (next: string): void | Promise<void> => {\n /* The ref, not the rendered `pending`: a caller that awaited the last\n save may act before React re-renders this handle. */\n if (disabled || saving || pendingRef.current || next === value) return;\n const nextOption = options.find((option) => option.value === next);\n if (!nextOption || nextOption.disabled) return;\n setFailure(null);\n const from = value;\n let result: void | Promise<void>;\n try {\n result = onValueChange(next);\n } catch (reason) {\n setFailure({ reason, from });\n return handledRejection(reason);\n }\n if (!isThenable(result)) return result;\n pendingRef.current = true;\n setPending(true);\n const settle = (failed: Failure | null) => {\n pendingRef.current = false;\n if (!mountedRef.current) return;\n setPending(false);\n if (failed) setFailure(failed);\n };\n const saved = Promise.resolve(result).then(\n () => settle(null),\n (reason: unknown) => {\n settle({ reason, from });\n throw reason;\n },\n );\n /* A menu pick ignores the result; an agent may await it. */\n saved.catch(() => undefined);\n return saved;\n },\n [disabled, onValueChange, options, saving, value],\n );\n\n const handle = useMemo<WorkflowStatusControlHandle>(\n () => ({\n getValue: () => value,\n getIsOpen: () => isOpen,\n getIsSaving: () => isSaving,\n setValue: changeValue,\n open: () => {\n if (!inactive) setOpen(true);\n },\n close: () => setOpen(false),\n focus: () => triggerRef.current?.focus(),\n }),\n [changeValue, inactive, isOpen, isSaving, setOpen, value],\n );\n\n useImperativeHandle(ref, () => handle, [handle]);\n useAgentRegistration(workflowStatusAgent, handle, id);\n\n return (\n <div\n id={id}\n dir={dir}\n data-component=\"workflow-status\"\n data-component-id={id}\n data-state={value}\n data-variant=\"control\"\n data-saving={isSaving ? '' : undefined}\n data-error={hasError ? '' : undefined}\n className={rootVariants({ size, className })}\n >\n <DropdownMenu.Root\n dir={dir}\n open={isOpen}\n onOpenChange={(next) => {\n if (next && inactive) return;\n if (next) refocusAfterSaveRef.current = false;\n setOpen(next);\n }}\n >\n <DropdownMenu.Trigger asChild>\n <button\n ref={triggerRef}\n id={id ? `${id}-trigger` : undefined}\n type=\"button\"\n disabled={inactive}\n aria-label={resolvedAriaLabel}\n aria-describedby={describedBy}\n aria-busy={isSaving}\n data-open={isOpen ? '' : undefined}\n className={surfaceVariants({\n size,\n interactive: true,\n operation,\n })}\n >\n <WorkflowStatusSurface\n option={currentOption}\n workflowLabel={resolvedWorkflowLabel}\n size={size}\n interactive\n operation={operation}\n error={hasError}\n />\n </button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>{resolvedMenuLabel}</DropdownMenu.Label>\n <DropdownMenu.RadioGroup\n value={value}\n onValueChange={(next) => {\n // Close explicitly. `isOpen` is derived (`openValue &&\n // !inactive`), so a caller flipping `saving` in this same\n // event already controls the Root to `open={false}`, and\n // Radix swallows its own `onOpenChange` when the value\n // matches. `openValue` would stay true and the menu would\n // spring back once `saving` cleared.\n setOpen(false);\n triggerRef.current?.focus();\n refocusAfterSaveRef.current = true;\n void changeValue(next);\n }}\n >\n {options.map((option) => (\n <DropdownMenu.RadioItem\n key={option.value}\n value={option.value}\n disabled={inactive || option.disabled}\n data-option-id={option.value}\n >\n <span className=\"ds:flex ds:min-w-0 ds:items-center ds:gap-[var(--spacing-sm)]\">\n <span\n aria-hidden=\"true\"\n data-workflow-status-icon=\"\"\n data-tone={option.tone}\n className={iconVariants({\n tone: option.tone,\n size: 'menu',\n })}\n >\n {option.icon}\n </span>\n <span className=\"ds:min-w-0 ds:truncate\" title={option.label}>\n {option.label}\n </span>\n </span>\n </DropdownMenu.RadioItem>\n ))}\n </DropdownMenu.RadioGroup>\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n <span\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className=\"ds:sr-only\"\n >\n {isSaving ? resolvedSavingLabel : ''}\n </span>\n {hasError ? (\n <div id={errorId} role=\"alert\" className={errorVariants()}>\n <AlertCircle aria-hidden=\"true\" />\n <span>{resolvedErrorMessage}</span>\n </div>\n ) : null}\n </div>\n );\n});\n\nWorkflowStatusControl.displayName = 'WorkflowStatusControl';\n\ninterface Failure {\n reason: unknown;\n from: string;\n}\n\nfunction isThenable(value: unknown): value is PromiseLike<void> {\n return (\n typeof value === 'object' &&\n value !== null &&\n typeof (value as { then?: unknown }).then === 'function'\n );\n}\n"],"names":["workflowStatusAgent","handle","args","rootVariants","cva","surfaceVariants","INPUT_SURFACE_HEIGHT","iconVariants","labelGroupVariants","valueVariants","trailingVariants","errorVariants","WorkflowStatusSurface","option","workflowLabel","size","interactive","operation","error","jsxs","Fragment","jsx","AlertCircle","LoaderCircle","ChevronDown","WorkflowStatusDisplay","forwardRef","value","id","className","dir","ref","t","useTranslation","resolvedWorkflowLabel","WorkflowStatusControl","options","onValueChange","disabled","saving","errorMessage","menuLabel","savingLabel","openProp","defaultOpen","onOpenChange","ariaLabel","ariaDescribedBy","generatedErrorId","useId","triggerRef","useRef","pendingRef","pending","setPending","useState","failure","setFailure","seenValue","setSeenValue","mountedRef","useEffect","currentOption","resolvedMenuLabel","resolvedSavingLabel","defaultErrorMessage","resolvedErrorMessage","getErrorMessage","resolvedAriaLabel","hasError","isSaving","inactive","errorId","describedBy","openValue","setOpen","useControllableState","isOpen","refocusAfterSaveRef","useIsomorphicLayoutEffect","trigger","active","changeValue","useCallback","next","nextOption","from","result","reason","handledRejection","isThenable","settle","failed","saved","useMemo","_a","useImperativeHandle","useAgentRegistration","DropdownMenu"],"mappings":"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"}
@@ -12,8 +12,8 @@ import { C as Ge } from "./card-C85_Ndhb.js";
12
12
  import { C as Xt } from "./checkbox-a7Sh-dXb.js";
13
13
  import { F as zt } from "./field-array-CA-gn526.js";
14
14
  import { F as G } from "./form-field-CyHfOVKF.js";
15
- import { P as Ut } from "./password-input-BokZ_rnT.js";
16
- import { T as me } from "./text-input-CaG9ApoE.js";
15
+ import { P as Ut } from "./password-input-SJGHFdOO.js";
16
+ import { T as me } from "./text-input-B6iAgCr3.js";
17
17
  import { T as Gt } from "./token-insert-menu-Dl3x2ekR.js";
18
18
  import { u as Qe } from "./use-copy-to-clipboard-Cyfc_dlv.js";
19
19
  import { u as Jt } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
@@ -809,4 +809,4 @@ export {
809
809
  Mo as W,
810
810
  fo as a
811
811
  };
812
- //# sourceMappingURL=workflow-webhook-action-BD-6UyOs.js.map
812
+ //# sourceMappingURL=workflow-webhook-action-B_52rH7O.js.map