@marimo-team/islands 0.25.3-dev29 → 0.25.3-dev291

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 (844) hide show
  1. package/dist/{ConnectedDataExplorerComponent-7EaP9VWb.js → ConnectedDataExplorerComponent-CErm132k.js} +116 -113
  2. package/dist/{ErrorBoundary-ysC54Xwn.js → ErrorBoundary-Df7sOY5r.js} +76 -82
  3. package/dist/_baseSet-BfI5FjBM.js +328 -0
  4. package/dist/{abnfDiagram-VCTEODGH-z_OSynK8.js → abnfDiagram-VCTEODGH-d-Qn2fwb.js} +2 -2
  5. package/dist/any-language-editor-6k6F12Z3.js +75 -0
  6. package/dist/{architectureDiagram-5GKGNRK7-Cs8J8BZr.js → architectureDiagram-5GKGNRK7-DxragHYv.js} +1 -1
  7. package/dist/{arrays-CN1djC4k.js → arrays-DoQ-AILx.js} +15 -27
  8. package/dist/assertNever-B-YzWzbL.js +507 -0
  9. package/dist/assets/__vite-browser-external-BKBpimif.js +1 -0
  10. package/dist/assets/worker-CgoMtD-_.js +113 -0
  11. package/dist/{blockDiagram-I7D4REHJ-Cg25UrxT.js → blockDiagram-I7D4REHJ-Dkhe6_PP.js} +1 -1
  12. package/dist/{button-CvjkwdSk.js → button-DZuNnIZO.js} +56 -48
  13. package/dist/{capabilities-CQ5IjhzL.js → capabilities-D9FskwsK.js} +2 -2
  14. package/dist/{chat-ui-0udY4hpv.js → chat-ui-CoAmcc-W.js} +2100 -1810
  15. package/dist/{check-BMKBBrdc.js → check-XFzZeH-y.js} +1 -1
  16. package/dist/{chunk-IMKFNOWR-aoSFasqF.js → chunk-IMKFNOWR-C0x0feFg.js} +1 -1
  17. package/dist/{chunk-SHT3W25Y-CMaybO3O.js → chunk-SHT3W25Y-D0ZdASqB.js} +1 -1
  18. package/dist/{chunk-SVP7TREG-BNBrTAw1.js → chunk-SVP7TREG-BHjL96zx.js} +1 -1
  19. package/dist/{chunk-TICWLB2K-DXNxvUJn.js → chunk-TICWLB2K-CzcrwGfp.js} +1 -1
  20. package/dist/{classDiagram-ZZMXUADV-DXdCCDOg.js → classDiagram-ZZMXUADV-BTqFAZTP.js} +2 -2
  21. package/dist/{classDiagram-v2-VYDZK3BY-DyZqrtLP.js → classDiagram-v2-VYDZK3BY-EPXb0Elt.js} +2 -2
  22. package/dist/{code-visibility-CZmyRTO8.js → code-visibility-DO6O_8h-.js} +43 -50
  23. package/dist/{common-CCrzSQnL.js → common-Coz-wkOd.js} +10640 -10053
  24. package/dist/config-C8MFHQ2E.js +637 -0
  25. package/dist/{copy-icon-BgUO8jsi.js → copy-icon-CtllOdmg.js} +3 -3
  26. package/dist/createReducer-DRqwmaTc.js +67 -0
  27. package/dist/{cynefinDiagram-5FMLGOSQ-DWHuKJs8.js → cynefinDiagram-5FMLGOSQ-CBSD344q.js} +1 -1
  28. package/dist/{dagre-GXQ25YYZ-DYLu-OCU.js → dagre-GXQ25YYZ-JItjh3Ge.js} +3 -3
  29. package/dist/{dagre-BGSfXNEb.js → dagre-mqiMAsFY.js} +531 -680
  30. package/dist/{data-grid-overlay-editor-B141KnZO.js → data-grid-overlay-editor-LbsctrY7.js} +1 -1
  31. package/dist/{debounce-C3jyATpc.js → debounce-DrhhziJv.js} +2 -2
  32. package/dist/{diagram-S7CK7UJ4-PwwcUOHP.js → diagram-S7CK7UJ4-CTD9xTVb.js} +1 -1
  33. package/dist/{diagram-UQ7AKVKN-CvJbL_IM.js → diagram-UQ7AKVKN-DTfnFai8.js} +1 -1
  34. package/dist/{diagram-VX7I27RA-B5RkqnzN.js → diagram-VX7I27RA-BcSnucV-.js} +1 -1
  35. package/dist/{diagram-Z3DM3KII-CyijwTR2.js → diagram-Z3DM3KII-C2ATIE8A.js} +1 -1
  36. package/dist/{dialog-Cc479ZEH.js → dialog-CaYm5imE.js} +32 -32
  37. package/dist/{dist-Bvs24R_E.js → dist-11T5wq3_.js} +31 -30
  38. package/dist/{dist-F8Ep36rk.js → dist-17ugwGZc.js} +59 -58
  39. package/dist/{dist-BMQf5zIS.js → dist-7cRjf--y.js} +123 -122
  40. package/dist/{dist-diIx5qJW.js → dist-B8pkfkzc.js} +31 -30
  41. package/dist/{dist-CN_BeG2I.js → dist-B9UoM_wq.js} +58 -57
  42. package/dist/{dist-CLdpGQVr.js → dist-BGuMTs1i.js} +118 -117
  43. package/dist/{dist-BK4Oj99o.js → dist-BHW11fni.js} +18 -17
  44. package/dist/dist-BLY4m1Wi.js +850 -0
  45. package/dist/{dist-PXYI_yuP.js → dist-BNlcVoxs.js} +24 -23
  46. package/dist/{dist-D6d86eNJ.js → dist-BQYe5Bju.js} +47 -46
  47. package/dist/{dist-CkTTIdBe.js → dist-BX1mn8na.js} +337 -337
  48. package/dist/{dist-DiDibOYr.js → dist-Bh0PTKUW.js} +151 -150
  49. package/dist/{dist-CSJ0MDRw.js → dist-CKaXK92p.js} +56 -55
  50. package/dist/{dist-C8fAKSH1.js → dist-CLhwfhpJ.js} +53 -52
  51. package/dist/{dist-DoE4XJBC.js → dist-CYeqK4Xw.js} +9801 -10649
  52. package/dist/{dist-BLfKmR-l.js → dist-Cxlp3WH6.js} +16 -15
  53. package/dist/{dist-D-wwqlzJ.js → dist-DSJPGj42.js} +158 -157
  54. package/dist/{dist-BorMD-uX.js → dist-DU9ICsWZ.js} +75 -74
  55. package/dist/{dist-DBtSl3sf.js → dist-DWv0ALBi.js} +47 -46
  56. package/dist/{dist-OR1OnN-y.js → dist-DiBpWEsB.js} +31 -30
  57. package/dist/{dist-CrSP_H1M.js → dist-DiLFTlnl.js} +242 -242
  58. package/dist/{dist-CN8zI-XC.js → dist-X9CsotJl.js} +239 -239
  59. package/dist/{dist-CSbh1PNP.js → dist-cVDV5IuI.js} +23 -22
  60. package/dist/{dist-BuaRHxOc.js → dist-fRfaOoq8.js} +44 -43
  61. package/dist/{dist-Cg7gzw-a.js → dist-gTTI-9Px.js} +78 -77
  62. package/dist/{dropdown-menu-BuE2b8Yb.js → dropdown-menu-Bb0bFOIk.js} +2904 -1493
  63. package/dist/{ebnfDiagram-PWID7BFC-DG90ELFp.js → ebnfDiagram-PWID7BFC-B7B9JPxc.js} +2 -2
  64. package/dist/{erDiagram-RLTQ6QDP-FMo_SpyX.js → erDiagram-RLTQ6QDP-v6hDno1O.js} +1 -1
  65. package/dist/{error-banner-CFPHFw4h.js → error-banner-CHCdHVFB.js} +87 -87
  66. package/dist/error-entries-CQl9aZz1.js +2595 -0
  67. package/dist/{esm-AMFssoNp.js → esm-BDqqT86j.js} +329 -329
  68. package/dist/{esm-D2gTsXEV.js → esm-BgKjMvWw.js} +530 -529
  69. package/dist/feedback-button-DQXS8piQ.js +374 -0
  70. package/dist/{flowDiagram-HODETNUW-DQ4JuadE.js → flowDiagram-HODETNUW-aIFlAtOy.js} +2 -2
  71. package/dist/{formats-DRHUWwSK.js → formats-PzBQMUnr.js} +6 -6
  72. package/dist/{glide-data-editor-DLHbRbsj.js → glide-data-editor-CiTOpufo.js} +6630 -2846
  73. package/dist/{glide-utils-pisbYVjH.js → glide-utils-BSQr4d90.js} +107 -76
  74. package/dist/{globals-D2g1BHQ0.js → globals-Bmz_qpY8.js} +3 -3
  75. package/dist/{graphlib-BmY_CCV9.js → graphlib-nlwT3Wvy.js} +177 -220
  76. package/dist/hasIn-C20JsQ2m.js +28 -0
  77. package/dist/{error-entries-DgtRTNaG.js → html-to-image-DbxMq9QA.js} +26294 -26451
  78. package/dist/{infoDiagram-27XIBGKW-CRSDtRrd.js → infoDiagram-27XIBGKW-D6YHLeCP.js} +1 -1
  79. package/dist/isArrayLikeObject-B-HXCsex.js +626 -0
  80. package/dist/isEmpty-CdX7MTE1.js +14 -0
  81. package/dist/{ishikawaDiagram-5VMMS53U-DxLEUldB.js → ishikawaDiagram-5VMMS53U-D1ZvprOX.js} +1 -1
  82. package/dist/{kanban-definition-UXKFOSKX-BLhvu8o4.js → kanban-definition-UXKFOSKX-Bna_3BMr.js} +1 -1
  83. package/dist/{loader-BPdQhmlq.js → loader-DZvtzQoD.js} +3 -3
  84. package/dist/main.js +10276 -8171
  85. package/dist/{mermaid-Bjm6C1qN.js → mermaid-A36unKXJ.js} +62 -62
  86. package/dist/{mindmap-definition-YA3MSWOX-g2LwxnYQ.js → mindmap-definition-YA3MSWOX-CyVCs__G.js} +1 -1
  87. package/dist/{now-jM8-M7IR.js → now-BKZCLE5P.js} +12 -13
  88. package/dist/{number-overlay-editor-DHqP6YVn.js → number-overlay-editor-CXO_e1Yo.js} +1 -1
  89. package/dist/{objects-CzUgoMIF.js → objects-DCmMvZtn.js} +1 -3
  90. package/dist/{once-BtE-wKRL.js → once-NnpX_HnX.js} +1 -1
  91. package/dist/{pegDiagram-XKGWAZYB-CpMAt3Qs.js → pegDiagram-XKGWAZYB-9hNBD2wZ.js} +2 -2
  92. package/dist/pencil-DYUlSKxZ.js +10 -0
  93. package/dist/pick-tCszMUbm.js +35 -0
  94. package/dist/{pieDiagram-E7YTZNPT-CVTthoZo.js → pieDiagram-E7YTZNPT-8tr-NYo7.js} +1 -1
  95. package/dist/{process-output-CuIlhYwn.js → process-output-BHsfwmw9.js} +4 -4
  96. package/dist/{railroadDiagram-O6MQD6OU-ao8cqqFB.js → railroadDiagram-O6MQD6OU-Dzg1dyyp.js} +2 -2
  97. package/dist/{react-vega-BDpbvBCb.js → react-vega-C4T9Rb_w.js} +1 -1
  98. package/dist/{requirementDiagram-BXWQKSXE--J8vyfm-.js → requirementDiagram-BXWQKSXE-B7sNqwGG.js} +1 -1
  99. package/dist/{reveal-component-DYHhtPqq.js → reveal-component-CLRZbwl1.js} +1151 -1128
  100. package/dist/select-DsoP1qe8.js +1200 -0
  101. package/dist/{sequenceDiagram-WJ2MYXX4-CiQbn62x.js → sequenceDiagram-WJ2MYXX4-oP9shbaG.js} +1 -1
  102. package/dist/{spec-D_u2ipzF.js → spec-BZMDxAu7.js} +41 -11
  103. package/dist/{stateDiagram-D77RDMKH-DVEeGs5b.js → stateDiagram-D77RDMKH-CjCv4ogv.js} +4 -4
  104. package/dist/{stateDiagram-v2-MP3YSRHH-1OQRe6iA.js → stateDiagram-v2-MP3YSRHH-BW9X162a.js} +2 -2
  105. package/dist/static-state-D-Q-Ajaa.js +72 -0
  106. package/dist/style.css +1 -1
  107. package/dist/{swimlanes-42K2YHIH-CqkGoGqn.js → swimlanes-42K2YHIH-Ckfs9Wrn.js} +1 -1
  108. package/dist/{swimlanesDiagram-VR7AAH4N-CszjkrKo.js → swimlanesDiagram-VR7AAH4N-DpTNG9YP.js} +2 -2
  109. package/dist/{swiper-component-DKntyn8p.js → swiper-component-DQbK_ZWm.js} +7 -7
  110. package/dist/{timeline-definition-24CTP7MA-DLRUNVAx.js → timeline-definition-24CTP7MA-BXaBlV6U.js} +1 -1
  111. package/dist/toast-BhjIy3Tq.js +491 -0
  112. package/dist/{tooltip-CtBZ5q8p.js → tooltip-DMMiOn2f.js} +321 -297
  113. package/dist/use-restore-focus-CosX7-gx.js +7568 -0
  114. package/dist/{useAsyncData-BneN349z.js → useAsyncData-Ci4AvJff.js} +18 -17
  115. package/dist/{useDateFormatter-DkajGwwd.js → useDateFormatter-CPlava52.js} +2 -2
  116. package/dist/{useDeepCompareMemoize-Z_7R8wTt.js → useDeepCompareMemoize-NaaWoFlX.js} +1 -1
  117. package/dist/useEvent-BRH-aCqi.js +19 -0
  118. package/dist/{useIframeCapabilities-DBETvvPl.js → useIframeCapabilities-BXhDDoCG.js} +1 -1
  119. package/dist/useLifecycle-SniivYmC.js +112 -0
  120. package/dist/{vega-component-1lFfDE_8.js → vega-component-DIxaDQNs.js} +161 -160
  121. package/dist/{vega-embed-container-BgKnsDbB.js → vega-embed-container--LYZqguO.js} +2 -2
  122. package/dist/{vega-loader.browser-CpbZAXub.js → vega-loader.browser-B9Pz0EGP.js} +1 -1
  123. package/dist/{vennDiagram-4TSXK5OY-CypgoBVZ.js → vennDiagram-4TSXK5OY-C-hQ4iNJ.js} +1 -1
  124. package/dist/{wardleyDiagram-VM6X3IG4-B6xjiQ_g.js → wardleyDiagram-VM6X3IG4-C2MQ_Umv.js} +1 -1
  125. package/dist/{xychartDiagram-S5SC5T6Z-e0PefDVs.js → xychartDiagram-S5SC5T6Z-BtTTBn7Q.js} +1 -1
  126. package/package.json +16 -20
  127. package/src/__mocks__/document.tsx +63 -0
  128. package/src/__mocks__/executions.ts +197 -0
  129. package/src/__mocks__/notebook.ts +3 -7
  130. package/src/__mocks__/partial.ts +26 -0
  131. package/src/__mocks__/requests.ts +1 -4
  132. package/src/__tests__/CellStatus.test.tsx +25 -26
  133. package/src/__tests__/fixtures/pair-config.ts +1 -1
  134. package/src/__tests__/main.test.tsx +24 -1
  135. package/src/__tests__/module-entry.test.ts +44 -0
  136. package/src/__tests__/mount.test.ts +1 -21
  137. package/src/__tests__/{host-imports.test.ts → replica-imports.test.ts} +12 -11
  138. package/src/components/ai/__tests__/ai-model-dropdown.test.tsx +63 -0
  139. package/src/components/ai/ai-model-dropdown.tsx +11 -6
  140. package/src/components/app-config/__tests__/state.test.tsx +50 -0
  141. package/src/components/app-config/ai-config.tsx +156 -150
  142. package/src/components/app-config/app-config-button.tsx +6 -5
  143. package/src/components/app-config/app-config-form.tsx +5 -9
  144. package/src/components/app-config/common.tsx +7 -9
  145. package/src/components/app-config/data-form.tsx +112 -113
  146. package/src/components/app-config/mcp-config.tsx +30 -53
  147. package/src/components/app-config/user-config-form.css +91 -0
  148. package/src/components/app-config/user-config-form.tsx +266 -349
  149. package/src/components/chat/__tests__/capabilities-popover.test.tsx +0 -1
  150. package/src/components/chat/__tests__/chat-display.test.tsx +196 -0
  151. package/src/components/chat/__tests__/chat-markdown.test.tsx +43 -0
  152. package/src/components/chat/__tests__/chat-utils.test.ts +93 -1
  153. package/src/components/chat/__tests__/message-queue.test.tsx +17 -0
  154. package/src/components/chat/__tests__/notebook-access-selector.test.tsx +64 -0
  155. package/src/components/chat/__tests__/turn-timing.test.ts +84 -0
  156. package/src/components/chat/__tests__/use-assistant-turn.test.ts +95 -0
  157. package/src/components/chat/__tests__/user-message.test.tsx +27 -0
  158. package/src/components/chat/acp/__tests__/agent-panel-initialization.test.tsx +1 -1
  159. package/src/components/chat/acp/__tests__/agent-panel.test.tsx +22 -17
  160. package/src/components/chat/acp/__tests__/session-tabs.test.tsx +43 -0
  161. package/src/components/chat/acp/__tests__/state.test.ts +2 -2
  162. package/src/components/chat/acp/agent-panel.tsx +6 -3
  163. package/src/components/chat/acp/blocks.tsx +13 -12
  164. package/src/components/chat/acp/common.tsx +4 -5
  165. package/src/components/chat/acp/model-selector.tsx +1 -1
  166. package/src/components/chat/acp/session-tabs.tsx +8 -3
  167. package/src/components/chat/agent-activity.tsx +132 -0
  168. package/src/components/chat/capabilities-popover.tsx +2 -11
  169. package/src/components/chat/chat-components.tsx +9 -4
  170. package/src/components/chat/chat-display.tsx +131 -57
  171. package/src/components/chat/chat-history-popover.tsx +6 -1
  172. package/src/components/chat/chat-markdown.tsx +15 -0
  173. package/src/components/chat/chat-panel.tsx +216 -294
  174. package/src/components/chat/chat-typography.css +108 -0
  175. package/src/components/chat/chat-utils.ts +24 -35
  176. package/src/components/chat/notebook-access-selector.stories.tsx +22 -0
  177. package/src/components/chat/notebook-access-selector.tsx +100 -0
  178. package/src/components/chat/tool-call/__tests__/tool-labels.test.ts +76 -0
  179. package/src/components/chat/tool-call/__tests__/tool-step.test.tsx +57 -0
  180. package/src/components/chat/tool-call/shared.ts +6 -0
  181. package/src/components/chat/tool-call/tool-call-view.tsx +22 -76
  182. package/src/components/chat/tool-call/tool-labels.ts +172 -0
  183. package/src/components/chat/tool-call/tool-result.tsx +1 -1
  184. package/src/components/chat/tool-call/tool-step.tsx +145 -0
  185. package/src/components/chat/turn-timing.ts +73 -0
  186. package/src/components/chat/use-assistant-turn.ts +65 -0
  187. package/src/components/chat/use-chat-generation.ts +20 -0
  188. package/src/components/chat/user-message.tsx +145 -0
  189. package/src/components/data-table/TableBottomBar.tsx +4 -1
  190. package/src/components/data-table/TableTopBar.tsx +2 -0
  191. package/src/components/data-table/__tests__/chart-spec-model.test.ts +195 -195
  192. package/src/components/data-table/__tests__/column-explorer.test.tsx +27 -1
  193. package/src/components/data-table/__tests__/columns.test.tsx +105 -0
  194. package/src/components/data-table/__tests__/context-menu-interaction.test.tsx +130 -0
  195. package/src/components/data-table/__tests__/data-table.test.tsx +1 -0
  196. package/src/components/data-table/__tests__/date-popover.test.tsx +72 -0
  197. package/src/components/data-table/__tests__/export-actions.test.tsx +105 -0
  198. package/src/components/data-table/__tests__/keyboard-selection.test.tsx +188 -0
  199. package/src/components/data-table/__tests__/pagination.test.tsx +28 -1
  200. package/src/components/data-table/__tests__/search-highlight.test.tsx +109 -0
  201. package/src/components/data-table/__tests__/url-detector.test.tsx +74 -0
  202. package/src/components/data-table/cell-selection/feature.ts +2 -2
  203. package/src/components/data-table/cell-selection/types.ts +2 -2
  204. package/src/components/data-table/charts/__tests__/chart-panel.test.tsx +74 -1
  205. package/src/components/data-table/charts/__tests__/spec-snapshot.test.ts +20 -20
  206. package/src/components/data-table/charts/__tests__/spec.test.ts +78 -52
  207. package/src/components/data-table/charts/__tests__/storage.test.ts +4 -1
  208. package/src/components/data-table/charts/chart-spec/spec.ts +68 -43
  209. package/src/components/data-table/charts/charts.tsx +40 -30
  210. package/src/components/data-table/charts/storage.ts +16 -5
  211. package/src/components/data-table/column-explorer-panel/column-explorer.tsx +1 -1
  212. package/src/components/data-table/column-formatting/types.ts +1 -2
  213. package/src/components/data-table/column-summary/chart-spec-model.tsx +23 -16
  214. package/src/components/data-table/column-summary/column-summary.tsx +2 -4
  215. package/src/components/data-table/column-visibility-dropdown.tsx +8 -13
  216. package/src/components/data-table/columns.tsx +45 -46
  217. package/src/components/data-table/context-menu.tsx +36 -20
  218. package/src/components/data-table/data-table.tsx +17 -1
  219. package/src/components/data-table/date-popover.tsx +6 -4
  220. package/src/components/data-table/export-actions.tsx +76 -48
  221. package/src/components/data-table/pagination.tsx +44 -33
  222. package/src/components/data-table/range-focus/atoms.ts +4 -6
  223. package/src/components/data-table/range-focus/use-cell-range-selection.ts +65 -38
  224. package/src/components/data-table/range-focus/use-scroll-into-view.ts +21 -2
  225. package/src/components/data-table/renderers.tsx +16 -7
  226. package/src/components/data-table/row-viewer-panel/__tests__/row-viewer.test.tsx +24 -1
  227. package/src/components/data-table/row-viewer-panel/row-viewer.tsx +4 -4
  228. package/src/components/data-table/search-highlight.tsx +79 -0
  229. package/src/components/data-table/types.ts +1 -0
  230. package/src/components/data-table/url-detector.tsx +49 -9
  231. package/src/components/datasources/__tests__/column-actions.test.tsx +97 -0
  232. package/src/components/datasources/__tests__/column-preview.test.tsx +96 -5
  233. package/src/components/datasources/__tests__/datasources-interactions.test.tsx +181 -0
  234. package/src/components/datasources/__tests__/table-list.test.tsx +118 -0
  235. package/src/components/datasources/__tests__/utils.test.ts +57 -6
  236. package/src/components/datasources/column-preview.tsx +17 -12
  237. package/src/components/datasources/datasources.tsx +56 -43
  238. package/src/components/datasources/utils.ts +32 -23
  239. package/src/components/debugger/debugger-code.tsx +5 -0
  240. package/src/components/dependency-graph/custom-node.tsx +1 -1
  241. package/src/components/dependency-graph/dependency-graph-tree.tsx +8 -8
  242. package/src/components/dependency-graph/elements.ts +24 -21
  243. package/src/components/dependency-graph/minimap-content.tsx +15 -20
  244. package/src/components/dependency-graph/panels.tsx +4 -2
  245. package/src/components/dependency-graph/utils/__tests__/layout.test.ts +18 -11
  246. package/src/components/editor/SortableCell.tsx +1 -3
  247. package/src/components/editor/__tests__/Output.test.tsx +50 -32
  248. package/src/{core/attachments/__tests__/toast.test.tsx → components/editor/__tests__/agent-toast.test.tsx} +1 -1
  249. package/src/components/editor/__tests__/data-attributes.test.tsx +28 -23
  250. package/src/components/editor/__tests__/dynamic-favicon.test.tsx +111 -18
  251. package/src/components/editor/__tests__/output-persistence.test.tsx +28 -9
  252. package/src/components/editor/__tests__/package-alert.test.tsx +22 -1
  253. package/src/components/editor/actions/__tests__/name-cell-input.test.tsx +69 -0
  254. package/src/components/editor/actions/__tests__/pair-with-agent-commands.test.ts +21 -40
  255. package/src/components/editor/actions/__tests__/pair-with-agent-modal.test.tsx +41 -14
  256. package/src/components/editor/actions/__tests__/pair-with-agent.test.tsx +6 -24
  257. package/src/components/editor/actions/__tests__/useCellActionButton.test.tsx +131 -0
  258. package/src/components/editor/actions/name-cell-input.tsx +4 -3
  259. package/src/components/editor/actions/pair-with-agent-commands.ts +10 -7
  260. package/src/components/editor/actions/pair-with-agent-modal.tsx +29 -30
  261. package/src/components/editor/actions/pair-with-agent.tsx +16 -39
  262. package/src/components/editor/actions/useCellActionButton.tsx +47 -35
  263. package/src/components/editor/actions/useConfigActions.tsx +3 -4
  264. package/src/components/editor/actions/useNotebookActions.tsx +25 -29
  265. package/src/components/editor/actions/useRestartKernel.tsx +1 -1
  266. package/src/components/editor/actions/useSetCodeVisibility.ts +11 -12
  267. package/src/components/editor/actions/useSetOutputsExpanded.ts +14 -19
  268. package/src/components/editor/ai/ai-completion-editor.tsx +2 -1
  269. package/src/components/editor/ai/completion-handlers.tsx +0 -37
  270. package/src/components/editor/ai/prompt-input.tsx +189 -0
  271. package/src/components/editor/alerts/__tests__/connection-notice.test.tsx +1 -1
  272. package/src/components/editor/alerts/connection-notice.tsx +1 -1
  273. package/src/components/editor/alerts/startup-logs-alert.tsx +1 -0
  274. package/src/components/editor/alerts/stdin-blocking-alert.tsx +4 -2
  275. package/src/components/editor/app-container.tsx +1 -1
  276. package/src/components/editor/boundary/__tests__/ErrorBoundary.test.tsx +1 -1
  277. package/src/components/editor/cell/CellStatus.tsx +28 -23
  278. package/src/components/editor/cell/CreateCellButton.tsx +15 -21
  279. package/src/components/editor/cell/DeleteButton.tsx +3 -2
  280. package/src/components/editor/cell/RunButton.tsx +18 -8
  281. package/src/components/editor/cell/StagedAICell.tsx +52 -137
  282. package/src/components/editor/cell/StopButton.tsx +2 -2
  283. package/src/components/editor/cell/__tests__/useRunCells.test.tsx +169 -0
  284. package/src/components/editor/cell/__tests__/useShouldShowInterrupt.test.ts +39 -0
  285. package/src/components/editor/cell/cell-actions.tsx +12 -1
  286. package/src/components/editor/cell/cell-context-menu.tsx +4 -1
  287. package/src/components/editor/cell/code/__tests__/language-toggle.test.tsx +54 -0
  288. package/src/components/editor/cell/code/cell-editor.tsx +65 -169
  289. package/src/components/editor/cell/code/language-toggle.tsx +8 -7
  290. package/src/components/editor/cell/collapse.tsx +16 -6
  291. package/src/components/editor/cell/useAddCell.ts +4 -8
  292. package/src/components/editor/cell/useDeleteCell.tsx +10 -36
  293. package/src/components/editor/cell/useRunCells.ts +49 -8
  294. package/src/components/editor/cell/useShouldShowInterrupt.ts +2 -12
  295. package/src/components/editor/cell/useSplitCell.tsx +10 -6
  296. package/src/components/editor/chrome/components/__tests__/feedback-button.test.tsx +1 -1
  297. package/src/components/editor/chrome/components/feedback-button.tsx +2 -8
  298. package/src/components/editor/chrome/panels/__tests__/packages-panel.test.tsx +31 -2
  299. package/src/components/editor/chrome/panels/__tests__/runtime-details.test.tsx +1 -1
  300. package/src/components/editor/chrome/panels/__tests__/sandbox-recovery.test.tsx +1 -1
  301. package/src/components/editor/chrome/panels/cache-panel.tsx +1 -0
  302. package/src/components/editor/chrome/panels/dependency-graph-panel.tsx +1 -1
  303. package/src/components/editor/chrome/panels/logs-panel.tsx +2 -1
  304. package/src/components/editor/chrome/panels/outline/__tests__/outline-keyboard.test.tsx +84 -0
  305. package/src/components/editor/chrome/panels/outline/floating-outline.tsx +39 -14
  306. package/src/components/editor/chrome/panels/outline/useActiveOutline.tsx +3 -2
  307. package/src/components/editor/chrome/panels/packages-panel.tsx +4 -7
  308. package/src/components/editor/chrome/panels/panel-header.tsx +13 -0
  309. package/src/components/editor/chrome/panels/secrets-panel.tsx +1 -0
  310. package/src/components/editor/chrome/panels/session-panel.tsx +1 -1
  311. package/src/components/editor/chrome/panels/snippets-panel.tsx +10 -12
  312. package/src/components/editor/chrome/panels/variable-panel.tsx +1 -5
  313. package/src/components/editor/chrome/types.ts +1 -1
  314. package/src/components/editor/chrome/wrapper/__tests__/attachment-status.test.tsx +7 -9
  315. package/src/components/editor/chrome/wrapper/__tests__/document-sync-status.test.tsx +92 -0
  316. package/src/components/editor/chrome/wrapper/__tests__/pending-ai-cells.test.tsx +265 -37
  317. package/src/components/editor/chrome/wrapper/__tests__/useAskAiAboutCell.test.tsx +58 -0
  318. package/src/components/editor/chrome/wrapper/app-chrome.tsx +91 -74
  319. package/src/components/editor/chrome/wrapper/footer-items/attachment-status.tsx +4 -4
  320. package/src/components/editor/chrome/wrapper/footer-items/backend-status.tsx +1 -1
  321. package/src/components/editor/chrome/wrapper/footer-items/document-sync-status.tsx +54 -0
  322. package/src/components/editor/chrome/wrapper/footer-items/lsp-status.tsx +1 -1
  323. package/src/components/editor/chrome/wrapper/footer-items/machine-stats.tsx +1 -1
  324. package/src/components/editor/chrome/wrapper/footer-items/runtime-settings.tsx +1 -7
  325. package/src/components/editor/chrome/wrapper/footer.tsx +2 -2
  326. package/src/components/editor/chrome/wrapper/minimap-state.ts +1 -1
  327. package/src/components/editor/chrome/wrapper/pending-ai-cells.tsx +143 -72
  328. package/src/components/editor/chrome/wrapper/pending-ai-changes-badge.tsx +25 -0
  329. package/src/components/editor/chrome/wrapper/sidebar.tsx +8 -4
  330. package/src/components/editor/chrome/wrapper/storage.ts +1 -1
  331. package/src/components/editor/chrome/wrapper/useAskAiAboutCell.ts +36 -0
  332. package/src/components/editor/columns/__tests__/cell-column.test.tsx +1 -1
  333. package/src/components/editor/columns/cell-column.tsx +1 -1
  334. package/src/components/editor/columns/sortable-column.tsx +2 -2
  335. package/src/components/editor/connections/components.tsx +5 -10
  336. package/src/components/editor/controls/Controls.tsx +4 -4
  337. package/src/components/editor/controls/__tests__/command-palette.test.tsx +53 -0
  338. package/src/components/editor/controls/__tests__/keyboard-shortcuts.test.tsx +61 -0
  339. package/src/components/editor/controls/__tests__/notebook-menu-dropdown.test.tsx +10 -4
  340. package/src/components/editor/controls/command-palette.tsx +22 -10
  341. package/src/components/editor/controls/keyboard-shortcuts.tsx +14 -5
  342. package/src/components/editor/documentation.css +34 -11
  343. package/src/components/editor/dynamic-favicon.tsx +21 -40
  344. package/src/components/editor/errors/__tests__/send-error-report-button.test.tsx +26 -22
  345. package/src/components/editor/errors/auto-fix.tsx +4 -8
  346. package/src/components/editor/errors/send-error-report-button.tsx +3 -6
  347. package/src/components/editor/file-tree/__tests__/file-explorer-interactions.test.tsx +6 -0
  348. package/src/components/editor/file-tree/__tests__/file-explorer-navigation.test.tsx +47 -0
  349. package/src/components/editor/file-tree/__tests__/use-file-search.test.tsx +91 -0
  350. package/src/components/editor/file-tree/file-explorer.tsx +48 -15
  351. package/src/components/editor/file-tree/file-name-input.tsx +1 -0
  352. package/src/components/editor/file-tree/file-viewer.tsx +4 -2
  353. package/src/components/editor/file-tree/use-file-search.ts +35 -21
  354. package/src/components/editor/header/__tests__/filename-form.test.tsx +1 -4
  355. package/src/components/editor/header/__tests__/status.test.tsx +5 -3
  356. package/src/components/editor/header/app-header.tsx +1 -1
  357. package/src/components/editor/header/filename-form.tsx +1 -1
  358. package/src/components/editor/header/status.tsx +44 -22
  359. package/src/components/editor/links/__tests__/cell-link.test.tsx +148 -0
  360. package/src/components/editor/links/cell-link-list.tsx +1 -1
  361. package/src/components/editor/links/cell-link.tsx +21 -11
  362. package/src/components/editor/navigation/__tests__/clipboard.test.ts +60 -38
  363. package/src/components/editor/navigation/__tests__/navigation.test.ts +108 -85
  364. package/src/components/editor/navigation/__tests__/selection.test.ts +43 -21
  365. package/src/components/editor/navigation/clipboard.ts +17 -14
  366. package/src/components/editor/navigation/focus-utils.ts +23 -4
  367. package/src/components/editor/navigation/multi-cell-action-toolbar.tsx +17 -33
  368. package/src/components/editor/navigation/navigation.ts +74 -72
  369. package/src/components/editor/navigation/selection.ts +30 -29
  370. package/src/components/editor/notebook-banner.tsx +1 -0
  371. package/src/components/editor/notebook-cell.tsx +126 -152
  372. package/src/components/editor/output/MarimoErrorOutput.tsx +41 -4
  373. package/src/components/editor/output/MarimoTracebackOutput.tsx +19 -17
  374. package/src/components/editor/output/Outputs.css +8 -0
  375. package/src/components/editor/output/VideoOutput.tsx +6 -0
  376. package/src/components/editor/output/__tests__/VideoOutput.test.tsx +131 -0
  377. package/src/components/editor/output/__tests__/traceback.test.tsx +27 -1
  378. package/src/components/editor/output/ansi-reduce.ts +33 -20
  379. package/src/components/editor/output/console/ConsoleOutput.tsx +19 -25
  380. package/src/components/editor/output/console/__tests__/ConsoleOutput.test.tsx +125 -69
  381. package/src/components/editor/package-alert.tsx +14 -7
  382. package/src/components/editor/renderers/__tests__/add-cell-buttons.test.tsx +18 -0
  383. package/src/components/editor/renderers/cell-array.tsx +32 -100
  384. package/src/components/editor/renderers/grid-layout/__tests__/grid-layout.test.tsx +75 -0
  385. package/src/components/editor/renderers/grid-layout/grid-layout.tsx +28 -22
  386. package/src/components/editor/renderers/slides-layout/__tests__/plugin.test.ts +0 -4
  387. package/src/components/editor/renderers/slides-layout/slides-layout.tsx +1 -1
  388. package/src/components/editor/renderers/vertical-layout/__tests__/useFocusFirstEditor.test.ts +4 -4
  389. package/src/components/editor/renderers/vertical-layout/sidebar/toggle.tsx +7 -1
  390. package/src/components/editor/renderers/vertical-layout/useFocusFirstEditor.ts +1 -1
  391. package/src/components/editor/renderers/vertical-layout/vertical-layout.tsx +19 -37
  392. package/src/components/editor/stdin-blocking-alert.tsx +4 -2
  393. package/src/components/home/components.tsx +17 -31
  394. package/src/components/icons/__tests__/large-spinner.test.tsx +39 -0
  395. package/src/components/icons/large-spinner.tsx +3 -14
  396. package/src/components/icons/spinner.tsx +1 -1
  397. package/src/components/markdown/markdown-renderer.tsx +39 -28
  398. package/src/components/mcp/mcp-status-indicator.tsx +18 -14
  399. package/src/components/pages/__tests__/home-page.test.tsx +116 -0
  400. package/src/components/pages/edit-page.tsx +19 -17
  401. package/src/components/pages/home-page.tsx +164 -91
  402. package/src/components/scratchpad/scratchpad.test.tsx +89 -0
  403. package/src/components/scratchpad/scratchpad.tsx +47 -33
  404. package/src/components/scratchpad/state.ts +7 -0
  405. package/src/components/slides/__tests__/minimap-actions.test.tsx +22 -29
  406. package/src/components/slides/__tests__/minimap.test.ts +38 -19
  407. package/src/components/slides/__tests__/slide-scroll-hint.test.tsx +37 -0
  408. package/src/components/slides/minimap.tsx +22 -14
  409. package/src/components/slides/reveal-component.tsx +73 -36
  410. package/src/components/slides/reveal-slides.css +5 -4
  411. package/src/components/slides/slide-cell-view.tsx +37 -34
  412. package/src/components/slides/slide-form.tsx +1 -0
  413. package/src/components/slides/slide-scroll-hint.tsx +3 -1
  414. package/src/components/slides/slide.tsx +3 -4
  415. package/src/components/sort/SortableCellsProvider.tsx +8 -25
  416. package/src/components/tracing/tracing-keyboard.test.tsx +85 -0
  417. package/src/components/tracing/tracing.tsx +46 -42
  418. package/src/components/ui/__tests__/draggable-popover.test.tsx +24 -0
  419. package/src/components/ui/__tests__/fullscreen.test.tsx +44 -2
  420. package/src/components/ui/__tests__/range-slider.test.tsx +165 -0
  421. package/src/components/ui/alert-dialog.tsx +1 -1
  422. package/src/components/ui/draggable-popover.tsx +24 -2
  423. package/src/components/ui/fullscreen.tsx +25 -1
  424. package/src/components/ui/range-slider.tsx +22 -9
  425. package/src/components/ui/toast.tsx +1 -1
  426. package/src/core/MarimoApp.tsx +3 -1
  427. package/src/core/ai/__tests__/staged-cells.test.ts +89 -608
  428. package/src/core/ai/context/context.ts +2 -0
  429. package/src/core/ai/context/providers/__tests__/cell-output.test.ts +8 -12
  430. package/src/core/ai/context/providers/__tests__/cell.test.ts +49 -0
  431. package/src/core/ai/context/providers/cell-output.ts +2 -2
  432. package/src/core/ai/context/providers/cell.ts +54 -0
  433. package/src/core/ai/context/providers/datasource.ts +6 -2
  434. package/src/core/ai/staged-cells.ts +56 -323
  435. package/src/core/ai/state.ts +3 -0
  436. package/src/core/ai/tools/__tests__/edit-notebook-tool.test.ts +40 -88
  437. package/src/core/ai/tools/__tests__/registry.test.ts +17 -0
  438. package/src/core/ai/tools/base.ts +18 -15
  439. package/src/core/ai/tools/edit-notebook-tool.ts +86 -80
  440. package/src/core/ai/tools/registry.ts +13 -10
  441. package/src/core/ai/tools/sample-tool.ts +6 -7
  442. package/src/core/cells/__tests__/__snapshots__/cells.test.ts.snap +4 -527
  443. package/src/core/cells/__tests__/actions.test.ts +623 -35
  444. package/src/core/cells/__tests__/add-missing-import.test.ts +7 -8
  445. package/src/core/cells/__tests__/arrange.test.ts +432 -0
  446. package/src/core/cells/__tests__/cell.test.ts +148 -150
  447. package/src/core/cells/__tests__/cells.test.ts +390 -2925
  448. package/src/core/cells/__tests__/collapseConsoleOutputs.test.ts +54 -0
  449. package/src/core/cells/__tests__/document.test.ts +158 -0
  450. package/src/core/cells/__tests__/editor.test.ts +57 -0
  451. package/src/core/cells/__tests__/flush-document.test.ts +40 -0
  452. package/src/core/cells/__tests__/harness.ts +106 -0
  453. package/src/core/cells/__tests__/layout.test.ts +176 -0
  454. package/src/core/cells/__tests__/logs.test.ts +0 -13
  455. package/src/core/cells/__tests__/notebook-outline.test.ts +122 -0
  456. package/src/core/cells/__tests__/outputs.test.tsx +71 -53
  457. package/src/core/cells/__tests__/pending-delete-service.test.tsx +11 -20
  458. package/src/core/cells/__tests__/session.test.ts +445 -211
  459. package/src/core/cells/__tests__/utils.test.ts +135 -337
  460. package/src/core/cells/actions.ts +677 -6
  461. package/src/core/cells/add-missing-import.ts +47 -43
  462. package/src/core/cells/arrange.ts +529 -0
  463. package/src/core/cells/cell.ts +78 -146
  464. package/src/core/cells/cells.ts +116 -1457
  465. package/src/core/cells/columns.ts +38 -0
  466. package/src/core/cells/document.ts +167 -0
  467. package/src/core/cells/edit.ts +30 -0
  468. package/src/core/cells/editor.ts +82 -0
  469. package/src/core/cells/focus.ts +27 -6
  470. package/src/core/cells/layout.ts +221 -0
  471. package/src/core/cells/outputs.ts +12 -28
  472. package/src/core/cells/pending-delete-service.ts +8 -14
  473. package/src/core/cells/scrollCellIntoView.ts +6 -0
  474. package/src/core/cells/session.ts +76 -53
  475. package/src/core/cells/types.ts +21 -51
  476. package/src/core/cells/utils.ts +85 -87
  477. package/src/core/codemirror/__tests__/format.test.ts +0 -34
  478. package/src/core/codemirror/__tests__/setup.test.ts +61 -29
  479. package/src/core/codemirror/ai/__tests__/resources.test.ts +117 -0
  480. package/src/core/codemirror/ai/resources.ts +1 -1
  481. package/src/core/codemirror/cells/__tests__/extensions.test.ts +2 -6
  482. package/src/core/codemirror/cells/extensions.ts +18 -30
  483. package/src/core/codemirror/cells/state.ts +2 -6
  484. package/src/core/codemirror/cm.ts +5 -1
  485. package/src/core/codemirror/config/types.ts +1 -1
  486. package/src/core/codemirror/copilot/__tests__/getCodes.test.ts +6 -7
  487. package/src/core/codemirror/copilot/getCodes.ts +2 -2
  488. package/src/core/codemirror/format.ts +6 -23
  489. package/src/core/codemirror/keymaps/vim.ts +4 -8
  490. package/src/core/codemirror/language/__tests__/sql.test.ts +22 -20
  491. package/src/core/codemirror/language/__tests__/utils.test.ts +187 -15
  492. package/src/core/codemirror/language/cell-code.ts +114 -0
  493. package/src/core/codemirror/language/extension.ts +52 -35
  494. package/src/core/codemirror/language/languages/markdown.ts +8 -6
  495. package/src/core/codemirror/language/languages/python.ts +19 -13
  496. package/src/core/codemirror/language/languages/sql/sql.ts +16 -24
  497. package/src/core/codemirror/language/panel/panel.tsx +1 -0
  498. package/src/core/codemirror/language/types.ts +7 -7
  499. package/src/core/codemirror/language/utils.ts +9 -39
  500. package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +1 -2
  501. package/src/core/codemirror/lsp/notebook-lsp.ts +6 -5
  502. package/src/core/codemirror/lsp/utils.ts +1 -1
  503. package/src/core/codemirror/misc/__tests__/paste.test.ts +3 -1
  504. package/src/core/codemirror/misc/paste.ts +1 -1
  505. package/src/core/codemirror/placeholder/__tests__/extensions.test.ts +75 -0
  506. package/src/core/codemirror/placeholder/extensions.ts +80 -19
  507. package/src/core/codemirror/readonly/__tests__/extension.test.ts +1 -1
  508. package/src/core/codemirror/readonly/extension.ts +2 -2
  509. package/src/core/codemirror/utils.ts +1 -0
  510. package/src/core/config/__tests__/app-config.test.ts +64 -0
  511. package/src/core/config/__tests__/config-schema.test.ts +56 -6
  512. package/src/core/config/config-schema.ts +17 -4
  513. package/src/core/config/config.ts +65 -20
  514. package/src/core/config/feature-flag.tsx +0 -2
  515. package/src/core/datasets/__tests__/data-source-discovery.test.ts +5 -5
  516. package/src/core/datasets/data-source-discovery.ts +4 -6
  517. package/src/core/documentation/doc-lookup.ts +1 -1
  518. package/src/core/dom/outline.ts +4 -1
  519. package/src/core/edit-app.tsx +22 -28
  520. package/src/core/errors/__tests__/error-entries.test.ts +40 -1
  521. package/src/core/errors/error-entries.ts +6 -4
  522. package/src/core/executions/__tests__/atoms.test.ts +98 -0
  523. package/src/core/executions/__tests__/freshness.test.ts +482 -0
  524. package/src/core/executions/__tests__/hooks.test.tsx +151 -0
  525. package/src/core/executions/__tests__/output.test.ts +266 -0
  526. package/src/core/executions/__tests__/select.test.ts +268 -0
  527. package/src/core/executions/atoms.ts +263 -0
  528. package/src/core/executions/freshness.ts +171 -0
  529. package/src/core/executions/hooks.ts +86 -0
  530. package/src/core/executions/index.ts +48 -0
  531. package/src/core/executions/output.ts +242 -0
  532. package/src/core/executions/select.ts +175 -0
  533. package/src/core/export/__tests__/hooks.test.ts +0 -5
  534. package/src/core/export/hooks.ts +1 -1
  535. package/src/core/export/layout.ts +2 -2
  536. package/src/core/hotkeys/actions.ts +2 -4
  537. package/src/core/hotkeys/hotkeys.ts +2 -1
  538. package/src/core/islands/__tests__/bootstrap.test.ts +69 -17
  539. package/src/core/islands/__tests__/bridge.test.ts +85 -27
  540. package/src/core/islands/bootstrap.ts +49 -54
  541. package/src/core/islands/bridge.ts +84 -25
  542. package/src/core/islands/components/__tests__/IslandControls.test.tsx +7 -5
  543. package/src/core/islands/components/__tests__/web-components.test.tsx +63 -0
  544. package/src/core/islands/components/output-wrapper.tsx +5 -5
  545. package/src/core/islands/components/web-components.tsx +12 -1
  546. package/src/core/islands/worker/__tests__/controller.test.ts +62 -4
  547. package/src/core/islands/worker/controller.ts +4 -10
  548. package/src/core/islands/worker/worker.tsx +33 -33
  549. package/src/core/kernel/__tests__/RuntimeState.test.ts +1 -1
  550. package/src/core/kernel/__tests__/handlers.test.ts +7 -157
  551. package/src/core/kernel/handlers.ts +13 -79
  552. package/src/core/kernel/state.ts +0 -15
  553. package/src/core/lifecycle/render-policy.ts +12 -26
  554. package/src/core/meta/__tests__/code-visibility.test.tsx +78 -70
  555. package/src/core/meta/code-visibility.ts +18 -9
  556. package/src/core/network/__tests__/connection.test.ts +1 -1
  557. package/src/core/network/__tests__/requests-lazy.test.ts +6 -8
  558. package/src/core/network/connection-notice.ts +1 -1
  559. package/src/core/network/connection.ts +1 -1
  560. package/src/core/network/requests-lazy.ts +5 -8
  561. package/src/core/network/requests-network.ts +5 -31
  562. package/src/core/network/requests-static.ts +1 -4
  563. package/src/core/network/requests-toasting.tsx +1 -4
  564. package/src/core/network/types.ts +6 -14
  565. package/src/core/network/useConnectionNotice.ts +8 -2
  566. package/src/core/notebook/__tests__/operations.test.ts +51 -0
  567. package/src/core/notebook/attachments.ts +38 -0
  568. package/src/core/notebook/document/__tests__/codemirror.test.ts +759 -0
  569. package/src/core/notebook/document/__tests__/draft.test.ts +363 -0
  570. package/src/core/notebook/document/__tests__/fixtures.ts +92 -0
  571. package/src/core/notebook/document/__tests__/hooks.test.tsx +391 -0
  572. package/src/core/notebook/document/__tests__/lifecycle-scenarios.test.ts +61 -0
  573. package/src/core/notebook/document/__tests__/model.test.ts +247 -0
  574. package/src/core/notebook/document/__tests__/protocol-fixtures.ts +38 -0
  575. package/src/core/notebook/document/__tests__/recovery-scenarios.test.ts +230 -0
  576. package/src/core/notebook/document/__tests__/scenario-fixture.ts +43 -0
  577. package/src/core/notebook/document/__tests__/scenarios.test.ts +205 -0
  578. package/src/core/notebook/document/__tests__/state.test.ts +459 -0
  579. package/src/core/notebook/document/__tests__/submission.test.ts +203 -0
  580. package/src/core/notebook/document/__tests__/test-host.test.ts +92 -0
  581. package/src/core/notebook/document/__tests__/test-host.ts +247 -0
  582. package/src/core/notebook/document/__tests__/test-notebook.ts +149 -0
  583. package/src/core/notebook/document/__tests__/user.ts +61 -0
  584. package/src/core/notebook/document/codemirror.ts +216 -0
  585. package/src/core/notebook/document/draft.ts +502 -0
  586. package/src/core/notebook/document/hooks.tsx +118 -0
  587. package/src/core/notebook/document/index.ts +24 -0
  588. package/src/core/notebook/document/model.ts +102 -0
  589. package/src/core/notebook/document/select.ts +41 -0
  590. package/src/core/notebook/document/state.ts +378 -0
  591. package/src/core/notebook/document/sync.ts +369 -0
  592. package/src/core/notebook/index.ts +19 -0
  593. package/src/core/notebook/operations.ts +30 -0
  594. package/src/core/notebook/replica/AGENTS.md +11 -0
  595. package/src/core/{host → notebook/replica}/__tests__/attachments.test.ts +9 -10
  596. package/src/core/{host → notebook/replica}/__tests__/document.test.ts +18 -16
  597. package/src/core/notebook/replica/__tests__/executions.test.ts +200 -0
  598. package/src/core/notebook/replica/__tests__/fixtures.ts +79 -0
  599. package/src/core/notebook/replica/__tests__/replica.test.ts +559 -0
  600. package/src/core/notebook/replica/__tests__/results.test.ts +193 -0
  601. package/src/core/notebook/replica/__tests__/runtime.test.ts +78 -0
  602. package/src/core/notebook/replica/backend.ts +19 -0
  603. package/src/core/notebook/replica/connection.ts +42 -0
  604. package/src/core/notebook/replica/index.ts +20 -0
  605. package/src/core/notebook/replica/replica.ts +336 -0
  606. package/src/core/{host → notebook/replica}/resources/attachments.ts +6 -3
  607. package/src/core/{host → notebook/replica}/resources/document.ts +3 -3
  608. package/src/core/notebook/replica/resources/executions.ts +157 -0
  609. package/src/core/notebook/replica/resources/results.ts +48 -0
  610. package/src/core/notebook/replica/resources/runtime.ts +14 -0
  611. package/src/core/packages/__tests__/useSandboxController.test.tsx +1 -1
  612. package/src/core/packages/useSandboxController.ts +1 -1
  613. package/src/core/run-app.tsx +49 -51
  614. package/src/core/runtime/__tests__/adapter.test.ts +4 -4
  615. package/src/core/runtime/__tests__/createWsUrl.test.ts +77 -7
  616. package/src/core/runtime/__tests__/runtime.test.ts +32 -74
  617. package/src/core/runtime/adapter.ts +5 -5
  618. package/src/core/runtime/config.ts +2 -2
  619. package/src/core/runtime/runtime.ts +33 -46
  620. package/src/core/runtime/types.ts +0 -2
  621. package/src/core/saving/__tests__/document.test.tsx +123 -0
  622. package/src/core/saving/__tests__/state.test.ts +111 -0
  623. package/src/core/saving/__tests__/useAutoSave.test.tsx +67 -0
  624. package/src/core/saving/document.ts +33 -0
  625. package/src/core/saving/filename.ts +1 -1
  626. package/src/core/saving/save-component.tsx +39 -60
  627. package/src/core/saving/state.ts +38 -39
  628. package/src/core/saving/useAutoSave.ts +17 -53
  629. package/src/core/session/__tests__/backend.test.ts +236 -0
  630. package/src/core/session/__tests__/useNotebookReplica.hook.test.tsx +186 -0
  631. package/src/core/{websocket → session}/__tests__/useNotebookSession.hook.test.tsx +245 -262
  632. package/src/core/session/active-notebook.ts +28 -0
  633. package/src/core/session/backend.ts +123 -0
  634. package/src/core/session/embedded.ts +7 -0
  635. package/src/core/{websocket → session}/types.ts +2 -2
  636. package/src/core/session/useNotebookReplica.ts +74 -0
  637. package/src/core/{websocket → session}/useNotebookSession.tsx +80 -67
  638. package/src/core/state/__tests__/jotai.test.tsx +108 -0
  639. package/src/core/state/jotai.ts +1 -1
  640. package/src/core/static/__tests__/files.test.ts +38 -10
  641. package/src/core/static/files.ts +2 -0
  642. package/src/core/{websocket → transports}/__tests__/connection-state.test.ts +1 -13
  643. package/src/core/transports/__tests__/server.test.ts +408 -0
  644. package/src/core/transports/__tests__/static.test.ts +306 -0
  645. package/src/core/transports/__tests__/wasm.test.ts +166 -0
  646. package/src/core/{websocket → transports}/connection-state.ts +9 -16
  647. package/src/core/transports/server.ts +152 -0
  648. package/src/core/transports/static.ts +166 -0
  649. package/src/core/transports/wasm.ts +97 -0
  650. package/src/core/vscode/__tests__/vscode-bindings.test.ts +125 -0
  651. package/src/core/vscode/vscode-bindings.ts +14 -2
  652. package/src/core/wasm/__tests__/bridge.test.ts +210 -64
  653. package/src/core/wasm/__tests__/worker.test.ts +188 -0
  654. package/src/core/wasm/bridge.ts +120 -73
  655. package/src/core/wasm/rpc.ts +15 -3
  656. package/src/core/wasm/store.ts +3 -3
  657. package/src/core/wasm/worker/bootstrap.ts +55 -51
  658. package/src/core/wasm/worker/getMarimoWheel.ts +1 -1
  659. package/src/core/wasm/worker/save-worker.ts +9 -10
  660. package/src/core/wasm/worker/types.ts +30 -18
  661. package/src/core/wasm/worker/worker.ts +118 -72
  662. package/src/css/app/Cell.css +7 -36
  663. package/src/css/app/codemirror.css +1 -1
  664. package/src/css/common.css +1 -1
  665. package/src/css/globals.css +72 -24
  666. package/src/hooks/__tests__/useAsyncData.test.tsx +148 -0
  667. package/src/hooks/__tests__/useDebounce.test.tsx +51 -0
  668. package/src/hooks/__tests__/useDeepCompareMemoize.test.tsx +39 -0
  669. package/src/hooks/__tests__/useDelayElapsed.test.tsx +28 -0
  670. package/src/hooks/__tests__/useInternalStateWithSync.test.tsx +20 -0
  671. package/src/hooks/__tests__/useScript.test.tsx +77 -0
  672. package/src/hooks/__tests__/useStateForKey.test.tsx +257 -0
  673. package/src/hooks/useAsyncData.ts +3 -3
  674. package/src/hooks/useDataSourceDiscovery.ts +6 -4
  675. package/src/hooks/useDebounce.ts +6 -10
  676. package/src/hooks/useDeepCompareMemoize.ts +1 -1
  677. package/src/hooks/useDelayElapsed.ts +14 -10
  678. package/src/hooks/useElapsedTime.ts +3 -3
  679. package/src/hooks/useEventListener.ts +1 -2
  680. package/src/hooks/useInputHistory.ts +4 -7
  681. package/src/hooks/useInternalStateWithSync.ts +6 -6
  682. package/src/hooks/useResizeObserver.ts +4 -7
  683. package/src/hooks/useScript.ts +67 -70
  684. package/src/hooks/useStateForKey.ts +93 -0
  685. package/src/mount.tsx +20 -15
  686. package/src/plugins/__tests__/plugin-object-schemas.test.ts +104 -0
  687. package/src/plugins/core/RenderHTML.tsx +3 -5
  688. package/src/plugins/core/__test__/RenderHTML-copy.test.tsx +60 -0
  689. package/src/plugins/core/registerReactComponent.tsx +5 -14
  690. package/src/plugins/impl/CodeEditorPlugin.tsx +1 -1
  691. package/src/plugins/impl/DataEditorPlugin.tsx +34 -13
  692. package/src/plugins/impl/DataTablePlugin.tsx +69 -37
  693. package/src/plugins/impl/DropdownPlugin.tsx +2 -6
  694. package/src/plugins/impl/FileBrowserPlugin.tsx +4 -16
  695. package/src/plugins/impl/FormPlugin.tsx +1 -1
  696. package/src/plugins/impl/RangeSliderPlugin.tsx +16 -2
  697. package/src/plugins/impl/RefreshPlugin.tsx +1 -0
  698. package/src/plugins/impl/SliderPlugin.tsx +6 -8
  699. package/src/plugins/impl/__tests__/DataEditorPlugin.test.ts +93 -4
  700. package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +387 -1
  701. package/src/plugins/impl/__tests__/FileBrowserPlugin.test.tsx +45 -0
  702. package/src/plugins/impl/__tests__/RangeSliderPlugin.test.tsx +109 -0
  703. package/src/plugins/impl/__tests__/SliderPlugin.test.tsx +24 -3
  704. package/src/plugins/impl/anywidget/__tests__/registry.test.ts +153 -0
  705. package/src/plugins/impl/anywidget/__tests__/widget-binding.test.ts +241 -2
  706. package/src/plugins/impl/anywidget/model.ts +3 -1
  707. package/src/plugins/impl/anywidget/registry.ts +18 -14
  708. package/src/plugins/impl/anywidget/runtime.ts +21 -9
  709. package/src/plugins/impl/anywidget/widget-binding.ts +160 -82
  710. package/src/plugins/impl/chat/__tests__/chat-prompts.test.tsx +93 -0
  711. package/src/plugins/impl/chat/chat-ui.tsx +17 -15
  712. package/src/plugins/impl/code/any-language-editor.tsx +2 -2
  713. package/src/plugins/impl/common/error-banner.tsx +5 -3
  714. package/src/plugins/impl/data-editor/__tests__/column-types.test.ts +42 -0
  715. package/src/plugins/impl/data-editor/__tests__/editor-state.test.ts +52 -1
  716. package/src/plugins/impl/data-editor/__tests__/glide-data-editor.test.tsx +120 -4
  717. package/src/plugins/impl/data-editor/__tests__/glide-utils.test.ts +116 -0
  718. package/src/plugins/impl/data-editor/column-types.ts +55 -0
  719. package/src/plugins/impl/data-editor/editor-state.ts +18 -2
  720. package/src/plugins/impl/data-editor/glide-data-editor.tsx +74 -12
  721. package/src/plugins/impl/data-editor/glide-utils.ts +39 -38
  722. package/src/plugins/impl/data-editor/types.ts +5 -0
  723. package/src/plugins/impl/data-explorer/ConnectedDataExplorerComponent.tsx +1 -1
  724. package/src/plugins/impl/data-explorer/components/column-summary.tsx +4 -2
  725. package/src/plugins/impl/data-explorer/state/reducer.ts +1 -1
  726. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +1 -2
  727. package/src/plugins/impl/data-frames/__tests__/sidebar.test.tsx +160 -0
  728. package/src/plugins/impl/data-frames/forms/__tests__/__snapshots__/form.test.tsx.snap +66 -66
  729. package/src/plugins/impl/data-frames/panel.tsx +44 -16
  730. package/src/plugins/impl/mpl-interactive/MplInteractivePlugin.tsx +5 -3
  731. package/src/plugins/impl/panel/PanelPlugin.tsx +16 -17
  732. package/src/plugins/impl/panel/__tests__/utils.test.ts +39 -1
  733. package/src/plugins/impl/panel/utils.ts +17 -0
  734. package/src/plugins/impl/plotly/PlotlyPlugin.tsx +2 -5
  735. package/src/plugins/impl/plotly/selection.ts +25 -19
  736. package/src/plugins/impl/vega/VegaPlugin.tsx +2 -3
  737. package/src/plugins/impl/vega/make-selectable.ts +4 -7
  738. package/src/plugins/layout/DownloadPlugin.tsx +7 -11
  739. package/src/plugins/layout/RoutesPlugin.tsx +1 -1
  740. package/src/plugins/layout/__test__/DownloadPlugin.test.tsx +205 -0
  741. package/src/stories/__tests__/editor-story.test.tsx +33 -0
  742. package/src/stories/button.stories.tsx +1 -0
  743. package/src/stories/cell-status.stories.tsx +29 -24
  744. package/src/stories/cell.stories.tsx +46 -46
  745. package/src/stories/data-table.stories.tsx +31 -0
  746. package/src/stories/editor.stories.tsx +24 -17
  747. package/src/stories/form-wrapper.stories.tsx +2 -2
  748. package/src/stories/layout/vertical/one-column.stories.tsx +28 -42
  749. package/src/stories/runtime-story.tsx +23 -17
  750. package/src/stories/select.stories.tsx +2 -2
  751. package/src/stories/switchable-multi-select.stories.tsx +1 -1
  752. package/src/theme/__tests__/islands-theme.test.tsx +276 -0
  753. package/src/theme/namespace.tsx +4 -3
  754. package/src/theme/useTheme.ts +71 -41
  755. package/src/utils/__tests__/arrays.test.ts +35 -0
  756. package/src/utils/__tests__/batch-requests.test.ts +3 -3
  757. package/src/utils/__tests__/{createReducer.test.ts → createReducer.test.tsx} +127 -1
  758. package/src/utils/__tests__/download.test.tsx +183 -23
  759. package/src/utils/__tests__/numbers.test.ts +105 -1
  760. package/src/utils/__tests__/objects.test.ts +21 -0
  761. package/src/utils/arrays.ts +11 -2
  762. package/src/utils/blob.ts +1 -1
  763. package/src/utils/createReducer.ts +115 -79
  764. package/src/utils/download.ts +67 -6
  765. package/src/utils/maps.ts +0 -3
  766. package/src/utils/numbers.ts +79 -18
  767. package/src/utils/objects.ts +4 -9
  768. package/src/utils/time.ts +10 -0
  769. package/src/utils/tracer.ts +9 -5
  770. package/src/utils/zod-utils.ts +1 -3
  771. package/dist/_baseMerge-BiGRwuqv.js +0 -165
  772. package/dist/any-language-editor-D4q-IFcM.js +0 -76
  773. package/dist/assets/__vite-browser-external-BXYkiFsk.js +0 -1
  774. package/dist/assets/worker-HPY9fbhz.js +0 -114
  775. package/dist/feedback-button-CykZqHY-.js +0 -379
  776. package/dist/hasIn-o2Us0uVx.js +0 -132
  777. package/dist/html-to-image--r0l9wUy.js +0 -3251
  778. package/dist/isArrayLikeObject-BZl-15ir.js +0 -450
  779. package/dist/isEmpty-BSZ1LaUo.js +0 -35
  780. package/dist/isSymbol-kQcfYbNX.js +0 -8
  781. package/dist/label-DoysmLMW.js +0 -281
  782. package/dist/pick-CJeoxYOS.js +0 -51
  783. package/dist/select-DemoKT4G.js +0 -1344
  784. package/dist/toDate-gyi35XS2.js +0 -1185
  785. package/dist/toast-PkdZraM8.js +0 -1830
  786. package/dist/use-restore-focus-CKjfFjLM.js +0 -6369
  787. package/dist/useLifecycle-Dfq8UD-b.js +0 -169
  788. package/dist/useTheme-Bu5bBgrh.js +0 -904
  789. package/src/components/chat/reasoning-accordion.tsx +0 -61
  790. package/src/components/chat/tool-call/tool-error-card.tsx +0 -81
  791. package/src/components/chat/tool-call/tool-history-row.tsx +0 -174
  792. package/src/components/editor/ai/__tests__/staged-cell-submission.test.ts +0 -106
  793. package/src/components/editor/ai/add-cell-with-ai.tsx +0 -506
  794. package/src/components/editor/ai/staged-cell-submission.ts +0 -46
  795. package/src/components/editor/cell/__tests__/StagedAICell.test.tsx +0 -64
  796. package/src/components/editor/cell/code/__tests__/rtc-editor-config.test.ts +0 -50
  797. package/src/components/editor/chrome/wrapper/footer-items/rtc-status.tsx +0 -65
  798. package/src/components/editor/navigation/__tests__/state.test.ts +0 -81
  799. package/src/components/editor/navigation/state.ts +0 -65
  800. package/src/components/icons/loading-ellipsis.tsx +0 -46
  801. package/src/core/ai/tools/__tests__/run-cells-tool.test.ts +0 -656
  802. package/src/core/ai/tools/run-cells-tool.ts +0 -303
  803. package/src/core/attachments/state.ts +0 -18
  804. package/src/core/cells/__tests__/apply-transaction.test.ts +0 -991
  805. package/src/core/cells/__tests__/document-changes.test.ts +0 -1140
  806. package/src/core/cells/__tests__/document-roundtrip.test.ts +0 -392
  807. package/src/core/cells/document-changes.ts +0 -944
  808. package/src/core/codemirror/rtc/extension.ts +0 -453
  809. package/src/core/codemirror/rtc/loro/__tests__/sync.test.ts +0 -52
  810. package/src/core/codemirror/rtc/loro/awareness.ts +0 -531
  811. package/src/core/codemirror/rtc/loro/colors.ts +0 -38
  812. package/src/core/codemirror/rtc/loro/sync.ts +0 -168
  813. package/src/core/host/AGENTS.md +0 -11
  814. package/src/core/host/__tests__/events.test.ts +0 -46
  815. package/src/core/host/__tests__/fixtures.ts +0 -39
  816. package/src/core/host/__tests__/notebook-client.test.ts +0 -433
  817. package/src/core/host/__tests__/protocol.test.ts +0 -229
  818. package/src/core/host/__tests__/stream.test.ts +0 -209
  819. package/src/core/host/connection.ts +0 -81
  820. package/src/core/host/events.ts +0 -61
  821. package/src/core/host/notebook-client.ts +0 -290
  822. package/src/core/host/protocol.ts +0 -1948
  823. package/src/core/host/resources/resource.ts +0 -47
  824. package/src/core/host/stream.ts +0 -211
  825. package/src/core/rtc/state.ts +0 -34
  826. package/src/core/state/__tests__/jotai.test.ts +0 -25
  827. package/src/core/wasm/worker/message-buffer.ts +0 -33
  828. package/src/core/websocket/__tests__/createConnectionTransport.test.ts +0 -49
  829. package/src/core/websocket/__tests__/useNotebookClient.hook.test.tsx +0 -170
  830. package/src/core/websocket/state.ts +0 -7
  831. package/src/core/websocket/transports/__tests__/basic.test.ts +0 -275
  832. package/src/core/websocket/transports/__tests__/sse.test.ts +0 -335
  833. package/src/core/websocket/transports/__tests__/transport.test.ts +0 -308
  834. package/src/core/websocket/transports/__tests__/ws.test.ts +0 -125
  835. package/src/core/websocket/transports/basic.ts +0 -102
  836. package/src/core/websocket/transports/create.ts +0 -31
  837. package/src/core/websocket/transports/sse.ts +0 -308
  838. package/src/core/websocket/transports/transport.ts +0 -50
  839. package/src/core/websocket/transports/ws.ts +0 -98
  840. package/src/core/websocket/useNotebookClient.ts +0 -88
  841. package/src/utils/__tests__/id-tree.test.ts +0 -2145
  842. package/src/utils/id-tree.tsx +0 -1134
  843. /package/src/{core/attachments/toast.ts → components/editor/agent-toast.ts} +0 -0
  844. /package/src/core/{websocket → session}/connection-utils.ts +0 -0
