@marimo-team/islands 0.25.3-dev20 → 0.25.3-dev201

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 (688) hide show
  1. package/dist/{ConnectedDataExplorerComponent-CNMliVzw.js → ConnectedDataExplorerComponent-BsWiIPFk.js} +22 -20
  2. package/dist/{ErrorBoundary-DAPIRYqd.js → ErrorBoundary-JYAf40sB.js} +19 -19
  3. package/dist/{abnfDiagram-VCTEODGH-D-Ez91gV.js → abnfDiagram-VCTEODGH-I2x4Yu25.js} +2 -2
  4. package/dist/any-language-editor-BVFHDDQ3.js +75 -0
  5. package/dist/{architectureDiagram-5GKGNRK7-CTpcNtO8.js → architectureDiagram-5GKGNRK7-1bSQMKzK.js} +1 -1
  6. package/dist/{arrays-CN1djC4k.js → arrays-DoQ-AILx.js} +15 -27
  7. package/dist/assets/__vite-browser-external-BCJsx8QS.js +1 -0
  8. package/dist/assets/worker-DodjWT_Z.js +113 -0
  9. package/dist/{button-CvjkwdSk.js → button-BQRdqQi1.js} +199 -192
  10. package/dist/{capabilities-CQ5IjhzL.js → capabilities-C2QUNRXi.js} +2 -2
  11. package/dist/{chat-ui-DaHynk8g.js → chat-ui-DXDoSuS4.js} +370 -369
  12. package/dist/{check-EDwSwP89.js → check-C9Mp9eCK.js} +1 -1
  13. package/dist/{chunk-IMKFNOWR-DGxi-zeo.js → chunk-IMKFNOWR-fsCGAJ9G.js} +1 -1
  14. package/dist/{chunk-SHT3W25Y-CV9J3rAB.js → chunk-SHT3W25Y-D2STW4hj.js} +1 -1
  15. package/dist/{chunk-SVP7TREG-BL-9Fqgg.js → chunk-SVP7TREG-CiY7cQG-.js} +1 -1
  16. package/dist/{chunk-TICWLB2K-Cu_XMjDM.js → chunk-TICWLB2K-C_t5RBp9.js} +1 -1
  17. package/dist/{chunk-YOKDWASO-DPZk8vhS.js → chunk-YOKDWASO-DKplTrBY.js} +20 -20
  18. package/dist/{classDiagram-ZZMXUADV-BXXV13Hq.js → classDiagram-ZZMXUADV-B2JvZAP4.js} +2 -2
  19. package/dist/{classDiagram-v2-VYDZK3BY-B7FXJ1Cp.js → classDiagram-v2-VYDZK3BY-L8VsZG5A.js} +2 -2
  20. package/dist/code-visibility-BKyYMfr_.js +134 -0
  21. package/dist/{common-DsUPhkD6.js → common-BCY25vum.js} +6040 -5865
  22. package/dist/{copy-icon-Ft7t9bqz.js → copy-icon-De584pZ4.js} +3 -3
  23. package/dist/{cynefinDiagram-5FMLGOSQ-CH96rwba.js → cynefinDiagram-5FMLGOSQ-DdllC264.js} +1 -1
  24. package/dist/{dagre-GXQ25YYZ-BD3PmpFY.js → dagre-GXQ25YYZ-BaWHw4_f.js} +1 -1
  25. package/dist/{data-grid-overlay-editor-D7UuVsgB.js → data-grid-overlay-editor-gQmJxgU-.js} +5 -5
  26. package/dist/{data-grid-types-BH_r7g7l.js → data-grid-types-0PJ-9N5n.js} +1 -1
  27. package/dist/{diagram-S7CK7UJ4-BsSJJldB.js → diagram-S7CK7UJ4-pFt-tUDe.js} +1 -1
  28. package/dist/{diagram-UQ7AKVKN-muQtNZc4.js → diagram-UQ7AKVKN-DqGJiBp4.js} +1 -1
  29. package/dist/{diagram-VX7I27RA-CdhuZAqR.js → diagram-VX7I27RA-Dr-yzMjf.js} +1 -1
  30. package/dist/{diagram-Z3DM3KII-BD8mXjOj.js → diagram-Z3DM3KII-8xzJzv-w.js} +1 -1
  31. package/dist/{dialog-CEBFZNyc.js → dialog-DVRfQuhD.js} +25 -25
  32. package/dist/{dist-F8Ep36rk.js → dist-B1M0bGO3.js} +1 -1
  33. package/dist/{dist-D6d86eNJ.js → dist-BA13RJj5.js} +1 -1
  34. package/dist/{dist-Bvs24R_E.js → dist-BJtmSgcE.js} +48 -48
  35. package/dist/{dist-CN_BeG2I.js → dist-Ba2VIn1K.js} +53 -53
  36. package/dist/{dist-PXYI_yuP.js → dist-Bj4bmwUm.js} +12 -12
  37. package/dist/{dist-DoE4XJBC.js → dist-BmS-ZGjl.js} +8626 -8626
  38. package/dist/{dist-BorMD-uX.js → dist-Bzogh7CW.js} +87 -87
  39. package/dist/{dist-CN8zI-XC.js → dist-CThPVKaP.js} +1385 -1382
  40. package/dist/{dist-DiDibOYr.js → dist-CTi5FTiV.js} +87 -87
  41. package/dist/{dist-diIx5qJW.js → dist-Ck_C32ye.js} +2 -2
  42. package/dist/{dist-BLfKmR-l.js → dist-D1fnFp1J.js} +1 -1
  43. package/dist/{dist-OR1OnN-y.js → dist-D3x9__Fu.js} +46 -46
  44. package/dist/{dist-BMQf5zIS.js → dist-D7mrh5sO.js} +36 -36
  45. package/dist/{dist-CSJ0MDRw.js → dist-D9Q3xjiP.js} +1 -1
  46. package/dist/{dist-BuaRHxOc.js → dist-DP60Ubh8.js} +2 -2
  47. package/dist/{dist-CSbh1PNP.js → dist-DTv9KkpW.js} +12 -12
  48. package/dist/{dist-D-wwqlzJ.js → dist-DVVwOfrD.js} +109 -109
  49. package/dist/{dist-C8fAKSH1.js → dist-DYXM73-k.js} +36 -36
  50. package/dist/{dist-DBtSl3sf.js → dist-DjeybPOb.js} +1 -1
  51. package/dist/{dist-CrSP_H1M.js → dist-DtGn9N4h.js} +197 -197
  52. package/dist/{dist-CLdpGQVr.js → dist-KN80qWCP.js} +2 -2
  53. package/dist/{dist-DpBpA_n1.js → dist-Lm-D-Vr6.js} +3 -3
  54. package/dist/{dist-Cg7gzw-a.js → dist-O0qFpEJh.js} +56 -56
  55. package/dist/{dist-CkTTIdBe.js → dist-OUle2RT7.js} +207 -207
  56. package/dist/{dist-BK4Oj99o.js → dist-T5rh6JvL.js} +1 -1
  57. package/dist/{dropdown-menu-CP_qCYHC.js → dropdown-menu-NlnsmNA6.js} +1481 -1433
  58. package/dist/{ebnfDiagram-PWID7BFC-BIN1sweE.js → ebnfDiagram-PWID7BFC-Br04Wy-E.js} +2 -2
  59. package/dist/{erDiagram-RLTQ6QDP-Ctp5cfoN.js → erDiagram-RLTQ6QDP-D5-XVgvv.js} +1 -1
  60. package/dist/{error-banner-D-WCIiMt.js → error-banner-DxJ3s8YO.js} +86 -86
  61. package/dist/{error-entries-Bv6bZPF3.js → error-entries-C2Ux0Fjt.js} +8404 -9095
  62. package/dist/{esm-D2gTsXEV.js → esm-Bbw_Njjx.js} +575 -575
  63. package/dist/{esm-AMFssoNp.js → esm-mDQNEFe_.js} +354 -354
  64. package/dist/feedback-button-BKgw9MHY.js +374 -0
  65. package/dist/{flowDiagram-HODETNUW-3EfLrlFb.js → flowDiagram-HODETNUW-CVl2kREF.js} +2 -2
  66. package/dist/{formats-27CW_UP4.js → formats-BCYthwyc.js} +3 -3
  67. package/dist/{ganttDiagram-EL5Y4UJY-BQT16JSc.js → ganttDiagram-EL5Y4UJY-Dh_4cBJZ.js} +2 -2
  68. package/dist/{glide-data-editor-KvS90MGh.js → glide-data-editor-CzS51bb2.js} +370 -368
  69. package/dist/{glide-utils-DJyqh0EM.js → glide-utils-D98laidb.js} +16 -16
  70. package/dist/{globals-yruoELTW.js → globals-DQ4tv_a-.js} +3 -3
  71. package/dist/{highlighted-body-KPVGNVTW-zwjq21tf.js → highlighted-body-KPVGNVTW-3Ziwfz-V.js} +2 -2
  72. package/dist/{html-to-image-Bf8QMGi4.js → html-to-image-CkH7vdBZ.js} +477 -380
  73. package/dist/{infoDiagram-27XIBGKW-DipQoHxl.js → infoDiagram-27XIBGKW-BJ4vNcZE.js} +1 -1
  74. package/dist/{ishikawaDiagram-5VMMS53U-DgFMjSGz.js → ishikawaDiagram-5VMMS53U-B_Jy1Dsm.js} +1 -1
  75. package/dist/{kanban-definition-UXKFOSKX-w1ACVjgl.js → kanban-definition-UXKFOSKX-C6MkS9vw.js} +1 -1
  76. package/dist/{label-BDKF3Afc.js → label-Qvw1E97W.js} +3 -3
  77. package/dist/{linear-Cnaq3Tfb.js → linear-DWERh7eI.js} +121 -73
  78. package/dist/{loader-BQOfjTIJ.js → loader-DOVB0Syl.js} +12 -12
  79. package/dist/main.js +9706 -7709
  80. package/dist/{mermaid-CHo49Yv-.js → mermaid-Bh918qrq.js} +52 -52
  81. package/dist/mermaid-HWGCJPDP-Du3-HPQA.js +2 -0
  82. package/dist/{mindmap-definition-YA3MSWOX-CrT0KSfX.js → mindmap-definition-YA3MSWOX-BP3ZTuir.js} +1 -1
  83. package/dist/{number-overlay-editor-R2i0FdxV.js → number-overlay-editor-B3ZE3-6d.js} +3 -3
  84. package/dist/{objects-CzUgoMIF.js → objects-DCmMvZtn.js} +1 -3
  85. package/dist/{once-BtE-wKRL.js → once-NnpX_HnX.js} +1 -1
  86. package/dist/{pegDiagram-XKGWAZYB-BqvywNJA.js → pegDiagram-XKGWAZYB-nNGOQtnt.js} +2 -2
  87. package/dist/{pieDiagram-E7YTZNPT-BfxJ_XCc.js → pieDiagram-E7YTZNPT-CpRz5BZz.js} +1 -1
  88. package/dist/precisionRound-DhAzeRcm.js +49 -0
  89. package/dist/{process-output-BZg56CCb.js → process-output-OujAtFW4.js} +5 -5
  90. package/dist/{quadrantDiagram-AXDQQJYC-Ccw0xMjN.js → quadrantDiagram-AXDQQJYC-Blrm7V7_.js} +1 -1
  91. package/dist/{railroadDiagram-O6MQD6OU-8vFLVTPu.js → railroadDiagram-O6MQD6OU-BqOEN4I0.js} +2 -2
  92. package/dist/{react-vega-BED0DjiB.js → react-vega-C4T9Rb_w.js} +12284 -12270
  93. package/dist/{requirementDiagram-BXWQKSXE-a_MxGvxe.js → requirementDiagram-BXWQKSXE-CEfg6vu9.js} +1 -1
  94. package/dist/{reveal-component-C42-YBfQ.js → reveal-component-DXa9FXf6.js} +733 -710
  95. package/dist/{select-BButFi-d.js → select-2KOiReNY.js} +536 -457
  96. package/dist/{sequenceDiagram-WJ2MYXX4-CXFMnxGh.js → sequenceDiagram-WJ2MYXX4-IOmpQcOi.js} +1 -1
  97. package/dist/{spec-BwarBpUJ.js → spec-Dkp64vVQ.js} +41 -11
  98. package/dist/{stateDiagram-D77RDMKH-DQeA_CwI.js → stateDiagram-D77RDMKH-tgU-EY9_.js} +2 -2
  99. package/dist/{stateDiagram-v2-MP3YSRHH-BxxQucm1.js → stateDiagram-v2-MP3YSRHH-BofhG6q1.js} +2 -2
  100. package/dist/style.css +1 -1
  101. package/dist/{swimlanes-42K2YHIH-Do6L-cYg.js → swimlanes-42K2YHIH-DW4vWDBd.js} +1 -1
  102. package/dist/{swimlanesDiagram-VR7AAH4N-DUzPvSVU.js → swimlanesDiagram-VR7AAH4N-BJcrqUJr.js} +2 -2
  103. package/dist/{swiper-component-DKntyn8p.js → swiper-component-BVfnhbnt.js} +2 -2
  104. package/dist/{time-BieKwdYS.js → time-BaMbJs4z.js} +18 -18
  105. package/dist/{timeline-definition-24CTP7MA-D3c46WM5.js → timeline-definition-24CTP7MA-D_QU3NGs.js} +1 -1
  106. package/dist/{toDate-UtiwmnH2.js → toDate-BNDEXbfV.js} +44 -43
  107. package/dist/{toast-B9UMEi8u.js → toast-B5t9o6s_.js} +219 -201
  108. package/dist/{tooltip-BO1REbqs.js → tooltip-s4zZxwKe.js} +325 -301
  109. package/dist/{use-restore-focus-BEM7sFWl.js → use-restore-focus-BgDTd2tc.js} +1482 -1433
  110. package/dist/{useAsyncData-Deh5kszT.js → useAsyncData-ASDni9vH.js} +15 -14
  111. package/dist/{useDateFormatter-D8XruNGG.js → useDateFormatter-D3Tkfzej.js} +2 -2
  112. package/dist/{useDeepCompareMemoize-DXwzRINI.js → useDeepCompareMemoize-B1Ogyf53.js} +1 -1
  113. package/dist/{useIframeCapabilities-DBETvvPl.js → useIframeCapabilities-6a_yDNXp.js} +1 -1
  114. package/dist/{useLifecycle-j7D9uD1o.js → useLifecycle-Bfpa2m7k.js} +28 -25
  115. package/dist/{useTheme-CRnjkku0.js → useTheme-5TwyOh3B.js} +522 -314
  116. package/dist/{vega-component-BeF9dfyO.js → vega-component-BHS9UOtC.js} +158 -158
  117. package/dist/{vega-embed-container-BNHE18G9.js → vega-embed-container--LYZqguO.js} +2 -2
  118. package/dist/{vega-loader.browser-DNST6uVf.js → vega-loader.browser-B9Pz0EGP.js} +298 -507
  119. package/dist/{vennDiagram-4TSXK5OY-BSZD8JcZ.js → vennDiagram-4TSXK5OY-YFYsNIAh.js} +1 -1
  120. package/dist/{wardleyDiagram-VM6X3IG4-48cUWkfA.js → wardleyDiagram-VM6X3IG4-i_n8mAWC.js} +1 -1
  121. package/dist/{xychartDiagram-S5SC5T6Z-CswYgYeu.js → xychartDiagram-S5SC5T6Z-BYGN95wW.js} +2 -2
  122. package/package.json +16 -16
  123. package/src/__mocks__/document.tsx +63 -0
  124. package/src/__mocks__/notebook.ts +3 -4
  125. package/src/__mocks__/partial.ts +26 -0
  126. package/src/__mocks__/requests.ts +0 -3
  127. package/src/__tests__/main.test.tsx +24 -1
  128. package/src/__tests__/module-entry.test.ts +44 -0
  129. package/src/__tests__/mount.test.ts +1 -21
  130. package/src/__tests__/{host-imports.test.ts → replica-imports.test.ts} +12 -11
  131. package/src/components/ai/__tests__/ai-model-dropdown.test.tsx +63 -0
  132. package/src/components/ai/ai-model-dropdown.tsx +11 -6
  133. package/src/components/app-config/ai-config.tsx +7 -2
  134. package/src/components/app-config/app-config-form.tsx +5 -9
  135. package/src/components/app-config/user-config-form.tsx +35 -0
  136. package/src/components/chat/__tests__/message-queue.test.tsx +17 -0
  137. package/src/components/chat/__tests__/notebook-access-selector.test.tsx +64 -0
  138. package/src/components/chat/acp/__tests__/session-tabs.test.tsx +43 -0
  139. package/src/components/chat/acp/__tests__/state.test.ts +2 -2
  140. package/src/components/chat/acp/blocks.tsx +3 -2
  141. package/src/components/chat/acp/session-tabs.tsx +8 -3
  142. package/src/components/chat/chat-components.tsx +2 -0
  143. package/src/components/chat/chat-panel.tsx +20 -101
  144. package/src/components/chat/chat-utils.ts +4 -8
  145. package/src/components/chat/notebook-access-selector.stories.tsx +22 -0
  146. package/src/components/chat/notebook-access-selector.tsx +100 -0
  147. package/src/components/data-table/TableBottomBar.tsx +4 -1
  148. package/src/components/data-table/TableTopBar.tsx +2 -0
  149. package/src/components/data-table/__tests__/chart-spec-model.test.ts +195 -195
  150. package/src/components/data-table/__tests__/column-explorer.test.tsx +27 -1
  151. package/src/components/data-table/__tests__/columns.test.tsx +105 -0
  152. package/src/components/data-table/__tests__/context-menu-interaction.test.tsx +130 -0
  153. package/src/components/data-table/__tests__/data-table.test.tsx +1 -0
  154. package/src/components/data-table/__tests__/date-popover.test.tsx +72 -0
  155. package/src/components/data-table/__tests__/export-actions.test.tsx +105 -0
  156. package/src/components/data-table/__tests__/keyboard-selection.test.tsx +188 -0
  157. package/src/components/data-table/__tests__/pagination.test.tsx +28 -1
  158. package/src/components/data-table/__tests__/search-highlight.test.tsx +109 -0
  159. package/src/components/data-table/__tests__/url-detector.test.tsx +74 -0
  160. package/src/components/data-table/cell-selection/feature.ts +2 -2
  161. package/src/components/data-table/cell-selection/types.ts +2 -2
  162. package/src/components/data-table/charts/__tests__/chart-panel.test.tsx +74 -1
  163. package/src/components/data-table/charts/__tests__/spec-snapshot.test.ts +20 -20
  164. package/src/components/data-table/charts/__tests__/spec.test.ts +78 -52
  165. package/src/components/data-table/charts/__tests__/storage.test.ts +4 -1
  166. package/src/components/data-table/charts/chart-spec/spec.ts +68 -43
  167. package/src/components/data-table/charts/charts.tsx +40 -30
  168. package/src/components/data-table/charts/storage.ts +16 -5
  169. package/src/components/data-table/column-explorer-panel/column-explorer.tsx +1 -1
  170. package/src/components/data-table/column-summary/chart-spec-model.tsx +23 -16
  171. package/src/components/data-table/column-summary/column-summary.tsx +2 -4
  172. package/src/components/data-table/column-visibility-dropdown.tsx +8 -13
  173. package/src/components/data-table/columns.tsx +45 -46
  174. package/src/components/data-table/context-menu.tsx +36 -20
  175. package/src/components/data-table/data-table.tsx +17 -1
  176. package/src/components/data-table/date-popover.tsx +6 -4
  177. package/src/components/data-table/export-actions.tsx +76 -48
  178. package/src/components/data-table/pagination.tsx +44 -33
  179. package/src/components/data-table/range-focus/atoms.ts +4 -6
  180. package/src/components/data-table/range-focus/use-cell-range-selection.ts +65 -38
  181. package/src/components/data-table/range-focus/use-scroll-into-view.ts +21 -2
  182. package/src/components/data-table/renderers.tsx +16 -7
  183. package/src/components/data-table/row-viewer-panel/__tests__/row-viewer.test.tsx +24 -1
  184. package/src/components/data-table/row-viewer-panel/row-viewer.tsx +4 -4
  185. package/src/components/data-table/search-highlight.tsx +79 -0
  186. package/src/components/data-table/types.ts +1 -0
  187. package/src/components/data-table/url-detector.tsx +49 -9
  188. package/src/components/datasources/__tests__/column-actions.test.tsx +97 -0
  189. package/src/components/datasources/__tests__/column-preview.test.tsx +96 -5
  190. package/src/components/datasources/__tests__/datasources-interactions.test.tsx +181 -0
  191. package/src/components/datasources/__tests__/table-list.test.tsx +118 -0
  192. package/src/components/datasources/__tests__/utils.test.ts +57 -6
  193. package/src/components/datasources/column-preview.tsx +17 -12
  194. package/src/components/datasources/datasources.tsx +56 -43
  195. package/src/components/datasources/utils.ts +32 -23
  196. package/src/components/debugger/debugger-code.tsx +5 -0
  197. package/src/components/dependency-graph/custom-node.tsx +1 -1
  198. package/src/components/dependency-graph/dependency-graph-tree.tsx +8 -8
  199. package/src/components/dependency-graph/elements.ts +24 -21
  200. package/src/components/dependency-graph/minimap-content.tsx +13 -19
  201. package/src/components/dependency-graph/panels.tsx +4 -2
  202. package/src/components/dependency-graph/utils/__tests__/layout.test.ts +18 -11
  203. package/src/components/editor/SortableCell.tsx +1 -3
  204. package/src/components/editor/__tests__/Output.test.tsx +50 -32
  205. package/src/{core/attachments/__tests__/toast.test.tsx → components/editor/__tests__/agent-toast.test.tsx} +1 -1
  206. package/src/components/editor/__tests__/data-attributes.test.tsx +28 -14
  207. package/src/components/editor/__tests__/dynamic-favicon.test.tsx +111 -18
  208. package/src/components/editor/__tests__/output-persistence.test.tsx +6 -2
  209. package/src/components/editor/__tests__/package-alert.test.tsx +22 -1
  210. package/src/components/editor/actions/__tests__/name-cell-input.test.tsx +69 -0
  211. package/src/components/editor/actions/__tests__/pair-with-agent-modal.test.tsx +34 -8
  212. package/src/components/editor/actions/__tests__/pair-with-agent.test.tsx +2 -6
  213. package/src/components/editor/actions/name-cell-input.tsx +4 -3
  214. package/src/components/editor/actions/pair-with-agent-commands.ts +2 -2
  215. package/src/components/editor/actions/pair-with-agent-modal.tsx +19 -16
  216. package/src/components/editor/actions/useCellActionButton.tsx +26 -31
  217. package/src/components/editor/actions/useConfigActions.tsx +3 -4
  218. package/src/components/editor/actions/useNotebookActions.tsx +19 -23
  219. package/src/components/editor/actions/useRestartKernel.tsx +1 -1
  220. package/src/components/editor/actions/useSetCodeVisibility.ts +11 -12
  221. package/src/components/editor/actions/useSetOutputsExpanded.ts +14 -19
  222. package/src/components/editor/ai/add-cell-with-ai.tsx +3 -3
  223. package/src/components/editor/ai/ai-completion-editor.tsx +1 -0
  224. package/src/components/editor/alerts/__tests__/connection-notice.test.tsx +1 -1
  225. package/src/components/editor/alerts/connection-notice.tsx +1 -1
  226. package/src/components/editor/alerts/startup-logs-alert.tsx +1 -0
  227. package/src/components/editor/alerts/stdin-blocking-alert.tsx +1 -1
  228. package/src/components/editor/app-container.tsx +1 -1
  229. package/src/components/editor/boundary/__tests__/ErrorBoundary.test.tsx +1 -1
  230. package/src/components/editor/cell/CreateCellButton.tsx +15 -21
  231. package/src/components/editor/cell/DeleteButton.tsx +3 -2
  232. package/src/components/editor/cell/RunButton.tsx +2 -2
  233. package/src/components/editor/cell/StagedAICell.tsx +10 -2
  234. package/src/components/editor/cell/StopButton.tsx +2 -2
  235. package/src/components/editor/cell/__tests__/StagedAICell.test.tsx +3 -1
  236. package/src/components/editor/cell/__tests__/useShouldShowInterrupt.test.ts +39 -0
  237. package/src/components/editor/cell/cell-actions.tsx +12 -1
  238. package/src/components/editor/cell/code/__tests__/language-toggle.test.tsx +54 -0
  239. package/src/components/editor/cell/code/cell-editor.tsx +36 -43
  240. package/src/components/editor/cell/code/language-toggle.tsx +8 -7
  241. package/src/components/editor/cell/collapse.tsx +11 -4
  242. package/src/components/editor/cell/useAddCell.ts +4 -8
  243. package/src/components/editor/cell/useDeleteCell.tsx +10 -36
  244. package/src/components/editor/cell/useRunCells.ts +2 -5
  245. package/src/components/editor/cell/useShouldShowInterrupt.ts +2 -12
  246. package/src/components/editor/cell/useSplitCell.tsx +10 -6
  247. package/src/components/editor/chrome/components/__tests__/feedback-button.test.tsx +1 -1
  248. package/src/components/editor/chrome/components/feedback-button.tsx +2 -8
  249. package/src/components/editor/chrome/panels/__tests__/packages-panel.test.tsx +31 -2
  250. package/src/components/editor/chrome/panels/__tests__/runtime-details.test.tsx +1 -1
  251. package/src/components/editor/chrome/panels/__tests__/sandbox-recovery.test.tsx +1 -1
  252. package/src/components/editor/chrome/panels/cache-panel.tsx +1 -0
  253. package/src/components/editor/chrome/panels/dependency-graph-panel.tsx +1 -1
  254. package/src/components/editor/chrome/panels/logs-panel.tsx +2 -1
  255. package/src/components/editor/chrome/panels/outline/__tests__/outline-keyboard.test.tsx +84 -0
  256. package/src/components/editor/chrome/panels/outline/floating-outline.tsx +39 -14
  257. package/src/components/editor/chrome/panels/outline/useActiveOutline.tsx +3 -2
  258. package/src/components/editor/chrome/panels/packages-panel.tsx +4 -7
  259. package/src/components/editor/chrome/panels/secrets-panel.tsx +1 -0
  260. package/src/components/editor/chrome/panels/session-panel.tsx +1 -1
  261. package/src/components/editor/chrome/panels/snippets-panel.tsx +10 -12
  262. package/src/components/editor/chrome/panels/variable-panel.tsx +1 -5
  263. package/src/components/editor/chrome/wrapper/__tests__/attachment-status.test.tsx +9 -18
  264. package/src/components/editor/chrome/wrapper/__tests__/document-sync-status.test.tsx +92 -0
  265. package/src/components/editor/chrome/wrapper/__tests__/pending-ai-cells.test.tsx +61 -2
  266. package/src/components/editor/chrome/wrapper/footer-items/attachment-status.tsx +4 -4
  267. package/src/components/editor/chrome/wrapper/footer-items/backend-status.tsx +1 -1
  268. package/src/components/editor/chrome/wrapper/footer-items/document-sync-status.tsx +54 -0
  269. package/src/components/editor/chrome/wrapper/footer-items/lsp-status.tsx +1 -1
  270. package/src/components/editor/chrome/wrapper/footer-items/machine-stats.tsx +1 -1
  271. package/src/components/editor/chrome/wrapper/footer-items/runtime-settings.tsx +1 -7
  272. package/src/components/editor/chrome/wrapper/footer.tsx +2 -0
  273. package/src/components/editor/chrome/wrapper/minimap-state.ts +1 -1
  274. package/src/components/editor/chrome/wrapper/pending-ai-cells.tsx +12 -2
  275. package/src/components/editor/chrome/wrapper/storage.ts +1 -1
  276. package/src/components/editor/columns/__tests__/cell-column.test.tsx +1 -1
  277. package/src/components/editor/columns/cell-column.tsx +1 -1
  278. package/src/components/editor/columns/sortable-column.tsx +2 -2
  279. package/src/components/editor/connections/components.tsx +5 -10
  280. package/src/components/editor/controls/Controls.tsx +4 -4
  281. package/src/components/editor/controls/__tests__/command-palette.test.tsx +53 -0
  282. package/src/components/editor/controls/__tests__/keyboard-shortcuts.test.tsx +61 -0
  283. package/src/components/editor/controls/__tests__/notebook-menu-dropdown.test.tsx +10 -4
  284. package/src/components/editor/controls/command-palette.tsx +22 -10
  285. package/src/components/editor/controls/keyboard-shortcuts.tsx +14 -5
  286. package/src/components/editor/documentation.css +34 -11
  287. package/src/components/editor/dynamic-favicon.tsx +21 -40
  288. package/src/components/editor/errors/__tests__/send-error-report-button.test.tsx +17 -29
  289. package/src/components/editor/errors/auto-fix.tsx +4 -8
  290. package/src/components/editor/errors/send-error-report-button.tsx +3 -6
  291. package/src/components/editor/file-tree/__tests__/file-explorer-interactions.test.tsx +6 -0
  292. package/src/components/editor/file-tree/__tests__/file-explorer-navigation.test.tsx +47 -0
  293. package/src/components/editor/file-tree/__tests__/use-file-search.test.tsx +91 -0
  294. package/src/components/editor/file-tree/file-explorer.tsx +48 -15
  295. package/src/components/editor/file-tree/file-name-input.tsx +1 -0
  296. package/src/components/editor/file-tree/file-viewer.tsx +4 -2
  297. package/src/components/editor/file-tree/use-file-search.ts +35 -21
  298. package/src/components/editor/header/__tests__/status.test.tsx +5 -3
  299. package/src/components/editor/header/app-header.tsx +1 -1
  300. package/src/components/editor/header/status.tsx +40 -20
  301. package/src/components/editor/links/__tests__/cell-link.test.tsx +148 -0
  302. package/src/components/editor/links/cell-link-list.tsx +1 -1
  303. package/src/components/editor/links/cell-link.tsx +17 -7
  304. package/src/components/editor/navigation/__tests__/clipboard.test.ts +60 -38
  305. package/src/components/editor/navigation/__tests__/navigation.test.ts +108 -85
  306. package/src/components/editor/navigation/__tests__/selection.test.ts +43 -21
  307. package/src/components/editor/navigation/clipboard.ts +17 -14
  308. package/src/components/editor/navigation/focus-utils.ts +23 -4
  309. package/src/components/editor/navigation/multi-cell-action-toolbar.tsx +17 -33
  310. package/src/components/editor/navigation/navigation.ts +71 -70
  311. package/src/components/editor/navigation/selection.ts +30 -29
  312. package/src/components/editor/notebook-banner.tsx +1 -0
  313. package/src/components/editor/notebook-cell.tsx +29 -31
  314. package/src/components/editor/output/MarimoErrorOutput.tsx +2 -1
  315. package/src/components/editor/output/MarimoTracebackOutput.tsx +19 -17
  316. package/src/components/editor/output/Outputs.css +8 -0
  317. package/src/components/editor/output/__tests__/traceback.test.tsx +27 -1
  318. package/src/components/editor/output/ansi-reduce.ts +33 -20
  319. package/src/components/editor/output/console/ConsoleOutput.tsx +19 -25
  320. package/src/components/editor/output/console/__tests__/ConsoleOutput.test.tsx +125 -69
  321. package/src/components/editor/package-alert.tsx +14 -7
  322. package/src/components/editor/renderers/cell-array.tsx +22 -33
  323. package/src/components/editor/renderers/grid-layout/grid-layout.tsx +12 -6
  324. package/src/components/editor/renderers/slides-layout/__tests__/plugin.test.ts +0 -1
  325. package/src/components/editor/renderers/slides-layout/slides-layout.tsx +1 -1
  326. package/src/components/editor/renderers/vertical-layout/__tests__/useFocusFirstEditor.test.ts +4 -4
  327. package/src/components/editor/renderers/vertical-layout/sidebar/toggle.tsx +7 -1
  328. package/src/components/editor/renderers/vertical-layout/useFocusFirstEditor.ts +1 -1
  329. package/src/components/editor/renderers/vertical-layout/vertical-layout.tsx +1 -1
  330. package/src/components/editor/stdin-blocking-alert.tsx +1 -1
  331. package/src/components/home/components.tsx +17 -31
  332. package/src/components/icons/__tests__/large-spinner.test.tsx +39 -0
  333. package/src/components/icons/large-spinner.tsx +3 -14
  334. package/src/components/icons/spinner.tsx +1 -1
  335. package/src/components/markdown/markdown-renderer.tsx +4 -8
  336. package/src/components/mcp/mcp-status-indicator.tsx +1 -1
  337. package/src/components/pages/__tests__/home-page.test.tsx +116 -0
  338. package/src/components/pages/edit-page.tsx +19 -17
  339. package/src/components/pages/home-page.tsx +164 -91
  340. package/src/components/scratchpad/scratchpad.test.tsx +97 -0
  341. package/src/components/scratchpad/scratchpad.tsx +20 -11
  342. package/src/components/slides/__tests__/minimap-actions.test.tsx +22 -29
  343. package/src/components/slides/__tests__/minimap.test.ts +38 -19
  344. package/src/components/slides/__tests__/slide-scroll-hint.test.tsx +37 -0
  345. package/src/components/slides/minimap.tsx +17 -12
  346. package/src/components/slides/reveal-component.tsx +58 -26
  347. package/src/components/slides/reveal-slides.css +5 -4
  348. package/src/components/slides/slide-cell-view.tsx +4 -5
  349. package/src/components/slides/slide-form.tsx +1 -0
  350. package/src/components/slides/slide-scroll-hint.tsx +3 -1
  351. package/src/components/sort/SortableCellsProvider.tsx +8 -25
  352. package/src/components/tracing/tracing-keyboard.test.tsx +85 -0
  353. package/src/components/tracing/tracing.tsx +46 -42
  354. package/src/components/ui/__tests__/draggable-popover.test.tsx +24 -0
  355. package/src/components/ui/__tests__/range-slider.test.tsx +165 -0
  356. package/src/components/ui/alert-dialog.tsx +1 -1
  357. package/src/components/ui/draggable-popover.tsx +24 -2
  358. package/src/components/ui/range-slider.tsx +22 -9
  359. package/src/core/MarimoApp.tsx +1 -1
  360. package/src/core/ai/__tests__/staged-cells.test.ts +27 -26
  361. package/src/core/ai/context/providers/__tests__/cell-output.test.ts +8 -12
  362. package/src/core/ai/context/providers/cell-output.ts +2 -2
  363. package/src/core/ai/context/providers/datasource.ts +6 -2
  364. package/src/core/ai/staged-cells.ts +15 -18
  365. package/src/core/ai/tools/__tests__/edit-notebook-tool.test.ts +40 -88
  366. package/src/core/ai/tools/__tests__/registry.test.ts +17 -0
  367. package/src/core/ai/tools/base.ts +18 -15
  368. package/src/core/ai/tools/edit-notebook-tool.ts +86 -80
  369. package/src/core/ai/tools/registry.ts +13 -10
  370. package/src/core/ai/tools/sample-tool.ts +6 -7
  371. package/src/core/cells/__tests__/__snapshots__/cells.test.ts.snap +4 -37
  372. package/src/core/cells/__tests__/actions.test.ts +624 -35
  373. package/src/core/cells/__tests__/add-missing-import.test.ts +7 -8
  374. package/src/core/cells/__tests__/arrange.test.ts +432 -0
  375. package/src/core/cells/__tests__/cell.test.ts +39 -0
  376. package/src/core/cells/__tests__/cells.test.ts +218 -2491
  377. package/src/core/cells/__tests__/collapseConsoleOutputs.test.ts +54 -0
  378. package/src/core/cells/__tests__/document.test.ts +341 -0
  379. package/src/core/cells/__tests__/editor.test.ts +57 -0
  380. package/src/core/cells/__tests__/flush-document.test.ts +40 -0
  381. package/src/core/cells/__tests__/harness.ts +106 -0
  382. package/src/core/cells/__tests__/layout.test.ts +177 -0
  383. package/src/core/cells/__tests__/notebook-outline.test.ts +120 -0
  384. package/src/core/cells/__tests__/outputs.test.tsx +71 -53
  385. package/src/core/cells/__tests__/session.test.ts +445 -211
  386. package/src/core/cells/__tests__/utils.test.ts +9 -108
  387. package/src/core/cells/__tests__/with-document-save.test.ts +67 -0
  388. package/src/core/cells/actions.ts +636 -6
  389. package/src/core/cells/add-missing-import.ts +47 -43
  390. package/src/core/cells/arrange.ts +529 -0
  391. package/src/core/cells/cell.ts +14 -3
  392. package/src/core/cells/cells.ts +120 -1337
  393. package/src/core/cells/columns.ts +38 -0
  394. package/src/core/cells/document.ts +289 -0
  395. package/src/core/cells/edit.ts +30 -0
  396. package/src/core/cells/editor.ts +82 -0
  397. package/src/core/cells/layout.ts +221 -0
  398. package/src/core/cells/outputs.ts +12 -28
  399. package/src/core/cells/pending-delete-service.ts +3 -7
  400. package/src/core/cells/session.ts +76 -53
  401. package/src/core/cells/types.ts +22 -6
  402. package/src/core/cells/utils.ts +10 -8
  403. package/src/core/codemirror/__tests__/setup.test.ts +29 -29
  404. package/src/core/codemirror/ai/__tests__/resources.test.ts +117 -0
  405. package/src/core/codemirror/ai/resources.ts +1 -1
  406. package/src/core/codemirror/cells/__tests__/extensions.test.ts +42 -1
  407. package/src/core/codemirror/cells/extensions.ts +27 -9
  408. package/src/core/codemirror/cells/state.ts +1 -1
  409. package/src/core/codemirror/copilot/__tests__/getCodes.test.ts +6 -7
  410. package/src/core/codemirror/copilot/getCodes.ts +2 -2
  411. package/src/core/codemirror/format.ts +6 -5
  412. package/src/core/codemirror/keymaps/vim.ts +4 -8
  413. package/src/core/codemirror/language/__tests__/sql.test.ts +22 -20
  414. package/src/core/codemirror/language/__tests__/utils.test.ts +187 -15
  415. package/src/core/codemirror/language/cell-code.ts +114 -0
  416. package/src/core/codemirror/language/extension.ts +52 -35
  417. package/src/core/codemirror/language/languages/markdown.ts +8 -6
  418. package/src/core/codemirror/language/languages/python.ts +16 -10
  419. package/src/core/codemirror/language/languages/sql/sql.ts +16 -24
  420. package/src/core/codemirror/language/panel/panel.tsx +1 -0
  421. package/src/core/codemirror/language/types.ts +7 -7
  422. package/src/core/codemirror/language/utils.ts +9 -39
  423. package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +1 -2
  424. package/src/core/codemirror/lsp/notebook-lsp.ts +6 -5
  425. package/src/core/codemirror/lsp/utils.ts +1 -1
  426. package/src/core/codemirror/readonly/__tests__/extension.test.ts +1 -1
  427. package/src/core/codemirror/readonly/extension.ts +2 -2
  428. package/src/core/codemirror/rtc/extension.ts +24 -13
  429. package/src/core/codemirror/rtc/loro/awareness.ts +34 -19
  430. package/src/core/codemirror/rtc/loro/sync.ts +1 -0
  431. package/src/core/codemirror/utils.ts +1 -0
  432. package/src/core/config/__tests__/app-config.test.ts +64 -0
  433. package/src/core/config/__tests__/config-schema.test.ts +13 -6
  434. package/src/core/config/config-schema.ts +13 -3
  435. package/src/core/config/config.ts +26 -12
  436. package/src/core/datasets/__tests__/data-source-discovery.test.ts +5 -5
  437. package/src/core/datasets/data-source-discovery.ts +4 -6
  438. package/src/core/documentation/doc-lookup.ts +1 -1
  439. package/src/core/edit-app.tsx +21 -28
  440. package/src/core/errors/error-entries.ts +4 -1
  441. package/src/core/export/hooks.ts +1 -1
  442. package/src/core/export/layout.ts +2 -2
  443. package/src/core/hotkeys/actions.ts +2 -4
  444. package/src/core/islands/__tests__/bootstrap.test.ts +69 -43
  445. package/src/core/islands/__tests__/bridge.test.ts +72 -25
  446. package/src/core/islands/bootstrap.ts +46 -54
  447. package/src/core/islands/bridge.ts +74 -23
  448. package/src/core/islands/components/__tests__/IslandControls.test.tsx +7 -5
  449. package/src/core/islands/components/web-components.tsx +1 -1
  450. package/src/core/islands/worker/__tests__/controller.test.ts +62 -4
  451. package/src/core/islands/worker/controller.ts +4 -10
  452. package/src/core/islands/worker/worker.tsx +33 -33
  453. package/src/core/kernel/__tests__/RuntimeState.test.ts +1 -1
  454. package/src/core/kernel/__tests__/handlers.test.ts +7 -153
  455. package/src/core/kernel/handlers.ts +19 -72
  456. package/src/core/meta/__tests__/code-visibility.test.tsx +78 -70
  457. package/src/core/meta/code-visibility.ts +18 -9
  458. package/src/core/network/__tests__/connection.test.ts +1 -1
  459. package/src/core/network/__tests__/requests-lazy.test.ts +1 -3
  460. package/src/core/network/connection-notice.ts +1 -1
  461. package/src/core/network/connection.ts +1 -1
  462. package/src/core/network/requests-lazy.ts +1 -4
  463. package/src/core/network/requests-network.ts +0 -25
  464. package/src/core/network/requests-static.ts +0 -3
  465. package/src/core/network/requests-toasting.tsx +0 -3
  466. package/src/core/network/types.ts +0 -12
  467. package/src/core/network/useConnectionNotice.ts +8 -2
  468. package/src/core/notebook/__tests__/operations.test.ts +51 -0
  469. package/src/core/notebook/attachments.ts +38 -0
  470. package/src/core/notebook/document/__tests__/codemirror.test.ts +586 -0
  471. package/src/core/notebook/document/__tests__/draft.test.ts +363 -0
  472. package/src/core/notebook/document/__tests__/fixtures.ts +92 -0
  473. package/src/core/notebook/document/__tests__/hold.test.ts +88 -0
  474. package/src/core/notebook/document/__tests__/hooks.test.tsx +391 -0
  475. package/src/core/notebook/document/__tests__/lifecycle-scenarios.test.ts +61 -0
  476. package/src/core/notebook/document/__tests__/model.test.ts +247 -0
  477. package/src/core/notebook/document/__tests__/protocol-fixtures.ts +38 -0
  478. package/src/core/notebook/document/__tests__/recovery-scenarios.test.ts +230 -0
  479. package/src/core/notebook/document/__tests__/scenario-fixture.ts +43 -0
  480. package/src/core/notebook/document/__tests__/scenarios.test.ts +205 -0
  481. package/src/core/notebook/document/__tests__/state.test.ts +459 -0
  482. package/src/core/notebook/document/__tests__/submission.test.ts +203 -0
  483. package/src/core/notebook/document/__tests__/test-host.test.ts +92 -0
  484. package/src/core/notebook/document/__tests__/test-host.ts +247 -0
  485. package/src/core/notebook/document/__tests__/test-notebook.ts +149 -0
  486. package/src/core/notebook/document/__tests__/user.ts +61 -0
  487. package/src/core/notebook/document/codemirror.ts +216 -0
  488. package/src/core/notebook/document/draft.ts +502 -0
  489. package/src/core/notebook/document/hooks.tsx +118 -0
  490. package/src/core/notebook/document/index.ts +24 -0
  491. package/src/core/notebook/document/model.ts +105 -0
  492. package/src/core/notebook/document/select.ts +41 -0
  493. package/src/core/notebook/document/state.ts +378 -0
  494. package/src/core/notebook/document/sync.ts +418 -0
  495. package/src/core/notebook/index.ts +19 -0
  496. package/src/core/notebook/operations.ts +30 -0
  497. package/src/core/notebook/replica/AGENTS.md +11 -0
  498. package/src/core/notebook/replica/__tests__/attachments.test.ts +56 -0
  499. package/src/core/{host → notebook/replica}/__tests__/document.test.ts +18 -16
  500. package/src/core/notebook/replica/__tests__/fixtures.ts +79 -0
  501. package/src/core/notebook/replica/__tests__/replica.test.ts +550 -0
  502. package/src/core/notebook/replica/backend.ts +19 -0
  503. package/src/core/notebook/replica/connection.ts +42 -0
  504. package/src/core/notebook/replica/index.ts +13 -0
  505. package/src/core/notebook/replica/replica.ts +286 -0
  506. package/src/core/notebook/replica/resources/attachments.ts +22 -0
  507. package/src/core/{host → notebook/replica}/resources/document.ts +4 -4
  508. package/src/core/packages/__tests__/useSandboxController.test.tsx +1 -1
  509. package/src/core/packages/useSandboxController.ts +1 -1
  510. package/src/core/run-app.tsx +48 -51
  511. package/src/core/runtime/__tests__/adapter.test.ts +1 -1
  512. package/src/core/runtime/__tests__/createWsUrl.test.ts +77 -7
  513. package/src/core/runtime/__tests__/runtime.test.ts +32 -58
  514. package/src/core/runtime/adapter.ts +1 -1
  515. package/src/core/runtime/config.ts +2 -2
  516. package/src/core/runtime/runtime.ts +38 -42
  517. package/src/core/runtime/types.ts +0 -2
  518. package/src/core/saving/__tests__/state.test.ts +111 -0
  519. package/src/core/saving/__tests__/useAutoSave.test.tsx +67 -0
  520. package/src/core/saving/filename.ts +1 -1
  521. package/src/core/saving/save-component.tsx +28 -36
  522. package/src/core/saving/state.ts +38 -39
  523. package/src/core/saving/useAutoSave.ts +17 -53
  524. package/src/core/session/__tests__/backend.test.ts +236 -0
  525. package/src/core/session/__tests__/useNotebookReplica.hook.test.tsx +184 -0
  526. package/src/core/session/__tests__/useNotebookSession.hook.test.tsx +663 -0
  527. package/src/core/session/active-notebook.ts +22 -0
  528. package/src/core/session/backend.ts +123 -0
  529. package/src/core/session/embedded.ts +7 -0
  530. package/src/core/{websocket → session}/types.ts +2 -2
  531. package/src/core/session/useNotebookReplica.ts +74 -0
  532. package/src/core/{websocket → session}/useNotebookSession.tsx +77 -72
  533. package/src/core/state/__tests__/jotai.test.tsx +108 -0
  534. package/src/core/state/jotai.ts +1 -1
  535. package/src/core/static/__tests__/files.test.ts +38 -10
  536. package/src/core/static/files.ts +2 -0
  537. package/src/core/{websocket → transports}/__tests__/connection-state.test.ts +1 -13
  538. package/src/core/transports/__tests__/server.test.ts +408 -0
  539. package/src/core/transports/__tests__/static.test.ts +306 -0
  540. package/src/core/transports/__tests__/wasm.test.ts +166 -0
  541. package/src/core/{websocket → transports}/connection-state.ts +9 -16
  542. package/src/core/transports/server.ts +152 -0
  543. package/src/core/transports/static.ts +166 -0
  544. package/src/core/transports/wasm.ts +97 -0
  545. package/src/core/wasm/__tests__/bridge.test.ts +214 -50
  546. package/src/core/wasm/__tests__/worker.test.ts +187 -0
  547. package/src/core/wasm/bridge.ts +75 -69
  548. package/src/core/wasm/rpc.ts +15 -3
  549. package/src/core/wasm/store.ts +3 -3
  550. package/src/core/wasm/worker/bootstrap.ts +55 -51
  551. package/src/core/wasm/worker/getMarimoWheel.ts +1 -1
  552. package/src/core/wasm/worker/save-worker.ts +9 -10
  553. package/src/core/wasm/worker/types.ts +29 -18
  554. package/src/core/wasm/worker/worker.ts +88 -44
  555. package/src/css/globals.css +66 -22
  556. package/src/hooks/__tests__/useAsyncData.test.tsx +148 -0
  557. package/src/hooks/__tests__/useDebounce.test.tsx +51 -0
  558. package/src/hooks/__tests__/useDeepCompareMemoize.test.tsx +39 -0
  559. package/src/hooks/__tests__/useDelayElapsed.test.tsx +28 -0
  560. package/src/hooks/__tests__/useInternalStateWithSync.test.tsx +20 -0
  561. package/src/hooks/__tests__/useScript.test.tsx +77 -0
  562. package/src/hooks/__tests__/useStateForKey.test.tsx +257 -0
  563. package/src/hooks/useAsyncData.ts +3 -3
  564. package/src/hooks/useDataSourceDiscovery.ts +6 -4
  565. package/src/hooks/useDebounce.ts +6 -10
  566. package/src/hooks/useDeepCompareMemoize.ts +1 -1
  567. package/src/hooks/useDelayElapsed.ts +14 -10
  568. package/src/hooks/useElapsedTime.ts +3 -3
  569. package/src/hooks/useEventListener.ts +1 -2
  570. package/src/hooks/useInputHistory.ts +4 -7
  571. package/src/hooks/useInternalStateWithSync.ts +6 -6
  572. package/src/hooks/useResizeObserver.ts +4 -7
  573. package/src/hooks/useScript.ts +67 -70
  574. package/src/hooks/useStateForKey.ts +93 -0
  575. package/src/mount.tsx +20 -15
  576. package/src/plugins/__tests__/plugin-object-schemas.test.ts +104 -0
  577. package/src/plugins/core/registerReactComponent.tsx +1 -1
  578. package/src/plugins/impl/CodeEditorPlugin.tsx +1 -1
  579. package/src/plugins/impl/DataEditorPlugin.tsx +1 -1
  580. package/src/plugins/impl/DataTablePlugin.tsx +69 -37
  581. package/src/plugins/impl/DropdownPlugin.tsx +2 -6
  582. package/src/plugins/impl/FileBrowserPlugin.tsx +4 -16
  583. package/src/plugins/impl/FormPlugin.tsx +1 -1
  584. package/src/plugins/impl/RangeSliderPlugin.tsx +16 -2
  585. package/src/plugins/impl/RefreshPlugin.tsx +1 -0
  586. package/src/plugins/impl/SliderPlugin.tsx +6 -8
  587. package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +387 -1
  588. package/src/plugins/impl/__tests__/FileBrowserPlugin.test.tsx +45 -0
  589. package/src/plugins/impl/__tests__/RangeSliderPlugin.test.tsx +109 -0
  590. package/src/plugins/impl/__tests__/SliderPlugin.test.tsx +24 -3
  591. package/src/plugins/impl/anywidget/__tests__/registry.test.ts +153 -0
  592. package/src/plugins/impl/anywidget/__tests__/widget-binding.test.ts +241 -2
  593. package/src/plugins/impl/anywidget/model.ts +3 -1
  594. package/src/plugins/impl/anywidget/registry.ts +18 -14
  595. package/src/plugins/impl/anywidget/runtime.ts +21 -9
  596. package/src/plugins/impl/anywidget/widget-binding.ts +160 -82
  597. package/src/plugins/impl/chat/__tests__/chat-prompts.test.tsx +93 -0
  598. package/src/plugins/impl/chat/chat-ui.tsx +14 -11
  599. package/src/plugins/impl/code/any-language-editor.tsx +2 -2
  600. package/src/plugins/impl/data-editor/glide-data-editor.tsx +8 -5
  601. package/src/plugins/impl/data-editor/glide-utils.ts +3 -1
  602. package/src/plugins/impl/data-explorer/ConnectedDataExplorerComponent.tsx +1 -1
  603. package/src/plugins/impl/data-explorer/components/column-summary.tsx +4 -2
  604. package/src/plugins/impl/data-explorer/state/reducer.ts +1 -1
  605. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +1 -2
  606. package/src/plugins/impl/data-frames/__tests__/sidebar.test.tsx +160 -0
  607. package/src/plugins/impl/data-frames/forms/__tests__/__snapshots__/form.test.tsx.snap +66 -66
  608. package/src/plugins/impl/data-frames/panel.tsx +43 -16
  609. package/src/plugins/impl/mpl-interactive/MplInteractivePlugin.tsx +5 -3
  610. package/src/plugins/impl/panel/PanelPlugin.tsx +16 -17
  611. package/src/plugins/impl/panel/__tests__/utils.test.ts +39 -1
  612. package/src/plugins/impl/panel/utils.ts +17 -0
  613. package/src/plugins/impl/plotly/PlotlyPlugin.tsx +2 -5
  614. package/src/plugins/impl/plotly/selection.ts +25 -19
  615. package/src/plugins/impl/vega/VegaPlugin.tsx +2 -3
  616. package/src/plugins/impl/vega/make-selectable.ts +4 -7
  617. package/src/plugins/layout/RoutesPlugin.tsx +1 -1
  618. package/src/stories/__tests__/editor-story.test.tsx +33 -0
  619. package/src/stories/button.stories.tsx +1 -0
  620. package/src/stories/cell.stories.tsx +2 -5
  621. package/src/stories/data-table.stories.tsx +31 -0
  622. package/src/stories/editor.stories.tsx +24 -17
  623. package/src/stories/form-wrapper.stories.tsx +2 -2
  624. package/src/stories/layout/vertical/one-column.stories.tsx +2 -5
  625. package/src/stories/runtime-story.tsx +23 -17
  626. package/src/stories/select.stories.tsx +2 -2
  627. package/src/stories/switchable-multi-select.stories.tsx +1 -1
  628. package/src/utils/__tests__/arrays.test.ts +35 -0
  629. package/src/utils/__tests__/batch-requests.test.ts +3 -3
  630. package/src/utils/__tests__/{createReducer.test.ts → createReducer.test.tsx} +29 -0
  631. package/src/utils/__tests__/numbers.test.ts +105 -1
  632. package/src/utils/__tests__/objects.test.ts +21 -0
  633. package/src/utils/arrays.ts +11 -2
  634. package/src/utils/blob.ts +1 -1
  635. package/src/utils/createReducer.ts +53 -26
  636. package/src/utils/maps.ts +0 -3
  637. package/src/utils/numbers.ts +79 -18
  638. package/src/utils/objects.ts +4 -9
  639. package/src/utils/once.ts +19 -19
  640. package/src/utils/tracer.ts +9 -5
  641. package/src/utils/zod-utils.ts +1 -3
  642. package/dist/any-language-editor-DZ_YTVus.js +0 -76
  643. package/dist/assets/__vite-browser-external-BXYkiFsk.js +0 -1
  644. package/dist/assets/worker-HPY9fbhz.js +0 -114
  645. package/dist/code-visibility-DkCqn-PO.js +0 -138
  646. package/dist/feedback-button-wnAMXOGA.js +0 -379
  647. package/dist/mermaid-HWGCJPDP-ByCsZnYF.js +0 -2
  648. package/dist/precisionRound-DMIVQrt2.js +0 -97
  649. package/src/components/editor/navigation/__tests__/state.test.ts +0 -81
  650. package/src/components/editor/navigation/state.ts +0 -65
  651. package/src/core/ai/tools/__tests__/run-cells-tool.test.ts +0 -656
  652. package/src/core/ai/tools/run-cells-tool.ts +0 -303
  653. package/src/core/attachments/state.ts +0 -21
  654. package/src/core/cells/__tests__/apply-transaction.test.ts +0 -991
  655. package/src/core/cells/__tests__/document-changes.test.ts +0 -1140
  656. package/src/core/cells/__tests__/document-roundtrip.test.ts +0 -392
  657. package/src/core/cells/document-changes.ts +0 -944
  658. package/src/core/host/AGENTS.md +0 -11
  659. package/src/core/host/__tests__/events.test.ts +0 -46
  660. package/src/core/host/__tests__/fixtures.ts +0 -39
  661. package/src/core/host/__tests__/notebook-client.test.ts +0 -303
  662. package/src/core/host/__tests__/protocol.test.ts +0 -214
  663. package/src/core/host/__tests__/stream.test.ts +0 -211
  664. package/src/core/host/connection.ts +0 -81
  665. package/src/core/host/events.ts +0 -60
  666. package/src/core/host/notebook-client.ts +0 -272
  667. package/src/core/host/protocol.ts +0 -1943
  668. package/src/core/host/resources/resource.ts +0 -59
  669. package/src/core/host/stream.ts +0 -213
  670. package/src/core/state/__tests__/jotai.test.ts +0 -25
  671. package/src/core/wasm/worker/message-buffer.ts +0 -33
  672. package/src/core/websocket/__tests__/createConnectionTransport.test.ts +0 -49
  673. package/src/core/websocket/__tests__/useNotebookClient.hook.test.tsx +0 -140
  674. package/src/core/websocket/__tests__/useNotebookSession.hook.test.tsx +0 -883
  675. package/src/core/websocket/transports/__tests__/basic.test.ts +0 -275
  676. package/src/core/websocket/transports/__tests__/sse.test.ts +0 -335
  677. package/src/core/websocket/transports/__tests__/transport.test.ts +0 -308
  678. package/src/core/websocket/transports/__tests__/ws.test.ts +0 -125
  679. package/src/core/websocket/transports/basic.ts +0 -102
  680. package/src/core/websocket/transports/create.ts +0 -31
  681. package/src/core/websocket/transports/sse.ts +0 -308
  682. package/src/core/websocket/transports/transport.ts +0 -50
  683. package/src/core/websocket/transports/ws.ts +0 -98
  684. package/src/core/websocket/useNotebookClient.ts +0 -80
  685. package/src/utils/__tests__/id-tree.test.ts +0 -2145
  686. package/src/utils/id-tree.tsx +0 -1134
  687. /package/src/{core/attachments/toast.ts → components/editor/agent-toast.ts} +0 -0
  688. /package/src/core/{websocket → session}/connection-utils.ts +0 -0
