@marimo-team/islands 0.16.2 → 0.16.3

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 (221) hide show
  1. package/dist/{ConnectedDataExplorerComponent-KvtsEmcw.js → ConnectedDataExplorerComponent-CareOso9.js} +2 -2
  2. package/dist/{ImageComparisonComponent-R2tjqLSx.js → ImageComparisonComponent-I_Z738Uj.js} +1 -1
  3. package/dist/{_baseUniq-BykZEXIq.js → _baseUniq-D-Kb4EU4.js} +1 -1
  4. package/dist/{any-language-editor-CMt4Y6oz.js → any-language-editor-BRWmYor8.js} +1 -1
  5. package/dist/{architectureDiagram-W76B3OCA-mQ3sJdEW.js → architectureDiagram-W76B3OCA-bZJcJYGH.js} +4 -4
  6. package/dist/assets/{worker-B0C57BK8.js → worker-DMlIUTIq.js} +18 -17
  7. package/dist/{blockDiagram-QIGZ2CNN-BxLRv5EM.js → blockDiagram-QIGZ2CNN-DyXjO8fR.js} +5 -5
  8. package/dist/{c4Diagram-FPNF74CW-Cfz16aWq.js → c4Diagram-FPNF74CW-Bfs9ui2r.js} +2 -2
  9. package/dist/{channel-zr1uJJ5g.js → channel-CMup9X3Z.js} +1 -1
  10. package/dist/{chunk-4BX2VUAB-B8iHvpDe.js → chunk-4BX2VUAB-CW-ni6M_.js} +1 -1
  11. package/dist/{chunk-55IACEB6-CJs4dL1H.js → chunk-55IACEB6-Bj-Indya.js} +1 -1
  12. package/dist/{chunk-FMBD7UC4-C5irHg20.js → chunk-FMBD7UC4-9IC8qSSk.js} +1 -1
  13. package/dist/{chunk-K7UQS3LO-B2XW75WS.js → chunk-K7UQS3LO-aapkEuWN.js} +4 -4
  14. package/dist/{chunk-QN33PNHL-BtwctqGa.js → chunk-QN33PNHL-Bo5dJ5T5.js} +1 -1
  15. package/dist/{chunk-QZHKN3VN-Sb8ZD0FY.js → chunk-QZHKN3VN-BkMzjJYY.js} +1 -1
  16. package/dist/{chunk-TVAH2DTR-CEJ5zkLX.js → chunk-TVAH2DTR-Wqy_C_Rn.js} +3 -3
  17. package/dist/{chunk-TZMSLE5B-Ccm4T92V.js → chunk-TZMSLE5B-DjBmEAUz.js} +1 -1
  18. package/dist/{classDiagram-v2-RKCZMP56-DWTbT0ww.js → classDiagram-KNZD7YFC-DUsaN1O4.js} +2 -2
  19. package/dist/{classDiagram-KNZD7YFC-DWTbT0ww.js → classDiagram-v2-RKCZMP56-DUsaN1O4.js} +2 -2
  20. package/dist/{clone-CDDiMerE.js → clone-Dkt_7KOK.js} +1 -1
  21. package/dist/{cose-bilkent-S5V4N54A-B74aLjZ_.js → cose-bilkent-S5V4N54A-ClBuGZWI.js} +2 -2
  22. package/dist/{dagre-5GWH7T2D-Cie_wUzI.js → dagre-5GWH7T2D-BzmDIGaM.js} +6 -6
  23. package/dist/{data-grid-overlay-editor-OsCMRzfP.js → data-grid-overlay-editor-NiU9Ea77.js} +2 -2
  24. package/dist/{diagram-N5W7TBWH-CCeFeV2B.js → diagram-N5W7TBWH-BlO1yw_g.js} +5 -5
  25. package/dist/{diagram-QEK2KX5R-BPROiVV7.js → diagram-QEK2KX5R-BvK83LUx.js} +3 -3
  26. package/dist/{diagram-S2PKOQOG-BkLFbUa_.js → diagram-S2PKOQOG-DvBzRYd7.js} +3 -3
  27. package/dist/{dockerfile-CuJXUZQ_.js → dockerfile-CPQG2tLO.js} +1 -1
  28. package/dist/{erDiagram-AWTI2OKA-CpBWOTMK.js → erDiagram-AWTI2OKA-Doy9FRTX.js} +4 -4
  29. package/dist/{flowDiagram-PVAE7QVJ-C_X4bmq3.js → flowDiagram-PVAE7QVJ-D_tX_HU1.js} +5 -5
  30. package/dist/{ganttDiagram-OWAHRB6G-CruldwEp.js → ganttDiagram-OWAHRB6G-CV03BHVY.js} +4 -4
  31. package/dist/{gitGraphDiagram-NY62KEGX-ZJnVxaQP.js → gitGraphDiagram-NY62KEGX-w3szEguZ.js} +4 -4
  32. package/dist/{glide-data-editor-CnOBht4I.js → glide-data-editor-akznFrmp.js} +3 -3
  33. package/dist/{graph-DjTtWtcG.js → graph-CjrrDHdT.js} +3 -3
  34. package/dist/index-CIJJs0Tu.js +40382 -0
  35. package/dist/{index-CZ9vIBEc.js → index-DMo6cbcV.js} +3 -3
  36. package/dist/{index-saLjL5eo.js → index-DlV2CtJb.js} +1 -1
  37. package/dist/{index-DSpjUDnr.js → index-Y-Vbae6Z.js} +1 -1
  38. package/dist/{infoDiagram-STP46IZ2-RZgl96nR.js → infoDiagram-STP46IZ2-BcBV2j75.js} +2 -2
  39. package/dist/{journeyDiagram-BIP6EPQ6-9ytZy-zY.js → journeyDiagram-BIP6EPQ6-BTGMSgvB.js} +3 -3
  40. package/dist/{kanban-definition-6OIFK2YF-CpjPWkgX.js → kanban-definition-6OIFK2YF-aopNqZ1Y.js} +2 -2
  41. package/dist/{layout-BAvhX25D.js → layout-Dvo9pb_w.js} +4 -4
  42. package/dist/{linear-BKZuvJrK.js → linear-CHnELER9.js} +1 -1
  43. package/dist/{main-pE28kbH0.js → main-kLZGkzVQ.js} +34849 -34052
  44. package/dist/main.js +1 -1
  45. package/dist/{mermaid-BGd7kEsf.js → mermaid-DgM4_4bD.js} +30 -30
  46. package/dist/{min-DmsBJf5S.js → min-cX4DuL_n.js} +2 -2
  47. package/dist/{mindmap-definition-Q6HEUPPD-BerypnVD.js → mindmap-definition-Q6HEUPPD-DZjbYryy.js} +3 -3
  48. package/dist/{number-overlay-editor-A7ZQ6sSs.js → number-overlay-editor-8MpIObf7.js} +2 -2
  49. package/dist/{pieDiagram-ADFJNKIX-ChcQLZM2.js → pieDiagram-ADFJNKIX-D6L1IYAc.js} +3 -3
  50. package/dist/{quadrantDiagram-LMRXKWRM-BOMxo-5G.js → quadrantDiagram-LMRXKWRM-nOyuc3Bf.js} +2 -2
  51. package/dist/{react-plotly-8f0vAPdB.js → react-plotly-ChkfYiVe.js} +1 -1
  52. package/dist/{requirementDiagram-4UW4RH46-rql0vkIr.js → requirementDiagram-4UW4RH46-OVV8wsju.js} +3 -3
  53. package/dist/{sankeyDiagram-GR3RE2ED-BMz3hqw4.js → sankeyDiagram-GR3RE2ED-qZHMdnE_.js} +1 -1
  54. package/dist/{sequenceDiagram-C3RYC4MD-DFK39LUK.js → sequenceDiagram-C3RYC4MD-D0bOqf-t.js} +3 -3
  55. package/dist/{slides-component-BNsZuUgg.js → slides-component-CNzLDdA3.js} +1 -1
  56. package/dist/{stateDiagram-KXAO66HF-B_3SWOCl.js → stateDiagram-KXAO66HF-CFNCnNJS.js} +4 -4
  57. package/dist/{stateDiagram-v2-UMBNRL4Z-BWAYN6aU.js → stateDiagram-v2-UMBNRL4Z-CnIh27m8.js} +2 -2
  58. package/dist/style.css +1 -1
  59. package/dist/{time-DCvYzQ5t.js → time-Z7CJSfOW.js} +2 -2
  60. package/dist/{timeline-definition-XQNQX7LJ-CSbxJ5mV.js → timeline-definition-XQNQX7LJ-BYLMfrvK.js} +1 -1
  61. package/dist/{treemap-75Q7IDZK-LMXGKln_.js → treemap-75Q7IDZK-BEh1HacP.js} +5 -5
  62. package/dist/{vega-component-CRmon7pH.js → vega-component-iMjXd3tD.js} +2 -2
  63. package/dist/{xychartDiagram-6GGTOJPD-DaUD4dq3.js → xychartDiagram-6GGTOJPD-Bmi13ZSG.js} +2 -2
  64. package/package.json +6 -6
  65. package/src/__mocks__/common.ts +5 -3
  66. package/src/__mocks__/notebook.ts +2 -2
  67. package/src/__tests__/main.test.tsx +2 -2
  68. package/src/components/ai/ai-provider-icon.tsx +2 -0
  69. package/src/components/app-config/ai-config.tsx +32 -1
  70. package/src/components/app-config/common.tsx +2 -2
  71. package/src/components/app-config/user-config-form.tsx +26 -0
  72. package/src/components/audio/audio-recorder.tsx +0 -1
  73. package/src/components/chat/acp/blocks.tsx +2 -2
  74. package/src/components/chat/acp/thread.tsx +3 -5
  75. package/src/components/chat/acp/utils.ts +5 -5
  76. package/src/components/chat/chat-panel.tsx +1 -1
  77. package/src/components/data-table/__tests__/data-table.test.tsx +2 -2
  78. package/src/components/data-table/charts/__tests__/altair-generator.test.ts +1 -1
  79. package/src/components/data-table/charts/chart-spec/tooltips.ts +3 -3
  80. package/src/components/data-table/charts/components/chart-items.tsx +1 -1
  81. package/src/components/data-table/charts/components/form-fields.tsx +2 -2
  82. package/src/components/data-table/charts/constants.ts +1 -1
  83. package/src/components/data-table/column-explorer-panel/column-explorer.tsx +1 -1
  84. package/src/components/data-table/column-summary/chart-spec-model.tsx +2 -2
  85. package/src/components/data-table/columns.tsx +1 -1
  86. package/src/components/data-table/data-table.tsx +35 -3
  87. package/src/components/data-table/date-popover.tsx +1 -1
  88. package/src/components/data-table/download-actions.tsx +1 -1
  89. package/src/components/data-table/range-focus/__tests__/utils.test.ts +5 -5
  90. package/src/components/data-table/renderers.tsx +6 -5
  91. package/src/components/data-table/row-viewer-panel/row-viewer.tsx +1 -1
  92. package/src/components/data-table/types.ts +4 -3
  93. package/src/components/datasources/column-preview.tsx +9 -6
  94. package/src/components/debugger/debugger-code.tsx +1 -1
  95. package/src/components/dependency-graph/custom-node.tsx +15 -6
  96. package/src/components/dependency-graph/dependency-graph-minimap.tsx +2 -2
  97. package/src/components/dependency-graph/dependency-graph-tree.tsx +2 -2
  98. package/src/components/dependency-graph/dependency-graph.tsx +1 -1
  99. package/src/components/dependency-graph/elements.ts +7 -7
  100. package/src/components/dependency-graph/utils/changes.ts +4 -4
  101. package/src/components/editor/Cell.tsx +6 -2
  102. package/src/components/editor/ai/transport/chat-transport.tsx +1 -1
  103. package/src/components/editor/chrome/panels/outline/useActiveOutline.tsx +1 -1
  104. package/src/components/editor/chrome/panels/packages-panel.tsx +1 -1
  105. package/src/components/editor/columns/storage.ts +1 -1
  106. package/src/components/editor/database/__tests__/__snapshots__/as-code.test.ts.snap +36 -0
  107. package/src/components/editor/database/__tests__/as-code.test.ts +30 -7
  108. package/src/components/editor/database/add-database-form.tsx +11 -0
  109. package/src/components/editor/database/as-code.ts +104 -5
  110. package/src/components/editor/database/schemas.ts +36 -18
  111. package/src/components/editor/errors/auto-fix.tsx +12 -2
  112. package/src/components/editor/errors/sql-validation-errors.tsx +12 -6
  113. package/src/components/editor/navigation/clipboard.ts +2 -2
  114. package/src/components/editor/output/ConsoleOutput.tsx +1 -1
  115. package/src/components/editor/output/JsonOutput.tsx +1 -1
  116. package/src/components/editor/output/MarimoErrorOutput.tsx +25 -25
  117. package/src/components/editor/output/MarimoTracebackOutput.tsx +17 -2
  118. package/src/components/editor/renderers/grid-layout/types.ts +2 -2
  119. package/src/components/editor/renderers/plugins.ts +1 -1
  120. package/src/components/editor/renderers/types.ts +1 -1
  121. package/src/components/editor/renderers/vertical-layout/vertical-layout.tsx +7 -7
  122. package/src/components/forms/form.tsx +5 -5
  123. package/src/components/ui/links.tsx +1 -0
  124. package/src/core/ai/__tests__/model-registry.test.ts +0 -10
  125. package/src/core/ai/context/providers/error.ts +2 -2
  126. package/src/core/ai/ids/ids.ts +1 -0
  127. package/src/core/ai/model-registry.ts +2 -1
  128. package/src/core/cells/cells.ts +5 -5
  129. package/src/core/cells/logs.ts +1 -1
  130. package/src/core/cells/types.ts +1 -1
  131. package/src/core/codemirror/__tests__/format.test.ts +6 -0
  132. package/src/core/codemirror/cells/traceback-decorations.ts +1 -1
  133. package/src/core/codemirror/editing/commands.ts +2 -2
  134. package/src/core/codemirror/find-replace/navigate.ts +1 -1
  135. package/src/core/codemirror/language/__tests__/extension.test.ts +1 -1
  136. package/src/core/codemirror/language/__tests__/sql-validation.test.ts +1 -1
  137. package/src/core/codemirror/language/__tests__/sql.test.ts +764 -79
  138. package/src/core/codemirror/language/languages/markdown.ts +4 -1
  139. package/src/core/codemirror/language/languages/sql/{validation-errors.ts → banner-validation-errors.ts} +9 -3
  140. package/src/core/codemirror/language/languages/sql/completion-builder.ts +160 -0
  141. package/src/core/codemirror/language/languages/sql/completion-sources.tsx +9 -3
  142. package/src/core/codemirror/language/languages/sql/completion-store.ts +46 -50
  143. package/src/core/codemirror/language/languages/sql/renderers.tsx +485 -0
  144. package/src/core/codemirror/language/languages/sql/sql.ts +151 -24
  145. package/src/core/codemirror/language/languages/sql/utils.ts +4 -1
  146. package/src/core/codemirror/language/panel/sql.tsx +6 -1
  147. package/src/core/codemirror/language/utils/ast.ts +3 -3
  148. package/src/core/codemirror/lsp/federated-lsp.ts +4 -4
  149. package/src/core/codemirror/lsp/lens.ts +4 -4
  150. package/src/core/codemirror/lsp/notebook-lsp.ts +1 -1
  151. package/src/core/codemirror/lsp/types.ts +1 -1
  152. package/src/core/codemirror/markdown/completions.ts +1 -1
  153. package/src/core/codemirror/reactive-references/analyzer.ts +2 -2
  154. package/src/core/codemirror/rtc/loro/awareness.ts +1 -1
  155. package/src/core/config/config-schema.ts +1 -0
  156. package/src/core/config/feature-flag.tsx +3 -1
  157. package/src/core/datasets/request-registry.ts +17 -10
  158. package/src/core/dom/events.ts +1 -1
  159. package/src/core/dom/outline.ts +2 -2
  160. package/src/core/dom/uiregistry.ts +2 -8
  161. package/src/core/errors/__tests__/errors.test.ts +22 -4
  162. package/src/core/errors/errors.ts +29 -1
  163. package/src/core/errors/state.ts +1 -1
  164. package/src/core/islands/main.ts +2 -2
  165. package/src/core/islands/parse.ts +1 -3
  166. package/src/core/kernel/messages.ts +1 -1
  167. package/src/core/network/CachingRequestRegistry.ts +74 -0
  168. package/src/core/network/DeferredRequestRegistry.ts +3 -1
  169. package/src/core/network/__tests__/CachingRequestRegistry.test.ts +73 -0
  170. package/src/core/network/types.ts +1 -1
  171. package/src/core/variables/state.ts +2 -2
  172. package/src/core/wasm/__tests__/state.test.ts +1 -1
  173. package/src/core/websocket/useMarimoWebSocket.tsx +5 -2
  174. package/src/custom.d.ts +1 -1
  175. package/src/hooks/useCellRenderCount.ts +1 -0
  176. package/src/hooks/useResizeHandle.ts +4 -1
  177. package/src/plugins/core/RenderHTML.tsx +1 -2
  178. package/src/plugins/impl/DataTablePlugin.tsx +7 -2
  179. package/src/plugins/impl/FileUploadPlugin.tsx +1 -1
  180. package/src/plugins/impl/RefreshPlugin.tsx +1 -1
  181. package/src/plugins/impl/SliderPlugin.tsx +4 -0
  182. package/src/plugins/impl/anywidget/AnyWidgetPlugin.tsx +27 -9
  183. package/src/plugins/impl/anywidget/__tests__/AnyWidgetPlugin.test.tsx +58 -2
  184. package/src/plugins/impl/anywidget/__tests__/model.test.ts +3 -4
  185. package/src/plugins/impl/anywidget/model.ts +2 -3
  186. package/src/plugins/impl/data-editor/types.ts +1 -1
  187. package/src/plugins/impl/data-explorer/components/query-form.tsx +1 -1
  188. package/src/plugins/impl/data-frames/types.ts +1 -1
  189. package/src/plugins/impl/panel/PanelPlugin.tsx +2 -2
  190. package/src/plugins/impl/plotly/PlotlyPlugin.tsx +3 -3
  191. package/src/plugins/impl/vega/__tests__/loader.test.ts +2 -2
  192. package/src/plugins/impl/vega/loader.ts +1 -1
  193. package/src/plugins/impl/vega/vega-component.tsx +1 -1
  194. package/src/plugins/impl/vega/vega-loader.ts +2 -2
  195. package/src/plugins/layout/NavigationMenuPlugin.tsx +1 -1
  196. package/src/plugins/layout/RoutesPlugin.tsx +1 -2
  197. package/src/plugins/plugins.ts +2 -2
  198. package/src/utils/Logger.ts +1 -1
  199. package/src/utils/__tests__/data-views.test.ts +30 -68
  200. package/src/utils/__tests__/dom.test.ts +10 -10
  201. package/src/utils/__tests__/id-tree.test.ts +49 -1
  202. package/src/utils/__tests__/storage.test.ts +1 -1
  203. package/src/utils/__tests__/traceback.test.ts +13 -2
  204. package/src/utils/arrays.ts +1 -1
  205. package/src/utils/createReducer.ts +1 -5
  206. package/src/utils/data-views.ts +6 -19
  207. package/src/utils/edit-distance.ts +1 -1
  208. package/src/utils/fileToBase64.ts +1 -1
  209. package/src/utils/id-tree.tsx +20 -18
  210. package/src/utils/json/base64.ts +13 -0
  211. package/src/utils/json/json-parser.ts +2 -2
  212. package/src/utils/lru.ts +4 -0
  213. package/src/utils/mergeRefs.ts +1 -1
  214. package/src/utils/objects.ts +3 -3
  215. package/src/utils/pluralize.ts +1 -1
  216. package/src/utils/routes.ts +2 -2
  217. package/src/utils/sets.ts +1 -1
  218. package/src/utils/traceback.ts +45 -15
  219. package/src/utils/tracer.ts +11 -9
  220. package/dist/index-DeOkA9fC.js +0 -40315
  221. package/src/__tests__/lru.test.ts +0 -74
