mito-ai 0.1.58__py3-none-any.whl → 0.1.59__py3-none-any.whl

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 (53) hide show
  1. mito_ai/__init__.py +5 -2
  2. mito_ai/_version.py +1 -1
  3. mito_ai/completions/prompt_builders/prompt_constants.py +2 -0
  4. mito_ai/constants.py +25 -3
  5. mito_ai/enterprise/litellm_client.py +12 -5
  6. mito_ai/enterprise/utils.py +16 -2
  7. mito_ai/openai_client.py +26 -6
  8. mito_ai/provider_manager.py +34 -2
  9. mito_ai/tests/message_history/test_generate_short_chat_name.py +35 -4
  10. mito_ai/tests/open_ai_utils_test.py +34 -36
  11. mito_ai/tests/providers/test_azure.py +2 -2
  12. mito_ai/tests/test_constants.py +90 -0
  13. mito_ai/tests/test_enterprise_mode.py +55 -0
  14. mito_ai/tests/test_model_utils.py +116 -25
  15. mito_ai/utils/model_utils.py +130 -51
  16. mito_ai/utils/open_ai_utils.py +29 -33
  17. mito_ai/utils/provider_utils.py +13 -7
  18. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/build_log.json +1 -1
  19. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/package.json +2 -2
  20. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/schemas/mito_ai/package.json.orig +1 -1
  21. mito_ai-0.1.58.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.03302cc521d72eb56b00.js → mito_ai-0.1.59.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.44c109c7be36fb884d25.js +389 -70
  22. mito_ai-0.1.59.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.44c109c7be36fb884d25.js.map +1 -0
  23. mito_ai-0.1.58.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.570df809a692f53a7ab7.js → mito_ai-0.1.59.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.f7decebaf69618541e0f.js +3 -3
  24. mito_ai-0.1.58.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.570df809a692f53a7ab7.js.map → mito_ai-0.1.59.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.f7decebaf69618541e0f.js.map +1 -1
  25. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/themes/mito_ai/index.css +78 -78
  26. {mito_ai-0.1.58.dist-info → mito_ai-0.1.59.dist-info}/METADATA +1 -1
  27. {mito_ai-0.1.58.dist-info → mito_ai-0.1.59.dist-info}/RECORD +52 -52
  28. mito_ai-0.1.58.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.03302cc521d72eb56b00.js.map +0 -1
  29. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/etc/jupyter/jupyter_server_config.d/mito_ai.json +0 -0
  30. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/schemas/mito_ai/toolbar-buttons.json +0 -0
  31. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/static/node_modules_process_browser_js.4b128e94d31a81ebd209.js +0 -0
  32. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/static/node_modules_process_browser_js.4b128e94d31a81ebd209.js.map +0 -0
  33. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/static/style.js +0 -0
  34. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/static/style_index_js.f5d476ac514294615881.js +0 -0
  35. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/static/style_index_js.f5d476ac514294615881.js.map +0 -0
  36. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_aws-amplify_auth_dist_esm_providers_cognito_apis_signOut_mjs-node_module-75790d.688c25857e7b81b1740f.js +0 -0
  37. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_aws-amplify_auth_dist_esm_providers_cognito_apis_signOut_mjs-node_module-75790d.688c25857e7b81b1740f.js.map +0 -0
  38. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_aws-amplify_auth_dist_esm_providers_cognito_tokenProvider_tokenProvider_-72f1c8.a917210f057fcfe224ad.js +0 -0
  39. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_aws-amplify_auth_dist_esm_providers_cognito_tokenProvider_tokenProvider_-72f1c8.a917210f057fcfe224ad.js.map +0 -0
  40. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_aws-amplify_dist_esm_index_mjs.6bac1a8c4cc93f15f6b7.js +0 -0
  41. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_aws-amplify_dist_esm_index_mjs.6bac1a8c4cc93f15f6b7.js.map +0 -0
  42. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_aws-amplify_ui-react_dist_esm_index_mjs.4fcecd65bef9e9847609.js +0 -0
  43. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_aws-amplify_ui-react_dist_esm_index_mjs.4fcecd65bef9e9847609.js.map +0 -0
  44. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_react-dom_client_js-node_modules_aws-amplify_ui-react_dist_styles_css.b43d4249e4d3dac9ad7b.js +0 -0
  45. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_react-dom_client_js-node_modules_aws-amplify_ui-react_dist_styles_css.b43d4249e4d3dac9ad7b.js.map +0 -0
  46. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_semver_index_js.3f6754ac5116d47de76b.js +0 -0
  47. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_semver_index_js.3f6754ac5116d47de76b.js.map +0 -0
  48. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_vscode-diff_dist_index_js.ea55f1f9346638aafbcf.js +0 -0
  49. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_vscode-diff_dist_index_js.ea55f1f9346638aafbcf.js.map +0 -0
  50. {mito_ai-0.1.58.data → mito_ai-0.1.59.data}/data/share/jupyter/labextensions/mito_ai/themes/mito_ai/index.js +0 -0
  51. {mito_ai-0.1.58.dist-info → mito_ai-0.1.59.dist-info}/WHEEL +0 -0
  52. {mito_ai-0.1.58.dist-info → mito_ai-0.1.59.dist-info}/entry_points.txt +0 -0
  53. {mito_ai-0.1.58.dist-info → mito_ai-0.1.59.dist-info}/licenses/LICENSE +0 -0
@@ -2162,6 +2162,7 @@ const MarkdownBlock = ({ markdown, renderMimeRegistry, notebookTracker }) => {
2162
2162
  // This ensures re-renders when cells are reordered (even if count stays the same)
2163
2163
  const cellOrderKey = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
2164
2164
  return Array.from(cellOrder.entries())
2165
+ .filter(([cellId]) => cellId != null) // Filter out entries with undefined/null keys
2165
2166
  .sort((a, b) => a[0].localeCompare(b[0])) // Sort by cellId for stable string
2166
2167
  .map(([cellId, cellNumber]) => `${cellId}:${cellNumber}`)
2167
2168
  .join(',');
@@ -9306,10 +9307,10 @@ const getFullErrorMessageFromTraceback = (tracebackArray) => {
9306
9307
 
9307
9308
  /***/ }),
9308
9309
 
9309
- /***/ "./lib/Extensions/MitoThemeLight/index.js":
9310
- /*!************************************************!*\
9311
- !*** ./lib/Extensions/MitoThemeLight/index.js ***!
9312
- \************************************************/
9310
+ /***/ "./lib/Extensions/MitoThemes/index.js":
9311
+ /*!********************************************!*\
9312
+ !*** ./lib/Extensions/MitoThemes/index.js ***!
9313
+ \********************************************/
9313
9314
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9314
9315
 
9315
9316
  __webpack_require__.r(__webpack_exports__);
@@ -9326,8 +9327,9 @@ __webpack_require__.r(__webpack_exports__);
9326
9327
  /* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_3__);
9327
9328
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
9328
9329
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
9329
- /* harmony import */ var _components_RunCellButton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../components/RunCellButton */ "./lib/components/RunCellButton.js");
9330
- /* harmony import */ var _utils_lineNumbers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/lineNumbers */ "./lib/utils/lineNumbers.js");
9330
+ /* harmony import */ var _components_RunCellButton__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../components/RunCellButton */ "./lib/components/RunCellButton.js");
9331
+ /* harmony import */ var _utils_lineNumbers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils/lineNumbers */ "./lib/utils/lineNumbers.js");
9332
+ /* harmony import */ var _palettes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./palettes */ "./lib/Extensions/MitoThemes/palettes.js");
9331
9333
  /* harmony import */ var _style_RunCellButton_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../style/RunCellButton.css */ "./style/RunCellButton.css");
9332
9334
  /*
9333
9335
  * Copyright (c) Saga Inc.
@@ -9341,6 +9343,7 @@ __webpack_require__.r(__webpack_exports__);
9341
9343
 
9342
9344
 
9343
9345
 
9346
+
9344
9347
  /**
9345
9348
  * Updates cell numbers for all cells in a notebook.
9346
9349
  * Uses notebook.widgets which is always in the correct order.
@@ -9378,6 +9381,8 @@ function setupCellNumbering(notebookPanel) {
9378
9381
  updateAllCellNumbers(notebookPanel);
9379
9382
  });
9380
9383
  observer.observe(notebook.node, { childList: true, subtree: true });
9384
+ // Initial update
9385
+ updateAllCellNumbers(notebookPanel);
9381
9386
  // Return cleanup function
9382
9387
  return () => {
9383
9388
  var _a;
@@ -9394,20 +9399,24 @@ function setupCellNumbering(notebookPanel) {
9394
9399
  };
9395
9400
  }
9396
9401
  /**
9397
- * A plugin for the Mito Light Theme.
9402
+ * A plugin for the Mito Themes (Light and Dark).
9398
9403
  *
9399
- * The Run Cell Button, cell numbering, and hidden default toolbar buttons only apply
9400
- * when the Mito Light theme is active.
9404
+ * Registers both Mito Light and Mito Dark themes.
9405
+ * The Run Cell Button, cell numbering, and hidden default toolbar buttons apply
9406
+ * when either Mito theme is active.
9401
9407
  */
9402
9408
  const plugin = {
9403
- id: 'mito_ai:theme',
9404
- description: 'Adds the Mito Light theme.',
9409
+ id: 'mito_ai:themes',
9410
+ description: 'Adds the Mito Light and Dark themes.',
9405
9411
  requires: [_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_0__.IThemeManager, _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.ITranslator, _jupyterlab_notebook__WEBPACK_IMPORTED_MODULE_2__.INotebookTracker],
9406
9412
  activate: (app, manager, translator, notebookTracker) => {
9407
9413
  const trans = translator.load('jupyterlab');
9414
+ // CSS path - single CSS file for both themes (uses CSS variables set by palettes)
9408
9415
  const style = 'mito_ai/index.css';
9409
- // Store connection for cleanup
9410
- let widgetAddedConnection = null;
9416
+ const palettes = new _palettes__WEBPACK_IMPORTED_MODULE_6__.MitoPalettes();
9417
+ // Store connections for cleanup
9418
+ let lightWidgetAddedConnection = null;
9419
+ let darkWidgetAddedConnection = null;
9411
9420
  // Store cell numbering cleanup functions for each notebook
9412
9421
  const cellNumberingCleanups = new Map();
9413
9422
  // Add Run Cell button to notebook toolbar
@@ -9428,7 +9437,7 @@ const plugin = {
9428
9437
  this.addClass('mito-run-cell-button-widget');
9429
9438
  }
9430
9439
  render() {
9431
- return react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_components_RunCellButton__WEBPACK_IMPORTED_MODULE_6__["default"], { notebookPanel: this.panel });
9440
+ return react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_components_RunCellButton__WEBPACK_IMPORTED_MODULE_7__["default"], { notebookPanel: this.panel });
9432
9441
  }
9433
9442
  }
9434
9443
  const runCellWidget = new RunCellButtonWidget(notebookPanel);
@@ -9467,54 +9476,65 @@ const plugin = {
9467
9476
  cellNumberingCleanups.delete(notebookPanel);
9468
9477
  }
9469
9478
  };
