@marimo-team/frontend 0.25.1-dev90 → 0.25.2-dev0

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 (365) hide show
  1. package/dist/assets/{ConnectedDataExplorerComponent-Bdak5-o8.js → ConnectedDataExplorerComponent-DJ5jwKfp.js} +1 -1
  2. package/dist/assets/{ErrorBoundary-DrliQ_7g.js → ErrorBoundary-BeE1cdgM.js} +2 -2
  3. package/dist/assets/{ImageComparisonComponent-DLxkuRy3.js → ImageComparisonComponent-pCLPT6RA.js} +1 -1
  4. package/dist/assets/LazyAnyLanguageCodeMirror-B_IYTCX5.js +2 -0
  5. package/dist/assets/{RunButton-qknEPbRR.js → RunButton-C2kFUhyO.js} +10 -10
  6. package/dist/assets/{abnfDiagram-VCTEODGH-dm832Yw9.js → abnfDiagram-VCTEODGH-CSPJSGaM.js} +1 -1
  7. package/dist/assets/add-cell-with-ai-BFgdVPaN.js +76 -0
  8. package/dist/assets/{agent-panel-CJva58SL.js → agent-panel-Dh7yWh9P.js} +5 -5
  9. package/dist/assets/ai-model-dropdown-DJ2elMLM.js +5 -0
  10. package/dist/assets/{any-language-editor-B7QvjaYO.js → any-language-editor-Cj_HzlZY.js} +1 -1
  11. package/dist/assets/app-config-button-DBCTefOX.js +1 -0
  12. package/dist/assets/{architectureDiagram-5GKGNRK7-CiRaYU5G.js → architectureDiagram-5GKGNRK7-7iukRoC9.js} +1 -1
  13. package/dist/assets/{blockDiagram-I7D4REHJ-BK3JcsXA.js → blockDiagram-I7D4REHJ-cuhpQB60.js} +1 -1
  14. package/dist/assets/{c4Diagram-7LVT6UL2-BbMz-zwF.js → c4Diagram-7LVT6UL2-CMQEYn6T.js} +1 -1
  15. package/dist/assets/{cache-panel-DxdmvFwH.js → cache-panel-C0oB1kE2.js} +1 -1
  16. package/dist/assets/{cells-BcQ8Tm3j.js → cells-CzugpTQu.js} +33 -33
  17. package/dist/assets/channel-CGdeorQk.js +1 -0
  18. package/dist/assets/{chat-display-TI342pMF.js → chat-display-DevO4F8W.js} +1 -1
  19. package/dist/assets/chat-panel-BGw0bqDk.js +4 -0
  20. package/dist/assets/{chat-ui-B1aeiWdr.js → chat-ui-CZZFGlZi.js} +4 -4
  21. package/dist/assets/{chunk-4HAMMTFA-F3WVmmmo.js → chunk-4HAMMTFA-C6Tl7kEY.js} +1 -1
  22. package/dist/assets/{chunk-75Z2AOVW-DA_lihEi.js → chunk-75Z2AOVW-BzzYECN7.js} +1 -1
  23. package/dist/assets/{chunk-DU6HZSFF-J-califE.js → chunk-DU6HZSFF-BlpgvKzl.js} +2 -2
  24. package/dist/assets/{chunk-F27PBJKO-BzJrz4xx.js → chunk-F27PBJKO-BVIgLGPF.js} +1 -1
  25. package/dist/assets/{chunk-GMAD6QVW-mXoq4V-T.js → chunk-GMAD6QVW-hv6IsAru.js} +1 -1
  26. package/dist/assets/{chunk-GVQU2GXP-B-87l3Xt.js → chunk-GVQU2GXP-Duv4ZYb-.js} +1 -1
  27. package/dist/assets/{chunk-IMKFNOWR-yy9Ec7ZM.js → chunk-IMKFNOWR-BIILwBhp.js} +1 -1
  28. package/dist/assets/{chunk-L3NEJ4N5-DLeZO9l0.js → chunk-L3NEJ4N5-B2hafvRU.js} +1 -1
  29. package/dist/assets/{chunk-OSK3NFVY-PWoOtECb.js → chunk-OSK3NFVY-SNGRdtNA.js} +1 -1
  30. package/dist/assets/{chunk-P2QGCYS3-DsJshZeL.js → chunk-P2QGCYS3-_SeE0QXb.js} +1 -1
  31. package/dist/assets/{chunk-POPQ4Y6H-CCg5TpSp.js → chunk-POPQ4Y6H-BB5NNJFE.js} +1 -1
  32. package/dist/assets/{chunk-PWAF6VOD-CrFPAGFi.js → chunk-PWAF6VOD-BZoBqp8x.js} +1 -1
  33. package/dist/assets/{chunk-SHT3W25Y-lri4OQTX.js → chunk-SHT3W25Y-BtLGdeDB.js} +1 -1
  34. package/dist/assets/{chunk-SVP7TREG-B3ISFgJc.js → chunk-SVP7TREG-B0UfxhUP.js} +1 -1
  35. package/dist/assets/{chunk-TICWLB2K-CJ7ETjY3.js → chunk-TICWLB2K-BP7vel_P.js} +1 -1
  36. package/dist/assets/classDiagram-ZZMXUADV-CoNXKNMZ.js +1 -0
  37. package/dist/assets/classDiagram-v2-VYDZK3BY-CoNXKNMZ.js +1 -0
  38. package/dist/assets/code-visibility-BFNYI7hr.js +1 -0
  39. package/dist/assets/command-palette-DN4JoOLD.js +1 -0
  40. package/dist/assets/{common-cDzShymV.js → common-DUCPhoyP.js} +1 -1
  41. package/dist/assets/{components-B3KlHXnD.js → components-CK7CeYlo.js} +1 -1
  42. package/dist/assets/components-DAmFBASm.js +1 -0
  43. package/dist/assets/config-B4VJJibu.js +1 -0
  44. package/dist/assets/{utils-B3E7otfg.js → config-BxZgoFvi.js} +1 -1
  45. package/dist/assets/config-DpGPGznL.js +1 -0
  46. package/dist/assets/{cynefinDiagram-5FMLGOSQ-1zl1wSTB.js → cynefinDiagram-5FMLGOSQ-BARZRQBb.js} +1 -1
  47. package/dist/assets/{dagre-DM-Ch8wC.js → dagre-DVyyr7Cb.js} +1 -1
  48. package/dist/assets/{dagre-GXQ25YYZ-BqoUeivc.js → dagre-GXQ25YYZ-79s0lOP0.js} +1 -1
  49. package/dist/assets/data-grid-overlay-editor-DPfnIudL.js +1 -0
  50. package/dist/assets/{dependency-graph-panel-C-SFFOPF.js → dependency-graph-panel-BN4CLayU.js} +3 -3
  51. package/dist/assets/{diagram-S7CK7UJ4-CF90sb1m.js → diagram-S7CK7UJ4-BCviGhvd.js} +1 -1
  52. package/dist/assets/{diagram-UQ7AKVKN-DgbZAUCH.js → diagram-UQ7AKVKN-Ds-BT46T.js} +1 -1
  53. package/dist/assets/{diagram-VSXAHHWV-DOQllF_r.js → diagram-VSXAHHWV-CK4GkM-q.js} +1 -1
  54. package/dist/assets/{diagram-VX7I27RA-6dC0a_-i.js → diagram-VX7I27RA-BtL2eh0t.js} +1 -1
  55. package/dist/assets/{diagram-Z3DM3KII-C1OXYmlB.js → diagram-Z3DM3KII-C6SmbLBS.js} +1 -1
  56. package/dist/assets/{dist-0HQ0BMF5.js → dist-CQvJDryh.js} +1 -1
  57. package/dist/assets/{documentation-panel-idK3s0j3.js → documentation-panel-CzRbXV5u.js} +1 -1
  58. package/dist/assets/{ebnfDiagram-PWID7BFC-7gC3cuC7.js → ebnfDiagram-PWID7BFC-D_JU4cMQ.js} +1 -1
  59. package/dist/assets/edit-page-jGNYBqQo.js +174 -0
  60. package/dist/assets/{erDiagram-RLTQ6QDP-BsE87b_i.js → erDiagram-RLTQ6QDP-Z9MJ6X-r.js} +1 -1
  61. package/dist/assets/{error-entries-C-LFkdXb.js → error-entries-CDSsy76p.js} +1 -1
  62. package/dist/assets/{error-panel-YAFgCest.js → error-panel-ABvjFG3p.js} +1 -1
  63. package/dist/assets/{feedback-button-sRQQL2TH.js → feedback-button-CZhLiwkO.js} +2 -2
  64. package/dist/assets/file-explorer-panel-DTiEpmVE.js +1 -0
  65. package/dist/assets/file-name-input-C1C8xrjA.js +3 -0
  66. package/dist/assets/filename-fxG7K_MU.js +1 -0
  67. package/dist/assets/flowDiagram-HODETNUW-ncLciK2K.js +1 -0
  68. package/dist/assets/{gallery-page-CH8TM7bV.js → gallery-page-Moi4ZdJ0.js} +1 -1
  69. package/dist/assets/{ganttDiagram-EL5Y4UJY-d9Qqbnau.js → ganttDiagram-EL5Y4UJY-Cgy11k0G.js} +1 -1
  70. package/dist/assets/{gitGraphDiagram-WWUBYQGX-DBunV_fz.js → gitGraphDiagram-WWUBYQGX-CVH8fay_.js} +1 -1
  71. package/dist/assets/glide-data-editor-CbsCWu-K.js +131 -0
  72. package/dist/assets/{graphlib-DDJ8O6ZH.js → graphlib-3maKwbRO.js} +1 -1
  73. package/dist/assets/has-cJsIKK9t.js +1 -0
  74. package/dist/assets/home-page-UAgVOkCZ.js +4 -0
  75. package/dist/assets/index--sT8xf-8.css +2 -0
  76. package/dist/assets/index-DafnX1Xx.js +62 -0
  77. package/dist/assets/{infoDiagram-27XIBGKW-FE7De1I6.js → infoDiagram-27XIBGKW-Dk8U81nJ.js} +1 -1
  78. package/dist/assets/{ishikawaDiagram-5VMMS53U-CSEGYrJ-.js → ishikawaDiagram-5VMMS53U-CzHQlMUQ.js} +1 -1
  79. package/dist/assets/{journeyDiagram-3NMN7TZE-Cp4mxQrE.js → journeyDiagram-3NMN7TZE-DRc8ACzh.js} +1 -1
  80. package/dist/assets/{kanban-definition-UXKFOSKX-d7iAZsOb.js → kanban-definition-UXKFOSKX-CVyVYiI6.js} +1 -1
  81. package/dist/assets/katex-DkE0ukCy.js +257 -0
  82. package/dist/assets/{logs-panel-xMj01DRN.js → logs-panel-Bz5ysVX4.js} +1 -1
  83. package/dist/assets/{mermaid-CNjXdDrA.js → mermaid-D_jPUVqz.js} +4 -4
  84. package/dist/assets/mhchem-CmzEtQj8.js +1 -0
  85. package/dist/assets/{mindmap-definition-YA3MSWOX-CddM9_uP.js → mindmap-definition-YA3MSWOX-D5t6Aq5Z.js} +1 -1
  86. package/dist/assets/{number-overlay-editor-N57if5NT.js → number-overlay-editor-FAD8sjFU.js} +1 -1
  87. package/dist/assets/{outline-panel-Garp-f5k.js → outline-panel-85oiQ0XX.js} +1 -1
  88. package/dist/assets/packages-panel-ClKIaP5S.js +1 -0
  89. package/dist/assets/{panels-CnbmgzkS.js → panels-B48zp96D.js} +9 -9
  90. package/dist/assets/{pegDiagram-XKGWAZYB-CEns8d-M.js → pegDiagram-XKGWAZYB-BTkTm4ej.js} +1 -1
  91. package/dist/assets/{pieDiagram-E7YTZNPT-wyb0xQ0R.js → pieDiagram-E7YTZNPT-Bq6X88M1.js} +1 -1
  92. package/dist/assets/{process-output-ObDfw1uu.js → process-output-Cg2ta3vY.js} +1 -1
  93. package/dist/assets/{quadrantDiagram-AXDQQJYC-BE-xlTLH.js → quadrantDiagram-AXDQQJYC-D_wrOwLk.js} +1 -1
  94. package/dist/assets/{railroadDiagram-O6MQD6OU-DZZVHmr2.js → railroadDiagram-O6MQD6OU-fv8HXW_g.js} +1 -1
  95. package/dist/assets/{requirementDiagram-BXWQKSXE-C3Bf4dd5.js → requirementDiagram-BXWQKSXE-DDOOMUfC.js} +1 -1
  96. package/dist/assets/{reveal-component-DgrXq3Kv.js → reveal-component-CR43gpTZ.js} +3 -3
  97. package/dist/assets/run-page-NR_KFWk8.js +1 -0
  98. package/dist/assets/{sankeyDiagram-P5KCCOFB-BWLQCyjK.js → sankeyDiagram-P5KCCOFB-CvvUY6tS.js} +1 -1
  99. package/dist/assets/scratchpad-panel-DHc-oVb1.js +1 -0
  100. package/dist/assets/{secrets-panel-4dRIaZfY.js → secrets-panel-C-65ZjnM.js} +1 -1
  101. package/dist/assets/{sequenceDiagram-WJ2MYXX4-BIY0mgX7.js → sequenceDiagram-WJ2MYXX4-DdpBhQaS.js} +1 -1
  102. package/dist/assets/session-DXKMv4Bs.js +1 -0
  103. package/dist/assets/session-panel-DiwQqIbt.js +1 -0
  104. package/dist/assets/{SelectionIndicator-DLJBcP4e.js → shell-BSnvn9t7.js} +1 -1
  105. package/dist/assets/snippets-panel-BLmXrneD.js +1 -0
  106. package/dist/assets/{stateDiagram-D77RDMKH-D_xRHRLf.js → stateDiagram-D77RDMKH-D3p19fac.js} +1 -1
  107. package/dist/assets/stateDiagram-v2-MP3YSRHH-CplsDaDl.js +1 -0
  108. package/dist/assets/{swimlanes-42K2YHIH-CDQzpfz0.js → swimlanes-42K2YHIH-CLxCSvU4.js} +1 -1
  109. package/dist/assets/swimlanesDiagram-VR7AAH4N-DPoIFx8T.js +8 -0
  110. package/dist/assets/{swiper-component-j-Lk25wW.js → swiper-component-rqJChT_P.js} +1 -1
  111. package/dist/assets/{terminal-BToH-U1t.js → terminal-CY4h1UmO.js} +1 -1
  112. package/dist/assets/{timeline-definition-24CTP7MA-D5Jgj1fz.js → timeline-definition-24CTP7MA-Cw2PY--x.js} +1 -1
  113. package/dist/assets/tooltip-PLkI_UfK.js +61 -0
  114. package/dist/assets/{tracing-DtKLmNHj.js → tracing-Q8NAdlrA.js} +1 -1
  115. package/dist/assets/tracing-panel-Ci4kY4dr.js +2 -0
  116. package/dist/assets/useCellActionButton-DpYtVfFe.js +1 -0
  117. package/dist/assets/useTheme-DcnXlv0_.js +1 -0
  118. package/dist/assets/{constants-BDbGiS7O.js → utils-B4K466FK.js} +1 -1
  119. package/dist/assets/{vega-component-DVSvu4vP.js → vega-component-BpoSew4K.js} +1 -1
  120. package/dist/assets/{vega-embed-container-QM1zZmYi.js → vega-embed-container-BOJG8mCA.js} +1 -1
  121. package/dist/assets/{vennDiagram-4TSXK5OY-Cv6jxbpX.js → vennDiagram-4TSXK5OY-D8bN6lVl.js} +1 -1
  122. package/dist/assets/{wardleyDiagram-VM6X3IG4-lwv-YoWo.js → wardleyDiagram-VM6X3IG4-CbZdo0SA.js} +1 -1
  123. package/dist/assets/{write-secret-modal-CBUZw27N.js → write-secret-modal-BiG2tahJ.js} +1 -1
  124. package/dist/assets/{xychartDiagram-S5SC5T6Z-CGM4LlFN.js → xychartDiagram-S5SC5T6Z-DUUQ9tau.js} +1 -1
  125. package/dist/assets/youtube-A9VT7NHb.js +1 -0
  126. package/dist/index.html +14 -13
  127. package/package.json +1 -2
  128. package/src/__mocks__/common.ts +3 -3
  129. package/src/__tests__/CellStatus.test.tsx +1 -1
  130. package/src/__tests__/setup.ts +7 -7
  131. package/src/components/app-config/ai-config.tsx +2 -0
  132. package/src/components/app-config/optional-features.tsx +1 -1
  133. package/src/components/chat/chat-panel.tsx +19 -8
  134. package/src/components/data-table/TableTopBar.tsx +2 -2
  135. package/src/components/data-table/__tests__/export-actions.test.tsx +662 -0
  136. package/src/components/data-table/charts/__tests__/chart-panel.test.tsx +286 -0
  137. package/src/components/data-table/charts/charts.tsx +26 -13
  138. package/src/components/data-table/column-summary/chart-spec-model.tsx +4 -4
  139. package/src/components/data-table/data-table.tsx +1 -1
  140. package/src/components/data-table/export-actions.tsx +642 -176
  141. package/src/components/data-table/schemas.ts +25 -3
  142. package/src/components/dependency-graph/elements.ts +2 -2
  143. package/src/components/editor/__tests__/package-alert.test.tsx +140 -0
  144. package/src/components/editor/actions/__tests__/pair-with-agent.test.tsx +107 -0
  145. package/src/components/editor/actions/pair-with-agent.tsx +119 -0
  146. package/src/components/editor/actions/useNotebookActions.tsx +2 -1
  147. package/src/components/editor/ai/add-cell-with-ai.tsx +2 -0
  148. package/src/components/editor/ai/staged-cell-submission.ts +2 -2
  149. package/src/components/editor/ai/transport/chat-transport.tsx +1 -1
  150. package/src/components/editor/chrome/components/contribute-snippet-button.tsx +6 -1
  151. package/src/components/editor/connections/database/as-code.ts +44 -44
  152. package/src/components/editor/connections/storage/as-code.ts +3 -3
  153. package/src/components/editor/file-tree/requesting-tree.tsx +16 -13
  154. package/src/components/editor/navigation/clipboard.ts +2 -2
  155. package/src/components/editor/notebook-cell.tsx +2 -2
  156. package/src/components/editor/output/MarimoTracebackOutput.tsx +1 -1
  157. package/src/components/editor/output/VideoOutput.tsx +1 -1
  158. package/src/components/editor/output/ansi-reduce.ts +21 -17
  159. package/src/components/editor/output/console/ConsoleOutput.tsx +3 -3
  160. package/src/components/editor/output/console/__tests__/ConsoleOutput.test.tsx +59 -0
  161. package/src/components/editor/output/console/text-rendering.tsx +3 -1
  162. package/src/components/editor/package-alert.tsx +20 -7
  163. package/src/components/home/components.tsx +1 -0
  164. package/src/components/markdown/markdown-renderer.css +1 -1
  165. package/src/components/pages/run-page.tsx +1 -0
  166. package/src/components/slides/__tests__/minimap-actions.test.tsx +7 -7
  167. package/src/components/slides/__tests__/minimap.test.ts +12 -12
  168. package/src/components/slides/__tests__/slide-scroll-hint.test.tsx +8 -8
  169. package/src/components/static-html/__tests__/share-modal.test.tsx +154 -0
  170. package/src/components/static-html/__tests__/stage-for-publish.test.ts +111 -0
  171. package/src/components/static-html/share-modal.tsx +114 -144
  172. package/src/components/static-html/stage-for-publish.ts +56 -0
  173. package/src/components/static-html/static-banner.tsx +2 -2
  174. package/src/components/ui/links.tsx +6 -1
  175. package/src/components/ui/typography.tsx +16 -8
  176. package/src/core/ai/context/__tests__/registry.test.ts +31 -28
  177. package/src/core/ai/context/providers/cell-output.ts +8 -8
  178. package/src/core/ai/context/providers/datasource.ts +10 -7
  179. package/src/core/ai/context/providers/error.ts +7 -7
  180. package/src/core/ai/context/providers/file.ts +8 -8
  181. package/src/core/ai/context/providers/tables.ts +7 -7
  182. package/src/core/ai/context/providers/variable.ts +7 -7
  183. package/src/core/ai/context/registry.ts +18 -18
  184. package/src/core/ai/ids/ids.ts +5 -5
  185. package/src/core/ai/model-registry.ts +12 -9
  186. package/src/core/ai/staged-cells.ts +6 -6
  187. package/src/core/ai/tools/base.ts +6 -6
  188. package/src/core/ai/tools/edit-notebook-tool.ts +6 -6
  189. package/src/core/ai/tools/registry.ts +4 -4
  190. package/src/core/ai/tools/run-cells-tool.ts +7 -7
  191. package/src/core/ai/tools/sample-tool.ts +6 -6
  192. package/src/core/cells/__tests__/cells.test.ts +27 -0
  193. package/src/core/cells/cells.ts +2 -1
  194. package/src/core/codemirror/cells/debugger-decorations.ts +13 -7
  195. package/src/core/codemirror/cells/line-timing-decorations.ts +9 -9
  196. package/src/core/codemirror/cells/traceback-decorations.ts +7 -4
  197. package/src/core/codemirror/code-lens/extension.ts +13 -13
  198. package/src/core/codemirror/copilot/__tests__/language-server.test.ts +6 -6
  199. package/src/core/codemirror/copilot/__tests__/transport.test.ts +12 -12
  200. package/src/core/codemirror/copilot/language-server.ts +13 -13
  201. package/src/core/codemirror/copilot/transport.ts +1 -1
  202. package/src/core/codemirror/find-replace/search-highlight.ts +5 -5
  203. package/src/core/codemirror/go-to-definition/underline.ts +3 -3
  204. package/src/core/codemirror/keymaps/vim.ts +3 -3
  205. package/src/core/codemirror/language/languages/markdown.ts +8 -8
  206. package/src/core/codemirror/language/languages/python.ts +7 -7
  207. package/src/core/codemirror/language/languages/sql/completion-builder.ts +5 -5
  208. package/src/core/codemirror/language/languages/sql/completion-store.ts +4 -4
  209. package/src/core/codemirror/language/languages/sql/sql.ts +21 -21
  210. package/src/core/codemirror/lsp/__tests__/transports.test.ts +10 -10
  211. package/src/core/codemirror/lsp/federated-lsp.ts +29 -27
  212. package/src/core/codemirror/lsp/notebook-lsp.ts +21 -21
  213. package/src/core/codemirror/misc/__tests__/dnd.test.ts +10 -10
  214. package/src/core/codemirror/misc/__tests__/paste.test.ts +7 -4
  215. package/src/core/codemirror/reactive-references/extension.ts +3 -3
  216. package/src/core/codemirror/rtc/loro/awareness.ts +12 -12
  217. package/src/core/codemirror/rtc/loro/sync.ts +5 -5
  218. package/src/core/codemirror/vim/cursor-visibility.ts +3 -3
  219. package/src/core/dom/ui-element.ts +5 -5
  220. package/src/core/dom/uiregistry.ts +10 -10
  221. package/src/core/hotkeys/hotkeys.ts +9 -9
  222. package/src/core/islands/__tests__/bridge.test.ts +4 -4
  223. package/src/core/islands/__tests__/test-utils.tsx +4 -4
  224. package/src/core/islands/bridge.ts +85 -82
  225. package/src/core/islands/components/web-components.tsx +7 -7
  226. package/src/core/islands/worker/__tests__/controller.test.ts +1 -1
  227. package/src/core/islands/worker/controller.ts +6 -3
  228. package/src/core/islands/worker-factory.ts +2 -2
  229. package/src/core/kernel/RuntimeState.ts +4 -4
  230. package/src/core/kernel/__tests__/session.test.ts +110 -1
  231. package/src/core/kernel/session.ts +46 -15
  232. package/src/core/lsp/__tests__/transport.test.ts +19 -19
  233. package/src/core/lsp/transport.ts +5 -5
  234. package/src/core/network/CachingRequestRegistry.ts +2 -2
  235. package/src/core/network/DeferredRequestRegistry.ts +4 -4
  236. package/src/core/network/__tests__/export-asset-url.test.ts +45 -0
  237. package/src/core/network/export-asset-url.ts +19 -0
  238. package/src/core/network/requests-network.ts +2 -7
  239. package/src/core/runtime/runtime.ts +25 -20
  240. package/src/core/static/virtual-file-tracker.ts +5 -5
  241. package/src/core/wasm/__tests__/bridge.test.ts +2 -2
  242. package/src/core/wasm/bridge.ts +132 -133
  243. package/src/core/wasm/router.ts +5 -5
  244. package/src/core/wasm/store.ts +4 -4
  245. package/src/core/wasm/worker/bootstrap.ts +8 -5
  246. package/src/core/wasm/worker/message-buffer.ts +3 -3
  247. package/src/core/websocket/transports/__tests__/ws.test.ts +8 -8
  248. package/src/core/websocket/transports/basic.ts +15 -8
  249. package/src/core/websocket/transports/sse.ts +7 -7
  250. package/src/core/websocket/transports/transport.ts +3 -3
  251. package/src/core/websocket/transports/ws.ts +9 -7
  252. package/src/css/globals.css +18 -21
  253. package/src/css/katex.min.css +260 -241
  254. package/src/hooks/__tests__/useOverflowDetection.test.tsx +5 -5
  255. package/src/hooks/__tests__/useResizeObserver.test.tsx +12 -12
  256. package/src/plugins/core/registerReactComponent.tsx +5 -5
  257. package/src/plugins/core/sidebar-element.tsx +2 -2
  258. package/src/plugins/impl/ButtonPlugin.tsx +3 -3
  259. package/src/plugins/impl/CheckboxPlugin.tsx +3 -3
  260. package/src/plugins/impl/CodeEditorPlugin.tsx +3 -3
  261. package/src/plugins/impl/DatePickerPlugin.tsx +3 -3
  262. package/src/plugins/impl/DateRangePlugin.tsx +3 -3
  263. package/src/plugins/impl/DateTimePickerPlugin.tsx +3 -3
  264. package/src/plugins/impl/DictPlugin.tsx +3 -3
  265. package/src/plugins/impl/DropdownPlugin.tsx +3 -3
  266. package/src/plugins/impl/FileUploadPlugin.tsx +3 -3
  267. package/src/plugins/impl/MatrixPlugin.tsx +4 -4
  268. package/src/plugins/impl/MicrophonePlugin.tsx +3 -3
  269. package/src/plugins/impl/MultiselectPlugin.tsx +3 -3
  270. package/src/plugins/impl/NumberPlugin.tsx +3 -3
  271. package/src/plugins/impl/RadioPlugin.tsx +9 -5
  272. package/src/plugins/impl/RangeSliderPlugin.tsx +3 -3
  273. package/src/plugins/impl/RefreshPlugin.tsx +3 -3
  274. package/src/plugins/impl/SliderPlugin.tsx +3 -3
  275. package/src/plugins/impl/SwitchPlugin.tsx +3 -3
  276. package/src/plugins/impl/TabsPlugin.tsx +3 -3
  277. package/src/plugins/impl/TextAreaPlugin.tsx +3 -3
  278. package/src/plugins/impl/TextInputPlugin.tsx +3 -3
  279. package/src/plugins/impl/__tests__/MatrixPlugin.test.tsx +2 -2
  280. package/src/plugins/impl/anywidget/model.ts +10 -10
  281. package/src/plugins/impl/anywidget/registry.ts +12 -9
  282. package/src/plugins/impl/anywidget/runtime.ts +11 -9
  283. package/src/plugins/impl/anywidget/widget-binding.ts +6 -6
  284. package/src/plugins/impl/image-comparison/ImageComparisonComponent.tsx +7 -6
  285. package/src/plugins/impl/matplotlib/MatplotlibPlugin.tsx +3 -3
  286. package/src/plugins/impl/matplotlib/__tests__/matplotlib-renderer.test.ts +2 -2
  287. package/src/plugins/impl/matplotlib/matplotlib-renderer.ts +2 -2
  288. package/src/plugins/impl/mpl-interactive/mpl-websocket-shim.ts +10 -10
  289. package/src/plugins/impl/panel/utils.ts +5 -5
  290. package/src/plugins/impl/plotly/PlotlyPlugin.tsx +3 -3
  291. package/src/plugins/impl/vega/VegaPlugin.tsx +3 -3
  292. package/src/plugins/impl/vega/__tests__/use-vega-container-remeasure.test.ts +7 -7
  293. package/src/plugins/impl/vega/__tests__/utils.test.ts +16 -1
  294. package/src/plugins/impl/vega/__tests__/vega.test.ts +37 -0
  295. package/src/plugins/impl/vega/loader.ts +23 -1
  296. package/src/plugins/impl/vega/utils.ts +5 -4
  297. package/src/plugins/layout/AccordionPlugin.tsx +3 -3
  298. package/src/plugins/layout/CalloutPlugin.tsx +3 -3
  299. package/src/plugins/layout/ImageComparisonPlugin.tsx +5 -3
  300. package/src/plugins/layout/JsonOutputPlugin.tsx +3 -3
  301. package/src/plugins/layout/MimeRenderPlugin.tsx +3 -3
  302. package/src/plugins/layout/NavigationMenuPlugin.tsx +3 -3
  303. package/src/plugins/layout/OutlinePlugin.tsx +3 -3
  304. package/src/plugins/layout/ProgressPlugin.tsx +3 -3
  305. package/src/plugins/layout/RoutesPlugin.tsx +6 -8
  306. package/src/plugins/layout/StatPlugin.tsx +3 -3
  307. package/src/plugins/layout/TexPlugin.tsx +3 -3
  308. package/src/plugins/layout/carousel/CarouselPlugin.tsx +4 -4
  309. package/src/plugins/layout/mermaid/MermaidPlugin.tsx +3 -3
  310. package/src/utils/Deferred.ts +6 -6
  311. package/src/utils/async-capture-tracker.ts +10 -7
  312. package/src/utils/errors.ts +5 -5
  313. package/src/utils/id-tree.tsx +83 -80
  314. package/src/utils/lru.ts +1 -1
  315. package/src/utils/multi-map.ts +14 -12
  316. package/src/utils/paths.ts +6 -6
  317. package/src/utils/pluralize.ts +3 -3
  318. package/src/utils/progress.ts +6 -6
  319. package/src/utils/python-poet/poet.ts +14 -14
  320. package/src/utils/routes.ts +4 -2
  321. package/src/utils/semaphore.ts +6 -6
  322. package/src/utils/storage/storage.ts +6 -6
  323. package/src/utils/storage/typed.ts +16 -12
  324. package/src/utils/time.ts +9 -9
  325. package/src/utils/timed-cache.ts +4 -4
  326. package/src/utils/tracer.ts +9 -6
  327. package/dist/assets/LazyAnyLanguageCodeMirror-EBegnOE0.js +0 -2
  328. package/dist/assets/add-cell-with-ai-Ovbsj95O.js +0 -76
  329. package/dist/assets/ai-model-dropdown-1t7m1iFc.js +0 -3
  330. package/dist/assets/app-config-button-vCxNGhe2.js +0 -1
  331. package/dist/assets/channel-ni7ei-yz.js +0 -1
  332. package/dist/assets/chat-panel-CzdR8RG_.js +0 -4
  333. package/dist/assets/classDiagram-ZZMXUADV-CIEFh40S.js +0 -1
  334. package/dist/assets/classDiagram-v2-VYDZK3BY-CIEFh40S.js +0 -1
  335. package/dist/assets/code-visibility-G0W4ym3Y.js +0 -1
  336. package/dist/assets/command-palette-DhdK67bL.js +0 -1
  337. package/dist/assets/components-CQVZgYvR.js +0 -1
  338. package/dist/assets/config-CMqNngzA.js +0 -1
  339. package/dist/assets/config-CmBpjGXk.js +0 -1
  340. package/dist/assets/data-grid-overlay-editor-DbqMOWZn.js +0 -1
  341. package/dist/assets/edit-page-_D_Nv3dJ.js +0 -176
  342. package/dist/assets/file-explorer-panel-LAa-LxTN.js +0 -1
  343. package/dist/assets/file-name-input-BXq6eIDs.js +0 -3
  344. package/dist/assets/flowDiagram-HODETNUW-B4xRBXB1.js +0 -1
  345. package/dist/assets/glide-data-editor-DPMjaN4R.js +0 -131
  346. package/dist/assets/has-CanCEarv.js +0 -1
  347. package/dist/assets/home-page-vDWLpS4F.js +0 -4
  348. package/dist/assets/index-2TQenOiQ.css +0 -2
  349. package/dist/assets/index-CgQsZfww.js +0 -62
  350. package/dist/assets/katex-mNPPSsir.js +0 -257
  351. package/dist/assets/katex-ukvJUC1e.js +0 -257
  352. package/dist/assets/mhchem-DcHTrqjv.js +0 -1
  353. package/dist/assets/packages-panel-B8HU9FAM.js +0 -1
  354. package/dist/assets/run-page-E0qMru0p.js +0 -1
  355. package/dist/assets/scratchpad-panel-CCFyaegO.js +0 -1
  356. package/dist/assets/session-C8nQMsOE.js +0 -1
  357. package/dist/assets/session-panel-CR3BHLhQ.js +0 -1
  358. package/dist/assets/snippets-panel-Dn22yTr_.js +0 -1
  359. package/dist/assets/stateDiagram-v2-MP3YSRHH-BQvYFx_a.js +0 -1
  360. package/dist/assets/swimlanesDiagram-VR7AAH4N-BAn2JKhB.js +0 -8
  361. package/dist/assets/tooltip-B1vGi-z4.js +0 -61
  362. package/dist/assets/tracing-panel-C5ybTQyJ.js +0 -2
  363. package/dist/assets/useCellActionButton-Bm9OZdcq.js +0 -1
  364. package/dist/assets/useTheme-Ho3YdAx3.js +0 -1
  365. package/dist/assets/youtube-ELpGJEdR.js +0 -1
