@alfadocs/ui-kit 1.60.0 → 1.62.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 (369) hide show
  1. package/dist/_chunks/{actions-cell-renderer-CZWGQFKV.js → actions-cell-renderer-BXCpK2_0.js} +3 -3
  2. package/dist/_chunks/{agenda-card-DauvvKX6.js → agenda-card-DR9gDdKp.js} +2 -2
  3. package/dist/_chunks/{agenda-tray-DU7O5Z7R.js → agenda-tray-DGB1Zup-.js} +3 -3
  4. package/dist/_chunks/{ai-credits-notice-MBgQXxsx.js → ai-credits-notice-pK9BOmEz.js} +2 -2
  5. package/dist/_chunks/{ai-permission-notice-BJHutKLE.js → ai-permission-notice-DpRmZ9Q3.js} +4 -4
  6. package/dist/_chunks/{ai-prompt-input-Dzos37rf.js → ai-prompt-input-DSGSe4LH.js} +2 -2
  7. package/dist/_chunks/{alert-BhCstf2h.js → alert-DdDpOi-P.js} +2 -2
  8. package/dist/_chunks/{alia-sidebar-CU3mVL9J.js → alia-sidebar-qe0quZkB.js} +6 -6
  9. package/dist/_chunks/{anamnesis-card-VjJOUl-t.js → anamnesis-card-CsUBOG32.js} +3 -3
  10. package/dist/_chunks/{anamnesis-summary-card-cCj7LPh3.js → anamnesis-summary-card-CMzBLTiN.js} +3 -3
  11. package/dist/_chunks/{anamnesis-summary-rows-C5F08WT6.js → anamnesis-summary-rows-DFWws7mM.js} +11 -11
  12. package/dist/_chunks/{antenatal-schedule-timeline-CfNFrej5.js → antenatal-schedule-timeline-DuaAQj1m.js} +2 -2
  13. package/dist/_chunks/app-frame-DUPEwu4E.js +179 -0
  14. package/dist/_chunks/app-frame-context-CPszhDDb.js +10 -0
  15. package/dist/_chunks/{appointment-card-BXQUZlAJ.js → appointment-card-CL32sux-.js} +3 -3
  16. package/dist/_chunks/{appointment-peek-BvzXHYiD.js → appointment-peek-B5mcDcXt.js} +3 -3
  17. package/dist/_chunks/{appointment-timeline-r-q97cec.js → appointment-timeline-DaHKV81s.js} +4 -4
  18. package/dist/_chunks/{appointment-tray-DF_R9ldY.js → appointment-tray-qtpJt8e0.js} +3 -3
  19. package/dist/_chunks/{audio-recorder-Cssm6jVh.js → audio-recorder-DR-u1qbl.js} +3 -3
  20. package/dist/_chunks/{auth-form-parts-CravOf0L.js → auth-form-parts-Cmb41LSQ.js} +2 -2
  21. package/dist/_chunks/{badge-hnBt8o7n.js → badge-BUk4RjTS.js} +2 -2
  22. package/dist/_chunks/{balance-badge-cell-DMG06b2C.js → balance-badge-cell-F7p_ZKEg.js} +5 -5
  23. package/dist/_chunks/{bishop-score-DxfkcxiV.js → bishop-score-CaNTrikJ.js} +2 -2
  24. package/dist/_chunks/{bmi-calculator-B4kgPqt5.js → bmi-calculator-DjmQ04Ch.js} +4 -4
  25. package/dist/_chunks/{booking-CXaqmdF7.js → booking-CGhOtxad.js} +8 -8
  26. package/dist/_chunks/{button-group-Cfpyu6pc.js → button-group-DCOJhvm3.js} +3 -3
  27. package/dist/_chunks/{calendar-DNTVaK6b.js → calendar-DCr65Kt1.js} +3 -3
  28. package/dist/_chunks/{calendar-workspace-UL5xcpWa.js → calendar-workspace-Dvfl9Vf6.js} +29 -29
  29. package/dist/_chunks/{care-plan-card-DFQbU_Gd.js → care-plan-card-BU3p5cLr.js} +3 -3
  30. package/dist/_chunks/{care-plan-entry-card-bj784KRk.js → care-plan-entry-card-DPJcP34v.js} +4 -4
  31. package/dist/_chunks/{care-plan-header-DDhyAfVK.js → care-plan-header-CgFjQLBd.js} +3 -3
  32. package/dist/_chunks/{carousel.agent-Csn24G1k.js → carousel.agent-BaRsN-8H.js} +2 -2
  33. package/dist/_chunks/chart-DgYHN8Xq.js +991 -0
  34. package/dist/_chunks/{chat-input-Ck34Pnmp.js → chat-input-HtTbUUD6.js} +2 -2
  35. package/dist/_chunks/{chat-message-DU0X3Xnl.js → chat-message-fRLZ95O5.js} +2 -2
  36. package/dist/_chunks/{checkbox--ndmyokr.js → checkbox-BjDv-r3o.js} +2 -2
  37. package/dist/_chunks/{checkbox-group-B0oZHNT3.js → checkbox-group-Cw2H5qaq.js} +2 -2
  38. package/dist/_chunks/{clinical-note-card-L6FVM9Gx.js → clinical-note-card-BgURrgL5.js} +3 -3
  39. package/dist/_chunks/{code-block-DiC4bg-o.js → code-block-vwEv1jEa.js} +2 -2
  40. package/dist/_chunks/{connection-status-BAnuwayz.js → connection-status--wYsgreh.js} +3 -3
  41. package/dist/_chunks/{contact-profile-card-JTRbnbxy.js → contact-profile-card-VTCAmQqj.js} +3 -3
  42. package/dist/_chunks/control-room-rail-DUerqHeo.js +416 -0
  43. package/dist/_chunks/{cycle-calculator-BuFi6ZJa.js → cycle-calculator-D-rwX9Pj.js} +2 -2
  44. package/dist/_chunks/dashboard-grid-B2MB7SRS.js +1428 -0
  45. package/dist/_chunks/{data-table-DAPkhyXO.js → data-table-m7GbLJZy.js} +6 -6
  46. package/dist/_chunks/{data-table-tabs-2t0cdk0h.js → data-table-tabs-BfrnefV5.js} +3 -3
  47. package/dist/_chunks/{dependent-selector-DgaAQc-c.js → dependent-selector-DBr1AhLg.js} +3 -3
  48. package/dist/_chunks/{description-list-CFEw__MT.js → description-list-Q8640NHu.js} +2 -2
  49. package/dist/_chunks/{dev-bypass-button-dTuUuzsT.js → dev-bypass-button--CPzzRSj.js} +2 -2
  50. package/dist/_chunks/{document-preview-DYX669jE.js → document-preview-B1dQm292.js} +4 -4
  51. package/dist/_chunks/{document-scanner-C41n4pNq.js → document-scanner-CVPVLK7z.js} +2 -2
  52. package/dist/_chunks/{due-date-calculator-yYvX8Ww_.js → due-date-calculator-DTfxFJCM.js} +5 -5
  53. package/dist/_chunks/{editable-currency-cell-renderer-6LDFAWUE.js → editable-currency-cell-renderer-1ijmzNWh.js} +4 -4
  54. package/dist/_chunks/{editable-description-D9FsTi8e.js → editable-description-ChGNdYY8.js} +2 -2
  55. package/dist/_chunks/{editor-overlay-BYkcaLCj.js → editor-overlay-CpVO1-Kk.js} +2 -2
  56. package/dist/_chunks/{entity-summary-oD_63dlz.js → entity-summary-DXIr5_x2.js} +4 -4
  57. package/dist/_chunks/{error-summary-BhM8FEkl.js → error-summary-DrUfuKu1.js} +2 -2
  58. package/dist/_chunks/{face-scheme-C-5V3MsY.js → face-scheme-DAD-mXzM.js} +4 -4
  59. package/dist/_chunks/{fetal-weight-CHv2winC.js → fetal-weight-DycD_Vqr.js} +2 -2
  60. package/dist/_chunks/{field-array-dSkD_ePA.js → field-array-BJYc1xSu.js} +2 -2
  61. package/dist/_chunks/{file-manager-C8bdHsYy.js → file-manager-G0t8MWbE.js} +6 -6
  62. package/dist/_chunks/{fiscal-code-input-BSWwda0C.js → fiscal-code-input-DwHb2nVW.js} +2 -2
  63. package/dist/_chunks/{forgot-password-form-CGWV5Q1-.js → forgot-password-form-CgZkEvZy.js} +4 -4
  64. package/dist/_chunks/{freemium-paywall-DjjVPC-5.js → freemium-paywall-r-z48YaT.js} +2 -2
  65. package/dist/_chunks/{gestational-age-calculator-BLccWS_4.js → gestational-age-calculator-BnCAL5a-.js} +5 -5
  66. package/dist/_chunks/{hcg-doubling-CnrY2OVu.js → hcg-doubling-DVDiqFyp.js} +2 -2
  67. package/dist/_chunks/{header-BVHAt7Fi.js → header-_TppWBpK.js} +2 -2
  68. package/dist/_chunks/{header-settings-C200bKyp.js → header-settings-BSH9Gk0J.js} +3 -3
  69. package/dist/_chunks/{heatmap-CRMr7VWC.js → heatmap-Bb0-M88T.js} +4 -4
  70. package/dist/_chunks/{help-me-write-templates-C9T8-DcT.js → help-me-write-templates-DFmqnsAa.js} +4 -4
  71. package/dist/_chunks/{hover-card-DbTmj-ea.js → hover-card-CTNhQXWS.js} +2 -2
  72. package/dist/_chunks/{icon-button-dNE6ENLn.js → icon-button-C_1TgRiK.js} +2 -2
  73. package/dist/_chunks/{icon-button-group-Du8IvZek.js → icon-button-group-NIHji7_y.js} +2 -2
  74. package/dist/_chunks/{icon-picker-D5NdDbCL.js → icon-picker-Dq4O32K8.js} +2 -2
  75. package/dist/_chunks/{info-tip-DObdz3w3.js → info-tip-cYszyg6h.js} +2 -2
  76. package/dist/_chunks/{key-value-pair-BNYHAZwD.js → key-value-pair-BscGwZsJ.js} +2 -2
  77. package/dist/_chunks/{kit-extensions-DI2nHVNw.js → kit-extensions-RnddkrXn.js} +6 -6
  78. package/dist/_chunks/{link-cell-renderer-DvhzS6lu.js → link-cell-renderer-dtEYlxi2.js} +6 -6
  79. package/dist/_chunks/{locale-picker-Bu4YE5b2.js → locale-picker-CeveTnDK.js} +3 -3
  80. package/dist/_chunks/{login-dev-card-DwWWHclZ.js → login-dev-card-PnADNcI9.js} +3 -3
  81. package/dist/_chunks/{marketplace-app-shell-DK2pFMpf.js → marketplace-app-shell-C-2e4eCD.js} +139 -136
  82. package/dist/_chunks/{message-card-CvZlo3Fn.js → message-card-A3mJNqfy.js} +2 -2
  83. package/dist/_chunks/{message-tray-DrS_LOed.js → message-tray-Ft6vSr71.js} +3 -3
  84. package/dist/_chunks/{multi-select-BT23EnSA.js → multi-select-CMaAQQgb.js} +2 -2
  85. package/dist/_chunks/{note-attachment-Bt2cddsZ.js → note-attachment-DoVWvjWR.js} +2 -2
  86. package/dist/_chunks/{note-timeline-CX9nAgAR.js → note-timeline-B7l3t5DZ.js} +2 -2
  87. package/dist/_chunks/{notes-panel-6TElt7jQ.js → notes-panel-CTmvrqQn.js} +7 -7
  88. package/dist/_chunks/{notification-card-Qrs52HIA.js → notification-card-c2oX8j3F.js} +2 -2
  89. package/dist/_chunks/{notification-tray-DRm1z97G.js → notification-tray-BR3seWA7.js} +3 -3
  90. package/dist/_chunks/{operator-hero-C_Khr5IU.js → operator-hero-3_RG4Dkj.js} +2 -2
  91. package/dist/_chunks/{optical-prescription-DLIAhJ6f.js → optical-prescription-CxfMsbxi.js} +2 -2
  92. package/dist/_chunks/{panel-header-D_mTdhUp.js → panel-header-BJkaUwnl.js} +2 -2
  93. package/dist/_chunks/{panel-subview-CjZgdWwO.js → panel-subview-yP4qIbKS.js} +3 -3
  94. package/dist/_chunks/{patient-details-BjqKBY2x.js → patient-details-BNDS69Zx.js} +4 -4
  95. package/dist/_chunks/{patient-field-row-BiI0BPPK.js → patient-field-row-BLBi-PjO.js} +7 -7
  96. package/dist/_chunks/{patient-search-B5R7FyFO.js → patient-search-DOnDUVsl.js} +2 -2
  97. package/dist/_chunks/{patient-summary-card-BOgnWKRV.js → patient-summary-card-T9umuZJF.js} +8 -8
  98. package/dist/_chunks/{payment-automation-upsell-39d5ykBi.js → payment-automation-upsell-C8MEu0t6.js} +4 -4
  99. package/dist/_chunks/{payment-form-v6zZuV1_.js → payment-form-i90DUuNK.js} +2 -2
  100. package/dist/_chunks/{payment-request-card-E3G4aVt6.js → payment-request-card-BmzNMY2a.js} +4 -4
  101. package/dist/_chunks/{pdf-viewer-CNQxa4tv.js → pdf-viewer-DJ9VN7cu.js} +2 -2
  102. package/dist/_chunks/{periodontal-chart-BZ1d6S36.js → periodontal-chart-DCcOEYC6.js} +2 -2
  103. package/dist/_chunks/{periodontal-chart-card-BE5hiQnn.js → periodontal-chart-card-CxdjXFb3.js} +3 -3
  104. package/dist/_chunks/{periodontal-diagnosis-6wybid_W.js → periodontal-diagnosis-B9YmmVmM.js} +5 -5
  105. package/dist/_chunks/{periodontal-risk-chart-CgLwBj5c.js → periodontal-risk-chart-CPy7CNFe.js} +2 -2
  106. package/dist/_chunks/{permission-matrix-DuTkUHxe.js → permission-matrix-BoQjENGV.js} +3 -3
  107. package/dist/_chunks/{popover-DQr_tljb.js → popover-4ZVtH_At.js} +2 -2
  108. package/dist/_chunks/{practice-profile-hero-DPbvYfCs.js → practice-profile-hero-Dfc0F60y.js} +2 -2
  109. package/dist/_chunks/{practice-results-Cktx7KaC.js → practice-results-B8L9ZmtR.js} +4 -4
  110. package/dist/_chunks/{pregnancy-dating-26fcvhAx.js → pregnancy-dating-D2XTELiw.js} +5 -5
  111. package/dist/_chunks/{pregnancy-weight-gain-D8q1IUCT.js → pregnancy-weight-gain-BVvyL-j1.js} +4 -4
  112. package/dist/_chunks/{privacy-lock-BpVgSgMb.js → privacy-lock-CEYJ8ehu.js} +2 -2
  113. package/dist/_chunks/{privacy-mask-BfMC57ST.js → privacy-mask-Ch7743uk.js} +2 -2
  114. package/dist/_chunks/{product-hub-panel-CH4B49ij.js → product-hub-panel-D-UELdo0.js} +2 -2
  115. package/dist/_chunks/{public-header.agent-BHTDKMsw.js → public-header.agent-DXRA7ebK.js} +3 -3
  116. package/dist/_chunks/{radio-BBbMdbE_.js → radio-BZQs6_36.js} +2 -2
  117. package/dist/_chunks/{radio-group-DicxWJXP.js → radio-group-ChIKyeSJ.js} +3 -3
  118. package/dist/_chunks/{radiograph-panel.agent-DR0gOeSc.js → radiograph-panel.agent-DDNUo4Ul.js} +4 -4
  119. package/dist/_chunks/{registration-form-B8IeB9kd.js → registration-form-BQyT_kBX.js} +5 -5
  120. package/dist/_chunks/{resource-chip-DQeCJzJf.js → resource-chip-DB5jDwUO.js} +2 -2
  121. package/dist/_chunks/{reviews-panel-CHzDqerd.js → reviews-panel-AvsVgtJu.js} +3 -3
  122. package/dist/_chunks/{rich-text-editor-BRuTo2hm.js → rich-text-editor-M2gT_E7f.js} +9 -9
  123. package/dist/_chunks/{sheet-CqvPYNLn.js → sheet-D2PfJl8n.js} +2 -2
  124. package/dist/_chunks/{sidebar-DhePV1hE.js → sidebar-BS24EnYd.js} +527 -519
  125. package/dist/_chunks/{sign-document-D4iHS_Ug.js → sign-document-CY7xTXbm.js} +2 -2
  126. package/dist/_chunks/{signature-request-BH7yKI01.js → signature-request-BMCHy2ZO.js} +5 -5
  127. package/dist/_chunks/{signature-status-chip-DP3qRijv.js → signature-status-chip-pIoQjvH8.js} +3 -3
  128. package/dist/_chunks/{signed-out-frame-eaOWHpDr.js → signed-out-frame-D5DzqATh.js} +3 -3
  129. package/dist/_chunks/{slot-grid-DELa2Nwz.js → slot-grid-dj5f6R2w.js} +2 -2
  130. package/dist/_chunks/{stat-DmjGfXND.js → stat-D2PNJujA.js} +2 -2
  131. package/dist/_chunks/{streaming-text-bPDoG7Y3.js → streaming-text-zFViGexf.js} +2 -2
  132. package/dist/_chunks/{tab-bar-5GppbMGc.js → tab-bar-BEODTG6k.js} +2 -2
  133. package/dist/_chunks/{tag-CS5cXpfx.js → tag-DOZGz0fT.js} +2 -2
  134. package/dist/_chunks/{task-card-zaTU1rQa.js → task-card-BS7Uqevr.js} +2 -2
  135. package/dist/_chunks/{task-editor-CgGcg-2c.js → task-editor-DoiOzNiC.js} +9 -9
  136. package/dist/_chunks/{task-tray-DGMwogWu.js → task-tray-eQU4KJcA.js} +3 -3
  137. package/dist/_chunks/{tasks-panel-xGtiEdcj.js → tasks-panel-8nLwBw6P.js} +7 -7
  138. package/dist/_chunks/{theme-toggle-_cfYEK73.js → theme-toggle-Ctb77x6O.js} +3 -3
  139. package/dist/_chunks/{toast-CNUydTgT.js → toast-6T519aLz.js} +2 -2
  140. package/dist/_chunks/tool-rail-C-03rH2I.js +973 -0
  141. package/dist/_chunks/tooltip-uEBdD1-5.js +178 -0
  142. package/dist/_chunks/{tooth-scheme-05DsRMA5.js → tooth-scheme-Dkh4JwzT.js} +2 -2
  143. package/dist/_chunks/{transcript-panel-CjsiDB1K.js → transcript-panel-XudW5l6l.js} +2 -2
  144. package/dist/_chunks/{treatment-receipt-BSVOfStA.js → treatment-receipt-BdJ36vNP.js} +3 -3
  145. package/dist/_chunks/{use-appointment-details-read-BGVthJFx.js → use-appointment-details-read-Gu0ehyxj.js} +16 -16
  146. package/dist/_chunks/use-edge-resize-CBtem0j2.js +171 -0
  147. package/dist/_chunks/{voice-control-panel-DyKEaFxt.js → voice-control-panel-C0BfY23Y.js} +4 -4
  148. package/dist/_chunks/{warning-stack-CAL9xVo1.js → warning-stack-HYWAytZV.js} +3 -3
  149. package/dist/_chunks/{widget-picker-CkhoG4Rj.js → widget-picker-DlNPGcnu.js} +2 -2
  150. package/dist/_chunks/{workflow-map-BUYG1oXU.js → workflow-map-C2B2qIr1.js} +5 -5
  151. package/dist/agent-catalog.json +49 -2
  152. package/dist/agent-i18n/en.json +13 -1
  153. package/dist/components/_shared/use-apex-legend-scroll.d.ts +7 -0
  154. package/dist/components/agenda-card/index.js +1 -1
  155. package/dist/components/agenda-tray/index.js +1 -1
  156. package/dist/components/ai-credits-notice/index.js +1 -1
  157. package/dist/components/ai-permission-notice/index.js +1 -1
  158. package/dist/components/ai-prompt-input/index.js +1 -1
  159. package/dist/components/alert/index.js +1 -1
  160. package/dist/components/anamnesis-card/index.js +1 -1
  161. package/dist/components/anamnesis-summary-card/index.js +1 -1
  162. package/dist/components/app-frame/app-frame-context.d.ts +19 -0
  163. package/dist/components/app-frame/app-frame.d.ts +3 -0
  164. package/dist/components/app-frame/index.d.ts +2 -0
  165. package/dist/components/app-frame/index.js +4 -2
  166. package/dist/components/appointment-card/index.js +2 -2
  167. package/dist/components/appointment-details-panel/index.js +1 -1
  168. package/dist/components/appointment-peek/index.js +1 -1
  169. package/dist/components/appointment-timeline/index.js +1 -1
  170. package/dist/components/audio-recorder/index.js +1 -1
  171. package/dist/components/badge/index.js +1 -1
  172. package/dist/components/bishop-score/index.js +1 -1
  173. package/dist/components/bmi-calculator/index.js +1 -1
  174. package/dist/components/booking/index.js +1 -1
  175. package/dist/components/button/index.js +1 -1
  176. package/dist/components/button-group/index.js +1 -1
  177. package/dist/components/calendar/index.js +1 -1
  178. package/dist/components/care-plan-card/index.js +1 -1
  179. package/dist/components/care-plan-entry-card/index.js +1 -1
  180. package/dist/components/care-plan-header/index.js +1 -1
  181. package/dist/components/carousel/index.js +1 -1
  182. package/dist/components/chart/chart.d.ts +3 -1
  183. package/dist/components/chart/index.js +1 -1
  184. package/dist/components/chat-input/index.js +1 -1
  185. package/dist/components/chat-message/index.js +1 -1
  186. package/dist/components/checkbox/index.js +1 -1
  187. package/dist/components/checkbox-group/index.js +1 -1
  188. package/dist/components/clinical-note-card/index.js +1 -1
  189. package/dist/components/connection-status/index.js +1 -1
  190. package/dist/components/contact-profile-card/index.js +1 -1
  191. package/dist/components/control-room-rail/control-room-context.d.ts +10 -4
  192. package/dist/components/control-room-rail/index.js +1 -1
  193. package/dist/components/cycle-calculator/index.js +1 -1
  194. package/dist/components/dashboard-grid/dashboard-grid-engine.d.ts +16 -4
  195. package/dist/components/dashboard-grid/dashboard-grid.d.ts +42 -2
  196. package/dist/components/dashboard-grid/index.d.ts +1 -1
  197. package/dist/components/dashboard-grid/index.js +1 -1
  198. package/dist/components/data-table/index.js +4 -4
  199. package/dist/components/data-table-tabs/index.js +1 -1
  200. package/dist/components/dependent-selector/index.js +1 -1
  201. package/dist/components/description-list/index.js +1 -1
  202. package/dist/components/dev-bypass-button/index.js +1 -1
  203. package/dist/components/document-preview/index.js +1 -1
  204. package/dist/components/document-scanner/index.js +1 -1
  205. package/dist/components/due-date-calculator/index.js +2 -2
  206. package/dist/components/editable-description/index.js +1 -1
  207. package/dist/components/editor-overlay/index.js +1 -1
  208. package/dist/components/entity-summary/index.js +1 -1
  209. package/dist/components/error-summary/index.js +1 -1
  210. package/dist/components/face-scheme/index.js +1 -1
  211. package/dist/components/fetal-weight/index.js +1 -1
  212. package/dist/components/field-array/index.js +1 -1
  213. package/dist/components/file-manager/index.js +1 -1
  214. package/dist/components/fiscal-code-input/index.js +1 -1
  215. package/dist/components/freemium-paywall/index.js +1 -1
  216. package/dist/components/gestational-age-calculator/index.js +1 -1
  217. package/dist/components/hcg-doubling/index.js +1 -1
  218. package/dist/components/header/index.js +1 -1
  219. package/dist/components/header-settings/index.js +1 -1
  220. package/dist/components/heatmap/index.js +1 -1
  221. package/dist/components/hover-card/index.js +1 -1
  222. package/dist/components/icon-button/index.js +1 -1
  223. package/dist/components/icon-button-group/index.js +1 -1
  224. package/dist/components/icon-picker/index.js +1 -1
  225. package/dist/components/info-tip/index.js +1 -1
  226. package/dist/components/key-value-pair/index.js +1 -1
  227. package/dist/components/locale-picker/index.js +1 -1
  228. package/dist/components/message-card/index.js +1 -1
  229. package/dist/components/message-tray/index.js +1 -1
  230. package/dist/components/multi-select/index.js +1 -1
  231. package/dist/components/note-timeline/index.js +1 -1
  232. package/dist/components/notes-panel/index.js +1 -1
  233. package/dist/components/notification-card/index.js +1 -1
  234. package/dist/components/notification-tray/index.js +1 -1
  235. package/dist/components/operator-hero/index.js +1 -1
  236. package/dist/components/optical-prescription/index.js +1 -1
  237. package/dist/components/panel-header/index.js +1 -1
  238. package/dist/components/panel-subview/index.js +1 -1
  239. package/dist/components/patient-details/index.js +1 -1
  240. package/dist/components/patient-search/index.js +1 -1
  241. package/dist/components/patient-summary-card/index.js +1 -1
  242. package/dist/components/patient-table/index.js +1 -1
  243. package/dist/components/payment-card/index.js +1 -1
  244. package/dist/components/payment-form/index.js +1 -1
  245. package/dist/components/pdf-viewer/index.js +1 -1
  246. package/dist/components/periodontal-chart/index.js +1 -1
  247. package/dist/components/periodontal-chart-card/index.js +1 -1
  248. package/dist/components/periodontal-diagnosis/index.js +1 -1
  249. package/dist/components/periodontal-risk-chart/index.js +1 -1
  250. package/dist/components/permission-matrix/index.js +1 -1
  251. package/dist/components/popover/index.js +1 -1
  252. package/dist/components/practice-profile-hero/index.js +1 -1
  253. package/dist/components/practice-results/index.js +1 -1
  254. package/dist/components/pregnancy-dating/index.js +1 -1
  255. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  256. package/dist/components/privacy-lock/index.js +1 -1
  257. package/dist/components/product-hub-tray/index.js +1 -1
  258. package/dist/components/public-header/index.js +1 -1
  259. package/dist/components/radio/index.js +1 -1
  260. package/dist/components/radio-group/index.js +2 -2
  261. package/dist/components/radiograph-panel/index.js +1 -1
  262. package/dist/components/resource-chip/index.js +1 -1
  263. package/dist/components/reviews-panel/index.js +1 -1
  264. package/dist/components/rich-text-editor/index.js +2 -2
  265. package/dist/components/sheet/index.js +1 -1
  266. package/dist/components/sidebar/index.js +1 -1
  267. package/dist/components/sidebar/sidebar.d.ts +6 -0
  268. package/dist/components/sign-document/index.js +1 -1
  269. package/dist/components/signature-status-chip/index.js +1 -1
  270. package/dist/components/slot-grid/index.js +1 -1
  271. package/dist/components/stat/index.js +1 -1
  272. package/dist/components/stat/stat.d.ts +7 -2
  273. package/dist/components/streaming-text/index.js +1 -1
  274. package/dist/components/tab-bar/index.js +1 -1
  275. package/dist/components/tag/index.js +1 -1
  276. package/dist/components/task-card/index.js +1 -1
  277. package/dist/components/task-editor/index.js +1 -1
  278. package/dist/components/task-tray/index.js +1 -1
  279. package/dist/components/tasks-panel/index.js +1 -1
  280. package/dist/components/theme-toggle/index.js +1 -1
  281. package/dist/components/toast/index.js +1 -1
  282. package/dist/components/tool-rail/index.js +1 -1
  283. package/dist/components/tool-rail/tool-rail.d.ts +7 -0
  284. package/dist/components/tooltip/index.js +1 -1
  285. package/dist/components/tooth-scheme/index.js +1 -1
  286. package/dist/components/transcript-panel/index.js +1 -1
  287. package/dist/components/treatment-receipt/index.js +1 -1
  288. package/dist/components/voice-control-panel/index.js +1 -1
  289. package/dist/components/warning-stack/index.js +1 -1
  290. package/dist/components/widget-picker/index.js +1 -1
  291. package/dist/components/workflow/index.js +1 -1
  292. package/dist/hooks/index.js +1 -1
  293. package/dist/hooks/use-edge-resize.d.ts +5 -1
  294. package/dist/i18n/locales/ar.d.ts +1 -0
  295. package/dist/i18n/locales/ar.js +1 -0
  296. package/dist/i18n/locales/de.d.ts +1 -0
  297. package/dist/i18n/locales/de.js +1 -0
  298. package/dist/i18n/locales/el.d.ts +1 -0
  299. package/dist/i18n/locales/el.js +1 -0
  300. package/dist/i18n/locales/en.d.ts +1 -0
  301. package/dist/i18n/locales/en.js +1 -0
  302. package/dist/i18n/locales/es.d.ts +1 -0
  303. package/dist/i18n/locales/es.js +1 -0
  304. package/dist/i18n/locales/fr.d.ts +1 -0
  305. package/dist/i18n/locales/fr.js +1 -0
  306. package/dist/i18n/locales/hi.d.ts +1 -0
  307. package/dist/i18n/locales/hi.js +1 -0
  308. package/dist/i18n/locales/it.d.ts +1 -0
  309. package/dist/i18n/locales/it.js +1 -0
  310. package/dist/i18n/locales/ja.d.ts +1 -0
  311. package/dist/i18n/locales/ja.js +1 -0
  312. package/dist/i18n/locales/nl.d.ts +1 -0
  313. package/dist/i18n/locales/nl.js +1 -0
  314. package/dist/i18n/locales/pl.d.ts +1 -0
  315. package/dist/i18n/locales/pl.js +1 -0
  316. package/dist/i18n/locales/pt.d.ts +1 -0
  317. package/dist/i18n/locales/pt.js +1 -0
  318. package/dist/i18n/locales/ro.d.ts +1 -0
  319. package/dist/i18n/locales/ro.js +1 -0
  320. package/dist/i18n/locales/ru.d.ts +1 -0
  321. package/dist/i18n/locales/ru.js +1 -0
  322. package/dist/i18n/locales/sq.d.ts +1 -0
  323. package/dist/i18n/locales/sq.js +1 -0
  324. package/dist/i18n/locales/sv.d.ts +1 -0
  325. package/dist/i18n/locales/sv.js +1 -0
  326. package/dist/i18n/locales/tr.d.ts +1 -0
  327. package/dist/i18n/locales/tr.js +1 -0
  328. package/dist/i18n/locales/zh.d.ts +1 -0
  329. package/dist/i18n/locales/zh.js +1 -0
  330. package/dist/index.js +778 -776
  331. package/dist/locales/ar.json +1 -0
  332. package/dist/locales/de.json +1 -0
  333. package/dist/locales/el.json +1 -0
  334. package/dist/locales/en.json +1 -0
  335. package/dist/locales/es.json +1 -0
  336. package/dist/locales/fr.json +1 -0
  337. package/dist/locales/hi.json +1 -0
  338. package/dist/locales/it.json +1 -0
  339. package/dist/locales/ja.json +1 -0
  340. package/dist/locales/nl.json +1 -0
  341. package/dist/locales/pl.json +1 -0
  342. package/dist/locales/pt.json +1 -0
  343. package/dist/locales/ro.json +1 -0
  344. package/dist/locales/ru.json +1 -0
  345. package/dist/locales/sq.json +1 -0
  346. package/dist/locales/sv.json +1 -0
  347. package/dist/locales/tr.json +1 -0
  348. package/dist/locales/zh.json +1 -0
  349. package/dist/patterns/alia-assistant/index.js +1 -1
  350. package/dist/patterns/anamnesis/index.js +1 -1
  351. package/dist/patterns/calendar/index.js +1 -1
  352. package/dist/patterns/forgot-password-form/index.js +1 -1
  353. package/dist/patterns/help-me-write-templates/index.js +1 -1
  354. package/dist/patterns/login-form/index.js +1 -1
  355. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  356. package/dist/patterns/marketplace-app-shell/marketplace-app-shell.d.ts +3 -0
  357. package/dist/patterns/payment-automation-upsell/index.js +1 -1
  358. package/dist/patterns/registration-form/index.js +1 -1
  359. package/dist/patterns/signature-request/index.js +1 -1
  360. package/dist/patterns/signed-out-frame/index.js +1 -1
  361. package/dist/tokens.css +8 -1
  362. package/package.json +1 -1
  363. package/dist/_chunks/app-frame-CqmDh2v5.js +0 -134
  364. package/dist/_chunks/chart-D7PbNO_M.js +0 -920
  365. package/dist/_chunks/control-room-rail-BbBEIdws.js +0 -379
  366. package/dist/_chunks/dashboard-grid-DeNEltwI.js +0 -933
  367. package/dist/_chunks/tool-rail-Blgibz0a.js +0 -816
  368. package/dist/_chunks/tooltip-Cp-PLePW.js +0 -119
  369. package/dist/_chunks/use-edge-resize-DHbyQwu8.js +0 -149