@@ -14,11 +14,11 @@ export interface ErrorContextItem extends AIContextItem {
14
14
  type: "error";
15
15
  data: {
16
16
  type: "all-errors";
17
- errors: Array<{
17
+ errors: {
18
18
  cellId: CellId;
19
19
  cellName: string;
20
20
  errorData: MarimoError[];
21
- }>;
21
+ }[];
22
22
  };
23
23
  }
24
24
 
@@ -11,6 +11,7 @@ export const PROVIDERS = [
11
11
  "deepseek",
12
12
  "azure",
13
13
  "github",
14
+ "openrouter",
14
15
  "marimo",
15
16
  ] as const;
16
17
  export type ProviderId = (typeof PROVIDERS)[number];
@@ -19,6 +19,7 @@ export const PROVIDER_SORT_ORDER: ProviderId[] = [
19
19
  "openai",
20
20
  "google",
21
21
  "github",
22
+ "openrouter",
22
23
  "deepseek",
23
24
  "azure",
24
25
  "bedrock",
@@ -201,7 +202,7 @@ export class AiModelRegistry {
201
202
  return this.modelsByProviderMap;
202
203
  }
203
204
 
204
- getListModelsByProvider(): Array<[ProviderId, AiModel[]]> {
205
+ getListModelsByProvider(): [ProviderId, AiModel[]][] {
205
206
  const modelsByProvider = this.getGroupedModelsByProvider();
206
207
  const arrayModels = [...modelsByProvider.entries()];
207
208
  const providerToOrderIdx = getProviderMap().providerToOrderIdx;
@@ -84,14 +84,14 @@ export interface NotebookState {
84
84
  *
85
85
  * (CodeMirror types the serialized config as any.)
86
86
  */
87
- history: Array<{
87
+ history: {
88
88
  name: string;
89
89
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
90
90
  serializedEditorState: any;
91
91
  column: CellColumnId;
92
92
  index: CellIndex;
93
93
  isSetupCell: boolean;
94
- }>;
94
+ }[];
95
95
  /**
96
96
  * Key of cell to scroll to; typically set by actions that re-order the cell
97
97
  * array. Call the SCROLL_TO_TARGET action to scroll to the specified cell
@@ -1128,10 +1128,10 @@ const {
1128
1128
 
1129
1129
  // Find the start/end of the collapsed ranges
1130
1130
  const nodes = [...column.nodes];
1131
- const rangeIndexes: Array<{
1131
+ const rangeIndexes: {
1132
1132
  start: CellIndex;
1133
1133
  end: CellIndex;
1134
- }> = [];
1134
+ }[] = [];
1135
1135
  const reversedCollapseRanges = [];
1136
1136
 
1137
1137
  // Iterate in reverse order (bottom-up) to process children first
@@ -1668,7 +1668,7 @@ export const getCellEditorView = (cellId: CellId) => {
1668
1668
 
1669
1669
  export function flattenTopLevelNotebookCells(
1670
1670
  state: NotebookState,
1671
- ): Array<CellData & CellRuntimeState> {
1671
+ ): (CellData & CellRuntimeState)[] {
1672
1672
  const { cellIds, cellData, cellRuntime } = state;
1673
1673
  return cellIds.getColumns().flatMap((column) =>
1674
1674
  column.topLevelIds.map((cellId) => ({
@@ -87,7 +87,7 @@ const CellLogLogger = {
87
87
  ? "red"
88
88
  : "orange";
89
89
  const status = payload.level.toUpperCase();
90
- // eslint-disable-next-line no-console
90
+ /** biome-ignore lint/suspicious/noConsole: for debugging */
91
91
  console.log(
92
92
  `%c[${status}]`,
93
93
  `color:${color}; padding:2px 0; border-radius:2px; font-weight:bold`,
@@ -93,7 +93,7 @@ export interface CellRuntimeState {
93
93
  /** TOC outline */
94
94
  outline: Outline | null;
95
95
  /** messages encoding the cell's console outputs. */
96
- consoleOutputs: Array<WithResponse<OutputMessage>>;
96
+ consoleOutputs: WithResponse<OutputMessage>[];
97
97
  /** current status of the cell */
98
98
  status: RuntimeState;
99
99
  /** whether the cell has stale inputs*/
@@ -3,6 +3,7 @@
3
3
  import { python } from "@codemirror/lang-python";
4
4
  import { EditorState } from "@codemirror/state";
5
5
  import { EditorView } from "@codemirror/view";
6
+ import { atom } from "jotai";
6
7
  import { beforeEach, describe, expect, it, vi } from "vitest";
7
8
  import { MockRequestClient } from "@/__mocks__/requests";
8
9
  import type { NotebookState } from "@/core/cells/cells";
@@ -34,6 +35,11 @@ vi.mock("@/core/cells/utils", () => ({
34
35
 
35
36
  vi.mock("@/core/config/config", () => ({
36
37
  getResolvedMarimoConfig: vi.fn(),
38
+ resolvedMarimoConfigAtom: atom({
39
+ display: {
40
+ theme: "light",
41
+ },
42
+ }),
37
43
  }));
38
44
 
39
45
  const updateCellCode = vi.fn();
@@ -29,7 +29,7 @@ function createErrorDecorations(state: EditorState, errors: TracebackInfos) {
29
29
 
30
30
  // Filter and sort errors by line number to ensure they're added in order
31
31
  const relevantErrors = errors
32
- .filter((error) => error.cellId === cellId)
32
+ .filter((error) => error.kind === "cell" && error.cellId === cellId)
33
33
  .sort((a, b) => a.lineNumber - b.lineNumber);
34
34
 
35
35
  for (const error of relevantErrors) {
@@ -3,14 +3,14 @@ import { foldAll, unfoldAll } from "@codemirror/language";
3
3
  import type { Command, EditorView } from "@codemirror/view";
4
4
  import type { Nullable } from "vitest";
5
5
 
6
- export type BulkCommand = (targets: Array<Nullable<EditorView>>) => boolean;
6
+ export type BulkCommand = (targets: Nullable<EditorView>[]) => boolean;
7
7
 
8
8
  /**
9
9
  * Make a bulk command from a single {@type Command} that applies
10
10
  * the given command to all targets.
11
11
  */
12
12
  export function makeBulkCommand(command: Command) {
13
- return (targets: Array<Nullable<EditorView>>) => {
13
+ return (targets: Nullable<EditorView>[]) => {
14
14
  let changed = false;
15
15
  for (const target of targets) {
16
16
  if (target) {
@@ -110,7 +110,7 @@ export const findPrev = findInDirection("prev");
110
110
  */
111
111
  export const replaceAll = searchCommand(({ query }) => {
112
112
  const views = getAllEditorViews();
113
- const undoHandlers: Array<() => void> = [];
113
+ const undoHandlers: (() => void)[] = [];
114
114
  for (const view of views) {
115
115
  if (view.state.readOnly) {
116
116
  continue;
@@ -14,7 +14,7 @@ import {
14
14
  languageAdapterState,
15
15
  switchLanguage,
16
16
  } from "../extension";
17
- import { exportedForTesting as sqlValidationErrorsForTesting } from "../languages/sql/validation-errors";
17
+ import { exportedForTesting as sqlValidationErrorsForTesting } from "../languages/sql/banner-validation-errors";
18
18
  import { languageMetadataField } from "../metadata";
19
19
 
20
20
  let view: EditorView | null = null;
@@ -1,7 +1,7 @@
1
1
  /* Copyright 2024 Marimo. All rights reserved. */
2
2
 
3
3
  import { describe, expect, it } from "vitest";
4
- import { exportedForTesting } from "../languages/sql/validation-errors";
4
+ import { exportedForTesting } from "../languages/sql/banner-validation-errors";
5
5
 
6
6
  describe("Error Message Splitting", () => {
7
7
  it("should handle error message splitting correctly", () => {