@@ -0,0 +1,75 @@
1
+ import "./rolldown-runtime-Cb76FRpK.js";
2
+ import { g as e } from "./button-DZuNnIZO.js";
3
+ import { t } from "./react-sHtZdjeP.js";
4
+ import { t as n } from "./compiler-runtime-CldRdSsv.js";
5
+ import { t as r } from "./copy-icon-CtllOdmg.js";
6
+ import { t as i } from "./jsx-runtime-3BD1kT0s.js";
7
+ import { n as a } from "./error-banner-CHCdHVFB.js";
8
+ import { t as o } from "./esm-BDqqT86j.js";
9
+ import { n as s, t as c } from "./esm-BgKjMvWw.js";
10
+ //#region src/plugins/impl/code/any-language-editor.tsx
11
+ var l = n();
12
+ t();
13
+ var u = i(), d = {
14
+ python: "py",
15
+ python3: "py",
16
+ javascript: "js",
17
+ typescript: "ts",
18
+ shell: "sh",
19
+ bash: "sh",
20
+ unknown: "text",
21
+ undefined: "text"
22
+ }, f = [];
23
+ function p(e) {
24
+ return e ? e in c : !1;
25
+ }
26
+ var m = (t) => {
27
+ let n = (0, l.c)(30), i, m, h, g, _;
28
+ n[0] === t ? (i = n[1], m = n[2], h = n[3], g = n[4], _ = n[5]) : ({language: h, hideUnsupportedLanguageErrors: i, showCopyButton: g, extensions: _, ...m} = t, n[0] = t, n[1] = i, n[2] = m, n[3] = h, n[4] = g, n[5] = _);
29
+ let v = _ === void 0 ? f : _, y = d[h || ""] || h, b;
30
+ n[6] === y ? b = n[7] : (b = p(y), n[6] = y, n[7] = b);
31
+ let x = b;
32
+ x || e.warn(`Language ${y} not found in CodeMirror.`);
33
+ let S;
34
+ bb0: {
35
+ if (!p(y)) {
36
+ S = v;
37
+ break bb0;
38
+ }
39
+ let e;
40
+ n[8] === y ? e = n[9] : (e = s(y), n[8] = y, n[9] = e);
41
+ let t;
42
+ n[10] !== v || n[11] !== e ? (t = [e, ...v].filter(Boolean), n[10] = v, n[11] = e, n[12] = t) : t = n[12], S = t;
43
+ }
44
+ let C = S, w;
45
+ n[13] !== i || n[14] !== x || n[15] !== y ? (w = !x && !i && /* @__PURE__ */ (0, u.jsx)(a, {
46
+ className: "mb-1 rounded-sm",
47
+ error: `Language ${y} not supported. Supported languages are: ${Object.keys(c).join(", ")}`
48
+ }), n[13] = i, n[14] = x, n[15] = y, n[16] = w) : w = n[16];
49
+ let T;
50
+ n[17] !== x || n[18] !== m || n[19] !== g ? (T = g && x && /* @__PURE__ */ (0, u.jsx)(r, {
51
+ tooltip: !1,
52
+ buttonClassName: "absolute top-2 right-2 z-10 hover-action",
53
+ className: "h-4 w-4 text-muted-foreground",
54
+ value: m.value || "",
55
+ toastTitle: "Copied to clipboard"
56
+ }), n[17] = x, n[18] = m, n[19] = g, n[20] = T) : T = n[20];
57
+ let E;
58
+ n[21] === C ? E = n[22] : (E = [...C], n[21] = C, n[22] = E);
59
+ let D;
60
+ n[23] !== m || n[24] !== E ? (D = /* @__PURE__ */ (0, u.jsx)(o, {
61
+ ...m,
62
+ extensions: E
63
+ }), n[23] = m, n[24] = E, n[25] = D) : D = n[25];
64
+ let O;
65
+ return n[26] !== w || n[27] !== T || n[28] !== D ? (O = /* @__PURE__ */ (0, u.jsxs)("div", {
66
+ className: "relative w-full group hover-actions-parent",
67
+ children: [
68
+ w,
69
+ T,
70
+ D
71
+ ]
72
+ }), n[26] = w, n[27] = T, n[28] = D, n[29] = O) : O = n[29], O;
73
+ };
74
+ //#endregion
75
+ export { d as LANGUAGE_MAP, m as default };
@@ -5,7 +5,7 @@ import { n as o } from "./chunk-Y2CYZVJY-DKKS1VyV.js";
5
5
  import { H as s, J as c, K as l, U as u, a as d, b as f, f as p, v as m, w as h, x as g, y as _, z as v } from "./chunk-DU6HZSFF-BwiyaNpg.js";