@@ -1,816 +0,0 @@
1
- import { jsxs as R, jsx as m } from "react/jsx-runtime";
2
- import { forwardRef as lt, useRef as h, useState as S, useMemo as j, useId as dt, useCallback as N, useEffect as re, useImperativeHandle as ct, Fragment as ut } from "react";
3
- import { c as A } from "./index-D2ZczOXr.js";
4
- import { useTranslation as ft } from "react-i18next";
5
- import { I as De } from "./icon-button-dNE6ENLn.js";
6
- import { S as pt } from "./scroll-area-CY5SLYNw.js";
7
- import { a as vt } from "./tooltip-Cp-PLePW.js";
8
- import { u as gt } from "./use-controllable-state-BiY4xTzM.js";
9
- import { u as mt } from "./use-edge-resize-DHbyQwu8.js";
10
- import { u as M } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
11
- import { a as bt, u as Ce, R as ht } from "./use-list-reflow-C7O4Uqnl.js";
12
- import { u as yt } from "./use-prefers-reduced-motion-BMwIQRjB.js";
13
- import { u as xt } from "./use-presence-transition-cDwWUXV-.js";
14
- import { u as It } from "./use-theme-CAuo6EYT.js";
15
- import { u as wt } from "./registry-DvAUVLHh.js";
16
- const Tt = {
17
- id: "tool-rail",
18
- capabilities: ["open", "close", "select_single"],
19
- state: {
20
- activeToolId: {
21
- type: "string | null",
22
- descriptionKey: "ui.toolRail.agent.state.activeToolId",
23
- description: "Id of the tool whose panel is currently open, or null when the rail is collapsed to its strip. No panel content is ever exposed.",
24
- read: (l) => l.getActiveToolId()
25
- }
26
- },
27
- actions: {
28
- open: {
29
- // Pure ephemeral panel state (open) — no data loss, no external effect.
30
- safety: "read",
31
- argsType: "{ id: string }",
32
- argsSchema: {
33
- type: "object",
34
- properties: { id: { type: "string" } },
35
- required: ["id"]
36
- },
37
- idempotent: !0,
38
- // descriptionKey shape is intentionally pre-existing — already resolves to
39
- // real multi-locale translations; do not canonicalise.
40
- descriptionKey: "ui.toolRail.agent.actions.open",
41
- description: "Open the given tool's panel.",
42
- examples: [{ args: { id: "inbox" }, note: "Open the inbox tool panel." }],
43
- invoke: (l, n) => {
44
- l.open(n.id);
45
- }
46
- },
47
- close: {
48
- safety: "read",
49
- idempotent: !0,
50
- descriptionKey: "ui.toolRail.agent.actions.close",
51
- description: "Collapse the rail to its strip (no active tool).",
52
- invoke: (l) => {
53
- l.close();
54
- }
55
- },
56
- select_tool: {
57
- safety: "read",
58
- argsType: "{ id: string | null }",
59
- argsSchema: {
60
- type: "object",
61
- properties: { id: { type: ["string", "null"] } },
62
- required: ["id"]
63
- },
64
- idempotent: !0,
65
- descriptionKey: "ui.toolRail.agent.actions.selectTool",
66
- description: "Set the active tool by id (opens its panel), or pass null to collapse.",
67
- invoke: (l, n) => {
68
- l.setActiveTool(n.id);
69
- }
70
- }
71
- },
72
- domHooks: {
73
- root: {
74
- attr: "data-component",
75
- value: "tool-rail",
76
- description: "Marks the ToolRail wrapper."
77
- },
78
- instanceId: {
79
- attr: "data-component-id",
80
- sourceProp: "id",
81
- description: "Sourced from the id prop. Required to address a specific rail from the agent."
82
- },
83
- item: {
84
- attr: "data-tool-id",
85
- description: "Stable tool id emitted on each strip IconButton. The active icon also carries data-active set to its id."
86
- }
87
- }
88
- }, Rt = "ds:[inline-size:3rem]", St = "ds:[inline-size:var(--tool-rail-panel-inline-size,var(--ai-tools-rail-panel-inline-size,22rem))]", _e = "--tool-rail-panel-inline-size", At = 288, Et = 880, kt = 352, Lt = A(
89
- ["ds:flex ds:shrink-0 ds:h-full", "ds:bg-[var(--background)]"].join(" "),
90
- {
91
- variants: {
92
- side: {
93
- // Strip docks inline-end; the panel mounts inline-start of it
94
- // (flex-row, panel rendered first). Shadow faces the main area —
95
- // no border against main (the rail stays line-free; the only seam
96
- // is the strip↔panel divider on the open panel, see render).
97
- // Accessible (AAA) theme swaps the soft chrome shadow for a solid 1px
98
- // border on the content-facing edge (border-s for end-docked):
99
- // the shadow is `--accessible-off` there and the edge is
100
- // `--accessible-edge-width`, 0 in the other themes. Both sit in
101
- // `[:where(&)]`, so a class passed in className wins.
102
- end: "ds:flex-row ds:[:where(&)]:[box-shadow:var(--accessible-off,var(--shadow-chrome-start))] ds:[:where(&)]:border-s-[length:var(--accessible-edge-width,0px)] ds:border-s-[color:var(--border)]",
103
- // Strip docks inline-start; the panel mounts inline-end of it.
104
- start: "ds:flex-row-reverse ds:[:where(&)]:[box-shadow:var(--accessible-off,var(--shadow-chrome-end))] ds:[:where(&)]:border-e-[length:var(--accessible-edge-width,0px)] ds:border-e-[color:var(--border)]"
105
- }
106
- },
107
- defaultVariants: { side: "end" }
108
- }
109
- ), zt = A(
110
- [
111
- "ds:flex ds:shrink-0 ds:flex-col ds:items-center",
112
- "ds:pt-[var(--spacing-md)] ds:pb-[var(--spacing-md)]",
113
- "ds:gap-[var(--spacing-xs)]",
114
- Rt
115
- ].join(" ")
116
- ), Nt = A(
117
- [
118
- "ds:relative ds:flex ds:min-h-0 ds:flex-col ds:h-full",
119
- "ds:bg-[var(--background)]",
120
- St,
121
- // Open / collapse: the panel fades and slides from the strip. The WIDTH
122
- // snaps on purpose — animating it would re-lay-out the main area (a
123
- // calendar grid) on every frame. Declared at rest so both directions
124
- // have a value to move from.
125
- "ds:transition-[opacity,translate] ds:duration-[var(--animation-duration)]",
126
- "ds:ease-[var(--ease-out)] ds:motion-reduce:transition-none",
127
- "ds:data-[presence=entering]:opacity-0 ds:data-[presence=leaving]:opacity-0",
128
- "ds:data-[presence=leaving]:pointer-events-none",
129
- "ds:data-[resizing]:transition-none"
130
- ].join(" "),
131
- {
132
- variants: {
133
- // Slide toward the strip the panel belongs to, mirrored in RTL.
134
- side: {
135
- end: "ds:data-[presence=entering]:translate-x-[var(--spacing-md)] ds:data-[presence=leaving]:translate-x-[var(--spacing-md)] ds:rtl:data-[presence=entering]:-translate-x-[var(--spacing-md)] ds:rtl:data-[presence=leaving]:-translate-x-[var(--spacing-md)]",
136
- start: "ds:data-[presence=entering]:-translate-x-[var(--spacing-md)] ds:data-[presence=leaving]:-translate-x-[var(--spacing-md)] ds:rtl:data-[presence=entering]:translate-x-[var(--spacing-md)] ds:rtl:data-[presence=leaving]:translate-x-[var(--spacing-md)]"
137
- }
138
- },
139
- defaultVariants: { side: "end" }
140
- }
141
- ), Dt = "ds:relative ds:flex ds:min-h-0 ds:flex-1 ds:flex-col ds:overflow-clip", Ve = A(
142
- [
143
- "ds:flex ds:min-h-0 ds:flex-col",
144
- "ds:transition-[opacity,translate] ds:duration-[var(--animation-duration)]",
145
- "ds:ease-[var(--ease-out)] ds:motion-reduce:transition-none",
146
- "ds:data-[presence=entering]:opacity-0 ds:data-[presence=leaving]:opacity-0"
147
- ].join(" "),
148
- {
149
- variants: {
150
- // Same small distance as the panel's own entrance, mirrored in RTL.
151
- layer: {
152
- live: [
153
- "ds:relative ds:z-[1] ds:flex-1",
154
- "ds:data-[presence=entering]:translate-x-[var(--spacing-md)]",
155
- "ds:rtl:data-[presence=entering]:-translate-x-[var(--spacing-md)]"
156
- ].join(" "),
157
- leaving: [
158
- "ds:pointer-events-none ds:absolute ds:inset-0 ds:z-0 ds:[&_*]:!animate-none",
159
- "ds:data-[presence=leaving]:-translate-x-[var(--spacing-md)]",
160
- "ds:rtl:data-[presence=leaving]:translate-x-[var(--spacing-md)]"
161
- ].join(" ")
162
- }
163
- },
164
- defaultVariants: { layer: "live" }
165
- }
166
- ), Ct = 500, _t = [
167
- "id",
168
- "name",
169
- "for",
170
- "data-component",
171
- "data-component-id",
172
- "data-testid"
173
- ];
174
- function Vt(l) {
175
- return window.getComputedStyle(l).transitionDuration.split(",").some((n) => Number.parseFloat(n) > 0);
176
- }
177
- function Bt(l) {
178
- const n = l.cloneNode(!0), U = l.querySelectorAll("*"), q = n.querySelectorAll("*"), P = [];
179
- return U.forEach((d, D) => {
180
- var F;
181
- const f = q[D];
182
- if (f && ((d.scrollTop !== 0 || d.scrollLeft !== 0) && P.push([f, d.scrollTop, d.scrollLeft]), d instanceof HTMLCanvasElement && f instanceof HTMLCanvasElement))
183
- try {
184
- (F = f.getContext("2d")) == null || F.drawImage(d, 0, 0);
185
- } catch {
186
- }
187
- }), q.forEach((d) => {
188
- const D = d instanceof SVGElement;
189
- for (const f of _t)
190
- D && f === "id" || d.removeAttribute(f);
191
- if (d.matches("iframe, video, audio, embed, object, source"))
192
- for (const f of ["src", "srcdoc", "data", "autoplay"])
193
- d.removeAttribute(f);
194
- }), { nodes: Array.from(n.childNodes), scrolls: P };
195
- }
196
- const jt = A(
197
- [
198
- "ds:absolute ds:[inset-block:0] ds:z-[1] ds:select-none ds:touch-none",
199
- "ds:[inline-size:var(--resizable-handle-size)] ds:cursor-col-resize",
200
- "ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
201
- "ds:hover:bg-[var(--accent)] ds:focus-visible:bg-[var(--accent)] ds:data-[resizing]:bg-[var(--accent)]",
202
- "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
203
- "ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
204
- "ds:forced-colors:focus-visible:outline-[CanvasText]",
205
- "ds:before:absolute ds:before:content-['']",
206
- "ds:before:[block-size:100%]",
207
- "ds:before:[inline-size:var(--min-target-size)]",
208
- "ds:before:[inset-block:0]",
209
- "ds:before:[inset-inline:calc(0px_-_(var(--min-target-size)_-_var(--resizable-handle-size))_/_2)]"
210
- ],
211
- {
212
- variants: {
213
- edge: {
214
- "inline-start": "ds:start-0",
215
- "inline-end": "ds:end-0"
216
- }
217
- },
218
- defaultVariants: { edge: "inline-start" }
219
- }
220
- ), Mt = A(
221
- [
222
- "ds:absolute ds:-top-[var(--spacing-xs)] ds:-end-[var(--spacing-xs)]",
223
- "ds:inline-flex ds:items-center ds:justify-center",
224
- "ds:min-w-[calc(var(--spacing-md)+var(--spacing-xs))]",
225
- "ds:h-[calc(var(--spacing-md)+var(--spacing-xs))]",
226
- "ds:ps-[calc(var(--spacing-xs)/1.5)] ds:pe-[calc(var(--spacing-xs)/1.5)]",
227
- "ds:rounded-[var(--radius-full)]",
228
- "ds:bg-[color:var(--destructive)] ds:text-[color:var(--destructive-foreground)]",
229
- "ds:text-[length:var(--font-size-xs)] ds:font-semibold ds:leading-none",
230
- "ds:pointer-events-none ds:select-none",
231
- "ds:forced-colors:outline ds:forced-colors:outline-1 ds:forced-colors:outline-[CanvasText]"
232
- ].join(" ")
233
- ), Be = A(
234
- // `group/rail-tool` lets an affordance overlay (e.g. a pin star) reveal on
235
- // hover / focus-within of the whole slot.
236
- ["ds:group/rail-tool ds:relative", "ds:rounded-[var(--radius-sm)]"],
237
- {
238
- variants: {
239
- dragging: { true: "ds:opacity-60", false: "" },
240
- dropTarget: {
241
- true: "ds:outline-[length:var(--focus-ring-width)] ds:outline-dashed ds:outline-[var(--accent)] ds:outline-offset-[length:var(--focus-ring-offset)]",
242
- false: ""
243
- },
244
- reorderable: {
245
- true: "ds:cursor-grab ds:active:cursor-grabbing",
246
- false: ""
247
- }
248
- },
249
- defaultVariants: {
250
- dragging: !1,
251
- dropTarget: !1,
252
- reorderable: !1
253
- }
254
- }
255
- ), qt = "ds:opacity-0", je = [
256
- "ds:transition-opacity ds:duration-[var(--animation-duration)]",
257
- "ds:ease-[var(--ease-out)] ds:motion-reduce:transition-none"
258
- ].join(" ");
259
- function Pt(l, n) {
260
- return l > 99 ? n : String(l);
261
- }
262
- const Ft = lt(
263
- ({
264
- id: l,
265
- tools: n,
266
- activeToolId: U,
267
- defaultActiveToolId: q = null,
268
- onActiveToolChange: P,
269
- side: d = "end",
270
- railLabel: D,
271
- resizablePanel: f = !1,
272
- panelWidth: F,
273
- onPanelWidthChange: Me,
274
- onReorder: K,
275
- formatReorderAnnouncement: W,
276
- renderToolAffordance: Z,
277
- renderPanelHeader: ie,
278
- dataComponent: qe = "tool-rail",
279
- agentAdapter: Pe = Tt,
280
- className: Fe
281
- }, Ke) => {
282
- var ke, Le;
283
- const { t: y } = ft("ui"), [Oe, x] = gt({
284
- value: U,
285
- defaultValue: q,
286
- onChange: P
287
- }), I = Oe ?? null, G = h([]), C = h(null), [oe, Y] = S(0), E = h(!1), X = h(!1), w = j(
288
- () => n.findIndex((e) => e.id === I),
289
- [n, I]
290
- ), u = w >= 0 ? n[w] : null, J = h(u);
291
- u && (J.current = u);
292
- const $e = j(
293
- () => n.findIndex((e) => !e.disabled),
294
- [n]
295
- ), le = j(() => {
296
- var t;
297
- const e = (t = n[0]) == null ? void 0 : t.scope;
298
- return e ? n.findIndex((a) => a.scope && a.scope !== e) : -1;
299
- }, [n]), He = le > 0, p = j(() => {
300
- var a;
301
- const e = n.findIndex((s) => s.reorderable);
302
- if (e < 0) return null;
303
- let t = e;
304
- for (; t + 1 < n.length && ((a = n[t + 1]) != null && a.reorderable); ) t += 1;
305
- return { first: e, last: t };
306
- }, [n]), de = !!K && p !== null, Ue = dt(), [_, Q] = S(null), [ce, O] = S(null), { resolvedTheme: We } = It(), k = We.endsWith("-accessible") || void 0, { containerRef: Ze } = bt({
307
- key: n.map((e) => e.id).join(),
308
- reduceMotion: k
309
- }), ee = Ce({ reduceMotion: k }), te = xt(
310
- u !== null,
311
- { reduceMotion: k }
312
- ), T = u === null && te.mounted, b = u ?? (T ? J.current : null), { ref: ue } = te, Ge = N(
313
- (e) => {
314
- C.current = e, ue(e);
315
- },
316
- [ue]
317
- );
318
- M(() => {
319
- var a;
320
- const e = C.current;
321
- if (!e) return;
322
- const t = document.activeElement;
323
- if (T && t instanceof HTMLElement && e.contains(t)) {
324
- const s = (a = J.current) == null ? void 0 : a.id, r = L.current, o = (s ? r == null ? void 0 : r.querySelector(
325
- `[data-tool-id="${CSS.escape(s)}"]`
326
- ) : null) ?? /* The tool left the strip with its panel (a host removed it as it
327
- closed): the strip's tab stop, else its first enabled icon, so
328
- focus never drops to <body>. */
329
- (r == null ? void 0 : r.querySelector(
330
- '[data-tool-id][tabindex="0"]'
331
- )) ?? (r == null ? void 0 : r.querySelector(
332
- "[data-tool-id]:not(:disabled)"
333
- ));
334
- t.blur(), e.setAttribute("inert", ""), o == null || o.focus();
335
- return;
336
- }
337
- e.toggleAttribute("inert", T);
338
- }, [T]);
339
- const fe = yt(), [$, pe] = S(
340
- (u == null ? void 0 : u.id) ?? null
341
- ), v = (u == null ? void 0 : u.id) ?? null, H = !k && !fe && v !== null && $ !== null && $ !== v;
342
- M(() => {
343
- if ($ === v) return;
344
- if (!H) {
345
- pe(v);
346
- return;
347
- }
348
- let e = 0;
349
- const t = () => pe(v), a = requestAnimationFrame(() => {
350
- e = requestAnimationFrame(t);
351
- }), s = window.setTimeout(t, 64);
352
- return () => {
353
- cancelAnimationFrame(a), cancelAnimationFrame(e), window.clearTimeout(s);
354
- };
355
- }, [v, $, H]);
356
- const Ye = !!k || fe, ve = h(null), [c, ge] = S({ liveId: v, serial: 0, focusLost: !1, leaving: [] });
357
- if (c.liveId !== v) {
358
- const e = c.liveId !== null && v !== null ? ((ke = ve.current) == null ? void 0 : ke.querySelector(
359
- ':scope > [data-tool-rail-layer="live"]'
360
- )) ?? null : null, t = c.leaving.filter(
361
- (a) => a.toolId !== v
362
- );
363
- ge({
364
- liveId: v,
365
- serial: c.serial + 1,
366
- focusLost: (e == null ? void 0 : e.contains(document.activeElement)) ?? !1,
367
- leaving: e && !Ye ? [
368
- ...t.filter((a) => a.toolId !== c.liveId),
369
- {
370
- exitId: `${c.liveId}:${c.serial}`,
371
- toolId: c.liveId,
372
- ...Bt(e)
373
- }
374
- ] : t
375
- });
376
- }
377
- const V = N((e) => {
378
- ge(
379
- (t) => t.leaving.some((a) => a.exitId === e) ? {
380
- ...t,
381
- leaving: t.leaving.filter((a) => a.exitId !== e)
382
- } : t
383
- );
384
- }, []), { leave: me } = Ce({
385
- reduceMotion: k,
386
- durationMs: Ct
387
- });
388
- re(() => {
389
- for (const { exitId: e } of c.leaving)
390
- me(e, () => V(e));
391
- }, [c.leaving, me, V]);
392
- const Xe = b ? c.leaving : [], Je = ((Le = c.leaving[c.leaving.length - 1]) == null ? void 0 : Le.exitId) ?? null, be = h(c.leaving);
393
- be.current = c.leaving;
394
- const Qe = N(
395
- (e) => {
396
- if (!e || e.childNodes.length > 0) return;
397
- const t = be.current.find(
398
- (a) => a.exitId === e.dataset.exitId
399
- );
400
- if (t) {
401
- if (!Vt(e)) {
402
- V(t.exitId);
403
- return;
404
- }
405
- e.setAttribute("inert", ""), e.append(...t.nodes);
406
- for (const [a, s, r] of t.scrolls)
407
- a.scrollTop = s, a.scrollLeft = r;
408
- }
409
- },
410
- [V]
411
- );
412
- M(() => {
413
- var t, a;
414
- if (!c.focusLost || !v) return;
415
- const e = document.activeElement;
416
- e && e !== document.body || (a = (t = L.current) == null ? void 0 : t.querySelector(
417
- `[data-tool-id="${CSS.escape(v)}"]`
418
- )) == null || a.focus();
419
- }, [c.serial]);
420
- const [et, he] = S([]), ye = h(n);
421
- re(() => {
422
- const e = ye.current, t = new Set(n.map((s) => s.id)), a = e.filter((s) => !t.has(s.id));
423
- if (a.length > 0) {
424
- he((s) => {
425
- const r = new Set(s.map((o) => o.id));
426
- return [
427
- ...s,
428
- ...a.filter((o) => !r.has(o.id))
429
- ];
430
- });
431
- for (const s of a)
432
- ee.leave(s.id, () => {
433
- he(
434
- (r) => r.filter((o) => o.id !== s.id)
435
- );
436
- });
437
- }
438
- ye.current = n;
439
- }, [n, ee]);
440
- const [tt, at] = S(""), ae = h(!1), xe = N(
441
- (e, t) => {
442
- if (!K || !p) return;
443
- const a = Math.max(
444
- p.first,
445
- Math.min(p.last, t)
446
- );
447
- if (a === e) return;
448
- K(e, a);
449
- const s = n[e];
450
- if (s) {
451
- const r = W ? W({ tool: s, from: e, to: a }) : y("toolRail.reorderAnnounce", {
452
- tool: s.label,
453
- to: a - p.first + 1,
454
- total: p.last - p.first + 1,
455
- defaultValue: "{{tool}} moved to position {{to}} of {{total}}"
456
- });
457
- r && (ae.current = !ae.current, at(ae.current ? r : `${r}​`));
458
- }
459
- },
460
- [K, p, n, y, W]
461
- ), Ie = n[oe], B = w >= 0 ? w : Ie && !Ie.disabled ? oe : $e, nt = N(
462
- (e, t) => {
463
- const a = n.find((s) => s.id === e);
464
- !a || a.disabled || (E.current = t, x(I === e ? null : e));
465
- },
466
- [n, I, x]
467
- ), st = N(
468
- (e) => {
469
- var z, i, g;
470
- const t = n.length;
471
- if (t === 0 || e.altKey) return;
472
- let a = null;
473
- if (e.key === "ArrowDown" ? a = (B + 1) % t : e.key === "ArrowUp" ? a = (B - 1 + t) % t : e.key === "Home" ? a = 0 : e.key === "End" && (a = t - 1), a === null) return;
474
- const s = e.key === "ArrowUp" || e.key === "End";
475
- let r = a, o = 0;
476
- for (; o < t && ((z = n[r]) != null && z.disabled); )
477
- r = s ? (r - 1 + t) % t : (r + 1) % t, o += 1;
478
- (i = n[r]) != null && i.disabled || (e.preventDefault(), Y(r), (g = G.current[r]) == null || g.focus());
479
- },
480
- [n, B]
481
- ), L = h(null);
482
- re(() => {
483
- const e = L.current;
484
- if (!e) return;
485
- const t = (a) => {
486
- if (a.key !== "Escape" || w < 0) return;
487
- a.preventDefault();
488
- const s = w;
489
- x(null), Y(s), requestAnimationFrame(() => {
490
- var r;
491
- (r = G.current[s]) == null || r.focus();
492
- });
493
- };
494
- return e.addEventListener("keydown", t), () => e.removeEventListener("keydown", t);
495
- }, [w, x]), M(() => {
496
- var e;
497
- u && E.current && ((e = C.current) == null || e.focus()), E.current = !1;
498
- }, [u]);
499
- const we = d === "end" ? "inline-start" : "inline-end", { separatorProps: Te, isResizing: Re, isResized: Se } = mt({
500
- edge: we,
501
- targetRef: C,
502
- cssProperty: _e,
503
- minSize: At,
504
- maxSize: Et,
505
- defaultSize: kt,
506
- disabled: !f,
507
- // A width the user cannot change or reset is a trap: the controlled
508
- // value applies only while the handle is on.
509
- size: f ? F : void 0,
510
- onResize: Me
511
- }), Ae = Te["aria-valuenow"];
512
- M(() => {
513
- var e;
514
- !f || !Se || !u || (e = C.current) == null || e.style.setProperty(
515
- _e,
516
- `${Ae}px`
517
- );
518
- }, [u, f, Se, Ae]);
519
- const ne = h(I);
520
- ne.current = I;
521
- const se = j(
522
- () => ({
523
- getActiveToolId: () => ne.current,
524
- setActiveTool: (e) => {
525
- E.current = !1, x(e);
526
- },
527
- open: (e) => {
528
- const t = n.find((a) => a.id === e);
529
- !t || t.disabled || (E.current = !1, x(e));
530
- },
531
- close: () => {
532
- const e = ne.current;
533
- E.current = !1, x(null), e != null && requestAnimationFrame(() => {
534
- var t, a;
535
- (a = (t = L.current) == null ? void 0 : t.querySelector(
536
- `[data-tool-id="${CSS.escape(e)}"]`
537
- )) == null || a.focus();
538
- });
539
- }
540
- }),
541
- [n, x]
542
- );
543
- ct(Ke, () => se, [se]), wt(Pe, se, l);
544
- const rt = y("toolRail.badgeCountOverflow", {
545
- defaultValue: "99+"
546
- }), Ee = D ?? y("toolRail.railLabel", { defaultValue: "Tools" });
547
- return /* @__PURE__ */ R(
548
- "aside",
549
- {
550
- ref: L,
551
- "aria-label": Ee,
552
- "data-component": qe,
553
- "data-component-id": l,
554
- "data-side": d,
555
- className: [Lt({ side: d }), Fe].filter(Boolean).join(" "),
556
- children: [
557
- de ? /* @__PURE__ */ m("span", { role: "status", "aria-live": "polite", className: "ds:sr-only", children: tt }) : null,
558
- b ? /* @__PURE__ */ R(
559
- "section",
560
- {
561
- ref: Ge,
562
- tabIndex: -1,
563
- "aria-label": y("toolRail.panelLabel", {
564
- tool: b.label,
565
- defaultValue: "{{tool}} panel"
566
- }),
567
- "aria-hidden": T || void 0,
568
- "data-tool-rail-state": T ? "collapsing" : "expanded",
569
- "data-presence": te.phase,
570
- "data-active-tool": b.id,
571
- "data-resizing": Re ? "" : void 0,
572
- className: [
573
- Nt({ side: d }),
574
- // Subtle shadow — not a line — separating the panel from the
575
- // icon strip (the tab row). The panel casts a soft chrome
576
- // shadow toward the strip on its strip-facing edge. `z-[1]`
577
- // lifts it above the adjacent strip (the panel is already
578
- // `relative`) so the shadow paints at the seam instead of being
579
- // covered by the strip's opaque background. Only renders while
580
- // the panel is open (it is unmounted when collapsed), so
581
- // it never doubles as a rail↔main seam. In the accessible (AAA)
582
- // theme the soft shadow becomes a solid 1px border on that same
583
- // strip-facing edge.
584
- "ds:z-[1]",
585
- d === "end" ? "ds:[:where(&)]:[box-shadow:var(--accessible-off,var(--shadow-chrome-end))] ds:[:where(&)]:border-e-[length:var(--accessible-edge-width,0px)] ds:border-e-[color:var(--border)]" : "ds:[:where(&)]:[box-shadow:var(--accessible-off,var(--shadow-chrome-start))] ds:[:where(&)]:border-s-[length:var(--accessible-edge-width,0px)] ds:border-s-[color:var(--border)]",
586
- "ds:focus-visible:outline-none"
587
- ].join(" "),
588
- children: [
589
- ie ? ie(b, { isActive: !T }) : null,
590
- /* @__PURE__ */ R("div", { ref: ve, className: Dt, children: [
591
- Xe.map((e) => /* @__PURE__ */ m(
592
- "div",
593
- {
594
- ref: Qe,
595
- "aria-hidden": "true",
596
- "data-exit-id": e.exitId,
597
- "data-tool-rail-body": e.toolId,
598
- "data-tool-rail-layer": "leaving",
599
- "data-presence": H && e.exitId === Je ? "present" : "leaving",
600
- className: Ve({ layer: "leaving" }),
601
- onTransitionEnd: (t) => {
602
- t.target === t.currentTarget && V(e.exitId);
603
- }
604
- },
605
- e.exitId
606
- )),
607
- /* @__PURE__ */ R(
608
- "div",
609
- {
610
- "data-tool-rail-body": b.id,
611
- "data-tool-rail-layer": "live",
612
- "data-presence": H ? "entering" : "present",
613
- className: Ve({ layer: "live" }),
614
- children: [
615
- b.header ? /* @__PURE__ */ m("div", { className: "ds:shrink-0", children: b.header }) : null,
616
- b.fill ? (
617
- // data-tool-fill: a self-scrolling panel owns its own native
618
- // scroll, so a token rule paints its scrollbar to match the
619
- // 8px overlay. See tokens/index.css.
620
- /* @__PURE__ */ m("div", { "data-tool-fill": "", className: "ds:flex-1 ds:min-h-0", children: b.panel })
621
- ) : /* @__PURE__ */ m(
622
- pt,
623
- {
624
- orientation: "vertical",
625
- className: "ds:flex-1 ds:min-h-0",
626
- children: b.panel
627
- }
628
- )
629
- ]
630
- },
631
- b.id
632
- )
633
- ] }),
634
- f ? /* @__PURE__ */ m(
635
- "div",
636
- {
637
- ...Te,
638
- "aria-label": y("toolRail.resizePanel", {
639
- defaultValue: "Resize tool panel"
640
- }),
641
- "data-resizing": Re ? "" : void 0,
642
- className: jt({ edge: we })
643
- }
644
- ) : null
645
- ]
646
- }
647
- ) : null,
648
- /* @__PURE__ */ m(vt, { children: /* @__PURE__ */ R(
649
- "div",
650
- {
651
- ref: Ze,
652
- role: "toolbar",
653
- "aria-orientation": "vertical",
654
- "aria-label": Ee,
655
- className: zt(),
656
- onKeyDown: st,
657
- children: [
658
- n.map((e, t) => {
659
- const a = e.id === I, s = typeof e.badgeCount == "number" && e.badgeCount > 0, r = s ? y("toolRail.toolWithCount", {
660
- tool: e.label,
661
- count: e.badgeCount,
662
- defaultValue: "{{tool}}, {{count}} updates"
663
- }) : e.label, o = de && !!e.reorderable && !e.disabled, z = o ? `${Ue}-${e.id}` : void 0;
664
- return /* @__PURE__ */ R(ut, { children: [
665
- He && t === le ? /* @__PURE__ */ m(
666
- "div",
667
- {
668
- role: "separator",
669
- "aria-orientation": "horizontal",
670
- className: "ds:my-[var(--spacing-2xs)] ds:h-px ds:w-[var(--spacing-lg)] ds:shrink-0 ds:bg-[var(--border)] ds:forced-colors:bg-[CanvasText]"
671
- }
672
- ) : null,
673
- /* @__PURE__ */ R(
674
- "div",
675
- {
676
- className: [
677
- Be({
678
- dragging: _ === t,
679
- dropTarget: ce === t && _ !== t,
680
- reorderable: o
681
- }),
682
- je,
683
- ht
684
- ].filter(Boolean).join(" "),
685
- "data-reflow-id": e.id,
686
- "data-dragging": _ === t ? "" : void 0,
687
- draggable: o || void 0,
688
- onDragStart: o ? (i) => {
689
- Q(t), i.dataTransfer.effectAllowed = "move", i.dataTransfer.setData(
690
- "text/plain",
691
- String(t)
692
- );
693
- } : void 0,
694
- onDragOver: o ? (i) => {
695
- _ !== null && (i.preventDefault(), i.dataTransfer.dropEffect = "move", ce !== t && O(t));
696
- } : void 0,
697
- onDragLeave: o ? () => O((i) => i === t ? null : i) : void 0,
698
- onDrop: o ? (i) => {
699
- i.preventDefault();
700
- const g = _;
701
- O(null), Q(null), !(g === null || g === t) && xe(g, t);
702
- } : void 0,
703
- onDragEnd: o ? () => {
704
- Q(null), O(null);
705
- } : void 0,
706
- children: [
707
- /* @__PURE__ */ m(
708
- De,
709
- {
710
- ref: (i) => {
711
- G.current[t] = i;
712
- },
713
- icon: e.icon,
714
- tooltip: e.label,
715
- "aria-label": r,
716
- intent: "ghost",
717
- size: "sm",
718
- disabled: e.disabled,
719
- "aria-pressed": a,
720
- "aria-expanded": a,
721
- "data-active": a ? e.id : void 0,
722
- "data-tool-id": e.id,
723
- "aria-describedby": z,
724
- "aria-keyshortcuts": o ? "Alt+ArrowUp Alt+ArrowDown" : void 0,
725
- tabIndex: t === B ? 0 : -1,
726
- onFocus: () => {
727
- e.disabled || Y(t);
728
- },
729
- onClick: () => nt(e.id, X.current),
730
- onKeyDown: (i) => {
731
- if (i.key === "Enter" || i.key === " ") {
732
- X.current = !0;
733
- return;
734
- }
735
- if (o && i.altKey && p) {
736
- let g = null;
737
- if (i.key === "ArrowUp" ? g = t - 1 : i.key === "ArrowDown" ? g = t + 1 : i.key === "Home" ? g = p.first : i.key === "End" && (g = p.last), g !== null) {
738
- i.preventDefault();
739
- const it = Math.max(
740
- p.first,
741
- Math.min(p.last, g)
742
- ), ot = e.id;
743
- xe(t, it), requestAnimationFrame(() => {
744
- var ze, Ne;
745
- (Ne = (ze = L.current) == null ? void 0 : ze.querySelector(
746
- `[data-tool-id="${CSS.escape(ot)}"]`
747
- )) == null || Ne.focus();
748
- });
749
- }
750
- }
751
- },
752
- onKeyUp: (i) => {
753
- (i.key === "Enter" || i.key === " ") && (X.current = !1);
754
- }
755
- }
756
- ),
757
- s ? /* @__PURE__ */ m("span", { "aria-hidden": "true", className: Mt(), children: Pt(
758
- e.badgeCount,
759
- rt
760
- ) }) : null,
761
- Z == null ? void 0 : Z(e, {
762
- index: t,
763
- isActive: a,
764
- isRovingTarget: t === B
765
- }),
766
- z ? /* @__PURE__ */ m("span", { id: z, className: "ds:sr-only", children: y("toolRail.reorderInstructions", {
767
- tool: e.label,
768
- defaultValue: "Reorder {{tool}}. Press Alt + Up or Alt + Down to move."
769
- }) }) : null
770
- ]
771
- }
772
- )
773
- ] }, e.id);
774
- }),
775
- et.map(
776
- (e) => ee.isLeaving(e.id) ? /* @__PURE__ */ m(
777
- "div",
778
- {
779
- className: [
780
- Be({
781
- dragging: !1,
782
- dropTarget: !1,
783
- reorderable: !1
784
- }),
785
- je,
786
- qt
787
- ].filter(Boolean).join(" "),
788
- "aria-hidden": "true",
789
- children: /* @__PURE__ */ m(
790
- De,
791
- {
792
- icon: e.icon,
793
- intent: "ghost",
794
- size: "sm",
795
- disabled: !0,
796
- tabIndex: -1
797
- }
798
- )
799
- },
800
- e.id
801
- ) : null
802
- )
803
- ]
804
- }
805
- ) })
806
- ]
807
- }
808
- );
809
- }
810
- );
811
- Ft.displayName = "ToolRail";
812
- export {
813
- Ft as T,
814
- Tt as t
815
- };
816
- //# sourceMappingURL=tool-rail-Blgibz0a.js.map