@marimo-team/frontend 0.25.2-dev3 → 0.25.2-dev31

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 (216) hide show
  1. package/dist/assets/{ConnectedDataExplorerComponent-DJ5jwKfp.js → ConnectedDataExplorerComponent-Bli_Q2Pf.js} +1 -1
  2. package/dist/assets/{ErrorBoundary-BeE1cdgM.js → ErrorBoundary-Dx6lhNls.js} +2 -2
  3. package/dist/assets/{LazyAnyLanguageCodeMirror-B_IYTCX5.js → LazyAnyLanguageCodeMirror-CfdjWQov.js} +2 -2
  4. package/dist/assets/{RunButton-C2kFUhyO.js → RunButton-5jKnc29t.js} +2 -2
  5. package/dist/assets/__vite-browser-external-BgsHWynV.js +1 -0
  6. package/dist/assets/__vite-browser-external-DMJaCYJh.js +1 -0
  7. package/dist/assets/{abnfDiagram-VCTEODGH-CSPJSGaM.js → abnfDiagram-VCTEODGH-CS9VJ4IQ.js} +1 -1
  8. package/dist/assets/{add-cell-with-ai-BFgdVPaN.js → add-cell-with-ai-h_sx2HjG.js} +1 -1
  9. package/dist/assets/{agent-panel-Dh7yWh9P.js → agent-panel-C3MlqlHQ.js} +1 -1
  10. package/dist/assets/{ai-model-dropdown-DJ2elMLM.js → ai-model-dropdown-D_95EaOb.js} +1 -1
  11. package/dist/assets/{alert-dialog-CeE3i3Qa.js → alert-dialog-BsB0FYEL.js} +1 -1
  12. package/dist/assets/{any-language-editor-Cj_HzlZY.js → any-language-editor-DqrxopyM.js} +1 -1
  13. package/dist/assets/{app-config-button-DBCTefOX.js → app-config-button-AOmd3MSM.js} +1 -1
  14. package/dist/assets/architecture-7GRP2DOG-d-euXJif.js +1 -0
  15. package/dist/assets/{architectureDiagram-5GKGNRK7-7iukRoC9.js → architectureDiagram-5GKGNRK7-Cnq1OhHb.js} +1 -1
  16. package/dist/assets/{blockDiagram-I7D4REHJ-cuhpQB60.js → blockDiagram-I7D4REHJ-Belx_uSy.js} +1 -1
  17. package/dist/assets/{button-BoklZTGL.js → button-qFeU84ax.js} +1 -1
  18. package/dist/assets/{c4Diagram-7LVT6UL2-CMQEYn6T.js → c4Diagram-7LVT6UL2-B4RJxCU5.js} +1 -1
  19. package/dist/assets/{cache-panel-C0oB1kE2.js → cache-panel-ByvhZkRB.js} +1 -1
  20. package/dist/assets/{capabilities-Bj3s1hGN.js → capabilities-BqUNf14U.js} +1 -1
  21. package/dist/assets/{cells-CzugpTQu.js → cells-BXPymufT.js} +2 -2
  22. package/dist/assets/channel-CNw_DjeM.js +1 -0
  23. package/dist/assets/chat-display-Bl_cm4Bv.js +1 -0
  24. package/dist/assets/{chat-panel-BGw0bqDk.js → chat-panel-G5k-O9XI.js} +1 -1
  25. package/dist/assets/{chat-ui-CZZFGlZi.js → chat-ui-B9ojDwqD.js} +1 -1
  26. package/dist/assets/{chunk-4HAMMTFA-C6Tl7kEY.js → chunk-4HAMMTFA-BskE_kxl.js} +1 -1
  27. package/dist/assets/{chunk-75Z2AOVW-BzzYECN7.js → chunk-75Z2AOVW-BGGJQUsr.js} +1 -1
  28. package/dist/assets/{chunk-DU6HZSFF-BlpgvKzl.js → chunk-DU6HZSFF-BbUeHz2R.js} +1 -1
  29. package/dist/assets/{chunk-F27PBJKO-BVIgLGPF.js → chunk-F27PBJKO-BIJD5Wdq.js} +1 -1
  30. package/dist/assets/{chunk-GMAD6QVW-hv6IsAru.js → chunk-GMAD6QVW-De3yHY5A.js} +1 -1
  31. package/dist/assets/{chunk-GVQU2GXP-Duv4ZYb-.js → chunk-GVQU2GXP-CKFdw6Un.js} +1 -1
  32. package/dist/assets/{chunk-IMKFNOWR-BIILwBhp.js → chunk-IMKFNOWR-DaJnBQov.js} +1 -1
  33. package/dist/assets/{chunk-L3NEJ4N5-B2hafvRU.js → chunk-L3NEJ4N5-9WBGd7N9.js} +1 -1
  34. package/dist/assets/{chunk-OSK3NFVY-SNGRdtNA.js → chunk-OSK3NFVY-CawDZVpS.js} +1 -1
  35. package/dist/assets/{chunk-P2QGCYS3-_SeE0QXb.js → chunk-P2QGCYS3-C7JwFzl3.js} +1 -1
  36. package/dist/assets/{chunk-POPQ4Y6H-BB5NNJFE.js → chunk-POPQ4Y6H-B9wQmUAO.js} +1 -1
  37. package/dist/assets/{chunk-PWAF6VOD-BZoBqp8x.js → chunk-PWAF6VOD-D5iYVIst.js} +1 -1
  38. package/dist/assets/{chunk-SHT3W25Y-BtLGdeDB.js → chunk-SHT3W25Y-ChLuP8JP.js} +1 -1
  39. package/dist/assets/{chunk-SVP7TREG-B0UfxhUP.js → chunk-SVP7TREG-BZxpXOz-.js} +1 -1
  40. package/dist/assets/{chunk-TICWLB2K-BP7vel_P.js → chunk-TICWLB2K-WyejxyKe.js} +1 -1
  41. package/dist/assets/{chunk-YOKDWASO-CaoEAGJk.js → chunk-YOKDWASO-84E-_nIR.js} +4 -4
  42. package/dist/assets/{circle-CeQt3rdW.js → circle-CzTMKZwz.js} +1 -1
  43. package/dist/assets/classDiagram-ZZMXUADV-D3p0TN4D.js +1 -0
  44. package/dist/assets/classDiagram-v2-VYDZK3BY-D3p0TN4D.js +1 -0
  45. package/dist/assets/{code-visibility-BFNYI7hr.js → code-visibility-dpVhqYNL.js} +1 -1
  46. package/dist/assets/{command-palette-DN4JoOLD.js → command-palette-D6z9kPg7.js} +1 -1
  47. package/dist/assets/{common-DUCPhoyP.js → common-ByaXhTaS.js} +1 -1
  48. package/dist/assets/{components-DAmFBASm.js → components-Bg0jEPXR.js} +1 -1
  49. package/dist/assets/{components-CK7CeYlo.js → components-D5oqtiLg.js} +1 -1
  50. package/dist/assets/{config-B4VJJibu.js → config-2Nts63h2.js} +1 -1
  51. package/dist/assets/{config-BxZgoFvi.js → config-BdH5RvM0.js} +1 -1
  52. package/dist/assets/{config-DpGPGznL.js → config-D7CP5wR5.js} +1 -1
  53. package/dist/assets/{copy-BhJktFeI.js → copy-B--GzTEX.js} +1 -1
  54. package/dist/assets/{copy-icon-DFhUGBjO.js → copy-icon-DQuttmjH.js} +1 -1
  55. package/dist/assets/{createReducer-BPvK7C_R.js → createReducer-CI8rlZE9.js} +1 -1
  56. package/dist/assets/{cynefin-OW5HDTMX-DIiiykJg.js → cynefin-OW5HDTMX-GFKj4n0O.js} +1 -1
  57. package/dist/assets/{cynefinDiagram-5FMLGOSQ-BARZRQBb.js → cynefinDiagram-5FMLGOSQ-ADfRyIGN.js} +1 -1
  58. package/dist/assets/{dagre-DVyyr7Cb.js → dagre-BNpoWXcL.js} +1 -1
  59. package/dist/assets/{dagre-GXQ25YYZ-79s0lOP0.js → dagre-GXQ25YYZ-Diet3S0x.js} +1 -1
  60. package/dist/assets/{data-grid-overlay-editor-DPfnIudL.js → data-grid-overlay-editor-BEM-ieFB.js} +1 -1
  61. package/dist/assets/{dependency-graph-panel-BN4CLayU.js → dependency-graph-panel-CrensQ9d.js} +1 -1
  62. package/dist/assets/{diagram-S7CK7UJ4-BCviGhvd.js → diagram-S7CK7UJ4-CCX9feKM.js} +1 -1
  63. package/dist/assets/{diagram-UQ7AKVKN-Ds-BT46T.js → diagram-UQ7AKVKN-DMu2JraT.js} +1 -1
  64. package/dist/assets/{diagram-VSXAHHWV-CK4GkM-q.js → diagram-VSXAHHWV-Dtg7sh2B.js} +1 -1
  65. package/dist/assets/{diagram-VX7I27RA-BtL2eh0t.js → diagram-VX7I27RA-D3OGvedU.js} +1 -1
  66. package/dist/assets/{diagram-Z3DM3KII-C6SmbLBS.js → diagram-Z3DM3KII-MArsMIcf.js} +1 -1
  67. package/dist/assets/{dist-CyYN7zJg.js → dist-DFI04FfI.js} +1 -1
  68. package/dist/assets/{documentation-panel-CzRbXV5u.js → documentation-panel-DDYXbqvp.js} +1 -1
  69. package/dist/assets/{dropdown-menu-VuyoeQOD.js → dropdown-menu-Crx6knLg.js} +1 -1
  70. package/dist/assets/{ebnfDiagram-PWID7BFC-D_JU4cMQ.js → ebnfDiagram-PWID7BFC-vQJPmojo.js} +1 -1
  71. package/dist/assets/{edit-page-jGNYBqQo.js → edit-page-C7naRe4T.js} +45 -45
  72. package/dist/assets/{erDiagram-RLTQ6QDP-Z9MJ6X-r.js → erDiagram-RLTQ6QDP-DbMS_wVH.js} +1 -1
  73. package/dist/assets/{error-entries-CDSsy76p.js → error-entries-FCI5CEqR.js} +1 -1
  74. package/dist/assets/{error-panel-ABvjFG3p.js → error-panel-CgT73q4b.js} +1 -1
  75. package/dist/assets/eventmodeling-NTZA5JFV-C7Lb8MCA.js +1 -0
  76. package/dist/assets/{feedback-button-CZhLiwkO.js → feedback-button-B0hzbli5.js} +1 -1
  77. package/dist/assets/{file-explorer-panel-DTiEpmVE.js → file-explorer-panel-Dl3gX4fl.js} +1 -1
  78. package/dist/assets/{file-name-input-C1C8xrjA.js → file-name-input-CV0fYc67.js} +1 -1
  79. package/dist/assets/{filename-fxG7K_MU.js → filename-DZ9xkzQn.js} +1 -1
  80. package/dist/assets/flowDiagram-HODETNUW-C9M5c8rH.js +1 -0
  81. package/dist/assets/{fullscreen-BmzAqMKq.js → fullscreen-3wS6IaIC.js} +1 -1
  82. package/dist/assets/{gallery-page-Moi4ZdJ0.js → gallery-page-B6WMdce0.js} +1 -1
  83. package/dist/assets/{ganttDiagram-EL5Y4UJY-Cgy11k0G.js → ganttDiagram-EL5Y4UJY-DtBccFoD.js} +1 -1
  84. package/dist/assets/{gitGraph-4MIJSDKK-BlIdVC2G.js → gitGraph-4MIJSDKK-BZrVnUIX.js} +1 -1
  85. package/dist/assets/{gitGraphDiagram-WWUBYQGX-CVH8fay_.js → gitGraphDiagram-WWUBYQGX-BWNR7nHV.js} +1 -1
  86. package/dist/assets/{glide-data-editor-CbsCWu-K.js → glide-data-editor-qrXT33Qd.js} +4 -4
  87. package/dist/assets/{graphlib-3maKwbRO.js → graphlib-C-6pc4Zd.js} +1 -1
  88. package/dist/assets/has-DmAIW7kM.js +1 -0
  89. package/dist/assets/{highlighted-body-KPVGNVTW-D9V82ncH.js → highlighted-body-KPVGNVTW-DxcqwMAu.js} +1 -1
  90. package/dist/assets/{home-page-UAgVOkCZ.js → home-page-DsILx4TF.js} +1 -1
  91. package/dist/assets/{index--sT8xf-8.css → index-C4-iduJO.css} +1 -1
  92. package/dist/assets/{index-DafnX1Xx.js → index-DYVlDtsu.js} +11 -11
  93. package/dist/assets/{info-A6RAGUB7-BdPbe-lF.js → info-A6RAGUB7-u3lEx9f-.js} +1 -1
  94. package/dist/assets/{infoDiagram-27XIBGKW-Dk8U81nJ.js → infoDiagram-27XIBGKW-b4WMhbpt.js} +1 -1
  95. package/dist/assets/{input-BDakodZ2.js → input-D4bMj5Nb.js} +1 -1
  96. package/dist/assets/{ishikawaDiagram-5VMMS53U-CzHQlMUQ.js → ishikawaDiagram-5VMMS53U-DQxtMs4g.js} +1 -1
  97. package/dist/assets/{journeyDiagram-3NMN7TZE-DRc8ACzh.js → journeyDiagram-3NMN7TZE-yCIlrFH1.js} +1 -1
  98. package/dist/assets/{kanban-definition-UXKFOSKX-CVyVYiI6.js → kanban-definition-UXKFOSKX-rhD_vnwl.js} +1 -1
  99. package/dist/assets/{logs-panel-Bz5ysVX4.js → logs-panel-ByevEcIA.js} +1 -1
  100. package/dist/assets/{menu-items-BBdeXCvU.js → menu-items-D-vbZmqL.js} +1 -1
  101. package/dist/assets/{mermaid-D_jPUVqz.js → mermaid-B2ngFN0c.js} +4 -4
  102. package/dist/assets/mermaid-HWGCJPDP-Bk1fR60Q.js +1 -0
  103. package/dist/assets/{mermaid-parser.core-3RKOfUXB.js → mermaid-parser.core-BdlE0Iab.js} +3 -3
  104. package/dist/assets/{mindmap-definition-YA3MSWOX-D5t6Aq5Z.js → mindmap-definition-YA3MSWOX-D5hDBYDC.js} +1 -1
  105. package/dist/assets/{number-overlay-editor-FAD8sjFU.js → number-overlay-editor-BcElw1N2.js} +1 -1
  106. package/dist/assets/{numbers-DsgsDslU.js → numbers-DyJNv6Vk.js} +1 -1
  107. package/dist/assets/{outline-panel-85oiQ0XX.js → outline-panel-CHw9TjuQ.js} +1 -1
  108. package/dist/assets/{packages-panel-ClKIaP5S.js → packages-panel-CDb2_4Dc.js} +1 -1
  109. package/dist/assets/{packet-AYTQ26CC-st4ZYus8.js → packet-AYTQ26CC-BajGVcwf.js} +1 -1
  110. package/dist/assets/{panels-B48zp96D.js → panels-rdTyuwHQ.js} +3 -3
  111. package/dist/assets/{pegDiagram-XKGWAZYB-BTkTm4ej.js → pegDiagram-XKGWAZYB-D8QLsgnM.js} +1 -1
  112. package/dist/assets/{pie-WAS4IAKB-GwT5MHDl.js → pie-WAS4IAKB-8yOLd-eD.js} +1 -1
  113. package/dist/assets/{pieDiagram-E7YTZNPT-Bq6X88M1.js → pieDiagram-E7YTZNPT-DeJxGsNN.js} +1 -1
  114. package/dist/assets/{preload-helper-HclGiUj8.js → preload-helper-uBIymjUX.js} +1 -1
  115. package/dist/assets/{process-output-Cg2ta3vY.js → process-output-DqkSNdEt.js} +1 -1
  116. package/dist/assets/purify.es--06brOip.js +3 -0
  117. package/dist/assets/{quadrantDiagram-AXDQQJYC-D_wrOwLk.js → quadrantDiagram-AXDQQJYC-BOooPQcn.js} +1 -1
  118. package/dist/assets/{radar-RG4KPBEZ-h1Tdn-Oz.js → radar-RG4KPBEZ-CxHjJ3AF.js} +1 -1
  119. package/dist/assets/{railroad-74A4TZTK-r4Uf-msd.js → railroad-74A4TZTK-Bv_oZ8fK.js} +1 -1
  120. package/dist/assets/railroad-abnf-HS5TGJTU-fZMJYLPw.js +1 -0
  121. package/dist/assets/railroad-ebnf-LZEXJU2U-MXzdI5RK.js +1 -0
  122. package/dist/assets/railroad-peg-WCYAUIDC-9iJg5MJM.js +1 -0
  123. package/dist/assets/{railroadDiagram-O6MQD6OU-fv8HXW_g.js → railroadDiagram-O6MQD6OU-Cv1c_MPc.js} +1 -1
  124. package/dist/assets/{requirementDiagram-BXWQKSXE-DDOOMUfC.js → requirementDiagram-BXWQKSXE-C5vd9-4j.js} +1 -1
  125. package/dist/assets/{reveal-component-CR43gpTZ.js → reveal-component-Dctnn9_M.js} +1 -1
  126. package/dist/assets/{run-page-NR_KFWk8.js → run-page-BiThhUDc.js} +1 -1
  127. package/dist/assets/{sankeyDiagram-P5KCCOFB-CvvUY6tS.js → sankeyDiagram-P5KCCOFB-DpHoqt-1.js} +1 -1
  128. package/dist/assets/{save-worker-Dw8ybFWq.js → save-worker-C880NC3o.js} +5 -5
  129. package/dist/assets/{scratchpad-panel-DHc-oVb1.js → scratchpad-panel-C1fSG5vy.js} +1 -1
  130. package/dist/assets/{scroll-to-bottom-button-BSCkDXet.js → scroll-to-bottom-button-BLNi0TGS.js} +1 -1
  131. package/dist/assets/{secrets-panel-C-65ZjnM.js → secrets-panel-7_LH6R8A.js} +1 -1
  132. package/dist/assets/{select-BplWpfFo.js → select-CWHHoM53.js} +1 -1
  133. package/dist/assets/{sequenceDiagram-WJ2MYXX4-DdpBhQaS.js → sequenceDiagram-WJ2MYXX4-C22eqEIy.js} +1 -1
  134. package/dist/assets/{session-panel-DiwQqIbt.js → session-panel-DBsTbpC9.js} +1 -1
  135. package/dist/assets/{session-DXKMv4Bs.js → session-ztCnZJHI.js} +1 -1
  136. package/dist/assets/{snippets-panel-BLmXrneD.js → snippets-panel-ChI5aU42.js} +1 -1
  137. package/dist/assets/{state-Ozzur_f2.js → state-0NZOvqJz.js} +1 -1
  138. package/dist/assets/{stateDiagram-D77RDMKH-D3p19fac.js → stateDiagram-D77RDMKH-BRy9VFgk.js} +1 -1
  139. package/dist/assets/stateDiagram-v2-MP3YSRHH-CxpbMKE8.js +1 -0
  140. package/dist/assets/{strings-BHZPE0Mc.js → strings-LjhpYwmx.js} +1 -1
  141. package/dist/assets/{swimlanes-42K2YHIH-CLxCSvU4.js → swimlanes-42K2YHIH-CvQuAAYe.js} +1 -1
  142. package/dist/assets/swimlanesDiagram-VR7AAH4N-CANFdBys.js +8 -0
  143. package/dist/assets/{swiper-component-rqJChT_P.js → swiper-component-CCQgW-CG.js} +1 -1
  144. package/dist/assets/{terminal-CY4h1UmO.js → terminal-Ct69I5Rq.js} +1 -1
  145. package/dist/assets/{timeline-definition-24CTP7MA-Cw2PY--x.js → timeline-definition-24CTP7MA-CtEY04jV.js} +1 -1
  146. package/dist/assets/{toast-KNfsFUiB.js → toast-DXkezxWI.js} +1 -1
  147. package/dist/assets/{tooltip-PLkI_UfK.js → tooltip-BQ9qHrrN.js} +1 -1
  148. package/dist/assets/{tooltip-DR2Z2N4w.js → tooltip-CamoSiGF.js} +1 -1
  149. package/dist/assets/{tracing-Q8NAdlrA.js → tracing-B6lz41O5.js} +1 -1
  150. package/dist/assets/{tracing-panel-Ci4kY4dr.js → tracing-panel-Hd5F5hNF.js} +2 -2
  151. package/dist/assets/{treeView-Q6P3EWNA-DwYCsGZ1.js → treeView-Q6P3EWNA-BJ6U0Bh6.js} +1 -1
  152. package/dist/assets/{treemap-WGGIJYW6-BH3CfKBr.js → treemap-WGGIJYW6-DU7UqE3x.js} +1 -1
  153. package/dist/assets/{use-restore-focus-B98SEiGc.js → use-restore-focus-D0UtBPD6.js} +1 -1
  154. package/dist/assets/{useCellActionButton-DpYtVfFe.js → useCellActionButton-OertTn-H.js} +1 -1
  155. package/dist/assets/{useEventListener-BdZUApHd.js → useEventListener-CUPWI_1X.js} +1 -1
  156. package/dist/assets/{useInterval-ChchS0Rl.js → useInterval-DluQa5sq.js} +1 -1
  157. package/dist/assets/{useTheme-DcnXlv0_.js → useTheme-CnWB5G1X.js} +1 -1
  158. package/dist/assets/{vega-component-BpoSew4K.js → vega-component-C72lP8OY.js} +1 -1
  159. package/dist/assets/{vega-embed-container-BOJG8mCA.js → vega-embed-container-C0Dphqkx.js} +1 -1
  160. package/dist/assets/{vennDiagram-4TSXK5OY-D8bN6lVl.js → vennDiagram-4TSXK5OY-B_OWiVKd.js} +1 -1
  161. package/dist/assets/{wardley-WFR3VGLG-Cr2mp5U6.js → wardley-WFR3VGLG-Rssn0VIa.js} +1 -1
  162. package/dist/assets/{wardleyDiagram-VM6X3IG4-CbZdo0SA.js → wardleyDiagram-VM6X3IG4-CvpCKTJQ.js} +1 -1
  163. package/dist/assets/{worker-ByzyDs4N.js → worker-B5tVfGoh.js} +6 -6
  164. package/dist/assets/{write-secret-modal-BiG2tahJ.js → write-secret-modal-wFgr-1dA.js} +1 -1
  165. package/dist/assets/{xychartDiagram-S5SC5T6Z-DUUQ9tau.js → xychartDiagram-S5SC5T6Z-CqU92eUd.js} +1 -1
  166. package/dist/assets/{youtube-A9VT7NHb.js → youtube-Ck_NlGi9.js} +1 -1
  167. package/dist/index.html +35 -35
  168. package/package.json +7 -7
  169. package/src/components/chat/tool-call/__tests__/tool-result.test.tsx +56 -0
  170. package/src/components/chat/tool-call/tool-result.tsx +3 -3
  171. package/src/components/data-table/charts/__tests__/schemas.test.ts +25 -0
  172. package/src/components/data-table/charts/__tests__/spec.test.ts +26 -23
  173. package/src/components/data-table/charts/constants.ts +11 -10
  174. package/src/components/data-table/charts/types.ts +1 -0
  175. package/src/components/editor/actions/__tests__/useSetOutputsExpanded.test.ts +42 -0
  176. package/src/components/editor/actions/useNotebookActions.tsx +20 -0
  177. package/src/components/editor/actions/useSetOutputsExpanded.ts +67 -0
  178. package/src/core/edit-app.tsx +16 -0
  179. package/src/core/hotkeys/hotkeys.ts +12 -0
  180. package/src/core/wasm/__tests__/bootstrap.test.ts +33 -1
  181. package/src/core/wasm/worker/bootstrap.ts +22 -3
  182. package/src/css/katex.min.css +145 -144
  183. package/src/plugins/impl/CheckboxPlugin.tsx +1 -1
  184. package/src/plugins/impl/DatePickerPlugin.tsx +5 -3
  185. package/src/plugins/impl/DateRangePlugin.tsx +5 -3
  186. package/src/plugins/impl/DateTimePickerPlugin.tsx +5 -3
  187. package/src/plugins/impl/DropdownPlugin.tsx +1 -1
  188. package/src/plugins/impl/FileBrowserPlugin.tsx +45 -15
  189. package/src/plugins/impl/MultiselectPlugin.tsx +1 -1
  190. package/src/plugins/impl/NumberPlugin.tsx +1 -1
  191. package/src/plugins/impl/RadioPlugin.tsx +5 -1
  192. package/src/plugins/impl/RangeSliderPlugin.tsx +1 -1
  193. package/src/plugins/impl/SearchableSelect.tsx +1 -1
  194. package/src/plugins/impl/SliderPlugin.tsx +1 -1
  195. package/src/plugins/impl/SwitchPlugin.tsx +6 -1
  196. package/src/plugins/impl/__tests__/FileBrowserPlugin.test.tsx +85 -2
  197. package/src/plugins/impl/__tests__/widget-labels.test.tsx +122 -0
  198. package/src/plugins/impl/chat/ChatPlugin.tsx +1 -1
  199. package/src/plugins/impl/common/labeled.tsx +9 -3
  200. package/dist/assets/__vite-browser-external-Cw9Ccr_O.js +0 -1
  201. package/dist/assets/__vite-browser-external-DBuuG05M.js +0 -1
  202. package/dist/assets/architecture-7GRP2DOG-D_jUzZ2f.js +0 -1
  203. package/dist/assets/channel-CGdeorQk.js +0 -1
  204. package/dist/assets/chat-display-DevO4F8W.js +0 -1
  205. package/dist/assets/classDiagram-ZZMXUADV-CoNXKNMZ.js +0 -1
  206. package/dist/assets/classDiagram-v2-VYDZK3BY-CoNXKNMZ.js +0 -1
  207. package/dist/assets/eventmodeling-NTZA5JFV-DqXXj9CO.js +0 -1
  208. package/dist/assets/flowDiagram-HODETNUW-ncLciK2K.js +0 -1
  209. package/dist/assets/has-cJsIKK9t.js +0 -1
  210. package/dist/assets/mermaid-HWGCJPDP-UrYE0_I-.js +0 -1
  211. package/dist/assets/purify.es-CYRiAeUx.js +0 -3
  212. package/dist/assets/railroad-abnf-HS5TGJTU-BOoktJ2s.js +0 -1
  213. package/dist/assets/railroad-ebnf-LZEXJU2U-BzJtHsBe.js +0 -1
  214. package/dist/assets/railroad-peg-WCYAUIDC-C3wGFTzw.js +0 -1
  215. package/dist/assets/stateDiagram-v2-MP3YSRHH-CplsDaDl.js +0 -1
  216. package/dist/assets/swimlanesDiagram-VR7AAH4N-DPoIFx8T.js +0 -8