9470
- // Add buttons and cell numbering to all notebooks
9471
- const addButtonsToAllNotebooks = () => {
9479
+ // Add cell numbering to a notebook panel (guard against duplicates)
9480
+ const addCellNumbering = (notebookPanel) => {
9481
+ if (cellNumberingCleanups.has(notebookPanel)) {
9482
+ return;
9483
+ }
9484
+ const cleanup = setupCellNumbering(notebookPanel);
9485
+ if (cleanup) {
9486
+ cellNumberingCleanups.set(notebookPanel, cleanup);
9487
+ // Also cleanup when notebook is disposed
9488
+ notebookPanel.disposed.connect(() => {
9489
+ cellNumberingCleanups.delete(notebookPanel);
9490
+ });
9491
+ }
9492
+ };
9493
+ // Add buttons and cell numbering to all notebooks (for a specific theme)
9494
+ const addButtonsToAllNotebooks = (themeName) => {
9472
9495
  notebookTracker.forEach(widget => {
9473
9496
  addRunCellButton(widget);
9474
9497
  // Enable line numbers if needed
9475
- void (0,_utils_lineNumbers__WEBPACK_IMPORTED_MODULE_7__.enableLineNumbersIfNeeded)(app, widget);
9498
+ void (0,_utils_lineNumbers__WEBPACK_IMPORTED_MODULE_8__.enableLineNumbersIfNeeded)(app, widget);
9476
9499
  // Setup cell numbering
9477
- const cleanup = setupCellNumbering(widget);
9478
- if (cleanup) {
9479
- cellNumberingCleanups.set(widget, cleanup);
9480
- // Also cleanup when notebook is disposed
9481
- widget.disposed.connect(() => {
9482
- cellNumberingCleanups.delete(widget);
9483
- });
9484
- }
9500
+ addCellNumbering(widget);
9485
9501
  });
9486
9502
  // Connect to new notebooks
9487
- widgetAddedConnection = (sender, widget) => {
9503
+ const widgetAddedHandler = (sender, widget) => {
9488
9504
  setTimeout(() => {
9489
9505
  // Check if widget is still valid before proceeding
9490
9506
  if (widget.isDisposed) {
9491
9507
  return;
9492
9508
  }
9493
- // Only add if Mito Light theme is still active
9494
- if (manager.theme === 'Mito Light') {
9509
+ // Only add if the specified theme is still active
9510
+ if (manager.theme === themeName) {
9495
9511
  addRunCellButton(widget);
9496
9512
  // Enable line numbers if needed
9497
- void (0,_utils_lineNumbers__WEBPACK_IMPORTED_MODULE_7__.enableLineNumbersIfNeeded)(app, widget);
9513
+ void (0,_utils_lineNumbers__WEBPACK_IMPORTED_MODULE_8__.enableLineNumbersIfNeeded)(app, widget);
9498
9514
  // Setup cell numbering
9499
- const cleanup = setupCellNumbering(widget);
9500
- if (cleanup) {
9501
- cellNumberingCleanups.set(widget, cleanup);
9502
- // Also cleanup when notebook is disposed
9503
- widget.disposed.connect(() => {
9504
- cellNumberingCleanups.delete(widget);
9505
- });
9506
- }
9515
+ addCellNumbering(widget);
9507
9516
  }
9508
9517
  }, 100);
9509
9518
  };
9510
- notebookTracker.widgetAdded.connect(widgetAddedConnection);
9519
+ if (themeName === 'Mito Light') {
9520
+ lightWidgetAddedConnection = widgetAddedHandler;
9521
+ notebookTracker.widgetAdded.connect(lightWidgetAddedConnection);
9522
+ }
9523
+ else if (themeName === 'Mito Dark') {
9524
+ darkWidgetAddedConnection = widgetAddedHandler;
9525
+ notebookTracker.widgetAdded.connect(darkWidgetAddedConnection);
9526
+ }
9511
9527
  };
9512
9528
  // Remove buttons and cell numbering from all notebooks
9513
9529
  const removeButtonsFromAllNotebooks = () => {
9514
9530
  // Disconnect from new notebooks
9515
- if (widgetAddedConnection) {
9516
- notebookTracker.widgetAdded.disconnect(widgetAddedConnection);
9517
- widgetAddedConnection = null;
9531
+ if (lightWidgetAddedConnection) {
9532
+ notebookTracker.widgetAdded.disconnect(lightWidgetAddedConnection);
9533
+ lightWidgetAddedConnection = null;
9534
+ }
9535
+ if (darkWidgetAddedConnection) {
9536
+ notebookTracker.widgetAdded.disconnect(darkWidgetAddedConnection);
9537
+ darkWidgetAddedConnection = null;
9518
9538
  }
9519
9539
  // Remove from all existing notebooks
9520
9540
  notebookTracker.forEach(widget => {
@@ -9524,33 +9544,323 @@ const plugin = {
9524
9544
  // Clear all cleanup functions
9525
9545
  cellNumberingCleanups.clear();
9526
9546
  };
9547
+ // Register Mito Light theme
9527
9548
  manager.register({
9528
9549
  name: 'Mito Light',
9529
9550
  displayName: trans.__('Mito Light'),
9530
9551
  isLight: true,
9531
9552
  themeScrollbars: false,
9532
9553
  load: async () => {
9533
- // Load theme CSS (hides default buttons)
9554
+ // Set CSS variables for light theme before loading CSS
9555
+ palettes.setColorsLight();
9556
+ // Load theme CSS (hides default buttons, applies light theme variables)
9534
9557
  await manager.loadCSS(style);
9535
9558
  // Add Run Cell buttons to all notebooks and enable line numbers
9536
- addButtonsToAllNotebooks();
9559
+ addButtonsToAllNotebooks('Mito Light');
9537
9560
  },
9538
9561
  unload: async () => {
9539
9562
  // Remove Run Cell buttons from all notebooks
9540
9563
  removeButtonsFromAllNotebooks();
9541
9564
  }
9542
9565
  });
9543
- // Set Mito Light as default theme if user hasn't explicitly chosen a different theme
9544
- // This runs after registration so the theme is available
9545
- if (manager.theme === 'JupyterLab Light' || !manager.theme) {
9546
- void manager.setTheme('Mito Light');
9547
- }
9566
+ // Register Mito Dark theme
9567
+ manager.register({
9568
+ name: 'Mito Dark',
9569
+ displayName: trans.__('Mito Dark'),
9570
+ isLight: false,
9571
+ themeScrollbars: false,
9572
+ load: async () => {
9573
+ // Set CSS variables for dark theme before loading CSS
9574
+ palettes.setColorsDark();
9575
+ // Load theme CSS (hides default buttons, applies dark theme variables)
9576
+ await manager.loadCSS(style);
9577
+ // Add Run Cell buttons to all notebooks and enable line numbers
9578
+ addButtonsToAllNotebooks('Mito Dark');
9579
+ },
9580
+ unload: async () => {
9581
+ // Remove Run Cell buttons from all notebooks
9582
+ removeButtonsFromAllNotebooks();
9583
+ }
9584
+ });
9585
+ // Flag to prevent infinite recursion when we convert themes
9586
+ let isConvertingTheme = false;
9587
+ // Helper function to convert non-Mito themes to corresponding Mito theme
9588
+ const convertToMitoTheme = (themeName) => {
9589
+ // Prevent infinite recursion - if we're already converting, don't do it again
9590
+ if (isConvertingTheme) {
9591
+ return;
9592
+ }
9593
+ if (!themeName) {
9594
+ // No theme set, default to Mito Light
9595
+ isConvertingTheme = true;
9596
+ void manager.setTheme('Mito Light').finally(() => {
9597
+ isConvertingTheme = false;
9598
+ });
9599
+ return;
9600
+ }
9601
+ const isMitoTheme = themeName === 'Mito Light' || themeName === 'Mito Dark';
9602
+ if (isMitoTheme) {
9603
+ // Already a Mito theme, don't change - this ensures user's Mito theme preference is preserved
9604
+ return;
9605
+ }
9606
+ // Convert non-Mito themes to corresponding Mito theme
9607
+ isConvertingTheme = true;
9608
+ if (themeName === 'JupyterLab Dark' || themeName.includes('Dark')) {
9609
+ void manager.setTheme('Mito Dark').finally(() => {
9610
+ isConvertingTheme = false;
9611
+ });
9612
+ }
9613
+ else {
9614
+ // Default to light theme for any other non-Mito theme (including JupyterLab Light)
9615
+ void manager.setTheme('Mito Light').finally(() => {
9616
+ isConvertingTheme = false;
9617
+ });
9618
+ }
9619
+ };
9620
+ // Wait for app restoration to complete before checking/setting theme
9621
+ // This ensures saved theme preferences are loaded first
9622
+ void app.restored.then(() => {
9623
+ // Convert theme on initial load if needed
9624
+ convertToMitoTheme(manager.theme);
9625
+ });
9626
+ // Listen for theme changes and automatically convert to Mito theme
9627
+ // This ensures that when users switch themes, they get converted to Mito themes
9628
+ // and the preference is saved properly
9629
+ manager.themeChanged.connect(() => {
9630
+ // Use manager.theme to get the current theme after the change
9631
+ convertToMitoTheme(manager.theme);
9632
+ });
9548
9633
  },
9549
9634
  autoStart: true
9550
9635
  };
9551
9636
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (plugin);
9552
9637
 
9553
9638
 
9639
+ /***/ }),
9640
+
9641
+ /***/ "./lib/Extensions/MitoThemes/palettes.js":
9642
+ /*!***********************************************!*\
9643
+ !*** ./lib/Extensions/MitoThemes/palettes.js ***!
9644
+ \***********************************************/
9645
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9646
+
9647
+ __webpack_require__.r(__webpack_exports__);
9648
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9649
+ /* harmony export */ MitoPalettes: () => (/* binding */ MitoPalettes)
9650
+ /* harmony export */ });
9651
+ /*
9652
+ * Copyright (c) Saga Inc.
9653
+ * Distributed under the terms of the GNU Affero General Public License v3.0 License.
9654
+ */
9655
+ /**
9656
+ * MitoPalettes class sets CSS variables for light and dark themes.
9657
+ * Similar to catppuccin's approach, this allows a single CSS file to work
9658
+ * for both themes by setting different variable values before loading CSS.
9659
+ */
9660
+ class MitoPalettes {
9661
+ /**
9662
+ * Set CSS variables for the light theme
9663
+ */
9664
+ setColorsLight() {
9665
+ // Border colors
9666
+ document.documentElement.style.setProperty('--mito-theme-border-color0', '#bdbdbd');
9667
+ document.documentElement.style.setProperty('--mito-theme-border-color1', '#bdbdbd');
9668
+ document.documentElement.style.setProperty('--mito-theme-border-color2', '#e0e0e0');
9669
+ document.documentElement.style.setProperty('--mito-theme-border-color3', '#eee');
9670
+ document.documentElement.style.setProperty('--mito-theme-inverse-border-color', '#757575');
9671
+ // UI Font colors
9672
+ document.documentElement.style.setProperty('--mito-theme-ui-font-color0', 'rgba(0, 0, 0, 1)');
9673
+ document.documentElement.style.setProperty('--mito-theme-ui-font-color1', 'rgba(0, 0, 0, 0.87)');
9674
+ document.documentElement.style.setProperty('--mito-theme-ui-font-color2', 'rgba(0, 0, 0, 0.54)');
9675
+ document.documentElement.style.setProperty('--mito-theme-ui-font-color3', 'rgba(0, 0, 0, 0.38)');
9676
+ document.documentElement.style.setProperty('--mito-theme-ui-inverse-font-color0', 'rgba(255, 255, 255, 1)');
9677
+ document.documentElement.style.setProperty('--mito-theme-ui-inverse-font-color1', 'rgba(255, 255, 255, 1)');
9678
+ document.documentElement.style.setProperty('--mito-theme-ui-inverse-font-color2', 'rgba(255, 255, 255, 0.7)');
9679
+ document.documentElement.style.setProperty('--mito-theme-ui-inverse-font-color3', 'rgba(255, 255, 255, 0.5)');
9680
+ // Content Font colors
9681
+ document.documentElement.style.setProperty('--mito-theme-content-font-color0', 'rgba(0, 0, 0, 1)');
9682
+ document.documentElement.style.setProperty('--mito-theme-content-font-color1', 'rgba(0, 0, 0, 0.87)');
9683
+ document.documentElement.style.setProperty('--mito-theme-content-font-color2', 'rgba(0, 0, 0, 0.54)');
9684
+ document.documentElement.style.setProperty('--mito-theme-content-font-color3', 'rgba(0, 0, 0, 0.38)');
9685
+ document.documentElement.style.setProperty('--mito-theme-content-link-color', '#0d47a1');
9686
+ document.documentElement.style.setProperty('--mito-theme-content-link-visited-color', '#7b1fa2');
9687
+ // Layout colors
9688
+ document.documentElement.style.setProperty('--mito-theme-layout-color0', 'white');
9689
+ document.documentElement.style.setProperty('--mito-theme-layout-color1', 'white');
9690
+ document.documentElement.style.setProperty('--mito-theme-layout-color2', '#eee');
9691
+ document.documentElement.style.setProperty('--mito-theme-layout-color3', '#bdbdbd');
9692
+ document.documentElement.style.setProperty('--mito-theme-layout-color4', '#757575');
9693
+ document.documentElement.style.setProperty('--mito-theme-inverse-layout-color0', '#111');
9694
+ document.documentElement.style.setProperty('--mito-theme-inverse-layout-color1', '#212121');
9695
+ document.documentElement.style.setProperty('--mito-theme-inverse-layout-color2', '#424242');
9696
+ document.documentElement.style.setProperty('--mito-theme-inverse-layout-color3', '#616161');
9697
+ document.documentElement.style.setProperty('--mito-theme-inverse-layout-color4', '#757575');
9698
+ // Brand colors (using purple variables from light theme)
9699
+ document.documentElement.style.setProperty('--mito-theme-brand-color0', 'var(--purple-900)');
9700
+ document.documentElement.style.setProperty('--mito-theme-brand-color1', 'var(--purple-700)');
9701
+ document.documentElement.style.setProperty('--mito-theme-brand-color2', 'var(--purple-500)');
9702
+ document.documentElement.style.setProperty('--mito-theme-brand-color3', 'var(--purple-300)');
9703
+ document.documentElement.style.setProperty('--mito-theme-brand-color4', 'var(--purple-300)');
9704
+ // Primary button colors (light mode: blue theme to avoid pinkish-purple)
9705
+ document.documentElement.style.setProperty('--mito-theme-button-background', 'var(--blue-300)');
9706
+ document.documentElement.style.setProperty('--mito-theme-button-border', 'var(--blue-900)');
9707
+ document.documentElement.style.setProperty('--mito-theme-button-text', 'var(--blue-900)');
9708
+ document.documentElement.style.setProperty('--mito-theme-button-hover-background', 'var(--blue-400)');
9709
+ // Cell editor colors
9710
+ document.documentElement.style.setProperty('--mito-theme-cell-editor-background', '#f5f5f5');
9711
+ document.documentElement.style.setProperty('--mito-theme-cell-editor-border-color', '#e0e0e0');
9712
+ document.documentElement.style.setProperty('--mito-theme-cell-editor-active-background', 'var(--mito-theme-layout-color0)');
9713
+ document.documentElement.style.setProperty('--mito-theme-cell-prompt-not-active-font-color', '#616161');
9714
+ document.documentElement.style.setProperty('--mito-theme-cell-outprompt-font-color', '#bf5b3d');
9715
+ // Notebook colors
9716
+ document.documentElement.style.setProperty('--mito-theme-notebook-select-background', 'var(--mito-theme-layout-color1)');
9717
+ document.documentElement.style.setProperty('--mito-theme-notebook-multiselected-color', '#e3f2fd');
9718
+ // Rendermime colors
9719
+ document.documentElement.style.setProperty('--mito-theme-rendermime-error-background', '#fdd');
9720
+ document.documentElement.style.setProperty('--mito-theme-rendermime-table-row-background', '#ebebeb');
9721
+ document.documentElement.style.setProperty('--mito-theme-rendermime-table-row-hover-background', '#e1f5fe');
9722
+ // Dialog colors
9723
+ document.documentElement.style.setProperty('--mito-theme-dialog-background', 'rgba(0, 0, 0, 0.25)');
9724
+ // Input field colors
9725
+ document.documentElement.style.setProperty('--mito-theme-input-background', '#f5f5f5');
9726
+ document.documentElement.style.setProperty('--mito-theme-input-border-color', 'var(--mito-theme-inverse-border-color)');
9727
+ // Editor colors
9728
+ document.documentElement.style.setProperty('--mito-theme-editor-selected-background', '#d9d9d9');
9729
+ document.documentElement.style.setProperty('--mito-theme-editor-selected-focused-background', '#d7d4f0');
9730
+ document.documentElement.style.setProperty('--mito-theme-editor-cursor-color', 'var(--mito-theme-ui-font-color0)');
9731
+ // Line number colors (grey/white/blue instead of pink)
9732
+ document.documentElement.style.setProperty('--mito-theme-line-number-color', '#92999F');
9733
+ // Code mirror colors
9734
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-keyword-color', '#008000');
9735
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-atom-color', '#88f');
9736
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-number-color', '#080');
9737
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-def-color', '#00f');
9738
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-variable-color', '#212121');
9739
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-variable-2-color', 'rgb(0, 54, 109)');
9740
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-variable-3-color', '#085');
9741
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-punctuation-color', '#05a');
9742
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-property-color', '#05a');
9743
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-operator-color', '#7800c2');
9744
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-comment-color', '#408080');
9745
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-string-color', '#ba2121');
9746
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-string-2-color', '#708');
9747
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-meta-color', '#a2f');
9748
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-qualifier-color', '#555');
9749
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-builtin-color', '#008000');
9750
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-bracket-color', '#997');
9751
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-tag-color', '#170');
9752
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-attribute-color', '#00c');
9753
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-header-color', 'blue');
9754
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-quote-color', '#090');
9755
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-link-color', '#00c');
9756
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-error-color', '#f00');
9757
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-hr-color', '#999');
9758
+ // Vega colors
9759
+ document.documentElement.style.setProperty('--mito-theme-vega-background', 'white');
9760
+ }
9761
+ /**
9762
+ * Set CSS variables for the dark theme
9763
+ */
9764
+ setColorsDark() {
9765
+ // Border colors
9766
+ document.documentElement.style.setProperty('--mito-theme-border-color0', '#3c3c3c');
9767
+ document.documentElement.style.setProperty('--mito-theme-border-color1', '#3c3c3c');
9768
+ document.documentElement.style.setProperty('--mito-theme-border-color2', '#2d2d2d');
9769
+ document.documentElement.style.setProperty('--mito-theme-border-color3', '#252526');
9770
+ document.documentElement.style.setProperty('--mito-theme-inverse-border-color', '#5a5a5a');
9771
+ // UI Font colors
9772
+ document.documentElement.style.setProperty('--mito-theme-ui-font-color0', 'rgba(255, 255, 255, 1)');
9773
+ document.documentElement.style.setProperty('--mito-theme-ui-font-color1', 'rgba(255, 255, 255, 0.87)');
9774
+ document.documentElement.style.setProperty('--mito-theme-ui-font-color2', 'rgba(255, 255, 255, 0.6)');
9775
+ document.documentElement.style.setProperty('--mito-theme-ui-font-color3', 'rgba(255, 255, 255, 0.4)');
9776
+ document.documentElement.style.setProperty('--mito-theme-ui-inverse-font-color0', 'rgba(0, 0, 0, 1)');
9777
+ document.documentElement.style.setProperty('--mito-theme-ui-inverse-font-color1', 'rgba(0, 0, 0, 0.87)');
9778
+ document.documentElement.style.setProperty('--mito-theme-ui-inverse-font-color2', 'rgba(0, 0, 0, 0.6)');
9779
+ document.documentElement.style.setProperty('--mito-theme-ui-inverse-font-color3', 'rgba(0, 0, 0, 0.4)');
9780
+ // Content Font colors
9781
+ document.documentElement.style.setProperty('--mito-theme-content-font-color0', 'rgba(255, 255, 255, 1)');
9782
+ document.documentElement.style.setProperty('--mito-theme-content-font-color1', 'rgba(255, 255, 255, 0.87)');
9783
+ document.documentElement.style.setProperty('--mito-theme-content-font-color2', 'rgba(255, 255, 255, 0.6)');
9784
+ document.documentElement.style.setProperty('--mito-theme-content-font-color3', 'rgba(255, 255, 255, 0.4)');
9785
+ document.documentElement.style.setProperty('--mito-theme-content-link-color', '#7c93ee');
9786
+ document.documentElement.style.setProperty('--mito-theme-content-link-visited-color', '#b39ddb');
9787
+ // Layout colors
9788
+ document.documentElement.style.setProperty('--mito-theme-layout-color0', '#1a1a1a');
9789
+ document.documentElement.style.setProperty('--mito-theme-layout-color1', '#1e1e1e');
9790
+ document.documentElement.style.setProperty('--mito-theme-layout-color2', '#252526');
9791
+ document.documentElement.style.setProperty('--mito-theme-layout-color3', '#2d2d2d');
9792
+ document.documentElement.style.setProperty('--mito-theme-layout-color4', '#3c3c3c');
9793
+ document.documentElement.style.setProperty('--mito-theme-inverse-layout-color0', '#ffffff');
9794
+ document.documentElement.style.setProperty('--mito-theme-inverse-layout-color1', '#f0f0f0');
9795
+ document.documentElement.style.setProperty('--mito-theme-inverse-layout-color2', '#d4d4d4');
9796
+ document.documentElement.style.setProperty('--mito-theme-inverse-layout-color3', '#a0a0a0');
9797
+ document.documentElement.style.setProperty('--mito-theme-inverse-layout-color4', '#6e6e6e');
9798
+ // Brand colors (pink-purple theme for dark, starting with #C65FAA)
9799
+ document.documentElement.style.setProperty('--mito-theme-brand-color0', '#C65FAA');
9800
+ document.documentElement.style.setProperty('--mito-theme-brand-color1', '#D97BC0');
9801
+ document.documentElement.style.setProperty('--mito-theme-brand-color2', '#E8A3D5');
9802
+ document.documentElement.style.setProperty('--mito-theme-brand-color3', '#F4D1EA');
9803
+ document.documentElement.style.setProperty('--mito-theme-brand-color4', '#FAE8F5');
9804
+ // Primary button colors (dark mode: lighter brand background, dark brand border)
9805
+ document.documentElement.style.setProperty('--mito-theme-button-background', '#F4D1EA');
9806
+ document.documentElement.style.setProperty('--mito-theme-button-border', '#C65FAA');
9807
+ document.documentElement.style.setProperty('--mito-theme-button-text', 'rgba(0, 0, 0, 0.87)');
9808
+ document.documentElement.style.setProperty('--mito-theme-button-hover-background', '#FAE8F5');
9809
+ // Cell editor colors
9810
+ document.documentElement.style.setProperty('--mito-theme-cell-editor-background', '#1e1e1e');
9811
+ document.documentElement.style.setProperty('--mito-theme-cell-editor-border-color', '#3c3c3c');
9812
+ document.documentElement.style.setProperty('--mito-theme-cell-editor-active-background', '#252526');
9813
+ document.documentElement.style.setProperty('--mito-theme-cell-prompt-not-active-font-color', '#6e6e6e');
9814
+ document.documentElement.style.setProperty('--mito-theme-cell-outprompt-font-color', '#f59e0b');
9815
+ // Notebook colors
9816
+ document.documentElement.style.setProperty('--mito-theme-notebook-select-background', '#2d2d2d');
9817
+ document.documentElement.style.setProperty('--mito-theme-notebook-multiselected-color', 'rgba(198, 95, 170, 0.2)');
9818
+ // Rendermime colors
9819
+ document.documentElement.style.setProperty('--mito-theme-rendermime-error-background', 'rgba(244, 67, 54, 0.2)');
9820
+ document.documentElement.style.setProperty('--mito-theme-rendermime-table-row-background', '#252526');
9821
+ document.documentElement.style.setProperty('--mito-theme-rendermime-table-row-hover-background', '#2d2d2d');
9822
+ // Dialog colors
9823
+ document.documentElement.style.setProperty('--mito-theme-dialog-background', 'rgba(0, 0, 0, 0.5)');
9824
+ // Input field colors
9825
+ document.documentElement.style.setProperty('--mito-theme-input-background', '#2d2d2d');
9826
+ document.documentElement.style.setProperty('--mito-theme-input-border-color', '#3c3c3c');
9827
+ // Editor colors
9828
+ document.documentElement.style.setProperty('--mito-theme-editor-selected-background', '#3c3c3c');
9829
+ document.documentElement.style.setProperty('--mito-theme-editor-selected-focused-background', '#3d4a5c');
9830
+ document.documentElement.style.setProperty('--mito-theme-editor-cursor-color', '#ffffff');
9831
+ // Line number colors (grey/white/blue instead of pink)
9832
+ document.documentElement.style.setProperty('--mito-theme-line-number-color', '#92999F');
9833
+ // Code mirror colors
9834
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-keyword-color', '#c586c0');
9835
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-atom-color', '#b5cea8');
9836
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-number-color', '#b5cea8');
9837
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-def-color', '#dcdcaa');
9838
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-variable-color', '#9cdcfe');
9839
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-variable-2-color', '#4fc1ff');
9840
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-variable-3-color', '#4ec9b0');
9841
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-punctuation-color', '#d4d4d4');
9842
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-property-color', '#9cdcfe');
9843
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-operator-color', '#d4d4d4');
9844
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-comment-color', '#6a9955');
9845
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-string-color', '#ce9178');
9846
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-string-2-color', '#ce9178');
9847
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-meta-color', '#d4d4d4');
9848
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-qualifier-color', '#d4d4d4');
9849
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-builtin-color', '#4ec9b0');
9850
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-bracket-color', '#ffd700');
9851
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-tag-color', '#569cd6');
9852
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-attribute-color', '#9cdcfe');
9853
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-header-color', '#569cd6');
9854
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-quote-color', '#6a9955');
9855
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-link-color', '#569cd6');
9856
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-error-color', '#f44747');
9857
+ document.documentElement.style.setProperty('--mito-theme-mirror-editor-hr-color', '#6e6e6e');
9858
+ // Vega colors
9859
+ document.documentElement.style.setProperty('--mito-theme-vega-background', '#1e1e1e');
9860
+ }
9861
+ }
9862
+
9863
+
9554
9864
  /***/ }),
