mito-ai 0.1.40__py3-none-any.whl → 0.1.41__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.
- mito_ai/__init__.py +12 -6
- mito_ai/_version.py +1 -1
- mito_ai/app_builder/handlers.py +1 -2
- mito_ai/completions/handlers.py +1 -1
- mito_ai/completions/message_history.py +9 -1
- mito_ai/completions/models.py +1 -1
- mito_ai/completions/prompt_builders/agent_execution_prompt.py +2 -0
- mito_ai/completions/prompt_builders/agent_smart_debug_prompt.py +8 -0
- mito_ai/completions/prompt_builders/agent_system_message.py +17 -0
- mito_ai/constants.py +3 -2
- mito_ai/file_uploads/__init__.py +3 -0
- mito_ai/file_uploads/handlers.py +225 -0
- mito_ai/file_uploads/urls.py +21 -0
- mito_ai/openai_client.py +1 -1
- mito_ai/tests/file_uploads/__init__.py +2 -0
- mito_ai/tests/file_uploads/test_handlers.py +267 -0
- mito_ai/tests/message_history/test_message_history_utils.py +57 -4
- mito_ai/utils/mito_server_utils.py +7 -0
- mito_ai/utils/server_limits.py +1 -1
- mito_ai/utils/telemetry_utils.py +26 -9
- {mito_ai-0.1.40.data → mito_ai-0.1.41.data}/data/share/jupyter/labextensions/mito_ai/build_log.json +102 -100
- {mito_ai-0.1.40.data → mito_ai-0.1.41.data}/data/share/jupyter/labextensions/mito_ai/package.json +4 -2
- {mito_ai-0.1.40.data → mito_ai-0.1.41.data}/data/share/jupyter/labextensions/mito_ai/schemas/mito_ai/package.json.orig +3 -1
- mito_ai-0.1.40.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.55d9f8ca386d87856d2d.js → mito_ai-0.1.41.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.01a962c68c8fae380f30.js +1782 -1027
- mito_ai-0.1.41.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.01a962c68c8fae380f30.js.map +1 -0
- mito_ai-0.1.41.data/data/share/jupyter/labextensions/mito_ai/static/node_modules_aws-amplify_core_dist_esm_singleton_apis_fetchAuthSession_mjs.182232e7bc6311fe4528.js +63 -0
- mito_ai-0.1.41.data/data/share/jupyter/labextensions/mito_ai/static/node_modules_aws-amplify_core_dist_esm_singleton_apis_fetchAuthSession_mjs.182232e7bc6311fe4528.js.map +1 -0
- mito_ai-0.1.40.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.264103d9addd1e166113.js → mito_ai-0.1.41.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.9a70f033717ba8689564.js +49 -25
- mito_ai-0.1.41.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.9a70f033717ba8689564.js.map +1 -0
- mito_ai-0.1.41.data/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_aws-amplify_auth_dist_esm_providers_cognito_tokenProvider_tokenProvider_mjs.16430abf3466c3153f59.js +4574 -0
- mito_ai-0.1.41.data/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_aws-amplify_auth_dist_esm_providers_cognito_tokenProvider_tokenProvider_mjs.16430abf3466c3153f59.js.map +1 -0
- mito_ai-0.1.41.data/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_aws-amplify_core_dist_esm_singleton_Amplify_mjs.3c0035b95fe369aede82.js +2345 -0
- mito_ai-0.1.41.data/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_aws-amplify_core_dist_esm_singleton_Amplify_mjs.3c0035b95fe369aede82.js.map +1 -0
- mito_ai-0.1.41.data/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_aws-amplify_core_dist_esm_singleton_apis_fetchAuthSession_mjs-node_modul-758875.dc495fd682071d97070c.js +7498 -0
- mito_ai-0.1.41.data/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_aws-amplify_core_dist_esm_singleton_apis_fetchAuthSession_mjs-node_modul-758875.dc495fd682071d97070c.js.map +1 -0
- mito_ai-0.1.41.data/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_aws-amplify_dist_esm_index_mjs.6bac1a8c4cc93f15f6b7.js +1021 -0
- mito_ai-0.1.41.data/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_aws-amplify_dist_esm_index_mjs.6bac1a8c4cc93f15f6b7.js.map +1 -0
- mito_ai-0.1.41.data/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_aws-amplify_ui-react_dist_esm_index_mjs.61289bff0db44828605b.js +60178 -0
- mito_ai-0.1.41.data/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_aws-amplify_ui-react_dist_esm_index_mjs.61289bff0db44828605b.js.map +1 -0
- {mito_ai-0.1.40.dist-info → mito_ai-0.1.41.dist-info}/METADATA +1 -1
- {mito_ai-0.1.40.dist-info → mito_ai-0.1.41.dist-info}/RECORD +53 -36
- mito_ai-0.1.40.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.55d9f8ca386d87856d2d.js.map +0 -1
- mito_ai-0.1.40.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.264103d9addd1e166113.js.map +0 -1
- {mito_ai-0.1.40.data → mito_ai-0.1.41.data}/data/etc/jupyter/jupyter_server_config.d/mito_ai.json +0 -0
- {mito_ai-0.1.40.data → mito_ai-0.1.41.data}/data/share/jupyter/labextensions/mito_ai/schemas/mito_ai/toolbar-buttons.json +0 -0
- {mito_ai-0.1.40.data → mito_ai-0.1.41.data}/data/share/jupyter/labextensions/mito_ai/static/style.js +0 -0
- {mito_ai-0.1.40.data → mito_ai-0.1.41.data}/data/share/jupyter/labextensions/mito_ai/static/style_index_js.5876024bb17dbd6a3ee6.js +0 -0
- {mito_ai-0.1.40.data → mito_ai-0.1.41.data}/data/share/jupyter/labextensions/mito_ai/static/style_index_js.5876024bb17dbd6a3ee6.js.map +0 -0
- {mito_ai-0.1.40.data → mito_ai-0.1.41.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_semver_index_js.9795f79265ddb416864b.js +0 -0
- {mito_ai-0.1.40.data → mito_ai-0.1.41.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_semver_index_js.9795f79265ddb416864b.js.map +0 -0
- {mito_ai-0.1.40.data → mito_ai-0.1.41.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_vscode-diff_dist_index_js.ea55f1f9346638aafbcf.js +0 -0
- {mito_ai-0.1.40.data → mito_ai-0.1.41.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_vscode-diff_dist_index_js.ea55f1f9346638aafbcf.js.map +0 -0
- {mito_ai-0.1.40.dist-info → mito_ai-0.1.41.dist-info}/WHEEL +0 -0
- {mito_ai-0.1.40.dist-info → mito_ai-0.1.41.dist-info}/entry_points.txt +0 -0
- {mito_ai-0.1.40.dist-info → mito_ai-0.1.41.dist-info}/licenses/LICENSE +0 -0
|
@@ -140,6 +140,7 @@ const AiChatPlugin = {
|
|
|
140
140
|
});
|
|
141
141
|
// Update jupyter settings to work best with mito-ai
|
|
142
142
|
void (0,_jupyterSettingsManager__WEBPACK_IMPORTED_MODULE_10__.setRenameUntitledFileOnSave)(settingRegistry, documentManager);
|
|
143
|
+
void (0,_jupyterSettingsManager__WEBPACK_IMPORTED_MODULE_10__.setDefaultWindowingMode)(settingRegistry);
|
|
143
144
|
// By returning a tracker token, we can require the token in other
|
|
144
145
|
// plugins. This allows us to force plugin load order. For example,
|
|
145
146
|
// we can ensure that the COMMAND_MITO_AI_OPEN_CHAT is created
|
|
@@ -523,10 +524,10 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
523
524
|
/* harmony export */ });
|
|
524
525
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
|
|
525
526
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
526
|
-
/* harmony import */ var
|
|
527
|
-
/* harmony import */ var _utils_errors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../utils/errors */ "./lib/utils/errors.js");
|
|
527
|
+
/* harmony import */ var _utils_errors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../utils/errors */ "./lib/utils/errors.js");
|
|
528
528
|
/* harmony import */ var _utils_stripe__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../utils/stripe */ "./lib/utils/stripe.js");
|
|
529
|
-
/* harmony import */ var
|
|
529
|
+
/* harmony import */ var _restAPI_RestAPI__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../restAPI/RestAPI */ "./lib/restAPI/RestAPI.js");
|
|
530
|
+
/* harmony import */ var _style_AlertBlock_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../style/AlertBlock.css */ "./style/AlertBlock.css");
|
|
530
531
|
/*
|
|
531
532
|
* Copyright (c) Saga Inc.
|
|
532
533
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
@@ -536,26 +537,56 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
536
537
|
|
|
537
538
|
|
|
538
539
|
|
|
540
|
+
// Add calendly link constant
|
|
541
|
+
const CALENDLY_LINK = 'https://calendly.com/jake_from_mito/mito-meeting';
|
|
539
542
|
const AlertBlock = ({ content, mitoAIConnectionErrorType }) => {
|
|
540
543
|
const [showEmailDetails, setShowEmailDetails] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
541
544
|
// The first time this AlertBlock is rendered, log the error type
|
|
542
545
|
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
543
|
-
void (0,
|
|
546
|
+
void (0,_restAPI_RestAPI__WEBPACK_IMPORTED_MODULE_2__.logEvent)('alert_block_displayed', { 'type': mitoAIConnectionErrorType, 'error': content });
|
|
544
547
|
}, []);
|
|
545
|
-
if (mitoAIConnectionErrorType ===
|
|
546
|
-
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "chat-message-alert" },
|
|
547
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("
|
|
548
|
-
"
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("
|
|
552
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null,
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
548
|
+
if (mitoAIConnectionErrorType === _utils_errors__WEBPACK_IMPORTED_MODULE_3__.FREE_TIER_LIMIT_REACHED_ERROR_TITLE) {
|
|
549
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "chat-message-alert-container upgrade" },
|
|
550
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "chat-message-alert" },
|
|
551
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "alert-error-message" }, "Free Trial Limit Reached")),
|
|
552
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", { className: "alert-actions-title" }, "You've used up your free trial of Mito AI for this month."),
|
|
553
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", { className: "alert-actions-title", style: { marginTop: '0px', marginBottom: '5px' } }, "Choose how you'd like to continue:"),
|
|
554
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("ol", { style: { margin: '0', paddingLeft: '20px' } },
|
|
555
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null,
|
|
556
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("form", { action: _utils_stripe__WEBPACK_IMPORTED_MODULE_4__.STRIPE_PAYMENT_LINK, method: "POST", target: "_blank", style: { display: 'inline' } },
|
|
557
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { type: "submit", className: "secondary-option-link", style: {
|
|
558
|
+
background: 'none',
|
|
559
|
+
border: 'none',
|
|
560
|
+
padding: 0,
|
|
561
|
+
font: 'inherit',
|
|
562
|
+
color: 'var(--purple-700)',
|
|
563
|
+
textDecoration: 'underline',
|
|
564
|
+
cursor: 'pointer',
|
|
565
|
+
transition: 'color 0.2s ease'
|
|
566
|
+
} }, "Upgrade to Mito Pro")),
|
|
567
|
+
' ',
|
|
568
|
+
" for unlimited AI access and dedicated support"),
|
|
569
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null,
|
|
570
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { onClick: () => {
|
|
571
|
+
window.open(CALENDLY_LINK, '_blank');
|
|
572
|
+
}, className: "secondary-option-link", style: {
|
|
573
|
+
background: 'none',
|
|
574
|
+
border: 'none',
|
|
575
|
+
padding: 0,
|
|
576
|
+
font: 'inherit',
|
|
577
|
+
color: 'var(--purple-700)',
|
|
578
|
+
textDecoration: 'underline',
|
|
579
|
+
cursor: 'pointer',
|
|
580
|
+
transition: 'color 0.2s ease'
|
|
581
|
+
} }, "Schedule a call with our founders"),
|
|
582
|
+
' ',
|
|
583
|
+
" to get 3 free months of Mito Pro"),
|
|
584
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null,
|
|
585
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", { href: "https://docs.trymito.io/mito-ai/configuring-ai-provider-keys", target: "_blank", rel: "noreferrer", className: "secondary-option-link" }, "Use your own API keys"),
|
|
586
|
+
' ',
|
|
587
|
+
" to continue using Mito AI"))));
|
|
588
|
+
}
|
|
589
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "chat-message-alert-container error" },
|
|
559
590
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "chat-message-alert" },
|
|
560
591
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "alert-error-message" },
|
|
561
592
|
"\u26A0 ",
|
|
@@ -612,10 +643,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
612
643
|
|
|
613
644
|
|
|
614
645
|
|
|
615
|
-
const AssistantCodeBlock = ({ code, codeSummary, isCodeComplete, renderMimeRegistry, previewAICode, acceptAICode, rejectAICode, isLastAiMessage, codeReviewStatus, agentModeEnabled, isErrorFixup }) => {
|
|
646
|
+
const AssistantCodeBlock = ({ code, codeSummary, isCodeComplete, renderMimeRegistry, previewAICode, acceptAICode, rejectAICode, isLastAiMessage, codeReviewStatus, agentModeEnabled, isErrorFixup, }) => {
|
|
616
647
|
const [isCodeExpanded, setIsCodeExpanded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
617
648
|
const shouldShowToolbar = isLastAiMessage || isCodeComplete;
|
|
618
649
|
if (agentModeEnabled) {
|
|
650
|
+
// Handle regular code blocks
|
|
619
651
|
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: (0,_utils_classNames__WEBPACK_IMPORTED_MODULE_3__.classNames)('code-block-container', 'agent-mode', {
|
|
620
652
|
'agent-mode-collapsed': !isCodeExpanded,
|
|
621
653
|
}) },
|
|
@@ -932,12 +964,13 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
932
964
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
|
|
933
965
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
934
966
|
/* harmony import */ var _utils_classNames__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../utils/classNames */ "./lib/utils/classNames.js");
|
|
935
|
-
/* harmony import */ var
|
|
967
|
+
/* harmony import */ var _ChatDropdown__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ChatDropdown */ "./lib/Extensions/AiChat/ChatMessage/ChatDropdown.js");
|
|
936
968
|
/* harmony import */ var _utils_notebook__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../utils/notebook */ "./lib/utils/notebook.js");
|
|
937
969
|
/* harmony import */ var _style_ChatInput_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../style/ChatInput.css */ "./style/ChatInput.css");
|
|
938
970
|
/* harmony import */ var _style_ChatDropdown_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../style/ChatDropdown.css */ "./style/ChatDropdown.css");
|
|
939
971
|
/* harmony import */ var _hooks_useDebouncedFunction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../hooks/useDebouncedFunction */ "./lib/hooks/useDebouncedFunction.js");
|
|
940
|
-
/* harmony import */ var
|
|
972
|
+
/* harmony import */ var _components_SelectedContextContainer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../components/SelectedContextContainer */ "./lib/components/SelectedContextContainer.js");
|
|
973
|
+
/* harmony import */ var _components_AttachFileButton__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../components/AttachFileButton */ "./lib/components/AttachFileButton.js");
|
|
941
974
|
/* harmony import */ var _components_DatabaseButton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../components/DatabaseButton */ "./lib/components/DatabaseButton.js");
|
|
942
975
|
/*
|
|
943
976
|
* Copyright (c) Saga Inc.
|
|
@@ -952,6 +985,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
952
985
|
|
|
953
986
|
|
|
954
987
|
|
|
988
|
+
|
|
955
989
|
const ChatInput = ({ app, initialContent, placeholder, onSave, onCancel, isEditing, contextManager, notebookTracker, agentModeEnabled = false, agentExecutionStatus = 'idle', }) => {
|
|
956
990
|
var _a;
|
|
957
991
|
const [input, setInput] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initialContent);
|
|
@@ -963,6 +997,16 @@ const ChatInput = ({ app, initialContent, placeholder, onSave, onCancel, isEditi
|
|
|
963
997
|
const [dropdownFilter, setDropdownFilter] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('');
|
|
964
998
|
const [additionalContext, setAdditionalContext] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);
|
|
965
999
|
const [isDropdownFromButton, setIsDropdownFromButton] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
1000
|
+
const handleFileUploaded = (fileName) => {
|
|
1001
|
+
// Add the uploaded file to the additional context
|
|
1002
|
+
setAdditionalContext(prev => [
|
|
1003
|
+
...prev, {
|
|
1004
|
+
type: 'file',
|
|
1005
|
+
value: fileName,
|
|
1006
|
+
display: fileName
|
|
1007
|
+
}
|
|
1008
|
+
]);
|
|
1009
|
+
};
|
|
966
1010
|
// Debounce the active cell ID change to avoid multiple rerenders.
|
|
967
1011
|
// We use this to avoid a flickering screen when the active cell changes.
|
|
968
1012
|
const debouncedSetActiveCellID = (0,_hooks_useDebouncedFunction__WEBPACK_IMPORTED_MODULE_4__.useDebouncedFunction)((newID) => {
|
|
@@ -1167,6 +1211,7 @@ const ChatInput = ({ app, initialContent, placeholder, onSave, onCancel, isEditi
|
|
|
1167
1211
|
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: (0,_utils_classNames__WEBPACK_IMPORTED_MODULE_5__.classNames)("chat-input-container") },
|
|
1168
1212
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: 'context-container' },
|
|
1169
1213
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_DatabaseButton__WEBPACK_IMPORTED_MODULE_6__["default"], { app: app }),
|
|
1214
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_AttachFileButton__WEBPACK_IMPORTED_MODULE_7__["default"], { onFileUploaded: handleFileUploaded, notebookTracker: notebookTracker }),
|
|
1170
1215
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { className: "context-button", onClick: () => {
|
|
1171
1216
|
var _a;
|
|
1172
1217
|
setDropdownVisible(true);
|
|
@@ -1174,7 +1219,7 @@ const ChatInput = ({ app, initialContent, placeholder, onSave, onCancel, isEditi
|
|
|
1174
1219
|
setIsDropdownFromButton(true);
|
|
1175
1220
|
(_a = textAreaRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
1176
1221
|
} }, "\uFF20 Add Context"),
|
|
1177
|
-
additionalContext.map((context, index) => (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
|
|
1222
|
+
additionalContext.map((context, index) => (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_SelectedContextContainer__WEBPACK_IMPORTED_MODULE_8__["default"], { key: `${context.type}-${context.value}-${index}`, title: context.display || context.value, type: context.type, onRemove: () => setAdditionalContext(additionalContext.filter((_, i) => i !== index)), notebookTracker: notebookTracker, activeCellID: activeCellID })))),
|
|
1178
1223
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: 'chat-input-text-area-container' },
|
|
1179
1224
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("textarea", { ref: textAreaRef, className: (0,_utils_classNames__WEBPACK_IMPORTED_MODULE_5__.classNames)("message", "message-user", 'chat-input', { "agent-mode": agentModeEnabled }), placeholder: placeholder, value: input, disabled: agentExecutionStatus === 'working' || agentExecutionStatus === 'stopping', onChange: handleInputChange, onKeyDown: (e) => {
|
|
1180
1225
|
// If dropdown is visible, only handle escape to close it
|
|
@@ -1203,7 +1248,7 @@ const ChatInput = ({ app, initialContent, placeholder, onSave, onCancel, isEditi
|
|
|
1203
1248
|
}
|
|
1204
1249
|
}
|
|
1205
1250
|
} }),
|
|
1206
|
-
isDropdownVisible && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
|
|
1251
|
+
isDropdownVisible && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ChatDropdown__WEBPACK_IMPORTED_MODULE_9__["default"], { options: expandedVariables, onSelect: handleOptionSelect, filterText: dropdownFilter, isDropdownFromButton: isDropdownFromButton, onFilterChange: setDropdownFilter, onClose: handleDropdownClose }))),
|
|
1207
1252
|
isEditing &&
|
|
1208
1253
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "message-edit-buttons" },
|
|
1209
1254
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { onClick: () => onSave(input, undefined, mapAdditionalContext()) }, "Save"),
|
|
@@ -1244,6 +1289,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1244
1289
|
/* harmony import */ var _components_AgentComponents_GetCellOutputToolUI__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../../components/AgentComponents/GetCellOutputToolUI */ "./lib/components/AgentComponents/GetCellOutputToolUI.js");
|
|
1245
1290
|
/* harmony import */ var _components_AgentComponents_AssumptionToolUI__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../../components/AgentComponents/AssumptionToolUI */ "./lib/components/AgentComponents/AssumptionToolUI.js");
|
|
1246
1291
|
/* harmony import */ var _components_SelectedContextContainer__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../../components/SelectedContextContainer */ "./lib/components/SelectedContextContainer.js");
|
|
1292
|
+
/* harmony import */ var _components_AgentComponents_RunAllCellsToolUI__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../../components/AgentComponents/RunAllCellsToolUI */ "./lib/components/AgentComponents/RunAllCellsToolUI.js");
|
|
1247
1293
|
/*
|
|
1248
1294
|
* Copyright (c) Saga Inc.
|
|
1249
1295
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
@@ -1267,6 +1313,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1267
1313
|
|
|
1268
1314
|
|
|
1269
1315
|
|
|
1316
|
+
|
|
1270
1317
|
const ChatMessage = ({ app, message, promptType, agentResponse, messageIndex, mitoAIConnectionError, mitoAIConnectionErrorType, notebookTracker, renderMimeRegistry, isLastAiMessage, isLastMessage, operatingSystem, previewAICode, acceptAICode, rejectAICode, onUpdateMessage, contextManager, codeReviewStatus, setNextSteps, agentModeEnabled, additionalContext, }) => {
|
|
1271
1318
|
const [isEditing, setIsEditing] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
1272
1319
|
if (message.role !== 'user' && message.role !== 'assistant') {
|
|
@@ -1320,7 +1367,7 @@ const ChatMessage = ({ app, message, promptType, agentResponse, messageIndex, mi
|
|
|
1320
1367
|
// An empty code will look like this '```python ```'
|
|
1321
1368
|
if (messagePart.length > 14) {
|
|
1322
1369
|
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null,
|
|
1323
|
-
message.role === 'user' ? (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_UserCodeBlock__WEBPACK_IMPORTED_MODULE_7__["default"], { code: messagePart, renderMimeRegistry: renderMimeRegistry, agentModeEnabled: agentModeEnabled })) : (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_AssistantCodeBlock__WEBPACK_IMPORTED_MODULE_8__["default"], { code: messagePart, codeSummary: (_b = (_a = agentResponse === null || agentResponse === void 0 ? void 0 : agentResponse.cell_update) === null || _a === void 0 ? void 0 : _a.code_summary) !== null && _b !== void 0 ? _b : undefined, isCodeComplete: isCodeComplete, renderMimeRegistry: renderMimeRegistry, previewAICode: previewAICode, acceptAICode: acceptAICode, rejectAICode: rejectAICode, isLastAiMessage: isLastAiMessage, codeReviewStatus: codeReviewStatus, agentModeEnabled: agentModeEnabled })),
|
|
1370
|
+
message.role === 'user' ? (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_UserCodeBlock__WEBPACK_IMPORTED_MODULE_7__["default"], { code: messagePart, renderMimeRegistry: renderMimeRegistry, agentModeEnabled: agentModeEnabled })) : (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_AssistantCodeBlock__WEBPACK_IMPORTED_MODULE_8__["default"], { code: messagePart, codeSummary: (_b = (_a = agentResponse === null || agentResponse === void 0 ? void 0 : agentResponse.cell_update) === null || _a === void 0 ? void 0 : _a.code_summary) !== null && _b !== void 0 ? _b : ((agentResponse === null || agentResponse === void 0 ? void 0 : agentResponse.type) === 'run_all_cells' ? 'Running all cells' : undefined), isCodeComplete: isCodeComplete, renderMimeRegistry: renderMimeRegistry, previewAICode: previewAICode, acceptAICode: acceptAICode, rejectAICode: rejectAICode, isLastAiMessage: isLastAiMessage, codeReviewStatus: codeReviewStatus, agentModeEnabled: agentModeEnabled })),
|
|
1324
1371
|
isLastAiMessage && isCodeComplete && codeReviewStatus === 'chatPreview' &&
|
|
1325
1372
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: 'chat-message-buttons' },
|
|
1326
1373
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_TextAndIconButton__WEBPACK_IMPORTED_MODULE_9__["default"], { onClick: () => { previewAICode(); }, text: 'Overwrite Active Cell', icon: _icons_PlayButtonIcon__WEBPACK_IMPORTED_MODULE_10__["default"], title: 'Write the Ai generated code to the active cell in the jupyter notebook, replacing the current code.', variant: 'gray', width: 'fit-contents' }),
|
|
@@ -1358,7 +1405,9 @@ const ChatMessage = ({ app, message, promptType, agentResponse, messageIndex, mi
|
|
|
1358
1405
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { className: "message-start-editing-button", onClick: handleEditClick, title: "Edit message" },
|
|
1359
1406
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_Pencil__WEBPACK_IMPORTED_MODULE_17__["default"], null))),
|
|
1360
1407
|
(agentResponse === null || agentResponse === void 0 ? void 0 : agentResponse.type) === 'get_cell_output' &&
|
|
1361
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_AgentComponents_GetCellOutputToolUI__WEBPACK_IMPORTED_MODULE_18__["default"], null)
|
|
1408
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_AgentComponents_GetCellOutputToolUI__WEBPACK_IMPORTED_MODULE_18__["default"], null),
|
|
1409
|
+
(agentResponse === null || agentResponse === void 0 ? void 0 : agentResponse.type) === 'run_all_cells' && agentModeEnabled &&
|
|
1410
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_components_AgentComponents_RunAllCellsToolUI__WEBPACK_IMPORTED_MODULE_19__["default"], null)));
|
|
1362
1411
|
};
|
|
1363
1412
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ChatMessage);
|
|
1364
1413
|
|
|
@@ -2642,6 +2691,22 @@ const ChatTaskpane = ({ notebookTracker, renderMimeRegistry, contextManager, app
|
|
|
2642
2691
|
// in the next loop iteration
|
|
2643
2692
|
sendCellIDOutput = agentResponse.get_cell_output_cell_id;
|
|
2644
2693
|
}
|
|
2694
|
+
if (agentResponse.type === 'run_all_cells') {
|
|
2695
|
+
const result = await (0,_utils_agentActions__WEBPACK_IMPORTED_MODULE_17__.runAllCells)(app, notebookTracker);
|
|
2696
|
+
// If run_all_cells resulted in an error, handle it through the error fixup process
|
|
2697
|
+
if (!result.success && result.errorMessage && result.errorCellId) {
|
|
2698
|
+
// Set the error cell as active so the error retry logic can work with it
|
|
2699
|
+
(0,_utils_notebook__WEBPACK_IMPORTED_MODULE_13__.setActiveCellByID)(notebookTracker, result.errorCellId);
|
|
2700
|
+
const status = await (0,_utils_agentActions__WEBPACK_IMPORTED_MODULE_17__.retryIfExecutionError)(notebookTracker, app, getDuplicateChatHistoryManager, addAIMessageFromResponseAndUpdateState, sendAgentSmartDebugMessage, previewAICodeToActiveCell, acceptAICode, shouldContinueAgentExecution, finalizeAgentStop, chatHistoryManagerRef);
|
|
2701
|
+
if (status === 'interupted') {
|
|
2702
|
+
break;
|
|
2703
|
+
}
|
|
2704
|
+
if (status === 'failure') {
|
|
2705
|
+
addAIMessageFromResponseAndUpdateState("I apologize, but I encountered an error while running all cells and was unable to fix it after multiple attempts. You may want to check the notebook for errors.", 'agent:execution', chatHistoryManager);
|
|
2706
|
+
break;
|
|
2707
|
+
}
|
|
2708
|
+
}
|
|
2709
|
+
}
|
|
2645
2710
|
}
|
|
2646
2711
|
if (agentExecutionDepth > AGENT_EXECUTION_DEPTH_LIMIT) {
|
|
2647
2712
|
addAIMessageFromResponseAndUpdateState("Since I've been working for a while now, give my work a review and then tell me how to continue.", 'agent:execution', chatHistoryManager);
|
|
@@ -3305,6 +3370,7 @@ const getFirstMessageFromCookie = () => {
|
|
|
3305
3370
|
|
|
3306
3371
|
__webpack_require__.r(__webpack_exports__);
|
|
3307
3372
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3373
|
+
/* harmony export */ setDefaultWindowingMode: () => (/* binding */ setDefaultWindowingMode),
|
|
3308
3374
|
/* harmony export */ setRenameUntitledFileOnSave: () => (/* binding */ setRenameUntitledFileOnSave)
|
|
3309
3375
|
/* harmony export */ });
|
|
3310
3376
|
/*
|
|
@@ -3313,6 +3379,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
3313
3379
|
*/
|
|
3314
3380
|
// Document manager plugin ID
|
|
3315
3381
|
const DOCMANAGER_PLUGIN_ID = '@jupyterlab/docmanager-extension:plugin';
|
|
3382
|
+
const NOTEBOOK_PLUGIN_ID = '@jupyterlab/notebook-extension:tracker';
|
|
3316
3383
|
// Set renameUntitledFileOnSave to false when the extension loads
|
|
3317
3384
|
const setRenameUntitledFileOnSave = async (settingRegistry, _documentManager) => {
|
|
3318
3385
|
// Note we don't use the documentManager, but we require it as a parameter to make sure
|
|
@@ -3321,7 +3388,15 @@ const setRenameUntitledFileOnSave = async (settingRegistry, _documentManager) =>
|
|
|
3321
3388
|
await settingRegistry.set(DOCMANAGER_PLUGIN_ID, 'renameUntitledFileOnSave', false);
|
|
3322
3389
|
}
|
|
3323
3390
|
catch (error) {
|
|
3324
|
-
console.error('Failed to set renameUntitledFileOnSave setting:', error);
|
|
3391
|
+
console.error('[mito-ai jupyter settings manager] Failed to set renameUntitledFileOnSave setting:', error);
|
|
3392
|
+
}
|
|
3393
|
+
};
|
|
3394
|
+
const setDefaultWindowingMode = async (settingRegistry) => {
|
|
3395
|
+
try {
|
|
3396
|
+
await settingRegistry.set(NOTEBOOK_PLUGIN_ID, 'windowingMode', 'defer');
|
|
3397
|
+
}
|
|
3398
|
+
catch (error) {
|
|
3399
|
+
console.log('[mito-ai jupyter settings manager] Failed to set windowingMode to defer', error);
|
|
3325
3400
|
}
|
|
3326
3401
|
};
|
|
3327
3402
|
|
|
@@ -3539,12 +3614,13 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
3539
3614
|
/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__);
|
|
3540
3615
|
/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/apputils */ "webpack/sharing/consume/default/@jupyterlab/apputils");
|
|
3541
3616
|
/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__);
|
|
3542
|
-
/* harmony import */ var
|
|
3543
|
-
/* harmony import */ var
|
|
3617
|
+
/* harmony import */ var _requirementsUtils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./requirementsUtils */ "./lib/Extensions/AppBuilder/requirementsUtils.js");
|
|
3618
|
+
/* harmony import */ var _fileUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./fileUtils */ "./lib/Extensions/AppBuilder/fileUtils.js");
|
|
3544
3619
|
/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/coreutils */ "webpack/sharing/consume/default/@lumino/coreutils");
|
|
3545
3620
|
/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__);
|
|
3546
|
-
/* harmony import */ var
|
|
3621
|
+
/* harmony import */ var _DeployAppNotification__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./DeployAppNotification */ "./lib/Extensions/AppBuilder/DeployAppNotification.js");
|
|
3547
3622
|
/* harmony import */ var _auth__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./auth */ "./lib/Extensions/AppBuilder/auth.js");
|
|
3623
|
+
/* harmony import */ var _authPopupUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./authPopupUtils */ "./lib/Extensions/AppBuilder/authPopupUtils.js");
|
|
3548
3624
|
/*
|
|
3549
3625
|
* Copyright (c) Saga Inc.
|
|
3550
3626
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
@@ -3556,15 +3632,32 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
3556
3632
|
|
|
3557
3633
|
|
|
3558
3634
|
|
|
3635
|
+
|
|
3559
3636
|
/*
|
|
3560
3637
|
This function generates a requirements.txt file that lists the dependencies for the streamlit app
|
|
3561
3638
|
*/
|
|
3562
3639
|
const convertNotebookToStreamlit = async (notebookTracker, appBuilderService) => {
|
|
3563
|
-
|
|
3564
|
-
|
|
3565
|
-
|
|
3640
|
+
let jwtToken = await (0,_auth__WEBPACK_IMPORTED_MODULE_3__.getJWTToken)();
|
|
3641
|
+
if (!jwtToken) {
|
|
3642
|
+
// No token found, show authentication popup
|
|
3566
3643
|
console.log('User not authenticated, redirected to signup');
|
|
3567
|
-
|
|
3644
|
+
try {
|
|
3645
|
+
const user = await (0,_authPopupUtils__WEBPACK_IMPORTED_MODULE_4__.showAuthenticationPopup)();
|
|
3646
|
+
console.log('User authenticated successfully:', user);
|
|
3647
|
+
// Try to get the JWT token again after successful authentication
|
|
3648
|
+
jwtToken = await (0,_auth__WEBPACK_IMPORTED_MODULE_3__.getJWTToken)();
|
|
3649
|
+
if (!jwtToken) {
|
|
3650
|
+
console.error('JWT token still not available after authentication');
|
|
3651
|
+
_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Notification.emit('Authentication failed - JWT token not found', 'error', {
|
|
3652
|
+
autoClose: false
|
|
3653
|
+
});
|
|
3654
|
+
return;
|
|
3655
|
+
}
|
|
3656
|
+
}
|
|
3657
|
+
catch (error) {
|
|
3658
|
+
console.log('Authentication cancelled or failed:', error);
|
|
3659
|
+
return; // Exit early if authentication was cancelled
|
|
3660
|
+
}
|
|
3568
3661
|
}
|
|
3569
3662
|
const notebookPanel = notebookTracker.currentWidget;
|
|
3570
3663
|
if (!notebookPanel) {
|
|
@@ -3578,15 +3671,14 @@ const convertNotebookToStreamlit = async (notebookTracker, appBuilderService) =>
|
|
|
3578
3671
|
console.log('Current working directory info:', notebookPanel.context);
|
|
3579
3672
|
// Build the requirements.txt file
|
|
3580
3673
|
console.debug("Building requirements.txt file");
|
|
3581
|
-
const requirementsContent = await (0,
|
|
3674
|
+
const requirementsContent = await (0,_requirementsUtils__WEBPACK_IMPORTED_MODULE_5__.generateRequirementsTxt)(notebookTracker);
|
|
3582
3675
|
// Save the files to the current directory
|
|
3583
|
-
await (0,
|
|
3676
|
+
await (0,_fileUtils__WEBPACK_IMPORTED_MODULE_6__.saveFileWithKernel)(notebookTracker, './requirements.txt', requirementsContent);
|
|
3584
3677
|
// After building the files, we need to send a request to the backend to deploy the app
|
|
3585
3678
|
if (appBuilderService) {
|
|
3586
3679
|
try {
|
|
3587
3680
|
console.log("Sending request to deploy the app");
|
|
3588
|
-
//
|
|
3589
|
-
const jwtToken = (0,_auth__WEBPACK_IMPORTED_MODULE_3__.getJWTToken)();
|
|
3681
|
+
// Use the JWT token that was already obtained or refreshed above
|
|
3590
3682
|
const response = await appBuilderService.client.sendMessage({
|
|
3591
3683
|
type: 'build-app',
|
|
3592
3684
|
message_id: _lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__.UUID.uuid4(),
|
|
@@ -3601,7 +3693,7 @@ const convertNotebookToStreamlit = async (notebookTracker, appBuilderService) =>
|
|
|
3601
3693
|
else {
|
|
3602
3694
|
console.log("App deployment response:", response);
|
|
3603
3695
|
const url = response.url;
|
|
3604
|
-
(0,
|
|
3696
|
+
(0,_DeployAppNotification__WEBPACK_IMPORTED_MODULE_7__.deployAppNotification)(url);
|
|
3605
3697
|
}
|
|
3606
3698
|
}
|
|
3607
3699
|
catch (error) {
|
|
@@ -3615,6 +3707,116 @@ const convertNotebookToStreamlit = async (notebookTracker, appBuilderService) =>
|
|
|
3615
3707
|
};
|
|
3616
3708
|
|
|
3617
3709
|
|
|
3710
|
+
/***/ }),
|
|
3711
|
+
|
|
3712
|
+
/***/ "./lib/Extensions/AppBuilder/auth-popup-deploy.js":
|
|
3713
|
+
/*!********************************************************!*\
|
|
3714
|
+
!*** ./lib/Extensions/AppBuilder/auth-popup-deploy.js ***!
|
|
3715
|
+
\********************************************************/
|
|
3716
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3717
|
+
|
|
3718
|
+
__webpack_require__.r(__webpack_exports__);
|
|
3719
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3720
|
+
/* harmony export */ AuthPopup: () => (/* binding */ AuthPopup)
|
|
3721
|
+
/* harmony export */ });
|
|
3722
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
|
|
3723
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
3724
|
+
/* harmony import */ var _aws_amplify_ui_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-amplify/ui-react */ "webpack/sharing/consume/default/@aws-amplify/ui-react/@aws-amplify/ui-react");
|
|
3725
|
+
/* harmony import */ var _aws_amplify_ui_react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_ui_react__WEBPACK_IMPORTED_MODULE_1__);
|
|
3726
|
+
/* harmony import */ var _aws_amplify_ui_react_styles_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-amplify/ui-react/styles.css */ "./node_modules/@aws-amplify/ui-react/dist/styles.css");
|
|
3727
|
+
/* harmony import */ var _style_ConnectionForm_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../style/ConnectionForm.css */ "./style/ConnectionForm.css");
|
|
3728
|
+
/* harmony import */ var _style_button_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../style/button.css */ "./style/button.css");
|
|
3729
|
+
/* harmony import */ var _style_AuthPopup_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../style/AuthPopup.css */ "./style/AuthPopup.css");
|
|
3730
|
+
/*
|
|
3731
|
+
* Copyright (c) Saga Inc.
|
|
3732
|
+
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
3733
|
+
*/
|
|
3734
|
+
// auth-popup.tsx - Simple authentication popup with CSS-based requirements
|
|
3735
|
+
|
|
3736
|
+
|
|
3737
|
+
|
|
3738
|
+
|
|
3739
|
+
|
|
3740
|
+
|
|
3741
|
+
const AuthPopup = ({ isOpen, onClose, onSuccess }) => {
|
|
3742
|
+
// Track if we've already called onSuccess to prevent infinite loops
|
|
3743
|
+
const hasCalledOnSuccess = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(false);
|
|
3744
|
+
// Track if we should show progress bar
|
|
3745
|
+
const [showProgress, setShowProgress] = react__WEBPACK_IMPORTED_MODULE_0___default().useState(false);
|
|
3746
|
+
// Cleanup on unmount
|
|
3747
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(() => {
|
|
3748
|
+
return () => {
|
|
3749
|
+
setShowProgress(false);
|
|
3750
|
+
};
|
|
3751
|
+
}, []);
|
|
3752
|
+
if (!isOpen)
|
|
3753
|
+
return null;
|
|
3754
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "modal-overlay" },
|
|
3755
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "modal-content" },
|
|
3756
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "modal-header" },
|
|
3757
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h3", null, "Sign In / Sign Up"),
|
|
3758
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { onClick: onClose, className: "modal-close-button", title: "Close" }, "\u00D7")),
|
|
3759
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_aws_amplify_ui_react__WEBPACK_IMPORTED_MODULE_1__.Authenticator, { loginMechanisms: ['email'], signUpAttributes: ['name', 'email'], formFields: {
|
|
3760
|
+
signUp: {
|
|
3761
|
+
name: {
|
|
3762
|
+
order: 1,
|
|
3763
|
+
placeholder: 'Enter your full name',
|
|
3764
|
+
label: 'Full Name *',
|
|
3765
|
+
required: true
|
|
3766
|
+
},
|
|
3767
|
+
email: {
|
|
3768
|
+
order: 2,
|
|
3769
|
+
placeholder: 'Enter your email address',
|
|
3770
|
+
label: 'Email *'
|
|
3771
|
+
},
|
|
3772
|
+
password: {
|
|
3773
|
+
order: 3,
|
|
3774
|
+
placeholder: 'Enter your password',
|
|
3775
|
+
label: 'Password *',
|
|
3776
|
+
required: true
|
|
3777
|
+
},
|
|
3778
|
+
confirm_password: {
|
|
3779
|
+
order: 4,
|
|
3780
|
+
placeholder: 'Confirm your password',
|
|
3781
|
+
label: 'Confirm Password *'
|
|
3782
|
+
}
|
|
3783
|
+
}
|
|
3784
|
+
} }, ({ user }) => {
|
|
3785
|
+
// Call onSuccess when user is authenticated, but only once and with delay
|
|
3786
|
+
if (user && !hasCalledOnSuccess.current) {
|
|
3787
|
+
// Show the progress bar
|
|
3788
|
+
setShowProgress(true);
|
|
3789
|
+
// Give users time to see the success message before calling onSuccess
|
|
3790
|
+
setTimeout(() => {
|
|
3791
|
+
if (!hasCalledOnSuccess.current) {
|
|
3792
|
+
hasCalledOnSuccess.current = true;
|
|
3793
|
+
onSuccess(user);
|
|
3794
|
+
}
|
|
3795
|
+
}, 3000); // 3 second delay
|
|
3796
|
+
}
|
|
3797
|
+
// If user is signed in, show the welcome message
|
|
3798
|
+
if (user) {
|
|
3799
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "welcome-message-container" },
|
|
3800
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", { className: "welcome-message-title" }, "Welcome to mito!"),
|
|
3801
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", { className: "welcome-message-description" }, "You're all set to deploy your app."),
|
|
3802
|
+
showProgress && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "progress-bar-container" },
|
|
3803
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "progress-bar-fill" }))),
|
|
3804
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", { className: "progress-bar-timer" }, "Closing automatically in a few seconds...")));
|
|
3805
|
+
}
|
|
3806
|
+
// If user is not signed in, don't render anything here
|
|
3807
|
+
return react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { display: 'none' } });
|
|
3808
|
+
}),
|
|
3809
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "password-requirements" },
|
|
3810
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, "Password Requirements:"),
|
|
3811
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("ul", null,
|
|
3812
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "At least 8 characters long"),
|
|
3813
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "Contains at least one uppercase letter"),
|
|
3814
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "Contains at least one lowercase letter"),
|
|
3815
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "Contains at least one number"),
|
|
3816
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "Contains at least one special character"))))));
|
|
3817
|
+
};
|
|
3818
|
+
|
|
3819
|
+
|
|
3618
3820
|
/***/ }),
|
|
3619
3821
|
|
|
3620
3822
|
/***/ "./lib/Extensions/AppBuilder/auth.js":
|
|
@@ -3625,169 +3827,39 @@ const convertNotebookToStreamlit = async (notebookTracker, appBuilderService) =>
|
|
|
3625
3827
|
|
|
3626
3828
|
__webpack_require__.r(__webpack_exports__);
|
|
3627
3829
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3628
|
-
/* harmony export */ checkAuthenticationAndRedirect: () => (/* binding */ checkAuthenticationAndRedirect),
|
|
3629
|
-
/* harmony export */ exchangeCodeForTokens: () => (/* binding */ exchangeCodeForTokens),
|
|
3630
3830
|
/* harmony export */ getAuthHeaders: () => (/* binding */ getAuthHeaders),
|
|
3631
|
-
/* harmony export */ getJWTToken: () => (/* binding */ getJWTToken)
|
|
3632
|
-
/* harmony export */ isUserAuthenticated: () => (/* binding */ isUserAuthenticated),
|
|
3633
|
-
/* harmony export */ redirectToSignin: () => (/* binding */ redirectToSignin),
|
|
3634
|
-
/* harmony export */ redirectToSignup: () => (/* binding */ redirectToSignup),
|
|
3635
|
-
/* harmony export */ removeJWTToken: () => (/* binding */ removeJWTToken),
|
|
3636
|
-
/* harmony export */ setJWTToken: () => (/* binding */ setJWTToken)
|
|
3831
|
+
/* harmony export */ getJWTToken: () => (/* binding */ getJWTToken)
|
|
3637
3832
|
/* harmony export */ });
|
|
3638
|
-
/* harmony import */ var
|
|
3833
|
+
/* harmony import */ var aws_amplify_auth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! aws-amplify/auth */ "./node_modules/@aws-amplify/core/dist/esm/singleton/apis/fetchAuthSession.mjs");
|
|
3834
|
+
/* harmony import */ var _aws_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./aws-config */ "./lib/Extensions/AppBuilder/aws-config.js");
|
|
3639
3835
|
/*
|
|
3640
3836
|
* Copyright (c) Saga Inc.
|
|
3641
3837
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
3642
3838
|
*/
|
|
3643
3839
|
|
|
3644
|
-
|
|
3645
|
-
|
|
3646
|
-
|
|
3647
|
-
const active_domain = domain_dev;
|
|
3648
|
-
const currentUrl = window.location.href;
|
|
3649
|
-
let redirectUrl;
|
|
3650
|
-
// As of now we only support localhost:8888 because we have only allowed this redirect url on AWS conito
|
|
3651
|
-
// We can modify the redirect to include other ports in the future
|
|
3652
|
-
if (currentUrl.includes('localhost')) {
|
|
3653
|
-
redirectUrl = 'http://localhost:8888/lab';
|
|
3654
|
-
}
|
|
3655
|
-
else if (currentUrl.includes('trymito')) {
|
|
3656
|
-
redirectUrl = 'https://launch.trymito.io';
|
|
3657
|
-
}
|
|
3658
|
-
else {
|
|
3659
|
-
redirectUrl = currentUrl;
|
|
3660
|
-
}
|
|
3661
|
-
console.log("currentUrl: ", currentUrl);
|
|
3662
|
-
// AWS Cognito configuration
|
|
3663
|
-
const COGNITO_CONFIG = {
|
|
3664
|
-
SIGNUP_URL: `${active_domain}/signup?client_id=${client_id}&response_type=code&scope=email+openid+profile&redirect_uri=${redirectUrl}`,
|
|
3665
|
-
SIGNIN_URL: `${active_domain}/login?client_id=${client_id}&response_type=code&scope=email+openid+profile&redirect_uri=${redirectUrl}`,
|
|
3666
|
-
JWT_COOKIE_NAME: 'mito-auth-token',
|
|
3667
|
-
JWT_COOKIE_EXPIRY_HOURS: 1
|
|
3668
|
-
};
|
|
3669
|
-
/**
|
|
3670
|
-
* Check if user is authenticated by looking for JWT token in cookies
|
|
3671
|
-
*/
|
|
3672
|
-
const isUserAuthenticated = () => {
|
|
3673
|
-
const token = getJWTToken();
|
|
3674
|
-
return token !== null && token !== undefined && token !== '';
|
|
3675
|
-
};
|
|
3840
|
+
|
|
3841
|
+
// Ensure Amplify is configured before any auth operations
|
|
3842
|
+
(0,_aws_config__WEBPACK_IMPORTED_MODULE_0__.configureAmplify)();
|
|
3676
3843
|
/**
|
|
3677
3844
|
* Get JWT token from cookies
|
|
3678
3845
|
*/
|
|
3679
|
-
const getJWTToken = () => {
|
|
3680
|
-
|
|
3681
|
-
const jwtCookie = cookies.find(cookie => cookie.trim().startsWith(`${COGNITO_CONFIG.JWT_COOKIE_NAME}=`));
|
|
3682
|
-
if (jwtCookie) {
|
|
3683
|
-
const token = jwtCookie.split('=')[1];
|
|
3684
|
-
return token || null;
|
|
3685
|
-
}
|
|
3686
|
-
return null;
|
|
3687
|
-
};
|
|
3688
|
-
/**
|
|
3689
|
-
* Set JWT token as a cookie
|
|
3690
|
-
*/
|
|
3691
|
-
const setJWTToken = (token) => {
|
|
3692
|
-
const date = new Date();
|
|
3693
|
-
date.setTime(date.getTime() + (COGNITO_CONFIG.JWT_COOKIE_EXPIRY_HOURS * 60 * 60 * 1000));
|
|
3694
|
-
const expires = "expires=" + date.toUTCString();
|
|
3695
|
-
// Set cookie for all subdomains of trymito.io (production)
|
|
3696
|
-
document.cookie = `${COGNITO_CONFIG.JWT_COOKIE_NAME}=${token}; ${expires}; path=/; domain=.trymito.io; SameSite=Lax; Secure`;
|
|
3697
|
-
// For localhost development
|
|
3698
|
-
if (window.location.hostname === 'localhost') {
|
|
3699
|
-
document.cookie = `${COGNITO_CONFIG.JWT_COOKIE_NAME}=${token}; ${expires}; path=/`;
|
|
3700
|
-
}
|
|
3701
|
-
};
|
|
3702
|
-
/**
|
|
3703
|
-
* Remove JWT token from cookies
|
|
3704
|
-
*/
|
|
3705
|
-
const removeJWTToken = () => {
|
|
3706
|
-
// Delete for current domain
|
|
3707
|
-
document.cookie = `${COGNITO_CONFIG.JWT_COOKIE_NAME}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`;
|
|
3708
|
-
// Delete for all subdomains
|
|
3709
|
-
document.cookie = `${COGNITO_CONFIG.JWT_COOKIE_NAME}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/; domain=.trymito.io;`;
|
|
3710
|
-
};
|
|
3711
|
-
/**
|
|
3712
|
-
* Exchange authorization code for JWT tokens
|
|
3713
|
-
*/
|
|
3714
|
-
const exchangeCodeForTokens = async (code) => {
|
|
3846
|
+
const getJWTToken = async () => {
|
|
3847
|
+
var _a, _b;
|
|
3715
3848
|
try {
|
|
3716
|
-
const
|
|
3717
|
-
|
|
3718
|
-
|
|
3719
|
-
});
|
|
3720
|
-
if (response.error) {
|
|
3721
|
-
console.error('Failed to exchange code for tokens:', response.error);
|
|
3722
|
-
return false;
|
|
3723
|
-
}
|
|
3724
|
-
if (response.data) {
|
|
3725
|
-
const data = response.data;
|
|
3726
|
-
const { access_token } = data;
|
|
3727
|
-
// Store the access token as the JWT token
|
|
3728
|
-
if (access_token) {
|
|
3729
|
-
setJWTToken(access_token);
|
|
3730
|
-
return true;
|
|
3731
|
-
}
|
|
3732
|
-
}
|
|
3733
|
-
return false;
|
|
3849
|
+
const session = await (0,aws_amplify_auth__WEBPACK_IMPORTED_MODULE_1__.fetchAuthSession)();
|
|
3850
|
+
const accessToken = (_b = (_a = session.tokens) === null || _a === void 0 ? void 0 : _a.accessToken) === null || _b === void 0 ? void 0 : _b.toString();
|
|
3851
|
+
return accessToken || '';
|
|
3734
3852
|
}
|
|
3735
3853
|
catch (error) {
|
|
3736
|
-
console.error('Error
|
|
3737
|
-
return
|
|
3738
|
-
}
|
|
3739
|
-
};
|
|
3740
|
-
/**
|
|
3741
|
-
* Redirect user to AWS Cognito signup page
|
|
3742
|
-
*/
|
|
3743
|
-
const redirectToSignup = () => {
|
|
3744
|
-
window.location.href = COGNITO_CONFIG.SIGNUP_URL;
|
|
3745
|
-
};
|
|
3746
|
-
/**
|
|
3747
|
-
* Redirect user to AWS Cognito signin page
|
|
3748
|
-
*/
|
|
3749
|
-
const redirectToSignin = () => {
|
|
3750
|
-
window.location.href = COGNITO_CONFIG.SIGNIN_URL;
|
|
3751
|
-
};
|
|
3752
|
-
/**
|
|
3753
|
-
* Handle authentication check and redirect if needed
|
|
3754
|
-
* Returns true if user is authenticated, false if redirected
|
|
3755
|
-
*/
|
|
3756
|
-
const checkAuthenticationAndRedirect = async () => {
|
|
3757
|
-
if (!isUserAuthenticated()) {
|
|
3758
|
-
// Check if there's a code parameter in the URL (indicating return from Cognito)
|
|
3759
|
-
const urlParams = new URLSearchParams(window.location.search);
|
|
3760
|
-
const code = urlParams.get('code');
|
|
3761
|
-
if (code) {
|
|
3762
|
-
// User has returned from Cognito with authorization code
|
|
3763
|
-
console.log('Received authorization code from Cognito:', code);
|
|
3764
|
-
// Exchange the code for JWT tokens
|
|
3765
|
-
const success = await exchangeCodeForTokens(code);
|
|
3766
|
-
if (success) {
|
|
3767
|
-
// Clean up URL
|
|
3768
|
-
const newUrl = window.location.pathname;
|
|
3769
|
-
window.history.replaceState({}, document.title, newUrl);
|
|
3770
|
-
return true;
|
|
3771
|
-
}
|
|
3772
|
-
else {
|
|
3773
|
-
// Failed to exchange code, redirect to signup
|
|
3774
|
-
redirectToSignup();
|
|
3775
|
-
return false;
|
|
3776
|
-
}
|
|
3777
|
-
}
|
|
3778
|
-
else {
|
|
3779
|
-
// No token and no code, redirect to signup
|
|
3780
|
-
redirectToSignup();
|
|
3781
|
-
return false;
|
|
3782
|
-
}
|
|
3854
|
+
console.error('Error getting JWT token:', error);
|
|
3855
|
+
return '';
|
|
3783
3856
|
}
|
|
3784
|
-
return true;
|
|
3785
3857
|
};
|
|
3786
3858
|
/**
|
|
3787
3859
|
* Get authentication headers for API requests
|
|
3788
3860
|
*/
|
|
3789
|
-
const getAuthHeaders = () => {
|
|
3790
|
-
const token = getJWTToken();
|
|
3861
|
+
const getAuthHeaders = async () => {
|
|
3862
|
+
const token = await getJWTToken();
|
|
3791
3863
|
if (token) {
|
|
3792
3864
|
return {
|
|
3793
3865
|
'Authorization': `Bearer ${token}`
|
|
@@ -3797,6 +3869,101 @@ const getAuthHeaders = () => {
|
|
|
3797
3869
|
};
|
|
3798
3870
|
|
|
3799
3871
|
|
|
3872
|
+
/***/ }),
|
|
3873
|
+
|
|
3874
|
+
/***/ "./lib/Extensions/AppBuilder/authPopupUtils.js":
|
|
3875
|
+
/*!*****************************************************!*\
|
|
3876
|
+
!*** ./lib/Extensions/AppBuilder/authPopupUtils.js ***!
|
|
3877
|
+
\*****************************************************/
|
|
3878
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3879
|
+
|
|
3880
|
+
__webpack_require__.r(__webpack_exports__);
|
|
3881
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3882
|
+
/* harmony export */ showAuthenticationPopup: () => (/* binding */ showAuthenticationPopup)
|
|
3883
|
+
/* harmony export */ });
|
|
3884
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
|
|
3885
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
3886
|
+
/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom/client */ "./node_modules/react-dom/client.js");
|
|
3887
|
+
/* harmony import */ var _auth_popup_deploy__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./auth-popup-deploy */ "./lib/Extensions/AppBuilder/auth-popup-deploy.js");
|
|
3888
|
+
/*
|
|
3889
|
+
* Copyright (c) Saga Inc.
|
|
3890
|
+
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
3891
|
+
*/
|
|
3892
|
+
|
|
3893
|
+
|
|
3894
|
+
|
|
3895
|
+
/**
|
|
3896
|
+
* Shows an authentication popup and returns a promise that resolves when authentication is successful
|
|
3897
|
+
*/
|
|
3898
|
+
const showAuthenticationPopup = () => {
|
|
3899
|
+
return new Promise((resolve, reject) => {
|
|
3900
|
+
// Create a container for the popup
|
|
3901
|
+
const popupContainer = document.createElement('div');
|
|
3902
|
+
popupContainer.id = 'auth-popup-container';
|
|
3903
|
+
document.body.appendChild(popupContainer);
|
|
3904
|
+
// Create root for React 18
|
|
3905
|
+
const root = (0,react_dom_client__WEBPACK_IMPORTED_MODULE_1__.createRoot)(popupContainer);
|
|
3906
|
+
const handleSuccess = (user) => {
|
|
3907
|
+
// Clean up the popup
|
|
3908
|
+
root.unmount();
|
|
3909
|
+
document.body.removeChild(popupContainer);
|
|
3910
|
+
resolve(user);
|
|
3911
|
+
};
|
|
3912
|
+
const handleClose = () => {
|
|
3913
|
+
// Clean up the popup
|
|
3914
|
+
root.unmount();
|
|
3915
|
+
document.body.removeChild(popupContainer);
|
|
3916
|
+
reject(new Error('Authentication cancelled'));
|
|
3917
|
+
};
|
|
3918
|
+
// Render the AuthPopup
|
|
3919
|
+
root.render(react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_auth_popup_deploy__WEBPACK_IMPORTED_MODULE_2__.AuthPopup, { isOpen: true, onSuccess: handleSuccess, onClose: handleClose }));
|
|
3920
|
+
});
|
|
3921
|
+
};
|
|
3922
|
+
|
|
3923
|
+
|
|
3924
|
+
/***/ }),
|
|
3925
|
+
|
|
3926
|
+
/***/ "./lib/Extensions/AppBuilder/aws-config.js":
|
|
3927
|
+
/*!*************************************************!*\
|
|
3928
|
+
!*** ./lib/Extensions/AppBuilder/aws-config.js ***!
|
|
3929
|
+
\*************************************************/
|
|
3930
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3931
|
+
|
|
3932
|
+
__webpack_require__.r(__webpack_exports__);
|
|
3933
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3934
|
+
/* harmony export */ configureAmplify: () => (/* binding */ configureAmplify)
|
|
3935
|
+
/* harmony export */ });
|
|
3936
|
+
/* harmony import */ var aws_amplify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! aws-amplify */ "webpack/sharing/consume/default/aws-amplify/aws-amplify?b926");
|
|
3937
|
+
/* harmony import */ var aws_amplify__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(aws_amplify__WEBPACK_IMPORTED_MODULE_0__);
|
|
3938
|
+
/*
|
|
3939
|
+
* Copyright (c) Saga Inc.
|
|
3940
|
+
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
3941
|
+
*/
|
|
3942
|
+
|
|
3943
|
+
const userPoolIdDev = 'us-east-1_Kk0f9mOfx';
|
|
3944
|
+
const userPoolClientIdDev = '6ara3u3l8sss738hrhbq1qtiqf';
|
|
3945
|
+
// TODO: modify to prod user ID and client ID on after creating teh cognito resources in prod
|
|
3946
|
+
const userPoolId = userPoolIdDev;
|
|
3947
|
+
const userPoolClientId = userPoolClientIdDev;
|
|
3948
|
+
const configureAmplify = () => {
|
|
3949
|
+
aws_amplify__WEBPACK_IMPORTED_MODULE_0__.Amplify.configure({
|
|
3950
|
+
Auth: {
|
|
3951
|
+
Cognito: {
|
|
3952
|
+
userPoolId: userPoolId,
|
|
3953
|
+
userPoolClientId: userPoolClientId,
|
|
3954
|
+
loginWith: {
|
|
3955
|
+
email: true,
|
|
3956
|
+
username: false,
|
|
3957
|
+
}
|
|
3958
|
+
},
|
|
3959
|
+
}
|
|
3960
|
+
});
|
|
3961
|
+
console.log('Amplify configuration loaded successfully');
|
|
3962
|
+
};
|
|
3963
|
+
// Configure immediately when this module is imported
|
|
3964
|
+
configureAmplify();
|
|
3965
|
+
|
|
3966
|
+
|
|
3800
3967
|
/***/ }),
|
|
3801
3968
|
|
|
3802
3969
|
/***/ "./lib/Extensions/AppBuilder/fileUtils.js":
|
|
@@ -4269,10 +4436,17 @@ def structured_globals():
|
|
|
4269
4436
|
|
|
4270
4437
|
else:
|
|
4271
4438
|
|
|
4439
|
+
max_value_length = 4000 # This is roughly 1000 tokens in the LLM
|
|
4440
|
+
truncated_value = str(repr(v)) # Force to string
|
|
4441
|
+
|
|
4442
|
+
if len(truncated_value) > max_value_length:
|
|
4443
|
+
split_length = max_value_length // 2
|
|
4444
|
+
truncated_value = truncated_value[:split_length] + '... <middle of value truncated> ...' + truncated_value[-split_length:]
|
|
4445
|
+
|
|
4272
4446
|
new_variable = {
|
|
4273
4447
|
"variable_name": k,
|
|
4274
4448
|
"type": str(type(v)),
|
|
4275
|
-
"value":
|
|
4449
|
+
"value": truncated_value
|
|
4276
4450
|
}
|
|
4277
4451
|
|
|
4278
4452
|
try:
|
|
@@ -6648,11 +6822,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6648
6822
|
/* harmony import */ var _utils_classNames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/classNames */ "./lib/utils/classNames.js");
|
|
6649
6823
|
/* harmony import */ var _utils_strings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/strings */ "./lib/utils/strings.js");
|
|
6650
6824
|
/* harmony import */ var _Extensions_AiChat_ChatMessage_PythonCode__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../Extensions/AiChat/ChatMessage/PythonCode */ "./lib/Extensions/AiChat/ChatMessage/PythonCode.js");
|
|
6651
|
-
/* harmony import */ var
|
|
6825
|
+
/* harmony import */ var _Extensions_AiChat_ChatMessage_AssistantCodeBlock__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../Extensions/AiChat/ChatMessage/AssistantCodeBlock */ "./lib/Extensions/AiChat/ChatMessage/AssistantCodeBlock.js");
|
|
6652
6826
|
/* harmony import */ var _icons_AlertIcon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../icons/AlertIcon */ "./lib/icons/AlertIcon.js");
|
|
6653
6827
|
/* harmony import */ var _AgentComponentHeader__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./AgentComponentHeader */ "./lib/components/AgentComponents/AgentComponentHeader.js");
|
|
6654
6828
|
/* harmony import */ var _style_ErrorFixupToolUI_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../style/ErrorFixupToolUI.css */ "./style/ErrorFixupToolUI.css");
|
|
6655
6829
|
/* harmony import */ var _style_AgentComponentHeader_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../style/AgentComponentHeader.css */ "./style/AgentComponentHeader.css");
|
|
6830
|
+
/* harmony import */ var _RunAllCellsToolUI__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./RunAllCellsToolUI */ "./lib/components/AgentComponents/RunAllCellsToolUI.js");
|
|
6656
6831
|
/*
|
|
6657
6832
|
* Copyright (c) Saga Inc.
|
|
6658
6833
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
@@ -6666,6 +6841,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6666
6841
|
|
|
6667
6842
|
|
|
6668
6843
|
|
|
6844
|
+
|
|
6669
6845
|
const parsePythonErrorType = (content) => {
|
|
6670
6846
|
if (!content)
|
|
6671
6847
|
return 'Error';
|
|
@@ -6698,12 +6874,15 @@ const GroupedErrorsAndFixes = ({ messages, renderMimeRegistry, }) => {
|
|
|
6698
6874
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "error-fixup-header" },
|
|
6699
6875
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, "Fixing an error")),
|
|
6700
6876
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "error-fixup-messages-container" }, messages.map((messageItem, index) => {
|
|
6701
|
-
var _a, _b, _c;
|
|
6877
|
+
var _a, _b, _c, _d;
|
|
6702
6878
|
const isUserMessage = messageItem.message.role === 'user';
|
|
6703
6879
|
if (isUserMessage) {
|
|
6704
6880
|
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ErrorDetectedBlock, { key: `error-${index}`, errorMessage: messageItem.message, renderMimeRegistry: renderMimeRegistry }));
|
|
6705
6881
|
}
|
|
6706
|
-
|
|
6882
|
+
if (((_a = messageItem.agentResponse) === null || _a === void 0 ? void 0 : _a.type) === 'run_all_cells') {
|
|
6883
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_RunAllCellsToolUI__WEBPACK_IMPORTED_MODULE_8__["default"], { key: `run-all-cells-${index}`, inErrorFixup: true }));
|
|
6884
|
+
}
|
|
6885
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Extensions_AiChat_ChatMessage_AssistantCodeBlock__WEBPACK_IMPORTED_MODULE_9__["default"], { key: `assistant-${index}`, code: messageItem.message.content, codeSummary: (_d = (_c = (_b = messageItem.agentResponse) === null || _b === void 0 ? void 0 : _b.cell_update) === null || _c === void 0 ? void 0 : _c.code_summary) !== null && _d !== void 0 ? _d : 'Fixing error', isCodeComplete: true, renderMimeRegistry: renderMimeRegistry, previewAICode: () => { }, acceptAICode: () => { }, rejectAICode: () => { }, isLastAiMessage: false, codeReviewStatus: "chatPreview", agentModeEnabled: true, isErrorFixup: true }));
|
|
6707
6886
|
}))));
|
|
6708
6887
|
};
|
|
6709
6888
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (GroupedErrorsAndFixes);
|
|
@@ -6724,7 +6903,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6724
6903
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
|
|
6725
6904
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
6726
6905
|
/* harmony import */ var _icons_MagnifyingGlassIcon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../icons/MagnifyingGlassIcon */ "./lib/icons/MagnifyingGlassIcon.js");
|
|
6727
|
-
/* harmony import */ var
|
|
6906
|
+
/* harmony import */ var _style_AgentToolUIComponent_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../style/AgentToolUIComponent.css */ "./style/AgentToolUIComponent.css");
|
|
6728
6907
|
/*
|
|
6729
6908
|
* Copyright (c) Saga Inc.
|
|
6730
6909
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
@@ -6733,8 +6912,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6733
6912
|
|
|
6734
6913
|
|
|
6735
6914
|
const GetCellOutputToolUI = () => {
|
|
6736
|
-
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "
|
|
6737
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "
|
|
6915
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "agent-tool-ui-container" },
|
|
6916
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "agent-tool-ui-content" },
|
|
6738
6917
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_MagnifyingGlassIcon__WEBPACK_IMPORTED_MODULE_2__["default"], null),
|
|
6739
6918
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "Taking a look at the cell output"))));
|
|
6740
6919
|
};
|
|
@@ -6743,10 +6922,10 @@ const GetCellOutputToolUI = () => {
|
|
|
6743
6922
|
|
|
6744
6923
|
/***/ }),
|
|
6745
6924
|
|
|
6746
|
-
/***/ "./lib/components/
|
|
6747
|
-
|
|
6748
|
-
!*** ./lib/components/
|
|
6749
|
-
|
|
6925
|
+
/***/ "./lib/components/AgentComponents/RunAllCellsToolUI.js":
|
|
6926
|
+
/*!*************************************************************!*\
|
|
6927
|
+
!*** ./lib/components/AgentComponents/RunAllCellsToolUI.js ***!
|
|
6928
|
+
\*************************************************************/
|
|
6750
6929
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6751
6930
|
|
|
6752
6931
|
__webpack_require__.r(__webpack_exports__);
|
|
@@ -6755,10 +6934,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6755
6934
|
/* harmony export */ });
|
|
6756
6935
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
|
|
6757
6936
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
6758
|
-
/* harmony import */ var
|
|
6759
|
-
/* harmony import */ var
|
|
6760
|
-
/* harmony import */ var
|
|
6761
|
-
/* harmony import */ var _restAPI_RestAPI__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../restAPI/RestAPI */ "./lib/restAPI/RestAPI.js");
|
|
6937
|
+
/* harmony import */ var _icons_PlayButtonIcon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../icons/PlayButtonIcon */ "./lib/icons/PlayButtonIcon.js");
|
|
6938
|
+
/* harmony import */ var _style_AgentToolUIComponent_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../style/AgentToolUIComponent.css */ "./style/AgentToolUIComponent.css");
|
|
6939
|
+
/* harmony import */ var _utils_classNames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/classNames */ "./lib/utils/classNames.js");
|
|
6762
6940
|
/*
|
|
6763
6941
|
* Copyright (c) Saga Inc.
|
|
6764
6942
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
@@ -6767,42 +6945,23 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6767
6945
|
|
|
6768
6946
|
|
|
6769
6947
|
|
|
6770
|
-
|
|
6771
|
-
|
|
6772
|
-
|
|
6773
|
-
|
|
6774
|
-
|
|
6775
|
-
|
|
6776
|
-
|
|
6777
|
-
setDatabaseConnections(databaseConnections);
|
|
6778
|
-
};
|
|
6779
|
-
// Fetch database connections
|
|
6780
|
-
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
6781
|
-
void fetchDatabaseConnections();
|
|
6782
|
-
}, []);
|
|
6783
|
-
// Determine notification dot type based on connections
|
|
6784
|
-
const getNotificationDotType = () => {
|
|
6785
|
-
if (!isIconVisible) {
|
|
6786
|
-
return null;
|
|
6787
|
-
}
|
|
6788
|
-
return Object.keys(databaseConnections).length > 0 ? 'success' : 'warning';
|
|
6789
|
-
};
|
|
6790
|
-
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_IconButton__WEBPACK_IMPORTED_MODULE_2__["default"], { icon: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_DatabaseOutlineIcon__WEBPACK_IMPORTED_MODULE_3__["default"], null), title: 'Add Database', onClick: () => {
|
|
6791
|
-
void app.commands.execute(_Extensions_SettingsManager_SettingsManagerPlugin__WEBPACK_IMPORTED_MODULE_4__.COMMAND_MITO_AI_SETTINGS);
|
|
6792
|
-
setIsIconVisible(false);
|
|
6793
|
-
}, notificationDotType: getNotificationDotType(), className: 'icon-button-hover', style: {
|
|
6794
|
-
height: 'var(--chat-context-button-height)'
|
|
6795
|
-
} }));
|
|
6948
|
+
const RunAllCellsToolUI = ({ inErrorFixup }) => {
|
|
6949
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: (0,_utils_classNames__WEBPACK_IMPORTED_MODULE_2__.classNames)('agent-tool-ui-container', {
|
|
6950
|
+
'agent-tool-ui-error-fixup': inErrorFixup,
|
|
6951
|
+
}) },
|
|
6952
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "agent-tool-ui-content" },
|
|
6953
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_PlayButtonIcon__WEBPACK_IMPORTED_MODULE_3__["default"], null),
|
|
6954
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "Running all cells"))));
|
|
6796
6955
|
};
|
|
6797
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (
|
|
6956
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RunAllCellsToolUI);
|
|
6798
6957
|
|
|
6799
6958
|
|
|
6800
6959
|
/***/ }),
|
|
6801
6960
|
|
|
6802
|
-
/***/ "./lib/components/
|
|
6803
|
-
|
|
6804
|
-
!*** ./lib/components/
|
|
6805
|
-
|
|
6961
|
+
/***/ "./lib/components/AttachFileButton.js":
|
|
6962
|
+
/*!********************************************!*\
|
|
6963
|
+
!*** ./lib/components/AttachFileButton.js ***!
|
|
6964
|
+
\********************************************/
|
|
6806
6965
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6807
6966
|
|
|
6808
6967
|
__webpack_require__.r(__webpack_exports__);
|
|
@@ -6811,46 +6970,307 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6811
6970
|
/* harmony export */ });
|
|
6812
6971
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
|
|
6813
6972
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
6814
|
-
/* harmony import */ var
|
|
6973
|
+
/* harmony import */ var _IconButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./IconButton */ "./lib/components/IconButton.js");
|
|
6974
|
+
/* harmony import */ var _icons_PaperClipIcon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/PaperClipIcon */ "./lib/icons/PaperClipIcon.js");
|
|
6975
|
+
/* harmony import */ var _restAPI_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../restAPI/utils */ "./lib/restAPI/utils.js");
|
|
6976
|
+
/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/apputils */ "webpack/sharing/consume/default/@jupyterlab/apputils");
|
|
6977
|
+
/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__);
|
|
6815
6978
|
/*
|
|
6816
6979
|
* Copyright (c) Saga Inc.
|
|
6817
6980
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
6818
6981
|
*/
|
|
6819
6982
|
|
|
6820
6983
|
|
|
6821
|
-
|
|
6822
|
-
|
|
6823
|
-
|
|
6824
|
-
|
|
6825
|
-
|
|
6826
|
-
|
|
6827
|
-
|
|
6828
|
-
|
|
6829
|
-
|
|
6830
|
-
|
|
6831
|
-
|
|
6832
|
-
|
|
6833
|
-
|
|
6834
|
-
|
|
6835
|
-
|
|
6836
|
-
|
|
6837
|
-
|
|
6984
|
+
|
|
6985
|
+
|
|
6986
|
+
|
|
6987
|
+
// Constants for file handling
|
|
6988
|
+
const CHUNKED_UPLOAD_SIZE_CUTOFF = 25 * 1024 * 1024; // 25MB cutoff for chunked uploads
|
|
6989
|
+
const CHUNK_SIZE = 10 * 1024 * 1024; // 10MB chunks
|
|
6990
|
+
const AttachFileButton = ({ onFileUploaded, notebookTracker }) => {
|
|
6991
|
+
const fileInputRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
|
|
6992
|
+
const [isUploading, setIsUploading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
6993
|
+
// Helper function to get notebook directory from notebook path
|
|
6994
|
+
const getNotebookDirectory = (notebookPath) => {
|
|
6995
|
+
const lastSlashIndex = notebookPath.lastIndexOf('/');
|
|
6996
|
+
if (lastSlashIndex === -1) {
|
|
6997
|
+
// No directory, just filename (root directory)
|
|
6998
|
+
return '.';
|
|
6999
|
+
}
|
|
7000
|
+
return notebookPath.substring(0, lastSlashIndex);
|
|
7001
|
+
};
|
|
7002
|
+
const handleClick = () => {
|
|
7003
|
+
var _a;
|
|
7004
|
+
// Don't allow clicks if uploading
|
|
7005
|
+
if (isUploading)
|
|
6838
7006
|
return;
|
|
6839
|
-
|
|
6840
|
-
|
|
7007
|
+
// Trigger the hidden file input
|
|
7008
|
+
(_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click();
|
|
6841
7009
|
};
|
|
6842
|
-
|
|
6843
|
-
|
|
6844
|
-
|
|
6845
|
-
|
|
6846
|
-
|
|
6847
|
-
|
|
6848
|
-
|
|
6849
|
-
|
|
6850
|
-
|
|
6851
|
-
|
|
6852
|
-
|
|
6853
|
-
|
|
7010
|
+
const handleFileSelect = async (event) => {
|
|
7011
|
+
const files = event.target.files;
|
|
7012
|
+
if (!files || files.length === 0)
|
|
7013
|
+
return;
|
|
7014
|
+
const file = files[0];
|
|
7015
|
+
if (!file)
|
|
7016
|
+
return;
|
|
7017
|
+
// Don't allow new uploads if already uploading
|
|
7018
|
+
if (isUploading)
|
|
7019
|
+
return;
|
|
7020
|
+
setIsUploading(true);
|
|
7021
|
+
try {
|
|
7022
|
+
// Check file size and handle accordingly
|
|
7023
|
+
if (file.size > CHUNKED_UPLOAD_SIZE_CUTOFF) {
|
|
7024
|
+
console.log(`File ${file.name} is larger than 25MB (${(file.size / (1024 * 1024)).toFixed(2)}MB). Splitting into chunks...`);
|
|
7025
|
+
await handleLargeFile(file);
|
|
7026
|
+
}
|
|
7027
|
+
else {
|
|
7028
|
+
// Upload file directly for files <= 25MB
|
|
7029
|
+
await uploadFile(file);
|
|
7030
|
+
}
|
|
7031
|
+
}
|
|
7032
|
+
catch (error) {
|
|
7033
|
+
_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Notification.emit(`Upload failed: ${error}`, "error", {
|
|
7034
|
+
autoClose: 5 * 1000 // 5 seconds
|
|
7035
|
+
});
|
|
7036
|
+
console.error('Error during file upload:', error);
|
|
7037
|
+
}
|
|
7038
|
+
finally {
|
|
7039
|
+
setIsUploading(false);
|
|
7040
|
+
// Clear the file input
|
|
7041
|
+
if (fileInputRef.current) {
|
|
7042
|
+
fileInputRef.current.value = '';
|
|
7043
|
+
}
|
|
7044
|
+
}
|
|
7045
|
+
};
|
|
7046
|
+
const handleLargeFile = async (file) => {
|
|
7047
|
+
const totalChunks = Math.ceil(file.size / CHUNK_SIZE);
|
|
7048
|
+
console.log(`Splitting file into ${totalChunks} chunks of ${(CHUNK_SIZE / (1024 * 1024)).toFixed(2)}MB each`);
|
|
7049
|
+
// Get notebook directory path
|
|
7050
|
+
const notebookPanel = notebookTracker.currentWidget;
|
|
7051
|
+
if (!notebookPanel) {
|
|
7052
|
+
console.error('No notebook is currently active');
|
|
7053
|
+
throw new Error('No notebook is currently active');
|
|
7054
|
+
}
|
|
7055
|
+
const notebookPath = notebookPanel.context.path;
|
|
7056
|
+
const notebookDir = getNotebookDirectory(notebookPath);
|
|
7057
|
+
for (let chunkIndex = 0; chunkIndex < totalChunks; chunkIndex++) {
|
|
7058
|
+
const start = chunkIndex * CHUNK_SIZE;
|
|
7059
|
+
const end = Math.min(start + CHUNK_SIZE, file.size);
|
|
7060
|
+
const chunk = file.slice(start, end);
|
|
7061
|
+
console.log(`Uploading chunk ${chunkIndex + 1}/${totalChunks}:`, {
|
|
7062
|
+
chunkNumber: chunkIndex + 1,
|
|
7063
|
+
totalChunks: totalChunks,
|
|
7064
|
+
chunkSize: chunk.size,
|
|
7065
|
+
chunkSizeMB: (chunk.size / (1024 * 1024)).toFixed(2),
|
|
7066
|
+
startByte: start,
|
|
7067
|
+
endByte: end,
|
|
7068
|
+
fileName: file.name,
|
|
7069
|
+
originalFileSize: file.size,
|
|
7070
|
+
originalFileSizeMB: (file.size / (1024 * 1024)).toFixed(2)
|
|
7071
|
+
});
|
|
7072
|
+
// Upload chunk to backend
|
|
7073
|
+
const success = await uploadChunk(chunk, file.name, chunkIndex + 1, totalChunks, notebookDir);
|
|
7074
|
+
if (!success) {
|
|
7075
|
+
console.error(`Failed to upload chunk ${chunkIndex + 1}`);
|
|
7076
|
+
throw new Error(`Failed to upload chunk ${chunkIndex + 1}`);
|
|
7077
|
+
}
|
|
7078
|
+
}
|
|
7079
|
+
console.log(`Successfully uploaded all ${totalChunks} chunks for file: ${file.name}`);
|
|
7080
|
+
// Notify the parent component that the file was uploaded
|
|
7081
|
+
onFileUploaded(file.name);
|
|
7082
|
+
};
|
|
7083
|
+
const uploadChunk = async (chunk, filename, chunkNumber, totalChunks, notebookDir) => {
|
|
7084
|
+
try {
|
|
7085
|
+
// Create FormData for chunk upload
|
|
7086
|
+
const formData = new FormData();
|
|
7087
|
+
formData.append('file', chunk, filename);
|
|
7088
|
+
formData.append('chunk_number', chunkNumber.toString());
|
|
7089
|
+
formData.append('total_chunks', totalChunks.toString());
|
|
7090
|
+
formData.append('notebook_dir', notebookDir);
|
|
7091
|
+
// Upload chunk to backend
|
|
7092
|
+
const resp = await (0,_restAPI_utils__WEBPACK_IMPORTED_MODULE_2__.requestAPI)('upload', {
|
|
7093
|
+
method: 'POST',
|
|
7094
|
+
body: formData
|
|
7095
|
+
});
|
|
7096
|
+
if (resp.error) {
|
|
7097
|
+
_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Notification.emit(`Upload failed: ${resp.error.message}`, "error", {
|
|
7098
|
+
autoClose: 5 * 1000 // 5 seconds
|
|
7099
|
+
});
|
|
7100
|
+
console.error(`Chunk ${chunkNumber} upload failed:`, resp.error.message);
|
|
7101
|
+
return false;
|
|
7102
|
+
}
|
|
7103
|
+
else if (resp.data) {
|
|
7104
|
+
if (resp.data.chunk_complete) {
|
|
7105
|
+
console.log(`All chunks uploaded successfully. File reconstructed: ${resp.data.filename}`);
|
|
7106
|
+
}
|
|
7107
|
+
else if (resp.data.chunk_received) {
|
|
7108
|
+
console.log(`Chunk ${resp.data.chunk_number}/${resp.data.total_chunks} uploaded successfully`);
|
|
7109
|
+
}
|
|
7110
|
+
return true;
|
|
7111
|
+
}
|
|
7112
|
+
return false;
|
|
7113
|
+
}
|
|
7114
|
+
catch (error) {
|
|
7115
|
+
_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Notification.emit(`Upload failed: ${error}`, "error", {
|
|
7116
|
+
autoClose: 5 * 1000 // 5 seconds
|
|
7117
|
+
});
|
|
7118
|
+
console.error(`Error uploading chunk ${chunkNumber}:`, error);
|
|
7119
|
+
return false;
|
|
7120
|
+
}
|
|
7121
|
+
};
|
|
7122
|
+
const uploadFile = async (file) => {
|
|
7123
|
+
// Get notebook directory path
|
|
7124
|
+
const notebookPanel = notebookTracker.currentWidget;
|
|
7125
|
+
if (!notebookPanel) {
|
|
7126
|
+
console.error('No notebook is currently active');
|
|
7127
|
+
throw new Error('No notebook is currently active');
|
|
7128
|
+
}
|
|
7129
|
+
const notebookPath = notebookPanel.context.path;
|
|
7130
|
+
const notebookDir = getNotebookDirectory(notebookPath);
|
|
7131
|
+
// Create FormData for file upload
|
|
7132
|
+
const formData = new FormData();
|
|
7133
|
+
formData.append('file', file);
|
|
7134
|
+
formData.append('notebook_dir', notebookDir);
|
|
7135
|
+
// Upload file to backend using FormData
|
|
7136
|
+
const resp = await (0,_restAPI_utils__WEBPACK_IMPORTED_MODULE_2__.requestAPI)('upload', {
|
|
7137
|
+
method: 'POST',
|
|
7138
|
+
body: formData
|
|
7139
|
+
});
|
|
7140
|
+
if (resp.error) {
|
|
7141
|
+
_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__.Notification.emit(`Upload failed: ${resp.error.message}`, "error", {
|
|
7142
|
+
autoClose: 5 * 1000 // 5 seconds
|
|
7143
|
+
});
|
|
7144
|
+
console.error('Upload failed:', resp.error.message);
|
|
7145
|
+
throw new Error(resp.error.message);
|
|
7146
|
+
}
|
|
7147
|
+
else if (resp.data) {
|
|
7148
|
+
console.log('File uploaded successfully:', resp.data);
|
|
7149
|
+
// Notify the parent component that the file was uploaded,
|
|
7150
|
+
// which will update the context manager.
|
|
7151
|
+
onFileUploaded(file.name);
|
|
7152
|
+
}
|
|
7153
|
+
};
|
|
7154
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { style: { position: 'relative' } },
|
|
7155
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("input", { ref: fileInputRef, type: "file", style: { display: 'none' }, onChange: handleFileSelect, accept: "*" }),
|
|
7156
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_IconButton__WEBPACK_IMPORTED_MODULE_3__["default"], { icon: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_PaperClipIcon__WEBPACK_IMPORTED_MODULE_4__["default"], null), title: isUploading ? 'Uploading...' : 'Attach File', onClick: handleClick, className: 'icon-button-hover', disabled: isUploading, style: {
|
|
7157
|
+
opacity: isUploading ? 0.5 : 1,
|
|
7158
|
+
cursor: isUploading ? 'not-allowed' : 'pointer'
|
|
7159
|
+
} })));
|
|
7160
|
+
};
|
|
7161
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AttachFileButton);
|
|
7162
|
+
|
|
7163
|
+
|
|
7164
|
+
/***/ }),
|
|
7165
|
+
|
|
7166
|
+
/***/ "./lib/components/DatabaseButton.js":
|
|
7167
|
+
/*!******************************************!*\
|
|
7168
|
+
!*** ./lib/components/DatabaseButton.js ***!
|
|
7169
|
+
\******************************************/
|
|
7170
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
7171
|
+
|
|
7172
|
+
__webpack_require__.r(__webpack_exports__);
|
|
7173
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
7174
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
7175
|
+
/* harmony export */ });
|
|
7176
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
|
|
7177
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
7178
|
+
/* harmony import */ var _IconButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./IconButton */ "./lib/components/IconButton.js");
|
|
7179
|
+
/* harmony import */ var _icons_DatabaseOutlineIcon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/DatabaseOutlineIcon */ "./lib/icons/DatabaseOutlineIcon.js");
|
|
7180
|
+
/* harmony import */ var _Extensions_SettingsManager_SettingsManagerPlugin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Extensions/SettingsManager/SettingsManagerPlugin */ "./lib/Extensions/SettingsManager/SettingsManagerPlugin.js");
|
|
7181
|
+
/* harmony import */ var _restAPI_RestAPI__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../restAPI/RestAPI */ "./lib/restAPI/RestAPI.js");
|
|
7182
|
+
/*
|
|
7183
|
+
* Copyright (c) Saga Inc.
|
|
7184
|
+
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
7185
|
+
*/
|
|
7186
|
+
|
|
7187
|
+
|
|
7188
|
+
|
|
7189
|
+
|
|
7190
|
+
|
|
7191
|
+
const DatabaseButton = ({ app }) => {
|
|
7192
|
+
const [databaseConnections, setDatabaseConnections] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({});
|
|
7193
|
+
const [isIconVisible, setIsIconVisible] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);
|
|
7194
|
+
// Fetch database connections
|
|
7195
|
+
const fetchDatabaseConnections = async () => {
|
|
7196
|
+
const databaseConnections = await (0,_restAPI_RestAPI__WEBPACK_IMPORTED_MODULE_1__.getDatabaseConnections)();
|
|
7197
|
+
setDatabaseConnections(databaseConnections);
|
|
7198
|
+
};
|
|
7199
|
+
// Fetch database connections
|
|
7200
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
7201
|
+
void fetchDatabaseConnections();
|
|
7202
|
+
}, []);
|
|
7203
|
+
// Determine notification dot type based on connections
|
|
7204
|
+
const getNotificationDotType = () => {
|
|
7205
|
+
if (!isIconVisible) {
|
|
7206
|
+
return null;
|
|
7207
|
+
}
|
|
7208
|
+
return Object.keys(databaseConnections).length > 0 ? 'success' : 'warning';
|
|
7209
|
+
};
|
|
7210
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_IconButton__WEBPACK_IMPORTED_MODULE_2__["default"], { icon: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_DatabaseOutlineIcon__WEBPACK_IMPORTED_MODULE_3__["default"], null), title: 'Add Database', onClick: () => {
|
|
7211
|
+
void app.commands.execute(_Extensions_SettingsManager_SettingsManagerPlugin__WEBPACK_IMPORTED_MODULE_4__.COMMAND_MITO_AI_SETTINGS);
|
|
7212
|
+
setIsIconVisible(false);
|
|
7213
|
+
}, notificationDotType: getNotificationDotType(), className: 'icon-button-hover', style: {
|
|
7214
|
+
height: 'var(--chat-context-button-height)'
|
|
7215
|
+
} }));
|
|
7216
|
+
};
|
|
7217
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (DatabaseButton);
|
|
7218
|
+
|
|
7219
|
+
|
|
7220
|
+
/***/ }),
|
|
7221
|
+
|
|
7222
|
+
/***/ "./lib/components/DropdownMenu.js":
|
|
7223
|
+
/*!****************************************!*\
|
|
7224
|
+
!*** ./lib/components/DropdownMenu.js ***!
|
|
7225
|
+
\****************************************/
|
|
7226
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
7227
|
+
|
|
7228
|
+
__webpack_require__.r(__webpack_exports__);
|
|
7229
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
7230
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
7231
|
+
/* harmony export */ });
|
|
7232
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
|
|
7233
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
7234
|
+
/* harmony import */ var _style_DropdownMenu_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../style/DropdownMenu.css */ "./style/DropdownMenu.css");
|
|
7235
|
+
/*
|
|
7236
|
+
* Copyright (c) Saga Inc.
|
|
7237
|
+
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
7238
|
+
*/
|
|
7239
|
+
|
|
7240
|
+
|
|
7241
|
+
const DropdownMenu = ({ trigger, items, className = '', alignment = 'left', }) => {
|
|
7242
|
+
const [isOpen, setIsOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
7243
|
+
const dropdownRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
|
|
7244
|
+
// Close dropdown when clicking outside
|
|
7245
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
7246
|
+
const handleClickOutside = (event) => {
|
|
7247
|
+
if (dropdownRef.current &&
|
|
7248
|
+
!dropdownRef.current.contains(event.target)) {
|
|
7249
|
+
setIsOpen(false);
|
|
7250
|
+
}
|
|
7251
|
+
};
|
|
7252
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
7253
|
+
return () => document.removeEventListener('mousedown', handleClickOutside);
|
|
7254
|
+
}, []);
|
|
7255
|
+
// Handle the main click (primary action)
|
|
7256
|
+
const handlePrimaryClick = (onClick, disabled) => {
|
|
7257
|
+
if (disabled)
|
|
7258
|
+
return;
|
|
7259
|
+
onClick();
|
|
7260
|
+
setIsOpen(false);
|
|
7261
|
+
};
|
|
7262
|
+
// Choose the alignment class
|
|
7263
|
+
const alignmentClass = alignment === 'right' ? 'dropdown-menu-right' : 'dropdown-menu-left';
|
|
7264
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: `dropdown-container ${className}`, ref: dropdownRef },
|
|
7265
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { onClick: () => setIsOpen(!isOpen) }, trigger),
|
|
7266
|
+
isOpen && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: `dropdown-menu ${alignmentClass}` }, items.map((item, index) => (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { key: index, className: `dropdown-item-row ${item.disabled ? 'dropdown-item-disabled' : ''}` },
|
|
7267
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { className: "dropdown-item-main", onClick: () => handlePrimaryClick(item.onClick, item.disabled), disabled: item.disabled, title: item.disabled ? item.disabledTooltip : item.label },
|
|
7268
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { className: "dropdown-item-icon" }, item.primaryIcon && react__WEBPACK_IMPORTED_MODULE_0___default().createElement(item.primaryIcon)),
|
|
7269
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { className: "dropdown-item-label" }, item.label)),
|
|
7270
|
+
item.secondaryActions && item.secondaryActions.map((action, actionIndex) => (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { key: actionIndex, className: "dropdown-item-secondary", onClick: (e) => {
|
|
7271
|
+
e.stopPropagation(); // prevent triggering the main onClick
|
|
7272
|
+
if (!action.disabled) {
|
|
7273
|
+
action.onClick();
|
|
6854
7274
|
setIsOpen(false); // optional: close the dropdown after secondary action
|
|
6855
7275
|
}
|
|
6856
7276
|
}, disabled: action.disabled, title: action.tooltip, style: {
|
|
@@ -6888,8 +7308,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6888
7308
|
|
|
6889
7309
|
|
|
6890
7310
|
|
|
6891
|
-
const IconButton = ({ icon, onClick, title, style, notificationDotType = null, className }) => {
|
|
6892
|
-
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { className: (0,_utils_classNames__WEBPACK_IMPORTED_MODULE_3__.classNames)("icon-button", className), onClick: onClick, title: title, style: style },
|
|
7311
|
+
const IconButton = ({ icon, onClick, title, style, notificationDotType = null, className, disabled = false }) => {
|
|
7312
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { className: (0,_utils_classNames__WEBPACK_IMPORTED_MODULE_3__.classNames)("icon-button", className), onClick: onClick, title: title, style: style, disabled: disabled },
|
|
6893
7313
|
icon,
|
|
6894
7314
|
notificationDotType && react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: `notification-dot notification-dot-${notificationDotType}` })));
|
|
6895
7315
|
};
|
|
@@ -7715,6 +8135,31 @@ const NucleausIcon = ({ height = 20, width = 20, }) => (react__WEBPACK_IMPORTED_
|
|
|
7715
8135
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NucleausIcon);
|
|
7716
8136
|
|
|
7717
8137
|
|
|
8138
|
+
/***/ }),
|
|
8139
|
+
|
|
8140
|
+
/***/ "./lib/icons/PaperClipIcon.js":
|
|
8141
|
+
/*!************************************!*\
|
|
8142
|
+
!*** ./lib/icons/PaperClipIcon.js ***!
|
|
8143
|
+
\************************************/
|
|
8144
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
8145
|
+
|
|
8146
|
+
__webpack_require__.r(__webpack_exports__);
|
|
8147
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
8148
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
8149
|
+
/* harmony export */ });
|
|
8150
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
|
|
8151
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
8152
|
+
/*
|
|
8153
|
+
* Copyright (c) Saga Inc.
|
|
8154
|
+
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
8155
|
+
*/
|
|
8156
|
+
|
|
8157
|
+
const PaperClipIcon = () => (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("svg", { width: "14", height: "14", viewBox: "0 0 72 86", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
|
|
8158
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("g", { fill: "currentColor" },
|
|
8159
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("path", { d: "M70.363 44.59C68.6013 43.258 66.0935 43.6017 64.7575 45.3634L46.4995 69.4724C39.73 78.4099 27.0735 80.6284 17.6905 74.5154C12.71 71.2693 9.39359 66.2537 8.37409 60.3904C7.31939 54.3435 8.8819 48.0154 12.6632 43.0234L35.3312 13.0894C39.5773 7.48783 47.5812 6.37853 53.1902 10.6246C58.7879 14.8668 59.8894 22.8746 55.6472 28.4766L50.8425 34.8204L32.6475 58.8434C31.1709 60.7965 28.4366 61.3629 26.5577 60.109C25.5304 59.4215 24.8546 58.3863 24.6515 57.1832C24.4484 55.984 24.7413 54.7887 25.4757 53.8199L43.8707 29.5389C45.2027 27.7772 44.859 25.2694 43.0973 23.9334C41.3356 22.6014 38.8278 22.9452 37.4918 24.7069L19.0968 48.9879C17.0499 51.691 16.1984 55.1637 16.7648 58.5113C17.296 61.6597 18.964 64.4019 21.4914 66.316C21.6945 66.4722 21.9054 66.6207 22.1203 66.7652C27.3781 70.273 34.5073 69.0933 38.6323 64.1441C38.6948 64.0699 38.769 64.0113 38.8276 63.9332L39.0229 63.6714L62.0229 33.3044C68.9291 24.1833 67.1362 11.1484 58.0112 4.23843C48.8979 -2.66387 35.8632 -0.863167 28.9522 8.25793L6.2842 38.1919L5.88967 38.7115C5.8428 38.774 5.81545 38.8404 5.77248 38.9029C1.03418 45.5435 -0.895518 53.8209 0.491282 61.7619C1.77648 69.1252 5.68268 75.5239 11.5693 79.9849C12.1357 80.4146 12.7216 80.8247 13.3232 81.2154C26.2102 89.606 43.5812 86.567 52.8782 74.2974L71.1362 50.1924C72.4721 48.4307 72.1247 45.9221 70.363 44.59Z" }))));
|
|
8160
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PaperClipIcon);
|
|
8161
|
+
|
|
8162
|
+
|
|
7718
8163
|
/***/ }),
|
|
7719
8164
|
|
|
7720
8165
|
/***/ "./lib/icons/Pencil.js":
|
|
@@ -8193,7 +8638,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
8193
8638
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
8194
8639
|
/* harmony export */ acceptAndRunCellUpdate: () => (/* binding */ acceptAndRunCellUpdate),
|
|
8195
8640
|
/* harmony export */ acceptAndRunCode: () => (/* binding */ acceptAndRunCode),
|
|
8196
|
-
/* harmony export */ retryIfExecutionError: () => (/* binding */ retryIfExecutionError)
|
|
8641
|
+
/* harmony export */ retryIfExecutionError: () => (/* binding */ retryIfExecutionError),
|
|
8642
|
+
/* harmony export */ runAllCells: () => (/* binding */ runAllCells)
|
|
8197
8643
|
/* harmony export */ });
|
|
8198
8644
|
/* harmony import */ var _Extensions_ErrorMimeRenderer_errorUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Extensions/ErrorMimeRenderer/errorUtils */ "./lib/Extensions/ErrorMimeRenderer/errorUtils.js");
|
|
8199
8645
|
/* harmony import */ var _sleep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sleep */ "./lib/utils/sleep.js");
|
|
@@ -8249,12 +8695,14 @@ const acceptAndRunCode = async (app, notebookTracker, previewAICodeToActiveCell,
|
|
|
8249
8695
|
await (0,_sleep__WEBPACK_IMPORTED_MODULE_1__.sleep)(1000);
|
|
8250
8696
|
};
|
|
8251
8697
|
const retryIfExecutionError = async (notebookTracker, app, getDuplicateChatHistoryManager, addAIMessageFromResponseAndUpdateState, sendAgentSmartDebugMessage, previewAICodeToActiveCell, acceptAICode, shouldContinueAgentExecution, finalizeAgentStop, chatHistoryManagerRef) => {
|
|
8252
|
-
var _a, _b, _c
|
|
8698
|
+
var _a, _b, _c;
|
|
8253
8699
|
const cell = (_b = (_a = notebookTracker.currentWidget) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.activeCell;
|
|
8254
8700
|
// Note: If you update the max retries, update the message we display on each failure
|
|
8255
8701
|
// attempt to ensure we don't say "third attempt" over and over again.
|
|
8256
8702
|
const MAX_RETRIES = 3;
|
|
8257
8703
|
let attempts = 0;
|
|
8704
|
+
let runAllCellsAttempts = 0;
|
|
8705
|
+
const MAX_RUN_ALL_CELLS_ATTEMPTS = 2; // Only allow two run_all_cells attempt per error cycle
|
|
8258
8706
|
while ((0,_notebook__WEBPACK_IMPORTED_MODULE_0__.didCellExecutionError)(cell) && attempts < MAX_RETRIES) {
|
|
8259
8707
|
if (!shouldContinueAgentExecution.current) {
|
|
8260
8708
|
finalizeAgentStop();
|
|
@@ -8269,16 +8717,35 @@ const retryIfExecutionError = async (notebookTracker, app, getDuplicateChatHisto
|
|
|
8269
8717
|
const errorMessage = (0,_Extensions_ErrorMimeRenderer_errorUtils__WEBPACK_IMPORTED_MODULE_2__.getFullErrorMessageFromTraceback)(errorOutput.traceback);
|
|
8270
8718
|
await sendAgentSmartDebugMessage(errorMessage);
|
|
8271
8719
|
const aiDisplayOptimizedChatItem = chatHistoryManagerRef.current.getLastAIDisplayOptimizedChatItem();
|
|
8272
|
-
//
|
|
8273
|
-
|
|
8274
|
-
|
|
8275
|
-
// typescript knows what type it is.
|
|
8276
|
-
if (((_d = aiDisplayOptimizedChatItem === null || aiDisplayOptimizedChatItem === void 0 ? void 0 : aiDisplayOptimizedChatItem.agentResponse) === null || _d === void 0 ? void 0 : _d.type) !== 'cell_update' || ((_e = aiDisplayOptimizedChatItem === null || aiDisplayOptimizedChatItem === void 0 ? void 0 : aiDisplayOptimizedChatItem.agentResponse) === null || _e === void 0 ? void 0 : _e.cell_update) === undefined) {
|
|
8720
|
+
// Handle different response types from the agent when fixing errors
|
|
8721
|
+
const agentResponse = aiDisplayOptimizedChatItem === null || aiDisplayOptimizedChatItem === void 0 ? void 0 : aiDisplayOptimizedChatItem.agentResponse;
|
|
8722
|
+
if (!agentResponse) {
|
|
8277
8723
|
return 'failure';
|
|
8278
8724
|
}
|
|
8279
|
-
|
|
8280
|
-
|
|
8281
|
-
|
|
8725
|
+
if (agentResponse.type === 'cell_update') {
|
|
8726
|
+
const cellUpdate = agentResponse.cell_update;
|
|
8727
|
+
if (cellUpdate !== undefined && cellUpdate !== null) {
|
|
8728
|
+
await acceptAndRunCellUpdate(cellUpdate, notebookTracker, app, previewAICodeToActiveCell, acceptAICode);
|
|
8729
|
+
}
|
|
8730
|
+
}
|
|
8731
|
+
else if (agentResponse.type === 'run_all_cells') {
|
|
8732
|
+
// Prevent infinite loops by limiting run_all_cells attempts
|
|
8733
|
+
if (runAllCellsAttempts >= MAX_RUN_ALL_CELLS_ATTEMPTS) {
|
|
8734
|
+
console.log('Maximum run_all_cells attempts reached, treating as failure');
|
|
8735
|
+
return 'failure';
|
|
8736
|
+
}
|
|
8737
|
+
runAllCellsAttempts++;
|
|
8738
|
+
// Execute runAllCells to fix NameError issues
|
|
8739
|
+
const result = await runAllCells(app, notebookTracker);
|
|
8740
|
+
if (!result.success) {
|
|
8741
|
+
// If run_all_cells resulted in an error, we should continue with error handling
|
|
8742
|
+
// The error will be caught in the main loop
|
|
8743
|
+
console.log('Error after running all cells:', result.errorMessage);
|
|
8744
|
+
}
|
|
8745
|
+
}
|
|
8746
|
+
else {
|
|
8747
|
+
// Agent responded with an unexpected type for error fixing
|
|
8748
|
+
return 'failure';
|
|
8282
8749
|
}
|
|
8283
8750
|
attempts++;
|
|
8284
8751
|
// If this was the last attempt and it still failed
|
|
@@ -8288,6 +8755,37 @@ const retryIfExecutionError = async (notebookTracker, app, getDuplicateChatHisto
|
|
|
8288
8755
|
}
|
|
8289
8756
|
return 'success';
|
|
8290
8757
|
};
|
|
8758
|
+
const runAllCells = async (app, notebookTracker) => {
|
|
8759
|
+
var _a, _b;
|
|
8760
|
+
await app.commands.execute("notebook:run-all-cells");
|
|
8761
|
+
// Give the execution some time to complete and update variables
|
|
8762
|
+
// This ensures that the variable manager has time to update the state
|
|
8763
|
+
await (0,_sleep__WEBPACK_IMPORTED_MODULE_1__.sleep)(2000);
|
|
8764
|
+
// Check all cells for errors after execution
|
|
8765
|
+
const notebook = (_a = notebookTracker.currentWidget) === null || _a === void 0 ? void 0 : _a.content;
|
|
8766
|
+
if (!notebook) {
|
|
8767
|
+
return { success: false, errorMessage: "No active notebook found" };
|
|
8768
|
+
}
|
|
8769
|
+
// Iterate through all cells to find any with errors
|
|
8770
|
+
for (let i = 0; i < notebook.widgets.length; i++) {
|
|
8771
|
+
const cell = notebook.widgets[i];
|
|
8772
|
+
if (cell && cell.model.type === 'code') {
|
|
8773
|
+
const codeCell = cell;
|
|
8774
|
+
if ((0,_notebook__WEBPACK_IMPORTED_MODULE_0__.didCellExecutionError)(codeCell)) {
|
|
8775
|
+
const errorOutput = (_b = codeCell.model.outputs) === null || _b === void 0 ? void 0 : _b.toJSON().find(output => output.output_type === "error");
|
|
8776
|
+
if (errorOutput) {
|
|
8777
|
+
const errorMessage = (0,_Extensions_ErrorMimeRenderer_errorUtils__WEBPACK_IMPORTED_MODULE_2__.getFullErrorMessageFromTraceback)(errorOutput.traceback);
|
|
8778
|
+
return {
|
|
8779
|
+
success: false,
|
|
8780
|
+
errorMessage: errorMessage,
|
|
8781
|
+
errorCellId: codeCell.model.id
|
|
8782
|
+
};
|
|
8783
|
+
}
|
|
8784
|
+
}
|
|
8785
|
+
}
|
|
8786
|
+
}
|
|
8787
|
+
return { success: true };
|
|
8788
|
+
};
|
|
8291
8789
|
|
|
8292
8790
|
|
|
8293
8791
|
/***/ }),
|
|
@@ -10443,10 +10941,10 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
|
10443
10941
|
|
|
10444
10942
|
/***/ }),
|
|
10445
10943
|
|
|
10446
|
-
/***/ "./node_modules/css-loader/dist/cjs.js!./style/
|
|
10447
|
-
|
|
10448
|
-
!*** ./node_modules/css-loader/dist/cjs.js!./style/
|
|
10449
|
-
|
|
10944
|
+
/***/ "./node_modules/css-loader/dist/cjs.js!./style/AgentToolUIComponent.css":
|
|
10945
|
+
/*!******************************************************************************!*\
|
|
10946
|
+
!*** ./node_modules/css-loader/dist/cjs.js!./style/AgentToolUIComponent.css ***!
|
|
10947
|
+
\******************************************************************************/
|
|
10450
10948
|
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
10451
10949
|
|
|
10452
10950
|
__webpack_require__.r(__webpack_exports__);
|
|
@@ -10467,57 +10965,42 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
|
10467
10965
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
10468
10966
|
*/
|
|
10469
10967
|
|
|
10470
|
-
.
|
|
10471
|
-
color: var(--jp-ui-font-color2);
|
|
10968
|
+
.agent-tool-ui-container {
|
|
10472
10969
|
display: flex;
|
|
10473
|
-
|
|
10970
|
+
flex-direction: row;
|
|
10474
10971
|
align-items: center;
|
|
10475
|
-
|
|
10476
|
-
|
|
10477
|
-
|
|
10478
|
-
|
|
10479
|
-
border-radius: var(--chat-taskpane-item-border-radius);
|
|
10480
|
-
border: 1px solid var(--jp-cell-editor-border-color);
|
|
10481
|
-
cursor: default;
|
|
10972
|
+
justify-content: start;
|
|
10973
|
+
background-color: transparent;
|
|
10974
|
+
padding: 10px;
|
|
10975
|
+
color: var(--jp-ui-font-color2);
|
|
10482
10976
|
}
|
|
10483
10977
|
|
|
10484
|
-
.
|
|
10485
|
-
|
|
10486
|
-
|
|
10487
|
-
|
|
10488
|
-
background-color: var(--chat-background-color);
|
|
10489
|
-
padding: 2px 8px;
|
|
10490
|
-
border-radius: 4px;
|
|
10491
|
-
font-size: 12px;
|
|
10492
|
-
color: var(--jp-ui-font-color2);
|
|
10493
|
-
font-style: italic;
|
|
10978
|
+
.agent-tool-ui-container:not(.agent-tool-ui-error-fixup) {
|
|
10979
|
+
margin: 10px 0;
|
|
10980
|
+
border-radius: 5px;
|
|
10981
|
+
border: 1px solid var(--jp-cell-editor-border-color);
|
|
10494
10982
|
}
|
|
10495
10983
|
|
|
10496
|
-
.
|
|
10497
|
-
|
|
10498
|
-
align-items: flex-start;
|
|
10499
|
-
gap: 8px;
|
|
10500
|
-
color: var(--jp-ui-font-color2);
|
|
10501
|
-
font-size: 14px;
|
|
10502
|
-
line-height: 1.4;
|
|
10503
|
-
margin: 0;
|
|
10504
|
-
padding: 10px 10px 5px 10px;
|
|
10984
|
+
.agent-tool-ui-container:not(.agent-tool-ui-error-fixup) .agent-tool-ui-content {
|
|
10985
|
+
margin-left: 5px;
|
|
10505
10986
|
}
|
|
10506
10987
|
|
|
10507
|
-
.
|
|
10508
|
-
|
|
10509
|
-
|
|
10510
|
-
|
|
10988
|
+
.agent-tool-ui-content {
|
|
10989
|
+
display: flex;
|
|
10990
|
+
align-items: center;
|
|
10991
|
+
gap: 10px;
|
|
10992
|
+
}
|
|
10993
|
+
`, "",{"version":3,"sources":["webpack://./style/AgentToolUIComponent.css"],"names":[],"mappings":"AAAA;;;EAGE;;AAEF;IACI,aAAa;IACb,mBAAmB;IACnB,mBAAmB;IACnB,sBAAsB;IACtB,6BAA6B;IAC7B,aAAa;IACb,+BAA+B;AACnC;;AAEA;IACI,cAAc;IACd,kBAAkB;IAClB,oDAAoD;AACxD;;AAEA;IACI,gBAAgB;AACpB;;AAEA;IACI,aAAa;IACb,mBAAmB;IACnB,SAAS;AACb","sourcesContent":["/*\n * Copyright (c) Saga Inc.\n * Distributed under the terms of the GNU Affero General Public License v3.0 License.\n */\n\n.agent-tool-ui-container {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: start;\n background-color: transparent;\n padding: 10px;\n color: var(--jp-ui-font-color2);\n}\n\n.agent-tool-ui-container:not(.agent-tool-ui-error-fixup) {\n margin: 10px 0;\n border-radius: 5px;\n border: 1px solid var(--jp-cell-editor-border-color);\n}\n\n.agent-tool-ui-container:not(.agent-tool-ui-error-fixup) .agent-tool-ui-content {\n margin-left: 5px;\n}\n\n.agent-tool-ui-content {\n display: flex;\n align-items: center;\n gap: 10px;\n} \n"],"sourceRoot":""}]);
|
|
10511
10994
|
// Exports
|
|
10512
10995
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
10513
10996
|
|
|
10514
10997
|
|
|
10515
10998
|
/***/ }),
|
|
10516
10999
|
|
|
10517
|
-
/***/ "./node_modules/css-loader/dist/cjs.js!./style/
|
|
10518
|
-
|
|
10519
|
-
!*** ./node_modules/css-loader/dist/cjs.js!./style/
|
|
10520
|
-
|
|
11000
|
+
/***/ "./node_modules/css-loader/dist/cjs.js!./style/AlertBlock.css":
|
|
11001
|
+
/*!********************************************************************!*\
|
|
11002
|
+
!*** ./node_modules/css-loader/dist/cjs.js!./style/AlertBlock.css ***!
|
|
11003
|
+
\********************************************************************/
|
|
10521
11004
|
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
10522
11005
|
|
|
10523
11006
|
__webpack_require__.r(__webpack_exports__);
|
|
@@ -10538,9 +11021,745 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
|
10538
11021
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
10539
11022
|
*/
|
|
10540
11023
|
|
|
10541
|
-
|
|
10542
|
-
|
|
10543
|
-
|
|
11024
|
+
/* Base alert container styles */
|
|
11025
|
+
.chat-message-alert-container {
|
|
11026
|
+
display: flex;
|
|
11027
|
+
flex-direction: column;
|
|
11028
|
+
gap: 10px;
|
|
11029
|
+
border-radius: 5px;
|
|
11030
|
+
padding: 10px;
|
|
11031
|
+
border: 1px solid;
|
|
11032
|
+
}
|
|
11033
|
+
|
|
11034
|
+
/* Red variant for errors */
|
|
11035
|
+
.chat-message-alert-container.error {
|
|
11036
|
+
background-color: var(--red-300);
|
|
11037
|
+
border-color: var(--red-900);
|
|
11038
|
+
color: var(--red-900);
|
|
11039
|
+
}
|
|
11040
|
+
|
|
11041
|
+
/* Purple variant for upgrades/CTAs */
|
|
11042
|
+
.chat-message-alert-container.upgrade {
|
|
11043
|
+
background-color: var(--purple-300);
|
|
11044
|
+
color: var(--grey-900);
|
|
11045
|
+
}
|
|
11046
|
+
|
|
11047
|
+
.chat-message-alert a {
|
|
11048
|
+
color: var(--purple-700) !important;
|
|
11049
|
+
text-decoration: underline;
|
|
11050
|
+
}
|
|
11051
|
+
|
|
11052
|
+
/* Error message styles - red variant */
|
|
11053
|
+
.alert-error-message {
|
|
11054
|
+
font-size: 14px;
|
|
11055
|
+
font-weight: 600;
|
|
11056
|
+
line-height: 1.4;
|
|
11057
|
+
margin-bottom: 8px;
|
|
11058
|
+
}
|
|
11059
|
+
|
|
11060
|
+
.chat-message-alert-container.error .alert-error-message {
|
|
11061
|
+
color: var(--red-900);
|
|
11062
|
+
}
|
|
11063
|
+
|
|
11064
|
+
.alert-actions-header {
|
|
11065
|
+
margin-bottom: 12px;
|
|
11066
|
+
}
|
|
11067
|
+
|
|
11068
|
+
.alert-actions-title {
|
|
11069
|
+
font-weight: 500;
|
|
11070
|
+
margin: 0 0 8px 0;
|
|
11071
|
+
font-size: 13px;
|
|
11072
|
+
}
|
|
11073
|
+
|
|
11074
|
+
.chat-message-alert-container.error .alert-actions-title {
|
|
11075
|
+
color: var(--red-900);
|
|
11076
|
+
}
|
|
11077
|
+
|
|
11078
|
+
.alert-actions-list {
|
|
11079
|
+
margin: 0;
|
|
11080
|
+
padding-left: 16px;
|
|
11081
|
+
}
|
|
11082
|
+
|
|
11083
|
+
.chat-message-alert-container.error .alert-actions-list {
|
|
11084
|
+
color: var(--red-800);
|
|
11085
|
+
}
|
|
11086
|
+
|
|
11087
|
+
.chat-message-alert-container.upgrade .alert-actions-list {
|
|
11088
|
+
color: var(--purple-800);
|
|
11089
|
+
}
|
|
11090
|
+
|
|
11091
|
+
.alert-actions-list li {
|
|
11092
|
+
margin-bottom: 4px;
|
|
11093
|
+
font-size: 13px;
|
|
11094
|
+
line-height: 1.4;
|
|
11095
|
+
}
|
|
11096
|
+
|
|
11097
|
+
.alert-action-item {
|
|
11098
|
+
display: flex;
|
|
11099
|
+
align-items: flex-start;
|
|
11100
|
+
gap: 8px;
|
|
11101
|
+
padding: 8px 0;
|
|
11102
|
+
font-size: 13px;
|
|
11103
|
+
line-height: 1.4;
|
|
11104
|
+
}
|
|
11105
|
+
|
|
11106
|
+
.chat-message-alert-container.error .alert-action-item {
|
|
11107
|
+
color: var(--red-800);
|
|
11108
|
+
}
|
|
11109
|
+
|
|
11110
|
+
.chat-message-alert-container.upgrade .alert-action-item {
|
|
11111
|
+
color: var(--purple-800);
|
|
11112
|
+
}
|
|
11113
|
+
|
|
11114
|
+
.action-icon {
|
|
11115
|
+
font-size: 16px;
|
|
11116
|
+
flex-shrink: 0;
|
|
11117
|
+
margin-top: 1px;
|
|
11118
|
+
}
|
|
11119
|
+
|
|
11120
|
+
.details-toggle {
|
|
11121
|
+
display: inline-flex;
|
|
11122
|
+
align-items: center;
|
|
11123
|
+
}
|
|
11124
|
+
|
|
11125
|
+
.toggle-button {
|
|
11126
|
+
background: none;
|
|
11127
|
+
border: none;
|
|
11128
|
+
padding: 0;
|
|
11129
|
+
cursor: pointer;
|
|
11130
|
+
display: flex;
|
|
11131
|
+
align-items: center;
|
|
11132
|
+
gap: 4px;
|
|
11133
|
+
font-size: 12px;
|
|
11134
|
+
font-family: inherit;
|
|
11135
|
+
text-decoration: underline;
|
|
11136
|
+
}
|
|
11137
|
+
|
|
11138
|
+
.chat-message-alert-container.error .toggle-button {
|
|
11139
|
+
color: var(--red-900);
|
|
11140
|
+
}
|
|
11141
|
+
|
|
11142
|
+
.toggle-button:hover {
|
|
11143
|
+
text-decoration: none;
|
|
11144
|
+
}
|
|
11145
|
+
|
|
11146
|
+
.chat-message-alert-container.error .toggle-button:hover {
|
|
11147
|
+
color: var(--red-800);
|
|
11148
|
+
}
|
|
11149
|
+
|
|
11150
|
+
.chat-message-alert-container.upgrade .toggle-button:hover {
|
|
11151
|
+
color: var(--purple-800);
|
|
11152
|
+
}
|
|
11153
|
+
|
|
11154
|
+
.toggle-caret {
|
|
11155
|
+
font-size: 10px;
|
|
11156
|
+
transition: transform 0.2s ease;
|
|
11157
|
+
display: inline-block;
|
|
11158
|
+
text-decoration: none !important;
|
|
11159
|
+
}
|
|
11160
|
+
|
|
11161
|
+
.toggle-caret.open {
|
|
11162
|
+
transform: rotate(180deg);
|
|
11163
|
+
}
|
|
11164
|
+
|
|
11165
|
+
.details-content {
|
|
11166
|
+
margin-top: 8px;
|
|
11167
|
+
margin-left: 16px;
|
|
11168
|
+
padding: 8px;
|
|
11169
|
+
background-color: var(--grey-100);
|
|
11170
|
+
border-radius: 4px;
|
|
11171
|
+
animation: slideDown 0.2s ease-out;
|
|
11172
|
+
}
|
|
11173
|
+
|
|
11174
|
+
@keyframes slideDown {
|
|
11175
|
+
from {
|
|
11176
|
+
opacity: 0;
|
|
11177
|
+
transform: translateY(-4px);
|
|
11178
|
+
}
|
|
11179
|
+
to {
|
|
11180
|
+
opacity: 1;
|
|
11181
|
+
transform: translateY(0);
|
|
11182
|
+
}
|
|
11183
|
+
}
|
|
11184
|
+
|
|
11185
|
+
.secondary-option-link {
|
|
11186
|
+
color: var(--purple-700) !important;
|
|
11187
|
+
text-decoration: underline !important;
|
|
11188
|
+
}
|
|
11189
|
+
|
|
11190
|
+
.secondary-option-link:hover {
|
|
11191
|
+
color: var(--purple-600) !important;
|
|
11192
|
+
}
|
|
11193
|
+
`, "",{"version":3,"sources":["webpack://./style/AlertBlock.css"],"names":[],"mappings":"AAAA;;;EAGE;;AAEF,gCAAgC;AAChC;EACE,aAAa;EACb,sBAAsB;EACtB,SAAS;EACT,kBAAkB;EAClB,aAAa;EACb,iBAAiB;AACnB;;AAEA,2BAA2B;AAC3B;EACE,gCAAgC;EAChC,4BAA4B;EAC5B,qBAAqB;AACvB;;AAEA,qCAAqC;AACrC;EACE,mCAAmC;EACnC,sBAAsB;AACxB;;AAEA;EACE,mCAAmC;EACnC,0BAA0B;AAC5B;;AAEA,uCAAuC;AACvC;EACE,eAAe;EACf,gBAAgB;EAChB,gBAAgB;EAChB,kBAAkB;AACpB;;AAEA;EACE,qBAAqB;AACvB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;EAChB,iBAAiB;EACjB,eAAe;AACjB;;AAEA;EACE,qBAAqB;AACvB;;AAEA;EACE,SAAS;EACT,kBAAkB;AACpB;;AAEA;EACE,qBAAqB;AACvB;;AAEA;EACE,wBAAwB;AAC1B;;AAEA;EACE,kBAAkB;EAClB,eAAe;EACf,gBAAgB;AAClB;;AAEA;EACE,aAAa;EACb,uBAAuB;EACvB,QAAQ;EACR,cAAc;EACd,eAAe;EACf,gBAAgB;AAClB;;AAEA;EACE,qBAAqB;AACvB;;AAEA;EACE,wBAAwB;AAC1B;;AAEA;EACE,eAAe;EACf,cAAc;EACd,eAAe;AACjB;;AAEA;EACE,oBAAoB;EACpB,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;EAChB,YAAY;EACZ,UAAU;EACV,eAAe;EACf,aAAa;EACb,mBAAmB;EACnB,QAAQ;EACR,eAAe;EACf,oBAAoB;EACpB,0BAA0B;AAC5B;;AAEA;EACE,qBAAqB;AACvB;;AAEA;EACE,qBAAqB;AACvB;;AAEA;EACE,qBAAqB;AACvB;;AAEA;EACE,wBAAwB;AAC1B;;AAEA;EACE,eAAe;EACf,+BAA+B;EAC/B,qBAAqB;EACrB,gCAAgC;AAClC;;AAEA;EACE,yBAAyB;AAC3B;;AAEA;EACE,eAAe;EACf,iBAAiB;EACjB,YAAY;EACZ,iCAAiC;EACjC,kBAAkB;EAClB,kCAAkC;AACpC;;AAEA;EACE;IACE,UAAU;IACV,2BAA2B;EAC7B;EACA;IACE,UAAU;IACV,wBAAwB;EAC1B;AACF;;AAEA;IACI,mCAAmC;IACnC,qCAAqC;AACzC;;AAEA;IACI,mCAAmC;AACvC","sourcesContent":["/*\n * Copyright (c) Saga Inc.\n * Distributed under the terms of the GNU Affero General Public License v3.0 License.\n */\n\n/* Base alert container styles */\n.chat-message-alert-container {\n display: flex;\n flex-direction: column;\n gap: 10px;\n border-radius: 5px;\n padding: 10px;\n border: 1px solid;\n}\n\n/* Red variant for errors */\n.chat-message-alert-container.error {\n background-color: var(--red-300);\n border-color: var(--red-900);\n color: var(--red-900);\n}\n\n/* Purple variant for upgrades/CTAs */\n.chat-message-alert-container.upgrade {\n background-color: var(--purple-300);\n color: var(--grey-900);\n}\n\n.chat-message-alert a {\n color: var(--purple-700) !important;\n text-decoration: underline;\n}\n\n/* Error message styles - red variant */\n.alert-error-message {\n font-size: 14px;\n font-weight: 600;\n line-height: 1.4;\n margin-bottom: 8px;\n}\n\n.chat-message-alert-container.error .alert-error-message {\n color: var(--red-900);\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 font-size: 13px;\n}\n\n.chat-message-alert-container.error .alert-actions-title {\n color: var(--red-900);\n}\n\n.alert-actions-list {\n margin: 0;\n padding-left: 16px;\n}\n\n.chat-message-alert-container.error .alert-actions-list {\n color: var(--red-800);\n}\n\n.chat-message-alert-container.upgrade .alert-actions-list {\n color: var(--purple-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 font-size: 13px;\n line-height: 1.4;\n}\n\n.chat-message-alert-container.error .alert-action-item {\n color: var(--red-800);\n}\n\n.chat-message-alert-container.upgrade .alert-action-item {\n color: var(--purple-800);\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 font-size: 12px;\n font-family: inherit;\n text-decoration: underline;\n}\n\n.chat-message-alert-container.error .toggle-button {\n color: var(--red-900);\n}\n\n.toggle-button:hover {\n text-decoration: none;\n}\n\n.chat-message-alert-container.error .toggle-button:hover {\n color: var(--red-800);\n}\n\n.chat-message-alert-container.upgrade .toggle-button:hover {\n color: var(--purple-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}\n\n.secondary-option-link {\n color: var(--purple-700) !important;\n text-decoration: underline !important;\n}\n\n.secondary-option-link:hover {\n color: var(--purple-600) !important;\n}\n"],"sourceRoot":""}]);
|
|
11194
|
+
// Exports
|
|
11195
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
11196
|
+
|
|
11197
|
+
|
|
11198
|
+
/***/ }),
|
|
11199
|
+
|
|
11200
|
+
/***/ "./node_modules/css-loader/dist/cjs.js!./style/AssumptionTool.css":
|
|
11201
|
+
/*!************************************************************************!*\
|
|
11202
|
+
!*** ./node_modules/css-loader/dist/cjs.js!./style/AssumptionTool.css ***!
|
|
11203
|
+
\************************************************************************/
|
|
11204
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
11205
|
+
|
|
11206
|
+
__webpack_require__.r(__webpack_exports__);
|
|
11207
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
11208
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
11209
|
+
/* harmony export */ });
|
|
11210
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js");
|
|
11211
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
11212
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
|
|
11213
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
11214
|
+
// Imports
|
|
11215
|
+
|
|
11216
|
+
|
|
11217
|
+
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
|
|
11218
|
+
// Module
|
|
11219
|
+
___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
11220
|
+
* Copyright (c) Saga Inc.
|
|
11221
|
+
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
11222
|
+
*/
|
|
11223
|
+
|
|
11224
|
+
.assumption-tool-container {
|
|
11225
|
+
color: var(--jp-ui-font-color2);
|
|
11226
|
+
display: flex;
|
|
11227
|
+
justify-content: space-between;
|
|
11228
|
+
align-items: center;
|
|
11229
|
+
margin-top: 10px;
|
|
11230
|
+
margin-bottom: 10px;
|
|
11231
|
+
position: relative;
|
|
11232
|
+
padding: 8px var(--chat-taskpane-tool-call-horizontal-padding);
|
|
11233
|
+
border-radius: var(--chat-taskpane-item-border-radius);
|
|
11234
|
+
border: 1px solid var(--jp-cell-editor-border-color);
|
|
11235
|
+
cursor: default;
|
|
11236
|
+
}
|
|
11237
|
+
|
|
11238
|
+
.assumption-header-label {
|
|
11239
|
+
position: absolute;
|
|
11240
|
+
top: -10px;
|
|
11241
|
+
left: 12px;
|
|
11242
|
+
background-color: var(--chat-background-color);
|
|
11243
|
+
padding: 2px 8px;
|
|
11244
|
+
border-radius: 4px;
|
|
11245
|
+
font-size: 12px;
|
|
11246
|
+
color: var(--jp-ui-font-color2);
|
|
11247
|
+
font-style: italic;
|
|
11248
|
+
}
|
|
11249
|
+
|
|
11250
|
+
.assumption-content {
|
|
11251
|
+
display: flex;
|
|
11252
|
+
align-items: flex-start;
|
|
11253
|
+
gap: 8px;
|
|
11254
|
+
color: var(--jp-ui-font-color2);
|
|
11255
|
+
font-size: 14px;
|
|
11256
|
+
line-height: 1.4;
|
|
11257
|
+
margin: 0;
|
|
11258
|
+
padding: 10px 10px 5px 10px;
|
|
11259
|
+
}
|
|
11260
|
+
|
|
11261
|
+
.assumption-content ul {
|
|
11262
|
+
margin: 0;
|
|
11263
|
+
padding-left: 10px;
|
|
11264
|
+
}`, "",{"version":3,"sources":["webpack://./style/AssumptionTool.css"],"names":[],"mappings":"AAAA;;;EAGE;;AAEF;IACI,+BAA+B;IAC/B,aAAa;IACb,8BAA8B;IAC9B,mBAAmB;IACnB,gBAAgB;IAChB,mBAAmB;IACnB,kBAAkB;IAClB,8DAA8D;IAC9D,sDAAsD;IACtD,oDAAoD;IACpD,eAAe;AACnB;;AAEA;IACI,kBAAkB;IAClB,UAAU;IACV,UAAU;IACV,8CAA8C;IAC9C,gBAAgB;IAChB,kBAAkB;IAClB,eAAe;IACf,+BAA+B;IAC/B,kBAAkB;AACtB;;AAEA;IACI,aAAa;IACb,uBAAuB;IACvB,QAAQ;IACR,+BAA+B;IAC/B,eAAe;IACf,gBAAgB;IAChB,SAAS;IACT,2BAA2B;AAC/B;;AAEA;IACI,SAAS;IACT,kBAAkB;AACtB","sourcesContent":["/*\n * Copyright (c) Saga Inc.\n * Distributed under the terms of the GNU Affero General Public License v3.0 License.\n */\n\n.assumption-tool-container {\n color: var(--jp-ui-font-color2);\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 10px;\n margin-bottom: 10px;\n position: relative;\n padding: 8px var(--chat-taskpane-tool-call-horizontal-padding);\n border-radius: var(--chat-taskpane-item-border-radius);\n border: 1px solid var(--jp-cell-editor-border-color);\n cursor: default;\n}\n\n.assumption-header-label {\n position: absolute;\n top: -10px;\n left: 12px;\n background-color: var(--chat-background-color);\n padding: 2px 8px;\n border-radius: 4px;\n font-size: 12px;\n color: var(--jp-ui-font-color2);\n font-style: italic;\n}\n\n.assumption-content {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n color: var(--jp-ui-font-color2);\n font-size: 14px;\n line-height: 1.4;\n margin: 0;\n padding: 10px 10px 5px 10px;\n}\n\n.assumption-content ul {\n margin: 0;\n padding-left: 10px;\n}"],"sourceRoot":""}]);
|
|
11265
|
+
// Exports
|
|
11266
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
11267
|
+
|
|
11268
|
+
|
|
11269
|
+
/***/ }),
|
|
11270
|
+
|
|
11271
|
+
/***/ "./node_modules/css-loader/dist/cjs.js!./style/AuthPopup.css":
|
|
11272
|
+
/*!*******************************************************************!*\
|
|
11273
|
+
!*** ./node_modules/css-loader/dist/cjs.js!./style/AuthPopup.css ***!
|
|
11274
|
+
\*******************************************************************/
|
|
11275
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
11276
|
+
|
|
11277
|
+
__webpack_require__.r(__webpack_exports__);
|
|
11278
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
11279
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
11280
|
+
/* harmony export */ });
|
|
11281
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js");
|
|
11282
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
11283
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
|
|
11284
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
11285
|
+
// Imports
|
|
11286
|
+
|
|
11287
|
+
|
|
11288
|
+
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
|
|
11289
|
+
// Module
|
|
11290
|
+
___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
11291
|
+
* Copyright (c) Saga Inc.
|
|
11292
|
+
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
11293
|
+
*/
|
|
11294
|
+
|
|
11295
|
+
/* Auth popup specific styling to integrate AWS Amplify with Mito theme */
|
|
11296
|
+
.modal-content .amplify-authenticator {
|
|
11297
|
+
--amplify-colors-font-primary: var(--jp-ui-font-color1);
|
|
11298
|
+
--amplify-colors-font-secondary: var(--jp-ui-font-color2);
|
|
11299
|
+
--amplify-colors-background-primary: var(--jp-layout-color0);
|
|
11300
|
+
--amplify-colors-background-secondary: var(--jp-layout-color1);
|
|
11301
|
+
--amplify-colors-border-primary: var(--jp-border-color1);
|
|
11302
|
+
--amplify-colors-brand-primary-10: var(--purple-700);
|
|
11303
|
+
--amplify-colors-brand-primary-80: var(--purple-500);
|
|
11304
|
+
--amplify-colors-brand-primary-90: var(--purple-400);
|
|
11305
|
+
--amplify-colors-brand-primary-100: var(--purple-300);
|
|
11306
|
+
--amplify-radii-small: 4px;
|
|
11307
|
+
--amplify-radii-medium: 4px;
|
|
11308
|
+
--amplify-space-small: 8px;
|
|
11309
|
+
--amplify-space-medium: 12px;
|
|
11310
|
+
--amplify-space-large: 16px;
|
|
11311
|
+
--amplify-font-sizes-small: 14px;
|
|
11312
|
+
--amplify-font-sizes-medium: 14px;
|
|
11313
|
+
|
|
11314
|
+
/* Remove the blue top border on active tabs */
|
|
11315
|
+
--amplify-components-tabs-item-active-border-width: 0;
|
|
11316
|
+
--amplify-components-tabs-item-border-width: 0;
|
|
11317
|
+
|
|
11318
|
+
/* Ensure active tab bottom border uses purple */
|
|
11319
|
+
--amplify-components-tabs-item-active-border-color: var(--purple-500);
|
|
11320
|
+
--amplify-components-tabs-item-active-color: var(--purple-700);
|
|
11321
|
+
}
|
|
11322
|
+
|
|
11323
|
+
/* Ensure modal content has adequate width for auth form */
|
|
11324
|
+
.modal-content:has(.amplify-authenticator) {
|
|
11325
|
+
width: 480px;
|
|
11326
|
+
max-width: 90vw;
|
|
11327
|
+
min-width: 400px;
|
|
11328
|
+
}
|
|
11329
|
+
|
|
11330
|
+
/* Style the authenticator container */
|
|
11331
|
+
.modal-content .amplify-authenticator__modal {
|
|
11332
|
+
background: transparent !important;
|
|
11333
|
+
box-shadow: none !important;
|
|
11334
|
+
border: none !important;
|
|
11335
|
+
}
|
|
11336
|
+
|
|
11337
|
+
/* Constrain authenticator content within modal bounds */
|
|
11338
|
+
.modal-content .amplify-authenticator {
|
|
11339
|
+
width: 100% !important;
|
|
11340
|
+
max-width: 100% !important;
|
|
11341
|
+
overflow: hidden !important;
|
|
11342
|
+
}
|
|
11343
|
+
|
|
11344
|
+
/* Specifically target the data-amplify-container to prevent overflow */
|
|
11345
|
+
.modal-content [data-amplify-container] {
|
|
11346
|
+
width: 100% !important;
|
|
11347
|
+
max-width: 100% !important;
|
|
11348
|
+
overflow: hidden !important;
|
|
11349
|
+
box-sizing: border-box !important;
|
|
11350
|
+
}
|
|
11351
|
+
|
|
11352
|
+
|
|
11353
|
+
|
|
11354
|
+
/* Constrain the tabs container */
|
|
11355
|
+
.modal-content .amplify-tabs {
|
|
11356
|
+
width: 100% !important;
|
|
11357
|
+
max-width: 100% !important;
|
|
11358
|
+
overflow: hidden !important;
|
|
11359
|
+
}
|
|
11360
|
+
|
|
11361
|
+
/* Ensure form fields don't overflow */
|
|
11362
|
+
.modal-content .amplify-field,
|
|
11363
|
+
.modal-content .amplify-field__group {
|
|
11364
|
+
width: 100% !important;
|
|
11365
|
+
max-width: 100% !important;
|
|
11366
|
+
box-sizing: border-box !important;
|
|
11367
|
+
}
|
|
11368
|
+
|
|
11369
|
+
/* Align form elements with Mito styling */
|
|
11370
|
+
.modal-content .amplify-field__label {
|
|
11371
|
+
color: var(--jp-ui-font-color1) !important;
|
|
11372
|
+
font-weight: 500 !important;
|
|
11373
|
+
}
|
|
11374
|
+
|
|
11375
|
+
.modal-content .amplify-input,
|
|
11376
|
+
.modal-content .amplify-select {
|
|
11377
|
+
background: var(--jp-layout-color0) !important;
|
|
11378
|
+
border: 1px solid var(--jp-border-color1) !important;
|
|
11379
|
+
color: var(--jp-ui-font-color1) !important;
|
|
11380
|
+
border-radius: 4px !important;
|
|
11381
|
+
}
|
|
11382
|
+
|
|
11383
|
+
.modal-content .amplify-input:focus,
|
|
11384
|
+
.modal-content .amplify-select:focus {
|
|
11385
|
+
border-color: var(--purple-500) !important;
|
|
11386
|
+
box-shadow: 0 0 0 2px rgba(124, 58, 237, 0.1) !important;
|
|
11387
|
+
}
|
|
11388
|
+
|
|
11389
|
+
|
|
11390
|
+
|
|
11391
|
+
/* Style Amplify buttons to match Mito theme */
|
|
11392
|
+
.modal-content .amplify-button--primary {
|
|
11393
|
+
background-color: var(--purple-400) !important;
|
|
11394
|
+
color: var(--purple-700) !important;
|
|
11395
|
+
border: none !important;
|
|
11396
|
+
border-radius: 4px !important;
|
|
11397
|
+
font-weight: 500 !important;
|
|
11398
|
+
padding: 8px 16px !important;
|
|
11399
|
+
width: 100% !important;
|
|
11400
|
+
max-width: 100% !important;
|
|
11401
|
+
box-sizing: border-box !important;
|
|
11402
|
+
}
|
|
11403
|
+
|
|
11404
|
+
.modal-content .amplify-button--primary:hover {
|
|
11405
|
+
background-color: var(--purple-500) !important;
|
|
11406
|
+
}
|
|
11407
|
+
|
|
11408
|
+
.modal-content .amplify-button--link {
|
|
11409
|
+
color: var(--purple-600) !important;
|
|
11410
|
+
text-decoration: none !important;
|
|
11411
|
+
}
|
|
11412
|
+
|
|
11413
|
+
.modal-content .amplify-button--link:hover {
|
|
11414
|
+
color: var(--purple-700) !important;
|
|
11415
|
+
text-decoration: underline !important;
|
|
11416
|
+
}
|
|
11417
|
+
|
|
11418
|
+
/* Error and success message styling */
|
|
11419
|
+
.modal-content .amplify-alert--error {
|
|
11420
|
+
background-color: var(--red-300) !important;
|
|
11421
|
+
color: var(--red-900) !important;
|
|
11422
|
+
border: 1px solid var(--red-400) !important;
|
|
11423
|
+
border-radius: 4px !important;
|
|
11424
|
+
}
|
|
11425
|
+
|
|
11426
|
+
.modal-content .amplify-alert--info {
|
|
11427
|
+
background-color: var(--purple-300) !important;
|
|
11428
|
+
color: var(--purple-700) !important;
|
|
11429
|
+
border: 1px solid var(--purple-400) !important;
|
|
11430
|
+
border-radius: 4px !important;
|
|
11431
|
+
}
|
|
11432
|
+
|
|
11433
|
+
/* Tab styling for sign in/sign up tabs */
|
|
11434
|
+
.modal-content .amplify-tabs__item {
|
|
11435
|
+
color: var(--jp-ui-font-color2) !important;
|
|
11436
|
+
border-bottom: 2px solid transparent !important;
|
|
11437
|
+
}
|
|
11438
|
+
|
|
11439
|
+
.modal-content .amplify-tabs__item[data-state="active"] {
|
|
11440
|
+
color: var(--purple-700) !important;
|
|
11441
|
+
border-bottom-color: var(--purple-500) !important;
|
|
11442
|
+
}
|
|
11443
|
+
|
|
11444
|
+
/* Ensure inactive tabs don't have purple styling */
|
|
11445
|
+
.modal-content .amplify-tabs__item[data-state="inactive"] {
|
|
11446
|
+
color: var(--jp-ui-font-color2) !important;
|
|
11447
|
+
border-bottom: 2px solid transparent !important;
|
|
11448
|
+
}
|
|
11449
|
+
|
|
11450
|
+
|
|
11451
|
+
|
|
11452
|
+
.modal-content .amplify-tabs__item:hover {
|
|
11453
|
+
color: var(--jp-ui-font-color1) !important;
|
|
11454
|
+
}
|
|
11455
|
+
|
|
11456
|
+
/* Override any default blue tab styling from Amplify */
|
|
11457
|
+
.modal-content .amplify-tabs__list {
|
|
11458
|
+
border-bottom: 1px solid var(--jp-border-color1) !important;
|
|
11459
|
+
}
|
|
11460
|
+
|
|
11461
|
+
.modal-content .amplify-tabs__item[data-state="active"]:after,
|
|
11462
|
+
.modal-content .amplify-tabs__item[aria-selected="true"]:after {
|
|
11463
|
+
background-color: var(--purple-500) !important;
|
|
11464
|
+
border-color: var(--purple-500) !important;
|
|
11465
|
+
}
|
|
11466
|
+
|
|
11467
|
+
/* Override any Amplify default blue colors */
|
|
11468
|
+
.modal-content .amplify-tabs [data-amplify-color-mode] .amplify-tabs__item[data-state="active"] {
|
|
11469
|
+
color: var(--purple-700) !important;
|
|
11470
|
+
border-bottom-color: var(--purple-500) !important;
|
|
11471
|
+
}
|
|
11472
|
+
|
|
11473
|
+
.modal-content .amplify-tabs [data-amplify-color-mode] .amplify-tabs__item[aria-selected="true"] {
|
|
11474
|
+
color: var(--purple-700) !important;
|
|
11475
|
+
border-bottom-color: var(--purple-500) !important;
|
|
11476
|
+
}
|
|
11477
|
+
|
|
11478
|
+
/* Additional selectors to ensure default active state on initial load */
|
|
11479
|
+
.modal-content .amplify-tabs__item[aria-selected="true"] {
|
|
11480
|
+
color: var(--purple-700) !important;
|
|
11481
|
+
border-bottom: 2px solid var(--purple-500) !important;
|
|
11482
|
+
}
|
|
11483
|
+
|
|
11484
|
+
|
|
11485
|
+
|
|
11486
|
+
/* Loading spinner colors */
|
|
11487
|
+
.modal-content .amplify-loader {
|
|
11488
|
+
border-top-color: var(--purple-500) !important;
|
|
11489
|
+
}
|
|
11490
|
+
|
|
11491
|
+
/* Additional purple color overrides for any remaining blue elements */
|
|
11492
|
+
.modal-content .amplify-tabs__item[data-state="active"] *,
|
|
11493
|
+
.modal-content .amplify-tabs__item[aria-selected="true"] * {
|
|
11494
|
+
color: var(--purple-700) !important;
|
|
11495
|
+
}
|
|
11496
|
+
|
|
11497
|
+
/* Override focus states to use purple */
|
|
11498
|
+
.modal-content .amplify-tabs__item:focus,
|
|
11499
|
+
.modal-content .amplify-tabs__item:focus-visible {
|
|
11500
|
+
border-bottom-color: var(--purple-500) !important;
|
|
11501
|
+
outline-color: var(--purple-500) !important;
|
|
11502
|
+
}
|
|
11503
|
+
|
|
11504
|
+
/* Ensure any nested tab content uses purple theme */
|
|
11505
|
+
.modal-content [data-amplify-authenticator] [data-amplify-router] .amplify-tabs__item[data-state="active"] {
|
|
11506
|
+
color: var(--purple-700) !important;
|
|
11507
|
+
border-bottom-color: var(--purple-500) !important;
|
|
11508
|
+
}
|
|
11509
|
+
|
|
11510
|
+
/* Remove any top borders, outlines, or blue styling from tabs */
|
|
11511
|
+
.modal-content .amplify-tabs__item {
|
|
11512
|
+
border-top: none !important;
|
|
11513
|
+
border-left: none !important;
|
|
11514
|
+
border-right: none !important;
|
|
11515
|
+
outline: none !important;
|
|
11516
|
+
}
|
|
11517
|
+
|
|
11518
|
+
.modal-content .amplify-tabs__item[data-state="active"],
|
|
11519
|
+
.modal-content .amplify-tabs__item[aria-selected="true"] {
|
|
11520
|
+
border-top: none !important;
|
|
11521
|
+
border-left: none !important;
|
|
11522
|
+
border-right: none !important;
|
|
11523
|
+
outline: none !important;
|
|
11524
|
+
box-shadow: none !important;
|
|
11525
|
+
}
|
|
11526
|
+
|
|
11527
|
+
/* Remove any pseudo-element borders that might create blue lines */
|
|
11528
|
+
.modal-content .amplify-tabs__item:before,
|
|
11529
|
+
.modal-content .amplify-tabs__item:after,
|
|
11530
|
+
.modal-content .amplify-tabs__item[data-state="active"]:before,
|
|
11531
|
+
.modal-content .amplify-tabs__item[aria-selected="true"]:before {
|
|
11532
|
+
display: none !important;
|
|
11533
|
+
border: none !important;
|
|
11534
|
+
background: none !important;
|
|
11535
|
+
}
|
|
11536
|
+
|
|
11537
|
+
|
|
11538
|
+
|
|
11539
|
+
/* Additional containment rules for better layout */
|
|
11540
|
+
.modal-content .amplify-authenticator * {
|
|
11541
|
+
box-sizing: border-box !important;
|
|
11542
|
+
}
|
|
11543
|
+
|
|
11544
|
+
/* Prevent any Amplify containers from overflowing */
|
|
11545
|
+
.modal-content [data-amplify-authenticator],
|
|
11546
|
+
.modal-content [data-amplify-router],
|
|
11547
|
+
.modal-content [data-amplify-authenticator-signin],
|
|
11548
|
+
.modal-content [data-amplify-authenticator-signup] {
|
|
11549
|
+
width: 100% !important;
|
|
11550
|
+
max-width: 100% !important;
|
|
11551
|
+
overflow: hidden !important;
|
|
11552
|
+
box-sizing: border-box !important;
|
|
11553
|
+
}
|
|
11554
|
+
|
|
11555
|
+
/* Remove any default margins or padding that might cause overflow */
|
|
11556
|
+
.modal-content [data-amplify-container] * {
|
|
11557
|
+
max-width: 100% !important;
|
|
11558
|
+
}
|
|
11559
|
+
|
|
11560
|
+
/* Ensure modal content itself doesn't allow horizontal scroll */
|
|
11561
|
+
.modal-content:has(.amplify-authenticator) {
|
|
11562
|
+
overflow-x: hidden !important;
|
|
11563
|
+
}
|
|
11564
|
+
|
|
11565
|
+
/* Target main Amplify containers but not inputs */
|
|
11566
|
+
.modal-content div[data-amplify-container] {
|
|
11567
|
+
width: 100% !important;
|
|
11568
|
+
max-width: 100% !important;
|
|
11569
|
+
box-sizing: border-box !important;
|
|
11570
|
+
}
|
|
11571
|
+
|
|
11572
|
+
/* Ensure tab panels fit within bounds */
|
|
11573
|
+
.modal-content .amplify-tabs__panel {
|
|
11574
|
+
width: 100% !important;
|
|
11575
|
+
max-width: 100% !important;
|
|
11576
|
+
overflow: hidden !important;
|
|
11577
|
+
padding: 16px !important;
|
|
11578
|
+
}
|
|
11579
|
+
|
|
11580
|
+
/* Ensure tab list doesn't overflow */
|
|
11581
|
+
.modal-content .amplify-tabs__list {
|
|
11582
|
+
width: 100% !important;
|
|
11583
|
+
max-width: 100% !important;
|
|
11584
|
+
display: flex !important;
|
|
11585
|
+
justify-content: space-around !important;
|
|
11586
|
+
}
|
|
11587
|
+
|
|
11588
|
+
.modal-content .amplify-tabs__item {
|
|
11589
|
+
flex: 1 !important;
|
|
11590
|
+
text-align: center !important;
|
|
11591
|
+
max-width: 50% !important;
|
|
11592
|
+
}
|
|
11593
|
+
|
|
11594
|
+
/* Add this to your AuthPopup.css file */
|
|
11595
|
+
|
|
11596
|
+
/* Hide password requirements by default */
|
|
11597
|
+
.password-requirements {
|
|
11598
|
+
display: none;
|
|
11599
|
+
padding: 16px 20px;
|
|
11600
|
+
background-color: var(--jp-layout-color2);
|
|
11601
|
+
border-top: 1px solid var(--jp-border-color1);
|
|
11602
|
+
font-size: 13px;
|
|
11603
|
+
}
|
|
11604
|
+
|
|
11605
|
+
/* Show password requirements when sign-up form is present */
|
|
11606
|
+
.modal-content:has([data-amplify-authenticator-signup]) .password-requirements {
|
|
11607
|
+
display: block;
|
|
11608
|
+
}
|
|
11609
|
+
|
|
11610
|
+
/* Style the requirements content */
|
|
11611
|
+
.password-requirements p {
|
|
11612
|
+
margin: 0 0 8px 0;
|
|
11613
|
+
font-weight: bold;
|
|
11614
|
+
color: var(--jp-ui-font-color1);
|
|
11615
|
+
}
|
|
11616
|
+
|
|
11617
|
+
.password-requirements ul {
|
|
11618
|
+
margin: 0;
|
|
11619
|
+
padding-left: 20px;
|
|
11620
|
+
color: var(--jp-ui-font-color2);
|
|
11621
|
+
font-size: 12px;
|
|
11622
|
+
}
|
|
11623
|
+
|
|
11624
|
+
/* Success message styling */
|
|
11625
|
+
.auth-success-message {
|
|
11626
|
+
padding: 32px 24px;
|
|
11627
|
+
text-align: center;
|
|
11628
|
+
background: var(--jp-layout-color0);
|
|
11629
|
+
border-radius: 8px;
|
|
11630
|
+
}
|
|
11631
|
+
|
|
11632
|
+
.success-icon {
|
|
11633
|
+
margin-bottom: 20px;
|
|
11634
|
+
display: flex;
|
|
11635
|
+
justify-content: center;
|
|
11636
|
+
}
|
|
11637
|
+
|
|
11638
|
+
.success-title {
|
|
11639
|
+
color: var(--jp-ui-font-color1);
|
|
11640
|
+
font-size: 24px;
|
|
11641
|
+
font-weight: 600;
|
|
11642
|
+
margin: 0 0 12px 0;
|
|
11643
|
+
font-family: var(--jp-ui-font-family);
|
|
11644
|
+
}
|
|
11645
|
+
|
|
11646
|
+
.success-description {
|
|
11647
|
+
color: var(--jp-ui-font-color1);
|
|
11648
|
+
font-size: 16px;
|
|
11649
|
+
margin: 0 0 16px 0;
|
|
11650
|
+
font-family: var(--jp-ui-font-family);
|
|
11651
|
+
line-height: 1.5;
|
|
11652
|
+
}
|
|
11653
|
+
|
|
11654
|
+
.success-timer {
|
|
11655
|
+
color: var(--jp-ui-font-color2);
|
|
11656
|
+
font-size: 14px;
|
|
11657
|
+
margin: 0 0 24px 0;
|
|
11658
|
+
font-family: var(--jp-ui-font-family);
|
|
11659
|
+
font-style: italic;
|
|
11660
|
+
}
|
|
11661
|
+
|
|
11662
|
+
.success-actions {
|
|
11663
|
+
display: flex;
|
|
11664
|
+
justify-content: center;
|
|
11665
|
+
gap: 12px;
|
|
11666
|
+
}
|
|
11667
|
+
|
|
11668
|
+
/* Progress bar animation */
|
|
11669
|
+
@keyframes progressFill {
|
|
11670
|
+
from { width: 0%; }
|
|
11671
|
+
to { width: 100%; }
|
|
11672
|
+
}
|
|
11673
|
+
|
|
11674
|
+
/* Welcome message container styling */
|
|
11675
|
+
.welcome-message-container {
|
|
11676
|
+
border: 1px solid var(--jp-border-color1);
|
|
11677
|
+
border-radius: 8px;
|
|
11678
|
+
padding: 32px 24px;
|
|
11679
|
+
margin: 16px 0;
|
|
11680
|
+
background-color: var(--jp-layout-color0);
|
|
11681
|
+
text-align: center;
|
|
11682
|
+
}
|
|
11683
|
+
|
|
11684
|
+
/* Welcome message title */
|
|
11685
|
+
.welcome-message-title {
|
|
11686
|
+
color: var(--jp-ui-font-color1);
|
|
11687
|
+
font-size: 24px;
|
|
11688
|
+
font-weight: 600;
|
|
11689
|
+
margin: 0 0 12px 0;
|
|
11690
|
+
font-family: var(--jp-ui-font-family);
|
|
11691
|
+
}
|
|
11692
|
+
|
|
11693
|
+
/* Welcome message description */
|
|
11694
|
+
.welcome-message-description {
|
|
11695
|
+
color: var(--jp-ui-font-color1);
|
|
11696
|
+
font-size: 16px;
|
|
11697
|
+
margin: 0 0 16px 0;
|
|
11698
|
+
font-family: var(--jp-ui-font-family);
|
|
11699
|
+
line-height: 1.5;
|
|
11700
|
+
}
|
|
11701
|
+
|
|
11702
|
+
/* Progress bar container */
|
|
11703
|
+
.progress-bar-container {
|
|
11704
|
+
width: 100%;
|
|
11705
|
+
height: 4px;
|
|
11706
|
+
background-color: var(--jp-border-color1);
|
|
11707
|
+
border-radius: 2px;
|
|
11708
|
+
overflow: hidden;
|
|
11709
|
+
margin-top: 20px;
|
|
11710
|
+
margin-bottom: 12px;
|
|
11711
|
+
}
|
|
11712
|
+
|
|
11713
|
+
/* Progress bar fill with CSS animation */
|
|
11714
|
+
.progress-bar-fill {
|
|
11715
|
+
width: 0%;
|
|
11716
|
+
height: 100%;
|
|
11717
|
+
background-color: var(--purple-500);
|
|
11718
|
+
border-radius: 2px;
|
|
11719
|
+
animation: progressFill 3s linear forwards;
|
|
11720
|
+
}
|
|
11721
|
+
|
|
11722
|
+
/* Progress bar timer text */
|
|
11723
|
+
.progress-bar-timer {
|
|
11724
|
+
color: var(--jp-ui-font-color2);
|
|
11725
|
+
font-size: 14px;
|
|
11726
|
+
margin: 0;
|
|
11727
|
+
font-family: var(--jp-ui-font-family);
|
|
11728
|
+
font-style: italic;
|
|
11729
|
+
}`, "",{"version":3,"sources":["webpack://./style/AuthPopup.css"],"names":[],"mappings":"AAAA;;;EAGE;;AAEF,yEAAyE;AACzE;EACE,uDAAuD;EACvD,yDAAyD;EACzD,4DAA4D;EAC5D,8DAA8D;EAC9D,wDAAwD;EACxD,oDAAoD;EACpD,oDAAoD;EACpD,oDAAoD;EACpD,qDAAqD;EACrD,0BAA0B;EAC1B,2BAA2B;EAC3B,0BAA0B;EAC1B,4BAA4B;EAC5B,2BAA2B;EAC3B,gCAAgC;EAChC,iCAAiC;;EAEjC,8CAA8C;EAC9C,qDAAqD;EACrD,8CAA8C;;EAE9C,gDAAgD;EAChD,qEAAqE;EACrE,8DAA8D;AAChE;;AAEA,0DAA0D;AAC1D;EACE,YAAY;EACZ,eAAe;EACf,gBAAgB;AAClB;;AAEA,sCAAsC;AACtC;EACE,kCAAkC;EAClC,2BAA2B;EAC3B,uBAAuB;AACzB;;AAEA,wDAAwD;AACxD;EACE,sBAAsB;EACtB,0BAA0B;EAC1B,2BAA2B;AAC7B;;AAEA,uEAAuE;AACvE;EACE,sBAAsB;EACtB,0BAA0B;EAC1B,2BAA2B;EAC3B,iCAAiC;AACnC;;;;AAIA,iCAAiC;AACjC;EACE,sBAAsB;EACtB,0BAA0B;EAC1B,2BAA2B;AAC7B;;AAEA,sCAAsC;AACtC;;EAEE,sBAAsB;EACtB,0BAA0B;EAC1B,iCAAiC;AACnC;;AAEA,0CAA0C;AAC1C;EACE,0CAA0C;EAC1C,2BAA2B;AAC7B;;AAEA;;EAEE,8CAA8C;EAC9C,oDAAoD;EACpD,0CAA0C;EAC1C,6BAA6B;AAC/B;;AAEA;;EAEE,0CAA0C;EAC1C,wDAAwD;AAC1D;;;;AAIA,8CAA8C;AAC9C;EACE,8CAA8C;EAC9C,mCAAmC;EACnC,uBAAuB;EACvB,6BAA6B;EAC7B,2BAA2B;EAC3B,4BAA4B;EAC5B,sBAAsB;EACtB,0BAA0B;EAC1B,iCAAiC;AACnC;;AAEA;EACE,8CAA8C;AAChD;;AAEA;EACE,mCAAmC;EACnC,gCAAgC;AAClC;;AAEA;EACE,mCAAmC;EACnC,qCAAqC;AACvC;;AAEA,sCAAsC;AACtC;EACE,2CAA2C;EAC3C,gCAAgC;EAChC,2CAA2C;EAC3C,6BAA6B;AAC/B;;AAEA;EACE,8CAA8C;EAC9C,mCAAmC;EACnC,8CAA8C;EAC9C,6BAA6B;AAC/B;;AAEA,yCAAyC;AACzC;EACE,0CAA0C;EAC1C,+CAA+C;AACjD;;AAEA;EACE,mCAAmC;EACnC,iDAAiD;AACnD;;AAEA,mDAAmD;AACnD;EACE,0CAA0C;EAC1C,+CAA+C;AACjD;;;;AAIA;EACE,0CAA0C;AAC5C;;AAEA,uDAAuD;AACvD;EACE,2DAA2D;AAC7D;;AAEA;;EAEE,8CAA8C;EAC9C,0CAA0C;AAC5C;;AAEA,6CAA6C;AAC7C;EACE,mCAAmC;EACnC,iDAAiD;AACnD;;AAEA;EACE,mCAAmC;EACnC,iDAAiD;AACnD;;AAEA,wEAAwE;AACxE;EACE,mCAAmC;EACnC,qDAAqD;AACvD;;;;AAIA,2BAA2B;AAC3B;EACE,8CAA8C;AAChD;;AAEA,sEAAsE;AACtE;;EAEE,mCAAmC;AACrC;;AAEA,wCAAwC;AACxC;;EAEE,iDAAiD;EACjD,2CAA2C;AAC7C;;AAEA,oDAAoD;AACpD;EACE,mCAAmC;EACnC,iDAAiD;AACnD;;AAEA,gEAAgE;AAChE;EACE,2BAA2B;EAC3B,4BAA4B;EAC5B,6BAA6B;EAC7B,wBAAwB;AAC1B;;AAEA;;EAEE,2BAA2B;EAC3B,4BAA4B;EAC5B,6BAA6B;EAC7B,wBAAwB;EACxB,2BAA2B;AAC7B;;AAEA,mEAAmE;AACnE;;;;EAIE,wBAAwB;EACxB,uBAAuB;EACvB,2BAA2B;AAC7B;;;;AAIA,mDAAmD;AACnD;EACE,iCAAiC;AACnC;;AAEA,oDAAoD;AACpD;;;;EAIE,sBAAsB;EACtB,0BAA0B;EAC1B,2BAA2B;EAC3B,iCAAiC;AACnC;;AAEA,oEAAoE;AACpE;EACE,0BAA0B;AAC5B;;AAEA,gEAAgE;AAChE;EACE,6BAA6B;AAC/B;;AAEA,kDAAkD;AAClD;EACE,sBAAsB;EACtB,0BAA0B;EAC1B,iCAAiC;AACnC;;AAEA,wCAAwC;AACxC;EACE,sBAAsB;EACtB,0BAA0B;EAC1B,2BAA2B;EAC3B,wBAAwB;AAC1B;;AAEA,qCAAqC;AACrC;EACE,sBAAsB;EACtB,0BAA0B;EAC1B,wBAAwB;EACxB,wCAAwC;AAC1C;;AAEA;EACE,kBAAkB;EAClB,6BAA6B;EAC7B,yBAAyB;AAC3B;;AAEA,wCAAwC;;AAExC,0CAA0C;AAC1C;EACE,aAAa;EACb,kBAAkB;EAClB,yCAAyC;EACzC,6CAA6C;EAC7C,eAAe;AACjB;;AAEA,4DAA4D;AAC5D;EACE,cAAc;AAChB;;AAEA,mCAAmC;AACnC;EACE,iBAAiB;EACjB,iBAAiB;EACjB,+BAA+B;AACjC;;AAEA;EACE,SAAS;EACT,kBAAkB;EAClB,+BAA+B;EAC/B,eAAe;AACjB;;AAEA,4BAA4B;AAC5B;EACE,kBAAkB;EAClB,kBAAkB;EAClB,mCAAmC;EACnC,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;EACnB,aAAa;EACb,uBAAuB;AACzB;;AAEA;EACE,+BAA+B;EAC/B,eAAe;EACf,gBAAgB;EAChB,kBAAkB;EAClB,qCAAqC;AACvC;;AAEA;EACE,+BAA+B;EAC/B,eAAe;EACf,kBAAkB;EAClB,qCAAqC;EACrC,gBAAgB;AAClB;;AAEA;EACE,+BAA+B;EAC/B,eAAe;EACf,kBAAkB;EAClB,qCAAqC;EACrC,kBAAkB;AACpB;;AAEA;EACE,aAAa;EACb,uBAAuB;EACvB,SAAS;AACX;;AAEA,2BAA2B;AAC3B;EACE,OAAO,SAAS,EAAE;EAClB,KAAK,WAAW,EAAE;AACpB;;AAEA,sCAAsC;AACtC;EACE,yCAAyC;EACzC,kBAAkB;EAClB,kBAAkB;EAClB,cAAc;EACd,yCAAyC;EACzC,kBAAkB;AACpB;;AAEA,0BAA0B;AAC1B;EACE,+BAA+B;EAC/B,eAAe;EACf,gBAAgB;EAChB,kBAAkB;EAClB,qCAAqC;AACvC;;AAEA,gCAAgC;AAChC;EACE,+BAA+B;EAC/B,eAAe;EACf,kBAAkB;EAClB,qCAAqC;EACrC,gBAAgB;AAClB;;AAEA,2BAA2B;AAC3B;EACE,WAAW;EACX,WAAW;EACX,yCAAyC;EACzC,kBAAkB;EAClB,gBAAgB;EAChB,gBAAgB;EAChB,mBAAmB;AACrB;;AAEA,yCAAyC;AACzC;EACE,SAAS;EACT,YAAY;EACZ,mCAAmC;EACnC,kBAAkB;EAClB,0CAA0C;AAC5C;;AAEA,4BAA4B;AAC5B;EACE,+BAA+B;EAC/B,eAAe;EACf,SAAS;EACT,qCAAqC;EACrC,kBAAkB;AACpB","sourcesContent":["/*\n * Copyright (c) Saga Inc.\n * Distributed under the terms of the GNU Affero General Public License v3.0 License.\n */\n\n/* Auth popup specific styling to integrate AWS Amplify with Mito theme */\n.modal-content .amplify-authenticator {\n --amplify-colors-font-primary: var(--jp-ui-font-color1);\n --amplify-colors-font-secondary: var(--jp-ui-font-color2);\n --amplify-colors-background-primary: var(--jp-layout-color0);\n --amplify-colors-background-secondary: var(--jp-layout-color1);\n --amplify-colors-border-primary: var(--jp-border-color1);\n --amplify-colors-brand-primary-10: var(--purple-700);\n --amplify-colors-brand-primary-80: var(--purple-500);\n --amplify-colors-brand-primary-90: var(--purple-400);\n --amplify-colors-brand-primary-100: var(--purple-300);\n --amplify-radii-small: 4px;\n --amplify-radii-medium: 4px;\n --amplify-space-small: 8px;\n --amplify-space-medium: 12px;\n --amplify-space-large: 16px;\n --amplify-font-sizes-small: 14px;\n --amplify-font-sizes-medium: 14px;\n \n /* Remove the blue top border on active tabs */\n --amplify-components-tabs-item-active-border-width: 0;\n --amplify-components-tabs-item-border-width: 0;\n \n /* Ensure active tab bottom border uses purple */\n --amplify-components-tabs-item-active-border-color: var(--purple-500);\n --amplify-components-tabs-item-active-color: var(--purple-700);\n}\n\n/* Ensure modal content has adequate width for auth form */\n.modal-content:has(.amplify-authenticator) {\n width: 480px;\n max-width: 90vw;\n min-width: 400px;\n}\n\n/* Style the authenticator container */\n.modal-content .amplify-authenticator__modal {\n background: transparent !important;\n box-shadow: none !important;\n border: none !important;\n}\n\n/* Constrain authenticator content within modal bounds */\n.modal-content .amplify-authenticator {\n width: 100% !important;\n max-width: 100% !important;\n overflow: hidden !important;\n}\n\n/* Specifically target the data-amplify-container to prevent overflow */\n.modal-content [data-amplify-container] {\n width: 100% !important;\n max-width: 100% !important;\n overflow: hidden !important;\n box-sizing: border-box !important;\n}\n\n\n\n/* Constrain the tabs container */\n.modal-content .amplify-tabs {\n width: 100% !important;\n max-width: 100% !important;\n overflow: hidden !important;\n}\n\n/* Ensure form fields don't overflow */\n.modal-content .amplify-field,\n.modal-content .amplify-field__group {\n width: 100% !important;\n max-width: 100% !important;\n box-sizing: border-box !important;\n}\n\n/* Align form elements with Mito styling */\n.modal-content .amplify-field__label {\n color: var(--jp-ui-font-color1) !important;\n font-weight: 500 !important;\n}\n\n.modal-content .amplify-input,\n.modal-content .amplify-select {\n background: var(--jp-layout-color0) !important;\n border: 1px solid var(--jp-border-color1) !important;\n color: var(--jp-ui-font-color1) !important;\n border-radius: 4px !important;\n}\n\n.modal-content .amplify-input:focus,\n.modal-content .amplify-select:focus {\n border-color: var(--purple-500) !important;\n box-shadow: 0 0 0 2px rgba(124, 58, 237, 0.1) !important;\n}\n\n\n\n/* Style Amplify buttons to match Mito theme */\n.modal-content .amplify-button--primary {\n background-color: var(--purple-400) !important;\n color: var(--purple-700) !important;\n border: none !important;\n border-radius: 4px !important;\n font-weight: 500 !important;\n padding: 8px 16px !important;\n width: 100% !important;\n max-width: 100% !important;\n box-sizing: border-box !important;\n}\n\n.modal-content .amplify-button--primary:hover {\n background-color: var(--purple-500) !important;\n}\n\n.modal-content .amplify-button--link {\n color: var(--purple-600) !important;\n text-decoration: none !important;\n}\n\n.modal-content .amplify-button--link:hover {\n color: var(--purple-700) !important;\n text-decoration: underline !important;\n}\n\n/* Error and success message styling */\n.modal-content .amplify-alert--error {\n background-color: var(--red-300) !important;\n color: var(--red-900) !important;\n border: 1px solid var(--red-400) !important;\n border-radius: 4px !important;\n}\n\n.modal-content .amplify-alert--info {\n background-color: var(--purple-300) !important;\n color: var(--purple-700) !important;\n border: 1px solid var(--purple-400) !important;\n border-radius: 4px !important;\n}\n\n/* Tab styling for sign in/sign up tabs */\n.modal-content .amplify-tabs__item {\n color: var(--jp-ui-font-color2) !important;\n border-bottom: 2px solid transparent !important;\n}\n\n.modal-content .amplify-tabs__item[data-state=\"active\"] {\n color: var(--purple-700) !important;\n border-bottom-color: var(--purple-500) !important;\n}\n\n/* Ensure inactive tabs don't have purple styling */\n.modal-content .amplify-tabs__item[data-state=\"inactive\"] {\n color: var(--jp-ui-font-color2) !important;\n border-bottom: 2px solid transparent !important;\n}\n\n\n\n.modal-content .amplify-tabs__item:hover {\n color: var(--jp-ui-font-color1) !important;\n}\n\n/* Override any default blue tab styling from Amplify */\n.modal-content .amplify-tabs__list {\n border-bottom: 1px solid var(--jp-border-color1) !important;\n}\n\n.modal-content .amplify-tabs__item[data-state=\"active\"]:after,\n.modal-content .amplify-tabs__item[aria-selected=\"true\"]:after {\n background-color: var(--purple-500) !important;\n border-color: var(--purple-500) !important;\n}\n\n/* Override any Amplify default blue colors */\n.modal-content .amplify-tabs [data-amplify-color-mode] .amplify-tabs__item[data-state=\"active\"] {\n color: var(--purple-700) !important;\n border-bottom-color: var(--purple-500) !important;\n}\n\n.modal-content .amplify-tabs [data-amplify-color-mode] .amplify-tabs__item[aria-selected=\"true\"] {\n color: var(--purple-700) !important;\n border-bottom-color: var(--purple-500) !important;\n}\n\n/* Additional selectors to ensure default active state on initial load */\n.modal-content .amplify-tabs__item[aria-selected=\"true\"] {\n color: var(--purple-700) !important;\n border-bottom: 2px solid var(--purple-500) !important;\n}\n\n\n\n/* Loading spinner colors */\n.modal-content .amplify-loader {\n border-top-color: var(--purple-500) !important;\n}\n\n/* Additional purple color overrides for any remaining blue elements */\n.modal-content .amplify-tabs__item[data-state=\"active\"] *,\n.modal-content .amplify-tabs__item[aria-selected=\"true\"] * {\n color: var(--purple-700) !important;\n}\n\n/* Override focus states to use purple */\n.modal-content .amplify-tabs__item:focus,\n.modal-content .amplify-tabs__item:focus-visible {\n border-bottom-color: var(--purple-500) !important;\n outline-color: var(--purple-500) !important;\n}\n\n/* Ensure any nested tab content uses purple theme */\n.modal-content [data-amplify-authenticator] [data-amplify-router] .amplify-tabs__item[data-state=\"active\"] {\n color: var(--purple-700) !important;\n border-bottom-color: var(--purple-500) !important;\n}\n\n/* Remove any top borders, outlines, or blue styling from tabs */\n.modal-content .amplify-tabs__item {\n border-top: none !important;\n border-left: none !important;\n border-right: none !important;\n outline: none !important;\n}\n\n.modal-content .amplify-tabs__item[data-state=\"active\"],\n.modal-content .amplify-tabs__item[aria-selected=\"true\"] {\n border-top: none !important;\n border-left: none !important;\n border-right: none !important;\n outline: none !important;\n box-shadow: none !important;\n}\n\n/* Remove any pseudo-element borders that might create blue lines */\n.modal-content .amplify-tabs__item:before,\n.modal-content .amplify-tabs__item:after,\n.modal-content .amplify-tabs__item[data-state=\"active\"]:before,\n.modal-content .amplify-tabs__item[aria-selected=\"true\"]:before {\n display: none !important;\n border: none !important;\n background: none !important;\n}\n\n\n\n/* Additional containment rules for better layout */\n.modal-content .amplify-authenticator * {\n box-sizing: border-box !important;\n}\n\n/* Prevent any Amplify containers from overflowing */\n.modal-content [data-amplify-authenticator],\n.modal-content [data-amplify-router],\n.modal-content [data-amplify-authenticator-signin],\n.modal-content [data-amplify-authenticator-signup] {\n width: 100% !important;\n max-width: 100% !important;\n overflow: hidden !important;\n box-sizing: border-box !important;\n}\n\n/* Remove any default margins or padding that might cause overflow */\n.modal-content [data-amplify-container] * {\n max-width: 100% !important;\n}\n\n/* Ensure modal content itself doesn't allow horizontal scroll */\n.modal-content:has(.amplify-authenticator) {\n overflow-x: hidden !important;\n}\n\n/* Target main Amplify containers but not inputs */\n.modal-content div[data-amplify-container] {\n width: 100% !important;\n max-width: 100% !important;\n box-sizing: border-box !important;\n}\n\n/* Ensure tab panels fit within bounds */\n.modal-content .amplify-tabs__panel {\n width: 100% !important;\n max-width: 100% !important;\n overflow: hidden !important;\n padding: 16px !important;\n}\n\n/* Ensure tab list doesn't overflow */\n.modal-content .amplify-tabs__list {\n width: 100% !important;\n max-width: 100% !important;\n display: flex !important;\n justify-content: space-around !important;\n}\n\n.modal-content .amplify-tabs__item {\n flex: 1 !important;\n text-align: center !important;\n max-width: 50% !important;\n}\n\n/* Add this to your AuthPopup.css file */\n\n/* Hide password requirements by default */\n.password-requirements {\n display: none;\n padding: 16px 20px;\n background-color: var(--jp-layout-color2);\n border-top: 1px solid var(--jp-border-color1);\n font-size: 13px;\n}\n\n/* Show password requirements when sign-up form is present */\n.modal-content:has([data-amplify-authenticator-signup]) .password-requirements {\n display: block;\n}\n\n/* Style the requirements content */\n.password-requirements p {\n margin: 0 0 8px 0;\n font-weight: bold;\n color: var(--jp-ui-font-color1);\n}\n\n.password-requirements ul {\n margin: 0;\n padding-left: 20px;\n color: var(--jp-ui-font-color2);\n font-size: 12px;\n}\n\n/* Success message styling */\n.auth-success-message {\n padding: 32px 24px;\n text-align: center;\n background: var(--jp-layout-color0);\n border-radius: 8px;\n}\n\n.success-icon {\n margin-bottom: 20px;\n display: flex;\n justify-content: center;\n}\n\n.success-title {\n color: var(--jp-ui-font-color1);\n font-size: 24px;\n font-weight: 600;\n margin: 0 0 12px 0;\n font-family: var(--jp-ui-font-family);\n}\n\n.success-description {\n color: var(--jp-ui-font-color1);\n font-size: 16px;\n margin: 0 0 16px 0;\n font-family: var(--jp-ui-font-family);\n line-height: 1.5;\n}\n\n.success-timer {\n color: var(--jp-ui-font-color2);\n font-size: 14px;\n margin: 0 0 24px 0;\n font-family: var(--jp-ui-font-family);\n font-style: italic;\n}\n\n.success-actions {\n display: flex;\n justify-content: center;\n gap: 12px;\n}\n\n/* Progress bar animation */\n@keyframes progressFill {\n from { width: 0%; }\n to { width: 100%; }\n}\n\n/* Welcome message container styling */\n.welcome-message-container {\n border: 1px solid var(--jp-border-color1);\n border-radius: 8px;\n padding: 32px 24px;\n margin: 16px 0;\n background-color: var(--jp-layout-color0);\n text-align: center;\n}\n\n/* Welcome message title */\n.welcome-message-title {\n color: var(--jp-ui-font-color1);\n font-size: 24px;\n font-weight: 600;\n margin: 0 0 12px 0;\n font-family: var(--jp-ui-font-family);\n}\n\n/* Welcome message description */\n.welcome-message-description {\n color: var(--jp-ui-font-color1);\n font-size: 16px;\n margin: 0 0 16px 0;\n font-family: var(--jp-ui-font-family);\n line-height: 1.5;\n}\n\n/* Progress bar container */\n.progress-bar-container {\n width: 100%;\n height: 4px;\n background-color: var(--jp-border-color1);\n border-radius: 2px;\n overflow: hidden;\n margin-top: 20px;\n margin-bottom: 12px;\n}\n\n/* Progress bar fill with CSS animation */\n.progress-bar-fill {\n width: 0%;\n height: 100%;\n background-color: var(--purple-500);\n border-radius: 2px;\n animation: progressFill 3s linear forwards;\n}\n\n/* Progress bar timer text */\n.progress-bar-timer {\n color: var(--jp-ui-font-color2);\n font-size: 14px;\n margin: 0;\n font-family: var(--jp-ui-font-family);\n font-style: italic;\n}"],"sourceRoot":""}]);
|
|
11730
|
+
// Exports
|
|
11731
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
11732
|
+
|
|
11733
|
+
|
|
11734
|
+
/***/ }),
|
|
11735
|
+
|
|
11736
|
+
/***/ "./node_modules/css-loader/dist/cjs.js!./style/CTACarousel.css":
|
|
11737
|
+
/*!*********************************************************************!*\
|
|
11738
|
+
!*** ./node_modules/css-loader/dist/cjs.js!./style/CTACarousel.css ***!
|
|
11739
|
+
\*********************************************************************/
|
|
11740
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
11741
|
+
|
|
11742
|
+
__webpack_require__.r(__webpack_exports__);
|
|
11743
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
11744
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
11745
|
+
/* harmony export */ });
|
|
11746
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js");
|
|
11747
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
11748
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
|
|
11749
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
11750
|
+
// Imports
|
|
11751
|
+
|
|
11752
|
+
|
|
11753
|
+
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
|
|
11754
|
+
// Module
|
|
11755
|
+
___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
11756
|
+
* Copyright (c) Saga Inc.
|
|
11757
|
+
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
11758
|
+
*/
|
|
11759
|
+
|
|
11760
|
+
.cta-carousel {
|
|
11761
|
+
width: 100%;
|
|
11762
|
+
}
|
|
10544
11763
|
|
|
10545
11764
|
.cta-carousel-container {
|
|
10546
11765
|
display: flex;
|
|
@@ -10970,172 +12189,54 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
|
10970
12189
|
border-right: 1px solid var(--jp-border-color1);
|
|
10971
12190
|
}
|
|
10972
12191
|
|
|
10973
|
-
/* Remove the individual button radius styles since we're handling it at the container level */
|
|
10974
|
-
.message-action-buttons button:first-child,
|
|
10975
|
-
.message-action-buttons button:last-child {
|
|
10976
|
-
border-radius: 0;
|
|
10977
|
-
}
|
|
10978
|
-
|
|
10979
|
-
/* Standalone edit button */
|
|
10980
|
-
.message-start-editing-button {
|
|
10981
|
-
position: relative;
|
|
10982
|
-
padding: 4px;
|
|
10983
|
-
border-radius: 4px;
|
|
10984
|
-
}
|
|
10985
|
-
|
|
10986
|
-
/* SVG icon color */
|
|
10987
|
-
.message-action-buttons button svg {
|
|
10988
|
-
color: var(--jp-content-font-color1);
|
|
10989
|
-
}
|
|
10990
|
-
|
|
10991
|
-
/* Hover states */
|
|
10992
|
-
.message-action-buttons button:hover,
|
|
10993
|
-
.message-start-editing-button:hover {
|
|
10994
|
-
background-color: var(--jp-layout-color4);
|
|
10995
|
-
}
|
|
10996
|
-
|
|
10997
|
-
/* Show buttons on message hover */
|
|
10998
|
-
.message:hover .message-action-buttons button,
|
|
10999
|
-
.message:hover .message-start-editing-button {
|
|
11000
|
-
opacity: 1;
|
|
11001
|
-
}
|
|
11002
|
-
|
|
11003
|
-
.message-edit-buttons {
|
|
11004
|
-
display: flex;
|
|
11005
|
-
gap: 8px;
|
|
11006
|
-
padding: 5px;
|
|
11007
|
-
}
|
|
11008
|
-
|
|
11009
|
-
.message-edit-buttons button {
|
|
11010
|
-
padding: 4px 12px;
|
|
11011
|
-
border-radius: 4px;
|
|
11012
|
-
background-color: var(--jp-layout-color1);
|
|
11013
|
-
color: var(--jp-content-font-color1);
|
|
11014
|
-
border: 1px solid var(--jp-border-color1);
|
|
11015
|
-
cursor: pointer;
|
|
11016
|
-
}
|
|
11017
|
-
|
|
11018
|
-
.message-edit-buttons button:hover {
|
|
11019
|
-
background-color: var(--jp-layout-color2);
|
|
11020
|
-
}
|
|
11021
|
-
|
|
11022
|
-
.chat-message-alert-container {
|
|
11023
|
-
display: flex;
|
|
11024
|
-
flex-direction: column;
|
|
11025
|
-
gap: 10px;
|
|
11026
|
-
background-color: var(--red-300);
|
|
11027
|
-
border-radius: 5px;
|
|
11028
|
-
padding: 10px;
|
|
11029
|
-
border: 1px solid var(--red-900);
|
|
11030
|
-
color: var(--red-900);
|
|
11031
|
-
}
|
|
11032
|
-
|
|
11033
|
-
.chat-message-alert a {
|
|
11034
|
-
color: var(--purple-700);
|
|
11035
|
-
text-decoration: underline;
|
|
11036
|
-
}
|
|
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;
|
|
12192
|
+
/* Remove the individual button radius styles since we're handling it at the container level */
|
|
12193
|
+
.message-action-buttons button:first-child,
|
|
12194
|
+
.message-action-buttons button:last-child {
|
|
12195
|
+
border-radius: 0;
|
|
11084
12196
|
}
|
|
11085
12197
|
|
|
11086
|
-
|
|
11087
|
-
|
|
11088
|
-
|
|
12198
|
+
/* Standalone edit button */
|
|
12199
|
+
.message-start-editing-button {
|
|
12200
|
+
position: relative;
|
|
12201
|
+
padding: 4px;
|
|
12202
|
+
border-radius: 4px;
|
|
11089
12203
|
}
|
|
11090
12204
|
|
|
11091
|
-
|
|
11092
|
-
|
|
11093
|
-
|
|
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;
|
|
12205
|
+
/* SVG icon color */
|
|
12206
|
+
.message-action-buttons button svg {
|
|
12207
|
+
color: var(--jp-content-font-color1);
|
|
11103
12208
|
}
|
|
11104
12209
|
|
|
11105
|
-
|
|
11106
|
-
|
|
12210
|
+
/* Hover states */
|
|
12211
|
+
.message-action-buttons button:hover,
|
|
12212
|
+
.message-start-editing-button:hover {
|
|
12213
|
+
background-color: var(--jp-layout-color4);
|
|
11107
12214
|
}
|
|
11108
12215
|
|
|
11109
|
-
|
|
11110
|
-
|
|
11111
|
-
|
|
11112
|
-
|
|
11113
|
-
text-decoration: none !important;
|
|
12216
|
+
/* Show buttons on message hover */
|
|
12217
|
+
.message:hover .message-action-buttons button,
|
|
12218
|
+
.message:hover .message-start-editing-button {
|
|
12219
|
+
opacity: 1;
|
|
11114
12220
|
}
|
|
11115
12221
|
|
|
11116
|
-
.
|
|
11117
|
-
|
|
12222
|
+
.message-edit-buttons {
|
|
12223
|
+
display: flex;
|
|
12224
|
+
gap: 8px;
|
|
12225
|
+
padding: 5px;
|
|
11118
12226
|
}
|
|
11119
12227
|
|
|
11120
|
-
.
|
|
11121
|
-
|
|
11122
|
-
margin-left: 16px;
|
|
11123
|
-
padding: 8px;
|
|
11124
|
-
background-color: var(--grey-100);
|
|
12228
|
+
.message-edit-buttons button {
|
|
12229
|
+
padding: 4px 12px;
|
|
11125
12230
|
border-radius: 4px;
|
|
11126
|
-
|
|
12231
|
+
background-color: var(--jp-layout-color1);
|
|
12232
|
+
color: var(--jp-content-font-color1);
|
|
12233
|
+
border: 1px solid var(--jp-border-color1);
|
|
12234
|
+
cursor: pointer;
|
|
11127
12235
|
}
|
|
11128
12236
|
|
|
11129
|
-
|
|
11130
|
-
|
|
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":"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,aAAa;EACb,sBAAsB;EACtB,SAAS;EACT,gCAAgC;EAChC,kBAAkB;EAClB,aAAa;EACb,gCAAgC;EAChC,qBAAqB;AACvB;;AAEA;EACE,wBAAwB;EACxB,0BAA0B;AAC5B;;AAEA,yCAAyC;AACzC;EACE,eAAe;EACf,gBAAgB;EAChB,gBAAgB;EAChB,qBAAqB;EACrB,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;EAChB,iBAAiB;EACjB,qBAAqB;EACrB,eAAe;AACjB;;AAEA;EACE,SAAS;EACT,kBAAkB;EAClB,qBAAqB;AACvB;;AAEA;EACE,kBAAkB;EAClB,eAAe;EACf,gBAAgB;AAClB;;AAEA;EACE,aAAa;EACb,uBAAuB;EACvB,QAAQ;EACR,cAAc;EACd,qBAAqB;EACrB,eAAe;EACf,gBAAgB;AAClB;;AAEA;EACE,eAAe;EACf,cAAc;EACd,eAAe;AACjB;;AAEA;EACE,oBAAoB;EACpB,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;EAChB,YAAY;EACZ,UAAU;EACV,eAAe;EACf,aAAa;EACb,mBAAmB;EACnB,QAAQ;EACR,qBAAqB;EACrB,eAAe;EACf,oBAAoB;EACpB,0BAA0B;AAC5B;;AAEA;EACE,qBAAqB;AACvB;;AAEA;EACE,eAAe;EACf,+BAA+B;EAC/B,qBAAqB;EACrB,gCAAgC;AAClC;;AAEA;EACE,yBAAyB;AAC3B;;AAEA;EACE,eAAe;EACf,iBAAiB;EACjB,YAAY;EACZ,iCAAiC;EACjC,kBAAkB;EAClB,kCAAkC;AACpC;;AAEA;EACE;IACE,UAAU;IACV,2BAA2B;EAC7B;EACA;IACE,UAAU;IACV,wBAAwB;EAC1B;AACF","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":""}]);
|
|
12237
|
+
.message-edit-buttons button:hover {
|
|
12238
|
+
background-color: var(--jp-layout-color2);
|
|
12239
|
+
}`, "",{"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","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}"],"sourceRoot":""}]);
|
|
11139
12240
|
// Exports
|
|
11140
12241
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
11141
12242
|
|
|
@@ -12243,55 +13344,6 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
|
12243
13344
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
12244
13345
|
|
|
12245
13346
|
|
|
12246
|
-
/***/ }),
|
|
12247
|
-
|
|
12248
|
-
/***/ "./node_modules/css-loader/dist/cjs.js!./style/GetCellOutputToolUI.css":
|
|
12249
|
-
/*!*****************************************************************************!*\
|
|
12250
|
-
!*** ./node_modules/css-loader/dist/cjs.js!./style/GetCellOutputToolUI.css ***!
|
|
12251
|
-
\*****************************************************************************/
|
|
12252
|
-
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
12253
|
-
|
|
12254
|
-
__webpack_require__.r(__webpack_exports__);
|
|
12255
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
12256
|
-
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
12257
|
-
/* harmony export */ });
|
|
12258
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/sourceMaps.js */ "./node_modules/css-loader/dist/runtime/sourceMaps.js");
|
|
12259
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
12260
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");
|
|
12261
|
-
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
12262
|
-
// Imports
|
|
12263
|
-
|
|
12264
|
-
|
|
12265
|
-
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
|
|
12266
|
-
// Module
|
|
12267
|
-
___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
12268
|
-
* Copyright (c) Saga Inc.
|
|
12269
|
-
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
12270
|
-
*/
|
|
12271
|
-
|
|
12272
|
-
.get-cell-output-container {
|
|
12273
|
-
display: flex;
|
|
12274
|
-
flex-direction: row;
|
|
12275
|
-
align-items: center;
|
|
12276
|
-
justify-content: start;
|
|
12277
|
-
background-color: transparent;
|
|
12278
|
-
padding: 10px;
|
|
12279
|
-
border-radius: 5px;
|
|
12280
|
-
border: 1px solid var(--jp-cell-editor-border-color);
|
|
12281
|
-
margin: 10px 0;
|
|
12282
|
-
color: var(--jp-ui-font-color2);
|
|
12283
|
-
}
|
|
12284
|
-
|
|
12285
|
-
.get-cell-output-content {
|
|
12286
|
-
display: flex;
|
|
12287
|
-
align-items: center;
|
|
12288
|
-
gap: 10px;
|
|
12289
|
-
margin-left: 5px;
|
|
12290
|
-
} `, "",{"version":3,"sources":["webpack://./style/GetCellOutputToolUI.css"],"names":[],"mappings":"AAAA;;;EAGE;;AAEF;IACI,aAAa;IACb,mBAAmB;IACnB,mBAAmB;IACnB,sBAAsB;IACtB,6BAA6B;IAC7B,aAAa;IACb,kBAAkB;IAClB,oDAAoD;IACpD,cAAc;IACd,+BAA+B;AACnC;;AAEA;IACI,aAAa;IACb,mBAAmB;IACnB,SAAS;IACT,gBAAgB;AACpB","sourcesContent":["/*\n * Copyright (c) Saga Inc.\n * Distributed under the terms of the GNU Affero General Public License v3.0 License.\n */\n\n.get-cell-output-container {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: start;\n background-color: transparent;\n padding: 10px;\n border-radius: 5px;\n border: 1px solid var(--jp-cell-editor-border-color);\n margin: 10px 0;\n color: var(--jp-ui-font-color2);\n}\n\n.get-cell-output-content {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-left: 5px;\n} "],"sourceRoot":""}]);
|
|
12291
|
-
// Exports
|
|
12292
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
12293
|
-
|
|
12294
|
-
|
|
12295
13347
|
/***/ }),
|
|
12296
13348
|
|
|
12297
13349
|
/***/ "./node_modules/css-loader/dist/cjs.js!./style/IconButton.css":
|
|
@@ -13148,15 +14200,19 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
|
13148
14200
|
white-space: pre !important;
|
|
13149
14201
|
}
|
|
13150
14202
|
|
|
13151
|
-
.code-block-python-code .jp-RenderedHTMLCommon
|
|
14203
|
+
.code-block-python-code .jp-RenderedHTMLCommon {
|
|
14204
|
+
/* Remove default Jupyter padding */
|
|
14205
|
+
padding-right: 0px !important;
|
|
14206
|
+
}
|
|
14207
|
+
|
|
14208
|
+
.code-block-python-code .jp-RenderedHTMLCommon>*:last-child {
|
|
13152
14209
|
/*
|
|
13153
14210
|
Remove the default Jupyter ending margin
|
|
13154
14211
|
so that the rendered code is flush with the bottom
|
|
13155
14212
|
of the CodeMessagePart
|
|
13156
14213
|
*/
|
|
13157
14214
|
margin-bottom: 0px;
|
|
13158
|
-
}
|
|
13159
|
-
`, "",{"version":3,"sources":["webpack://./style/PythonCode.css"],"names":[],"mappings":"AAAA;;;EAGE;;AAEF;EACE,YAAY;EACZ,YAAY;EACZ,WAAW;EACX,oBAAoB;EACpB,wBAAwB;EACxB,0BAA0B;EAC1B,gBAAgB;AAClB;;AAEA;EACE,2BAA2B;AAC7B;;AAEA;EACE;;;;KAIG;EACH,kBAAkB;AACpB","sourcesContent":["/*\n * Copyright (c) Saga Inc.\n * Distributed under the terms of the GNU Affero General Public License v3.0 License.\n */\n\n.code-block-python-code pre {\n flex-grow: 1;\n height: 100%;\n width: 100%;\n margin: 0 !important;\n padding: 10px !important;\n font-size: 12px !important;\n overflow-x: auto;\n}\n\n.code-block-python-code code {\n white-space: pre !important;\n}\n\n.code-block-python-code .jp-RenderedHTMLCommon > *:last-child {\n /* \n Remove the default Jupyter ending margin \n so that the rendered code is flush with the bottom\n of the CodeMessagePart\n */\n margin-bottom: 0px;\n}\n"],"sourceRoot":""}]);
|
|
14215
|
+
}`, "",{"version":3,"sources":["webpack://./style/PythonCode.css"],"names":[],"mappings":"AAAA;;;EAGE;;AAEF;EACE,YAAY;EACZ,YAAY;EACZ,WAAW;EACX,oBAAoB;EACpB,wBAAwB;EACxB,0BAA0B;EAC1B,gBAAgB;AAClB;;AAEA;EACE,2BAA2B;AAC7B;;AAEA;EACE,mCAAmC;EACnC,6BAA6B;AAC/B;;AAEA;EACE;;;;KAIG;EACH,kBAAkB;AACpB","sourcesContent":["/*\n * Copyright (c) Saga Inc.\n * Distributed under the terms of the GNU Affero General Public License v3.0 License.\n */\n\n.code-block-python-code pre {\n flex-grow: 1;\n height: 100%;\n width: 100%;\n margin: 0 !important;\n padding: 10px !important;\n font-size: 12px !important;\n overflow-x: auto;\n}\n\n.code-block-python-code code {\n white-space: pre !important;\n}\n\n.code-block-python-code .jp-RenderedHTMLCommon {\n /* Remove default Jupyter padding */\n padding-right: 0px !important;\n}\n\n.code-block-python-code .jp-RenderedHTMLCommon>*:last-child {\n /* \n Remove the default Jupyter ending margin \n so that the rendered code is flush with the bottom\n of the CodeMessagePart\n */\n margin-bottom: 0px;\n}"],"sourceRoot":""}]);
|
|
13160
14216
|
// Exports
|
|
13161
14217
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
13162
14218
|
|
|
@@ -13821,472 +14877,63 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
|
13821
14877
|
color: var(--green-900) !important;
|
|
13822
14878
|
}
|
|
13823
14879
|
|
|
13824
|
-
.button-green:hover {
|
|
13825
|
-
background-color: var(--green-500);
|
|
13826
|
-
}
|
|
13827
|
-
|
|
13828
|
-
.button-red {
|
|
13829
|
-
background-color: var(--red-400);
|
|
13830
|
-
color: var(--red-900) !important;
|
|
13831
|
-
}
|
|
13832
|
-
|
|
13833
|
-
.button-red:hover {
|
|
13834
|
-
background-color: var(--red-500);
|
|
13835
|
-
}
|
|
13836
|
-
|
|
13837
|
-
.button-gray {
|
|
13838
|
-
background-color: var(--jp-layout-color2);
|
|
13839
|
-
color: var(--jp-content-font-color1) !important;
|
|
13840
|
-
}
|
|
13841
|
-
|
|
13842
|
-
.button-gray:hover {
|
|
13843
|
-
background-color: var(--jp-layout-color3);
|
|
13844
|
-
}
|
|
13845
|
-
|
|
13846
|
-
.button-purple {
|
|
13847
|
-
background-color: var(--purple-300);
|
|
13848
|
-
color: var(--purple-700) !important;
|
|
13849
|
-
}
|
|
13850
|
-
|
|
13851
|
-
.button-purple:hover {
|
|
13852
|
-
background-color: var(--purple-400);
|
|
13853
|
-
}
|
|
13854
|
-
|
|
13855
|
-
.button-width-block {
|
|
13856
|
-
width: 100%;
|
|
13857
|
-
}
|
|
13858
|
-
|
|
13859
|
-
.button-width-fit-contents {
|
|
13860
|
-
width: fit-content;
|
|
13861
|
-
}
|
|
13862
|
-
|
|
13863
|
-
.button-small {
|
|
13864
|
-
height: 20px;
|
|
13865
|
-
font-size: 12px;
|
|
13866
|
-
padding: 2px 5px;
|
|
13867
|
-
}
|
|
13868
|
-
`, "",{"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,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,WAAW;AACb;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,YAAY;EACZ,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-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-width-block {\n width: 100%;\n}\n\n.button-width-fit-contents {\n width: fit-content;\n}\n\n.button-small {\n height: 20px;\n font-size: 12px;\n padding: 2px 5px;\n}\n"],"sourceRoot":""}]);
|
|
13869
|
-
// Exports
|
|
13870
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
13871
|
-
|
|
13872
|
-
|
|
13873
|
-
/***/ }),
|
|
13874
|
-
|
|
13875
|
-
/***/ "./node_modules/css-loader/dist/runtime/api.js":
|
|
13876
|
-
/*!*****************************************************!*\
|
|
13877
|
-
!*** ./node_modules/css-loader/dist/runtime/api.js ***!
|
|
13878
|
-
\*****************************************************/
|
|
13879
|
-
/***/ ((module) => {
|
|
13880
|
-
|
|
13881
|
-
|
|
13882
|
-
|
|
13883
|
-
/*
|
|
13884
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
13885
|
-
Author Tobias Koppers @sokra
|
|
13886
|
-
*/
|
|
13887
|
-
module.exports = function (cssWithMappingToString) {
|
|
13888
|
-
var list = [];
|
|
13889
|
-
|
|
13890
|
-
// return the list of modules as css string
|
|
13891
|
-
list.toString = function toString() {
|
|
13892
|
-
return this.map(function (item) {
|
|
13893
|
-
var content = "";
|
|
13894
|
-
var needLayer = typeof item[5] !== "undefined";
|
|
13895
|
-
if (item[4]) {
|
|
13896
|
-
content += "@supports (".concat(item[4], ") {");
|
|
13897
|
-
}
|
|
13898
|
-
if (item[2]) {
|
|
13899
|
-
content += "@media ".concat(item[2], " {");
|
|
13900
|
-
}
|
|
13901
|
-
if (needLayer) {
|
|
13902
|
-
content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {");
|
|
13903
|
-
}
|
|
13904
|
-
content += cssWithMappingToString(item);
|
|
13905
|
-
if (needLayer) {
|
|
13906
|
-
content += "}";
|
|
13907
|
-
}
|
|
13908
|
-
if (item[2]) {
|
|
13909
|
-
content += "}";
|
|
13910
|
-
}
|
|
13911
|
-
if (item[4]) {
|
|
13912
|
-
content += "}";
|
|
13913
|
-
}
|
|
13914
|
-
return content;
|
|
13915
|
-
}).join("");
|
|
13916
|
-
};
|
|
13917
|
-
|
|
13918
|
-
// import a list of modules into the list
|
|
13919
|
-
list.i = function i(modules, media, dedupe, supports, layer) {
|
|
13920
|
-
if (typeof modules === "string") {
|
|
13921
|
-
modules = [[null, modules, undefined]];
|
|
13922
|
-
}
|
|
13923
|
-
var alreadyImportedModules = {};
|
|
13924
|
-
if (dedupe) {
|
|
13925
|
-
for (var k = 0; k < this.length; k++) {
|
|
13926
|
-
var id = this[k][0];
|
|
13927
|
-
if (id != null) {
|
|
13928
|
-
alreadyImportedModules[id] = true;
|
|
13929
|
-
}
|
|
13930
|
-
}
|
|
13931
|
-
}
|
|
13932
|
-
for (var _k = 0; _k < modules.length; _k++) {
|
|
13933
|
-
var item = [].concat(modules[_k]);
|
|
13934
|
-
if (dedupe && alreadyImportedModules[item[0]]) {
|
|
13935
|
-
continue;
|
|
13936
|
-
}
|
|
13937
|
-
if (typeof layer !== "undefined") {
|
|
13938
|
-
if (typeof item[5] === "undefined") {
|
|
13939
|
-
item[5] = layer;
|
|
13940
|
-
} else {
|
|
13941
|
-
item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}");
|
|
13942
|
-
item[5] = layer;
|
|
13943
|
-
}
|
|
13944
|
-
}
|
|
13945
|
-
if (media) {
|
|
13946
|
-
if (!item[2]) {
|
|
13947
|
-
item[2] = media;
|
|
13948
|
-
} else {
|
|
13949
|
-
item[1] = "@media ".concat(item[2], " {").concat(item[1], "}");
|
|
13950
|
-
item[2] = media;
|
|
13951
|
-
}
|
|
13952
|
-
}
|
|
13953
|
-
if (supports) {
|
|
13954
|
-
if (!item[4]) {
|
|
13955
|
-
item[4] = "".concat(supports);
|
|
13956
|
-
} else {
|
|
13957
|
-
item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}");
|
|
13958
|
-
item[4] = supports;
|
|
13959
|
-
}
|
|
13960
|
-
}
|
|
13961
|
-
list.push(item);
|
|
13962
|
-
}
|
|
13963
|
-
};
|
|
13964
|
-
return list;
|
|
13965
|
-
};
|
|
13966
|
-
|
|
13967
|
-
/***/ }),
|
|
13968
|
-
|
|
13969
|
-
/***/ "./node_modules/css-loader/dist/runtime/sourceMaps.js":
|
|
13970
|
-
/*!************************************************************!*\
|
|
13971
|
-
!*** ./node_modules/css-loader/dist/runtime/sourceMaps.js ***!
|
|
13972
|
-
\************************************************************/
|
|
13973
|
-
/***/ ((module) => {
|
|
13974
|
-
|
|
13975
|
-
|
|
13976
|
-
|
|
13977
|
-
module.exports = function (item) {
|
|
13978
|
-
var content = item[1];
|
|
13979
|
-
var cssMapping = item[3];
|
|
13980
|
-
if (!cssMapping) {
|
|
13981
|
-
return content;
|
|
13982
|
-
}
|
|
13983
|
-
if (typeof btoa === "function") {
|
|
13984
|
-
var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));
|
|
13985
|
-
var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64);
|
|
13986
|
-
var sourceMapping = "/*# ".concat(data, " */");
|
|
13987
|
-
return [content].concat([sourceMapping]).join("\n");
|
|
13988
|
-
}
|
|
13989
|
-
return [content].join("\n");
|
|
13990
|
-
};
|
|
13991
|
-
|
|
13992
|
-
/***/ }),
|
|
13993
|
-
|
|
13994
|
-
/***/ "./node_modules/react-dom/client.js":
|
|
13995
|
-
/*!******************************************!*\
|
|
13996
|
-
!*** ./node_modules/react-dom/client.js ***!
|
|
13997
|
-
\******************************************/
|
|
13998
|
-
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
13999
|
-
|
|
14000
|
-
|
|
14001
|
-
|
|
14002
|
-
var m = __webpack_require__(/*! react-dom */ "webpack/sharing/consume/default/react-dom");
|
|
14003
|
-
if (false) {} else {
|
|
14004
|
-
var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
|
|
14005
|
-
exports.createRoot = function(c, o) {
|
|
14006
|
-
i.usingClientEntryPoint = true;
|
|
14007
|
-
try {
|
|
14008
|
-
return m.createRoot(c, o);
|
|
14009
|
-
} finally {
|
|
14010
|
-
i.usingClientEntryPoint = false;
|
|
14011
|
-
}
|
|
14012
|
-
};
|
|
14013
|
-
exports.hydrateRoot = function(c, h, o) {
|
|
14014
|
-
i.usingClientEntryPoint = true;
|
|
14015
|
-
try {
|
|
14016
|
-
return m.hydrateRoot(c, h, o);
|
|
14017
|
-
} finally {
|
|
14018
|
-
i.usingClientEntryPoint = false;
|
|
14019
|
-
}
|
|
14020
|
-
};
|
|
14021
|
-
}
|
|
14022
|
-
|
|
14023
|
-
|
|
14024
|
-
/***/ }),
|
|
14025
|
-
|
|
14026
|
-
/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
|
|
14027
|
-
/*!****************************************************************************!*\
|
|
14028
|
-
!*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
|
|
14029
|
-
\****************************************************************************/
|
|
14030
|
-
/***/ ((module) => {
|
|
14031
|
-
|
|
14032
|
-
|
|
14033
|
-
|
|
14034
|
-
var stylesInDOM = [];
|
|
14035
|
-
function getIndexByIdentifier(identifier) {
|
|
14036
|
-
var result = -1;
|
|
14037
|
-
for (var i = 0; i < stylesInDOM.length; i++) {
|
|
14038
|
-
if (stylesInDOM[i].identifier === identifier) {
|
|
14039
|
-
result = i;
|
|
14040
|
-
break;
|
|
14041
|
-
}
|
|
14042
|
-
}
|
|
14043
|
-
return result;
|
|
14044
|
-
}
|
|
14045
|
-
function modulesToDom(list, options) {
|
|
14046
|
-
var idCountMap = {};
|
|
14047
|
-
var identifiers = [];
|
|
14048
|
-
for (var i = 0; i < list.length; i++) {
|
|
14049
|
-
var item = list[i];
|
|
14050
|
-
var id = options.base ? item[0] + options.base : item[0];
|
|
14051
|
-
var count = idCountMap[id] || 0;
|
|
14052
|
-
var identifier = "".concat(id, " ").concat(count);
|
|
14053
|
-
idCountMap[id] = count + 1;
|
|
14054
|
-
var indexByIdentifier = getIndexByIdentifier(identifier);
|
|
14055
|
-
var obj = {
|
|
14056
|
-
css: item[1],
|
|
14057
|
-
media: item[2],
|
|
14058
|
-
sourceMap: item[3],
|
|
14059
|
-
supports: item[4],
|
|
14060
|
-
layer: item[5]
|
|
14061
|
-
};
|
|
14062
|
-
if (indexByIdentifier !== -1) {
|
|
14063
|
-
stylesInDOM[indexByIdentifier].references++;
|
|
14064
|
-
stylesInDOM[indexByIdentifier].updater(obj);
|
|
14065
|
-
} else {
|
|
14066
|
-
var updater = addElementStyle(obj, options);
|
|
14067
|
-
options.byIndex = i;
|
|
14068
|
-
stylesInDOM.splice(i, 0, {
|
|
14069
|
-
identifier: identifier,
|
|
14070
|
-
updater: updater,
|
|
14071
|
-
references: 1
|
|
14072
|
-
});
|
|
14073
|
-
}
|
|
14074
|
-
identifiers.push(identifier);
|
|
14075
|
-
}
|
|
14076
|
-
return identifiers;
|
|
14077
|
-
}
|
|
14078
|
-
function addElementStyle(obj, options) {
|
|
14079
|
-
var api = options.domAPI(options);
|
|
14080
|
-
api.update(obj);
|
|
14081
|
-
var updater = function updater(newObj) {
|
|
14082
|
-
if (newObj) {
|
|
14083
|
-
if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {
|
|
14084
|
-
return;
|
|
14085
|
-
}
|
|
14086
|
-
api.update(obj = newObj);
|
|
14087
|
-
} else {
|
|
14088
|
-
api.remove();
|
|
14089
|
-
}
|
|
14090
|
-
};
|
|
14091
|
-
return updater;
|
|
14092
|
-
}
|
|
14093
|
-
module.exports = function (list, options) {
|
|
14094
|
-
options = options || {};
|
|
14095
|
-
list = list || [];
|
|
14096
|
-
var lastIdentifiers = modulesToDom(list, options);
|
|
14097
|
-
return function update(newList) {
|
|
14098
|
-
newList = newList || [];
|
|
14099
|
-
for (var i = 0; i < lastIdentifiers.length; i++) {
|
|
14100
|
-
var identifier = lastIdentifiers[i];
|
|
14101
|
-
var index = getIndexByIdentifier(identifier);
|
|
14102
|
-
stylesInDOM[index].references--;
|
|
14103
|
-
}
|
|
14104
|
-
var newLastIdentifiers = modulesToDom(newList, options);
|
|
14105
|
-
for (var _i = 0; _i < lastIdentifiers.length; _i++) {
|
|
14106
|
-
var _identifier = lastIdentifiers[_i];
|
|
14107
|
-
var _index = getIndexByIdentifier(_identifier);
|
|
14108
|
-
if (stylesInDOM[_index].references === 0) {
|
|
14109
|
-
stylesInDOM[_index].updater();
|
|
14110
|
-
stylesInDOM.splice(_index, 1);
|
|
14111
|
-
}
|
|
14112
|
-
}
|
|
14113
|
-
lastIdentifiers = newLastIdentifiers;
|
|
14114
|
-
};
|
|
14115
|
-
};
|
|
14116
|
-
|
|
14117
|
-
/***/ }),
|
|
14118
|
-
|
|
14119
|
-
/***/ "./node_modules/style-loader/dist/runtime/insertBySelector.js":
|
|
14120
|
-
/*!********************************************************************!*\
|
|
14121
|
-
!*** ./node_modules/style-loader/dist/runtime/insertBySelector.js ***!
|
|
14122
|
-
\********************************************************************/
|
|
14123
|
-
/***/ ((module) => {
|
|
14124
|
-
|
|
14125
|
-
|
|
14126
|
-
|
|
14127
|
-
var memo = {};
|
|
14128
|
-
|
|
14129
|
-
/* istanbul ignore next */
|
|
14130
|
-
function getTarget(target) {
|
|
14131
|
-
if (typeof memo[target] === "undefined") {
|
|
14132
|
-
var styleTarget = document.querySelector(target);
|
|
14133
|
-
|
|
14134
|
-
// Special case to return head of iframe instead of iframe itself
|
|
14135
|
-
if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
|
|
14136
|
-
try {
|
|
14137
|
-
// This will throw an exception if access to iframe is blocked
|
|
14138
|
-
// due to cross-origin restrictions
|
|
14139
|
-
styleTarget = styleTarget.contentDocument.head;
|
|
14140
|
-
} catch (e) {
|
|
14141
|
-
// istanbul ignore next
|
|
14142
|
-
styleTarget = null;
|
|
14143
|
-
}
|
|
14144
|
-
}
|
|
14145
|
-
memo[target] = styleTarget;
|
|
14146
|
-
}
|
|
14147
|
-
return memo[target];
|
|
14148
|
-
}
|
|
14149
|
-
|
|
14150
|
-
/* istanbul ignore next */
|
|
14151
|
-
function insertBySelector(insert, style) {
|
|
14152
|
-
var target = getTarget(insert);
|
|
14153
|
-
if (!target) {
|
|
14154
|
-
throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
|
|
14155
|
-
}
|
|
14156
|
-
target.appendChild(style);
|
|
14157
|
-
}
|
|
14158
|
-
module.exports = insertBySelector;
|
|
14159
|
-
|
|
14160
|
-
/***/ }),
|
|
14161
|
-
|
|
14162
|
-
/***/ "./node_modules/style-loader/dist/runtime/insertStyleElement.js":
|
|
14163
|
-
/*!**********************************************************************!*\
|
|
14164
|
-
!*** ./node_modules/style-loader/dist/runtime/insertStyleElement.js ***!
|
|
14165
|
-
\**********************************************************************/
|
|
14166
|
-
/***/ ((module) => {
|
|
14167
|
-
|
|
14168
|
-
|
|
14169
|
-
|
|
14170
|
-
/* istanbul ignore next */
|
|
14171
|
-
function insertStyleElement(options) {
|
|
14172
|
-
var element = document.createElement("style");
|
|
14173
|
-
options.setAttributes(element, options.attributes);
|
|
14174
|
-
options.insert(element, options.options);
|
|
14175
|
-
return element;
|
|
14176
|
-
}
|
|
14177
|
-
module.exports = insertStyleElement;
|
|
14178
|
-
|
|
14179
|
-
/***/ }),
|
|
14180
|
-
|
|
14181
|
-
/***/ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":
|
|
14182
|
-
/*!**********************************************************************************!*\
|
|
14183
|
-
!*** ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js ***!
|
|
14184
|
-
\**********************************************************************************/
|
|
14185
|
-
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
14186
|
-
|
|
14187
|
-
|
|
14188
|
-
|
|
14189
|
-
/* istanbul ignore next */
|
|
14190
|
-
function setAttributesWithoutAttributes(styleElement) {
|
|
14191
|
-
var nonce = true ? __webpack_require__.nc : 0;
|
|
14192
|
-
if (nonce) {
|
|
14193
|
-
styleElement.setAttribute("nonce", nonce);
|
|
14194
|
-
}
|
|
14195
|
-
}
|
|
14196
|
-
module.exports = setAttributesWithoutAttributes;
|
|
14197
|
-
|
|
14198
|
-
/***/ }),
|
|
14199
|
-
|
|
14200
|
-
/***/ "./node_modules/style-loader/dist/runtime/styleDomAPI.js":
|
|
14201
|
-
/*!***************************************************************!*\
|
|
14202
|
-
!*** ./node_modules/style-loader/dist/runtime/styleDomAPI.js ***!
|
|
14203
|
-
\***************************************************************/
|
|
14204
|
-
/***/ ((module) => {
|
|
14880
|
+
.button-green:hover {
|
|
14881
|
+
background-color: var(--green-500);
|
|
14882
|
+
}
|
|
14205
14883
|
|
|
14884
|
+
.button-red {
|
|
14885
|
+
background-color: var(--red-400);
|
|
14886
|
+
color: var(--red-900) !important;
|
|
14887
|
+
}
|
|
14206
14888
|
|
|
14889
|
+
.button-red:hover {
|
|
14890
|
+
background-color: var(--red-500);
|
|
14891
|
+
}
|
|
14207
14892
|
|
|
14208
|
-
|
|
14209
|
-
|
|
14210
|
-
var
|
|
14211
|
-
|
|
14212
|
-
css += "@supports (".concat(obj.supports, ") {");
|
|
14213
|
-
}
|
|
14214
|
-
if (obj.media) {
|
|
14215
|
-
css += "@media ".concat(obj.media, " {");
|
|
14216
|
-
}
|
|
14217
|
-
var needLayer = typeof obj.layer !== "undefined";
|
|
14218
|
-
if (needLayer) {
|
|
14219
|
-
css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {");
|
|
14220
|
-
}
|
|
14221
|
-
css += obj.css;
|
|
14222
|
-
if (needLayer) {
|
|
14223
|
-
css += "}";
|
|
14224
|
-
}
|
|
14225
|
-
if (obj.media) {
|
|
14226
|
-
css += "}";
|
|
14227
|
-
}
|
|
14228
|
-
if (obj.supports) {
|
|
14229
|
-
css += "}";
|
|
14230
|
-
}
|
|
14231
|
-
var sourceMap = obj.sourceMap;
|
|
14232
|
-
if (sourceMap && typeof btoa !== "undefined") {
|
|
14233
|
-
css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
|
|
14234
|
-
}
|
|
14893
|
+
.button-gray {
|
|
14894
|
+
background-color: var(--jp-layout-color2);
|
|
14895
|
+
color: var(--jp-content-font-color1) !important;
|
|
14896
|
+
}
|
|
14235
14897
|
|
|
14236
|
-
|
|
14237
|
-
|
|
14238
|
-
options.styleTagTransform(css, styleElement, options.options);
|
|
14898
|
+
.button-gray:hover {
|
|
14899
|
+
background-color: var(--jp-layout-color3);
|
|
14239
14900
|
}
|
|
14240
|
-
|
|
14241
|
-
|
|
14242
|
-
|
|
14243
|
-
|
|
14244
|
-
}
|
|
14245
|
-
styleElement.parentNode.removeChild(styleElement);
|
|
14901
|
+
|
|
14902
|
+
.button-purple {
|
|
14903
|
+
background-color: var(--purple-300);
|
|
14904
|
+
color: var(--purple-700) !important;
|
|
14246
14905
|
}
|
|
14247
14906
|
|
|
14248
|
-
|
|
14249
|
-
|
|
14250
|
-
if (typeof document === "undefined") {
|
|
14251
|
-
return {
|
|
14252
|
-
update: function update() {},
|
|
14253
|
-
remove: function remove() {}
|
|
14254
|
-
};
|
|
14255
|
-
}
|
|
14256
|
-
var styleElement = options.insertStyleElement(options);
|
|
14257
|
-
return {
|
|
14258
|
-
update: function update(obj) {
|
|
14259
|
-
apply(styleElement, options, obj);
|
|
14260
|
-
},
|
|
14261
|
-
remove: function remove() {
|
|
14262
|
-
removeStyleElement(styleElement);
|
|
14263
|
-
}
|
|
14264
|
-
};
|
|
14907
|
+
.button-purple:hover {
|
|
14908
|
+
background-color: var(--purple-400);
|
|
14265
14909
|
}
|
|
14266
|
-
module.exports = domAPI;
|
|
14267
14910
|
|
|
14268
|
-
|
|
14911
|
+
.button-dark-purple {
|
|
14912
|
+
background-color: var(--purple-500);
|
|
14913
|
+
color: var(--white) !important;
|
|
14914
|
+
}
|
|
14269
14915
|
|
|
14270
|
-
|
|
14271
|
-
|
|
14272
|
-
|
|
14273
|
-
\*********************************************************************/
|
|
14274
|
-
/***/ ((module) => {
|
|
14916
|
+
.button-dark-purple:hover {
|
|
14917
|
+
background-color: var(--purple-600);
|
|
14918
|
+
}
|
|
14275
14919
|
|
|
14920
|
+
.button-width-block {
|
|
14921
|
+
width: 100%;
|
|
14922
|
+
}
|
|
14276
14923
|
|
|
14924
|
+
.button-width-fit-contents {
|
|
14925
|
+
width: fit-content;
|
|
14926
|
+
}
|
|
14277
14927
|
|
|
14278
|
-
|
|
14279
|
-
|
|
14280
|
-
|
|
14281
|
-
|
|
14282
|
-
} else {
|
|
14283
|
-
while (styleElement.firstChild) {
|
|
14284
|
-
styleElement.removeChild(styleElement.firstChild);
|
|
14285
|
-
}
|
|
14286
|
-
styleElement.appendChild(document.createTextNode(css));
|
|
14287
|
-
}
|
|
14928
|
+
.button-small {
|
|
14929
|
+
height: 20px;
|
|
14930
|
+
font-size: 12px;
|
|
14931
|
+
padding: 2px 5px;
|
|
14288
14932
|
}
|
|
14289
|
-
|
|
14933
|
+
`, "",{"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,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;EACnC,8BAA8B;AAChC;;AAEA;EACE,mCAAmC;AACrC;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,YAAY;EACZ,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-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-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: 20px;\n font-size: 12px;\n padding: 2px 5px;\n}\n"],"sourceRoot":""}]);
|
|
14934
|
+
// Exports
|
|
14935
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
14936
|
+
|
|
14290
14937
|
|
|
14291
14938
|
/***/ }),
|
|
14292
14939
|
|
|
@@ -14402,6 +15049,114 @@ var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js
|
|
|
14402
15049
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_AgentComponentHeader_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_AgentComponentHeader_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_AgentComponentHeader_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);
|
|
14403
15050
|
|
|
14404
15051
|
|
|
15052
|
+
/***/ }),
|
|
15053
|
+
|
|
15054
|
+
/***/ "./style/AgentToolUIComponent.css":
|
|
15055
|
+
/*!****************************************!*\
|
|
15056
|
+
!*** ./style/AgentToolUIComponent.css ***!
|
|
15057
|
+
\****************************************/
|
|
15058
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
15059
|
+
|
|
15060
|
+
__webpack_require__.r(__webpack_exports__);
|
|
15061
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
15062
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
15063
|
+
/* harmony export */ });
|
|
15064
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
|
|
15065
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
15066
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js");
|
|
15067
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
15068
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js");
|
|
15069
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
|
|
15070
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");
|
|
15071
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
|
|
15072
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js");
|
|
15073
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
|
|
15074
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js");
|
|
15075
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
|
|
15076
|
+
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_AgentToolUIComponent_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js!./AgentToolUIComponent.css */ "./node_modules/css-loader/dist/cjs.js!./style/AgentToolUIComponent.css");
|
|
15077
|
+
|
|
15078
|
+
|
|
15079
|
+
|
|
15080
|
+
|
|
15081
|
+
|
|
15082
|
+
|
|
15083
|
+
|
|
15084
|
+
|
|
15085
|
+
|
|
15086
|
+
|
|
15087
|
+
|
|
15088
|
+
var options = {};
|
|
15089
|
+
|
|
15090
|
+
options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());
|
|
15091
|
+
options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());
|
|
15092
|
+
|
|
15093
|
+
options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");
|
|
15094
|
+
|
|
15095
|
+
options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());
|
|
15096
|
+
options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());
|
|
15097
|
+
|
|
15098
|
+
var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_AgentToolUIComponent_css__WEBPACK_IMPORTED_MODULE_6__["default"], options);
|
|
15099
|
+
|
|
15100
|
+
|
|
15101
|
+
|
|
15102
|
+
|
|
15103
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_AgentToolUIComponent_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_AgentToolUIComponent_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_AgentToolUIComponent_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);
|
|
15104
|
+
|
|
15105
|
+
|
|
15106
|
+
/***/ }),
|
|
15107
|
+
|
|
15108
|
+
/***/ "./style/AlertBlock.css":
|
|
15109
|
+
/*!******************************!*\
|
|
15110
|
+
!*** ./style/AlertBlock.css ***!
|
|
15111
|
+
\******************************/
|
|
15112
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
15113
|
+
|
|
15114
|
+
__webpack_require__.r(__webpack_exports__);
|
|
15115
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
15116
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
15117
|
+
/* harmony export */ });
|
|
15118
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
|
|
15119
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
15120
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js");
|
|
15121
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
15122
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js");
|
|
15123
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
|
|
15124
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");
|
|
15125
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
|
|
15126
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js");
|
|
15127
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
|
|
15128
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js");
|
|
15129
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
|
|
15130
|
+
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_AlertBlock_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js!./AlertBlock.css */ "./node_modules/css-loader/dist/cjs.js!./style/AlertBlock.css");
|
|
15131
|
+
|
|
15132
|
+
|
|
15133
|
+
|
|
15134
|
+
|
|
15135
|
+
|
|
15136
|
+
|
|
15137
|
+
|
|
15138
|
+
|
|
15139
|
+
|
|
15140
|
+
|
|
15141
|
+
|
|
15142
|
+
var options = {};
|
|
15143
|
+
|
|
15144
|
+
options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());
|
|
15145
|
+
options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());
|
|
15146
|
+
|
|
15147
|
+
options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");
|
|
15148
|
+
|
|
15149
|
+
options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());
|
|
15150
|
+
options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());
|
|
15151
|
+
|
|
15152
|
+
var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_AlertBlock_css__WEBPACK_IMPORTED_MODULE_6__["default"], options);
|
|
15153
|
+
|
|
15154
|
+
|
|
15155
|
+
|
|
15156
|
+
|
|
15157
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_AlertBlock_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_AlertBlock_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_AlertBlock_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);
|
|
15158
|
+
|
|
15159
|
+
|
|
14405
15160
|
/***/ }),
|
|
14406
15161
|
|
|
14407
15162
|
/***/ "./style/AssumptionTool.css":
|
|
@@ -14456,6 +15211,60 @@ var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js
|
|
|
14456
15211
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_AssumptionTool_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_AssumptionTool_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_AssumptionTool_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);
|
|
14457
15212
|
|
|
14458
15213
|
|
|
15214
|
+
/***/ }),
|
|
15215
|
+
|
|
15216
|
+
/***/ "./style/AuthPopup.css":
|
|
15217
|
+
/*!*****************************!*\
|
|
15218
|
+
!*** ./style/AuthPopup.css ***!
|
|
15219
|
+
\*****************************/
|
|
15220
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
15221
|
+
|
|
15222
|
+
__webpack_require__.r(__webpack_exports__);
|
|
15223
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
15224
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
15225
|
+
/* harmony export */ });
|
|
15226
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
|
|
15227
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
15228
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js");
|
|
15229
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
15230
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js");
|
|
15231
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
|
|
15232
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");
|
|
15233
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
|
|
15234
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js");
|
|
15235
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
|
|
15236
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js");
|
|
15237
|
+
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
|
|
15238
|
+
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_AuthPopup_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js!./AuthPopup.css */ "./node_modules/css-loader/dist/cjs.js!./style/AuthPopup.css");
|
|
15239
|
+
|
|
15240
|
+
|
|
15241
|
+
|
|
15242
|
+
|
|
15243
|
+
|
|
15244
|
+
|
|
15245
|
+
|
|
15246
|
+
|
|
15247
|
+
|
|
15248
|
+
|
|
15249
|
+
|
|
15250
|
+
var options = {};
|
|
15251
|
+
|
|
15252
|
+
options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());
|
|
15253
|
+
options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());
|
|
15254
|
+
|
|
15255
|
+
options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");
|
|
15256
|
+
|
|
15257
|
+
options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());
|
|
15258
|
+
options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());
|
|
15259
|
+
|
|
15260
|
+
var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_AuthPopup_css__WEBPACK_IMPORTED_MODULE_6__["default"], options);
|
|
15261
|
+
|
|
15262
|
+
|
|
15263
|
+
|
|
15264
|
+
|
|
15265
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_AuthPopup_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_AuthPopup_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_AuthPopup_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);
|
|
15266
|
+
|
|
15267
|
+
|
|
14459
15268
|
/***/ }),
|
|
14460
15269
|
|
|
14461
15270
|
/***/ "./style/CTACarousel.css":
|
|
@@ -15104,60 +15913,6 @@ var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js
|
|
|
15104
15913
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_ErrorMimeRendererPlugin_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_ErrorMimeRendererPlugin_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_ErrorMimeRendererPlugin_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);
|
|
15105
15914
|
|
|
15106
15915
|
|
|
15107
|
-
/***/ }),
|
|
15108
|
-
|
|
15109
|
-
/***/ "./style/GetCellOutputToolUI.css":
|
|
15110
|
-
/*!***************************************!*\
|
|
15111
|
-
!*** ./style/GetCellOutputToolUI.css ***!
|
|
15112
|
-
\***************************************/
|
|
15113
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
15114
|
-
|
|
15115
|
-
__webpack_require__.r(__webpack_exports__);
|
|
15116
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
15117
|
-
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
15118
|
-
/* harmony export */ });
|
|
15119
|
-
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
|
|
15120
|
-
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
15121
|
-
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js");
|
|
15122
|
-
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
15123
|
-
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js");
|
|
15124
|
-
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
|
|
15125
|
-
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");
|
|
15126
|
-
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
|
|
15127
|
-
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js");
|
|
15128
|
-
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
|
|
15129
|
-
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js");
|
|
15130
|
-
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
|
|
15131
|
-
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_GetCellOutputToolUI_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js!./GetCellOutputToolUI.css */ "./node_modules/css-loader/dist/cjs.js!./style/GetCellOutputToolUI.css");
|
|
15132
|
-
|
|
15133
|
-
|
|
15134
|
-
|
|
15135
|
-
|
|
15136
|
-
|
|
15137
|
-
|
|
15138
|
-
|
|
15139
|
-
|
|
15140
|
-
|
|
15141
|
-
|
|
15142
|
-
|
|
15143
|
-
var options = {};
|
|
15144
|
-
|
|
15145
|
-
options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());
|
|
15146
|
-
options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());
|
|
15147
|
-
|
|
15148
|
-
options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");
|
|
15149
|
-
|
|
15150
|
-
options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());
|
|
15151
|
-
options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());
|
|
15152
|
-
|
|
15153
|
-
var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_GetCellOutputToolUI_css__WEBPACK_IMPORTED_MODULE_6__["default"], options);
|
|
15154
|
-
|
|
15155
|
-
|
|
15156
|
-
|
|
15157
|
-
|
|
15158
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_GetCellOutputToolUI_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_GetCellOutputToolUI_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_GetCellOutputToolUI_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);
|
|
15159
|
-
|
|
15160
|
-
|
|
15161
15916
|
/***/ }),
|
|
15162
15917
|
|
|
15163
15918
|
/***/ "./style/IconButton.css":
|
|
@@ -15917,4 +16672,4 @@ var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js
|
|
|
15917
16672
|
/***/ })
|
|
15918
16673
|
|
|
15919
16674
|
}]);
|
|
15920
|
-
//# sourceMappingURL=lib_index_js.
|
|
16675
|
+
//# sourceMappingURL=lib_index_js.01a962c68c8fae380f30.js.map
|