@@ -46,7 +46,7 @@ const CheckboxComponent = ({
46
46
  const id = useId();
47
47
 
48
48
  return (
49
- <Labeled label={data.label} align="right" id={id}>
49
+ <Labeled label={data.label} align="right" controlId={id}>
50
50
  <Checkbox
51
51
  data-testid="marimo-plugin-checkbox"
52
52
  checked={value}
@@ -1,7 +1,7 @@
1
1
  /* Copyright 2026 Marimo. All rights reserved. */
2
2
 
3
3
  import { type CalendarDate, parseDate } from "@internationalized/date";
4
- import type { JSX } from "react";
4
+ import { type JSX, useId } from "react";
5
5
  import { z } from "zod";
6
6
  import { DatePicker } from "@/components/ui/date-picker";
7
7
  import type { IPlugin, IPluginProps, Setter } from "../types";
@@ -49,6 +49,7 @@ interface DatePickerProps extends Data {
49
49
  }
50
50
 
51
51
  const DatePickerComponent = (props: DatePickerProps): JSX.Element => {
52
+ const labelId = useId();
52
53
  const handleInput = (valueAsDate: CalendarDate | null) => {
53
54
  if (!valueAsDate) {
54
55
  return;
@@ -59,12 +60,13 @@ const DatePickerComponent = (props: DatePickerProps): JSX.Element => {
59
60
  };
60
61
 
61
62
  return (
62
- <Labeled label={props.label} fullWidth={props.fullWidth}>
63
+ <Labeled labelId={labelId} label={props.label} fullWidth={props.fullWidth}>
63
64
  <DatePicker
64
65
  granularity="day"
65
66
  value={parseDate(props.value)}
66
67
  onChange={handleInput}
67
- aria-label={props.label ?? "date picker"}
68
+ aria-labelledby={props.label ? labelId : undefined}
69
+ aria-label={props.label ? undefined : "date picker"}
68
70
  minValue={parseDate(props.start)}
69
71
  maxValue={parseDate(props.stop)}
70
72
  isDisabled={props.disabled}
@@ -1,7 +1,7 @@
1
1
  /* Copyright 2026 Marimo. All rights reserved. */
2
2
 
3
3
  import { type CalendarDate, parseDate } from "@internationalized/date";
4
- import type { JSX } from "react";
4
+ import { type JSX, useId } from "react";
5
5
  import { z } from "zod";
6
6
  import { DateRangePicker } from "@/components/ui/date-picker";
7
7
  import type { IPlugin, IPluginProps, Setter } from "../types";
@@ -48,6 +48,7 @@ interface DateRangePickerProps extends Data {
48
48
  }
49
49
 
50
50
  const DateRangePickerComponent = (props: DateRangePickerProps): JSX.Element => {
51
+ const labelId = useId();
51
52
  const handleInput = (
52
53
  valueAsDateRange: {
53
54
  start: CalendarDate;
@@ -64,7 +65,7 @@ const DateRangePickerComponent = (props: DateRangePickerProps): JSX.Element => {
64
65
  };
65
66
 
66
67
  return (
67
- <Labeled label={props.label} fullWidth={props.fullWidth}>
68
+ <Labeled labelId={labelId} label={props.label} fullWidth={props.fullWidth}>
68
69
  <DateRangePicker
69
70
  granularity="day"
70
71
  value={{
@@ -72,7 +73,8 @@ const DateRangePickerComponent = (props: DateRangePickerProps): JSX.Element => {
72
73
  end: parseDate(props.value[1]),
73
74
  }}
74
75
  onChange={handleInput}
75
- aria-label={props.label ?? "date range picker"}
76
+ aria-labelledby={props.label ? labelId : undefined}
77
+ aria-label={props.label ? undefined : "date range picker"}
76
78
  minValue={parseDate(props.start)}
77
79
  maxValue={parseDate(props.stop)}
78
80
  isDisabled={props.disabled}
@@ -1,7 +1,7 @@
1
1
  /* Copyright 2026 Marimo. All rights reserved. */
2
2
 
3
3
  import { type CalendarDateTime, parseDateTime } from "@internationalized/date";
4
- import type { JSX } from "react";
4
+ import { type JSX, useId } from "react";
5
5
  import { z } from "zod";
6
6
  import { DatePicker } from "@/components/ui/date-picker";
7
7
  import type { IPlugin, IPluginProps, Setter } from "../types";
@@ -50,6 +50,7 @@ interface DateTimePickerProps extends Data {
50
50
  }
51
51
 
52
52
  const DateTimePickerComponent = (props: DateTimePickerProps): JSX.Element => {
53
+ const labelId = useId();
53
54
  const handleInput = (valueAsDateTime: CalendarDateTime | null) => {
54
55
  if (!valueAsDateTime) {
55
56
  return;
@@ -63,12 +64,13 @@ const DateTimePickerComponent = (props: DateTimePickerProps): JSX.Element => {
63
64
  const parsedValue = props.value ? parseDateTime(props.value) : undefined;
64
65
 
65
66
  return (
66
- <Labeled label={props.label} fullWidth={props.fullWidth}>
67
+ <Labeled labelId={labelId} label={props.label} fullWidth={props.fullWidth}>
67
68
  <DatePicker
68
69
  granularity={props.precision}
69
70
  value={parsedValue}
70
71
  onChange={handleInput}
71
- aria-label={props.label ?? "date time picker"}
72
+ aria-labelledby={props.label ? labelId : undefined}
73
+ aria-label={props.label ? undefined : "date time picker"}
72
74
  minValue={parseDateTime(props.start)}
73
75
  maxValue={parseDateTime(props.stop)}
74
76
  isDisabled={props.disabled}
@@ -79,7 +79,7 @@ const Dropdown = (props: DropdownProps): JSX.Element => {
79
79
  const singleValue = value.length === 0 ? defaultValue : value[0];
80
80
 
81
81
  return (
82
- <Labeled label={label} id={id} fullWidth={fullWidth}>
82
+ <Labeled label={label} controlId={id} fullWidth={fullWidth}>
83
83
  <NativeSelect
84
84
  data-testid="marimo-plugin-dropdown"
85
85
  onChange={(e) => {
@@ -1,6 +1,6 @@
1
1
  /* Copyright 2026 Marimo. All rights reserved. */
2
2
 
3
- import { type LucideIcon, CornerLeftUp } from "lucide-react";
3
+ import { type LucideIcon, ChevronRightIcon, CornerLeftUp } from "lucide-react";
4
4
  import { type JSX, useEffect, useLayoutEffect, useRef, useState } from "react";
5
5
  import { z } from "zod";
6
6
  import {
@@ -12,7 +12,6 @@ import { Spinner } from "@/components/icons/spinner";
12
12
  import { Button } from "@/components/ui/button";
13
13
  import { Checkbox } from "@/components/ui/checkbox";
14
14
  import { Label } from "@/components/ui/label";
15
- import { NativeSelect } from "@/components/ui/native-select";
16
15
  import { Table, TableBody, TableCell, TableRow } from "@/components/ui/table";
17
16
  import { toast } from "@/components/ui/use-toast";
18
17
  import { RANDOM_ID_ATTR } from "@/core/dom/ui-element-constants";
@@ -472,12 +471,19 @@ export const FileBrowser = ({
472
471
  //
473
472
  // Assumes that path contains at least one delimiter, which is true
474
473
  // only if this is an absolute path.
475
- const { parentDirectories } = getProtocolAndParentDirectories({
474
+ const { protocol, parentDirectories } = getProtocolAndParentDirectories({
476
475
  path,
477
476
  delimiter,
478
477
  initialPath,
479
478
  restrictNavigation,
480
479
  });
480
+ const breadcrumbs = parentDirectories.toReversed().map((dir) => ({
481
+ path: dir,
482
+ name:
483
+ dir === protocol
484
+ ? protocol
485
+ : (dir.split(delimiter).findLast(Boolean) ?? dir),
486
+ }));
481
487
 
482
488
  const selectionKindLabel =
483
489
  selectionMode === "all"
@@ -515,18 +521,42 @@ export const FileBrowser = ({
515
521
  <div>
516
522
  {error && <Banner kind="danger">{error.message}</Banner>}
517
523
  {renderHeader()}
518
- <NativeSelect
519
- className="mt-2 w-full"
520
- placeholder={path}
521
- value={path}
522
- onChange={(e) => setNewPath(e.target.value)}
523
- >
524
- {parentDirectories.map((dir) => (
525
- <option value={dir} key={dir}>
526
- {dir}
527
- </option>
528
- ))}
529
- </NativeSelect>
524
+ <nav aria-label="Current directory" className="mt-2">
525
+ <ol className="flex flex-wrap items-center gap-0.5 text-sm">
526
+ {breadcrumbs.map((crumb, index) => {
527
+ const isCurrent = index === breadcrumbs.length - 1;
528
+ return (
529
+ <li key={crumb.path} className="flex items-center gap-0.5">
530
+ {index > 0 && (
531
+ <ChevronRightIcon
532
+ size={14}
533
+ className="text-muted-foreground shrink-0"
534
+ aria-hidden={true}
535
+ />
536
+ )}
537
+ <button
538
+ type="button"
539
+ title={crumb.path}
540
+ aria-current={isCurrent ? "page" : undefined}
541
+ onClick={() => {
542
+ if (!isCurrent) {
543
+ setNewPath(crumb.path);
544
+ }
545
+ }}
546
+ className={cn(
547
+ "rounded px-1 focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring",
548
+ isCurrent
549
+ ? "font-medium cursor-default"
550
+ : "text-muted-foreground hover:bg-accent hover:text-foreground",
551
+ )}
552
+ >
553
+ {crumb.name}
554
+ </button>
555
+ </li>
556
+ );
557
+ })}
558
+ </ol>
559
+ </nav>
530
560
 
531
561
  {data && typeof data.total_count === "number" && (
532
562
  <div className="text-xs text-muted-foreground mt-1 px-1">
@@ -68,7 +68,7 @@ export const Multiselect = ({
68
68
  );
69
69
 
70
70
  return (
71
- <Labeled label={label} id={id} fullWidth={fullWidth}>
71
+ <Labeled label={label} controlId={id} fullWidth={fullWidth}>
72
72
  <SelectList<string>
73
73
  id={id}
74
74
  options={items}
@@ -70,7 +70,7 @@ const NumberComponent = (props: NumberComponentProps): JSX.Element => {
70
70
  };
71
71
 
72
72
  return (
73
- <Labeled label={props.label} id={id} fullWidth={props.fullWidth}>
73
+ <Labeled label={props.label} controlId={id} fullWidth={props.fullWidth}>
74
74
  <NumberField
75
75
  data-testid="marimo-plugin-number-input"
76
76
  className={cn("min-w-[3em]", props.fullWidth && "w-full")}
@@ -51,7 +51,11 @@ export const Radio = (props: RadioProps): JSX.Element => {
51
51
  const id = useId();
52
52
 
53
53
  return (
54
- <Labeled label={props.label} id={id} align={props.inline ? "left" : "top"}>
54
+ <Labeled
55
+ label={props.label}
56
+ controlId={id}
57
+ align={props.inline ? "left" : "top"}
58
+ >
55
59
  <RadioGroup
56
60
  data-testid="marimo-plugin-radio"
57
61
  value={props.value ?? ""}
@@ -98,7 +98,7 @@ const RangeSliderComponent = ({
98
98
  const sliderElement = (
99
99
  <Labeled
100
100
  label={label}
101
- id={id}
101
+ controlId={id}
102
102
  align={orientation === "horizontal" ? "left" : "top"}
103
103
  className={cn(fullWidth && "my-1 w-full")}
104
104
  fullWidth={fullWidth}
@@ -33,7 +33,7 @@ export const SearchableSelect = (props: SearchableSelectProps): JSX.Element => {
33
33
  );
34
34
 
35
35
  return (
36
- <Labeled label={label} id={id} fullWidth={fullWidth}>
36
+ <Labeled label={label} controlId={id} fullWidth={fullWidth}>
37
37
  <SelectList<string>
38
38
  id={id}
39
39
  options={items}
@@ -224,7 +224,7 @@ const SliderComponent = ({
224
224
  const sliderElement = (
225
225
  <Labeled
226
226
  label={label}
227
- id={id}
227
+ controlId={id}
228
228
  align={orientation === "horizontal" ? "left" : "top"}
229
229
  fullWidth={fullWidth}
230
230
  className={cn(fullWidth && "my-1 w-full")}
@@ -34,7 +34,12 @@ const SwitchComponent = ({
34
34
  const id = useId();
35
35
 
36
36
  return (
37
- <Labeled label={data.label} align="right" id={id} labelClassName="ml-1">
37
+ <Labeled
38
+ label={data.label}
39
+ align="right"
40
+ controlId={id}
41
+ labelClassName="ml-1"
42
+ >
38
43
  <Switch
39
44
  data-testid="marimo-plugin-switch"
40
45
  checked={value}
@@ -1,6 +1,12 @@
1
1
  /* Copyright 2026 Marimo. All rights reserved. */
2
2
 
3
- import { fireEvent, render, screen, waitFor } from "@testing-library/react";
3
+ import {
4
+ fireEvent,
5
+ render,
6
+ screen,
7
+ waitFor,
8
+ within,
9
+ } from "@testing-library/react";
4
10
  import { beforeAll, describe, expect, it, vi } from "vitest";
5
11
  import { SetupMocks } from "@/__mocks__/common";
6
12
  import { initialModeAtom } from "@/core/mode";
@@ -187,7 +193,7 @@ describe("FileBrowserPlugin keyboard accessibility", () => {
187
193
  const docsRow = docs.closest('[role="row"]')!;
188
194
  fireEvent.keyDown(docsRow, { key: "ArrowDown" }); // move active off the parent
189
195
  fireEvent.click(docs); // navigate into "docs"
190
- await screen.findByText("docs"); // listing reloads (mock returns same files)
196
+ await within(screen.getByRole("grid")).findByText("docs"); // listing reloads (mock returns same files)
191
197
  const rows = screen.getAllByRole("row");
192
198
  expect(rows[0]).toHaveAttribute("tabindex", "0");
193
199
  // the focused row must match the only tabbable row
@@ -361,3 +367,80 @@ describe("FileBrowserPlugin keyboard accessibility", () => {
361
367
  function rowFor(name: string): HTMLElement {
362
368
  return screen.getByText(name).closest('[role="row"]') as HTMLElement;
363
369
  }
370
+
371
+ describe("FileBrowserPlugin breadcrumbs", () => {
372
+ function breadcrumbs() {
373
+ return within(
374
+ screen.getByRole("navigation", { name: "Current directory" }),
375
+ );
376
+ }
377
+
378
+ it("renders a crumb per ancestor with the current directory last", async () => {
379
+ renderBrowser();
380
+ await screen.findByText("docs");
381
+ const items = breadcrumbs().getAllByRole("listitem");
382
+ expect(items.map((li) => li.textContent)).toEqual(["/", "home", "user"]);
383
+ expect(breadcrumbs().getByRole("button", { name: "user" })).toHaveAttribute(
384
+ "aria-current",
385
+ "page",
386
+ );
387
+ expect(
388
+ breadcrumbs().getByRole("button", { name: "home" }),
389
+ ).not.toHaveAttribute("aria-current");
390
+ });
391
+
392
+ it("keeps focus on a crumb after navigating to it", async () => {
393
+ const { listDirectory } = renderBrowser();
394
+ await screen.findByText("docs");
395
+ const home = breadcrumbs().getByRole("button", { name: "home" });
396
+ home.focus();
397
+ fireEvent.click(home);
398
+ await waitFor(() =>
399
+ expect(listDirectory).toHaveBeenLastCalledWith({ path: "/home" }),
400
+ );
401
+ const current = breadcrumbs().getByRole("button", { name: "home" });
402
+ expect(current).toHaveAttribute("aria-current", "page");
403
+ expect(current).toBe(home);
404
+ expect(current).toHaveFocus();
405
+ });
406
+
407
+ it("does not reload when the current crumb is clicked", async () => {
408
+ const { listDirectory } = renderBrowser();
409
+ await screen.findByText("docs");
410
+ fireEvent.click(breadcrumbs().getByRole("button", { name: "user" }));
411
+ expect(listDirectory).toHaveBeenCalledTimes(1);
412
+ });
413
+
414
+ it("navigates to an ancestor when a crumb is clicked", async () => {
415
+ const { listDirectory } = renderBrowser();
416
+ await screen.findByText("docs");
417
+ fireEvent.click(breadcrumbs().getByRole("button", { name: "home" }));
418
+ await waitFor(() =>
419
+ expect(listDirectory).toHaveBeenLastCalledWith({ path: "/home" }),
420
+ );
421
+ fireEvent.click(breadcrumbs().getByRole("button", { name: "/" }));
422
+ await waitFor(() =>
423
+ expect(listDirectory).toHaveBeenLastCalledWith({ path: "/" }),
424
+ );
425
+ });
426
+
427
+ it("hides ancestors outside the initial path when navigation is restricted", async () => {
428
+ render(
429
+ <FileBrowser
430
+ initialPath="/home/user"
431
+ filetypes={[]}
432
+ selectionMode="all"
433
+ multiple={true}
434
+ label={null}
435
+ restrictNavigation={true}
436
+ value={[]}
437
+ setValue={vi.fn()}
438
+ host={document.createElement("div")}
439
+ list_directory={mockListDirectory(FILES)}
440
+ />,
441
+ );
442
+ await screen.findByText("docs");
443
+ const items = breadcrumbs().getAllByRole("listitem");
444
+ expect(items.map((li) => li.textContent)).toEqual(["user"]);
445
+ });
446
+ });
@@ -0,0 +1,122 @@
1
+ /* Copyright 2026 Marimo. All rights reserved. */
2
+
3
+ import { render } from "@testing-library/react";
4
+ import { beforeEach, describe, expect, it, vi } from "vitest";
5
+ import { initialModeAtom } from "@/core/mode";
6
+ import { store } from "@/core/state/jotai";
7
+ import { DatePickerPlugin } from "../DatePickerPlugin";
8
+ import { DateRangePickerPlugin } from "../DateRangePlugin";
9
+ import { DateTimePickerPlugin } from "../DateTimePickerPlugin";
10
+
11
+ const sharedProps = () => ({
12
+ host: document.createElement("div"),
13
+ setValue: vi.fn(),
14
+ functions: {},
15
+ });
16
+
17
+ const widgets = [
18
+ {
19
+ name: "date",
20
+ role: "group",
21
+ fallback: "date picker",
22
+ render: (label: string | null, disabled = false) =>
23
+ new DatePickerPlugin().render({
24
+ ...sharedProps(),
25
+ value: "2026-10-02",
26
+ data: {
27
+ label,
28
+ disabled,
29
+ start: "2026-01-01",
30
+ stop: "2026-12-31",
31
+ fullWidth: false,
32
+ },
33
+ }),
34
+ },
35
+ {
36
+ name: "datetime",
37
+ role: "group",
38
+ fallback: "date time picker",
39
+ render: (label: string | null, disabled = false) =>
40
+ new DateTimePickerPlugin().render({
41
+ ...sharedProps(),
42
+ value: "2026-10-02T12:00:00",
43
+ data: {
44
+ label,
45
+ disabled,
46
+ start: "2026-01-01T00:00:00",
47
+ stop: "2026-12-31T23:59:59",
48
+ precision: "minute",
49
+ fullWidth: false,
50
+ },
51
+ }),
52
+ },
53
+ {
54
+ name: "date range",
55
+ role: "group",
56
+ fallback: "date range picker",
57
+ render: (label: string | null, disabled = false) =>
58
+ new DateRangePickerPlugin().render({
59
+ ...sharedProps(),
60
+ value: ["2026-10-02", "2026-10-03"],
61
+ data: {
62
+ label,
63
+ disabled,
64
+ start: "2026-01-01",
65
+ stop: "2026-12-31",
66
+ fullWidth: false,
67
+ },
68
+ }),
69
+ },
70
+ ];
71
+
72
+ beforeEach(() => store.set(initialModeAtom, "edit"));
73
+
74
+ describe.each(widgets)("$name accessible labels", (widget) => {
75
+ it("uses rendered formatting and decoded entities, and follows label updates", () => {
76
+ const { getByRole, rerender } = render(
77
+ widget.render("<span>Visit <strong>date</strong> &amp; time</span>"),
78
+ );
79
+ expect(getByRole(widget.role, { name: "Visit date & time" })).toBeTruthy();
80
+ rerender(widget.render("<span>Updated <em>label</em></span>"));
81
+ expect(getByRole(widget.role, { name: "Updated label" })).toBeTruthy();
82
+ rerender(widget.render(null));
83
+ expect(getByRole(widget.role, { name: widget.fallback })).toBeTruthy();
84
+ });
85
+
86
+ it.each([null, ""])("uses the fallback when label is %s", (label) => {
87
+ const { getByRole } = render(widget.render(label));
88
+ expect(getByRole(widget.role, { name: widget.fallback })).toBeTruthy();
89
+ });
90
+
91
+ it("names the calendar button and every editable segment", () => {
92
+ const { getByRole, getAllByRole } = render(
93
+ widget.render("<strong>Visit</strong> &amp; time"),
94
+ );
95
+ expect(getByRole("button", { name: "Calendar Visit & time" })).toBeTruthy();
96
+ for (const segment of getAllByRole("spinbutton")) {
97
+ expect(segment).toHaveAccessibleName(/Visit & time/);
98
+ }
99
+ });
100
+
101
+ it("preserves disabled controls with a formatted label", () => {
102
+ const { getByRole, getAllByRole } = render(
103
+ widget.render("<strong>Visit</strong>", true),
104
+ );
105
+ expect(getByRole("button", { name: "Calendar Visit" })).toBeDisabled();
106
+ for (const segment of getAllByRole("spinbutton")) {
107
+ expect(segment).toHaveAttribute("aria-disabled", "true");
108
+ }
109
+ });
110
+
111
+ it("keeps labels distinct for multiple widgets", () => {
112
+ const { getByRole } = render(
113
+ <>
114
+ {widget.render("First")}
115
+ {widget.render("Second")}
116
+ </>,
117
+ );
118
+ expect(getByRole(widget.role, { name: "First" })).not.toBe(
119
+ getByRole(widget.role, { name: "Second" }),
120
+ );
121
+ });
122
+ });
@@ -27,7 +27,7 @@ const messageSchema = z.array(
27
27
  role: z.enum(["system", "user", "assistant"]),
28
28
  content: z.string().nullable(),
29
29
  parts: z.array(z.any()),
30
- metadata: z.any().nullable(),
30
+ metadata: z.any().optional(),
31
31
  }),
32
32
  );
33
33
 
@@ -9,7 +9,8 @@ interface Props {
9
9
  label: string | null | undefined;
10
10
  className?: string;
11
11
  labelClassName?: string;
12
- id?: string;
12
+ labelId?: string;
13
+ controlId?: string;
13
14
  fullWidth?: boolean;
14
15
  /**
15
16
  * Align the label to the top, left, or right of the component.
@@ -27,8 +28,9 @@ export const Labeled: React.FC<PropsWithChildren<Props>> = ({
27
28
  align = "left",
28
29
  className,
29
30
  labelClassName,
31
+ labelId,
30
32
  fullWidth,
31
- id,
33
+ controlId,
32
34
  }) => {
33
35
  // If fullWidth is true, force align to be "top"
34
36
  if (fullWidth) {
@@ -45,7 +47,11 @@ export const Labeled: React.FC<PropsWithChildren<Props>> = ({
45
47
 
46
48
  const labelElement = (
47
49
  <div part="label" className="inline-flex items-center m-0 p-0">
48
- <Label htmlFor={id} className={cn("font-prose", labelClassName)}>
50
+ <Label
51
+ id={labelId}
52
+ htmlFor={controlId}
53
+ className={cn("font-prose", labelClassName)}
54
+ >
49
55
  {renderHTML({ html: label })}
50
56
  </Label>
51
57
  </div>
@@ -1 +0,0 @@
1
- import{t as e}from"./save-worker-Dw8ybFWq.js";var t=e(((e,t)=>{t.exports={}}));export default t();
@@ -1 +0,0 @@
1
- import{t as e}from"./worker-ByzyDs4N.js";var t=e(((e,t)=>{t.exports={}}));export default t();
@@ -1 +0,0 @@
1
- import"./chunk-FOHPRMQF-DHwB1DNv.js";import{M as e}from"./mermaid-parser.core-3RKOfUXB.js";export{e as createArchitectureServices};
@@ -1 +0,0 @@
1
- import{at as e,it as t}from"./chunk-DU6HZSFF-BlpgvKzl.js";var n=(n,r)=>e.lang.round(t.parse(n)[r]);export{n as t};
@@ -1 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-CUdNIagt.js";import{no as n,oo as r}from"./cells-CzugpTQu.js";import{D as i,P as a,S as o,b as s}from"./schemas-BL-NsLlF.js";import{t as c}from"./compiler-runtime-BQ9S8nyo.js";import{t as l}from"./isEmpty-BJso7_X0.js";import{at as u}from"./ai-model-dropdown-DJ2elMLM.js";import{g as d}from"./useEventListener-BdZUApHd.js";import{t as f}from"./cn-ldLVeaqm.js";import{t as p}from"./jsx-runtime-B74pBk57.js";import{a as m,i as h,o as g,r as _}from"./config-B4VJJibu.js";import{t as v}from"./button-BoklZTGL.js";import{t as y}from"./createLucideIcon-rHn2EdoM.js";import{r as b}from"./paths-CzfpItSz.js";import{Y as x,p as S,u as C}from"./add-cell-with-ai-BFgdVPaN.js";import{t as w}from"./bot-message-square-BfGaNy9r.js";import{a as T}from"./useNumberFormatter-C4-_TnkF.js";import{i as E}from"./strings-BHZPE0Mc.js";import{Cn as D,Ei as O,Ta as k,ha as A,ra as j}from"./index-DafnX1Xx.js";var M=y(`circle-slash`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`9`,x2:`15`,y1:`15`,y2:`9`,key:`1dfufj`}]]),N=y(`shield-question-mark`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3`,key:`mhlwft`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),P=`user_cancelled`;function F(e){if(e.type===`abort`)return e.reason}function I(e){return e.isAbort?e.streamReason||`user_cancelled`:null}function L(e){switch(e){case P:return`Generation stopped`;case`timeout`:return`Generation stopped: timed out`;default:return`Generation stopped: ${e}`}}var R=c(),z=e(t(),1),B=p(),V=e=>{let t=(0,R.c)(13),{reasoning:n,index:r,isStreaming:i}=e,a=r===void 0?0:r,o=i!==void 0&&i,[s,c]=z.useState(``);if(!n&&!o)return null;let l=o?`reasoning`:s,u;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,B.jsx)(w,{className:`h-3 w-3`}),t[0]=u):u=t[0];let d=o?`Thinking`:`View reasoning`,f=n.length>0&&` (${n.length} chars)`,p;t[1]!==d||t[2]!==f?(p=(0,B.jsx)(g,{className:`text-xs text-muted-foreground hover:bg-muted/50 px-2 py-1 h-auto rounded-sm [&[data-state=open]>svg]:rotate-180`,children:(0,B.jsxs)(`span`,{className:`flex items-center gap-2`,children:[u,d,f]})}),t[1]=d,t[2]=f,t[3]=p):p=t[3];let v;t[4]===n?v=t[5]:(v=(0,B.jsx)(h,{className:`pb-2 px-2`,children:(0,B.jsx)(`div`,{className:`bg-muted/30 border border-muted/50 rounded-md p-3 italic text-muted-foreground/90 relative`,children:(0,B.jsx)(`div`,{className:`pr-6`,children:(0,B.jsx)(D,{content:n})})})}),t[4]=n,t[5]=v);let y;t[6]!==p||t[7]!==v?(y=(0,B.jsxs)(m,{value:`reasoning`,className:`border-0`,children:[p,v]}),t[6]=p,t[7]=v,t[8]=y):y=t[8];let b;return t[9]!==a||t[10]!==l||t[11]!==y?(b=(0,B.jsx)(_,{type:`single`,collapsible:!0,className:`w-full mb-2`,value:l,onValueChange:c,children:y},a),t[9]=a,t[10]=l,t[11]=y,t[12]=b):b=t[12],b};function H(e){return e.replace(`tool-`,``)}var U=e=>{let t=(0,R.c)(9),{input:n,label:r}=e,i=r===void 0?`Tool Request`:r;if(n==null)return null;let a;t[0]===i?a=t[1]:(a=(0,B.jsx)(`h3`,{className:`text-xs font-semibold text-muted-foreground`,children:i}),t[0]=i,t[1]=a);let o;t[2]===n?o=t[3]:(o=JSON.stringify(n,null,2),t[2]=n,t[3]=o);let s;t[4]===o?s=t[5]:(s=(0,B.jsx)(`pre`,{className:`bg-(--slate-2) p-2 text-muted-foreground border border-(--slate-4) rounded text-xs overflow-auto scrollbar-thin max-h-64`,children:o}),t[4]=o,t[5]=s);let c;return t[6]!==a||t[7]!==s?(c=(0,B.jsxs)(`div`,{className:`space-y-2`,children:[a,s]}),t[6]=a,t[7]=s,t[8]=c):c=t[8],c},W=e=>{let t=(0,R.c)(27),{toolName:n,input:r,approval:i,onApprove:a,className:o}=e,s;t[0]===o?s=t[1]:(s=f(`rounded-md border border-(--amber-6) bg-(--amber-2) p-3 space-y-3`,o),t[0]=o,t[1]=s);let c;t[2]===n?c=t[3]:(c=H(n),t[2]=n,t[3]=c);let l=`Approval required for ${c}`,u;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,B.jsx)(N,{className:`h-4 w-4 text-(--amber-11) mt-0.5 shrink-0`}),t[4]=u):u=t[4];let d;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,B.jsx)(`span`,{className:`font-semibold`,children:`Approval required:`}),t[5]=d):d=t[5];let p;t[6]===n?p=t[7]:(p=H(n),t[6]=n,t[7]=p);let m;t[8]===p?m=t[9]:(m=(0,B.jsxs)(`div`,{className:`flex items-start gap-2`,children:[u,(0,B.jsxs)(`div`,{className:`text-xs text-(--amber-11) leading-relaxed`,children:[d,` `,(0,B.jsx)(`code`,{className:`font-mono`,children:p})]})]}),t[8]=p,t[9]=m);let h;t[10]===r?h=t[11]:(h=(0,B.jsx)(U,{input:r}),t[10]=r,t[11]=h);let g;t[12]!==i.id||t[13]!==a?(g=(0,B.jsx)(v,{size:`xs`,variant:`outline`,onClick:()=>a({id:i.id,approved:!1}),children:`Deny`}),t[12]=i.id,t[13]=a,t[14]=g):g=t[14];let _;t[15]!==i.id||t[16]!==a?(_=(0,B.jsx)(v,{size:`xs`,onClick:()=>a({id:i.id,approved:!0}),children:`Approve`}),t[15]=i.id,t[16]=a,t[17]=_):_=t[17];let y;t[18]!==_||t[19]!==g?(y=(0,B.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[g,_]}),t[18]=_,t[19]=g,t[20]=y):y=t[20];let b;return t[21]!==s||t[22]!==y||t[23]!==l||t[24]!==m||t[25]!==h?(b=(0,B.jsxs)(`div`,{className:s,role:`alertdialog`,"aria-label":l,children:[m,h,y]}),t[21]=s,t[22]=y,t[23]=l,t[24]=m,t[25]=h,t[26]=b):b=t[26],b},G=e=>{let t=(0,R.c)(28),{toolName:n,input:i,errorText:a,isLive:o,className:s}=e,[c,l]=z.useState(o),u=z.useRef(o),d,p;t[0]===o?(d=t[1],p=t[2]):(d=()=>{u.current&&!o&&l(!1),u.current=o},p=[o],t[0]=o,t[1]=d,t[2]=p),z.useEffect(d,p);let m;t[3]===s?m=t[4]:(m=f(`rounded-md border border-(--red-6) bg-(--red-2)`,s),t[3]=s,t[4]=m);let h;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>l(K),t[5]=h):h=t[5];let g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,B.jsx)(r,{className:`h-3.5 w-3.5 shrink-0`}),t[6]=g):g=t[6];let _;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,B.jsx)(`span`,{className:`font-semibold`,children:`Failed:`}),t[7]=_):_=t[7];let v;t[8]===n?v=t[9]:(v=H(n),t[8]=n,t[9]=v);let y;t[10]===v?y=t[11]:(y=(0,B.jsxs)(`span`,{className:`flex-1 text-left`,children:[_,` `,(0,B.jsx)(`code`,{className:`font-mono`,children:v})]}),t[10]=v,t[11]=y);let b=c&&`rotate-180`,x;t[12]===b?x=t[13]:(x=f(`h-3.5 w-3.5 shrink-0 transition-transform`,b),t[12]=b,t[13]=x);let S;t[14]===x?S=t[15]:(S=(0,B.jsx)(T,{className:x}),t[14]=x,t[15]=S);let C;t[16]!==c||t[17]!==S||t[18]!==y?(C=(0,B.jsxs)(`button`,{type:`button`,onClick:h,className:`w-full flex items-center gap-2 px-3 py-2 text-xs text-(--red-11) hover:bg-(--red-3) rounded-md transition-colors`,"aria-expanded":c,children:[g,y,S]}),t[16]=c,t[17]=S,t[18]=y,t[19]=C):C=t[19];let w;t[20]!==a||t[21]!==i||t[22]!==c?(w=c&&(0,B.jsxs)(`div`,{className:`px-3 pb-3 space-y-3 border-t border-(--red-6)/40 pt-3`,children:[(0,B.jsx)(U,{input:i}),a&&(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`h3`,{className:`text-xs font-semibold text-(--red-11) mb-1`,children:`Error`}),(0,B.jsx)(`pre`,{className:`bg-(--red-2) border border-(--red-6) rounded p-2 text-xs text-(--red-11) leading-relaxed overflow-auto scrollbar-thin max-h-64 whitespace-pre-wrap`,children:a})]})]}),t[20]=a,t[21]=i,t[22]=c,t[23]=w):w=t[23];let E;return t[24]!==C||t[25]!==w||t[26]!==m?(E=(0,B.jsxs)(`div`,{className:m,children:[C,w]}),t[24]=C,t[25]=w,t[26]=m,t[27]=E):E=t[27],E};function K(e){return!e}function q(e){return e==null||typeof e==`object`&&l(e)}var J=i({status:a().default(`success`),auth_required:o().default(!1),action_url:s(),next_steps:s(),meta:s(),message:a().nullish()}),Y=e=>{let t=(0,R.c)(12),{data:r}=e,i;if(t[0]!==r){let{status:e,auth_required:a,action_url:o,meta:s,next_steps:c,message:l,...u}=r,d;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,B.jsx)(`h3`,{className:`text-xs font-semibold text-muted-foreground`,children:`Tool Result`}),t[2]=d):d=t[2];let f;t[3]===e?f=t[4]:(f=(0,B.jsx)(`span`,{className:`text-xs px-2 py-0.5 bg-(--grass-2) text-(--grass-11) rounded-full font-medium capitalize`,children:e}),t[3]=e,t[4]=f);let p;t[5]===a?p=t[6]:(p=a&&(0,B.jsx)(`span`,{className:`text-xs px-2 py-0.5 bg-(--amber-2) text-(--amber-11) rounded-full`,children:`Auth Required`}),t[5]=a,t[6]=p);let m;t[7]!==f||t[8]!==p?(m=(0,B.jsxs)(`div`,{className:`flex items-center justify-between`,children:[d,(0,B.jsxs)(`div`,{className:`flex items-center gap-2`,children:[f,p]})]}),t[7]=f,t[8]=p,t[9]=m):m=t[9];let h;t[10]===l?h=t[11]:(h=l&&(0,B.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,B.jsx)(n,{className:`h-3 w-3 text-(--blue-11) mt-0.5 shrink-0`}),(0,B.jsx)(`div`,{className:`text-xs text-foreground`,children:l})]}),t[10]=l,t[11]=h),i=(0,B.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[m,h,u&&(0,B.jsx)(`div`,{className:`space-y-3`,children:Object.entries(u).map(Z)})]}),t[0]=r,t[1]=i}else i=t[1];return i},X=e=>{let t=(0,R.c)(8),{result:n}=e,r;t[0]===n?r=t[1]:(r=J.safeParse(n),t[0]=n,t[1]=r);let i=r;if(i.success){let e;return t[2]===i.data?e=t[3]:(e=(0,B.jsx)(Y,{data:i.data}),t[2]=i.data,t[3]=e),e}let a;t[4]===n?a=t[5]:(a=typeof n==`string`?n:JSON.stringify(n,null,2),t[4]=n,t[5]=a);let o;return t[6]===a?o=t[7]:(o=(0,B.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground mb-1 max-h-64 overflow-y-auto scrollbar-thin`,children:a}),t[6]=a,t[7]=o),o};function Z(e){let[t,n]=e;return q(n)?null:(0,B.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,B.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:t}),(0,B.jsx)(`pre`,{className:`bg-(--slate-2) p-2 text-muted-foreground border border-(--slate-4) rounded text-xs overflow-auto scrollbar-thin max-h-64`,children:JSON.stringify(n,null,2)})]},t)}var ee={"input-streaming":`Generating`,"input-available":`Running`,"approval-responded":`Awaiting result`,"output-available":`Done`,"output-denied":`Denied`},te=new Set([`input-streaming`,`input-available`,`approval-responded`]),ne=e=>{let t=(0,R.c)(5),{state:n,interrupted:r}=e;if(r){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,B.jsx)(M,{className:`h-3 w-3 text-muted-foreground`}),t[0]=e):e=t[0],e}switch(n){case`input-streaming`:case`input-available`:case`approval-responded`:{let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,B.jsx)(A,{className:`h-3 w-3 animate-spin`}),t[1]=e):e=t[1],e}case`output-available`:{let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,B.jsx)(u,{className:`h-3 w-3 text-(--grass-11)`}),t[2]=e):e=t[2],e}case`output-denied`:{let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,B.jsx)(x,{className:`h-3 w-3 text-muted-foreground`}),t[3]=e):e=t[3],e}default:{E(n);let e;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,B.jsx)(j,{className:`h-3 w-3`}),t[4]=e):e=t[4],e}}};function re(e){switch(e){case`output-available`:return`text-(--grass-11)/80`;case`output-denied`:return`text-muted-foreground`;case`input-streaming`:case`input-available`:case`approval-responded`:return``;default:return E(e),``}}var Q=e=>{let t=(0,R.c)(34),{toolName:n,state:r,input:i,result:a,approval:o,index:s,className:c,isActive:l}=e,u=s===void 0?0:s,d=l===void 0||l,p;t[0]!==d||t[1]!==r?(p=!d&&te.has(r),t[0]=d,t[1]=r,t[2]=p):p=t[2];let v=p,y=`tool-${u}`,b;t[3]===c?b=t[4]:(b=f(`w-full`,c),t[3]=c,t[4]=b);let x;t[5]!==v||t[6]!==r?(x=f(`h-6 text-xs border-border shadow-none! ring-0! bg-muted/60 hover:bg-muted py-0 px-2 gap-1 rounded-sm [&[data-state=open]>svg]:rotate-180 hover:no-underline`,v?`text-muted-foreground`:re(r)),t[5]=v,t[6]=r,t[7]=x):x=t[7];let S;t[8]!==v||t[9]!==r?(S=(0,B.jsx)(ne,{state:r,interrupted:v}),t[8]=v,t[9]=r,t[10]=S):S=t[10];let C=v?`Interrupted`:ee[r],w;t[11]===n?w=t[12]:(w=H(n),t[11]=n,t[12]=w);let T;t[13]===w?T=t[14]:(T=(0,B.jsx)(`code`,{className:`font-mono text-xs`,children:w}),t[13]=w,t[14]=T);let E;t[15]!==T||t[16]!==S||t[17]!==C?(E=(0,B.jsxs)(`span`,{className:`flex items-center gap-1`,children:[S,C,`:`,T]}),t[15]=T,t[16]=S,t[17]=C,t[18]=E):E=t[18];let D;t[19]!==E||t[20]!==x?(D=(0,B.jsx)(g,{className:x,children:E}),t[19]=E,t[20]=x,t[21]=D):D=t[21];let O;t[22]!==o||t[23]!==i||t[24]!==a||t[25]!==r?(O=(0,B.jsx)(h,{className:`py-2 px-2`,children:(0,B.jsx)(ie,{state:r,input:i,result:a,approval:o})}),t[22]=o,t[23]=i,t[24]=a,t[25]=r,t[26]=O):O=t[26];let k;t[27]!==D||t[28]!==O?(k=(0,B.jsxs)(m,{value:`tool-call`,className:`border-0`,children:[D,O]}),t[27]=D,t[28]=O,t[29]=k):k=t[29];let A;return t[30]!==k||t[31]!==y||t[32]!==b?(A=(0,B.jsx)(_,{type:`single`,collapsible:!0,className:b,children:k},y),t[30]=k,t[31]=y,t[32]=b,t[33]=A):A=t[33],A},ie=e=>{let t=(0,R.c)(16),{state:n,input:r,result:i,approval:a}=e;switch(n){case`input-streaming`:case`input-available`:case`approval-responded`:{let e;return t[0]===r?e=t[1]:(e=(0,B.jsx)(U,{input:r}),t[0]=r,t[1]=e),e}case`output-available`:{let e;t[2]===r?e=t[3]:(e=(0,B.jsx)(U,{input:r}),t[2]=r,t[3]=e);let n;t[4]===i?n=t[5]:(n=i!=null&&(0,B.jsx)(X,{result:i}),t[4]=i,t[5]=n);let a;return t[6]!==e||t[7]!==n?(a=(0,B.jsxs)(`div`,{className:`space-y-3`,children:[e,n]}),t[6]=e,t[7]=n,t[8]=a):a=t[8],a}case`output-denied`:{let e;t[9]===r?e=t[10]:(e=(0,B.jsx)(U,{input:r}),t[9]=r,t[10]=e);let n=a?.reason?`: ${a.reason}`:`.`,i;t[11]===n?i=t[12]:(i=(0,B.jsxs)(`div`,{className:`bg-muted/40 border border-border rounded-md p-3 text-xs text-muted-foreground leading-relaxed`,children:[`Tool execution was denied`,n]}),t[11]=n,t[12]=i);let o;return t[13]!==e||t[14]!==i?(o=(0,B.jsxs)(`div`,{className:`space-y-3`,children:[e,i]}),t[13]=e,t[14]=i,t[15]=o):o=t[15],o}default:return E(n),null}},$=e=>{let t=(0,R.c)(27),{toolName:n,state:r,result:i,errorText:a,input:o,approval:s,onApprove:c,index:l,className:u,isLive:d,isActive:f}=e,p=d===void 0||d,m=f===void 0||f;switch(r){case`approval-requested`:{if(s!=null&&c!=null){let e;return t[0]!==s||t[1]!==u||t[2]!==o||t[3]!==c||t[4]!==n?(e=(0,B.jsx)(W,{toolName:n,input:o,approval:s,onApprove:c,className:u}),t[0]=s,t[1]=u,t[2]=o,t[3]=c,t[4]=n,t[5]=e):e=t[5],e}let e;return t[6]!==u||t[7]!==l||t[8]!==o||t[9]!==m||t[10]!==n?(e=(0,B.jsx)(Q,{toolName:n,state:`input-available`,input:o,index:l,className:u,isActive:m}),t[6]=u,t[7]=l,t[8]=o,t[9]=m,t[10]=n,t[11]=e):e=t[11],e}case`output-error`:{let e;return t[12]!==u||t[13]!==a||t[14]!==o||t[15]!==p||t[16]!==n?(e=(0,B.jsx)(G,{toolName:n,input:o,errorText:a,isLive:p,className:u}),t[12]=u,t[13]=a,t[14]=o,t[15]=p,t[16]=n,t[17]=e):e=t[17],e}case`input-streaming`:case`input-available`:case`approval-responded`:case`output-available`:case`output-denied`:{let e;return t[18]!==s||t[19]!==u||t[20]!==l||t[21]!==o||t[22]!==m||t[23]!==i||t[24]!==r||t[25]!==n?(e=(0,B.jsx)(Q,{toolName:n,state:r,input:o,result:i,approval:s,index:l,className:u,isActive:m}),t[18]=s,t[19]=u,t[20]=l,t[21]=o,t[22]=m,t[23]=i,t[24]=r,t[25]=n,t[26]=e):e=t[26],e}default:return E(r),null}},ae=({message:e,isStreamingReasoning:t,isLast:n,isActive:r,addToolApprovalResponse:i})=>{return(0,B.jsx)(B.Fragment,{children:e.parts.map((e,t)=>a(e,t))});function a(a,o){if(oe(a))return(0,B.jsx)($,{index:o,toolName:a.type,result:a.output,errorText:a.state===`output-error`?a.errorText:void 0,className:`my-2`,state:a.state,input:a.input,approval:a.approval,onApprove:i,isLive:n,isActive:r},o);if(se(a))return d.debug(`Found data part`,a),null;switch(a.type){case`text`:return a.text.includes(`<marimo-`)?(0,B.jsx)(z.Fragment,{children:O({html:a.text})},o):(0,B.jsx)(D,{content:a.text},o);case`reasoning`:return(0,B.jsx)(V,{reasoning:a.text,index:o,isStreaming:t&&n&&o===(e.parts.length||0)-1},o);case`file`:return(0,B.jsx)(C,{attachment:a},o);case`reasoning-file`:return(0,B.jsx)(C,{attachment:{type:`file`,mediaType:a.mediaType,url:a.url}},o);case`dynamic-tool`:return(0,B.jsx)($,{toolName:a.toolName,result:a.output,errorText:a.state===`output-error`?a.errorText:void 0,state:a.state,input:a.input,approval:a.approval,onApprove:i,isLive:n,isActive:r},o);case`source-document`:return(0,B.jsx)(S,{icon:(0,B.jsx)(b,{className:`h-3 w-3 shrink-0`}),title:a.title,subtitle:a.filename},o);case`source-url`:return(0,B.jsx)(S,{icon:(0,B.jsx)(k,{className:`h-3 w-3 shrink-0`}),title:a.title??a.url,subtitle:a.title?a.url:void 0,href:a.url},o);case`custom`:return(0,B.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:a.kind},o);case`step-start`:return null;default:return E(a),null}}};function oe(e){return e.type.startsWith(`tool-`)}function se(e){return e.type.startsWith(`data-`)}export{I as i,L as n,F as r,ae as t};
@@ -1 +0,0 @@
1
- import"./chunk-75Z2AOVW-BzzYECN7.js";import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import"./src-Cyu5G-Tr.js";import"./chunk-DU6HZSFF-BlpgvKzl.js";import"./chunk-P2QGCYS3-_SeE0QXb.js";import"./chunk-PWAF6VOD-BZoBqp8x.js";import"./chunk-GMAD6QVW-hv6IsAru.js";import"./chunk-4HAMMTFA-C6Tl7kEY.js";import"./chunk-GVQU2GXP-Duv4ZYb-.js";import"./chunk-L3NEJ4N5-B2hafvRU.js";import"./chunk-OSK3NFVY-SNGRdtNA.js";import"./mermaid-D_jPUVqz.js";import"./chunk-F27PBJKO-BVIgLGPF.js";import"./chunk-XXDRQBXY-BwqwIlJV.js";import"./chunk-POPQ4Y6H-BB5NNJFE.js";import{i as t,n,r,t as i}from"./chunk-TICWLB2K-BP7vel_P.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
@@ -1 +0,0 @@
1
- import"./chunk-75Z2AOVW-BzzYECN7.js";import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import"./src-Cyu5G-Tr.js";import"./chunk-DU6HZSFF-BlpgvKzl.js";import"./chunk-P2QGCYS3-_SeE0QXb.js";import"./chunk-PWAF6VOD-BZoBqp8x.js";import"./chunk-GMAD6QVW-hv6IsAru.js";import"./chunk-4HAMMTFA-C6Tl7kEY.js";import"./chunk-GVQU2GXP-Duv4ZYb-.js";import"./chunk-L3NEJ4N5-B2hafvRU.js";import"./chunk-OSK3NFVY-SNGRdtNA.js";import"./mermaid-D_jPUVqz.js";import"./chunk-F27PBJKO-BVIgLGPF.js";import"./chunk-XXDRQBXY-BwqwIlJV.js";import"./chunk-POPQ4Y6H-BB5NNJFE.js";import{i as t,n,r,t as i}from"./chunk-TICWLB2K-BP7vel_P.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
@@ -1 +0,0 @@
1
- import"./chunk-FOHPRMQF-DHwB1DNv.js";import{O as e}from"./mermaid-parser.core-3RKOfUXB.js";export{e as createEventModelingServices};
@@ -1 +0,0 @@
1
- import"./chunk-75Z2AOVW-BzzYECN7.js";import"./src-Cyu5G-Tr.js";import"./chunk-DU6HZSFF-BlpgvKzl.js";import"./chunk-P2QGCYS3-_SeE0QXb.js";import"./chunk-PWAF6VOD-BZoBqp8x.js";import"./chunk-GMAD6QVW-hv6IsAru.js";import"./chunk-4HAMMTFA-C6Tl7kEY.js";import"./chunk-GVQU2GXP-Duv4ZYb-.js";import"./chunk-L3NEJ4N5-B2hafvRU.js";import"./chunk-OSK3NFVY-SNGRdtNA.js";import"./mermaid-D_jPUVqz.js";import"./chunk-F27PBJKO-BVIgLGPF.js";import"./chunk-XXDRQBXY-BwqwIlJV.js";import"./chunk-POPQ4Y6H-BB5NNJFE.js";import{n as e}from"./chunk-SHT3W25Y-BtLGdeDB.js";export{e as diagram};
@@ -1 +0,0 @@
1
- import{Wa as e}from"./index-DafnX1Xx.js";var t=Object.prototype.hasOwnProperty;function n(e,n){return e!=null&&t.call(e,n)}function r(t,r){return t!=null&&e(t,r,n)}export{r as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./chunk-YOKDWASO-CaoEAGJk.js";export{e as Mermaid};