9555
9865
 
9556
9866
  /***/ "./lib/Extensions/NotebookFooter/NotebookFooter.js":
@@ -14686,7 +14996,7 @@ __webpack_require__.r(__webpack_exports__);
14686
14996
  /* harmony import */ var _Extensions_SettingsManager_SettingsManagerPlugin__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Extensions/SettingsManager/SettingsManagerPlugin */ "./lib/Extensions/SettingsManager/SettingsManagerPlugin.js");
14687
14997
  /* harmony import */ var _Extensions_VersionCheck__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Extensions/VersionCheck */ "./lib/Extensions/VersionCheck/index.js");
14688
14998
  /* harmony import */ var _Extensions_NotebookFooter__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Extensions/NotebookFooter */ "./lib/Extensions/NotebookFooter/index.js");
14689
- /* harmony import */ var _Extensions_MitoThemeLight__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Extensions/MitoThemeLight */ "./lib/Extensions/MitoThemeLight/index.js");
14999
+ /* harmony import */ var _Extensions_MitoThemes__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Extensions/MitoThemes */ "./lib/Extensions/MitoThemes/index.js");
14690
15000
  /* harmony import */ var _Extensions_AppManager_ManageAppsPlugin__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Extensions/AppManager/ManageAppsPlugin */ "./lib/Extensions/AppManager/ManageAppsPlugin.js");