@@ -36,12 +36,12 @@ export class DefaultWasmController implements WasmController {
36
36
  private sessionGeneration = 0;
37
37
  private activeSessionStops = new Set<PyCallable>();
38
38
 
39
- get requirePyodide() {
39
+ public get requirePyodide() {
40
40
  invariant(this.pyodide, "Pyodide not loaded");
41
41
  return this.pyodide;
42
42
  }
43
43
 
44
- async bootstrap(
44
+ public async bootstrap(
45
45
  opts: Parameters<WasmController["bootstrap"]>[0],
46
46
  ): Promise<PyodideInterface> {
47
47
  const pyodide = await this.loadPyodideAndPackages(opts);
@@ -110,7 +110,10 @@ export class DefaultWasmController implements WasmController {
110
110
  }
111
111
  }
112
112
 
113
- async mountFilesystem(opts: { code: string; filename: string | null }) {
113
+ public async mountFilesystem(opts: {
114
+ code: string;
115
+ filename: string | null;
116
+ }) {
114
117
  const span = t.startSpan("mountFilesystem");
115
118
  // Set up the filesystem
116
119
  WasmFileSystem.createHomeDir(this.requirePyodide);
@@ -124,7 +127,7 @@ export class DefaultWasmController implements WasmController {
124
127
  });
125
128
  }
126
129
 
127
- async startSession(opts: {
130
+ public async startSession(opts: {
128
131
  queryParameters: Record<string, string | string[]>;
129
132
  code: string;
130
133
  filename: string | null;
@@ -250,7 +253,7 @@ export class DefaultWasmController implements WasmController {
250
253
  return bridgeProxy as unknown as SerializedBridge;
251
254
  }
252
255
 
253
- async stopSession(): Promise<void> {
256
+ public async stopSession(): Promise<void> {
254
257
  this.sessionGeneration += 1;
255
258
  const stops = [...this.activeSessionStops];
256
259
  let hasFailure = false;
@@ -8,12 +8,12 @@ export class MessageBuffer<T> {
8
8
  private buffer: T[];
9
9
  private started = false;
10
10
  private onMessage: (data: T) => void;
11
- constructor(onMessage: (data: T) => void) {
11
+ public constructor(onMessage: (data: T) => void) {
12
12
  this.onMessage = onMessage;
13
13
  this.buffer = [];
14
14
  }
15
15
 
16
- push = (data: T) => {
16
+ public push = (data: T) => {
17
17
  if (this.started) {
18
18
  this.onMessage(data);
19
19
  } else {
@@ -24,7 +24,7 @@ export class MessageBuffer<T> {
24
24
  /**
25
25
  * Start processing messages
26
26
  */
27
- start = () => {
27
+ public start = () => {
28
28
  this.started = true;
29
29
  // Flush the buffer
30
30
  this.buffer.forEach((data) => this.onMessage(data));
@@ -7,20 +7,20 @@ let innerListeners: Record<string, ((e: unknown) => void)[]>;
7
7
 
8
8
  vi.mock("partysocket/ws", () => {
9
9
  class FakeReconnectingWebSocket {
10
- retryCount = 0;
11
- readyState = WebSocket.CONNECTING;
12
- constructor() {
10
+ public retryCount = 0;
11
+ public readyState = WebSocket.CONNECTING;
12
+ public constructor() {
13
13
  innerListeners = { open: [], close: [], message: [], error: [] };
14
14
  }
15
- addEventListener(event: string, cb: (e: unknown) => void) {
15
+ public addEventListener(event: string, cb: (e: unknown) => void) {
16
16
  innerListeners[event].push(cb);
17
17
  }
18
- removeEventListener(event: string, cb: (e: unknown) => void) {
18
+ public removeEventListener(event: string, cb: (e: unknown) => void) {
19
19
  innerListeners[event] = innerListeners[event].filter((c) => c !== cb);
20
20
  }
21
- reconnect() {}
22
- close() {}
23
- send() {}
21
+ public reconnect() {}
22
+ public close() {}
23
+ public send() {}
24
24
  }
25
25
  return { default: FakeReconnectingWebSocket };
26
26
  });
@@ -13,11 +13,13 @@ export class BasicTransport implements IConnectionTransport {
13
13
  private subscriptions = new ConnectionSubscriptions();
14
14
  private producer?: MessageProducer;
15
15
 
16
- static withProducerCallback(producer: MessageProducer): IConnectionTransport {
16
+ public static withProducerCallback(
17
+ producer: MessageProducer,
18
+ ): IConnectionTransport {
17
19
  return new BasicTransport(producer);
18
20
  }
19
21
 
20
- static empty(): IConnectionTransport {
22
+ public static empty(): IConnectionTransport {
21
23
  return new BasicTransport();
22
24
  }
23
25
 
@@ -39,21 +41,26 @@ export class BasicTransport implements IConnectionTransport {
39
41
  });
40
42
  }
41
43
 
42
- get readyState(): WebSocket["readyState"] {
44
+ public get readyState(): WebSocket["readyState"] {
43
45
  return WebSocket.OPEN;
44
46
  }
45
47
 
46
- reconnect(_code?: number | undefined, _reason?: string | undefined): void {
48
+ public reconnect(
49
+ _code?: number | undefined,
50
+ _reason?: string | undefined,
51
+ ): void {
47
52
  this.close();
48
53
  this.connect();
49
54
  return;
50
55
  }
51
56
 
52
- close(): void {
57
+ public close(): void {
53
58
  this.subscriptions.notify("close", new Event("close"));
54
59
  }
55
60
 
56
- send(data: string | ArrayBuffer | Blob | ArrayBufferView): Promise<void> {
61
+ public send(
62
+ data: string | ArrayBuffer | Blob | ArrayBufferView,
63
+ ): Promise<void> {
57
64
  this.subscriptions.notify(
58
65
  "message",
59
66
  new MessageEvent("message", {
@@ -63,7 +70,7 @@ export class BasicTransport implements IConnectionTransport {
63
70
  return Promise.resolve();
64
71
  }
65
72
 
66
- addEventListener<T extends ConnectionEvent>(
73
+ public addEventListener<T extends ConnectionEvent>(
67
74
  event: T,
68
75
  callback: ConnectionTransportCallback<T>,
69
76
  ): void {
@@ -83,7 +90,7 @@ export class BasicTransport implements IConnectionTransport {
83
90
  }
84
91
  }
85
92
 
86
- removeEventListener<T extends ConnectionEvent>(
93
+ public removeEventListener<T extends ConnectionEvent>(
87
94
  event: T,
88
95
  callback: ConnectionTransportCallback<T>,
89
96
  ): void {
@@ -52,7 +52,7 @@ export class SseTransport implements IConnectionTransport {
52
52
  private userClosed = false;
53
53
  private state: WebSocket["readyState"] = WebSocket.CLOSED;
54
54
 
55
- constructor(
55
+ public constructor(
56
56
  urlProvider: () => string,
57
57
  headersProvider: () => Record<string, string> = () => ({}),
58
58
  ) {
@@ -60,11 +60,11 @@ export class SseTransport implements IConnectionTransport {
60
60
  this.headersProvider = headersProvider;
61
61
  }
62
62
 
63
- get readyState(): WebSocket["readyState"] {
63
+ public get readyState(): WebSocket["readyState"] {
64
64
  return this.state;
65
65
  }
66
66
 
67
- reconnect(_code?: number, _reason?: string): void {
67
+ public reconnect(_code?: number, _reason?: string): void {
68
68
  this.userClosed = false;
69
69
  this.retryCount = 0;
70
70
  this.clearRetryTimer();
@@ -72,7 +72,7 @@ export class SseTransport implements IConnectionTransport {
72
72
  this.connect();
73
73
  }
74
74
 
75
- close(): void {
75
+ public close(): void {
76
76
  this.userClosed = true;
77
77
  this.clearRetryTimer();
78
78
  this.state = WebSocket.CLOSED;
@@ -80,13 +80,13 @@ export class SseTransport implements IConnectionTransport {
80
80
  this.abortController = null;
81
81
  }
82
82
 
83
- send(_data: string | ArrayBuffer | Blob | ArrayBufferView): void {
83
+ public send(_data: string | ArrayBuffer | Blob | ArrayBufferView): void {
84
84
  // The kernel connection is receive-only; all client requests go over
85
85
  // HTTP POST endpoints.
86
86
  Logger.warn("SseTransport does not support send(); dropping message");
87
87
  }
88
88
 
89
- addEventListener<T extends ConnectionEvent>(
89
+ public addEventListener<T extends ConnectionEvent>(
90
90
  event: T,
91
91
  callback: ConnectionTransportCallback<T>,
92
92
  ): void {
@@ -96,7 +96,7 @@ export class SseTransport implements IConnectionTransport {
96
96
  );
97
97
  }
98
98
 
99
- removeEventListener<T extends ConnectionEvent>(
99
+ public removeEventListener<T extends ConnectionEvent>(
100
100
  event: T,
101
101
  callback: ConnectionTransportCallback<T>,
102
102
  ): void {
@@ -33,7 +33,7 @@ export class ConnectionSubscriptions {
33
33
  Set<ConnectionTransportCallback<ConnectionEvent>>
34
34
  >();
35
35
 
36
- addSubscription(
36
+ public addSubscription(
37
37
  event: ConnectionEvent,
38
38
  callback: ConnectionTransportCallback<ConnectionEvent>,
39
39
  ): void {
@@ -43,14 +43,14 @@ export class ConnectionSubscriptions {
43
43
  this.subscriptions.get(event)?.add(callback);
44
44
  }
45
45
 
46
- removeSubscription(
46
+ public removeSubscription(
47
47
  event: ConnectionEvent,
48
48
  callback: ConnectionTransportCallback<ConnectionEvent>,
49
49
  ): void {
50
50
  this.subscriptions.get(event)?.delete(callback);
51
51
  }
52
52
 
53
- notify(
53
+ public notify(
54
54
  event: ConnectionEvent,
55
55
  data: IConnectionTransportMap[ConnectionEvent],
56
56
  ): void {
@@ -20,7 +20,7 @@ export class WsTransport implements IConnectionTransport {
20
20
  ConnectionTransportCallback<"close">
21
21
  >();
22
22
 
23
- constructor(urlProvider: () => string) {
23
+ public constructor(urlProvider: () => string) {
24
24
  this.inner = new ReconnectingWebSocket(urlProvider, undefined, {
25
25
  maxRetries: MAX_RETRIES,
26
26
  debug: false,
@@ -30,23 +30,25 @@ export class WsTransport implements IConnectionTransport {
30
30
  });
31
31
  }
32
32
 
33
- get readyState(): WebSocket["readyState"] {
33
+ public get readyState(): WebSocket["readyState"] {
34
34
  return this.inner.readyState as WebSocket["readyState"];
35
35
  }
36
36
 
37
- reconnect(code?: number, reason?: string): void {
37
+ public reconnect(code?: number, reason?: string): void {
38
38
  this.inner.reconnect(code, reason);
39
39
  }
40
40
 
41
- close(): void {
41
+ public close(): void {
42
42
  this.inner.close();
43
43
  }
44
44
 
45
- send(data: string | ArrayBuffer | Blob | ArrayBufferView<ArrayBuffer>): void {
45
+ public send(
46
+ data: string | ArrayBuffer | Blob | ArrayBufferView<ArrayBuffer>,
47
+ ): void {
46
48
  this.inner.send(data);
47
49
  }
48
50
 
49
- addEventListener<T extends ConnectionEvent>(
51
+ public addEventListener<T extends ConnectionEvent>(
50
52
  event: T,
51
53
  callback: ConnectionTransportCallback<T>,
52
54
  ): void {
@@ -78,7 +80,7 @@ export class WsTransport implements IConnectionTransport {
78
80
  this.inner.addEventListener(event, callback as never);
79
81
  }
80
82
 
81
- removeEventListener<T extends ConnectionEvent>(
83
+ public removeEventListener<T extends ConnectionEvent>(
82
84
  event: T,
83
85
  callback: ConnectionTransportCallback<T>,
84
86
  ): void {
@@ -55,29 +55,21 @@
55
55
  --background: light-dark(hsl(0deg 0% 100%), hsl(150deg 7.7% 10.2%));
56
56
  --foreground: light-dark(hsl(222.2deg 47.4% 11.2%), hsl(155deg 7% 93%));
57
57
  --muted: light-dark(hsl(210deg 40% 96.1%), hsl(180deg 14% 1%));
58
- --muted-foreground: light-dark(
59
- hsl(215.4deg 16.3% 46.9%),
60
- hsl(155deg 5% 68.3%)
61
- );
58
+ --muted-foreground: light-dark(hsl(215.4deg 16.3% 46.9%),
59
+ hsl(155deg 5% 68.3%));
62
60
  --popover: light-dark(hsl(0deg 0% 100%), hsl(151deg 5.5% 15.2%));
63
- --popover-foreground: light-dark(
64
- hsl(222.2deg 47.4% 11.2%),
65
- hsl(155deg 5% 68.3%)
66
- );
61
+ --popover-foreground: light-dark(hsl(222.2deg 47.4% 11.2%),
62
+ hsl(155deg 5% 68.3%));
67
63
  --card: light-dark(hsl(0deg 0% 100%), hsl(151deg 5.5% 15.2%));
68
- --card-foreground: light-dark(
69
- hsl(222.2deg 47.4% 11.2%),
70
- hsl(155deg 5% 76.3%)
71
- );
64
+ --card-foreground: light-dark(hsl(222.2deg 47.4% 11.2%),
65
+ hsl(155deg 5% 76.3%));
72
66
  --border: light-dark(hsl(214.3deg 31.8% 91.4%), hsl(153deg 3.7% 24.2%));
73
67
  --input: light-dark(hsl(0deg 0% 64%), hsl(154deg 3.3% 28.7%));
74
68
  --primary: light-dark(hsl(208deg 93.5% 47.4%), hsl(192deg 59.8% 39%));
75
69
  --primary-foreground: light-dark(hsl(210deg 40% 98%), hsl(190deg 80% 84%));
76
70
  --secondary: light-dark(hsl(210deg 40% 96.1%), hsl(155deg 7% 93%));
77
- --secondary-foreground: light-dark(
78
- hsl(222.2deg 47.4% 11.2%),
79
- hsl(151deg 5.5% 15.2%)
80
- );
71
+ --secondary-foreground: light-dark(hsl(222.2deg 47.4% 11.2%),
72
+ hsl(151deg 5.5% 15.2%));
81
73
  --accent: light-dark(hsl(209deg 100% 96.5%), hsl(192deg 56.6% 26.5%));
82
74
  --accent-foreground: light-dark(hsl(211deg 90% 42%), hsl(190deg 80% 84%));
83
75
  --ring: hsl(215deg 20.2% 65.1%);
@@ -105,10 +97,8 @@
105
97
 
106
98
  /* Base shadows. */
107
99
  --base-shadow: light-dark(hsl(0deg 0% 85% / 40%), hsla(0deg 0% 36% / 60%));
108
- --base-shadow-darker: light-dark(
109
- hsl(0deg 0% 50% / 40%),
110
- hsl(0deg 0% 50% / 60%)
111
- );
100
+ --base-shadow-darker: light-dark(hsl(0deg 0% 50% / 40%),
101
+ hsl(0deg 0% 50% / 60%));
112
102
  --base-shadow-opacity: 5%;
113
103
 
114
104
  /* Codemirror editor */
@@ -162,7 +152,14 @@
162
152
  animation-duration: 0.01ms !important;
163
153
  animation-delay: 0s !important;
164
154
  animation-iteration-count: 1 !important;
165
- transition-duration: 0.01ms !important;
155
+
156
+ /*
157
+ Set to 0s, because `transition-property` defaults to `all`, so any non-zero
158
+ duration gives every element a transition. Libraries that change an
159
+ attribute and measure synchronously (e.g. Plotly hover labels) would read
160
+ stale geometry.
161
+ */
162
+ transition-duration: 0s !important;
166
163
  transition-delay: 0s !important;
167
164
  }
168
165