6
6
  import { i as y, r as b, t as x } from "./chunk-PWAF6VOD-CQw5qATZ.js";
7
7
  import { n as S } from "./chunk-GMAD6QVW-BhaJx0X3.js";
8
- import { p as C } from "./mermaid-Bjm6C1qN.js";
8
+ import { p as C } from "./mermaid-A36unKXJ.js";
9
9
  import { n as w } from "./mermaid-parser.core-DxuSfYwJ.js";
10
10
  import { t as T } from "./chunk-JWPE2WC7-DJvv1t8U.js";
11
11
  import { t as E } from "./cytoscape.esm-jJhXJpLB.js";
@@ -1,46 +1,34 @@
1
1
  import { t as e } from "./invariant-DLmrl-hA.js";
2
- //#region src/utils/math.ts
3
- function t(e, t, n) {
4
- return Math.min(Math.max(e, t), n);
5
- }
6
- //#endregion
7
2
  //#region src/utils/arrays.ts
8
- function n(e, t) {
9
- let n = [...e];
10
- return n.splice(t, 1), n;
11
- }
12
- function r(e, n, r) {
13
- n = t(n, 0, e.length);
14
- let i = [...e];
15
- return i.splice(n, 0, r), i;
16
- }
17
- function i(e, t, n) {
3
+ function t(e, t, n) {
18
4
  let r = [...e], [i] = r.splice(t, 1);
19
5
  return r.splice(n, 0, i), r;
20
6
  }
21
- function a(e, n, r) {
22
- if (e.length === 0) return r;
23
- n = t(n, 0, e.length);
24
- let i = [...e];
25
- return i.splice(n, 0, ...r), i;
26
- }
27
- function o(e, t) {
7
+ function n(e, t) {
28
8
  if (e === t) return !0;
29
9
  if (e.length !== t.length) return !1;
30
10
  for (let n = 0, r = e.length; n < r; n++) if (e[n] !== t[n]) return !1;
31
11
  return !0;
32
12
  }
33
- var s = {
13
+ var r = {
34
14
  EMPTY: [],
15
+ intersection(e, t) {
16
+ let n = new Set(t);
17
+ return e.filter((e) => n.has(e));
18
+ },
19
+ difference(e, t) {
20
+ let n = new Set(t);
21
+ return e.filter((e) => !n.has(e));
22
+ },
35
23
  zip: (t, n) => (e(t.length === n.length, "Arrays must be the same length"), t.map((e, t) => [e, n[t]]))
36
24
  };
37
- function c(e) {
25
+ function i(e) {
38
26
  return [...new Set(e)];
39
27
  }
40
- function l(e, t) {
28
+ function a(e, t) {
41
29
  return e.map((e) => [t(e), e]).toSorted(([e], [t]) => e == null && t == null ? 0 : e == null ? 1 : t == null || e < t ? -1 : +(e > t)).map(([, e]) => e);
42
30
  }
43
- function u(e, t) {
31
+ function o(e, t) {
44
32
  let n = [], r = /* @__PURE__ */ new Set();
45
33
  for (let i of e) {
46
34
  let e = t(i);
@@ -49,4 +37,4 @@ function u(e, t) {
49
37
  return n;
50
38
  }
51
39
  //#endregion
52
- export { i as a, c, a as i, u as l, n, o, r, l as s, s as t, t as u };
40
+ export { i as a, a as i, t as n, o, n as r, r as t };
@@ -0,0 +1,507 @@
1
+ import { a as e } from "./rolldown-runtime-Cb76FRpK.js";
2
+ import { g as t, p as n, u as r } from "./button-DZuNnIZO.js";
3
+ import { t as i } from "./react-sHtZdjeP.js";
4
+ import { h as a } from "./tooltip-DMMiOn2f.js";
5
+ import { t as o } from "./jsx-runtime-3BD1kT0s.js";
6
+ import { fn as s, pn as c } from "./use-restore-focus-CosX7-gx.js";
7
+ import { t as l } from "./invariant-DLmrl-hA.js";
8
+ var u = a("x", [["path", {
9
+ d: "M18 6 6 18",
10
+ key: "1bl5f8"
11
+ }], ["path", {
12
+ d: "m6 6 12 12",
13
+ key: "d8bk6v"
14
+ }]]), d = /* @__PURE__ */ e(i(), 1), f = o(), p = Object.defineProperty, m = (e, t) => p(e, "name", {
15
+ value: t,
16
+ configurable: !0
17
+ });
18
+ // @__NO_SIDE_EFFECTS__
19
+ function h(e) {
20
+ let t = e + "CollectionProvider", [i, a] = c(t), [o, s] = i(t, {
21
+ collectionRef: { current: null },
22
+ itemMap: /* @__PURE__ */ new Map()
23
+ }), l = /* @__PURE__ */ m((e) => {
24
+ let { scope: t, children: n } = e, r = d.useRef(null), i = d.useRef(/* @__PURE__ */ new Map()).current;
25
+ return /* @__PURE__ */ (0, f.jsx)(o, {
26
+ scope: t,
27
+ itemMap: i,
28
+ collectionRef: r,
29
+ children: n
30
+ });
31
+ }, "CollectionProvider");
32
+ l.displayName = t;
33
+ let u = e + "CollectionSlot", p = r(u), h = d.forwardRef((e, t) => {
34
+ let { scope: r, children: i } = e, a = s(u, r), o = n(t, a.collectionRef);
35
+ return /* @__PURE__ */ (0, f.jsx)(p, {
36
+ ref: o,
37
+ children: i
38
+ });
39
+ });
40
+ h.displayName = u;
41
+ let g = e + "CollectionItemSlot", _ = "data-radix-collection-item", v = r(g), y = d.forwardRef((e, t) => {
42
+ let { scope: r, children: i, ...a } = e, o = d.useRef(null), c = n(t, o), l = s(g, r);
43
+ return d.useEffect(() => (l.itemMap.set(o, {
44
+ ref: o,
45
+ ...a
46
+ }), () => void l.itemMap.delete(o))), /* @__PURE__ */ (0, f.jsx)(v, {
47
+ [_]: "",
48
+ ref: c,
49
+ children: i
50
+ });
51
+ });
52
+ y.displayName = g;
53
+ function b(t) {
54
+ let n = s(e + "CollectionConsumer", t);
55
+ return d.useCallback(() => {
56
+ let e = n.collectionRef.current;
57
+ if (!e) return [];
58
+ let t = Array.from(e.querySelectorAll(`[${_}]`));
59
+ return Array.from(n.itemMap.values()).sort((e, n) => t.indexOf(e.ref.current) - t.indexOf(n.ref.current));
60
+ }, [n.collectionRef, n.itemMap]);
61
+ }
62
+ return m(b, "useCollection"), [
63
+ {
64
+ Provider: l,
65
+ Slot: h,
66
+ ItemSlot: y
67
+ },
68
+ b,
69
+ a
70
+ ];
71
+ }
72
+ m(h, "createCollection");
73
+ var g = /* @__PURE__ */ new WeakMap(), _ = class e extends Map {
74
+ static {
75
+ m(this, "OrderedDict");
76
+ }
77
+ #e;
78
+ constructor(e) {
79
+ super(e), this.#e = [...super.keys()], g.set(this, !0);
80
+ }
81
+ set(e, t) {
82
+ return g.get(this) && !this.has(e) && this.#e.push(e), super.set(e, t), this;
83
+ }
84
+ insert(e, t, n) {
85
+ let r = this.has(t), i = r ? this.size : this.size + 1, a = b(e), o = a >= 0 ? Math.min(a, i - 1) : Math.max(i + a, 0);
86
+ if (r ? this.#e.indexOf(t) === o : o === this.size) return this.set(t, n), this;
87
+ let s = this.#e.filter((e) => e !== t);
88
+ s.splice(o, 0, t);
89
+ let c = s.map((e) => [e, e === t ? n : this.get(e)]);
90
+ this.clear();
91
+ for (let [e, t] of c) this.set(e, t);
92
+ return this;
93
+ }
94
+ with(t, n, r) {
95
+ let i = new e(this);
96
+ return i.insert(t, n, r), i;
97
+ }
98
+ before(e) {
99
+ let t = this.#e.indexOf(e) - 1;
100
+ if (!(t < 0)) return this.entryAt(t);
101
+ }
102
+ setBefore(e, t, n) {
103
+ let r = this.#e.indexOf(e);
104
+ if (r === -1) return this;
105
+ let i = this.#e.indexOf(t), a = i !== -1 && i < r ? r - 1 : r;
106
+ return this.insert(a, t, n);
107
+ }
108
+ after(e) {
109
+ let t = this.#e.indexOf(e);
110
+ if (t = t === -1 || t === this.size - 1 ? -1 : t + 1, t !== -1) return this.entryAt(t);
111
+ }
112
+ setAfter(e, t, n) {
113
+ let r = this.#e.indexOf(e);
114
+ if (r === -1) return this;
115
+ let i = this.#e.indexOf(t), a = i !== -1 && i <= r ? r : r + 1;
116
+ return this.insert(a, t, n);
117
+ }
118
+ first() {
119
+ return this.entryAt(0);
120
+ }
121
+ last() {
122
+ return this.entryAt(-1);
123
+ }
124
+ clear() {
125
+ return this.#e = [], super.clear();
126
+ }
127
+ delete(e) {
128
+ let t = super.delete(e);
129
+ return t && this.#e.splice(this.#e.indexOf(e), 1), t;
130
+ }
131
+ deleteAt(e) {
132
+ let t = this.keyAt(e);
133
+ return t !== void 0 && this.delete(t);
134
+ }
135
+ at(e) {
136
+ let t = v(this.#e, e);
137
+ if (t !== void 0) return this.get(t);
138
+ }
139
+ entryAt(e) {
140
+ let t = v(this.#e, e);
141
+ if (t !== void 0) return [t, this.get(t)];
142
+ }
143
+ indexOf(e) {
144
+ return this.#e.indexOf(e);
145
+ }
146
+ keyAt(e) {
147
+ return v(this.#e, e);
148
+ }
149
+ from(e, t) {
150
+ let n = this.indexOf(e);
151
+ if (n === -1) return;
152
+ let r = n + t;
153
+ return r < 0 && (r = 0), r >= this.size && (r = this.size - 1), this.at(r);
154
+ }
155
+ keyFrom(e, t) {
156
+ let n = this.indexOf(e);
157
+ if (n === -1) return;
158
+ let r = n + t;
159
+ return r < 0 && (r = 0), r >= this.size && (r = this.size - 1), this.keyAt(r);
160
+ }
161
+ find(e, t) {
162
+ let n = 0;
163
+ for (let r of this) {
164
+ if (Reflect.apply(e, t, [
165
+ r,
166
+ n,
167
+ this
168
+ ])) return r;
169
+ n++;
170
+ }
171
+ }
172
+ findIndex(e, t) {
173
+ let n = 0;
174
+ for (let r of this) {
175
+ if (Reflect.apply(e, t, [
176
+ r,
177
+ n,
178
+ this
179
+ ])) return n;
180
+ n++;
181
+ }
182
+ return -1;
183
+ }
184
+ filter(t, n) {
185
+ let r = [], i = 0;
186
+ for (let e of this) Reflect.apply(t, n, [
187
+ e,
188
+ i,
189
+ this
190
+ ]) && r.push(e), i++;
191
+ return new e(r);
192
+ }
193
+ map(t, n) {
194
+ let r = [], i = 0;
195
+ for (let e of this) r.push([e[0], Reflect.apply(t, n, [
196
+ e,
197
+ i,
198
+ this
199
+ ])]), i++;
200
+ return new e(r);
201
+ }
202
+ reduce(...e) {
203
+ let [t, n] = e, r = e.length > 1;
204
+ if (!r && this.size === 0) throw TypeError("Reduce of empty OrderedDict with no initial value");
205
+ let i = 0, a = n;
206
+ for (let e of this) a = i === 0 && !r ? e : Reflect.apply(t, this, [
207
+ a,
208
+ e,
209
+ i,
210
+ this
211
+ ]), i++;
212
+ return a;
213
+ }
214
+ reduceRight(...e) {
215
+ let [t, n] = e, r = e.length > 1;
216
+ if (!r && this.size === 0) throw TypeError("Reduce of empty OrderedDict with no initial value");
217
+ let i = n;
218
+ for (let e = this.size - 1; e >= 0; e--) {
219
+ let n = this.entryAt(e);
220
+ i = e === this.size - 1 && !r ? n : Reflect.apply(t, this, [
221
+ i,
222
+ n,
223
+ e,
224
+ this
225
+ ]);
226
+ }
227
+ return i;
228
+ }
229
+ sort(e) {
230
+ if (typeof e != "function") throw TypeError("OrderedDict.sort requires a compare function");
231
+ let t = [...this.entries()].sort(e);
232
+ this.clear();
233
+ for (let [e, n] of t) this.set(e, n);
234
+ return this;
235
+ }
236
+ toSorted(t) {
237
+ if (typeof t != "function") throw TypeError("OrderedDict.toSorted requires a compare function");
238
+ let n = [...this.entries()].sort(t);
239
+ return new e(n);
240
+ }
241
+ toReversed() {
242
+ let t = new e();
243
+ for (let e = this.size - 1; e >= 0; e--) {
244
+ let n = this.keyAt(e), r = this.get(n);
245
+ t.set(n, r);
246
+ }
247
+ return t;
248
+ }
249
+ toSpliced(...t) {
250
+ let n = [...this.entries()];
251
+ return n.splice(...t), new e(n);
252
+ }
253
+ slice(t, n) {
254
+ let r = new e();
255
+ for (let e of this.#e.slice(t, n)) r.set(e, this.get(e));
256
+ return r;
257
+ }
258
+ every(e, t) {
259
+ let n = 0;
260
+ for (let r of this) {
261
+ if (!Reflect.apply(e, t, [
262
+ r,
263
+ n,
264
+ this
265
+ ])) return !1;
266
+ n++;
267
+ }
268
+ return !0;
269
+ }
270
+ some(e, t) {
271
+ let n = 0;
272
+ for (let r of this) {
273
+ if (Reflect.apply(e, t, [
274
+ r,
275
+ n,
276
+ this
277
+ ])) return !0;
278
+ n++;
279
+ }
280
+ return !1;
281
+ }
282
+ };
283
+ function v(e, t) {
284
+ if ("at" in Array.prototype) return Array.prototype.at.call(e, t);
285
+ let n = y(e, t);
286
+ return n === -1 ? void 0 : e[n];
287
+ }
288
+ m(v, "at");
289
+ function y(e, t) {
290
+ let n = e.length, r = b(t), i = r >= 0 ? r : n + r;
291
+ return i < 0 || i >= n ? -1 : i;
292
+ }
293
+ m(y, "toSafeIndex");
294
+ function b(e) {
295
+ return e !== e || e === 0 ? 0 : Math.trunc(e);
296
+ }
297
+ m(b, "toSafeInteger");
298
+ // @__NO_SIDE_EFFECTS__
299
+ function x(e) {
300
+ let t = e + "CollectionProvider", [i, a] = c(t), [o, l] = i(t);
301
+ o.displayName = e + "CollectionStableContextProvider";
302
+ let [u, p] = i(t);
303
+ u.displayName = e + "CollectionStatefulContextProvider";
304
+ let h = /* @__PURE__ */ m(({ state: e, ...t }) => e ? /* @__PURE__ */ (0, f.jsx)(v, {
305
+ ...t,
306
+ state: e
307
+ }) : /* @__PURE__ */ (0, f.jsx)(g, { ...t }), "CollectionProvider");
308
+ h.displayName = t;
309
+ let g = /* @__PURE__ */ m((e) => {
310
+ let t = k();
311
+ return /* @__PURE__ */ (0, f.jsx)(v, {
312
+ ...e,
313
+ state: t
314
+ });
315
+ }, "CollectionInit");
316
+ g.displayName = e + "CollectionInit";
317
+ let v = /* @__PURE__ */ m((e) => {
318
+ let { scope: t, children: r, state: i } = e, a = d.useRef(null), [s, c] = d.useState(null), l = n(a, c), [p, m] = i, h = d.useRef(new _()), g = d.useCallback(() => {
319
+ let e = h.current;
320
+ return w(e) || e.sort(T), e;
321
+ }, []);
322
+ return d.useEffect(() => {
323
+ if (!s) return;
324
+ let e = E(() => {
325
+ m((e) => {
326
+ let t = e.toSorted(T);
327
+ return t.some(([t], n) => e.keyAt(n) !== t) ? t : e;
328
+ });
329
+ });
330
+ return e.observe(s, {
331
+ childList: !0,
332
+ subtree: !0
333
+ }), () => {
334
+ e.disconnect();
335
+ };
336
+ }, [s, m]), /* @__PURE__ */ (0, f.jsx)(o, {
337
+ scope: t,
338
+ collectionElementRef: l,
339
+ collectionElementRefObject: a,
340
+ getCollection: g,
341
+ setCollection: m,
342
+ registryRef: h,
343
+ children: /* @__PURE__ */ (0, f.jsx)(u, {
344
+ scope: t,
345
+ collectionElement: s,
346
+ collection: p,
347
+ children: r
348
+ })
349
+ });
350
+ }, "CollectionProviderImpl");
351
+ v.displayName = e + "CollectionProviderImpl";
352
+ let y = e + "CollectionSlot", b = r(y), x = d.forwardRef((e, t) => {
353
+ let { scope: r, children: i } = e, a = l(y, r), o = n(t, a.collectionElementRef);
354
+ return /* @__PURE__ */ (0, f.jsx)(b, {
355
+ ref: o,
356
+ children: i
357
+ });
358
+ });
359
+ x.displayName = y;
360
+ let C = e + "CollectionItemSlot", D = r(C), O = d.forwardRef((e, t) => {
361
+ let { scope: r, children: i, ...a } = e, o = d.useRef(null), { setCollection: c, registryRef: u } = l(C, r), p = d.useRef(a);
362
+ S(p.current, a) || (p.current = a);
363
+ let m = p.current, h = d.useCallback((e) => {
364
+ let t = u.current;
365
+ e ? t.set(e, {
366
+ ...p.current,
367
+ element: e
368
+ }) : o.current && t.delete(o.current);
369
+ }, [u]), g = n(t, h, o);
370
+ s(() => {
371
+ let e = o.current, t = u.current;
372
+ e && t.has(e) && t.set(e, {
373
+ ...m,
374
+ element: e
375
+ });
376
+ }, [m, u]);
377
+ let v = d.useRef(null);
378
+ return d.useEffect(() => {
379
+ let e = o.current, t = v.current;
380
+ (t?.element ?? null) === e && (!e || t?.itemData === m) || (v.current = e ? {
381
+ element: e,
382
+ itemData: m
383
+ } : null, c((n) => {
384
+ let r = new _(n);
385
+ return t && t.element !== e && r.delete(t.element), e && r.set(e, {
386
+ ...m,
387
+ element: e
388
+ }), r.sort(T);
389
+ }));
390
+ }), d.useEffect(() => () => {
391
+ let e = v.current;
392
+ v.current = null, e && c((t) => {
393
+ if (!t.has(e.element)) return t;
394
+ let n = new _(t);
395
+ return n.delete(e.element), n;
396
+ });
397
+ }, [c]), /* @__PURE__ */ (0, f.jsx)(D, {
398
+ "data-radix-collection-item": "",
399
+ ref: g,
400
+ children: i
401
+ });
402
+ });
403
+ O.displayName = C;
404
+ function k() {
405
+ return d.useState(new _());
406
+ }
407
+ m(k, "useInitCollection");
408
+ function A(t) {
409
+ let { collection: n } = p(e + "CollectionConsumer", t);
410
+ return n;
411
+ }
412
+ m(A, "useCollection");
413
+ function j(t) {
414
+ let { getCollection: n } = l(e + "CollectionConsumer", t);
415
+ return n;
416
+ }
417
+ return m(j, "useGetCollection"), [{
418
+ Provider: h,
419
+ Slot: x,
420
+ ItemSlot: O
421
+ }, {
422
+ createCollectionScope: a,
423
+ useCollection: A,
424
+ useGetCollection: j,
425
+ useInitCollection: k
426
+ }];
427
+ }
428
+ m(x, "createCollection");
429
+ function S(e, t) {
430
+ if (e === t) return !0;
431
+ if (typeof e != "object" || typeof t != "object" || e == null || t == null) return !1;
432
+ let n = Object.keys(e), r = Object.keys(t);
433
+ if (n.length !== r.length) return !1;
434
+ for (let r of n) if (!Object.prototype.hasOwnProperty.call(t, r) || e[r] !== t[r]) return !1;
435
+ return !0;
436
+ }
437
+ m(S, "shallowEqual");
438
+ function C(e, t) {
439
+ return !!(t.compareDocumentPosition(e) & Node.DOCUMENT_POSITION_PRECEDING);
440
+ }
441
+ m(C, "isElementPreceding");
442
+ function w(e) {
443
+ let t;
444
+ for (let n of e.keys()) {
445
+ if (t) {
446
+ let e = t.compareDocumentPosition(n);
447
+ if (!(e & Node.DOCUMENT_POSITION_DISCONNECTED) && e & Node.DOCUMENT_POSITION_PRECEDING) return !1;
448
+ }
449
+ t = n;
450
+ }
451
+ return !0;
452
+ }
453
+ m(w, "isInDocumentOrder");
454
+ function T(e, t) {
455
+ return !e[1].element || !t[1].element ? 0 : C(e[1].element, t[1].element) ? -1 : 1;
456
+ }
457
+ m(T, "sortByDocumentPosition");
458
+ function E(e) {
459
+ return new MutationObserver((t) => {
460
+ for (let n of t) if (n.type === "childList") {
461
+ e();
462
+ return;
463
+ }
464
+ });
465
+ }
466
+ m(E, "getChildListObserver");
467
+ //#endregion
468
+ //#region src/utils/strings.ts
469
+ function D(e) {
470
+ return e ? e.charAt(0).toUpperCase() + e.slice(1) : "";
471
+ }
472
+ function O(e) {
473
+ if (!e) return "";
474
+ if (typeof e != "string") throw t.error(e), TypeError(`Expected string, got ${typeof e}`);
475
+ return /[A-Za-z]/.test(e) ? e.replaceAll(/([\da-z])([A-Z])/g, "$1 $2").replaceAll(/([A-Z]+)([A-Z][a-z])/g, "$1 $2").replaceAll(/[\s_-]+/g, " ").trim().split(" ").map(D).join(" ") : e;
476
+ }
477
+ var k = {
478
+ startCase: O,
479
+ htmlEscape: (e) => e && e.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll("\"", "&quot;").replaceAll("'", "&#039;").replaceAll("\n", " "),
480
+ withTrailingSlash(e) {
481
+ return e.endsWith("/") ? e : `${e}/`;
482
+ },
483
+ withoutTrailingSlash(e) {
484
+ return e.endsWith("/") ? e.slice(0, -1) : e;
485
+ },
486
+ withoutLeadingSlash(e) {
487
+ return e.startsWith("/") ? e.slice(1) : e;
488
+ },
489
+ asString: (e) => {
490
+ if (typeof e == "string") return e;
491
+ try {
492
+ return JSON.stringify(e);
493
+ } catch {
494
+ return String(e);
495
+ }
496
+ }
497
+ };
498
+ //#endregion
499
+ //#region src/utils/assertNever.ts
500
+ function A(e) {
501
+ l(!1, `Unexpected object: ${e}`);
502
+ }
503
+ function j(e) {
504
+ return t.warn(`Unexpected object: ${JSON.stringify(e)}`), e;
505
+ }
506
+ //#endregion
507
+ export { h as a, D as i, j as n, x as o, k as r, u as s, A as t };
@@ -0,0 +1 @@
1
+ import{t as e}from"./worker-CgoMtD-_.js";var t=e(((e,t)=>{t.exports={}}));export default t();