14691
15001
  /* harmony import */ var _Extensions_ChartWizard_ChartWizardPlugin__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Extensions/ChartWizard/ChartWizardPlugin */ "./lib/Extensions/ChartWizard/ChartWizardPlugin.js");
14692
15002
  /*
@@ -14722,7 +15032,7 @@ __webpack_require__.r(__webpack_exports__);
14722
15032
  _Extensions_VersionCheck__WEBPACK_IMPORTED_MODULE_9__.versionCheckPlugin,
14723
15033
  _Extensions_NotebookFooter__WEBPACK_IMPORTED_MODULE_10__["default"],
14724
15034
  _Extensions_AppManager_ManageAppsPlugin__WEBPACK_IMPORTED_MODULE_11__["default"],
14725
- _Extensions_MitoThemeLight__WEBPACK_IMPORTED_MODULE_12__["default"],
15035
+ _Extensions_MitoThemes__WEBPACK_IMPORTED_MODULE_12__["default"],
14726
15036
  _Extensions_ChartWizard_ChartWizardPlugin__WEBPACK_IMPORTED_MODULE_13__["default"]
14727
15037
  ]);
14728
15038
 
@@ -22412,12 +22722,11 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
22412
22722
 
22413
22723
  .model-option:hover {
22414
22724
  background-color: var(--jp-layout-color2);
22415
- color: var(--purple-700);
22416
22725
  }
22417
22726
 
22418
22727
  .model-option.selected {
22419
22728
  background-color: var(--jp-layout-color2);
22420
- color: var(--purple-700);
22729
+ color: var(--jp-brand-color2);
22421
22730
  }
22422
22731
 
22423
22732
  /* When inside chat-controls - ensure proper alignment with other controls */
@@ -22573,7 +22882,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
22573
22882
 