@@ -1,8 +1,8 @@
1
1
  import { a as e, r as t } from "./rolldown-runtime-Cb76FRpK.js";
2
- import { a as n, g as r, s as i } from "./button-CvjkwdSk.js";
2
+ import { a as n, g as r, s as i } from "./button-BQRdqQi1.js";
3
3
  import { t as a } from "./react-sHtZdjeP.js";
4
4
  import { t as o } from "./compiler-runtime-CldRdSsv.js";
5
- import { C as s, F as c, L as l, M as u, O as d, P as f, S as p, j as m, v as h } from "./use-restore-focus-BEM7sFWl.js";
5
+ import { A as s, C as c, I as l, L as u, N as d, P as f, w as p, y as m, z as h } from "./use-restore-focus-BgDTd2tc.js";
6
6
  import { l as g, t as _ } from "./_baseMerge-BiGRwuqv.js";
7
7
  //#region ../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/mergeWith.js
8
8
  var v = g(function(e, t, n, r) {
@@ -22,94 +22,52 @@ function S() {
22
22
  throw Error("INVALID_USEEVENT_INVOCATION: the callback from useEvent cannot be invoked before the component has mounted.");
23
23
  }
24
24
  //#endregion
25
- //#region ../node_modules/.pnpm/dequal@2.0.3/node_modules/dequal/dist/index.mjs
26
- var C = o(), w = Object.prototype.hasOwnProperty;
27
- function T(e, t, n) {
28
- for (n of e.keys()) if (E(n, t)) return n;
29
- }
30
- function E(e, t) {
31
- var n, r, i;
32
- if (e === t) return !0;
33
- if (e && t && (n = e.constructor) === t.constructor) {
34
- if (n === Date) return e.getTime() === t.getTime();
35
- if (n === RegExp) return e.toString() === t.toString();
36
- if (n === Array) {
37
- if ((r = e.length) === t.length) for (; r-- && E(e[r], t[r]););
38
- return r === -1;
39
- }
40
- if (n === Set) {
41
- if (e.size !== t.size) return !1;
42
- for (r of e) if (i = r, i && typeof i == "object" && (i = T(t, i), !i) || !t.has(i)) return !1;
43
- return !0;
44
- }
45
- if (n === Map) {
46
- if (e.size !== t.size) return !1;
47
- for (r of e) if (i = r[0], i && typeof i == "object" && (i = T(t, i), !i) || !E(r[1], t.get(i))) return !1;
48
- return !0;
49
- }
50
- if (n === ArrayBuffer) e = new Uint8Array(e), t = new Uint8Array(t);
51
- else if (n === DataView) {
52
- if ((r = e.byteLength) === t.byteLength) for (; r-- && e.getInt8(r) === t.getInt8(r););
53
- return r === -1;
54
- }
55
- if (ArrayBuffer.isView(e)) {
56
- if ((r = e.byteLength) === t.byteLength) for (; r-- && e[r] === t[r];);
57
- return r === -1;
58
- }
59
- if (!n || typeof e == "object") {
60
- for (n in r = 0, e) if (w.call(e, n) && ++r && !w.call(t, n) || !(n in t) || !E(e[n], t[n])) return !1;
61
- return Object.keys(t).length === r;
62
- }
63
- }
64
- return e !== e && t !== t;
65
- }
66
- //#endregion
67
- //#region ../node_modules/.pnpm/jotai@2.20.3_@babel+core@7.29.0_@babel+template@7.28.6_@types+react@19.3.0_react@19.3.0/node_modules/jotai/esm/vanilla/internals.mjs
68
- var D = /* @__PURE__ */ t({
69
- INTERNAL_addPendingPromiseToDependency: () => N,
70
- INTERNAL_buildStoreRev3: () => we,
71
- INTERNAL_getBuildingBlocksRev3: () => L,
72
- INTERNAL_getMountedOrPendingDependents: () => P,
73
- INTERNAL_hasInitialValue: () => O,
74
- INTERNAL_initializeStoreHooksRev3: () => re,
75
- INTERNAL_isActuallyWritableAtom: () => k,
76
- INTERNAL_isAtomStateInitialized: () => A,
77
- INTERNAL_isPromiseLike: () => M,
78
- INTERNAL_returnAtomValue: () => j,
79
- INTERNAL_shouldThrowSynchronously: () => te
25
+ //#region ../node_modules/.pnpm/jotai@2.20.3_@babel+core@7.29.0_supports-color@10.0.0__@babel+template@7.28.6_@types+react@19.3.0_react@19.3.0/node_modules/jotai/esm/vanilla/internals.mjs
26
+ var C = /* @__PURE__ */ t({
27
+ INTERNAL_addPendingPromiseToDependency: () => A,
28
+ INTERNAL_buildStoreRev3: () => Ce,
29
+ INTERNAL_getBuildingBlocksRev3: () => Se,
30
+ INTERNAL_getMountedOrPendingDependents: () => j,
31
+ INTERNAL_hasInitialValue: () => w,
32
+ INTERNAL_initializeStoreHooksRev3: () => te,
33
+ INTERNAL_isActuallyWritableAtom: () => T,
34
+ INTERNAL_isAtomStateInitialized: () => D,
35
+ INTERNAL_isPromiseLike: () => k,
36
+ INTERNAL_returnAtomValue: () => O,
37
+ INTERNAL_shouldThrowSynchronously: () => ee
80
38
  });
81
- function O(e) {
39
+ function w(e) {
82
40
  return "init" in e;
83
41
  }
84
- function k(e) {
42
+ function T(e) {
85
43
  return typeof e.write == "function";
86
44
  }
87
- function ee(e) {
45
+ function E(e) {
88
46
  return !!e.onMount;
89
47
  }
90
- function A(e) {
48
+ function D(e) {
91
49
  return "v" in e || "e" in e;
92
50
  }
93
- function j(e) {
51
+ function O(e) {
94
52
  if ("e" in e) throw e.e;
95
53
  return e.v;
96
54
  }
97
- function M(e) {
55
+ function k(e) {
98
56
  return typeof e?.then == "function";
99
57
  }
100
- function te(e) {
58
+ function ee(e) {
101
59
  if (!(e instanceof Error)) return !1;
102
60
  let t = e.name, n = e.message.toLowerCase();
103
61
  return (t === "RangeError" || t === "InternalError") && (n.includes("call stack") || n.includes("too much recursion") || n.includes("stack overflow"));
104
62
  }
105
- function N(e, t, n) {
63
+ function A(e, t, n) {
106
64
  if (!n.p.has(e)) {
107
65
  n.p.add(e);
108
66
  let r = () => n.p.delete(e);
109
67
  t.then(r, r);
110
68
  }
111
69
  }
112
- function P(e, t, n) {
70
+ function j(e, t, n) {
113
71
  let r = n.get(e)?.t, i = t.p;
114
72
  if (!r?.size) return i;
115
73
  if (!i.size) return r;
@@ -117,10 +75,10 @@ function P(e, t, n) {
117
75
  for (let e of i) a.add(e);
118
76
  return a;
119
77
  }
120
- var ne = () => {
78
+ var M = () => {
121
79
  let e = /* @__PURE__ */ new Set(), t = () => e.forEach((e) => e());
122
80
  return t.add = (t) => (e.add(t), () => e.delete(t)), t;
123
- }, F = () => {
81
+ }, N = () => {
124
82
  let e = {}, t = /* @__PURE__ */ new WeakMap(), n = (n) => {
125
83
  var r, i;
126
84
  (r = t.get(e)) == null || r.forEach((e) => e(n)), (i = t.get(n)) == null || i.forEach((e) => e());
@@ -132,13 +90,13 @@ var ne = () => {
132
90
  };
133
91
  }, n;
134
92
  };
135
- function re(e) {
136
- return e.i ||= F(), e.r ||= F(), e.c ||= F(), e.m ||= F(), e.u ||= F(), e.f ||= ne(), e;
93
+ function te(e) {
94
+ return e.i ||= N(), e.r ||= N(), e.c ||= N(), e.m ||= N(), e.u ||= N(), e.f ||= M(), e;
137
95
  }
138
- function ie(e) {
96
+ function P(e) {
139
97
  return !!e.INTERNAL_onInit;
140
98
  }
141
- var ae = (e, t, n, ...r) => n.read(...r), oe = (e, t, n, ...r) => n.write(...r), se = (e, t, n) => n.INTERNAL_onInit(t), ce = (e, t, n, r) => n.onMount?.call(n, r), le = (e, t, n) => {
99
+ var ne = (e, t, n, ...r) => n.read(...r), re = (e, t, n, ...r) => n.write(...r), ie = (e, t, n) => n.INTERNAL_onInit(t), ae = (e, t, n, r) => n.onMount?.call(n, r), oe = (e, t, n) => {
142
100
  var r;
143
101
  let i = e[0], a = i.get(n);
144
102
  if (!a) {
@@ -147,10 +105,10 @@ var ae = (e, t, n, ...r) => n.read(...r), oe = (e, t, n, ...r) => n.write(...r),
147
105
  d: /* @__PURE__ */ new Map(),
148
106
  p: /* @__PURE__ */ new Set(),
149
107
  n: 0
150
- }, i.set(n, a), (r = o.i) == null || r.call(o, n), ie(n) && s(e, t, n);
108
+ }, i.set(n, a), (r = o.i) == null || r.call(o, n), P(n) && s(e, t, n);
151
109
  }
152
110
  return a;
153
- }, ue = (e, t) => {
111
+ }, se = (e, t) => {
154
112
  let n = e[1], r = e[3], i = e[4], a = e[5], o = e[6], s = e[13];
155
113
  if (!o.f && !r.size && !i.size && !a.size) return;
156
114
  let c = [], l = (e) => {
@@ -176,7 +134,7 @@ var ae = (e, t, n, ...r) => n.read(...r), oe = (e, t, n, ...r) => n.write(...r),
176
134
  r.size && s(e, t);
177
135
  } while (r.size || a.size || i.size);
178
136
  if (c.length) throw AggregateError(c);
179
- }, de = (e, t) => {
137
+ }, ce = (e, t) => {
180
138
  let n = e[1], r = e[2], i = e[3], a = e[11], o = e[14], s = e[17];
181
139
  if (!i.size) return;
182
140
  let c = [], l = [], u = /* @__PURE__ */ new WeakSet(), d = /* @__PURE__ */ new WeakSet(), f = [], p = [];
@@ -192,7 +150,7 @@ var ae = (e, t, n, ...r) => n.read(...r), oe = (e, t, n, ...r) => n.write(...r),
192
150
  continue;
193
151
  }
194
152
  u.add(o);
195
- for (let r of P(o, s, n)) u.has(r) || (f.push(r), p.push(a(e, t, r)));
153
+ for (let r of j(o, s, n)) u.has(r) || (f.push(r), p.push(a(e, t, r)));
196
154
  }
197
155
  for (let n = c.length - 1; n >= 0; --n) {
198
156
  let a = c[n], u = l[n], d = !1;
@@ -202,10 +160,10 @@ var ae = (e, t, n, ...r) => n.read(...r), oe = (e, t, n, ...r) => n.write(...r),
202
160
  }
203
161
  d && (r.set(a, u.n), o(e, t, a), s(e, t, a)), r.delete(a);
204
162
  }
205
- }, fe = (e, t, n) => {
163
+ }, le = (e, t, n) => {
206
164
  var r, i;
207
165
  let a = e[1], o = e[2], s = e[3], c = e[6], l = e[7], u = e[11], d = e[12], f = e[13], p = e[14], m = e[16], h = e[17], g = e[20], _ = e[26], v = e[28], y = u(e, t, n), b = v[0];
208
- if (A(y)) {
166
+ if (D(y)) {
209
167
  if (a.has(n) && o.get(n) !== y.n || y.m === b) return y.m = b, y;
210
168
  let r = !1;
211
169
  for (let [n, i] of y.d) if (p(e, t, n).n !== i) {
@@ -216,73 +174,73 @@ var ae = (e, t, n, ...r) => n.read(...r), oe = (e, t, n, ...r) => n.write(...r),
216
174
  }
217
175
  let x = !0, S = new Set(y.d.keys()), C = () => {
218
176
  for (let e of S) y.d.delete(e);
219
- }, w = () => {
177
+ }, E = () => {
220
178
  if (a.has(n)) {
221
179
  let r = !s.size;
222
180
  h(e, t, n), r && (f(e, t), d(e, t));
223
181
  }
224
- }, T = (r) => {
182
+ }, j = (r) => {
225
183
  var i;
226
184
  if (r === n) {
227
185
  let n = u(e, t, r);
228
- if (!A(n)) {
229
- if (O(r)) g(e, t, r, r.init);
186
+ if (!D(n)) {
187
+ if (w(r)) g(e, t, r, r.init);
230
188
  else throw Error("no atom init");
231
189
  }
232
- return j(n);
190
+ return O(n);
233
191
  }
234
192
  let o = p(e, t, r);
235
193
  try {
236
- return j(o);
194
+ return O(o);
237
195
  } finally {
238
- S.delete(r), y.d.set(r, o.n), M(y.v) && N(n, y.v, o), a.has(n) && ((i = a.get(r)) == null || i.t.add(n)), x || w();
196
+ S.delete(r), y.d.set(r, o.n), k(y.v) && A(n, y.v, o), a.has(n) && ((i = a.get(r)) == null || i.t.add(n)), x || E();
239
197
  }
240
- }, E, D, ee = {
198
+ }, M, N, te = {
241
199
  get signal() {
242
- return E ||= new AbortController(), E.signal;
200
+ return M ||= new AbortController(), M.signal;
243
201
  },
244
202
  get setSelf() {
245
- return !D && k(n) && (D = (...r) => {
203
+ return !N && T(n) && (N = (...r) => {
246
204
  if (!x) try {
247
205
  return m(e, t, n, r);
248
206
  } finally {
249
207
  f(e, t), d(e, t);
250
208
  }
251
- }), D;
209
+ }), N;
252
210
  }
253
211
  }, P = y.n, ne = o.get(n) === P;
254
212
  try {
255
- let i = l(e, t, n, T, ee);
256
- if (g(e, t, n, i), M(i)) {
257
- _(e, t, i, () => E?.abort());
213
+ let i = l(e, t, n, j, te);
214
+ if (g(e, t, n, i), k(i)) {
215
+ _(e, t, i, () => M?.abort());
258
216
  let n = () => {
259
- C(), w();
217
+ C(), E();
260
218
  };
261
219
  i.then(n, n);
262
220
  } else C();
263
221
  return (r = c.r) == null || r.call(c, n), y.m = b, y;
264
222
  } catch (e) {
265
- if (te(e)) throw e;
223
+ if (ee(e)) throw e;
266
224
  return delete y.v, y.e = e, ++y.n, y.m = b, y;
267
225
  } finally {
268
226
  x = !1, y.n !== P && ne && (o.set(n, y.n), s.add(n), (i = c.c) == null || i.call(c, n));
269
227
  }
270
- }, pe = (e, t, n) => {
228
+ }, ue = (e, t, n) => {
271
229
  let r = e[1], i = e[2], a = e[11], o = [n];
272
230
  for (; o.length;) {
273
231
  let n = o.pop(), s = a(e, t, n);
274
- for (let c of P(n, s, r)) {
232
+ for (let c of j(n, s, r)) {
275
233
  let n = a(e, t, c);
276
234
  i.get(c) !== n.n && (i.set(c, n.n), o.push(c));
277
235
  }
278
236
  }
279
- }, me = (e, t, n, r) => {
280
- let i = e[3], a = e[6], o = e[8], s = e[11], c = e[12], l = e[13], u = e[14], d = e[15], f = e[16], p = e[17], m = e[20], h = e[28], g = !0, _ = (n) => j(u(e, t, n)), v = (r, ...o) => {
237
+ }, de = (e, t, n, r) => {
238
+ let i = e[3], a = e[6], o = e[8], s = e[11], c = e[12], l = e[13], u = e[14], d = e[15], f = e[16], p = e[17], m = e[20], h = e[28], g = !0, _ = (n) => O(u(e, t, n)), v = (r, ...o) => {
281
239
  var u;
282
240
  let _ = s(e, t, r);
283
241
  try {
284
242
  if (r === n) {
285
- if (!O(r)) throw Error("atom not writable");
243
+ if (!w(r)) throw Error("atom not writable");
286
244
  let n = _.n, s = o[0];
287
245
  m(e, t, r, s), p(e, t, r), n !== _.n && (++h[0], i.add(r), d(e, t, r), (u = a.c) == null || u.call(a, r));
288
246
  return;
@@ -297,7 +255,7 @@ var ae = (e, t, n, ...r) => n.read(...r), oe = (e, t, n, ...r) => n.write(...r),
297
255
  } finally {
298
256
  g = !1;
299
257
  }
300
- }, he = (e, t, n) => {
258
+ }, fe = (e, t, n) => {
301
259
  var r;
302
260
  let i = e[1], a = e[3], o = e[6], s = e[11], c = e[15], l = e[18], u = e[19], d = s(e, t, n), f = i.get(n);
303
261
  if (f && d.d.size > 0) {
@@ -307,7 +265,7 @@ var ae = (e, t, n, ...r) => n.read(...r), oe = (e, t, n, ...r) => n.write(...r),
307
265
  }
308
266
  for (let r of f.d) d.d.has(r) || (f.d.delete(r), u(e, t, r)?.t.delete(n));
309
267
  }
310
- }, ge = (e, t, n) => {
268
+ }, pe = (e, t, n) => {
311
269
  var r;
312
270
  let i = e[1], a = e[4], o = e[6], s = e[10], c = e[11], l = e[12], u = e[13], d = e[14], f = e[16], p = e[18], m = c(e, t, n), h = i.get(n);
313
271
  if (!h) {
@@ -317,7 +275,7 @@ var ae = (e, t, n, ...r) => n.read(...r), oe = (e, t, n, ...r) => n.write(...r),
317
275
  l: /* @__PURE__ */ new Set(),
318
276
  d: new Set(m.d.keys()),
319
277
  t: /* @__PURE__ */ new Set()
320
- }, i.set(n, h), k(n) && ee(n) && a.add(() => {
278
+ }, i.set(n, h), T(n) && E(n) && a.add(() => {
321
279
  let r = !0, i = (...i) => {
322
280
  try {
323
281
  return f(e, t, n, i);
@@ -341,7 +299,7 @@ var ae = (e, t, n, ...r) => n.read(...r), oe = (e, t, n, ...r) => n.write(...r),
341
299
  }), (r = o.m) == null || r.call(o, n);
342
300
  }
343
301
  return h;
344
- }, _e = (e, t, n) => {
302
+ }, me = (e, t, n) => {
345
303
  var r;
346
304
  let i = e[1], a = e[5], o = e[6], s = e[11], c = e[19], l = s(e, t, n), u = i.get(n);
347
305
  if (!u || u.l.size) return u;
@@ -357,26 +315,26 @@ var ae = (e, t, n, ...r) => n.read(...r), oe = (e, t, n, ...r) => n.write(...r),
357
315
  return;
358
316
  }
359
317
  return u;
360
- }, ve = (e, t, n, r) => {
318
+ }, he = (e, t, n, r) => {
361
319
  let i = e[11], a = e[27], o = i(e, t, n), s = "v" in o, c = o.v;
362
- if (M(r)) for (let a of o.d.keys()) N(n, r, i(e, t, a));
363
- o.v = r, delete o.e, (!s || !Object.is(c, o.v)) && (++o.n, M(c) && a(e, t, c));
364
- }, ye = (e, t, n) => {
320
+ if (k(r)) for (let a of o.d.keys()) A(n, r, i(e, t, a));
321
+ o.v = r, delete o.e, (!s || !Object.is(c, o.v)) && (++o.n, k(c) && a(e, t, c));
322
+ }, ge = (e, t, n) => {
365
323
  let r = e[14];
366
- return j(r(e, t, n));
367
- }, be = (e, t, n, ...r) => {
324
+ return O(r(e, t, n));
325
+ }, _e = (e, t, n, ...r) => {
368
326
  let i = e[3], a = e[12], o = e[13], s = e[16], c = i.size;
369
327
  try {
370
328
  return s(e, t, n, r);
371
329
  } finally {
372
330
  i.size !== c && (o(e, t), a(e, t));
373
331
  }
374
- }, xe = (e, t, n, r) => {
332
+ }, ve = (e, t, n, r) => {
375
333
  let i = e[12], a = e[13], o = e[18], s = e[19], c = o(e, t, n).l;
376
334
  return c.add(r), a(e, t), i(e, t), () => {
377
335
  c.delete(r), s(e, t, n), a(e, t), i(e, t);
378
336
  };
379
- }, Se = (e, t, n, r) => {
337
+ }, ye = (e, t, n, r) => {
380
338
  let i = e[25], a = i.get(n);
381
339
  if (!a) {
382
340
  a = /* @__PURE__ */ new Set(), i.set(n, a);
@@ -384,14 +342,14 @@ var ae = (e, t, n, ...r) => n.read(...r), oe = (e, t, n, ...r) => n.write(...r),
384
342
  n.then(e, e);
385
343
  }
386
344
  a.add(r);
387
- }, Ce = (e, t, n) => {
345
+ }, be = (e, t, n) => {
388
346
  e[25].get(n)?.forEach((e) => e());
389
- }, I = /* @__PURE__ */ new WeakMap();
390
- function L(e) {
391
- let t = I.get(e), n = t[24];
347
+ }, xe = /* @__PURE__ */ new WeakMap();
348
+ function Se(e) {
349
+ let t = xe.get(e), n = t[24];
392
350
  return n ? n(t, e) : t;
393
351
  }
394
- function we(...e) {
352
+ function Ce(...e) {
395
353
  let t = {
396
354
  get(e) {
397
355
  return r(n, t, e);
@@ -410,6 +368,9 @@ function we(...e) {
410
368
  /* @__PURE__ */ new Set(),
411
369
  /* @__PURE__ */ new Set(),
412
370
  {},
371
+ ne,
372
+ re,
373
+ ie,
413
374
  ae,
414
375
  oe,
415
376
  se,
@@ -424,64 +385,61 @@ function we(...e) {
424
385
  ge,
425
386
  _e,
426
387
  ve,
427
- ye,
428
- be,
429
- xe,
430
388
  void 0,
431
389
  /* @__PURE__ */ new WeakMap(),
432
- Se,
433
- Ce,
390
+ ye,
391
+ be,
434
392
  [0]
435
393
  ].map((t, n) => e[n] || t);
436
- I.set(t, Object.freeze(n));
394
+ xe.set(t, Object.freeze(n));
437
395
  let r = n[21], i = n[22], a = n[23];
438
396
  return t;
439
397
  }
440
398
  //#endregion
441
- //#region ../node_modules/.pnpm/jotai@2.20.3_@babel+core@7.29.0_@babel+template@7.28.6_@types+react@19.3.0_react@19.3.0/node_modules/jotai/esm/vanilla.mjs
442
- var Te = 0;
443
- function R(e, t) {
444
- let n = `atom${++Te}`, r = { toString() {
399
+ //#region ../node_modules/.pnpm/jotai@2.20.3_@babel+core@7.29.0_supports-color@10.0.0__@babel+template@7.28.6_@types+react@19.3.0_react@19.3.0/node_modules/jotai/esm/vanilla.mjs
400
+ var we = 0;
401
+ function F(e, t) {
402
+ let n = `atom${++we}`, r = { toString() {
445
403
  return n;
446
404
  } };
447
- return typeof e == "function" ? r.read = e : (r.init = e, r.read = Ee, r.write = De), t && (r.write = t), r;
405
+ return typeof e == "function" ? r.read = e : (r.init = e, r.read = Te, r.write = Ee), t && (r.write = t), r;
448
406
  }
449
- function Ee(e) {
407
+ function Te(e) {
450
408
  return e(this);
451
409
  }
452
- function De(e, t, n) {
410
+ function Ee(e, t, n) {
453
411
  return t(this, typeof n == "function" ? n(e(this)) : n);
454
412
  }
455
- function z() {
456
- return we();
413
+ function I() {
414
+ return Ce();
457
415
  }
458
- var Oe;
459
- function ke() {
460
- return Oe ||= z(), Oe;
416
+ var De;
417
+ function Oe() {
418
+ return De ||= I(), De;
461
419
  }
462
420
  //#endregion
463
- //#region ../node_modules/.pnpm/jotai@2.20.3_@babel+core@7.29.0_@babel+template@7.28.6_@types+react@19.3.0_react@19.3.0/node_modules/jotai/esm/react.mjs
464
- var B = (0, y.createContext)(void 0);
465
- function V(e) {
466
- let t = (0, y.useContext)(B);
467
- return e?.store || t || ke();
421
+ //#region ../node_modules/.pnpm/jotai@2.20.3_@babel+core@7.29.0_supports-color@10.0.0__@babel+template@7.28.6_@types+react@19.3.0_react@19.3.0/node_modules/jotai/esm/react.mjs
422
+ var L = (0, y.createContext)(void 0);
423
+ function R(e) {
424
+ let t = (0, y.useContext)(L);
425
+ return e?.store || t || Oe();
468
426
  }
469
- function Ae({ children: e, store: t }) {
427
+ function ke({ children: e, store: t }) {
470
428
  let n = (0, y.useRef)(null);
471
- return t ? (0, y.createElement)(B.Provider, { value: t }, e) : (n.current === null && (n.current = z()), (0, y.createElement)(B.Provider, { value: n.current }, e));
429
+ return t ? (0, y.createElement)(L.Provider, { value: t }, e) : (n.current === null && (n.current = I()), (0, y.createElement)(L.Provider, { value: n.current }, e));
472
430
  }
473
- var H = (e) => typeof e?.then == "function", U = (e) => {
431
+ var z = (e) => typeof e?.then == "function", B = (e) => {
474
432
  e.status || (e.status = "pending", e.then((t) => {
475
433
  e.status = "fulfilled", e.value = t;
476
434
  }, (t) => {
477
435
  e.status = "rejected", e.reason = t;
478
436
  }));
479
- }, je = y.use || ((e) => {
437
+ }, Ae = y.use || ((e) => {
480
438
  if (e.status === "pending") throw e;
481
439
  if (e.status === "fulfilled") return e.value;
482
- throw e.status === "rejected" ? e.reason : (U(e), e);
483
- }), W = /* @__PURE__ */ new WeakMap(), Me = (e, t, n) => {
484
- let r = L(e), i = r[26], a = W.get(t);
440
+ throw e.status === "rejected" ? e.reason : (B(e), e);
441
+ }), V = /* @__PURE__ */ new WeakMap(), je = (e, t, n) => {
442
+ let r = Se(e), i = r[26], a = V.get(t);
485
443
  return a || (a = new Promise((o, s) => {
486
444
  let c = t, l = (e) => (t) => {
487
445
  c === e && o(t);
@@ -490,16 +448,16 @@ var H = (e) => typeof e?.then == "function", U = (e) => {
490
448
  }, d = () => {
491
449
  try {
492
450
  let t = n();
493
- H(t) ? (W.set(t, a), c = t, t.then(l(t), u(t)), i(r, e, t, d)) : o(t);
451
+ z(t) ? (V.set(t, a), c = t, t.then(l(t), u(t)), i(r, e, t, d)) : o(t);
494
452
  } catch (e) {
495
453
  s(e);
496
454
  }
497
455
  };
498
456
  t.then(l(t), u(t)), i(r, e, t, d);
499
- }), W.set(t, a)), a;
457
+ }), V.set(t, a)), a;
500
458
  };
501
- function G(e, t) {
502
- let { delay: n, unstable_promiseStatus: r = !y.use } = t || {}, i = V(t), [[a, o, s], c] = (0, y.useReducer)((t) => {
459
+ function H(e, t) {
460
+ let { delay: n, unstable_promiseStatus: r = !y.use } = t || {}, i = R(t), [[a, o, s], c] = (0, y.useReducer)((t) => {
503
461
  let n = i.get(e);
504
462
  return Object.is(t[0], n) && t[1] === i && t[2] === e ? t : [
505
463
  n,
@@ -515,7 +473,7 @@ function G(e, t) {
515
473
  let t = i.sub(e, () => {
516
474
  if (r) try {
517
475
  let t = i.get(e);
518
- H(t) && U(Me(i, t, () => i.get(e)));
476
+ z(t) && B(je(i, t, () => i.get(e)));
519
477
  } catch {}
520
478
  if (typeof n == "number") {
521
479
  console.warn("[DEPRECATED] delay option is deprecated and will be removed in v3.\n\nMigration guide:\n\nCreate a custom hook like the following.\n\nfunction useAtomValueWithDelay<Value>(\n atom: Atom<Value>,\n options: { delay: number },\n): Value {\n const { delay } = options\n const store = useStore(options)\n const [value, setValue] = useState(() => store.get(atom))\n useEffect(() => {\n const unsub = store.sub(atom, () => {\n setTimeout(() => setValue(store.get(atom)), delay)\n })\n return unsub\n }, [store, atom, delay])\n return value\n}\n"), setTimeout(c, n);
@@ -529,28 +487,267 @@ function G(e, t) {
529
487
  e,
530
488
  n,
531
489
  r
532
- ]), (0, y.useDebugValue)(l), H(l)) {
533
- let t = Me(i, l, () => i.get(e));
534
- return r && U(t), je(t);
490
+ ]), (0, y.useDebugValue)(l), z(l)) {
491
+ let t = je(i, l, () => i.get(e));
492
+ return r && B(t), Ae(t);
535
493
  }
536
494
  return l;
537
495
  }
538
- function K(e, t) {
539
- let n = V(t);
496
+ function U(e, t) {
497
+ let n = R(t);
540
498
  return (0, y.useCallback)((...t) => n.set(e, ...t), [n, e]);
541
499
  }
542
- function Ne(e, t) {
543
- return [G(e, t), K(e, t)];
500
+ function Me(e, t) {
501
+ return [H(e, t), U(e, t)];
544
502
  }
545
503
  //#endregion
546
- //#region src/core/islands/utils.ts
547
- function Pe() {
548
- return !0;
504
+ //#region ../node_modules/.pnpm/jotai@2.20.3_@babel+core@7.29.0_supports-color@10.0.0__@babel+template@7.28.6_@types+react@19.3.0_react@19.3.0/node_modules/jotai/esm/vanilla/utils.mjs
505
+ var W = o(), Ne = /* @__PURE__ */ Symbol("");
506
+ function Pe(e, t) {
507
+ return F(e, function(e, n, r) {
508
+ n(this, t(e(this), r));
509
+ });
510
+ }
511
+ function Fe(e, t) {
512
+ let n = null, r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), a = (i) => {
513
+ let s;
514
+ if (t === void 0) s = r.get(i);
515
+ else for (let [e, n] of r) if (t(e, i)) {
516
+ s = n;
517
+ break;
518
+ }
519
+ if (s !== void 0) {
520
+ if (n?.(s[1], i)) a.remove(i);
521
+ else return s[0];
522
+ }
523
+ let c = e(i);
524
+ return r.set(i, [c, Date.now()]), o("CREATE", i, c), c;
525
+ }, o = (e, t, n) => {
526
+ for (let r of i) r({
527
+ type: e,
528
+ param: t,
529
+ atom: n
530
+ });
531
+ };
532
+ return a.unstable_listen = (e) => (i.add(e), () => {
533
+ i.delete(e);
534
+ }), a.getParams = () => r.keys(), a.remove = (e) => {
535
+ if (t === void 0) {
536
+ if (!r.has(e)) return;
537
+ let [t] = r.get(e);
538
+ r.delete(e), o("REMOVE", e, t);
539
+ } else for (let [n, [i]] of r) if (t(n, e)) {
540
+ r.delete(n), o("REMOVE", n, i);
541
+ break;
542
+ }
543
+ }, a.setShouldRemove = (e) => {
544
+ if (n = e, n) for (let [e, [t, i]] of r) n(i, e) && (r.delete(e), o("REMOVE", e, t));
545
+ }, a;
546
+ }
547
+ var G = (e, t, n) => (t.has(n) ? t : t.set(n, e())).get(n), Ie = /* @__PURE__ */ new WeakMap(), Le = (e, t, n, r) => G(e, G(() => /* @__PURE__ */ new WeakMap(), G(() => /* @__PURE__ */ new WeakMap(), Ie, t), n), r);
548
+ function Re(e, t, n = Object.is) {
549
+ return Le(() => {
550
+ let r = /* @__PURE__ */ Symbol(), i = ([e, i]) => {
551
+ if (i === r) return t(e);
552
+ let a = t(e, i);
553
+ return n(i, a) ? i : a;
554
+ }, a = F((t) => {
555
+ let n = t(a), r = t(e);
556
+ return i([r, n]);
557
+ });
558
+ return a.init = r, a;
559
+ }, e, t, n);
560
+ }
561
+ var ze = (e, t, n) => (t.has(n) ? t : t.set(n, e())).get(n), Be = /* @__PURE__ */ new WeakMap(), Ve = (e, t, n) => ze(e, ze(() => /* @__PURE__ */ new WeakMap(), Be, t), n), He = {}, Ue = (e) => !!e.write, We = (e) => typeof e == "function";
562
+ function Ge(e, t) {
563
+ return Ve(() => {
564
+ let n = /* @__PURE__ */ new WeakMap(), r = (a, o) => {
565
+ let s = n.get(a);
566
+ if (s) return s;
567
+ let c = o && n.get(o), l = [], u = [];
568
+ return a.forEach((n, o) => {
569
+ let s = t ? t(n) : o;
570
+ u[o] = s;
571
+ let d = c && c.atomList[c.keyList.indexOf(s)];
572
+ if (d) {
573
+ l[o] = d;
574
+ return;
575
+ }
576
+ let f = (t) => {
577
+ let n = t(i), o = t(e), c = r(o, n?.arr).keyList.indexOf(s);
578
+ if (c < 0 || c >= o.length) {
579
+ let e = a[r(a).keyList.indexOf(s)];
580
+ if (e) return e;
581
+ throw Error("splitAtom: index out of bounds for read");
582
+ }
583
+ return o[c];
584
+ };
585
+ l[o] = Ue(e) ? F(f, (t, n, a) => {
586
+ let o = t(i), c = t(e), l = r(c, o?.arr).keyList.indexOf(s);
587
+ if (l < 0 || l >= c.length) throw Error("splitAtom: index out of bounds for write");
588
+ let u = We(a) ? a(c[l]) : a;
589
+ Object.is(c[l], u) || n(e, [
590
+ ...c.slice(0, l),
591
+ u,
592
+ ...c.slice(l + 1)
593
+ ]);
594
+ }) : F(f);
595
+ }), s = c && c.keyList.length === u.length && c.keyList.every((e, t) => e === u[t]) ? c : {
596
+ arr: a,
597
+ atomList: l,
598
+ keyList: u
599
+ }, n.set(a, s), s;
600
+ }, i = F((t) => {
601
+ let n = t(i), a = t(e);
602
+ return r(a, n?.arr);
603
+ });
604
+ i.init = void 0;
605
+ let a = Ue(e) ? F((e) => e(i).atomList, (t, n, r) => {
606
+ switch (r.type) {
607
+ case "remove": {
608
+ let i = t(a).indexOf(r.atom);
609
+ if (i >= 0) {
610
+ let r = t(e);
611
+ n(e, [...r.slice(0, i), ...r.slice(i + 1)]);
612
+ }
613
+ break;
614
+ }
615
+ case "insert": {
616
+ let i = r.before ? t(a).indexOf(r.before) : t(a).length;
617
+ if (i >= 0) {
618
+ let a = t(e);
619
+ n(e, [
620
+ ...a.slice(0, i),
621
+ r.value,
622
+ ...a.slice(i)
623
+ ]);
624
+ }
625
+ break;
626
+ }
627
+ case "move": {
628
+ let i = t(a).indexOf(r.atom), o = r.before ? t(a).indexOf(r.before) : t(a).length;
629
+ if (i >= 0 && o >= 0) {
630
+ let r = t(e);
631
+ i < o ? n(e, [
632
+ ...r.slice(0, i),
633
+ ...r.slice(i + 1, o),
634
+ r[i],
635
+ ...r.slice(o)
636
+ ]) : n(e, [
637
+ ...r.slice(0, o),
638
+ r[i],
639
+ ...r.slice(o, i),
640
+ ...r.slice(i + 1)
641
+ ]);
642
+ }
643
+ break;
644
+ }
645
+ }
646
+ }) : F((e) => e(i).atomList);
647
+ return a;
648
+ }, e, t || He);
649
+ }
650
+ var Ke = (e) => typeof e?.then == "function";
651
+ function qe(e = () => {
652
+ try {
653
+ return window.localStorage;
654
+ } catch {
655
+ return;
656
+ }
657
+ }, t) {
658
+ let n, r, i = {
659
+ getItem: (i, a) => {
660
+ let o = (e) => {
661
+ if (e ||= "", n !== e) {
662
+ try {
663
+ r = JSON.parse(e, t?.reviver);
664
+ } catch {
665
+ return a;
666
+ }
667
+ n = e;
668
+ }
669
+ return r;
670
+ }, s = e()?.getItem(i) ?? null;
671
+ return Ke(s) ? s.then(o) : o(s);
672
+ },
673
+ setItem: (n, r) => e()?.setItem(n, JSON.stringify(r, t?.replacer)),
674
+ removeItem: (t) => e()?.removeItem(t)
675
+ }, a = (e) => (n, r, i) => e(n, (e) => {
676
+ let n;
677
+ try {
678
+ n = JSON.parse(e || "", t?.reviver);
679
+ } catch {
680
+ n = i;
681
+ }
682
+ r(n);
683
+ }), o;
684
+ try {
685
+ o = e()?.subscribe;
686
+ } catch {}
687
+ return !o && typeof window < "u" && typeof window.addEventListener == "function" && window.Storage && (o = (t, n) => {
688
+ if (!(e() instanceof window.Storage)) return () => {};
689
+ let r = (r) => {
690
+ r.storageArea === e() && r.key === t && n(r.newValue);
691
+ };
692
+ return window.addEventListener("storage", r), () => {
693
+ window.removeEventListener("storage", r);
694
+ };
695
+ }), o && (i.subscribe = a(o)), i;
696
+ }
697
+ var Je = qe();
698
+ function Ye(e, t, n = Je, r) {
699
+ let i = r?.getOnInit, a = F(i ? n.getItem(e, t) : t);
700
+ return a.onMount = (r) => (r(n.getItem(e, t)), n.subscribe?.call(n, e, r, t)), F((e) => e(a), (r, i, o) => {
701
+ let s = typeof o == "function" ? o(r(a)) : o;
702
+ return s === Ne ? (i(a, t), n.removeItem(e)) : Ke(s) ? s.then((t) => (i(a, t), n.setItem(e, t))) : (i(a, s), n.setItem(e, s));
703
+ });
704
+ }
705
+ //#endregion
706
+ //#region ../node_modules/.pnpm/dequal@2.0.3/node_modules/dequal/dist/index.mjs
707
+ var Xe = Object.prototype.hasOwnProperty;
708
+ function Ze(e, t, n) {
709
+ for (n of e.keys()) if (K(n, t)) return n;
710
+ }
711
+ function K(e, t) {
712
+ var n, r, i;
713
+ if (e === t) return !0;
714
+ if (e && t && (n = e.constructor) === t.constructor) {
715
+ if (n === Date) return e.getTime() === t.getTime();
716
+ if (n === RegExp) return e.toString() === t.toString();
717
+ if (n === Array) {
718
+ if ((r = e.length) === t.length) for (; r-- && K(e[r], t[r]););
719
+ return r === -1;
720
+ }
721
+ if (n === Set) {
722
+ if (e.size !== t.size) return !1;
723
+ for (r of e) if (i = r, i && typeof i == "object" && (i = Ze(t, i), !i) || !t.has(i)) return !1;
724
+ return !0;
725
+ }
726
+ if (n === Map) {
727
+ if (e.size !== t.size) return !1;
728
+ for (r of e) if (i = r[0], i && typeof i == "object" && (i = Ze(t, i), !i) || !K(r[1], t.get(i))) return !1;
729
+ return !0;
730
+ }
731
+ if (n === ArrayBuffer) e = new Uint8Array(e), t = new Uint8Array(t);
732
+ else if (n === DataView) {
733
+ if ((r = e.byteLength) === t.byteLength) for (; r-- && e.getInt8(r) === t.getInt8(r););
734
+ return r === -1;
735
+ }
736
+ if (ArrayBuffer.isView(e)) {
737
+ if ((r = e.byteLength) === t.byteLength) for (; r-- && e[r] === t[r];);
738
+ return r === -1;
739
+ }
740
+ if (!n || typeof e == "object") {
741
+ for (n in r = 0, e) if (Xe.call(e, n) && ++r && !Xe.call(t, n) || !(n in t) || !K(e[n], t[n])) return !1;
742
+ return Object.keys(t).length === r;
743
+ }
744
+ }
745
+ return e !== e && t !== t;
549
746
  }
550
747
  //#endregion
551
748
  //#region src/core/state/jotai.ts
552
- var q = z();
553
- async function Fe(e, t) {
749
+ var q = I();
750
+ async function Qe(e, t) {
554
751
  return t(q.get(e)) ? q.get(e) : new Promise((n) => {
555
752
  let r = q.sub(e, () => {
556
753
  let i = q.get(e);
@@ -558,11 +755,11 @@ async function Fe(e, t) {
558
755
  });
559
756
  });
560
757
  }
561
- function Ie(e, t) {
562
- let n = (0, C.c)(5), r = V(), i, a;
758
+ function $e(e, t) {
759
+ let n = (0, W.c)(5), r = R(), i, a;
563
760
  n[0] !== e || n[1] !== t || n[2] !== r ? (i = () => {
564
761
  let n = r.get(e);
565
- r.sub(e, () => {
762
+ return r.sub(e, () => {
566
763
  let i = r.get(e);
567
764
  t(i, n), n = i;
568
765
  });
@@ -572,114 +769,120 @@ function Ie(e, t) {
572
769
  r
573
770
  ], n[0] = e, n[1] = t, n[2] = r, n[3] = i, n[4] = a) : (i = n[3], a = n[4]), (0, y.useEffect)(i, a);
574
771
  }
575
- var Le = Symbol("sentinel");
576
- function Re(e, t = E) {
577
- let n = Le;
578
- return R((r) => {
772
+ var et = Symbol("sentinel");
773
+ function tt(e, t = K) {
774
+ let n = et;
775
+ return F((r) => {
579
776
  let i = r(e);
580
- return (n === Le || !t(n, i)) && (n = i), n;
777
+ return (n === et || !t(n, i)) && (n = i), n;
581
778
  });
582
779
  }
583
780
  //#endregion
584
- //#region src/core/config/config-schema.ts
585
- var ze = [
781
+ //#region src/core/session/active-notebook.ts
782
+ var nt = F(null), rt = F(null), it = F((e) => {
783
+ let t = e(nt);
784
+ return t === null ? null : e(t.documentAtom);
785
+ }), at = [
586
786
  "pip",
587
787
  "uv",
588
788
  "rye",
589
789
  "poetry",
590
790
  "pixi"
591
- ], Be = [
791
+ ], ot = [
592
792
  "normal",
593
793
  "compact",
594
794
  "medium",
595
795
  "full",
596
796
  "columns"
597
- ], Ve = [
797
+ ], st = [
598
798
  "auto",
599
799
  "native",
600
800
  "polars",
601
801
  "lazy-polars",
602
802
  "pandas"
603
- ], He = [
803
+ ], ct = [
604
804
  "html",
605
805
  "markdown",
606
806
  "ipynb"
607
- ], Ue = [
807
+ ], lt = ["off", "jedi"], ut = [
608
808
  "manual",
609
809
  "ask",
610
810
  "agent",
611
811
  "code_mode"
612
- ], J = u({
613
- api_key: c().optional(),
614
- base_url: c().optional(),
615
- project: c().optional()
616
- }).loose(), We = u({
617
- chat_model: c().nullish(),
618
- edit_model: c().nullish(),
619
- autocomplete_model: c().nullish(),
620
- displayed_models: p(c()).default([]),
621
- custom_models: p(c()).default([])
622
- }), Ge = d({
623
- completion: u({
624
- activate_on_typing: s().prefault(!0),
625
- signature_hint_on_typing: s().prefault(!1),
626
- auto_close_pairs: s().prefault(!0),
627
- copilot: l([s(), h([
812
+ ], J = f({
813
+ api_key: u().optional(),
814
+ base_url: u().optional(),
815
+ project: u().optional()
816
+ }).loose(), dt = f({
817
+ chat_model: u().nullish(),
818
+ edit_model: u().nullish(),
819
+ autocomplete_model: u().nullish(),
820
+ displayed_models: c(u()).default([]),
821
+ custom_models: c(u()).default([])
822
+ }), ft = s({
823
+ completion: f({
824
+ activate_on_typing: p().prefault(!0),
825
+ signature_hint_on_typing: p().prefault(!1),
826
+ auto_close_pairs: p().prefault(!0),
827
+ copilot: h([p(), m([
628
828
  "github",
629
829
  "codeium",
630
830
  "custom"
631
831
  ])]).prefault(!1).transform((e) => e === !0 ? "github" : e),
632
- codeium_api_key: c().nullish()
832
+ codeium_api_key: u().nullish()
833
+ }).prefault({}),
834
+ save: s({
835
+ autosave: m(["off", "after_delay"]).prefault("after_delay"),
836
+ autosave_delay: d().nonnegative().transform((e) => Math.max(e, 1e3)).prefault(1e3),
837
+ format_on_save: p().prefault(!1)
633
838
  }).prefault({}),
634
- save: d({
635
- autosave: h(["off", "after_delay"]).prefault("after_delay"),
636
- autosave_delay: m().nonnegative().transform((e) => Math.max(e, 1e3)).prefault(1e3),
637
- format_on_save: s().prefault(!1)
839
+ formatting: s({
840
+ line_length: d().nonnegative().prefault(79).transform((e) => Math.min(e, 1e3)),
841
+ infer_types: m(lt).prefault("off")
638
842
  }).prefault({}),
639
- formatting: d({ line_length: m().nonnegative().prefault(79).transform((e) => Math.min(e, 1e3)) }).prefault({}),
640
- keymap: d({
641
- preset: h(["default", "vim"]).prefault("default"),
642
- overrides: f(c(), c()).prefault({}),
643
- destructive_delete: s().prefault(!0)
843
+ keymap: s({
844
+ preset: m(["default", "vim"]).prefault("default"),
845
+ overrides: l(u(), u()).prefault({}),
846
+ destructive_delete: p().prefault(!0)
644
847
  }).prefault({}),
645
- runtime: d({
646
- auto_instantiate: s().prefault(!0),
647
- on_cell_change: h(["lazy", "autorun"]).prefault("autorun"),
648
- auto_reload: h([
848
+ runtime: s({
849
+ auto_instantiate: p().prefault(!0),
850
+ on_cell_change: m(["lazy", "autorun"]).prefault("autorun"),
851
+ auto_reload: m([
649
852
  "off",
650
853
  "lazy",
651
854
  "autorun"
652
855
  ]).prefault("off"),
653
- reactive_tests: s().prefault(!0),
654
- watcher_on_save: h(["lazy", "autorun"]).prefault("lazy"),
655
- default_sql_output: h(Ve).prefault("auto"),
656
- default_auto_download: p(h(He)).prefault([]),
657
- show_tracebacks: s().prefault(!1)
856
+ reactive_tests: p().prefault(!0),
857
+ watcher_on_save: m(["lazy", "autorun"]).prefault("lazy"),
858
+ default_sql_output: m(st).prefault("auto"),
859
+ default_auto_download: c(m(ct)).prefault([]),
860
+ show_tracebacks: p().prefault(!1)
658
861
  }).prefault({}),
659
- display: d({
660
- theme: h([
862
+ display: s({
863
+ theme: m([
661
864
  "light",
662
865
  "dark",
663
866
  "system"
664
867
  ]).prefault("light"),
665
- code_editor_font_size: m().nonnegative().prefault(14),
666
- cell_output: h(["above", "below"]).prefault("below"),
667
- dataframes: h(["rich", "plain"]).prefault("rich"),
668
- default_table_page_size: m().prefault(10),
669
- default_table_max_columns: m().prefault(50),
670
- default_width: h(Be).prefault("medium").transform((e) => e === "normal" ? "compact" : e),
671
- locale: c().nullable().optional(),
672
- reference_highlighting: s().prefault(!0),
673
- code_lens: s().prefault(!0)
868
+ code_editor_font_size: d().nonnegative().prefault(14),
869
+ cell_output: m(["above", "below"]).prefault("below"),
870
+ dataframes: m(["rich", "plain"]).prefault("rich"),
871
+ default_table_page_size: d().prefault(10),
872
+ default_table_max_columns: d().prefault(50),
873
+ default_width: m(ot).prefault("medium").transform((e) => e === "normal" ? "compact" : e),
874
+ locale: u().nullable().optional(),
875
+ reference_highlighting: p().prefault(!0),
876
+ code_lens: p().prefault(!0)
674
877
  }).prefault({}),
675
- package_management: d({ manager: h(ze).prefault("pip") }).prefault({}),
676
- ai: d({
677
- enabled: s().prefault(!0),
678
- rules: c().prefault(""),
679
- max_tokens: m().int().positive().nullable().optional(),
680
- mode: h(Ue).prefault("manual"),
681
- inline_tooltip: s().prefault(!1),
682
- allow_provider_config: s().prefault(!0),
878
+ package_management: s({ manager: m(at).prefault("pip") }).prefault({}),
879
+ ai: s({
880
+ enabled: p().prefault(!0),
881
+ rules: u().prefault(""),
882
+ max_tokens: d().int().positive().nullable().optional(),
883
+ mode: m(ut).transform((e) => e === "manual" ? "ask" : e).prefault("ask"),
884
+ inline_tooltip: p().prefault(!1),
885
+ allow_provider_config: p().prefault(!0),
683
886
  open_ai: J.optional(),
684
887
  github: J.optional(),
685
888
  anthropic: J.optional(),
@@ -690,40 +893,40 @@ var ze = [
690
893
  opencode_go: J.optional(),
691
894
  open_ai_compatible: J.optional(),
692
895
  azure: J.optional(),
693
- bedrock: d({
694
- region_name: c().optional(),
695
- profile_name: c().optional(),
696
- aws_access_key_id: c().optional(),
697
- aws_secret_access_key: c().optional()
896
+ bedrock: s({
897
+ region_name: u().optional(),
898
+ profile_name: u().optional(),
899
+ aws_access_key_id: u().optional(),
900
+ aws_secret_access_key: u().optional()
698
901
  }).optional(),
699
- custom_providers: f(c(), J).prefault({}),
700
- models: We.prefault({
902
+ custom_providers: l(u(), J).prefault({}),
903
+ models: dt.prefault({
701
904
  displayed_models: [],
702
905
  custom_models: []
703
906
  })
704
907
  }).prefault({}),
705
- experimental: d({
706
- markdown: s().optional(),
707
- rtc: s().optional()
908
+ experimental: s({
909
+ markdown: p().optional(),
910
+ rtc: p().optional()
708
911
  }).prefault(() => ({})),
709
- server: d({
710
- disable_file_downloads: s().optional(),
711
- transport: h(["websocket", "sse"]).optional()
912
+ server: s({
913
+ disable_file_downloads: p().optional(),
914
+ transport: m(["websocket", "sse"]).optional()
712
915
  }).prefault(() => ({})),
713
- diagnostics: d({
714
- enabled: s().optional(),
715
- sql_linter: s().optional()
916
+ diagnostics: s({
917
+ enabled: p().optional(),
918
+ sql_linter: p().optional()
716
919
  }).prefault(() => ({})),
717
- file_browser: d({ folders: p(u({
718
- path: c(),
719
- name: c().optional()
920
+ file_browser: s({ folders: c(f({
921
+ path: u(),
922
+ name: u().optional()
720
923
  })).optional() }).optional().prefault({}),
721
- sharing: d({
722
- html: s().optional(),
723
- wasm: s().optional(),
724
- molab: s().optional()
924
+ sharing: s({
925
+ html: p().optional(),
926
+ wasm: p().optional(),
927
+ molab: p().optional()
725
928
  }).optional(),
726
- mcp: d({ presets: p(h(["marimo", "context7"])).optional() }).optional().prefault({})
929
+ mcp: s({ presets: c(m(["marimo", "context7"])).optional() }).optional().prefault({})
727
930
  }).partial().prefault(() => ({
728
931
  completion: {},
729
932
  save: {},
@@ -738,27 +941,27 @@ var ze = [
738
941
  ai: {},
739
942
  package_management: {},
740
943
  mcp: {}
741
- })), Ke = c(), qe = h(Ve).prefault("auto"), Y = u({
742
- width: h(Be).prefault("medium").transform((e) => e === "normal" ? "compact" : e),
743
- app_title: Ke.nullish(),
744
- css_file: c().nullish(),
745
- html_head_file: c().nullish(),
746
- auto_download: p(h(He)).prefault([]),
747
- sql_output: qe
944
+ })), pt = u(), mt = m(st).prefault("auto"), ht = f({
945
+ width: m(ot).prefault("compact").transform((e) => e === "normal" ? "compact" : e),
946
+ app_title: pt.nullish(),
947
+ css_file: u().nullish(),
948
+ html_head_file: u().nullish(),
949
+ auto_download: c(m(ct)).prefault([]),
950
+ sql_output: mt
748
951
  }).prefault(() => ({
749
- width: "medium",
952
+ width: "compact",
750
953
  auto_download: [],
751
954
  sql_output: "auto"
752
955
  }));
753
- function Je(e) {
956
+ function gt(e) {
754
957
  try {
755
- return Y.parse(e);
958
+ return ht.parse(e);
756
959
  } catch (e) {
757
- return r.error(`Marimo got an unexpected value in the configuration file: ${e}`), Y.parse({});
960
+ return r.error(`Marimo got an unexpected value in the configuration file: ${e}`), ht.parse({});
758
961
  }
759
962
  }
760
- function Ye() {
761
- return Ge.parse({
963
+ function _t() {
964
+ return ft.parse({
762
965
  completion: {},
763
966
  save: {},
764
967
  formatting: {},
@@ -776,47 +979,52 @@ function Ye() {
776
979
  }
777
980
  //#endregion
778
981
  //#region src/core/config/config.ts
779
- function Xe(...e) {
982
+ function vt(...e) {
780
983
  return v({}, ...e, (e, t) => {
781
984
  if (Array.isArray(t)) return [...t];
782
985
  });
783
986
  }
784
- var X = R(Ye()), Ze = R({}), Z = R((e) => {
785
- let t = e(Ze);
786
- return Xe(e(X), t);
787
- }), Qe = R((e) => e(Z).runtime.auto_instantiate), $e = R((e) => e(Z).keymap.overrides ?? {}), et = R(i());
788
- R((e) => {
789
- let t = e($e), r = e(et);
987
+ var Y = F(_t()), yt = F({}), X = F((e) => {
988
+ let t = e(yt);
989
+ return vt(e(Y), t);
990
+ }), bt = F((e) => e(X).runtime.auto_instantiate), xt = F((e) => e(X).keymap.overrides ?? {}), St = F(i());
991
+ F((e) => {
992
+ let t = e(xt), r = e(St);
790
993
  return new n(t, { platform: r });
791
- }), R((e) => e(Z).save), R((e) => e(Z).server.transport === "sse" ? "sse" : "websocket"), R((e) => e(Z).ai), R((e) => e(Z).completion), R((e) => e(Z).keymap.preset);
792
- function tt() {
793
- let e = (0, C.c)(3), t = G(Z), n = K(X), r;
994
+ }), F((e) => e(X).save), F((e) => e(X).server.transport === "sse" ? "sse" : "websocket"), F((e) => e(X).ai), F((e) => e(X).completion), F((e) => e(X).keymap.preset);
995
+ function Ct() {
996
+ let e = (0, W.c)(3), t = H(X), n = U(Y), r;
794
997
  return e[0] !== t || e[1] !== n ? (r = [t, n], e[0] = t, e[1] = n, e[2] = r) : r = e[2], r;
795
998
  }
796
- function nt() {
797
- return q.get(Z);
999
+ function wt() {
1000
+ return q.get(X);
798
1001
  }
799
- R((e) => ot(e(Z)));
800
- var rt = R((e) => st(e(Z))), it = R((e) => ct(e(Z)));
801
- R((e) => e(Z).display.code_editor_font_size);
802
- var at = R((e) => e(Z).display.locale);
803
- function ot(e) {
1002
+ F((e) => Z(e(X)));
1003
+ var Tt = F((e) => Ot(e(X))), Et = F((e) => kt(e(X)));
1004
+ F((e) => e(X).display.code_editor_font_size);
1005
+ var Dt = F((e) => e(X).display.locale);
1006
+ function Z(e) {
804
1007
  return e.ai?.enabled !== !1;
805
1008
  }
806
- function st(e) {
1009
+ function Ot(e) {
807
1010
  return !!e.ai?.models?.chat_model || !!e.ai?.models?.edit_model || !!e.ai?.models?.autocomplete_model;
808
1011
  }
809
- function ct(e) {
810
- return ot(e) && st(e);
1012
+ function kt(e) {
1013
+ return Z(e) && Ot(e);
811
1014
  }
812
- var lt = R(Je({}));
813
- R((e) => e(lt).width), R((e) => {
814
- let t = e(Z), n = t.snippets?.custom_paths ?? [], r = t.snippets?.include_default_snippets;
1015
+ var At = F({}), jt = Re(F((e) => e(it)?.revision.app_config ?? e(At)), (e) => e, K), Mt = F((e) => gt(e(jt)));
1016
+ F((e) => e(Mt).width), F((e) => {
1017
+ let t = e(X), n = t.snippets?.custom_paths ?? [], r = t.snippets?.include_default_snippets;
815
1018
  return n.length > 0 || r === !0;
816
- }), R((e) => e(Z).server?.disable_file_downloads ?? !1);
1019
+ }), F((e) => e(X).server?.disable_file_downloads ?? !1);
1020
+ //#endregion
1021
+ //#region src/core/islands/utils.ts
1022
+ function Nt() {
1023
+ return !0;
1024
+ }
817
1025
  //#endregion
818
1026
  //#region src/core/constants.ts
819
- var ut = {
1027
+ var Pt = {
820
1028
  githubPage: "https://github.com/marimo-team/marimo",
821
1029
  releasesPage: "https://github.com/marimo-team/marimo/releases",
822
1030
  issuesPage: "https://github.com/marimo-team/marimo/issues",
@@ -826,7 +1034,7 @@ var ut = {
826
1034
  docsPage: "https://docs.marimo.io",
827
1035
  youtube: "https://www.youtube.com/@marimo-team",
828
1036
  molab: "https://molab.marimo.io"
829
- }, dt = {
1037
+ }, Ft = {
830
1038
  showCode: "show-code",
831
1039
  includeCode: "include-code",
832
1040
  sessionId: "session_id",
@@ -837,18 +1045,18 @@ var ut = {
837
1045
  viewAs: "view-as",
838
1046
  showChrome: "show-chrome",
839
1047
  theme: "theme"
840
- }, ft = { outputArea: "output-area" }, pt = [
1048
+ }, It = { outputArea: "output-area" }, Lt = [
841
1049
  "light",
842
1050
  "dark",
843
1051
  "system"
844
1052
  ];
845
- function mt() {
1053
+ function Rt() {
846
1054
  if (typeof window > "u") return;
847
- let e = new URLSearchParams(window.location.search).get(dt.theme);
848
- return pt.includes(e) ? e : void 0;
1055
+ let e = new URLSearchParams(window.location.search).get(Ft.theme);
1056
+ return Lt.includes(e) ? e : void 0;
849
1057
  }
850
- var ht = R((e) => {
851
- if (Pe()) {
1058
+ var zt = F((e) => {
1059
+ if (Nt()) {
852
1060
  if (document.body.classList.contains("dark-mode") || document.body.classList.contains("dark") || document.body.dataset.theme === "dark" || document.body.dataset.mode === "dark" || $() === "dark") return "dark";
853
1061
  let e = window.getComputedStyle(document.body), t = e.getPropertyValue("color-scheme").trim();
854
1062
  if (t) return t.includes("dark") ? "dark" : "light";
@@ -859,16 +1067,16 @@ var ht = R((e) => {
859
1067
  }
860
1068
  return "light";
861
1069
  }
862
- return mt() ?? e(Z).display.theme;
863
- }), Q = R(!1);
864
- function gt() {
1070
+ return Rt() ?? e(X).display.theme;
1071
+ }), Q = F(!1);
1072
+ function Bt() {
865
1073
  if (typeof window > "u" || !window.matchMedia) return;
866
1074
  let e = window.matchMedia("(prefers-color-scheme: dark)");
867
1075
  q.set(Q, e.matches), e.addEventListener("change", (e) => {
868
1076
  q.set(Q, e.matches);
869
1077
  });
870
1078
  }
871
- gt();
1079
+ Bt();
872
1080
  function $() {
873
1081
  switch (document.body.dataset.vscodeThemeKind) {
874
1082
  case "vscode-dark": return "dark";
@@ -876,29 +1084,29 @@ function $() {
876
1084
  case "vscode-light": return "light";
877
1085
  }
878
1086
  }
879
- var _t = R($());
880
- function vt() {
1087
+ var Vt = F($());
1088
+ function Ht() {
881
1089
  let e = new MutationObserver(() => {
882
1090
  let e = $();
883
- q.set(_t, e);
1091
+ q.set(Vt, e);
884
1092
  });
885
1093
  return e.observe(document.body, {
886
1094
  attributes: !0,
887
1095
  attributeFilter: ["data-vscode-theme-kind"]
888
1096
  }), () => e.disconnect();
889
1097
  }
890
- vt();
891
- var yt = R((e) => {
892
- let t = e(ht), n = e(_t);
1098
+ Ht();
1099
+ var Ut = F((e) => {
1100
+ let t = e(zt), n = e(Vt);
893
1101
  if (n !== void 0) return n;
894
1102
  let r = e(Q);
895
1103
  return t === "system" ? r ? "dark" : "light" : t;
896
1104
  });
897
- function bt() {
898
- let e = (0, C.c)(3), t;
1105
+ function Wt() {
1106
+ let e = (0, W.c)(3), t;
899
1107
  e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = { store: q }, e[0] = t) : t = e[0];
900
- let n = G(yt, t), r;
1108
+ let n = H(Ut, t), r;
901
1109
  return e[1] === n ? r = e[2] : (r = { theme: n }, e[1] = n, e[2] = r), r;
902
1110
  }
903
1111
  //#endregion
904
- export { x as A, G as C, z as D, R as E, D as O, Ne as S, V as T, q as _, dt as a, Pe as b, Qe as c, Xe as d, Z as f, Re as g, Y as h, ut as i, E as k, nt as l, X as m, bt as n, it as o, tt as p, ft as r, rt as s, yt as t, at as u, Ie as v, K as w, Ae as x, Fe as y };
1112
+ export { ke as A, K as C, qe as D, Ye as E, F, I, C as L, H as M, U as N, Re as O, R as P, x as R, Qe as S, Pe as T, nt as _, Ft as a, q as b, Tt as c, Dt as d, vt as f, rt as g, Y as h, Pt as i, Me as j, Ge as k, bt as l, Ct as m, Wt as n, Nt as o, X as p, It as r, Et as s, Ut as t, wt as u, it as v, Fe as w, $e as x, tt as y };