mito-ai 0.1.39__py3-none-any.whl → 0.1.40__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.

Potentially problematic release.


This version of mito-ai might be problematic. Click here for more details.

Files changed (23) hide show
  1. mito_ai/_version.py +1 -1
  2. {mito_ai-0.1.39.data → mito_ai-0.1.40.data}/data/share/jupyter/labextensions/mito_ai/build_log.json +1 -1
  3. {mito_ai-0.1.39.data → mito_ai-0.1.40.data}/data/share/jupyter/labextensions/mito_ai/package.json +2 -2
  4. {mito_ai-0.1.39.data → mito_ai-0.1.40.data}/data/share/jupyter/labextensions/mito_ai/schemas/mito_ai/package.json.orig +1 -1
  5. mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.16b532b655cd2906e04a.js → mito_ai-0.1.40.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.55d9f8ca386d87856d2d.js +150 -14
  6. mito_ai-0.1.40.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.55d9f8ca386d87856d2d.js.map +1 -0
  7. mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.606207904e6aaa42b1bf.js → mito_ai-0.1.40.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.264103d9addd1e166113.js +3 -3
  8. mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.606207904e6aaa42b1bf.js.map → mito_ai-0.1.40.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.264103d9addd1e166113.js.map +1 -1
  9. {mito_ai-0.1.39.dist-info → mito_ai-0.1.40.dist-info}/METADATA +1 -1
  10. {mito_ai-0.1.39.dist-info → mito_ai-0.1.40.dist-info}/RECORD +22 -22
  11. mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.16b532b655cd2906e04a.js.map +0 -1
  12. {mito_ai-0.1.39.data → mito_ai-0.1.40.data}/data/etc/jupyter/jupyter_server_config.d/mito_ai.json +0 -0
  13. {mito_ai-0.1.39.data → mito_ai-0.1.40.data}/data/share/jupyter/labextensions/mito_ai/schemas/mito_ai/toolbar-buttons.json +0 -0
  14. {mito_ai-0.1.39.data → mito_ai-0.1.40.data}/data/share/jupyter/labextensions/mito_ai/static/style.js +0 -0
  15. {mito_ai-0.1.39.data → mito_ai-0.1.40.data}/data/share/jupyter/labextensions/mito_ai/static/style_index_js.5876024bb17dbd6a3ee6.js +0 -0
  16. {mito_ai-0.1.39.data → mito_ai-0.1.40.data}/data/share/jupyter/labextensions/mito_ai/static/style_index_js.5876024bb17dbd6a3ee6.js.map +0 -0
  17. {mito_ai-0.1.39.data → mito_ai-0.1.40.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_semver_index_js.9795f79265ddb416864b.js +0 -0
  18. {mito_ai-0.1.39.data → mito_ai-0.1.40.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_semver_index_js.9795f79265ddb416864b.js.map +0 -0
  19. {mito_ai-0.1.39.data → mito_ai-0.1.40.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_vscode-diff_dist_index_js.ea55f1f9346638aafbcf.js +0 -0
  20. {mito_ai-0.1.39.data → mito_ai-0.1.40.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_vscode-diff_dist_index_js.ea55f1f9346638aafbcf.js.map +0 -0
  21. {mito_ai-0.1.39.dist-info → mito_ai-0.1.40.dist-info}/WHEEL +0 -0
  22. {mito_ai-0.1.39.dist-info → mito_ai-0.1.40.dist-info}/entry_points.txt +0 -0
  23. {mito_ai-0.1.39.dist-info → mito_ai-0.1.40.dist-info}/licenses/LICENSE +0 -0
mito_ai/_version.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # This file is auto-generated by Hatchling. As such, do not:
2
2
  # - modify
3
3
  # - track in version control e.g. be sure to add to .gitignore
4
- __version__ = VERSION = '0.1.39'
4
+ __version__ = VERSION = '0.1.40'
@@ -710,7 +710,7 @@
710
710
  "semver": {},
711
711
  "vscode-diff": {},
712
712
  "mito_ai": {
713
- "version": "0.1.39",
713
+ "version": "0.1.40",
714
714
  "singleton": true,
715
715
  "import": "/home/runner/work/mito/mito/mito-ai/lib/index.js"
716
716
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mito_ai",
3
- "version": "0.1.39",
3
+ "version": "0.1.40",
4
4
  "description": "AI chat for JupyterLab",
5
5
  "keywords": [
6
6
  "jupyter",
@@ -138,7 +138,7 @@
138
138
  "outputDir": "mito_ai/labextension",
139
139
  "schemaDir": "schema",
140
140
  "_build": {
141
- "load": "static/remoteEntry.606207904e6aaa42b1bf.js",
141
+ "load": "static/remoteEntry.264103d9addd1e166113.js",
142
142
  "extension": "./extension",
143
143
  "style": "./style"
144
144
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mito_ai",
3
- "version": "0.1.39",
3
+ "version": "0.1.40",
4
4
  "description": "AI chat for JupyterLab",
5
5
  "keywords": [
6
6
  "jupyter",
@@ -523,9 +523,10 @@ __webpack_require__.r(__webpack_exports__);
523
523
  /* harmony export */ });
524
524
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
525
525
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
526
- /* harmony import */ var _components_TextButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../components/TextButton */ "./lib/components/TextButton.js");
527
- /* harmony import */ var _utils_errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../utils/errors */ "./lib/utils/errors.js");
528
- /* harmony import */ var _utils_stripe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../utils/stripe */ "./lib/utils/stripe.js");
526
+ /* harmony import */ var _components_TextButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../components/TextButton */ "./lib/components/TextButton.js");
527
+ /* harmony import */ var _utils_errors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../utils/errors */ "./lib/utils/errors.js");
528
+ /* harmony import */ var _utils_stripe__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../utils/stripe */ "./lib/utils/stripe.js");
529
+ /* harmony import */ var _restAPI_RestAPI__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../restAPI/RestAPI */ "./lib/restAPI/RestAPI.js");
529
530
  /*
530
531
  * Copyright (c) Saga Inc.
531
532
  * Distributed under the terms of the GNU Affero General Public License v3.0 License.
@@ -534,8 +535,14 @@ __webpack_require__.r(__webpack_exports__);
534
535
 
535
536
 
536
537
 
538
+
537
539
  const AlertBlock = ({ content, mitoAIConnectionErrorType }) => {
538
- if (mitoAIConnectionErrorType === _utils_errors__WEBPACK_IMPORTED_MODULE_1__.FREE_TIER_LIMIT_REACHED_ERROR_TITLE) {
540
+ const [showEmailDetails, setShowEmailDetails] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
541
+ // The first time this AlertBlock is rendered, log the error type
542
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
543
+ void (0,_restAPI_RestAPI__WEBPACK_IMPORTED_MODULE_1__.logEvent)('alert_block_displayed', { 'type': mitoAIConnectionErrorType, 'error': content });
544
+ }, []);
545
+ if (mitoAIConnectionErrorType === _utils_errors__WEBPACK_IMPORTED_MODULE_2__.FREE_TIER_LIMIT_REACHED_ERROR_TITLE) {
539
546
  return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "chat-message-alert" },
540
547
  react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null,
541
548
  "You've used up your free trial of Mito AI for this month. To continue using Mito AI now, upgrade to ",
@@ -546,9 +553,28 @@ const AlertBlock = ({ content, mitoAIConnectionErrorType }) => {
546
553
  react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "Unlimited AI Autocompletes"),
547
554
  react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "All Mito Spreadsheet Pro features")),
548
555
  react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, "Or supply your own Open AI Key to continue using the basic version of Mito AI."),
549
- react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_TextButton__WEBPACK_IMPORTED_MODULE_2__["default"], { title: "Upgrade to Pro", text: "Upgrade to Pro", action: _utils_stripe__WEBPACK_IMPORTED_MODULE_3__.STRIPE_PAYMENT_LINK, variant: "purple", width: "block" })));
550
- }
551
- return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "chat-message-alert" }, content));
556
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_TextButton__WEBPACK_IMPORTED_MODULE_3__["default"], { title: "Upgrade to Pro", text: "Upgrade to Pro", action: _utils_stripe__WEBPACK_IMPORTED_MODULE_4__.STRIPE_PAYMENT_LINK, variant: "purple", width: "block" })));
557
+ }
558
+ return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "chat-message-alert-container" },
559
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "chat-message-alert" },
560
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "alert-error-message" },
561
+ "\u26A0 ",
562
+ content)),
563
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null,
564
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", { className: "alert-actions-title" }, "If this issue persists, we recommend:"),
565
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement("ul", { className: "alert-actions-list" },
566
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "Restarting JupyterLab completely"),
567
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "Upgrading to the latest version of Mito AI"),
568
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null,
569
+ "Sending us an email to founders@sagacollab.com \u00A0",
570
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "details-toggle" },
571
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { type: "button", onClick: () => setShowEmailDetails(!showEmailDetails), className: "toggle-button" },
572
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { className: "toggle-text" }, " Info to send us"),
573
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { className: `toggle-caret ${showEmailDetails ? 'open' : ''}` }, "\u25BC"))),
574
+ showEmailDetails && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "details-content" },
575
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "A screenshot of your entire Jupyter window"),
576
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "A screenshot of your browser's console. You can access this by right clicking on this error message, clicking \"Inspect\", and then clicking the \"Console\" tab. Then find the red error message at the bottom of the console and screenshot it."),
577
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "Your `pip list` output"))))))));
552
578
  };
553
579
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AlertBlock);
554
580
 
@@ -4179,7 +4205,13 @@ def get_dataframe_structure(df, sample_size=5):
4179
4205
  # Handle None and NaN (convert to None, which maps to null in JSON)
4180
4206
  return None
4181
4207
  elif not isinstance(value, (str, int, float, bool, type(None))):
4182
- return str(value)
4208
+ value_str = str(value)
4209
+ if len(value_str) > 50:
4210
+ return value_str[:50] + "..."
4211
+ return value_str
4212
+ elif isinstance(value, str) and len(value) > 50:
4213
+ # Truncate strings longer than 50 characters
4214
+ return value[:50] + "..."
4183
4215
  return value
4184
4216
 
4185
4217
  structure = {}
@@ -10987,19 +11019,123 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
10987
11019
  background-color: var(--jp-layout-color2);
10988
11020
  }
10989
11021
 
10990
- .chat-message-alert {
10991
- background-color: var(--purple-300);
11022
+ .chat-message-alert-container {
11023
+ display: flex;
11024
+ flex-direction: column;
11025
+ gap: 10px;
11026
+ background-color: var(--red-300);
10992
11027
  border-radius: 5px;
10993
11028
  padding: 10px;
10994
- border: 1px solid var(--purple-500);
10995
- color: var(--grey-900);
11029
+ border: 1px solid var(--red-900);
11030
+ color: var(--red-900);
10996
11031
  }
10997
11032
 
10998
11033
  .chat-message-alert a {
10999
11034
  color: var(--purple-700);
11000
11035
  text-decoration: underline;
11001
11036
  }
11002
- `, "",{"version":3,"sources":["webpack://./style/ChatMessage.css"],"names":[],"mappings":"AAAA;;;EAGE;;AAEF;EACE,kBAAkB;EAClB,mBAAmB;EACnB,sBAAsB;EACtB,WAAW;EACX,eAAe;EACf,sDAAsD;EACtD,2CAA2C;AAC7C;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,qBAAqB;AACvB;;AAEA;EACE,2DAA2D;EAC3D,0CAA0C;EAC1C,aAAa;AACf;;AAEA;EACE,+CAA+C;AACjD;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,QAAQ;EACR,gBAAgB;EAChB,kBAAkB;EAClB,eAAe;AACjB;;AAEA;EACE,gBAAgB;EAChB,sBAAsB;EACtB,SAAS;EACT,gBAAgB;AAClB;;AAEA;EACE,mBAAmB;AACrB;;AAEA,qCAAqC;AACrC;EACE,kBAAkB;EAClB,WAAW;EACX,UAAU;EACV,aAAa;EACb,kBAAkB;EAClB,gBAAgB,EAAE,0DAA0D;AAC9E;;AAEA,qCAAqC;AACrC;;EAEE,eAAe;EACf,UAAU;EACV;;qCAEmC;EACnC,yCAAyC;EACzC,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,oCAAoC;AACtC;;AAEA,gCAAgC;AAChC;EACE,WAAW;EACX,YAAY;EACZ,UAAU;EACV,gBAAgB,EAAE,oCAAoC;AACxD;;AAEA,yCAAyC;AACzC;EACE,+CAA+C;AACjD;;AAEA,8FAA8F;AAC9F;;EAEE,gBAAgB;AAClB;;AAEA,2BAA2B;AAC3B;EACE,kBAAkB;EAClB,YAAY;EACZ,kBAAkB;AACpB;;AAEA,mBAAmB;AACnB;EACE,oCAAoC;AACtC;;AAEA,iBAAiB;AACjB;;EAEE,yCAAyC;AAC3C;;AAEA,kCAAkC;AAClC;;EAEE,UAAU;AACZ;;AAEA;EACE,aAAa;EACb,QAAQ;EACR,YAAY;AACd;;AAEA;EACE,iBAAiB;EACjB,kBAAkB;EAClB,yCAAyC;EACzC,oCAAoC;EACpC,yCAAyC;EACzC,eAAe;AACjB;;AAEA;EACE,yCAAyC;AAC3C;;AAEA;EACE,mCAAmC;EACnC,kBAAkB;EAClB,aAAa;EACb,mCAAmC;EACnC,sBAAsB;AACxB;;AAEA;EACE,wBAAwB;EACxB,0BAA0B;AAC5B","sourcesContent":["/*\n * Copyright (c) Saga Inc.\n * Distributed under the terms of the GNU Affero General Public License v3.0 License.\n */\n\n.message {\n position: relative;\n height: min-content;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n border-radius: var(--chat-taskpane-item-border-radius);\n padding: 0 var(--chat-taskpane-item-indent);\n}\n\n.message:not(.chat-input) {\n margin-bottom: 20px;\n}\n\n.message:hover .message-start-editing-button {\n opacity: 1 !important;\n}\n\n.message-user {\n background-color: var(--chat-user-message-background-color);\n color: var(--chat-user-message-font-color);\n padding: 10px;\n}\n\n.message-assistant-chat {\n color: var(--chat-assistant-message-font-color);\n}\n\n.chat-message-buttons {\n display: flex;\n flex-direction: row;\n gap: 8px;\n margin-top: 10px;\n margin-bottom: 4px;\n flex-wrap: wrap;\n}\n\n.chat-taskpane-smart-debug-error-message {\n white-space: pre;\n font-family: monospace;\n margin: 0;\n overflow-x: auto;\n}\n\n.message-text {\n align-items: center;\n}\n\n/* Message Action Buttons Container */\n.message-action-buttons {\n position: absolute;\n bottom: 8px;\n right: 8px;\n display: flex;\n border-radius: 4px;\n overflow: hidden; /* Ensures inner buttons don't break the rounded corners */\n}\n\n/* Common styles for action buttons */\n.message-action-buttons button,\n.message-start-editing-button {\n cursor: pointer;\n opacity: 0;\n transition:\n opacity 0.2s ease-in-out,\n background-color 0.2s ease-in-out;\n background-color: var(--jp-layout-color3);\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--jp-content-font-color1);\n}\n\n/* Action buttons in the group */\n.message-action-buttons button {\n width: 28px;\n height: 28px;\n padding: 0;\n border-radius: 0; /* Remove individual button radius */\n}\n\n/* Add subtle separator between buttons */\n.message-action-buttons button:not(:last-child) {\n border-right: 1px solid var(--jp-border-color1);\n}\n\n/* Remove the individual button radius styles since we're handling it at the container level */\n.message-action-buttons button:first-child,\n.message-action-buttons button:last-child {\n border-radius: 0;\n}\n\n/* Standalone edit button */\n.message-start-editing-button {\n position: relative;\n padding: 4px;\n border-radius: 4px;\n}\n\n/* SVG icon color */\n.message-action-buttons button svg {\n color: var(--jp-content-font-color1);\n}\n\n/* Hover states */\n.message-action-buttons button:hover,\n.message-start-editing-button:hover {\n background-color: var(--jp-layout-color4);\n}\n\n/* Show buttons on message hover */\n.message:hover .message-action-buttons button,\n.message:hover .message-start-editing-button {\n opacity: 1;\n}\n\n.message-edit-buttons {\n display: flex;\n gap: 8px;\n padding: 5px;\n}\n\n.message-edit-buttons button {\n padding: 4px 12px;\n border-radius: 4px;\n background-color: var(--jp-layout-color1);\n color: var(--jp-content-font-color1);\n border: 1px solid var(--jp-border-color1);\n cursor: pointer;\n}\n\n.message-edit-buttons button:hover {\n background-color: var(--jp-layout-color2);\n}\n\n.chat-message-alert {\n background-color: var(--purple-300);\n border-radius: 5px;\n padding: 10px;\n border: 1px solid var(--purple-500);\n color: var(--grey-900);\n}\n\n.chat-message-alert a {\n color: var(--purple-700);\n text-decoration: underline;\n}\n"],"sourceRoot":""}]);
11037
+
11038
+ /* New style for the main error message */
11039
+ .alert-error-message {
11040
+ font-size: 14px;
11041
+ font-weight: 600;
11042
+ line-height: 1.4;
11043
+ color: var(--red-900);
11044
+ margin-bottom: 8px;
11045
+ }
11046
+
11047
+ .alert-actions-header {
11048
+ margin-bottom: 12px;
11049
+ }
11050
+
11051
+ .alert-actions-title {
11052
+ font-weight: 500;
11053
+ margin: 0 0 8px 0;
11054
+ color: var(--red-900);
11055
+ font-size: 13px;
11056
+ }
11057
+
11058
+ .alert-actions-list {
11059
+ margin: 0;
11060
+ padding-left: 16px;
11061
+ color: var(--red-800);
11062
+ }
11063
+
11064
+ .alert-actions-list li {
11065
+ margin-bottom: 4px;
11066
+ font-size: 13px;
11067
+ line-height: 1.4;
11068
+ }
11069
+
11070
+ .alert-action-item {
11071
+ display: flex;
11072
+ align-items: flex-start;
11073
+ gap: 8px;
11074
+ padding: 8px 0;
11075
+ color: var(--red-800);
11076
+ font-size: 13px;
11077
+ line-height: 1.4;
11078
+ }
11079
+
11080
+ .action-icon {
11081
+ font-size: 16px;
11082
+ flex-shrink: 0;
11083
+ margin-top: 1px;
11084
+ }
11085
+
11086
+ .details-toggle {
11087
+ display: inline-flex;
11088
+ align-items: center;
11089
+ }
11090
+
11091
+ .toggle-button {
11092
+ background: none;
11093
+ border: none;
11094
+ padding: 0;
11095
+ cursor: pointer;
11096
+ display: flex;
11097
+ align-items: center;
11098
+ gap: 4px;
11099
+ color: var(--red-900);
11100
+ font-size: 12px;
11101
+ font-family: inherit;
11102
+ text-decoration: underline;
11103
+ }
11104
+
11105
+ .toggle-button:hover {
11106
+ color: var(--red-800);
11107
+ }
11108
+
11109
+ .toggle-caret {
11110
+ font-size: 10px;
11111
+ transition: transform 0.2s ease;
11112
+ display: inline-block;
11113
+ text-decoration: none !important;
11114
+ }
11115
+
11116
+ .toggle-caret.open {
11117
+ transform: rotate(180deg);
11118
+ }
11119
+
11120
+ .details-content {
11121
+ margin-top: 8px;
11122
+ margin-left: 16px;
11123
+ padding: 8px;
11124
+ background-color: var(--grey-100);
11125
+ border-radius: 4px;
11126
+ animation: slideDown 0.2s ease-out;
11127
+ }
11128
+
11129
+ @keyframes slideDown {
11130
+ from {
11131
+ opacity: 0;
11132
+ transform: translateY(-4px);
11133
+ }
11134
+ to {
11135
+ opacity: 1;
11136
+ transform: translateY(0);
11137
+ }
11138
+ }`, "",{"version":3,"sources":["webpack://./style/ChatMessage.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.message {\n position: relative;\n height: min-content;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n border-radius: var(--chat-taskpane-item-border-radius);\n padding: 0 var(--chat-taskpane-item-indent);\n}\n\n.message:not(.chat-input) {\n margin-bottom: 20px;\n}\n\n.message:hover .message-start-editing-button {\n opacity: 1 !important;\n}\n\n.message-user {\n background-color: var(--chat-user-message-background-color);\n color: var(--chat-user-message-font-color);\n padding: 10px;\n}\n\n.message-assistant-chat {\n color: var(--chat-assistant-message-font-color);\n}\n\n.chat-message-buttons {\n display: flex;\n flex-direction: row;\n gap: 8px;\n margin-top: 10px;\n margin-bottom: 4px;\n flex-wrap: wrap;\n}\n\n.chat-taskpane-smart-debug-error-message {\n white-space: pre;\n font-family: monospace;\n margin: 0;\n overflow-x: auto;\n}\n\n.message-text {\n align-items: center;\n}\n\n/* Message Action Buttons Container */\n.message-action-buttons {\n position: absolute;\n bottom: 8px;\n right: 8px;\n display: flex;\n border-radius: 4px;\n overflow: hidden; /* Ensures inner buttons don't break the rounded corners */\n}\n\n/* Common styles for action buttons */\n.message-action-buttons button,\n.message-start-editing-button {\n cursor: pointer;\n opacity: 0;\n transition:\n opacity 0.2s ease-in-out,\n background-color 0.2s ease-in-out;\n background-color: var(--jp-layout-color3);\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--jp-content-font-color1);\n}\n\n/* Action buttons in the group */\n.message-action-buttons button {\n width: 28px;\n height: 28px;\n padding: 0;\n border-radius: 0; /* Remove individual button radius */\n}\n\n/* Add subtle separator between buttons */\n.message-action-buttons button:not(:last-child) {\n border-right: 1px solid var(--jp-border-color1);\n}\n\n/* Remove the individual button radius styles since we're handling it at the container level */\n.message-action-buttons button:first-child,\n.message-action-buttons button:last-child {\n border-radius: 0;\n}\n\n/* Standalone edit button */\n.message-start-editing-button {\n position: relative;\n padding: 4px;\n border-radius: 4px;\n}\n\n/* SVG icon color */\n.message-action-buttons button svg {\n color: var(--jp-content-font-color1);\n}\n\n/* Hover states */\n.message-action-buttons button:hover,\n.message-start-editing-button:hover {\n background-color: var(--jp-layout-color4);\n}\n\n/* Show buttons on message hover */\n.message:hover .message-action-buttons button,\n.message:hover .message-start-editing-button {\n opacity: 1;\n}\n\n.message-edit-buttons {\n display: flex;\n gap: 8px;\n padding: 5px;\n}\n\n.message-edit-buttons button {\n padding: 4px 12px;\n border-radius: 4px;\n background-color: var(--jp-layout-color1);\n color: var(--jp-content-font-color1);\n border: 1px solid var(--jp-border-color1);\n cursor: pointer;\n}\n\n.message-edit-buttons button:hover {\n background-color: var(--jp-layout-color2);\n}\n\n.chat-message-alert-container {\n display: flex;\n flex-direction: column;\n gap: 10px;\n background-color: var(--red-300);\n border-radius: 5px;\n padding: 10px;\n border: 1px solid var(--red-900);\n color: var(--red-900);\n}\n\n.chat-message-alert a {\n color: var(--purple-700);\n text-decoration: underline;\n}\n\n/* New style for the main error message */\n.alert-error-message {\n font-size: 14px;\n font-weight: 600;\n line-height: 1.4;\n color: var(--red-900);\n margin-bottom: 8px;\n}\n\n.alert-actions-header {\n margin-bottom: 12px;\n}\n\n.alert-actions-title {\n font-weight: 500;\n margin: 0 0 8px 0;\n color: var(--red-900);\n font-size: 13px;\n}\n\n.alert-actions-list {\n margin: 0;\n padding-left: 16px;\n color: var(--red-800);\n}\n\n.alert-actions-list li {\n margin-bottom: 4px;\n font-size: 13px;\n line-height: 1.4;\n}\n\n.alert-action-item {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n padding: 8px 0;\n color: var(--red-800);\n font-size: 13px;\n line-height: 1.4;\n}\n\n.action-icon {\n font-size: 16px;\n flex-shrink: 0;\n margin-top: 1px;\n}\n\n.details-toggle {\n display: inline-flex;\n align-items: center;\n}\n\n.toggle-button {\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n color: var(--red-900);\n font-size: 12px;\n font-family: inherit;\n text-decoration: underline;\n}\n\n.toggle-button:hover {\n color: var(--red-800);\n}\n\n.toggle-caret {\n font-size: 10px;\n transition: transform 0.2s ease;\n display: inline-block;\n text-decoration: none !important;\n}\n\n.toggle-caret.open {\n transform: rotate(180deg);\n}\n\n.details-content {\n margin-top: 8px;\n margin-left: 16px;\n padding: 8px;\n background-color: var(--grey-100);\n border-radius: 4px;\n animation: slideDown 0.2s ease-out;\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}"],"sourceRoot":""}]);
11003
11139
  // Exports
11004
11140
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
11005
11141
 
@@ -15781,4 +15917,4 @@ var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js
15781
15917
  /***/ })
15782
15918
 
15783
15919
  }]);
15784
- //# sourceMappingURL=lib_index_js.16b532b655cd2906e04a.js.map
15920
+ //# sourceMappingURL=lib_index_js.55d9f8ca386d87856d2d.js.map