22574
22883
  .model-tooltip-bullet-item:last-child {
22575
22884
  margin-bottom: 0;
22576
- }`, "",{"version":3,"sources":["webpack://./style/ModelSelector.css"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (c) Saga Inc.\n * Distributed under the terms of the GNU Affero General Public License v3.0 License.\n */\n\n/* ModelSelector.css - responsive design with compact mode */\n\n.model-selector {\n position: relative;\n flex: 0 0 auto;\n margin: 0 8px;\n height: 20px; /* Match height of other elements */\n display: flex;\n align-items: center; /* Center vertically */\n color: var(--jp-ui-font-color2);\n}\n\n.model-selector:hover {\n color: var(--jp-ui-font-color1);\n}\n\n.model-selector-dropdown {\n position: relative;\n height: 20px; /* Fixed height to match other elements */\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center; /* Ensure content is vertically centered */\n width: min-content;\n max-width: 18ch;\n}\n\n\n.selected-model {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: 100%;\n padding: 0 8px;\n font-size: 12px;\n font-weight: 500;\n line-height: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.model-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 14px;\n height: 14px;\n line-height: 1;\n}\n\n.dropdown-arrow {\n font-size: 8px;\n transition: transform 0.2s;\n margin-left: 4px;\n flex-shrink: 0; /* Prevent arrow from shrinking */\n}\n\n/* Model options dropdown */\n.model-options {\n position: absolute;\n bottom: 100%;\n max-height: 180px;\n overflow-y: auto;\n background-color: var(--jp-layout-color1);\n border: 1px solid var(--jp-layout-color2);\n border-radius: 4px;\n margin-bottom: 4px;\n box-shadow: 0 -2px 6px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n width: auto;\n}\n\n.model-option {\n padding: 4px 8px;\n font-size: 12px;\n /* Keep this size for readability */\n color: var(--jp-content-font-color1);\n cursor: pointer;\n transition: background-color 0.2s;\n white-space: nowrap;\n /* Prevent text wrapping */\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n\n.model-option-name {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.model-type-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n opacity: 0.7;\n}\n\n.model-option:hover {\n background-color: var(--jp-layout-color2);\n color: var(--purple-700);\n}\n\n.model-option.selected {\n background-color: var(--jp-layout-color2);\n color: var(--purple-700);\n}\n\n/* When inside chat-controls - ensure proper alignment with other controls */\n.chat-controls .model-selector {\n height: 20px;\n display: flex;\n align-items: center;\n}\n\n.chat-controls .model-selector-dropdown {\n height: 20px;\n align-self: center;\n}\n\n/* Ensure dropdown appears above other elements */\n.model-options {\n z-index: 1010;\n /* Higher z-index to ensure visibility */\n}\n\n.model-name {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n vertical-align: bottom;\n}\n\n/* On wider screens, show only the name of the model*/\n.model-icon {\n display: none;\n}\n\n.model-name {\n display: inline;\n}\n\n/* On compact screens, show only the icon */\n@container (max-width: 260px) {\n\n /* Shift the dropdown to the left to help prevent right-edge overflow */\n .model-options {\n left: -40px;\n }\n\n .model-icon {\n display: inline;\n }\n\n .model-name {\n display: none;\n }\n}\n\n/* Model tooltip - appears to the right of the dropdown, rendered via portal */\n.model-tooltip {\n position: fixed;\n top: var(--tooltip-top, 200px);\n left: var(--tooltip-left, 200px);\n background-color: var(--jp-layout-color1);\n border: 1px solid var(--jp-layout-color2);\n border-radius: 4px;\n padding: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n z-index: 10000; /* High z-index to appear above Jupyter notebook */\n width: 280px;\n pointer-events: none; /* Prevent tooltip from blocking mouse events */\n}\n\n.model-tooltip-content {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.model-tooltip-header {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.model-tooltip-title-row {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.model-tooltip-title-icon {\n flex-shrink: 0;\n opacity: 0.8;\n display: flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n}\n\n.model-tooltip-title {\n font-size: 14px;\n font-weight: 600;\n color: var(--jp-content-font-color1);\n line-height: 1.2;\n}\n\n.model-tooltip-metadata {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 6px 12px;\n font-size: 11px;\n}\n\n.model-tooltip-metadata-item {\n display: flex;\n gap: 4px;\n}\n\n.model-tooltip-metadata-label {\n color: var(--jp-content-font-color2);\n font-weight: 500;\n}\n\n.model-tooltip-metadata-value {\n color: var(--jp-content-font-color1);\n font-weight: 600;\n}\n\n.model-tooltip-section {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.model-tooltip-section-label {\n font-size: 11px;\n font-weight: 600;\n color: var(--jp-content-font-color1);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.model-tooltip-bullet-list {\n margin: 0;\n padding-left: 16px;\n list-style-type: disc;\n}\n\n.model-tooltip-bullet-item {\n font-size: 12px;\n color: var(--jp-content-font-color2);\n line-height: 1.5;\n margin-bottom: 4px;\n}\n\n.model-tooltip-bullet-item:last-child {\n margin-bottom: 0;\n}"],"sourceRoot":""}]);
22885
+ }`, "",{"version":3,"sources":["webpack://./style/ModelSelector.css"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (c) Saga Inc.\n * Distributed under the terms of the GNU Affero General Public License v3.0 License.\n */\n\n/* ModelSelector.css - responsive design with compact mode */\n\n.model-selector {\n position: relative;\n flex: 0 0 auto;\n margin: 0 8px;\n height: 20px; /* Match height of other elements */\n display: flex;\n align-items: center; /* Center vertically */\n color: var(--jp-ui-font-color2);\n}\n\n.model-selector:hover {\n color: var(--jp-ui-font-color1);\n}\n\n.model-selector-dropdown {\n position: relative;\n height: 20px; /* Fixed height to match other elements */\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center; /* Ensure content is vertically centered */\n width: min-content;\n max-width: 18ch;\n}\n\n\n.selected-model {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: 100%;\n padding: 0 8px;\n font-size: 12px;\n font-weight: 500;\n line-height: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.model-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 14px;\n height: 14px;\n line-height: 1;\n}\n\n.dropdown-arrow {\n font-size: 8px;\n transition: transform 0.2s;\n margin-left: 4px;\n flex-shrink: 0; /* Prevent arrow from shrinking */\n}\n\n/* Model options dropdown */\n.model-options {\n position: absolute;\n bottom: 100%;\n max-height: 180px;\n overflow-y: auto;\n background-color: var(--jp-layout-color1);\n border: 1px solid var(--jp-layout-color2);\n border-radius: 4px;\n margin-bottom: 4px;\n box-shadow: 0 -2px 6px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n width: auto;\n}\n\n.model-option {\n padding: 4px 8px;\n font-size: 12px;\n /* Keep this size for readability */\n color: var(--jp-content-font-color1);\n cursor: pointer;\n transition: background-color 0.2s;\n white-space: nowrap;\n /* Prevent text wrapping */\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n\n.model-option-name {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.model-type-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n opacity: 0.7;\n}\n\n.model-option:hover {\n background-color: var(--jp-layout-color2);\n}\n\n.model-option.selected {\n background-color: var(--jp-layout-color2);\n color: var(--jp-brand-color2);\n}\n\n/* When inside chat-controls - ensure proper alignment with other controls */\n.chat-controls .model-selector {\n height: 20px;\n display: flex;\n align-items: center;\n}\n\n.chat-controls .model-selector-dropdown {\n height: 20px;\n align-self: center;\n}\n\n/* Ensure dropdown appears above other elements */\n.model-options {\n z-index: 1010;\n /* Higher z-index to ensure visibility */\n}\n\n.model-name {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n vertical-align: bottom;\n}\n\n/* On wider screens, show only the name of the model*/\n.model-icon {\n display: none;\n}\n\n.model-name {\n display: inline;\n}\n\n/* On compact screens, show only the icon */\n@container (max-width: 260px) {\n\n /* Shift the dropdown to the left to help prevent right-edge overflow */\n .model-options {\n left: -40px;\n }\n\n .model-icon {\n display: inline;\n }\n\n .model-name {\n display: none;\n }\n}\n\n/* Model tooltip - appears to the right of the dropdown, rendered via portal */\n.model-tooltip {\n position: fixed;\n top: var(--tooltip-top, 200px);\n left: var(--tooltip-left, 200px);\n background-color: var(--jp-layout-color1);\n border: 1px solid var(--jp-layout-color2);\n border-radius: 4px;\n padding: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n z-index: 10000; /* High z-index to appear above Jupyter notebook */\n width: 280px;\n pointer-events: none; /* Prevent tooltip from blocking mouse events */\n}\n\n.model-tooltip-content {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.model-tooltip-header {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.model-tooltip-title-row {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.model-tooltip-title-icon {\n flex-shrink: 0;\n opacity: 0.8;\n display: flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n}\n\n.model-tooltip-title {\n font-size: 14px;\n font-weight: 600;\n color: var(--jp-content-font-color1);\n line-height: 1.2;\n}\n\n.model-tooltip-metadata {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 6px 12px;\n font-size: 11px;\n}\n\n.model-tooltip-metadata-item {\n display: flex;\n gap: 4px;\n}\n\n.model-tooltip-metadata-label {\n color: var(--jp-content-font-color2);\n font-weight: 500;\n}\n\n.model-tooltip-metadata-value {\n color: var(--jp-content-font-color1);\n font-weight: 600;\n}\n\n.model-tooltip-section {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.model-tooltip-section-label {\n font-size: 11px;\n font-weight: 600;\n color: var(--jp-content-font-color1);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.model-tooltip-bullet-list {\n margin: 0;\n padding-left: 16px;\n list-style-type: disc;\n}\n\n.model-tooltip-bullet-item {\n font-size: 12px;\n color: var(--jp-content-font-color2);\n line-height: 1.5;\n margin-bottom: 4px;\n}\n\n.model-tooltip-bullet-item:last-child {\n margin-bottom: 0;\n}"],"sourceRoot":""}]);
22577
22886
  // Exports
22578
22887
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
22579
22888
 
@@ -23522,8 +23831,14 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
23522
23831
  width: 100%;
23523
23832
  border-radius: 4px;
23524
23833
  overflow: hidden;
23525
- background-color: var(--blue-300);
23526
- border: 0.5px solid var(--blue-900);
23834
+ /* Theme-aware button colors set by Mito palettes */
23835
+ background-color: var(--mito-theme-button-background, var(--blue-300));
23836
+ border: 0.5px solid var(--mito-theme-button-border, var(--blue-900));
23837
+ transition: all 0.15s ease;
23838
+ }
23839
+
23840
+ .mito-run-cell-button-group:hover {
23841
+ background-color: var(--mito-theme-button-hover-background, var(--blue-400));
23527
23842
  }
23528
23843
 
23529
23844
  /* Shared button styles */
@@ -23534,7 +23849,8 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
23534
23849
  padding: 0;
23535
23850
  border-radius: 0;
23536
23851
  cursor: pointer;
23537
- color: var(--blue-900);
23852
+ /* Theme-aware text color */
23853
+ color: var(--mito-theme-button-text, var(--blue-900));
23538
23854
  font-size: 13px;
23539
23855
  font-weight: 400;
23540
23856
  transition: background-color 0.15s ease;
@@ -23543,7 +23859,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
23543
23859
  }
23544
23860
 
23545
23861
  .mito-run-cell-button:hover {
23546
- background-color: var(--blue-400);
23862
+ background-color: transparent;
23547
23863
  }
23548
23864
 
23549
23865
  /* Main button (left side - play icon + text) */
@@ -23560,8 +23876,8 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
23560
23876
  background: linear-gradient(
23561
23877
  to bottom,
23562
23878
  transparent,
23563
- var(--blue-900) 20%,
23564
- var(--blue-900) 80%,
23879
+ var(--mito-theme-button-border, var(--blue-900)) 20%,
23880
+ var(--mito-theme-button-border, var(--blue-900)) 80%,
23565
23881
  transparent
23566
23882
  );
23567
23883
  opacity: 0.4;
@@ -23579,8 +23895,8 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
23579
23895
 
23580
23896
  /* Play icon styling */
23581
23897
  .mito-run-cell-button-main > svg {
23582
- color: var(--blue-900);
23583
- fill: var(--blue-900);
23898
+ color: var(--mito-theme-button-text, var(--blue-900));
23899
+ fill: var(--mito-theme-button-text, var(--blue-900));
23584
23900
  width: 12px;
23585
23901
  height: 12px;
23586
23902
  flex-shrink: 0;
@@ -23590,7 +23906,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
23590
23906
  .mito-run-cell-button-dropdown svg {
23591
23907
  width: 14px;
23592
23908
  height: 14px;
23593
- color: var(--blue-900);
23909
+ color: var(--mito-theme-button-text, var(--blue-900));
23594
23910
  }
23595
23911
 
23596
23912
  /* Ensure chevron path only uses stroke, not fill */
@@ -23601,6 +23917,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
23601
23917
 
23602
23918
  .mito-run-cell-button-text {
23603
23919
  white-space: nowrap;
23920
+ color: var(--mito-theme-button-text, var(--blue-900));
23604
23921
  }
23605
23922
 
23606
23923
  /* Running state - applied to the group */
@@ -23738,7 +24055,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
23738
24055
  .jp-Notebook-toolbar {
23739
24056
  display: flex;
23740
24057
  align-items: center;
23741
- }`, "",{"version":3,"sources":["webpack://./style/RunCellButton.css"],"names":[],"mappings":"AAAA;;;EAGE;;AAEF;EACE,kBAAkB;EAClB,cAAc;EACd,YAAY;AACd;;AAEA,yCAAyC;AACzC;EACE,aAAa;EACb,mBAAmB;EACnB,oCAAoC;EACpC,WAAW;EACX,kBAAkB;EAClB,gBAAgB;EAChB,iCAAiC;EACjC,mCAAmC;AACrC;;AAEA,yBAAyB;AACzB;EACE,aAAa;EACb,mBAAmB;EACnB,YAAY;EACZ,UAAU;EACV,gBAAgB;EAChB,eAAe;EACf,sBAAsB;EACtB,eAAe;EACf,gBAAgB;EAChB,uCAAuC;EACvC,YAAY;EACZ,6BAA6B;AAC/B;;AAEA;EACE,iCAAiC;AACnC;;AAEA,+CAA+C;AAC/C;EACE,OAAO;EACP,QAAQ;EACR,eAAe;AACjB;;AAEA,4BAA4B;AAC5B;EACE,UAAU;EACV,YAAY;EACZ;;;;;;GAMC;EACD,YAAY;EACZ,cAAc;AAChB;;AAEA,2CAA2C;AAC3C;EACE,cAAc;EACd,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,gBAAgB;AAClB;;AAEA,sBAAsB;AACtB;EACE,sBAAsB;EACtB,qBAAqB;EACrB,WAAW;EACX,YAAY;EACZ,cAAc;AAChB;;AAEA,oBAAoB;AACpB;EACE,WAAW;EACX,YAAY;EACZ,sBAAsB;AACxB;;AAEA,mDAAmD;AACnD;EACE,UAAU;EACV,oBAAoB;AACtB;;AAEA;EACE,mBAAmB;AACrB;;AAEA,yCAAyC;AACzC;EACE,8BAA8B;AAChC;;AAEA;;EAEE,kCAAkC;EAClC,uBAAuB;AACzB;;AAEA;EACE,kCAAkC;AACpC;;AAEA;EACE;;;;;;GAMC;EACD,YAAY;AACd;;AAEA,uCAAuC;AACvC;EACE,uBAAuB;EACvB,sBAAsB;EACtB,WAAW;EACX,YAAY;AACd;;AAEA;EACE,uBAAuB;AACzB;;AAEA;EACE,uBAAuB;AACzB;;AAEA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,QAAQ;EACR,aAAa;EACb,yCAAyC;EACzC,yCAAyC;EACzC,kBAAkB;EAClB,wCAAwC;EACxC,gBAAgB;EAChB,mBAAmB;EACnB,cAAc;AAChB;;AAEA;EACE,aAAa;EACb,sBAAsB;AACxB;;AAEA;EACE,0BAA0B;EAC1B,eAAe;EACf,gBAAgB;EAChB,+BAA+B;EAC/B,yBAAyB;EACzB,qBAAqB;AACvB;;AAEA;EACE,WAAW;EACX,yCAAyC;EACzC,aAAa;AACf;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,WAAW;EACX,iBAAiB;EACjB,gBAAgB;EAChB,YAAY;EACZ,gBAAgB;EAChB,+BAA+B;EAC/B,eAAe;EACf,eAAe;EACf,gBAAgB;EAChB,QAAQ;AACV;;AAEA;EACE,yCAAyC;AAC3C;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,WAAW,EAAE,mCAAmC;EAChD,YAAY;EACZ,cAAc;EACd,+BAA+B;EAC/B,cAAc,EAAE,kDAAkD;AACpE;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,cAAc,EAAE,0BAA0B;EAC1C,cAAc,EAAE,qDAAqD;EACrE,+BAA+B;AACjC;;AAEA;EACE,OAAO;AACT;;AAEA;EACE,+BAA+B;EAC/B,eAAe;EACf,iBAAiB;EACjB,YAAY;AACd;;AAEA,gEAAgE;AAChE;EACE,iBAAiB;EACjB,WAAW,EAAE,2BAA2B;AAC1C;;AAEA,qDAAqD;AACrD;EACE,aAAa;EACb,mBAAmB;AACrB","sourcesContent":["/*\n * Copyright (c) Saga Inc.\n * Distributed under the terms of the GNU Affero General Public License v3.0 License.\n */\n\n.mito-run-cell-button-container {\n position: relative;\n display: block;\n width: 160px;\n}\n\n/* Button group - contains both buttons */\n.mito-run-cell-button-group {\n display: flex;\n align-items: center;\n height: var(--toolbar-button-height);\n width: 100%;\n border-radius: 4px;\n overflow: hidden;\n background-color: var(--blue-300);\n border: 0.5px solid var(--blue-900);\n}\n\n/* Shared button styles */\n.mito-run-cell-button {\n display: flex;\n align-items: center;\n border: none;\n padding: 0;\n border-radius: 0;\n cursor: pointer;\n color: var(--blue-900);\n font-size: 13px;\n font-weight: 400;\n transition: background-color 0.15s ease;\n height: 100%;\n background-color: transparent;\n}\n\n.mito-run-cell-button:hover {\n background-color: var(--blue-400);\n}\n\n/* Main button (left side - play icon + text) */\n.mito-run-cell-button-main {\n flex: 1;\n gap: 6px;\n padding: 0 10px;\n}\n\n/* Divider between buttons */\n.mito-run-cell-button-divider {\n width: 1px;\n height: 14px;\n background: linear-gradient(\n to bottom,\n transparent,\n var(--blue-900) 20%,\n var(--blue-900) 80%,\n transparent\n );\n opacity: 0.4;\n flex-shrink: 0;\n}\n\n/* Dropdown button (right side - chevron) */\n.mito-run-cell-button-dropdown {\n padding: 0 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 0;\n}\n\n/* Play icon styling */\n.mito-run-cell-button-main > svg {\n color: var(--blue-900);\n fill: var(--blue-900);\n width: 12px;\n height: 12px;\n flex-shrink: 0;\n}\n\n/* Chevron styling */\n.mito-run-cell-button-dropdown svg {\n width: 14px;\n height: 14px;\n color: var(--blue-900);\n}\n\n/* Ensure chevron path only uses stroke, not fill */\n.mito-run-cell-button-dropdown svg path {\n fill: none;\n stroke: currentColor;\n}\n\n.mito-run-cell-button-text {\n white-space: nowrap;\n}\n\n/* Running state - applied to the group */\n.mito-run-cell-button-running {\n border-color: var(--green-900);\n}\n\n.mito-run-cell-button-running .mito-run-cell-button,\n.mito-run-cell-button-running .mito-run-cell-button-dropdown {\n background-color: var(--green-300);\n color: var(--green-900);\n}\n\n.mito-run-cell-button-running .mito-run-cell-button-dropdown:hover {\n background-color: var(--green-500);\n}\n\n.mito-run-cell-button-running .mito-run-cell-button-divider {\n background: linear-gradient(\n to bottom,\n transparent,\n var(--green-900) 20%,\n var(--green-900) 80%,\n transparent\n );\n opacity: 0.5;\n}\n\n/* LoadingCircle styling when running */\n.mito-run-cell-button-running .mito-run-cell-button-main > svg {\n color: var(--green-900);\n fill: var(--green-900);\n width: 16px;\n height: 16px;\n}\n\n.mito-run-cell-button-running .mito-run-cell-button-text {\n color: var(--green-900);\n}\n\n.mito-run-cell-button-running .mito-run-cell-button-dropdown svg {\n color: var(--green-900);\n}\n\n.mito-run-cell-dropdown-menu {\n position: absolute;\n top: calc(100% + 4px);\n right: 0;\n z-index: 1000;\n background-color: var(--jp-layout-color1);\n border: 1px solid var(--jp-layout-color2);\n border-radius: 3px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n min-width: 200px;\n white-space: nowrap;\n padding: 4px 0;\n}\n\n.mito-run-cell-dropdown-section {\n display: flex;\n flex-direction: column;\n}\n\n.mito-run-cell-dropdown-section-header {\n padding: 6px 12px 4px 12px;\n font-size: 11px;\n font-weight: 600;\n color: var(--jp-ui-font-color2);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.mito-run-cell-dropdown-separator {\n height: 1px;\n background-color: var(--jp-layout-color2);\n margin: 4px 0;\n}\n\n.mito-run-cell-dropdown-item {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 6px 12px;\n text-align: left;\n border: none;\n background: none;\n color: var(--jp-ui-font-color1);\n cursor: pointer;\n font-size: 13px;\n font-weight: 400;\n gap: 8px;\n}\n\n.mito-run-cell-dropdown-item:hover {\n background-color: var(--jp-layout-color2);\n}\n\n.mito-run-cell-dropdown-item-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px; /* Fixed width to align all icons */\n height: 16px;\n flex-shrink: 0;\n color: var(--jp-ui-font-color1);\n line-height: 0; /* Remove extra line height for better alignment */\n}\n\n.mito-run-cell-dropdown-item-icon svg {\n width: 16px;\n height: 16px;\n display: block; /* Remove inline spacing */\n margin: 0 auto; /* Center the icon within the fixed width container */\n color: var(--jp-ui-font-color1); \n}\n\n.mito-run-cell-dropdown-item-label {\n flex: 1;\n}\n\n.mito-run-cell-dropdown-item-shortcut {\n color: var(--jp-ui-font-color2);\n font-size: 11px;\n margin-left: 10px;\n opacity: 0.7;\n}\n\n/* Position the button widget on the right side of the toolbar */\n.jp-Notebook-toolbar .mito-run-cell-button-widget {\n margin-left: auto;\n order: 9999; /* Ensure it appears last */\n}\n\n/* Ensure toolbar uses flexbox for proper alignment */\n.jp-Notebook-toolbar {\n display: flex;\n align-items: center;\n}"],"sourceRoot":""}]);
24058
+ }`, "",{"version":3,"sources":["webpack://./style/RunCellButton.css"],"names":[],"mappings":"AAAA;;;EAGE;;AAEF;EACE,kBAAkB;EAClB,cAAc;EACd,YAAY;AACd;;AAEA,yCAAyC;AACzC;EACE,aAAa;EACb,mBAAmB;EACnB,oCAAoC;EACpC,WAAW;EACX,kBAAkB;EAClB,gBAAgB;EAChB,mDAAmD;EACnD,sEAAsE;EACtE,oEAAoE;EACpE,0BAA0B;AAC5B;;AAEA;EACE,4EAA4E;AAC9E;;AAEA,yBAAyB;AACzB;EACE,aAAa;EACb,mBAAmB;EACnB,YAAY;EACZ,UAAU;EACV,gBAAgB;EAChB,eAAe;EACf,2BAA2B;EAC3B,qDAAqD;EACrD,eAAe;EACf,gBAAgB;EAChB,uCAAuC;EACvC,YAAY;EACZ,6BAA6B;AAC/B;;AAEA;EACE,6BAA6B;AAC/B;;AAEA,+CAA+C;AAC/C;EACE,OAAO;EACP,QAAQ;EACR,eAAe;AACjB;;AAEA,4BAA4B;AAC5B;EACE,UAAU;EACV,YAAY;EACZ;;;;;;GAMC;EACD,YAAY;EACZ,cAAc;AAChB;;AAEA,2CAA2C;AAC3C;EACE,cAAc;EACd,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,gBAAgB;AAClB;;AAEA,sBAAsB;AACtB;EACE,qDAAqD;EACrD,oDAAoD;EACpD,WAAW;EACX,YAAY;EACZ,cAAc;AAChB;;AAEA,oBAAoB;AACpB;EACE,WAAW;EACX,YAAY;EACZ,qDAAqD;AACvD;;AAEA,mDAAmD;AACnD;EACE,UAAU;EACV,oBAAoB;AACtB;;AAEA;EACE,mBAAmB;EACnB,qDAAqD;AACvD;;AAEA,yCAAyC;AACzC;EACE,8BAA8B;AAChC;;AAEA;;EAEE,kCAAkC;EAClC,uBAAuB;AACzB;;AAEA;EACE,kCAAkC;AACpC;;AAEA;EACE;;;;;;GAMC;EACD,YAAY;AACd;;AAEA,uCAAuC;AACvC;EACE,uBAAuB;EACvB,sBAAsB;EACtB,WAAW;EACX,YAAY;AACd;;AAEA;EACE,uBAAuB;AACzB;;AAEA;EACE,uBAAuB;AACzB;;AAEA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,QAAQ;EACR,aAAa;EACb,yCAAyC;EACzC,yCAAyC;EACzC,kBAAkB;EAClB,wCAAwC;EACxC,gBAAgB;EAChB,mBAAmB;EACnB,cAAc;AAChB;;AAEA;EACE,aAAa;EACb,sBAAsB;AACxB;;AAEA;EACE,0BAA0B;EAC1B,eAAe;EACf,gBAAgB;EAChB,+BAA+B;EAC/B,yBAAyB;EACzB,qBAAqB;AACvB;;AAEA;EACE,WAAW;EACX,yCAAyC;EACzC,aAAa;AACf;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,WAAW;EACX,iBAAiB;EACjB,gBAAgB;EAChB,YAAY;EACZ,gBAAgB;EAChB,+BAA+B;EAC/B,eAAe;EACf,eAAe;EACf,gBAAgB;EAChB,QAAQ;AACV;;AAEA;EACE,yCAAyC;AAC3C;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,WAAW,EAAE,mCAAmC;EAChD,YAAY;EACZ,cAAc;EACd,+BAA+B;EAC/B,cAAc,EAAE,kDAAkD;AACpE;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,cAAc,EAAE,0BAA0B;EAC1C,cAAc,EAAE,qDAAqD;EACrE,+BAA+B;AACjC;;AAEA;EACE,OAAO;AACT;;AAEA;EACE,+BAA+B;EAC/B,eAAe;EACf,iBAAiB;EACjB,YAAY;AACd;;AAEA,gEAAgE;AAChE;EACE,iBAAiB;EACjB,WAAW,EAAE,2BAA2B;AAC1C;;AAEA,qDAAqD;AACrD;EACE,aAAa;EACb,mBAAmB;AACrB","sourcesContent":["/*\n * Copyright (c) Saga Inc.\n * Distributed under the terms of the GNU Affero General Public License v3.0 License.\n */\n\n.mito-run-cell-button-container {\n position: relative;\n display: block;\n width: 160px;\n}\n\n/* Button group - contains both buttons */\n.mito-run-cell-button-group {\n display: flex;\n align-items: center;\n height: var(--toolbar-button-height);\n width: 100%;\n border-radius: 4px;\n overflow: hidden;\n /* Theme-aware button colors set by Mito palettes */\n background-color: var(--mito-theme-button-background, var(--blue-300));\n border: 0.5px solid var(--mito-theme-button-border, var(--blue-900));\n transition: all 0.15s ease;\n}\n\n.mito-run-cell-button-group:hover {\n background-color: var(--mito-theme-button-hover-background, var(--blue-400));\n}\n\n/* Shared button styles */\n.mito-run-cell-button {\n display: flex;\n align-items: center;\n border: none;\n padding: 0;\n border-radius: 0;\n cursor: pointer;\n /* Theme-aware text color */\n color: var(--mito-theme-button-text, var(--blue-900));\n font-size: 13px;\n font-weight: 400;\n transition: background-color 0.15s ease;\n height: 100%;\n background-color: transparent;\n}\n\n.mito-run-cell-button:hover {\n background-color: transparent;\n}\n\n/* Main button (left side - play icon + text) */\n.mito-run-cell-button-main {\n flex: 1;\n gap: 6px;\n padding: 0 10px;\n}\n\n/* Divider between buttons */\n.mito-run-cell-button-divider {\n width: 1px;\n height: 14px;\n background: linear-gradient(\n to bottom,\n transparent,\n var(--mito-theme-button-border, var(--blue-900)) 20%,\n var(--mito-theme-button-border, var(--blue-900)) 80%,\n transparent\n );\n opacity: 0.4;\n flex-shrink: 0;\n}\n\n/* Dropdown button (right side - chevron) */\n.mito-run-cell-button-dropdown {\n padding: 0 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 0;\n}\n\n/* Play icon styling */\n.mito-run-cell-button-main > svg {\n color: var(--mito-theme-button-text, var(--blue-900));\n fill: var(--mito-theme-button-text, var(--blue-900));\n width: 12px;\n height: 12px;\n flex-shrink: 0;\n}\n\n/* Chevron styling */\n.mito-run-cell-button-dropdown svg {\n width: 14px;\n height: 14px;\n color: var(--mito-theme-button-text, var(--blue-900));\n}\n\n/* Ensure chevron path only uses stroke, not fill */\n.mito-run-cell-button-dropdown svg path {\n fill: none;\n stroke: currentColor;\n}\n\n.mito-run-cell-button-text {\n white-space: nowrap;\n color: var(--mito-theme-button-text, var(--blue-900));\n}\n\n/* Running state - applied to the group */\n.mito-run-cell-button-running {\n border-color: var(--green-900);\n}\n\n.mito-run-cell-button-running .mito-run-cell-button,\n.mito-run-cell-button-running .mito-run-cell-button-dropdown {\n background-color: var(--green-300);\n color: var(--green-900);\n}\n\n.mito-run-cell-button-running .mito-run-cell-button-dropdown:hover {\n background-color: var(--green-500);\n}\n\n.mito-run-cell-button-running .mito-run-cell-button-divider {\n background: linear-gradient(\n to bottom,\n transparent,\n var(--green-900) 20%,\n var(--green-900) 80%,\n transparent\n );\n opacity: 0.5;\n}\n\n/* LoadingCircle styling when running */\n.mito-run-cell-button-running .mito-run-cell-button-main > svg {\n color: var(--green-900);\n fill: var(--green-900);\n width: 16px;\n height: 16px;\n}\n\n.mito-run-cell-button-running .mito-run-cell-button-text {\n color: var(--green-900);\n}\n\n.mito-run-cell-button-running .mito-run-cell-button-dropdown svg {\n color: var(--green-900);\n}\n\n.mito-run-cell-dropdown-menu {\n position: absolute;\n top: calc(100% + 4px);\n right: 0;\n z-index: 1000;\n background-color: var(--jp-layout-color1);\n border: 1px solid var(--jp-layout-color2);\n border-radius: 3px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n min-width: 200px;\n white-space: nowrap;\n padding: 4px 0;\n}\n\n.mito-run-cell-dropdown-section {\n display: flex;\n flex-direction: column;\n}\n\n.mito-run-cell-dropdown-section-header {\n padding: 6px 12px 4px 12px;\n font-size: 11px;\n font-weight: 600;\n color: var(--jp-ui-font-color2);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.mito-run-cell-dropdown-separator {\n height: 1px;\n background-color: var(--jp-layout-color2);\n margin: 4px 0;\n}\n\n.mito-run-cell-dropdown-item {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 6px 12px;\n text-align: left;\n border: none;\n background: none;\n color: var(--jp-ui-font-color1);\n cursor: pointer;\n font-size: 13px;\n font-weight: 400;\n gap: 8px;\n}\n\n.mito-run-cell-dropdown-item:hover {\n background-color: var(--jp-layout-color2);\n}\n\n.mito-run-cell-dropdown-item-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px; /* Fixed width to align all icons */\n height: 16px;\n flex-shrink: 0;\n color: var(--jp-ui-font-color1);\n line-height: 0; /* Remove extra line height for better alignment */\n}\n\n.mito-run-cell-dropdown-item-icon svg {\n width: 16px;\n height: 16px;\n display: block; /* Remove inline spacing */\n margin: 0 auto; /* Center the icon within the fixed width container */\n color: var(--jp-ui-font-color1); \n}\n\n.mito-run-cell-dropdown-item-label {\n flex: 1;\n}\n\n.mito-run-cell-dropdown-item-shortcut {\n color: var(--jp-ui-font-color2);\n font-size: 11px;\n margin-left: 10px;\n opacity: 0.7;\n}\n\n/* Position the button widget on the right side of the toolbar */\n.jp-Notebook-toolbar .mito-run-cell-button-widget {\n margin-left: auto;\n order: 9999; /* Ensure it appears last */\n}\n\n/* Ensure toolbar uses flexbox for proper alignment */\n.jp-Notebook-toolbar {\n display: flex;\n align-items: center;\n}"],"sourceRoot":""}]);
23742
24059
  // Exports
23743
24060
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
23744
24061
 
@@ -24622,14 +24939,16 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
24622
24939
  }
24623
24940
 
24624
24941
  .button-blue {
24625
- background-color: var(--blue-300);
24626
- color: var(--blue-900) !important;
24627
- border: 0.5px solid var(--blue-900);
24942
+ /* Theme-aware button colors set by Mito palettes */
24943
+ background-color: var(--mito-theme-button-background, var(--blue-300));
24944
+ color: var(--mito-theme-button-text, var(--blue-900)) !important;
24945
+ border: 0.5px solid var(--mito-theme-button-border, var(--blue-900));
24628
24946
  border-radius: 4px;
24947
+ transition: all 0.15s ease;
24629
24948
  }
24630
24949
 
24631
24950
  .button-blue:hover {
24632
- background-color: var(--blue-400);
24951
+ background-color: var(--mito-theme-button-hover-background, var(--blue-400));
24633
24952
  }
24634
24953
 
24635
24954
  .button-dark-purple {
@@ -24654,7 +24973,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
24654
24973
  font-size: 12px;
24655
24974
  padding: 2px 5px;
24656
24975
  }
24657
- `, "",{"version":3,"sources":["webpack://./style/button.css"],"names":[],"mappings":"AAAA;;;EAGE;;AAEF;;;;CAIC;;AAED;EACE,YAAY;EACZ,kBAAkB;EAClB,eAAe;EACf,eAAe;EACf,2EAA2E;EAC3E,mBAAmB;EACnB,iBAAiB;AACnB;;AAEA;EACE,YAAY;EACZ,mBAAmB;EACnB,oBAAoB;AACtB;;AAEA;EACE,kCAAkC;EAClC,kCAAkC;AACpC;;AAEA;EACE,kCAAkC;AACpC;;AAEA;EACE,gCAAgC;EAChC,gCAAgC;AAClC;;AAEA;EACE,gCAAgC;AAClC;;AAEA;EACE,yCAAyC;EACzC,+CAA+C;AACjD;;AAEA;EACE,yCAAyC;AAC3C;;AAEA;EACE,mCAAmC;EACnC,mCAAmC;AACrC;;AAEA;EACE,mCAAmC;AACrC;;AAEA;EACE,mCAAmC;AACrC;;AAEA;EACE,iCAAiC;EACjC,iCAAiC;EACjC,mCAAmC;EACnC,kBAAkB;AACpB;;AAEA;EACE,iCAAiC;AACnC;;AAEA;EACE,mCAAmC;EACnC,8BAA8B;AAChC;;AAEA;EACE,mCAAmC;AACrC;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,oCAAoC;EACpC,eAAe;EACf,gBAAgB;AAClB","sourcesContent":["/*\n * Copyright (c) Saga Inc.\n * Distributed under the terms of the GNU Affero General Public License v3.0 License.\n */\n\n/* \n Classes that can be used for any button, making it easier to keep \n the theme consistent. For example, use them to make a textButton or\n textAndIconButton green.\n*/\n\n.button-base {\n border: none;\n border-radius: 3px;\n cursor: pointer;\n font-size: 14px;\n /* Make sure the button grows large enough so that the text does not wrap */\n white-space: nowrap;\n padding: 5px 10px;\n}\n\n.button-base:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.button-green {\n background-color: var(--green-400);\n color: var(--green-900) !important;\n}\n\n.button-green:hover {\n background-color: var(--green-500);\n}\n\n.button-red {\n background-color: var(--red-400);\n color: var(--red-900) !important;\n}\n\n.button-red:hover {\n background-color: var(--red-500);\n}\n\n.button-gray {\n background-color: var(--jp-layout-color2);\n color: var(--jp-content-font-color1) !important;\n}\n\n.button-gray:hover {\n background-color: var(--jp-layout-color3);\n}\n\n.button-purple {\n background-color: var(--purple-300);\n color: var(--purple-700) !important;\n}\n\n.button-purple:hover {\n background-color: var(--purple-400);\n}\n\n.button-purple:disabled:hover {\n background-color: var(--purple-300);\n}\n\n.button-blue {\n background-color: var(--blue-300);\n color: var(--blue-900) !important;\n border: 0.5px solid var(--blue-900);\n border-radius: 4px;\n}\n\n.button-blue:hover {\n background-color: var(--blue-400);\n}\n\n.button-dark-purple {\n background-color: var(--purple-500);\n color: var(--white) !important;\n}\n\n.button-dark-purple:hover {\n background-color: var(--purple-600);\n}\n\n.button-width-block {\n width: 100%;\n}\n\n.button-width-fit-contents {\n width: fit-content;\n}\n\n.button-small {\n height: var(--toolbar-button-height);\n font-size: 12px;\n padding: 2px 5px;\n}\n"],"sourceRoot":""}]);
24976
+ `, "",{"version":3,"sources":["webpack://./style/button.css"],"names":[],"mappings":"AAAA;;;EAGE;;AAEF;;;;CAIC;;AAED;EACE,YAAY;EACZ,kBAAkB;EAClB,eAAe;EACf,eAAe;EACf,2EAA2E;EAC3E,mBAAmB;EACnB,iBAAiB;AACnB;;AAEA;EACE,YAAY;EACZ,mBAAmB;EACnB,oBAAoB;AACtB;;AAEA;EACE,kCAAkC;EAClC,kCAAkC;AACpC;;AAEA;EACE,kCAAkC;AACpC;;AAEA;EACE,gCAAgC;EAChC,gCAAgC;AAClC;;AAEA;EACE,gCAAgC;AAClC;;AAEA;EACE,yCAAyC;EACzC,+CAA+C;AACjD;;AAEA;EACE,yCAAyC;AAC3C;;AAEA;EACE,mCAAmC;EACnC,mCAAmC;AACrC;;AAEA;EACE,mCAAmC;AACrC;;AAEA;EACE,mCAAmC;AACrC;;AAEA;EACE,mDAAmD;EACnD,sEAAsE;EACtE,gEAAgE;EAChE,oEAAoE;EACpE,kBAAkB;EAClB,0BAA0B;AAC5B;;AAEA;EACE,4EAA4E;AAC9E;;AAEA;EACE,mCAAmC;EACnC,8BAA8B;AAChC;;AAEA;EACE,mCAAmC;AACrC;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,oCAAoC;EACpC,eAAe;EACf,gBAAgB;AAClB","sourcesContent":["/*\n * Copyright (c) Saga Inc.\n * Distributed under the terms of the GNU Affero General Public License v3.0 License.\n */\n\n/* \n Classes that can be used for any button, making it easier to keep \n the theme consistent. For example, use them to make a textButton or\n textAndIconButton green.\n*/\n\n.button-base {\n border: none;\n border-radius: 3px;\n cursor: pointer;\n font-size: 14px;\n /* Make sure the button grows large enough so that the text does not wrap */\n white-space: nowrap;\n padding: 5px 10px;\n}\n\n.button-base:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.button-green {\n background-color: var(--green-400);\n color: var(--green-900) !important;\n}\n\n.button-green:hover {\n background-color: var(--green-500);\n}\n\n.button-red {\n background-color: var(--red-400);\n color: var(--red-900) !important;\n}\n\n.button-red:hover {\n background-color: var(--red-500);\n}\n\n.button-gray {\n background-color: var(--jp-layout-color2);\n color: var(--jp-content-font-color1) !important;\n}\n\n.button-gray:hover {\n background-color: var(--jp-layout-color3);\n}\n\n.button-purple {\n background-color: var(--purple-300);\n color: var(--purple-700) !important;\n}\n\n.button-purple:hover {\n background-color: var(--purple-400);\n}\n\n.button-purple:disabled:hover {\n background-color: var(--purple-300);\n}\n\n.button-blue {\n /* Theme-aware button colors set by Mito palettes */\n background-color: var(--mito-theme-button-background, var(--blue-300));\n color: var(--mito-theme-button-text, var(--blue-900)) !important;\n border: 0.5px solid var(--mito-theme-button-border, var(--blue-900));\n border-radius: 4px;\n transition: all 0.15s ease;\n}\n\n.button-blue:hover {\n background-color: var(--mito-theme-button-hover-background, var(--blue-400));\n}\n\n.button-dark-purple {\n background-color: var(--purple-500);\n color: var(--white) !important;\n}\n\n.button-dark-purple:hover {\n background-color: var(--purple-600);\n}\n\n.button-width-block {\n width: 100%;\n}\n\n.button-width-fit-contents {\n width: fit-content;\n}\n\n.button-small {\n height: var(--toolbar-button-height);\n font-size: 12px;\n padding: 2px 5px;\n}\n"],"sourceRoot":""}]);
24658
24977
  // Exports
24659
24978
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
24660
24979
 
@@ -24697,7 +25016,7 @@ module.exports = "<svg width=\"22\" height=\"17\" viewBox=\"0 0 22 17\" fill=\"n
24697
25016
  \********************************/
24698
25017
  /***/ ((module) => {
24699
25018
 
24700
- module.exports = "<svg width=\"19\" height=\"20\" viewBox=\"0 0 19 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15.0626 4.8125C15.5466 4.8125 15.9376 5.20352 15.9376 5.6875C15.9376 6.17148 15.5466 6.5625 15.0626 6.5625C14.5787 6.5625 14.1876 6.17148 14.1876 5.6875C14.1876 5.20352 14.5787 4.8125 15.0626 4.8125ZM12.0001 4.8125C12.4841 4.8125 12.8751 5.20352 12.8751 5.6875C12.8751 6.17148 12.4841 6.5625 12.0001 6.5625C11.5162 6.5625 11.1251 6.17148 11.1251 5.6875C11.1251 5.20352 11.5162 4.8125 12.0001 4.8125ZM8.93764 4.8125C9.42162 4.8125 9.81264 5.20352 9.81264 5.6875C9.81264 6.17148 9.42162 6.5625 8.93764 6.5625C8.45365 6.5625 8.06264 6.17148 8.06264 5.6875C8.06264 5.20352 8.45365 4.8125 8.93764 4.8125ZM12.0001 0C15.8665 0 19.0001 2.5457 19.0001 5.6875C19.0001 6.98906 18.456 8.18125 17.5537 9.14102C17.9611 10.2184 18.8087 11.1316 18.8224 11.1426C19.0029 11.334 19.0521 11.6129 18.9482 11.8535C18.8443 12.0941 18.6064 12.25 18.3439 12.25C16.6622 12.25 15.3361 11.5473 14.5404 10.984C13.7501 11.2328 12.897 11.375 12.0001 11.375C8.13373 11.375 5.00014 8.8293 5.00014 5.6875C5.00014 2.5457 8.13373 0 12.0001 0ZM12.0001 10.0625C12.7302 10.0625 13.4521 9.95039 14.1439 9.73164L14.7646 9.53477L15.2978 9.91211C15.6888 10.1883 16.2247 10.4973 16.8701 10.7051C16.6705 10.3742 16.4763 10.0023 16.3259 9.60586L16.0361 8.8375L16.5994 8.24141C17.0943 7.71367 17.6876 6.84141 17.6876 5.6875C17.6876 3.27578 15.1365 1.3125 12.0001 1.3125C8.86381 1.3125 6.31264 3.27578 6.31264 5.6875C6.31264 8.09922 8.86381 10.0625 12.0001 10.0625Z\" fill=\"var(--purple-600)\" class=\"jp-icon-selectable\"/>\n <path d=\"M7 7C3.13359 7 0 9.5457 0 12.6875C0 14.0437 0.585156 15.2852 1.55859 16.2613C1.2168 17.6395 0.0738281 18.8672 0.0601563 18.8809C0 18.9438 -0.0164062 19.0367 0.0191406 19.1188C0.0546875 19.2008 0.13125 19.25 0.21875 19.25C2.03164 19.25 3.39063 18.3805 4.06328 17.8445C4.95742 18.1809 5.95 18.375 7 18.375C10.8664 18.375 14 15.8293 14 12.6875C14 9.5457 10.8664 7 7 7ZM3.5 13.5625C3.01602 13.5625 2.625 13.1715 2.625 12.6875C2.625 12.2035 3.01602 11.8125 3.5 11.8125C3.98398 11.8125 4.375 12.2035 4.375 12.6875C4.375 13.1715 3.98398 13.5625 3.5 13.5625ZM7 13.5625C6.51602 13.5625 6.125 13.1715 6.125 12.6875C6.125 12.2035 6.51602 11.8125 7 11.8125C7.48398 11.8125 7.875 12.2035 7.875 12.6875C7.875 13.1715 7.48398 13.5625 7 13.5625ZM10.5 13.5625C10.016 13.5625 9.625 13.1715 9.625 12.6875C9.625 12.2035 10.016 11.8125 10.5 11.8125C10.984 11.8125 11.375 12.2035 11.375 12.6875C11.375 13.1715 10.984 13.5625 10.5 13.5625Z\" fill=\"var(--purple-700)\" class=\"jp-icon-selectable\"/>\n</svg>\n";
25019
+ module.exports = "<svg width=\"19\" height=\"20\" viewBox=\"0 0 19 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15.0626 4.8125C15.5466 4.8125 15.9376 5.20352 15.9376 5.6875C15.9376 6.17148 15.5466 6.5625 15.0626 6.5625C14.5787 6.5625 14.1876 6.17148 14.1876 5.6875C14.1876 5.20352 14.5787 4.8125 15.0626 4.8125ZM12.0001 4.8125C12.4841 4.8125 12.8751 5.20352 12.8751 5.6875C12.8751 6.17148 12.4841 6.5625 12.0001 6.5625C11.5162 6.5625 11.1251 6.17148 11.1251 5.6875C11.1251 5.20352 11.5162 4.8125 12.0001 4.8125ZM8.93764 4.8125C9.42162 4.8125 9.81264 5.20352 9.81264 5.6875C9.81264 6.17148 9.42162 6.5625 8.93764 6.5625C8.45365 6.5625 8.06264 6.17148 8.06264 5.6875C8.06264 5.20352 8.45365 4.8125 8.93764 4.8125ZM12.0001 0C15.8665 0 19.0001 2.5457 19.0001 5.6875C19.0001 6.98906 18.456 8.18125 17.5537 9.14102C17.9611 10.2184 18.8087 11.1316 18.8224 11.1426C19.0029 11.334 19.0521 11.6129 18.9482 11.8535C18.8443 12.0941 18.6064 12.25 18.3439 12.25C16.6622 12.25 15.3361 11.5473 14.5404 10.984C13.7501 11.2328 12.897 11.375 12.0001 11.375C8.13373 11.375 5.00014 8.8293 5.00014 5.6875C5.00014 2.5457 8.13373 0 12.0001 0ZM12.0001 10.0625C12.7302 10.0625 13.4521 9.95039 14.1439 9.73164L14.7646 9.53477L15.2978 9.91211C15.6888 10.1883 16.2247 10.4973 16.8701 10.7051C16.6705 10.3742 16.4763 10.0023 16.3259 9.60586L16.0361 8.8375L16.5994 8.24141C17.0943 7.71367 17.6876 6.84141 17.6876 5.6875C17.6876 3.27578 15.1365 1.3125 12.0001 1.3125C8.86381 1.3125 6.31264 3.27578 6.31264 5.6875C6.31264 8.09922 8.86381 10.0625 12.0001 10.0625Z\" fill=\"var(--jp-brand-color0)\" class=\"jp-icon-selectable\"/>\n <path d=\"M7 7C3.13359 7 0 9.5457 0 12.6875C0 14.0437 0.585156 15.2852 1.55859 16.2613C1.2168 17.6395 0.0738281 18.8672 0.0601563 18.8809C0 18.9438 -0.0164062 19.0367 0.0191406 19.1188C0.0546875 19.2008 0.13125 19.25 0.21875 19.25C2.03164 19.25 3.39063 18.3805 4.06328 17.8445C4.95742 18.1809 5.95 18.375 7 18.375C10.8664 18.375 14 15.8293 14 12.6875C14 9.5457 10.8664 7 7 7ZM3.5 13.5625C3.01602 13.5625 2.625 13.1715 2.625 12.6875C2.625 12.2035 3.01602 11.8125 3.5 11.8125C3.98398 11.8125 4.375 12.2035 4.375 12.6875C4.375 13.1715 3.98398 13.5625 3.5 13.5625ZM7 13.5625C6.51602 13.5625 6.125 13.1715 6.125 12.6875C6.125 12.2035 6.51602 11.8125 7 11.8125C7.48398 11.8125 7.875 12.2035 7.875 12.6875C7.875 13.1715 7.48398 13.5625 7 13.5625ZM10.5 13.5625C10.016 13.5625 9.625 13.1715 9.625 12.6875C9.625 12.2035 10.016 11.8125 10.5 11.8125C10.984 11.8125 11.375 12.2035 11.375 12.6875C11.375 13.1715 10.984 13.5625 10.5 13.5625Z\" fill=\"var(--jp-brand-color1)\" class=\"jp-icon-selectable\"/>\n</svg>\n";
24701
25020
 
24702
25021
  /***/ }),
24703
25022
 
@@ -27290,4 +27609,4 @@ var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js
27290
27609
  /***/ })
27291
27610
 
27292
27611
  }]);
27293
- //# sourceMappingURL=lib_index_js.03302cc521d72eb56b00.js.map
27612
+ //# sourceMappingURL=lib_index_js.44c109c7be36fb884d25.js.map